HEVC ZOrder and RasterOrder

在阅读HEVC的代码中,遇到过ZOrder 和 RasterOrder 的问题,一开始把ZOrder 当成是像JPEG中的zig-zag的那种排序方式来理解,后来知道自己错了。

下面我就说一下RasterOrder 和 ZOrder:

1.Raster 光栅,我们知道,电视机的扫描顺序是一行一行的扫描,扫完一行再扫下一行。RasterOrder 顾名思义也是这样一种形式,不过他的单位不是普通理解的行,而是CU组成的一行。

HEVC ZOrder and RasterOrder_第1张图片

2.ZOrder 从名字上我们可以看出,它其实是一种想Z字形的一种顺序,为什么会出现这种顺序呢,那是因为,在HEVC代码(HM6.0)中CU的分割是递归式的,在分割完一个CU后采取分割下一个CU,这样,在访问的时候就会出现这种现象。

HEVC ZOrder and RasterOrder_第2张图片

这个图我解释一下,在图中的最大的矩形是一个64x64的LCU,它递归的四分生成了subCU,在这样的访问模式下,他的顺序就是ZOrder。


由于不同的访问顺序和处理顺序,那么在代码中就需要对他们关系进行映射,于是就有了“g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsZorderIdx] ]”类似的代码。

你可能感兴趣的:(HEVC ZOrder and RasterOrder)