HEVC-SCC中打印CU的深度
HEVC-SCC是HEVC的扩展,用于编码屏幕内容图像,在这里CTU的划分和HEVC一样,都是四叉树划分,和HEVC的编码流程一样。要打印出编码后的CU的深度值,就需要先知道最佳CU的信息保存在哪里。函数 xCompressCU( m_ppcBestCU[0], m_ppcTempCU[0], 0 DEBUG_STRING_PASS_INTO(sDebug) );用来对每个CU进行编码,这个函数执行完之后,最佳CU的信息就保存在m_ppcBestCU[0]。所以就用m_ppcBestCU[0]这个变量来获取CU的深度。将代码写在xCompressCU函数的后面。
ofstream IBCInfo;
TComDataCU* IBCCu = m_ppcBestCU[0];
IBCInfo.open("cudepth.txt", ios::app);
int iCount = 0;
TComSlice* pcSlice = IBCCu->getSlice();
int iWidthInPart = pcSlice->getSPS()->getMaxCUWidth()>>2;
for (UInt iPartitionNum = 0; iPartitionNum < IBCCu->getTotalNumPart(); iPartitionNum++)
{
if ((iCount & (iWidthInPart - 1)) == 0)
IBCInfo << endl;//换行,每行16个
IBCInfo <<(int) IBCCu->getDepth(g_auiRasterToZscan[iPartitionNum]) << " ";
iCount++;
}//这个for循环是打印一个CTU中每个CU的深度
IBCInfo << endl;
IBCInfo.close();
打印一个CTU的结果如下: