HEVC中打印CU划分

转载,原文地址:http://blog.csdn.net/minbiao880224/article/details/17685935,结合我的第一篇HM编码的使用,自己完全可以理解他的MATLAB代码和打印思路,作者原文中给了5张,其实有多少帧最后会出来多少个CU划分图。

相比于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        : 为测试的帧数



这里,给出本人做的一个例子:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章