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

📄 jpeg.h

📁 s3c6400 ADS下官方测试程序
💻 H
字号:
#ifndef __JPEG_H__
#define __JPEG_H__


typedef enum
{
	JPEG_420, JPEG_422, JPEG_444, JPEG_411, JPEG_400
} JPEG_TYPE;

typedef enum
{
	OK_ENC_OR_DEC,   ERR_ENC_OR_DEC, OK_HD_PARSING, ERR_HD_PARSING
} JPEG_STATUS;
// Check whether the processing is done normally for the one step decoding.

typedef enum
{
	HEADER, BODY, HEADER_N_BODY
} JPEG_DEC_MODE;

typedef struct
{
	u32 m_uJpgHSz, m_uJpgVSz;
	u32 m_uJpgConReg;

	bool m_bIsHeaderParsed;
} JPEG;

void JPEG_Init(void);
void JPEG_StartParsingHeader(u32 uJpgAddr);
void JPEG_StartDecodingBody(u32 uRawAddr, bool bIsIncremental);
void JPEG_StartDecodingOneFrame(u32 uJpgAddr, u32 uRawAddr, bool bIsIncremental);
void JPEG_GetDecodedWidthAndHeight(u32* hsz, u32* vsz);

void JPEG_StartEncodingOneFrame(
	u16 usHSz, u16 usVSz, u32 uSrcAddr, CSPACE eRawType,
	u32 uDestAddr, JPEG_TYPE eJpgType
	);
void JPEG_StartEncodingOtf(u16 usHSz, u16 usVSz, CSPACE eRawType, u32 uDstAddr); // On-The-Fly Encoding

//+daedoo
void JPEG_StartEncodingMotionJPEG(
	u16 usHSz, u16 usVSz, u32 uSrcAddr, CSPACE eRawType, 
	u32 uDestAddr, JPEG_TYPE eJpgType
	);

void JPEG_ReadAndClearStatus(JPEG_STATUS* eStatus);

void JPEG_GetJpegType(JPEG_TYPE* eMode);
void JPEG_GetJpegType1(char * pType);

void JPEG_StartDecodingMotion(u32 uSrc, u32 uDst, u32 uMJpegMaxSize);	
void JPEG_InitIpForMotionEncoding(u16 hSize, u16 vSize, u32 src, CSPACE eRawType,
	u32 dest, JPEG_TYPE eJpgType, u32 uMJpegMaxSize);
void JPEG_SetNextFrameStartAddr(u32 uAddr);

void JPEG_DisableMotionEncoding(void);
void JPEG_DisableMotionDecoding(void);
void JPEG_CheckDone(u32* uResult);
void JPEG_CheckSyntaxError(u32* uResult);
void JPEG_CheckReadHeader(u32* uResult);
void JPEG_Reset(void);
void JPEG_GetEncodedStreamLen(u32* uSize);

//private:

void JPEG_InitRegsForEncoding(	u32 uHSz, u32 uVsz, u32 uSrcAddr, CSPACE eRawType,
	u32 uDstAddr, JPEG_TYPE eJpgType, bool bIsOnTheFly, bool bIsMotion);
void JPEG_InitRegsForDecoding1(	u32 uSrcAddr, u32 uDstAddr,
	bool bIsHeaderOnly, bool bIncremental, bool bIsMotion);
void JPEG_InitRegsForDecoding(	u32 uSrcAddr, u32 uDstAddr,
	JPEG_DEC_MODE eMode, bool bIncremental, bool bIsMotion);
	
void JPEG_GetIntStatus(u32* uIntStatus);

//+daedoo
void JPEG_Wait_Done(void);

#endif // __JPEG_H__

⌨️ 快捷键说明

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