1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * 3*437bfbebSnyanmisaka * Copyright 2015 - 2017 Rockchip Electronics Co. LTD 4*437bfbebSnyanmisaka * 5*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 6*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 7*437bfbebSnyanmisaka * You may obtain a copy of the License at 8*437bfbebSnyanmisaka * 9*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 10*437bfbebSnyanmisaka * 11*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 12*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 13*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 15*437bfbebSnyanmisaka * limitations under the License. 16*437bfbebSnyanmisaka */ 17*437bfbebSnyanmisaka #ifndef __HAL_JPEGD_COMMON_H__ 18*437bfbebSnyanmisaka #define __HAL_JPEGD_COMMON_H__ 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka #include "hal_jpegd_base.h" 21*437bfbebSnyanmisaka 22*437bfbebSnyanmisaka #define BRIGHTNESS 4 /* -128 ~ 127 */ 23*437bfbebSnyanmisaka #define CONTRAST 0 /* -64 ~ 64 */ 24*437bfbebSnyanmisaka #define SATURATION 0 /* -64 ~ 128 */ 25*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV422INTERLAVE 0 26*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV420SEMI 1 27*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV420PLANAR 2 28*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV400 3 29*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV422SEMI 4 30*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV420SEMITIELED 5 31*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV440SEMI 6 32*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV444_SEMI 7 33*437bfbebSnyanmisaka #define PP_IN_FORMAT_YUV411_SEMI 8 34*437bfbebSnyanmisaka 35*437bfbebSnyanmisaka #define PP_OUT_FORMAT_RGB565 0 36*437bfbebSnyanmisaka #define PP_OUT_FORMAT_ARGB 1 37*437bfbebSnyanmisaka #define PP_OUT_FORMAT_YUV422INTERLAVE 3 38*437bfbebSnyanmisaka #define PP_OUT_FORMAT_YUV420INTERLAVE 5 39*437bfbebSnyanmisaka 40*437bfbebSnyanmisaka #define MIN_WIDTH (48) /* 48 Bytes */ 41*437bfbebSnyanmisaka #define MIN_HEIGHT (48) /* 48 Bytes */ 42*437bfbebSnyanmisaka #define MAX_WIDTH (8*1024) /* 4K Bytes */ 43*437bfbebSnyanmisaka #define MAX_HEIGHT (8*1024) /* 4K Bytes */ 44*437bfbebSnyanmisaka #define MAX_STREAM_LENGTH (MAX_WIDTH * MAX_HEIGHT) /* 16M Bytes */ 45*437bfbebSnyanmisaka 46*437bfbebSnyanmisaka static const RK_U8 zzOrder[64] = { 47*437bfbebSnyanmisaka 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 48*437bfbebSnyanmisaka 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 49*437bfbebSnyanmisaka 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 50*437bfbebSnyanmisaka 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 51*437bfbebSnyanmisaka }; 52*437bfbebSnyanmisaka 53*437bfbebSnyanmisaka #define PP_RGB_CFG_LENTH (10) 54*437bfbebSnyanmisaka typedef struct PpRgbCfg_t { 55*437bfbebSnyanmisaka MppFrameFormat fmt; 56*437bfbebSnyanmisaka RK_U8 pp_out_fmt; 57*437bfbebSnyanmisaka RK_U8 out_endian; 58*437bfbebSnyanmisaka RK_U8 swap_16; 59*437bfbebSnyanmisaka RK_U8 swap_32; 60*437bfbebSnyanmisaka RK_U8 rgb_in_32; 61*437bfbebSnyanmisaka RK_U8 r_padd; 62*437bfbebSnyanmisaka RK_U8 g_padd; 63*437bfbebSnyanmisaka RK_U8 b_padd; 64*437bfbebSnyanmisaka RK_U8 r_dither; 65*437bfbebSnyanmisaka RK_U8 g_dither; 66*437bfbebSnyanmisaka RK_U8 b_dither; 67*437bfbebSnyanmisaka RK_U32 r_mask; 68*437bfbebSnyanmisaka RK_U32 g_mask; 69*437bfbebSnyanmisaka RK_U32 b_mask; 70*437bfbebSnyanmisaka } PpRgbCfg; 71*437bfbebSnyanmisaka 72*437bfbebSnyanmisaka PpRgbCfg* get_pp_rgb_Cfg(MppFrameFormat fmt); 73*437bfbebSnyanmisaka RK_U32 jpegd_vdpu_tail_0xFF_patch(MppBuffer stream, RK_U32 length); 74*437bfbebSnyanmisaka 75*437bfbebSnyanmisaka void jpegd_write_qp_ac_dc_table(JpegdHalCtx *ctx, 76*437bfbebSnyanmisaka JpegdSyntax*syntax); 77*437bfbebSnyanmisaka 78*437bfbebSnyanmisaka MPP_RET jpegd_setup_output_fmt(JpegdHalCtx *ctx, JpegdSyntax *syntax, 79*437bfbebSnyanmisaka RK_S32 output); 80*437bfbebSnyanmisaka 81*437bfbebSnyanmisaka MPP_RET jpeg_image_check_size(RK_U32 hor_stride, RK_U32 ver_stride); 82*437bfbebSnyanmisaka 83*437bfbebSnyanmisaka #endif /* __HAL_JPEGD_COMMON_H__ */ 84