编码和解码变换单位的残差系数的有效性映射的方法、设备和系统的制作方法

文档序号:7791013阅读:744来源:国知局
编码和解码变换单位的残差系数的有效性映射的方法、设备和系统的制作方法
【专利摘要】公开了一种用于从视频数据的位流解码变换单位的残差系数的方法。该方法从视频数据的位流接收变换单位(1500),其中该变换单位具有正方形上级层(1503)和正方形下级层(1502)。正方形上级层表示最多四个有效系数组标志的正方形配置,这些有效系数组标志各自表示正方形下级层的非重复区域。该方法针对所接收到的变换单位确定正方形上级层的有效系数组标志,并且根据所确定的有效系数组标志来确定正方形下级层的残差系数的值,以对视频数据的位流的变换单位进行解码。还公开了相应的编码方法。
【专利说明】编码和解码变换单位的残差系数的有效性映射的方法、设 备和系统

【技术领域】
[0001] 本发明通常涉及数字视频信号处理,尤其涉及用于对变换单位(TU)的残差系数 进行编码和解码的方法、设备和系统,其中该变换单位(TU)的形状可以具有正方形或非正 方形。

【背景技术】
[0002] 当前存在包括用于传输和存储视频数据的应用程序的许多应用程序。还开发了许 多视频编码标准并且其它视频编码标准当前正在开发中。视频编码标准化的最新进展已导 致形成被称为"针对视频编码的联合专家小组"(JCT-VC)的组。该针对视频编码的联合专 家小组(JCT-VC)包括已知为视频编码专家组(VCEG)的国际电信联盟(ITU)的电信标准化 部门(ITU-T)的研究组16、问题6(SG16/Q6)的成员、以及还已知为运动图片专家组(MPEG) 的国际标准化组织/国际电工委员会联合技术委员会1/小组委员会29/工作组11 (ISO/ IEC JTC1/SC29/WG11)的成员。
[0003] 针对视频编码的联合专家小组(JCT-VC)的目标是产生新的视频编码标准以显著 优于目前现有的已知为"H. 264/MPEG-4AVC"的视频编码标准。该H. 264/MPEG-4AVC标准本 身是针对诸如MPEG-4和ITU-T H. 263等的以前的视频编码标准的大幅改进。已将开发中的 新视频编码标准命名为"高效率视频编码(HEVC) "。针对视频编码的联合专家小组JCT-VC 还考虑由于针对高效率视频编码(HEVC)所提出的技术而产生的、在对该标准的实现进行 缩放从而以高分辨率或高帧频进行工作的情况下产生困难的实现挑战。
[0004] 呈现实现高压缩效率所带来的困难的H. 264/MPEG-4AVC视频编码标准的一个领 域是针对用于表示视频数据的残差系数的编码。视频数据由帧序列构成,其中各帧具有样 本的二维阵列。通常,帧包括一个亮度通道和两个色度通道。将各帧分解成最大编码单位 (IXU)的阵列。这些最大编码单位(IXU)具有诸如64个亮度样本等的、边尺寸是2的幂且 宽度和高度相等的固定大小。编码树使得能够将各最大编码单位(LCU)子分割成四个编码 单位(CU),其中各编码单位(CU)的宽度和高度是母最大编码单位(LCU)的宽度和高度的 一半。可以将各编码单位(CU)进一步子分割成相等大小的四个编码单位(CU)。可以递归 地应用这种子分割处理,直到达到最小编码单位(S⑶)大小为止,从而使得能够将编码单 位(CU)向下定义为最小支持大小。将最大编码单位递归子分割成所谓的编码单位的层级 结构具有四叉树结构并且被称为编码树。将该子分割处理作为被编码为二进制数(bin)的 标志序列而在通信位流中编码。
[0005] 在没有进行进一步子分割的编码树中存在一组编码单位,从而占据编码树的叶节 点。在这些编码单位中存在变换树。变换树还可以使用如编码树所使用的四叉树结构来对 编码单位进行分解。在变换树的叶节点处,使用变换单位(TU)来对残差数据进行编码。与 编码树相对比,变换树可以将编码单位子分割成具有非正方形形状的变换单位。此外,变换 树结构不要求变换单位(TU)占据母编码单位所提供的所有区域。
[0006] 将编码树的叶节点处的各编码单位子分割成各自已知为预测单位(PU)的预测数 据样本的一个或多个阵列。各预测单位(PU)包含通过应用帧内预测或帧间预测处理所推 导出的输入视频帧数据的一部分的预测。可以使用几种方法来对编码单位(CU)内的预测 单位(PU)进行编码。一个预测单位(PU)可能占据编码单位(CU)的整个区域,或者编码单 位(CU)可能在水平方向或垂直方向上被分割成相等大小的两个矩形预测单位(PU)。另外, 可以将编码单位(CU)分割成相等大小的四个正方形预测单位(PU)。
[0007] 视频编码器通过将视频数据转换成句法元素序列来将视频数据压缩成位流。使用 与在MPEG4-AVC/H. 264视频压缩标准中所定义的算术编码方案相同的算术编码方案,来在 开发中的高效率视频编码(HEVC)标准内定义上下文自适应二进制算术编码(CABAC)。在开 发中的高效率视频编码(HEVC)标准中,在上下文自适应二进制算术编码(CABAC)处于使用 中的情况下,将各句法元素表示为二进制数序列,其中这些二进制数是从可用二进制数的 集合中所选择的。可用二进制数的集合是从上下文模型所获得的,其中针对各二进制数存 在一个上下文。各上下文保持可能的二进制数值('valMPS')、以及算术编码或算术解码 运算的概率状态。注意,可以对二进制数进行旁路编码,在该过程中与上下文无关联。旁路 编码二进制数消耗位流中的一位,因此适合作为1值和〇值的概率相等的二进制数。根据 句法元素创建这种二进制数序列已知为"二进制数产生"句法元素。
[0008] 在视频编码器或视频解码器中,由于各二进制数可使用单独的上下文信息,因此 二进制数的上下文选择提供了用以改进编码效率的方式。特别地,可以通过选择特定二进 制数来改进编码效率,以使得来自使用关联的上下文信息的二进制数的以前示例的统计特 性与二进制数的当前示例的统计特性相关。这种上下文选择频繁地利用空间本地信息以确 定最佳上下文。
[0009] 在开发中的高效率视频编码(HEVC)标准和H. 264/MPEG-4AVC中,基于来自其它帧 或者来自先前解码后的当前块内的邻接区域的参考样本数据来推导针对当前块的预测。该 预测和期望样本数据之间的差已知为残差。该残差的频域表示是残差系数的二维阵列。按 照惯例,二维阵列的左上角包含表示低频信息的残差系数。
[0010] 在典型的视频数据中,样本值的大部分变化是逐渐的,这导致低频信息在残差内 占主导。这表明位于二维阵列的左上角的残差系数的量值较大。
[0011] 可以通过所选择的二值化方案来利用在残差系数的二维阵列的左上角占主导的 低频信息的特性,以使残差系数在位流中的大小最小。
[0012] HM-5. 0将变换单位(TU)分割成多个子集并且对各子集中的残差系数进行两遍扫 描。第一遍对将残差系数的状态表示为非零值(有效)或零值(无效)的标志进行编码。 该数据已知为有效性映射。第二遍对已知为系数等级的有效残差系数的量值和符号进行编 码。
[0013] 所提供的扫描模式使得能够将残差系数的二维阵列扫描成一维阵列。在HM-5.0 中,使用所提供的扫描模式来对有效性映射和系数等级这两者进行处理。通过使用所提供 的扫描模式扫描有效性映射,可以确定最末有效系数在二维有效性映射中的位置。扫描模 式可以是水平的、垂直的或对角的。
[0014] 高效率视频编码(HEVC)测试模型5. 0 (HM-5. 0)提供针对(还已知为具有正方形 形状和非正方形形状这两者的变换单位(TU)的)残差块的支持。各变换单位(TU)包含一 组残差系数。具有相等大小的边尺寸的残差块已知为正方形变换单位(TU),并且具有不等 大小的边尺寸的残差块已知为非正方形变换单位(TU)。
[0015] ΗΜ-5. 0 中所支持的变换单位(TU)是 4Χ4、8Χ8、16Χ16、32Χ32、4Χ16、16Χ4、 8X32和32X8。通常针对亮度样本说明变换单位(TU)的大小,然而在使用4:2:0的色度格 式的情况下,各色度样本占据2X2个亮度样本的区域。因此,扫描变换单位(TU)以对色度 残差数据进行编码使用了水平尺寸和垂直尺寸的一半的扫描模式,诸如针对4X4亮度残 差块的2X 2等。为了对残差系数进行扫描和编码的目的,将16X 16、32X 32、4X 16、16X4、 8X32和32X8的变换单位(TU)分割成多个子块、即大小为4X4的变换单位(TU)扫描的 下层,其中在ΗΜ-5. 0内存在相应的映射。在ΗΜ-5. 0中,这些变换单位(TU)大小的子块与变 换单位(TU)中的子集位于同一位置处。将位于一个子块内并排配置的有效性映射的一部 分内的所设置的有效系数标志称为有效系数组。对于16Χ16、32Χ32、4Χ16、16Χ4、8Χ32 和32X8的变换单位(TU),有效性映射编码利用两级扫描。上级扫描进行诸如后向对角左 下扫描等的扫描,以编码或推断表示各子块的有效系数组的标志。在这些子块内,进行诸如 后向对角左下扫描等的扫描,以针对具有1值的有效系数组标志的子块来编码有效系数标 志。对于16X16变换单位(TU),使用4X4上级扫描。对于32X32变换单位(TU),使用 8父8上级扫描。对于16\4、4\16、32\8和8\32的变换单位(1^)大小,分别使用4父1、 1Χ4、8Χ2和2X8的上级扫描。
[0016] 在各变换单位(TU)中,可以将残差系数数据编码在位流中。各"残差系数"是表 示频域(DCT)的变换单位内的图像特征并且在该变换单位内占据独特位置的数字。变换单 位是可以在空间域和频域之间进行变换的残差数据样本的块。在频域中,变换单位(TU)将 残差数据样本编码为残差系数数据。按二(2)的幂来确定变换单位的边尺寸的大小(针对 "亮度"通道为4个样本?32个样本、并且针对"色度"通道为2个样本?16个样本)。变 换单位(TU)树的叶节点可以包含变换单位(TU)、或者在不需要残差系数数据的情况下可 以什么也不包含。
[0017] 由于变换单位的空间表示是残差数据样本的二维阵列,因此如以下详细所述,根 据诸如改进的离散余弦变换(DCT)等的变换所得的频域表示还是残差系数的二维阵列。变 换单位(TU)内的典型样本数据的频谱特性使得频域表示与空间表示相比更加紧凑。此外, 变换单位(TU)中典型的较低频率的频谱信息的占主导导致了较大值的残差系数向着变换 单位(TU)的表示低频残差系数的左上方聚集。
[0018] 可以使用改进的离散余弦变换(DCT)或改进的离散正弦变换(DST)来实现残差变 换。残差变换的实现被配置为支持所需的各变换单位(TU)大小。在视频编码器中,对来自 残差变换的残差系数进行缩放和量化。该缩放和量化使残差系数的量值缩小,由此导致以 降低图像质量为代价来缩小编码在位流中的数据的大小。
[0019] 开发中的高效率视频编码(HEVC)标准的复杂度的一个方面是为了进行扫描所需 的查找表的数量。各附加查找表导致不期望地消耗了内存,因而减少所需的查找表的数量 是复杂度降低的一个方面。


【发明内容】

[0020] 本发明的目的是大致克服或至少改进现有配置的一个或多个缺点。
[0021] 根据本发明的一个方面,提供一种用于从视频数据的位流解码变换单位的残差系 数的方法,所述方法包括以下步骤:
[0022] 从视频数据的所述位流接收所述变换单位,所述变换单位具有正方形上级层和正 方形下级层,所述正方形上级层表示最多四个有效系数组标志的正方形配置,所述有效系 数组标志各自表示所述正方形下级层的非重叠区域;
[0023] 针对所接收到的所述变换单位确定所述正方形上级层的所述有效系数组标志;以 及
[0024] 根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值,以 对视频数据的所述位流的所述变换单位进行解码。
[0025] 优选地,利用所述最多四个有效系数组标志所表示的所述非重叠区域中的各非重 叠区域是各自具有16个残差系数的正方形区域。
[0026] 期望地,所述正方形上级层具有四个有效系数组标志,所述方法还包括以下步骤: 通过向预定的扫描模式应用偏移,来确定所述正方形下级层的所述非重叠区域各自的扫描 模式。
[0027] 所述方法还可以通过对编码在所述位流中的有效系数组标志进行解码来确定所 述正方形上级层的所述有效系数组标志。
[0028] 优选地,确定所述正方形上级层的所述有效系数组标志的步骤包括:推断所述有 效系数组标志中的至少一个。
[0029] 有利地,将所述变换单位的所述正方形下级层形成为子块,并且根据所确定的所 述有效系数组标志来确定所述正方形下级层的残差系数的值的步骤包括针对所述变换单 位的所述子块中的各子块进行重复。期望地,所述重复形成表示所述子块中的各子块的线 性阵列,其中使用相应的偏移值来根据所述线性阵列重建各子块。
[0030] 在特定实现中,所述正方形上级层表示四个所述有效系数组标志的正方形配置。
[0031] 在一个实现中,根据应用于所述变换单位的帧内预测模式来选择所述变换单位的 所述正方形下级层的扫描方向。在另一实现中,根据应用于所述变换单位的帧内预测模式 来选择所述变换单位的所述正方形上级层的扫描方向。此外,所述变换单位的所述正方形 上级层的扫描方向是对角的,并且不依赖于所述变换单位的所述正方形下级层的扫描方 向。
[0032] 根据本发明的另一方面,提供一种用于将变换单位的残差系数编码在视频数据的 位流中的方法,所述方法包括以下步骤:
[0033] 接收所述变换单位的正方形下级层的残差系数的值;
[0034] 针对所述变换单位的正方形上级层确定有效系数组标志,所述正方形上级层表示 最多四个有效系数组标志的正方形配置,所述有效系数组标志各自表示所述正方形下级层 的非重叠区域;以及
[0035] 对所述正方形下级层的残差系数的值和所述正方形上级层的所述有效系数组标 志进行编码,以将所述变换单位编码在视频数据的所述位流中。
[0036] 根据本发明的另一方面,提供一种用于从视频数据的位流解码变换单位的残差系 数的方法,所述方法包括以下步骤:
[0037] 从视频数据的所述位流接收所述变换单位,所述变换单位具有正方形上级层和正 方形下级层,所述正方形上级层表示有效系数组标志的正方形配置,所述有效系数组标志 各自表示所述正方形下级层的非重叠区域;
[0038] 根据帧内预测模式来确定所述正方形上级层和所述正方形下级层的扫描模式,其 中所述正方形上级层和所述正方形下级层的扫描模式是相同的;
[0039] 根据所确定的扫描模式,针对所接收到的所述变换单位来确定所述正方形上级层 的所述有效系数组标志;以及
[0040] 根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值,以 对视频数据的所述位流的所述变换单位进行解码。
[0041] 还公开了其它方面。

【专利附图】

【附图说明】
[0042] 现在将参考以下附图来说明本发明的至少一个实施例,其中:
[0043] 图1是示出视频编码器的功能模块的示意框图;
[0044] 图2是示出视频解码器的功能模块的示意框图;
[0045] 图3A和3B形成可以分别实践图1的编码器和图2的解码器的通用计算机系统的 示意框图;
[0046] 图4是示出熵编码器的功能模块的示意框图;
[0047] 图5是示出熵解码器的功能模块的示意框图;
[0048] 图6是示出用于对8X8变换单位(TU)的残差系数进行编码的传统方法的流程 图;
[0049] 图7是示出用于对8X8变换单位(TU)的残差系数进行解码的传统方法的流程 图;
[0050] 图8是示出用于使用有效系数组对8X8变换单位(TU)的残差系数进行编码的根 据本发明的方法的流程图;
[0051] 图9是示出用于使用有效系数组对8X8变换单位(TU)的残差系数进行解码的根 据本发明的方法的流程图;
[0052] 图10A和10B示出用于表示8X8变换单位(TU)的有效系数组的根据本发明的方 法;
[0053] 图11是示出用于使用后向对角扫描来扫描8X8变换单位(TU)的残差系数的传 统方法的图;
[0054] 图12是示出用于使用后向水平扫描来扫描8X8变换单位(TU)的残差系数的传 统方法的图;
[0055] 图13是示出用于使用后向垂直扫描来扫描8X8变换单位(TU)的残差系数的传 统方法的图;
[0056] 图14是示出用于使用两层的层级结构来扫描8X8变换单位(TU)的残差系数的 根据本发明的方法的图;
[0057] 图15A?15C示出用于使用后向对角扫描来扫描8X8变换单位(TU)的残差系数 的根据本发明的方法;
[0058] 图16A?16C示出用于使用后向水平扫描来扫描8X8变换单位(TU)的残差系数 的根据本发明的方法;
[0059] 图17A?17C示出用于使用后向垂直扫描来扫描8X8变换单位(TU)的残差系数 的根据本发明的方法;以及
[0060] 图18A?18C是针对利用偏移的扫描的替代方法。

【具体实施方式】
[0061] 在任一个或多个附图中参考具有相同附图标记的步骤和/或特征的情况下,除非 出现相反意图,否则这些步骤和/或特征是为了本说明书的目的而具有相同的功能或操 作。
[0062] 图1是示出视频编码器100的功能模块的示意框图。图2是示出相应的视频解码 器200的功能模块的示意框图。如图3A和3B所示,可以使用通用计算机系统300来实现 视频编码器100和视频解码器200,其中可以利用计算机系统300内的专用硬件、利用在计 算机系统300内可执行的软件、或者可选地利用在计算机系统300内可执行的专用硬件和 软件的组合来实现各种功能模块。
[0063] 如图3A所示,计算机系统300包括:计算机模块301 ;诸如键盘302、鼠标指示器装 置303、扫描器326、照相机327和麦克风380等的输入装置;以及包括打印机315、显示装 置314和扬声器317等的输出装置。计算机模块301可以使用外部调制器-解调器(调制 解调器)收发器装置316来经由接线321与通信网络320进行通信。通信网络320可以是 广域网(WAN),诸如因特网、蜂窝电信网络或私有WAN等。在接线321是电话线的情况下, 调制解调器316可以是传统的"拨号上网"调制解调器。可选地,在接线321是高容量(例 如,线缆)接线的情况下,调制解调器316是宽带调制解调器。还可以使用无线调制解调器 来进行向着通信网络320的无线连接。
[0064] 计算机模块301通常包括至少一个处理器单元305和存储器单元306。例如,存 储器单元306可以具有半导体随机存取存储器(RAM)和半导体只读存储器(ROM)。计算机 模块301还包括多个输入/输出(I/O)接口,其中这多个输入/输出(I/O)接口包括:音 频-视频接口 307,其连接至视频显示器314、扬声器317和麦克风380 ;1/0接口 313,其 连接至键盘302、鼠标303、扫描器326、照相机327以及可选的操纵杆或其它人机接口装置 (未示出);以及外部调制解调器316和打印机315所用的接口 308。在一些实现中,调制 解调器316可以内置于计算机模块301内、例如内置于接口 308内。计算机模块301还具 有本地网络接口 311,其中该本地网络接口 311允许计算机系统300经由接线323连接至已 知为局域网(LAN)的局域通信网络322。如图3A所示,局域通信网络322还可以经由接线 324连接至广域网320,其中该局域通信网络322通常包括所谓的"防火墙"装置或具有相似 功能的装置。本地网络接口 311可以包括以太网(Ethernet?)电路卡、蓝牙(Bluetooth?) 无线配置或IEEE802. 11无线配置;然而,对于接口 311,可以实践多种其它类型的接口。 [0065] I/O接口 308和313可以提供串行连接和并行连接中的任一个或这两者,其中前 者通常根据通用串行总线(USB)标准来实现并且具有相应的USB连接器(未示出)。设置 有存储装置309,并且存储装置309通常包括硬盘驱动器(HDD) 310。还可以使用诸如软盘 驱动器和磁带驱动器(未示出)等的其它存储装置。通常设置有光盘驱动器312以用作数 据的非易失性源。作为向着系统300的数据的适当源,可以使用例如光盘(例如,⑶-ROM、 DVD、蓝光盘(Blu-ray Disc?))、USB-RAM、便携型外部硬盘驱动器和软盘等的便携型存储器 装置。通常,HDD310、光盘驱动器312、网络320和322或者照相机327中的任意均可用于 针对要编码的视频数据的源,或者连同显示器314 -起用于要存储或再现的解码视频数据 的目的地。
[0066] 计算机模块301的组件305?313通常经由互连总线304并且以得到相关领域技 术人员已知的计算机系统300的传统操作模式的方式进行通信。例如,处理器305使用接 线318连接至系统总线304。同样,存储器306和光盘驱动器312通过接线319连接至系统 总线304。可以实践所述配置的计算机的示例包括IBM-PC和兼容机、Sun Sparcstation、 Apple Mac?或相似的计算机系统。
[0067] 在适当或期望的情况下,可以使用计算机系统300来实现编码器100和解码器200 以及以下所述的方法,其中可以将编码器100和解码器200以及要说明的图10及11的处理 作为计算机系统300内可执行的一个或多个软件应用程序333来实现。特别地,利用在计 算机系统300内执行的软件333中的指令331 (参见图3B)来实现编码器100、解码器200 和所述方法的步骤。可以将软件指令331形成为各自用于进行一个或多个特定任务的一个 或多个代码模块。还可以将软件分割成两个单独部分,其中第一部分和相应的代码模块进 行所述方法,并且第二部分和相应的代码模块管理第一部分和用户之间的用户界面。
[0068] 例如,可以将软件存储在包括以下所述的存储装置的计算机可读介质中。将软件 从计算机可读介质载入计算机系统300,然后由计算机系统300来执行。记录有这种软件或 计算机程序的计算机可读介质是计算机程序产品。优选地,在计算机系统300中使用该计 算机程序产品实现了用于实现编码器100、解码器200和所述方法的有利设备。
[0069] 通常将软件333存储在HDD310或存储器306中。将该软件从计算机可读介质载 入计算机系统300,并且由计算机系统300来执行。因而,例如,可以将软件333存储在光盘 驱动器312所读取的光学可读盘存储介质(例如,⑶-ROM) 325上。
[0070] 在一些示例中,将应用程序333以编码在⑶-R0M325上并且经由相应的驱动器312 进行读取的方式供给至用户,或者可选地,可以由用户从网络320或322读取应用程序333。 此外,还可以将软件从其它计算机可读介质载入计算机系统300。计算机可读存储介质是指 将所记录的指令和/或数据提供至计算机系统300以供执行和/或处理的任何非瞬态有形 存储介质。这种存储介质的示例包括软盘、磁带、CD-ROM、DVD、蓝光盘、硬盘驱动器、ROM或 集成电路、USB存储器、磁光盘、或者诸如PCMCIA卡等的计算机可读卡,而与这些装置在计 算机模块301的内部还是外部无关。还可以参与将软件、应用程序、指令和/或视频数据或 编码视频数据提供至计算机模块301的瞬态或非有形计算机可读传输介质的示例包括无 线电或红外线传输通道及向着其它计算机或联网装置的网络接线、以及包括电子邮件发送 和网站上所记录的信息等的因特网或内联网。
[0071] 可以执行上述的应用程序333的第二部分和相应的代码模块来实现要渲染或呈 现在显示器314上的一个或多个图形用户界面(⑶I)。通过典型地对键盘302和鼠标303 进行操作,计算机系统300的用户和应用程序可以以在功能上可适应的方式对界面进行操 作,以将控制命令和/或输入提供至与这些GUI相关联的应用程序。还可以实现在功能上 可适应的其它形式的用户界面,诸如利用经由扬声器317所输出的语音提示和经由麦克风 380所输入的用户声音命令的音频界面等。
[0072] 图3B是处理器305和"存储器"334的详细示意框图。存储器334表示图3A中的 计算机模块301可以访问的(包括HDD309和半导体存储器306的)所有存储器模块的逻 辑聚合。
[0073] 在初始对计算机模块301通电的情况下,上电自检(power-on self-test, POST) 程序350执行。通常将POST程序350存储在图3A的半导体存储器306的R0M349中。有时 将诸如存储有软件的R0M349等的硬件装置称为固件。POST程序350检查计算机模块301 内的硬件以确保适当工作,并且通常检查处理器305、存储器334(309, 306)和通常还存储 在R0M349中的基本输入-输出系统软件(BIOS)模块351,以进行正确操作。一旦POST程 序350成功运行,BI0S351启动图3A的硬盘驱动器310。启动硬盘驱动器310使得经由处 理器305执行驻留在硬盘驱动器310上的引导装入程序352。这样将操作系统353载入RAM 存储器306,其中在该RAM存储器306上,操作系统353开始工作。操作系统353是处理器 305可执行的系统级应用程序,以实现包括处理器管理、存储器管理、装置管理、存储管理、 软件应用程序接口和通用用户界面等的各种高级功能。
[0074] 操作系统353管理存储器334(309, 306),以确保计算机模块301上运行的各处理 或应用程序具有在不会与分配至其它处理的内存冲突的情况下执行的充足内存。此外,必 须适当使用在图3A的系统300中可用的不同类型的存储器,以使得各处理可以高效地运 行。因此,聚合存储器334并不意图例示如何分配存储器的特定区段(除非另外说明),而 是提供计算机系统300可访问的存储器的概述图以及如何使用该存储器。
[0075] 如图3B所示,处理器305包括多个功能模块,其中这多个功能模块包括控制单元 339、运算逻辑单元(ALU) 340和有时称为高速缓冲存储器的本地或内部存储器348。高速缓 冲存储器348在寄存器区段中通常包括多个存储寄存器344?346。一个或多个内部总线 341从功能上使这些功能模块相互连接。处理器305通常还具有用于使用接线318来经由 系统总线304与外部装置进行通信的一个或多个接口 342。存储器334使用接线319连接 至总线304。
[0076] 应用程序333包括可以包含条件分支指令和循环指令的指令序列331。程序333 还可以包括执行程序333时所使用的数据332。将指令331和数据332分别存储在存储器 位置328、329、330和335、336、337中。根据指令331和存储器位置328?330的相对大小, 如存储器位置330中示出的指令所描述的,可以将特定指令存储在单个存储器位置中。可 选地,如存储器位置328和329中示出的指令段所描述的,可以将指令分割成各自被存储在 单独的存储器位置中的多个部分。
[0077] 通常,向处理器305赋予一组指令,其中在该处理器305内执行该组指令。处理 器305等待下一输入,其中处理器305通过执行另一组指令来对该下一输入作出反应。可 以从一个或多个源提供各输入,其中该输入包括一个或多个输入装置302、303所生成的数 据、从外部源经由网络320、302其中之一所接收到的数据、从存储装置306、309其中之一所 检索到的数据或者从插入相应的读取器312内的存储介质325所检索到的数据(所有这些 均在图3A中示出)。执行一组指令在一些情况下可能会导致输出数据。执行还可能涉及将 数据或变量存储至存储器334。
[0078] 编码器100、解码器200和所述方法使用存储在存储器334内的相应存储器位置 355、356、357中的输入变量354。编码器100、解码器200和所述方法产生存储在存储器334 内的相应存储器位置362、363、364中的输出变量361。可以将中间变量358存储在存储器 位置 359、360、366 和 367 中。
[0079] 参考图3B的处理器305,寄存器344、345、346、运算逻辑单元以1^)340和控制单 元339 -起工作以进行微操作序列,其中这些微操作序列是针对构成程序333的指令集中 的每个指令进行"提取、解码和执行"周期所需的。各提取、解码和执行周期包括以下操作:
[0080] (a)提取操作,用于从存储器位置328、329、330提取或读取指令331 ;
[0081] (b)解码操作,其中在该解码操作中,控制单元339判断提取了哪个指令;以及
[0082] (c)执行操作,其中在该执行操作中,控制单元339和/或ALU340执行该指令。
[0083] 之后,可以执行针对下一指令的进一步提取、解码和执行周期。同样,可以进行存 储周期,其中在该存储周期中,控制单元339将值存储至或写入存储器位置332。
[0084] 要说明的图1、2、4、5、7?10和14?17的处理中的各步骤或子处理与程序333 的一个或多个区段相关联,并且通过处理器305中的寄存器部344、345、34741^340和控制 单元339 -起工作以针对程序333的所述区段的指令集中的每个指令进行提取、解码和执 行周期,来进行该步骤或子处理。
[0085] 可选地,可以在诸如进行所述方法的功能或子功能的一个或多个集成电路等的专 用硬件中实现编码器1〇〇、解码器200和所述方法。这种专用硬件可以采用计算机化设备的 形式,并且可以包括图形处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵 列(FPGA)或者一个或多个微处理器和关联存储器。可以使用这种计算机化设备来进行采 用硬件形式的一些编码操作以及采用硬件的软件形式的其它编码操作。
[0086] 如上所述,可以将视频编码器100作为驻留在硬盘驱动器305上并且由处理器305 控制执行的软件应用程序333的一个或多个软件代码模块来实现。特别地,视频编码器100 包括各自可以作为软件应用程序333的一个或多个软件代码模块来实现的模块102?112、 114 和 115。
[0087] 尽管视频编码器100是高效率视频编码(HEVC)视频解码流水线的示例,但模块 102?112、114和115所进行的处理阶段对于诸如VC-1或H. 264/MPEG-4AVC等的其它视频 编解码器是共通的。视频编码器100接收未编码的帧数据101作为包括亮度样本和色度样 本的一系列帧。视频编码器100将帧数据101的各帧分割成例如可表示为编码单位(CU) 树的编码单位(CU)的层级集合。
[0088] 视频编码器100通过从多路复用器模块110输出已知为预测单位(PU) 120的预测 数据样本的阵列来进行工作。差模块115输出预测单位(PU) 120和从帧数据101所接收到 的数据样本的相应阵列之间的差,其中该差已知为残差数据样本122。
[0089] 来自差模块115的残差数据样本112被变换模块102接收到,其中该变换模块 102将该差从空间表示转换为频域表示,以针对变换树中的各变换单位(TU)创建变换系数 124。针对开发中的高效率视频编码(HEVC)标准,使用改进的离散余弦变换(DCT)来实现 向着频域表示的转换,其中在该改进的离散余弦变换中,对传统的DCT进行修改以使用移 位和加法来实现。然后将变换系数124输入至缩放和量化模块103,并且进行缩放和量化以 产生残差系数126。该缩放和量化处理导致精度损失。将残差系数126视为向着逆缩放模 块105的输入,其中该逆缩放模块105反转缩放和量化模块103所进行的缩放以产生作为 残差系数126的重新缩放版本的重新缩放变换系数128。还将残差系数126视为向着熵编 码器模块104的输入,其中该熵编码器模块104将残差系数编码在编码位流113中。由于 缩放和量化模块103所引起的精度损失,因此重新缩放变换系数128与原始变换系数124 不一致。然后将来自逆缩放模块105的重新缩放变换系数128输出至逆变换模块106。逆 变换模块106进行从频域向着空间域的逆变换,以产生与在解码器处所产生的空间域表示 相同的重新缩放变换系数128的空间域表示130。
[0090] 运动估计模块107通过将帧数据101与(通常配置在存储器306内的)帧缓冲器 模块112中所存储的先前帧数据进行比较来产生运动矢量132。然后将这些运动矢量132 输入至运动补偿模块108,其中该运动补偿模块108考虑到源自于运动矢量132的空间偏 移,通过对帧缓冲器模块112中所存储的样本进行滤波来产生帧间预测的参考样本134。尽 管图1没有示出,但还将运动矢量132作为句法元素传递至熵编码器模块104以编码在编 码位流113中。帧内预测模块109使用从求和模块114获得的样本138来产生帧内预测的 参考样本136,其中该求和模块114对多路复用器模块110的输出120和来自逆变换模块 106的输出130进行求和。
[0091] 可以使用帧内预测或帧间预测方法来对预测单位(PU)进行编码。根据由此得到 的编码位流113的期望位率和由于帧内预测或帧间预测方法而引入的图像质量失真量之 间的率失真权衡来判断是使用帧内预测还是帧间预测。多路复用器模块110根据利用尽管 未示出但本领域内众所周知的控制逻辑所确定的当前预测模式142,来选择来自帧内预测 模块109的帧内预测的参考样本136或来自运动补偿块108的帧间预测的参考样板134。 还将预测模式142提供至如图所示的熵编码器104,并且使用该预测模式142来确定或建立 如将说明的变换单位的扫描顺序。帧间预测仅使用对角扫描顺序,而帧内预测可以使用对 角扫描、水平扫描或垂直扫描顺序。
[0092] 求和模块114产生总和138,其中将该总和138输入至去块滤波器模块111。去块 滤波器模块111沿着块边界进行滤波,从而产生写入存储器306内所配置的帧缓冲器模块 112的去块样本140。帧缓冲器模块112是具有用以保持来自多个过去帧的数据以供将来 参考的充足容量的缓冲器。
[0093] 在视频编码器100中,通过求出输入帧数据101的数据样本和输入帧数据101的 数据样本的预测120之间的差来确定一个变换单位(TU)内的残差数据样本122。该差提供 变换单位(TU)的残差系数的空间表示。
[0094] 在熵编码器模块104的操作中,将变换单位(TU)的残差系数转换成二维有效性映 射。然后按已知为扫描顺序的特定顺序来扫描变换单位(TU)中的残差系数的有效性映射, 以形成被称为有效系数标志的列表的标志值的一维列表。可以描述该扫描顺序,或者可以 通过诸如利用预测模式142从帧内预测模块109所接收到的扫描模式等的扫描模式来指定 该扫描顺序。帧内预测模块109确定可用于选择扫描模式的帧内预测模式。例如,如果选 择帧内预测模式1 (垂直帧内预测),则如图12所示,使用水平扫描。如果选择帧内预测模 式〇 (平面帧内预测),则如图11所示,使用对角扫描,而如果选择帧内预测模式2 (水平帧 内预测),则如图13所示,使用垂直扫描。扫描模式可以是水平、垂直、对角或折线的。高 效率视频编码(HEVC)测试模型的版本5进行后向方向上的扫描,然而还可以进行前向方向 上的扫描。对于16X16、32X32、4X16、16X4、8X32和32X8的变换单位(TU),定义两级 扫描,其中在该两级扫描中,将变换单位(TU)分割成子块的集合,其中各子块的形状为正 方形。在上级中,通过使用诸如后向对角左下扫描等的扫描对各下级扫描来进行扫描。在 还已知为子块等级的下级中,也使用诸如后向对角左下扫描等的扫描来进行扫描。在HEVC 参考模型版本5. 0中,扫描操作开始在最末有效系数之后(其中,"之后"是在残差系数的 后向扫描的方向上)的一个残差系数,并且继续直到到达有效性映射的左上位置为止。具 有该特性并且符合HEVC参考模型版本5. 0的扫描操作已知为"后向扫描"。在HEVC参考软 件版本5.0中,通过对变换单位(TU)中的系数的坐标进行编码来用信号通知最末有效系数 的位置。熟悉本领域的人员应当理解,该上下文中的形容词"最末"的使用依赖于扫描的特 定顺序。根据一个扫描模式可以作为"最末的"非零残差系数或相应的1值有效系数标志 的内容根据其它扫描模式可能不是"最末的"。将表示在最末有效系数之前的各残差系数的 有效性的有效系数标志的列表编码在位流113中。由于先前针对最末有效系数标志的位置 的编码隐含表示该残差系数是有效的,因此不要求将最末有效系数标志值明确编码在位流 113 中。
[0095] 较大值的残差系数向着变换单位(TU)的左上方的聚集导致列表中较早的大部分 有效性标志是有效的,而稍后在列表中发现较少的有效性标志。
[0096] 熵编码器模块104还根据从缩放和量化模块103接收到的传入残差系数数据(或 残差系数)126产生句法元素。熵编码器模块104输出编码位流113,并且以下将更详细地 进行说明。对于开发中的高效率视频编码(HEVC)标准,将编码位流113描绘成网络抽象层 (NAL)单位。帧的各片包含在一个NAL单位中。
[0097] 针对熵编码器模块104中所实现的熵编码方法,存在几个替代方案。开发中的 高效率视频编码(HEVC)标准支持上下文自适应二进制算术编码(CABAC),其中在H. 264/ MPEG-4AVC中发现上下文自适应二进制算术编码(CABAC)的变形。替代的熵编码方案是本 领域内众所周知的概率区间划分熵(PIPE)编码器。
[0098] 对于支持多个视频编码方法的视频编码器100,根据编码器100的结构来选择所 支持的熵编码方法其中之一。此外,在对来自各帧的编码单位进行编码时,熵编码器模块 104编写编码位流113,以使得各帧具有一个或多个片,其中各片包含该帧的一部分的图像 数据。针对每帧产生一个片,这样减少了与描述各片边界相关联的开支。然而,还可以将帧 分割成多个片。
[0099] 可以将视频解码器200作为驻留在硬盘驱动器305上并且由处理器305来控制执 行的软件应用程序333的一个或多个软件代码模块来实现。特别地,视频解码器200包括各 自可以作为软件应用程序333的一个或多个软件代码模块来实现的模块202?208和210。 尽管参考高效率视频编码(HEVC)视频解码流水线来描述视频解码器200,但模块202? 208和210所进行的处理阶段对于采用诸如H. 264/MPEG-4AVC、MPEG-2和VC-1等的熵编码 的其它视频编解码器而言是共通的。
[0100] 诸如编码位流113等的编码位流被视频解码器200接收到。可以从存储器306、硬 盘驱动器310、⑶-ROM、蓝光(Blu-ray?)盘或其它计算机可读存储介质读取编码位流113。 可选地,可以从诸如连接至通信网络320的服务器或射频接收器等的外部源来接收编码位 流113。编码位流113包含表示要解码的帧数据的编码句法元素。
[0101] 将编码位流113输入至熵解码器模块202,其中该熵解码器模块202从编码位流 113中提取句法元素,并且将这些句法元素的值传递至视频解码器200中的其它块。可以存 在诸如参考熵编码器模块104所述等的在熵解码器模块202中所实现的多个熵解码方法。 将表示残差系数数据的句法元素数据220传递至逆缩放和变换模块203,并且将表示运动 矢量信息的句法元素数据222传递至运动补偿模块204。逆缩放和变换模块203对残差系 数数据进行逆缩放以创建重建变换系数。然后,诸如参考逆变换模块106所述的逆变换等, 模块203进行逆变换以将重建变换系数从频域表示转换成空间域表示,从而产生残差样本 224。
[0102] 运动补偿模块204将来自熵解码器模块202的运动矢量数据222与来自存储器 306内所配置的帧缓冲器块208的先前帧数据226相组合使用,以产生作为输出解码帧数据 的预测的针对预测单位(PU)的帧间预测的参考样本228。在句法元素表示使用帧内预测对 当前编码单位进行编码的情况下,帧内预测模块205使用在空间上邻接预测单位(PU)的样 本来产生针对预测单位(PU)的帧内预测的参考样本230。根据从求和模块210输出的总和 232来获得在空间上邻接的样本。多路复用器模块206根据利用编码位流113中的句法元 素所表示的当前预测模式来选择针对预测单位(PU)的帧内预测参考样本或帧间预测参考 样本。利用求和模块210将从多路复用器模块206输出的样本阵列234与来自逆缩放和变 换模块203的残差样本224相加,以产生总和232,然后将该总和232分别输入至去块滤波 器模块207和帧内预测模块205。与编码器100相对比,帧内预测模块205从熵解码器202 接收预测模式236。多路复用器206从熵解码器202接收帧内预测/帧间预测选择信号。 去块滤波器模块207沿着数据块边界进行滤波以使沿着数据块边界可见的伪影平滑化。将 去块滤波器模块207的输出写入存储器306内所配置的帧缓冲器模块208。帧缓冲器模块 208提供用以保持多个解码帧以供将来参考的充足存储量。还从帧缓冲器模块208输出解 码帧209。
[0103] 将参考图4来说明熵编码器104。将诸如残差系数401等的句法元素输入至二值 化模块404。将变换单位(TU)大小402输入至二值化模块404,并且该变换单位(TU)大小 402表示编码中的变换单位(TU)的大小。将扫描模式403输入至二值化模块404。二值化 模块404将各句法元素二值化成二进制数序列。各二进制数包括二进制数值406和上下文 索引405。二进制数值406和上下文索引405被上下文模型407接收到,其中该上下文模 型407输出根据上下文索引405所选择的上下文408。根据二进制数值405来更新上下文 408。用于更新上下文408的方法符合H. 264/MPEG-4AVC中的上下文自适应二进制算术编 码(CABAC)所使用的方法。二值化模块404根据以下参考图6所述的方法600来对残差系 数进行二值化。二进制算术编码器409使用上下文408和二进制数值406来将二进制数编 码在编码位流113中。
[0104] 以下将参考图5来说明熵解码器202。利用逆二值化模块503接收变换单位(TU) 大小502和扫描模式501。可以根据熵解码器202所确定出的预测模式236来确定扫描模 式501。如以上针对编码器100的帧内预测模块109所述,这可以通过基于预测模式236选 择扫描模式来进行。逆二值化模块503通过进行二值化模块404的逆操作来输出残差系数 509。针对要解码的各二进制数从逆二值化模块503输出上下文索引504。上下文模块505 输出上下文索引504所选择的上下文506。二进制算术解码器507使用上下文506对来自 编码位流113的二进制数值508进行解码。二进制数值508被上下文模型505接收到并且 用于更新上下文506。二进制数值508还被逆二值化模块503接收到。逆二值化模块503 根据以下参考图7所述的方法700来对残差系数进行解码。
[0105] 传统-对8 X 8TU讲行编码
[0106] 将参考图6和11来说明用于使用后向对角扫描对8X8变换单位(TU) 1100进行 编码的传统方法。图11所示的8X8的变换单位(TU)没有利用子块。将后向对角左下扫 描1101应用于8X8变换单位(TU) 1100整体。使用后向对角左下扫描1101的扫描模式来 应用图6的方法600。
[0107] 对最末有效系数位置进行编码的步骤601对8X8变换单位(TU) 1100中的最末有 效系数的位置进行编码。在通过在前向方向上应用后向对角左下扫描1101来搜索8X8变 换单位(TU) 1100的情况下,将最末有效系数的位置定义为最末非零残差系数的位置。
[0108] 查找8X8表的步骤602、对有效系数标志进行编码的步骤603和是否是子集中的 最末一个的步骤604对16个系数的子集中的所有有效系数进行编码。在采用后向扫描的 情况下,首先针对包含最末有效系数的子集运行步骤603和604。查找8X8表的步骤602 以索引形式将当前子集确定为保持8X8后向对角左下扫描1101的表。对有效系数标志进 行编码的步骤603使用二进制算术编码器409来将子集中的一个有效系数编码在编码位流 113中。一旦扫描了子集内的所有有效系数,则是否是子集中的最末一个的步骤604终止步 骤602和603的循环。对于后向扫描,该循环从最大值向下计数为零。除包含最末有效系 数的子集以外,最大值是16,其中该最大值被配置为将最末有效系数从子集扫描中省略。
[0109] 对残差等级进行编码的步骤605针对子集中的各有效系数来编码残差等级。通过 多个步骤来对子集中的残差等级进行编码,其中各步骤针对子集中的有效系数重复。首先, 对表示有效系数绝对值大于1的标志进行编码。其次,对表示绝对值大于1的有效系数中 的绝对值大于2的有效系数的标志进行编码。第三,对表示各有效系数的符号的标志进行 编码。第四,在值大于2的有效系数中,对这些有效系数中的量值-3进行编码。
[0110] 是否是最末子集的步骤606使得步骤602、603、604和605重复,直到在根据需要 对子集4、3和2中的任意子集进行编码之后、对变换单位(TU) 1100中的第一个子集进行了 编码为止,然后方法600终止。
[0111] 将参考图6和12来说明用于使用后向水平扫描对8X8变换单位(TU) 1200进行 编码的传统方法。8X8变换单位(TU) 1200没有利用子块。将后向水平扫描1201应用于 8X8变换单位(TU) 1200整体。使用所定义的扫描模式来应用方法600。
[0112] 将参考图6和13来说明用于使用后向垂直扫描对8X8变换单位(TU) 1300进行 编码的传统方法。8X8变换单位(TU) 1300没有利用子块。将后向垂直扫描1301应用于 8X8变换单位(TU) 1300整体。使用所定义的扫描模式来应用方法600。
[0113] 传统-对8 X 8TU讲行解码
[0114] 将参考图7和11来说明用于使用后向对角扫描来对8X8变换单位(TU) 1100进 行解码的传统方法。8X8变换单位(TU) 1100没有利用子块。将后向对角左下扫描1101应 用于8X8变换单位(TU) 1100整体。使用所定义的扫描模式来应用方法700。
[0115] 对最末有效系数位置进行解码的步骤701对8X8变换单位(TU) 1100中的最末有 效系数的位置进行解码,其中该最末有效系数在前向方向上应用扫描模式的情况下被定义 为最末非零残差系数。
[0116] 查找8X8位置表的步骤702、对有效系数进行解码的步骤703和是否是子集中的 最末一个的测试步骤703通过从最末位置向着开头位置针对子集中的各位置进行重复、并 且针对各位置解码一个有效系数标志,来对子集中的有效系数标志进行解码。查找8 X 8位 置表的步骤702针对子集内的当前有效系数来确定8X8变换单位(TU) 1100内的位置。对 于包含最末有效系数的子集,对最末位置进行定义,以使得将最末有效系数位置从子集扫 描中排除,否则将最末位置设置为16。
[0117] 对残差等级进行解码的步骤705对子集中的各有效系数的量值和符号进行解码。 对残差等级进行解码的步骤705通过针对子集中的有效系数重复四次来对这些有效系数 的残差等级进行解码。在第一次重复时,对表示有效系数的绝对值大于1的标志进行解码。 在第二次重复时,对表示大于1的有效系数的绝对值还大于2的标志进行解码。在第三次 重复时,对表示各有效系数的符号的标志进行解码。在第四次重复时,对于大于2的有效系 数,对量值-3进行解码,从而使得能够针对量值已知大于2的情况重建残差量值。
[0118] 是否是最末子集的测试步骤706使得步骤702、703、704和705重复,直到在根据 需要对子集4、3和2中的任意子集进行解码之后、对变换单位(TU) 1100中的第一个子集进 行了解码为止,然后方法700终止。
[0119] 将参考图7和12来说明用于使用后向水平扫描对8X8变换单位(TU) 1200进行 解码的传统方法。8X8变换单位(TU) 1200没有利用子块。将后向水平扫描1201应用于 8X8变换单位(TU) 1200整体。使用所定义的扫描模式来应用方法700。
[0120] 将参考图7和13来说明用于使用后向垂直扫描对8X8变换单位(TU) 1300进行 解码的传统方法。8X8变换单位(TU) 1300没有利用子块。将后向垂直扫描1301应用于 8X8变换单位(TU) 1300整体。使用所定义的扫描模式来应用方法700。
[0121] 实施例-对8 X 8TU讲行编码
[0122] 将参考图8、1(^、1(?、14、154、158和15(:来说明用于使用后向对角左下扫描对 8X8变换单位(TU) 1500进行编码的根据本发明的方法800。图15A所示的8X8变换单位 (TU) 1500的子块大小为4X4。变换单位(TU) 1500表示为了进行编码而要扫描的系数的正 方形下级层。在诸如图15C所示的子块1502等的各子块内,如图15C所示,应用后向对角左 下扫描1505。在对8X8变换单位(TU) 1500中的子块进行扫描的情况下,如图15B所示,将 2X2后向对角左下上层扫描1504应用于其正方形上级层1503表示。如图15B所示,上级 层1503包括下级层子块1502的2X2配置。这样,有效系数组标志表示非重叠区域,使得 子块在下级层中没有重叠。因此,图15A的扫描模式1501表示根据图15B的模式1504重 复了四次的图15C的模式1505的组合。该方法的一个优点在于,代替如图11、12和13那 样存储64 (8 X 8)大小的阵列的模式,可以使用4 (2 X 2)+16 (4 X 4) = 20大小的阵列来存储 模式1501,这使得内存使用相应地减少。此外,应当理解,例如2 X 2、4 X 4和8 X 8的任意阵 列大小是正方形。
[0123] 使用所定义的子块大小和上层大小以及扫描模式来应用方法800。方法800使用 有效系数组来对变换单位(TU)的残差系数进行编码,并且以下将参考图8来进行说明。将 变换单位(TU)分割成多个子块。图10A示出变换单位(TU)的示例性正方形上层1000。
[0124] 作为图15A的8X8变换单位(TU) 1500的示例的图14所示的8X8变换单位 (TU) 1400按两层(上下)层级对残差系数进行编码。将8X8变换单位(TU) 1400分割成诸 如4X4子块1401等的相等大小的子块。利用上层1402来表示变换单位(TU) 1400中的子 块。上层1402包括各自可以计算或推断出的诸如有效系数组标志1403等的有效系数组标 志。在计算出诸如有效系数组标志1403等的有效系数组标志的情况下,有效系数组标志表 示诸如子块1401等的相应子块内的诸如残差系数1404等的任何残差系数是否是有效的。 在推断出有效系数组标志的情况下,相应子块内的所有残差系数可能是无效的。
[0125] 在图8所示的方法800中,对最末有效系数位置进行编码的步骤801沿着两级扫 描路径对最末有效系数的坐标进行编码。查找2 X 2表位置的步骤802通过向2 X 2后向对 角左下上层扫描1504应用查找来确定当前子块的位置。这样提供了对相关子块1502的正 确识别。查找4X4表位置的步骤803通过向4X4后向对角左下扫描1505进行查找来确 定当前有效系数的位置内的偏移,由此识别当前4X4子块1502内的正确位置。确定有效 系数标志的步骤804测试子块1502内以及8X8变换单位(TU) 1500内的按所确定的偏移 的残差系数的值,其中在残差系数为非零的情况下该值是有效的,否则在其它情况(零值) 下该值是无效的。
[0126] 是否是子块中的最末一个的测试步骤805使步骤803和804重复,以使得对不包 含最末有效系数的子块内的所有位置进行测试,并且对于包含最末有效系数的子块,对最 末有效系数之前的所有位置(其中,"之前"假定在前向方向上应用扫描)进行测试。对于 诸如模式1505等的后向扫描,子块中的最末一个将始终是左上位置。对于前向扫描,子块 中的最末一个针对不具有最末有效系数位置的子块而言将是右下位置,并且将是按前向扫 描的顺序的紧挨最末有效系数位置之前的位置。
[0127] 确定有效系数组标志的步骤806确定有效系数标志,以表示子块内的任意(至少 一个)有效系数标志是否为1值。对于包含最末有效系数的子块,推断出有效系数组标志 为1值。对于位于变换单位(TU) 1500的左上角的子块,还推断出有效系数组标志为1值。 对有效系数组进行编码的步骤807对用以确定有效性映射的包含在子块中的部分的信息 进行编码。首先,将没有推断出的有效系数组标志编码在位流中。其次,如果有效系数组标 志为1值,则将有效性映射的包含在子集中的部分编码在位流中。除将有效性映射配置成 2 X 2上层子块和4 X 4下层子块以外,对残差值进行编码的步骤808以与对残差等级进行编 码的步骤605相同的方式进行工作。是否是最末子块的测试步骤809使得能够从包含最末 有效系数的子块到位于变换单位(TU) 1500的左上角的子块针对这些子块进行重复。在对 该子块进行编码之后,方法800终止。本领域技术人员应当理解,方法800使得能够在视频 编码器100所支持的所有变换单位(TU)大小中使用4X4子块扫描。
[0128] 将参考图10A所示的示例性上层1000来说明确定有效系数组标志时的上层的操 作。示例性上层1000针对各子块包括一个significant_coefTgroup_flag。对于示例性上 层1000中的各子块,计算或推断significant_coeffgroup_flag。对于示例性上层1000中 的左上方的子块,significant_coeffgroup_flag始终被推断为1值。对于示例性上层1000 中的包含最末有效系数的子块,significant_coeffgroup_flag也被推断为1值。对于示例 性上层1000中的其它位置,仅在诸如significant_coeffgroup_flag A1002等的右方近邻 和诸如significant_coeffgroup_flag B1003等的下方近邻这两者都为1值的情况下,才 推断出诸如 significant_coeffgroup_flag X1001 等的 significant_coeffgroup_flag 为 1 值。在右方近邻或下方近邻的significant_coeffgroup_flag落在示例性上层1000外的 情况下,针对该近邻推断出〇值。在推断出significant_coeffgroup_flag的情况下,没有 将该significant_coeffgroup_flag编码在编码位流113中。在没有推断出significant# coeffgroup_flag的情况下,如果相应子块内的所有significant_coeff_flag已知为0 值,则计算出〇值的significant_coeffgroup_flag。可选地,如果相应子块内的至少一个 significant_coeff_flag 为 1 值,贝U计算出 1 值的 significant_coeffgroup_flag。使用后 向对角左下扫描来将所计算出的示例性上层1000的significant_coeffgroup_flag的值编 码在编码位流113中。
[0129] 例如,参考图10B,在上层1004中,基于右方近邻和下方近邻推断出诸如 significant_coefTgroup_flagl005 等的力口阴影的 significant-coeffgroup-flag 为 1 值, 因此没有将这些significant_coeffgroup_flag编码在编码位流113中。significant# coeffgroup_flagl006包含最末有效系数,因此被推断为1值。诸如significant# coeffgroup_flagl007 等的 significant_coeffgroup_flag 位于最末有效系数之后,因此 针对这些位置没有进行值的推断、计算或编码。位于上层804的左上方的significant_ coeffgroup_flagl008始终被推断为1值。
[0130] 在对上层中的各significant_coeffgroup_flag进行编码的情况下,从上下文模 型404中选择上下文。关于对亮度样本进行编码的变换单位(TU)和对色度样本进行编 码的变换单位(TU),可利用两个上下文,从而得到用于对示例性上层1000进行编码的总 共四个上下文。针对示例性上层1000中的各significant_coeffgroup_flag的上下文 选择依赖于右方近邻和下方近邻。作为示例情况,通过对significant_coeffgroup_flag A1002 和 significant_coeffgroup_flag B1003 的值进行逻辑或(OR)来确定 significant# coeffgroup_flag X1001的上下文。为了上下文选择的目的,推断出落在示例性上层1000 外的左方近邻和下方近邻为0值。
[0131] 将参考图8、16A、16B和16C来说明用于使用后向水平扫描对8X8变换单位 (TU) 1600进行编码的根据本发明的方法。8 X 8变换单位(TU) 1600的下级子块大小为4X 4。 在诸如子块1602等的各子块内,应用后向水平扫描1605,从而得到图16A所示的整个扫描 模式1601。为了扫描8X8变换单位(TU) 1600中的子块1602,应用2X2后向水平上层扫 描1604。使用所定义的子块大小和上层大小以及扫描模式来应用方法800。
[0132] 将参考图8、17A、17B和17C来说明用于使用后向垂直扫描对8X8变换单位 (TU) 1700进行编码的根据本发明的方法。8X8变换单位(TU) 1700的子块大小为4X4。在 诸如图17C的子块1702等的各下层子块内,应用后向垂直扫描1705。在扫描8X8变换单 位(TU) 1700中的子块的情况下,应用图17B所示的2X2后向垂直上层扫描1704,从而得到 图17A所示的整个扫描模式1701。使用所定义的子块大小和上层大小以及扫描模式来应用 方法800。
[0133] 实施例-对8 X 8TU讲行解码
[0134] 将参考图9、15A、15B和15C来说明用于对8X8变换单位(TU) 1500进行解码的根 据本发明的方法。8X8变换单位(TU) 1500的子块大小为4X4。在诸如子块1502等的各 子块内,应用后向对角左下扫描1505。在扫描8X8变换单位(TU) 1500中的子块的情况下, 应用2X2后向对角左下扫描1504,从而得到整个扫描模式1501。使用所定义的子块大小 和上层大小以及扫描模式来应用方法900。
[0135] 将参考图9来说明用于使用有效系数组对变换单位(TU)的残差系数进行解码的 方法900。将变换单位(TU)分割成多个子块。对最末有效系数位置进行解码的步骤901沿 着两级扫描路径1501对变换单位(TU) 1500中的最末有效系数的坐标进行解码。查找2X2 表位置的步骤902通过向2 X 2后向对角左下上层扫描1504应用查找来确定当前子块的位 置。对有效系数组进行解码的步骤903使用与确定有效系数组标志的步骤806中所述的处 理类似的处理来确定有效系数标志的推断值,或者根据编码位流113对一个有效系数组标 志进行解码。测试有效系数组标志的步骤904测试所确定的有效系数组标志的值。如果标 志为1值,则控制进入查找4 X 4表位置的步骤905,否则在标志为0值的情况下,控制进入 是否是最末子块的测试步骤909。步骤905通过向4X4后向对角左下扫描进行查找来确定 当前有效系数的位置内的偏移。将查找4X4表位置的步骤905的结果与查找2X2表位置 的步骤902的结果相组合以将位置偏移提供至8 X 8变换单位(TU) 1500内。然后,对有效系 数标志进行解码的步骤906对诸如子块1502等的子块内的一个残差系数的有效系数标志 进行解码。在到达子块内的最末有效系数、子块中的先前有效系数不为1值、并且计算(即, 没有推断)相应的有效系数组标志的情况下,推断出子块内的最末有效系数为1值。是否 是子块中的最末一个的测试步骤907测试子块内的位置,从而循环步骤905和906,直到处 理了整个4X4子块1502为止。对于包含最末有效系数标志的要处理的第一个子块,在子 块内仅针对之后的位置(其中,将"之后"定义为按后向扫描顺序)进行重复。在处理了子 块的最末一个位置的情况下,对残差等级进行解码的步骤908以与对残差等级进行解码的 步骤705相同的方式对残差等级进行解码。最末子块的测试步骤909对变换单位(TU) 1500 中的所有子块进行重复,通过步骤902?908对从包含最末有效系数并且以后向方式工作 的子块起、直到位于变换单位(TU) 1500的左上角的子块为止的各子块进行处理,然后方法 900终止。本领域技术人员应当理解,方法900使得能够在视频解码器200所支持的所有变 换单位(TU)大小中使用4X4子块扫描。
[0136] 将参考图9、16Α、16Β和16C来说明用于对8X8变换单位(TU) 1600进行解码的根 据本发明的方法。8X8变换单位(TU) 1600的子块大小为4X4。在诸如子块1602等的各 子块内,应用后向水平扫描1605。在对8X8变换单位(TU) 1600中的子块进行扫描的情况 下,应用2 X 2后向水平扫描1604。使用所定义的子块大小和上层大小以及扫描模式来应用 方法900。
[0137] 将参考图9、17A、17B和17C来说明用于对8X8变换单位(TU) 1700进行解码的根 据本发明的方法。8X8变换单位(TU) 1700的子块大小为4X4。在诸如子块1702等的各 子块内,应用后向垂直扫描1705。在对8X8变换单位(TU) 1700中的子块进行扫描的情况 下,应用2 X 2后向垂直扫描1704。使用所定义的子块大小和上层大小以及扫描模式来应用 方法900。
[0138] 实施例-仅针对8X8夺换单位的对角h层扫描
[0139] 应用于变换单位(TU) 1500、1600和1700的方法800和900分别从子块层向着上 层应用相同的扫描模式。一个替代方案是对于变换单位(TU) 1500、1600和1700,针对上层 扫描仅使用后向对角左下扫描。此外,针对所有的变换单位大小,可以将上层扫描设置为后 向对角左下。然后,上层的扫描模式不依赖于下层的扫描模式。如此使得不需要针对2X2 后向水平扫描1604和2X2后向对角垂直扫描1704的内存存储量。
[0140] 实施例-将8X8夺换单位扫描重新用于32X32 h层扫描
[0141] 32X32变换单位利用作为后向对角左下扫描的8X8上层扫描。可以利用根据 2X2后向对角扫描1504和4X4后向对角扫描1505所推导出的8X8后向对角扫描1505 来替换8X8上层扫描。这种配置使得能够去除8X8上层扫描所用查找表,从而降低内存 存储量要求。
[0142] 本领域技术人员应当理解,方法600和700在利用所指定的子块大小进行应用的 情况下,能够减少存在于视频编码器100或视频解码器200中的表的数量。
[0143] 实施例-#用偏移的扫描
[0144] 图18A?18C示出如下的进一步实现:根据二维(2D)阵列来推导值的线性阵列, 并且在该线性阵列中使用偏移以建立2D阵列的不同子块之间的区别。图18A示出按作为 前向-后向扫描(水平和从左向右)的A、B、C和D的顺序来将8X8变换单位作为4X4个 单位(子块)中的4个来访问,其中根据前向-后向扫描来穿过各子块。本领域技术人员 应当理解,图18A?18C所示的实现还能够在后向方向上扫描8X8变换单位。
[0145] 如图18B所示,各子块的扫描得到值的相应线性阵列。在期望的情况下,可以如此 存储图18B的四个阵列以固有地定义相应变换单位的值的扫描的访问顺序。
[0146] 可选地,如图18C所示,可以将图18A的变换单位的扫描存储作为16( = 4X4)个 值的单个线性阵列,其中使用偏移(X)来重建4个阵列。通过使X从0、4、32和36改变,可 以重建图18B的四个阵列中的每一个。
[0147]
[0148] 当前所公开的各种配置提供了针对具有正方形上级层和正方形下级层的变换单 位的编码和解码,其中该上级层表示最多四个有效系数组标志(例如,2X2)的正方形配 置。例如,这从图15B、16B和17B可看出。这样允许根据应用于4X4子块(分别为图15C、 16C和17C)的期望扫描模式来高效地穿过8X8的正方形下级层(分别为图15A、16A和 17A)。如此,可以使用4X4下层扫描和2X2上层扫描的组合来对8X8变换单位进行编码 或解码。
[0149] 产业h的可利用件
[0150] 所述的配置适用于计算机和数据处理行业,特别适用于对诸如视频信号等的信号 进行编码或解码的数字信号处理。
[0151] 前述仅说明本发明的一些实施例,并且可以在没有背离本发明的范围和精神的情 况下对本发明进行修改和/或改变,其中这些实施例仅是示例性而非限制性的。
[0152] (仅限澳大利亚)在本说明书的上下文中,词语"包括"意味着"主要但未必仅 包括"或"具有"或"包含",而不是"仅由…组成"。词语"包括(comprising) "的诸如 "comprise"和"comprises"等的词尾变化具有相应的变化含义。
【权利要求】
1. 一种用于从视频数据的位流解码变换单位的残差系数的方法,所述方法包括以下步 骤: 从视频数据的所述位流接收所述变换单位,所述变换单位具有正方形上级层和正方形 下级层,所述正方形上级层表示最多四个有效系数组标志的正方形配置,所述有效系数组 标志各自表示所述正方形下级层的非重叠区域; 针对所接收到的所述变换单位确定所述正方形上级层的所述有效系数组标志;以及 根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值,以对视 频数据的所述位流的所述变换单位进行解码。
2. 根据权利要求1所述的方法,其中,利用所述最多四个有效系数组标志所表示的所 述非重叠区域中的各非重叠区域是各自具有16个残差系数的正方形区域。
3. 根据权利要求1所述的方法,其中,所述正方形上级层具有四个有效系数组标志,所 述方法还包括以下步骤: 通过向预定的扫描模式应用偏移,来确定所述正方形下级层的所述非重叠区域各自的 扫描模式。
4. 根据权利要求1所述的方法,其中,确定所述正方形上级层的所述有效系数组标志 的步骤包括:对编码在所述位流中的有效系数组标志进行解码。
5. 根据权利要求1所述的方法,其中,确定所述正方形上级层的所述有效系数组标志 的步骤包括:推断所述有效系数组标志中的至少一个。
6. 根据权利要求1所述的方法,其中,将所述变换单位的所述正方形下级层形成为子 块,并且根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值的步 骤包括针对所述变换单位的所述子块中的各子块进行重复。
7. 根据权利要求6所述的方法,其中,所述重复形成表示所述子块中的各子块的线性 阵列,其中使用相应的偏移值来根据所述线性阵列重建各子块。
8. 根据权利要求1所述的方法,其中,所述正方形上级层表示四个所述有效系数组标 志的正方形配置。
9. 根据权利要求1所述的方法,其中,根据应用于所述变换单位的帧内预测模式来选 择所述变换单位的所述正方形下级层的扫描方向。
10. 根据权利要求9所述的方法,其中,根据应用于所述变换单位的帧内预测模式来选 择所述变换单位的所述正方形上级层的扫描方向。
11. 根据权利要求9所述的方法,其中,所述变换单位的所述正方形上级层的扫描方向 是对角的,并且不依赖于所述变换单位的所述正方形下级层的扫描方向。
12. -种用于将变换单位的残差系数编码在视频数据的位流中的方法,所述方法包括 以下步骤: 接收所述变换单位的正方形下级层的残差系数的值; 针对所述变换单位的正方形上级层确定有效系数组标志,所述正方形上级层表示最多 四个有效系数组标志的正方形配置,所述有效系数组标志各自表示所述正方形下级层的非 重叠区域;以及 对所述正方形下级层的残差系数的值和所述正方形上级层的所述有效系数组标志进 行编码,以将所述变换单位编码在视频数据的所述位流中。
13. -种用于从视频数据的位流解码变换单位的残差系数的方法,所述方法包括以下 步骤: 从视频数据的所述位流接收所述变换单位,所述变换单位具有正方形上级层和正方形 下级层,所述正方形上级层表示有效系数组标志的正方形配置,所述有效系数组标志各自 表示所述正方形下级层的非重叠区域; 根据帧内预测模式来确定所述正方形上级层和所述正方形下级层的扫描模式,其中所 述正方形上级层和所述正方形下级层的扫描模式是相同的; 根据所确定的扫描模式,针对所接收到的所述变换单位来确定所述正方形上级层的所 述有效系数组标志;以及 根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值,以对视 频数据的所述位流的所述变换单位进行解码。
14. 一种用于将变换单位的残差系数编码在视频数据的位流中的方法,所述方法包括 以下步骤: 接收所述变换单位的正方形下级层的残差系数的值; 针对所述变换单位的正方形上级层确定有效系数组标志,所述正方形上级层表示有效 系数组标志的正方形配置,其中所述有效系数组标志各自表示所述正方形下级层的非重叠 区域; 根据帧内预测模式来确定所述正方形上级层和所述正方形下级层的扫描模式,其中所 述正方形上级层和所述正方形下级层的扫描模式是相同的;以及 根据所确定的扫描模式来对所述正方形下级层的残差系数的值和所确定的有效系数 组标志进行编码,以将所述变换单位编码在视频数据的所述位流中。
15. -种记录有程序的计算机可读存储介质,所述程序能够由计算机化设备来执行以 从视频数据的位流解码变换单位的残差系数,所述程序包括以下代码: 用于从视频数据的所述位流接收所述变换单位的代码,所述变换单位具有正方形上级 层和正方形下级层,所述正方形上级层表示最多四个有效系数组标志的正方形配置,所述 有效系数组标志各自表示所述正方形下级层的非重叠区域; 用于针对所接收到的所述变换单位确定所述正方形上级层的所述有效系数组标志的 代码;以及 用于根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值、以 对视频数据的所述位流的所述变换单位进行解码的代码。
16. -种记录有程序的计算机可读存储介质,所述程序能够由计算机化设备来执行以 从视频数据的位流解码变换单位的残差系数,所述方法包括以下步骤: 从视频数据的所述位流接收所述变换单位,所述变换单位具有正方形上级层和正方形 下级层,所述正方形上级层表示有效系数组标志的正方形配置,所述有效系数组标志各自 表示所述正方形下级层的非重叠区域; 根据帧内预测模式来确定所述正方形上级层和所述正方形下级层的扫描模式,其中所 述正方形上级层和所述正方形下级层的扫描模式是相同的; 根据所确定的扫描模式,针对所接收到的所述变换单位来确定所述正方形上级层的所 述有效系数组标志;以及 根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值,以对视 频数据的所述位流的所述变换单位进行解码。
17. -种视频解码器,包括: 用于接收视频数据的位流的部件; 用于从视频数据的所述位流接收变换单位的部件,所述变换单位具有正方形上级层和 正方形下级层,所述正方形上级层表示最多四个有效系数组标志的正方形配置,所述有效 系数组标志各自表示所述正方形下级层的非重叠区域; 用于针对所接收到的所述变换单位确定所述正方形上级层的所述有效系数组标志的 部件;以及 用于根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值、以 对视频数据的所述位流的所述变换单位进行解码的部件。
18. -种视频解码器,包括: 用于接收视频数据的位流的部件; 用于从视频数据的所述位流接收变换单位的部件,所述变换单位具有正方形上级层和 正方形下级层,所述正方形上级层表示有效系数组标志的正方形配置,所述有效系数组标 志各自表示所述正方形下级层的非重叠区域; 用于根据帧内预测模式来确定所述正方形上级层和所述正方形下级层的扫描模式的 部件,其中所述正方形上级层和所述正方形下级层的扫描模式是相同的; 用于根据所确定的扫描模式、针对所接收到的所述变换单位来确定所述正方形上级层 的所述有效系数组标志的部件;以及 用于根据所确定的所述有效系数组标志来确定所述正方形下级层的残差系数的值、以 对视频数据的所述位流的所述变换单位进行解码的部件。
【文档编号】H04N19/46GK104094602SQ201380006207
【公开日】2014年10月8日 申请日期:2013年1月18日 优先权日:2012年1月19日
【发明者】克里斯托弗·詹姆斯·罗斯沃恩, 埃尔文·阿积亚·拉碧欧斯 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1