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

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

?? jdhuff.h

?? jpeg編解碼器
?? H
字號:
/* * jdhuff.h * * Copyright (C) 1991-1997, Thomas G. Lane. * This file is part of the Independent JPEG Group's software. * For conditions of distribution and use, see the accompanying README file. * * This file contains declarations for Huffman entropy decoding routines * that are shared between the sequential decoder (jdhuff.c) and the * progressive decoder (jdphuff.c).  No other modules need to see these. *//* Short forms of external names for systems with brain-damaged linkers. */#ifdef NEED_SHORT_EXTERNAL_NAMES#define jpeg_make_d_derived_tbl	jMkDDerived#define jpeg_fill_bit_buffer	jFilBitBuf#define jpeg_huff_decode	jHufDecode#endif /* NEED_SHORT_EXTERNAL_NAMES *//* Derived data constructed for each Huffman table */#define HUFF_LOOKAHEAD	8	/* # of bits of lookahead */typedef struct {  /* Basic tables: (element [0] of each array is unused) */  INT32 maxcode[18];		/* largest code of length k (-1 if none) */  /* (maxcode[17] is a sentinel to ensure jpeg_huff_decode terminates) */  INT32 valoffset[17];		/* huffval[] offset for codes of length k */  /* valoffset[k] = huffval[] index of 1st symbol of code length k, less   * the smallest code of length k; so given a code of length k, the   * corresponding symbol is huffval[code + valoffset[k]]   */  /* Link to public Huffman table (needed only in jpeg_huff_decode) */  JHUFF_TBL *pub;  /* Lookahead tables: indexed by the next HUFF_LOOKAHEAD bits of   * the input data stream.  If the next Huffman code is no more   * than HUFF_LOOKAHEAD bits long, we can obtain its length and   * the corresponding symbol directly from these tables.   */  int look_nbits[1<<HUFF_LOOKAHEAD]; /* # bits, or 0 if too long */  UINT8 look_sym[1<<HUFF_LOOKAHEAD]; /* symbol, or unused */} d_derived_tbl;/* Expand a Huffman table definition into the derived format */EXTERN(void) jpeg_make_d_derived_tbl	JPP((j_decompress_ptr cinfo, boolean isDC, int tblno,	     d_derived_tbl ** pdtbl));/* * Fetching the next N bits from the input stream is a time-critical operation * for the Huffman decoders.  We implement it with a combination of inline * macros and out-of-line subroutines.  Note that N (the number of bits * demanded at one time) never exceeds 15 for JPEG use. * * We read source bytes into get_buffer and dole out bits as needed. * If get_buffer already contains enough bits, they are fetched in-line * by the macros CHECK_BIT_BUFFER and GET_BITS.  When there aren't enough * bits, jpeg_fill_bit_buffer is called; it will attempt to fill get_buffer * as full as possible (not just to the number of bits needed; this * prefetching reduces the overhead cost of calling jpeg_fill_bit_buffer). * Note that jpeg_fill_bit_buffer may return FALSE to indicate suspension. * On TRUE return, jpeg_fill_bit_buffer guarantees that get_buffer contains * at least the requested number of bits --- dummy zeroes are inserted if * necessary. */typedef INT32 bit_buf_type;	/* type of bit-extraction buffer */#define BIT_BUF_SIZE  32	/* size of buffer in bits *//* If long is > 32 bits on your machine, and shifting/masking longs is * reasonably fast, making bit_buf_type be long and setting BIT_BUF_SIZE * appropriately should be a win.  Unfortunately we can't define the size * with something like  #define BIT_BUF_SIZE (sizeof(bit_buf_type)*8) * because not all machines measure sizeof in 8-bit bytes. */typedef struct {		/* Bitreading state saved across MCUs */  bit_buf_type get_buffer;	/* current bit-extraction buffer */  int bits_left;		/* # of unused bits in it */} bitread_perm_state;typedef struct {		/* Bitreading working state within an MCU */  /* Current data source location */  /* We need a copy, rather than munging the original, in case of suspension */  const JOCTET * next_input_byte; /* => next byte to read from source */  size_t bytes_in_buffer;	/* # of bytes remaining in source buffer */  /* Bit input buffer --- note these values are kept in register variables,   * not in this struct, inside the inner loops.   */  bit_buf_type get_buffer;	/* current bit-extraction buffer */  int bits_left;		/* # of unused bits in it */  /* Pointer needed by jpeg_fill_bit_buffer. */  j_decompress_ptr cinfo;	/* back link to decompress master record */} bitread_working_state;/* Macros to declare and load/save bitread local variables. */#define BITREAD_STATE_VARS  \	register bit_buf_type get_buffer;  \	register int bits_left;  \	bitread_working_state br_state#define BITREAD_LOAD_STATE(cinfop,permstate)  \	br_state.cinfo = cinfop; \	br_state.next_input_byte = cinfop->src->next_input_byte; \	br_state.bytes_in_buffer = cinfop->src->bytes_in_buffer; \	get_buffer = permstate.get_buffer; \	bits_left = permstate.bits_left;#define BITREAD_SAVE_STATE(cinfop,permstate)  \	cinfop->src->next_input_byte = br_state.next_input_byte; \	cinfop->src->bytes_in_buffer = br_state.bytes_in_buffer; \	permstate.get_buffer = get_buffer; \	permstate.bits_left = bits_left/* * These macros provide the in-line portion of bit fetching. * Use CHECK_BIT_BUFFER to ensure there are N bits in get_buffer * before using GET_BITS, PEEK_BITS, or DROP_BITS. * The variables get_buffer and bits_left are assumed to be locals, * but the state struct might not be (jpeg_huff_decode needs this). *	CHECK_BIT_BUFFER(state,n,action); *		Ensure there are N bits in get_buffer; if suspend, take action. *      val = GET_BITS(n); *		Fetch next N bits. *      val = PEEK_BITS(n); *		Fetch next N bits without removing them from the buffer. *	DROP_BITS(n); *		Discard next N bits. * The value N should be a simple variable, not an expression, because it * is evaluated multiple times. */#define CHECK_BIT_BUFFER(state,nbits,action) \	{ if (bits_left < (nbits)) {  \	    if (! jpeg_fill_bit_buffer(&(state),get_buffer,bits_left,nbits))  \	      { action; }  \	    get_buffer = (state).get_buffer; bits_left = (state).bits_left; } }#define GET_BITS(nbits) \	(((int) (get_buffer >> (bits_left -= (nbits)))) & ((1<<(nbits))-1))#define PEEK_BITS(nbits) \	(((int) (get_buffer >> (bits_left -  (nbits)))) & ((1<<(nbits))-1))#define DROP_BITS(nbits) \	(bits_left -= (nbits))/* Load up the bit buffer to a depth of at least nbits */EXTERN(boolean) jpeg_fill_bit_buffer	JPP((bitread_working_state * state, register bit_buf_type get_buffer,	     register int bits_left, int nbits));/* * Code for extracting next Huffman-coded symbol from input bit stream. * Again, this is time-critical and we make the main paths be macros. * * We use a lookahead table to process codes of up to HUFF_LOOKAHEAD bits * without looping.  Usually, more than 95% of the Huffman codes will be 8 * or fewer bits long.  The few overlength codes are handled with a loop, * which need not be inline code. * * Notes about the HUFF_DECODE macro: * 1. Near the end of the data segment, we may fail to get enough bits *    for a lookahead.  In that case, we do it the hard way. * 2. If the lookahead table contains no entry, the next code must be *    more than HUFF_LOOKAHEAD bits long. * 3. jpeg_huff_decode returns -1 if forced to suspend. */#define HUFF_DECODE(result,state,htbl,failaction,slowlabel) \{ register int nb, look; \  if (bits_left < HUFF_LOOKAHEAD) { \    if (! jpeg_fill_bit_buffer(&state,get_buffer,bits_left, 0)) {failaction;} \    get_buffer = state.get_buffer; bits_left = state.bits_left; \    if (bits_left < HUFF_LOOKAHEAD) { \      nb = 1; goto slowlabel; \    } \  } \  look = PEEK_BITS(HUFF_LOOKAHEAD); \  if ((nb = htbl->look_nbits[look]) != 0) { \    DROP_BITS(nb); \    result = htbl->look_sym[look]; \  } else { \    nb = HUFF_LOOKAHEAD+1; \slowlabel: \    if ((result=jpeg_huff_decode(&state,get_buffer,bits_left,htbl,nb)) < 0) \	{ failaction; } \    get_buffer = state.get_buffer; bits_left = state.bits_left; \  } \}/* Out-of-line case for Huffman code fetching */EXTERN(int) jpeg_huff_decode	JPP((bitread_working_state * state, register bit_buf_type get_buffer,	     register int bits_left, d_derived_tbl * htbl, int min_bits));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日产卡一卡二卡麻豆| 国产欧美日韩精品a在线观看| 国产综合成人久久大片91| 中文字幕欧美一| 91精品国产综合久久香蕉麻豆 | 免费观看成人av| 中文字幕日韩一区二区| 精品日产卡一卡二卡麻豆| 在线观看一区二区精品视频| 国产精品69毛片高清亚洲| 日韩成人dvd| 亚洲女人的天堂| 国产欧美中文在线| 日韩欧美国产wwwww| 欧美艳星brazzers| 91丨porny丨首页| 国产一区二区三区蝌蚪| 日韩成人午夜电影| 亚洲国产日韩av| 国产精品久久久久精k8 | 一本色道久久综合精品竹菊| 国产一区91精品张津瑜| 免费成人av在线播放| 亚洲欧美成aⅴ人在线观看| 国产日韩一级二级三级| 精品国内二区三区| 欧美xingq一区二区| 在线播放欧美女士性生活| 欧洲一区在线电影| 色哟哟一区二区三区| 99久久国产免费看| 成人福利视频在线| 国产成人精品三级| 丰满少妇在线播放bd日韩电影| 精品一二线国产| 久久不见久久见中文字幕免费| 午夜视频在线观看一区| 亚洲成a人片综合在线| 亚洲一区二区视频| 亚洲国产一区二区三区| 一级精品视频在线观看宜春院 | 亚洲视频在线一区观看| 欧美国产成人在线| 国产精品女主播av| 国产精品电影院| 国产黄色成人av| 国产精品性做久久久久久| 国产乱色国产精品免费视频| 国产一区二区三区四区五区入口 | 日本欧美一区二区三区乱码| 日韩激情视频网站| 看片的网站亚洲| 国产麻豆欧美日韩一区| 福利一区二区在线| 99精品久久99久久久久| 99久久久免费精品国产一区二区| 大美女一区二区三区| 色综合一区二区| 欧美色图激情小说| 欧美一区二区国产| 久久久不卡网国产精品二区| 国产精品久久久久久亚洲伦| 亚洲欧洲综合另类| 亚洲不卡在线观看| 久久91精品久久久久久秒播| 国产91精品露脸国语对白| 一本大道久久精品懂色aⅴ| 欧美日韩高清在线播放| 精品sm在线观看| 亚洲国产精品二十页| 一区二区三区四区中文字幕| 日韩精品1区2区3区| 九九九精品视频| 99久久久国产精品| 91精品国产免费| 中文字幕+乱码+中文字幕一区| 亚洲色欲色欲www| 蜜桃视频在线一区| 波多野结衣中文字幕一区二区三区| 在线中文字幕一区二区| 日韩美女一区二区三区| 国产精品麻豆99久久久久久| 香蕉加勒比综合久久| 久久激情综合网| 色就色 综合激情| 欧美精品一区二区三区高清aⅴ| 国产精品久久久久9999吃药| 天天影视色香欲综合网老头| 不卡在线观看av| 欧美成人伊人久久综合网| 中文字幕在线一区免费| 久久99久久99| 欧美性猛交xxxxxx富婆| 国产人伦精品一区二区| 视频一区二区欧美| www.色综合.com| 欧美大片国产精品| 亚洲大片在线观看| 99riav久久精品riav| 精品卡一卡二卡三卡四在线| 亚洲午夜精品在线| 成人午夜视频免费看| 51精品视频一区二区三区| 亚洲欧美在线aaa| 玖玖九九国产精品| 欧日韩精品视频| 国产日韩欧美电影| 免费美女久久99| 欧美网站一区二区| 国产精品福利一区| 高清在线不卡av| 欧美不卡在线视频| 三级欧美在线一区| 色婷婷av一区二区三区大白胸| 久久久美女艺术照精彩视频福利播放| 99精品黄色片免费大全| 欧美精品一区二区三区蜜桃视频| 一个色综合av| 色婷婷久久99综合精品jk白丝 | 欧美一区二区国产| 亚洲高清免费视频| 日本韩国一区二区三区视频| 国产精品国产自产拍高清av王其| 国产精品白丝jk黑袜喷水| 精品国产亚洲在线| 久久国产三级精品| 欧美一级艳片视频免费观看| 日日摸夜夜添夜夜添亚洲女人| 在线区一区二视频| 亚洲美女屁股眼交3| 91欧美一区二区| 亚洲日本护士毛茸茸| 91同城在线观看| 亚洲天堂免费在线观看视频| av亚洲精华国产精华| 国产精品免费视频网站| 成人va在线观看| 国产精品的网站| 色综合中文字幕国产| 亚洲图片你懂的| 一本在线高清不卡dvd| 亚洲午夜电影网| 欧美日韩精品电影| 青青草国产成人99久久| 欧美成人艳星乳罩| 国产麻豆精品95视频| 久久先锋影音av| 懂色av中文字幕一区二区三区| 中文字幕乱码日本亚洲一区二区| 99re这里都是精品| 亚洲最新视频在线播放| 欧美一区中文字幕| 国产美女一区二区三区| 国产精品乱人伦| 91精品办公室少妇高潮对白| 亚洲1区2区3区视频| 日韩亚洲欧美在线观看| 国产美女久久久久| 亚洲视频每日更新| 欧美日韩黄色影视| 精品一区二区三区视频在线观看| 久久精品亚洲乱码伦伦中文 | 精品乱人伦小说| 高清成人免费视频| 亚洲伦在线观看| 4438成人网| 欧美一二三区在线观看| 国产suv精品一区二区883| 一区二区三区中文字幕| 欧美一级艳片视频免费观看| 成人少妇影院yyyy| 天天操天天干天天综合网| 久久精品亚洲精品国产欧美| 91精品1区2区| 国产麻豆视频一区| 亚洲一卡二卡三卡四卡| 精品国产网站在线观看| 91免费小视频| 蜜桃免费网站一区二区三区| 一区二区中文视频| 日韩一二三四区| 一本一本大道香蕉久在线精品| 日韩精品亚洲一区二区三区免费| 国产精品天天摸av网| 欧美老女人第四色| 成人丝袜视频网| 美腿丝袜一区二区三区| 亚洲视频一区二区免费在线观看| 91麻豆精品国产91久久久资源速度 | 亚洲精品中文字幕在线观看| 26uuu色噜噜精品一区| 91国产精品成人| 国产a区久久久| 日本91福利区| 一区二区三区色| 欧美激情中文不卡| 91精品国产综合久久久久久| 色综合色综合色综合| 国产成人自拍在线| 日本不卡一区二区三区高清视频|