对编码单位的变换单位编码和解码的方法、设备和系统的制作方法_3

文档序号:8367822阅读:来源:国知局
无论是当前层级等级或较低的层级等级处的变换树的任何变换单位(TU)的相应颜色通 道,均不进行变换。在编码块标志值为1的情况下,区域包含必须具有至少一个非零残差系 数的变换。这样,针对各颜色通道,0个或更多个变换可以覆盖从无直至编码单位(⑶)整体 的编码单位(CU)的区域的一部分。针对各颜色通道存在单独的编码块标志值。由于存在 仅具有一个可能的编码块标志值的情况,因此无需对各编码块标志值进行编码。
[0086] 然后将变换系数362输入至缩放和量化模块322,并且根据所确定的量化参数384 进行缩放和量化以产生残差系数阵列364。根据所确定的量化参数384的值,该缩放和量 化处理导致精度损失。所确定的量化参数384的值越高,则从变换系数中丢失的信息越多。 这样以降低来自视频解码器134的输出的可视质量为代价提高了视频编码器114所实现的 压缩。所确定的量化参数384可以在对帧数据310的各帧进行编码期间改变,或者可以针 对帧数据310的一部分(诸如整个帧)固定。所确定的量化参数384的其它改变也是可以 的,诸如以单独值量化不同的残差系数等。将残差系数阵列364和所确定的量化参数384 视为向着逆缩放模块326的输入,其中该逆缩放模块326反转缩放和量化模块322所进行 的缩放以产生作为残差系数阵列364的重新缩放版本的重新缩放变换系数阵列366。
[0087] 还将残差系数阵列364和所确定的量化参数384视为向着熵编码器模块324的 输入,其中该熵编码器模块324将残差系数编码在编码位流312(或"视频位流")中。将 各变换单位(TU)中的各变换的残差系数阵列364编码在通常已知为"子块"的组中。子块 应优选具有相同的尺寸而与变换的大小无关,因为这样允许重新使用与子块处理有关的逻 辑。通常将一个子块内的残差系数称为"系数组",并且针对各系数组,通常对系数组标志进 行编码以表示该系数组内的至少一个残差系数是否为非零。在一些情况下,可以推断出系 数组标志,因而不进行编码。针对属于系数组标志值为1的系数组的各残差系数来对标志 进行编码,以表示残差系数为非零("有效")还是零("非有效")。由于缩放和量化模块 322所引起的精度损失,因此重新缩放变换系数阵列366与原始变换系数362不相同。然 后将来自逆缩放模块326的重新缩放变换系数阵列366输出至逆变换模块328。逆变换模 块328进行从频域向着空间域的逆变换,以产生与视频解码器134处所产生的空间域表示 相同的重新缩放变换系数阵列366的空间域表示368。
[0088] 运动估计模块338通过将帧数据310与来自(通常配置在存储器206内的)帧 缓冲器模块332中所存储的帧的一个或多个集合中的先前帧数据进行比较,来产生运动矢 量374。帧的这些集合已知为"参考图片列表"。然后将这些运动矢量374输入至运动补偿 模块334,其中该运动补偿模块334考虑到源自于运动矢量374的空间偏移,通过对帧缓冲 器模块332中所存储的样本进行滤波来产生帧间预测的预测单位(PU) 376。尽管图3没有 示出,但也将运动矢量374作为句法元素传递至熵编码器模块324以编码在编码位流312 中。帧内预测模块336使用从求和模块342获得的样本370来产生帧内预测的预测单位 (PU) 378,其中该求和模块342对来自多路复用器模块340的预测单位(PU) 382和来自逆变 换模块328的空间域表示368进行求和。帧内预测模块336还产生帧内预测模式380,其中 该帧内预测模式380被发送至熵编码器324以编码在编码位流312中。
[0089] 可以使用帧内预测或帧间预测方法来生成预测单位(PU)。帧内预测方法利用与 先前进行了解码的预测单位(PU)邻接(通常位于该预测单位的上方和左方)的样本,从而 在该预测单位(PU)内生成参考样本。被称为"帧内预测模式"的各种方向的帧内预测都是 可以的。帧间预测方法利用运动矢量以参考来自所选择的参考帧中的块。由于块可以与子 样本精度(例如,样本的1/8)向下对准,因此需要进行滤波以针对预测单位(PU)创建参考 样本块。根据由此得到的编码位流312的期望位率和由于帧内预测或帧间预测方法而引入 的图像质量失真量之间的率失真权衡来判断使用哪一个方法。如果使用帧内预测,则还根 据率失真权衡来从一组帧内预测可能模式中选择一个帧内预测模式。多路复用器模块340 根据通过率失真算法所作出的决定,来选择来自帧内预测模块336的帧内预测的参考样本 378或来自运动补偿块334的帧间预测的预测单位(PU) 376。求和模块342产生总和370, 其中将该总和370输入至去块滤波器模块330。去块滤波器模块330沿着块边界进行滤波, 从而产生写入存储器206内所配置的帧缓冲器模块332的去块样本372。帧缓冲器模块332 是具有用以保持来自一个或多个过去帧的数据作为参考图片列表的一部分以供将来参考 的充足容量的缓冲器。
[0090] 对于开发中的高效率视频编码(HEVC)标准,将熵编码器324所产生的编码位流 312描绘成网络抽象层(NAL)单位。通常,帧的各片包含在一个NAL单位中。熵编码器324 通过进行上下文自适应二进制算术编码(CABAC)算法将统称为"句法元素"的残差系数阵 列364、帧内预测模式380、运动矢量和其它参数编码在编码位流312中。将句法元素一起 组成"句法结构",这些分组可以包含用以描述层级结构的递归。除诸如帧内预测模式等的 序数值或者诸如运动矢量等的整数值以外,句法元素还包括诸如用以表示四叉树分割等的 标志。运动估计模块338和运动补偿模块334在精度为亮度样本的1/8的运动矢量374上 进行工作,从而使得能够进行帧数据310中的帧之间的运动的精确建模。
[0091] 尽管参考高效率视频编码(HEVC)视频解码流水线来描述图4的视频解码器134, 但模块420~434所进行的处理阶段对于采用诸如H. 264/MPEG-4AVC、MPEG-2和VC-1等的 熵编码的其它视频编解码器而言是共通的。还可以从存储器206、硬盘驱动器210、⑶-ROM、 蓝光(Blu-ray?)盘或其它计算机可读存储介质读取编码视频信息。可选地,可以从诸如连 接至通信网络220的服务器或射频接收器等的外部源接收编码视频信息。
[0092] 如从图4看出,将诸如编码位流312等的所接收到的视频数据输入至视频解码器 134。可以从存储器206、硬盘驱动器210XD-R0M、蓝光(Blu-ray?)盘或其它计算机可读存 储介质读取编码位流312。可选地,可以从诸如连接至通信网络220的服务器或射频接收器 等的外部源来接收编码位流312。编码位流312包含表示要解码的所拍摄帧数据的编码句 法元素。
[0093] 将编码位流312输入至熵解码器模块420,其中该熵解码器模块420从编码位流 312中提取句法元素,并且将这些句法元素的值传递至视频解码器134中的其它块。熵解 码器模块420应用上下文自适应二进制算术编码(CABAC)算法以从编码位流312解码句法 元素。使用解码后的句法元素来在视频解码器134内重建参数。参数包括零以上的残差系 数阵列450、运动矢量452和预测模式454。将残差系数阵列450传递至逆缩放和变换模块 422,将运动矢量452传递至运动补偿模块434并且将预测模式454传递至帧内预测模块 426和多路复用器428。逆缩放和变换模块422对残差系数数据进行逆缩放以创建重建变 换系数。然后逆缩放和变换模块422应用"逆变换"以将重建变换系数从频域表示转换(或 "解码")为空间域表示,从而产生残差样本阵列456。逆缩放和变换模块422内的逆变换进 行与逆变换328相同的操作。因此,逆缩放和变换模块422必须被配置为提供对符合开发 中的高效率视频编码(HEVC)标准的编码位流312进行解码所需的变换大小的预定集合。
[0094] 运动补偿模块434将来自熵解码器模块420的运动矢量452与来自存储器206内 所配置的帧缓冲器块432的参考帧数据460相组合使用,以产生作为输出解码帧数据的预 测结果的针对预测单位(PU)的帧间预测的预测单位(PU) 462。在预测模式454表示使用帧 内预测对当前编码单位进行编码的情况下,帧内预测模块426使用在空间上邻接预测单位 (PU)的样本和还由预测模式454提供的预测方向来产生针对预测单位(PU)的帧内预测的 预测单位(PU)464。根据从求和模块424输出的总和458来获得在空间上邻接的样本。多 路复用器模块428根据当前预测模式454来选择针对预测单位(PU) 466的帧内预测的预测 单位(PU) 464或帧间预测的预测单位(PU) 462。利用求和模块424将从多路复用器模块428 输出的预测单位(PU)466与来自逆缩放和变换模块422的残差样本阵列456相加,以产生 总和458,然后将该总和458分别输入至去块滤波器模块430和帧内预测模块426。去块滤 波器模块430沿着诸如变换单位(TU)边界等的数据块边界进行滤波以使可见的伪影平滑 化。将去块滤波器模块430的输出写入存储器206内所配置的帧缓冲器模块432。帧缓冲 器模块432提供用以保持一个或多个解码帧以供将来参考的充足存储量。还将解码帧412 从帧缓冲器模块432输出至诸如显示装置136等的显示装置。
[0095] 图5A和5B各自示出分别使用4:2:0色度格式和4:2:2色度格式进行编码后的帧 部分500和帧部分510的样本网格。将色度格式作为配置参数指定到视频编码器114,并 且视频编码器114将"Chr〇ma_f〇rmat_id C"句法元素编码在用于指定该色度格式的编码位 流312中。视频解码器134从编码位流312解码"chroma_format_idc"句法元素以确定使 用中的色度格式。例如,在4:2:0色度格式处于使用中的情况下,chroma_format_idc的值 为1,在4:2:2色度格式处于使用中的情况下,chroma_format_idc的值为2,并且在4:4:4 色度格式处于使用中的情况下,chroma_format_idc的值为3。在图5A和5B中,使用" X " 符号来例示诸如亮度样本位置501等的亮度样本位置,并且使用"〇"符号来例示诸如色 度样本位置502等的色度样本位置。通过在所示出的点处对帧部分500进行采样,在应用 4:2:0色度格式的情况下,针对各颜色通道获得样本网格。在各亮度样本位置X处,对亮度 通道("Y")进行采样,并且在各色度样本位置〇处,对色度通道("U"和"V")这两者进 行采样。如图5A所示,针对各色度样本位置,存在亮度样本位置的2X2排列。通过对帧部 分510中所示出的亮度样本位置处的亮度样本和色度样本位置处的色度样本进行采样,在 应用4:2:2色度格式的情况下,针对各颜色通道获得样本网格。对帧部分510进行与帧部 分500相同的样本向颜色通道的分配。与帧部分500相反,在帧部分510中存在两倍多的 色度样本位置。在帧部分510中,色度样本位置每隔一个亮度样本位置进行配置。因此,在 图5B中,针对各色度样本位置,存在亮度样本位置的2 X 1排列。
[0096] 以上以亮度样本为单位说明了变换单位的各种容许尺寸。因而,通过针对亮度通 道应用的变换所覆盖的区域将具有与变换单位尺寸相同的尺寸。由于变换单位还对色度通 道进行编码,因此针对各色度通道所应用的变换将具有根据使用中的特定色度格式而改变 的尺寸。例如,在4:2:0色度格式处于使用中的情况下,16X16变换单位(TU)将针对亮度 通道使用16X 16变换并且针对各色度通道将使用8X8变换。一个特殊情况为:在将4X4 变换用于亮度通道的情况下,不存在可用于色度通道的相应可用的2X2变换(应用4:2:0 色度格式的情况)或可用的4X2变换(应用4:2:2色度格式的情况)。在该特殊情况下, 针对各色度通道的4X 4变换可以覆盖被多个亮度变换所占据的区域。
[0097] 图6A是帧的编码树块(CTB) 600内的(利用粗边框示出的)编码单位(CU) 602的 示例性变换树的示意表示。一个四叉树子分割将编码树块(CTB)600分割成诸如编码单位 (CU)602等的四个32X32编码单位(CU)。在编码单位(CU)602内存在示例性变换树。示 例性变换树包括若干四叉树子分割,从而得到例如变换单位#9 (TU) 604的如图6A那样编号 的10个变换单位(TU)。变换单位#1~#10覆盖编码单位(⑶)602整体。各四叉树子分 割将区域从空间上分割成四个象限,从而得到四个较小区域。各变换单位(TU)具有与该变 换单位(TU)在变换树内的层级相对应的变换深度值。层级表示在四叉树子分割终止之前 所进行的四叉树子分割的数量,从而得到占据相应区域的变换单位(TU)的实例。例如,变 换单位#9 (TU) 604占据编码单位(CU) 602的区域的1/4,因此其变换深度为1。各变换单 位(TU)具有通常被描述为包含变换单位(TU)的区域在亮度样本网格上的尺寸的关联大小 (或"变换大小")。该大小依赖于编码单位(CU)大小和变换深度。变换深度为0的变换 单位(TU)的大小等于相应编码单位(CU)的大小。变换深度的递增使得存在于变换树中的 给定变换深度处的变换单位(TU)的大小减半。由于帧包括亮度通道和色度通道,因此编码 单位(CU)602占据亮度样本网格和色度样本网格这两者上的区域,因而各变换单位(TU)包 括描述亮度样本网格上的亮度样本和色度样本网格上的色度样本这两者的信息。各变换单 位(TU)的信息的性质依赖于视频编码器114或视频解码器134的处理阶段。在向变换模 块320的输入以及逆缩放和变换模块422的输出处,残差样本阵列360和456分别包含空 间域中的各变换单位(TU)的信息。由于亮度通道和色度通道之间的处理差异,因而可以将 残差样本阵列360和456进一步分割成"色度残差样本阵列"和"亮度残差样本阵列"。在 来自缩放和量化模块322的输出以及逆缩放和变换模块422的输入处,残差系数阵列364 和450分别包含频域中的各变换单位(TU)的信息。由于亮度通道和色度通道之间的处理 差异,因而可以将残差样本阵列364和450进一步分割成"色度残差系数阵列"和"亮度残 差系数阵列"。
[0098] 图6B示出针对包含一组变换单位(TU)并且占据编码单位(⑶)602的32X32编 码单位(CU)的亮度通道的与图6A的示例性变换树相对应的示例性变换树630,其中该示例 性变换树630占据亮度样本网格上的32X32亮度样本阵列。图7示出表示示例性变换树 630的数据结构700。在图6B中,编号为1~10的框表示(利用几个变换单位(TU) 640例 示的)存在于区域632内的变换单位,并且各框包含在(虚线边框的框所示出的)无法进 行进一步子分割的区域中。
[0099] 在图6B中,编号为1和9的框包含针对亮度通道的16X 16变换,编号为2、3和8 的框包含针对亮度通道的8X8变换,并且编号为4~7的框包含针对亮度通道的4X4变 换。针对这些框各自的相应区域(虚线框)的编码块标志值为1,以表示存在变换。
[0100] 如以下将论述的,利用在位流的编码和解码各自中使用的但无需在位流中进行传 输的单独编码块标志值来指定针对各颜色通道的变换的有无。结果,从熵解码器420输出 的残差系数阵列450的数量依赖于编码块标志值。在任何颜色通道中均不存在有效系数的 情况下,从熵解码器420输出的残差系数阵列450的数量为
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1