⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quant4x4.h

📁 H.264编码实现
💻 H
字号:

/*!
 ************************************************************************
 * \file quant4x4.h
 *
 * \brief
 *    Quantization process header file
 *
 * \author
 *    Limin Liu                       <lliu@dolby.com>
 *    Alexis Michael Tourapis         <alexismt@ieee.org>                
 *
 ************************************************************************
 */

#ifndef _QUANT4x4_H_
#define _QUANT4x4_H_

void init_quant_4x4(InputParameters *params, ImageParameters *img, Slice *currSlice);

int quant_4x4_normal (int (*tblock)[16], int block_y, int block_x, int qp, 
                      int*  ACLevel, int*  ACRun, 
                      int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                      int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int is_calvc);

int quant_4x4_around (int (*tblock)[16], int block_y, int block_x, int qp, 
                      int*  ACLevel, int*  ACRun, 
                      int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                      int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int is_calvc);

int quant_4x4_trellis(int (*tblock)[16], int block_y, int block_x, int qp,
                      int*  ACLevel, int*  ACRun, 
                      int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                      int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int is_calvc);

int (*quant_4x4)     (int (*tblock)[16], int block_y, int block_x, int qp, 
                      int*  ACLevel, int*  ACRun, 
                      int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                      int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int is_calvc);

int quant_dc4x4_normal (int (*tblock)[4], int qp, int* DCLevel, int* DCRun, 
                        int levelscale, int invlevelscale, int leveloffset, const byte (*pos_scan)[2], int is_calvc);

int quant_dc4x4_around (int (*tblock)[4], int qp, int* DCLevel, int* DCRun, 
                        int levelscale, int invlevelscale, int leveloffset, const byte (*pos_scan)[2], int is_calvc);

int quant_dc4x4_trellis(int (*tblock)[4], int qp, int* DCLevel, int* DCRun, 
                        int levelscale, int invlevelscale, int leveloffset, const byte (*pos_scan)[2], int is_calvc);

int (*quant_dc4x4)     (int (*tblock)[4], int qp, int*  DCLevel, int*  DCRun, 
                        int levelscale, int invlevelscale, int leveloffset, const byte (*pos_scan)[2], int is_calvc);

int quant_ac4x4_normal (int (*tblock)[16], int block_y, int block_x, int qp,                 
                        int*  ACLevel, int*  ACRun, 
                        int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                        int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int type, int is_calvc);

int quant_ac4x4_around (int (*tblock)[16], int block_y, int block_x, int qp,                 
                        int*  ACLevel, int*  ACRun, 
                        int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                        int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int type, int is_calvc);

int quant_ac4x4_trellis(int (*tblock)[16], int block_y, int block_x, int qp,                
                        int*  ACLevel, int*  ACRun, 
                        int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                        int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int type, int is_calvc);

int (*quant_ac4x4)     (int (*tblock)[16], int block_y, int block_x, int qp,                 
                        int*  ACLevel, int*  ACRun, 
                        int **fadjust4x4, int **levelscale, int **invlevelscale, int **leveloffset,
                        int *coeff_cost, const byte (*pos_scan)[2], const byte *c_cost, int type, int is_calvc);

void rdoq_4x4_CAVLC    (int (*tblock)[16], int block_y, int block_x, int qp_per, int qp_rem, 
                        int **levelscale, int **leveloffset, const byte (*pos_scan)[2], int levelTrellis[16]);

void rdoq_4x4_CABAC    (int (*tblock)[16], int block_y, int block_x, int qp_per, int qp_rem, 
                        int **levelscale, int **leveloffset, const byte (*pos_scan)[2], int levelTrellis[16]);

void (*rdoq_4x4)       (int (*tblock)[16], int block_y, int block_x, int qp_per, int qp_rem, 
                        int **levelscale, int **leveloffset, const byte (*pos_scan)[2], int levelTrellis[16]);

void rdoq_dc_CAVLC     (int (*tblock)[4], int qp_per, int qp_rem, int levelscale, int leveloffset, 
                        const byte (*pos_scan)[2], int levelTrellis[16], int type);

void rdoq_dc_CABAC     (int (*tblock)[4], int qp_per, int qp_rem, int levelscale, int leveloffset, 
                        const byte (*pos_scan)[2], int levelTrellis[16], int type);

void (*rdoq_dc)        (int (*tblock)[4], int qp_per, int qp_rem, int levelscale, int leveloffset, 
                        const byte (*pos_scan)[2], int levelTrellis[16], int type);

void rdoq_ac4x4_CAVLC  (int (*tblock)[16] , int block_y, int block_x, int qp_per, int qp_rem, 
                        int **levelscale, int **leveloffset, const byte (*pos_scan)[2], int levelTrellis[16], int type);

void rdoq_ac4x4_CABAC  (int (*tblock)[16] , int block_y, int block_x, int qp_per, int qp_rem, 
                        int **levelscale, int **leveloffset, const byte (*pos_scan)[2], int levelTrellis[16], int type);

void (*rdoq_ac4x4)     (int (*tblock)[16] , int block_y, int block_x, int qp_per, int qp_rem, 
                        int **levelscale, int **leveloffset, const byte (*pos_scan)[2], int levelTrellis[16], int type);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -