|
|
/******************************************************************************
|
|
|
*
|
|
|
* 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:最大数据分量数 CNend */
|
|
|
#define MAX_PIXEL_COMPONENT_NUM 3
|
|
|
/** Maximum column number of hor coef */
|
|
|
/** CNcomment:最大水平列系数 CNend */
|
|
|
#define MAX_HORCOEF_COL 8
|
|
|
/** Maximum row number of hor coef */
|
|
|
/** CNcomment:最大水平行系数 CNend */
|
|
|
#define MAX_HORCOEF_ROW 4
|
|
|
/** Maximum column number of ver coef */
|
|
|
/** CNcomment:最大垂直列系数 CNend */
|
|
|
#define MAX_VERCOEF_COL 4
|
|
|
/** Maximum row number of ver coef */
|
|
|
/** CNcomment:最大垂直行系数 CNend */
|
|
|
#define MAX_VERCOEF_ROW 4
|
|
|
/** Maximum column number of csc coef */
|
|
|
/** CNcomment:最大csc列系数 CNend */
|
|
|
#define MAX_CSCCOEF_COL 3
|
|
|
/** Maximum row number of csc coef */
|
|
|
/** CNcomment:最大csc行系数 CNend */
|
|
|
#define MAX_CSCCOEF_ROW 3
|
|
|
|
|
|
/** @} */ /** <!-- ==== Macro Definition end ==== */
|
|
|
|
|
|
/*************************** Enum Definition ****************************/
|
|
|
/****************************************************************************/
|
|
|
/* jpeg enum */
|
|
|
/****************************************************************************/
|
|
|
|
|
|
/** \addtogroup JPEG */
|
|
|
/** @{ */ /** <!--[JPEG]*/
|
|
|
|
|
|
/** enum of the input jpeg color space */
|
|
|
/** CNcomment:输入的jpeg图片格式 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:内存剩余判断类型 CNend */
|
|
|
typedef enum hiHI_JPEG_MEMCHECK_E
|
|
|
{
|
|
|
JPEG_MEMCHECK_MEMSIZE = 0, /**< 内存大小 */
|
|
|
JPEG_MEMCHECK_RESOLUTION = 1, /**< 分辨率 */
|
|
|
JPEG_MEMCHECK_BUTT
|
|
|
}HI_JPEG_MEMCHECK_E;
|
|
|
|
|
|
/** @} */ /** <!-- ==== enum Definition end ==== */
|
|
|
|
|
|
/*************************** Structure Definition ****************************/
|
|
|
/****************************************************************************/
|
|
|
/* jpeg api structure */
|
|
|
/****************************************************************************/
|
|
|
|
|
|
/** \addtogroup JPEG */
|
|
|
/** @{ */ /** <!--[JPEG]*/
|
|
|
|
|
|
/** Structure of Rectangle */
|
|
|
/** CNcomment:矩形 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:设置输出yuvsp/rgb/yuv pacekage 的相关信息,只支持1/2/4/8缩放 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:输出物理地址,0分量输出y或者rgb地址,1分量为色度地址 CNend */
|
|
|
HI_CHAR* pOutVir[MAX_PIXEL_COMPONENT_NUM]; /**< output virtual address,0 is luminance or rgb buf, 1 is chroma buf *//**<CNcomment:输出虚拟地址,0分量输出y或者rgb地址,1分量为色度地址 CNend */
|
|
|
HI_U32 u32OutStride[MAX_PIXEL_COMPONENT_NUM]; /**< output stride *//**<CNcomment:输出行间距 CNend */
|
|
|
HI_BOOL bUserPhyMem; /**< if use user physic memeory *//**<CNcomment:是否使用用户的物理内存 CNend */
|
|
|
|
|
|
}HI_JPEG_SURFACE_S;
|
|
|
|
|
|
/** Structure of the output message */
|
|
|
/** CNcomment:设置输出相关信息 CNend */
|
|
|
typedef struct hiJPEG_SURFACE_DESCRIPTION_S
|
|
|
{
|
|
|
HI_JPEG_SURFACE_S stOutSurface; /**< output surface *//**<CNcomment:输出信息 CNend */
|
|
|
HI_JPEG_RECT_S stCropRect; /**< output crop size *//**<CNcomment:输出裁剪区域 CNend */
|
|
|
HI_BOOL bCrop; /**< if crop *//**<CNcomment:是否裁剪 CNend */
|
|
|
}HI_JPEG_SURFACE_DESCRIPTION_S;
|
|
|
|
|
|
|
|
|
/** Structure of output argb sampler and filte message */
|
|
|
/** CNcomment:设置输出argb采样和滤波相关信息 CNend */
|
|
|
typedef struct hiJPEG_DEC_COEF_S
|
|
|
{
|
|
|
HI_BOOL bEnHorMedian; /**< if set hor median filter *//**<CNcomment:是否水平中值滤波 CNend */
|
|
|
HI_BOOL bEnVerMedian; /**< if set ver median filter *//**<CNcomment:是否垂直中值滤波 CNend */
|
|
|
HI_BOOL bSetHorSampleCoef; /**< if set hor sample coef *//**<CNcomment:是否设置水平采样参数 CNend */
|
|
|
HI_BOOL bSetVerSampleCoef; /**< if set ver sample coef *//**<CNcomment:是否设置垂直采样参数 CNend */
|
|
|
HI_BOOL bSetCSCCoef; /**< if set csc coef *//**<CNcomment:是否设置CSC参数 CNend */
|
|
|
HI_S16 s16HorCoef[MAX_HORCOEF_ROW][MAX_HORCOEF_COL]; /**< set chrome hor sampler coefficient *//**<CNcomment:色度上采样水平滤波系数 CNend */
|
|
|
HI_S16 s16VerCoef[MAX_VERCOEF_ROW][MAX_VERCOEF_COL]; /**< set chrome ver sampler coefficient *//**<CNcomment:色度上采样垂直滤波系数 CNend */
|
|
|
HI_S16 s16CSCCoef[MAX_CSCCOEF_ROW][MAX_CSCCOEF_COL]; /**< set csc coefficient *//**<CNcomment:颜色空间转换系数 CNend */
|
|
|
}HI_JPEG_DEC_COEF_S;
|
|
|
|
|
|
|
|
|
/** Structure of the input and output jpeg width and height,input jpeg format */
|
|
|
/** CNcomment:jpeg文件的原始大小以及解码输出大小,原始图片格式 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输入和解码输出rgb图片宽度或者解码yuvsp亮度宽度,1为色度宽度 CNend */
|
|
|
HI_U32 u32Height[MAX_PIXEL_COMPONENT_NUM]; /**< 0 input and output rgb height and lu width,1 is ch height *//**<CNcomment:0输入和解码输出rgb图片高度或者解码yuvsp亮度高度,1为色度高度 CNend */
|
|
|
HI_U32 u32OutStride[MAX_PIXEL_COMPONENT_NUM]; /**< 0 output rgb stride and lu stride,1 is ch stride *//**<CNcomment:0解码输出rgb或yubsp的亮度行间距,1为色度行间距离 CNend */
|
|
|
HI_U32 u32OutSize[MAX_PIXEL_COMPONENT_NUM]; /**< 0 output rgb size and lu size,1 is ch size *//**<CNcomment:0解码输出rgb或yubsp的大小,1为色度大小 CNend */
|
|
|
HI_JPEG_FMT_E enFmt; /**< the input format *//**<CNcomment:输入的图片格式 CNend */
|
|
|
HI_BOOL bOutInfo; /**< false is get input information and the other get output information *//**<CNcomment:FALSE获取输入信息,TRUE获取输出信息 CNend */
|
|
|
}HI_JPEG_INFO_S;
|
|
|
|
|
|
|
|
|
/** Structure of the leave memsize that jpeg decode can used */
|
|
|
/** CNcomment:jpeg解码可以使用的内存大小信息 CNend */
|
|
|
typedef struct hiJPEG_MEMSIZE_INFO_S
|
|
|
{
|
|
|
HI_U32 u32MemSize; /**< the memsize *//**<CNcomment:剩余内存大小 CNend */
|
|
|
HI_U32 u32Width; /**< limit width *//**<CNcomment:限制宽 CNend */
|
|
|
HI_U32 u32Height; /**< limit height *//**<CNcomment:限制高 CNend */
|
|
|
HI_JPEG_MEMCHECK_E eCheckType; /**< limit type *//**<CNcomment:通过哪种类型来限制 CNend */
|
|
|
}HI_JPEG_MEMSIZE_INFO_S;
|
|
|
|
|
|
/** @} */ /** <!-- ==== Structure Definition End ==== */
|
|
|
|
|
|
/********************** Global Variable declaration **************************/
|
|
|
|
|
|
/******************************* API declaration *****************************/
|
|
|
|
|
|
|
|
|
/** \addtogroup JPEG */
|
|
|
/** @{ */ /** <!--[JPEG]*/
|
|
|
|
|
|
|
|
|
/**
|
|
|
\brief Sets dec output message. CNcomment:设置解码输出的信息上下文 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:必须在创建解码器之后,启动解码之前调用该接口,主要设置解码输出地址和输出 \n
|
|
|
行间距,设置是否裁剪以及对应的裁剪区域 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] *pstSurfaceDesc. CNcomment:解码输出描述信息 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:获取jpeg图片信息 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:当bOutInfo设置成FALSE的时候,可以获取到图片输入的宽度和高度以及像素格式,当设置成TRUE的 \n
|
|
|
时候则可以获取到如下信息,要是解码RGB则获取到宽度/高度/行间距/大小,要是解码输出yuvsp,\n
|
|
|
则可以获取的亮度和色度的宽度/高度/行间距/大小的信息。 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[out] pJpegInfo. CNcomment:解码jpeg的相关信息 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:在硬件解码支持的情况下,设置软解和硬解的拐点 CNend
|
|
|
\attention \n
|
|
|
HI_JPEG_SetInflexion should have called jpeg_create_decompress.if no call this \n
|
|
|
function,use the default flexion \n
|
|
|
CNcomment:必须在创建完解码器之后调用该函数,要是没有设置拐点,使用默认的拐点大小 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] u32flexionSize. CNcomment:要设置的解码拐点大小 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:获取软件和硬件解码的拐点 CNend
|
|
|
\attention \n
|
|
|
HI_JPEG_GetInflexion should have called jpeg_create_decompress.\n
|
|
|
CNcomment:在调用HI_JPEG_GetInflexion之前必须已经创建好了解码器 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[out] pu32flexionSize. CNcomment:解码拐点大小 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:在解码输出ARGB的情况下设置相关系数 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:必须在创建完解码器之后调用该函数,主要设置是否垂直和水平滤波,是否设置垂直和水平 \n
|
|
|
采样系数,是否设置CSS系数,并设置相对应的系数,要是没有调用该函数,使用默认值 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] *pstDecCoef. CNcomment:解码系数 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:在解码输出ARGB的情况下获取设置的相关系数 CNend
|
|
|
\attention \n
|
|
|
HI_JPEG_GetDecCoef should have called HI_JPEG_SetDecCoef.\n
|
|
|
CNcomment:在调用HI_JPEG_GetDecCoef之前必须已经HI_JPEG_SetDecCoef CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[out] pstOutDecCoef. CNcomment:输出解码系数 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:设置alpha的值 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:必须在创建完解码器之后调用该函数,当解码输出为ARGB8888和ABGR8888的时候可以 \n
|
|
|
调用该函数,要是没有调用该函数,就使用默认的值 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] s32Alpha. CNcomment:设置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:设置码流连续还是虚拟内存信息 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:如果要调用,必须在创建完解码器关联码流之前调用,如果没有调用该接口也有可能是连续的内存 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] pStreamPhyAddr. CNcomment:码流物理地址 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:设置码流内存信息 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:如果要调用,必须放在jpeg_mem_src之前 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] pPhyStremBuf. CNcomment:码流buffer起始物理地址 CNend
|
|
|
\param[in] u32StremBufLen. CNcomment:码流buffer大小 CNend
|
|
|
\param[in] pVirSaveReturnBuf. CNcomment:码流buffer回绕起始地址 CNend
|
|
|
\param[in] s32StrmReturnSize. CNcomment:回绕码流大小 CNend
|
|
|
\param[in] bStreamBufNeedReturn. CNcomment:码流buffer是否回绕 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:设置是否统一输出yuv420sp标识 CNend
|
|
|
\attention \n
|
|
|
HI_JPEG_SetYCbCr420spFlag should have called jpeg_create_decompress.\n
|
|
|
CNcomment:在调用HI_JPEG_SetYCbCr420spFlag之前必须已经创建好了解码器 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] bOutYCbCr420sp. CNcomment:是否统一解码输出yuv420sp格式 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:设置是否统计亮度值标识 CNend
|
|
|
\attention \n
|
|
|
HI_JPEG_SetLuPixSumFlag should have called jpeg_create_decompress.\n
|
|
|
CNcomment:在调用HI_JPEG_SetLuPixSumFlag之前必须已经创建好了解码器 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[in] bLuPixSum. CNcomment:设置是否统计亮度值标识 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:获取亮度值 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:要是想得到亮度值,可以调用该函数,但必须在jpeg_start_decompress之后调用而且解码 \n
|
|
|
之前要调用HI_JPEG_SetLuPixSumFlag CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[out] u64LuPixSum. CNcomment:输出亮度值 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:获取jpeg解码时间 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:要是想看解码花费了多少时间可以调用该函数,但必须在解码完成之后调用 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[out] pu32DecTime. CNcomment:输出整个解码时间 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:设置剩余内存大小可以供解码使用 CNend
|
|
|
\attention \n
|
|
|
should have called it after create jpeg decoder.\n
|
|
|
CNcomment:必须在创建解码器之后调用 CNend\n
|
|
|
|
|
|
\param[in] cinfo. CNcomment:解码对象 CNend
|
|
|
\param[int] sMemSizeInfo. CNcomment:内存信息 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__*/
|