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