相比于H.264,HEVC中特别采用了Coding Unit(CU)的概念。为了查看编码过程中, LCU的最终划分,因此简单做了一个LCU分割划分的查看的代码。虽然做得比较粗糙,但是勉强能用。因为Matlab进行图片显示和操作比较容易,这里用了Matlab。
1、首先,在HEVC的测试代码HM中的函数,加入一段代码,讲LCU划分的信息保存下来。在Void TEncCu::compressCU( TComDataCU*& rpcCU ) 函数中加入
{
.........
xCompressCU( m_ppcBestCU[0], m_ppcTempCU[0], 0 );
// Add the code from here
ofstream DepthInfo;
TComDataCU* DepthCU = m_ppcBestCU[0];
DepthInfo.open("BestDepth.txt", ios::app);
for(UInt iPartitionNum = 0; iPartitionNum < DepthCU->getTotalNumPart(); iPartitionNum++)
{
DepthInfo << DepthCU->getDepth()[iPartitionNum];
}
DepthInfo.close();
}
当运行完HM代码后,就会产生 BestDepth.txt文件。
2、讲BestDepth.txt文件 拷贝到 Matlab的工作目录下, 从以下链接中下载Matlab代码:
http://download.csdn.net/detail/minbiao880224/6789725
Matlab代码其实是一个这样的函数:
function LCU_View(YUV_FileName, LCU_FileName, Width, Height, NumFrame)
YUV_FileName : 为测试序列YUV的路径和文件名,
LCU_FileName: 为BestDepth.txt文件的路径和文件名,
Width : 为测试序列的Width
Height : 为测试序列的Height
NumFrame : 为测试的帧数
这里,给出本人做的五帧的一个例子: