HM代码TEncCU.cpp中,CompressCtu函数主要功能是对一个CTU进行压缩,在该函数中调用);函数对CTU进行具体的划分工作,该函数执行完后其相应的信息便被存储在其参数中xCompressCU( m_ppcBestCU[0], m_ppcTempCU[0], 0 DEBUG_STRING_PASS_INTO(sDebug) ),m_ppcBestCU[0]表示当前最佳,m_ppcTempCU[0]表示正在进行计算的当前cu,所以可以从m_ppcBestCU[0]中提取相应的CU及PU信息。HEVC中信息均是以4*4大小被存储的,在一个CTU中每个4*4块又一zscan方式被存储,所以在读取时必须进行转换。下边是代码:
//PU分割模式信息统计(by lyy)
UInt print8CUOrder[64] = {
0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40,