树型结构运动宏块补偿
AVC支持支持大小从4x4到16x16的亮度采样值的运动补偿块以及许多大小在他们之间的选择。每个宏块(16x16采样值)的每个组件可以有4中分割方式,如2-1图:16x16, 16x8, 8x16 or 8x8.每个子区域成为一个宏块分割。如果选择8x8模式,一个宏块的4个8x8宏块分割可以有4种方式进一步分割为图2-2中:8x8, 8x4, 4x8 or 4x4。这些分割和子分割增加了每个宏块内大量的组合方式。这种将宏块分割成不同大小都运动向量子块的方法称为树型结构运动宏块补偿。
blocktree00.png
每个分割或子分割都需要一个单独的运动向量。每个运动向量必须被编码和传输,另外,分割模式的选择也需要编码到压缩流中。如果选择一个大的分割尺寸(如16x16, 16x8, 8x16)意味着一个小的字节流来标识运动向量和分割的类型,然而,在一个高细节的帧中,运动补偿残差可能会包含相当一部分能量。如果选择一个小的分割尺寸(如8x4, 4x4)可能可以得到一个低能量残差,但是需要大量字节来标识运动向量和分割模式的选择。因此,分割尺寸的选择对压缩性能有显著影响。通常的做法是,在匀匀的区域适合选择一个大的分割尺寸,而在多细节的区域适合选择小的分割尺寸。
例子:如图2-3显示了一个残差帧(没有运动补偿)。AVC编码器对该帧每一个部分选择“最佳”的分割尺寸,使编码残差和运动向量的比特数最小化。每个区域的宏块分割选择叠加在这个残差帧上。在那些变化很小的区域内(灰色),选择16x16分割,在更多细节的区域内(白色或黑色),使用更小的分割更有效率。
blocktree01.png
网友评论