HEVC代码中定义了几十种类,这些类的对象一般只实例化一次,在编码过程中都是通过指针来访问实例化的对象。
唯一以类名实例化的对象:cTAppEncTop
main ()
{
TAppEncTop cTAppEncTop;
}
这个对象被建立时,它的所有数据成员也被建立,并实例化(占据存储空间)
class TAppEncTop
{
TEncTop m_cTEncTop
}
而m_cTEncTop这个数据成员,本身作为一个对象,它自己的数据成员也被建立并实例化
class TEncTop : public TEncCfg
{
private:
// picture
Int m_iPOCLast; ///< time index (POC)
Int m_iNumPicRcvd; ///< number of received pictures
UInt m_uiNumAllPicCoded; ///< number of coded pictures
TComList<TComPic*> m_cListPic; ///< dynamic list of pictures
// encoder search
TEncSearch m_cSearch; ///< encoder search class
//TEncEntropy* m_pcEntropyCoder; ///< entropy encoder
TEncCavlc* m_pcCavlcCoder; ///< CAVLC encoder
// coding tool
TComTrQuant m_cTrQuant; ///< transform & quantization class
TComLoopFilter m_cLoopFilter; ///< deblocking filter class
TEncSampleAdaptiveOffset m_cEncSAO; ///< sample adaptive offset class
TEncEntropy m_cEntropyCoder; ///< entropy encoder
TEncCavlc m_cCavlcCoder; ///< CAVLC encoder
TEncSbac m_cSbacCoder; ///< SBAC encoder
TEncBinCABAC m_cBinCoderCABAC; ///< bin coder CABAC
TEncSbac*