rdoq_cabac.c File Reference

Rate Distortion Optimized Quantization based on VCEG-AH21 related to CABAC. More...

#include "contributors.h"
#include <math.h>
#include <float.h>
#include "global.h"
#include "cabac.h"
#include "image.h"
#include "fmo.h"
#include "macroblock.h"
#include "mb_access.h"
#include "rdoq.h"

Include dependency graph for rdoq_cabac.c:

Go to the source code of this file.

Functions

static int biari_no_bits (signed short symbol, BiContextTypePtr bi_ct)
static int biari_state (signed short symbol, BiContextTypePtr bi_ct)
static void est_CBP_block_bit (Macroblock *currMB, int type)
static void est_significance_map (Macroblock *currMB, int type)
static void est_significant_coefficients (Macroblock *currMB, int type)
static int est_unary_exp_golomb_level_encode (Macroblock *currMB, unsigned int symbol, int ctx, int type)
void precalculate_unary_exp_golomb_level (ImageParameters *p_Img)
int est_unary_exp_golomb_level_bits (unsigned int symbol, int bits0, int bits1)
int est_exp_golomb_encode_eq_prob (unsigned int symbol)
void estRunLevel_CABAC (Macroblock *currMB, int context)
int est_write_and_store_CBP_block_bit (Macroblock *currMB, int type)
void est_writeRunLevel_CABAC (Macroblock *currMB, levelDataStruct levelData[], int levelTabMin[], int type, double lambda, int kInit, int kStop, int noCoeff, int estCBP)
int init_trellis_data_4x4_CABAC (Macroblock *currMB, int **tblock, int block_x, int qp_per, int qp_rem, LevelQuantParams **q_params_4x4, const byte *p_scan, levelDataStruct *dataLevel, int *kStart, int *kStop, int type)
int init_trellis_data_8x8_CABAC (Macroblock *currMB, int **tblock, int block_x, int qp_per, int qp_rem, LevelQuantParams **q_params_8x8, const byte *p_scan, levelDataStruct *dataLevel, int *kStart, int *kStop)
int init_trellis_data_DC_CABAC (Macroblock *currMB, int **tblock, int qp_per, int qp_rem, LevelQuantParams *q_params_4x4, const byte *p_scan, levelDataStruct *dataLevel, int *kStart, int *kStop)

Variables

static const int entropyBits [128]


Detailed Description

Rate Distortion Optimized Quantization based on VCEG-AH21 related to CABAC.

Definition in file rdoq_cabac.c.


Function Documentation

static void est_CBP_block_bit ( Macroblock currMB,
int  type 
) [static]

estimate bit cost for each CBP bit

Definition at line 72 of file rdoq_cabac.c.

References macroblock::p_slice, and slice::tex_ctx.

Referenced by estRunLevel_CABAC().

int est_exp_golomb_encode_eq_prob ( unsigned int  symbol  ) 

estimate exp golomb bit cost

Definition at line 257 of file rdoq_cabac.c.

Referenced by est_unary_exp_golomb_level_encode().

static void est_significance_map ( Macroblock currMB,
int  type 
) [static]

estimate CABAC bit cost for significant coefficient map

Definition at line 92 of file rdoq_cabac.c.

References macroblock::p_slice, and slice::tex_ctx.

Referenced by estRunLevel_CABAC().

static void est_significant_coefficients ( Macroblock currMB,
int  type 
) [static]

estimate bit cost of significant coefficient

Definition at line 132 of file rdoq_cabac.c.

References macroblock::p_slice, and slice::tex_ctx.

Referenced by estRunLevel_CABAC().

static int est_unary_exp_golomb_level_encode ( Macroblock currMB,
unsigned int  symbol,
int  ctx,
int  type 
) [static]

estimate unary exp golomb bit cost

Definition at line 164 of file rdoq_cabac.c.

References est_exp_golomb_encode_eq_prob(), and macroblock::p_slice.

Referenced by est_writeRunLevel_CABAC().

Here is the call graph for this function:

int est_write_and_store_CBP_block_bit ( Macroblock currMB,
int  type 
)

estimate CABAC CBP bits

Definition at line 300 of file rdoq_cabac.c.

References get4x4Neighbour(), img_par::mb_data, macroblock::mb_type, macroblock::p_Img, macroblock::p_slice, macroblock::subblock_x, macroblock::subblock_y, and YUV444.

Referenced by rdoq_4x4_CABAC(), rdoq_ac4x4_CABAC(), rdoq_dc_CABAC(), and rdoq_dc_cr_CABAC().

Here is the call graph for this function:

void est_writeRunLevel_CABAC ( Macroblock currMB,
levelDataStruct  levelData[],
int  levelTabMin[],
int  type,
double  lambda,
int  kInit,
int  kStop,
int  noCoeff,
int  estCBP 
)

Rate distortion optimized trellis quantization.

Definition at line 438 of file rdoq_cabac.c.

References est_unary_exp_golomb_level_encode(), macroblock::p_Img, and macroblock::p_slice.

Referenced by rdoq_4x4_CABAC(), rdoq_8x8_CABAC(), rdoq_ac4x4_CABAC(), rdoq_dc_CABAC(), and rdoq_dc_cr_CABAC().

Here is the call graph for this function:

void estRunLevel_CABAC ( Macroblock currMB,
int  context 
)

estimate bit cost for CBP, significant map and significant coefficients

Definition at line 284 of file rdoq_cabac.c.

References est_CBP_block_bit(), est_significance_map(), and est_significant_coefficients().

Here is the call graph for this function:

int init_trellis_data_4x4_CABAC ( Macroblock currMB,
int **  tblock,
int  block_x,
int  qp_per,
int  qp_rem,
LevelQuantParams **  q_params_4x4,
const byte p_scan,
levelDataStruct *  dataLevel,
int *  kStart,
int *  kStop,
int  type 
)

Initialize levelData.

Definition at line 605 of file rdoq_cabac.c.

References macroblock::p_slice.

Referenced by rdoq_4x4_CABAC(), and rdoq_ac4x4_CABAC().

int init_trellis_data_DC_CABAC ( Macroblock currMB,
int **  tblock,
int  qp_per,
int  qp_rem,
LevelQuantParams *  q_params_4x4,
const byte p_scan,
levelDataStruct *  dataLevel,
int *  kStart,
int *  kStop 
)

Initialize levelData for Luma DC.

Definition at line 774 of file rdoq_cabac.c.

References macroblock::p_slice.

Referenced by rdoq_dc_CABAC().


Variable Documentation

const int entropyBits[128] [static]

Initial value:

 
{
     895,    943,    994,   1048,   1105,   1165,   1228,   1294, 
    1364,   1439,   1517,   1599,   1686,   1778,   1875,   1978, 
    2086,   2200,   2321,   2448,   2583,   2725,   2876,   3034, 
    3202,   3380,   3568,   3767,   3977,   4199,   4435,   4684, 
    4948,   5228,   5525,   5840,   6173,   6527,   6903,   7303, 
    7727,   8178,   8658,   9169,   9714,  10294,  10914,  11575, 
   12282,  13038,  13849,  14717,  15650,  16653,  17734,  18899, 
   20159,  21523,  23005,  24617,  26378,  28306,  30426,  32768, 
   32768,  35232,  37696,  40159,  42623,  45087,  47551,  50015, 
   52479,  54942,  57406,  59870,  62334,  64798,  67262,  69725, 
   72189,  74653,  77117,  79581,  82044,  84508,  86972,  89436, 
   91900,  94363,  96827,  99291, 101755, 104219, 106683, 109146, 
  111610, 114074, 116538, 119002, 121465, 123929, 126393, 128857, 
  131321, 133785, 136248, 138712, 141176, 143640, 146104, 148568, 
  151031, 153495, 155959, 158423, 160887, 163351, 165814, 168278, 
  170742, 173207, 175669, 178134, 180598, 183061, 185525, 187989
}

Definition at line 23 of file rdoq_cabac.c.


Documentation generated with DoxyGen