123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- /**************************************************************************//**
- * @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
|