这篇文章转载于HEVC中的CTU、CU、CTB、CB、PB和TB分别是什么_gaishi_hero的博客-CSDN博客_cu 和cb,写得很好,所以翻译一下。

看到一篇文章解释CTU、CU、CTB、CB、PB和TB解释的很清晰,转发分享一下,原文需要梯子。

HEVC,又被称为H.265或者MPEG-H第二部分(ISO/IEC 23008-2),马上就要来了。有个很好的综述发表了。参考模型实现也有了。JCT-VC文档管理系统可以看到实时的讨论。在2013年一月份估计可以看到最后的国际标准的最终稿(Final Draft International Standard, FDIS)。

然后,和以前一样,标准的书写作者还是喜欢用神秘的缩写词。可能第一个让读者沮丧的缩写词就是块结构的名词定义,即CTB, CU, CTB, CB, PB和TB。

他们基本上就是替代了之前标准里MB宏块。因为不像10年前了,我们现在要处理像素大得多的图像。4K已经可以落地了,8K都开始讨论了。移动设备的像素都比HD要高了,比如2048x1530。我们需要更大的宏块更高效地编码运动向量。另外,有一些细节还很重要,我们还想用4x4的粒度预测编码这些细节。

那我们怎么高效地支持范围这么宽的宏块大小呢?这就是HEVC需要用这些缩写词解决的挑战。

让我们从最高层的概念说起。比如我们有一个图像要压缩,首先HEVC把这个图像分成CTUs(数编码单元Coding Tree Unit)。

CTU的长和宽都在SPS视频参数集里指定了,就是说一个视频序列里所有的CTUs都有同样的大小: 64×64, 32×32, or 16×16.

这里我们需要理解一个很重要的命名规则。在HEVC标准里,如果有些东西被命名成xxxUnit,就表示它是一个编码逻辑单元,这个单元就被编码进HEVC的比特流里。另外,如果有些东西被命名成xxxBlock,就表示它是视频图像缓存中的一部分,是实际过程要处理的。

所以,CTU-Coding Tree Unit是一个逻辑单元,它实际上包含三个块(blocks),也就是亮度luman(Y)和两个色度Chroma(Cb和Cr),和相关的语法元素。每个块都被称为CTB(Coding Tree Block,树编码块)。

每个CTB实际上都和CTU有相同的大小 – 64×64, 32×32, or 16×16. 但是对于视频图像中的不同地方,同一个大小的CTB可能不好决定用帧内预测还是帧间预测。因此每个CTB又可以被分为多个CB(编码块,Coding Blocks),每个CB再来决定用什么预测类型。比如一些CTB被分为16x16大小的CB,但是其他的被分为8x8 CBs. HEVC最小支持8x8的CB,最大到CTB(所以CB可以是64×64, 32×32, or 16×16,8x8)。

下面这张图解释了64x64 CTB是怎么分为CBs的。

CB就是决定用帧内预测还是帧间预测的地方。准确地说,预测类型是编码在CU里。CU包含三个CB(Y, Cb, and Cr) 和相应的语法元素。

CB已经很适合来决定编码类型了,但是对于帧间预测的运动向量或者帧内预测的预测方向,CB的大小还是太大了。比如下图中,一个非常小的物体比如雪花,可能是在8x8块的中间移动 - 所以在CB的不同部分,我们需要用不同的MV。

所以,PB就被引入了。一个CB可以根据时域或空间预测分成多个PBs。

一旦编码预测做好了,我们就需要编码残差(也就是预测图像和实际图像的插值),用DCT类型的变换。再次,CB可能太大了,因为CB可能包含细节丰富的高频部分,也可能包含平坦的低频部分。因此,CB又可以被分为TBs(Transform Block)。注意TB不需要和PB对齐(帧内预测需要,帧间不需要)。一次变换有可能会跨越多个PB,这个也合理,反过来也是。

现在我们来看一下针对这些定义的标准说明。现在他们说得通了。

CTU (coding tree unit): 对于有三个分量的彩色图像,由一个亮度树编码块和两个色度树编码块组成;对于有一个分量的单色图像,由一个树编码单元组成。包含多个CTB和语法结构。一个条带(slice)分成CTU是分区。

CTB (coding tree block): 一个NxN的块。是CTU的一个分量。

CB (coding block): 一个NxN的块,是CU的一个分量。

CU (coding unit): 是从CTU划分的。定义类似。包含多个CB和语法结构。

PB (prediction block): 一个MxN的块,用于决定预测模式和运动向量。从CU划分。

TB (transform block): 一个MxN的块,用于做变换。从CU划分。

总结:

1. 从h264的宏块MB到h265的CU,是为了支持更宽范围的图像大小。因为h264对4k支持就不行,因为MB限制16x16,压缩效率太低。所以h265的CU的范围为8x8到64x64,可以支持到8k。可以预估一下,将来图像大小越大,这个范围会进一步增大。

2. h265又新增PB和TB,是为了解决h264的问题,也就是预测块和变换块必须是一个,有时候预测块很小变换就必须小,压缩效率肯定就不高,这里h265分开之后更灵活了,但是也更复杂了。据说VVC已经去掉了。。。

【转载/翻译】HEVC中的CTU、CU、CTB、CB、PB和TB分别是什么相关推荐

  1. 浅谈HEVC中的CTU CU PU TU

    从今天开始会陆续写一些对HEVC的认识的文章,小弟初来乍到,希望大家能够多多指点. 这两天看了block partitioning structure in the HEVC standard这篇论文 ...

  2. HEVC中的CTU、CU、CTB、CB、PB和TB分别是什么

    看到一篇文章解释CTU.CU.CTB.CB.PB和TB解释的很清晰,转发分享一下,原文需要梯子. HEVC, also known as H.265 or MPEG-H part 2(ISO/IEC ...

  3. H265/HEVC名词解释-- CTU,CTB,CU,CB,TU,PU,TB,PB,LCU,Slice,Tile,Chroma,Luma,I帧,B帧,P帧

    H265/HEVC名词解释 学H265的时候,一堆名词 CTU,CTB,CU,CB,TU,PU,TB,PB,LCU,Slice,Tile,Chroma,Luma,I帧,B帧,P帧,绕的头疼,写篇博客汇 ...

  4. HEVC标准中的图像分割(2),slice,tile,CTU,CU,PU,TU等

    接着来说HEVC的图像分割. HEVC的标准中有这么一段话,翻译过来就是: 图像分成分量(Y,Cb,Cr). 分量分成coding tree blocks 图像分成tile列 图像分成tile行 Ti ...

  5. 【HEVC简介】CTU、CU、PU、TU结构

    参考文献:见<High Efficiency Video Coding (HEVC)>Block Structures and Parallelism Features in HEVC章节 ...

  6. HEVC中打印CU划分

    转载,原文地址:http://blog.csdn.net/minbiao880224/article/details/17685935,结合我的第一篇HM编码的使用,自己完全可以理解他的MATLAB代 ...

  7. HEVC中出现的名词解释

    PSNR:Peak signal to Noise Ratio峰值信噪比 ME:montion estimation运动估计 MV:motion vector运动向量 MC:motion compen ...

  8. HEVC学习之CTU划分

    一,CTU相关概念 H.265将图像划分为"树编码单元(coding tree units, CTU)",而不是像H.264那样的16×16的宏块.根据不同的编码设置,树编码块的尺 ...

  9. HEVC中的Merge Mode——x265代码getInterMergeCandidates()函数解析

    HEVC中的mv预测技术主要分为两种:AMVP mode 和Merge mode,这里就主要来聊聊Merge mode. 由于很多时候当前的编码CU与相邻已经完成编码的CU具有相同的mv,因此从相邻的 ...

最新文章

  1. java带参数的方法笔记_具有Java参数的方法的类声明
  2. java thread 无法执行_哪位大神帮我讲一下这段代码,为什么线程不能继续执行
  3. ecshop去掉“云服务中心”或者是“模板堂知识库”
  4. mysql基本语句集合
  5. 栈----迷宫(Maze)
  6. IOS热更新-JSPatch实现原理+Patch现场恢复
  7. 网络技巧:无线路由器越用越慢的解决方法
  8. 第五十三天 how can I 坚持
  9. 数独动态解题演示小网站 - 基于Vue/pixi.js/Flask
  10. 12、Linux一级子目录学习
  11. flutter初体验之基础控件知识
  12. pytest文档4-测试用例setup和teardown
  13. 拍摄视频,真的帧率越高越好吗?
  14. 动态域名解析,快解析有哪些优势?
  15. 如何通过银行卡号 判断归属银行
  16. 当人工智能敲响了门 我们将迎来怎样的世界?/智库2861
  17. 用户需求和产品需求的采集、分析、筛选和管理
  18. Mosquitto 安装指南
  19. Pycharm Setting Python Interpreter
  20. 基于PT8.2柔性传感器使用

热门文章

  1. VERSAL ACAP在线升级
  2. 游戏制作入门小知识------3ds Max
  3. 计算机飞行计划颠簸指数,关于颠簸
  4. atom运行mysql_atom下载安装及使用教程
  5. 关于操作数据库时报的java.sql.SQLException: ORA-00904:标识符无效 的问题
  6. HashSpace:探索无国界社交生态链的价值潜力
  7. 函数式编程 --- 高阶函数
  8. 论文翻译-Densely Connected Convolutional Networks
  9. JTextField问题
  10. 插值、平稳假设、本征假设、变异函数、基台、块金、克里格、线性无偏最优…地学计算概念及公式推导