編碼樹單元

编码树单元（英语：Coding Tree Unit，缩写：CTU）是H.265/高效率视讯编码（High Efficiency Video Coding, HEVC）的处理单元。此处理单元类似H.264/高阶视讯编码（Advanced Video Coding, AVC）中的宏区块（Macroblock）。编码树单元的大小可以从16x16到64x64，使用比H.264更大的处理单元得到更好的压缩效果。

介绍

输入影像进行编码前会先切割成相等大小的编码树单元再输入编码器进行编码，接着详细介绍编码树单元的相关概念。首先解释单元（Unit）与区块（Block），区块是真正储存资料的地方，许多区块加上语法元素组成一个单元。输入影像采用YUV的格式，所以一个编码树单元是由一个亮度（Luma）编码树区块（Coding Tree Block，CTB）、两个色度（Chroma）编码树区块及语法元素（Syntax Element）。由于输入影像采用4:2:0的取样方式，因此亮度编码树区块的大小为色度编码树区块的四倍，如图一所示。编码树单元与AVC的宏区块最大的不同之为编码树单元可以变得更大且大小可以调整，而宏区块的大小固定为16。HEVC的编码树单元支援更大的大小可以让编码器对高分辨率的影像编码时更有效率。编码树单元的大小定义在序列参数集（Sequence Parameter Set, SPS）内，高效率视讯编码内支援的大小为LxL，其中L=16、32或64。除了编码树单元，高效率视讯编码（HEVC）中还有另外三种单元分别为编码单元（Coding Unit, CU）、预测单元（Prediction Unit, PU）及转换单元（Transform Unit, TU）。下面小节将详细介绍另外三种单元以及所有单元间的关系。

基本介绍

编码树单元（CTU）可以包含有一个编码单元（Coding Unit, CU）或是切割成多个较小的编码单元，如图二（左）所示。高效率视讯编码利用编码单元指出这个单元是利用画面内预测（Intra Prediction）或是画面间预测（Inter Prediction）。这些编码单元可以很方便地利用四分树（Quadtree）的方式呈现，如图二（右）所示。四分树是一种递回结构，四分数上的数字表示这个节点是否继续做分割，若此节点会继续分割则为1，若不继续分割则为0。由图二可看出节点上的数字为0时，此节点为编码单元。换句话说，在编码树内叶子节点（Leaf Node）为编码单元。编码树的顺序如图三左的虚线所示，在编码单元上采用Z-scan的方式，对编码树来说即为深度优先遍历。编码单元的大小支援2Nx2N，其中N=4、8、16或32，因此高效率视讯编码（HEVC）的四分树最高深度（Depth）为4。
下面为编码单元的简单语法:
coding-tree(x0, y0, log2CbSize, cbDepth){
    split-coding-unit-flag[x0][y0]
    if(split-coding-unit-flag[x0][y0]){
        coding-tree(x0, y0, log2CbSize -1, cbDepth + 1);
        coding-tree(x1, y0, log2CbSize -1, cbDepth + 1);
        coding-tree(x0, y1, log2CbSize -1, cbDepth + 1);
        coding-tree(x1, y1, log2CbSize -1, cbDepth + 1);
    }
    else {
        coding-unit(x0,y0, log2CbSize);
    }}

基本介绍

转换单元是呈现残量（Residual）或是转换系数（Transform Coefficients）的区块，这个区块主要是做整数转换（Integer Transform）或是量化（Quantization）。转换单元（Transform Unit, TU）与预测单元（PU）相似，因为编码单元可以只有一个转换单元或是由许多个较小的转换单元所组成。不同之处为转换单元可以递回地往下继续分割，也是用四分树（Quadtree）的方式储存，而预测单元只能在编码单元做分割一次。图五显示出编码单元与转换单元的关系，实线为编码单元，虚线为转换单元，虚线的四分树会长在实线四分树的叶子节点，这是因为只有实线四分树的叶子节点是编码单元。转换单元内只有支援方形的分割方割（Square Partition），其大小为64、32、16、8、4。

残量四分树

转换单元的编码树可以称为转换树（Transform Tree）或是残量四分树（Residual Quadtree, RQT）。残量四分树可以分成两类，分别为方形残量四分树（Square Residual Quadtree, SRQT）或是非方形残量四分树（Nonsquare Residual Quadtree, NSRQT），但是在最后的草案中非方形残量四分树（NSRQT）被移除掉。图六为非方形残量四分树的切割方式。

限制

在相同编码单元（CU）内的预测单元（PU）与转换单元（TU），转换单元的大小可以比预测单元的大小还要来的大，在同一个编码单元内不同预测单元的残量（Residuals）可以一起被转换。换句话说，当编码单元的大小等于转换单元的大小时，转换是对整个编码单元去做转换而不是对单一的预测单元一个一个做转换。而这种情况只会出现在画面间编码单元（Inter Coded CU）中，因为画面内编码单元（Intra Coded CU）总是会造成转换单元（TU）分割。