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

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

?? getblk.c

?? 視頻的h263解碼
?? C
字號:
/************************************************************************ * *  getblk.c, DCT block decoding for tmndecode (H.263 decoder) *  Copyright (C) 1996  Telenor R&D, Norway *        Karl Olav Lillevold <Karl.Lillevold@nta.no> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *  Karl Olav Lillevold               <Karl.Lillevold@nta.no> *  Telenor Research and Development *  P.O.Box 83                        tel.:   +47 63 84 84 00 *  N-2007 Kjeller, Norway            fax.:   +47 63 81 00 76 * *  Robert Danielsen                  e-mail: Robert.Danielsen@nta.no *  Telenor Research and Development  www:    http://www.nta.no/brukere/DVC/ *  P.O.Box 83                        tel.:   +47 63 84 84 00 *  N-2007 Kjeller, Norway            fax.:   +47 63 81 00 76 *   ************************************************************************//* * based on mpeg2decode, (C) 1994, MPEG Software Simulation Group * and mpeg2play, (C) 1994 Stefan Eckart *                         <stefan@lis.e-technik.tu-muenchen.de> * */#include <stdio.h>#include <stdlib.h>#include "config.h"#include "tmndec.h"#include "global.h"#define INDICES#include "indices.h"#define SACTABLES#include "sactbls.h"typedef struct {  char run, level, len;} DCTtab;typedef struct {  int val, len;} VLCtabI;typedef struct {  int val, run, sign;} RunCoef;/* local prototypes */RunCoef vlc_word_decode _ANSI_ARGS_((int symbol_word, int *last)); RunCoef Decode_Escape_Char _ANSI_ARGS_((int intra, int *last));int DecodeTCoef _ANSI_ARGS_((int position, int intra));extern VLCtabI DCT3Dtab0[],DCT3Dtab1[],DCT3Dtab2[];void getblock(comp,mode)int comp;int mode;{  int val, i, j, sign;  unsigned int code;  VLCtabI *tab;  short *bp;  int run, last, level, QP;  short *qval;  bp = ld->block[comp];     /* decode AC coefficients */  for (i=(mode==0); ; i++) {    code = showbits(12);    if (code>=512)      tab = &DCT3Dtab0[(code>>5)-16];    else if (code>=128)      tab = &DCT3Dtab1[(code>>2)-32];    else if (code>=8)      tab = &DCT3Dtab2[(code>>0)-8];    else {      if (!quiet)        fprintf(stderr,"invalid Huffman code in getblock()\n");      fault = 1;      return;    }    flushbits(tab->len);    run = (tab->val >> 4) & 255;    level = tab->val & 15;    last = (tab->val >> 12) & 1;    if (trace) {      printf(" (");      printbits(code,12,tab->len);    }   if (tab->val==ESCAPE) { /* escape */      if (trace) {        putchar(' ');        printbits(showbits(1),1,1);      }      last = getbits1();      if (trace) {        putchar(' ');        printbits(showbits(6),6,6);      }      i += run = getbits(6);      if (trace) {        putchar(' ');        printbits(showbits(8),8,8);      }      level = getbits(8);      if ((sign = (level>=128)))        val = 256 - level;      else         val = level;    }    else {      i+= run;      val = level;      sign = getbits(1);      if (trace)        printf("%d",sign);    }    if (i >= 64)    {      if (!quiet)        fprintf(stderr,"DCT coeff index (i) out of bounds\n");      fault = 1;      return;    }    if (trace)      printf("): %d/%d\n",run,sign ? -val : val);    j = zig_zag_scan[i];    qval = &bp[j];    if (comp >= 6)      QP = mmax (1, mmin( 31, ( bquant_tab[bquant] * quant ) >> 2 ));    else       QP = quant;          /* TMN3 dequantization */    if ((QP % 2) == 1)      *qval = ( sign ? -(QP * (2* val+1))  : QP * (2* val+1) );    else      *qval = ( sign ? -(QP * (2* val+1)-1): QP * (2* val+1)-1 );    if (last) { /* That's it */      if (trace)        printf("last\n");      return;    }  }}/********************************************************************* * *        Name:        get_sac_block * *	Description:	Decodes blocks of Arithmetic Encoded DCT Coeffs. *        and performs Run Length Decoding and Coefficient         *        Dequantisation. * *	Input:        Picture block type and number. * *	Returns:	Nothing. * *	Side Effects:	 * *	Author:        Wayne Ellis <ellis_w_wayne@bt-web.bt.co.uk> * *********************************************************************/void get_sac_block(int comp, int ptype){  int position=0;  int TCOEF_index, symbol_word;  int last=0, QP, i, j;  short *qval, *bp;  RunCoef DCTcoef;  bp = ld->block[comp];  i = (ptype==0);  while (!last) {	/* while there are DCT coefficients remaining */    position++;	/* coefficient counter relates to Coeff. model */    TCOEF_index = DecodeTCoef(position, !ptype);    if (TCOEF_index == ESCAPE_INDEX) {        /* ESCAPE code encountered */      DCTcoef = Decode_Escape_Char(!ptype, &last);      if (trace)        printf("ESC: ");    }    else {      symbol_word = tcoeftab[TCOEF_index];      DCTcoef = vlc_word_decode(symbol_word,&last);    }    if (trace) {      printf("val: %d, run: %d, sign: %d, last: %d\n",              DCTcoef.val, DCTcoef.run, DCTcoef.sign, last);    }    i += DCTcoef.run;    j = zig_zag_scan[i];    qval = &bp[j];    i++;    if (comp >= 6)      QP = mmax (1, mmin( 31, ( bquant_tab[bquant] * quant ) >> 2 ));    else       QP = quant;    if ((QP % 2) == 1)      *qval = ( (DCTcoef.sign) ? -(QP * (2* (DCTcoef.val)+1))  :         QP * (2* (DCTcoef.val)+1) );    else      *qval = ( (DCTcoef.sign) ? -(QP * (2* (DCTcoef.val)+1)-1):         QP * (2* (DCTcoef.val)+1)-1 );          }	  return;}/********************************************************************* * *        Name:        vlc_word_decode * *	Description:	Fills Decoder FIFO after a fixed word length *        string has been detected. * *	Input:        Symbol to be decoded, last data flag. * *	Returns:	Decoded Symbol via the structure DCTcoeff. * *	Side Effects:	Updates last flag. * *	Author:        Wayne Ellis <ellis_w_wayne@bt-web.bt.co.uk> * *********************************************************************/RunCoef vlc_word_decode(int symbol_word, int *last){  int sign_index;  RunCoef DCTcoef;  *last = (symbol_word >> 12) & 01;   DCTcoef.run = (symbol_word >> 4) & 255;   DCTcoef.val = (symbol_word) & 15;  sign_index = decode_a_symbol(cumf_SIGN);	  DCTcoef.sign = signtab[sign_index];          return (DCTcoef);} /********************************************************************* * *        Name:        Decode_Escape_Char * *	Description:	Decodes all components for a Symbol when an  *        ESCAPE character has been detected. * *	Input:        Picture Type and last data flag. * *	Returns:	Decoded Symbol via the structure DCTcoeff. * *	Side Effects:	Modifies last data flag. * *	Author:        Wayne Ellis <ellis_w_wayne@bt-web.bt.co.uk> * *********************************************************************/RunCoef Decode_Escape_Char(int intra, int *last){  int last_index, run, run_index, level, level_index;  RunCoef DCTcoef;  if (intra) {    last_index = decode_a_symbol(cumf_LAST_intra);    *last = last_intratab[last_index];  }  else {    last_index = decode_a_symbol(cumf_LAST);    *last = lasttab[last_index];  }  if (intra)     run_index = decode_a_symbol(cumf_RUN_intra);  else    run_index = decode_a_symbol(cumf_RUN);  run = runtab[run_index];  /*$if (mrun) run|=64;$*/  DCTcoef.run = run;  if (intra)    level_index = decode_a_symbol(cumf_LEVEL_intra);  else    level_index = decode_a_symbol(cumf_LEVEL);  if (trace)    printf("level_idx: %d ",level_index);  level = leveltab[level_index];  if (level >128)     level -=256;  if (level < 0) {    DCTcoef.sign = 1;    DCTcoef.val = abs(level);  }  else {	    DCTcoef.sign = 0;    DCTcoef.val = level;  }  return (DCTcoef);        }/********************************************************************* * *        Name:        DecodeTCoef * *	Description:	Decodes a.c DCT Coefficients using the         *        relevant arithmetic decoding model. * *	Input:        DCT Coeff count and Picture Type.	 * *	Returns:	Index to LUT * *	Side Effects:	None * *	Author:        Wayne Ellis <ellis_w_wayne@bt-web.bt.co.uk> * *********************************************************************/int DecodeTCoef(int position, int intra){  int index;  switch (position) {  case 1:    {      if (intra)         index = decode_a_symbol(cumf_TCOEF1_intra);      else         index = decode_a_symbol(cumf_TCOEF1);       break;     }  case 2:    {      if (intra)         index = decode_a_symbol(cumf_TCOEF2_intra);      else        index = decode_a_symbol(cumf_TCOEF2);      break;     }  case 3:    {      if (intra)         index = decode_a_symbol(cumf_TCOEF3_intra);      else        index = decode_a_symbol(cumf_TCOEF3);      break;     }  default:     {      if (intra)         index = decode_a_symbol(cumf_TCOEFr_intra);      else        index = decode_a_symbol(cumf_TCOEFr);      break;     }  }  return (index);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产尤物一区二区| 麻豆精品久久久| 91免费版在线| 亚洲自拍都市欧美小说| 欧美日韩一区二区在线观看视频| 亚洲不卡av一区二区三区| 3d动漫精品啪啪一区二区竹菊| 视频精品一区二区| 精品国产乱码久久久久久影片| 国产乱人伦偷精品视频免下载| 国产精品福利在线播放| 欧美影院一区二区| 精品一区二区在线看| 国产精品视频一二三| 91黄色激情网站| 韩国一区二区在线观看| 亚洲国产精品精华液ab| 欧美日韩黄色影视| 久久国产精品无码网站| 欧美激情一区二区| 精品视频色一区| 国产91在线观看丝袜| 亚洲影院理伦片| 26uuu国产日韩综合| av在线不卡网| 免费在线欧美视频| 国产精品国产三级国产aⅴ原创| 欧美日精品一区视频| 国产成人无遮挡在线视频| 亚洲国产成人av网| 国产婷婷色一区二区三区| 欧美猛男男办公室激情| 国产69精品久久777的优势| 亚洲午夜国产一区99re久久| 亚洲精品一线二线三线| 欧美性极品少妇| 国产91精品欧美| 偷窥少妇高潮呻吟av久久免费| 国产日韩欧美激情| 91精品国产综合久久久久久漫画 | 欧美日韩中字一区| 国产福利精品一区二区| 视频一区欧美精品| 亚洲久草在线视频| 国产亚洲欧美一区在线观看| 欧美日韩国产高清一区二区| 成人午夜电影小说| 久久精品av麻豆的观看方式| 亚洲视频综合在线| 精品国产免费视频| 欧美一二三在线| 在线视频综合导航| 99re热这里只有精品视频| 国产麻豆视频一区| 久久不见久久见免费视频1| 亚洲国产美女搞黄色| 国产精品三级视频| 2017欧美狠狠色| 日韩视频免费观看高清在线视频| 欧美影片第一页| 日本韩国精品一区二区在线观看| 国产成人免费视频 | 国产伦精一区二区三区| 日韩精品乱码av一区二区| 亚洲精品国产一区二区精华液| 中文字幕精品三区| 久久久久久久久久久久久久久99| 日韩欧美的一区| 日韩欧美电影在线| 精品国产乱码久久久久久久| 7777精品伊人久久久大香线蕉超级流畅 | 免费在线看成人av| 爽好久久久欧美精品| 亚洲国产精品尤物yw在线观看| 亚洲黄色片在线观看| 亚洲免费观看高清完整版在线观看熊| 国产精品网站导航| 国产精品毛片久久久久久久| 国产丝袜欧美中文另类| 国产欧美日韩精品a在线观看| 国产亚洲短视频| 国产精品久久免费看| 亚洲欧洲中文日韩久久av乱码| 中文字幕日韩一区| 亚洲小少妇裸体bbw| 亚洲第一二三四区| 奇米影视一区二区三区小说| 色菇凉天天综合网| 日韩国产欧美在线视频| 国产精品人人做人人爽人人添| 欧美日韩一区 二区 三区 久久精品| 精品在线观看视频| 亚洲五月六月丁香激情| 亚洲欧美在线视频观看| 国产日韩欧美综合在线| 久久―日本道色综合久久| 欧美一区二区三区的| 狠狠狠色丁香婷婷综合激情| 狠狠色狠狠色综合系列| 国产乱码精品一区二区三 | 国产精品嫩草影院com| 亚洲三级电影网站| 亚洲va欧美va国产va天堂影院| 麻豆视频一区二区| 国产不卡视频一区| 欧美在线视频全部完| 日韩午夜电影在线观看| 国产精品视频第一区| 亚洲国产va精品久久久不卡综合| 青青草国产成人av片免费| 国产成人免费视频网站高清观看视频 | 欧美成人伊人久久综合网| 精品国产3级a| 一区二区国产盗摄色噜噜| 强制捆绑调教一区二区| 成人91在线观看| 91精品国产福利在线观看| 亚洲国产高清aⅴ视频| 亚洲无人区一区| 国产suv精品一区二区6| 欧美福利一区二区| 国产精品美女久久久久久| 国产91高潮流白浆在线麻豆 | 天堂久久久久va久久久久| 国产在线不卡一卡二卡三卡四卡| 国产精品亚洲综合一区在线观看| 在线精品视频免费播放| 国产调教视频一区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 一区二区三区美女| 久久97超碰国产精品超碰| 色噜噜狠狠一区二区三区果冻| 欧美精品一区二区不卡| 亚洲一区二区不卡免费| 粉嫩av一区二区三区在线播放| 欧美日韩激情一区二区三区| 中文字幕一区二区三区四区不卡 | 三级成人在线视频| av不卡一区二区三区| 26uuu精品一区二区| 石原莉奈在线亚洲三区| 色8久久精品久久久久久蜜| 欧美精品一区二区三区蜜桃 | 日韩av一区二区在线影视| 色综合 综合色| 中文字幕不卡的av| 狠狠色狠狠色综合| 91精品综合久久久久久| 夜夜爽夜夜爽精品视频| 色哟哟在线观看一区二区三区| 国产片一区二区| 紧缚奴在线一区二区三区| 91精品蜜臀在线一区尤物| 亚洲精品菠萝久久久久久久| 国产激情精品久久久第一区二区| 日韩一区二区麻豆国产| 午夜久久久影院| 欧美绝品在线观看成人午夜影视| 成人免费视频在线观看| 国产a视频精品免费观看| 久久久久久夜精品精品免费| 黄色资源网久久资源365| 欧美一个色资源| 久久99这里只有精品| 欧美一区二区播放| 美女免费视频一区二区| 欧美r级电影在线观看| 精品一区二区三区欧美| www国产精品av| 久久99精品国产.久久久久久| 日韩一区二区精品在线观看| 久久精品国产99国产| 欧美精品一区二区三区四区 | 国产精品美女一区二区在线观看| 国产麻豆一精品一av一免费| 日本一区二区三区免费乱视频| 成人av网在线| 亚洲一区免费在线观看| 精品视频一区二区三区免费| 天堂成人免费av电影一区| 欧美一级日韩免费不卡| 国产精品资源在线看| 国产欧美精品一区二区色综合| 成人黄色片在线观看| 亚洲男同1069视频| 欧美性感一类影片在线播放| 丝袜a∨在线一区二区三区不卡| 日韩精品一区二区三区在线观看 | 久久国产婷婷国产香蕉| 精品福利二区三区| 国产·精品毛片| 一区二区三区中文免费| 欧美一区二区视频观看视频| 精品一区二区三区不卡| 中文字幕精品在线不卡| 欧美日韩一区二区在线观看 | 男人操女人的视频在线观看欧美| 久久综合中文字幕| 成人精品视频一区| 午夜成人免费视频|