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

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

?? advancejpeg-lscode.h

?? 改進的JPEG-LS算法
?? H
字號:

//編碼器操作方式定義
#define MaxMTestErrMeLimen(a)			(((a)/3))
//#define MinMTestErrMeLimen(a)			(((a)/8))
#define MinMTestErrMeLimen(a)			(((a)/6))
#define MTestErrMeLimen(a)				(((a)/4))
#define MAdjustErrMe(a)					((a)+(a))
#define MAdjustErrMe2(a)				(4*(a))
#define MAX_RUN_TEST_THRESHOLD_NUMBER	3
#define MIN_MINCONTEXT(a)					(a+(a)/6)
#define MIN_MDoubleMaxErrAdjust(a)			(a+1)
#define MIN_MDoubleMaxErrAdjust2(a)			(a+(a)/2+1)
#define MIN_MDoubleMaxErr(a)				(a+a)

#define MID_MINCONTEXT(a)					(a+((a)/3))
#define MID_MDoubleMaxErrAdjust(a)			(a+((a)/6)+1)
#define MID_MDoubleMaxErrAdjust2(a)			(a+(a)/3+1)
#define MID_MDoubleMaxErr(a)				(a+a+((a)/3))

#define MAX_MINCONTEXT(a)					(a+((a)*2/3))
#define MAX_MDoubleMaxErrAdjust(a)			(a+((a)/3)+1)
#define MAX_MDoubleMaxErrAdjust2(a)			(a+(a))
#define MAX_MDoubleMaxErr(a)				(a+a+a)

#define MFilterGradeLimen(a)			(((a)*3)/3)
//#define MFilterGradeLimen(a)			(((a)*2)/3)
#define DEFAULT_ADJUST_WIN_LENGTH		6

#define RUN_APPEND_FILTER_CONTROL_MIN_RUNL	3//附加游程方式下的濾波控制最小檢測游程長度

#define BASIC_T1	3				// basic default threshold values
#define BASIC_T2	7
#define BASIC_T3	21

#define DEFAULT_RESET 64
//用于多波段編碼
#define UNIFORM_FLOAT_TO_INT_MUL	32767
#define STATISTIC_LINE_NUMBER	3
#define PIX_ADD					8192
#define MAX_PREDICT_ERR			PIX_ADD
#define MAX_A_MUL				131068//4*32767
#define MIN_A_MUL				6553//0.2*32767
#define MAX_BAND_CONTEXT_NUMBER	64
#define BAND_CONTEXT_RANGE		64
#define MIN_STATISTIC_NUMBER	64
#define UPDATE_RELATIVE_LINE_NUMBER		2
#define ALLOW_PREDICTION_MIN_RELATIVE	26541//0.90*0.9*32767
#define NOT_PREDICTION_MAX_RELATIVE		22033//0.82*0.82*32767
//該類僅完成一次連續的圖像行編碼過程,在調用過程中,只要不復位,圖像的壓縮就是連續的。
//由于部分參數的優化更新與行數有關,類內有當前行指示。
/*

      編碼調用辦法


	一、初始化
		  1、定義編碼器對象(這是一個數據結構,提供圖像行壓縮的基本控制數據和圖像的上下文緩沖)
		  2、復位并初始化編碼器。(主要的圖像的上下文及壓縮控制數據,為壓縮新的圖像作準備)
	二、壓縮過程調用
		  1、加載圖像數據。(要求圖像行數據是存在于某緩沖中,如果是可波段預測,則求行預測誤差數據。)
		  2、壓縮一行圖像數據,壓縮比特流存放于指定地址緩沖區內。(有比特流輸出)
		  3、壓縮控制參數的優化更新。(內部操作)
	三、壓縮過程的結束
		  1、釋放編碼器申請的存貯空間。

		譯碼調用辦法


	一、初始化
		  1、定義譯碼器對象(這是一個數據結構,提供圖像行解壓縮的基本控制數據和圖像的上下文緩沖)
		  2、復位并初始化譯碼器。(主要的圖像的上下文及壓縮控制數據,為解壓縮新的圖像作準備)
	二、解壓縮過程調用
		  1、加載圖像壓縮數據。(要求圖像行數據是存在于某緩沖中,如果是可波段預測,則求行預測誤差數據。)
		  2、解壓縮一行圖像數據,輸出一個圖像行。
		  3、壓縮控制參數的優化更新。(內部操作)
	三、壓縮過程的結束
		  1、釋放譯碼器申請的存貯空間。

*/

struct AdvanceJPEGLSMaxErrList
{
	short int PixSeat,Sign;
};
class	CDoubleErrorNumberFastCoding;
class	CDoubleErrorRunFastCoding;
class CAdvanceJepgLSOneLineCode
{
private:
public:
	//數據單元
	int *lpImage;//圖象數據指針,波段預測時應為預測誤差圖像
	int OneSampleBits;
	int AndCode;
	int Pixel_ADD;
	LPBYTE lpCodeStream;//編碼數據流
	int CodeBitcp;
	int LineN;//行計數

	int A[367];//accumulated prediction error magnitude
	int B[365];//computing the bias
//	int CC[10];
	int C[365];//storing prediction correction values
	int N[367];//frequency of occurrence of each context
	char qbpp;//	number of bits needed to represent a mapped error value
	char bpp;//number of bits needed to represent MAXVAL, with a minimum of 2
	unsigned short int MAXVAL;//maximum possible image sample value over all components of a scan
	short int RANGE;//	range of prediction error representation
	short int RESET;//	threshold value at which A, B, and N are halved

	BOOL EOLine;//end of line indicator, used in run mode
	unsigned short int X;//number of samples per line in the component with largest horizontal dimension

	short int MAX_C;//	maximum allowed value of C[0..364], equal to 127
	short int MIN_C;//	minimum allowed value of C[0..364], equal to -128
	short int LIMIT;//	the value of glimit for a sample encoded in regular mode

	unsigned short int qNEAR;//	difference bound for near-lossless coding

	int x;
	int Ix;//the value of the current sample in the input image
	int Ra,Rb,Rc,Rd,Raa;//reconstructed values of samples in the causal template
	int *lpPrecedingLine,*lpCurrentLine,*lpThirdLine,*lpBuf1,*lpBuf2,*lpBuf3;
	int *lpReconstructPrecedingLine,*lpReconstructCurrentLine,*lpBuf4,*lpBuf5;
	int Rx;//reconstructed value of the current sample
	int Px;//predicted value for the sample x

	int T1, T2, T3;//	thresholds for local gradients

	int SIGN;//temporary variable used to hold the sign of a context
	short int Q;//context determined from Q1, Q2, Q3
	short int Q1,Q2,Q3;//region numbers of quantized local gradients

	int Errval;//prediction error (quantized or unquantized, before and after modulo reduction)
	int MErrval;//Errval mapped  to non-negative integers in regular mode
	int K;//Golomb coding variable for regular mode
	int glimit;//	number of bits to which the length of a Golomb code word is limited

	short int J[32];//	32 variables indicating order of run-length codes
	int RUNval;//repetitive reconstructed sample value in a run
	int RUNcnt;//repetitive sample count for run mode
	int RUNindex;//index for run mode order

	int RItype;//index for run interruption coding
	int TEMP;//auxiliary variable used in the calculation of the Golomb variable in run interruption coding
	int map;//auxiliary variable for error mapping at run interruption
	int EMErrval;//Errval mapped to non-negative integers in run interruption mode
	short int Nn[2];// (365,366) 2 counters for negative prediction error for run interruption

	int DoubleMaxError;//游程方式的檢測門限
	int RunContext;//游程方式下的上下文控制門限
	int MaxErrAdjust1;//第一級大誤差調節量
	int MaxErrAdjust2;//第二級大誤差調節量
	int RunTestThresholdStep;//游程方式下門限參數組指示。
	int SetDoubleMaxError[MAX_RUN_TEST_THRESHOLD_NUMBER];//游程方式的檢測門限,預定值。
	int SetRunContext[MAX_RUN_TEST_THRESHOLD_NUMBER];//游程方式下的上下文控制門限,預定值。
	int SetMaxErrAdjust1[MAX_RUN_TEST_THRESHOLD_NUMBER];//第一級大誤差調節量,預定值。
	int SetMaxErrAdjust2[MAX_RUN_TEST_THRESHOLD_NUMBER];//第二級大誤差調節量,預定值。

	AdvanceJPEGLSMaxErrList *lpDoubleErrList;//存放每行大誤差位置和狀態
	int DoubleErrN,DErrN,DDErrN;//大誤差數,一級大誤差數,二級大誤差數。

	int AdjustErrorMe,TestErrorMeLimen;//平坦區單元均值調節值及調節檢測門限。
	int AdjustWinLength,BakAdjustWinLength;//調節窗口長度。
	int AdjustNumber,AllTestNumber;//單元調節數及總的測試單元數,用于求單元調節率并用以控制單元調節檢測門限。
	int RunPredication;//游程方式下的預測值

	CDoubleErrorNumberFastCoding *lpDErrNumberFastCoding;//一級大誤差數編碼器
	CDoubleErrorRunFastCoding *lpDErrRunFastCoding;//一級大誤差游程編碼器
	CDoubleErrorNumberFastCoding *lpDDErrNumberFastCoding;//二級大誤差數編碼器
	CDoubleErrorRunFastCoding *lpDDErrRunFastCoding;//二級大誤差游程編碼器
	CDoubleErrorNumberFastCoding *lpTwoAdjustNumberFastCoding;//一級單元調節數編碼器
	CDoubleErrorRunFastCoding *lpTwoAdjustRunFastCoding;//一級單元調節游程編碼器
	CDoubleErrorNumberFastCoding *lpAdjustNumberFastCoding;//二級單元調節數編碼器
	CDoubleErrorRunFastCoding *lpAdjustRunFastCoding;//二級單元調節游程編碼器

	//用于多波段編碼
	//AllowBandPrediction用在單象素編碼方式的切換,預波段預測可隨時啟用或關閉。

	CAdvanceJepgLSOneLineCode *lpPredictionBandCode;//用于波段預測,可從該數據結構中獲得預測波段的重建圖像數據
	int A_Mul,B_Add,p;//用于波段預測的參數(線性預測)
	//相關系數控制是否預測,當相關系數小于某門限時:取消預測,此時,前行及前前行換成重建象素值(都加上PIX_ADD)。
	//波段預測系數及相關系數還要更新,前行及前前行的預測系數要另行保存,以備預測開啟時用以求預測誤差重建值。
	//開啟預測時:前行及前前行換成預測誤差重建值,設置開啟標志
	BOOL OpenOffBandPrediction,AllowBandPrediction;//初值為TRUE
	int Last_A_Mul,Last_B_Add;//前行波段預測的參數(線性預測),初值與A_Mul,B_Add同
	__int64 D_Cun,D_Pre,E_Cun,E_Pre,R_CunPre;
	int PredictErr_D;//預測誤差的方差
	int StatisticLinN;
public:
	void UpdateBandPrediction();//更新波段預測參數,更新變量A_Mul,A_Div,B_Add。
	void InitBandPrediction();
	void OpenBandPrediction();
	void CloseBandPrediction();
	void PrepareCode(int LineL,CAdvanceJepgLSOneLineCode *lpPredictionBand=NULL);
	//用于多波段編碼

	//函數
	CAdvanceJepgLSOneLineCode();
	~CAdvanceJepgLSOneLineCode();
	BOOL CanEnterRUN();
	BOOL GetNextSample();
	void AppendToBitStream(int a,int b);//Function: appends the non-negative number a in binary form 
		//to the encoded bit stream, using b bits.  Most significant bits are appended first.  
		//The process guarantees that b bits are sufficient to represent a exactly.
	int Quantize(int a,int pNEAR);//Function: returns the quantized value of a following the procedure
		//applied to Errval in Figure A.8 ("if" statement).  This function is used to quantize 
		//the prediction error in near-lossless coding.
	int ModRange(int a,int pRANGE);//Function: returns the value of a modulo RANGE as described in A.4.5.
	int ComputeRx(int pNEAR);//Function: returns the reconstructed value Rx of the current sample
		//as described in Figure A.8 (after the "if" statement).  This function reconstructs 
		//the value of Rx from the quantized prediction error.
	void InitialisationsCode(int OnePixelBit,int AllowMaxError);//初始化編碼器,一般在圖象數據加載之后
	void EndCode();//主要是清除申請的緩沖區,要在編碼數據處理完后方可結束
	int RunPredicate();//游程方式下的預測
	void ResetContext(int Seat);
	int DoEncodeLine(LPBYTE lpImageBuf,int OneSampleBytes,LPBYTE lpCompressBuf,int CompressBitcp,double *lpErrorMse=NULL);//執行一行圖像編碼操作
	void AppendRunEncode(int Bgx,int Runl);
	void EncodeDoubleError();//編碼一級大誤差
	void EncodeDDoubleError();//編碼二級大誤差
	void EncodeTwoAdjust(int *lpAdjustSequence,int AdjustLength,int TwoAdjustLength);//編碼二級調節序列
	void EncodeAdjust(int *lpAdjustSequence,int AllAdjustLength,int AdjustLength);//編碼一級調節序列
	//與譯碼有關的函數
	int DoDecodeLine(LPBYTE lpImageBuf,int OneSampleBytes,LPBYTE lpCompressBuf,int CompressBitcp);//執行一行圖像譯碼操作
	BOOL SetNextSample();
	int GetFromBitStream(int b);
	int ReturnZeroBitNumber();
	void AppendRunDecode(int Bgx,int Runl);
	void DecodeDoubleError();
	void DecodeDDoubleError();
	int DecodeTwoAdjust(int *lpAdjustSequence,int AdjustLength);
	int DecodeAdjust(int *lpAdjustSequence,int AllAdjustLength);
	CString GetString();
};
//不含預測的單幅圖像壓縮實例
int OneImageAdvanceJPEGLSEncode(LPBYTE lpOneImageData,LPBYTE lpCompressBuf,
								int Width,
								int Height,
								int AllowMaxError,
								int OnePixelBits,
								int OnePixelBytes);
int OneImageAdvanceJPEGLSDecode(LPBYTE lpOneImageData,LPBYTE lpCompressBuf,
								int Width,
								int Height,
								int AllowMaxError,
								int OnePixelBits,
								int OnePixelBytes);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
强制捆绑调教一区二区| 国产精品第13页| 青娱乐精品在线视频| 欧美裸体一区二区三区| 青青草国产成人99久久| 精品奇米国产一区二区三区| 国产原创一区二区| 一色桃子久久精品亚洲| 色综合天天综合网国产成人综合天| 亚洲精品国产精品乱码不99| 欧美二区在线观看| 国产激情视频一区二区三区欧美| 国产精品久久久久久久久免费丝袜 | 亚洲综合视频网| 7777精品伊人久久久大香线蕉的| 狠狠狠色丁香婷婷综合久久五月| 国产精品视频看| 欧美日韩电影一区| 国产福利91精品一区| 亚洲小说欧美激情另类| 精品福利一区二区三区免费视频| av不卡在线观看| 日产精品久久久久久久性色| 国产女同性恋一区二区| 欧美日本在线播放| 豆国产96在线|亚洲| 亚洲国产wwwccc36天堂| 国产亚洲欧美日韩在线一区| 在线免费亚洲电影| 91精品午夜视频| 国产福利一区二区| 午夜久久久久久| 国产精品三级av在线播放| 欧美精品v国产精品v日韩精品| 国产盗摄精品一区二区三区在线| 亚洲国产视频在线| 中文字幕精品一区二区精品绿巨人| 精品视频一区 二区 三区| 国产成人精品三级| 美女任你摸久久| 亚洲永久免费视频| 中文字幕乱码亚洲精品一区| 欧美一级淫片007| 91在线观看高清| 国产超碰在线一区| 久久国产精品露脸对白| 午夜精品aaa| 亚洲免费资源在线播放| 欧美极品xxx| 26uuu亚洲综合色欧美 | 久久99精品视频| 亚洲成人黄色小说| 国产精品福利av| 久久综合九色综合欧美亚洲| 欧美一区二区福利视频| 欧美性高清videossexo| 色综合天天做天天爱| 成人高清视频在线观看| 黄色日韩网站视频| 麻豆久久久久久久| 毛片基地黄久久久久久天堂| 日韩福利视频导航| 天天亚洲美女在线视频| 一区二区视频在线看| 日韩伦理电影网| 中文字幕一区二区视频| 国产精品欧美极品| 国产精品网友自拍| 国产精品人成在线观看免费| 国产色产综合色产在线视频| 2020国产成人综合网| 26uuu精品一区二区在线观看| 日韩一区二区在线观看视频| 欧美精品色综合| 91精品国产丝袜白色高跟鞋| 日韩一区二区麻豆国产| 亚洲午夜在线观看视频在线| 亚洲综合在线免费观看| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美区自拍先锋| 亚洲欧美另类图片小说| 亚洲精品ww久久久久久p站| 一区二区在线免费| 午夜成人免费电影| 美腿丝袜亚洲色图| 国产乱淫av一区二区三区| 国产乱理伦片在线观看夜一区| 狠狠色狠狠色综合日日91app| 国产高清无密码一区二区三区| 国产麻豆欧美日韩一区| 粉嫩欧美一区二区三区高清影视| 不卡的av在线播放| 色婷婷久久久综合中文字幕| 欧美视频你懂的| 日韩欧美一区在线| 欧美国产精品久久| 一区二区三区在线观看国产| 日韩精品高清不卡| 国产成人午夜高潮毛片| 色综合久久久网| 欧美日韩国产影片| 久久一二三国产| 一区二区在线观看视频在线观看| 午夜欧美在线一二页| 国产美女视频91| 在线观看亚洲成人| 日韩一区二区三区免费看| 欧美激情一区二区三区不卡| 一区二区三区四区在线| 精品亚洲免费视频| 99免费精品视频| 91精品国模一区二区三区| 国产日韩精品一区二区三区| 亚洲一区二区三区视频在线播放| 美女视频黄频大全不卡视频在线播放| 国产高清精品久久久久| 欧美日韩亚洲综合在线 | 国产一区福利在线| 91论坛在线播放| 久久亚洲私人国产精品va媚药| 亚洲精品日韩一| 国产制服丝袜一区| 欧美网站大全在线观看| 欧美精品一区二区三区视频| 亚洲一区二区欧美日韩| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩一区二区三区视频在线| 成人免费一区二区三区视频 | 亚洲欧洲www| 91精品国产欧美一区二区18| 欧美激情一区二区在线| 免费在线看成人av| 在线观看免费一区| 国产欧美精品在线观看| 日韩国产欧美一区二区三区| 91一区在线观看| 欧美激情中文不卡| 精品一区二区综合| 91精品国产综合久久久久久漫画| 亚洲日本韩国一区| 成人午夜视频免费看| 精品久久久久香蕉网| 日韩高清在线一区| 欧美日本国产一区| 一区二区三区影院| 91麻豆精东视频| 国产精品成人网| 成人性生交大片免费看视频在线| 日韩一区二区三区在线| 亚洲成人手机在线| 欧美色图在线观看| 一区二区三区自拍| 在线一区二区观看| 亚洲欧洲性图库| 成人午夜电影久久影院| 国产欧美日韩视频一区二区| 极品少妇一区二区| 精品第一国产综合精品aⅴ| 裸体在线国模精品偷拍| 日韩欧美自拍偷拍| 精品一区二区三区视频在线观看| 欧美一区二区国产| 麻豆成人av在线| 久久五月婷婷丁香社区| 精品中文字幕一区二区小辣椒| 欧美本精品男人aⅴ天堂| 日韩av一区二区三区四区| 91精品国产免费| 久久精品国产亚洲a| 欧美成人免费网站| 国产美女精品人人做人人爽| 久久久99精品免费观看| 国产a视频精品免费观看| 国产精品视频看| 色综合久久综合网97色综合| 亚洲夂夂婷婷色拍ww47| 欧美精品1区2区| 精品一区二区三区蜜桃| 久久精品视频在线看| 波多野结衣精品在线| 亚洲特级片在线| 欧美日韩性生活| 韩国理伦片一区二区三区在线播放| 国产亚洲一二三区| av一区二区不卡| 亚洲观看高清完整版在线观看| 欧美一区二区三区啪啪| 国产在线视频一区二区| 国产精品久久网站| 欧美日韩精品欧美日韩精品一综合| 奇米综合一区二区三区精品视频| 欧美精品一区二区三区久久久| 成人精品免费看| 亚洲一二三四区不卡| 精品99一区二区三区| 成人app网站| 日本色综合中文字幕| 久久久国产精品不卡| 色网站国产精品| 美女视频黄免费的久久|