概述
H.265的标准可以从网上免费下载。
这里写一些我个人对HEVC(H.265)标准的解读,难免有些错误,欢迎大家积极积极留言讨论。
图像分割,就是说一帧图像从几何空间上在标准中是如何划分的。
与h.264不同,265引入了tile的概念。
首先,图像被分成slices和tiles。
一个Slice包含一个slice segment或者以一个independent slice segment为首一系列的slice segments。
Slice和tile都由一系列的coding tree units组成,简称CTU(相当于以前宏块的概念)。
例子a1,如下图中,图像被分成了两个slice,第一个slice又分成了3个slice segments,其中第一个slice segment是一个包含4个coding tree units的independent slice segment。而第二个slice只有一个slice segment。
例子a2,如下图(a)中,图像被分成2个tiles,图像只有一个slice,包含一个independent slice segment和四个dependent slice segments。
图(b)中,图像也被分成了2个tiles,第一个tile有一个两个slices,第二个有一个slice。
(a)
(b)
Tiles异于slices的一点是,tiles必须为长方形。而且通过分析后续标准中关于语法元素的介绍,可以肯定,tiles的划分必须满足每一行的tiles有相同的高度,每一行的tiles有相同的宽度。
标准中给出了一下条件来约束slices和tiles的相互关系。
对于每个tiles和slices,以下条件至少满足一条。
——一个Slice所有的coding tree units都属于同一个tile。(注:本文中用条件a代指)
——一个tile所有的coding tree units都属于同一个slice。(注:条件b)
对于每个tiles和slices segment,以下条件至少满足一条。
——一个Slicesegment所有的coding treeunits都属于同一个tile。
——一个tile所有的coding tree units都属于同一个slice segment。
这些条件显得较为抽象,可以通过例子来具体分析。
例子b1,如图所示:每个小方块为一个CTU, 图像分割为两个slices,slice0(6x2)和slice1(6x4)。4个tiles,tile0(3x2),tile1(3x2),tile3(3x4)和tile4(3x4)。
此图像满足条件b,而不满足条件a。所以此例符合标准。
例子b2,如图所示:图像分割为两个tile,tile0(3x6),tile1(3x6)。4个slice,slice0(包含11个coding tree units),slice1(包含7个coding tree units),slice2(包含8个coding tree units)和slice3(包含10个coding tree units)。
此图像满足条件a,而不满足条件b。所以此例符合标准。
例子b3,如图所示:图像分割为两个slices,slice0(6x3)和slice1(6x3)。两个tiles,tile0(2x6)和tile1(4x6)。则条件a和条件b都不符合。所以不符合标准。
前面提过tile的一些特质,下面详细介绍。变量colWidth[ i]标明各个tile的宽度,单位为CTU。可由语法元素uniform_spacing_flag,num_tile_columns_minus1,column_width_minus1[ i ]和PicWidthInCtbsY计算得出。变量colBd[ i ]标明各个tile横向的边界,可由colWidth[ i ]计算得出。
变量rowHeight [ j]标明各个tile的高度,单位是CTU。可由语法元素uniform_spacing_flag,num_tile_rows_minus1,row_height_minus1[ j ]和PicHeightInCtbsY计算得出。变量rowBd[ i ]标明各个tile横向的边界,可由rowHeight[ i ]计算得出。
其中的关系可一目了然的从下图看出。
数组CtbAddrRsToTs[ctbAddrRs ]将以CTB为单位的光栅扫描地址转化为tile扫描地址。下图中,左侧为光栅扫描,右侧为tile扫描。最小的方块代表一个CTU,图像分成了4个tile。
为什么要做这个转化呢?因为在HEVC的码流中,CTU编码顺序就是按照这个tile扫描地址递增的。
最后
以上就是精明鞋子为你收集整理的HEVC标准中的图像分割(1),slice,tile,CTU,CU,PU,TU等的全部内容,希望文章能够帮你解决HEVC标准中的图像分割(1),slice,tile,CTU,CU,PU,TU等所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复