diff options
author | Hamsalekha S <hamsalekha.s@ittiam.com> | 2015-03-13 21:24:58 +0530 |
---|---|---|
committer | Hamsalekha S <hamsalekha.s@ittiam.com> | 2015-04-02 15:59:02 +0530 |
commit | 8d3d303c7942ced6a987a52db8977d768dc3605f (patch) | |
tree | cc806c96794356996b13ba9970941d0aed74a97e /encoder/irc_rd_model_struct.h | |
parent | 3956d913d37327dcb340f836e604b04bd478b158 (diff) | |
download | android_external_libavc-8d3d303c7942ced6a987a52db8977d768dc3605f.tar.gz android_external_libavc-8d3d303c7942ced6a987a52db8977d768dc3605f.tar.bz2 android_external_libavc-8d3d303c7942ced6a987a52db8977d768dc3605f.zip |
Initial version
Change-Id: I7efe9a589cd24edf86e8d086b40c27cbbf8b4017
Diffstat (limited to 'encoder/irc_rd_model_struct.h')
-rwxr-xr-x | encoder/irc_rd_model_struct.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/encoder/irc_rd_model_struct.h b/encoder/irc_rd_model_struct.h new file mode 100755 index 0000000..dc4c0ea --- /dev/null +++ b/encoder/irc_rd_model_struct.h @@ -0,0 +1,75 @@ +/****************************************************************************** + * + * Copyright (C) 2015 The Android Open Source Project + * + * 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. + * + ***************************************************************************** + * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore +*/ + +#ifndef RC_RD_MODEL_STRUCT +#define RC_RD_MODEL_STRUCT + +/*Enable or diable QUAD model*/ +#define ENABLE_QUAD_RC_MODEL 0 +#define ENABLE_LIN_MODEL_WITH_INTERCEPT 0 + +/* Number of elements for QP */ +#define MPEG2_QP_ELEM (MAX_MPEG2_QP + 1) + + +#if ENABLE_QUAD_RC_MODEL +#define QUAD 1 +#define MIN_FRAMES_FOR_QUAD_MODEL 5 +#endif + +#define MAX_ACTIVE_FRAMES 16 +#define MIN_FRAMES_FOR_LIN_MODEL 3 +#define INVALID_FRAME_INDEX 255 + +#define UP_THR_SM 1 /* (1 /pow(2,4) = 0.0625 */ +#define UP_THR_E 4 + +#define LO_THR_SM 368 /* (368.64 / pow(2,14)) = 0.0225 */ +#define LO_THR_E 14 + +#define LIN_DEV_THR_SM 1 /* (1 / pow(1,2)) = .25*/ +#define LIN_DEV_THR_E 2 + +#define PREV_FRAME_MODEL 2 + +/* Q Factors used for fixed point calculation */ +#define Q_FORMAT_GAMMA 8 +#define Q_FORMAT_ETA 8 + +typedef struct rc_rd_model_t +{ + UWORD8 u1_curr_frm_counter; + UWORD8 u1_num_frms_in_model; + UWORD8 u1_max_frms_to_model; + UWORD8 u1_model_used; + + UWORD32 pi4_res_bits[MAX_FRAMES_MODELLED]; + UWORD32 pi4_sad[MAX_FRAMES_MODELLED]; + + UWORD8 pu1_num_skips[MAX_FRAMES_MODELLED]; + UWORD8 pu1_avg_qp[MAX_FRAMES_MODELLED]; + UWORD8 au1_num_frames[MPEG2_QP_ELEM]; + + model_coeff model_coeff_a_lin_wo_int; + model_coeff model_coeff_b_lin_wo_int; + model_coeff model_coeff_c_lin_wo_int; +} rc_rd_model_t; + +#endif /* RC_RD_MODEL_STRUCT */ |