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

📄 jpeg.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 5 页
字号:
		JPEG_ENCODER_IDLE_STATE=0,
		JPEG_ENCODER_STANDBY_STATE,
		JPEG_ENCODER_ENCODING_STATE
	}	JPEG_ENCODER_STATE_ENUM;
	#define JPEG_ENCODER_IDMA_LINE_BUFFER_NUMBER		32
#endif

#define RESIZER_WORKING_MEM_LINE_NUMBER		4
#define JPEG_PROGRESSIVE_BUFFER_LINE_NUMBER	16

#if (defined(MT6218B))
	#define MAX_RESIZER_INPUT_WIDTH	320
	#define MAX_RESIZER_INPUT_HEIGHT	320
#elif (defined(MT6217)||defined(JPEG_DRV_V2))
	#define MAX_RESIZER_INPUT_WIDTH	320
	#define MAX_RESIZER_INPUT_HEIGHT	320
#elif (defined(JPEG_DRV_V3))
	#define MAX_RESIZER_INPUT_WIDTH	640
	#define MAX_RESIZER_INPUT_HEIGHT	640
#endif

#define JPEG_DECODER_JPEG_FILE_START_ADDR_REG			(JPEG_CODEC_base + 0x00)
#define JPEG_DECODER_TABLE_ADDR_REG							(JPEG_CODEC_base + 0x04)
#define JPEG_DECODER_SAMPLE_FACTOR_REG						(JPEG_CODEC_base + 0x08)
#define JPEG_DECODER_COMPENT_ID_REG							(JPEG_CODEC_base + 0x0C)
#define JPEG_DECODER_TOTAL_MCU_NUMBER_REG					(JPEG_CODEC_base + 0x10)
#define JPEG_DECODER_MCU_NUMBER_PER_MCU_ROW_REG 		(JPEG_CODEC_base + 0x14)
#define JPEG_DECODER_COMP0_DU_NUM_PER_MCU_ROW_REG		(JPEG_CODEC_base + 0x18)
#define JPEG_DECODER_COMP1_DU_NUM_PER_MCU_ROW_REG		(JPEG_CODEC_base + 0x1C)
#define JPEG_DECODER_COMP2_DU_NUM_PER_MCU_ROW_REG		(JPEG_CODEC_base + 0x20)
#define JPEG_DECODER_COMP0_DATA_UNIT_NUMBER_REG			(JPEG_CODEC_base + 0x24)
#define JPEG_DECODER_COMP1_DATA_UNIT_NUMBER_REG			(JPEG_CODEC_base + 0x28)
#define JPEG_DECODER_COMP2_DATA_UNIT_NUMBER_REG			(JPEG_CODEC_base + 0x2C)
#define JPEG_DECODER_COMP0_PROG_START_ADDR_REG			(JPEG_CODEC_base + 0x30)
#define JPEG_DECODER_COMP1_PROG_START_ADDR_REG			(JPEG_CODEC_base + 0x34)
#define JPEG_DECODER_COMP2_PROG_START_ADDR_REG			(JPEG_CODEC_base + 0x38)
#define JPEG_DECODER_CTRL_REG									(JPEG_CODEC_base + 0x3C)
#define JPEG_DECODER_TRIGGER_REG								(JPEG_CODEC_base + 0x40)
#define JPEG_DECODER_ABORT_REG								(JPEG_CODEC_base + 0x44)
#define JEPG_DECODER_STOP_ADDR_REG							(JPEG_CODEC_base + 0x48)
#define JPEG_DECODER_FILE_SIZE_REG							(JPEG_CODEC_base + 0x4C)
#define JEPG_DECODER_INTERLEAVE_FIRST_MCU_INDEX_REG	(JPEG_CODEC_base + 0x50)
#define JEPG_DECODER_INTERLEAVE_LAST_MCU_INDEX_REG		(JPEG_CODEC_base + 0x54)
#define JEPG_DECODER_COMP0_FIRST_MCU_INDEX_REG			(JPEG_CODEC_base + 0x58)
#define JEPG_DECODER_COMP0_LAST_MCU_INDEX_REG			(JPEG_CODEC_base + 0x5C)
#define JEPG_DECODER_COMP1_FIRST_MCU_INDEX_REG			(JPEG_CODEC_base + 0x60)
#define JEPG_DECODER_COMP1_LAST_MCU_INDEX_REG			(JPEG_CODEC_base + 0x64)
#define JEPG_DECODER_COMP2_FIRST_MCU_INDEX_REG			(JPEG_CODEC_base + 0x68)
#define JEPG_DECODER_COMP2_LAST_MCU_INDEX_REG			(JPEG_CODEC_base + 0x6C)
#define JPEG_DECODER_Q_TABLE_ID_REG							(JPEG_CODEC_base + 0x70)
#define JPEG_DECODER_INT_STATUS_REG							(JPEG_CODEC_base + 0x74)
#define JPEG_DECODER_DMA_ADDR_REG							(JPEG_CODEC_base + 0x78)

#define REG_JPEG_DECODER_JPEG_FILE_START_ADDR			*((volatile unsigned int *) (JPEG_CODEC_base + 0x00))
#define REG_JPEG_DECODER_TABLE_ADDR							*((volatile unsigned int *) (JPEG_CODEC_base + 0x04))
#define REG_JPEG_DECODER_SAMPLE_FACTOR						*((volatile unsigned int *) (JPEG_CODEC_base + 0x08))
#define REG_JPEG_DECODER_COMPENT_ID							*((volatile unsigned int *) (JPEG_CODEC_base + 0x0C))
#define REG_JPEG_DECODER_TOTAL_MCU_NUMBER					*((volatile unsigned int *) (JPEG_CODEC_base + 0x10))
#define REG_JPEG_DECODER_MCU_NUMBER_PER_MCU_ROW 		*((volatile unsigned int *) (JPEG_CODEC_base + 0x14))
#define REG_JPEG_DECODER_COMP0_DU_NUM_PER_MCU_ROW		*((volatile unsigned int *) (JPEG_CODEC_base + 0x18))
#define REG_JPEG_DECODER_COMP1_DU_NUM_PER_MCU_ROW		*((volatile unsigned int *) (JPEG_CODEC_base + 0x1C))
#define REG_JPEG_DECODER_COMP2_DU_NUM_PER_MCU_ROW		*((volatile unsigned int *) (JPEG_CODEC_base + 0x20))
#define REG_JPEG_DECODER_COMP0_DATA_UNIT_NUMBER			*((volatile unsigned int *) (JPEG_CODEC_base + 0x24))
#define REG_JPEG_DECODER_COMP1_DATA_UNIT_NUMBER			*((volatile unsigned int *) (JPEG_CODEC_base + 0x28))
#define REG_JPEG_DECODER_COMP2_DATA_UNIT_NUMBER			*((volatile unsigned int *) (JPEG_CODEC_base + 0x2C))
#define REG_JPEG_DECODER_COMP0_PROG_START_ADDR			*((volatile unsigned int *) (JPEG_CODEC_base + 0x30))
#define REG_JPEG_DECODER_COMP1_PROG_START_ADDR			*((volatile unsigned int *) (JPEG_CODEC_base + 0x34))
#define REG_JPEG_DECODER_COMP2_PROG_START_ADDR			*((volatile unsigned int *) (JPEG_CODEC_base + 0x38))
#define REG_JPEG_DECODER_CTRL									*((volatile unsigned int *) (JPEG_CODEC_base + 0x3C))
#define REG_JPEG_DECODER_TRIGGER								*((volatile unsigned int *) (JPEG_CODEC_base + 0x40))
#define REG_JPEG_DECODER_ABORT								*((volatile unsigned int *) (JPEG_CODEC_base + 0x44))
#define REG_JEPG_DECODER_STOP_ADDR							*((volatile unsigned int *) (JPEG_CODEC_base + 0x48))
#define REG_JPEG_DECODER_FILE_SIZE							*((volatile unsigned int *) (JPEG_CODEC_base + 0x4C))
#define REG_JEPG_DECODER_INTERLEAVE_FIRST_MCU_INDEX	*((volatile unsigned int *) (JPEG_CODEC_base + 0x50))
#define REG_JEPG_DECODER_INTERLEAVE_LAST_MCU_INDEX		*((volatile unsigned int *) (JPEG_CODEC_base + 0x54))
#define REG_JEPG_DECODER_COMP0_FIRST_MCU_INDEX			*((volatile unsigned int *) (JPEG_CODEC_base + 0x58))
#define REG_JEPG_DECODER_COMP0_LAST_MCU_INDEX			*((volatile unsigned int *) (JPEG_CODEC_base + 0x5C))
#define REG_JEPG_DECODER_COMP1_FIRST_MCU_INDEX			*((volatile unsigned int *) (JPEG_CODEC_base + 0x60))
#define REG_JEPG_DECODER_COMP1_LAST_MCU_INDEX			*((volatile unsigned int *) (JPEG_CODEC_base + 0x64))
#define REG_JEPG_DECODER_COMP2_FIRST_MCU_INDEX			*((volatile unsigned int *) (JPEG_CODEC_base + 0x68))
#define REG_JEPG_DECODER_COMP2_LAST_MCU_INDEX			*((volatile unsigned int *) (JPEG_CODEC_base + 0x6C))
#define REG_JPEG_DECODER_Q_TABLE_ID							*((volatile unsigned int *) (JPEG_CODEC_base + 0x70))
#define REG_JPEG_DECODER_INT_STATUS							*((volatile unsigned int *) (JPEG_CODEC_base + 0x74))
#define REG_JPEG_DECODER_DMA_ADDR							*((volatile unsigned int *) (JPEG_CODEC_base + 0x78))

/* bit mapping of JPEG sample factore register */
#define JPEG_SAMPLE_FACTOR_H_SF1_MASK	0x0C00
#define JPEG_SAMPLE_FACTOR_V_SF1_MASK	0x0300
#define JPEG_SAMPLE_FACTOR_H_SF2_MASK	0x00C0
#define JPEG_SAMPLE_FACTOR_V_SF2_MASK	0x0030
#define JPEG_SAMPLE_FACTOR_H_SF3_MASK	0x000C
#define JPEG_SAMPLE_FACTOR_V_SF3_MASK	0x0003

#define SAMPLE_FACTOR1	0x00
#define SAMPLE_FACTOR2	0x01
#define SAMPLE_FACTOR3	0x03

/* bit mapping of JPEG component ID register */
#define JPEG_COMPONENT_ID1_MASK		0xFF000000
#define JPEG_COMPONENT_ID2_MASK		0x00FF0000
#define JPEG_COMPONENT_ID3_MASK		0x0000FF00

/* bit mapping of JPEG number of dummy blocks per mcu row in noninterleave mode register */
#define JPEG_NON_INTERLEAVE_DUMMY_BLOCK_MASK			0x00003000
#define JPEG_NON_INTERLEAVE_BLOCK_PER_MCU_ROW_MASK	0x000003FF

/* bit mappingf of JPEG control register */
#define JPEG_CTRL_PROGRESSIVE_BIT		0x40000000
#define JPEG_CTRL_BLOCK10_COMP_MASK		0x38000000
#define JPEG_CTRL_BLOCK9_COMP_MASK		0x07000000
#define JPEG_CTRL_BLOCK8_COMP_MASK		0x00E00000
#define JPEG_CTRL_BLOCK7_COMP_MASK		0x001C0000
#define JPEG_CTRL_BLOCK6_COMP_MASK		0x00038000
#define JPEG_CTRL_BLOCK5_COMP_MASK		0x00007000
#define JPEG_CTRL_BLOCK4_COMP_MASK		0x00000E00
#define JPEG_CTRL_BLOCK3_COMP_MASK		0x000001C0
#define JPEG_CTRL_BLOCK2_COMP_MASK		0x00000038
#define JPEG_CTRL_BLOCK1_COMP_MASK		0x00000007

#define JPEG_CTRL_CATEGORY_COMPONENT1	0x04
#define JPEG_CTRL_CATEGORY_COMPONENT2	0x05
#define JPEG_CTRL_CATEGORY_COMPONENT3	0x06
#define JPEG_CTRL_CATEGORY_UNUSED		0x07
/* bit mapping of Q-table ID register */
#define Q_TABLE_ID_COMP1			0x00000F00
#define Q_TABLE_ID_COMP2			0x000000F0
#define Q_TABLE_ID_COMP3			0x0000000F

/* bit mapping of JPEG decoder interrupt status register */
#define JPEG_INT_STATUS_MASK					0x07
#define JPEG_INT_STATUS_FILE_OVERFLOW_BIT	0x04
#define JPEG_INT_STATUS_BREAKPOINT_BIT		0x02
#define JPEG_INT_STATUS_EOF_BIT				0x01

/* macros of JPEG decoder abort register */
#define RESET_JPEG_DECODER		REG_JPEG_DECODER_ABORT = 0x01;

/* macros of JPEG decoder trigger register */
#define START_JPEG_DECODER		REG_JPEG_DECODER_TRIGGER = 0x01;

/* macros of JPEG decoder sample factor register */
#define SET_JPEG_SAMPLE_FACTOR_H1(n)	REG_JPEG_DECODER_SAMPLE_FACTOR &= ~JPEG_SAMPLE_FACTOR_H_SF1_MASK;\
													REG_JPEG_DECODER_SAMPLE_FACTOR |= ((n-1)<<10);
#define SET_JPEG_SAMPLE_FACTOR_V1(n)	REG_JPEG_DECODER_SAMPLE_FACTOR &= ~JPEG_SAMPLE_FACTOR_V_SF1_MASK;\
													REG_JPEG_DECODER_SAMPLE_FACTOR |= ((n-1)<<8);
#define SET_JPEG_SAMPLE_FACTOR_H2(n)	REG_JPEG_DECODER_SAMPLE_FACTOR &= ~JPEG_SAMPLE_FACTOR_H_SF2_MASK;\
													REG_JPEG_DECODER_SAMPLE_FACTOR |= ((n-1)<<6);
#define SET_JPEG_SAMPLE_FACTOR_V2(n)	REG_JPEG_DECODER_SAMPLE_FACTOR &= ~JPEG_SAMPLE_FACTOR_V_SF2_MASK;\
													REG_JPEG_DECODER_SAMPLE_FACTOR |= ((n-1)<<4);
#define SET_JPEG_SAMPLE_FACTOR_H3(n)	REG_JPEG_DECODER_SAMPLE_FACTOR &= ~JPEG_SAMPLE_FACTOR_H_SF3_MASK;\
													REG_JPEG_DECODER_SAMPLE_FACTOR |= ((n-1)<<2);
#define SET_JPEG_SAMPLE_FACTOR_V3(n)	REG_JPEG_DECODER_SAMPLE_FACTOR &= ~JPEG_SAMPLE_FACTOR_V_SF3_MASK;\
													REG_JPEG_DECODER_SAMPLE_FACTOR |= (n-1);

/* macros of JPEG component ID register */
#define SET_JPEG_COMPONENT1_ID(n)	REG_JPEG_DECODER_COMPENT_ID &= ~JPEG_COMPONENT_ID1_MASK;\
												REG_JPEG_DECODER_COMPENT_ID |= (n<<24);
#define SET_JPEG_COMPONENT2_ID(n)	REG_JPEG_DECODER_COMPENT_ID &= ~JPEG_COMPONENT_ID2_MASK;\
												REG_JPEG_DECODER_COMPENT_ID |= (n<<16);
#define SET_JPEG_COMPONENT3_ID(n)	REG_JPEG_DECODER_COMPENT_ID &= ~JPEG_COMPONENT_ID3_MASK;\
												REG_JPEG_DECODER_COMPENT_ID |= (n<<8);

/* macros of dummy blcok per mcu row in interleave mode */
#define SET_JPEG_COMP0_DUMMY_BLOCKS_PER_MCU_ROW(n)	REG_JPEG_DECODER_COMP0_DU_NUM_PER_MCU_ROW &= ~JPEG_NON_INTERLEAVE_DUMMY_BLOCK_MASK;\
																	REG_JPEG_DECODER_COMP0_DU_NUM_PER_MCU_ROW |= (n<<12);
#define SET_JPEG_COMP0_BLOCKS_PER_MCU_ROW(n)			REG_JPEG_DECODER_COMP0_DU_NUM_PER_MCU_ROW &= ~JPEG_NON_INTERLEAVE_BLOCK_PER_MCU_ROW_MASK;\
																	REG_JPEG_DECODER_COMP0_DU_NUM_PER_MCU_ROW |= n;

#define SET_JPEG_COMP1_DUMMY_BLOCKS_PER_MCU_ROW(n)	REG_JPEG_DECODER_COMP1_DU_NUM_PER_MCU_ROW &= ~JPEG_NON_INTERLEAVE_DUMMY_BLOCK_MASK;\
																	REG_JPEG_DECODER_COMP1_DU_NUM_PER_MCU_ROW |= (n<<12);
#define SET_JPEG_COMP1_BLOCKS_PER_MCU_ROW(n)			REG_JPEG_DECODER_COMP1_DU_NUM_PER_MCU_ROW &= ~JPEG_NON_INTERLEAVE_BLOCK_PER_MCU_ROW_MASK;\
																	REG_JPEG_DECODER_COMP1_DU_NUM_PER_MCU_ROW |= n;

#define SET_JPEG_COMP2_DUMMY_BLOCKS_PER_MCU_ROW(n)	REG_JPEG_DECODER_COMP2_DU_NUM_PER_MCU_ROW &= ~JPEG_NON_INTERLEAVE_DUMMY_BLOCK_MASK;\
																	REG_JPEG_DECODER_COMP2_DU_NUM_PER_MCU_ROW |= (n<<12);
#define SET_JPEG_COMP2_BLOCKS_PER_MCU_ROW(n)			REG_JPEG_DECODER_COMP2_DU_NUM_PER_MCU_ROW &= ~JPEG_NON_INTERLEAVE_BLOCK_PER_MCU_ROW_MASK;\
																	REG_JPEG_DECODER_COMP2_DU_NUM_PER_MCU_ROW |= n;

/* macros of JPEG decoder control register */
#define SET_JPEG_PROGRESSIVE_MODE	REG_JPEG_DECODER_CTRL |= JPEG_CTRL_PROGRESSIVE_BIT;
#define SET_JPEG_BASELINE_MODE		REG_JPEG_DECODER_CTRL &= ~JPEG_CTRL_PROGRESSIVE_BIT;
#define SET_JPEG_CATEGORY_COMPONENT_ID(block,cmp_id)	REG_JPEG_DECODER_CTRL &= ~(0x07<<(block*3));\
																		REG_JPEG_DECODER_CTRL |= (cmp_id << (block*3));

/* macros of Q-Table ID register */
#define SET_JPEG_COMPONENT1_Q_TABLE(n)	REG_JPEG_DECODER_Q_TABLE_ID &= ~Q_TABLE_ID_COMP1;\
													REG_JPEG_DECODER_Q_TABLE_ID |= (n<<8);
#define SET_JPEG_COMPONENT2_Q_TABLE(n)	REG_JPEG_DECODER_Q_TABLE_ID &= ~Q_TABLE_ID_COMP2;\
													REG_JPEG_DECODER_Q_TABLE_ID |= (n<<4);
#define SET_JPEG_COMPONENT3_Q_TABLE(n)	REG_JPEG_DECODER_Q_TABLE_ID &= ~Q_TABLE_ID_COMP3;\
													REG_JPEG_DECODER_Q_TABLE_ID |= n;

#if (defined(JPEG_DRV_V2)||defined(JPEG_DRV_V3))
/* definition for jpeg encode result */
#define JPEG_ENCODE_DONE	0x01
#define JPEG_ENCODE_STALL	0x02

#if (defined(JPEG_DRV_V3))
#define JPEG_FORMAT_GRAY			0
#define JPEG_FORMAT_YUV422			1
#define JPEG_FORMAT_YUV420 		2
#endif

#define JPEG_ENCODER_RESET_REG			(JPEG_CODEC_base + 0X8C)
#define JPEG_ENCODER_CTRL_REG				(JPEG_CODEC_base + 0X90)
#define JPEG_ENCODER_INT_STATUS_REG		(JPEG_CODEC_base + 0X94)
#define JPEG_ENCODER_BLOCK_COUNT_REG	(JPEG_CODEC_base + 0X98)
#define JPEG_ENCODER_QUALITY_REG			(JPEG_CODEC_base + 0X9C)
#define JPEG_ENCODER_DEST_ADDR_REG		(JPEG_CODEC_base + 0XA0)
#define JPEG_ENCODER_DMA_ADDR_REG		(JPEG_CODEC_base + 0XA4)
#define JPEG_ENCODER_STOP_ADDR_REG		(JPEG_CODEC_base + 0XA8)
#if (defined(JPEG_DRV_V3))
#define JPEG_ENCODER_CONT_SHOT_FRAME_NUM_REG			(JPEG_CODEC_base + 0xAC)
#define JPEG_ENCODER_CONT_SHOT_CURR_FRAME_NUM_REG	(JPEG_CODEC_base + 0xB0)
#define JPEG_ENCODER_DEST_ADDR2_REG						(JPEG_CODEC_base + 0XB4)
#define JPEG_ENCODER_DMA_ADDR2_REG						(JPEG_CODEC_base + 0XB8)
#define JPEG_ENCODER_STOP_ADDR2_REG						(JPEG_CODEC_base + 0XBC)
#endif

#define REG_JPEG_ENCODER_RESET			*((volatile unsigned int *) (JPEG_CODEC_base + 0X8C))
#define REG_JPEG_ENCODER_CTRL				*((volatile unsigned int *) (JPEG_CODEC_base + 0X90))
#define REG_JPEG_ENCODER_INT_STATUS		*((volatile unsigned int *) (JPEG_CODEC_base + 0X94))
#define REG_JPEG_ENCODER_BLOCK_COUNT	*((volatile unsigned int *) (JPEG_CODEC_base + 0X98))
#define REG_JPEG_ENCODER_QUALITY			*((volatile unsigned int *) (JPEG_CODEC_base + 0X9C))
#define REG_JPEG_ENCODER_DEST_ADDR		*((volatile unsigned int *) (JPEG_CODEC_base + 0XA0))
#define REG_JPEG_ENCODER_DMA_ADDR		*((volatile unsigned int *) (JPEG_CODEC_base + 0XA4))
#define REG_JPEG_ENCODER_STOP_ADDR		*((volatile unsigned int *) (JPEG_CODEC_base + 0XA8))
#if (defined(JPEG_DRV_V3))
#define REG_JPEG_ENCODER_CONT_SHOT_FRAME_NUM			*((volatile unsigned int *) (JPEG_CODEC_base + 0XAC))
#define REG_JPEG_ENCODER_CONT_SHOT_CURR_FRAME_NUM	*((volatile unsigned int *) (JPEG_CODEC_base + 0XB0))
#define REG_JPEG_ENCODER_DEST_ADDR2		*((volatile unsigned int *) (JPEG_CODEC_base + 0XB4))
#define REG_JPEG_ENCODER_DMA_ADDR2		*((volatile unsigned int *) (JPEG_CODEC_base + 0XB8))
#define REG_JPEG_ENCODER_STOP_ADDR2		*((volatile unsigned int *) (JPEG_CODEC_base + 0XBC))
#endif

/* bit mapping of JPEG encoder control register */
#define JPEG_ENCODER_ENABLE_BIT			0x00000001
#define JPEG_ENCODER_GRAYSCALE_BIT		0x00000002
#define JPEG_ENCODER_INT_ENABLE_BIT		0x00000004
#if (defined(JPEG_DRV_V3))
#define JPEG_ENCODER_YUV_FORMAT_BIT		0x00000008
#define JPEG_ENCODER_APP_FORMAT_BIT		0x00000010
#define JPEG_ENCODER_CONT_SHOT_BIT		0x00000020
#define JPEG_ENCODER_ADDR_SWITCH_BIT	0x00000040
#endif

/* bit mapping of JPEG encoder interrupt status register */
#define JPEG_ENCODER_DONE_INT_STATUS 	0x00000001
#define JPEG_ENCODER_STALL_INT_STATUS	0x00000002
#if (defined(JPEG_DRV_V3))
#define JPEG_ENCODER_STALL1_INT_STATUS	0x00000010
#define JPEG_ENCODER_STALL2_INT_STATUS	0x00000020
#endif
/* bit mapping of JPEG encoder quality register */
#if (defined (__SW_JPEG_CODEC_SUPPORT__) || !defined(__MTK_TARGET__))
#define JPEG_ENCODER_HIGH_QUALITY	0
#define JPEG_ENCODER_GOOD_QUALITY	1
#define JPEG_ENCODER_FAIR_QUALITY	2 /* using default quantization table */
#define JPEG_ENCODER_POOR_QUALITY	3
#else
#if (defined(MT6219)||defined(MT6228))
#define JPEG_ENCODER_HIGH_QUALITY	3
#define JPEG_ENCODER_GOOD_QUALITY	2
#define JPEG_ENCODER_FAIR_QUALITY	1
#define JPEG_ENCODER_POOR_QUALITY	0
#else//#elif (defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6229))
#define JPEG_ENCODER_QUALITY_0_3		0x3

⌨️ 快捷键说明

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