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

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

?? getpic.cpp

?? EVC做的Windows Mobile 的H263網絡視頻
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
              CBPY = CBPY^15;        /* needed in huffman coding only */
          }

        CBP = (CBPY << 2) | (MCBPC >> 4);
      }

      if (Mode == MODE_INTER4V && !adv_pred_mode) 
        if (!quiet)
          fputs("8x8 vectors not allowed in normal prediction mode\n",dlog);
          /* Could set fault-flag and resync */


      if (Mode == MODE_INTER_Q || Mode == MODE_INTRA_Q) {
        /* Read DQUANT if necessary */

        if (syntax_arith_coding) {
          DQUANT_index = decode_a_symbol(cumf_DQUANT);
          DQUANT = dquanttab[DQUANT_index] - 2; 
          quant +=DQUANT;
          //if (trace)
            //printf("DQUANT Index: %d DQUANT %d \n",DQUANT_index, DQUANT);
        }
        else {
          DQUANT = getbits(2);
          quant += DQ_tab[DQUANT];
          if (trace) {
            fputs("DQUANT (",dlog);
            printbits(DQUANT,2,2);
            //printf("): %d = %d\n",DQUANT,DQ_tab[DQUANT]);
          }
        }

        if (quant > 31 || quant < 1) {
          if (!quiet)
            fputs("Quantizer out of range: clipping\n",dlog);
          quant = mmax(1,mmin(31,quant));
          /* could set fault-flag and resync here */
        }
      }

      /* motion vectors */
      if (Mode == MODE_INTER || Mode == MODE_INTER_Q || 
          Mode == MODE_INTER4V || pb_frame) {

        if (Mode == MODE_INTER4V) { startmv = 1; stopmv = 4;}
        else { startmv = 0; stopmv = 0;}

        for (k = startmv; k <= stopmv; k++) {
          if (syntax_arith_coding) {
            mvx_index = decode_a_symbol(cumf_MVD);
            mvx = mvdtab[mvx_index];
            mvy_index = decode_a_symbol(cumf_MVD);
            mvy = mvdtab[mvy_index];
            //if (trace)
            //  printf("mvx_index: %d mvy_index: %d \n", mvy_index, mvx_index);
          }
          else {
            mvx = getTMNMV();
            mvy = getTMNMV();
          }

          pmv0 = find_pmv(xpos,ypos,k,0);
          pmv1 = find_pmv(xpos,ypos,k,1);
          mvx = motion_decode(mvx, pmv0);
          mvy = motion_decode(mvy, pmv1);
         /* if (trace) {
            printf("mvx: %d\n", mvx);
            printf("mvy: %d\n", mvy);
          }
		  */
          /* Check mv's to prevent seg.faults when error rate is high */
          if (!mv_outside_frame) {
            bsize = k ? 8 : 16;
            offset = k ? (((k-1)&1)<<3) : 0;
            /* checking only integer component */
            if ((xpos<<4) + (mvx/2) + offset < 0 ||
        (xpos<<4) + (mvx/2) + offset > (mb_width<<4) - bsize) {
              if (!quiet)
              fputs("mvx out of range: searching for sync\n",dlog);
              fault = 1;
            }
            offset = k ? (((k-1)&2)<<2) : 0;
            if ((ypos<<4) + (mvy/2) + offset < 0 ||
        (ypos<<4) + (mvy/2) + offset > (mb_height<<4) - bsize) {
              if (!quiet)
              fputs("mvy out of range: searching for sync\n",dlog);
              fault = 1;
            }
          }
          MV[0][k][ypos+1][xpos+1] = mvx;
          MV[1][k][ypos+1][xpos+1] = mvy;
        }

        /* PB frame delta vectors */

        if (pb_frame) {
          if (MODB == PBMODE_MVDB || MODB == PBMODE_CBPB_MVDB) {
            if (syntax_arith_coding) {
              mvdbx_index = decode_a_symbol(cumf_MVD);
              mvdbx = mvdtab[mvdbx_index];
              
              mvdby_index = decode_a_symbol(cumf_MVD);
              mvdby = mvdtab[mvdby_index];
            }
            else {
              mvdbx = getTMNMV();
              mvdby = getTMNMV();
            }


            mvdbx = motion_decode(mvdbx, 0);
            mvdby = motion_decode(mvdby, 0);
            /* This will not work if the PB deltas are so large they
               require the second colums of the motion vector VLC
               table to be used.  To fix this it is necessary to
               calculate the MV predictor for the PB delta: TRB*MV/TRD
               here, and use this as the second parameter to
               motion_decode(). The B vector itself will then be
               returned from motion_decode(). This will have to be
               changed to the PB delta again, since it is the PB delta
               which is used later in this program. I don't think PB
               deltas outside the range mentioned above is useful, but
               you never know... */

            /*if (trace) {
              printf("MVDB x: %d\n", mvdbx);
              printf("MVDB y: %d\n", mvdby);
            }
          
			*/	
		}
          else {
            mvdbx = 0; 
            mvdby = 0;
          }
        }
      }

      if (fault) goto resync;

    }
    else { /* COD == 1 --> skipped MB */
      if (MBA>=MBAmax)
        return; /* all macroblocks decoded */
      if (!syntax_arith_coding)
        if (pict_type == PCT_INTER)
          flushbits(1);

      Mode = MODE_INTER;
      
      /* Reset CBP */
      CBP = CBPB = 0;

      /* reset motion vectors */
      MV[0][0][ypos+1][xpos+1] = 0;
      MV[1][0][ypos+1][xpos+1] = 0;
      mvdbx = 0;
      mvdby = 0;
    }

    /* Store Mode*/
    modemap[ypos+1][xpos+1] = Mode;

    if (Mode == MODE_INTRA || Mode == MODE_INTRA_Q) 
      if (!pb_frame)
        MV[0][0][ypos+1][xpos+1]=MV[1][0][ypos+1][xpos+1] = 0;


  reconstruct_mb:

    /* pixel coordinates of top left corner of current macroblock */
    /* one delayed because of OBMC */
    if (xpos > 0) {
      bx = 16*(xpos-1);
      by = 16*ypos;
    }
    else {
      bx = coded_picture_width-16;
      by = 16*(ypos-1);
    }

    if (MBA > 0) {

      Mode = modemap[by/16+1][bx/16+1];

      /* forward motion compensation for B-frame */
      if (pb_frame)
        reconstruct(bx,by,0,pmvdbx,pmvdby);
      
      /* motion compensation for P-frame */
      if (Mode == MODE_INTER || Mode == MODE_INTER_Q || Mode == MODE_INTER4V)
        reconstruct(bx,by,1,0,0);

      /* copy or add block data into P-picture */
      for (comp=0; comp<blk_cnt; comp++) {
        /* inverse DCT */
        if (Mode == MODE_INTRA || Mode == MODE_INTRA_Q) {
          if (refidct)
            idctref(ld->block[comp]);
          else
            idct(ld->block[comp]);
          addblock(comp,bx,by,0);
        }
        else if ( (pCBP & (1<<(blk_cnt-1-comp))) ) {
          /* No need to to do this for blocks with no coeffs */
          if (refidct)
            idctref(ld->block[comp]);
          else
            idct(ld->block[comp]);
          addblock(comp,bx,by,1);
        }
      }
      
      
      if (pb_frame) {
        /* add block data into B-picture */
        for (comp = 6; comp<blk_cnt+6; comp++) {
          if (!pCOD || adv_pred_mode)
            reconblock_b(comp-6,bx,by,Mode,pmvdbx,pmvdby);
          if ( (pCBPB & (1<<(blk_cnt-1-comp%6))) ) {
            if (refidct)
              idctref(ld->block[comp]);
            else
              idct(ld->block[comp]);
            addblock(comp,bx,by,1);
          }
        }
      }
      
    } /* end if (MBA > 0) */

    if (!COD) {

      Mode = modemap[ypos+1][xpos+1];

      /* decode blocks */
      for (comp=0; comp<blk_cnt; comp++) {

        clearblock(comp);
        if (Mode == MODE_INTRA || Mode == MODE_INTRA_Q) { /* Intra */
          bp = ld->block[comp];
          if(syntax_arith_coding) {
            INTRADC_index = decode_a_symbol(cumf_INTRADC);
            bp[0] = intradctab[INTRADC_index];
            //if (trace)
            //  printf("INTRADC Index: %d INTRADC: %d \n", INTRADC_index, bp[0]);
          }
          else {
            bp[0] = getbits(8);
            /*if (trace) {
              printf("DC[%d]: (",comp);
              printbits((int)bp[0],8,8);
              printf("): %d\n",(int)bp[0]);
            }
			*/ 
			
		}

          if (bp[0] == 128)
            if (!quiet)
              fputs("Illegal DC-coeff: 1000000\n",dlog);
          if (bp[0] == 255)  /* Spec. in H.26P, not in TMN4 */
            bp[0] = 128;
          bp[0] *= 8; /* Iquant */
          if ( (CBP & (1<<(blk_cnt-1-comp))) ) {
            if (!syntax_arith_coding)
              getblock(comp,0);
            else 
              get_sac_block(comp,0);
          }
        }
        else { /* Inter */
          if ( (CBP & (1<<(blk_cnt-1-comp))) ) {
            if (!syntax_arith_coding)
              getblock(comp,1);
            else
              get_sac_block(comp,1);
          }

        }
        if (fault) goto resync;
      }

      /* Decode B blocks */
      if (pb_frame) {
        for (comp=6; comp<blk_cnt+6; comp++) {
          clearblock(comp);
          if ( (CBPB & (1<<(blk_cnt-1-comp%6))) ) {
            if (!syntax_arith_coding)
              getblock(comp,1);
            else
              get_sac_block(comp,1);
          }
          if (fault) goto resync;
        }
      }
          
    }

    /* advance to next macroblock */
    MBA++;

    pCBP = CBP; pCBPB = CBPB; pCOD = COD;
    pmvdbx = mvdbx; pmvdby = mvdby;
    fflush(stdout);

    if (MBA >= MBAmax && !last_done) {
      COD = 1;
      xpos = 0;
      ypos++;
      last_done = 1;
      goto reconstruct_mb;
    }

  }
}

/* set block to zero */

static void clearblock(int comp)
{
  int *bp;
  int i;

  bp = (int *)ld->block[comp];

  for (i=0; i<8; i++)
  {
    bp[0] = bp[1] = bp[2] = bp[3] = 0;
    bp += 4;
  }
}


/* move/add 8x8-Block from block[comp] to refframe or bframe */

static void addblock(int comp,int bx,int by,int addflag)
{
  int cc,i, iincr, P = 1;
  unsigned char *rfp;
  short *bp;

  bp = ld->block[comp];

  if (comp >= 6) {
    /* This is a component for B-frame forward prediction */
    P = 0;
    addflag = 1;
    comp -= 6;
  }

  cc = (comp<4) ? 0 : (comp&1)+1; /* color component index */

  if (cc==0) {
    /* luminance */
    
    /* frame DCT coding */
    if (P)
      rfp = newframe[0]
        + coded_picture_width*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
    else
      rfp = bframe[0]
        + coded_picture_width*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
    iincr = coded_picture_width;
  }
  else {
    /* chrominance */

    /* scale coordinates */
    bx >>= 1;
    by >>= 1;
    /* frame DCT coding */
    if (P)
      rfp = newframe[cc] + chrom_width*by + bx;
    else
      rfp = bframe[cc] + chrom_width*by + bx;
    iincr = chrom_width;
  }


  if (addflag) {
    for (i=0; i<8; i++) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩午夜精品| 欧美高清一级片在线观看| 久久综合久久久久88| 成人欧美一区二区三区黑人麻豆| 婷婷六月综合网| 一本大道久久a久久精品综合| 精品成人一区二区| 日韩精品视频网站| 一本到不卡免费一区二区| 久久久久9999亚洲精品| 日产国产高清一区二区三区| 色婷婷av一区二区三区大白胸 | 欧美午夜在线观看| 日本一二三不卡| 国产一区二区三区免费播放| 51精品久久久久久久蜜臀| 亚洲精品乱码久久久久久久久 | 国产精品久久久久aaaa| 精品制服美女丁香| 欧美一区二区三区思思人| 亚洲第一福利视频在线| 在线影视一区二区三区| 国产午夜一区二区三区| 国产乱人伦偷精品视频不卡| 亚洲精品在线观看网站| 蜜臀精品一区二区三区在线观看| 宅男在线国产精品| 蜜臀久久久99精品久久久久久| 在线播放91灌醉迷j高跟美女| 一区二区三区成人| 在线观看视频一区二区欧美日韩| 亚洲欧美日韩精品久久久久| 91丨九色porny丨蝌蚪| 亚洲视频狠狠干| 92国产精品观看| 一区二区三区精品在线| 在线一区二区三区| 亚洲国产人成综合网站| 6080国产精品一区二区| 九九久久精品视频| 国产日韩欧美一区二区三区综合| 丰满白嫩尤物一区二区| 中文字幕一区二区三区视频| 日本道色综合久久| 亚洲国产一区在线观看| 日韩三级av在线播放| 精品一区二区三区蜜桃| 国产偷国产偷精品高清尤物| 99久久婷婷国产精品综合| 一区二区三区91| 日韩一区二区高清| 国产寡妇亲子伦一区二区| 日韩码欧中文字| 日韩午夜中文字幕| 福利一区在线观看| 亚洲在线免费播放| 日韩欧美成人激情| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩av网站在线观看| 国产午夜精品美女毛片视频| 99精品欧美一区二区三区小说| 亚洲线精品一区二区三区八戒| 欧美高清精品3d| 国产不卡视频在线观看| 洋洋成人永久网站入口| 精品国产免费人成在线观看| eeuss鲁片一区二区三区在线看| 亚洲成av人**亚洲成av**| 精品sm捆绑视频| 色网站国产精品| 国产主播一区二区| 亚洲一区二区三区四区的| 久久精品人人做人人爽人人| 91国内精品野花午夜精品 | 日韩女优av电影| 色网站国产精品| 国产精品538一区二区在线| 亚洲精品国产一区二区精华液| 精品久久一区二区| 欧美伊人久久久久久久久影院 | 国产河南妇女毛片精品久久久| 亚洲第一成人在线| 国产精品每日更新| 精品欧美一区二区在线观看| 欧美性xxxxxx少妇| av高清不卡在线| 国产精品一区二区在线观看网站| 亚洲午夜激情av| 国产精品久久午夜| 久久综合丝袜日本网| 欧美精品在线一区二区三区| 色综合天天视频在线观看| 国产在线视频一区二区三区| 亚洲1区2区3区视频| 亚洲免费视频成人| 国产精品网站在线播放| 久久色.com| 精品国产乱码久久久久久闺蜜| 6080日韩午夜伦伦午夜伦| 欧美天堂一区二区三区| 91免费视频网址| 91在线一区二区| 99精品欧美一区二区蜜桃免费| 成人免费视频免费观看| 国产经典欧美精品| 国产精品18久久久久久久久久久久| 蜜桃av噜噜一区| 精品一区二区在线播放| 极品少妇xxxx偷拍精品少妇| 美女视频黄久久| 久久国产日韩欧美精品| 久久国产尿小便嘘嘘尿| 精久久久久久久久久久| 国产乱一区二区| 高清不卡一区二区| 99精品桃花视频在线观看| 91麻豆精品在线观看| 在线观看日韩国产| 欧美精品免费视频| 欧美电影在哪看比较好| 欧美精品久久天天躁| 日韩视频免费观看高清完整版在线观看 | 蜜桃视频第一区免费观看| 美国一区二区三区在线播放| 国产一区二区精品在线观看| 福利91精品一区二区三区| 99re这里只有精品6| 在线观看不卡一区| 制服丝袜亚洲精品中文字幕| 日韩精品一区二| 国产精品视频在线看| 亚洲色图欧美在线| 亚洲va欧美va天堂v国产综合| 日韩av电影免费观看高清完整版| 国产原创一区二区| 成人精品免费看| 欧美无砖砖区免费| 精品成人一区二区| 亚洲天天做日日做天天谢日日欢 | 91麻豆精品国产91久久久久久| 欧美一区二区播放| 国产亚洲精品7777| 亚洲综合在线免费观看| 免费在线看一区| 成人国产一区二区三区精品| 欧美日韩一级二级三级| 国产亚洲女人久久久久毛片| 一区二区免费在线| 久热成人在线视频| 99这里都是精品| 日韩限制级电影在线观看| 日韩一区日韩二区| 久久97超碰国产精品超碰| 91啪在线观看| 久久综合九色综合97婷婷女人| 一区二区三区四区不卡在线| 久久精品国产亚洲a| 色呦呦一区二区三区| 精品国产一区二区三区四区四| 亚洲欧美激情小说另类| 精久久久久久久久久久| 欧美手机在线视频| 国产精品午夜久久| 久草在线在线精品观看| 欧美性大战久久久久久久| 国产欧美精品一区aⅴ影院 | 91麻豆国产福利在线观看| 久久一夜天堂av一区二区三区| 亚洲成人综合在线| 99久久精品费精品国产一区二区| 欧美成人午夜电影| 亚洲国产aⅴ成人精品无吗| 不卡视频在线看| 国产亚洲一区二区三区在线观看| 日产精品久久久久久久性色| 在线精品视频免费观看| 亚洲欧洲三级电影| 国产91在线|亚洲| 久久欧美一区二区| 麻豆久久一区二区| 欧美日韩高清一区二区| 亚洲一区二区三区在线看| heyzo一本久久综合| 日本一区二区视频在线| 国产精品自拍av| 久久久五月婷婷| 国产一区欧美一区| 精品国产电影一区二区| 美女看a上一区| 日韩欧美专区在线| 免费观看91视频大全| 337p亚洲精品色噜噜噜| 日本免费新一区视频| 欧美一区二区久久久| 日韩电影在线看| 日韩欧美在线1卡| 黑人巨大精品欧美一区| 久久先锋影音av鲁色资源网| 精品在线视频一区| 国产亚洲欧美激情|