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



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


  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值