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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? block_encoder.cpp

?? 這是我剛剛完成的關于JPEG2000的C語言實現的部分程序。小波變換是采用97變換
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
                           (CHI_BIT<<6) | (SIGMA_CC_BIT<<6));            sym >>= 4; // Shift down so that top sigma bit has address 0            sym |= (cp[-1] & ((CHI_BIT<<3) | (SIGMA_CC_BIT<<3))) >> (4+1);            sym |= (cp[ 1] & ((CHI_BIT<<3) | (SIGMA_CC_BIT<<3))) >> (4-1);            sym |= (sym >> (CHI_POS-1-SIGMA_CC_POS)); // Interleave chi & sigma            val = sign_lut[sym & 0x000000FF];            state_ref = states + KAPPA_SIGN_BASE + (val>>1);            sym = val << 31; // Get sign flipping to `sym'            val = sp[width] & KDU_INT32_MIN; // Get the sign bit            sym ^= val; // Moves flipped sign bit into `sym'            _mq_enc_(coder,sym,*state_ref);            // Broadcast neighbourhood context changes; sign bit is in `val'            cp[-1] |= (SIGMA_CR_BIT<<3);            cp[1]  |= (SIGMA_CL_BIT<<3);            cword |= (SIGMA_CC_BIT<<3) | (PI_BIT<<3);            val = (kdu_int32)(((kdu_uint32) val)>>(31-(CHI_POS+3))); // SRL            cword |= val;          }row_2:        if ((cword & (NBRHD_MASK<<6)) && !(cword & (SIG_PROP_MEMBER_MASK<<6)))          { // Process third row of stripe column (row 2)            state_ref = states+KAPPA_SIG_BASE+sig_lut[(cword>>6) & NBRHD_MASK];            val = sp[width_by2]<<shift; // Move bit p to sign bit.            sym = val & KDU_INT32_MIN;            _mq_enc_(coder,sym,*state_ref);            if (val >= 0) // New magnitude bit was 0, so still insignificant              { cword |= (PI_BIT<<6); goto row_3; }            // Compute distortion change            val =  (val>>(31-DISTORTION_LSBS)) & (SIGNIFICANCE_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode sign bit            sym = cword & ((CHI_BIT<<3) | (SIGMA_CC_BIT<<3) |                           (CHI_BIT<<9) | (SIGMA_CC_BIT<<9));            sym >>= 7; // Shift down so that top sigma bit has address 0            sym |= (cp[-1] & ((CHI_BIT<<6) | (SIGMA_CC_BIT<<6))) >> (7+1);            sym |= (cp[ 1] & ((CHI_BIT<<6) | (SIGMA_CC_BIT<<6))) >> (7-1);            sym |= (sym >> (CHI_POS-1-SIGMA_CC_POS)); // Interleave chi & sigma            val = sign_lut[sym & 0x000000FF];            state_ref = states + KAPPA_SIGN_BASE + (val>>1);            sym = val << 31; // Get sign flipping to `sym'            val = sp[width_by2] & KDU_INT32_MIN; // Get the sign bit            sym ^= val; // Moves flipped sign bit into `sym'            _mq_enc_(coder,sym,*state_ref);            // Broadcast neighbourhood context changes; sign bit is in `val'            cp[-1] |= (SIGMA_CR_BIT<<6);            cp[1]  |= (SIGMA_CL_BIT<<6);            cword |= (SIGMA_CC_BIT<<6) | (PI_BIT<<6);            val = (kdu_int32)(((kdu_uint32) val)>>(31-(CHI_POS+6))); // SRL            cword |= val;          }row_3:        if ((cword & (NBRHD_MASK<<9)) && !(cword & (SIG_PROP_MEMBER_MASK<<9)))          { // Process fourth row of stripe column (row 3)            state_ref = states+KAPPA_SIG_BASE+sig_lut[(cword>>9) & NBRHD_MASK];            val = sp[width_by3]<<shift; // Move bit p to sign bit.            sym = val & KDU_INT32_MIN;            _mq_enc_(coder,sym,*state_ref);            if (val >= 0) // New magnitude bit was 0, so still insignificant              { cword |= (PI_BIT<<9); goto done; }            // Compute distortion change            val =  (val>>(31-DISTORTION_LSBS)) & (SIGNIFICANCE_DISTORTIONS-1);            distortion_change += distortion_lut[val];            // Encode sign bit            sym = cword & ((CHI_BIT<<6) | (SIGMA_CC_BIT<<6) |                                0       | (SIGMA_CC_BIT<<12));            sym >>= 10; // Shift down so that top sigma bit has address 0            if (cword < 0) // Use the fact that NEXT_CHI_BIT = 31              sym |= CHI_BIT<<(12-10);            sym |= (cp[-1] & ((CHI_BIT<<9) | (SIGMA_CC_BIT<<9))) >> (10+1);            sym |= (cp[ 1] & ((CHI_BIT<<9) | (SIGMA_CC_BIT<<9))) >> (10-1);            sym |= (sym >> (CHI_POS-1-SIGMA_CC_POS)); // Interleave chi & sigma            val = sign_lut[sym & 0x000000FF];            state_ref = states + KAPPA_SIGN_BASE + (val>>1);            sym = val << 31; // Get sign flipping to `sym'            val = sp[width_by3] & KDU_INT32_MIN; // Get the sign bit            sym ^= val; // Moves flipped sign bit into `sym'            _mq_enc_(coder,sym,*state_ref);            // Broadcast neighbourhood context changes; sign bit is in `val'            cp[context_row_gap-1] |= SIGMA_TR_BIT;            cp[context_row_gap+1] |= SIGMA_TL_BIT;            cp[-1] |= (SIGMA_CR_BIT<<9);            cp[1]  |= (SIGMA_CL_BIT<<9);            if (val < 0)              {                cp[context_row_gap  ] |= SIGMA_TC_BIT | PREV_CHI_BIT;                cword |= (SIGMA_CC_BIT<<9) | (PI_BIT<<9) | (CHI_BIT<<9);              }            else              {                cp[context_row_gap  ] |= SIGMA_TC_BIT;                cword |= (SIGMA_CC_BIT<<9) | (PI_BIT<<9);              }          }done:        *cp = cword;      }  _mq_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; }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频网在线直播| 国产精品国产三级国产专播品爱网| 国产.欧美.日韩| 国模少妇一区二区三区| 久久99国内精品| 国产乱妇无码大片在线观看| 国产精品18久久久久久久久久久久 | 久久久久久久久免费| 日韩女优制服丝袜电影| 久久伊99综合婷婷久久伊| 欧美精品一区二区三区高清aⅴ| 精品国偷自产国产一区| 久久精品亚洲麻豆av一区二区| 国产目拍亚洲精品99久久精品| 国产精品私人自拍| 亚洲欧洲成人精品av97| 亚洲最新视频在线观看| 日韩精品亚洲一区| 国产在线精品一区二区夜色 | 一区免费观看视频| 一区二区三区在线免费视频| 91浏览器入口在线观看| 国产成人免费av在线| 中文字幕精品—区二区四季| 国产精品理论在线观看| 亚洲成av人片在线| 韩日av一区二区| kk眼镜猥琐国模调教系列一区二区 | 在线视频国内一区二区| 日韩一区二区电影| 精品国产乱码91久久久久久网站| 国产欧美一区二区精品久导航 | 亚洲国产精品久久艾草纯爱| 蜜臀国产一区二区三区在线播放 | 精品一区二区影视| 成人精品国产一区二区4080| 欧美亚洲国产一区二区三区| 久久久久久久久久久久久女国产乱| 国产精品无人区| 日韩专区在线视频| 成人在线一区二区三区| 欧美性色欧美a在线播放| 久久网站热最新地址| 亚洲图片欧美一区| 不卡av在线网| 精品国产乱码久久久久久影片| 国产精品亲子伦对白| 美女诱惑一区二区| 91极品美女在线| 中文幕一区二区三区久久蜜桃| 日日夜夜免费精品视频| 色综合天天做天天爱| 国产蜜臀97一区二区三区| 天堂va蜜桃一区二区三区漫画版| 不卡av免费在线观看| 精品国产第一区二区三区观看体验| 亚洲福利视频一区二区| 91香蕉国产在线观看软件| 久久婷婷国产综合国色天香| 免费成人在线播放| 欧美精品第一页| 午夜视黄欧洲亚洲| 欧美亚男人的天堂| 亚洲精品v日韩精品| 成人性色生活片| 久久久精品国产免大香伊| 精品亚洲国产成人av制服丝袜| 欧美久久一二区| 亚洲午夜精品在线| 欧美日韩亚洲综合在线| 一区二区理论电影在线观看| 日本福利一区二区| 亚洲男人的天堂在线aⅴ视频| 白白色亚洲国产精品| 国产精品素人一区二区| 成人精品在线视频观看| 国产精品三级视频| gogo大胆日本视频一区| 国产精品久线在线观看| 97精品国产露脸对白| 一区二区三区四区激情| 欧美在线视频你懂得| 天天影视涩香欲综合网| 91精品国产91久久久久久最新毛片| 午夜成人免费视频| 欧美大白屁股肥臀xxxxxx| 免费一级片91| 国产女主播在线一区二区| 高清av一区二区| 亚洲人成精品久久久久久| 欧亚洲嫩模精品一区三区| 日韩一区欧美二区| 欧美成人免费网站| 国产suv精品一区二区三区| 国产精品成人网| 欧美日韩日本视频| 国内成人精品2018免费看| 国产精品久久三区| 欧美亚洲一区三区| 另类调教123区| 国产精品网站在线观看| 欧美色男人天堂| 国产精品一区二区男女羞羞无遮挡| 国产精品青草久久| 欧美高清激情brazzers| 国产一区在线视频| 亚洲私人黄色宅男| 欧美v日韩v国产v| 91麻豆国产在线观看| 日产国产欧美视频一区精品| 中文无字幕一区二区三区| 欧美私模裸体表演在线观看| 久久国产精品99精品国产| 国产精品对白交换视频| 欧美一级一级性生活免费录像| 波多野结衣一区二区三区| 日日夜夜免费精品| 亚洲欧美在线高清| 日韩欧美久久一区| 一道本成人在线| 精品一区二区三区免费播放| 亚洲精品亚洲人成人网在线播放| 精品国产一区二区三区不卡| 色琪琪一区二区三区亚洲区| 国产精品亚洲人在线观看| 爽好多水快深点欧美视频| 国产精品视频一二三| 日韩精品一区二区三区在线 | 国产专区综合网| 日日骚欧美日韩| 亚洲一区二区四区蜜桃| 国产精品美女久久久久久久久久久 | av在线这里只有精品| 国产综合久久久久影院| 亚洲大片一区二区三区| 亚洲免费av观看| 中文字幕国产精品一区二区| 欧美成人精品福利| 日韩视频免费观看高清完整版 | 日韩和欧美一区二区| 亚洲一级片在线观看| 1024成人网| 成人欧美一区二区三区| 欧美国产精品一区二区| 国产色爱av资源综合区| 国产日韩欧美制服另类| 久久在线免费观看| 久久天堂av综合合色蜜桃网| 日韩亚洲欧美在线观看| 欧美一区二区三区播放老司机| 欧美精品xxxxbbbb| 欧美夫妻性生活| 欧美一级二级在线观看| 精品久久99ma| 精品电影一区二区三区 | av男人天堂一区| aa级大片欧美| 欧美综合亚洲图片综合区| 欧美自拍丝袜亚洲| 欧美久久高跟鞋激| 日韩一区二区三区视频| 日韩欧美在线1卡| 久久综合中文字幕| 国产蜜臀97一区二区三区| 国产精品盗摄一区二区三区| 亚洲人吸女人奶水| 丝袜美腿亚洲色图| 国产一区二区在线看| 成人精品一区二区三区四区| 色婷婷av一区二区三区之一色屋| 欧美网站一区二区| 欧美一区二区视频在线观看2022| 欧美成人在线直播| 国产精品国产三级国产普通话蜜臀| 国产精品国产三级国产普通话99 | 成人高清视频在线观看| 欧美亚洲动漫制服丝袜| 欧美变态tickle挠乳网站| 国产日产欧产精品推荐色| 中文字幕一区二区在线观看| 一二三四区精品视频| 热久久国产精品| 国产成人av福利| 在线国产亚洲欧美| 精品国产乱码久久久久久夜甘婷婷| 欧美激情在线观看视频免费| 亚洲国产成人91porn| 国产精华液一区二区三区| 色狠狠av一区二区三区| 26uuu国产在线精品一区二区| 日韩一区有码在线| 蜜臀久久99精品久久久画质超高清| www.欧美亚洲| 精品国产一区久久| 亚洲国产人成综合网站| 国产精品一区二区在线看| 欧美精品久久天天躁| 日韩一区在线播放| 国产成人在线网站| 91精品久久久久久久91蜜桃 |