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

📄 ratectl.h

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

/*!
 ***************************************************************************
 * \file
 *    ratectl.h
 *
 * \author
 *    Zhengguo LI
 *
 * \date
 *    14 Jan 2003
 *
 * \brief
 *    Headerfile for rate control
 **************************************************************************
 */

#ifndef _RATE_CTL_H_
#define _RATE_CTL_H_

#include "rc_quadratic.h"

/* generic rate control variables */
typedef struct {
  // RC flags
  int   TopFieldFlag;
  int   FieldControl;
  int   FieldFrame;
  int   NoGranularFieldRC;
  // bits stats
  int   NumberofHeaderBits;
  int   NumberofTextureBits;
  int   NumberofBasicUnitHeaderBits;
  int   NumberofBasicUnitTextureBits;
  // frame stats
  int   NumberofGOP;
  int   NumberofCodedBFrame;  
  // MAD stats
  int64 TotalMADBasicUnit;
  int   *MADofMB;
  // buffer and budget
  int64 CurrentBufferFullness; //LIZG 25/10/2002
  int64 RemainingBits;
  // bit allocations for RC_MODE_3
  int   RCPSliceBits;
  int   RCISliceBits;
  int   RCBSliceBits[RC_MAX_TEMPORAL_LEVELS];
  int   temporal_levels;
  int   hierNb[RC_MAX_TEMPORAL_LEVELS];
  int   NPSlice;
  int   NISlice;
} rc_generic;

// macroblock activity
int    diffy[16][16];

// generic functions
int    Qstep2QP          ( double Qstep );
double QP2Qstep          ( int QP );
int    ComputeMBMAD      ( void );
double ComputeFrameMAD   ( void );
void   rc_store_mad      (Macroblock *currMB);
void   update_qp_cbp     (Macroblock *currMB, short best_mode);
void   update_qp_cbp_tmp (Macroblock *currMB, int cbp, int best_mode);

// rate control functions
// init/copy
void  rc_alloc_generic           ( rc_generic **prc );
void  rc_free_generic            ( rc_generic **prc );
void  rc_copy_generic            ( rc_generic *dst, rc_generic *src );
void  rc_init_gop_params         (void);
void  rc_init_frame              (int FrameNumberInFile);
void  rc_init_sequence           (void);
void  rc_store_slice_header_bits (int len);


// rate control CURRENT pointers
rc_generic   *generic_RC;
// rate control object pointers for RDPictureDecision buffering...
rc_generic   *generic_RC_init, *generic_RC_best;


#endif

⌨️ 快捷键说明

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