You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

475 lines
19 KiB

3 years ago
/******************************************************************************
*
* Copyright (C) 2014 Hisilicon Technologies Co., Ltd. All rights reserved.
*
* This program is confidential and proprietary to Hisilicon Technologies Co., Ltd. (Hisilicon),
* and may not be copied, reproduced, modified, disclosed to others, published or used, in
* whole or in part, without the express prior written permission of Hisilicon.
*
******************************************************************************
File Name : hi_jpeg_api.h
Version : Initial Draft
Author :
Created : 2014/06/20
Description : The user will use this api to realize some function
Function List :
History :
Date Author Modification
2014/06/20 y00181162 Created file
******************************************************************************/
#ifndef __HI_JPEG_API_H__
#define __HI_JPEG_API_H__
/*********************************add include here******************************/
#include "jpeglib.h"
#include "hi_type.h"
/*****************************************************************************/
#ifdef __cplusplus
#if __cplusplus
extern "C"
{
#endif
#endif /* __cplusplus */
/***************************** Macro Definition ******************************/
/** \addtogroup JPEG */
/** @{ */ /** <!--[JPEG]*/
/** Maximum number of data components */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD> CNend */
#define MAX_PIXEL_COMPONENT_NUM 3
/** Maximum column number of hor coef */
/** CNcomment:<3A><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD>ϵ<EFBFBD><CFB5> CNend */
#define MAX_HORCOEF_COL 8
/** Maximum row number of hor coef */
/** CNcomment:<3A><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD>ϵ<EFBFBD><CFB5> CNend */
#define MAX_HORCOEF_ROW 4
/** Maximum column number of ver coef */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ϵ<EFBFBD><CFB5> CNend */
#define MAX_VERCOEF_COL 4
/** Maximum row number of ver coef */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ϵ<EFBFBD><CFB5> CNend */
#define MAX_VERCOEF_ROW 4
/** Maximum column number of csc coef */
/** CNcomment:<3A><><EFBFBD><EFBFBD>csc<73><63>ϵ<EFBFBD><CFB5> CNend */
#define MAX_CSCCOEF_COL 3
/** Maximum row number of csc coef */
/** CNcomment:<3A><><EFBFBD><EFBFBD>csc<73><63>ϵ<EFBFBD><CFB5> CNend */
#define MAX_CSCCOEF_ROW 3
/** @} */ /** <!-- ==== Macro Definition end ==== */
/*************************** Enum Definition ****************************/
/****************************************************************************/
/* jpeg enum */
/****************************************************************************/
/** \addtogroup JPEG */
/** @{ */ /** <!--[JPEG]*/
/** enum of the input jpeg color space */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jpegͼƬ<CDBC><C6AC>ʽ CNend */
typedef enum hiHI_JPEG_FMT_E
{
JPEG_FMT_YUV400 = 0, /**< yuv400 */
JPEG_FMT_YUV420 = 1, /**< yuv420 */
JPEG_FMT_YUV422_21 = 2, /**< yuv422_21 */
JPEG_FMT_YUV422_12 = 3, /**< yuv422_12 */
JPEG_FMT_YUV444 = 4, /**< yuv444 */
JPEG_FMT_YCCK = 5, /**< YCCK */
JPEG_FMT_CMYK = 6, /**< CMYK */
JPEG_FMT_BUTT
}HI_JPEG_FMT_E;
/** enum of mem check type */
/** CNcomment:<3A>ڴ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD> CNend */
typedef enum hiHI_JPEG_MEMCHECK_E
{
JPEG_MEMCHECK_MEMSIZE = 0, /**< <20>ڴ<EFBFBD><DAB4><EFBFBD>С */
JPEG_MEMCHECK_RESOLUTION = 1, /**< <20>ֱ<EFBFBD><D6B1><EFBFBD> */
JPEG_MEMCHECK_BUTT
}HI_JPEG_MEMCHECK_E;
/** @} */ /** <!-- ==== enum Definition end ==== */
/*************************** Structure Definition ****************************/
/****************************************************************************/
/* jpeg api structure */
/****************************************************************************/
/** \addtogroup JPEG */
/** @{ */ /** <!--[JPEG]*/
/** Structure of Rectangle */
/** CNcomment:<3A><><EFBFBD><EFBFBD> CNend */
typedef struct hiJPEG_RECT_S
{
HI_S32 x, y;
HI_S32 w, h;
}HI_JPEG_RECT_S;
/** Structure of the output yuvsp/rgb/yuv package message, only support 1/2/4/8/ scale */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>yuvsp/rgb/yuv pacekage <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ֻ֧<D6BB><D6A7>1/2/4/8<><38><EFBFBD><EFBFBD> CNend */
typedef struct hiJPEG_SURFACE_S
{
HI_CHAR* pOutPhy[MAX_PIXEL_COMPONENT_NUM]; /**< output physic address,0 is luminance or rgb buf, 1 is chroma buf *//**<CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>rgb<67><62>ַ<EFBFBD><D6B7>1<EFBFBD><31><EFBFBD><EFBFBD>Ϊɫ<CEAA>ȵ<EFBFBD>ַ CNend */
HI_CHAR* pOutVir[MAX_PIXEL_COMPONENT_NUM]; /**< output virtual address,0 is luminance or rgb buf, 1 is chroma buf *//**<CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>rgb<67><62>ַ<EFBFBD><D6B7>1<EFBFBD><31><EFBFBD><EFBFBD>Ϊɫ<CEAA>ȵ<EFBFBD>ַ CNend */
HI_U32 u32OutStride[MAX_PIXEL_COMPONENT_NUM]; /**< output stride *//**<CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD> CNend */
HI_BOOL bUserPhyMem; /**< if use user physic memeory *//**<CNcomment:<3A>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> CNend */
}HI_JPEG_SURFACE_S;
/** Structure of the output message */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ CNend */
typedef struct hiJPEG_SURFACE_DESCRIPTION_S
{
HI_JPEG_SURFACE_S stOutSurface; /**< output surface *//**<CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ CNend */
HI_JPEG_RECT_S stCropRect; /**< output crop size *//**<CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD> CNend */
HI_BOOL bCrop; /**< if crop *//**<CNcomment:<3A>Ƿ<EFBFBD><C7B7>ü<EFBFBD> CNend */
}HI_JPEG_SURFACE_DESCRIPTION_S;
/** Structure of output argb sampler and filte message */
/** CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>argb<67><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ CNend */
typedef struct hiJPEG_DEC_COEF_S
{
HI_BOOL bEnHorMedian; /**< if set hor median filter *//**<CNcomment:<3A>Ƿ<EFBFBD>ˮƽ<CBAE><C6BD>ֵ<EFBFBD>˲<EFBFBD> CNend */
HI_BOOL bEnVerMedian; /**< if set ver median filter *//**<CNcomment:<3A>Ƿ<EFBFBD><C7B7><EFBFBD>ֱ<EFBFBD><D6B1>ֵ<EFBFBD>˲<EFBFBD> CNend */
HI_BOOL bSetHorSampleCoef; /**< if set hor sample coef *//**<CNcomment:<3A>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend */
HI_BOOL bSetVerSampleCoef; /**< if set ver sample coef *//**<CNcomment:<3A>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ô<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend */
HI_BOOL bSetCSCCoef; /**< if set csc coef *//**<CNcomment:<3A>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>CSC<53><43><EFBFBD><EFBFBD> CNend */
HI_S16 s16HorCoef[MAX_HORCOEF_ROW][MAX_HORCOEF_COL]; /**< set chrome hor sampler coefficient *//**<CNcomment:ɫ<><C9AB><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>ˮƽ<CBAE>˲<EFBFBD>ϵ<EFBFBD><CFB5> CNend */
HI_S16 s16VerCoef[MAX_VERCOEF_ROW][MAX_VERCOEF_COL]; /**< set chrome ver sampler coefficient *//**<CNcomment:ɫ<><C9AB><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>˲<EFBFBD>ϵ<EFBFBD><CFB5> CNend */
HI_S16 s16CSCCoef[MAX_CSCCOEF_ROW][MAX_CSCCOEF_COL]; /**< set csc coefficient *//**<CNcomment:<3A><>ɫ<EFBFBD>ռ<EFBFBD>ת<EFBFBD><D7AA>ϵ<EFBFBD><CFB5> CNend */
}HI_JPEG_DEC_COEF_S;
/** Structure of the input and output jpeg width and height,input jpeg format */
/** CNcomment:jpeg<65>ļ<EFBFBD><C4BC><EFBFBD>ԭʼ<D4AD><CABC>С<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ԭʼͼƬ<CDBC><C6AC>ʽ CNend */
typedef struct hiJPEG_INFO_S
{
HI_U32 u32Width[MAX_PIXEL_COMPONENT_NUM]; /**< 0 input and output rgb width and lu width,1 is ch width *//**<CNcomment:0<><30><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rgbͼƬ<CDBC><C6AC><EFBFBD>Ȼ<EFBFBD><C8BB>߽<EFBFBD><DFBD><EFBFBD>yuvsp<73><70><EFBFBD>ȿ<EFBFBD><C8BF>ȣ<EFBFBD>1Ϊɫ<CEAA>ȿ<EFBFBD><C8BF><EFBFBD> CNend */
HI_U32 u32Height[MAX_PIXEL_COMPONENT_NUM]; /**< 0 input and output rgb height and lu width,1 is ch height *//**<CNcomment:0<><30><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rgbͼƬ<CDBC>߶Ȼ<DFB6><C8BB>߽<EFBFBD><DFBD><EFBFBD>yuvsp<73><70><EFBFBD>ȸ߶ȣ<DFB6>1Ϊɫ<CEAA>ȸ߶<C8B8> CNend */
HI_U32 u32OutStride[MAX_PIXEL_COMPONENT_NUM]; /**< 0 output rgb stride and lu stride,1 is ch stride *//**<CNcomment:0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rgb<67><62>yubsp<73><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>࣬1Ϊɫ<CEAA><C9AB><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD> CNend */
HI_U32 u32OutSize[MAX_PIXEL_COMPONENT_NUM]; /**< 0 output rgb size and lu size,1 is ch size *//**<CNcomment:0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rgb<67><62>yubsp<73>Ĵ<EFBFBD>С<EFBFBD><D0A1>1Ϊɫ<CEAA>ȴ<EFBFBD>С CNend */
HI_JPEG_FMT_E enFmt; /**< the input format *//**<CNcomment:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC>ʽ CNend */
HI_BOOL bOutInfo; /**< false is get input information and the other get output information *//**<CNcomment:FALSE<53><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>TRUE<55><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ CNend */
}HI_JPEG_INFO_S;
/** Structure of the leave memsize that jpeg decode can used */
/** CNcomment:jpeg<65><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1>Ϣ CNend */
typedef struct hiJPEG_MEMSIZE_INFO_S
{
HI_U32 u32MemSize; /**< the memsize *//**<CNcomment:ʣ<><CAA3><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С CNend */
HI_U32 u32Width; /**< limit width *//**<CNcomment:<3A><><EFBFBD>ƿ<EFBFBD> CNend */
HI_U32 u32Height; /**< limit height *//**<CNcomment:<3A><><EFBFBD>Ƹ<EFBFBD> CNend */
HI_JPEG_MEMCHECK_E eCheckType; /**< limit type *//**<CNcomment:ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend */
}HI_JPEG_MEMSIZE_INFO_S;
/** @} */ /** <!-- ==== Structure Definition End ==== */
/********************** Global Variable declaration **************************/
/******************************* API declaration *****************************/
/** \addtogroup JPEG */
/** @{ */ /** <!--[JPEG]*/
/**
\brief Sets dec output message. CNcomment:<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\attention \n
HI_JPEG_SetOutDesc should have called create jpeg decoder.set the output address \n
and output stride,set whether crop, set crop rect \n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD>øýӿڣ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n
<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>IJü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] *pstSurfaceDesc. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetOutDesc
*/
HI_S32 HI_JPEG_SetOutDesc(const struct jpeg_decompress_struct *cinfo, const HI_JPEG_SURFACE_DESCRIPTION_S *pstSurfaceDesc);
/**
\brief Get Jpeg information. CNcomment:<EFBFBD><EFBFBD>ȡjpegͼƬ<EFBFBD><EFBFBD>Ϣ CNend
\attention \n
if you want to get input format and input width and input height,you should set bOutInfo false.\n
others you can get the information as follows: output rgb widht/height/stride/size or output \n
yuvsp lu width/height/stride/size and ch width/height/stride/size.\n
you call this function should after read header and set the ouput parameter.\n
CNcomment:<EFBFBD><EFBFBD>bOutInfo<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>FALSE<EFBFBD><EFBFBD>ʱ<EFBFBD>򣬿<EFBFBD><EFBFBD>Ի<EFBFBD>ȡ<EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>Ⱥ͸߶<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>TRUE<EFBFBD><EFBFBD> \n
ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Ҫ<EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD>RGB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>߶<EFBFBD>/<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>С,Ҫ<EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>yuvsp<EFBFBD><EFBFBD>\n
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD>ɫ<EFBFBD>ȵĿ<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>߶<EFBFBD>/<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[out] pJpegInfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>jpeg<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_GetJpegInfo
*/
HI_S32 HI_JPEG_GetJpegInfo(j_decompress_ptr cinfo, HI_JPEG_INFO_S *pJpegInfo);
/**
\brief set jpeg dec inflexion. CNcomment:<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>Ĺյ<EFBFBD> CNend
\attention \n
HI_JPEG_SetInflexion should have called jpeg_create_decompress.if no call this \n
function,use the default flexion \n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ùյʹ<EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵĹյ<EFBFBD><EFBFBD><EFBFBD>С CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] u32flexionSize. CNcomment:Ҫ<EFBFBD><EFBFBD><EFBFBD>õĽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD>С CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetInflexion
*/
HI_S32 HI_JPEG_SetInflexion(const struct jpeg_decompress_struct *cinfo, const HI_U32 u32flexionSize);
/**
\brief get jpeg dec inflexion. CNcomment:<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺյ<EFBFBD> CNend
\attention \n
HI_JPEG_GetInflexion should have called jpeg_create_decompress.\n
CNcomment:<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>HI_JPEG_GetInflexion֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[out] pu32flexionSize. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD>С CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetInflexion
*/
HI_S32 HI_JPEG_GetInflexion(const struct jpeg_decompress_struct *cinfo, HI_U32 *pu32flexionSize);
/**
\brief set jpeg dec coef when output argb. CNcomment:<EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ARGB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD> CNend
\attention \n
HI_JPEG_SetDecCoef should have called jpeg_create_decompress.set whether horizontal \n
and vertical fliter,whether set horizontal and ver sample, whether set csc coefficient, \n
and set there coefficient.if no call this function, use the default parameter. \n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>ˮƽ<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>ֱ<EFBFBD><EFBFBD>ˮƽ \n
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CSSϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>û<EFBFBD>е<EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>ֵ CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] *pstDecCoef. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD> CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetDecCoef
*/
HI_S32 HI_JPEG_SetDecCoef(const struct jpeg_decompress_struct *cinfo, const HI_JPEG_DEC_COEF_S *pstDecCoef);
/**
\brief get jpeg dec coef when output argb. CNcomment:<EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ARGB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD> CNend
\attention \n
HI_JPEG_GetDecCoef should have called HI_JPEG_SetDecCoef.\n
CNcomment:<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>HI_JPEG_GetDecCoef֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>HI_JPEG_SetDecCoef CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[out] pstOutDecCoef. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD> CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_GetDecCoef
*/
HI_S32 HI_JPEG_GetDecCoef(const struct jpeg_decompress_struct *cinfo, HI_JPEG_DEC_COEF_S *pstOutDecCoef);
/**
\brief set alpha value. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>alpha<EFBFBD><EFBFBD>ֵ CNend
\attention \n
HI_JPEG_SetAlpha should have called jpeg_create_decompress.when decode output \n
argb8888 and argb8888,we can call this function,if no call it,use the default value. \n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪARGB8888<EFBFBD><EFBFBD>ABGR8888<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n
<EFBFBD><EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>û<EFBFBD>е<EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD>ֵ CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] s32Alpha. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>alphaֵ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetAlpha
*/
HI_S32 HI_JPEG_SetAlpha(const struct jpeg_decompress_struct *cinfo, const HI_U32 u32Alpha);
/**
\brief set stream from flag of use phy mem or virtual mem. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>Ϣ CNend
\attention \n
if want to use this function,should call between create decompress and
jpeg_stdio_src or jpeg_mem_src.if not call this we should check\n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>е<EFBFBD><EFBFBD>øýӿ<EFBFBD>Ҳ<EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] pStreamPhyAddr. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetStreamPhyMem
*/
HI_S32 HI_JPEG_SetStreamPhyMem(const struct jpeg_decompress_struct *cinfo, HI_CHAR* pStreamPhyAddr);
/**
\brief set stream mem information. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>Ϣ CNend
\attention \n
if want to use this function,should call before call
jpeg_stdio_src or jpeg_mem_src.if not call this we should check\n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jpeg_mem_src֮ǰ CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] pPhyStremBuf. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>buffer<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ CNend
\param[in] u32StremBufLen. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>buffer<EFBFBD><EFBFBD>С CNend
\param[in] pVirSaveReturnBuf. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>buffer<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ CNend
\param[in] s32StrmReturnSize. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С CNend
\param[in] bStreamBufNeedReturn. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>buffer<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetBufInfo
*/
HI_S32 HI_JPEG_SetBufInfo(const struct jpeg_decompress_struct *cinfo,HI_CHAR* pPhyStremBuf,HI_U32 u32StremBufLen, HI_CHAR* pVirSaveReturnBuf,HI_S32 s32StrmReturnSize,HI_BOOL bStreamBufNeedReturn);
/**
\brief set if dec output yuv420sp. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>yuv420sp<EFBFBD><EFBFBD>ʶ CNend
\attention \n
HI_JPEG_SetYCbCr420spFlag should have called jpeg_create_decompress.\n
CNcomment:<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>HI_JPEG_SetYCbCr420spFlag֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] bOutYCbCr420sp. CNcomment:<EFBFBD>Ƿ<EFBFBD>ͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>yuv420sp<EFBFBD><EFBFBD>ʽ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetYCbCr420spFlag
*/
HI_S32 HI_JPEG_SetYCbCr420spFlag(const struct jpeg_decompress_struct *cinfo,const HI_BOOL bOutYCbCr420sp);
/**
\brief set if output lu pixle sum value. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ʶ CNend
\attention \n
HI_JPEG_SetLuPixSumFlag should have called jpeg_create_decompress.\n
CNcomment:<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>HI_JPEG_SetLuPixSumFlag֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[in] bLuPixSum. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ʶ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetLuPixSumFlag
*/
HI_S32 HI_JPEG_SetLuPixSumFlag(const struct jpeg_decompress_struct *cinfo,const HI_BOOL bLuPixSum);
/**
\brief get lu pixle sum value. CNcomment:<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ CNend
\attention \n
If you want to get the luminance value, you can call this function, \n
but you should call it after jpeg_start_decompress and have call HI_JPEG_SetLuPixSumFlag.\n
CNcomment:Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jpeg_start_decompress֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD><EFBFBD> \n
֮ǰҪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>HI_JPEG_SetLuPixSumFlag CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[out] u64LuPixSum. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_GetLuPixSum
*/
HI_S32 HI_JPEG_GetLuPixSum(const struct jpeg_decompress_struct *cinfo,HI_U64 *u64LuPixSum);
/**
\brief get jpeg dec time. CNcomment:<EFBFBD><EFBFBD>ȡjpeg<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> CNend
\attention \n
If you want to know how much the decode cost time ,you can call HI_JPEG_GetDecTime, \n
but should have called it after jpeg_finish_decompress.\n
CNcomment:Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[out] pu32DecTime. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_GetDecTime
*/
HI_S32 HI_JPEG_GetDecTime(const struct jpeg_decompress_struct *cinfo, HI_U32 *pu32DecTime);
/**
\brief set the leave memory size. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> CNend
\attention \n
should have called it after create jpeg decoder.\n
CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend\n
\param[in] cinfo. CNcomment:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CNend
\param[int] sMemSizeInfo. CNcomment:<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>Ϣ CNend
\retval ::HI_SUCCESS
\retval ::HI_FAILURE
\see \n
::HI_JPEG_SetLeaveMemSize
*/
HI_S32 HI_JPEG_SetLeaveMemSize(const struct jpeg_decompress_struct *cinfo, HI_JPEG_MEMSIZE_INFO_S sMemSizeInfo);
/** @} */ /** <!-- ==== API Declaration End ==== */
/****************************************************************************/
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
#endif /* __HI_JPEG_API_H__*/