使用经映射变换和扫描模式的视频译码的制作方法

文档序号:17922388发布日期:2019-06-15 00:12阅读:183来源:国知局
使用经映射变换和扫描模式的视频译码的制作方法

相关申请案的交叉参考

本专利申请案与以下共同待决美国专利申请案相关:

2011年7月7日申请的第13/178,427号美国专利申请案、2011年7月7日申请的第13/178,434号美国专利申请案,以及2011年7月7日申请的第13/178,438号美国专利申请案,其每一者指派给本受让人,且在以引用的方式明确地并入本文中。

技术领域

本发明涉及视频译码,且更特定来说涉及用于产生和扫描通过视频译码过程产生的变换系数的技术。



背景技术:

数字视频能力可并入到广泛装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置等。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)、当前在开发中的高效视频译码(HEVC)标准所定义的标准和此类标准的扩展版中描述的技术,以更有效地发射、接收和存储数字视频信息。

视频压缩技术包含空间预测和/或时间预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频帧或切片分割成块。每一块可经进一步分割。帧内译码(I)帧或切片中的块是使用相对于同一帧或切片中的相邻块中的参考样本的空间预测来编码。帧间译码(P或B)帧或切片中的块可使用相对于同一帧或切片中的相邻块中的参考样本的空间预测或相对于其它参考帧中的参考样本的时间预测。空间或时间预测产生针对待译码的块的预测块。残余数据表示待译码的原始块与预测块之间的像素差。

根据指向形成预测块的参考样本的块的运动向量以及指示经译码块与预测块之间的差的残余数据来编码帧间译码块。根据帧内译码模式和残余数据来编码帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,所述残余变换系数接着可经量化。经量化的变换系数(初始以二维阵列布置)可以特定次序经扫描以产生变换系数的一维向量以用于熵译码。



技术实现要素:

一般来说,本发明描述用于对视频数据进行译码的技术。本发明描述用于在视频译码过程期间变换残余视频数据以及扫描变换系数的技术。一般来说,待译码的图片的块可经帧内模式编码(例如,相对于同一图片的其它块编码)或帧间模式编码(例如,相对于先前译码图片的块编码)。在任一情况下,视频编码器均形成预测数据和残余数据。

在本发明的一个实例中,一种视频编码器可经配置以基于帧内预测模式确定变换与扫描模式组合的子集,从所述变换与扫描模式组合的子集选择一变换与扫描模式组合,将选定的变换应用于与基于帧内预测模式预测块相关联的残余数据以便产生变换系数的二维阵列,且将选定的扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列。

所述视频编码器可进一步经配置以用信号发出指示所选择的变换与扫描模式的组合的索引。在其它实例中,所述索引仅可指示变换。在此类情况下,视频解码器可基于变换推断扫描模式,或可基于帧内预测模式推断扫描模式。在此情况下,可从所有可能的变换或从变换的子集选择所述变换,其中基于帧内预测模式确定所述子集。

在本发明的另一实例中,一种视频解码器可经配置以:接收经编码视频数据,其中所述经编码视频数据是根据帧内预测模式而编码;对所述经编码视频数据进行熵解码,借此产生变换系数的一维阵列;从变换与扫描模式组合的子集确定一变换,其中所述子集是基于帧内预测模式;从变换与扫描模式组合的所述子集确定一扫描模式;以所确定的扫描模式扫描变换系数的一维阵列以产生变换系数的二维阵列;且以所确定的变换对变换系数的二维阵列进行逆变换以产生与基于帧内预测模式预测块相关联的残余视频数据。

在本发明的另一实例中,一种视频编码器可使用来自多个变换的变换来变换残余数据,所述多个变换例如离散正弦变换、离散余弦变换、经设计的变换和/或初级变换(例如,2-D离散余弦变换)与次级变换(例如,2-D旋转变换)的组合。所述变换可为具有在正交方向(例如,垂直和水平方向)上施加的分量的2-D可分离变换。所述次级变换可应用于初级变换的变换系数。2-D初级变换与2-D次级变换的组合可视为单一2-D变换。视频编码器可将所述变换应用于残余数据以产生变换系数的二维阵列。视频编码器可经配置以选择扫描模式来将二维阵列中的变换系数扫描到变换系数的一维阵列中。所述扫描模式可基于用于产生二维阵列的所述变换而选择。在一个实例中,变换可映射到扫描模式。可向视频解码器用信号发出所使用的变换和/或扫描模式。在以选定的扫描模式进行扫描之后,可对变换系数的一维阵列进行熵编码。

在本发明的另一实例中,一种视频解码器可对经编码的视频数据进行熵解码以检索变换系数的一维阵列。视频解码器接着执行逆扫描过程以将变换系数的一维阵列转换为变换系数的二维阵列。视频解码器使用与视频编码器所使用的扫描模式相同的扫描模式(以逆方式)。这可由视频解码器通过检索指示视频编码器使用的变换的信令元素且接着选择映射到所述变换或变换的组合的扫描模式来确定。在逆扫描之后,视频编码器可接着将逆变换应用于变换系数的二维阵列以检索残余数据。

一个或一个以上实例的细节陈述于附图及以下描述中。其它特征、目标及优势将从描述及附图和从权利要求书中显而易见。

附图说明

图1是说明实例帧内预测模式方向的概念图。

图2是说明用于扫描变换系数的实例扫描模式的图。

图3是说明变换与扫描模式之间的映射的图。

图4是说明实例视频编码和解码系统的框图。

图5是说明实例视频编码器的框图。

图6是说明实例熵编码单元的框图。

图7是说明实例视频解码器的框图。

图8是说明实例熵解码单元的框图。

图9是说明对视频进行编码的实例方法的流程图。

图10A和10B是说明对视频进行编码的其它实例方法的流程图。

图12是说明对视频进行解码的实例方法的流程图。

图11是说明对视频进行编码的实例方法的流程图。

图13A、13B和13C是说明对视频进行编码的其它实例方法的流程图。

图14是说明对视频进行解码的实例方法的流程图。

图15是说明对视频进行解码的另一实例方法的流程图。

具体实施方式

一般来说,本发明描述用于对视频数据进行译码的技术。更特定来说,本发明描述关于在视频译码过程期间变换残余数据以及扫描变换系数的技术。在一个实例中,本发明提议变换映射到扫描模式。

数字视频装置实施视频压缩技术以更有效地发射和接收数字视频信息。视频压缩可应用空间(帧内)预测和/或时间(帧间)预测技术来减少或移除视频序列中固有的冗余。

作为一个实例,为了根据由视频译码联合合作团队(JCT-VC)当前在开发中的高效视频译码(HEVC)标准来进行视频译码,视频帧可分割为译码单元。译码单元通常指代充当各种译码工具针对视频压缩所应用于的基本单元的图像区。译码单元通常为正方形,且可视为类似于所谓的宏块,例如依据比如ITU-T H.264等其它视频译码标准。本申请案中将出于说明的目的描述根据发展中HEVC标准的当前所提议方面中的一些方面的译码。然而,本发明中描述的技术可用于其它视频译码过程,例如根据H.264或其它标准界定的视频译码过程或专门的视频译码过程。

为实现合乎需要的译码效率,译码单元(CU)可具有取决于视频内容的可变大小。另外,译码单元可分裂为较小块用于预测或变换。特定来说,每一译码单元可进一步分割为预测单元(PU)和变换单元(TU)。预测单元可视为类似于依据例如H.264标准等其它视频译码标准的所谓的分区。变换单元(TU)通常指代向其应用变换以产生变换系数的残余数据的块。本发明还使用术语“块”来指代CU、PU或TU中的任一者。

译码单元通常具有表示为Y的亮度分量,以及表示为U和V的两个色度分量。取决于视频取样格式,U和V分量的大小(依据样本数目)可与Y分量的大小相同或不同。

为对块(例如,视频数据的预测单元)进行译码,首先导出所述块的预测符。所述预测符(也称为预测块)可经由帧内(I)预测(即,空间预测)或帧间(P或B)预测(即,时间预测)来导出。因此,一些预测单元可使用相对于同一帧(或切片)中的相邻参考块中的参考样本的空间预测来帧内译码(I),且其它预测单元可相对于其它先前译码帧(或切片)中的参考样本的块而单向帧间译码(P)或双向帧间译码(B)。在每一情况下,参考样本可用于形成针对待译码的块的预测块。

HEVC标准化努力是基于称为HEVC测试模型(HM)的视频译码装置的模型。HM假定视频译码装置优于根据例如ITU-T H.264/AVC的装置的若干能力。举例来说,鉴于H.264提供九个帧内预测编码模式,HM提供多达三十五个帧内预测编码模式。

HEVC中的三十五个帧内预测模式包含一个DC模式、一个平面模式,以及33个不同的定向预测模式。利用定向预测模式,基于沿着所述模式指示的特定方向的相邻块重建的像素来执行预测。图1展示与不同预测模式相关联的方向。

在识别预测块后,确定原始视频数据块与其预测块之间的差。此差可称为预测残余数据,且指示待译码的块中的像素值与经选择以表示经译码块的预测块中的像素值之间的像素差。为实现较好压缩,可例如使用离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、卡洛变换(Karhunen-Loeve transform,KLT)或另一变换来变换预测残余数据。KLT可依据通过训练序列的集合产生的残余块而设计,或可从针对预测残余的相关模型导出。有可能使用其它方法来依据通过训练序列的集合产生的残余块而设计变换。本发明还使用术语“设计变换”来指代此变换。

对“DCT变换”或其它类似变换的参考应理解为包含固定点实施方案和浮点实施方案两者。作为一个实例,DCT变换的实施方案可实际上包括DCT的近似,使得DCT变换具有整数系数(即,固定点系数)而非有理数系数。

在一些实例中,变换可包括不可分离变换。不可分离变换通常计算量大,且因此,视频译码装置可改为应用可分离变换。一般来说,可分离变换包含施加到块的行的水平分量以及施加到块的列的垂直分量。以此方式,可分离变换可具有行变换分量和列变换分量,也称为两个正交变换分量。两个矩阵可用于界定可分离变换,所述矩阵中的每一者对应于正交变换分量中的一者。不可分离变换可仅包含一个矩阵,其当应用时产生与应用可分离变换概念上类似的结果,但经由相对更密集的计算。

例如TU等变换块中的残余数据可布置在驻留在空间像素域中的像素差值的二维(2D)阵列中。变换将残余像素值转换为变换域(例如,频域)中的变换系数的二维阵列。为进一步压缩,变换系数可在熵译码之前量化。熵译码器接着将例如上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)或类似译码等熵译码应用于经量化的变换系数。

为了对经量化变换系数的块进行熵译码,通常执行扫描过程使得块中的经量化变换系数的二维(2D)阵列根据特定扫描次序重新布置为变换系数的有序一维(1D)阵列,即向量。熵译码接着应用于变换系数的向量。变换单元中的经量化变换系数的扫描使针对熵译码器的变换系数的2D阵列串行化。在一些实例中,视频编码器可经配置以使用可变长度码(VLC)来表示阵列的各个可能的经量化变换系数,例如使用上下文自适应可变长度译码(CAVLC)。在其它实例中,视频编码器可经配置以使用二进制算术译码来编码所得经量化系数,例如使用上下文自适应二进制算术译码(CABAC)。

通常,二维阵列中指定的变换系数在所述阵列内以实现游程长度译码(如果从二维阵列适当读取的话)的方式分组。适当读取意味着非零系数尽可能好地分组在一起,且零值系数尽可能好地分组在一起。编码器可使用扫描模式来从二维阵列提取变换系数。这些扫描模式可执行变换系数的二维阵列上的对角扫描、水平扫描或垂直扫描(如图2所示)或任何其它类型的扫描,以产生变换系数的一维阵列。举例来说,还可执行自适应扫描。

当执行对角扫描模式17时,视频译码装置以对角图案遍历二维阵列。图2是展示针对4×4块的一个可能实例的概念图。同样,使用水平扫描模式19的视频译码装置以水平图案遍历二维阵列。使用垂直扫描模式21的视频译码装置以垂直图案遍历二维阵列。可在前向或反向方向上执行这些扫描模式中的每一者。前向方向上的扫描模式从阵列的左上角(即,阵列的DC系数)向阵列的右下角(即,阵列的较高频系数)前进。相反,反向方向上的扫描模式从阵列的右下角向阵列的左上角前进。

在一个常规实例中,视频编码器执行图2的实例中所示的三个扫描模式中的每一者,且根据这些扫描模式中的每一者评估扫描变换系数的结果。为了评估这些扫描模式,编码器可确定在扫描之后变换系数在一维阵列中分组在一起的程度。编码器接着选择所执行的扫描模式中提供一维阵列内的变换系数的最佳分组的一者,且用信号表示此扫描模式曾用于扫描变换系数。

在另一实例中,所提议的HEVC标准当前指定变换与扫描模式的12个不同组合以用于帧内预测。用于HEVC中的帧内预测的当前变换包含水平DCT/垂直DST、水平DST/垂直DCT、水平DCT/垂直DCT,以及水平DST/垂直DST。当前扫描模式包含水平扫描模式、垂直扫描模式和对角扫描模式,如图2所示。对于每一帧内预测模式,测试每一组合,且选择使用提供最佳位速率(或满足位速率阈值)的变换/扫描模式组合。测试全部12个组合通常致使对编码器的增加的计算负担。此外,在经编码位流中用信号发出变换与扫描模式组合。由于存在12个组合,所以相对大数目的位用于用信号发出所述组合,因此增加位速率。HEVC中12个组合的实例仅为一个实例。本发明的技术可适用于具有任何数目的变换与扫描模式组合的任何视频译码方案,且适用于任何类型的变换和任何类型的扫描模式。如下文更详细描述,本发明提供用以减小计算复杂性且改进位流译码效率的技术。

本发明描述关于视频译码过程期间残余值的变换、量化、扫描和熵编码的若干技术。所述技术可由视频编码和解码单元两者应用,包含视频编码器/解码器(CODEC)以及经配置以执行视频编码和/或解码的处理单元。对“视频译码单元”或“视频译码装置”的参考应理解为指代能够对视频数据进行编码、解码或编码和解码两者的单元或装置。

一般来说,本发明的技术涉及变换残余数据和扫描TU的变换系数。在一个实例中,本发明的技术包含基于用于产生残余数据的帧内预测模式确定变换与扫描模式组合的子集。通过将组合的数目减小到组合的总数的子集,选择变换与扫描模式的计算负担可减小。另外,变换与扫描模式组合可在经编码视频位流中用信号发出作为指示所述组合的索引。如果针对每一帧内预测模式的子集中的组合的总数限于四个或更少组合,那么组合的索引可小至2个位。所述索引可使用上下文自适应二进制算术译码器(CABAC)或上下文自适应可变长度码(CAVLC)来进行熵译码。这可导致开销信令实质上减少,因此减小位速率。

可通过评估对应于针对一训练序列集合上的每一帧内预测模式的12个可能变换-扫描组合中的每一者的速率-失真成本,以及选择提供训练序列集合上的最佳速率-失真成本的组合的子集,来确定针对每一帧内预测模式的子集的优选组合。作为一实例,对于水平预测模式,当仅使用两个组合时,子集可选择为(1)水平DST/垂直DCT和垂直扫描,以及(2)水平DCT/垂直DCT和对角扫描。

在此实例中,视频编码器根据帧内预测模式计算残余数据。变换与扫描模式组合的子集是基于帧内预测模式来确定。变换与扫描模式组合选自所述子集。所述子集内的选择可基于测试子集中的每一变换与扫描模式组合,以及选择提供最低速率-失真成本的组合。

接着将选定的变换应用于残余数据以便产生变换系数的二维阵列。选定扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列。可对变换系数的一维阵列进行熵译码,因此形成经编码视频位流。

所选择的变换与扫描模式的组合可使用索引在经编码视频位流中用信号发出。所述索引指示相对于基于帧内预测模式的子集的组合。如果子集限于四个组合或更少组合,那么所述索引可小至2个位。所述索引可使用CABAC或CAVLC来熵译码。视频编码器和视频解码器可存储指示针对每一子集(以及因此针对每一帧内预测模式)的变换与扫描模式组合的配置数据,以及所述索引到针对所述子集的特定组合的映射。

在另一信令实例中,所述索引仅指示选定变换。扫描模式因而基于所述变换。如此,每一变换映射到特定扫描模式。变换与扫描模式之间的映射可作为配置数据存储在视频编码器和视频解码器两者中。

在另一信令实例中,所述索引指示选定变换。扫描模式因而基于帧内预测模式。如此,针对子集中的每个组合的扫描模式将相同,因为子集也基于帧内预测模式。视频编码器和视频解码器可存储指示扫描模式与帧内预测模式之间的关系的配置数据。

作为另一实例,本发明的技术包含选择一变换来用以变换帧内预测块或帧间预测块的残余值,以及基于选定的变换选择扫描模式。在一个实例中,变换映射到扫描模式。扫描模式可界定例如水平、垂直、对角或Z形扫描等预定义扫描,这与基于针对经扫描系数计算的统计数据修改随时间的扫描次序的自适应扫描形成对比。此实例的技术可结合上文描述的子集技术实施,或可独立地实施。

换句话说,视频译码装置可包含指定从变换到当应用所述变换时将应用的扫描的映射的一组配置数据。举例来说,指定映射的配置数据可存储在存储器中。以此方式,视频编码器可简单地提供待应用的变换的指示,且视频解码器可确定将应用于一组经译码数据的逆变换和逆扫描两者。即,使用单一语法元素,视频解码器可确定将应用于一组串行化变换系数以再现变换系数的二维矩阵的逆扫描,以及将应用于二维矩阵以再现残余数据块的逆变换。

根据本发明中描述的技术,包含不可分离和可分离变换的变换可映射到某些扫描模式以免必须执行如上文描述的多个扫描和评估。测试结果已展示当使用特定变换来产生变换系数的二维阵列时将更可能选择特定扫描模式。并非测试所有可用扫描模式,本发明的技术允许通过消除对此类测试的需要而减小选择扫描模式的过程中的计算复杂性。此外,这些技术还允许减少位流中位的使用,因为无需提供扫描的单独指示。如先前论述,从变换到扫描的映射可通过以下操作来产生:编码大量训练序列,以及针对每一类型的变换评估每一扫描模式的速率-失真成本以确定哪一扫描模式对于特定变换在速率-失真意义上可能是最佳的。举例来说,如果将水平DCT/垂直DST应用于块,那么水平扫描可能是最佳的。类似地,如果应用水平DST/垂直DCT,那么垂直扫描可能是最佳的。

图3是展示已展示为在测试结果中运作良好的变换与扫描模式之间的实例映射的概念图。视频译码装置可包含表示从变换到扫描的这些或其它映射的一组配置数据。作为一个实例,水平DCT/垂直DCT变换可映射到对角扫描模式。

作为另一实例,包含垂直方向上的第一经设计变换分量和水平方向上的DCT分量的可分离变换可映射到水平扫描模式。经设计变换指代KLT、DCT、DST或任何其它变换,或经特定设计以产生某一结果的可分离变换的变换分量,其中此设计通常经由广泛训练实现。即,界定经设计变换的输入系数值可基于源自帧内预测的若干预测残余块的相关或类似统计数据来确定。或者,此类统计数据可用于将模型拟合到残余值,且所述模型又可用于导出变换。这可涉及确定从帧内预测模型到变换的映射以及接着基于一变换所应用于的所有块的相关统计数据设计所述变换的多次迭代。

作为另一实例,包含垂直方向上的DCT分量和水平方向上的第二经设计变换分量的可分离变换可映射到垂直扫描模式。

所述组合还可以若干方式变化。举例来说,包含垂直方向上的DCT分量或某一其它变换分量以及水平方向上的第一经设计变换分量的可分离变换可映射到水平扫描模式。同样,包含垂直方向上的第二经设计变换分量和水平方向上的DCT分量或某一其它变换分量的可分离变换可映射到垂直扫描。

在其中这些组合可变化的另一实例中,包含水平方向上的第一经设计变换分量和垂直方向上的第二经设计变换分量的可分离变换可映射到水平扫描模式。

或者,包含水平方向上的第三经设计变换分量和垂直方向上的第四经设计变换分量的可分离变换可映射到垂直扫描模式。

例如“第一”、“第二”等数值识别符的使用应在象征性意义上而非排序意义上理解。即,“第一”的名称应理解为指代一组类似元素中的任意元素,而非所述组中的排序为第一的元素。

不管所采用的变换与扫描模式的组合如何,编码器可在经编码视频位流中用信号发出所述组合,或者,编码器和解码器两者可采用相同逻辑、规则和/或软件来以共同方式选择所述组合。举例来说,视频解码器可从例如块大小、译码模式等一个或一个以上译码特性推断编码器使用的变换。在一个实例中,编码器可简单地用信号发出在经编码视频位流中使用的变换,因为扫描模式是从所使用的变换或变换的组合映射的。在另一实例中,视频编码器可用信号发出视频解码器为了使编码器应用的变换反向而应当使用的逆变换。视频解码器可接着从逆变换的用信号发出的指示推断编码器使用的变换。通过接收指示编码器使用的变换的信息,视频解码器可执行简单查找以确认适当的扫描模式。

此实例的技术允许视频编码器避免需要相对于变换系数的每个二维阵列执行所有扫描模式,而是改为实现基于从所应用变换的映射来选择扫描模式中的一者。此外,这些技术允许视频编码器简单地提供表示待应用的变换和扫描两者的单一值,且因此可与单独用信号表示变换和扫描两者相比减少位流中的位数目。通常,映射经界定以使得所映射的扫描模式表示一扫描,所述扫描经确定以提供针对一大组样本数据所述扫描从其映射的变换的最佳结果。因此,所述扫描可视为依据用于产生变换系数的一维阵列的分组的可用扫描模式中的最佳者。因此,本发明的技术利用这些关联来提供对视频数据的有效编码。

图4是说明根据本发明的实例的实例视频编码和解码系统10的框图,所述系统10可经配置以利用用于变换残余数据以及扫描变换系数的技术。如图4所示,系统10包含源装置12,其经由通信信道16将经编码视频发射到目的地装置14。经编码视频数据还可存储在存储媒体34或文件服务器36上,且可视需要由目的地装置14存取。当存储到存储媒体或文件服务器时,视频编码器20可将经译码视频数据提供到另一装置,例如网络接口、压缩光盘(CD)或数字视频光盘(DVD)烧录器或冲压设施装置,或用于将经译码视频数据存储到存储媒体的其它装置。同样,独立于视频解码器30的装置(例如,网络接口、CD或DVD读取器等)可从存储媒体检索经译码视频数据,且将检索到的数据提供到视频解码器30。

源装置12和目的地装置14可包括广泛多种装置中的任一者,包含桌上型计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、例如所谓的智能电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台等。在许多情况下,此类装置可经装备以用于无线通信。因此,通信信道16可包括无线信道、有线信道,或适于发射经编码视频数据的无线与有线信道的组合。类似地,文件服务器36可由目的地装置14经由任何标准数据连接(包含因特网连接)来存取。这可包含适于存取存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、线缆调制解调器等)或两者的组合。

根据本发明的实例用于变换残余数据以及扫描变换系数的技术可应用于视频译码以支持多种多媒体应用中的任一者,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储在数据存储媒体上的数字视频的编码、存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射以支持例如视频串流、视频重放、视频广播和/或视频电话等应用。

在图4的实例中,源装置12包含视频源18、视频编码器20、调制器/解调器22和发射器24。在源装置12中,视频源18可包含源,例如视频俘获装置(例如,摄像机)、含有先前俘获的视频的视频档案、用以接收来自视频内容提供者的视频的视频馈送接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统,或此类源的组合。作为一个实例,如果视频源18为摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,本发明中描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。

可由视频编码器20来编码经俘获的、经预先俘获的或计算机产生的视频。经编码的视频信息可由调制解调器22根据通信标准(例如,无线通信协议)调制且经由发射器24发射到目的地装置14。调制解调器22可包含各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。发射器24可包含经设计以用于发射数据的电路,包含放大器、滤波器及一个或一个以上天线。

由视频编码器20编码的经俘获的、经预先俘获的或计算机产生的视频还可存储到存储媒体34或文件服务器36上以用于稍后消耗。存储媒体34可包含蓝光光盘、DVD、CD-ROM、快闪存储器,或用于存储经编码视频的任何其它适宜的数字存储媒体。存储在存储媒体34上的经编码视频可接着由目的地装置14存取以用于解码和重放。

文件服务器36可为能够存储经编码视频且将所述经编码视频发射到目的地装置14的任何类型的服务器。服务器的实例包含网络服务器(例如,针对网站)、FTP服务器、网络附接存储(NAS)装置、本地磁盘驱动器,或能够存储经编码视频数据且将其发射到目的地装置的任何其它类型的装置。经编码视频数据从文件服务器36的发射可为串流发射、下载发射,或两者的组合。文件服务器36可由目的地装置14经由任何标准数据连接(包含因特网连接)存取。这可包含适于存取存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、线缆调制解调器、以太网、USB等)或两者的组合。

在图4的实例中,目的地装置14包含接收器26、调制解调器28、视频解码器30和显示装置32。目的地装置14的接收器26经由信道16接收信息,且调制解调器28对信息解调以产生针对视频解码器30的经解调位流。经由信道16传送的信息可包含由视频编码器20产生以供由视频解码器30用于解码视频数据的多种语法信息。此语法还可包含在存储在存储媒体34或文件服务器36上的经编码视频数据中。视频编码器20和视频解码器30中的每一者可形成能够编码或解码视频数据的相应编码器-解码器(CODEC)的一部分。

显示装置32可与目的地装置14集成或在目的地装置14外部。在一些实例中,目的地装置14可包含集成显示装置,且还可经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示装置32向用户显示经解码的视频数据,且可包括例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置等多种显示装置中的任一者。

在图4的实例中,通信信道16可包括任一无线或有线通信媒体,例如,射频(RF)频谱或一个或一个以上物理发射线、或无线和有线媒体的任一组合。通信信道16可形成例如局域网、广域网或例如因特网等全球网络的基于包的网络的一部分。通信信道16一般表示用于将视频数据从源装置12发射到目的地装置14的任何合适的通信媒体或不同通信媒体的集合,包括有线或无线媒体的任何合适组合。通信信道16可包含可用于促进从源装置12到目的地装置14的通信的路由器、开关、基站或任何其它设备。

视频编码器20和视频解码器30可根据视频压缩标准操作,所述视频压缩标准例如当前在开发中的高效视频译码(HEVC)标准,且可遵守HEVC测试模型(HM)。或者,视频编码器20和视频解码器30可根据其它专门或工业标准操作,例如ITU-T H.264标准(或者称为MPEG-4第10部分高级视频译码(AVC)),或此类标准的扩展。然而,本发明的技术不限于任何特定译码标准。其它实例包含MPEG-2和ITU-T H.263。

尽管图4中未展示,但在一些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件和软件,以处置对共同数据流或单独数据流中的音频与视频两者的编码。如果适用,在一些实例中,MUX-DEMUX单元可遵守ITU H.223多路复用器协议或例如用户数据报协议(UDP)等其它协议。

视频编码器20和视频解码器30各自可经实施为例如一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合等多种合适的编码器电路中的任一者。当所述技术部分以软件实施时,装置可将软件的指令存储在适宜的非瞬时计算机可读媒体中,且使用一个或一个以上处理器在硬件中执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含在一个或一个以上编码器或解码器中,其任一者可作为组合式编码器/解码器(CODEC)的一部分集成在相应装置中。

视频编码器20可实施用于在视频译码过程中变换残余数据以及扫描变换系数的本发明的任何或所有技术。同样,视频解码器30可实施用于在视频译码过程中变换残余数据以及扫描变换系数的任何或所有这些技术。如本发明中所描述,视频译码器可指代视频编码器或视频解码器。类似地,视频译码单元可指代视频编码器或视频解码器。同样,视频译码可指代视频编码或视频解码。

在本发明的一个实例中,源装置12的视频编码器20可经配置以根据帧内预测模式计算残余数据,基于帧内预测模式确定变换与扫描模式组合的子集,从所述变换与扫描模式组合的子集选择一变换与扫描模式组合,将选定的变换应用于残余数据以便产生变换系数的二维阵列,且将选定的扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列。

在本发明的另一实例中,目的地装置14的视频解码器30可经配置以:接收经编码视频数据,其中根据帧内预测模式编码经编码视频数据;对经编码视频数据进行熵解码,借此产生变换系数的一维阵列;从变换与扫描模式组合的子集确定一变换,其中所述子集是基于帧内预测模式;从所述变换与扫描模式组合的子集确定一扫描模式;以所确定的扫描模式扫描变换系数的一维阵列以产生变换系数的二维阵列;且以所确定的变换对变换系数的二维阵列进行逆变换以产生残余视频数据。

在本发明的另一实例中,源装置12的视频编码器20可经配置以:计算对应于至少一个帧的一部分的残余数据;从多个变换选择一变换;将选定变换应用于残余数据以变换所述残余数据以便产生变换系数的二维阵列;从多个扫描模式选择一扫描模式,其中选定的扫描模式是从选定变换映射的;且将选定扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列。

在本发明的另一实例中,目的地装置14的视频解码器30可经配置以:对对应于至少一个帧的一部分的经编码视频数据进行熵解码,借此产生变换系数的一维阵列;从多个变换确定一变换;从多个扫描模式选择一扫描模式,其中选定扫描模式是从所确定的变换映射的;且将选定扫描模式应用于变换系数的一维阵列以产生变换系数的二维阵列。视频解码器30可进一步将逆变换应用于变换系数的二维阵列,其中所述逆变换对应于所确定的变换。

图5是说明可使用如本发明中描述的用于变换残余数据以及扫描变换系数的技术的视频编码器20的实例的框图。将出于说明的目的在HEVC译码的上下文中描述视频编码器20,但本发明在可需要变换系数的扫描的其它译码标准或方法方面无限制。视频编码器20可执行视频帧内的CU的帧内和帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧内的视频数据中的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的当前帧与先前译码帧之间的时间冗余。帧内模式(I模式)可指代若干基于空间的视频压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可指代若干基于时间的视频压缩模式中的任一者。

如图5所示,视频编码器20接收待编码的视频帧内的当前视频块。在图4的实例中,视频编码器20包含运动补偿单元44、运动估计单元42、帧内预测单元46、参考帧缓冲器64、求和器50、变换单元52、量化单元54,和熵编码单元56。图5中说明的变换单元52是将实际变换或变换的组合应用于残余数据块的单元,且不能与也可称为CU的变换单元(TU)的变换系数块混淆。为了视频块重建,视频编码器20还包含逆量化单元58、逆变换单元60和求和器62。还可包含解块滤波器(图5中未展示)以对块边界进行滤波,以从经重建的视频移除成块性假影。如果需要,则解块滤波器将通常对求和器62的输出滤波。

在编码过程期间,视频编码器20接收待译码的视频帧或切片。所述帧或切片可划分为多个视频块,例如最大译码单元(LCU)。运动估计单元42和运动补偿单元44执行所接收视频块相对于一个或一个以上参考帧中的一个或一个以上块的帧间预测译码以提供时间压缩。帧内预测单元46可执行所接收视频块相对于与待译码块在同一帧或切片中的一个或一个以上相邻块的帧内预测译码以提供空间压缩。

模式选择单元40可基于针对每一模式的误差(即,失真)结果选择译码模式中的一者(帧内或帧间),且将所得的帧内或帧间预测块(例如,预测单元(PU))提供到求和器50以产生残余块数据,以及提供到求和器62以重建经编码块用于参考帧中。求和器62将所预测块与来自逆变换单元60的经逆量化的逆变换数据组合以重建经编码块,如下文更详细描述。一些视频帧可经指定为I帧,其中I帧中的所有块在帧内预测模式中编码。在一些情况下,帧内预测单元46可执行P或B帧中的块的帧内预测编码,例如当运动估计单元42执行的运动搜索不产生块的充分预测时。

运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而单独说明。运动估计是产生估计视频块的运动的运动向量的过程。运动向量例如可指示当前帧中的预测单元相对于参考帧的参考样本的位移。参考样本可为被发现与CU的包含正译码的PU的部分在像素差方面紧密匹配的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差量度来确定。参考样本可在参考帧或参考切片内的任何地方发生,且不一定在参考帧或切片的块(例如,译码单元)边界处发生。在一些实例中,参考样本可在分数像素位置处发生。运动补偿单元44执行的运动补偿可涉及基于运动估计所确定的运动向量而提取或产生预测单元的值。再次,在一些实例中,运动估计单元42和运动补偿单元44可在功能上集成。

运动估计单元42通过将经帧间译码帧的预测单元与存储在参考帧缓冲器64中的参考帧的参考样本进行比较来计算所述预测单元的运动向量。举例来说,运动估计单元42可例如使用绝对差总和(SAD)、平方差总和(SSD)、平均绝对差(MAD)、平均平方差(MSD)等计算表示预测单元与正考虑的参考样本之间的逐像素差的总计值。在一些实例中,视频编码器20可计算存储在参考帧缓冲器64中的参考帧的子整数像素位置的值。举例来说,视频编码器20可计算参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可执行相对于完全像素位置和分数像素位置的运动搜索,且以分数像素精度输出运动向量。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。通过运动向量识别的参考帧的部分可称为参考样本。运动补偿单元44可例如通过检索针对PU的由运动向量识别的参考样本来计算当前CU的预测单元的预测值。

帧内预测单元46可对所接收块进行帧内预测,作为对运动估计单元42和运动补偿单元44执行的帧间预测的替代。帧内预测单元46可相对于相邻的先前译码块(例如,当前块上方的块、右上方的块、左上方的块,或左侧的块,假定块的从左向右、从上向下的编码次序)预测所接收块。帧内预测单元46可以多种不同帧内预测模式来配置。举例来说,帧内预测单元46可基于正编码的CU的大小以某一数目的定向预测模式来配置,例如三十四个定向预测模式以及一个平面预测模式。图1展示帧内预测模式的实例。

帧内预测单元46可通过例如计算各种帧内预测模式的误差值以及选择产生最低误差值的模式来选择帧内预测模式。定向预测模式可包含用于组合空间上相邻像素的值以及将组合值施加到PU中的一个或一个以上像素位置的功能。一旦已计算PU中的所有像素位置的值,帧内预测单元46就可基于PU与待编码的所接收块之间的像素差计算预测模式的误差值。帧内预测单元46可继续测试帧内预测模式直到发现产生可接受的误差值的帧内预测模式为止。帧内预测单元46可接着将PU发送到求和器50。

本发明的技术适用于任一预测模式(即,帧间和帧内预测两者)中的残余数据的变换。如此,在本发明的上下文中,残余译码单元可指代运动补偿单元或帧内预测单元。即,变换单元52所接收的残余数据可相对于对应块的帧内预测数据或帧间预测数据来计算。

视频编码器20通过从正译码的原始视频块减去由运动补偿单元44或帧内预测单元46计算的预测数据来形成残余块。求和器50表示执行此减法运算的组件。残余块可对应于像素差值的二维矩阵,其中残余块中的值的数目与对应于残余块的PU中的像素数目相同。残余块中的值可对应于PU中与待译码的原始块中的位于同一地点的像素的值之间的差(即,误差)。所述差可为取决于所译码的块的类型的色度或亮度差。

变换单元52可由残余块形成一个或一个以上变换单元(TU)。变换单元52从多个变换中选择一变换(其可包括包含在正交方向上施加的两个变换分量的可分离变换)。所述变换可基于例如块大小、译码模式等一个或一个以上译码特性来选择。根据本发明的一个实例,所述变换是基于帧内预测模式而从变换与扫描模式组合的子集选择。所述变换与扫描模式组合的子集小于可能由视频编码器使用的变换与扫描模式组合的总数。

变换单元52接着将选定变换应用于TU,从而产生包括变换系数的二维阵列的视频块。如上文论述,可选择的潜在变换包含预测模式相依变换、包含垂直方向上的第一经设计变换分量与水平方向上的DCT分量组合的可分离变换、包含垂直方向上的DCT分量与水平方向上的第二经设计变换分量组合的可分离变换、包含水平方向上的第一经设计变换分量与垂直方向上的第二经设计变换分量组合的可分离变换、包含水平方向上的第三经设计变换分量与垂直方向上的第四经设计变换分量组合的可分离变换,或适用于变换残余数据的任何其它变换。

变换单元52或视频编码器的另一单元(例如,熵编码单元56)可在经编码视频位流中用信号发出所选择的变换供视频解码器(例如,图3中的视频解码器30)使用。在另一实例中,变换单元52可基于变换单元52使用的变换来用信号发出待由视频解码器使用的逆变换的指示。所指示的逆变换将使变换单元52执行的过程反向。在此上下文中,在经编码位流中用信号表示变换或逆变换不需要将此类元素从编码器实时发射到解码器,而是意味着此类语法元素被编码到位流中且使得可由解码器以任何方式存取。这可包含实时发射(例如,在视频会议中)以及将经编码位流存储在计算机可读媒体上以供将来由解码器使用(例如,用于串流、下载、磁盘存取、卡存取、DVD、蓝光等)。

变换单元52可将所得变换系数发送到量化单元54。量化单元54可接着量化变换系数。熵编码单元56可接着根据扫描模式执行对矩阵中的经量化变换系数的扫描。本发明将熵编码单元56描述为执行所述扫描。然而,应理解,在其它实例中,例如量化单元54等其它处理单元可执行所述扫描。

在本发明的一个实例中,(视频编码器的某一其它单元的)熵编码单元56从变换与扫描模式组合的子集选择变换与扫描模式。所述变换与扫描模式组合可通过测试过程一起选择,其中选择产生最低速率-失真成本的组合。在此实例中,可在经编码视频位流中用信号发出指示选定组合的索引。所述索引可使用CABAC或CAVLC来进行熵译码。

在另一实例中,基于变换选择扫描模式。即,每一变换被映射到特定扫描模式。此映射可存储在编码器和解码器两者处。如此,在经编码视频位流中用信号发出指示变换的索引,且接着由视频解码器基于映射推断扫描模式。变换的索引可使用CABAC或CAVLC来进行熵译码。

在另一实例中,基于帧内预测模式选择扫描模式。即,子集中的每一变换与扫描模式组合具有相同扫描模式,因为所述子集也基于帧内预测模式。帧内预测模式与扫描模式之间的关系可存储在编码器和解码器两者处。如此,接着由视频解码器基于帧内预测模式推断指示在经编码视频位流中用信号发出的变换的索引和扫描模式。

在本发明的另一实例中,熵编码单元56基于用于产生变换系数的二维阵列的变换来选择扫描模式。在此实例中,变换和扫描模式不限于基于帧内预测模式的组合的子集。事实上,每一变换映射到特定扫描模式。在此情况下,可从针对视频编码器允许的所有可能变换或从子集选择所述变换。所述子集可基于帧内预测模式和/或块大小来选择。因此,视频编码器20可包含存储器,其存储界定从多个变换中的每一者到相应扫描模式的映射的一组配置数据。此类映射的实例在图3中展示,如上文论述。给定此技术,熵编码单元56无需测试所有可能的扫描模式且作出关于哪一者提供最佳性能的评估。而是,所述选择是基于所使用的变换。同样,熵编码单元56无需独立于用于指示变换的信号来用信号表示所述扫描。熵编码单元56接着将选定的扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列。

一旦变换系数扫描到一维阵列中,熵编码单元56就可将例如CAVLC、CABAC、基于语法的上下文自适应二进制算术译码(SBAC)或另一熵译码方法等熵译码应用于所述系数。另外,熵编码单元56可编码运动向量(MV)信息以及可用于在视频解码器30处解码视频数据的多种语法元素中的任一者。

为了执行CAVLC,熵编码单元56可选择待发射的符号的可变长度码。VLC中的码字可经构造以使得相对较短的码对应于较可能符号,而较长的码对应于较不可能符号。以此方式,VLC的使用可经由例如使用针对待发射的每一符号的相等长度码字而实现位节省。

为了执行CABAC,熵编码单元56可选择上下文模型以应用于特定上下文从而编码待发射的符号。所述上下文可关于例如相邻值是否为非零。熵编码单元56还可对例如表示选定变换的信号等语法元素进行熵编码。根据本发明的技术,熵编码单元56可基于例如帧内预测模式的帧内预测方向、对应于语法元素的系数的扫描位置、块类型和/或变换类型以及用于上下文模型选择的其它因素来选择用于编码这些语法元素的上下文模型。

在通过熵编码单元56进行熵译码之后,所得经编码视频可发射到另一装置(例如,视频解码器30)或存档以供稍后发射或检索。

在一些情况下,熵编码单元56或视频编码器20的另一单元可经配置以除熵译码外还执行其它译码功能。举例来说,熵编码单元56可经配置以确定CU和PU的经译码块模式(CBP)值。并且,在一些情况下,熵编码单元56可执行系数的游程长度译码。

逆量化单元58和逆变换单元60分别应用逆量化和逆变换来在像素域中重建残余块,例如以供稍后用作参考块。运动补偿单元44可通过将残余块加到参考帧缓冲器64的帧中的一者的预测块来计算参考块。运动补偿单元44还可将一个或一个以上内插滤波器应用于经重建的残余块以计算用于运动估计中的子整数像素值。求和器62将经重建残余块加到由运动补偿单元44产生的经运动补偿的预测块以产生用于存储在参考帧缓冲器64中的经重建视频块。经重建视频块可由运动估计单元42和运动补偿单元44用作参考块以对后续视频帧中的块进行帧间译码。

图6是说明用于图5的视频编码器中的熵编码单元56的实例的框图。图6说明熵编码单元56的各个功能方面,包含根据本发明的用于选择扫描模式的技术。熵编码单元56可包含扫描模式选择单元90、2D到1D扫描单元92、熵编码引擎94和扫描模式存储器96。

扫描模式选择单元90选择待由2D到1D扫描单元92使用以将变换系数的二维阵列扫描到变换系数的一维阵列中的扫描模式。扫描模式选择单元90可从多个扫描模式中选择所述扫描模式,包含图2所示的对角、垂直和水平扫描模式。在本发明的一个实例中,基于帧内预测模式从变换与扫描模式组合的子集选择所述扫描模式。从所述子集进行的扫描模式的选择可基于子集中的最佳(即,最低速率-失真成本)变换与扫描模式组合,可为变换相依的,或可为帧内预测模式相依的。在另一实例中,本发明提议不使用变换与扫描模式子集,且扫描模式的选择是基于所使用的变换。特定来说,多个变换中的每一变换映射到特定扫描模式。扫描模式存储器96可将这些映射关系(例如,扫描模式到变换、扫描模式到帧内预测模式)存储为配置数据以使得扫描模式选择单元90可检索它们。

2D到1D扫描单元92将选定扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列。熵编码引擎94接着将熵编码过程应用于经扫描系数。如上文论述,熵编码引擎94可使用CABAC、CAVLC或另一熵译码算法。熵编码引擎94产生携载经编码视频的位流。所述位流可发射到另一装置或存储在数据存储档案中以供稍后检索。除了残余变换系数数据外,所述位流还可携载可用于解码位流中的经编码视频的运动向量数据和各种语法元素。

应注意,尽管为便于说明而展示为单独的功能单元,但扫描次序和上下文选择单元90、2D到1D扫描单元92、熵编码引擎94和扫描模式存储器96的结构和功能性可彼此高度集成。

图7是说明解码经编码视频序列的视频解码器30的实例的框图。在图6的实例中,视频解码器30包含熵解码单元70、运动补偿单元72、帧内预测单元74、逆量化单元76、逆变换单元78、参考帧缓冲器82和求和器80。在一些实例中,视频解码器30可执行通常与相对于视频编码器20(见图5)描述的编码遍次互逆的解码遍次。

熵解码单元70对经编码位流执行熵解码过程以检索变换系数的一维阵列。所使用的熵解码过程取决于视频编码器20使用的熵译码(例如,CABAC、CAVLC等)。编码器使用的熵译码过程可在经编码位流中用信号发出或可为预定过程。

在一些实例中,熵解码单元70(或逆量化单元76)可使用与视频编码器20的熵编码单元56(或量化单元54)使用的扫描模式呈镜射的扫描来扫描所接收的值。尽管可在逆量化单元76中执行系数的扫描,但扫描将出于说明的目的而描述为由熵解码单元70执行。另外,尽管为便于说明展示为单独的功能单元,但熵解码单元70、逆量化单元76和视频解码器30的其它单元的结构和功能性可彼此高度集成。

根据本发明的一个实例,视频解码器30可接收经编码视频位流中的索引,其指示来自变换与扫描模式组合的子集的一变换与扫描模式组合,其中所述子集是基于帧内预测模式。在子集中存在四个或更少组合的情况下,所述索引可由具有小至两个位的长度的二进制值表示。所述索引可能已使用CABAC或CAVLC进行熵译码。在其它实例中,所述索引可仅指示从变换与扫描模式组合的子集使用的变换。在此实例中,扫描模式可为变换相依或帧内预测模式和/或块大小相依的。视频解码器可存储指示扫描模式如何从变换或帧内预测模式映射或与之相关的配置数据。

根据本发明的其它实例,视频解码器30可从经编码位流接收识别由视频编码器20用于产生变换系数的二维阵列的变换的信令信息。在此实例中,变换与扫描模式组合不限于基于帧内预测模式的子集。在另一实例中,视频解码器可从经编码位流接收指示待用于使编码器应用的变换反向的逆变换的信令信息。由于编码器使用的变换映射到特定扫描模式,所以熵解码单元70可从用信号表示的变换或逆变换确定使扫描反向所需的扫描模式。作为另一实例,熵解码单元70可从例如块大小、译码模式等一个或一个以上译码特性推断编码器使用的变换或变换的组合。一旦确定扫描模式,熵解码单元70就将扫描模式应用于变换系数的一维阵列以产生变换系数的二维阵列。熵解码单元70产生的变换系数的二维阵列可仍呈量化形式且可通常与由视频编码器20的熵编码单元56扫描的变换系数的二维阵列匹配。

逆量化单元76将位流中提供且由熵解码单元70解码的经量化变换系数逆量化,即解量化。逆量化过程可包含例如类似于针对HEVC提议或由H.264解码标准界定的过程的常规过程。逆量化过程可包含使用针对CU的由视频编码器20计算的量化参数QP来确定量化的程度,以及同样应当应用的逆量化的程度。逆量化单元76可在变换系数从一维阵列转换为二维阵列之前或之后对所述系数进行逆量化。

逆变换单元58应用逆变换,例如上文描述的用于与视频编码器20的变换单元52一起使用的变换的反向形式。在一个实例中,可从指示视频编码器使用的变换与扫描模式组合的索引推断逆变换。变换与扫描模式组合可来自基于帧内预测模式和/或块大小的变换与扫描模式组合的子集。

在其它实例中,逆变换单元78可单单基于来自视频编码器20的变换的信令,或通过从例如块大小、译码模式等一个或一个以上译码特性推断变换来确定逆变换。在一些实例中,逆变换单元78可基于包含当前块的LCU的四叉树的根节点处的用信号表示的变换来确定将应用于当前块的变换。或者,可在针对LCU四叉树中的叶节点CU的TU四叉树的根处用信号表示所述变换。在一些实例中,逆变换单元78可将级联逆变换(其中逆变换单元78应用两个或两个以上逆变换(例如,比如逆2-D离散余弦变换等初级变换,以及比如逆旋转变换等次级变换))应用于正解码的当前块的变换系数。

运动补偿单元72可基于从熵解码单元70接收的运动向量产生预测数据。帧内预测单元74可基于来自当前帧的先前解码块的用信号发出的帧内预测模式和数据而产生当前帧的当前块的预测数据。

运动补偿单元72产生运动补偿块,可能基于内插滤波器执行内插。待用于具有子像素精度的运动估计的内插滤波器的识别符可包含在语法元素中。运动补偿单元72可使用如视频编码器20在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。运动补偿单元72可根据所接收的语法信息确定视频编码器20使用的内插滤波器,且使用内插滤波器来产生预测块。

在HEVC实例中,运动补偿单元72和帧内预测单元74可使用一些语法信息(例如,由四叉树提供)来确定用于编码经编码视频序列的帧的LCU的大小。运动补偿单元72和帧内预测单元74还可使用语法信息来确定描述经编码视频序列的帧的每一CU如何分裂(以及同样,子CU如何分裂)的分裂信息。语法信息还可包含指示每一分裂如何编码的模式(例如,帧内或帧间预测,以及针对帧内预测的帧内预测编码模式)、针对每一经帧间编码PU的一个或一个以上参考帧(和/或含有参考帧的识别符的参考列表),以及用以解码经编码视频序列的其它信息。

求和器80将残余块与运动补偿单元72或帧内预测单元74产生的对应预测块组合以形成经解码块。如果需要的话,还可应用解块滤波器以对经解码块进行滤波,以便移除成块性假影。经解码视频块接着存储在参考帧缓冲器82中,其提供用于后续运动补偿的参考块且还产生用于呈现在显示装置(例如,图4的显示装置32)上的经解码视频。

如上文提及,本发明中呈现的用于变换残余数据以及扫描变换系数的技术可适用于编码器和解码器两者。视频编码器可应用扫描模式将变换系数从二维阵列扫描到一维阵列,而视频解码器可例如以与编码器反向的方式应用扫描模式将变换系数从一维阵列扫描到二维阵列。或者,视频解码器可应用扫描模式将变换系数从一维阵列扫描到二维阵列,且视频编码器可以与解码器反向的方式应用扫描模式将变换系数从二维阵列扫描到一维阵列。因此,译码器进行的扫描可指代编码器进行的2D到1D扫描或解码器进行的1D到2D扫描。另外,根据扫描模式进行的扫描可指代在针对2D到1D扫描的扫描模式中扫描、在针对1D到2D扫描的扫描模式中扫描、在针对1D到2D扫描的扫描模式的反向形式中扫描,或在针对2D到1D扫描的扫描模式的反向形式中扫描。因此,可建立扫描模式用于由编码器进行扫描或由解码器进行扫描。

图8是说明用于图7的视频解码器中的熵解码单元70的实例的框图。图8说明根据本发明用于扫描变换系数的熵解码单元70的各个功能方面。如图8所示,熵解码单元70可包含扫描模式确定单元100、1D到2D扫描单元102、熵解码引擎104和扫描模式存储器106。

熵解码引擎104对发射到视频解码器30或由视频解码器30从存储装置检索的经编码视频进行熵解码。举例来说,熵解码引擎104可将例如CAVLC、CABAC或另一过程等熵解码过程应用于携载经编码视频的位流以恢复变换系数的一维阵列。除了残余变换系数数据外,熵解码引擎104还可应用熵解码来再现可用于解码位流中的经编码视频的运动向量数据和各种语法元素。熵解码引擎104可基于经编码视频位流中的信令或通过从位流中的其它信息推断适当过程来确定选择哪一熵解码过程(例如CAVLC、CABAC或另一过程)。

1D到2D扫描单元102将扫描模式应用于变换系数的一维阵列以产生变换系数的二维阵列。如果编码器量化了变换系数,那么1D到2D扫描单元102产生的变换系数的二维阵列也将量化。所应用的扫描模式是视频编码器使用的扫描模式的反向形式。扫描模式确定单元100确定此扫描模式。

在一个实例中,扫描模式确定单元100可通过接收指示视频编码器使用的变换与扫描模式组合的索引来确定扫描模式。所述变换与扫描模式组合是来自基于帧内预测模式和/或块大小的变换与扫描模式组合的子集。在子集中存在四个或更少组合的情况下,所述索引可小至2位索引。所述索引可使用CABAC或CAVLC进行熵译码。在其它实例中,所述索引可仅指示从变换与扫描模式组合的子集使用的变换。在此实例中,扫描模式可为变换相依或帧内预测模式和/或块大小相依的。视频解码器可将指示扫描模式如何从变换或帧内预测模式映射或与之相关的配置数据存储在扫描模式存储器106中。

在另一实例中,扫描模式确定单元100可通过检索视频编码器使用的变换的信令来确定扫描模式。在此实例中,变换和/或扫描模式不限于基于帧内预测模式的变换与扫描模式组合的子集。在另一实例中,扫描模式确定单元100可从待由视频解码器使用的逆变换的信令推断视频编码器使用的变换。由于变换是映射到特定扫描模式,所以扫描模式确定单元可通过咨询展示所确定的变换与扫描模式之间的关联的映射而确定扫描模式。此映射可存储在扫描模式存储器106中。在另一实例中,扫描模式确定单元100可从例如块大小、译码模式等一个或一个以上译码特性推断编码器使用的变换。

图9是说明编码视频的实例方法的流程图。初始地,视频编码器根据帧内预测模式计算残余数据(105)。基于帧内预测模式和/或块大小,视频编码器确定变换与扫描模式组合的子集(106)。在一个实例中,变换与扫描模式组合的子集小于可能的变换与扫描模式的总数。举例来说,HEVC标准当前允许12个变换与扫描模式组合。针对每一帧内预测模式的组合的子集可设定于某一较小数目(例如,四个组合)。

接下来,视频编码器从变换与扫描模式组合的子集选择一变换与扫描模式组合(107)。视频编码器将选定变换应用于残余数据以便产生变换系数的二维阵列(108),且将选定扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列(109)。视频编码器可接着对变换系数的一维阵列进行熵译码以产生经编码视频位流(110)。

图10A和10B是说明编码视频的额外方法步骤的流程图。除了熵译码外,视频编码器还可在经编码视频位流中用信号发送索引,其中所述索引指示选定的变换与扫描模式组合(111)。如果变换与扫描模式组合的数目限于四个或更少,那么所述索引可小至2个位。所述索引可使用CABAC或CAVLC进行熵译码。

在另一实例中,视频编码器可在经编码视频位流中用信号发送索引,其中所述索引指示选定变换(112)。在此情况下,经由扫描模式与变换或帧内预测模式之间的预定关系确定扫描模式。在一个实例中,子集中的每一变换映射到特定扫描模式。在另一实例中,变换与扫描模式组合的子集中的扫描模式中的每一者是基于帧内预测模式。

图11是说明解码视频的实例方法的流程图。视频编码器接收经编码视频数据,其中根据帧内预测模式编码经编码视频数据(113)。视频解码器还可接收索引。在一个实例中,所述索引指示由编码器用于编码视频数据的变换与扫描模式两者。在另一实例中,所述索引可仅指示编码器使用的变换。在此情况下,扫描模式可为变换相依的或帧内预测模式相依的。即,解码器可存储指示变换与扫描模式之间或扫描模式与帧内预测模式之间的关系的配置数据。

接下来,视频解码器对经编码视频数据进行熵解码,借此产生变换系数的一维阵列(114)。视频解码器从变换与扫描模式组合的子集确定一变换,其中所述子集是基于帧内预测模式(115)。如上文提及,所述变换可从在经编码视频位流中发送的索引确定。视频解码器还从变换与扫描模式组合的子集确定扫描模式(116)。如上文提及,扫描模式可从索引、所确定的变换或从帧内预测模式确定。视频解码器可接着以所确定的扫描模式扫描变换系数的一维阵列以产生变换系数的二维阵列(117),且以所确定的变换对变换系数的二维阵列进行逆变换以产生残余视频数据(118)。视频解码器可接着根据帧内预测模式对残余视频数据执行帧内预测视频译码过程以产生经解码视频数据(119)。

图12是说明编码视频的实例方法的流程图。图12的方法包含用于对包括至少一个帧的视频数据进行译码的步骤。首先,例如视频编码器20(图4和5)等视频编码器计算对应于至少一个帧的一部分的残余数据(120)。视频编码器从多个变换选择一变换(122)。可基于例如块大小、译码模式等一个或一个以上译码特性选择变换。视频编码器将选定变换应用于残余数据以变换残余数据以便产生变换系数的二维阵列(124)。视频编码器从多个扫描模式选择一扫描模式,其中选定扫描模式是从选定的一个或一个以上变换映射的(126)。如上文论述,通过将变换映射到特定扫描模式,本发明的技术避免需要执行和评估多个扫描模式。即,将选定扫描模式应用于二维阵列包括仅将选定扫描模式应用于二维阵列而不将所述多个扫描模式中的任何其它者应用于二维阵列以产生变换系数的一维阵列。接下来,视频编码器将选定扫描模式应用于变换系数的二维阵列以产生变换系数的一维阵列(128)。

以下是变换与扫描模式之间的映射的实例。在一个实例中,选定变换是水平方向上的离散余弦变换和垂直方向上的离散余弦变换,且映射到对角扫描模式。

在另一实例中,选定变换是包含在水平方向上在残余数据上施加的经设计变换分量以及在垂直方向上在残余数据上施加的离散余弦变换(DCT)分量的可分离变换。水平经设计变换和垂直DCT映射到垂直扫描模式。经设计变换包括从来自将可能在水平方向上使用此变换的训练序列的一组块训练的经设计变换。

在另一实例中,选定变换是包含在水平方向上在残余数据上施加的离散余弦变换(DCT)分量以及在垂直方向上在残余数据上施加的经设计变换分量的可分离变换。水平DCT和垂直经设计变换映射到水平扫描模式。经设计变换包括从来自将可能在垂直方向上使用此变换的训练序列的一组块训练的经设计变换。

在另一实例中,选定变换是包含在水平方向上在残余数据上施加的第一经设计变换分量以及在垂直方向上在残余数据上施加的第二经设计变换分量的可分离变换。水平第一经设计变换和垂直第二经设计变换映射到水平扫描模式。第一和第二经设计变换中的每一者包括从来自将可能在相应方向上以水平扫描模式使用此变换的训练序列的一组块训练的经设计变换。

在另一实例中,选定变换是包含在水平方向上在残余数据上施加的第三经设计变换分量以及在垂直方向上在残余数据上施加的第四经设计变换分量的可分离变换。水平第三经设计变换和垂直第四经设计变换映射到垂直扫描模式。第三和第四经设计变换中的每一者包括从来自将可能在相应方向上以垂直扫描模式使用此变换的训练序列的一组块训练的经设计变换。

图13A、13B和13C是说明编码视频的其它实例方法的流程图。在步骤120之前,例如视频编码器20等视频编码器可将多个变换中的每一者映射到多个扫描模式中的相应一者(130)。虽然此步骤可由编码器主动地执行,但还预期,所述映射可在编码器构成之前发生,且所述映射可存储或编程到视频编码器硬件中。类似地,类似映射可存储到视频解码器,例如视频解码器30(图4和7)。

在另一实例中,在步骤124与126之间,视频编码器量化二维阵列中的变换系数中的每一者(125)。另外,在步骤128之后,视频编码器可对变换系数的一维阵列进行熵编码(134)。

图14是说明解码视频的实例方法的流程图。图10展示解码包括至少一个帧的视频数据的实例方法。首先,例如视频解码器30等视频解码器对对应于所述至少一个帧的一部分的经编码视频数据进行熵解码,借此产生变换系数的一维阵列(136)。视频解码器从多个变换确定一变换(138)。所述变换可经由经编码视频位流中的明确信令确定,或可从例如块大小、译码模式等一个或一个以上译码特性推断。视频解码器从多个扫描模式选择一扫描模式,其中选定扫描模式是从所确定的变换映射的(140)。视频解码器将选定扫描模式应用于变换系数的一维阵列以产生变换系数的二维阵列(142)。

图15是说明解码视频的另一实例方法的流程图。在步骤142之后,视频解码器对变换系数的二维阵列中界定的变换系数进行逆量化(144)。接下来,视频解码器将逆变换应用于经逆量化的变换系数,其中逆变换是基于所确定的变换(146)。

在一个或一个以上实例中,所描述的功能可实施在硬件、软件、固件或其任何组合中。如果实施于软件中,那么所述功能可作为一个或一个以上指令或代码存储在计算机可读媒体上或在计算机可读媒体上发射且由基于硬件的处理单元执行。计算机可读媒体可包含:计算机可读存储媒体,其对应于例如数据存储媒体等有形媒体;或通信媒体,其包含促进例如根据通信协议将计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非瞬时的有形计算机可读存储媒体或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

借助实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM,或其它光盘存储装置、磁盘存储装置,或其它磁性存储装置、快闪存储器,或可用于存储指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。并且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源发射指令,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是改为针对非瞬时有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常利用磁性再现数据,而光盘使用激光以光学方式再现数据。上文的组合也应包含在计算机可读媒体的范围内。

指令可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或一个以上处理器执行。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的功能性可提供在经配置以用于编码和解码的专门硬件和/或软件模块内,或并入在组合式编解码器中。并且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。

本发明的技术可实施在广泛种类的装置或设备中,包含无线手持机、集成电路(IC)或IC组(例如,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,而不必要求由不同硬件单元实现。事实上,如上所述,各个单元可组合在编解码器硬件单元中,或由包含如上文描述的一个或一个以上处理器的互操作硬件单元的集合与适宜的软件和/或固件结合而提供。

已描述各个实例。这些及其它实例属于所附权利要求书的范围内。

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