亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? block_encoder.cpp.bak

?? 這是我剛剛完成的關(guān)于JPEG2000的C語言實現(xiàn)的部分程序。小波變換是采用97變換
?? BAK
?? 第 1 頁 / 共 5 頁
字號:
  int r, width_by2=width+width, width_by3=width_by2+width;  kdu_int32 distortion_change = 0;  kdu_int32 *distortion_lut = refinement_distortion_lut;  if (lossless_pass)    distortion_lut = refinement_distortion_lut_lossless;  assert((context_row_gap - width) == EXTRA_ENCODE_CWORDS);  for (r=num_stripes; r > 0; r--, cp += EXTRA_ENCODE_CWORDS, sp += width_by3)    for (c=width; c > 0; c--, sp++, cp++)      {        if ((*cp & ((MU_BIT<<0)|(MU_BIT<<3)|(MU_BIT<<6)|(MU_BIT<<9))) == 0)          { // Invoke speedup trick to skip over runs of all-0 neighbourhoods            for (cp+=2; *cp == 0; cp+=2, c-=2, sp+=2);            cp-=2;            continue;          }        cword = *cp;        if (cword & (MU_BIT<<0))          { // Process first row of stripe column            val = sp[0];            val <<= shift; // Get new magnitude bit to sign position.            sym = (kdu_int32)(((kdu_uint32) val)>>31);            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _raw_enc_(coder,sym);          }        if (cword & (MU_BIT<<3))          { // Process second row of stripe column            val = sp[width];            val <<= shift; // Get new magnitude bit to sign position.            sym = (kdu_int32)(((kdu_uint32) val)>>31);            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _raw_enc_(coder,sym);          }        if (cword & (MU_BIT<<6))          { // Process third row of stripe column            val = sp[width_by2];            val <<= shift; // Get new magnitude bit to sign position.            sym = (kdu_int32)(((kdu_uint32) val)>>31);            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _raw_enc_(coder,sym);          }        if (cword & (MU_BIT<<9))          { // Process fourth row of stripe column            val = sp[width_by3];            val <<= shift; // Get new magnitude bit to sign position.            sym = (kdu_int32)(((kdu_uint32) val)>>31);            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _raw_enc_(coder,sym);          }      }  _raw_check_in_(coder);  return distortion_change;}/*****************************************************************************//* STATIC                     encode_mag_ref_pass                            *//*****************************************************************************/static kdu_int32  encode_mag_ref_pass(mq_encoder &coder, mqe_state states[],                      int p, bool causal, kdu_int32 *samples,                      kdu_int32 *contexts, int width, int num_stripes,                      int context_row_gap, bool lossless_pass){  /* Ideally, register storage is available for 12 32-bit integers.     Three 32-bit integers are declared inside the "_mq_check_out_" macro.     The order of priority for these registers corresponds roughly to the     order in which their declarations appear below.  Unfortunately, none     of these register requests are likely to be honored by the     register-starved X86 family of processors, but the register     declarations may prove useful to compilers for other architectures or     for hand optimizations of assembly code. */  register kdu_int32 *cp = contexts;  register int c;  register kdu_int32 cword;  _mq_check_out_(coder); // Declares A, C and t as registers.  register kdu_int32 *sp = samples;  register mqe_state *state_ref;  register kdu_int32 sym;  register kdu_int32 val;  register kdu_int32 shift = 31-p; // Shift to get new mag bit to sign position  register kdu_int32 refined_mask = (((kdu_int32)(-1))<<(p+2)) & KDU_INT32_MAX;  int r, width_by2=width+width, width_by3=width_by2+width;  kdu_int32 distortion_change = 0;  kdu_int32 *distortion_lut = refinement_distortion_lut;  if (lossless_pass)    distortion_lut = refinement_distortion_lut_lossless;  states += KAPPA_MAG_BASE;  assert((context_row_gap - width) == EXTRA_ENCODE_CWORDS);  for (r=num_stripes; r > 0; r--, cp += EXTRA_ENCODE_CWORDS, sp += width_by3)    for (c=width; c > 0; c--, sp++, cp++)      {        if ((*cp & ((MU_BIT<<0)|(MU_BIT<<3)|(MU_BIT<<6)|(MU_BIT<<9))) == 0)          { // Invoke speedup trick to skip over runs of all-0 neighbourhoods            for (cp+=2; *cp == 0; cp+=2, c-=2, sp+=2);            cp-=2;            continue;          }        cword = *cp;        if (cword & (MU_BIT<<0))          { // Process first row of stripe column            val = sp[0];            // Get coding context            state_ref = states;            if (!(val & refined_mask))              { // This is the first magnitude refinement step                if (cword & (NBRHD_MASK<<0))                  state_ref++;              }            else              state_ref += 2;            val <<= shift; // Get new magnitude bit to sign position.            sym = val & KDU_INT32_MIN;            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _mq_enc_(coder,sym,*state_ref);          }        if (cword & (MU_BIT<<3))          { // Process second row of stripe column            val = sp[width];            // Get coding context            state_ref = states;            if (!(val & refined_mask))              { // This is the first magnitude refinement step                if (cword & (NBRHD_MASK<<3))                  state_ref++;              }            else              state_ref += 2;            val <<= shift; // Get new magnitude bit to sign position.            sym = val & KDU_INT32_MIN;            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _mq_enc_(coder,sym,*state_ref);          }        if (cword & (MU_BIT<<6))          { // Process third row of stripe column            val = sp[width_by2];            // Get coding context            state_ref = states;            if (!(val & refined_mask))              { // This is the first magnitude refinement step                if (cword & (NBRHD_MASK<<6))                  state_ref++;              }            else              state_ref += 2;            val <<= shift; // Get new magnitude bit to sign position.            sym = val & KDU_INT32_MIN;            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _mq_enc_(coder,sym,*state_ref);          }        if (cword & (MU_BIT<<9))          { // Process fourth row of stripe column            val = sp[width_by3];            // Get coding context            state_ref = states;            if (!(val & refined_mask))              { // This is the first magnitude refinement step                if (cword & (NBRHD_MASK<<9))                  state_ref++;              }            else              state_ref += 2;            val <<= shift; // Get new magnitude bit to sign position.            sym = val & KDU_INT32_MIN;            // Compute distortion change            val =  (val >> (31-DISTORTION_LSBS)) & (REFINEMENT_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode magnitude bit            _mq_enc_(coder,sym,*state_ref);          }      }  _mq_check_in_(coder);  return distortion_change;}/*****************************************************************************//* STATIC                     encode_cleanup_pass                            *//*****************************************************************************/static kdu_int32  encode_cleanup_pass(mq_encoder &coder, mqe_state states[],                      int p, bool causal, int orientation,                      kdu_int32 *samples, kdu_int32 *contexts,                      int width, int num_stripes, int context_row_gap,                      bool lossless_pass){  /* Ideally, register storage is available for 12 32-bit integers. Three     are declared inside the "_mq_check_out_" macro.  The order of priority     for these registers corresponds roughly to the order in which their     declarations appear below.  Unfortunately, none of these register     requests are likely to be honored by the register-starved X86 family     of processors, but the register declarations may prove useful to     compilers for other architectures or for hand optimizations of     assembly code. */  register kdu_int32 *cp = contexts;  register int c;  register kdu_int32 cword;  _mq_check_out_(coder); // Declares A, C, and t as registers.  register kdu_int32 sym;  register kdu_int32 val;  register kdu_int32 *sp = samples;  register kdu_int32 shift = 31-p; assert(shift > 0);  register  kdu_byte *sig_lut = significance_luts[orientation];  register mqe_state *state_ref;  int r, width_by2=width+width, width_by3=width_by2+width;  kdu_int32 distortion_change = 0;  kdu_int32 *distortion_lut = significance_distortion_lut;  if (lossless_pass)    distortion_lut = significance_distortion_lut_lossless;  assert((context_row_gap - width) == EXTRA_ENCODE_CWORDS);  for (r=num_stripes; r > 0; r--, cp += EXTRA_ENCODE_CWORDS, sp += width_by3)    for (c=width; c > 0; c--, sp++, cp++)      {        if (*cp == 0)          { // Enter the run mode            sym = 0; val = -1;            if ((sp[0] << shift) < 0)              { val = 0; sym = KDU_INT32_MIN; }            else if ((sp[width] << shift) < 0)              { val = 1; sym = KDU_INT32_MIN; }            else if ((sp[width_by2] << shift) < 0)              { val = 2; sym = KDU_INT32_MIN; }            else if ((sp[width_by3] << shift) < 0)              { val = 3; sym = KDU_INT32_MIN; }            state_ref = states + KAPPA_RUN_BASE;            _mq_enc_(coder,sym,*state_ref);            if (val < 0)              continue;            _mq_enc_run_(coder,val);            cword = *cp;            switch (val) {              case 0: val = sp[0]<<shift; goto row_0_significant;              case 1: val = sp[width]<<shift; goto row_1_significant;              case 2: val = sp[width_by2]<<shift; goto row_2_significant;              case 3: val = sp[width_by3]<<shift; goto row_3_significant;              }          }        cword = *cp;        if (!(cword & (CLEANUP_MEMBER_MASK<<0)))          { // Process first row of stripe column (row 0)            state_ref = states+KAPPA_SIG_BASE+sig_lut[cword & NBRHD_MASK];            val = sp[0]<<shift;            sym = val & KDU_INT32_MIN;            _mq_enc_(coder,sym,*state_ref);            if (val >= 0) // New magnitude bit was 0, so still insignificant              goto row_1;row_0_significant:            // Compute distortion change

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产99国产| 欧美中文字幕一区二区三区| 欧美日韩夫妻久久| 亚洲乱码国产乱码精品精可以看| 国产精品自拍av| 欧美激情一区三区| 成人免费视频app| 国产精品乱码一区二三区小蝌蚪| 精品一区二区精品| 26uuu国产日韩综合| 性感美女极品91精品| 在线免费视频一区二区| 一区二区三区四区精品在线视频| 91香蕉视频mp4| 亚洲另类在线视频| 欧美网站大全在线观看| 日精品一区二区| 精品国产sm最大网站免费看| 麻豆精品一区二区三区| 久久亚洲一区二区三区明星换脸| 精品一区二区三区日韩| 精品国产伦理网| 成人av午夜电影| 一区二区三区小说| 欧美一级片在线看| 国产91精品入口| 亚洲高清视频中文字幕| 日韩欧美123| 色菇凉天天综合网| 美国一区二区三区在线播放| 国产三级欧美三级| 91精品国产综合久久精品图片| 国产黄人亚洲片| 蜜臀精品久久久久久蜜臀| 中文字幕 久热精品 视频在线 | 亚洲激情图片小说视频| 91麻豆精品国产91久久久更新时间| 另类专区欧美蜜桃臀第一页| 亚洲免费看黄网站| www成人在线观看| 日韩精品在线网站| 欧美日韩不卡视频| 99久久伊人精品| 久久99精品久久久久久动态图| 亚洲精品少妇30p| 国产精品婷婷午夜在线观看| 日韩一区二区三区免费看| 在线观看日韩一区| 99视频在线精品| 成人免费不卡视频| 国产成人免费视频精品含羞草妖精 | 91麻豆精品国产91| 色综合色狠狠天天综合色| 国产98色在线|日韩| 黄色资源网久久资源365| 亚洲天堂精品在线观看| 国产精品另类一区| 亚洲日穴在线视频| 一区二区三区高清不卡| 亚洲国产美女搞黄色| 亚洲男人的天堂在线观看| 亚洲欧美激情插| 亚洲永久精品大片| 一区二区在线免费观看| 首页国产丝袜综合| 美女脱光内衣内裤视频久久影院| 美腿丝袜在线亚洲一区 | 欧美不卡激情三级在线观看| 欧美日韩国产色站一区二区三区| 欧美日产国产精品| 欧美大片拔萝卜| 国产精品欧美一级免费| 亚洲线精品一区二区三区| 亚洲gay无套男同| 精品一区二区三区久久久| 成人精品视频一区二区三区| 粉嫩高潮美女一区二区三区| 欧美专区日韩专区| 精品播放一区二区| 亚洲人成小说网站色在线| 免费高清成人在线| 国产98色在线|日韩| 91精品啪在线观看国产60岁| 国产精品福利影院| 亚洲午夜激情网页| 国产成人免费在线观看不卡| 欧美性做爰猛烈叫床潮| 国产精品网站导航| 韩国av一区二区三区四区| 成人免费视频视频在线观看免费| 欧美欧美欧美欧美首页| 亚洲男同性恋视频| 国产91综合一区在线观看| 在线视频观看一区| 国产亚洲婷婷免费| 玖玖九九国产精品| 欧美视频在线观看一区二区| 久久亚洲春色中文字幕久久久| 天天射综合影视| 欧美亚州韩日在线看免费版国语版| 欧美激情艳妇裸体舞| 麻豆成人久久精品二区三区小说| 欧美日韩第一区日日骚| 成人免费在线播放视频| 精品亚洲porn| 欧美精品一区二区三区在线| 日本不卡一区二区| 欧美伦理影视网| 日韩av在线免费观看不卡| 日韩三级中文字幕| 国产精品一区二区三区网站| 欧美日韩国产综合久久| 国产精品88888| 亚洲欧美在线视频观看| 欧美亚洲愉拍一区二区| 免费看精品久久片| 久久久久99精品一区| 不卡的电影网站| 亚洲一区二区欧美| 日韩欧美电影一区| 国产成人精品一区二| 亚洲国产日产av| 精品日韩欧美在线| 99这里都是精品| 亚洲综合一区二区精品导航| 欧美一区三区二区| 波多野洁衣一区| 久久精品久久久精品美女| 中文字幕一区二区三区在线观看| 国产激情视频一区二区三区欧美| 亚洲一区二区精品3399| 中文字幕一区二区三区在线观看| 欧美日韩精品二区第二页| 成人免费观看视频| 日韩avvvv在线播放| 国产精品国产精品国产专区不蜜| 在线成人av网站| 91久久国产综合久久| 毛片av一区二区三区| 国产精品毛片大码女人| 精品久久久久久亚洲综合网| 欧美亚洲禁片免费| av激情成人网| 成人免费观看视频| 国产激情一区二区三区四区 | 日韩一级欧美一级| 在线免费视频一区二区| 成人少妇影院yyyy| 成人在线视频首页| 国产不卡一区视频| 蜜桃91丨九色丨蝌蚪91桃色| 天堂在线亚洲视频| 五月天网站亚洲| 亚洲成年人影院| 亚洲国产一二三| 另类人妖一区二区av| 精品一区二区在线观看| 国产成人午夜精品5599| 福利视频网站一区二区三区| 97精品视频在线观看自产线路二| 91香蕉视频黄| 精品国产乱码久久久久久牛牛| 久久精品亚洲国产奇米99| 亚洲一卡二卡三卡四卡无卡久久| 午夜不卡av免费| a4yy欧美一区二区三区| 日韩一区二区在线观看视频播放| 久久久久青草大香线综合精品| **网站欧美大片在线观看| 日韩高清国产一区在线| av日韩在线网站| 精品国产一区二区三区忘忧草| 国产精品久久久久影院老司 | 国产精品乡下勾搭老头1| 91黄视频在线| 亚洲国产精品ⅴa在线观看| 亚洲一区二区三区美女| 成人涩涩免费视频| 欧美r级电影在线观看| 亚洲国产日韩一级| 色诱亚洲精品久久久久久| 中文字幕欧美激情一区| 九九久久精品视频| 日韩三级精品电影久久久| 日韩精品一级中文字幕精品视频免费观看 | 国产精品 日产精品 欧美精品| 欧美一区二区三区视频在线| 亚洲成av人片| 欧美视频你懂的| 五月综合激情网| 7777精品伊人久久久大香线蕉完整版 | 精品国产免费一区二区三区四区 | 中文字幕av资源一区| 国产98色在线|日韩| 中文字幕国产一区二区| 成人午夜电影久久影院| 国产精品久久久久四虎| jizzjizzjizz欧美| 亚洲午夜精品一区二区三区他趣| 欧美久久久久久蜜桃|