1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * Copyright 2015 Rockchip Electronics Co. LTD 3*437bfbebSnyanmisaka * 4*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 5*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 6*437bfbebSnyanmisaka * You may obtain a copy of the License at 7*437bfbebSnyanmisaka * 8*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 9*437bfbebSnyanmisaka * 10*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 11*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 12*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 14*437bfbebSnyanmisaka * limitations under the License. 15*437bfbebSnyanmisaka */ 16*437bfbebSnyanmisaka 17*437bfbebSnyanmisaka #ifndef __HAL_JPEGE_HDR_H__ 18*437bfbebSnyanmisaka #define __HAL_JPEGE_HDR_H__ 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka #include "jpege_syntax.h" 21*437bfbebSnyanmisaka 22*437bfbebSnyanmisaka typedef void *JpegeBits; 23*437bfbebSnyanmisaka 24*437bfbebSnyanmisaka #ifdef __cplusplus 25*437bfbebSnyanmisaka extern "C" { 26*437bfbebSnyanmisaka #endif 27*437bfbebSnyanmisaka 28*437bfbebSnyanmisaka #define QUANTIZE_TABLE_SIZE 64 29*437bfbebSnyanmisaka typedef struct HalJpegeRc_t { 30*437bfbebSnyanmisaka RK_S32 q_mode; 31*437bfbebSnyanmisaka RK_S32 quant; 32*437bfbebSnyanmisaka RK_S32 q_factor; 33*437bfbebSnyanmisaka RK_U8 qtable_y[QUANTIZE_TABLE_SIZE]; 34*437bfbebSnyanmisaka RK_U8 qtable_u[QUANTIZE_TABLE_SIZE]; 35*437bfbebSnyanmisaka RK_U8 qtable_v[QUANTIZE_TABLE_SIZE]; 36*437bfbebSnyanmisaka const RK_U8 *qtables[3]; 37*437bfbebSnyanmisaka } HalJpegeRc; 38*437bfbebSnyanmisaka 39*437bfbebSnyanmisaka void jpege_bits_init(JpegeBits *ctx); 40*437bfbebSnyanmisaka void jpege_bits_deinit(JpegeBits ctx); 41*437bfbebSnyanmisaka 42*437bfbebSnyanmisaka void jpege_bits_setup(JpegeBits ctx, RK_U8 *buf, RK_S32 size); 43*437bfbebSnyanmisaka void jpege_bits_put(JpegeBits ctx, RK_U32 val, RK_S32 len); 44*437bfbebSnyanmisaka void jpege_bits_align_byte(JpegeBits ctx); 45*437bfbebSnyanmisaka void jpege_seek_bits(JpegeBits ctx, RK_S32 len); 46*437bfbebSnyanmisaka RK_U8 *jpege_bits_get_buf(JpegeBits ctx); 47*437bfbebSnyanmisaka RK_S32 jpege_bits_get_bitpos(JpegeBits ctx); 48*437bfbebSnyanmisaka RK_S32 jpege_bits_get_bytepos(JpegeBits ctx); 49*437bfbebSnyanmisaka 50*437bfbebSnyanmisaka MPP_RET write_jpeg_header(JpegeBits *bits, JpegeSyntax *syntax, HalJpegeRc *rc); 51*437bfbebSnyanmisaka 52*437bfbebSnyanmisaka void hal_jpege_rc_init(HalJpegeRc *hal_rc); 53*437bfbebSnyanmisaka void hal_jpege_rc_update(HalJpegeRc *hal_rc, JpegeSyntax *syntax); 54*437bfbebSnyanmisaka 55*437bfbebSnyanmisaka #ifdef __cplusplus 56*437bfbebSnyanmisaka } 57*437bfbebSnyanmisaka #endif 58*437bfbebSnyanmisaka 59*437bfbebSnyanmisaka #endif /*__HAL_JPEGE_HDR_H__*/ 60*437bfbebSnyanmisaka 61