⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postprocess_internal.h

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 H
字号:
/************************************************************************ Copyright (C) 2000-2005 Trolltech AS and its licensors.** All rights reserved.**** This file is part of the Qtopia Environment.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/gpl/ for GPL licensing information.** See below for additional copyright and license information**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************//*    Copyright (C) 2001-2002 Michael Niedermayer (michaelni@gmx.at)    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//** * @file postprocess_internal.h * internal api header. */#define V_DEBLOCK	0x01#define H_DEBLOCK	0x02#define DERING		0x04#define LEVEL_FIX	0x08 ///< Brightness & Contrast#define LUM_V_DEBLOCK	V_DEBLOCK		//   1#define LUM_H_DEBLOCK	H_DEBLOCK		//   2#define CHROM_V_DEBLOCK	(V_DEBLOCK<<4)		//  16#define CHROM_H_DEBLOCK	(H_DEBLOCK<<4)		//  32#define LUM_DERING	DERING			//   4#define CHROM_DERING	(DERING<<4)		//  64#define LUM_LEVEL_FIX	LEVEL_FIX		//   8#define CHROM_LEVEL_FIX	(LEVEL_FIX<<4)		// 128 (not implemented yet)// Experimental vertical filters#define V_X1_FILTER	0x0200			// 512// Experimental horizontal filters#define H_X1_FILTER	0x2000			// 8192/// select between full y range (255-0) or standart one (234-16)#define FULL_Y_RANGE	0x8000			// 32768//Deinterlacing Filters#define	LINEAR_IPOL_DEINT_FILTER	0x10000	// 65536#define	LINEAR_BLEND_DEINT_FILTER	0x20000	// 131072#define	CUBIC_BLEND_DEINT_FILTER	0x8000	// (not implemented yet)#define	CUBIC_IPOL_DEINT_FILTER		0x40000	// 262144#define	MEDIAN_DEINT_FILTER		0x80000	// 524288#define	FFMPEG_DEINT_FILTER		0x400000#define	LOWPASS5_DEINT_FILTER		0x800000#define TEMP_NOISE_FILTER		0x100000#define FORCE_QUANT			0x200000//use if u want a faster postprocessing code//cant differentiate between chroma & luma filters (both on or both off)//obviosly the -pp option at the commandline has no effect except turning the here selected//filters on//#define COMPILE_TIME_MODE 0x77#if 1static inline int CLIP(int a){	if(a&256) return ((a)>>31)^(-1);	else      return a;}//#define CLIP(a) (((a)&256) ? ((a)>>31)^(-1) : (a))#elif 0#define CLIP(a) clip_tab[a]#else#define CLIP(a) (a)#endif/** * Postprocessng filter. */struct PPFilter{	char *shortName;	char *longName;	int chromDefault; 	///< is chrominance filtering on by default if this filter is manually activated	int minLumQuality; 	///< minimum quality to turn luminance filtering on	int minChromQuality;	///< minimum quality to turn chrominance filtering on	int mask; 		///< Bitmask to turn this filter on};/** * Postprocessng mode. */typedef struct PPMode{	int lumMode; 			///< acivates filters for luminance	int chromMode; 			///< acivates filters for chrominance	int error; 			///< non zero on error	int minAllowedY; 		///< for brigtness correction	int maxAllowedY; 		///< for brihtness correction	float maxClippedThreshold;	///< amount of "black" u r willing to loose to get a brightness corrected picture	int maxTmpNoise[3]; 		///< for Temporal Noise Reducing filter (Maximal sum of abs differences)	int baseDcDiff;	int flatnessThreshold;	int forcedQuant; 		///< quantizer if FORCE_QUANT is used} PPMode;/** * postprocess context. */typedef struct PPContext{	uint8_t *tempBlocks; ///<used for the horizontal code	/**	 * luma histogram.         	 * we need 64bit here otherwise we'll going to have a problem	 * after watching a black picture for 5 hours	 */	uint64_t *yHistogram;	uint64_t __attribute__((aligned(8))) packedYOffset;	uint64_t __attribute__((aligned(8))) packedYScale;	/** Temporal noise reducing buffers */	uint8_t *tempBlured[3];	int32_t *tempBluredPast[3];	/** Temporary buffers for handling the last row(s) */	uint8_t *tempDst;	uint8_t *tempSrc;	uint8_t *deintTemp;	uint64_t __attribute__((aligned(8))) pQPb;	uint64_t __attribute__((aligned(8))) pQPb2;	uint64_t __attribute__((aligned(8))) mmxDcOffset[32];	uint64_t __attribute__((aligned(8))) mmxDcThreshold[32];	QP_STORE_T *stdQPTable;       ///< used to fix MPEG2 style qscale	QP_STORE_T *nonBQPTable;	QP_STORE_T *forcedQPTable;	int QP;	int nonBQP;	int frameNum;		int cpuCaps;        	int qpStride; ///<size of qp buffers (needed to realloc them if needed)	int stride;   ///<size of some buffers (needed to realloc them if needed)        	int hChromaSubSample;	int vChromaSubSample;	PPMode ppMode;} PPContext;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -