rdoq_cavlc.c File Reference

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

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

Include dependency graph for rdoq_cavlc.c:

Go to the source code of this file.

Functions

int estSyntaxElement_Level_VLC1 (SyntaxElement *se)
int estSyntaxElement_Level_VLCN (SyntaxElement *se, int vlc)
int cmp (const void *arg1, const void *arg2)
int est_CAVLC_bits (ImageParameters *p_Img, int level_to_enc[16], int sign_to_enc[16], int nnz, int block_type)
void est_RunLevel_CAVLC (Macroblock *currMB, levelDataStruct *levelData, int *levelTrellis, int block_type, int b8, int b4, int coeff_num, double lambda)
void init_trellis_data_4x4_CAVLC (Macroblock *currMB, int **tblock, int block_x, int qp_per, int qp_rem, LevelQuantParams **q_params_4x4, const byte *p_scan, levelDataStruct *dataLevel, int type)
void init_trellis_data_DC_CAVLC (Macroblock *currMB, int **tblock, int qp_per, int qp_rem, LevelQuantParams *q_params_4x4, const byte *p_scan, levelDataStruct *dataLevel)
void init_trellis_data_8x8_CAVLC (Macroblock *currMB, int **tblock, int block_x, int qp_per, int qp_rem, LevelQuantParams **q_params_8x8, const byte *p_scan, levelDataStruct levelData[4][16])


Detailed Description

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

Definition in file rdoq_cavlc.c.


Function Documentation

int est_CAVLC_bits ( ImageParameters p_Img,
int  level_to_enc[16],
int  sign_to_enc[16],
int  nnz,
int  block_type 
)

estimate CAVLC bits

Definition at line 92 of file rdoq_cavlc.c.

References estSyntaxElement_Level_VLC1(), estSyntaxElement_Level_VLCN(), syntaxelement::len, syntaxelement::value1, and syntaxelement::value2.

Referenced by est_RunLevel_CAVLC().

Here is the call graph for this function:

void est_RunLevel_CAVLC ( Macroblock currMB,
levelDataStruct *  levelData,
int *  levelTrellis,
int  block_type,
int  b8,
int  b4,
int  coeff_num,
double  lambda 
)

estimate run and level for CAVLC

Definition at line 385 of file rdoq_cavlc.c.

References est_CAVLC_bits(), img_par::nz_coeff, macroblock::p_Img, predict_nnz(), predict_nnz_chroma(), macroblock::subblock_x, and macroblock::subblock_y.

Referenced by rdoq_4x4_CAVLC(), rdoq_8x8_CAVLC(), rdoq_ac4x4_CAVLC(), rdoq_dc_CAVLC(), and rdoq_dc_cr_CAVLC().

Here is the call graph for this function:

int estSyntaxElement_Level_VLC1 ( SyntaxElement se  ) 

estimate VLC for Coeff Level

Definition at line 29 of file rdoq_cavlc.c.

References syntaxelement::len, and syntaxelement::value1.

Referenced by est_CAVLC_bits().

int estSyntaxElement_Level_VLCN ( SyntaxElement se,
int  vlc 
)

estimate VLC for Coeff Level

Definition at line 61 of file rdoq_cavlc.c.

References syntaxelement::len, and syntaxelement::value1.

Referenced by est_CAVLC_bits().

void init_trellis_data_4x4_CAVLC ( Macroblock currMB,
int **  tblock,
int  block_x,
int  qp_per,
int  qp_rem,
LevelQuantParams **  q_params_4x4,
const byte p_scan,
levelDataStruct *  dataLevel,
int  type 
)

Initialize levelData.

Definition at line 482 of file rdoq_cavlc.c.

References macroblock::p_slice.

Referenced by rdoq_4x4_CAVLC(), and rdoq_ac4x4_CAVLC().

void init_trellis_data_8x8_CAVLC ( Macroblock currMB,
int **  tblock,
int  block_x,
int  qp_per,
int  qp_rem,
LevelQuantParams **  q_params_8x8,
const byte p_scan,
levelDataStruct  levelData[4][16] 
)

Initialize levelData.

Definition at line 644 of file rdoq_cavlc.c.

References macroblock::p_slice.

Referenced by rdoq_8x8_CAVLC().

void init_trellis_data_DC_CAVLC ( Macroblock currMB,
int **  tblock,
int  qp_per,
int  qp_rem,
LevelQuantParams *  q_params_4x4,
const byte p_scan,
levelDataStruct *  dataLevel 
)

Initialize levelData for Luma DC.

Definition at line 565 of file rdoq_cavlc.c.

References macroblock::p_slice.

Referenced by rdoq_dc_CAVLC().


Documentation generated with DoxyGen