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

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

?? parse.c

?? jpeg快速算法,用于TI和philips的DSP開發
?? C
字號:
/*
 *********************************************************************
 * File name: parse.c
 * Version: 5.0(release v1.0)    Date: Jan 12, 2006
 * Author:  xiezm                Email: xiezm@wxintech.cn
 * Company: Wuxi Intech co., ltd.
 *
 * Project: Jpeg Decoder for Trio
 *********************************************************************
 */
#define PARSE_GLOBALS

#include "cf6_chess.h"

#include "djpg.h"

const int aanscales[DCT_SIZE2] =
{
	4096, 5681, 5681, 5351, 7880, 5351, 4816, 7423,
	7423, 4816, 4096, 6680, 6992, 6680, 4096, 3218,
	5681, 6293, 6293, 5681, 3218, 2216, 4463, 5351,
	5663, 5351, 4463, 2216, 1130, 3074, 4204, 4816,
	4816, 4204, 3074, 1130, 1567, 2896, 3784, 4096,
	3784, 2896, 1567, 1476, 2606, 3218, 3218, 2606,
	1476, 1328, 2216, 2528, 2216, 1328, 1130, 1741,
	1741, 1130, 888,  1199, 888,  611,  611,  311
};

extern int jpegFrameSymbol;


void derive_huffman_tbl(void);
void derive_quant_tbl(void);

void parse_initial(void)
{
	dri_rst_interval = 0;
}

void parse_header(void)
{
	unsigned int i;
	unsigned int marker;
	unsigned int f;
	unsigned int s;

	marker = 0;

	
	/* parse other headers */
	do
	{
		if(0xff != get_byte())
		{
			error(2);
		}
		marker = get_byte();
		switch(marker)
		{
			case DHT:
				derive_huffman_tbl();
				break;
			case DQT:
				derive_quant_tbl();
				break;
			case DRI:
				get_word();			//DRI length
				dri_rst_interval = get_word();
				break;
			case SOF0:
				get_word();			//frame header length
				if(8 != get_byte())
				{
				   	error(3);
				}
				Y = get_word();
				X = get_word();
				Nf = get_byte();
				if((1!=Nf) && (3!=Nf))
				{
					error(4);
				}
				for(f=0; f<Nf; f++)
				{
					unsigned int hv;
					Ci[f] = get_byte();
					hv = get_byte();
					Hi[f] = hv >> 4;
					Vi[f] = hv & 0x0f;
					hv = Tqi[f] = get_byte();
					if(hv>3)
					{
						error(5);
					}
				}
				num_mcu = ((X-1)/(8*Hi[0]) + 1) * ((Y-1)/(8*Vi[0]) + 1);	//
				break;
			case SOS:
				get_word();			//scan header length
				Ns = get_byte();
				if(Nf != Ns)
				{
					error(6);
				}
				for(s=0; s<Ns; s++)
				{
					unsigned int da;
					Csi[s] = get_byte();
					da = get_byte();
					Tdi[s] = da >> 4;
					Tai[s] = da & 0x0f;
					if((Tdi[s]>1) || (Tai[s]>1))
					{
						error(7);
					}
				}
				if(0 != get_byte())
				{
					error(8);
				}
				if(63 != get_byte())
				{
					error(9);
				}
				if(0 != get_byte())
				{
					error(10);
				}
				return;
			default:
				for(i = get_word() - 2; i>0; i--)
				{
					get_byte();
				}
				break;
		}
		
	}while(1);
}

void derive_huffman_tbl(void)
{
	unsigned int Lh;
	unsigned int Tc;
	unsigned int Th;
	unsigned int Li[17];
	DERIVED_H_TBL *dtbl;
	
	unsigned int Lsum;
	unsigned int i;
	unsigned int Huffsize[257];
	unsigned int code;
	unsigned int si;
	unsigned int p;
	unsigned int l;
	unsigned int Huffcode[257];
	
	for(Lh=get_word()-2;Lh>0;Lh-=17)
	{
		unsigned int Tch;
		Tch = get_byte();
		Tc = Tch >> 4;
		Th = Tch & 0x0f;
		if(Tc)
		{				//AC huffman table
			dtbl = &ac_huff_tbl[Th];
		}
		else
		{				//DC huffman table
			dtbl = &dc_huff_tbl[Th];
		}
		for(i=1;i<=16;i++)
		{
			Li[i] = get_byte();
		}
		for(Lsum=0,i=1;i<=16;i++)
		{
			unsigned int L;
			L = Li[i];
			while(L--)
			{
				dtbl->symbol[Lsum] = get_byte();
				Huffsize[Lsum++] = i;
			}
		}
		Lh -= Lsum;			//length
		if(Lsum>256)
		{
			error(11);
		}
		Huffsize[Lsum] = 0;
		
		code = 0;
		si = Huffsize[0];
		i = 0;
		while (Huffsize[i])
		{
			while (Huffsize[i] == si)
			{
				Huffcode[i++] = code;
				code++;
			}
			if ( code >= (unsigned int)(1 << si))
			{
				error(12);
			}
			code <<= 1;
			si++;
		}

		p = 0;
		for (i=1;i<=16;i++)
		{
			if (Li[i])
			{
				dtbl->valoffset[i] = (int) p - (int) Huffcode[p];
				p += Li[i];
				dtbl->maxcode[i] = Huffcode[p - 1];
			}
			else
			{
				dtbl->maxcode[i] = -1;
			}
		}
		dtbl->maxcode[17] = 0x0FFFFF;
		
		//look ahead
		for(i=0;i<256;i++)
		{
			dtbl->look_nbits[i] = 0;
		}

		p = 0;
		for (l = 1; l<=8; l++)
		{
			for (i = 1; i <= Li[l]; i++, p++)
			{
				unsigned int lookbits;
				unsigned int ctr;
				lookbits = Huffcode[p] << (8 - l);
				for (ctr = 1 << (8 - l); ctr > 0; ctr--)
				{
					dtbl->look_nbits[lookbits] = l;
					dtbl->look_sym[lookbits] = dtbl->symbol[p];
					lookbits++;
				}
			}
		}

		if(!Tc)
		{
			for (i = 0; i < Lsum; i++)
			{
				if (dtbl->symbol[i] > 15)
				{
					error(13);
				}
			}
		}
	}
}

void derive_quant_tbl(void)
{
	unsigned int Lq;
	unsigned int Pq;
	unsigned int Tq;
	unsigned int i;

	for(Lq=get_word()-2;Lq>0;Lq-=65)
	{
		unsigned int PTq;
		PTq = get_byte();
		Pq = PTq >> 4;
		if(Pq)
		{
			error(14);
		}
		Tq = PTq & 0x0f;
		for(i=0; i<DCT_SIZE2; i++)
		{	
			//lost precision here!!
			quant_tbl[Tq][i] = ((get_byte() * aanscales[i]));
		}
	}
}
/********************End of file*************************************/

/*************************************************************
 *  functionname: find_ffd8()			
 *  return value :
 *  0, normal
 *  nonzero, can not header mark 0xffd8 normally 
*************************************************************/
int find_ffd8(void)
{

	int iRet = 0;
	int findCount = 0;
	int jpegFrameSymbol1,jpegFrameSymbol2,jpegFrameSymbol3;
	int header1, header2, header3, header4;

//	header1 = get_byte();
//	header2 = get_byte();
	header3 = get_byte();
	header4 = get_byte();

	// parse SOI 
	while(1)
	{
		if((0xff == header3) && (SOI == header4))
		{
	//		if((header1==0) && (header2==0)) 
			{
				jpegFrameSymbol1 = get_byte();
				jpegFrameSymbol2 = get_byte();
				jpegFrameSymbol3 = get_byte();
				jpegFrameSymbol = jpegFrameSymbol1 + (jpegFrameSymbol2<<8) + (jpegFrameSymbol3<<16);
				break;
			}
		}
	//	header1 = header2;
	//	header2 = header3;
		header3 = header4;
		header4 = get_byte();
		findCount++;
		if(findCount>0x4000)
		{
			iRet = 1;//error(1);
			return iRet;
		}
	}
	return iRet;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av福利| 亚洲成人在线免费| 日韩精品影音先锋| 欧美电影一区二区三区| 在线观看视频91| 欧洲在线/亚洲| 欧美无砖专区一中文字| 欧美色图一区二区三区| 欧美色视频在线观看| 欧美日韩亚洲综合一区二区三区| 欧美在线高清视频| 欧美日产国产精品| 日韩欧美美女一区二区三区| 日韩欧美资源站| 国产三级精品在线| 中文字幕一区二区三中文字幕| 国产精品水嫩水嫩| 亚洲自拍都市欧美小说| 免费高清在线一区| 国产精品一区二区三区99| 成人在线视频首页| 欧美亚洲另类激情小说| 日韩精品一区二区三区中文精品| 精品国产凹凸成av人网站| 国产精品水嫩水嫩| 亚洲福利一二三区| 国产综合成人久久大片91| 99综合影院在线| 欧美日本在线视频| 国产天堂亚洲国产碰碰| 亚洲精品免费在线观看| 一区二区日韩av| 国产一区二区三区免费播放| 成人av免费在线播放| 欧美日韩国产综合一区二区三区 | 精品久久人人做人人爰| 26uuu亚洲婷婷狠狠天堂| 亚洲天堂免费在线观看视频| 亚洲成人777| 成人午夜av影视| 欧美日韩国产美女| 国产精品久久久久aaaa樱花| 石原莉奈在线亚洲三区| 波多野结衣精品在线| 欧美一区二区三区小说| 亚洲精品日日夜夜| 国产麻豆日韩欧美久久| 在线一区二区视频| 国产欧美一区视频| 日本不卡1234视频| 日本久久一区二区| 国产精品久线在线观看| 久久er99热精品一区二区| 欧美亚洲国产一区在线观看网站| 久久久高清一区二区三区| 亚洲第一会所有码转帖| 99久久久免费精品国产一区二区| 欧美va亚洲va国产综合| 亚洲一二三区在线观看| 91亚洲大成网污www| 久久综合久久综合久久| 亚洲123区在线观看| 91丨九色丨蝌蚪富婆spa| 国产欧美精品一区二区色综合 | 久久久久久久综合色一本| 亚洲成人av资源| 色视频一区二区| 综合色天天鬼久久鬼色| 国产福利不卡视频| 国产亚洲制服色| 国产精品12区| 亚洲国产精品黑人久久久| 国产自产v一区二区三区c| 91精品国产乱| 久久国产麻豆精品| 欧美电视剧在线观看完整版| 日本伊人精品一区二区三区观看方式| 欧美午夜一区二区三区| 五月天中文字幕一区二区| 欧美精品粉嫩高潮一区二区| 亚洲国产精品一区二区www| 欧美日韩精品一区二区三区蜜桃| 亚洲精品乱码久久久久| 欧美色精品在线视频| 日韩高清在线一区| 欧美一级欧美三级在线观看| 蜜桃av一区二区三区| 精品国产制服丝袜高跟| 国产夫妻精品视频| 中文字幕在线观看一区二区| 99re热视频这里只精品| 亚洲自拍另类综合| 欧美一二区视频| 韩国v欧美v日本v亚洲v| 亚洲国产精品成人综合色在线婷婷| 国产 欧美在线| 亚洲欧美一区二区久久| 欧美日韩视频一区二区| 精品在线视频一区| 国产精品天美传媒沈樵| 欧美三级电影网| 精品在线观看免费| 国产精品网友自拍| 欧美日韩一区成人| 国产精品影音先锋| 亚洲精品视频一区| 精品精品欲导航| yourporn久久国产精品| 日韩制服丝袜先锋影音| 久久久.com| 欧美性受xxxx黑人xyx性爽| 人人超碰91尤物精品国产| 国产亚洲欧洲997久久综合| 99久久er热在这里只有精品15| 亚洲mv大片欧洲mv大片精品| 精品美女在线观看| 日本韩国欧美在线| 国产激情91久久精品导航| 一个色在线综合| 国产色婷婷亚洲99精品小说| 精品视频一区二区不卡| 国产成a人亚洲精| 日本在线播放一区二区三区| 中文字幕日韩一区二区| 精品福利在线导航| 欧美日韩成人综合天天影院| av激情综合网| 九色综合狠狠综合久久| 亚洲伊人色欲综合网| 国产精品久久综合| 2023国产精品自拍| 制服视频三区第一页精品| 色综合一区二区| 处破女av一区二区| 激情偷乱视频一区二区三区| 一个色综合网站| 亚洲欧美偷拍卡通变态| 中文字幕不卡在线播放| 2024国产精品| 日韩精品一区国产麻豆| 91精品国产综合久久精品图片| caoporm超碰国产精品| 国产69精品一区二区亚洲孕妇| 日本成人在线网站| 图片区日韩欧美亚洲| 亚洲国产日韩在线一区模特| 亚洲天堂av一区| 综合中文字幕亚洲| 亚洲色图都市小说| 亚洲情趣在线观看| 亚洲特级片在线| 亚洲色图欧洲色图| 亚洲另类在线一区| 一区二区三区中文字幕精品精品 | 亚洲国产精品久久久男人的天堂| 亚洲欧美在线高清| 亚洲青青青在线视频| 玉足女爽爽91| 午夜伦理一区二区| 免费欧美日韩国产三级电影| 麻豆精品久久精品色综合| 蜜桃视频在线观看一区| 韩日av一区二区| 国产福利不卡视频| 99re视频这里只有精品| 91精品福利在线| 欧美久久久久久蜜桃| 精品国产一区二区三区久久影院| 日韩欧美一级片| 欧美激情在线免费观看| 最近日韩中文字幕| 亚洲网友自拍偷拍| 蜜臀av一区二区三区| 国产精品一区二区在线看| 99精品久久久久久| 91国内精品野花午夜精品 | 日韩一区二区视频在线观看| 日韩一区二区三免费高清| 欧美精品一区二区三区四区 | 一本到高清视频免费精品| 欧美天堂一区二区三区| 欧美第一区第二区| 国产精品毛片a∨一区二区三区| 中文字幕一区二区三区乱码在线| 亚洲男人天堂av| 九九视频精品免费| 91老师国产黑色丝袜在线| 777精品伊人久久久久大香线蕉| 久久无码av三级| 一区二区三区产品免费精品久久75| 日精品一区二区三区| 国产91清纯白嫩初高中在线观看| 在线免费观看一区| 久久免费美女视频| 丝袜a∨在线一区二区三区不卡| 国产一区在线观看麻豆| 欧美中文一区二区三区| 久久综合九色综合97_久久久| 亚洲欧美另类久久久精品2019| 麻豆成人91精品二区三区|