📄 tm5rc.hpp
字号:
/* header file for TM-5 rate control *//* MPEG-2 Video TM-5 rate control For the purpose of comparing MPEG-4 VM with MPEG-2 TM-5 27.03.97 By X. Chen in G.I. * 16.03.99 David Ruhoff: conversion to microsoft-vfdis-v10-990124 */#ifndef __TM5RC_H_#define __TM5RC_H_#define RC_MPEG4 1#define RC_TM5 3#include "basic.hpp"Class CVOPU8YUVBA;Class CVideoObjectEncoder;Class TM5rc{public: TM5rc () { Xi = Xp = Xb = r_tm5 = d0i = d0p = d0b = 0; avg_act = 0.0; mbact = NULL; R_tm5 = T_tm5 = d_tm5 = 0; actsum = 0.0; Ni = Np = Nb = S_tm5 = Q_tm5 = prev_mquant = 0; mb_width = mb_height = mquant = bitrate = 0; pic_rate = 0.0; rc_type = 0; Qfile = NULL; linectr = 0; }; ~TM5rc () {}; void tm5rc_init_seq( char *pchQname, UInt rc_type, AlphaUsage fAUsage, UInt uiWidth, UInt uiHeight, UInt uiBitRate, Double dFrameRate ); void tm5rc_init_GOP(Int np, Int nb); void tm5rc_init_pict(VOPpredType vopPredType, const PixelC* ppxlcOrigY, Int row_size, Int iNumMBX, Int iNumMBY); Int tm5rc_start_mb(); Int tm5rc_calc_mquant(Int iMBindex, UInt uiBitsUsed); void tm5rc_update_pict(VOPpredType vopPredType, Int iVOPtotalBits);private: void tm5_calc_actj(const PixelC* ppxlcOrigY, Int row_size, Int iNumMBX, Int iNumMBY); Double tm5_var_sblk(const PixelC *p, Int lx); Int Xi; /* I-picture complexity */ Int Xp; /* P-picture complexity */ Int Xb; /* B-picture complexity */ Int r_tm5; /* Reaction parameter */ Int d0i; /* I-pic virtual buffer occupancy */ Int d0p; /* P-pic virtual buffer occupancy */ Int d0b; /* B-pic virtual buffer occupancy */ Double avg_act; /* Ave activity (of last picture) */ Double *mbact; /* Activity of each macroblock */ Int R_tm5; Int T_tm5; Int d_tm5; /* buffer occupancy accumulator */ Double actsum; /* Cumulative sum of activities */ Int Ni; /* Nbr I-pics reamining in GOP */ Int Np; /* Nbr P-pics remaining in GOP */ Int Nb; /* Nbr B-pics remaining in GOP */ Int S_tm5; Int Q_tm5; /* Sum of quantizer value (for activity calc) */ Int prev_mquant;/* Previous quantizer */ Int mb_width; /* Nbr MBs in horiz direction */ Int mb_height; /* Nbr MBs in vert direction */ Int mquant; /* running quantizer value */ Int bitrate; /* Bit rate (bits/second) */ Double pic_rate; /* Pictures per second */ Int rc_type; /* Rate control type code */ FILE *Qfile; /* Quantizer file */ Int linectr; /* numbers on current Qfile line */};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -