在VVC中,输入的视频首先被划为为相等大小的块(最大支持划分为128×128大小的块,虽然VVC支持的变换的块最大尺寸为64×64),这些等大的块成为CTUs(coding tree units),每一个CTU都有Y、Cb、Cr三个等大的CU。
图1 混合编码框架
把输入的图像划分为CTUs之后,再对CTUs进行进一步的归类。在HEVC中,可以把CTUs分为Slice和Tile,其中Slice可以进一步划分为SS。引入Silice的目的在于,不同的Slice之间相互独立,即使丢失了一个Slice还能利用后面的Slice进行解码,能防止误差的传播。其中一个Slice中不同的SS可以相互参考,但Slice之间则不能。引入Tile是为了方便并行处理。Slice与Tile之间的约束为:一个Slice/SS中所有的CTU都属于同一个Tile,或者同一个Tile中所有的CTU都输入同一个Slice/SS。在VVC中对Tile的划分进行了进一步拓展,使得能把Tile进一步划分为bricks。注意,未进行划分的Tile可以叫做bricks,但是Tile划分后的bricks不能叫做Tile。brick的划分见图2。
图2 brick划分 shows an example of a picture partitioned into tiles, bricks, and rectangular slices, where the picture is divided into 4 tiles (2 tile columns and 2 tile rows), 11 bricks (the top-left tile contains 1 brick, the top-right tile contains 5 bricks, the bottom-left tile contains 2 bricks, and the bottom-right tile contain 3 bricks), and 4 rectangular slices.
对于Slice的划分,HEVC只支持扫描线顺序(从左到右,从上到下)的划分,如图3中灰色部分为一个Slice,图中一共有3个Slice,9个Tile。
图3 reaster-scan的Slice
在VVC中,除了扫描线顺序模式,还引入了矩形Slice,详情见图4。其中有9个Slice,24个Tile。在矩形Slice中,brick遵从扫描线顺序。
图4 矩形Slice
参考文献
JVET-N1002