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

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

?? rawnjl2.cc

?? 在Linux開發環境下實現JPEG_LS壓縮標注
?? CC
?? 第 1 頁 / 共 4 頁
字號:
//cerr << "\t\tdetermineGolombParameter: a = " << a << endl;	Assert(n);			// Make sure we don't get out of control	for (k=0;(n<<k) < a; ++k)	// Number of occurrences vs accumulated error magnitude		Assert(k<31);		// ... internal limit ... don't exceed width of Uint32//cerr << "\t\tdetermineGolombParameter: k = " << k << endl;	return k;}static BinaryInputStream &decodeMappedErrvalWithGolomb(Uint16 k,Uint16 glimit,Uint16 qbpp,Uint32 &value,BinaryInputStream &in){//cerr << "\t\tdecodeMappedErrvalWithGolomb: k = " << k << endl;//cerr << "\t\tdecodeMappedErrvalWithGolomb: glimit = " << glimit << endl;//cerr << "\t\tdecodeMappedErrvalWithGolomb: qbpp = " << qbpp << endl;	// Read unary representation of remaining most significant bits	Uint32 bit;	Uint32 unarycode=0;	while (readBit(in,bit) && !bit) ++unarycode;	// stops after bit is 1 (having read and discared trailing 1 bit)//cerr << endl;	Uint32 offset;	Uint16 bitstoread;	Assert(glimit > qbpp+1);	Uint16 limit=glimit-qbpp-1;//cerr << "\t\tdecodeMappedErrvalWithGolomb: unarycode = " << unarycode << endl;//cerr << "\t\tdecodeMappedErrvalWithGolomb: limit = " << limit << endl;	if (unarycode < limit) {		// use it to form most significant bits//cerr << "\t\tdecodeMappedErrvalWithGolomb: not limited, read " << unarycode << " zero bits (as value) followed by 1 then will read remaining " << k << " bits" << endl;		value=unarycode;		// will later get shifted into ms bits		bitstoread=k;		offset=0;	}	else {//cerr << "\t\tdecodeMappedErrvalWithGolomb: limited, read " << unarycode << " zero bits followed by 1 then will read remaining " << qbpp << " bits of value-1" << endl;		value=0;			// no contribution from unary code ... whole value is next		bitstoread=qbpp;		offset=1;	}	// Read least significant k bits	while (bitstoread-- && readBit(in,bit)) value=(value<<1) | bit;	// msb bit is read first//cerr << endl;	value+=offset;				// correct for limited case //cerr << "\t\tdecodeMappedErrvalWithGolomb: value = " << value << endl;	return in;}static BinaryOutputStream &encodeMappedErrvalWithGolomb(Uint16 k,Uint16 glimit,Uint16 qbpp,Uint32 value,BinaryOutputStream &out){//cerr << "\t\tencodeMappedErrvalWithGolomb: k = " << k << " value = " << value << endl;//cerr << "\t\tencodeMappedErrvalWithGolomb: glimit = " << glimit << endl;//cerr << "\t\tencodeMappedErrvalWithGolomb: qbpp = " << qbpp << endl;	// A.5.3 Mapped-error encoding	Uint32 unarycode=value>>k;					// Most significant bits go into unary code	Assert(glimit > qbpp+1);	Uint16 limit=glimit-qbpp-1;//cerr << "\t\tencodeMappedErrvalWithGolomb: unarycode = " << unarycode << endl;//cerr << "\t\tencodeMappedErrvalWithGolomb: limit = " << limit << endl;	if (unarycode < limit) {//cerr << "\t\tencodeMappedErrvalWithGolomb: not limited, writing " << unarycode << " zero bits followed by 1 then remaining " << k << " bits" << endl;		while (unarycode--) writeBit(out,0);			// Append unary representation of remaining most significant bits		writeBit(out,1);					// Flag the end of the unary code		Uint16 bits=k;						// Append least significant k bits		while (bits--) { writeBit(out,(value>>bits)&1); } 	// msb bit is written first & use the decremented bits as shift	}	else {//cerr << "\t\tencodeMappedErrvalWithGolomb: limited, writing " << limit << " zero bits followed by 1 then remaining " << qbpp << " bits of value-1" << endl;		while (limit--) writeBit(out,0);			// Append limit 0 bits		writeBit(out,1);					// Flag the end of the unary code		value-=1;		while (qbpp--) { writeBit(out,(value>>qbpp)&1); } 	// write whole value (always of length qbpp)	}//cerr << endl;	return out;}static voidquantizeErrval(Uint16 NEAR,Int32 &Errval){//cerr << "\t\tquantizeErrval: before Errval = " << Errval << endl;	if (NEAR) {		if (Errval > 0)			Errval=(Errval+NEAR)/(2*NEAR+1);		else			Errval=(Errval-NEAR)/(2*NEAR+1);		// in A.4.4 it is actually -(NEAR-Errval)/(2*NEAR+1)	}	// else leave Errval as it is for lossless mode//cerr << "\t\tquantizeErrval: after Errval = " << Errval << endl;}static voiddeQuantizeErrval(Uint16 NEAR,Int32 &Errval){//cerr << "\t\tdeQuantizeErrval: before Errval = " << Errval << endl;	if (NEAR) Errval=Errval*(2*NEAR+1);//cerr << "\t\tdeQuantizeErrval: after Errval = " << Errval << endl;}static inline voidclampPredictedValue(Int32 &X,Int32 MAXVAL){//cerr << "\t\tclampPredictedValue: before value = " << X << endl;	if      (X > MAXVAL)	X=MAXVAL;	else if (X < 0)		X=0;//cerr << "\t\tclampPredictedValue: after value = " << X << endl;}static voidcodecRunEndSample(Uint16 &Ix,Int32 Ra,Int32 Rb,Int32 RANGE,Uint16 NEAR,Uint32 MAXVAL,Uint16 RESET,		Uint16 LIMIT,Uint16 qbpp,Uint16 rk,		Uint32 *A,Int32 *N,Int32 *Nn,		BinaryInputStream &in,BinaryOutputStream &out,bool decompressing){//cerr << "\t\tcodecRunEndSample: " << (decompressing ? "decoding" : "encoding") << endl;//if (!decompressing) cerr << "\t\tcodecRunEndSample: value = " << Ix << endl;	bool RItype = (Ra == Rb || Abs(Ra-Rb) <= NEAR);	Int16 SIGN = (!RItype && Ra > Rb) ? -1 : 1;	Int32 Px = RItype ? Ra : Rb;//cerr << "\t\tcodecRunEndSample: Ra = " << Ra << endl;//cerr << "\t\tcodecRunEndSample: Rb = " << Rb << endl;//cerr << "\t\tcodecRunEndSample: RItype = " << (RItype ? "1":"0") << endl;//cerr << "\t\tcodecRunEndSample: SIGN = " << SIGN << endl;//cerr << "\t\tcodecRunEndSample: Px = " << Px << endl;	Uint32 TEMP = RItype ? A[366]+(N[366]>>1) : A[365];	Uint16 Q = 365 + (RItype ? 1 : 0);//cerr << "\t\tcodecRunEndSample: TEMP = " << TEMP << endl;//cerr << "\t\tcodecRunEndSample: Q = " << Q << endl;	Uint16 k = determineGolombParameter(N[Q],TEMP);//cerr << "\t\tcodecRunEndSample: k = " << k << endl;	Int32  Errval;	Int32  updateErrval;	Uint32 EMErrval;	if (decompressing) {		decodeMappedErrvalWithGolomb(k,LIMIT-rk-1,qbpp,EMErrval,in);	// needs work :(//cerr << "\t\tcodecRunEndSample: EMErrval = " << EMErrval << endl;		Uint32 tEMErrval = EMErrval + (RItype ? 1 : 0);		// use local copy to leave original for parameter update later//cerr << "\t\tcodecRunEndSample: tEMErrval = " << tEMErrval << endl;		if (tEMErrval == 0) {			Errval = 0;		}		else if (k == 0) {			if (2*Nn[Q-365] < N[Q]) {				if (tEMErrval%2 == 0) {					Errval = -Int32(tEMErrval>>1);		// "map = 0"	2 becomes -1, 4 becomes -2, 6 becomes -3				}				else {					Errval = (tEMErrval+1)>>1;		// "map = 1"	1 becomes 1, 3 becomes 2, 5 becomes 3				}			}			else {	// 2*Nn[Q-365] >= N[Q]				if (tEMErrval%2 == 0) {					Errval = tEMErrval>>1;			// "map = 0"	2 becomes 1, 4 becomes 2, 6 becomes 3				}				else {					Errval = -Int32((tEMErrval+1)>>1);	// "map = 1"	1 becomes -1, 3 becomes -2, 5 becomes -3				}			}		}		else {			if (tEMErrval%2 == 0) {				Errval = tEMErrval>>1;				// "map = 0"	2 becomes  1, 4 becomes  2, 6 becomes 3			}			else {				Errval = -Int32((tEMErrval+1)>>1);		// "map = 1"	1 becomes -1, 3 becomes -2, 5 becomes -3			}		}//cerr << "\t\tcodecRunEndSample: Errval after sign unmapping = " << Errval << endl;		updateErrval=Errval;		if (NEAR > 0) deQuantizeErrval(NEAR,Errval);//cerr << "\t\tcodecRunEndSample: Errval SIGN uncorrected = " << Errval << endl;		if (SIGN < 0) Errval=-Errval;		// if "context type" was negative//cerr << "\t\tcodecRunEndSample: Errval result = " << Errval << endl;		Int32 Rx = Px+Errval;		// modulo(RANGE*(2*NEAR+1)) as per F.1 Item 14		// (NB. Is this really the reverse of the encoding procedure ???)		if (Rx < -NEAR)			Rx+=RANGE*(2*NEAR+1);		else if (Rx > MAXVAL+NEAR)			Rx-=RANGE*(2*NEAR+1);		clampPredictedValue(Rx,MAXVAL);		// Apply inverse point transform and mapping table when implemented		Ix=(Uint16)Rx;	}	else {//cerr << "\t\tIx " << Ix << endl;		Errval = Int32(Ix) - Px;//cerr << "\t\tErrval " << Errval << endl;		if (SIGN < 0) Errval=-Errval;		// if "context type" was negative//cerr << "\t\tErrval sign corrected " << Errval << endl;		// Figure out sign to later correct Errval (Figure A.19) ...		if (NEAR > 0) {	// For near-lossless, quantize Errval and derive reconstructed value (A.4.4)			quantizeErrval(NEAR,Errval);//cerr << "\t\tErrval quantized " << Errval << endl;			// Replace with the reconstructed value the decoder will have			// (obviously if in lossless mode there will be no difference)			Int32 Rx=Px+SIGN*Errval*(2*NEAR+1);			clampPredictedValue(Rx,MAXVAL);								Ix=(Uint16)Rx;//cerr << "\t\tReplaced Rx " << Rx << endl;		}		// Modulo reduction of the prediction error (A.4.5)		if (Errval < 0)			Errval=Errval+RANGE;		if (Errval >= (RANGE+1)/2)	Errval=Errval-RANGE;//cerr << "\t\tErrval modulo " << RANGE << " = " << Errval << endl;		updateErrval=Errval;		// Golomb stuff is outside decompress/compress decision since same		// Map error to non-negative ...		// Int16 map = ((k == 0 && Errval > 0 && 2*Nn[Q-365] < N[Q]) || (Errval < 0 && (2*Nn[Q-365] >= N[Q] || k != 0)) ? 1 : 0;		// EMErrval = 2*Abs(Errval) - RItype - map;		if (k == 0) {			if (Errval > 0) {				if (2*Nn[Q-365] < N[Q]) {					EMErrval = 2*Errval - 1;		// "map = 1"	1 becomes 1, 2 becomes 3, 3 becomes 5				}				else {	// 2*Nn[Q-365] >= N[Q]					EMErrval = 2*Errval;			// "map = 0"	1 becomes 2, 2 becomes 4, 3 becomes 6				}			}			else if (Errval < 0) {				if (2*Nn[Q-365] < N[Q]) {					EMErrval = -2*Errval;			// "map = 0"	-1 becomes 2, -2 becomes 4, -3 becomes 6				}				else {	// 2*Nn[Q-365] >= N[Q]					EMErrval = -2*Errval - 1;		// "map = 1"	-1 becomes 1, -2 becomes 3, -3 becomes 5				}			}			else { // Errval == 0				EMErrval = 0;					// "map = 0"	0 stays 0			}		}		else {	// k != 0			if (Errval > 0) {				EMErrval = 2*Errval;				// "map = 0"	1 becomes 2, 2 becomes 4, 3 becomes 6			}			else if (Errval < 0) {				EMErrval = -2*Errval - 1;			// "map = 1"	-1 becomes 1, -2 becomes 3, -3 becomes 5			}			else { // Errval == 0				EMErrval = 0;					// "map = 0"	0 stays 0			}		}//cerr << "\t\tcodecRunEndSample: EMErrval before subtraction of RItype = " << EMErrval << endl;		EMErrval-=(RItype ? 1 : 0);//cerr << "\t\tcodecRunEndSample: EMErrval after subtraction of RItype = " << EMErrval << endl;		encodeMappedErrvalWithGolomb(k,LIMIT-rk-1,qbpp,EMErrval,out);	}	// Update parameters ...//cerr << "\t\tcodecRunEndSample: Update parameters ... updateErrval used = " << updateErrval << endl;//cerr << "\t\tcodecRunEndSample: Update parameters ... EMErrval used = " << EMErrval << endl;//cerr << "\t\tcodecRunEndSample: A[" << Q << "]  before = " << A[Q]  << endl;//cerr << "\t\tcodecRunEndSample: N[" << Q << "]  before = " << N[Q]  << endl;//cerr << "\t\tcodecRunEndSample: Nn[" << (Q-365) << "] before = " << Nn[Q-365] << endl;	if (updateErrval < 0) ++Nn[Q-365];	A[Q]+=(EMErrval+1-(RItype ? 1 : 0))>>1;	if (N[Q] == RESET) {		A[Q]=A[Q]>>1;		N[Q]=N[Q]>>1;		Nn[Q-365]=Nn[Q-365]>>1;	}	++N[Q];//cerr << "\t\tcodecRunEndSample: A[" << Q << "]  updated = " << A[Q]  << endl;//cerr << "\t\tcodecRunEndSample: N[" << Q << "]  updated = " << N[Q]  << endl;//cerr << "\t\tcodecRunEndSample: Nn[" << (Q-365) << "] updated = " << Nn[Q-365] << endl;//if (decompressing) cerr << "\t\tcodecRunEndSample: value = " << Ix << endl;}intmain(int argc,char **argv){	bool bad=false;	GetNamedOptions				options(argc,argv);	BinaryInputOptionsWithByteOrder		input_options(options);	BinaryOutputOptionsWithByteOrder	output_options(options);	bool verbose=options.get("v") || options.get("verbose");	bool decompressing=options.get("d") || options.get("decompress");	bool useJPEGmarkers=!options.get("nomarkers");	bool useRunMode=!options.get("noruns");	unsigned rows=0;	if ((!decompressing || !useJPEGmarkers) && !options.get("rows",rows) && !options.get("height",rows) && !options.get("h",rows)) {		cerr << EMsgDC(NeedOption) << " - rows" << endl;		bad=true;	}	unsigned cols=0;	if ((!decompressing || !useJPEGmarkers) && !options.get("columns",cols) && !options.get("width",cols) && !options.get("w",cols)) {		cerr << EMsgDC(NeedOption) << " - columns" << endl;		bad=true;	}	unsigned bits=0;	if ((!decompressing || !useJPEGmarkers) && !options.get("bits",bits) && !options.get("depth",bits)) {		cerr << EMsgDC(NeedOption) << " - bits" << endl;		bad=true;	}	Assert(bits <= 16);	Uint16 NEAR=0;		// Lossless if zero	Uint16 T1=0;	Uint16 T2=0;	Uint16 T3=0;	Uint16 RESET=0;	if ((!decompressing || !useJPEGmarkers)) {		unsigned near;	if (options.get("near",near))				NEAR=near;		unsigned t1;	if (options.get("T1",t1) || options.get("Ta",t1))	T1=t1;		unsigned t2;	if (options.get("T2",t2) || options.get("Tb",t2))	T2=t2;		unsigned t3;	if (options.get("T3",t3) || options.get("Tc",t3))	T3=t3;		unsigned reset;	if (options.get("reset",reset))				RESET=reset;	}	input_options.done();	output_options.done();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美理论在线播放| 2023国产精华国产精品| 日韩欧美国产系列| 一区在线观看视频| 激情综合亚洲精品| 欧美精品99久久久**| 国产精品久久久久久久久晋中| 亚洲成av人片一区二区三区| 懂色av中文字幕一区二区三区| 欧美男女性生活在线直播观看| 国产欧美精品区一区二区三区| 日本在线不卡视频一二三区| 91免费在线播放| 久久久www免费人成精品| 日韩成人免费在线| 欧美午夜寂寞影院| 一区在线中文字幕| 国产 日韩 欧美大片| 2019国产精品| 强制捆绑调教一区二区| 精品视频123区在线观看| 一区在线中文字幕| 99久久精品免费精品国产| 国产午夜精品一区二区三区嫩草| 免费成人在线观看| 5858s免费视频成人| 亚洲国产日韩av| 91行情网站电视在线观看高清版| 国产精品卡一卡二| 成人a级免费电影| 国产精品区一区二区三区| 国产成人精品三级| 国产午夜精品一区二区三区视频 | 五月天激情综合| 91影视在线播放| 综合久久综合久久| 91免费精品国自产拍在线不卡| 中文字幕欧美区| av在线播放一区二区三区| 中文字幕一区二区三区不卡在线 | 精品国产免费人成在线观看| 视频一区欧美精品| 欧美一区二区三区爱爱| 日本91福利区| 日韩欧美一级特黄在线播放| 久久精品国产亚洲aⅴ| 欧美电影免费观看高清完整版在线观看 | 国产成人自拍在线| 欧美韩国日本一区| 不卡一区二区三区四区| 一区二区三区四区亚洲| 91年精品国产| 亚洲国产人成综合网站| 日韩欧美国产1| 国产精品影音先锋| 亚洲欧美日韩中文播放| 国产欧美一区二区精品婷婷 | 色综合久久六月婷婷中文字幕| 亚洲欧美电影一区二区| 欧美三电影在线| 日本成人在线网站| 国产精品日韩成人| 欧美色欧美亚洲另类二区| 久久精品国产一区二区三| 国产精品午夜电影| 欧美日韩免费在线视频| 激情五月婷婷综合| 亚洲三级电影全部在线观看高清| 欧美三级日韩在线| 国产乱码一区二区三区| 亚洲欧美一区二区久久| 欧美一区二区免费| 波多野结衣中文字幕一区二区三区| 夜夜精品浪潮av一区二区三区| 91麻豆精品国产综合久久久久久| 国产盗摄女厕一区二区三区| 伊人开心综合网| 欧美大片顶级少妇| 色婷婷精品久久二区二区蜜臂av| 一区二区在线观看免费| 亚洲靠逼com| 日韩精品专区在线影院重磅| 91亚洲精华国产精华精华液| 日韩激情一区二区| 亚洲丝袜美腿综合| 精品国产一区二区三区不卡 | 99国产精品国产精品毛片| 亚洲国产欧美一区二区三区丁香婷| 久久久综合视频| 欧美日韩国产一二三| 91小宝寻花一区二区三区| 精品一区二区三区影院在线午夜| 一区二区三区免费| 国产欧美一区二区三区鸳鸯浴| 欧美精品乱人伦久久久久久| 91丨porny丨国产入口| 国产麻豆视频一区二区| 日本欧美一区二区在线观看| 一区二区三区成人在线视频| 国产欧美日韩麻豆91| 日韩精品一区二区三区在线观看 | 91在线丨porny丨国产| 国产精品 日产精品 欧美精品| 亚洲福利电影网| 亚洲图片欧美激情| 国产精品成人免费| 国产欧美一区二区三区鸳鸯浴| 欧美va在线播放| 欧美精品乱码久久久久久| 色欧美乱欧美15图片| 国产精选一区二区三区| 亚洲成人午夜电影| 午夜日韩在线电影| 亚洲一区影音先锋| 欧美日韩国产美| 色综合久久久久久久久久久| 国产成人aaaa| 国产成人一区在线| 国产精品一区在线观看乱码| 国产在线一区观看| 精品系列免费在线观看| 久久99国内精品| 国产一区二区不卡| 国产精品自拍毛片| 国产一区欧美一区| 高清不卡一区二区在线| 成人免费高清视频| 99精品欧美一区| 欧洲精品视频在线观看| 精品视频一区三区九区| 这里只有精品免费| 日韩欧美电影一二三| 欧美成人精品二区三区99精品| 精品久久久久久久一区二区蜜臀| 日韩午夜av一区| 久久这里都是精品| 国产精品久久久久久亚洲毛片| 国产精品国产三级国产| 亚洲精品老司机| 亚洲国产精品人人做人人爽| 日韩国产精品久久久| 国产专区欧美精品| 国产另类ts人妖一区二区| 成年人午夜久久久| 在线一区二区三区四区五区 | 国产一区二区电影| 国产成人免费视频精品含羞草妖精| 顶级嫩模精品视频在线看| 一本大道久久精品懂色aⅴ| 欧美日韩综合色| 精品国产青草久久久久福利| 中文在线一区二区| 亚洲一本大道在线| 九九**精品视频免费播放| 国产成人亚洲综合a∨婷婷 | 国产精品久久久久久久久动漫| 亚洲精品成a人| 日本91福利区| aaa亚洲精品| 日韩一卡二卡三卡四卡| 国产欧美精品一区二区色综合朱莉| 一区二区三区在线视频免费| 久久成人av少妇免费| 色噜噜久久综合| 制服丝袜日韩国产| 亚洲免费在线播放| 国产一区美女在线| 欧美人伦禁忌dvd放荡欲情| 中文字幕欧美三区| 免费人成精品欧美精品| 99riav一区二区三区| 精品少妇一区二区| 狠狠色丁香婷综合久久| 日本高清不卡一区| 国产亚洲女人久久久久毛片| 亚洲成年人影院| 99久久免费视频.com| 精品免费视频一区二区| 亚洲午夜视频在线| 成人午夜av影视| 精品噜噜噜噜久久久久久久久试看| 日韩毛片视频在线看| 国产麻豆视频一区| 日韩一区二区三区电影在线观看| 亚洲女性喷水在线观看一区| 国内精品国产成人国产三级粉色| 欧美日韩免费观看一区二区三区| 国产精品三级久久久久三级| 久久国产欧美日韩精品| 欧美一区二区国产| 亚洲一区二区视频在线观看| 粉嫩在线一区二区三区视频| 日韩欧美美女一区二区三区| 亚洲自拍偷拍网站| 色嗨嗨av一区二区三区| 国产精品久久久久天堂| 国产69精品久久久久毛片| 国产亚洲成av人在线观看导航| 久久99精品久久久久久久久久久久 | 国产午夜精品久久久久久免费视|