选择扫描顺序的方法和装置与流程

文档序号:15577079发布日期:2018-09-29 05:43阅读:451来源:国知局

本发明大体涉及视频处理领域,以及选择扫描顺序的方法和装置,特别是内容自适应扫描顺序选择,并且具体地,涉及一种用于对视频序列的块的系数进行解码的解码器,以及一种用于对视频序列的块的系数进行编码的编码器。



背景技术:

数字视频通信和存储应用通过数字相机、蜂窝无线电话、笔记本计算机、广播系统和视频电话会议系统等多种数字设备来实现。视频压缩是这些应用中最重要的和最具挑战性的任务之一。视频压缩的任务是复杂的,并受到两个相互矛盾的参数的约束:压缩效率和计算复杂度。itu-th.264/avc或者高效视频编码(highefficiencyvideocoding,简称hevc)标准itu-th.265/hevc等视频编码标准很好地权衡了这些参数。由于这个原因,支持视频编码标准几乎是对任意视频压缩应用的强制性要求。

现有技术的视频编码标准是将源图片分割成块。对这些块的处理取决于它们的大小、空间位置和编码器指定的编码模式。根据预测类型,可将编码模式分为两组:帧内和帧间预测模式。帧内预测模式使用相同图片的像素来生成参考样本以计算正在重构的块的像素的预测值。帧内预测也可以称为空间预测。帧间预测模式旨在用于时间预测,并使用前一个或后一个图片的参考样本来预测当前图片的块的像素。在预测阶段之后,对原始信号与预测信号之间的差值即预测误差进行变换编码。然后,通过用于avc/h.264和hevc/h.265的基于上下文的自适应二进制算术编码(context-adaptivebinaryarithmeticcoding,简称cabac)等的熵编码器对变换系数和边信息进行编码。

显然,针对不同的预测模式,预测误差具有不同的统计数字,并且预测误差强烈依赖于待预测的内容。因此,从不同情况下的压缩性能的角度来看,不同的变换是有益的。为了提高变换编码阶段的编码效率,针对不同的特定情况可以使用具有不同能量压缩的多个变换。

iso/iec_23008-2-2013中2013年11月的《信息技术—异构环境中高效编码和媒体分发第2部分:高效视频编码》中已知的itu-th.265/hevc标准宣布了一套现有技术的视频编码工具,合理地权衡了编码效率和计算复杂度。在《ieee视频技术电路和系统汇刊》2012年12月第22卷第12期中的garyj.sullivan的论文《高效视频编码(highefficiencyvideocoding,简称hevc)标准概述》中给出了itu-th.265/hevc标准概述。其全部内容通过引用并入本文。

与itu-th.264/avc视频编码标准类似,hevc/h.265视频编码标准将源图片划分成块,例如编码单元(codingunit,简称cu)。可以进一步地将每个cu分成更小的cu或预测单元(predictingunit,简称pu)。pu可以根据应用于pu的像素的处理类型进行帧内或帧间预测。在帧间预测的情况下,pu表示运动补偿通过为pu指定的运动矢量处理的像素面积。对于帧内预测,pu指定一组变换单元(transformunit,简称tu)的预测模式。tu可以具有不同的大小(例如,4×4、8×8、16×16和32×32像素),并且可以采用不同的方式进行处理。tu中进行变换编码,即hevc/h.265标准中利用离散余弦变换或离散正弦变换对预测误差进行变换。将变换编码应用于帧内编码块,并对帧内编码块进行量化。因此,重建像素包含量化噪声和可能影响预测精度的阻塞伪像。

除了hevc/h.265,在所有现有视频编码标准中都仅使用一个变换以保持设计简单。hevc/h.265标准指定了用于帧内编码的两个变换:用于4×4块的dst,该变换为小的帧内预测块提供更好的能量压缩;以及用于其它块的dct。

另外,hevc/h.265标准采用依赖模式系数扫描(mode-dependentcoefficientscan,简称mdcs)技术。其基本思想是选择受限于所选帧内预测模式的扫描顺序。对于帧内编码块,通过帧内预测模式来确定4×4变换块(transformblock,简称tb)和8×8亮度tb的扫描顺序,参见joelsole、rajanjoshi、nguyennguyen、tianyingji、martakarczewicz、gordonclare、felixhenry和albertodueňas发表在《ieee视频技术电路和系统汇刊》2012年12月第22卷第12期第1765-1777页的《hevc变换系数编码》。35个帧内预测模式中的每一个帧内预测模式都使用三种可能的扫描顺序中的一种:对角扫描、水平扫描或垂直扫描。查找表将帧内预测模式映射到其中一种扫描。

该工具根据帧内预测模式利用残余的水平或垂直相关性。例如,水平预测模式中,变换系数能量聚集在前几列,所以垂直扫描导致只有较少数分组进行了熵编码。与垂直预测类似,水平扫描也是有益的。实验表明,对较大tb进行水平和垂直扫描时,压缩效率特别低,所以这些扫描仅限应用于那两种较小的tb。

在yung-lyullee、ki-hunhan、dong-gyusim、和jeongilseo发表在《etrijournal》2006年10月第28卷第5期第668-671页的文档《h.264/avc帧内编码自适应扫描》中、在byeong-doochoi、jin-hyungkim和sung-jeako发表在《etrijournal》2007年10月第29卷第5期第694-696页的文档《基于帧内预测模式的自适应系数扫描》中以及在md.salahuddinyusuf和mohiuddinahmad发表在《国际电气电子与仪表工程高级研究期刊》2013年8月第2卷第8期第4120-4126页的文档《一种新的avs帧内编码方向空间预测扫描方案》中考虑了类似于mdcs的技术。这些扫描顺序不同于hevc/h.265标准中的扫描顺序。此外,提出将帧内预测模式映射到扫描顺序。

另外,baekeunlee、jaecheolkwon和jooyoungkim于2012年11月8日在美国专利申请出版物发表的专利号为pct/kr2012/009373的专利us2014/0314143a1《基于预测单元的分区模式的系数扫描方法和装置》中的分割模式以及thai-hanguyen、yoichiyagasaki和alitabatabai于2011年4月1日在美国专利申请出版物发表的专利us2011/0249726a1《qp自适应系数扫描和应用》中的量化参数(quantizationparameter,简称qp)可以用作选择帧内编码和帧间编码扫描顺序的特征。

因此,扫描顺序有很多种,且可以对相同的模式和tu大小有效。这就主要解释了为什么基于或类似于比率失真优化(rate-distortionoptimization,简称rdo)如基于失真或活动分析的程序可以用于最终决定应该选择怎样的潜在扫描顺序。

muhammedzeydcoban和martakarczewicz于2011年10月17日在美国专利申请出版物发表的专利us2012/0099646a1《视频编码变换系数的自适应扫描》中有如何在基于rdo的程序中选择扫描顺序的例子。因此,这种方法的主要优点是所选扫描顺序提供了最高编码增益。因此,如果不考虑信令开销,则该方法的编码效率高于其它方法的编码效率。

现有技术提出了两种用于选择提供最高编码增益的扫描顺序的算法。这两种算法之间的主要区别在于,在自适应扫描顺序选择技术不适用的情况下,使用不同的机制来检测这种tb,即使用默认的扫描顺序。在第一种算法中,将有效变换系数的数量与阈值进行比较。在第二种算法中,将最后一个有效变换系数的位置与阈值位置进行比较。与先前描述的技术相反,在这两种情况下都应显示所选扫描顺序,使得解码器可以将正确的扫描顺序应用于所接收的变换系数。所以,使用基于rdo的决策程序的方法的主要缺点是信令开销。

与mdcs相比,提高压缩效率的另一种方式是根据所收集的具有与帧内预测模式、分割模式、块大小等参数相似的值的块的统计数字来调整扫描顺序,而不是使用先验定义的扫描顺序。因此,将初始扫描顺序定义为在统计数字不够的情况下使用。当用于收集统计数字的块的数量超过阈值时,可以基于收集的统计数字来调整扫描顺序。参见yanye和martakarczewicz于2008年6月4日在美国专利申请发表的专利us8,488,668b2《视频编码的自适应系数扫描》。类似的方法参见sridharsrinivasan于2005年11月30日在欧洲专利说明书发表的专利ep1679903b1《自适应系数扫描顺序》。

然而,这样的基于先前编码或解码的块的收集的统计数字并不总是提供比z形扫描、对角扫描、垂直扫描、水平扫描、顺时针扫描和逆时针螺旋扫描等预定义扫描顺序更高的编码效率。



技术实现要素:

有鉴于上述提及的缺点和问题,本发明旨在改善现有技术。特别地,本发明的目的是提供一种视频解码器、一种解码方法、一种视频编码器以及一种编码方法,以提高编码效率。

本发明尤其旨在通过改进扫描顺序将系数矩阵扫描为一个或多个系数矢量或者将一个或多个系数矢量逆扫描为系数矩阵来提高编码效率。

此外,本发明旨在通过减少信令开销来提高编码效率。

本发明上述提及的目标通过所附独立权利要求提供的方案实现。本发明有利的实现方案在各自的从属权利要求中进一步定义。

本发明第一方面提出了一种用于解码比特流中视频序列的块的系数的解码器。所述解码器包括:扫描模式列表模块,用于提供一个或多个预定义的扫描顺序。在本领域中扫描顺序也称为扫描模式。所述解码器包括:扫描顺序生成器,用于生成一个或多个扫描顺序。所述解码器包括:扫描顺序选择器,用于在所述比特流中包含的扫描顺序信息的基础上从所述预定义的和生成的扫描顺序中为每个块选择扫描顺序。所述解码器包括:解码模块,用于解码所述比特流中每个块的一个或多个系数矢量。所述解码器包括:解串器,用于根据为每个块选择的扫描顺序逆扫描所述块的一个或多个系数矢量,以便获得系数矩阵。所述扫描顺序生成器用于根据一个或多个先前获得的所述视频序列的块的系数矩阵生成所述一个或多个扫描顺序。

因此,本发明的优点在于它提供了预定义的扫描顺序和内容自适应生成的扫描顺序。通过扩展可用扫描顺序的集合,可以相应地提高量化的比率失真效率。

根据本发明第一方面,在所述解码器的一种实现方式中,所述扫描模式列表模块用于为多个编码参数集中的每一个编码参数集提供一个或多个预定义的扫描顺序。所述扫描顺序生成器用于根据与每个编码参数集相关联的一个或多个先前获得的系数矩阵为所述编码参数集生成扫描顺序。所述扫描顺序选择器用于通过以下步骤为每个块选择扫描顺序:确定所述块的编码参数集;针对为所述块获取的系数矩阵,从所述确定的编码参数集的预定义和生成的扫描顺序中选择扫描顺序。

因此,可以为每个编码参数集提供预定义的扫描顺序和内容自适应生成的扫描顺序。这样,针对不同的编码参数集可以生成不同的扫描顺序,使得可用扫描顺序的集合可以增加并适用于每个编码参数集。因此,所选扫描顺序可以进一步提高比率失真效率。

特别地,每个编码参数集可对应于预测模式、分割模式、一个或多个变换参数和一个或多个量化参数中的一项或多项的组合等。

根据本发明第一方面,在所述解码器的一种实现方式中,所述解码器包括:系数分布估计器,用于为每个编码参数集提供与所述编码参数集相关联的一个或多个先前获得的系数矩阵的分布统计数字。所述扫描顺序生成器用于根据每个编码参数集的分布统计数字为所述编码参数集生成扫描顺序。

因此,所述生成的扫描顺序可以反映先前系数矩阵的分布统计数字。如果后续矩阵的分布统计数字与先前系数矩阵的分布统计数字相似,则所述生成的扫描顺序可以为后续系数矩阵提供良好的编码效率。

根据本发明第一方面,在所述解码器的一种实现方式中,如果预定义了为给定块选择的扫描顺序,则所述系数分布估计器用于不更新或用于重设所述给定块的编码参数集的分布统计数字。

因此,如果为给定块选择的扫描顺序是预定义的扫描顺序,则意味着对于所述给定块的编码参数集而言,所述生成的扫描顺序提供的编码效率可能比预定义的扫描顺序更差。因此,所述给定块呈现的分布统计数字与先前系数矩阵的分布统计数字不对应,使得所述给定块的分布统计数字优选不用于更新所述系数分布估计器提供的所述分布统计数字。或者,因为先前系数矩阵的统计数字可能不再对应于当前系数矩阵的统计数字,可能优选重设所述系数分布估计器提供的所述分布统计数字。

根据本发明第一方面,在所述解码器的一种实现方式中,所述解码模块用于为每个块解析所述比特流中的编码参数信息。所述扫描顺序选择器用于根据所述给定块的解析出的编码参数信息确定所述给定块的编码参数集。

因此,所述解码器可以获得编码参数集的信息,并且使用与该编码参数集对应的预定义和生成的扫描顺序,从而提高编码效率。

根据本发明第一方面,在所述解码器的一种实现方式中,所述解码模块用于解析用于识别所述比特流中所选扫描顺序的扫描顺序信息。

因此,所述解码器能够识别所述比特流中的所选扫描顺序,并且根据所述所选扫描顺序是预定义的还是生成的,所述解码器可以正确地逆扫描所述系数矢量,并且可以正确地更新或不更新所述系数分布估计器提供的所述分布统计数字等。

根据本发明第一方面和其任意实现方式,所述解码器的功能都可以由处理器或计算机执行,并且它们的任意方式可以实现为这种处理器或计算机中的软件和/或硬件。

本发明第二方面提出了一种用于解码比特流中视频序列的块的系数的方法。所述方法包括:提供一个或多个预定义的扫描顺序。所述方法包括:生成一个或多个扫描顺序。所述方法包括:在所述比特流中包含的扫描顺序信息的基础上从所述预定义的和生成的扫描顺序中为每个块选择扫描顺序。所述方法包括:解码比特流中每个块的一个或多个系数矢量。所述方法包括:根据为每个块选择的扫描顺序逆扫描所述块的一个或多个系数矢量,以便获得系数矩阵。所述生成一个或多个扫描顺序包括根据一个或多个先前获得的所述视频序列的块的系数矩阵生成所述一个或多个扫描顺序。

根据本发明第二方面,所述方法的进一步特征或实现方式可以执行本发明第一方面及其不同实现方式中所述解码器的功能。

根据本发明第二方面或其任意实现方式,所述方法可以由处理器或计算机执行。

本发明第三方面提供一种用于将视频序列的块的系数编码入比特流的编码器,其中,每个块的系数包含在各自的系数矩阵中。所述编码器包括:扫描模式列表模块,用于提供一个或多个预定义的扫描顺序。所述编码器包括:扫描顺序生成器,用于生成一个或多个扫描顺序。所述编码器包括:扫描顺序选择器,用于从所述预定义的和生成的扫描顺序中为每个块选择扫描顺序。所述编码器包括:串行器,用于根据为每个块选择的扫描顺序扫描所述块的系数矩阵,以便获得一个或多个系数矢量。所述编码器包括:编码模块,用于将所述系数矢量编码入所述比特流。扫描顺序生成器用于根据一个或多个先前扫描的所述视频序列的块的系数矩阵生成所述一个或多个扫描顺序。

因此,本发明的优点在于它提供了预定义的扫描顺序和内容自适应生成的扫描顺序。通过扩展可用扫描顺序的集合,可以相应地提高量化的比率失真效率。

根据本发明第三方面,在所述编码器的一种实现方式中,所述扫描模式列表模块用于为多个编码参数集中的每一个编码参数集提供一个或多个预定义的扫描顺序。所述扫描顺序生成器用于根据与每个编码参数集相关联的一个或多个先前扫描的系数矩阵为所述编码参数集生成扫描顺序。所述扫描顺序选择器用于通过以下步骤为每个块选择扫描顺序:确定所述块的编码参数集;针对所述块的系数矩阵,从所述确定的编码参数集的预定义和生成的扫描顺序中选择扫描顺序。

因此,可以为每个编码参数集提供预定义的扫描顺序和内容自适应生成的扫描顺序。这样,针对不同的编码参数集可以生成不同的扫描顺序,使得可用扫描顺序的集合可以增加并适用于每个编码参数集。因此,所选扫描顺序可以进一步提高比率失真效率。

特别地,每个编码参数集可对应于预测模式、分割模式、一个或多个变换参数和一个或多个量化参数中的一项或多项的组合。

根据本发明第三方面,在所述编码器的一种实现方式中,所述编码器包括:系数分布估计器,用于为每个编码参数集提供与所述编码参数集相关联的一个或多个先前扫描的系数矩阵的分布统计数字。所述扫描顺序生成器用于根据每个编码参数集的分布统计数字为所述编码参数集生成扫描顺序。

因此,所述生成的扫描顺序可以反映先前系数矩阵的分布统计数字,从而如果后续矩阵的分布统计数字与先前系数矩阵的分布统计数字相似,则所述生成的扫描顺序可以为后续系数矩阵提供良好的编码效率。

根据本发明第三方面,在所述编码器的一种实现方式中,如果预定义了为给定系数矩阵选择的扫描顺序,则所述系数分布估计器用于不更新或用于重设所述给定块的编码参数集的分布统计数字。

因此,如果为给定块选择的扫描顺序是预定义的扫描顺序,则意味着对于所述给定块的编码参数集而言,所述生成的扫描顺序提供的编码效率可能比预定义的扫描顺序更差。因此,所述给定块呈现的分布统计数字与先前系数矩阵的分布统计数字不对应,使得所述给定块的分布统计数字优选不用于更新所述系数分布估计器提供的所述分布统计数字。或者,因为先前系数矩阵的统计数字可能不再对应于当前系数矩阵的统计数字,可能优选重设所述系数分布估计器提供的所述分布统计数字。

根据本发明第三方面,在所述编码器的一种实现方式中,所述编码器包括信令模块,用于将用于识别所选扫描顺序的扫描顺序信息添加至所述比特流。

因此,优点在于,所述解码器能够识别所述比特流中的所选扫描顺序,并且根据所述所选扫描顺序是预定义的还是生成的,所述解码器可以正确地逆扫描所述系数矢量,并且可以正确地更新或不更新所述系数分布估计器提供的所述分布统计数字等。

根据本发明第三方面,在所述编码器的一种实现方式中,所述扫描顺序选择器用于基于成本函数从所述预定义的和生成的扫描顺序中选择扫描顺序。

因此,可以使用基于成本函数的程序来精确地从所述生成的扫描顺序和所述预定义的扫描顺序中选择扫描顺序。因此,即使基于先前编码或解码的块的收集的统计数字的所述生成的扫描顺序提供的编码效率不比预定义的扫描顺序更好,扫描顺序选择也可以提高编码效率。特别地,所述成本函数可以是比率失真优化(rate-distortionoptimization,简称rdo)函数等。

根据本发明第三方面以及其任意实现方式,所述编码器的功能可以由处理器或计算机执行,并且它们的任意方式可以实现为这种处理器或计算机中的软件和/或硬件。

本发明第四方面提供一种用于将视频序列的块的系数编码入比特流的方法,其中,每个块的系数包含在各自的系数矩阵中。所述方法包括:提供一个或多个预定义的扫描顺序。所述方法包括:生成一个或多个扫描顺序。所述方法包括:从所述预定义的和生成的扫描顺序中为每个块选择扫描顺序。所述方法包括:根据为每个块选择的扫描顺序扫描所述块的系数,以便获得一个或多个系数矢量。所述方法包括:将所述系数矢量编码入所述比特流。所述生成一个或多个扫描顺序包括根据一个或多个先前扫描的所述视频序列的块的系数矩阵生成所述一个或多个扫描顺序。

根据本发明第四方面,所述方法的进一步特征或实现方式可以执行本发明第三方面及其不同实现方式中所述编码器的功能。

根据本发明第四方面或其任意实现方式,所述方法可以由处理器或计算机执行。

本发明第五方面提供了一种优选地根据第一方面的用于解码比特流的视频序列的块的系数的解码器。所述解码器包括:解码模块,用于解码所述比特流中每个块的一个或多个系数矢量。所述解码器包括:校验模块,用于为至少一个块重建所述块的一个或多个系数的隐藏信息,其中,所述隐藏信息构成或形成部分与所述块相关联的扫描顺序信息。所述解码器包括:扫描顺序选择器,用于在与每个块相关联的扫描顺序信息的基础上从一组扫描顺序中为所述块选择扫描顺序,优选地,从一组预定义的和生成的扫描顺序中选择。所述解码器包括:解串器,用于根据为每个块选择的扫描顺序逆扫描所述块的一个或多个系数矢量,以便获得系数矩阵。

因此,由于信令开销减少,有利于提高编码效率。

根据本发明第五方面,在所述解码器的一实现方式中,所述校验模块用于为至少一个块重建从为所述块获得的一个或多个系数矢量中选择的至少一个隐藏系数矢量的隐藏信息。特别地,所述一个或多个系数矢量可以对应于相应的系数组(coefficientgroup,简称cg),所述隐藏系数矢量对应于执行数据隐藏的系数组。因此,重建几个隐藏系数矢量的隐藏信息,例如,优选地几个系数组的隐藏系数矢量的隐藏信息的优点在于,可以隐藏更多的比特并且可以重建扫描顺序信息的更大索引。

根据本发明第五方面,在所述解码器的一实现方式中,所述校验模块用于为至少一个块重建取决于隐藏条件的隐藏系数矢量的隐藏信息,所述隐藏条件包括取决于所述隐藏系数矢量的参数与阈值的比较。因此,便于隐藏。

根据本发明第五方面,在所述解码器的一实现方式中,所述参数为:

所述隐藏系数矢量中的多个有效系数;

所述隐藏系数矢量中第一个和最后一个有效系数之间的距离;或

所述隐藏系数矢量内的系数的最大绝对值和最小非零绝对值的比率。如果所述参数高于阈值,则所述隐藏条件为真;如果所述参数低于阈值,则所述隐藏条件为假。因此,有利于提供隐藏条件。

根据本发明第五方面,在所述解码器的一实现方式中,所述校验模块用于校验所述隐藏条件,如果所述隐藏条件为真,则重建所述隐藏系数矢量的隐藏信息。因此,可以在没有来自比特流的附加边信息的情况下选择扫描顺序。

根据本发明第五方面,在所述解码器的一实现方式中,如果所述隐藏条件为假,则所述扫描顺序选择器用于选择预定义的默认扫描顺序。因此,即使不可能在编码器侧进行隐藏,也可以选择扫描顺序。

根据本发明第五方面,在所述解码器的一实现方式中,所述校验模块用于通过将校验函数应用于所述隐藏系数矢量来重构所述隐藏系数矢量的隐藏信息。所述校验函数的结果就是所述隐藏信息。因此,可有利于从系数中获得扫描顺序。

根据本发明第五方面,在所述解码器的一实现方式中,所述校验函数的结果取决于所述系数矩阵内所述隐藏系数矢量的所述最后一个有效系数的坐标(x,y)。例如,所述校验函数可以是以下函数:

mod(x+y+r,2),其中

x和y为所述坐标,且r为整数值。因此,可以直接从系数坐标获得所述校验函数的结果。根据本发明第五方面,在所述解码器的一实现方式中,所述校验模块用于为第一块重建所述第一块的一个或多个系数的隐藏信息,其中,所述隐藏信息构成或形成部分与所述第一块相关联的扫描顺序信息;所述扫描顺序选择器用于在与所述第一块相关联的所述扫描顺序信息的基础上为所述第一块和至少一个第二块选择扫描顺序。因此,这种实现方式提供了“合并模式”解码。使用所述第一块的系数值来重构/预测所述第二块的所选扫描顺序的值,而不在第二块的系数内的隐藏任何内容。例如,所述第一块和所第二块空间相邻。

特别地,所述扫描顺序选择器可以用于基于与所述第一块相关联的扫描顺序信息为一组块选择扫描顺序,其中所述块组可以包括所述第一块和多个第二块。所述块组可以包含几个块,它们的系数中隐藏有至少一个非默认扫描索引。或者,该组块可以包括几个顺序编码的块,使得所述编码的块具有相同的扫描索引。或者,该组块可以包括具有隐藏条件为假的系数的几个块和/或几个顺序编码的块。

特别地,在所述合并模式中,所述解码器可以有多种选择去了解至少一个第二块的系数中没有隐藏扫描顺序信息。首先,可以在所述比特流中编码边信息,例如,对一组块启用或禁用合并模式的标志。其次,在没有边信息的情况下,建议根据所述第一块和/或所述第二块的隐藏条件和编码参数集将合并规则应用于所述第二块。换言之,如果不满足所述第二块的隐藏条件,则对所述第二块进行合并,即,在与所述第一块相关联的扫描顺序信息的基础上选择所述第二块的扫描顺序。第三,结合前两个可选方案,所述结合包括所述比特流中的边信息并根据隐藏条件进行合并。

结合本发明的第五方面和其任意实现方式,所述解码器的功能可以由处理器或计算机执行,并且它们的任意方式可以实现为这种处理器或计算机中的软件和/或硬件。

本发明第六方面提供了一种优选地根据第二方面的用于解码比特流的视频序列的块的系数的方法。所述方法包括:解码比特流中每个块的一个或多个系数矢量。所述方法包括:为至少一个块重建所述块的一个或多个系数的隐藏信息,其中,所述隐藏信息构成或形成部分与所述块相关联的扫描顺序信息;所述方法包括:在与每个块相关联的扫描顺序信息的基础上从一组扫描顺序中为所述块选择扫描顺序,优选地,从一组预定义的和生成的扫描顺序中选择。所述方法包括:根据为每个块选择的扫描顺序逆扫描所述块的一个或多个系数矢量,以便获得系数矩阵。

结合本发明第六方面,所述方法的进一步特征或实现方式可以执行本发明第五方面及其不同实现方式中所述解码器的功能。

根据本发明的第六方面或其任意实现方式,所述方法可以由处理器或计算机执行。

本发明第七方面提供一种优选地根据第三方面的用于将视频序列的块的系数编码入比特流的编码器,其中,每个块的系数包含在各自的系数矩阵中。所述编码器包括扫描顺序选择器,用于从一组扫描顺序中为每个块选择扫描顺序,优选地,从一组预定义的和生成的扫描顺序中选择。所述编码器包括:串行器,用于根据为每个块选择的扫描顺序扫描所述块的系数矩阵,以便获得一个或多个系数矢量。所述编码器包括隐藏模块,用于:针对至少一个块,将至少部分用于识别为所述块选择的扫描顺序的扫描顺序信息隐藏在所述块的一个或多个系数中(即,用于将所述扫描顺序信息或部分所述扫描顺序信息隐藏在所述一个或多个系数中)。所述编码器包括:编码模块,用于将所述系数矢量编码入所述比特流。因此,通过减少信令开销可以提高编码效率。

根据本发明第七方面,在所述编码器的一实现方式中,所述隐藏模块用于:针对至少一个块,将所述扫描顺序信息隐藏在为所述块获得的一个或多个系数矢量中选择的至少一个隐藏系数矢量中。

根据本发明的第七方面,在所述编码器的一实现方式中,所述隐藏模块用于:针对至少一个块,将所述扫描顺序信息隐藏在取决于隐藏条件的隐藏系数矢量中,所述隐藏条件包括取决于所述隐藏系数矢量的参数与阈值的比较。

根据本发明第七方面,在所述编码器的一实现方式中,所述参数为:

所述隐藏系数矢量中的多个有效系数;

所述隐藏系数矢量中第一个和最后一个有效系数之间的距离;或

所述隐藏系数矢量内的系数的最大绝对值和最小非零绝对值的比率,其中,如果所述参数高于阈值,则所述隐藏条件为真;如果所述参数低于阈值,则所述隐藏条件为假。

根据本发明第七方面,在所述编码器的一实现方式中,所述隐藏模块用于校验所述隐藏条件,如果所述隐藏条件为真,则将所述扫描顺序信息隐藏在所述隐藏系数矢量中。

根据本发明第七方面,在所述编码器的一实现方式中,如果所述隐藏条件为假,则所述扫描顺序选择器用于从该组扫描顺序中递归选择其它扫描顺序,直到其它选择的扫描顺序的隐藏条件为真。因此,选择其它扫描顺序的优点在于,即使第一选择的扫描顺序暗示隐藏条件为假,也可以执行数据隐藏。

根据本发明第七方面,在所述编码器的一实现方式中,如果所述隐藏条件为假并且所选扫描顺序是预定义的默认扫描顺序,则所述隐藏模块用于不将所述扫描顺序信息隐藏在所述隐藏系数矢量中。

根据本发明第七方面,在所述编码器的一实现方式中,所述隐藏模块用于:针对至少一个块,通过以下步骤将所述扫描顺序信息隐藏在所述隐藏系数矢量中:

将校验函数应用于所述隐藏系数矢量,以便获得所述校验函数的结果;

确定所述校验函数的结果是否与所述扫描顺序信息对应;

如果所述校验函数的结果不与所述扫描顺序信息对应,则修改所述隐藏系数矢量使得所述校验函数的结果与所述扫描顺序信息对应。

根据本发明第七方面,在所述编码器的一实现方式中,所述校验函数的结果取决于所述系数矩阵内所述隐藏系数矢量的所述最后一个有效系数的坐标(x,y)。例如,所述校验函数可以是以下函数:

mod(x+y+r,2),其中

x和y为所述坐标,且r为整数值。

根据本发明第七方面,在所述编码器的一实现方式中,如果所述扫描顺序选择器为所述第一块和至少一个第二块选择了相同的扫描顺序,则所述隐藏模块用于将用于识别所述相同扫描顺序的扫描顺序信息仅隐藏在所述第一块的一个或多个系数中。因此,可以根据“合并模式”进行编码。在这种模式下,优选地,用于识别相同扫描顺序的扫描顺序信息不隐藏在所述第二块的系数中。换句话说,使用隐藏在所述第一块的系数中的扫描顺序信息,在所述解码器侧重建/预测用于所述第二块的所选扫描顺序的值。所述第一块和所述第二块是所述比特流中空间相邻块或连续块等。因此,可以将所述第二块的扫描顺序信息发送到所述解码器而不在所述第二块的系数内隐藏任何内容。

特别地,包括所述第一块和所述一个或多个第二块的一组块可以是具有隐藏在其系数内的至少一个非默认扫描索引的一组块。或者,该组块可以包括几个顺序编码的块,使得所述编码的块具有相同的扫描索引。或者,该组块可以包括具有隐藏条件为假的系数的几个块和/或几个顺序编码的块。

特别地,在所述合并模式中,所述解码器可以有多种选择去了解至少一个第二块的系数中没有隐藏扫描顺序信息。首先,所述编码器在所述比特流中添加边信息,例如,对一个或多个块(例如,一个或多个第二块)启用或禁用合并模式的标志。其次,在没有边信息的情况下,建议根据所述第一块和/或所述第二块的隐藏条件和编码参数集将合并规则应用于所述第二块。换言之,如果不满足所述第二块的隐藏条件,则对所述第二块进行合并,即,在与所述第一块相关联的扫描顺序信息的基础上选择所述第二块的扫描顺序。第三,结合前两个可选方案,所述结合包括所述比特流中的边信息并根据隐藏条件进行合并。

结合本发明第七方面以及其任意实现方式,所述编码器的功能可以由处理器或计算机执行,并且它们的任意方式可以实现为这种处理器或计算机中的软件和/或硬件。

本发明第八方面提供一种优选地根据本发明第四方面的用于将视频序列的块的系数编码入比特流的方法,其中,每个块的系数包含在各自的系数矩阵中。所述方法包括:从一组扫描顺序中为每个块选择扫描顺序,优选地,从一组预定义的和生成的扫描顺序中选择。所述方法包括:根据为每个块选择的扫描顺序扫描所述块的系数矩阵,以便获得一个或多个系数矢量。所述方法包括:针对至少一个块,将至少部分用于识别为所述块选择的扫描顺序的扫描顺序信息隐藏在所述块的一个或多个系数中;所述方法包括:将所述系数矢量编码入所述比特流。根据本发明第八方面,所述方法的进一步特征或实现方式可以执行本发明第七方面及其不同实现方式中所述编码器的功能。

根据本发明的第八方面或其任意实现方式,所述方法可以由处理器或计算机执行。

本发明第九方面提供一种计算机程序,包括:程序代码,用于当所述计算机程序在计算设备上运行时,执行如本发明第二方面、第四方面、第六方面或第八方面所述的方法。

需要注意的是,本申请所描述的所有设备、元件、单元和方式均可在软件或硬件元件或它们的任意组合中实现。本申请中描述的各种实体所执行的步骤以及所描述的各种实体要执行的功能均意在指各个实体适用于或用于执行各个步骤和功能。即使在具体实施例的下述描述中,完全由外部实体形成的具体功能或步骤未在执行该具体步骤或功能的该实体的具体细节元件的描述中反映,技术人员应清楚可以在各个软件或硬件元件或它们的任意组合中实现这些方法和功能。

附图说明

根据所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:

图1示出了本发明实施例提供的视频编码器;

图2示出了本发明实施例提供的视频解码器;

图3示出了本发明实施例提供的视频解码器中系数分布估计的流程图;

图4示出了本发明实施例提供的视频编码器中系数分布估计的流程图;

图5示出了本发明实施例提供的扫描顺序列表的初始化流程图;

图6示出了本发明实施例提供的所选扫描顺序的显式和隐式信令的流程图;

图7和图8示出了本发明实施例提供的隐藏条件;

图9示出了现有技术中系数的熵解码;

图10示出了本发明通过减少比特流中信令开销提高编码效率的实施例;

图11示出本发明提供的系数重排序;

图12示出了为扫描顺序定义的隐藏条件的例子。

具体实现方式

图1示出了本发明实施例提供的视频编码器,并且特别示出了一种用于将视频序列的块的系数编码入比特流107的编码器100。每个块的系数包含在各自的系数矩阵中。

所述编码器包括:扫描模式列表模块110,用于提供一个或多个预定义的扫描顺序。

所述编码器包括:扫描顺序生成器111,用于生成一个或多个扫描顺序。

所述编码器包括:扫描顺序选择器109,用于从所述预定义的和生成的扫描顺序中为每个块选择扫描顺序。

所述编码器包括:串行器104,用于根据为每个块选择的扫描顺序扫描所述块的系数矩阵,以便获得一个或多个系数矢量。

所述编码器包括:编码模块106,用于将所述系数矢量编码入所述比特流107。

所述扫描顺序生成器111用于根据一个或多个先前扫描的所述视频序列的块的系数矩阵生成所述一个或多个扫描顺序。

图2示出了本发明实施例提供的视频解码器,并且特别示出了一种用于解码比特流207的视频序列的块的系数的解码器200。

所述解码器包括:扫描模式列表模块210,用于提供一个或多个预定义的扫描顺序。

所述解码器包括:扫描顺序生成器211,用于生成一个或多个扫描顺序。

所述解码器包括:扫描顺序选择器209,用于在所述比特流中包含的扫描顺序信息(scan_idx)的基础上从所述预定义的和生成的扫描顺序中为每个块选择扫描顺序。

所述解码器包括:解码模块206,用于解码所述比特流207中每个块的一个或多个系数矢量。所述解码器包括:解串器204,用于根据为每个块选择的扫描顺序逆扫描所述块的一个或多个系数矢量,以便获得系数矩阵。

所述扫描顺序生成器211用于根据一个或多个先前获得的所述视频序列的块的系数矩阵生成所述一个或多个扫描顺序。

特别地,图1示出了支持内容自适应扫描顺序选择的编码器侧残余编码部分的例子。在该示例中,所述编码器100用于将帧间或帧内预测应用于所述视频序列的每个图片的每个块。帧内预测模式使用相同图片的像素来生成参考样本以计算正在重构的块的像素的预测值。帧间预测模式旨在用于时间预测,并使用前一个或后一个图片的参考样本来预测当前图片的块的像素。预测阶段的结果可能是残余信号101,即块的原始信号与通过帧间或帧内预测获得的所述块的预测信号之间的差值。

用于获得所述残余信号101的预测模式可相应地指帧内或帧间预测模式。更进一步地,所述预测模式可对应于多个可用预测模式或方向中的任一个。例如,所述多个可用预测模式可包含至多35种帧内预测模式,所述35种帧内预测模式可包括33种定向模式和2种非定向模式,例如直流(directcurrent,简称dc)预测模式和平面预测模式。所述33种定向模式可以覆盖π弧度或180度的角度范围。如果将垂直模式的方向视为零度,则所述33个定向模式可以相对于-45度轴对称。就预测模式而言,所述编码器可用于基于比率失真优化(rate-distortionoptimization,简称rdo)为给定块确定所述多个可用预测模式中的一个可用预测模式。

编码树单元(codingtreeunit,简称ctu)为预定义大小的视频序列编码结构的基础,包含部分图片(例如64×64像素)。ctu可以划分为编码单元(codingunit,简称cu)。cu是预定义大小的视频序列的一种基本编码结构,包含属于ctu的部分图片。cu可以进一步划分为多个cu。预测单元(predictingunit,简称pu)是一种编码结构,是对cu进行划分的结果。pu可以划分为多个变换单元(transformunit,简称tu)或与单个tu一致。pu可以根据应用于pu的像素的处理类型进行帧内或帧间预测。在帧间预测的情况下,pu表示运动补偿通过为pu指定的运动矢量处理的像素面积。

在这方面,分割模式可取决于pu,特别是取决于pu的大小和/或方向。所述分割模式可以对应于多个可用分割模式中的任一个可用分割模式。所述编码器可用于基于rdo方法为块或pu确定所述多个可用分割模式中的一个可用分割模式。例如,所述分割模式可对应于水平定向的形状,其中cu可划分为2n×n个pu或块。此外,所述分割模式可对应于垂直定向的形状,其中cu可划分为n×2n个pu或块,或对应于正方形形状,其中cu可划分为2n×2n个pu或块。

可将所述残余信号101提供给变换模块102进行变换,对所述残余信号101进行编码,获得变换系数。特别地,对于帧内预测,pu可为一组tu指定预测模式。tu可以具有不同的大小,例如4×4、8×8、16×16和32×32像素,并且可以采用不同的方式进行处理。例如,可应用于残余信号的变换包括离散余弦变换(discretecosinetransform,简称dct)和离散正弦变换(discretesinetransform,简称dst)等。

在这方面,变换参数可以是tu的大小和/或形状。进一步地,变换参数可以指dct或dst等正在应用的变换。

为源图片的块计算的所述残余信号101由所述变换模块102进行变换,然后由量化模块103进行量化。所述量化模块103处理变换系数,以获得系数矩阵形式的量化的变换系数(quantizedtransformcoefficient,简称qtc)。

在这方面,量化参数可对应于系数矩阵的有效系数的数量,即具有非零值的系数矩阵的系数的数量。

通过按照所述扫描顺序选择器109确定的顺序进行扫描,所述串行器104对系数矩阵进行序列化。可以从所述扫描模式列表110提供的所述预定义的扫描顺序或从所述扫描顺序生成器111提供的所述生成的扫描顺序中选择扫描顺序。所述扫描模式列表110提供的扫描顺序是为编码器100和解码器200侧预定义的,因此,从所述扫描模式列表110选择的扫描顺序是静态的,即在整个编码或解码过程中未被修改。由所述扫描顺序生成器111提供的扫描顺序是动态的,即根据一个或多个先前获得的所述视频序列的块的系数矩阵生成。特别地,可以在编码或解码过程中根据系数矩阵的分布统计数字生成所述扫描顺序。

所述串行器104从系数矩阵获得的所述一个或多个系数矢量存储在量化系数缓冲器105。所述编码模块106可以是熵编码模块的形式,用于将系数矢量熵编码入所述比特流107中。所述扫描顺序选择器109选择的扫描顺序可通过扫描索引或扫描顺序信息scan_idx来识别。

所述扫描索引信息可明确地添加至所述比特流107,即,所述扫描顺序信息scan_idx的值可通过专用变量或参数存储在所述比特流107中。或者,隐藏模块112可用于将至少部分扫描顺序信息scan_idx隐藏在系数矢量中,即,在序列化之后隐藏在系数矩阵的值中。例如,所述隐藏模块112可以相应地对存储在所述量化系数缓冲器105中的系数进行调整,使得位于所述解码器200的校验模块212中对应的校验模块可以通过将校验函数应用于所述系数获得所述扫描顺序信息scan_idx。所述量化系数缓冲器105中存储的生成的调整系数或系数矢量可进行熵编码,并通过所述比特流107传输给所述解码器200。

所述量化系数缓冲器105中存储的一个或多个系数矢量的系数可进行调整或不进行调整,这取决于所述扫描顺序信息scan_idx在所述比特流107中是显式发送还是隐式发送,即取决于所述扫描顺序信息是否被隐藏。

特别地,所述扫描模式列表模块110用于为多个编码参数集中的每一个编码参数集提供一个或多个预定义的扫描顺序。所述扫描顺序生成器111用于根据与每个编码参数集相关联的一个或多个先前扫描的系数矩阵为每个编码参数集生成扫描顺序。所述扫描顺序选择器109用于通过以下步骤为每个块选择扫描顺序:

确定所述块的编码参数集;

针对所述块的系数矩阵,从所述确定的编码参数集的预定义和生成的扫描顺序中选择扫描顺序。

在这方面,编码参数集对应于以下至少一项或多项的特定组合:

预测模式;

分割模式;

一个或多个变换参数;

一个或多个量化参数。

所述预测模式、所述分割模式、所述变换参数和所述量化参数通常通过引用在图1中的108被提到。例如,编码参数集可以仅对应于预测模式(例如特定的定向帧内预测模式),仅对应于分割模式(例如pu的特定方向),仅对应于一个或多个变换参数(例如tu的特定大小和/或形状),或仅对应于一个或多个量化参数(例如系数矩阵的特定数量的有效系数)。另外,编码参数集可以对应于所述预测模式、所述分割模式、所述变换参数和/或所述量化参数的特定组合。

所述编码器100可以包括:系数分布估计器113,用于为每个编码参数集提供与所述编码参数集相关联的一个或多个先前扫描的系数矩阵的分布统计数字。所述扫描顺序生成器111用于根据每个编码参数集的分布统计数字为每个编码参数集生成扫描顺序。

特别地,所述量化系数缓冲器105中存储的系数也可以是所述扫描顺序生成器111使用的系数分布统计数字估计的来源。然而,在估计系数分布之前,通过解串器114对所存储的系数进行反序列化,以将系数矢量转回为系数矩阵。

如在us2008/0310504中的定义,系数矩阵的分布统计数字优选包括在所述二维系数矩阵的位置的系数值是零或非零的可能性的指示,并且例如可以包括与二维系数矩阵中每个系数位置相关联的计数、概率或其它统计度量。取决于这种分布统计数字的扫描顺序可以是相应地用于以较高的优先级来扫描更可能具有非零系数的系数位置的扫描顺序。

特别地,如果为给定块选择的扫描顺序是生成的扫描顺序,则所述系数分布估计器113可以用于根据所述给定块的系数矩阵的分布统计数字更新所述给定块的编码参数集的分布统计数字。所述给定块的系数矩阵的分布统计数字可以反映所述给定块的系数矩阵的位置上的系数是零还是非零。例如,可以根据所述给定块的系数矩阵的所述分布统计数字更新所述系数分布估计器113提供的分布统计数字。

特别地,如果预定义了为给定系数矩阵选择的扫描顺序,则所述系数分布估计器113用于不更新或用于重设所述给定块的编码参数集的分布统计数字。重设分布统计数字可以包括重设所述计数、所述概率或所述其它统计度量等。

由所述系数分布估计器113根据所述扫描顺序选择器109是否已经选择了生成的或预定义的扫描顺序实施的分布统计数字的更新、不更新或重设在图1中由所述扫描顺序选择器109到所述系数分布估计器113的虚线箭头反映。

图14中示出了所提出实施例的解码器。其处理阶段类似于所述编码器的处理阶段(参见图13),并以相反的顺序运用。最重要的区别是,所述量化系数缓冲器存储反序列化后的qtc,即存储的是qtc矩阵而不是将qtc存储为一个或多个矢量。

特别地,图2示出了支持内容自适应扫描顺序选择的残余解码器部分的例子。在该示例中,解码器200用于从比特流207获得残余信号201,在解码模块206(例如,熵解码模块)和解串器204生成包含量化的变换系数的系数矩阵后,量化系数缓冲器205存储所述系数矩阵。然后,所存储的系数矩阵由逆量化模块203和逆变换模块202处理,以获得对应于所述编码器100中的残余信号101的残余信号201。通过所述残余信号201,可根据已知技术对所述编码的视频序列进行重构。

所述解码器200的系数分布估计器213可以与所述编码器100的所述系数分布估计器113的功能相似或相同。在该示例中,它们的区别在于,所述系数分布估计器213接收输入的存储在所述量化系数缓冲器205中的系数矩阵,而所述系数分布估计器113接收输入的从所述解串器114获得的系数矩阵。

本发明提出了在编码器100和解码器200侧根据先前扫描分别获得的视频序列的块的系数矩阵联合使用预定义的扫描顺序和生成的扫描顺序。特别地,生成的扫描顺序是通过分析系数矩阵中系数的分布统计数字,即通过分析的量化的变换系数的分布生成的。

本发明特别的特点在于,通过考虑所选扫描顺序,量化的变换系数(quantizedtransformcoefficient,简称qtc)的分布统计数字可以估计得更加精确,如图1和图2中扫描顺序选择器109和209与系数分布估计器113和213之间的箭头所示。更精确的估计可能包括如上所示的更新、不更新或重设分布统计数字等。

通过将所述源数据分割成4个静止期并在这些静止期内估计系数分布可以更加准确地估计系数分布。静止期是许多有相似qtc分布并在空间上彼此接近的块。

在本发明中,特别提出了通过引入指示具有自适应生成的扫描顺序的处理块的数量的阈值,以检测静止期。当从扫描模式列表模块提供的预定义的扫描顺序中选择扫描顺序时,没有必要更新分布统计数字。因为在这种情况下,扫描顺序是预定义的,表示该当前处理块属于不同的静止期。

图3示出了本发明实施例的视频解码器中分布统计数字估计的流程图。

在视频解码器中,系数分布估计器213进行的分布统计数字估计301包括若干步骤。

在步骤302中,从比特流207中解析出块的预测模式、分割模式、变换参数和/或量化参数208。

优选地,由解码模块206进行解析。根据解析出的信息,扫描顺序选择器209优选地确定块的编码模式。

在步骤303中,从比特流207中解析出用于识别所述块的所选扫描顺序的扫描顺序信息scan_idx。优选地,由解码模块206进行解析。

在步骤304中,扫描顺序选择器209在扫描顺序信息scan_idx的基础上为所述块从预定义和生成的扫描顺序中选择扫描顺序。

在步骤305中,判断所选扫描顺序是由扫描模式列表模块210提供的预定义的扫描顺序还是由扫描顺序生成器211提供的生成的扫描顺序。

如果为所述块选择的扫描顺序是生成的扫描顺序(例如,是扫描顺序生成器211提供的扫描顺序),则所述系数分布估计器213在步骤306中更新当前的分布统计数字。优选地,当前的分布统计数字是从先前的块获得的。根据从所述块获得的系数矩阵的分布统计数字更新当前的分布统计数字。

然而,如果为所述块选择的扫描顺序是预定义的扫描顺序(例如,是扫描模式列表模块210提供的扫描顺序),则所述系数分布估计器213在步骤306中分别对来自当前的分布统计数字的所述块的分布统计数字进行处理。例如,系数分布估计器213可以不更新或可以重设当前的分布统计数字。

步骤306或307之后,分布统计数字估计301结束(即步骤308)。

图4示出了本发明实施例的视频编码器中分布统计数字估计的流程图。

在视频编码器中,系数分布估计器113进行的分布统计数字估计401包括若干步骤。

在步骤402中,由扫描顺序选择器109实施rdo程序,以从扫描模式列表模块110提供的预定义扫描顺序和扫描顺序生成器111提供的生成的扫描顺序中选择出提供了最小的率失真(rate-distortion,简称rd)成本的扫描顺序。在此步骤中,获得所选扫描顺序的扫描顺序信息scan_idx。

在步骤403,获得对应于所选扫描顺序信息scan_idx的扫描顺序。

进一步的步骤404至407对应于图3中步骤305至308。

如图3和图4所示,在编码器侧和解码器侧初始化扫描顺序列表。它包括在扫描模式列表模块的扫描顺序和扫描顺序生成器生成的扫描顺序。由扫描顺序选择器选择的扫描顺序是是生成的还是预定义的决定了分布统计数字。该决定可能包括更新或不更新当前分布统计数字,或重设当前分布统计数字。

一种初始化扫描顺序列表的可能方式如图5所示。图5中相应示出了根据本发明实施例的扫描顺序列表初始化501的流程图500。

其初始化取决于为处理块指定的预测模式、分割模式、变换参数和量化参数。

在步骤502中,判断所述块的预测模式是否为平面帧内预测模式。如果所述块的预测模式为平面帧内预测模式,则在步骤508中定义预定义的扫描顺序的扫描模式列表,以便包括预定义的z形扫描顺序和对角扫描顺序。如果所述块的预测模式不是平面帧内预测模式,则进行步骤503。

在步骤503中,判断所述块的预测模式是否为dc帧内预测模式。如果所述块的预测模式为dc帧内预测模式,则在步骤508中定义预定义的扫描顺序的扫描模式列表,以便包括预定义的z形扫描顺序和对角扫描顺序。如果所述块的预测模式不是dc帧内预测模式,则进行步骤504。

在步骤504中,判断所述块的预测模式是否为接近于水平的角度帧内预测模式。如果所述块的预测模式为接近于水平的角度帧内预测模式,则在步骤509中定义预定义的扫描顺序的扫描模式列表,以便包括垂直扫描顺序、垂直-对角扫描顺序和螺旋扫描顺序。如果所述块的预测模式不是接近于水平的角度帧内预测模式,则进行步骤505。

在步骤505中,判断所述块的预测模式是否为接近于垂直的角度帧内预测模式。如果所述块的预测模式为接近于垂直的角度帧内预测模式,则在步骤510中定义预定义的扫描顺序的扫描模式列表,以便包括水平扫描顺序、水平-对角扫描顺序和螺旋扫描顺序。如果所述块的预测模式不是接近于垂直的角度帧内预测模式,则进行步骤506。

在步骤506中,判断所述块的预测模式是否为接近于对角的角度帧内预测模式。如果所述块的预测模式为接近于对角的角度帧内预测模式,则在步骤511中定义预定义的扫描顺序的扫描模式列表,以便包括对角扫描顺序、z形扫描顺序和螺旋扫描顺序。如果所述块的预测模式不是接近于对角的角度帧内预测模式,则进行步骤507。在步骤507中定义预定义的扫描顺序的扫描模式列表,以便包括对角扫描顺序。

在为所述块定义预定义的扫描顺序的扫描顺序列表后,在步骤512中通过所述块的分割模式、变换参数和量化参数调整所述扫描顺序列表。

在步骤513,将扫描顺序生成器提供的一个或多个生成的扫描顺序添加至预定义的扫描顺序中,以使得编码器的扫描顺序选择器109可以从预定义的和生成的扫描顺序中选择提供最小rd成本的扫描顺序等。

如图5所示,预定义的扫描顺序可取决于预测模式和/或分割模式和/或变换参数和/或量化参数。例如,在dc帧内模式或平面帧内模式的情况下,最可能的扫描顺序是z形扫描顺序和对角扫描顺序。对于角度模式,可考虑残余信号的方向性,从而可以选择预定义的扫描顺序以正交于帧内模式的方向性。

之后,预定义的扫描顺序列表可以根据分割模式、变换参数和量化参数等其它编码参数进行更新。特别地,可以根据分割大小和变换大小更新该列表。

例如,在帧间预测模式中,非正方形的预测模式还可以指示可以相应地更新残余信号的定向性质和预定义的扫描顺序列表:如果先垂直再水平定向分割矩形,则将水平-对角扫描顺序添加至扫描列表。针对水平定向分割相应地更新预定义的扫描顺序的列表:在这种情况下,将垂直扫描和垂直-对角扫描加入到预定义的扫描顺序的列表中。

例如,可以根据变换大小更新预定义的扫描顺序的列表。较小的tu大小限制了一些扫描模式。例如,如果tu大小小于8×8像素,则可以从预定义的扫描顺序列表中排除螺旋扫描。量化参数(quantizationparameter,简称qp)可能会影响预定义的扫描顺序的列表和信令方法。对于高qp值,可能会减少扫描模式的数量。例如,所有tu大小中可能都会跳过螺旋扫描,因为qtc与qtc矩阵的左、上和左上角更加一致。

一种qp的信令方案的依赖性的示例如图6所示。图6中特别示出了根据本发明实施例的所选扫描顺序的显式和隐式信令的流程图600。

在第一步步骤601中获得qp值。如果在步骤602中qp值小于或等于高比特率qphbr的qp值,则在步骤603应该将扫描顺序信息scan_idx熵编码入比特流。

如果qp值大于值qphbr且低于另一低比特率qplbr的qp值,则在步骤606中应该对部分扫描顺序信息scan_idx进行熵编码,且隐藏模块112将部分扫描顺序信息scan_idx隐藏在量化的变换系数中。

如果qp值大于值qphbr且大于或等于另一低比特率qplbr的qp值,则在步骤605中隐藏模块112应该将扫描顺序信息scan_idx隐藏在量化的变换系数中。

因此,随着比特率的增加,隐藏变得更加昂贵,且对于高比特率而言完全无法实现隐藏。相反地,对于低比特率而言,隐藏则更可取。另外,对于中等比特率,使用了两种信令机制。针对每个块或tu进行的信令机制的选择取决于是否对其执行隐藏。

本发明提出了一种用于解码比特流207中视频序列的块的系数的解码器200。所述解码器包括:

解码模块206,用于解码所述比特流207中每个块的一个或多个系数矢量;

校验模块212,用于为至少一个块重建所述块的一个或多个系数的隐藏信息,其中,所述隐藏信息构成或形成部分与所述块相关联的扫描顺序信息scan_idx;

扫描顺序选择器209,用于在与每个块相关联的扫描顺序信息scan_idx的基础上从一组扫描顺序中为所述块选择扫描顺序,优选地,从一组预定义的和生成的扫描顺序中选择;

解串器204,用于根据为每个块选择的扫描顺序逆扫描所述块的一个或多个系数矢量,以便获得系数矩阵。

本发明提供一种用于将视频序列的块的系数编码入比特流107的相应编码器100,每个块的系数包含在各自的系数矩阵中。所述编码器包括:

扫描顺序选择器109,用于从一组扫描顺序中为每个块选择扫描顺序,优选地,从一组预定义的和生成的扫描顺序中选择;

串行器104,用于根据为每个块选择的扫描顺序扫描所述块的系数矩阵,以便获得一个或多个系数矢量;

隐藏模块112,用于:针对至少一个块,将至少部分用于识别为所述块选择的扫描顺序的扫描顺序信息scan_idx隐藏在所述块的一个或多个系数中;

编码模块106,用于将所述系数矢量编码入所述比特流107。

然后,因为可以减少由编码器生成的比特流107和解码器接收的比特流207中的信令开销,所以可以提高编码效率。

优选地,所述校验模块212用于为至少一个块重建从为所述块获得的一个或多个系数矢量中选择的至少一个隐藏系数矢量的隐藏信息。另外,所述隐藏模块112用于:针对至少一个块,将所述扫描顺序信息scan_idx隐藏在从为所述块获取的一个或多个系数矢量中选择的至少一个隐藏系数矢量中。

重建和隐藏可以取决于隐藏条件。所述隐藏条件包括取决于隐藏系数矢量的参数与阈值的比较。

所述参数可以是:

隐藏系数矢量中的多个有效系数,即非零系数;

所述隐藏系数矢量中第一个和最后一个有效系数之间的距离;或

所述隐藏系数矢量内的系数的最大绝对值和最小非零绝对值的比率,其中

如果所述参数高于阈值,则所述隐藏条件为真;如果所述参数低于阈值,则所述隐藏条件为假。

图7和图8示出了本发明实施例提供的隐藏条件。特别地,图7示出了细分成系数组(coefficientgroup,简称cg)的块或tu,其中每个系数矢量对应一个系数组。图8示出了在该参数包含系数矢量的第一个和最后一个有效系数即非零系数之间的距离n的情况下的系数矢量的示例。如果值n大于阈值tsig,则隐藏条件为真,且扫描顺序信息可以隐藏在所述系数矢量中。

特别地,所述校验模块212可用于通过将校验函数应用于所述隐藏系数矢量来重构所述隐藏系数矢量的隐藏信息。所述校验函数的结果就是所述隐藏信息。另外,所述隐藏模块112用于:针对至少一个块,通过以下步骤将所述扫描顺序信息scan_idx隐藏在所述隐藏系数矢量中:

将校验函数应用于所述隐藏系数矢量,以便获得所述校验函数的结果;

确定所述校验函数的结果是否与所述扫描顺序信息scan_idx对应;

如果所述校验函数的结果不与所述扫描顺序信息scan_idx对应,则修改所述隐藏系数矢量使得所述校验函数的结果与所述扫描顺序信息scan_idx对应。

建议所述校验函数的结果取决于所述系数矩阵内所述隐藏系数矢量的所述最后一个有效系数的坐标(x,y)。例如,所述校验函数可以是以下函数:

mod(x+y+r,2),其中

x和y为所述坐标,且r为整数值。

例如,所述校验函数也可以是以下函数或其它已知校验函数之一:

应用到使用二进制模式从系数矩阵中选择的一些系数的最低有效位的奇偶校验函数;

应用到最后一个或第一个非零系数位置索引的或应用到最后一个和第一个非零系数位置索引的线性组合的奇偶校验函数。

在这方面,图9示出了现有技术中系数的熵解码901,特别地,是根据h.265视频编码标准进行的熵解码。熵解码901包括步骤902中对最后一个有效qtc即非零qtc的x和y坐标的解码。然后,在步骤903中,根据扫描顺序从最后一个有效qtc开始指示qtc有效值的掩模(有效掩模)。在步骤904和步骤905中,仅为有效系数值解析比特流中的值和符号。

因此,一维有效掩模的长度可以从扫描顺序和最后一个有效qtc的坐标中获得。显然,仅应用已知的数据隐藏方法将扫描顺序指示数据嵌入到qtc中是不够的,因为qtc是通过扫描顺序信息从比特流中解析出来的。

图10示出了本发明的实施例,特别是通过减少编码器生成的比特流107和解码器接收的比特流207中的信令开销来提高编码效率的实施例。

在图10的实施例中,扫描顺序可能隐藏在qtc中。在编码过程中,scan_idx指示的几个不同的扫描顺序应用于量化过程1001和隐藏过程1002阶段。量化过程1001可使用扫描信息来估计比特数量(即比特率),以编码qtc值并通过调整所估计的比特率的qtc值来进行比率失真优化。

如果步骤1003中隐藏不成功,即如果隐藏条件为假,则在步骤1004中选择其它扫描顺序scan_idx。优选地,选择其它扫描顺序,直到隐藏成功。如果所选的扫描是默认的扫描顺序,则不进行隐藏等。

如果隐藏成功或者所选扫描顺序是默认的,则在步骤1005中有可能根据默认的扫描顺序重排qtc。接下来的步骤包括:qtc序列化1006和熵编码1007。所述步骤1006和1007可对应于图1中的方框104和方框106。序列化1006还可以插在1001和1002之间,如图1的情况。

隐藏1002包括校验隐藏条件,并且修改qtc以满足隐藏条件。该修改可以包括:修改qtc值,将qtc值设置为零,使无效(零值)qtc成为有效(非零)qtc。显然地,调整qtc以满足隐藏条件始终是可能的。然而,这些调整导致的失真约束了编码器侧的qtc调整,因此应用了合理的调整约束。例如,由于量化过程,合理系数调整是加一个或减一个系数。这种约束使得隐藏操作可能无法执行,也就是说,可能没办法调整qtc,以满足隐藏条件(步骤1003中在“否”的情况下评估为非默认扫描)。

在解码器侧,熵解码1011之后,在1012中从串行数据中检索隐藏信息,因此隐藏阶段也需要使用将在解码器侧使用的扫描顺序的信息,使得所选扫描顺序的信息可以嵌入隐藏信息。数据隐藏过程也可以和量化一起执行,就像进行符号位隐藏一样。然而,对于一些qtc而言,因为不满足隐藏条件,隐藏可能会失败。例如,tu具有许多低于阈值的有效qtc。在这种情况下,进一步的处理取决于扫描顺序是否是默认的。如果使用默认的扫描,则在1015中解码器可以通过在熵解码阶段将相同的隐藏条件应用到解析出的qtc得到扫描顺序。否则,跳过扫描顺序,并校验下一扫描顺序是否可用。

如果默认扫描顺序生效,可以跳过qtc重排阶段,因为源扫描和目标扫描是相同的。对于非默认扫描顺序,建议对系数重排序,使得无需改动就进行熵编码和熵解码阶段。特定的实现方式中可使用重映射操作,以避免不必要的重排序复制操作,即在所选扫描内重新定义2dqtc矩阵和1d位置的坐标之间的匹配。在序列化/反序列化阶段,重映射可以为给定的1d扫描位置提供cabac上下文索引和最后一个有效qtc坐标,就像对qtc进行重排序。

图11示出了根据本发明的系数重排序,特别地,示出了4×4块的qtc重排序的示例:从对角扫描到水平扫描进行重排序。

在这方面,可在joelsole等人发表在《ieee视频技术电路和系统汇刊》2012年12月第22卷第12期第1765-1777页中的文档《hevc变换系数编码》中查到。在本文档的第v.b部分,陈述了通过扫描顺序中的最后一个系数(排除在外的系数)和dc系数之间的每个系数的上下文模型对有效标志进行编码。同h.264/avc一样,对于4×4的变换块tb,即qtc矩阵,上下文取决于tb内的系数位置。尽管是对序列化和二值化的数据进行熵编码,根据qtc矩阵内qtc的位置以及空间相邻(右边和下边)qtc的有效性选择用于编码该qtc的有效位的上下文模型。现有技术的解码器通过上下文模型解析比特流中的有效位,即根据解析的比特的qtc的位置和先前解码的有效qtc的位置选择的上下文模型。如果扫描顺序对解码器不可用,则qtc的空间位置是未定义的,因此,不能获得上下文模型。

如图11所示,在熵编码器之前的所提出的重排序阶段确保了编码器和解码器将使用相同的扫描顺序和相同的上下文模型用于编码/解码qtc。

图11特别描述了在量化之后获得了最后一个有效系数(对于对角扫描而言)位于(x=1,y=2)的qtc矩阵(它左下部分)的情况。在对角扫描的情况下,应对8个系数有效位进行编码。

为了选择其它扫描顺序(例如,由选择器109进行选择),例如水平扫描而不是对角扫描,对前两行的qtc比特和第三行的两个qtc比特(共10个qtc)进行编码可能是有利的。然而,如果对这些系数进行重排序以从对角扫描变为水平扫描(如图11所示的上半部分),应该对最后相同的8个qtc比特的位置进行编码。

对于熵编码模块106有两种扫描可用:

用于熵解码模块206解析比特流的默认扫描;

扫描顺序选择器109选择的扫描。

当熵编码模块根据qtc位置选择上下文模型时,不仅使用扫描顺序选择器109定义的x和y,在重排序之后,还为qtc的相应位置重新计算x和y。

例如,在图11的示例中,建议考虑扫描顺序选择器109选择对角扫描且默认扫描是水平扫描的情况。熵编码模块106将使用重排序位置(x=0,y=2)的上下文模块(标记为水平扫描中的“e”)编码在位置(x=1,y=1)的系数(标记为对角扫描中的“e”),相邻系数将不会定义为“i”和“h”,而是定义为“f”和“i”。

这种重排序操作可以实现为x和y坐标从所选扫描到默认扫描的重映射,即为实现这种重排序,没有必要对qtc进行内存复制/交换操作,而仅是为每对扫描(所选扫描和默认扫描)提供x和y坐标的查找表。

数据隐藏可以使用已知的方法将扫描顺序嵌入qtc。然而,在对扫描顺序进行隐藏的当前情况下,另一种可能性是扫描顺序可以由应用于最后一个有效qtc值的坐标(x,y)的条件指定,例如:

mod(x+y,2)=scan_idx(c1)

在这种情况下,编码器可以修改最后一个有效qtc的位置,以指示解码器应该使用的扫描。所描述的隐藏方法的隐藏条件是为扫描顺序指定一组坐标。在这方面,图12示出了为扫描顺序定义的隐藏条件的例子。

在图12中,“x”标记表示使用条件(c1)校验的位置。也可以在qtc值内将这种方法和数据隐藏结合起来。例如,从最后一个有效qtc位置检索到的值可以用作qtc值内隐藏的部分隐藏条件。

已知的是,如果主机信号和目标信号具有通用的分布,则隐藏更有效。本发明的另一实施例可能随机化地使(c1)的分布更接近于通用。具体地,可以添加随机噪声r的附加源:

mod(x+y+r,2)=scan_idx

r的值应尽可能的与所选扫描顺序不相关。例如,r的值可以是相邻tu的数量、参考样本值之和的奇偶校验值或编码比特的总数。

因此,为了减少信令开销,本发明提出在熵解码期间获得qtc反序列化之前的扫描顺序。当隐藏tu相关的数据(例如帧内预测模式、滤波标志等)时,隐藏的信息在反序列化和去量化阶段后使用。因此,本发明提出了在对这些系数进行反序列化之前使用qtc中隐藏的数据的可能性。

本发明描述的量化过程也适用于针对运动图片编码等的预测和变换过程之后获得的残余物。本发明的目的是通过延伸在tu级使用不同的编码特征(例如,帧内预测模式、块大小、分割模式)选择的可用扫描顺序的集合,以提高量化的比率失真效率。本发明的特定实现方式呈现为同时使用模式相关的扫描选择机制和基于rdo的扫描选择机制的技术。

本发明解决了与基于rdo的扫描顺序选择相关的问题。特别地,它解决了相对于已知的预定义的扫描模式,基于先前编码或解码的块的收集的统计数字的自适应扫描顺序并不总是提供更好的编码效率的问题。因此,一种解决方案是用于从内容自适应生成的扫描顺序和预定义的扫描模式中只选择一个扫描的基于rdo的程序。

特别地,本发明解决了上述在预定义的扫描模式和自适应生成的扫描顺序都可用时提高扫描顺序选择中的编码效率的问题。

本发明的多媒体编码实施例进一步提供了可以在与联合开发模式(jointexplorationmodel,jem)兼容的混合视频编码框架中许多潜在的应用中使用的优点。联合开发模式是下一代视频编码标准的基础。进一步的优点是与jem1相比,bd率(deltarate)的减小和主观质量的改进。进一步的优点是,计算复杂的自适应多变换(adaptivemultipletransform,简称amt)也称为增强型多变换(enhancedmultipletransform,简称emt)可以通过更简单的自适应扫描顺序选择程序来替代。

本发明的一个方面将预定义的扫描模式或顺序与自适应生成的扫描顺序相结合。此外,在扫描顺序选择程序中添加信令机制显著改善了生成用于提高编码效率的自适应扫描顺序的过程。

已经根据作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所请发明,研究附图、本公开以及独立权项,能够理解并获得其它变体。在权利要求以及描述中,术语“包括”不排除其它元件或步骤,且“一个”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的组合不能在有利的实现方式中使用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1