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

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

?? putpic.c

?? JPEG-MPEG編解碼技術書集的代碼
?? C
字號:
/* putpic.c, 塊和運動向量編碼程序/

#include <stdio.h>#include "global.h"static void putmvs(int MV[2][2][2], int PMV[2][2][2],  int mv_field_sel[2][2], int dmvector[2], int s, int motion_type,  int hor_f_code, int vert_f_code);/* 量化和完整圖像的變長編碼*/void putpict(frame)unsigned char *frame;{  int i, j, k, comp, cc;  int mb_type;  int PMV[2][2][2];  int prev_mquant;  int cbp, MBAinc;  rc_init_pict(frame);   putpicthdr();  prev_mquant = rc_start_mb();   k = 0;  for (j=0; j<mb_height2; j++)  {    /* macroblock row loop */    for (i=0; i<mb_width; i++)    {      /* macroblock loop */      if (i==0)      {        alignbits();          putbits(SLICE_MIN_START+j,32);           /* quantiser_scale_code */        putbits(q_scale_type ? map_non_linear_mquant[prev_mquant]                             : prev_mquant >> 1, 5);          putbits(0,1); /* extra_bit_slice */          for (cc=0; cc<3; cc++)          dc_dct_pred[cc] = 0;        PMV[0][0][0]=PMV[0][0][1]=PMV[1][0][0]=PMV[1][0][1]=0;        PMV[0][1][0]=PMV[0][1][1]=PMV[1][1][0]=PMV[1][1][1]=0;          MBAinc = i + 1;      }      mb_type = mbinfo[k].mb_type;      mbinfo[k].mquant = rc_calc_mquant(k);      /* 量化宏塊*/      if (mb_type & MB_INTRA)      {        for (comp=0; comp<block_count; comp++)          quant_intra(blocks[k*block_count+comp],blocks[k*block_count+comp],                      dc_prec,intra_q,recip_intra_q, mbinfo[k].mquant);        mbinfo[k].cbp = cbp = (1<<block_count) - 1;      }      else      {        cbp = 0;        for (comp=0;comp<block_count;comp++)          cbp = (cbp<<1) | quant_non_intra(blocks[k*block_count+comp],                                           blocks[k*block_count+comp],                                           inter_q, recip_inter_q,mbinfo[k].mquant);        mbinfo[k].cbp = cbp;        if (cbp)          mb_type|= MB_PATTERN;      }      if (cbp && prev_mquant!=mbinfo[k].mquant)        mb_type|= MB_QUANT;      if (i!=0 && i!=mb_width-1 && !cbp)      {        if (pict_type==P_TYPE && !(mb_type&MB_FORWARD))        {          for (cc=0; cc<3; cc++)            dc_dct_pred[cc] = 0;          PMV[0][0][0]=PMV[0][0][1]=PMV[1][0][0]=PMV[1][0][1]=0;          PMV[0][1][0]=PMV[0][1][1]=PMV[1][1][0]=PMV[1][1][1]=0;          mbinfo[k].mb_type = mb_type;          mbinfo[k].skipped = 1;          MBAinc++;          k++;          continue;        }        if (pict_type==B_TYPE && pict_struct==FRAME_PICTURE            && mbinfo[k].motion_type==MC_FRAME            && ((mbinfo[k-1].mb_type^mb_type)&(MB_FORWARD|MB_BACKWARD))==0            && (!(mb_type&MB_FORWARD) ||                (PMV[0][0][0]==mbinfo[k].MV[0][0][0] &&                 PMV[0][0][1]==mbinfo[k].MV[0][0][1]))            && (!(mb_type&MB_BACKWARD) ||                (PMV[0][1][0]==mbinfo[k].MV[0][1][0] &&                 PMV[0][1][1]==mbinfo[k].MV[0][1][1])))        {                    mbinfo[k].mb_type = mb_type;          mbinfo[k].skipped = 1;          MBAinc++;          k++;          continue;        }        if (pict_type==B_TYPE && pict_struct!=FRAME_PICTURE            && mbinfo[k].motion_type==MC_FIELD            && ((mbinfo[k-1].mb_type^mb_type)&(MB_FORWARD|MB_BACKWARD))==0            && (!(mb_type&MB_FORWARD) ||                (PMV[0][0][0]==mbinfo[k].MV[0][0][0] &&                 PMV[0][0][1]==mbinfo[k].MV[0][0][1] &&                 mbinfo[k].mv_field_sel[0][0]==(pict_struct==BOTTOM_FIELD)))            && (!(mb_type&MB_BACKWARD) ||                (PMV[0][1][0]==mbinfo[k].MV[0][1][0] &&                 PMV[0][1][1]==mbinfo[k].MV[0][1][1] &&                 mbinfo[k].mv_field_sel[0][1]==(pict_struct==BOTTOM_FIELD))))        {          mbinfo[k].mb_type = mb_type;          mbinfo[k].skipped = 1;          MBAinc++;          k++;          continue;        }      }      mbinfo[k].skipped = 0;      if (pict_type==P_TYPE && !cbp && !(mb_type&MB_FORWARD))        mb_type|= MB_FORWARD;      putaddrinc(MBAinc);       MBAinc = 1;      putmbtype(pict_type,mb_type); /* macroblock type */      if (mb_type & (MB_FORWARD|MB_BACKWARD) && !frame_pred_dct)        putbits(mbinfo[k].motion_type,2);      if (pict_struct==FRAME_PICTURE && cbp && !frame_pred_dct)        putbits(mbinfo[k].dct_type,1);      if (mb_type & MB_QUANT)      {        putbits(q_scale_type ? map_non_linear_mquant[mbinfo[k].mquant]                             : mbinfo[k].mquant>>1,5);        prev_mquant = mbinfo[k].mquant;      }      if (mb_type & MB_FORWARD)      {        /* forward motion vectors, update predictors */        putmvs(mbinfo[k].MV,PMV,mbinfo[k].mv_field_sel,mbinfo[k].dmvector,0,          mbinfo[k].motion_type,forw_hor_f_code,forw_vert_f_code);      }      if (mb_type & MB_BACKWARD)      {        /* backward motion vectors, update predictors */        putmvs(mbinfo[k].MV,PMV,mbinfo[k].mv_field_sel,mbinfo[k].dmvector,1,          mbinfo[k].motion_type,back_hor_f_code,back_vert_f_code);      }      if (mb_type & MB_PATTERN)      {        putcbp((cbp >> (block_count-6)) & 63);        if (chroma_format!=CHROMA420)          putbits(cbp,block_count-6);      }      for (comp=0; comp<block_count; comp++)      {        /* block loop */        if (cbp & (1<<(block_count-1-comp)))        {          if (mb_type & MB_INTRA)          {            cc = (comp<4) ? 0 : (comp&1)+1;            putintrablk(blocks[k*block_count+comp],cc);          }          else            putnonintrablk(blocks[k*block_count+comp]);        }      }      /* reset predictors */      if (!(mb_type & MB_INTRA))        for (cc=0; cc<3; cc++)          dc_dct_pred[cc] = 0;      if (mb_type & MB_INTRA || (pict_type==P_TYPE && !(mb_type & MB_FORWARD)))      {        PMV[0][0][0]=PMV[0][0][1]=PMV[1][0][0]=PMV[1][0][1]=0;        PMV[0][1][0]=PMV[0][1][1]=PMV[1][1][0]=PMV[1][1][1]=0;      }      mbinfo[k].mb_type = mb_type;      k++;    }  }  rc_update_pict();  vbv_end_of_picture();}/* 輸出運動向量 * * 該程序也對運動向量的預測進行更新 */ static void putmvs(MV,PMV,mv_field_sel,dmvector,s,motion_type,  hor_f_code,vert_f_code)int MV[2][2][2],PMV[2][2][2];int mv_field_sel[2][2];int dmvector[2];int s,motion_type,hor_f_code,vert_f_code;{  if (pict_struct==FRAME_PICTURE)  {    if (motion_type==MC_FRAME)    {      /* frame prediction */      putmv(MV[0][s][0]-PMV[0][s][0],hor_f_code);      putmv(MV[0][s][1]-PMV[0][s][1],vert_f_code);      PMV[0][s][0]=PMV[1][s][0]=MV[0][s][0];      PMV[0][s][1]=PMV[1][s][1]=MV[0][s][1];    }    else if (motion_type==MC_FIELD)    {      /* field prediction */      putbits(mv_field_sel[0][s],1);      putmv(MV[0][s][0]-PMV[0][s][0],hor_f_code);      putmv((MV[0][s][1]>>1)-(PMV[0][s][1]>>1),vert_f_code);      putbits(mv_field_sel[1][s],1);      putmv(MV[1][s][0]-PMV[1][s][0],hor_f_code);      putmv((MV[1][s][1]>>1)-(PMV[1][s][1]>>1),vert_f_code);      PMV[0][s][0]=MV[0][s][0];      PMV[0][s][1]=MV[0][s][1];      PMV[1][s][0]=MV[1][s][0];      PMV[1][s][1]=MV[1][s][1];    }    else    {      /* dual prime prediction */      putmv(MV[0][s][0]-PMV[0][s][0],hor_f_code);      putdmv(dmvector[0]);      putmv((MV[0][s][1]>>1)-(PMV[0][s][1]>>1),vert_f_code);      putdmv(dmvector[1]);      PMV[0][s][0]=PMV[1][s][0]=MV[0][s][0];      PMV[0][s][1]=PMV[1][s][1]=MV[0][s][1];    }  }  else  {    /* field picture */    if (motion_type==MC_FIELD)    {      /* field prediction */      putbits(mv_field_sel[0][s],1);      putmv(MV[0][s][0]-PMV[0][s][0],hor_f_code);      putmv(MV[0][s][1]-PMV[0][s][1],vert_f_code);      PMV[0][s][0]=PMV[1][s][0]=MV[0][s][0];      PMV[0][s][1]=PMV[1][s][1]=MV[0][s][1];    }    else if (motion_type==MC_16X8)    {      /* 16x8 prediction */      putbits(mv_field_sel[0][s],1);      putmv(MV[0][s][0]-PMV[0][s][0],hor_f_code);      putmv(MV[0][s][1]-PMV[0][s][1],vert_f_code);      putbits(mv_field_sel[1][s],1);      putmv(MV[1][s][0]-PMV[1][s][0],hor_f_code);      putmv(MV[1][s][1]-PMV[1][s][1],vert_f_code);      PMV[0][s][0]=MV[0][s][0];      PMV[0][s][1]=MV[0][s][1];      PMV[1][s][0]=MV[1][s][0];      PMV[1][s][1]=MV[1][s][1];    }    else    {      /* dual prime prediction */      putmv(MV[0][s][0]-PMV[0][s][0],hor_f_code);      putdmv(dmvector[0]);      putmv(MV[0][s][1]-PMV[0][s][1],vert_f_code);      putdmv(dmvector[1]);      PMV[0][s][0]=PMV[1][s][0]=MV[0][s][0];      PMV[0][s][1]=PMV[1][s][1]=MV[0][s][1];    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av电影在线网| 国产精品久久二区二区| 精品视频一区三区九区| 99视频在线精品| 亚洲韩国精品一区| 欧美三级中文字幕在线观看| 欧美成人video| 久久久国际精品| 日本精品一级二级| 午夜精品久久久久久久| 国产91精品在线观看| 亚洲一区在线电影| 午夜激情一区二区| 国产激情精品久久久第一区二区| 一区二区三区精品视频在线| 欧美精品三级日韩久久| 成人精品鲁一区一区二区| 日韩精品91亚洲二区在线观看| 国产精品资源网站| 亚洲欧洲成人自拍| 亚洲成av人片一区二区三区| 一区在线播放视频| 精品伦理精品一区| 中文在线资源观看网站视频免费不卡| 欧美成人video| 91精品国产综合久久精品| 在线观看亚洲精品| 欧美性极品少妇| 678五月天丁香亚洲综合网| 欧美性感一区二区三区| 欧美老肥妇做.爰bbww视频| 6080午夜不卡| 精品国产一区二区亚洲人成毛片| 精品美女被调教视频大全网站| 在线影视一区二区三区| 色av成人天堂桃色av| 欧美在线啊v一区| 91.麻豆视频| 久久综合九色综合欧美就去吻| 欧美一区二区三区系列电影| 91麻豆精品国产91久久久久 | 26uuu亚洲综合色欧美| 精品国产乱子伦一区| 国产欧美一区视频| 亚洲一区二区精品久久av| 日本麻豆一区二区三区视频| 久久国产福利国产秒拍| 国产成人av一区二区三区在线| 不卡一区二区在线| 欧美日韩国产色站一区二区三区| 精品国产凹凸成av人网站| 国产精品伦理在线| 五月婷婷久久综合| av中文字幕一区| 91精品一区二区三区在线观看| 2021国产精品久久精品| 一区二区三区精密机械公司| 秋霞午夜av一区二区三区| 91免费版在线看| 久久久久国色av免费看影院| 亚洲第一久久影院| 成人高清视频在线| 欧美成人女星排名| 亚洲第一搞黄网站| 91久久精品一区二区三区| 久久久久久久久伊人| 香蕉乱码成人久久天堂爱免费| 国产suv精品一区二区6| 日韩你懂的电影在线观看| 亚洲欧美日韩中文播放 | 欧美三级日本三级少妇99| 91精品国产色综合久久久蜜香臀| 岛国av在线一区| 在线日韩国产精品| 国产精品美女www爽爽爽| 蜜桃视频一区二区| 欧美午夜片在线看| 亚洲一区二区美女| 色综合色综合色综合色综合色综合| 亚洲精品在线观看视频| 日韩国产精品久久| 欧美精品日日鲁夜夜添| 一二三四区精品视频| 91蝌蚪porny九色| 中文乱码免费一区二区| 国产一区不卡在线| 日韩精品一区二区三区中文不卡 | 亚洲日本护士毛茸茸| 韩国成人福利片在线播放| 91欧美一区二区| 亚洲免费资源在线播放| 不卡的av网站| 亚洲免费在线视频一区 二区| 91在线播放网址| 亚洲精品乱码久久久久久黑人| 成人av网站大全| 中文字幕一区视频| 91香蕉视频在线| 亚洲综合视频网| 91精品国产免费| 精品亚洲porn| 国产欧美一区二区三区在线看蜜臀| 国产一区二区中文字幕| 亚洲精品五月天| 欧美中文字幕不卡| 日本伊人午夜精品| 日韩精品中文字幕在线一区| 国产麻豆精品视频| 国产精品久久久久国产精品日日| 成人午夜av影视| 亚洲另类春色国产| 99久久婷婷国产综合精品| 国产精品国产馆在线真实露脸| 精品中文av资源站在线观看| 久久久久久亚洲综合影院红桃| 国产99精品国产| 亚洲精品视频在线观看网站| 欧美日韩黄色一区二区| 久久99九九99精品| 国产精品欧美经典| 欧美精品少妇一区二区三区| 麻豆精品一区二区| 国产精品免费视频一区| 欧美日韩第一区日日骚| 国产精品中文欧美| 午夜视频在线观看一区二区| 久久久亚洲精华液精华液精华液| 91丨porny丨蝌蚪视频| 免费av网站大全久久| 日本一二三四高清不卡| 国产日本亚洲高清| 欧美亚洲综合另类| 国产成人午夜精品影院观看视频| 一区二区三区丝袜| 精品99一区二区| 欧美视频在线一区| 天天色天天操综合| 国产精品久久久久久久久免费桃花 | 99国产精品久久久| 日本不卡一区二区三区高清视频| 国产精品久久久久毛片软件| 在线播放中文一区| 色综合中文字幕国产| 精品一区二区三区久久| 午夜精品久久久久久久99樱桃| 日本一区免费视频| 精品国产百合女同互慰| 欧美日韩国产综合视频在线观看| 成人午夜大片免费观看| 精品一区二区三区在线播放视频| 夜夜揉揉日日人人青青一国产精品 | 国产亚洲精品超碰| 日韩丝袜美女视频| 欧美日韩国产系列| 色综合久久66| kk眼镜猥琐国模调教系列一区二区 | 欧洲视频一区二区| 成人va在线观看| 国产高清不卡一区二区| 美女一区二区三区在线观看| 亚洲成av人片在线| 亚洲福利一区二区三区| 亚洲一区二区四区蜜桃| 综合欧美一区二区三区| 国产精品国产三级国产普通话三级| 欧美日韩专区在线| 91在线小视频| 欧美亚洲免费在线一区| 欧美色综合影院| 91精品国产综合久久久蜜臀粉嫩 | 日韩一区二区三区免费看 | 精品剧情在线观看| 3atv一区二区三区| 91精品福利在线一区二区三区| 欧美区在线观看| 日韩视频国产视频| 精品国产精品网麻豆系列 | 国产精品一二三区在线| caoporm超碰国产精品| 欧美日韩高清一区二区不卡| 日韩三区在线观看| 国产女主播视频一区二区| 亚洲午夜一区二区三区| 国产乱人伦偷精品视频免下载| 99视频超级精品| 欧美大片日本大片免费观看| 成人欧美一区二区三区视频网页| 亚洲1区2区3区视频| 高清国产一区二区| 国产精品国产三级国产专播品爱网| 亚洲激情在线激情| 久久99久国产精品黄毛片色诱| 99re在线精品| 精品免费99久久| 亚洲福利视频一区二区| 成人一级视频在线观看| 欧美一区二区三区在| 亚洲乱码国产乱码精品精小说 | 美女任你摸久久| 色婷婷亚洲精品|