帧内预测的方法和系统与流程

文档序号:12183670阅读:379来源:国知局
帧内预测的方法和系统与流程

技术领域

本发明实施例大体涉及视频数据的编码和解码,具体涉及帧内预测的方法和系统。



背景技术:

例如H.264/AVC和其他视频编码标准等现有视频编码标准可以提供更高编码效率,但要以更高计算复杂度为代价,这会导致更低的编码和/或解码速度。此外,计算复杂度会随着质量和分辨率要求的增长而增加。并行解码和并行编码可以分别提高解码和编码速度。此外,并行解码和并行编码可以分别降低针对解码和编码处理的存储器带宽需求。进一步,随着多核处理器的发展,希望进行并行解码和并行编码,以充分利用多核处理器的性能。



技术实现要素:

本发明一些实施例包括帧内预测的方法和系统。

根据本发明第一方面,可以将宏块划分成两个或更多个块集合。块集合可以称为多个块或块组。块集合可以称为宏块的划分(partition)。

根据本发明第二方面,可以使用仅来自一个或更多个相邻宏块的重构像素值,预测针对第一块集合中的块的像素值。在该宏块的划分中,随后可以使用先前重构的块集合中块的重构像素值,以及/或者相邻宏块中的重构像素值,来预测另一块集合中的块内的像素值。

根据本发明第三方面,在宏块的划分中,可以并行地编码块集合内的块。

根据本发明第四方面,在宏块的划分中,可以并行地解码块集合内的块。

结合附图考虑以下本发明的详细描述,将更易理解本发明的前述和其他目的、特征和优点。

附图说明

图1是示出了H.264/AVC和其他编码标准的帧内8x8预测和帧内4x4预测的处理顺序的图(现有技术);

图2是示出了H.264/AVC帧内4x4预测和帧内8x8预测的九种帧内预测模式方向的图(现有技术);

图3A是示出了具有相邻重构采样的示例块的图(现有技术);

图3B是示出了与垂直帧内预测模式关联的重构像素值的图(现有技术);

图3C是示出了与水平帧内预测模式关联的重构像素值的图(现有技术);

图3D是示出了与左下对角线帧内预测模式关联的帧内预测模式方向的图(现有技术);

图3E是示出了与右下对角线帧内预测模式关联的帧内预测模式方向的图(现有技术);

图3F是示出了与垂直向右帧内预测模式关联的帧内预测模式方向的图(现有技术);

图3G是示出了与水平向下帧内预测模式关联的帧内预测模式方向的图(现有技术);

图3H是示出了与垂直向左帧内预测模式关联的帧内预测模式方向的图(现有技术);

图3I是示出了与水平向上帧内预测模式关联的帧内预测模式方向的图(现有技术);

图4是示出了根据本发明实施例将宏块划分成两个块集合的示例图;

图5A是示出了根据本发明实施例将宏块划分成两个块集合的示例图;

图5B是示出了根据本发明实施例将宏块划分成两个块集合的示例图;

图5C是示出了根据本发明实施例将宏块划分成两个块集合的示例图;

图5D是示出了根据本发明实施例将宏块划分成两个块集合的示例图;

图5E是示出了根据本发明实施例将宏块划分成两个块集合的示例图;

图6A是示出了根据本发明实施例将宏块划分成三个块集合的示例图;

图6B是示出了根据本发明实施例将宏块划分成三个块集合的示例图;

图7A是示出了根据本发明实施例32x32宏块中的4x4块划分的示例图;

图7B是示出了根据本发明实施例32x32宏块中的4x4块划分的示例图;

图8是示出了根据本发明实施例将宏块划分成四个块集合的示例图;

图9是示出了包括两个16x16宏块和相邻宏块像素的图像的示例部分的图;

图10是示出了根据本发明实施例将宏块划分成两个块集合的示例以及用于模式预测的相邻块的图;

图11是示出了示例宏块和相邻像素的图;

图12是示出了根据本发明实施例的18个帧内预测模式方向的图;

图13A是示出了根据本发明实施例在与左下对角线帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图13B是示出了根据本发明实施例通过“模式4”预测方程的旋转和使用,在与左下对角线帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图14A是示出了根据本发明实施例在与右下对角线帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图14B是示出了根据本发明实施例通过“模式4”预测方程的旋转和使用,在与右下对角线帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图15A是示出了根据本发明实施例在与垂直向右帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图15B是示出了根据本发明实施例通过“模式5”预测方程的旋转和使用,在与垂直向右帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图16A是示出了根据本发明实施例在与水平向下帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图16B是示出了根据本发明实施例通过“模式6”预测方程的旋转和使用,在与水平向下帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图17A是示出了根据本发明实施例在与垂直向左帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图17B是示出了根据本发明实施例通过“模式6”预测方程的旋转和使用,在与垂直向左帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图18A是示出了根据本发明实施例在与水平向上帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图18B是示出了根据本发明实施例通过“模式6”预测方程的旋转和使用,在与水平向上帧内预测模式方向相反的方向上的帧内预测模式方向的图;

图19是示出了其中使用相反方向预测模式来预测块像素值可能有利的示例块的图;

图20示出了根据本发明实施例的视频编码器;

图21示出了根据本发明实施例的视频解码器;以及

图22示出了根据本发明实施例的码字视频编码技术。

具体实施方式

参照附图将最好地理解本发明实施例,附图中类似部分由类似数字指示。以上所列附图明显结合在此作为详细描述的一部分。

容易理解,这里附图中大体描述和示出的本发明的部分可以按照多种不同配置来安排和设计。因此,本发明方法和系统的以下更加详细的实施例描述不是要限制本发明的范围,而仅仅代表了本发明的当前优选实施例。

本发明实施例的元件可以硬件、固件和/或软件形式实现。虽然本文揭示的示例实施例仅描述了这些形式中之一,但是应该理解本领域技术人员能够按照这些形式中的任意形式来实现这些元件,同时仍然在本发明的范围内。

例如H.264/AVC和其他视频编码标准等现有视频编码标准可以提供更高编码效率,但要以更高计算复杂度为代价,这会导致更低的编码和/或解码速度。此外,计算复杂度会随着质量和分辨率要求的增长而增加。并行解码和并行编码可以分别提高解码和编码速度。此外,并行解码和并行编码可以分别降低针对解码和编码处理的存储器带宽需求。进一步,随着多核处理器的发展,希望进行并行解码和并行编码,以充分利用多核处理器的性能。

帧内预测可以是视频编码低效率的重要贡献因素。许多现有技术视频编解码器(编码器/解码器)使用帧内预测来降低空间冗余。在编码器和解码器中,帧内预测可以使用重构的相邻块来预测当前块。因此,编码器只需要通知预测模式和预测残差。然而,对重构相邻块的依赖性阻止了帧内预测的并行化。该串行依赖性对于更小块尺寸的帧内模式更加成问题。许多视频编解码器将像素块组织成称为宏块的较大块。例如,如果16x16宏块使用8x8帧内预测,则必须顺序地处理构成宏块的4个8x8块。然而,如果16x16宏块使用4x4帧内预测,则必须顺序地处理16个4x4块。当前帧内预测方案的串行设计在处理与不同预测模式关联的宏块时会导致不平衡的负载,例如,帧内4x4解码、帧内8x8解码和帧内16x16会具有不同的解码周期。此外,如果所有宏块是4x4帧内编码的,则必须顺序地处理所有块。

本发明一些实施例包括帧内预测的方法和系统,允许并行实现,并对编码效率的影响可忽略。

在此可以相对于亮度通道信号来描述本发明一些实施例。这是为了说明而非限制目的。本领域普通技术人员可以理解,这里相对于亮度通道信号描述的本发明实施例可以与色度通道、视差通道和其他信号源结合使用。

本发明实施例可以涉及视频设备。示例的视频设备可以包括视频编码器、视频解码器、视频代码转换器和其他视频设备。

可以相对于H.264/AVC来描述本发明一些实施例。下面部分提供了对H.264/AVC中帧内预测的简短介绍。

H.264/AVC中帧内预测的介绍

帧内预测利用帧或图像内的空间关系。在编码器端,可以根据位于当前块上方和/或左侧的称为重构块的先前编码的相邻块来预测当前块,并且可以针对该块对预测模式和预测残差进行编码。在解码器端,可以根据预测模式,根据位于当前块上方和/或左侧的相邻重构块预测当前块,并且可以将针对该块的解码的预测残差与该预测相加以获得块信号值。例如,H.264/AVC中定义了三种帧内亮度(luma)预测:帧内4x4预测,帧内8x8预测和帧内16x16预测。也希望块尺寸更大。

在16x16宏块中,存在4个8x8块或16个4x4块。图1示出了针对H.264/AVC和其他编码标准,帧内8x82预测和帧内4x44预测的处理顺序。该处理顺序可以称为之字形处理顺序。在这些标准中,可以使用先前重构的相邻块来预测当前块。因此,在可以处理当前块之前,必须完成按照扫描顺序对先前块的处理。相比于帧内8x8预测和帧内16x16预测,帧内4x4预测具有更大的串行依赖性。该串行依赖性会导致操作周期的增加,帧内预测的减速,不同帧内预测类型的不均匀吞吐量以及其他不希望的处理特性。

在H.264/AVC中,帧内4x4预测和帧内8x8预测具有如图2所示的9种预测模式10。可以从相对于当前块在上方和/或左侧的重构相邻块中的像素值预测当前块中的像素值。示出了模式的箭头方向指示了针对该模式的预测方向。在图2中,中心点11不表示方向,所以该点可以与DC预测模式(也称为“模式2”)关联。从中心点11向右延伸的水平箭头12可以表示水平预测模式,也称为“模式1”。从中心点11向下延伸的垂直箭头13可以表示垂直预测模式,也称为“模式0”。从中心点11与水平成近似45度角沿对角线向右下延伸的箭头14可以表示对角线右下(DDR)预测模式,也称为“模式4”。从中心点11与水平成近似45度角沿对角线向左下延伸的箭头15可以表示对角线左下(DDL)预测模式,也称为“模式3”。DDR和DDL预测模式两者可以称为对角线预测模式。从中心点11与水平成近似22.5度角沿对角线向右上延伸的箭头16可以表示水平向上(HU)预测模式,也称为“模式8”。从中心点11与水平成近似22.5度角沿对角线向右下延伸的箭头17可以表示水平向下(HD)预测模式,也称为“模式6”。从中心点11与水平成近似67.5度角沿对角线向右下延伸的箭头18可以表示垂直向右(VR)预测模式,也称为“模式5”。从中心点11与水平成近似67.5度角沿对角线向左下延伸的箭头19可以表示垂直向左(VL)预测模式,也称为“模式7”。HU、HD、VR和VL预测模式可以一并称为中间角预测模式。

图3A示出了可以从标记为A-M的重构相邻采样预测的示例采样4x4块20,标记为a-p。当采样E-H不可用时,在标准的一些实施方式中,可以用采样D替代不可用的采样。在备选实施方式中,可以用固定的缺省值替代不可用的采样,这可以与数据的比特深度有关。例如,对于8比特数据,缺省值可以是128,对于10比特数据,缺省值可以是512,一般而言,缺省值可以是2b-1,其中b是图像数据的比特深度。备选实施方式可以使用标准的规范定义的其他值来替换不可用的采样。

帧内预测模式0(图2中指示为13的预测模式方向)可以称为垂直模式帧内预测。在模式0或垂直模式帧内预测中,可以从当前块上方的块中的重构采样,沿垂直方向预测当前块的采样。图3B示出了4x4块中采样的示例垂直模式帧内预测21。在图3B中,示出了用来自图3A的采样标记的标记替代图3A中标记为a-p的采样,根据这些采样预测了图3A中的采样。

帧内预测模式1(图2中指示为12的预测模式方向)可以称为水平模式帧内预测。在模式1或水平模式帧内预测中,可以从当前块左侧的块中的重构采样,沿水平方向预测当前块的采样。图3C示出了4x4块中采样的示例水平模式帧内预测22。在图3C中,示出了用来自图3A的采样标记的标记替代图3A中标记为a-p的采样,根据这些采样预测了图3A中的采样。

帧内预测模式3(图2中指示为15的预测模式方向)可以称为对角线左下模式帧内预测。在模式3中,可以沿图3D所示方向从相邻块预测块23的采样。

帧内预测模式4(图2中指示为14的预测模式方向)可以称为对角线右下模式帧内预测。在模式4中,可以沿图3E所示方向从相邻块预测块24的采样。

帧内预测模式5(图2中指示为18的预测模式方向)可以称为垂直向右模式帧内预测。在模式5中,可以沿图3F所示方向从相邻块预测块25的采样。

帧内预测模式6(图2中指示为17的预测模式方向)可以称为水平向下模式帧内预测。在模式6中,可以沿图3G所示方向从相邻块预测块26的采样。

帧内预测模式7(图2中指示为19的预测模式方向)可以称为垂直向左模式帧内预测。在模式7中,可以沿图3H所示方向从相邻块预测块27的采样。

帧内预测模式8(图2中指示为16的预测模式方向)可以称为水平向上模式帧内预测。在模式8中,可以沿图3I所示方向从相邻块预测块28的采样。

在可以称为DC模式的帧内预测模式2中,可以用图3A中标记为A-D和I-L的采样的平均值来替代图3A中标记为a-p的所有采样。

上述9种帧内预测模式对应于H.264/AVC中16x16宏块的4x4子块中亮度采样的9种帧内预测模式。

H.264/AVC也支持4种16x16亮度帧内预测模式,其中根据宏块的上侧和/或左侧相邻的编码和重构采样,外插该宏块的16x16采样。可以垂直地外插采样,模式0(类似于针对4x4大小块的模式0),或者可以水平地外插采样,模式1(类似于针对4x4大小块的模式1)。可以用均值替代采样,模式2(类似于针对4x4大小块的DC模式),或者可以使用模式3,称为平面模式,其中将线性平面函数拟合到上侧和左侧采样。这结束了对H.264/AVC帧内预测的简短介绍。

在本发明一些实施例中,可以将宏块内的块划分成第一多个块(也称为第一块组或第一块集合),以及第二多个块(也称为第二块组或第二块集合),以便打破帧内预测的块之间的串行依赖性。块可以是mxn大小的像素块。在一些实施例中,可以使用仅来自一个或更多个先前编码相邻宏块的重构像素值,编码第一多个块内的块,然后使用与第一多个块关联的先前编码块和/或相邻宏块中的重构像素值,来编码第二多个块内的块。

对应地,在本发明的一些实施例中,可以使用仅来自一个宏块的重构像素值,解码第一多个块内的块,然后可以使用与第一多个块关联的重构块和/或相邻宏块中的像素值,解码第二多个块内的块。

可以全部或部分地并行编码第一多个块内的块,并且可以全部或部分地并行编码第二多个块内的块。可以全部或部分地并行解码第一多个块内的块,并且可以全部或部分地并行解码第二多个块内的块。

在本发明一些实施例中,可以使用仅来自一个或更多个先前编码相邻宏块的重构像素值,编码宏块内的所有块。因此,可以全部或部分地并行编码宏块内的块。

对应地,在本发明的一些实施例中,可以使用仅来自一个或更多个相邻宏块的重构像素值,解码宏块内的所有块。因此,可以全部或部分地并行解码宏块内的块。

对于具有N个块的宏块,并行度可以是例如,针对16x16宏块的4x4帧内预测的加速可以接近因子8。

针对MxN宏块的帧内预测的一个示例划分40如图4所示。在一些实施例中,M和N可以相等。在其他实施例中,M和N可以不相等。在该示例划分中,可以根据棋盘格图案将16个块41-56分组到各自具有8个块的两个集合。一个集合中的8个块示出为白色41,44,45,48,49,52,53,56,另一集合的8个块示出为交叉影线42,43,46,47,50,51,54,55。可以首先使用先前重构的宏块并行地对一个块集合进行解码或编码,然后可以使用与第一集合关联的重构块和/或先前重构的宏块,并行地对第二块集合进行解码或编码。任一集合均可以是处理顺序中的第一集合。在一些实施例中,可以预定义要处理的第一集合,这可以不需要比特流信号通知(signaling)。在备选实施例中,可以在比特流中信号通知首先处理哪个集合的选择。

比特流信号通知可以指比特流中的信号通知信息或保存的存储器中的信号通知信息。

图5A-5E示出了备选示例划分60,80,100,120,A1。在图5A所示示例划分60中,可以将宏块内的块61-76分组为两个块集合:示出为白色的一个集合61-64,69-72;以及示出为交叉影线的另一集合65-68,73-76。在图5B所示示例划分80中,可以将宏块内的块81-96分组为两个块集合:示出为白色的一个集合81,84,86,87,90,91,93,96;以及示出为交叉影线的另一集合82,83,85,88,89,92,94,95。在图5C所示示例划分100中,可以将宏块内的块101-116分组为两个块集合:示出为白色的一个集合101-108;以及示出为交叉影线的另一集合109-116。在图5D所示示例划分120中,可以将宏块内的块121-136分组为两个块集合:示出为白色的一个集合121,123,125,127,129,131,133,135;以及示出为交叉影线的另一集合122,124,126,128,130,132,134,136。在图5E所示8x8宏块的4个4x4块的示例划分A1中,可以将宏块内的块A2-A5分组为两个块集合:示出为白色的一个集合A2-A3;以及示出为负斜线影线的另一集合A4-A5。如本领域普通技术人员理解的,图4和图5A-5E所示示例划分可以容易地扩展到其他宏块和块尺寸。

在本发明的备选实施例中,可以将宏块划分成三组块。在一些实施例中,可以使用仅来自先前编码相邻宏块的重构像素值,在编码处理中预测第一多个块。随后可以使用来自与第一多个块关联的先前编码块的重构像素值和/或使用来自先前编码相邻宏块的重构像素值,在编码处理中预测第二多个块。然后,可以使用来自与第一多个块关联的先前编码块的重构像素值、来自与第二多个块关联的先前编码块的重构像素值、和/或来自先前编码相邻宏块的重构像素值,在编码处理中预测第三多个块。在一些实施例中,可以全部或部分地并行编码多个块中的块。

对应地,在本发明一些实施例中,可以仅使用相邻宏块的重构像素值,在解码处理中预测第一多个块。随后可以使用与第一多个块关联的重构块中的重构像素值、和/或相邻宏块的重构像素值,在解码处理中预测第二多个块。然后,可以使用来自与第一多个块关联的先前解码块的重构像素值、来自与第二多个块关联的先前解码块的重构像素值、和/或来自先前解码的相邻宏块的重构像素值,在解码处理中预测第三多个块。在一些实施例中,可以全部或部分地并行解码多个块中的块。

图6A和图6B示出了示例的宏块的三组划分140,160。在图6A所示的示例划分140中,将示出为负斜线影线的块146,148,154,156分配到一个块组;将示出为白色的块141,143,149,151分配到另一块组;以及将示出为交叉影线的块142,144,145,147,150,152,153,155分配到又一块组。在图6B所示的示例划分160中,将示出为负斜线影线的块166,167,168,170,174分配到一个块组;将示出为交叉影线的块162,164,165,172,173,175分配到另一块组;以及将示出为白色的块161,163,169,171,176分配到又一块组。

在本发明备选实施例中,可以将宏块划分成两个或更多个块组。在一些实施例中,可以在编码器端使用仅来自先前编码相邻宏块的重构像素值,来预测第一多个块。可以在编码器端使用来自先前编码的划分中的先前编码块的重构像素值、和/或来自先前编码相邻宏块的重构像素值,来预测随后的多个块。对应地,在本发明一些实施例中,可以在解码器端使用仅来自相邻宏块的重构像素值,来预测第一多个块。可以在解码器端使用来自先前解码的划分中的先前解码块的重构像素值、和/或来自相邻宏块的先前解码的重构像素值,来预测随后的多个块。在一些实施例中,可以全部或部分地并行编码具有多个划分的块。在一些实施例中,可以全部或部分地并行解码具有多个划分的块。

图7A示出了32x32宏块中4x4块的示例划分200。在该示例划分200中,将64个4x4块201-264划分成4个32x8子宏块:第一子宏块270,包括示出为负斜线影线的16个4x4块201-216;第二子宏块272,包括示出为交叉影线的16个4x4块217-232;第三子宏块274,包括示出为正斜线影线的16个4x4块233-248;以及第四子宏块276,包括示出为竖直影线的16个4x4块249-264。每个子宏块270,272,274,276可以划分成三个块集合:以淡色阴影示出的第一块集合(第一子宏块270中的块210,212,214,216;第二子宏块272中的块226,232;第三子宏块274中的块242,244,246,248;第四子宏块276中的块258,260,262,264);以深色阴影示出的第二块集合(第一子宏块270中的块201,203,205,207;第二子宏块272中的块217,219,221,223;第三子宏块274中的块233,235,237,239;第四子宏块276中的块249,251,253,255);无阴影的第三块集合(第一子宏块270中的块202,204,206,208,209,211,213,214,215;第二子宏块272中的块218,220,222,224,225,227,228,229,230,231;第三子宏块274中的块234,236,238,240,241,243,245,247,248;第四子宏块276中的块250,252,254,256,257,258,259,260,261,263)。

图7B示出了16x16宏块中16个4x4块的示例划分B0。在该示例划分B0中,将16个4x4块B1-B16划分成四个8x8子宏块:第一子宏块,包括以正斜线影线示出的四个4x4块B1-B4;第二子宏块,包括以交叉影线示出的四个4x4块B5-B8;第三子宏块,包括以负斜线影线示出的四个4x4块B9-B12;以及第四子宏块,包括以点划线示出的四个4x4块B13-B16。每个子宏块可以划分成两个块集合:第一块集合(第一子宏块中的块B1-B2;第二子宏块中的块B5-B8;第三子宏块中的块B9-B10;第四子宏块中的块B13-B14);以及第二块集合(第一子宏块中的块B3-B4;第三子宏块中的块B11-B12;第四子宏块中的块B15-B16)。

在一些实施例中,可以预定义集合处理顺序,这可以不要求比特流信号通知。在备选实施例中,可以在比特流中信号通知处理顺序的选择。

在本发明一些实施例中,可以全部或部分地并行处理子宏块。在一些实施例中,在编码器端,可以仅从先前编码的相邻宏块中的像素值来预测每个子宏块中的第一多个块。可以从先前编码的块组中的像素值和/或先前编码的相邻宏块中的像素值来预测随后的块组。在一些实施例中,在解码器端,可以仅从先前编码的相邻宏块中的像素值来预测每个子宏块中的第一多个块。可以从先前编码的块组中的像素值和/或先前编码的相邻宏块中的像素值来预测随后的块组。

图8示出了M x N宏块的帧内预测的一个示例划分280。在一些实施例中,M和N可以相等。在其他实施例中,M和N可以不相等。在该示例划分中,可以根据交替行、交替图案,将该宏块的16个块281-296分组到各自4个块的4个集合。4个块:在一个集合中示出为白色281,283,289,291;在第二集合中示出为交叉影线282,284,290,292;在第三集合中示出为负斜线影线286,288,294,296;以及在第三集合中示出为竖直影线285,287,293,295。可以首先解码一个块集合,随后解码第二块集合,然后是第三集合,最后是第四集合。在一些实施例中,可以全部或部分地并行解码块集合中的块。在一些实施例中,可以预定义集合处理顺序,这可以不要求比特流信号通知。在备选实施例中,可以在比特流中信号通知处理顺序的选择。

根据本发明示例实施例,在编码器端,可以使用针对H.264/AVC定义的9种预测模式,使用仅来自左侧和/或上侧的编码相邻宏块的像素值,来预测第一多个块中块的像素值。可以根据现有技术中已知的模式选择方法来选择针对第一多个块中每个块的模式,并且可以编码针对每个块的残差。对应地,在解码器端,可以使用仅来自左侧和/或上侧的重构相邻宏块的像素值,来预测第一多个块中块的像素值。在备选实施例中,可以使用编码器中可用的预测模式,使用仅来自左侧和/或上侧的编码相邻宏块的像素值,来预测第一多个块。

可以相对于图9来理解首先处理的块集合中块的编码和解码。图9示出了包括两个16x16宏块302,304的图像的示例部分300。在左侧宏块302(示出为白色的像素,例如306,以及示出为点划线的像素,例如307)的编码和解码处理中,由于右侧宏块304尚未重构,所以右侧宏块304中的像素值(示出为负斜线影线的像素,例如308)不可用。然而,在当前宏块302上侧和左侧的相邻宏块中的像素可用。当前宏块302上侧和左侧的相邻宏块中的像素310,312,314,例如,示出为交叉影线。例如对于块316(示出为点影线),在首先编码的块集合中,可以从当前宏块上侧和左侧的相邻宏块中的可用像素值(例如,示出为交叉影线的像素)预测像素值。在本发明的一些实施例中,在编码器端,可以针对每种预测模式来预测值,并选择产生最小残余误差的模式。在备选实施例中,可以使用现有技术已知的其他模式选择方法来选择预测模式。

在本发明一些实施例中,可以根据扩展到宏块的H.264/AVC 4x4预测方程,来确定预测的像素值。

在本发明一些实施例中,可以根据伪代码,执行根据模式0(垂直模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式1(水平模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式2(DC模式帧内预测)的针对N x N块的预测,N=2n,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

//DC

//pU数组保存上侧邻居

//pL数组保存左侧邻居

BLOCK_SIZE=N;

如果所有pU采样和所有pL采样可用,则

如果任何pU采样不可用,但所有pL采样可用,则

如果所有pU采样可用,但任何pL采样不可用,则

如果任何pU采样不可用且任何pL采样不可用,则

在本发明一些实施例中,可以根据伪代码,执行根据模式3(对角线左下模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式4(对角线右下模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式5(垂直向右模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式6(水平向下模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式7(垂直向左模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

在本发明一些实施例中,可以根据伪代码,执行根据模式8(水平向上模式帧内预测)的针对N x N块的预测,伪代码中pred[y][x]指示预测的像素值,y指示行索引,x指示列索引:

以上列出的伪代码是为了说明而非限制,不是要排除上述预测公式的备选实施方式和扩展。

在本发明一些实施例中,在DC预测(模式2)和其他预测模式中,可以根据上侧和左侧相邻宏块像素值与正被预测的块的距离,对上侧和左侧相邻宏块像素值加权。例如,当预测图9中示例块316中的像素值时,给予左侧相邻宏块中像素值的权重可以比上侧相邻宏块中像素值的权重大。在本发明一些实施例中,可以将上述距离定义为正被预测的块与上侧相邻宏块之间的宏块个数加1、以及正被预测的块与左侧相邻宏块之间的宏块个数加1。在本发明的备选实施例中,可以将上述距离定义为按照之字形扫描顺序,正被预测的块与上侧/左侧相邻宏块之间的宏块个数。在本发明一些实施例中,分配给上侧相邻块像素值的权重可以是正被预测的块与左侧相邻宏块之间距离跟正被预测的块与左侧和上侧相邻宏块两者之间距离之和的比率。在本发明一些实施例中,分配给左侧相邻块像素值的权重可以是正被预测的块与上侧相邻宏块之间距离跟正被预测的块与左侧和上侧相邻宏块两者之间距离之和的比率。

本发明一些实施例可以包括模式预测。为减少用于信号通知帧内模式的比特,在H.264/AVC中,可以根据Min(intraMxMPredModeA,intraMxMPredModeB),从上侧相邻块和左侧相邻块的模式来预测块的帧内预测模式,其中intraMxMPredModeA指示左侧相邻块的模式,intraMxMPredModeB指示上侧相邻块的模式。可以在确定帧内模式时,在编码器端进行率失真(rate-distortion)优化(RDO)决策。在RDO决策步骤,可以进行速率计算以计算发送帧内模式所用的速率。

根据本发明一些实施例,对于使用来自相邻宏块的重构像素首先编码的第一多个块中的块,在模式预测期间和在率失真优化期间,可以使用也在所述第一多个块中或在相邻宏块中的最接近的可用块的模式。可用块可以指已经确定了帧内预测模式的块。

可以结合图10所示示例来理解上述实施例。图10示出了示例宏块330。根据根据例如棋盘格图案,将宏块330的块331-346划分成两个块组:第一多个块332,334,335,337,340,342,343,345,以及第二多个块333,336,338,339,341,344,346。对于该示例,可以在第二多个块中的块之前,按照之字形顺序332,335,334,337,340,343,342,345处理第一多个块中的所有块。

根据本发明一些实施例,在模式预测期间,块337可以针对其上侧模式,使用块332的模式,因为块333尚未被处理,并且按照该示例的之字形处理顺序,块332是正被执行模式预测的块337上侧的最接近的可用块。在本发明一些实施例中,可以基于块之间的欧氏距离来确定最接近块。对于其左侧模式,块337可以使用块335的模式,因为块336尚未被处理,并且按照该示例的之字形处理顺序,块335是正被执行模式预测的块337左侧的最接近的可用块。在本发明的这些实施例中,模式预测可以使用正被执行模式预测的块的上侧但非正上方的块。在本发明的这些实施例中,模式预测可以使用正被执行模式预测的块的左侧但非正左侧的块。

为进一步说明,根据本发明一些实施例,其中从正被执行模式预测的块的上侧和左侧的块来预测帧内预测模式,图10中的块335的模式预测可以针对其左侧模式,使用可用相邻宏块中的块348的模式,并针对其上侧模式,使用可用相邻宏块中的块347的模式。在本发明备选实施例中,可用相邻宏块中的块351的模式可以用于上侧模式。

为进一步说明,根据本发明一些实施例,其中从正被执行模式预测的块的上侧和左侧的块来预测帧内预测模式,图10中的块334的模式预测可以针对其左侧模式,使用可用块332的模式,并针对其上侧模式,使用可用相邻宏块中的块349的模式。在本发明备选实施例中,可用相邻宏块中的块350的模式可以用于左侧模式。

在备选实施例中,模式预测可以使用相对于正被执行模式预测的块有方向地定位的其他可用块的模式。例如,可以根据下侧块和右侧块的模式预测块的帧内预测模式。

在备选实施例中,在模式预测中可以使用先前编码的相邻宏块中块的模式。可以结合图10所示示例来理解这些实施例。根据本发明的这些实施例,在模式预测期间,块337可以针对其上侧模式,使用来自先前编码的上侧相邻宏块的块350的模式,并针对其模式,使用来自先前编码的左侧相邻宏块的块348的模式。

在本发明一些实施例中,上述模式预测方法都可用。编码器可以在比特流中信号通知用于多个块的模式预测方法。在本发明一些实施例中,该信号通知可以与包括画面参数集、序列参数集或其他参数集的元数据一同出现。在本发明一些实施例中,该信号通知可以出现在宏块级。在本发明备选实施例中,该信号通知可以出现在片级。

在本发明一些实施例中,对于在第一多个块之后处理的多个块中的块,可以在模式预测和率失真优化期间,使用当前或在前多个块中或相邻宏块中的最接近的可用块的模式。在本发明备选实施例中,对于在第一多个块之后处理的多个块中的块,可以在模式预测和率失真优化期间,仅使用当前多个块中或相邻宏块中的最接近的可用块的模式。在本发明一些实施例中,不同块组中的块可以使用不同的帧内预测方法。对于这些块,可以在模式预测和率失真优化期间,仅使用当前或相邻宏块中的、并且使用相同帧内预测模式的最接近的可用块的模式。在本发明一些实施例中,可以利用标志来信号通知不同的帧内预测方法。在本发明一些实施例中,可以利用多个标志来信号通知不同的帧内预测方法。

对于在重构的第一块集合之后重构的块集合中的块,除了先前重构的上侧和/或左侧相邻块之外,先前重构的右侧和下侧相邻块也可用于帧内预测。这些另外的重构块可以用于改进帧内预测,并且由于块之间的高度相关,可以提高编码效率。

在本发明一些实施例中,帧内预测中可以使用先前重构的非相邻块。在这些实施例的一些中,可以按照重构块与当前块的距离,对先前重构信号值对预测值的贡献进行加权。

在本发明一些实施例中,可以修改与先前描述的9种预测模式方向有关的方程(可以称为与标准定义的预测模式关联的标准定义预测模式方向),以使用当前块右侧和/或下侧的先前编码块进行帧内预测。针对4x4帧内预测,示出了图4所示示例划分的预测公式的示例修改,并且可以结合图11和表1来理解该示例修改。

图11示出了16个像素361-376的示例4x4块360,其中列x和行y处的像素表示为p(x,y)。如果块360是根据图4以棋盘格图案划分的16x16宏块中的一个4x4块,并且块360是编码的第二多个块,则宏块360的上侧(381-384)、下侧(385-388)、右侧(389-392)、左侧(393-396)的先前重构块381-396可用。角落像素397-400的值不可用。在一些实施例中,这些不可用的角落像素值可以根据可用的相邻像素值来进行插值。在一些实施例中,可以根据如下进行像素值插值:

X=(A+I+1)>>1

E=(D+II+1)>>1

X2=(L+AA+1)>>1’

X3=(DD+LL+1)>>1

其中,像素值如图11所示。表1示出了原始预测方程和修改(也称为扩展)预测方程。在一些实施例中,如果帧内预测模式所需的像素值不可用,则可以不使用该模式。注意,对于一些预测模式,未对原始预测公式进行任何修改。

表1预测公式-原始和修改

在本发明一些实施例中,可以定义在方向上与先前描述的9种帧内预测模式方向相反的9种帧内预测模式。可以结合图12描述这些相反方向模式。可以根据当前块上侧、左侧、下侧和/或右侧的重构块中的像素值,来预测当前块中的像素值。在图12中,示出了模式的箭头的方向表示针对每个模式的预测方向。

在图12中,中心点422不表示方向,因此该点可以与DC预测模式关联,DC预测模式也称为“模式2”和“模式11”。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式2”预测值:

并且可以根据如下针对4x4帧内预测来预测“模式11”预测值:

其中像素位置和值如图11所示。在备选实施例中,可以根据如下针对4x4帧内预测来预测“模式2”和“模式11”预测值:

从中心点422向下方向延伸的竖直箭头420可以表示第一垂直预测模式,可以称为“模式0”,从中心点422向上方向延伸的竖直箭头429可以表示第二垂直预测模式,可以称为“模式9”。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式0”预测值:

以及可以根据如下针对4x4帧内预测来预测“模式9”预测值:

其中像素位置和值如图11所示。

从中心点422向右方向延伸的水平箭头421可以表示第一水平预测模式,可以称为“模式1”,从中心点422向左方向延伸的水平箭头430可以表示第二水平预测模式,可以称为“模式10”。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式1”预测值:

以及可以根据如下针对4x4帧内预测来预测“模式10”预测值:

其中像素位置和值如图11所示。

与水平成近似45度角从中心点422沿对角线向左下方向延伸的水平箭头423可以表示对角线左下(DDL)预测模式,可以称为“模式3”,从中心点422沿180度方向延伸的箭头432可以表示对角线右上(DUR)预测模式,可以称为“模式12”或DDL 2模式。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式3”预测值:

其中像素位置和值如图11所示。在本发明一些实施例中,可以针对4x4帧内预测,通过将块数据和相邻数据顺时针旋转90度并使用“模式4”预测方程,来预测“模式12”预测值:

其中像素位置和值如图11所示。

图13A和图13B示出了该过程。如图13A所示,可以根据左侧470-473和下侧475-478重构像素值以及插值的角落像素值474,沿对角线右上方向479预测16个像素451-466的4x4块450。图13B示出了90度顺时针旋转后图13A的像素。可以使用“模式4”预测方程,根据左侧505-508和上侧501-504重构像素值以及插值的角落像素值500,沿对角线右下方向509预测16个像素481-496的4x4块480。可以通过90度逆时针旋转将这些预测像素值481-496映射回合适的像素。在本发明一些实施例中,可以通过旋转和使用“模式4”预测方程来预测“模式12”预测值。在备选实施例中,可以根据如下针对4x4帧内预测,直接预测“模式12”预测值:

其中像素值和位置如图13A所示。

与水平成近似45度角从中心点422沿对角线向右下方向延伸的水平箭头424可以表示对角线右下(DDR)预测模式,可以称为“模式4”,从中心点422沿180度相反方向延伸的箭头433可以表示对角线左上(DUL)预测模式,可以称为“模式13”或DDR 2模式。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式4”预测值:

其中像素位置和值如图11所示。在本发明一些实施例中,可以针对4x4帧内预测,通过将块数据和相邻数据旋转180度并使用“模式4”预测方程,来预测“模式13”预测值。

图14A和图14B示出了该过程。如图14A所示,可以根据右侧545-548和下侧540-543重构像素值以及插值的角落像素值544,沿对角线左上方向549预测16个像素521-536的4x4块520。图14B示出了180度旋转后图14A的像素。可以使用“模式4”预测方程,根据左侧575-578和上侧571-574重构像素值以及插值的角落像素值570,沿对角线右下方向579预测16个像素551-566的4x4块550。可以通过180度旋转将这些预测像素值551-566映射回合适的像素。在本发明一些实施例中,可以通过旋转和使用“模式4”预测方程来预测“模式13”预测值。在备选实施例中,可以根据如下针对4x4帧内预测,直接预测“模式13”预测值:

其中像素值和位置如图14A所示。

与水平成近似67.5度角从中心点422沿对角线向右下方向延伸的水平箭头425可以表示垂直向右(VR)预测模式,可以称为“模式5”,从中心点422沿180度相反方向延伸的箭头434可以表示垂直向右2预测模式,可以称为“模式14”或VR 2模式。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式5”预测值:

其中像素位置和值如图11所示。在本发明一些实施例中,可以针对4x4帧内预测,通过将块数据和相邻数据旋转180度并使用“模式5”预测方程,来预测“模式14”预测值。

图15A和图15B示出了该过程。如图15A所示,可以根据右侧615-618和下侧610-613重构像素值以及插值的角落像素值614,沿垂直向右2方向619预测16个像素591-606的4x4块590。图15B示出了180度旋转后图15A的像素。可以使用“模式5”预测方程,根据左侧645-648和上侧641-644重构像素值以及插值的角落像素值640,沿垂直向右方向649预测16个像素621-636的4x4块620。可以通过180度旋转将这些预测像素值621-636映射回合适的像素。在本发明一些实施例中,可以通过旋转和使用“模式5”预测方程来预测“模式14”预测值。在备选实施例中,可以根据如下针对4x4帧内预测,直接预测“模式14”预测值:

其中像素值和位置如图15A所示。

与水平成近似22.5度角从中心点422沿对角线向右下方向延伸的水平箭头426可以表示水平向下(HD)预测模式,可以称为“模式6”,从中心点422沿180度相反方向延伸的箭头435可以表示水平向下2预测模式,可以称为“模式15”或HD 2模式。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式6”预测值:

其中像素位置和值如图11所示。在本发明一些实施例中,可以针对4x4帧内预测,通过将块数据和相邻数据旋转180度并使用“模式6”预测方程,来预测“模式15”预测值。

图16A和图16B示出了该过程。如图16A所示,可以根据右侧685-688和下侧680-683重构像素值以及插值的角落像素值684,沿水平向下2方向689预测16个像素661-676的4x4块660。图16B示出了180度旋转后图16A的像素。可以使用“模式6”预测方程,根据左侧715-718和上侧711-714重构像素值以及插值的角落像素值710,沿水平向下方向719预测16个像素691-706的4x4块690。可以通过180度旋转将这些预测像素值691-706映射回合适的像素。在本发明一些实施例中,可以通过旋转和使用“模式6”预测方程来预测“模式15”预测值。在备选实施例中,可以根据如下针对4x4帧内预测,直接预测“模式15”预测值:

其中像素值和位置如图16A所示。

与水平成近似67.5度角从中心点422沿对角线向左下方向延伸的水平箭头427可以表示垂直向左(VL)预测模式,可以称为“模式7”,从中心点422沿180度相反方向延伸的箭头436可以表示垂直向左2预测模式,可以称为“模式16”或VL 2模式。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式7”预测值:

其中像素位置和值如图11所示。在本发明一些实施例中,可以针对4x4帧内预测,通过将块数据和相邻数据顺时针旋转90度并使用“模式6”预测方程,来预测“模式16”预测值。

图17A和图17B示出了该过程。如图17A所示,可以根据左侧750-752和下侧754-757重构像素值以及插值的角落像素值753,沿垂直向左2方向758预测16个像素731-746的4x4块730。图17B示出了顺时针90度旋转后图17A的像素。可以使用“模式6”预测方程,根据左侧794-797和上侧791-793重构像素值以及插值的角落像素值790,沿水平向下方向798预测16个像素761-776的4x4块760。可以通过顺时针90度旋转将这些预测像素值761-776映射回合适的像素。在本发明一些实施例中,可以通过旋转和使用“模式6”预测方程来预测“模式16”预测值。在备选实施例中,可以根据如下针对4x4帧内预测,直接预测“模式16”预测值:

其中像素值和位置如图17A所示。

与水平成近似22.5度角从中心点422沿对角线向右上方向延伸的水平箭头428可以表示水平向上(HU)预测模式,可以称为“模式8”,从中心点422沿180度相反方向延伸的箭头437可以表示水平向上2预测模式,可以称为“模式17”或HU 2模式。在本发明一些实施例中,可以根据如下针对4x4帧内预测来预测“模式8”预测值:

其中像素位置和值如图11所示。在本发明一些实施例中,可以针对4x4帧内预测,通过将块数据和相邻数据翻转过右侧边界并使用“模式6”预测方程,来预测“模式17”预测值。

图18A和图18B示出了该过程。如图18A所示,可以根据右侧834-837和上侧830-832重构像素值以及插值的角落像素值833,沿水平向上2方向838预测16个像素811-826的4x4块810。图18B示出了翻转过右侧边界后图18A的像素。可以使用“模式6”预测方程,根据左侧864-867和上侧861-863重构像素值以及插值的角落像素值860,沿水平向下方向868预测16个像素841-856的4x4块840。可以通过反向翻转过左侧边界将这些预测像素值841-856映射回合适的像素。在本发明一些实施例中,可以通过翻转和使用“模式6”预测方程来预测“模式17”预测值。在备选实施例中,可以根据如下针对4x4帧内预测,直接预测“模式17”预测值:

其中像素值和位置如图18A所示。

可以结合图19理解使用相反方向模式的帧内预测的优点。图19示出了16个像素901-916的示例块900。当块900位于在根据棋盘格图案划分的宏块中的第一块集合中所有块进行重构之后重构的块集合中时,除了左侧相邻块内的像素925-928和上侧相邻块内的像素921-924,非左侧相邻块和上侧相邻块的其他相邻块中的重构像素值(例如,931-938)也可用于帧内预测。例如对于如图19所示由白色像素901-907,909,910,913,931,921-928,935,940-942和灰色像素908,911,912,914-916,932-934,936-938,943,950-953,955-957显示的具有亮度内容的图像,可以从右侧相邻块和下侧相邻块中的重构像素值更好地预测块900内灰色像素908,911,912,914-916的像素值。因此,由于被预测的像素值与预测中使用的重构像素值之间的更高相关,使用相反方向预测模式可以提高压缩效率。

一般而言,随着可选预测模式数量的增加,由于更好的像素值预测,编码效率可以提高。然而,预测模式越多,信号通知需求也越大。在本发明一些实施例中,编码器可以在模式数目与关联于附加预测模式的增加开销之间进行平衡。

在本发明一些实施例中,可以根据预测模式预测在重构了第一块集合之后重构的块集合中块的像素值,其中预测模式是标准定义的预测模式之一。

在本发明备选实施例中,可以根据预测模式预测在重构了第一块集合之后重构的块集合中块的像素值,其中预测模式是上述定义的相反方向模式之一。

在本发明其他备选实施例中,可以通过在预测方向上相差180度的两个模式,利用值的加权插值来预测在重构了第一块集合之后重构的块集合中块的像素值。在一些实施例中,可以根据如下预测像素值:

p(y,x)=wp1(y,x)*p1(y,x)+(1-wp1(y,x))p2(y,x)

其中p(y,x)可以表示位置(y,x)处的预测像素值,p1和p2可以表示预测方向相反的两种预测模式,以及wp1(y,x)可以表示位置(y,x)处与预测模式p1关联的权重。在本发明一些实施例中,权重可以与到预测邻居的距离近似成比例。表2示出了针对4x4帧内预测的示例权重。在本发明一些实施例中,可以针对每个预测模式方向存储权重。在本发明备选实施例中,可以存储针对预测模式方向的一个子集的权重,可以例如通过适当存储的加权表的旋转或翻转等变换,来产生针对未存储的预测模式方向的权重。

表2针对相反方向模式插值的示例权重

在本发明一些实施例中,编码器可以在经修改的先前已有9种模式(模式0-模式8)、9种相反方向模式(模式9-模式17)以及加权插值模式之间执行RDO模式选择。

在一些实施例中,为了节省模式信号通知的开销,可以使用9种模式,并在可用时使用加权插值模式。

在本发明备选实施例中,可以使用经修改的先前已有9种模式(模式0-模式8)、9种相反方向模式(模式9-模式17)。可以使用一个附加比特(也称为标志)来信号通知模式是先前已有9种模式之一还是相反方向模式之一。在本发明一些实施例中,可以不针对每个块,信号通知该比特值,也称为标志值。在这些实施例中,可以根据宏块划分中当前被处理的多个块内相邻块的标志值来预测该标志值。在其他实施例中,可以根据多个块中也使用标志值来信号通知备选帧内预测模式的那些相邻块的标志值,来预测标志值。说明性地,宏块内的第一多个块可以不使用标志值来信号通知备选帧内预测模式,而宏块内的第二多个块可以使用标志值来信号通知备选帧内预测模式。在备选实施例中,可以根据使用标志值的最接近块来预测标志值。在其他备选实施例中,可以根据水平方向上使用标志值的最接近块和垂直方向上使用标志值的最接近块,来预测标志值。在其他备选实施例中,可以使用相邻宏块中采用标志值的最接近块来预测标志值。在另外的备选实施例中,可以使用当前宏块的左侧相邻宏块中使用标志值的最接近块来预测标志值。在其他实施例中,可以使用当前宏块的上侧相邻宏块中使用标志值的最接近块来预测标志值。在本发明一些实施例中,可以根据用于模式预测的相同块来预测标志值。在本发明一些实施例中,编码器可以信号通知预测的标志值是否正确。在本发明一些实施例中,关于预测的标志值是否正确,解码器可以对来自接收比特流的信息进行解码。

在本发明的其他备选实施例中,可以使用经修改的先前已有9种模式(模式0-模式8)以及加权插值模式。可以使用一个附加比特(也称为标志)来信号通知模式是先前已有9种模式之一还是加权插值模式之一。在本发明一些实施例中,可以不针对每个块,信号通知该比特值,也称为标志值。在这些实施例中,可以根据宏块划分中当前被处理的多个块内相邻块的标志值来预测该标志值。在其他实施例中,可以根据多个块中也使用标志值来信号通知备选帧内预测模式的那些相邻块的标志值,来预测标志值。说明性地,宏块内的第一多个块可以不使用标志值来信号通知备选帧内预测模式,而宏块内的第二多个块可以使用标志值来信号通知备选帧内预测模式。在备选实施例中,可以根据使用标志值的最接近块来预测标志值。在其他备选实施例中,可以根据水平方向上使用标志值的最接近块和垂直方向上使用标志值的最接近块,来预测标志值。在其他备选实施例中,可以使用相邻宏块中采用标志值的最接近块来预测标志值。在另外的备选实施例中,可以使用当前宏块的左侧相邻宏块中使用标志值的最接近块来预测标志值。在其他实施例中,可以使用当前宏块的上侧相邻宏块中使用标志值的最接近块来预测标志值。在本发明一些实施例中,可以根据用于模式预测的相同块来预测标志值。在本发明一些实施例中,编码器可以信号通知预测的标志值是否正确。在本发明一些实施例中,关于预测的标志值是否正确,解码器可以对来自接收比特流的信息进行解码。

在本发明的其他备选实施例中,可以使用相反方向模式(模式9-模式17)以及加权插值模式。可以使用一个附加比特(也称为标志)来信号通知模式是先前已有9种模式之一还是加权插值模式之一。在本发明一些实施例中,可以不针对每个块,信号通知该比特值,也称为标志值。在这些实施例中,可以根据宏块划分中当前被处理的多个块内相邻块的标志值来预测该标志值。在其他实施例中,可以根据多个块中也使用标志值来信号通知备选帧内预测模式的那些相邻块的标志值,来预测标志值。说明性地,宏块内的第一多个块可以不使用标志值来信号通知备选帧内预测模式,而宏块内的第二多个块可以使用标志值来信号通知备选帧内预测模式。在备选实施例中,可以根据使用标志值的最接近块来预测标志值。在其他备选实施例中,可以根据水平方向上使用标志值的最接近块和垂直方向上使用标志值的最接近块,来预测标志值。在其他备选实施例中,可以使用相邻宏块中采用标志值的最接近块来预测标志值。在另外的备选实施例中,可以使用当前宏块的左侧相邻宏块中使用标志值的最接近块来预测标志值。在其他实施例中,可以使用当前宏块的上侧相邻宏块中使用标志值的最接近块来预测标志值。在本发明一些实施例中,可以根据用于模式预测的相同块来预测标志值。在本发明一些实施例中,编码器可以信号通知预测的标志值是否正确。在本发明一些实施例中,关于预测的标志值是否正确,解码器可以对来自接收比特流的信息进行解码。

在本发明的其他备选实施例中,可以使用任意两个独立帧内模式的加权插值来预测像素值。

在本发明一些实施例中,可以将模式编号为“0”到“8”。在这些实施例中,第一帧内块集合的模式预测不会受到模式编号的影响。表3示出了针对帧内4x4预的示例语法。斜体文本是根据本发明实施例新添加至已有H.264/AVC语法的。

表3针对并行帧内4x4预测的示例语法表

标志“MB_has_weighted_intra_block_flag”可以指定宏块中的任意块是否使用加权帧内预测模式。如果“MB_has_weighted_intra_block_flag”等于0,则宏块中无块使用加权帧内预测模式。如果标志“MB_has_weighted_intra_block_flag”等于1,则宏块包含至少一个使用加权帧内预测模式的块。

标志“intra4x4_pred_weighted_flag”可以指定帧内4x4预测模式是否是加权帧内预测模式。当“MB_has_weighted_intra_block_flag”等于1,并且4x4块处于能够具有加权帧内预测模式的位置时,才提供该标志。能够具有加权帧内预测模式的块可以是第二块集合中的块,除了不具有右侧和下侧邻居的块15之外。如果标志“intra4x4_pred_weighted_flag”等于0,则块的帧内预测模式可以是从上侧和左侧邻居预测的原始帧内预测模式。如果标志“intra4x4_pred_weighted_flag”等于1,则块的帧内预测模式可以是加权帧内预测模式,该模式使用来自上侧和左侧邻居的预测与来自下侧和右侧邻居的预测之间的加权组合来预测块值。在本发明一些实施例中,可以不针对每个块,信号通知该标志值。在这些实施例中,可以根据宏块划分中当前被处理的多个块内相邻块的标志值来预测该标志值。在其他实施例中,可以根据多个块中也使用标志值来信号通知备选帧内预测模式的那些相邻块的标志值,来预测标志值。说明性地,宏块内的第一多个块可以不使用标志值来信号通知备选帧内预测模式,而宏块内的第二多个块可以使用标志值来信号通知备选帧内预测模式。在备选实施例中,可以根据使用标志值的最接近块来预测标志值。在其他备选实施例中,可以根据水平方向上使用标志值的最接近块和垂直方向上使用标志值的最接近块,来预测标志值。在其他备选实施例中,可以使用相邻宏块中采用标志值的最接近块来预测标志值。在另外的备选实施例中,可以使用当前宏块的左侧相邻宏块中使用标志值的最接近块来预测标志值。在其他实施例中,可以使用当前宏块的上侧相邻宏块中使用标志值的最接近块来预测标志值。在本发明一些实施例中,可以根据用于模式预测的相同块来预测标志值。在本发明一些实施例中,编码器可以信号通知预测的标志值是否正确。在本发明一些实施例中,关于预测的标志值是否正确,解码器可以对来自接收比特流的信息进行解码。

在本发明一些实施例中,可以根据如下伪代码得到针对块的帧内预测模式Intra4x4PredMode[luma4x4BlkIdx]:

在伪代码中,intraMxMPredModeA和Intra MxMPredModeB是帧内预测模式可用的第一和第二相邻块的预测模式,prev_intra4x4_pred_mode_flag[luma4x4BlkIdx]和rem_intra4x4_pred_mode[luma4x4BlkIdx]指定了4x4亮度块的帧内4x4预测,索引luma4x4B1kIdx=0,...,15。

可用帧内预测模式可以指帧内预测模式已经确定的块的帧内预测模式。可用块可以指帧内预测模式已经确定的块。

在本发明一些实施例中,可以像H.264/AVC和其他视频标准中规定的一样,对第一块集合和第二块集合的残差数据进行信号通知。在本发明备选实施例中,可以按照块编码顺序来信号通知残差数据。例如,在一些实施例中,可以首先在比特流中发送第一块集合的残差,并随后在比特流中发送第二块集合的残差。在这里的一些实施例中,解码器可以在对残差数据进行熵解码之后立即开始重构第一块集合。本发明一些实施例可以包括比特标志“parallelResidualSignaling”,其可以指定是否分离地发送帧内4x4块的第一块集合和第二块集合的残差数据。如果标志“parallelResidualSignaling”等于0,则可以像H.264/AVC中规定的一样,作为一个宏块来发送宏块的残差数据。如果标志“parallelResidualSignaling”等于1,则可以先发送宏块中帧内4x4块的第一集合的残差数据,然后发送并行的帧内4x4块的第二集合的残差数据。表4列出了包括标志“parallelResidualSignaling”的示例语法。在本发明一些实施例中,可以在序列参数集中发送该标志比特“parallelResidualSignaling”。在备选实施例中,可以在画面参数集中发送该标志比特“parallelResidualSignaling”。

表4针对并行帧内4x4预测残差信号通知的示例语法表

在本发明一些实施例中,可以与块残差交织地信号通知多个块的预测模式。在备选实施例中,可以在信号通知多个块内块的残差之前,针对该多个块内所有块,信号通知预测模式。

在本发明一些实施例中,编码器可以确定宏块划分并在比特流中信号通知该划分选择。在备选实施例中,编码器可以使用缺省划分。

在本发明一些实施例中,解码器可以从比特流中解码对宏块划分进行标识的信息。在备选实施例中,可以在解码器端确定划分为缺省划分。

参照图20,为说明目的,描述了本发明一些实施例中的示例编码器1200。将理解,可以使用任意视频编码器。输入视频1210被提供给适合在必要时对帧或帧的部分进行重排序的缓冲器1220。组合器1230按照适合变换和量化处理1240的方式对适当地重排序的部分进行修改。变换和量化处理1240向熵编码器1250提供信号。熵编码器1250向输出缓冲器1260提供信号,以用于输出比特流1270。接收到输入视频1210的编码器控制器1280向编码器1200的所有模块提供控制信号。

变换和量化处理1240也将其输出提供给逆变换和逆量化1300,以便可以模拟对应的解码器。画面类型决策处理1310与帧排序缓冲器1220相互连接。画面类型决策处理1310也与宏块类型决策1320相互连接。这样,可以实现对帧排序缓冲器1220的控制。此外,可以实现对宏块类型的控制。

逆变换和逆量化1300向组合器1330提供信号,组合器1330与宏块类型决策1320相组合地提供信号至帧内编码预测模块1340和解块滤波器1350。解块滤波器1350与参考画面缓冲器1360相互连接。参考画面缓冲器1360提供信号至运动估计处理1370和运动补偿处理1380。运动估计1370提供信号至运动补偿1380和熵编码器1250。选择器1390针对组合器1230,在运动补偿1380的输出与帧内编码预测1340的输出之间进行选择。这样,组合器1230接收与宏块是帧内编码1340还是运动补偿编码1380有关的信息。

选择器1390的判定涉及宏块类型决策1320。例如,如果宏块类型决策1320判定宏块应该是帧内编码的,则选择器应该选择帧内预测形式。例如,如果宏块类型决策1320判定宏块应该是运动补偿的,则选择器应该选择运动补偿形式。宏块类型决策1320、画面类型决策1310、选择器1390以及一个或多个帧内预测技术1340之间的选择所进行的判定都包括在熵编码1250的比特流内。此外,组合器1330可以接收来自选择器1390的输入,以提供关于所做选择的信息。

下面参考图21描述视频解码器。可以使用任何适合的解码器。针对输入比特流1410的示例视频解码器1400包括输入缓冲器1420。输入缓冲器1420向熵解码器1430提供信号。熵解码器1430向逆变换和逆量化处理1440提供信号。逆变换和逆量化处理1440向组合器1450提供信号。组合器1450向解块滤波器1460和帧内预测模块1470提供信号。解块滤波器1460向参考画面缓冲器1480提供信号。参考画面缓冲器1480向运动补偿器1490提供信号。

熵解码器1430向运动补偿1490和解块滤波器1460提供信号。熵解码器1430也向解码器控制器1500提供信号。解码器控制器与解码器1400的其他模块相互连接。运动补偿器1490向开关1510提供信号。帧内预测模块1470向开关1510提供信号。开关1510向组合器1450有选择地提供信号。解块滤波器1460提供输出画面1520。

参照图22,典型地使用不同技术对视频的帧或帧的一部分进行编码。一种这样的技术包括使用一般称为I帧、P帧和B帧的画面类型。I帧不需要其他视频帧来解码。P帧可以使用来自先前传输的帧的数据来解码。B帧可以使用两个或更多个先前传输的帧来解码。类似地,视频的编码可以基于来自帧内的一个或更多个不同尺寸的像素块。此外,类似地,视频的编码可以基于块或者一个或更多个帧之间的运动预测、片、空间预测。因此,一般而言,存在与视频比特流一起传输的解码器预测信息,其指示帧的编码类型、帧的预测类型、预测方向,使用哪些帧、帧之间的运动估计信息、帧尺寸信息、帧内的块尺寸信息、空间预测信息、和/或其他适合的参数。因此,解码器1400基于与编码器1200的比特流一起提供的预测信息来解码视频帧。

本发明一些实施例可以包括计算机程序产品,包括其上/其中存储有指令的计算机可读存储介质,指令可以用于对计算系统编程,以执行本文所述的任何特征和方法。示例计算机可读存储介质可以包括但不限于闪存设备、盘存储介质(例如,软盘、光盘、磁光盘、数字万能盘(DVD)、压缩盘(CD)、微驱动和其他盘存储介质)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、视频随机存取存储器(VRAM)、动态随机存取存储器(DRAM)、以及适合存储指令和/或数据的任何类型的介质或没备。

这里使用在以上说明书中采用的术语和表述作为描述性而非限制性的,使用这些术语和表述不是要排除所示和所述特征或其部分的等同物,可以认识到本发明的范围仅由随后的权利要求定义和限制。

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