HEVC 常用之 类TComDataCU分析
来源:互联网 发布:三星clx3305清零软件 编辑:程序博客网 时间:2024/05/21 07:14
为了找到合适的模式或者合适的分割, 基本上都是采用两个TComDataCU来操作, TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU.
相当于两个指针对应两个乒乓buffer, m_ppcBestCU[uiDepth], m_ppcTempCU[uiDepth], 当然每一个uiDepth都有一个对应的BestCU和TempCU的buffer.
class TComDataCU{private: // ------------------------------------------------------- // class pointers // ------------------------------------------------------- TComPic* m_pcPic; ///< picture class pointer TComSlice* m_pcSlice; ///< slice header pointer TComPattern* m_pcPattern; ///< neighbour access class pointer // ------------------------------------------------------- // CU description // ------------------------------------------------------- UInt m_uiCUAddr; ///< CU address in a slice UInt m_uiAbsIdxInLCU; ///< absolute address in a CU. It's Z scan order UInt m_uiCUPelX; ///< CU position in a pixel (X) UInt m_uiCUPelY; ///< CU position in a pixel (Y) UInt m_uiNumPartition; ///< total number of minimum partitions in a CU UChar* m_puhWidth; ///< array of widths UChar* m_puhHeight; ///< array of heights UChar* m_puhDepth; ///< array of depths Int m_unitSize; ///< size of a "minimum partition" // ------------------------------------------------------- // CU data // ------------------------------------------------------- Bool* m_skipFlag; ///< array of skip flags Char* m_pePartSize; ///< array of partition sizes Char* m_pePredMode; ///< array of prediction modes Bool* m_CUTransquantBypass; ///< array of cu_transquant_bypass flags Char* m_phQP; ///< array of QP values UChar* m_puhTrIdx; ///< array of transform indices UChar* m_puhTransformSkip[3];///< array of transform skipping flags UChar* m_puhCbf[3]; ///< array of coded block flags (CBF) TComCUMvField m_acCUMvField[2]; ///< array of motion vectors TCoeff* m_pcTrCoeffY; ///< transformed coefficient buffer (Y) TCoeff* m_pcTrCoeffCb; ///< transformed coefficient buffer (Cb) TCoeff* m_pcTrCoeffCr; ///< transformed coefficient buffer (Cr)#if ADAPTIVE_QP_SELECTION Int* m_pcArlCoeffY; ///< ARL coefficient buffer (Y) Int* m_pcArlCoeffCb; ///< ARL coefficient buffer (Cb) Int* m_pcArlCoeffCr; ///< ARL coefficient buffer (Cr) bool m_ArlCoeffIsAliasedAllocation; ///< ARL coefficient buffer is an alias of the global buffer and must not be free()'d static Int* m_pcGlbArlCoeffY; ///< ARL coefficient buffer (Y) static Int* m_pcGlbArlCoeffCb; ///< ARL coefficient buffer (Cb) static Int* m_pcGlbArlCoeffCr; ///< ARL coefficient buffer (Cr)#endif Pel* m_pcIPCMSampleY; ///< PCM sample buffer (Y) Pel* m_pcIPCMSampleCb; ///< PCM sample buffer (Cb) Pel* m_pcIPCMSampleCr; ///< PCM sample buffer (Cr) Int* m_piSliceSUMap; ///< pointer of slice ID map std::vector<NDBFBlockInfo> m_vNDFBlock; .................. .............}
其实就是HM中该类代码粘了过来。
来源: <http://blog.csdn.net/feixiang_john/article/details/8237160>
原文名:分析HM代码,首先必须把class TComDataCU完全搞明白! 0 0
- HEVC 常用之 类TComDataCU分析
- HEVC帧间预测之二——TComDataCU::xGetColMVP的分析
- HEVC/H265 HM10.0 分析(二)TComDataCU.cpp
- HEVC/H265 HM10.0 分析(二)TComDataCU.cpp .
- HEVC/H265 HM10.0 分析(二)TComDataCU.cpp
- HEVC 常用之 CU、PU、TU分析
- HEVC帧间预测之一——TComDataCU::getInterMergeCandidates函数分析
- 【转载】HEVC帧间预测之一——TComDataCU::getInterMergeCandidates函数分析
- TComDataCU
- HEVC学习之琐事(一):HEVC编码结构分析
- TComDataCU.h等主要类
- HEVC之CU、PU、TU分析
- HEVC之CU、PU、TU分析
- HEVC之CU、PU、TU分析
- HEVC函数分析之TComPattern::initPattern( )
- HEVC函数分析之TComPattern::initAdiPattern()
- HEVC函数分析之TComPattern::fillReferenceSamples()
- HEVC之CU、PU、TU分析
- 暴力-Birthday Cake
- spring mvc 接收json、xml 数据格式,自动解析成对象
- Linux中文件查找方法大全
- getAttribute()方法与getParameter()区别
- Java常见错误列表
- HEVC 常用之 类TComDataCU分析
- Loadrunner参数化策略详解—适合初学者
- 【杂题】 codeforces 448C Painting Fence
- Linux下修改网卡的mac地址
- NYOJ 752 又见回文串
- 第一次当程序员总结
- CF 448C Painting Fence
- Pie(HDU 1969) —— 二分
- Codeforces Div. 2 #256-A. Rewards