用于视频编码的解耦预测和编码结构转让专利

申请号 : CN201811533419.8

文献号 : CN110035290A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : N·迈赫迪C·努伊拉H·盖尔玛奇F·科森蒂尼

申请人 : 英特尔公司

摘要 :

讨论了与视频编码相关的技术,其提供性能改进的解耦预测和编码结构。这些技术包括:通过将候选分区与仅使用原始像素样本生成的帧内预测分区进行比较来评估用于候选分区的帧内模式,并且通过将候选分区与包括原始像素样本的搜索分区进行比较来评估用于候选分区的帧间模式,从而确定图像块的最终分区决策,并且使用最终分区决策进行编码。

权利要求 :

1.一种计算机实现的用于视频编码的方法,包括:

接收待编码的输入视频,所述输入视频包括多个图像;

通过以下步骤生成用于所述多个图像中的第一图像的单个块的最终分区决策:通过将所述单个块的候选分区与仅使用来自所述第一图像的原始像素样本生成的帧内预测分区进行比较,评估用于所述候选分区的多个帧内模式;以及通过将所述候选分区与仅包括来自所述多个图像中的第二图像的原始像素样本的多个搜索分区进行比较,评估用于所述候选分区的多个帧间模式;

向视频编码器提供最终分区决策;

在所述视频编码器处,对所述单个块与使用最终分区决策生成的重构块进行取差来生成与所述单个块对应的残差块;以及在所述视频编码器处,至少将所述残差块的变换系数编码为输出比特流。

2.根据权利要求1所述的方法,其中,所述单个块是所述第一图像的区域的一部分,并且所述方法还包括:对所述区域执行平坦区域检测和有噪区域检测,以确定所述区域是否是平坦且有噪的区域;

执行边缘检测,以确定所述区域是否包括检测到的边缘;以及评估所述区域在包括所述第一图像在内的多个图像上的变化的时间方差,以确定所述区域是否具有低变化时间方差,其中,评估所述帧内模式和所述帧间模式包括:

响应于所述区域是平坦且有噪的区域、所述区域包括边缘并且所述区域具有低变化时间方差,对帧内模式结果和帧间模式结果之一或两者应用偏置,以有利于为所述单个块的一个或多个分区选择帧间模式结果。

3.根据权利要求2所述的方法,其中,应用所述偏置包括:将第一因子与所述帧内模式结果或所述帧间模式结果相加以及将第二因子与所述帧内模式结果或所述帧间模式结果相乘中的一个。

4.根据权利要求2所述的方法,其中,所述帧内模式结果和所述帧间模式结果包括速率失真代价。

5.根据权利要求2所述的方法,其中,执行平坦区域检测包括:对所述区域进行去噪,并将去噪区域的变化与第一阈值进行比较,并且执行有噪区域检测包括:对所述区域和所述去噪区域进行取差并将差值区域的方差与第二阈值进行比较。

6.根据权利要求1-5中任一项所述的方法,其中,生成最终分区决策还包括:基于对所述多个帧内模式和所述多个帧间模式的评估,生成与最终分区决策对应的所述单个块的分区的初始编码模式决策。

7.根据权利要求6所述的方法,其中,所述单个块的第一分区的第一初始编码模式决策包括所述多个帧内模式中的第一帧内模式,并且所述方法还包括:在所述视频编码器处,将变换应用于与所述第一分区和所述第一帧内模式对应的第一残差分区,以生成第一变换残差系数;

在所述视频编码器处,将所述变换应用于与所述第一分区和第二帧内模式对应的第二残差分区,以生成第二变换残差系数;

确定所述第一变换残差系数的第一高频系数能量值和所述第二变换残差系数的第二高频系数能量值;

响应于第二高频值小于第一高频值而丢弃所述第一帧内模式;以及在所述视频编码器处,使用所述第二帧内模式对所述第一分区进行编码。

8.根据权利要求7所述的方法,其中,确定所述第一高频系数能量值包括:对除所述第一变换残差系数中的DC变换系数之外的多个第一变换残差系数求平均值。

9.根据权利要求1所述的方法,其中,由所述视频编码器使用最终分区决策和初始编码模式决策来生成所述重构块。

10.根据权利要求1-9中任一项所述的方法,其中,比较所述候选分区与仅使用来自所述第一图像的原始像素样本生成的帧内预测分区包括:根据针对第一候选分区评估的当前帧内模式,仅使用所述原始像素样本生成第一帧内预测分区;以及对所述第一候选分区和所述第一帧内预测分区进行取差。

11.一种用于视频编码的系统,包括:

存储器,用于存储待编码的输入视频,所述输入视频包括多个图像;

一个或多个第一处理器;和

第二处理器,耦合到所述一个或多个第一处理器,并且实现视频编码器,所述一个或多个第一处理器用于:基于对用于所述多个图像中的第一图像的单个块的候选分区的多个帧内模式的评估以及使用所述多个图像中的第二图像对用于所述候选分区的多个帧间模式的评估,生成用于所述单个块的最终分区决策,其中,所述一个或多个第一处理器使用所述候选分区与仅使用来自所述第一图像的原始像素样本生成的帧内预测分区的比较来评估所述多个帧内模式,并且所述一个或多个第一处理器使用所述候选分区与仅包括来自所述多个图像中的第二图像的原始像素样本的多个搜索分区的比较来评估所述多个帧间模式;以及向所述第二处理器提供最终分区决策,所述第二处理器用于:

在所述视频编码器处,对所述单个块与使用最终分区决策生成的重构块进行取差来生成与所述单个块对应的残差块;以及在所述视频编码器处,至少将所述残差块的变换系数编码为输出比特流。

12.根据权利要求11所述的系统,其中,所述单个块是所述第一图像的区域的一部分,并且所述一个或多个第一处理器还用于:对所述区域执行平坦区域检测和有噪区域检测,以确定所述区域是否是平坦且有噪的区域;

执行边缘检测,以确定所述区域是否包括检测到的边缘;以及评估所述区域在包括所述第一图像在内的多个图像上的变化的时间方差,以确定所述区域是否具有低变化时间方差,其中,所述一个或多个第一处理器生成所述单个块的初始编码模式决策包括:所述一个或多个第一处理器响应于所述区域是平坦且有噪的区域、所述区域包括边缘并且所述区域具有低变化时间方差,对帧内模式结果和帧间模式结果之一或两者应用偏置,以有利于为所述单个块的一个或多个分区选择帧间模式结果。

13.根据权利要求12所述的系统,其中,所述一个或多个第一处理器应用所述偏置包括:所述一个或多个第一处理器将第一因子与所述帧内模式结果或所述帧间模式结果相加,或者将第二因子与所述帧内模式结果或所述帧间模式结果相乘。

14.根据权利要求13所述的系统,其中,所述帧内模式结果和所述帧间模式结果包括速率失真代价。

15.根据权利要求13所述的系统,其中,所述一个或多个第一处理器执行平坦区域检测包括:所述一个或多个第一处理器对所述区域进行去噪,并将去噪区域的变化与第一阈值进行比较,并且所述一个或多个第一处理器执行有噪区域检测包括:所述一个或多个第一处理器对所述区域和所述去噪区域进行取差,并将差值区域的方差与第二阈值进行比较。

16.根据权利要求11-15中任一项所述的系统,其中,所述一个或多个第一处理器生成最终分区决策包括:所述一个或多个第一处理器基于对所述多个帧内模式和所述多个帧间模式的评估,生成与最终分区决策对应的所述单个块的分区的初始编码模式决策。

17.根据权利要求16所述的系统,其中,用于所述单个块的第一分区的第一初始编码模式决策包括所述多个帧内模式中的第一帧内模式,并且所述第二处理器还用于:在所述视频编码器处,将变换应用于与所述第一分区和所述第一帧内模式对应的第一残差分区,以生成第一变换残差;

在所述视频编码器处,将变换应用于与所述第一分区和第二帧内模式对应的第二残差分区,以生成第二变换残差;

确定所述第一变换残差的第一高频能量值和所述第二变换残差的第二高频能量值;

响应于第二高频值小于第一高频值,丢弃所述第一帧内模式;以及在所述视频编码器处,使用所述第二帧内模式对所述第一分区进行编码。

18.根据权利要求17所述的系统,其中,所述第二处理器确定第一高频系数能量值包括:所述第二处理器对除所述第一变换残差系数中的DC变换系数之外的多个第一变换残差系数求平均值。

19.根据权利要求11所述的系统,其中,所述重构块是由所述视频编码器使用最终分区决策和初始编码模式决策来生成的。

20.根据权利要求11-19中任一项所述的系统,其中,比较所述候选分区与仅使用来自所述第一图像的原始像素样本生成的帧内预测分区包括:所述一个或多个第一处理器:根据针对第一候选分区评估的当前帧内模式,仅使用所述原始像素样本生成第一帧内预测分区;以及对所述第一候选分区和所述第一帧内预测分区进行取差。

21.至少一种机器可读介质,包括多个指令,所述指令响应于在计算设备上执行,使所述计算设备执行根据权利要求1-10中任一项所述的方法。

22.一种装置,包括:

用于执行根据权利要求1-10中任一项所述的方法的模块。

说明书 :

用于视频编码的解耦预测和编码结构

背景技术

[0001] 在压缩/解压缩(编解码)系统中,压缩效率和视频质量是重要的性能标准。视觉质量是许多视频应用中用户体验的重要方面,并且压缩效率影响存储视频文件所需的存储器存储量和/或传输和/或流送视频内容所需的带宽量。例如,视频编码器压缩视频信息,使得可以在给定带宽上发送更多信息,或者在给定存储空间中存储更多信息,等。然后可以经由对信号或数据进行解码或解压缩的解码器对压缩的信号或数据进行解码,以便显示给用户。在大多数实现方式中,期望具有更高压缩程度的更高视觉质量。此外,编码速度和效率是视频编码的重要方面。
[0002] 在保持甚至提升视频质量的同时提高视频编码速度和压缩速率可能是有利的。关于这些和其他考虑因素,需要当前的改进。随着压缩和传输视频数据的需求变得更加普遍,这种改进可能变得至关重要。

附图说明

[0003] 本文描述的内容通过示例的方式示出,而不是作为对附图的限制。为了说明的简单和清楚,附图中示出的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。此外,在认为合适的情况下,在附图中重复附图标记以指示对应或类似的元件。
[0004] 在附图中:
[0005] 图1是用于提供视频编码的示例性系统的示意图;
[0006] 图2是用于提供视频编码的另一示例性系统的示意图;
[0007] 图3示出示例性图像组;
[0008] 图4示出示例性视频图像;
[0009] 图5是用于提供LCU分区和帧内/帧间(intra/inter)模式数据的示例性分区和模式决策模块的示意图;
[0010] 图6是用于生成比特流的示例性编码器的示意图;
[0011] 图7是示出用于减少闪烁伪影(artifacts)的示例性过程的流程图;
[0012] 图8是示例性平坦和有噪区域检测器的示意图;
[0013] 图9是示出用于减少线状伪影的示例性过程的流程图;
[0014] 图10是示出用于视频编码的示例性过程的流程图;
[0015] 图11是用于视频编码的示例性系统的示意图;
[0016] 图12是示例性系统的示意图;以及
[0017] 图13示出根据本公开的至少一些实现方式布置的示例性设备。
[0018] 具体实现方式
[0019] 现在参考附图描述一个或多个实施例或实现方式。虽然讨论了具体配置和布置,但应该理解,这仅出于说明性目的而进行。相关领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说显而易见的是,本文描述的技术和/或布置也可以用于除本文描述内容之外的各种其他系统和应用中。
[0020] 虽然以下描述阐述了可以在诸如片上系统(SoC)架构的架构中表现出的各种实现方式,但是本文描述的技术和/或布置的实现方式不限于特定架构和/或计算系统,并且可以由用于类似目的的任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构和/或各种计算设备和/或诸如机顶盒、智能电话等的消费电子(CE)设备可以实现本文描述的技术和/或布置。此外,虽然以下描述可以阐述许多具体细节,诸如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等,但是可以在没有这些具体细节的情况下实践所要求保护的主题。例如,在其他情况下,可能未详细示出一些内容,诸如控制结构和完整软件指令序列,以免模糊本文公开的内容。
[0021] 本文公开的内容可以以硬件、固件、软件或其任何组合来实现。本文公开的内容还可以实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等。
[0022] 说明书中对“一个实现方式”、“实现方式”、“示例性实现方式”等的引用表示,所描述的实现方式可以包括特定的特征、结构或特性,但是每一个实施例可能不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指代相同的实现方式。此外,当结合实施例描述特定的特征、结构或特性时,认为结合其他实现方式实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。
[0023] 本文描述与视频编码有关的方法、设备、装置、计算平台和物品,并且具体地,涉及解耦预测和视频编码。
[0024] 本文讨论的技术提供基于仅使用来自具有顺应局部解码循环的全标准顺应编码的源样本来解耦最终分区决策和相关联的初始编码模式决策的生成。例如,模式决策模块生成最终分区决策和相关联的初始编码模式决策,而不使用由具有顺应解码循环的标准顺应编码器生成的任何数据。在生成这样的最终分区和初始编码模式决策之后,诸如具有顺应局部解码循环的标准顺应编码器的编码器采用这样的决策来生成标准顺应比特流。也就是说,最终分区决策和初始编码模式决策是独立生成的,然后传输到标准顺应编码器,其中预测误差信息(即,残差数据和对应的变换系数)是以顺应方式生成的。例如,通过仅使用输入源图像(例如,源样本)来生成包括分区/模式决策和诸如运动向量的相关数据的最终预测数据,模式决策与标准顺应编码的解耦可以允许两个过程中的每一个在独立的硬件设备上运行,这改善编码过程中的并行性,从而提高编码速度并降低编码器的延迟和内存要求。如本文所使用的,术语“样本”或“像素样本”可以是任何合适的像素值。术语“原始像素样本”用于指示来自输入视频的样本或值并与重构像素样本形成对比,重构像素样本不是原始像素样本,而是在标准顺应编码器中的编码和解码操作之后重构的。
[0025] 如本文进一步讨论的,在各种实施例中,独立运动估计和模式决策模块可以采用各种近似工具和技术来生成预测数据和分区/模式决策,这提供速度方面的实质性增益。在这种模式决策处理中仅使用源输入图像以及使用各种近似相对于针对这种预测和分区/模式决策使用完全顺应编码器可能生成视频质量伪影。本文讨论的技术仅采用源样本并引入各种近似,同时最小化或消除这种伪影。
[0026] 通过将分区/模式决策与使用分区/模式决策的标准顺应编码解耦,出现两个关键方面。首先,用于分区/模式决策的功能不需要使用标准顺应技术(尽管实际的编码将是标准顺应的)。其次,信息流是单向的,使得信息仅从分区/模式决策模块或过程流向编码模块或过程。例如,使用标准顺应编码的重构像素样本不用于传送到标准顺应编码器的分区/模式决策。
[0027] 图1是根据本公开的至少一些实现方式布置的用于提供视频编码的示例性系统100的示意图。如图1所示,系统100包括分区和模式决策模块101和编码器102。如图所示,分区和模式决策模块101(其可以被表征为分区、运动估计和模式决策模块等)接收输入视频
111,并且生成最大编码单元(LCU)分区和对应的编码模式(帧内/帧间模式)数据112,其可以被表征为最终分区/模式决策数据、最终分区/初始模式决策数据等。例如,对于输入视频
111的每个图像的每个LCU,分区和模式决策模块101可以提供最终分区决策(即,指示如何将LCU分成编码单元(CU)的数据)、每个CU的编码模式(即,帧间模式、帧内模式等)以及(如果需要)编码模式的信息(即,帧间编码的运动向量)。
[0028] 如图所示,编码器102接收LCU分区和帧内/帧间模式数据112,并且生成比特流113,诸如标准顺应比特流。例如,编码器102实现LCU分区和帧内/帧间模式数据112,使得编码器102不做任何这样的决策,编码器102不做任何分区决策,等。相反,编码器实现由分区和模式决策模块101做出的最终决策,可选地调整由分区和模式决策模块101做出的任何初始模式决策,并且实现这样的分区和模式决策以生成标准顺应比特流113。
[0029] 如图所示,系统100接收待编码的输入视频111,并且系统提供视频压缩以生成比特流113,其中,系统100可以是经由计算机或计算设备等实现的视频编码器。比特流113可以是任何合适的比特流,诸如标准顺应比特流。例如,比特流113可以是H.264/MPEG-4高级视频编码(AVC)标准顺应的、H.265高效视频编码(HEVC)标准顺应的、VP9标准顺应的,等。例如,系统100可以经由任何合适的设备来实现,诸如个人计算机、膝上型计算机、平板电脑、平板手机、智能电话、数码相机、游戏机、可穿戴设备、一体化设备、二合一设备等或诸如移动平台等的平台。例如,如本文所使用的,系统、设备、计算机或计算设备可以包括任何这样的设备或平台。
[0030] 输入视频111可以包括任何合适的分辨率的任何合适的视频帧、视频图像、视频帧序列、一组图像、多组图像、视频数据等。例如,视频可以是视频图形阵列(VGA)、高清(HD)、全高清(例如,1080p)、4K分辨率视频、8K分辨率视频等,并且视频可以包括任何数量的视频帧、视频帧序列、图像、图像组等。为了清楚地呈现,关于图像和块和/或编码单元讨论本文讨论的技术。然而,这样的图像可以被表征为帧、视频帧、帧序列、视频序列等,并且这样的块和/或编码单元可以被表征为编码块、宏块、子单元、子块、区域、子区域等。通常,术语“块”和“编码单元”在本文中可互换使用。例如,彩色视频数据的图像或帧可以包括亮度平面或分量(即,亮度像素值)和相对于亮度平面相同或不同分辨率的两个色度平面或分量(即,色度像素值)。输入视频111可以包括可以被划分为任何大小的块和/或编码单元的图像或帧,其包含与例如像素的M×N块和/或编码单元对应的数据。这样的块和/或编码单元可以包括来自像素数据的一个或多个平面或颜色通道的数据。如本文所使用的,术语“块”可以包括任何合适大小的宏块、编码单元等。可以理解,这些块也可以被划分为用于预测、变换等的子块。
[0031] 图2是根据本公开的至少一些实现方式布置的用于提供视频编码的另一示例性系统200的示意图。如图2所示,系统200包括系统100的组件,其中添加比特深度限制器/颜色采样器减少模块201。例如,比特深度限制器/颜色采样器减少模块201可以接收输入视频111并且执行比特深度限制和颜色样本减少之一或两者,比特深度限制用于降低输入视频
111的比特深度(即,通过保持最高有效比特并丢弃最低有效比特),并且颜色样本减少用于减少输入视频111的颜色采样以提供减小的比特深度和/或减色采样视频212,其在所示实施例中被提供为8比特4:2:0视频。例如,分区和模式决策模块101可以对减小的比特深度和/或减色采样视频操作,以用于生成LCU分区和帧内/帧间模式数据112,而编码器102对全比特深度和/或全色采样输入视频操作。在实施例中,输入视频111是10比特4:2:2视频,并且如图所示,减小的比特深度和/或减色采样视频212是8比特4:2:0视频。然而,输入视频
111和减小的比特深度和/或减色采样视频212可以是任何视频数据,其中,输入视频111处于比减小的比特深度和/或减色采样视频212高的比特深度和/或更高的颜色采样。比特深度和/或颜色采样的这种减少可以降低分区和模式决策模块101的计算资源和/或存储器传输要求。
[0032] 例如,可以以至少8比特的比特深度接收输入视频111(即,与给定源像素/样本相关联的亮度和色度值使用每个值至少8比特(例如,每个值10比特)来表示)。相对于8比特数据,每个像素/样本8个以上比特的数据需要更多的存储器传输(用于在存储器和处理器之间移动数据)和更复杂的算术运算。为了减少高比特深度对所需存储器和计算资源的影响,可以通过保持八个最高有效比特将输入视频111转换为8比特数据。例如,对于10比特输入视频数据,丢弃两个最低有效比特。此外,具有更高颜色表示(例如,4:2:2或4:4:4)的输入视频111包括增加的色度信息。然而,处理4:2:0视频数据中的色度信息(其中,色度样本的数量是亮度样本的数量的一半)可以在使用色度信息的视频质量值与其计算和存储器传输成本之间提供平衡。
[0033] 图3示出根据本公开的至少一些实现方式布置的示例性图像组300。如图3所示,图像组300可以包括任何数量的图像301,诸如64个图像(示出0-16)等。此外,可以按时间顺序302提供图像301,使得图像301以时间顺序呈现,而图像301以编码顺序(未示出)编码,使得编码顺序相对于时间顺序302不同。此外,可以在图像层级结构303中提供图像301,使得图像301的基础层(L0)包括图像0、8、16等,图像301的非基础层(L1)包括图像4、12等,图像301的非基础层(L2)包括图像2、6、10、14等,并且图像301的非基础层(L3)包括图像1、3、5、7、9、
11、13、15等。例如,移动通过层级结构,对于帧间模式,L0的图像可以仅参考L0的其他图像,L1的图像可以仅参考L0的图像,L2的图像可以仅参考L0或L1的图像,并且L3的图像可以参考L0-L2中任何一个的图像。例如,如图所示,图像301包括基础层图像和非基础层图像,使得基础层图像是非基础层图像的参考图像,但是非基础层图像不是基础层图像的参考图像。在实施例中,输入视频111包括图像组300,和/或系统100、200实现关于输入视频111的图像组300。虽然关于示例性图像组300示出,但是输入视频111可以具有实现图像组300、其他图像格式组等的任何合适的结构。
[0034] 在实施例中,用于编码视频的预测结构包括诸如图像组300的图像组。例如,在广播和流送实现方式的上下文中,预测结构可以是周期性的并且可以包括周期性图像组(GOP)。在实施例中,GOP包括以图3中描述的结构组织的大约1秒的图像,然后是以I图像开始的另一GOP,依此类推。
[0035] 图4示出根据本公开的至少一些实现方式布置的示例性视频图像401。视频图像401可以包括视频序列或剪辑的任何图像,诸如VGA、HD、全高清、4K、8K等视频图像。例如,视频图像401可以是图像组300的图像301中的任何一个。如图所示,视频图像401可以被分段或分区为一个或多个片段,如关于视频图像401的片段402所示。此外,如关于LCU 403所示,可以将视频图像401分段或分区为一个或多个LCU,LCU又可以被分段为如关于CU 405、406所示的一个或多个编码单元,和/或预测单元(PU)和变换单元(TU)(未显示)。
[0036] 图5是根据本公开的至少一些实现方式布置的用于提供LCU分区和帧内/帧间模式数据112的示例性分区和模式决策模块101的示意图。如图5所示,分区和模式决策模块101可以包括或实现LCU循环521,其包括源样本(SS)运动估计模块501、SS帧内搜索模块502、CU快速循环处理模块503、CU全循环处理模块504、帧间深度决策模块505和跳过-合并决策模块507。如图所示,LCU循环521接收输入视频111或减小的比特深度和/或减色采样视频212,并且LCU循环521生成最终LCU分区和初始模式决策数据518。最终LCU分区和初始模式决策数据518可以是指示或描述LCU分区为CU和LCU的每个CU的编码模式决策的任何合适数据。在实施例中,最终LCU分区和初始模式决策数据518包括将在不经编码器102修改的情况下实现的最终分区数据和可以通过编码器最终LCU分区和模式决策数据518如本文所讨论的那样修改的初始模式决策。在实施例中,虽然在本文中描述为初始模式决策,但是这样的模式决策可以是最终的并且在不经编码器102修改的情况下实现。例如,模式决策可以是初始的或最终的。例如,编码模式决策可以包括帧内模式(即,基于正在实现的标准的可用帧内模式之一)或帧间模式(即,跳过、合并或运动估计、ME)。此外,LCU分区和模式决策数据518可以包括特定模式所需的任何附加数据(例如,帧间模式的运动向量)。例如,在HEVC的上下文中,编码树单元可以是64×64像素,其可以定义LCU。可以对LCU进行分区以经由四叉树分区编码为CU,使得CU可以是32×32、16×16像素或8×8像素。可以通过LCU分区和模式决策数据518来指示这种分区。此外,这种分区用于评估LCU的候选分区(候选CU)。
[0037] 如图所示,SS运动估计模块501接收输入视频111或减小的比特深度和/或减色采样视频212。在下面的讨论中,为了清楚地呈现,输入视频111或减小的比特深度和/或减色采样视频212被表征为输入视频111、212。SS运动估计模块501使用输入视频111、212的一个或多个参考图像对输入视频111、212的当前图像的CU或候选分区执行运动搜索。即,SS运动估计模块501通过搜索匹配CU或输入视频111、212的一个或多个参考图像来对当前图像的CU执行运动搜索,使得参考图像仅包括输入视频111、212的原始像素样本。例如,SS运动估计模块501执行运动搜索,而不使用局部解码循环将像素重构为重构参考图像。例如,SS运动估计模块501通过将候选分区与仅包括来自参考图像输入视频111的原始像素样本的搜索分区进行比较来评估块或CU的候选分区的(不同运动向量、参考图像等)的多个帧间模式。例如,对于特定候选分区,这样的搜索分区是在运动估计期间搜索的那些分区。如图所示,SS运动估计模块501生成与正在评估的当前LCU的特定分区的CU对应的运动估计候选511(即,MV)。例如,对于每个CU,可以提供一个或多个MV。在实施例中,SS运动估计模块501使用非标准顺应插值滤波器来生成子像素MV搜索的插值搜索区域。
[0038] 此外,SS帧内搜索模块502接收输入视频111、212,并且SS帧内搜索模块502使用输入视频111、212的当前图像生成用于输入视频111、212的当前图像的CU的帧内模式。即,SS帧内搜索模块502通过将CU与使用输入视频111、212的当前图像的原始像素样本(基于正被评估的当前帧内模式)生成的帧内预测块进行比较,对当前图像的CU或候选分区执行帧内模式评估。例如,SS帧内搜索模块502执行帧内模式评估,而不使用局部解码循环将像素重构为(例如,先前编码的CU的)重构像素样本。如图所示,SS帧内搜索模块502生成与正在评估的当前LCU的特定分区的CU对应的帧内候选512(即,所选帧内模式)。例如,对于每个CU,可以提供一个或多个帧内候选。在实施例中,如本文所讨论的,提供来自运动估计候选511和帧内候选512的最佳分区决策和对应的最佳帧内和/或帧间候选(例如,具有最低失真或最低速率失真代价等),以供编码器102使用。例如,可以跳过后续处理。速率失真代价可以包括任何合适的速率失真代价,诸如失真和拉格朗日乘数与速率的乘积之和。例如,失真可以是平方误差失真、HVS加权平方误差失真等的度量。
[0039] CU快速循环处理模块503接收运动估计候选511、帧内候选512和相邻数据516,并且如图所示,生成MV合并候选、生成高级运动向量预测(AMVP)候选并且做出CU模式决策。相邻数据516包括用于正被评估的当前CU的空间相邻CU的任何合适数据,诸如空间相邻CU的帧内和/或帧间模式。CU快速循环处理模块503使用任何合适的技术来生成MV合并候选。例如,合并模式可以使用来自当前CU的空间相邻CU的MV来提供运动推断候选。例如,可以提供(例如,继承)来自空间相邻CU的一个或多个MV作为当前CU的MV候选。此外,CU快速循环处理模块503使用任何合适的技术来生成AMVP候选。在实施例中,CU快速循环处理模块503可以使用来自参考图像的数据和来自相邻CU的数据来生成AMVP候选MV。此外,在生成MV合并和/或AMVP候选时,可以使用非标准顺应技术。仅使用源样本生成MV合并和AMVP候选的预测。
[0040] 如图所示,CU快速循环处理模块503基于运动估计候选511、帧内候选512、MV合并候选和AMVP候选,针对当前分区的每个CU做出编码模式决策。可以使用任何合适的技术来做出编码模式决策。在实施例中,失真测量值和加权速率估计值之和用于评估CU的帧内和帧间模式。例如,可以确定当前CU与(使用对应模式生成的)预测CU之间的失真,并且将其与估计的编码速率组合来确定最佳候选。如图所示,可以生成ME、帧内和合并/AMVP候选的子集513作为所有可用候选的子集。
[0041] ME、帧内和合并/AMVP候选的子集513被提供给CU全循环处理模块504。如图所示,CU全循环处理模块504针对ME、帧内和合并/AMVP候选的子集513的每个编码模式的残差块(即,残差是CU与使用当前模式生成的预测CU之间的差)执行正向变换、正向量化、逆量化和逆变换以形成重构残差。然后,CU全循环处理模块504生成CU的重构(即,通过将重构残差与预测CU相加)并且测量ME、帧内和合并/AMVP候选的子集513的每个模式的失真。选择具有最佳速率失真的模式作为CU模式514。
[0042] CU模式514被提供给帧间深度决策模块505,其可以评估当前LCU的可用分区以生成LCU分区数据515。如图所示,LCU分区数据515被提供给跳过-合并决策模块507,其针对具有与合并MV对应的编码模式的任何CU来确定CU是跳过CU还是合并CU。例如,对于合并CU,从空间相邻CU继承MV,并且针对该CU发送残差。对于跳过CU,从空间相邻CU继承MV(如在合并模式中),但是不针对该CU发送残差。
[0043] 如图所示,在这样的合并-跳过决策之后,LCU循环521提供最终LCU分区和初始模式决策数据518,如所讨论的,其指示或描述将LCU分区为CU以及每个CU的编码模式决策(以及该模式决策所需的任何信息)。
[0044] 图6是根据本公开的至少一些实现方式布置的用于生成比特流113的示例性编码器102的示意图。如图6所示,编码器102可以包括或实现LCU循环621(例如,一次编码的LCU循环),其包括CU循环处理模块601和熵编码模块602。另外,如图所示,编码器102可以包括分组化模块603。如图所示,LCU循环621接收输入视频111以及最终LCU分区和初始模式决策数据518,并且LCU循环621生成量化的变换系数、控制数据和参数613,其可以由熵编码模块602进行熵编码并且由分组化模块603分组以生成比特流113。
[0045] 例如,CU循环处理模块601接收输入视频111以及最终LCU分区和初始模式决策数据518。如图所示,基于最终LCU分区和初始模式决策数据518,CU循环处理模块601生成帧内CU的帧内参考像素样本(根据需要)。例如,可以使用相邻重构像素样本(经由局部解码循环生成)来生成帧内参考像素样本。如图所示,对于每个CU,CU循环处理模块601根据需要使用邻居数据611(例如,来自当前CU的相邻CU的数据)生成预测CU。例如,可以通过从一个或多个重构参考图像获取由一个或多个MV指示的CU的先前重构像素样本来针对帧间模式生成预测CU,并且如果需要,通过组合所获取的重构像素样本来生成预测CU。对于帧内模式,可以基于当前CU的帧内模式,使用来自CU的图像的相邻重构像素样本来生成预测CU。如图所示,针对当前CU生成残差。例如,可以通过对当前CU和预测CU进行取差来生成残差。
[0046] 然后对残差进行正向变换和正向量化以生成量化的变换系数,其包括在量化的变换系数、控制数据和参数613中。此外,在局部解码循环中,例如,变换系数被逆量化和逆变换,以针对当前CU生成重构残差。如图所示,CU循环处理模块601通过例如将重构残差与预测CU相加(如上所述)来执行针对当前CU的重构,以生成重构CU。重构CU可以与其他CU组合以使用诸如样本自适应偏移(SAO)滤波的附加技术来重构当前图像或其部分,其可以包括生成SAO参数(其包括在量化的变换系数、控制数据和参数613中)并且在重构CU和/或去块循环滤波(DLF)上实现SAO滤波器,其可以包括生成DLF参数(其包括在量化的变换系数、控制数据和参数613中)并且在重构CU上实现DLF滤波器。例如,可以将这种重构CU提供为参考图像(例如,存储在重构图像缓冲器中)。这样的参考图像或其部分被提供为重构样本612,其如上所述用于生成预测CU(在帧间和帧内模式中)。
[0047] 如图所示,量化的变换系数、控制数据和参数613(其包括残差编码单元的变换系数、诸如最终LCU分区和模式决策数据(即,来自最终LCU分区和初始模式决策数据518)的控制数据以及诸如SAO/DLF滤波器参数的参数)可以被熵编码和分组以形成比特流113。比特流113可以是任何合适的比特流,诸如标准顺应比特流。例如,比特流113可以是H.264/MPEG-4高级视频编码(AVC)标准顺应的、H.265高效视频编码(HEVC)标准顺应的、VP9标准顺应的,等。
[0048] 如所讨论的,分区和模式决策模块101使用原始像素样本针对输入视频111的LCU生成分区和模式决策数据,并且编码器102在输入视频111上实现分区和模式决策数据(包括使用局部解码循环)以生成比特流113。仅使用原始像素样本来生成分区和模式决策数据可以提供分区和模式决策模块101(其可以实现为诸如专用集成电路的硬件)和编码器102(其可以实现为分离的硬件,诸如分离的专用集成电路)之间的解耦。这种解耦提供诸如硬件解耦、并行化、处理速度等的效率。然而,仅使用原始像素样本来生成分区和模式决策数据可能降低视觉质量。现在讨论转向用于提升解耦系统中的视觉质量的技术。
[0049] 图7是示出根据本公开的至少一些实现方式布置的用于减少闪烁伪影的示例性过程700的流程图。如图7所示,过程700可以包括一个或多个操作701-706。过程700可以由系统(例如,如本文所讨论的系统100)执行,以减少视频编码中的闪烁伪影。在实施例中,过程700由分区和模式决策模块101的CU快速循环处理模块503和CU全循环处理模块504实现。
[0050] 例如,在有噪的平坦区域中的闪烁可能出现在空间上平坦且有噪的区域中。这样的区域的示例包括图像中非常有噪的天空区域(sky area)。由于编码模式(例如,帧内、帧间)在空间(即,区域包含帧内和帧间编码块的混合)和时间(编码模式随时间变化)上非均匀分布,闪烁出现在这样的区域中。例如,闪烁的出现可能是由于在帧内模式和帧间模式之间从一帧切换到下一帧。使用帧内模式编码的块可以是平滑的并且不包含很多噪声,而使用帧间模式编码的块可能由于更好的噪声再现而更清晰。相邻块之间的编码模式的改变可能导致锐度出现不连续并因此导致图像中的闪烁。过程700可以解决这种闪烁伪影。
[0051] 处理开始于操作701,其中选择区域以进行评估。该区域可以是输入图像的任何合适区域,诸如图像的整体、图像的片段、图像的象限、图像的预定义网格部分或图像的LCU。处理在操作702处继续,其中可以通过执行平坦和有噪区域检测来确定所选区域是否是平坦且有噪的区域。平坦和有噪区域检测可以使用任何合适的技术来执行,诸如关于图8所讨论的那些技术。
[0052] 图8是根据本公开的至少一些实现方式布置的示例性平坦和有噪区域检测器800的示意图。如图8所示,平坦和有噪区域检测器800可以包括去噪器801、取差器802、平坦度检查模块803和噪声检查模块804。如图所示,去噪器801接收输入区域811和去噪输入区域811,使用任何合适的技术(诸如滤波技术)来产生去噪区域812。去噪区域812被提供给平坦度检查模块803,其使用任何合适的技术检查去噪区域812的平坦度。在实施例中,平坦度检查模块803确定去噪区域812的变化(variance)并将变化与预定阈值进行比较。如果变化不超过阈值,则提供平坦度指示符813,指示去噪区域812是平坦的。此外,输入区域811和去噪区域812被提供给取差器802,其可以使用任何合适的技术来对输入区域811和去噪区域812进行取差以产生差值814。如图所示,差值814被提供给噪声检查模块804,其使用任何合适的技术检查差值814,以确定输入区域811是否是有噪区域。在实施例中,噪声检查模块804确定差值814的方差(variance)并将该方差与预定阈值进行比较。如果方差满足或超过阈值,则提供噪声指示符815,指示输入区域811是有噪声的。如果平坦度指示符813和噪声指示符815都被确认用于输入区域811,则输入区域811被确定为平坦且有噪的区域。
[0053] 再次参考图7,处理在操作703处继续,其中,对区域执行边缘检测以确定区域或块内是否存在任何边缘。可以使用任何合适的技术来执行边缘检测。处理在操作704处继续,其中评估区域的变化随时间的变化。例如,对于当前图像,确定区域的变化。此外,选择关于当前图像的多个图像。这样的图像可以在时间上与当前图像相邻(之前或之后或两者)或在编码顺序上相邻。对于这种图像的并置区域,还确定每个这种区域的变化。确定多个变化(即,包括当前图像的区域的变化和多个图像的并置区域的变化)的方差。然后将变化的方差与阈值进行比较。如果方差不超过阈值,则认为该区域随时间是均匀的。如果变化的方差超过阈值,则从关于下面的操作705讨论的处理中丢弃该区域。
[0054] 处理在操作705处继续,其中,在对于在平坦且有噪(如在操作702处检测到的)、包括一个或多个边缘(如在操作703处检测到的)并且随时间变化是均匀的(如通过多个图像上的空间变化的方差小于阈值(如在操作704中检测到的)所指示的)的区域内的编码单元的编码模式决策期间,可以对编码单元的帧间编码模式(与帧内编码模式相反)应用偏置(bias)。例如,如果该区域不是平坦且有噪的,没有检测到边缘,或者该区域随时间不均匀,则不对该区域内的编码单元应用偏置。可以使用任何合适的技术来应用偏置。在实施例中,将预定加权因子与帧内模式的代价相加或者乘以这样的代价,而不应用于帧间模式的代价。在实施例中,附加地或替代地,可以从帧间模式的代价中减去预定的附加项,或者可以将帧间模式的代价除以因子。例如,帧间和帧内模式代价可以是速率失真代价。处理在操作706处继续,其中,针对平坦且有噪的区域内的编码单元选择编码模式。例如,可以使用任何合适的技术来选择编码模式,同时应用关于操作703讨论的偏置。例如,可以使用速率失真优化技术来选择编码模式,同时对帧间模式的使用应用偏置。这种帧间模式可以包括任何帧间模式,诸如帧间、合并或AMVP模式。
[0055] 如关于过程700所讨论的,可以针对输入图像的区域执行平坦区域检测和有噪区域检测,以确定该区域是否是平坦且有噪的区域,并且针对该区域的块生成编码模式决策可以包括:响应于该区域是平坦且有噪的区域,将偏置应用于帧内模式结果和帧间模式结果之一或两者,以有利于为对块进行编码选择帧间模式结果。
[0056] 对于输入图像的任何数量的区域,过程700或其部分可以串行或并行地重复任意次数。
[0057] 图9是示出根据本公开的至少一些实现方式布置的用于减少线状伪影的示例性过程900的流程图。如图9所示,过程900可以包括一个或多个操作901-904。过程900可以由系统(例如,如本文所讨论的系统100)执行,以减少视频编码中的线状伪影。在实施例中,过程900由编码器102的CU循环处理模块601实现。对于输入图像的任何数量的帧内编码块或编码单元,过程900或其部分可以串行或并行地重复任意次数。
[0058] 例如,线状伪影可以表现为帧内编码块中的短线段,诸如在边缘旁边的平坦区域中。这种线状伪影可能是由于在一次编码中的帧内预测中使用的参考样本中的误差,使得来自重构参考图像的参考样本可能包含由于量化引起的误差。可以通过例如像素复制将像素误差放大到一些帧内编码模式(例如,竖直或水平模式)中的线性误差。
[0059] 处理开始于操作901,其中,诸如Hadamard变换的变换被应用于与使用由分区和模式决策模块101选择的帧内模式编码的帧内编码块对应的残差。例如,在由编码器102实现的一次编码期间,Hadamard变换或其他合适的变换被应用于基于实现由分区和模式决策模块101选择的帧内编码模式(例如,仅使用原始像素样本选择的帧内编码模式)而生成的残差。处理在操作902处继续,其中,将变换应用于与使用除由分区和模式决策模块101所选择的之外的一个或多个帧内模式编码的帧内编码块对应的残差。其他帧内模式可以是任何合适的模式,诸如DC模式、平面模式等。
[0060] 处理在操作903处继续,其中,针对在操作901、902处生成的每个变换残差块确定高频能量。可以使用任何合适的技术来确定高频能量。例如,高频能量可以被确定为变换残差块(例如,不在变换残差块的左上象限中的残差、变换残差块的右下象限中的残差等)的高频分量的度量(例如,平均值、加权平均值等)。例如,在操作901、902处执行的变换生成变换残差系数(例如,具有与残差块相同大小的变换残差系数的块)。然后生成高频系数能量值作为变换残差系数的高频特征。高频系数能量值可以是任何合适的值,诸如与高能量分量对应的系数的平均值、这些系数的中值等。如所讨论的,选择为高频系数能量值的系数可以是任何这样的系数,其不包括变换残差系数的DC系数(例如,变换残差系数块的左上值)。在实施例中,使用变换残差系数块的右下角中的系数。例如,对于16×16变换残差系数块,可以使用右下4×4变换残差系数,使得那些变换残差系数对应于最高频分量。在实施例中,除了DC系数(例如,其对应于最低频率分量)之外(except),使用变换残差系数块的所有变换残差系数。在实施例中,确定高频系数能量值包括:对除变换残差系数的DC变换系数之外的多个变换残差系数(来自块)求平均值。
[0061] 处理在操作904处继续,其中,与在操作903处确定的那些的最低高频能量对应的帧内模式可以用于对块进行编码。在实施例中,在执行操作902之前,可以将在操作901处生成的变换残差块的高频能量与阈值进行比较,并且如果高频能量超过阈值,则处理可以仅在操作902处进行。否则,由分区和模式决定模块101选择的帧内模式用于对块进行编码。
[0062] 如关于过程900所讨论的,可以在视频编码器处将变换应用于与单个块(individual block)和使用由分区和模式决策模块101选择的帧内模式生成的预测块对应的残差块(例如,残差块是单个块和预测块的差值),以生成对应的变换残差。例如,变换可以是Hadamard变换,并且帧内模式可以是帧内水平或帧内竖直。此外,可以将变换应用于与单个块和使用其他帧内模式生成的预测块对应的其他残差块,以生成附加的变换残差。可以针对每个变换残差确定高频能量值。响应于其他变换残差之一具有比使用由分区和模式决策模块101选择的帧内模式的变换残差的能量值低的高频能量值,由分区和模式决策模块101选择的帧内模式被丢弃并且最低高频能量值帧内模式用于编码单个块。
[0063] 图10是示出根据本公开的至少一些实现方式布置的用于视频编码的示例性过程1000的流程图。如图10所示,过程1000可以包括一个或多个操作1001-1005。过程1000可以形成视频编码过程的至少一部分。作为非限制性示例,过程1000可以形成由如本文所讨论的任何设备或系统(例如,系统100)执行的视频编码过程的至少一部分。此外,本文将参考图11的系统1100来描述过程1000。
[0064] 图11是根据本公开的至少一些实现方式布置的用于视频编码的示例性系统1100的示意图。如图11所示,系统1100可以包括中央处理器1101、视频预处理器1102、视频处理器1103和存储器1104。还如图所示,视频预处理器1102可以包括或实现分区和模式决策模块101,并且视频预处理器1102可以包括或实现编码器102。在系统1100的示例中,存储器1104可以存储视频数据或相关内容,例如输入视频数据、图像数据、分区数据、模式数据和/或本文讨论的任何其他数据。
[0065] 如图所示,在一些实施例中,分区和模式决策模块101经由视频预处理器1102来实现。在其他实施例中,分区和模式决策模块101或其部分经由中央处理器1101或另一处理单元(例如,图像处理器、图形处理器等)来实现。同样如图所示,在一些实施例中,编码器102经由视频处理器1103来实现。在其他实施例中,编码器102或其部分经由中央处理器1101或另一处理单元(例如,图像处理器、图形处理器等)来实现。
[0066] 视频预处理器1102可以包括可以提供如本文所讨论的操作的任何数量和类型的视频、图像或图形处理单元。这些操作可以经由软件或硬件或其组合来实现。例如,视频预处理器1102可以包括专用于操纵从存储器1104获得的图像、图像数据等的电路。类似地,视频处理器1103可以包括可以提供如本文所讨论的操作的任何数量和类型的图形或图像处理单元。这些操作可以经由软件或硬件或其组合来实现。例如,视频处理器1103可以包括专用于操纵从存储器1104获得的图像、图像数据等的电路。中央处理器1101可以包括任何数量和类型的处理单元或模块,其可以为系统1100提供控制和其他高级功能和/或提供本文讨论的任何操作。存储器1104可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性示例中,存储器1104可以由高速缓冲存储器实现。
[0067] 在实施例中,分区和模式决策模块101以及编码器102中的一个或多个或部分经由执行单元(EU)来实现。EU可以包括例如可编程逻辑或电路(例如,逻辑核),其可以提供多种可编程逻辑功能。在实施例中,分区和模式决策模块101以及编码器102中的一个或多个或部分经由诸如固定功能电路等的专用硬件来实现。固定功能电路可以包括专用逻辑或电路,并且可以提供一组固定功能进入点,其可以映射到专用逻辑以用于固定目的或功能。在实施例中,分区和模式决策模块101经由现场可编程网格阵列(FPGA)来实现。
[0068] 回到图10的讨论,过程1000可以开始于操作1001,其中,接收输入视频以进行编码,其中,输入视频包括多个图像。可以使用任何合适的技术来接收输入视频,并且输入视频可以是任何合适格式的视频数据。在实施例中,过程1000还包括:减小输入视频的比特深度和色度子采样之一以生成第二输入视频,其中,在操作1002处生成的编码模式决策是使用较低比特深度或色度子采样视频做出的,并且关于操作1004讨论的取差使用更高的比特深度或色度子采样视频。
[0069] 处理在操作1002处继续,其中,通过使用多个图像中的第二图像评估用于单个块的候选分区的多个帧内模式并且评估用于单个块的候选分区的多个帧间模式,针对多个图像中的第一图像的单个块生成最终分区决策。在实施例中,评估用于单个块的候选分区的多个帧内模式包括:将候选分区与仅使用来自第一图像的原始像素样本生成的帧内预测分区进行比较,并且评估用于候选分区的多个帧间模式包括:比较候选分区与仅包括来自多个图像中的第二图像的原始像素样本的多个搜索分区。在实施例中,比较候选分区与仅使用来自第一图像的原始像素样本生成的帧内预测分区包括:根据针对第一候选分区评估的当前帧内模式来仅使用原始像素样本生成第一帧内预测分区,并且对第一候选分区和第一帧内预测分区进行取差。
[0070] 在实施例中,生成最终分区决策还包括:基于对多个帧内模式和多个帧间模式的评估,生成与最终分区决策对应的单个块的分区的初始编码模式决策。
[0071] 在实施例中,单个块是第一图像的区域的一部分,并且处理1000还包括:对该区域执行平坦区域检测和有噪区域检测,对该区域执行边缘检测以确定该区域是否包括检测到的边缘,并且评估区域在包括第一图像在内的多个图像上的变化的时间方差(temporal variance)以确定该区域是否具有低变化方差,并且针对单个块生成初始编码模式决策包括:响应于该区域是平坦且有噪的区域、该区域包括边缘并且该区域具有低变化时间方差而对帧内模式结果和帧间模式结果之一或两者应用偏置,以有利于为单个块的一个或多个分区选择帧间模式结果。例如,执行平坦区域检测可以包括:对区域进行去噪并且确定去噪区域的变化小于第一阈值,并且执行有噪区域检测包括:对区域和去噪区域进行取差并且确定差值区域的方差大于第二阈值,并且评估区域在多个图像上的变化的时间方差可以包括:确定每个并置区域在多个图像上相对于该区域的变化、确定变化的方差以及确定变化的方差小于第三阈值。帧内和帧间模式结果可以包括任何合适的结果或代价,诸如速率失真代价等。可以使用任何合适的技术来应用偏置,诸如将第一因子与帧内模式结果相加或者将第二因子与帧内模式结果相乘。
[0072] 在实施例中,单个块的第一分区的第一初始编码模式决策是多个帧内模式中的第一帧内模式,并且过程1000还包括:在视频编码器处,将变换应用于与第一分区和第一帧内模式对应的第一残差分区以生成第一变换残差;在视频编码器处,将变换应用于与第一分区和第二帧内模式对应的第二残差分区以生成第二变换残差;确定第一变换残差的第一高频能量值和第二变换残差的第二高频能量值,响应于第二高频值小于第一高频值而丢弃第一帧内模式;以及在视频编码器处,使用第二帧内模式对第一分区进行编码。应用于第一和第二残差分区的变换可以是任何合适的变换,诸如Hadamard变换。在实施例中,确定第一高频系数能量值包括对除第一变换残差系数的DC变换系数之外的多个第一变换残差系数求平均值。
[0073] 处理在操作1003处继续,其中,在操作1002处生成的最终分区决策被提供给视频编码器。在一些实施例中,还可以向编码器提供初始编码模式决策。视频编码器可以是任何合适的视频编码器。在实施例中,视频编码器是标准顺应视频编码器。
[0074] 处理在操作1004处继续,其中,在视频编码器处,将单个块与基于最终分区决策而生成的重构块取差,以生成与单个块对应的残差块。例如,基于最终分区决策应用标准顺应局部解码循环以生成重构块。用于生成重构块的编码模式可以是用于单个块的分区的初始编码模式决策,或者初始编码模式决策可以由编码器修改,如本文所讨论的。
[0075] 处理在操作1005处继续,其中,残差块的变换系数被编码为输出比特流。可以使用任何合适的技术对变换系数进行编码,以生成任何合适的输出比特流。在实施例中,输出比特流是标准(例如,AVC、HEVC、VP9等)顺应比特流。在实施例中,通过对残差块执行正向变换和正向量化来生成变换系数。
[0076] 对于任何数量的输入视频序列、图像、编码单元、块等,过程1000可以串行或并行地重复任意次。如所讨论的,过程1000可以提供仅使用原始像素样本或值生成编码模式决策的视频编码,其中,编码模式决策由诸如标准顺应编码器的编码器来实现。
[0077] 本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任何组合来实现。例如,可以至少部分地通过诸如可以存在于计算系统中(诸如智能电话)的计算片上系统(SoC)的硬件来提供本文讨论的系统或设备的各种组件。本领域技术人员可以认识到,本文描述的系统可以包括未在对应附图中描绘的附加组件。例如,本文讨论的系统可以包括附加组件,诸如比特流复用器或解复用器模块等,为了清楚起见而未对其进行描述。
[0078] 虽然本文讨论的示例性过程的实现方式可以包括以所示顺序示出的所有操作的进行,但是本公开不限于此方面,并且在各种示例中,本文中的示例性过程的实现方式可以仅包括所示操作的子集、以不同于所示的顺序执行的操作或附加操作。
[0079] 另外,可以响应于由一个或多个计算机程序产品提供的指令来进行本文讨论的任何一个或多个操作。这样的程序产品可以包括提供指令的信号承载介质,该指令在由例如处理器执行时可以提供本文描述的功能。计算机程序产品可以以一种或多种机器可读介质的任何形式提供。因此,例如,响应于通过一个或多个机器可读介质传送到处理器的程序代码和/或指令或指令集,包括一个或多个图形处理单元或处理器核的处理器可以进行本文的示例性过程的一个或多个块。通常,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,该软件可以使本文描述的任何设备和/或系统至少实现本文所讨论的操作的部分或本文讨论的设备、系统或任何模块或组件的任何部分。
[0080] 如本文描述的任何实现方式中所使用的,术语“模块”是指配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可以体现为软件分组、代码和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”可以单独地或以任何组合包括例如硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地体现为形成较大系统的一部分的电路,例如,集成电路(IC)、片上系统(SoC)等。
[0081] 图12是根据本公开的至少一些实现方式布置的示例性系统1200的示意图。在各种实现方式中,系统1200可以是移动系统,但是系统1200不限于此。例如,系统1200可以并入个人计算机(PC)、膝上型计算机、超便携式计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能平板电脑或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备、相机(例如,傻瓜相机、超变焦相机、数码单反(DSLR)相机)等。
[0082] 在各种实现方式中,系统1200包括耦合到显示器1220的平台1202。平台1202可以从诸如内容服务设备1230或内容分发设备1240或其他类似内容源的内容设备接收内容。包括一个或多个导航特征的导航控制器1250可以用于与例如平台1202和/或显示器1220交互。下面更详细地描述这些组件中的每一个。
[0083] 在各种实现方式中,平台1202可以包括芯片组1205、处理器1210、存储器1212、天线1213、存储1214、图形子系统1215、应用1216和/或无线电装置1218的任何组合。芯片组1205可以提供处理器1210、存储器1212、存储1214、图形子系统1215、应用1216和/或无线电装置1218之间的相互通信。例如,芯片组1205可以包括能够提供与存储1214相互通信的存储适配器(未示出)。
[0084] 处理器1210可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集顺应处理器、多核或任何其他微处理器或中央处理单元(CPU)。在各种实现方式中,处理器1210可以是双核处理器、双核移动处理器等。
[0085] 存储器1212可以实现为易失性存储装置,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
[0086] 存储1214可以实现为非易失性存储装置,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附连存储装置、闪存、备用电池的SDRAM(同步DRAM)和/或网络可访问存储装置。在各种实现方式中,例如,存储1214可以包括当包括多个硬盘驱动器时增加对有价值数字媒体的存储性能增强保护的技术。
[0087] 图形子系统1215可以执行诸如静止图像或视频的图像处理以供显示。例如,图形子系统1215可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以用于通信耦合图形子系统1215和显示器1220。例如,接口可以是高清晰度多媒体接口、DisplayPort、无线HDMI和/或无线HD顺应技术中的任何一种。图形子系统1215可以集成到处理器1210或芯片组1205中。在一些实现方式中,图形子系统1215可以是通信耦合到芯片组1205的独立设备。
[0088] 本文描述的图形和/或视频处理技术可以在各种硬件架构中实现。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用分立的图形和/或视频处理器。作为又一实现方式,图形和/或视频功能可以由通用处理器提供,包括多核处理器。在进一步的实施例中,功能可以在消费者电子设备中实现。
[0089] 无线电装置1218可以包括能够使用各种合适的无线通信技术发送和接收信号的一个或多个无线电装置。这些技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在通过这些网络进行通信时,无线电装置1218可以根据任何版本的一个或多个适用标准进行操作。
[0090] 在各种实现方式中,显示器1220可以包括任何电视类型的监视器或显示器。显示器1220可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1220可以是数字和/或模拟的。在各种实现方式中,显示器1220可以是全息显示器。而且,显示器1220可以是可以接收视觉投影的透明表面。这样的投影可以传送各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1216的控制下,平台1202可以在显示器1220上显示用户界面1222。
[0091] 在各种实现方式中,内容服务设备1230可以由任何国家、国际和/或独立服务托管,并且因此例如可以经由互联网访问平台1202。内容服务设备1230可以耦合到平台1202和/或显示器1220。平台1202和/或内容服务设备1230可以耦合到网络1260以与网络1260进行媒体信息通信(例如,发送和/或接收)。内容分发设备1240也可以耦合到平台1202和/或显示器1220。
[0092] 在各种实现方式中,内容服务设备1230可以包括有线电视盒、个人计算机、网络、电话、能够分发数字信息和/或内容的互联网设备或装置以及能够经由网络1260或直接在内容提供方和平台1202和/或显示器1220之间进行单向或双向内容通信的任何其他类似设备。应当理解,可以经由网络1260与系统1200中的任何一个组件和内容提供方进行单向和/或双向内容通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
[0093] 内容服务设备1230可以接收诸如有线电视节目的内容,包括媒体信息、数字信息和/或其他内容。内容提供方的示例可以包括任何有线或卫星电视或无线电装置或互联网内容提供方。所提供的示例并不意味着以任何方式限制根据本公开的实现方式。
[0094] 在各种实现方式中,平台1202可以从具有一个或多个导航特征的导航控制器1250接收控制信号。例如,导航特征可以用于与用户界面1222交互。在各种实施例中,导航可以是定点装置,其可以是允许用户将空间(例如,连续和多维)数据输入计算机的计算机硬件组件(具体地,人机接口装置)。诸如图形用户界面(GUI)、电视和监视器的许多系统允许用户使用物理手势来控制和向计算机或电视提供数据。
[0095] 导航特征的移动可以通过显示器上显示的指针、光标、聚焦环或其他视觉指示器的移动在显示器(例如,显示器1220)上复制。例如,在软件应用1216的控制下,位于导航上的导航特征可以被映射到例如在用户界面1222上显示的虚拟导航特征。在各种实施例中,可以不是单独的组件,而是可以集成到平台1202和/或显示器1220中。然而,本公开不限于本文示出或描述的元件或背景。
[0096] 在各种实现方式中,例如,当启用时,驱动器(未示出)可以包括使得用户能够在初始启动之后通过触摸按钮立即打开和关闭类似电视的平台1202的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台1202将内容流送到媒体适配器或其他内容服务设备1230或内容分发设备1240。另外,例如,芯片组1205可以包括硬件和/或软件,用于支持5.1环绕声音频和/或高清7.1环绕声音频。驱动器可以包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可以包括外围组件互连(PCI)Express图形卡。
[0097] 在各种实现方式中,可以集成系统1200中示出的任何一个或多个组件。例如,可以集成平台1202和内容服务设备1230,或者可以集成平台1202和内容分发设备1240,或者例如,可以集成平台1202、内容服务设备1230和内容分发设备1240。在各种实施例中,平台1202和显示器1220可以是集成单元。例如,可以集成显示器1220和内容服务设备1230,或者可以集成显示器1220和内容分发设备1240。这些实施例不意味着限制本公开。
[0098] 在各种实施例中,系统1200可以实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统1200可以包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等。无线共享介质的示例可以包括无线频谱的部分,诸如RF频谱等。当实现为有线系统时,系统1200可以包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、用于将I/O适配器与对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括引线、电缆金属线、印刷电路板(PCB)、背板、交换光线、半导体材料、双绞线、同轴电缆、光纤等。
[0099] 平台1202可以建立一个或多个逻辑或物理信道以进行信息通信。该信息可以包括媒体信息和控制信息。媒体信息可以指代表示针对用户的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流式视频、电子邮件(“邮件”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指代表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息,或指示节点来以预定方式处理媒体信息。然而,实施例不限于图12中示出或描述的元件或背景。
[0100] 如上所述,系统1200可以体现为不同的物理样式或形状因子。图13示出根据本公开的至少一些实现方式布置的示例性小形状因子设备1300。在一些示例中,系统1200可以经由设备1300来实现。在其他示例中,系统100或其部分可以经由设备1300来实现。在各种实施例中,例如,设备1000可以被实现为移动计算设备,其具有无线功能。例如,移动计算设备可以指代具有处理系统和移动电源或电源(诸如一个或多个电池)的任何设备。
[0101] 移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超便携式计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板电脑或智能移动电视)、移动互联网设备(MID)、消息设备、数据通信设备、相机等。
[0102] 移动计算设备的示例还可以包括被布置为由人佩戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、服装计算机和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以通过示例的方式利用实现为智能电话的移动计算设备来描述一些实施例,但是可以理解,其他实施例也可以使用其他无线移动计算设备来实现。实施例在这方面不受限制。
[0103] 如图13所示,设备1300可以包括具有前部1301和后部1302的壳体。设备1300包括显示器1304、输入/输出(I/O)装置1306和集成天线1308。设备1300还可以包括导航特征1312。I/O装置1306可以包括用于将信息输入移动计算设备的任何合适的I/O装置。I/O装置
1306的示例可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别装置和软件等。信息也可以通过麦克风(未示出)输入设备1300,或者可以由语音识别装置进行数字化。如图所示,设备1300可以包括相机1305(例如,包括镜头、光圈和成像传感器)以及集成到设备1300的后部1302(或其他地方)的闪光灯1310。在其他示例中,相机1305和闪光灯1310可以集成到设备1300的前部1301中,或者可以设置前置和后置相机。
相机1305和闪光灯1310可以是相机模块的组件,以发起处理为流式视频的图像数据,该图像数据被输出到显示器1304和/或例如经由天线1308从设备1300远程传送。
[0104] 可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、进程、软件界面、应用程序界面(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件要素和/或软件要素实施实施例可以根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
[0105] 至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实现,该机器可读介质表示处理器内的各种逻辑,指令在由机器读取时使机器制造逻辑以实现本文描述的技术。被称为“IP核”的这种表示可以被存储在有形的机器可读介质上并且被提供给各种客户或制造工厂以加载到实际制造逻辑或处理器的制造机器中。
[0106] 虽然已经参考各种实现方式描述了本文阐述的某些特征,但是该描述并不旨在以限制意义来解释。因此,对于本公开所属领域的技术人员而言显而易见的本文描述的实现方式的各种修改以及其他实现方式被认为落入本公开的精神和范围内。
[0107] 以下实施例属于进一步的实施例。
[0108] 在一个或多个第一实施例中,一种用于视频编码的计算机实现的方法包括:接收待编码的输入视频,该输入视频包括多个图像;通过将多个图像中的第一图像的单个块的候选分区与仅使用来自第一图像的原始像素样本生成的帧内预测分区进行比较,评估用于单个块的候选分区的多个帧内模式,并且通过将候选分区与仅包括来自多个图像中的第二图像的原始像素样本的多个搜索分区进行比较,评估用于候选分区的多个帧间模式,从而生成单个块的最终分区决策;向视频编码器提供最终分区决策;在视频编码器处,对单个块与使用最终分区决策生成的重构块进行取差来生成与单个块对应的残差块;以及在视频编码器处,至少将残差块的变换系数编码为输出比特流。
[0109] 在一个或多个第二实施例中,对于第一实施例中的任何一个,单个块是第一图像的区域的一部分,并且该方法还包括:对该区域执行平坦区域检测和有噪区域检测以确定该区域是否是平坦且有噪的区域;执行边缘检测以确定该区域是否包括检测到的边缘;并且评估该区域在包括第一图像在内的多个图像上的变化的时间方差以确定该区域是否具有低变化时间方差,其中评估帧内模式和帧间模式包括响应于该区域是平坦且有噪的区域、该区域包括边缘并且该区域具有低变化时间方差而对帧内模式结果和帧间模式结果之一或两者应用偏置,以有利于为单个块的一个或多个分区选择帧间模式结果。
[0110] 在一个或多个第三实施例中,对于第一和第二实施例中的任何一个,应用偏置包括:将第一因子与帧内模式结果或帧间模式结果相加以及将第二因子与帧内模式结果或帧间模式结果相乘中的一个。
[0111] 在一个或多个第四实施例中,对于第一至第三实施例中的任何一个,帧内和帧间模式结果包括速率失真代价。
[0112] 在一个或多个第五实施例中,对于第一至第四实施例中的任何一个,执行平坦区域检测包括:对区域进行去噪并将去噪区域的变化与第一阈值进行比较,并且执行有噪区域检测包括:对区域和去噪区域进行取差并将差值区域的方差与第二阈值进行比较。
[0113] 在一个或多个第六实施例中,对于第一至第五实施例中的任何一个,生成最终分区决策还包括:基于对多个帧内模式和多个帧间模式的评估,生成与最终分区决策对应的用于单个块的分区的初始编码模式决策。
[0114] 在一个或多个第七实施例中,对于第一至第六实施例中的任何一个,单个块的第一分区的第一初始编码模式决策包括多个帧内模式中的第一帧内模式,并且该方法还包括:在视频编码器处,将变换应用于与第一分区和第一帧内模式对应的第一残差分区以生成第一变换残差系数;在视频编码器处,将变换应用于与第一分区和第二帧内模式对应的第二残差分区以生成第二变换残差系数;确定第一变换残差系数的第一高频系数能量值和第二变换残差系数的第二高频系数能量值;响应于第二高频值小于第一高频值而丢弃第一帧内模式;以及在视频编码器处,使用第二帧内模式对第一分区进行编码。
[0115] 在一个或多个第八实施例中,对于第一至第七实施例中的任何一个,确定第一高频系数能量值包括:对除第一变换残差系数的DC变换系数之外的多个第一变换残差系数求平均值。
[0116] 在一个或多个第九实施例中,对于第一至第八实施例中的任何一个,由视频编码器使用最终分区决策和初始编码模式决策来生成重构块。
[0117] 在一个或多个第十实施例中,对于第一至第九实施例中的任何一个,比较候选分区与仅使用来自第一图像的原始像素样本生成的帧内预测分区包括:根据针对第一候选分区评估的当前帧内模式来仅使用原始像素样本生成第一帧内预测分区,并且对第一候选分区和第一帧内预测分区进行取差。
[0118] 在一个或多个第十一实施例中,一种用于视频编码的系统包括:存储器,用于存储待编码的输入视频,该输入视频包括多个图像;一个或多个第一处理器;和第二处理器,耦合到一个或多个第一处理器并且实现视频编码器,该一个或多个第一处理器用于:基于对用于多个图像中的第一图像的单个块的候选分区的多个帧内模式的评估以及使用多个图像中的第二图像对用于候选分区的多个帧间模式的评估来生成单个块的最终分区决策,其中,该一个或多个第一处理器使用候选分区与仅使用来自第一图像的原始像素样本生成的帧内预测分区的比较来评估多个帧内模式,并且该一个或多个第一处理器使用候选分区与仅包括来自多个图像的第二图像的原始像素样本的多个搜索分区的比较来评估多个帧间模式;并且向第二处理器提供最终分区决策,该第二处理器用于:在视频编码器处对单个块与使用最终划分决策生成的重构块进行取差来生成与单个块对应的残差块;并且在视频编码器处,至少将残差块的变换系数编码为输出比特流。
[0119] 在一个或多个第十二实施例中,对于第十一实施例中的任何一个,单个块是第一图像的区域的一部分,并且该一个或多个第一处理器还用于:对该区域执行平坦区域检测和有噪区域检测以确定该区域是否是平坦且有噪的区域;执行边缘检测以确定该区域是否包括检测到的边缘;并且评估该区域在包括第一图像在内的多个图像上的变化的时间方差以确定该区域是否具有低变化时间方差,其中该一个或多个第一处理器生成单个块的初始编码模式决策包括:该一个或多个第一处理器响应于该区域是平坦且有噪的区域、该区域包括边缘并且该区域具有低变化时间方差而对帧内模式结果和帧间模式结果之一或两者应用偏置,以有利于为单个块的一个或多个分区选择帧间模式结果。
[0120] 在一个或多个第十三实施例中,对于第十一和第十二实施例中的任何一个,该一个或多个第一处理器应用偏置包括:该一个或多个第一处理器将第一因子与帧内模式结果或帧间模式结果相加或者将第二因子与帧内模式结果或帧间模式结果相乘。
[0121] 在一个或多个第十四实施例中,对于第十一至第十三实施例中的任何一个,帧内和帧间模式结果包括速率失真代价。
[0122] 在一个或多个第十五实施例中,对于第十一至第十四实施例中的任何一个,该一个或多个第一处理器执行平坦区域检测包括:该一个或多个第一处理器对区域进行去噪并将去噪区域的变化与第一阈值进行比较,并且该一个或多个第一处理器执行有噪区域检测包括:该一个或多个第一处理器对区域和去噪区域进行取差并将差值区域的方差与第二阈值进行比较。
[0123] 在一个或多个第十六实施例中,对于第十一至第十五实施例中的任何一个,该一个或多个第一处理器生成最终分区决策包括:该一个或多个第一处理器基于对多个帧内模式和多个帧间模式的评估,生成与最终分区决策对应的单个块的分区的初始编码模式决策。
[0124] 在一个或多个第十七实施例中,对于第十一至第十六实施例中的任何一个,用于单个块的第一分区的第一初始编码模式决策包括多个帧内模式中的第一帧内模式,并且该第二处理器还用于:在视频编码器处,将变换应用于与第一分区和第一帧内模式对应的第一残差分区以生成第一变换残差;在视频编码器处,将变换应用于与第一分区和第二帧内模式对应的第二残差分区以生成第二变换残差;确定第一变换残差的第一高频能量值和第二变换残差的第二高频能量值;响应于第二高频值小于第一高频值而丢弃第一帧内模式;以及在视频编码器处,使用第二帧内模式对第一分区进行编码。
[0125] 在一个或多个第十八实施例中,对于第十一至第十七实施例中的任何一个,该第二处理器确定第一高频系数能量值包括:该第二处理器对除第一变换残差系数的DC变换系数之外的多个第一变换残差系数求平均值。
[0126] 在一个或多个第十九实施例中,对于第十一至第十八实施例中的任何一个,由视频编码器使用最终分区决策和初始编码模式决策来生成重构块。
[0127] 在一个或多个第二十实施例中,对于第十一至第十九实施例中的任何一个,比较候选分区与仅使用来自第一图像的原始像素样本生成的帧内预测分区包括:该一个或多个第一处理器仅使用原始像素样本生成第一帧内预测分区,并且对第一候选分区和第一帧内预测分区进行取差。
[0128] 在一个或多个第二十一实施例中,至少一种机器可读介质可以包括多个指令,该指令响应于在计算设备上执行,使计算设备执行根据上述实施例中任何一个的方法。
[0129] 在一个或多个第二十二实施例中,一种装置可以包括用于执行根据上述实施例中任何一个的方法的模块。
[0130] 将认识到,实施例不限于如此描述的实施例,而是可以在不脱离所附权利要求的范围的情况下通过修改和变更来实践。例如,以上实施例可以包括特征的特定组合。然而,上述实施例在这方面不受限制,并且在各种实现方式中,上述实施例可以包括仅实现这些特征的子集、实现这些特征的不同顺序、实现这些特征的不同组合和/或实现除明确列出的特征之外的其他特征。因此,应该参考所附权利要求以及这些权利要求的等同物的全部范围来确定实施例的范围。