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

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

?? jdhuff.h

?? 在ecos 下mingui 的移植開發
?? H
字號:
/* 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 mincode[17];		/* smallest code of length k */  INT32 maxcode[18];		/* largest code of length k (-1 if none) */  /* (maxcode[17] is a sentinel to ensure jpeg_huff_decode terminates) */  int valptr[17];		/* huffval[] index of 1st symbol of length 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,				JHUFF_TBL * htbl, 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 do this 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 */  boolean printed_eod;		/* flag to suppress multiple warning msgs */} bitread_perm_state;typedef struct {		/* Bitreading working state within an MCU */  /* current data source state */  const JOCTET * next_input_byte; /* => next byte to read from source */  size_t bytes_in_buffer;	/* # of bytes remaining in source buffer */  int unread_marker;		/* nonzero if we have hit a marker */  /* 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 */  /* pointers needed by jpeg_fill_bit_buffer */  j_decompress_ptr cinfo;	/* back link to decompress master record */  boolean * printed_eod_ptr;	/* => flag in permanent state */} 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; \	br_state.unread_marker = cinfop->unread_marker; \	get_buffer = permstate.get_buffer; \	bits_left = permstate.bits_left; \	br_state.printed_eod_ptr = & permstate.printed_eod#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; \	cinfop->unread_marker = br_state.unread_marker; \	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一区二区三区免费野_久草精品视频
亚洲欧洲无码一区二区三区| 日韩电影一区二区三区| 国产精品色噜噜| 亚洲一区免费观看| 亚洲一区二区三区小说| 久久99久久精品欧美| 色综合色狠狠天天综合色| 精品国产三级a在线观看| 亚洲成av人片在线观看无码| 成人夜色视频网站在线观看| 91精品国产aⅴ一区二区| 欧美一卡二卡在线观看| 色婷婷亚洲婷婷| 91麻豆国产福利精品| va亚洲va日韩不卡在线观看| aaa国产一区| 精品少妇一区二区三区免费观看| 精品无码三级在线观看视频 | 成人免费看黄yyy456| 日韩精品专区在线| 日本女人一区二区三区| 91麻豆国产福利精品| 欧美人牲a欧美精品| 亚洲视频一二三区| 日韩成人伦理电影在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲欧洲日韩av| 成人国产精品免费网站| 久久久久久久久久久久久久久99| 国产拍欧美日韩视频二区| 激情另类小说区图片区视频区| 国产一区视频导航| 欧美成人aa大片| 琪琪久久久久日韩精品| 欧美一区二区三区视频在线观看| 欧美一区二区三区日韩视频| 中文av字幕一区| 亚洲成人动漫在线免费观看| 欧美色倩网站大全免费| 午夜精品免费在线| 日韩午夜精品视频| 国产曰批免费观看久久久| 国产91色综合久久免费分享| a亚洲天堂av| 国产精品国产三级国产普通话蜜臀 | 欧美另类z0zxhd电影| 久久久综合精品| 国产不卡视频在线播放| 欧美日韩情趣电影| 亚洲第一二三四区| 7777女厕盗摄久久久| 蜜乳av一区二区| 日韩精品资源二区在线| 丁香桃色午夜亚洲一区二区三区| 欧美日韩免费观看一区二区三区| 午夜精品久久久久久久久久久| 欧美精品久久99久久在免费线 | 欧美日韩一卡二卡| 日本视频中文字幕一区二区三区| www.色综合.com| 一区二区三国产精华液| 国产激情视频一区二区三区欧美| 国产精品情趣视频| 在线观看国产一区二区| 日本怡春院一区二区| 久久精品夜色噜噜亚洲aⅴ| 色综合久久久久网| 中文字幕综合网| 欧美精品久久久久久久久老牛影院| 亚洲激情综合网| 99亚偷拍自图区亚洲| 亚洲超碰精品一区二区| 欧美xingq一区二区| 96av麻豆蜜桃一区二区| 美女视频免费一区| 欧美男女性生活在线直播观看| 久久爱www久久做| 亚洲精品中文在线观看| 97超碰欧美中文字幕| 蜜臀av一区二区在线免费观看| 欧美日韩中字一区| 懂色一区二区三区免费观看| 亚洲成人动漫av| 中文字幕不卡在线| 99在线精品一区二区三区| 国产精品黄色在线观看| 91精品国产综合久久蜜臀| 93久久精品日日躁夜夜躁欧美| 美国av一区二区| 亚洲香蕉伊在人在线观| 欧美一区二区三区视频| 99久久久无码国产精品| 亚洲女同一区二区| 国产偷v国产偷v亚洲高清| 欧美日韩美少妇 | 亚洲日本一区二区| 欧洲人成人精品| 亚洲国产成人精品视频| 国产精品久久久一区麻豆最新章节| 成人小视频免费观看| 精品亚洲成a人| 日日噜噜夜夜狠狠视频欧美人 | 精品一区中文字幕| 中文字幕精品一区 | 欧美网站大全在线观看| 99热99精品| 香蕉影视欧美成人| ww亚洲ww在线观看国产| 91精品国产综合久久久蜜臀图片| 日本在线不卡视频一二三区| 国产日产精品1区| 在线这里只有精品| 国精产品一区一区三区mba视频| 同产精品九九九| 欧美国产1区2区| 国产欧美日韩精品a在线观看| 色吧成人激情小说| 久久国产剧场电影| 麻豆成人在线观看| 久久电影网站中文字幕| 国内精品在线播放| 国产一区二区三区精品欧美日韩一区二区三区| 国产精品全国免费观看高清 | 亚洲h精品动漫在线观看| 一卡二卡欧美日韩| 亚洲图片自拍偷拍| 午夜国产精品影院在线观看| 五月综合激情网| 三级久久三级久久久| 九九在线精品视频| 香蕉久久夜色精品国产使用方法| 亚洲午夜成aⅴ人片| 日本三级亚洲精品| 精品在线免费视频| 日韩高清欧美激情| 亚洲色图制服诱惑 | 日韩欧美国产三级| 久久亚洲一区二区三区四区| 欧美三级日韩三级| 欧美精品第1页| 精品国产乱码久久久久久久| 久久久99久久| 亚洲综合精品自拍| 国产精品国产馆在线真实露脸 | 中文字幕va一区二区三区| 亚洲男人天堂av| 国产精品久久99| 五月天激情综合| 国产成人在线免费观看| 欧美在线观看视频一区二区三区| 欧美一级艳片视频免费观看| 欧美视频一区二| 色综合久久中文综合久久97| 成人一道本在线| 国产精品一级片在线观看| 美女视频一区在线观看| 亚洲福利国产精品| 国产精品综合av一区二区国产馆| 99视频在线精品| 精品国产乱码久久久久久牛牛| 日韩欧美国产一区在线观看| 亚洲色图.com| 国产美女一区二区三区| 欧美在线制服丝袜| 久久久精品tv| 久草中文综合在线| 99国产欧美久久久精品| 国产麻豆视频精品| 色av成人天堂桃色av| 日韩午夜中文字幕| 亚洲三级在线播放| 樱花草国产18久久久久| 亚洲美女电影在线| 国产一区视频导航| 正在播放亚洲一区| 一区二区高清在线| jvid福利写真一区二区三区| 精品人伦一区二区色婷婷| 亚洲国产成人av| 91影视在线播放| 欧美国产日韩亚洲一区| 中文字幕av一区二区三区| 日本不卡视频一二三区| 在线观看一区二区精品视频| 欧美日韩不卡在线| 欧美一级片在线| 精品国产露脸精彩对白| 天天综合网天天综合色| 久久99久久99| 国产精品1区2区| 色综合久久88色综合天天免费| 国产拍欧美日韩视频二区| 精品一区二区三区的国产在线播放| 欧美精品精品一区| 亚洲午夜在线视频| 欧洲另类一二三四区| 亚洲电影欧美电影有声小说| 麻豆成人综合网| 欧美www视频| 国产精华液一区二区三区|