rt-thread-official/bsp/nuvoton/libraries/n9h30/Driver/Include/nu_jpeg.h

399 lines
22 KiB
C
Raw Normal View History

2021-05-12 19:15:17 +08:00
/**************************************************************************//**
* @file jpeg.h
* @brief N9H30 JPEG driver header file
*
* @note
* SPDX-License-Identifier: Apache-2.0
* Copyright (C) 2018 Nuvoton Technology Corp. All rights reserved.
*****************************************************************************/
#ifndef __NU_JPEG_H__
#define __NU_JPEG_H__
#include "nu_jpegcodec.h"
/** @addtogroup N9H30_Device_Driver N9H30 Device Driver
@{
*/
/** @addtogroup N9H30_JPEG_Driver JPEG Driver
@{
*/
/** @addtogroup N9H30_JPEG_EXPORTED_CONSTANTS JPEG Exported Constants
@{
*/
/// @cond HIDDEN_SYMBOLS
// Define bits mask
#define NVTBIT(start,end) ((0xFFFFFFFFUL >> (31 - start)) & (0xFFFFFFFFUL >>end << end))
/// @endcond HIDDEN_SYMBOLS
//JMCR
#define RESUMEI BIT9 /*!< Resume JPEG Operation for Input On-the-Fly Mode */
#define RESUMEO BIT8 /*!< Resume JPEG Operation for Output On-the-Fly Mode */
#define ENC_DEC BIT7 /*!< JPEG Encode/Decode Mode */
#define WIN_DEC BIT6 /*!< JPEG Window Decode Mode */
#define PRI BIT5 /*!< Encode Primary Image */
#define THB BIT4 /*!< Encode Thumbnail Image */
#define EY422 BIT3 /*!< Encode Image Format */
#define QT_BUSY BIT2 /*!< Quantization-Table Busy Status (Read-Only) */
#define ENG_RST BIT1 /*!< Soft Reset JPEG Engine (Except JPEG Control Registers) */
#define JPG_EN BIT0 /*!< JPEG Engine Operation Control */
//JHEADER
#define P_JFIF BIT7 /*!< Primary JPEG Bit-stream Include JFIF Header */
#define P_HTAB BIT6 /*!< Primary JPEG Bit-stream Include Huffman-Table */
#define P_QTAB BIT5 /*!< Primary JPEG Bit-stream Include Quantization-Table */
#define P_DRI BIT4 /*!< Primary JPEG Bit-stream Include Restart Interval */
#define T_JFIF BIT3 /*!< Thumbnail JPEG Bit-stream Include JFIF Header */
#define T_HTAB BIT2 /*!< Thumbnail JPEG Bit-stream Include Huffman-Table */
#define T_QTAB BIT1 /*!< Thumbnail JPEG Bit-stream Include Quantization-Table */
#define T_DRI BIT0 /*!< Thumbnail JPEG Bit-stream Include Restart Interval */
//JITCR
#define Dec_Scatter_Gather BIT18
#define DEC_OTF BIT17 /*!< Decoder on the fly with VPE */
#define ARGB8888 BIT16 /*!< ARGB8888 */
#define PLANAR_ON BIT15 /*!< Packet On */
#define ORDER BIT14 /*!< Decode Packet Data Order */
#define RGB_555_565 BIT13 /*!< RGB555 & RGB565 */
#define ROTATE NVTBIT(12,11) /*!< Encode Image Rotate */
#define DYUV_MODE NVTBIT(10,8) /*!< Decoded Image YUV Color Format (Read-Only) */
#define EXIF BIT7 /*!< Encode Quantization-Table & Huffman-Table Header Format Selection */
#define EY_ONLY BIT6 /*!< Encode Gray-level (Y-component Only) Image */
#define DHEND BIT5 /*!< Header Decode Complete Stop Enable */
#define DTHB BIT4 /*!< Decode Thumbnail Image Only */
#define E3QTAB BIT3 /*!< Numbers of Quantization-Table are Used For Encode */
#define D3QTAB BIT2 /*!< Numbers of Quantization-Table are Used For Decode (Read-Only) */
#define ERR_DIS BIT1 /*!< Decode Error Engine Abort */
#define PDHTAB BIT0 /*!< Programmable Huffman-Table Function For Decode */
//JPRIQC
#define P_QADJUST NVTBIT(7,4) /*!< Primary Quantization-Table Adjustment */
#define P_QVS NVTBIT(3,0) /*!< Primary Quantization-Table Scaling Control */
//JTHBQC
#define T_QADJUST NVTBIT(7,4) /*!< Thumbnail Quantization-Table Adjustment */
#define T_QVS NVTBIT(3,0) /*!< Thumbnail Quantization-Table Scaling Control */
//JPRIWH
#define P_HEIGHT NVTBIT(27,16) /*!< Primary Encode Image Height */
#define P_WIDTH NVTBIT(11,0) /*!< Primary Encode Image Width */
//JTHBWH
#define T_HEIGHT NVTBIT(27,16) /*!< Thumbnail Encode Image Height */
#define T_WIDTH NVTBIT(11,0) /*!< Thumbnail Encode Image Width */
//JPRST
#define P_RST NVTBIT(7,0) /*!< Primary Encode Restart Interval Value */
//JTRST
#define T_RST NVTBIT(7,0) /*!< Thumbnail Encode Restart Interval Value */
//JDECWH
#define DEC_HEIGHT NVTBIT(31,16) /*!< 13-bit Bit Stream Buffer threshold */
#define DEC_WIDTH NVTBIT(15,0) /*!< 13-bit Header Offset Address */
//JINTCR
#define JPG_DOW_INTE BIT28 /*!< Decoding Output Wait Interrupt Enable */
#define JPG_DOW_INTS BIT24 /*!< Status of Decoding Output Wait */
#define JPG_WAITI BIT23 /*!< JPEG Input Wait Status (Read-Only) */
#define JPG_WAITO BIT22 /*!< JPEG Output Wait Status (Read-Only) */
#define BAbort BIT16 /*!< JPEG Memory Access Error Status (Read-Only) */
#define CER_INTE BIT15 /*!< Un-complete Capture On-The-Fly Frame Occur Interrupt Enable */
#define DHE_INTE BIT14 /*!< JPEG Header Decode End Wait Interrupt Enable */
#define IPW_INTE BIT13 /*!< Input Wait Interrupt Enable */
#define OPW_INTE BIT12 /*!< Output Wait Interrupt Enable */
#define ENC_INTE BIT11 /*!< Encode Complete Interrupt Enable */
#define DEC_INTE BIT10 /*!< Decode Complete Interrupt Enable */
#define DER_INTE BIT9 /*!< Decode Error Interrupt Enable */
#define EER_INTE BIT8 /*!< Encode (On-The-Fly) Error Interrupt Enable */
#define CER_INTS BIT7 /*!< Un-complete Capture On-The-Fly Frame Occur Interrupt Status */
#define DHE_INTS BIT6 /*!< JPEG Header Decode End Wait Interrupt Status */
#define IPW_INTS BIT5 /*!< Input Wait Interrupt Status */
#define OPW_INTS BIT4 /*!< Output Wait Interrupt Status */
#define ENC_INTS BIT3 /*!< Encode Complete Interrupt Status */
#define DEC_INTS BIT2 /*!< Decode Complete Interrupt Status */
#define DER_INTS BIT1 /*!< Decode Error Interrupt Status */
#define EER_INTS BIT0 /*!< Encode (On-The-Fly) Error Interrupt Status */
//JPEG_BSBAD
#define BIST_ST NVTBIT(23,16) /*!< Internal SRAM BIST Status (Read-Only) */
#define TEST_DOUT NVTBIT(15,8) /*!< Test Data Output (Read-Only) */
#define TEST_ON BIT7 /*!< Test Enable */
#define BIST_ON BIT6 /*!< Internal SRAM BIST Mode Enable */
#define BIST_FINI BIT5 /*!< Internal SRAM BIST Mode Finish (Read-Only) */
#define BSBAD_BIST_FAIL BIT4 /*!< Internal SRAM BIST Mode Fail (Read-Only) */
#define TEST_SEL NVTBIT(3,0) /*!< Test Data Selection */
//JWINDEC0
#define MCU_S_Y NVTBIT(24,16) /*!< MCU Start Position Y For Window Decode Mode */
#define MCU_S_X NVTBIT(8,0) /*!< MCU Start Position X For Window Decode Mode */
//JWINDEC1
#define MCU_E_Y NVTBIT(24,16) /*!< MCU End Position Y For Window Decode Mode */
#define MCU_E_X NVTBIT(8,0) /*!< MCU End Position X For Window Decode Mode */
//JWINDEC2
#define WD_WIDTH NVTBIT(11,0)) /*!< Image Width (Y-Stride) For Window Decode Mode */
//JMACR
#define FLY_SEL NVTBIT(29,24) /*!< Hardware Memory On-the-Fly Access Image Buffer-Size Selection for Encode */
#define FLY_TYPE NVTBIT(23,22) /*!< Dual/Single buffer on-the fly */
#define BSF_SEL NVTBIT(17,8) /*!< Memory On-the-Fly Access Bitstream Buffer-Size Selection */
#define FLY_ON BIT7 /*!< Hardware Memory On-the-Fly Access Mode */
#define IP_SF_ON BIT3 /*!< Software Memory On-the-Fly Access Mode for Data Input */
#define OP_SF_ON BIT2 /*!< Software Memory On-the-Fly Access Mode for Data Output */
#define ENC_MODE NVTBIT(1,0) /*!< JPEG Memory Address Mode Control */
//JPSCALU
#define JPSCALU_8X BIT6 /*!< Primary Image Up-Scaling For Encode */
#define A_JUMP BIT2 /*!< Reserve Buffer Size In JPEG Bit-stream For Software Application */
//JPSCALD
#define PSX_ON BIT15 /*!< Primary Image Horizontal Down-Scaling For Encode/Decode */
#define PS_LPF_ON BIT14 /*!< Primary Image Down-Scaling Low Pass Filter For Decode */
#define PSCALX_F NVTBIT(12,8) /*!< Primary Image Horizontal Down-Scaling Factor */
#define PSCALY_F NVTBIT(5,0) /*!< Primary Image Vertical Down-Scaling Factor */
//JTSCALD
#define TSX_ON BIT15 /*!< Thumbnail Image Horizontal Down-Scaling For Encode/Decode */
#define TSCALX_F NVTBIT(14,8) /*!< Thumbnail Image Horizontal Down-Scaling Factor */
#define TSCALY_F NVTBIT(7,0) /*!< Thumbnail Image Vertical Down-Scaling Factor */
//JDBCR
#define DBF_EN BIT7 /*!< Dual Buffering Control */
#define IP_BUF BIT4 /*!< Input Dual Buffer Control */
//JRESERVE
#define RES_SIZE NVTBIT(15,0) /*!< Primary Encode Bit-stream Reserved Size */
//JOFFSET
#define OFFSET_SIZE NVTBIT(23,0) /*!< Primary/Thumbnail Starting Address Offset Size */
//JFSTRIDE
#define F_STRIDE NVTBIT(23,0) /*!< JPEG Encode Bit-stream Frame Stride */
//JYADDR0
#define Y_IADDR0 NVTBIT(31,0) /*!< JPEG Y Component Frame Buffer-0 Starting Address */
//JUADDR0
#define U_IADDR0 NVTBIT(31,0) /*!< JPEG U Component Frame Buffer-0 Starting Address */
//JVADDR0
#define V_IADDR0 NVTBIT(31,0) /*!< JPEG V Component Frame Buffer-0 Starting Address */
//JYADDR1
#define Y_IADDR1 NVTBIT(31,0) /*!< JPEG Y Component Frame Buffer-1 Starting Address */
//JUADDR1
#define U_IADDR1 NVTBIT(31,0) /*!< JPEG U Component Frame Buffer-1 Starting Address */
//JVADDR1
#define V_IADDR1 NVTBIT(31,0) /*!< JPEG V Component Frame Buffer-1 Starting Address */
//JYSTRIDE
#define Y_STRIDE NVTBIT(11,0) /*!< JPEG Y Component Frame Buffer Stride */
//JUSTRIDE
#define U_STRIDE NVTBIT(11,0) /*!< JPEG U Component Frame Buffer Stride */
//JVSTRIDE
#define V_STRIDE NVTBIT(11,0) /*!< JPEG V Component Frame Buffer Stride */
//JIOADDR0
#define IO_IADDR0 NVTBIT(31,0) /*!< JPEG Bit-stream Frame Buffer-0 Starting Address */
//JIOADDR1
#define IO_IADDR1 NVTBIT(31,0) /*!< JPEG Bit-stream Frame Buffer-1 Starting Address */
//JPRI_SIZE
#define PRI_SIZE NVTBIT(23,0) /*!< JPEG Primary Image Encode Bit-stream Size */
//JTHB_SIZE
#define THB_SIZE NVTBIT(15,0) /*!< JPEG Thumbnail Image Encode Bit-stream Size */
//JUPRAT
#define S_HEIGHT NVTBIT(29,16) /*!< JPEG Image Height Up-Scale Ratio */
#define S_WIDTH NVTBIT(13,0) /*!< JPEG Image Width Up-Scale Ratio */
//JBSFIFO
#define BSFIFO_HT NVTBIT(6,4) /*!< Bit-stream FIFO High-Threshold Control */
#define BSFIFO_LT NVTBIT(2,0) /*!< Bit-stream FIFO Low-Threshold Control */
//JSRCH
#define JSRCH_JSRCH NVTBIT(11,0) /*!< JPEG Encode Source Image Height */
/*@}*/ /* end of group N9H30_JPEG_EXPORTED_CONSTANTS */
/// @cond HIDDEN_SYMBOLS
//Define for Interrupt Status
#define JPEG_EER_INTS EER_INTS
#define JPEG_DER_INTS DER_INTS
#define JPEG_DEC_INTS DEC_INTS
#define JPEG_ENC_INTS ENC_INTS
#define JPEG_DHE_INTS DHE_INTS
#define JPEG_IPW_INTS IPW_INTS
//Define for Scaling
#define JPEG_ENC_UPSCALE_MODE 0
#define JPEG_DEC_PACKET_DOWNSCALE_MODE 1
#define JPEG_DEC_PLANAR_DOWNSCALE_MODE 2
#define JPEG_ENC_PLANAR_PRIMARY_DOWNSCALE_MODE 3
#define JPEG_ENC_PLANAR_THUMBNAIL_DOWNSCALE_MODE 4
//Define for Interrupt Enable
#define JPEG_EER_INTE ERR_INTE
#define JPEG_DER_INTE DER_INTE
#define JPEG_DEC_INTE DEC_INTE
#define JPEG_ENC_INTE ENC_INTE
#define JPEG_DHE_INTE DHE_INTE
#define JPEG_IPW_INTE IPW_INTE
//Register
#define REG_JMCR JMCR /*!< JPEG Mode Control Register */
#define REG_JHEADER JHEADER /*!< JPEG Encode Header Control Register */
#define REG_JITCR JITCR /*!< JPEG Image Type Control Register */
#define REG_JPRIQC JPRIQC /*!< JPEG Primary Q-Table Control Register */
#define REG_JTHBQC JTHBQC /*!< JPEG Thumbnail Q-Table Control Register */
#define REG_JPRIWH JPRIWH /*!< JPEG Encode Primary Width/Height Register */
#define REG_JTHBWH JTHBWH /*!< JPEG Encode Thumbnail Width/Height Register */
#define REG_JPRST JPRST /*!< JPEG Encode Primary Restart Interval Register */
#define REG_JTRST JTRST /*!< JPEG Encode Thumbnail Restart Interval */
#define REG_JDECWH JDECWH /*!< JPEG Decode Image Width/Height Register */
#define REG_JINTCR JINTCR /*!< JPEG Interrupt Control and Status Register */
#define REG_JTEST JTEST /*!< JPEG Test Control Register */
#define REG_JWINDEC0 JWINDEC0 /*!< JPEG Window Decode Mode Control Register 0 */
#define REG_JWINDEC1 JWINDEC1 /*!< JPEG Window Decode Mode Control Register 1 */
#define REG_JWINDEC2 JWINDEC2 /*!< JPEG Window Decode Mode Control Register 2 */
#define REG_JMACR JMACR /*!< JPEG Memory Address Mode Control Register */
#define REG_JPSCALU JPSCALU /*!< JPEG Primary Scaling-Up Control Register */
#define REG_JPSCALD JPSCALD /*!< JPEG Primary Scaling-Down Control Register */
#define REG_JTSCALD JTSCALD /*!< JPEG Thumbnail Scaling-Down Control Register */
#define REG_JDBCR JDBCR /*!< JPEG Dual-Buffer Control Register */
#define REG_JRESERVE JRESERVE /*!< JPEG Encode Primary Bit-stream Reserved Size Register */
#define REG_JOFFSET JOFFSET /*!< JPEG Offset Between Primary & Thumbnail Register */
#define REG_JFSTRIDE JFSTRIDE /*!< JPEG Encode Bit-stream Frame Stride Register */
#define REG_JYADDR0 JYADDR0 /*!< JPEG Y Component Frame Buffer-0 Starting Address Register */
#define REG_JUADDR0 JUADDR0 /*!< JPEG U Component Frame Buffer-0 Starting Address Register */
#define REG_JVADDR0 JVADDR0 /*!< JPEG V Component Frame Buffer-0 Starting Address Register */
#define REG_JYADDR1 JYADDR1 /*!< JPEG Y Component Frame Buffer-1 Starting Address Register */
#define REG_JUADDR1 JUADDR1 /*!< JPEG U Component Frame Buffer-1 Starting Address Register */
#define REG_JVADDR1 JVADDR1 /*!< JPEG V Component Frame Buffer-1 Starting Address Register */
#define REG_JYSTRIDE JYSTRIDE /*!< JPEG Y Component Frame Buffer Stride Register */
#define REG_JUSTRIDE JUSTRIDE /*!< JPEG U Component Frame Buffer Stride Register */
#define REG_JVSTRIDE JVSTRIDE /*!< JPEG V Component Frame Buffer Stride Register */
#define REG_JIOADDR0 JIOADDR0 /*!< JPEG Bit-stream Frame Buffer-0 Starting Address Register */
#define REG_JIOADDR1 JIOADDR1 /*!< JPEG Bit-stream Frame Buffer-1 Starting Address Register */
#define REG_JPRI_SIZE JPRI_SIZE /*!< JPEG Encode Primary Image Bit-stream Size Register */
#define REG_JTHB_SIZE JTHB_SIZE /*!< JPEG Encode Thumbnail Image Bit-stream Size Register */
#define REG_JUPRAT JUPRAT /*!< JPEG Encode Up-Scale Ratio Register */
#define REG_JBSFIFO JBSFIFO /*!< JPEG Bit-stream FIFO Control Register */
#define REG_JSRCH JSRCH /*!< JPEG Encode Source Image Height */
#define REG_JQTAB0 JQTAB0 /*!< JPEG Quantization-Table 0 Register */
#define REG_JQTAB1 JQTAB1 /*!< JPEG Quantization-Table 1 Register */
#define REG_JQTAB2 JQTAB2 /*!< JPEG Quantization-Table 2 Register */
//Export functions
#define JPEG_SET_YADDR(u32Address) outp32(REG_JYADDR0, u32Address)
#define JPEG_SET_UADDR(u32Address) outp32(REG_JUADDR0, u32Address)
#define JPEG_SET_VADDR(u32Address) outp32(REG_JVADDR0, u32Address)
#define JPEG_GET_YADDR() inp32(REG_JYADDR0)
#define JPEG_GET_UADDR() inp32(REG_JUADDR0)
#define JPEG_GET_VADDR() inp32(REG_JVADDR0)
#define JPEG_SET_YSTRIDE(u32Stride) outp32(REG_JYSTRIDE, u32Stride)
#define JPEG_SET_USTRIDE(u32Stride) outp32(REG_JUSTRIDE, u32Stride)
#define JPEG_SET_VSTRIDE(u32Stride) outp32(REG_JVSTRIDE, u32Stride)
#define JPEG_GET_YSTRIDE() inp32(REG_JYSTRIDE)
#define JPEG_GET_USTRIDE() inp32(REG_JUSTRIDE)
#define JPEG_GET_VSTRIDE() inp32(REG_JVSTRIDE)
#define JPEG_SET_BITSTREAM_ADDR(u32Address) outp32(REG_JIOADDR0,u32Address)
#define JPEG_GET_BITSTREAM_ADDR() inp32(REG_JIOADDR0)
#define JPEG_SET_ENC_DEC(u8Mode) outp32(REG_JMCR, (inp32(REG_JMCR) & ~ENC_DEC) | (u8Mode << 7));
//Encode
#define JPEG_GET_ENC_PRIMARY_BITSTREAM_SIZE() inp32(REG_JPRI_SIZE)
#define JPEG_GET_ENC_THUMBNAIL_BITSTREAM_SIZE() inp32(REG_JTHB_SIZE)
#define JPEG_SET_SOURCE_IMAGE_HEIGHT(u16Size) outp32(REG_JSRCH,u16Size)
#define JPEG_GET_SOURCE_IMAGE_HEIGHT() inp32(REG_JSRCH)
#define JPEG_ENC_ENABLE_UPSCALING() outp32(REG_JPSCALU,inp32(REG_JPSCALU) | JPSCALU_8X)
#define JPEG_ENC_DISABLE_UPSCALING() outp32(REG_JPSCALU,inp32(REG_JPSCALU) & ~JPSCALU_8X)
#define JPEG_ENC_ISENABLE_UPSCALING() ((inp32(REG_JPSCALU) & JPSCALU_8X) >> 6)
#define JPEG_ENC_SET_HEADER_CONTROL(u8Control) outp32(REG_JHEADER, u8Control)
#define JPEG_ENC_GET_HEADER_CONTROL() inp32(REG_JHEADER)
#define JPEG_ENC_SET_RDI_VALUE(u8Value) outp32(REG_JPRST,u8Value)
#define JPEG_ENC_GET_RDI_VALUE() inp32(REG_JPRST)
//Decode
#define JPEG_DEC_ENABLE_DOWNSCALING() outp32(REG_JPSCALD, PSX_ON)
#define JPEG_DEC_ISENABLE_DOWNSCALING() ((inp32(REG_JPSCALD) & PSX_ON) >> 15)
#define JPEG_DEC_DISABLE_DOWNSCALING() outp32(REG_JPSCALD,~PSX_ON)
#define JPEG_DEC_GET_DECODED_IMAGE_FORMAT() (inp32(REG_JITCR) & DYUV_MODE)
#define JPEG_DEC_ENABLE_LOW_PASS_FILTER() outp32(REG_JPSCALD,inp32(REG_JPSCALD) | PS_LPF_ON)
#define JPEG_DEC_DISABLE_LOW_PASS_FILTER() outp32(REG_JPSCALD,inp32(REG_JPSCALD) & ~PS_LPF_ON)
#define JPEG_DEC_ISENABLE_LOW_PASS_FILTER() ((inp32(REG_JPSCALD) & PS_LPF_ON) >> 14)
#define JPEG_DEC_SET_INPUT_WAIT(u16Size) outp32(REG_JMACR, 0x00400008 | ((u16Size & 0x3FF)<< 8) );
#define JPEG_DEC_RESUME_INPUT_WAIT() outp32(REG_JMCR,inp32(REG_JMCR) | RESUMEI);
#define JPEG_DEC_DISABLE_WINDOWDECODE() outp32(REG_JMCR, inp32(REG_JMCR) & ~(WIN_DEC));
//Interrupt
#define JPEG_INT_ENABLE(u32Intflag) outp32(REG_JINTCR, u32Intflag)
#define JPEG_INT_DISABLE(u32Intflag) outp32(REG_JINTCR, inp32 (REG_JINTCR) & ~(u32Intflag))
#define JPEG_GET_INT_STATUS() (inp32(REG_JINTCR) & 0x010000FF)
#define JPEG_CLEAR_INT(u32Intflag) outp32(REG_JINTCR, (inp32 (REG_JINTCR) & ~0xFF) | u32Intflag)
static INT jpegSetEncodeMode(UINT8 u8SourceFormat, UINT16 u16JpegFormat);
static INT jpegSetDecodeMode(UINT32 u8OutputFormat);
static BOOL jpegPollInt(UINT32 u32Intflag);
static VOID jpegEncodeTrigger(void);
static VOID jpegDecodeTrigger(void);
static VOID jpegGetDecodedDimension(
PUINT16 pu16Height, //Decode/Encode Height
PUINT16 pu16Width //Decode/Encode Width
);
static VOID jpegSetDimension(
UINT16 u16Height, //Decode/Encode Height
UINT16 u16Width //Decode/Encode Width
);
static VOID jpegGetDimension(
PUINT16 pu16Height, //Decoded Height from bit stream
PUINT16 pu16Width //Decoded Width from bit stream
);
static INT jpegSetWindowDecode(
UINT16 u16StartMCUX, //Start X MCU
UINT16 u16StartMCUY, //Horizontal Scaling Factor
UINT16 u16EndMCUX, //Vertical Scaling Factor
UINT16 u16EndMCUY, //Horizontal Scaling Factor
UINT32 u32Stride //Decode Output Stride
);
static INT jpegCalScalingFactor(
UINT8 u8Mode, //Up / Down Scaling
UINT16 u16Height, //Original Height
UINT16 u16Width, //Original Width
UINT16 u16ScalingHeight, //Scaled Height
UINT16 u16ScalingWidth, //Scaled Width
PUINT16 pu16RatioH, //Horizontal Ratio
PUINT16 pu16RatioW //Vertical Ratio
);
static INT jpegSetScalingFactor(
UINT8 u8Mode, //Up / Down Scaling
UINT16 u16FactorH, //Vertical Scaling Factor
UINT16 u16FactorW //Horizontal Scaling Factor
);
static VOID jpegGetScalingFactor(
UINT8 u8Mode, //Up / Down Scaling
PUINT16 pu16FactorH, //Vertical Scaling Factor
PUINT16 pu16FactorW //Horizontal Scaling Factor
);
/// @endcond HIDDEN_SYMBOLS
/*@}*/ /* end of group N9H30_JPEG_Driver */
/*@}*/ /* end of group N9H30_Device_Driver */
#endif