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

📄 rdopt.h

📁 H.264编码实现
💻 H
字号:
/*!
 ***************************************************************************
 * \file
 *    rdopt.h
 *
 * \author
 *    Alexis Michael Tourapis
 *
 * \date
 *    2 January 2008
 *
 * \brief
 *    Headerfile for RDO
 **************************************************************************
 */

#ifndef _RDO_H_
#define _RDO_H_

extern int   ****cofAC, ****cofAC8x8;        // [8x8block][4x4block][level/run][scan_pos]
extern int   ***cofDC;                       // [yuv][level/run][scan_pos]
extern int   **cofAC4x4, ****cofAC4x4intern; // [level/run][scan_pos]
extern int   cbp, cbp8x8, cnt_nonz_8x8;
extern int   cbp_blk8x8;
extern char  l0_refframe[4][4], l1_refframe[4][4];
extern short b8mode[4], b8pdir[4];

//CSptr cs_mb, cs_b8, cs_cm, cs_ib8, cs_ib4;
extern int   best_c_imode;
extern int   best_i16offset;
extern short best_mode;

//mixed transform sizes definitions
extern int   luma_transform_size_8x8_flag;

extern short all_mv8x8[2][2][4][4][2];       //[8x8_data/temp_data][LIST][block_x][block_y][MVx/MVy]
extern short pred_mv8x8[2][2][4][4][2];

extern int   ****cofAC8x8ts[3];        // [plane][8x8block][4x4block][level/run][scan_pos]
extern int   ****cofAC8x8CbCr[2];
extern int   **cofAC4x4CbCr[2];
extern int   ****cofAC4x4CbCrintern[2];

extern int64    cbp_blk8_8x8ts;
extern int      cbp8_8x8ts;
extern int      cost8_8x8ts;
extern int      cnt_nonz8_8x8ts;

// adaptive langrangian parameters
extern double mb16x16_cost;
extern double lambda_mf_factor;

int (*Mode_Decision_for_4x4IntraBlocks) (Macroblock *currMB, int  b8,  int  b4,  double  lambda,  double*  min_cost, int cr_cbp[3], int is_cavlc);
double RDCost_for_4x4IntraBlocks (Macroblock *currMB, int* nonzero, int b8, int b4, int ipmode, double lambda, int mostProbableMode, int c_nzCbCr[3], int is_cavlc);
int valid_intra_mode(int ipmode);
void compute_comp_cost(imgpel **cur_img, imgpel prd_img[16][16], int pic_opix_x, int *cost);
void generate_pred_error(imgpel **cur_img, imgpel prd_img[16][16], imgpel cur_prd[16][16], 
                         int m7[16][16], int pic_opix_x, int block_x);
extern void SetMotionVectorPredictor (Macroblock *currMB, short  pmv[2], char   **refPic,
                         short  ***tmp_mv, short  ref_frame,
                         int    list,      int mb_x, int mb_y, 
                         int    blockshape_x, int blockshape_y);
extern void UpdateMotionVectorPredictor(Macroblock* currMB, int mb_type) ;
                         
//============= rate-distortion optimization ===================
void  clear_rdopt (InputParameters *params);
void  init_rdopt  (InputParameters *params);

#endif

⌨️ 快捷键说明

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