用于视频编码的分割和模式决策的生成的制作方法

文档序号:18899806发布日期:2019-10-18 21:47阅读:289来源:国知局
用于视频编码的分割和模式决策的生成的制作方法

本申请涉及视频编码的领域,并且更具体地涉及用于视频编码的分割和模式决策的区域自适应数据高效生成。



背景技术:

在压缩/解压缩(编解码器)系统中,压缩效率、数据利用效率、以及视频质量是重要的性能指标。视觉质量是很多视频应用中的用户体验的重要方面,并且受数据利用效率影响的压缩效率会影响存储视频文件所需的存储装置的量和/或发送和/或接收流视频内容所需的带宽的量。例如,视频编码器对视频信息进行压缩,使得更多信息可以在给定带宽上发送或者被存储在给定存储器空间等中。经压缩的信号或数据随后可以由解码器解码,该解码器对用于显示给用户的信号或数据进行解码或解压缩。在大多数实施方式中,期望更高的视觉质量和更大的压缩。另外,编码速度和效率是视频编码的重要方面。

在保持甚至提高视频质量的同时提高数据利用效率并通过数据利用效率来提高压缩率是有利的。针对需要改善的这些和其他考虑。当压缩并发送视频数据的需要变得更加普遍时,这些改善可能变得很关键。



技术实现要素:

根据本申请的一方面,提供了一种计算机实现的视频编码方法,包括:接收用于编码的输入视频,该输入视频包括多个图片,该多个图片中的第一图片包括包含个体块(individualblock)的区域,其中,个体块包括多个分区;向该多个分区中的一个或多个分区、区域、或个体块中的至少一者应用一个或多个检测器,以生成一个或多个检测指示符;基于以下各项中的至少一项,使用检测指示符生成针对个体块的分割决策并针对个体块的对应于分割决策的分区生成编码模式决策:针对分区中的第一分区生成亮度和色度评估决策或仅亮度评估决策,针对分区中具有初始合并模式决策的第二分区生成合并或跳过模式决策,针对分区中的第三分区仅生成变换系数块的一部分,或者仅针对分区中作为8x8初始编码分区的第四分区评估4x4模式;以及至少基于分割决策对个体块进行编码,以生成输出比特流的一部分。

根据本申请的另一方面,提供了一种视频编码系统,包括:存储用于编码的输入视频的存储器,该输入视频包括多个图片,该多个图片中的第一图片包括包含个体块的区域,其中,个体块包括多个分区;以及耦合到存储器的一个或多个处理器,该一个或多个处理器用于:向多个分区中的一个或多个分区、区域、或个体块中的至少一者应用一个或多个检测器,以生成一个或多个检测指示符;基于一个或多个处理器执行的以下处理中的至少一者,使用检测指示符生成针对个体块的分割决策并针对个体块的对应于分割决策的分区生成编码模式决策:针对分区中的第一分区生成亮度和色度评估决策或仅亮度评估决策,针对分区中具有初始合并模式决策的第二分区生成合并或跳过模式决策,针对分区中的第三分区仅生成变换系数块的一部分,或者仅针对分区中作为8x8初始编码分区的第四分区评估4x4模式;以及至少基于分割决策对个体块进行编码,以生成输出比特流的一部分。

根据本申请的另一方面,提供了至少一个机器可读介质,包括:多个指令,该多个指令响应于在计算设备上被执行而使得计算设备执行前述视频编码方法。

根据本申请的另一方面,提供了一种设备,包括用于执行前述视频编码方法的装置。

附图说明

在附图中,通过示例而非限制地示出了本文中描述的材料。为了说明简单和清楚,图中示出的元件不一定是按比例描画的。例如,为了清楚,相比其他元件放大了一些元件的尺寸。另外,在适当的情况下,参考标号在附图中重复,以指示对应或类似元件。在幅图中:

图1是用于提供视频编码的示例系统的说明性示意图;

图2示出了示例群组的图片;

图3示出了示例视频图片;

图4是用于提供lcu分区和帧内/帧间模式数据的示例分割和模式决策模块的说明性示意图;

图5是用于生成比特流的示例编码器的说明性示图;

图6示出了示例集成编码系统的框图;

图7是示出在分割和编码模式决策中选择性地使用色度信息的示例处理的流程图;

图8是示出针对具有初始合并模式决策的分区生成合并或跳过模式决策的示例处理的流程图;

图9是示出通过针对某个块的分区仅生成变换系数块的一部分来确定针对该块的分割决策和编码模式决策的示例处理的流程图;

图10示出了对应于示例部分变换的示例数据结构;

图11示出了对应于另一示例部分变换的示例数据结构;

图12是示出基于某个块的分区是否在视觉重要范围中,通过针对该分区仅生成变换系数块的一部分来确定针对该块的分割决策和编码模式决策的示例处理的流程图;

图13是示出基于某个块中的边缘检测,通过针对该块的分区仅生成变换系数块的一部分来确定针对该块的分割决策和编码模式决策的示例处理的流程图;

图14是示出用于在视频编码中选择性地评估4x4分区的示例处理的流程图;

图15是示例平坦有噪声区域检测器的说明性示意图;

图16是示出用于视频编码的示例处理的流程图;

图17是用于视频编码的示例系统的说明性示意图;

图18是示例系统的说明性示意图;以及

图19示出了完全根据本公开的至少一些实施方式布置的示例设备。

具体实施方式

现在参考附图描述一个或多个实施例或实施方式。尽管讨论了具体配置和布置,但是应该理解的是这只是出于说明性的目的。相关领域技术人员将认识到,可以在不偏离本说明书的精神和范围的条件下采用其他配置和布置。对于相关领域技术人员显而易见的是,本文中描述的技术和/或布置也可以用在不同于本文描述的各种其他系统和应用中。

尽管下面的描述给出了可以体现在例如片上系统(soc)架构的架构中的各种实施方式,但是本文中描述的技术和/或布置的实施方式不限于特定架构和/或计算系统并且可以由用于类似目的的任意架构和/或计算系统实现。例如,采用例如多个集成电路(ic)芯片和/或封装的各种架构、和/或各种计算设备和/或消费电子(ce)设备(例如,机顶盒、智能电话等)可以实现本文中描述的技术和/或布置。另外,尽管下面的描述可以给出多个具体细节,例如,系统组件的逻辑实现、类型、和相互关系、逻辑划分/集成选择等,但是请求保护的主题可以在没有这些具体细节的条件下实施。在其他实例中,诸如控制结构和完全的软件指令序列的一些内容可以不详细示出,以避免模糊本文公开的内容。

本文中公开的材料可以实现在硬件、固件、软件、或者它们的任意组合中。本文中公开的材料还可以实现为机器可读介质上存储的指令,这些指令可以被一个或多个处理器读取并执行。机器可读介质可以包括用于存储或发送机器(例如,计算设备)可读形式的信息的任意介质和/或机构。例如,机器可读介质可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪存设备、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)。

说明书中对“一个实施方式”、“实施方式”、“示例实施方式”等的引用指示所描述的实施方式可以包括特定特征、结构、或特性,但是并不一定每个实施例都包括该特定特征、结构、或特性。另外,这些短语并不一定指代同一种实施方式。另外,当结合实施例描述特定特征、结构、或特性时,应该认为本领域技术人员知道可以结合其他实施方式来产生这样的特征、结构、或特性,而不管本文中是否明确描述。

本文中描述了涉及视频编码,尤其涉及实现视频特性的检测器以修改视频编码从而提高效率的方法、设备、装置、计算平台、和物品。

本文讨论的技术通过基于图片区域的检测特征修改编码操作,来提高数据利用效率。如本文中所使用的,术语“区域”可以包括图片的块、图片的编码单元、图片的最大编码单元、包括图片的多个连续块的区域、块或编码单元的分区、图片的切片、或者图片本身中的任意一者。另外,术语“分区”可以指示用于编码的分区或用于变换的分区。可以由检测指示符指示的检测特征可以包括本文中讨论的任意特征,例如,区域的亮度平均值(即,区域的亮度值的平均值)、区域的色度通道平均值(即,特定色度通道的色度值的平均值)、和/或区域的第二色度通道平均值(即,另一特定色度通道的色度值的平均值)、这些值与阈值的比较结果的指示符(例如,平均值是否超过阈值)、区域的时序等级(例如,区域是否在i切片、基层b切片、非基层b切片等中)、针对区域的初始跳过模式编码代价和初始合并模式编码代价之间的差值的大小、区域是否包括边缘的指示符、这样的边缘的强度的指示符、区域是未覆盖区域还是在未覆盖范围内的指示符、区域的初始最佳帧内模式、以及本文中讨论的其他内容。

这些检测特征或检测指示符随后被用来修改编码,如本文中进一步讨论的。这些编码修改可以包括仅评估亮度或评估亮度和色度二者用于针对块的分割决策和/或编码模式,使用亮度和色度仅进行合并或跳过模式决策,使用初始合并或跳过模式决策而无需进一步在编码过程中进行评估,在局部解码环路中仅生成变换系数块的部分(即,在用于提高效率的某些实例中不生成完整的变换系数块),除了评估8x8编码模式外进一步评估4x4帧内模式,以及本文中讨论的其他内容。

所讨论的检测特征或检测指示符可以使用原始视频内容(例如,没有使用局部解码环路重新构建的像素)生成,并且可以实现在解耦视频编码器或集成编码器的上下文中,其中,该解耦视频编码器基于仅使用来自利用兼容局部解码环路进行全部标准兼容的编码的源样本,来解耦最终分割决策和相关的初始编码模式决策,该集成编码器使用来自局部解码环路的重新构建的样本生成分割和编码模式决策。如本文中使用的,术语“样本”或“像素样本”可以是任意适当的像素值。术语“原始像素样本”被用来指示来自输入视频的样本或值并且与重新构建的像素样本相对照,这些重新构建的像素样本不是原始像素样本而是在标准兼容的编码器中的编码和解码操作后重新构建的像素样本。

图1是根据本公开的至少一些实施方式布置的用于提供视频编码的示例系统100的说明性示意图。如图1所示,系统100包括分割和模式决策模块101和编码器102。如图所示,分割和模式决策模块101(其可以被表征为分割、运动估计、以及模式决策模块等)接收输入视频111并且可选地接收重新构建的图片114,分割和模式决策模块101生成最大编码单元(lcu)分区和对应的编码模式(帧内/帧间模式)数据112。例如,对于输入视频111的每个图片的每个lcu,分割和模式决策模块101提供分割决策(即,指示如何将lcu分割为编码单元/预测单元/变换单元(cu/pu/tu)的数据))、针对每个cu的编码模式(即,帧间模式、帧内模式等)、以及用于编码模式的信息(即,用于帧间编码的运动向量)(如果需要的话)。如本文中所使用的,术语“分区”用来指示块的任意子块或子区域,例如,用于编码的分区或用于变换的分区等。例如,在块为最大编码单元的上下文中,分区可以是编码单元(例如,cu)或变换单元(例如,tu)。变换单元可以与编码单元为相同大小或者可以小于编码单元。

如图所示,编码器102接收lcu分区和帧内/帧间模式数据112,编码器102生成诸如标准兼容比特流的比特流113和重新构建的图片114。例如,编码器102实现lcu分区和帧内/帧间模式数据112。在解耦编码器实施例中,编码器102实现由分割和模式决策模块101做出的最终决策,可选地调整由分割和模式决策模块101做出的任意初始模式决策,并且实现这样的分割和模式决策以生成标准兼容比特流113。在这样的实施例中,重新构建的图片114可以被生成,以用作编码器102中的参考图片;但是,这些重新构建的图片114不用在分割和模式决策模块101中。在集成编码器实施方式中,编码器102实现由分割和模式决策模块101做出的决策并且实现这样的分割和模式决策,以生成标准兼容比特流113和重新构建的图片114。这些重新构建的图片114被用来生成用于输入视频111的后续lcu的分割决策和模式决策。

如图所示,系统100接收用于编码的输入视频111,并且系统提供视频压缩以生成比特流113,从而使得系统100可以是经由计算机或计算设备等实现的视频编码器。比特流113可以是诸如标准兼容比特流的任何适当的比特流。例如,比特流113可以是h.264/mpeg-4高级视频编码(avc)标准兼容的、h.265高效视频编码(hevc)标准兼容的、vp9标准兼容的等。系统100可以经由诸如个人计算机、膝上型计算机、平板电脑、平板手机、智能电话、数字相机、游戏控制台、可穿戴设备、一体机设备、二合一设备等的任何适当设备、或者诸如移动平台等的平台来实现。例如,如本文中使用的,系统、设备、计算机、或计算设备可以包括任意这样的设备或平台。

输入视频111可以包括任意适当分辨率的任何适当的视频帧、视频图片、视频帧序列、图片组、多个图片组、视频数据等。例如,视频可以是视频图形阵列(vga)、高清晰度(hd)、全hd(例如,1080p)、4k分辨率视频、8k分辨率视频等,并且视频可以包括任意数目的视频帧、视频帧序列、图片、图片组等。为了表示清楚,参考图片和块和/或编码单元讨论本文中讨论的技术。然而,这些图片可以被表征为帧、视频帧、帧序列、视频序列等,并且这些块和/或编码单元可以被表征为编码块、宏块、子单元、子块、区域、子区域等。一般,术语“块”和“编码单元”在本文中可以交换使用。例如,彩色视频数据帧或图片可以包括亮度平面或分量(即,亮度像素值)和两个色度平面或分量(即,色度像素值),其中,色度平面与亮度平面具有相同或不同的分辨率。输入视频111可以包括可以划分为任意大小的块和/或编码单元的图片或帧,这些块和/或编码单元包含对应于例如像素的mxn块和/或编码单元的数据。这些块和/或编码单元可以包括来自像素数据的一个或多个平面或色彩信道的数据。如本文中使用的,术语“块”可以包括任意适当大小的宏块、编码单元等。将理解的是,这些块也可以划分为用于预测、变换等的子块。

图2示出了根据本公开的至少一些实施方式布置的示例图片组200。如图2所示,图片组200可以包括任意数目的图片201,例如,64个图片(示出了0-16)等。另外,图片201可以按照时间顺序202提供,使得图片201按照时间顺序呈现;同时,图片201按照编码顺序(未示出)编码,使得编码顺序不同于时间顺序202。另外,可以在图片分层结构203中提供图片201,使得基层(l0)图片201包括图片0、8、16等;非基层(l1)图片201包括图片4、12等;非基层(l2)图片201包括图片2、6、10、14等;并且非基层(l3)图片201包括图片1、3、5、7、9、11、13、15等。例如,移动通过分层结构,对于帧间模式,l0图片仅可以参考其他l0图片,l1图片仅可以参考l0图片,l2图片仅可以参考l0或l1图片,l3图片可以参考l0至l2中任意层级的图片。例如,图片201包括基层图片和非基层图片,使得基层图片是非基层图片的参考图片,但是非基层图片不是基层图片的参考图片,如图所示。在一个实施例中,输入视频111包括图片组200和/或系统100实现针对输入视频111的图片组200。尽管针对示例图片组200示出,但是输入视频111可以具有实现图片组200、另一图片组格式等的任意适当结构。在一个实施例中,用于对视频编码的预测结构包括诸如图片组200的多个图片组。例如,在广播和流传输实施方式的上下文中,预测结构可以是周期性的并且可以包括周期性图片组(gop)。在一个实施例中,gop包括按照图2中描述的结构组织的大约1秒钟的图片,后面是开始于i图片的另一gop等。

图3示出了根据本公开的至少一些实施方式布置的示例视频图片301。视频图片301可以包括诸如,vga、hd、全hd、4k、8k等视频图片的视频序列或片断的任意图片。例如,视频图片301可以是图片201中的任意图片。如图所示,视频图片301可以被分割或划分为一个或多个切片,如参考视频图片301的切片302所示。另外,视频图片301可以被分割或划分为一个或多个lcu,如参考lcu303所示,lcu又可以被分割为针对cu305、306和/或图中未示出的预测单元(pu)和变换单元(tu)示出的一个或多个编码单元。如本文中所使用的,术语“分区”可以指cu、pu、或tu。尽管针对对应于hevc编码的切片302、lcu303、以及cu305、306示出,但是本文中讨论的技术可以实现在任意编码上下文中。如本文中使用的,区域可以包括切片、lcu、cu、图片、或者图片的其他范围中的任意一者。另外,如本文中使用的,分区包括块或区域等的一部分。例如,在hevc上下文中,cu是lcu的分区。但是,分区可以是区域的任意子区域、块的子块等。为了清楚表示但不用于限制,本文使用对应于hevc的技术。

图4是根据本公开的至少一些实施方式布置的用于提供lcu分区和帧内/帧间模式数据112的示例分割和模式决策模块101的说明性示意图。例如,图4和图5示出了示例解耦编码器实施例;图6示出了示例集成编码器实施例。每个实施例可以用在本文中讨论的技术的实施方式中。

如图4所示,分割和模式决策模块101可以包括或实现lcu环路421,该lcu环路包括源样本(ss)运动估计模块401、ss帧内搜索模块402、cu快速环路处理模块403、cu完全环路处理模块404、深度间(inter-depth)决策模块405、帧内/帧间4x4细化模块406、以及跳过-合并决策模块407。如图所示,lcu环路421接收输入视频111,lcu环路421生成最终lcu分割和初始模式决策数据418。最终lcu分割和初始模式决策数据418可以是指示或描述用于lcu到cu的分割和用于lcu的每个cu的编码模式决策的任何适当数据。在一个实施例中,最终lcu分割和初始模式决策数据418包括将无需编码器102进行修改即可实现的最终分割数据和可以修改的初始模式决策。例如,编码模式决策可以包括帧内模式(即,基于所实现的标准的可用帧内模式之一)或帧间模式(即,跳过、合并、或运动估计、me)。另外,lcu分割和模式决策数据418可以包括特定模式需要的任何附加数据(例如,用于帧间模式的运动向量)。例如,在hevc上下文中,编码树单元可以是64x64像素,其可以定义lcu。lcu可以经由四叉树分割被分割用于编码为cu,使得cu可以为32x32像素、16x16像素、或8x8像素。这样的分割可以由lcu分割和模式决策数据418指示。另外,这种分割被用来评估lcu的候选分区(候选cu)。

如图所示,ss运动估计模块401接收输入视频111,ss运动估计模块401使用输入视频111的一个或多个参考图片执行针对输入视频111的当前图片的cu或候选分区的运动搜索,使得参考图片仅包括输入视频111的原始像素样本。如图所示,ss运动估计模块401生成对应于待评估的当前lcu的特定分割的cu的运动估计候选411(即,mv)。例如,对于每个cu,可以提供一个或多个mv。另外,ss帧内搜索模块402接收输入视频111,ss帧内搜索模块402通过将cu与使用输入视频111的当前图片的原始像素样本(基于所评估的当前帧内模式)生成的帧内预测块进行比较,使用输入视频111的当前图片生成针对输入视频111的当前图片的cu的帧内模式。如图所示,ss帧内搜索模块402生成对应于待评估的当前lcu的特定分割的cu的帧内候选412(即,所选择的帧内模式)。例如,对于每个cu,可以提供一个或多个帧内候选。在一个实施例中,如本文中所讨论的,提供最佳分割决策和来自运动估计候选411和帧内候选412的相应的最佳帧内和/或帧间候选(例如,具有最低失真或最低速率失真代价等),供编码器102使用。例如,可以跳过后续处理。

另外,检测器模块408从ss运动估计模块401和/或ss帧内搜索模块402接收输入视频111和/或数据。检测器模块408向输入视频111和/或接收到的数据应用一个或多个检测器,检测器模块408生成并提供检测指示符419供分割和模式决策模块101和/或编码器102的其他模块使用,如参考图5所讨论的。

如图所示,cu快速环路处理模块403接收运动估计候选411、帧内候选412、检测指示符419、以及邻居数据416,生成mv合并候选,生成高级运动向量预测(amvp)候选,并且做出cu模式决策。邻居数据416包括针对被评估的当前cu的空间相邻cu的任何适当数据,例如,空间邻居的帧内和/或帧间模式。cu快速环路处理模块403使用一种或多种任何适当技术生成mv合并候选。例如,合并模式可以使用来自当前cu的空间相邻cu的mv提供运动推断候选。例如,可以提供(例如,继承)来自空间相邻cu的一个或多个mv,作为当前cu的mv候选。另外,cu快速环路处理模块403使用任何适当的一种或多种技术生成amvp候选。在一个实施例中,cu快速环路处理模块403可以使用来自参考图片的数据和来自相邻cu的数据生成amvp候选mv。另外,在生成mv合并和/或amvp候选时,可以使用非标准兼容技术。针对mv合并和amvp候选的预测可以仅使用源样本生成。

如图所示,cu快速环路处理模块403基于运动估计候选411、帧内候选412、mv合并候选、以及amvp候选,做出针对用于当前分割的每个cu的编码模式决策。可以使用任何适当的一种或多种技术做出编码模式决策。在一个实施例中,失真测量和加权速率估计的总和被用来评估针对cu的帧内和帧间模式。例如,可以确定当前cu和(使用相应模式生成的)预测cu之间的失真,并且可以结合该失真和估计出的编码速率来确定最佳候选。如图所示,可以生成me、帧内、和合并/amvp候选413的子集,作为所有可用候选的子集。

me、帧内、和合并/amvp候选413的子集被提供给cu完全环路处理模块404。如图所示,cu完全环路处理模块404针对me、帧内、和合并/amvp候选413的子集的每个编码模式的剩余块(即,该剩余块是cu和使用当前模式生成的预测cu之间的差)执行正向变换、正向量化、反向量化、以及反向变换,以形成重新构建的剩余块。然后,cu完全环路处理模块404生成cu的重新构建(即,通过将重新构建的剩余块添加到预测cu),并且针对me、帧内、和合并/amvp候选413的子集的每个模式测量失真。选择具有最佳速率失真的模式作为cu模式414。

cu模式414被提供给深度间决策模块405,该深度间决策模块可以评估当前lcu的可用分区以生成lcu分割数据415。如图所示,lcu分割数据415被提供给帧内/帧间4x4细化模块406,该帧内/帧间4x4细化模块可以使用帧内和/或帧间模式评估4x4分区。例如,在先处理评估低至8x8编码单元大小的分割,帧内/帧间4x4细化模块406评估4x4分割和针对各种情况下的4x4分区的帧内和/或帧间模式。如图所示,帧内/帧间4x4细化模块406向跳过-合并决策模块407提供最终lcu分割数据417,该跳过-合并决策模块针对具有对应于合并mv的编码模式的任意cu,确定该cu是跳过cu还是合并cu。例如,对于合并cu,从空间相邻cu继承mv并且发送针对该cu的剩余块。对于跳过cu,从空间相邻cu继承mv(与合并模式中一样),但是不发送针对该cu的剩余块。如图所示,在合并-跳过决策之后,lcu环路421提供最终lcu分割和初始模式决策数据418.

图5是根据本公开的至少一些实施方式布置的用于生成比特流113的示例编码器102的说明性示意图。如图5所示,编码器102可以包括或实现lcu环路521(例如,用于编码过程的lcu环路),该lcu环路包括cu环路处理模块501和熵编码模块502。进一步如图所示,编码器102可以包括分包模块503。如图所示,lcu环路521接收输入视频111和最终lcu分割和初始模块决策数据418,lcu环路521生成经量化的变换系数、控制数据、和参数513,这些经过量化的变换系数、控制数据、和参数可以由熵编码模块502进行熵编码并由分包模块503分包以生成比特流113。

例如,cu环路处理模块501接收输入视频111、最终lcu分割和初始模式决策数据418、以及检测指示符419。如图所示,基于最终lcu分割和初始模式决策数据418,cu环路处理模块501(根据需要)生成针对帧内cu的帧内参考像素样本。例如,可以使用(经由局部解码环路生成的)相邻的重新构建的像素样本生成帧内参考像素样本。如图所示,对于每个cu,cu环路处理模块501根据需要使用邻居数据511(例如,来自当前cu的邻居的数据)生成预测cu。例如,可以通过针对由来自一个或多个重新构建的参考图片的一个或多个mv指示的cu获取先前重新构建的像素样本并且在需要时结合所获取的重新构建的像素样本来生成预测cu,从而生成针对帧间模式的预测cu。对于帧内模式,可以基于当前cu的帧内模式,使用来自cu的图片的相邻的重新构建的像素样本生成预测cu。如图所示,针对当前cu生成剩余块。例如,可以通过对当前cu和预测cu进行差分生成剩余块。

随后,对剩余块进行正向变换和正向量化来生成经量化的变换系数,这些经量化的变换系数被包括在经量化的变换系数、控制数据、和参数513中。另外,在局部解码环路中,例如,对变换系数进行反向量化和反向变换来生成针对当前cu的重新构建的剩余块。如图所示,cu环路处理模块501通过例如,将重新构建的剩余块和预测cu(如上所述)相加生成重新构建的cu,来执行当前cu的重新构建。可以将重新构建的cu与其他cu相结合,以使用诸如样本自适应偏移(sao)滤波和/或去块环路滤波(dlf)的附加技术来重新构建当前图片或其部分,该sao滤波可以包括生成sao参数(这些参数被包括在经量化的变换系数、控制数据、和参数513中)并实现对于重新构建的cu的sao滤波,该dlf处理可以包括生成dlf参数(该dlf参数被包括在经量化的变换系数、控制数据、和参数513中)并且实现对重新构建的cu的dlf滤波。例如,重新构建的cu可以被作为参考图片(例如,存储在重新构建的图片缓冲器中)提供。提供这些参考图片及其部分作为重新构建的样本512,这些重新构建的样本被用来生成预测cu(在帧间模式和帧内模式中),如上所述。

如图所示,可以对经量化的变换系数、控制数据、和参数513进行熵编码和分包来形成比特流113,其中,这些经量化的变换系数、控制数据、和参数513包括针对剩余编码单元的变换系数、诸如最终lcu分割和模式决策数据的控制数据(即,来自最终lcu分割和初始模式决策数据418)、以及诸如sao/dlf滤波参数的参数。比特流113可以是诸如标准兼容比特流的任何适当的比特流。例如,比特流113可以兼容h.264/mpeg-4高级视频编码(avc)标准、兼容h.265高效视频编码(hevc)标准、兼容vp9标准等。

图6示出了根据本公开的至少一些实施方式布置的示例集成编码系统600的框图。如所讨论的,编码系统600提供集成编码器实施方式,使得lcu分区和帧内/帧间模式数据112可以使用检测指示符419和使用重新构建的像素数据的分区和编码模式的评估确定。例如,编码系统600可以实现本文讨论的系统100。如图所示,编码系统600可以包括检测器模块408、控制器601、运动估计和补偿模块602、帧内预测模块603、去块滤波(去块)和采样自适应偏移(sao)模块605、选择开关607、差分器606、加法器608、变换(t)模块609、量化(q)模块610、反向量化(iq)模块611、反向变换(it)模块612、熵编码器(ee)模块613、以及用于存储重新构建的图片114的图片缓冲器604。编码系统600可以包括为了清楚呈现的目的而没有示出的附加模块和/或互连。

如图所示,编码系统600接收输入视频111,编码系统600生成具有本文中讨论的任意特性的比特流113。例如,编码系统600将输入视频111的图片划分为lcu,lcu又被分割为候选分区。在评估这些候选分区后,针对lcu的分割决策和对应于分割决策的针对个体块的分区的编码模式决策由控制器601生成作为lcu分区和帧内/帧间模式数据112,该lcu分区和帧内/帧间模式数据被提供给编码系统600的其他组件用于lcu的编码并被包括在比特流113中。如图所示,检测指示符419被用于lcu分区和帧内/帧间模式数据112和比特流113的生成,以如下所讨论地提高效率。

继续参考图6,编码系统600可以实现类似于lcu环路421的lcu环路,其中,运动估计和补偿模块602接收输入视频111和重新构建的图片114(图6未示出),并且使用重新构建的图片114的一个或多个参考图片执行针对输入视频111的图片的当前lcu的候选cu或分区的运动估计,使得参考图片包括重新构建的像素样本(例如,在应用局部解码环路614之后),从而运动估计和补偿模块602和控制器601生成类似于运动估计候选411的运动估计候选。另外,帧内预测模块603接收输入视频111和重新构建的像素样本,累加器608、帧内预测模块603、以及控制器601通过将cu与(例如,在应用局部解码环路614之后)使用重新构建的像素样本生成的帧内预测块进行比较,使用输入视频111的当前图片生成针对输入视频111的当前图片的cu的帧内模式。控制器601随后生成lcu分区决策(例如,定义lcu的分割)和用于编码lcu的针对每个分区的相应模式决策(例如,针对每个分区的帧内或帧间模式之一)。例如,对于块(例如,lcu)的每个分区(例如,cu),控制器601可以通过lcu分区和帧内/帧间模式数据112,控制选择开关607基于针对每个块(例如,lcu)的预测分区(例如,cu)的最佳模式(例如,最低代价模式)来生成该预测分区。

在做出将对分区进行帧内还是帧间编码(和来自帧内或帧间候选的对应模式)的决策后,通过差分器606做与源像素的差分。例如,在差分器606对来自输入视频111的原始像素样本的分区(例如,cu)或块(例如,lcu)与重新构建的分区或块进行差分,从而使用通过局部解码环路614实现的相应最佳编码模式生成重新构建的分区或块。通过变换模块609将差分(例如,剩余分区或块)变换到频域(例如,使用离散余弦变换或其他变换)从而生成变换系数,并且通过量化模块610对变换系数进行量化以生成经量化的变换系数。通过熵编码器模块613对这些经量化的变换系数和各种控制信号(包括lcu分区和帧内/帧间模式数据112)进行熵编码来生成比特流113,该比特流113可以被发送给解码器或者被存储在存储器中。另外,来自量化模块610的经量化的变换系数通过反向量化模块612进行反向量化并通过反向变换模块612进行反向变换,以生成重新构建的差分或剩余分区或块。通过加法器608将重新构建的分区或块与参考块(例如,通过选择开关607选择的重新构建的参考块)结合,以生成重新构建的分区或块,如图所示,这些重新构建的分区或块被提供给帧内预测模块603用于帧内预测。另外,重新构建的差分或剩余分区或块可以通过去块滤波和样本自适应偏移模块605进行去块滤波和/或样本自适应偏移滤波,被重新构建为图片,并被存储在图片缓冲器604中用于帧间预测。

如本文所讨论的,解耦编码器系统或集成编码器系统可以实现检测指示符419,以提高数据利用效率。讨论现在转向检测特征、指示符、及其实施方式。

图7是根据本公开的至少一些实施方式布置的用于在分割和编码模式决策中选择性地使用色度信息的示例处理700的流程图。处理700可以包括图7所示的一个或多个操作701-710。处理700可以由系统(例如,系统100、编码系统600等)执行,以通过在视频编码中的分割和编码模式决策中选择性地使用色度来提高数据利用效率。例如,仅使用亮度信息以精确度降低为代价提供了更快的处理和更低的复杂度的好处(例如,通过从代价计算中去除色度)。替代地,使用亮度和色度信息以计算速度降低为代价(例如,向代价计算添加色度)提供了精确度方面的好处。处理700通过针对图片的块高效地生成亮度和色度评估决策或仅亮度评估决策,在计算代价和精确度之间进行平衡。

处理700开始于决策操作701。在操作701,针对输入视频的当前图片的区域、块、或分区应用检测器,以生成检测特征或检测指示符。例如,操作701可以由检测器模块408执行。如图所示,针对区域、块(例如,lcu)、或分区(例如,cu)的检测特征包括该区域、块、或分区的亮度平均值,该区域、块、或分区的第一色度通道(例如,cb)平均值,该区域、块、或分区的第二色度通道(cr)平均值,该区域、块、或分区是否包括边缘的指示符,该区域、块、或分区是否在未覆盖范围中的指示符,以及该区域、块、或分区的时序层。

可以使用任意适当的一种或多种技术生成在操作701确定的检测指示符。在一个实施例中,亮度平均值是区域、块、或分区的像素位置处的亮度值的平均值。在一个实施例中,第一色度通道平均值是针对第一色度通道在区域、块、或分区的像素位置处色度通道的色度值的平均值,第二色度通道平均值是针对第二色度通道在区域、块、或分区的像素位置处色度通道的色度值的平均值。例如,像素可以包括亮度分量和诸如cb、cr分量的两个色度分量,尽管可以实现任何适当的色彩空间。尽管针对所有像素位置的平均值进行讨论,但是在一些实施例中,在生成平均值之前可以丢弃一些像素值(例如,高和低、异常值等)。可以使用诸如canny边缘检测的任何适当的边缘检测技术来检测区域、块、或分区的边缘特征。

另外,检测区域、块、或分区是否在未覆盖范围中是为了检测由于输入视频111中的一些内容的移动导致的在未被覆盖范围中的那些区域、块、或分区。例如,人移动会暴露出以前在他们后面的未覆盖范围。有关区域、块、或分区是否在未覆盖范围中的判定可以使用一种或多种任何适当的技术做出。在一个实施例中,求得区域、块、或分区的最佳运动估计绝对差值之和(sad)与最佳帧内预测sad的差值,如果最佳帧内预测sad加阈值小于最佳运动估计sad,则该区域、块、或分区被指示为处于未覆盖范围中。例如,阈值或偏差等与最佳帧内预测sad相加并且和值小于最佳运动估计sad可以指示帧内预测sad远小于最佳运动估计sad,这进而指示该区域、块、或分区处于未覆盖范围中,因为针对该块无法找到精确的运动估计补偿。例如,最佳运动估计sad可以是对应于由ss运动估计模块401或运动估计和补偿模块602确定的最佳运动估计模式的sad,并且最佳帧内预测sad可以是对应于由ss帧内搜索模块402或帧内预测模块603确定的最佳帧内模式的sad。即,可以使用开环预测(仅使用原始像素样本)或闭环预测(使用重新构建的像素样本)sad。

处理继续进行到决策操作702。在操作702,将区域、块、或分区的亮度平均值,区域、块、或分区的第一色度通道平均值,区域、块、或分区的第二色度通道平均值与相应阈值进行比较。如果区域、块、或分区的亮度平均值,区域、块、或分区的第一色度通道平均值,以及区域、块、或分区的第二色度通道平均值均没有超过它们的相应阈值(例如,它们与阈值的比较并不理想),则处理继续进行到操作703。尽管参考块平均值与阈值相比较的检测指示符进行讨论,但是在其他实施例中,检测指示符包括关于这些平均值中的每个平均值是否超过、满足、或超过(例如,与之相当)相应阈值的指示符(例如,1或0,真或假)。在这些实施例中,决策操作702可以简单地确定这些指示符中的任意指示符是否为假。

在操作703,仅使用亮度信息来做出针对当前区域、块(例如,lcu)、或分区(例如,cu)的分割和编码模式决策。例如,在将原始分区或块与(仅使用原始像素样本预测或使用重新构建的像素预测的)预测分区或块进行比较时,在丢弃色度像素值的同时仅使用亮度像素值。即,当进行块或分区与预测块或分区之间的失真测量、比较等时,仅使用亮度信息。可以使用诸如lcu环路模块402的模块401-407和/或编码器系统600的模块601-612的本文中讨论的参与针对当前块的分割和编码模式决策的任意适当模块或组件实现这些技术。为了清楚示出,这里没有用名称列出这些模块。即,用于分割和编码模式决策的任意操作可以仅对亮度信息(例如,样本)进行操作,同时丢弃色度信息。注意,涉及生成比特流113的编码操作的模块和操作仍然对亮度信息和色度信息二者进行操作,用于生成比特流113(例如,生成了亮度剩余和色度剩余等)。例如,cu环路处理模块501对亮度和色度二者进行操作,以生成经量化的变换系数、控制数据、和参数513中的经过量化的变换系数。另外,在编码系统600的上下文中,模块602、603、606、609、610可以对亮度信息和色度信息进行操作,用于生成比特流113。因此,这些模块可以在分割和编码模式决策的上下文中仅使用亮度,同时根据需要在生成比特流113的上下文中使用亮度和色度二者。例如,这些模块在分割和编码模式决策的上下文中丢弃色度以节省大量的计算资源,并且随后根据需要使用色度信息应用这些分割和编码模式决策来生成比特流113。例如,针对相对较暗的块丢弃色度对于节省计算资源是有利的。

转向决策操作702,如果区域、块、或分区的亮度平均值,区域、块、或分区的第一色度通道平均值,以及区域、块、或分区的第二色度通道平均值中的任一者超过或满足它们的相应阈值(例如,它们与阈值相当),则处理继续进行到决策操作704。在操作704,做出有关区域、块、或分区是否包括边缘(基于操作701的边缘检测指示符确定)和/或区域、块、或分区是否在未覆盖范围内(基于操作701的未覆盖范围检测指示符)的判定。

如果任一项为真,则处理继续进行到操作705。在操作705,使用亮度信息和色度信息进行针对当前区域、块(例如,lcu)、或分区(例如,cu)的分割和编码模式决策。例如,在将原始分区或块与(仅使用原始像素样本预测或使用重新构建的像素预测的)预测分区或块进行比较时,使用亮度像素值和色度像素值二者。即,当进行分区或块与预测分区或块之间的失真测量、比较等时,使用亮度信息和色度信息二者。可以使用诸如lcu环路模块402的模块401-407和/或编码器系统600的模块601-612的参与针对当前块的分割和编码模式决策的本文中讨论的任意适当模块或组件来实现这些技术。例如,用于分割和编码模式决策的任意操作可以使用亮度信息和色度信息(例如,样本)进行操作。例如,针对处于未覆盖范围中的块或具有边缘的块使用亮度和色度两者对于提高精确度和减少伪影是有利的。

现在转到决策操作704,如果区域、块、或分区既不包括边缘也不在未覆盖范围中,则处理继续进行到决策操作706。在操作706,做出有关区域、块、或分区是否是i切片或i图片的一部分的判定。例如,i切片或i图片可以是不参考另一图片编码的任意切片或图片。参考图2,i切片或i图片可以是图片0、图片0的切片、或者不参考另一图片进行编码的任意其他图片的任意切片。如图所示,如果区域、块、或分区是i切片或i图片的一部分,则处理700继续进行到操作703。在操作703,仅使用亮度信息进行本文讨论的针对当前区域、块(例如,lcu)、或分区(例如,cu)的分割和编码模式决策。

如果区域、块、或分区不是i切片或i图片的部分,则处理700继续进行到判决操作707。在操作707,做出有关区域、块、或分区是否是基层b切片或基层b图片的一部分的判定。例如,基层b切片或b图片可以是作为基层的一部分的任意切片或图片(例如,仅参考相同基层中的其他图片而不参考非基层图片)。参考图2,基层b切片或b图片可以是图片8、16、……,使得基层b切片或b图片可以参考i图片0或其他基层b图片而不参考非基层b图片。如图所示,如果区域、块、或分区是基层b切片或基层b图片的一部分,则处理700继续进行到操作705。在操作705,使用亮度信息和色度信息进行以上讨论的针对当前区域、块(例如,lcu)、或分区(例如,cu)的分割和编码模式决策。

如果区域、块、或分区不是基层b切片的一部分,则处理700继续进行到决策操作708。在操作708,做出有关区域、块、或分区是否是非基层b切片或b图片的一部分的判定。例如,非基层b切片或b图片可以是作为非基层的一部分的任意切片或图片(例如,参考基层、相同层、以及较低层中的其他图片而是用于基层图片或较低层的参考)。参考图2,非基层b切片或b图片可以是层l1非基层图片(4、12、…)、层l2非基层图片(2、6、7、14、…)、或层l3非基层图片(1、3、5、7、8、11、13、15、…),使得非基层b切片或b图片可以参考相同层或较低层中的图片。如果区域、块、或分区不是非基层b切片或b图片的一部分,则处理在操作710结束。

如图所示,如果区域、块、或分区是非基层b切片或b图片的一部分,则处理700继续进行到操作709。在操作709,使用亮度信息和色度信息两者仅进行合并/跳过决策,同时仅使用亮度信息而不使用色度平面或分量做出其他分割和编码模式决策。例如,在评估块的帧内、帧间、amvp、以及合并候选模式时,仅使用亮度像素样本或值(丢弃色度像素样本或值)。即,当进行分区或块与用于上述模式的预测分区或块之间的失真测量、比较等时,仅使用亮度信息。然后,如果所选择的编码模式是合并候选模式,则使用亮度信息和色度信息做出合并模式(使用合并mv并发送剩余数据)和跳过模式(使用合并mv并且不发送剩余数据)之间的决策。例如,可以执行合并-跳过决策作为分割和模式决策处理的最后步骤,以决定分区或块将被编码为合并分区或块还是跳过分区或块。可以通过比较两个模式的代价来做出这样的合并-跳过决策,其中可以使用针对这两种模式中的每种模式的失真值和编码速率估计来得到代价。对于跳过模式,假定失真为零,则将不对变换系数进行编码(但是,用于确定跳过模式的代价的失真不为零)。对于合并模式,失真是被编码的分区或块与预测分区或块之间的差别的度量。在操作709的上下文中,使用亮度像素样本或值和色度像素样本或值生成这样的失真度量。

例如,在ss运动估计模块401、ss帧内搜索模块402、cu快速环路处理模块403、cu完全环路处理模块404、以及深度间决策模块405中,针对作为非基层b切片或b图片的一部分的块仅使用亮度像素值。但是,在跳过-合并决策模块407中,当块为非基层b切片或b图片的一部分时,使用亮度像素值和色度像素值二者,

类似地,在控制器601、运动估计和补偿模块602、帧内预测模块603、以及用于重新构建的相应模块中,仅使用亮度像素值进行分割和编码模式决策而不进行跳过-合并决策,并且在控制器601中,使用亮度像素值和色度像素值二者进行针对已经被确定作为合并编码块的块的跳过-合并决策。

在本文的其他位置以及针对处理700讨论的色度结合技术可以提供更少的处理要求(因为色度不用于所有模式决策),同时减轻了由于没有一起使用色度而导致的伪影。例如,去除对色度信息的使用可能产生诸如色彩拖尾或渗色和块效应的视觉伪影。本文讨论的技术可以减少或消除这样的伪影。所描述的技术可以提供对应于不同等级的色度信息使用的不同色度处理模式之间的切换。例如,这样的切换基于亮度和色度等级、边缘检测、未覆盖范围检测、以及时间层信息(例如,基层或非基层信息),使得具有不同检测特征的图片利用不同数量的色度信息。在一个实施例中,定义完全色度、色度仅用于合并-跳过决策、或没有色度的不同模式。对于完全色度,用于分割和编码模式决策的模式决策中使用的所有代价计算使用完全色度数据(例如,4:2:0输入视频)。在色度仅用于合并-跳过决策的模式中,色度信息仅用于在合并模式和跳过模式之间决策的目的,从而使得针对合并候选的合并模式和跳过模式之间的决策基于与使用完全亮度和色度信息的每个候选相关联的代价。在没有色度或色度关闭的模式中,如名字所暗示的,没有色度信息被用于模式决策。在一个实施例中,对于i切片或i图片,不使用色度;对于基层b切片,使用完全色度;并且对于非基层b切片,完全色度仅用于合并-跳过决策。

图8是示出根据本公开的至少一些实施方式布置的用于生成针对具有初始合并模式决策的分区的合并或跳过模式决策的示例处理800的流程图。处理800可以包括图8所示的一个或多个操作801-805。处理800可以由系统(例如,系统100、编码系统600等)执行,以通过基于初始合并和跳过模式编码代价生成针对分区的合并或跳过模式决策,来提高数据利用效率。例如,使用初始合并和跳过模式编码代价提供了编码期间的更快处理和更低复杂度的好处。

处理800开始于决策操作801。在操作801,对于输入视频的当前图片的块或区域,应用检测器以生成检测特征或检测指示符。例如,操作801可以由检测器模块408执行。如图所示,针对块的分区(例如,cu)或块(例如,lcu)的检测特征包括针对具有初始合并模式决策的分区的初始跳过模式编码代价和初始合并模式编码代价之间的差值的大小。例如,在解耦编码器的上下文中,cu快速环路处理模块403和/或cu完全环路处理模块404可以确定针对分区(例如,cu)的初始最佳编码模式决策是合并模式。这样的合并模式指示使用来自分区(例如,cu)的空间相邻分区(例如,cu)的mv的运动推断候选将被用于对该分区进行编码。跳过编码模式和合并编码模式均使用推断出的mv,但是跳过编码模式和合并编码模式的不同在于:在跳过模式中,不发送针对分区的剩余分区;而在合并模式中,发送针对分区的剩余分区。在集成编码系统的上下文中,控制器601、运动估计和补偿模块602、以及帧内预测模块603可以确定针对分区的初始合并模式,同时有关针对初始合并模式分区使用跳过还是合并模式的判定被延迟。

可以使用任意适当的一种或多种技术生成在操作801确定的检测指示符。在一个实施例中,使用原始像素样本、近似的重新构建的像素样本等确定针对分区的初始合并模式编码代价和初始跳过模式编码代价。在一个实施例中,编码代价是速率失真编码代价。如图所示,处理继续进行到决策操作802。在操作802,将初始合并模式编码代价和跳过模式编码代价之间的差值的大小与阈值进行比较。如图所示,如果该差值的大小超过阈值(或者满足或超过阈值或与阈值相当),则处理继续进行到操作803。在操作803,选择具有较低编码代价的模式进行编码。另外,响应于差值的大小超过例如阈值而跳过完全编码(例如,由cu环路处理模块501所执行的)处的编码代价的比较。这样的技术提供了效率方面的好处,因为在这种上下文中减少了完全编码环路操作。

转向决策操作802,如果差值的大小没有超过阈值(例如,比阈值低),则处理继续进行到操作804。在操作804,将跳过或合并模式决策推迟到完全编码过程(fullencodepass)。即,跳过或合并模式决策不基于初始编码代价。相反,处理继续进行到操作805。在操作805,在完全编码过程中仅针对分区(例如,cu)评估跳过或合并模式,并且选择较低代价的模式用于编码。例如,在解耦编码器的上下文中,完全编码过程可以由cu环路处理模块501执行。在集成编码系统的上下文中,完全编码过程可以由控制器601和运动估计和补偿模块602执行。在任何情况下,在完全编码过程中,针对分区仅评估跳过和合并模式,从而跳过对于其他帧间和/或帧内模式的评估。完全编码过程处的跳过或合并模式评估可以使用一种或多种任何适当的技术执行,该一种或多种技术例如对分区(例如,cu)与基于合并模式候选运动向量使用局部解码环路重新构建的重新构建的分区(例如,cu)进行差分,对所得到的剩余分区进行变换,对经变换的剩余系数进行量化,以及生成与不将所得到的经变换的剩余系数包括在编码中相关联的跳过模式代价和与将所得到的经变换的剩余系数包括在编码中相关联的合并模式代价。如所讨论的,这样的代价可以是包括模式的速率代价和失真代价的速率失真代价。随后可以比较所得到的代价,并且选择对应于较低代价的模式作为针对分区(例如,cu)的最终模式。随后使用所得到的最终模式将分区编码为比特流113。

在本文中其他地方以及针对处理800讨论的合并或跳过模式选择技术可以提供更少的处理要求(对于初始模式代价指示使用合并或跳过模式之一的情况,跳过完全编码过程评估),同时减轻了通过去除对这种完全编码过程评估的使用而导致的伪影(例如,在使用初始代价没有做出合并或跳过模式的选择的情况下)。

图9是根据本公开的至少一些实施方式布置的用于通过仅生成针对某个块的分区的变换系数块的一部分来确定针对该块的分割决策和编码模式决策的示例处理900的流程图。处理900可以包括图9所示的一个或多个操作901-905。处理900可以由系统(例如,系统100、编码系统600等)执行,以通过减少变换系数计算来提高数据利用效率。例如,通过在分割和编码模式决策期间减少执行变换时的可用变换系数的数目,可以减少计算从而进行更高效的处理。

处理900开始于决策操作901。在操作901处,将分区(例如,cu或pu)与预测分区(例如,cu或pu)进行差分。可以使用一种或多种任何适当的技术生成预测分区。例如,预测分区可以是对应于针对块(例如,lcu)的候选分区(例如,cu)的候选编码模式的候选预测分区。预测分区是基于待测试的相关编码模式使用帧内或帧间技术生成的。在一个实施例中,在解耦解码器的上下文中,预测分区可以包括仅使用原始像素样本生成的分区(如本文所讨论的)。在其他实施例中,预测分区是使用重新构建的像素样本生成的。在每种情况下,对输入视频的分区与预测分区进行差分,以生成剩余分区。可以将预测分区(例如,cu或pu)与原始分区进行差分,以生成剩余分区。随后可以将剩余分区进一步分割为用于变换处理的分区(例如,tu)。例如,所讨论的差分可以在cu或pu级别上执行,同时后续的变换处理在tu级别执行。

处理继续进行到操作902。在操作902,对剩余分区(例如,tu)执行部分变换来生成变换系数,使得可用变换系数的数目小于剩余分区(例如,tu)中的剩余值的数目。例如,如果剩余分区(例如,tu)是8x8分区,则剩余分区具有64个值(尽管一些值可以为零)。在这样的示例中,部分变换后的可用变换系数的数目少于64,例如36(例如,对于6x6变换系数块)、16(例如,对于4x4变换系数块)等。对于可用剩余值,使用部分变换确定的一些变换系数值可以为零;然而,这些值在应用部分变换时仍然可用。没有被确定为部分变换的应用的一部分的这些变换系数可以被设置为零。例如,部分变换的应用可以计算一些可用变换系数值为零并且将不可用的变换系数设置为零,以使得所得到的变换系数块具有与剩余分区(例如,tu)相同数目的值。在一个实施例中,在操作902,通过以下步骤基于来自操作901的剩余分区(例如,tu)生成变换系数块:对剩余分区执行部分变换以生成变换系数块的一部分的变换系数,使得该部分中的变换系数的数目少于剩余分区的值的数目;并且将变换系数块的其余变换系数设置为零。

在操作902执行的部分变换可以使用一种或多种任意适当的技术来执行。在一个实施例中,执行部分变换包括仅应用生成针对在部分变换后可用的那些系数的变换系数所需要的变换计算,同时生成在部分变换后不可用的变换系数所需要的那些变换计算被跳过。本文讨论的部分变换被表征为部分频率变换、有限变换、有限频率变换、降频变换等。

图10示出了根据本公开的至少一些实施方式布置的对应于示例部分变换1010的示例数据结构1000。如图10所示,示例4x4剩余块1001包括16个可用剩余值(标记为r11、r12、r13、...、r44)。例如,剩余块1001可以是诸如tu的分区。尽管针对4x4剩余块1001示出,但是剩余块1001可以是诸如8x8、16x16、32x32等的任意适当大小。另外,如图10所示,部分变换1010将剩余块1001的剩余值变换到频域,使得所得到的变换系数块1002具有比剩余块1001的可用剩余值的数目更少的可用变换系数1003(在所示出的示例中为4个,标记为tc11、tc12、tc21、tc22)。在所示出的示例中,剩余块1001具有16个可用剩余值,变换系数块1002具有4个可用变换系数值。但是,可用剩余值的数目和部分变换后的可用变换系数值的数目可以是任何适当的值,只要可用变换系数值的数目小于可用剩余值的数目即可。在一个实施例中,剩余块1001是8x8块,变换系数块1002是4x4块。在一个实施例中,剩余块1001是16x16块,变换系数块1002是8x8块。在一个实施例中,剩余块1001是32x32块,变换系数块1002是16x16块。

另外,图10示出了由于应用部分变换而不是完全变换而导致不可用的不可用变换系数值1004。如图所示,部分变换1010后的可用变换系数1003可以是来自完全变换的完全变换系数的左上角的那些变换系数。这些可用变换系数1003保留变换系数块1002中的低频信息,同时有效地丢弃高频信息。这些技术可以提供低频剩余块的更精确表示。但是,可用变换系数1003可以是来自完全变换的完全变换系数的任意部分,并且可以对应于任何频率变换系数。

图11示出了根据本公开的至少一些实施方式布置的对应于另一示例部分变换1110的示例数据结构1100。如图11所示,部分变换1110将剩余块1001的剩余值变换到频域,使得所得到的变换系数块1102具有比剩余块1001的可用剩余值的数目更少的可用变换系数1103(在所示出的示例中为9,标记为tc11、tc12、tc13、...、tc33)。在所示出的示例中,剩余块1001具有16个可用剩余值,变换系数块1102具有9个可用变换系数值。但是,可用剩余值的数目和部分变换后的可用变换系数值的数目可以是任意适当值,只要可用变换系数值的数目小于可用剩余值的数目即可。在一个实施例中,剩余块1001是8x8块,变换系数块1102是6x6块。在一个实施例中,剩余块1001是16x16块,变换系数块1102是12x12块。在一个实施例中,剩余块1001是32x32块,变换系数块1002是16x16块。另外,图11示出了由于应用部分变换而不是完全变换而导致不可用的不可用变换系数值1104(如参考图10所讨论的)。另外,如针对图10所讨论的,部分变换后的可用变换系数1103可以是来自完全变换的完全变换系数的左上角的那些变换系数。

如参考图10和图11所示,应用部分变换1001、1100可以不同程度地减少可用变换系数值1003、1103。例如,部分变换1001将可用变换系数值1003的数目减少到4,同时部分变换1100将可用变换系数值1103的数目减少到9。由于可用变换系数值的数目的这种变化,变换系数块1102相比变换系数块1002更好地表示剩余块1001,因为变换系数块1102具有更多丢失信息。因此,相比可以被描述为更温和、更激进或更少损失的部分变换1110,部分变换1010可以被描述为更激进的或更多损失的。如参考图12和图13进一步讨论的,可以根据对应于剩余分区或块的块的检测特征或特性,针对剩余分区或块执行更多或更少激进性的部分变换。

转向图9,处理继续进行到操作903。在操作903,将在操作902生成的变换系数量化为经量化的变换系数。可以使用任意适当的一种或多种技术对变换系数进行量化。经量化的变换系数的数目等于变换系数的数目。因此,可用的经量化的变换系数的数目也小于在操作902生成的剩余分区中的剩余值的数目。

处理继续进行到操作904。在操作904,对经量化的变换系数进行反向量化和反向变换,以生成重新构建的剩余分区(例如,tu)。可以使用与操作902、903执行的操作相反的任何适当的一种或多种技术来执行反向量化和反向变换。例如,可以执行反向变换,以生成具有与在操作901生成的剩余值相同数目的可用值的重新构建的剩余块(例如tu)。例如,反向变换可以考虑一些经过反向量化的系数为零的事实以减少计算数目,但是重新构建的剩余块可以是剩余值的完整阵列。因此,重新构建的剩余块具有与在操作902生成的剩余块相同的块形状(例如,大小)和相同数目的值。在一个实施例中,可以组合多个tu来形成cu或pu。

处理继续进行到操作905。在操作905,将在操作904生成的重新构建的剩余块添加到预测分区(如在操作901讨论的),以生成对应于原始分区(也在操作901讨论)的重新构建的分区(例如,cu或pu)。随后,可以使用重新构建的分区进行针对该分区作为其部分的块的分割决策和编码模式决策。例如,可以针对任意数目的候选编码模式选项(帧间和帧内)并且针对块的任意数目的候选分区(例如,候选pu或cu)重复处理900,以选择针对块(例如,lcu)的分割和针对对应这种分割方法的分区(例如,cu)的编码模式,并且可以针对这些分区(例如,cu)选择最佳分割决策和最佳编码模式(例如,将进一步评估)。

在另一实施例中,操作904包括仅对经量化的变换系数进行反向量化,以生成经反向量化的变换系数,这些经反向量化的变换系数也可以被称为重新构建的变换系数。随后,可以将重新构建的变换系数与在操作902生成的变换系数进行比较,用于做出分割决策和编码模式决策。例如,可以基于来自操作902的变换系数和反向量化输出(即,重新构建的变换系数)之间的平方差之和生成失真。例如,如上所述,重新构建的变换系数可以用于针对分区为其一部分的块的分割决策和编码模式决策。在一个实施例中,基于来自操作902的变换系数和反向量化输出(即,重新构建的变换系数)之间的平方差之和,基于经过反向变换的系数生成对应于预测分区(如针对操作902所讨论的)的失真度量。

可以针对所有剩余块或者仅针对某些上下文中的剩余块,执行针对处理900讨论的部分变换技术。例如,在本文讨论的某些上下文中,可以改变部分变换的强度。部分变换技术通过减少变换计算和量化、反向量化、以及反向变换计算,节省确定分割决策和选择编码模式时的计算时间和资源。如所讨论的,部分变换技术可以用于通过仅生成针对某个块的分区的变换系数块的一部分来确定针对该块的分割决策和编码模式决策。在一些实施例中,针对完全编码过程应用完全变换以生成标准兼容的经量化的变换系数,用于包括在比特流113中。

图12是示出根据本公开的至少一些实施方式布置的用于通过基于某个块的分区是否在视觉重要范围内仅生成针对该分区的变换系数块的一部分,来确定针对该块的分割决策和编码模式决策的示例处理1200的流程图。处理1200可以包括图12所示的一个或多个操作1201-1204。处理1200可以由系统(例如,系统100、编码系统600等)执行,以通过减少变换系数计算来提高数据利用效率。例如,通过在分割和编码模式决策期间减少执行变换时的可用变换系数的数目,减少计算从而实现更高效的处理。

处理1200开始于操作1301。在操作1301,针对输入视频的当前图片的区域、块、或分区应用检测器,以生成检测特征或检测指示符。例如,操作1201可以由检测器模块408执行。如图所示,区域、块、或分区的检测特征和/或检测指示符指示该区域、块、或分区是否在视觉重要范围中或者是否是视觉重要范围。

可以使用任意适当的一种或多种技术做出有关区域、块、或分区是否在视觉重要范围中或者是否是视觉重要范围的判定。在一个实施例中,基于区域、块、或分区是否包括边缘做出判定。例如,可以使用诸如canny边缘检测技术的任意适当的一种或多种技术针对区域、块、或分区执行边缘检测。如果检测到边缘,则将区域、块、或分区指示为是视觉检测范围或在视觉检测范围中。

在一个实施例中,基于区域、块、或分区是否是视频的静止背景范围而做出判定。可以通过确定并置区域、块、或分区、或者包括该区域、块、或分区的范围是否具有横跨帧(例如,在时间上横跨两个以上连续帧)的低失真(例如,通过绝对差值之和sad测量)来做出判定。例如,如果基于当前区域、块、分区、或范围与(例如,使用原始像素样本预测的)并置区域、块、分区、或范围之间的差异的sad小于针对一个或多个以前的时间图片和当前图片的阈值,则做出该区域、块、分区、或范围在静止背景中因而是视觉重要范围的判定。

在一个实施例中,基于区域、块、或分区是否在光环范围中做出判定。这样的判定可以通过确定运动估计失真(例如,基于当前区域、块、或分区与最佳候选预测me区域、块、或分区之间的差异的sad)大于第一阈值,对应于最佳候选预测me的最佳候选运动向量具有大于第二阈值的大小,以及当前区域、块、或分区的至少一个空间相邻的区域、块、或分区具有大于第三阈值的运动估计失真而做出,然后当前区域、块、分区被标识为光环区域、块、或分区,并且因而是视觉重要范围。例如,如果当前区域、块、或分区具有大(例如,大于第一阈值的)运动估计失真、长运动向量(例如,具有大于第二阈值的大小)、以及同样具有大(例如,大于第一阈值或第三阈值)运动估计失真的相邻区域、块、或分区,则该区域、块、或分区是光环区域、块、或分区并且被指示为视觉重要。

如图所示,处理继续进行到操作1202。在操作1202,做出有关区域、块、或分区是否视觉重要或者区域、块、或分区是否在视觉重要范围中的判定。如所讨论的,如果区域、块、或分区包括边缘、静止背景、或光环或者是在包含边缘、静止背景、或光环的范围内,则该区域、块、分区被指示为视觉重要。如果区域、块、分区不是视觉重要的,则处理继续进行到操作1203。在操作1203,向块(例如,lcu)的分区(例如,tu)应用最激进或较为激进的部分变换。例如,可以对块的分区进行部分变换和针对处理900讨论的用于分割决策和编码模式决策的其他处理,从而对块的分区进行与操作1204相比更激进的部分变换。例如,如针对图10和图11所讨论的,更激进的变换与较不激进的变换相比更多地减少可用变换系数的数目。在一个实施例中,在操作1203应用的最激进的部分变换提供数目为剩余块的剩余值的数目的1/4的可用变换系数。例如,对于4x4剩余块(分区),最激进的部分变换产生4个变换系数;对于8x8剩余块,最激进的部分变换产生16个变换系数,等等。

如果区域、块、分区是视觉重要的,则处理继续进行到操作1204。在操作1204,向块(例如,lcu)的分区(例如,tu)应用温和或较不激进的部分变换(相比在操作1203应用的部分变换)或者根本不应用部分变换(例如,应用完全变换)。例如,对块的分区进行部分变换和针对处理900讨论的用于分割决策和编码模式决策的其他处理,从而对块的分区进行与操作1203相比较不激进的部分变换。例如,如针对图10和图11所讨论的,更激进的变换与较不激进的变换相比更多地减少可用变换系数的数目。如所讨论的,在操作1203应用的最激进的部分变换可以提供数目为剩余块的剩余值的数目的1/4的可用变换系数。相反,在操作1204应用的较不激进的部分变换可以提供数目比剩余块的剩余值的数目的1/2更多的可用变换系数。例如,对于4x4剩余块,较不激进的部分变换可以产生9个变换系数;对于8x8剩余块,较不激进的部分变换可以产生36个变换系数,等等。

如针对操作1201、1202讨论的,如果区域、块、或分区是视觉重要的,则向分区(例如,tu)应用较不激进的部分变换(或完全变换);如果区域、块、或分区不是视觉重要的,则向当前块的分区(例如,tu)应用更激进的部分变换(或完全变换)。

图13是示出根据本公开的至少一些实施方式布置的通过基于块中的边缘检测仅生成针对块的分区的变换系数块的一部分,确定针对块的分割决策和编码模式决策的示例处理1300的流程图。处理1300可以包括图13所示的一个或多个操作1301-1307。处理1300可以由系统(例如,系统100、编码系统600等)执行,以通过减少变换系数计算来提高数据利用效率。例如,通过在分割和编码模式决策期间减少执行变换时的可用变换系数的数目,减少计算从而进行更高效的处理。

处理开始于操作1301。在操作1301,对于输入视频的当前图片的区域、块、或分区应用检测器,以生成检测特征或检测指示符。例如,操作1301可以由检测器模块408执行。如图所示,区域、块、或分区的检测特征指示该块是否包括边缘、以及在包括边缘的情况下对应于边缘的边缘强度。可以使用诸如canny边缘检测的任何适当的一种或多种边缘检测技术做出区域、块、或分区是否包括边缘的判定。如果区域、块、或分区不包括边缘,则可以使用任何适当的一种或多种技术生成边缘强度。在一个实施例中,边缘强度是区域、块、或分区的方差。在一个实施例中,边缘强度是横跨边缘的对比度的度量。在一些实施例中,可以通过设置阈值对方差或对比度测量进行分类,以将边缘标记为例如弱(例如,如果方差或对比度测量小于对应阈值)、强(例如,如果方差或对比度测量大于对应阈值)等。例如,可以将边缘分类为强或弱、强、适中、或弱等。

处理继续进行到判决操作1302。在操作1302,做出区域、块(例如,lcu)、或分区(cu)是否包括边缘的判定。如果区域、块、或分区不包括边缘,则处理继续进行到操作1303。在操作1303,向块(例如,lcu)的分区(例如,tu)应用更激进的部分变换。例如,可以对区域、块、或分区进行部分变换和针对处理900讨论的用于分割决策和编码模式决策的其他处理,从而对块的分区进行相比操作1306更激进的部分变换。例如,如针对图10和图11所讨论的,更激进的变换可以比更少激进性的变换更多地减少可用变换系数的数目。在一个实施例中,在操作1303应用更激进的部分变换提供了数目为剩余块的剩余值的数目的1/4的可用变换系数。例如,对于4x4剩余块(分区),更激进的部分变换产生4个变换系数;对于8x8剩余块,最激进的部分变换产生16个变换系数,等等。

转向判决操作1302,如果区域、块、或分区包括边缘,则处理继续进行到操作1304。在操作1304,做出有关边缘是否是弱边缘的判定。如果边缘是弱边缘,则处理继续进行到操作1303。如上面所讨论的,在操作1303,向区域、块、或分区的剩余分区(例如,tu)应用最激进的部分变换。如果边缘不是弱边缘,则处理继续进行到判决操作1305。在操作1305,做出有关边缘是否是强边缘的判定。如果边缘是强边缘,则处理继续进行到操作1307。在操作1307,不向块(例如,lcu)的剩余分区(例如,tu)应用部分变换。即,对于具有强边缘的块,使用完全变换评估分区用于进行分割决策和编码模式决策,从而使得用于完全变换的可用变换系数的数目等于剩余分区的剩余值的数目。例如,可以对块的分区进行完全变换和用于分割决策和编码模式决策的其他处理(例如,量化、反向量化、反向变换)。

如果区域、块、或分区不具有强边缘(例如,块具有中间或温和边缘),则处理继续进行到操作1306。在操作1306,向块(例如,lcu)的分区(例如,tu)应用温和或较不激进的部分变换(相比在操作1303应用的变换)。例如,可以对块的分区进行部分变换和针对处理900讨论的用于分割决策和编码模式决策的其他处理,从而对块的分区进行相比操作1303的较不激进的部分变换。例如,如针对图10和图11所讨论的,更激进的变换可以比较不激进的变换更多地减少可用变换系数的数目。如所讨论的,在操作1303应用的最激进的部分变换可以提供数目为剩余块的剩余值的数目的1/4的可用变换系数。相反,在操作1306应用的较不激进的部分变换可以提供数目大于剩余块的剩余值的数目的1/2的可用变换系数。例如,对于4x4剩余块,较不激进的部分变换可以产生9个变换系数;对于8x8剩余块,较不激进的部分变换可以产生36个变换系数,等等。

如所讨论的,操作1303、1306、1307可以包括在评估分割和编码模式决策时应用不同等级的部分变换。这样的分割和编码模式决策评估可以包括诸如,量化操作、反向量化操作、反向部分变换操作、各种候选分割和候选编码模式的代价比较等的本文中讨论的任何其他特性。所讨论的部分变换减少了这种分割和编码模式决策所需要的计算资源和时间。将理解的是,对完全编码过程应用完全变换,以生成标准兼容的经量化的变换系数,用以包括在比特流113中。

图14是示出根据本公开的至少一些实施方式布置的用于在视频编码中选择性地评估4x4分区的示例处理1400的流程图。处理1400可以包括图14所示的一个或多个操作1401-1409。处理1400可以由系统(例如,系统100、编码系统600等)执行,以通过选择性地减少分区评估来提高数据利用效率。例如,通过减少分割和编码模式评估中的分区评估的数目,减少计算以进行更高效的处理。在解耦编码系统的上下文中,处理1400可以由lcu环路421的组件实现。在集成编码系统的上下文中,处理1400可以由控制器601、检测器模块408、以及帧内预测模块603实现。

处理开始于操作1401。在操作1401,通过评估下至8x8像素大小(且不小于8x8)的最小候选分区(例如,cu),做出针对块的初始分割决策。例如,可以将块(例如,lcu)分割为候选分区,并且可以使用本文中讨论的帧间和帧内编码模式评估候选分区,从而使得最小可用候选分区是8x8分区。具体地,不评估4x4分区,以节省生成初始分割决策时的计算资源。在解耦编码器系统的上下文中,操作1401可以由lcu环路421的组件(例如,ss运动估计模块401、ss帧内搜索模块402、cu快速环路处理模块403、cu完全环路处理模块404、以及深度间决策模块405中的一个或多个)执行。例如,操作1401可以生成lcu分割数据415和cu模式414。在集成编码器系统的上下文中,操作1401可以由控制器601、运动估计和补偿模块602、帧内预测模块603、以及局部解码环路614的组件执行,以生成初始分割决策。另外,操作1401可以生成针对块的对应于初始分割决策的初始分区的初始编码模式决策。在任何情况下,操作1401生成针对块(例如,lcu)的初始分割决策,从而评估下至8x8分区大小的最小候选分区并跳过对更小分区的评估。

处理继续进行到决策操作1402。在操作1402,做出有关块(例如,lcu)的初始分割决策的任意候选分区(例如,cu)是否是8x8分区的判定。如果不是,则处理结束并且使用初始分割决策作为块的最终分割决策(例如,lcu)。另外,针对分区(例如,cu)的初始编码模式决策被用作最终编码模式决策。例如,可以将初始分割决策和初始编码模式决策作为最终分割决策和最终编码模式决策,以生成最终lcu分割数据和cu编码模式数据1421。例如,如果当前块(例如,lcu)不具有作为初始分割决策的部分的任意8x8分区(例如,cu),则不针对4x4分区(例如,cu)评估编码模式。即,处理1400可以提供4x4编码模式评估(例如,cu4x4),仅作为细化阶段。仅在对块(例如,lcu,64x64)到8x8分区(例如,cu)大小的分割和编码模式评估之后,针对4x4分区测试帧内和/或帧间编码模式。如果在(如上所述的)这种处理之后块的分区(例如,cu)均不是8x8大小,则忽略针对4x4大小编码单元的编码模式的测试。在图14的讨论中,为了清楚,使用术语“块”和“分区”。如本文中所讨论的,可以对任意适当的lcu、cu、宏块等执行处理,并且可以将其分区称为子块、cu、块等。

转到决策操作1402,如果块(例如,lcu)的任意分区(例如,cu)为8x8分区(例如,cu),则处理继续进行从而评估针对4x4大小编码单元的帧内和/或帧间模式的测试。在一个实施例中,针对具有与之对应的帧间模式或帧内模式的8x8分区(例如,cu)提供这样的继续处理。在另一实施例中,仅针对具有与之对应的帧内模式的8x8分区(例如,cu)提供这样的继续处理。在另一实施例中,仅针对具有与之对应的帧间模式的8x8分区(例如,cu)提供这样的继续处理。例如,决策操作1402可以包括确定当前块(例如,lcu)单元是否具有任何8x8帧内编码模式分区(例如,cu)。如果不具有,则处理如上所述地结束(即使该块具有8x8帧间编码模式编码单元)。如果具有,则处理继续针对4x4大小分区(例如,cu)的帧内和/或帧间模式的测试。

如图所示,处理继续进行到操作1403。在操作1403,使用任何适当的一种或多种技术选择第一8x8分区(例如,cu)。处理继续进行到可选的决策操作1404。在操作1404,做出有关是否将所选择的8x8分区(例如,cu)分割为4x4分区(例如,cu)并且根据操作1405的结果进行评估的判定。如图所示,在操作1405,可以向当前块(例如,lcu)应用一个或多个检测器。例如,操作1405可以由检测器模块408执行。

在一个实施例中,可以在操作1405(并且经由检测器模块408)应用平坦有噪声(flatandnoisy)块(例如,lcu)或区域(例如,包括块和图片的其他部分的区域)检测器。可以使用诸如针对图5讨论的技术的任何适当的一种或多种技术应用平坦有噪声块或区域检测器。

图15是根据本公开的至少一些实施方式布置的示例平坦有噪声区域检测器1500的说明性示图。如图15所示,平坦有噪声区域检测器1500可以包括降噪器1501、差分器1502、平坦度检查模块1503、以及噪声检查模块1504。如图所示,降噪器1501接收输入区域1511并使用诸如滤波技术的任何适当的一种或多种技术对输入区域1511进行降噪处理,以生成降噪区域1512。输入区域1511可以是诸如块(例如,lcu)、包括该块和其他块(例如,lcu)的区域(例如,目标块在区域中间的9x9块的区域)、或包括该块的切片的任何适当区域。降噪区域1512被提供给平坦度检查模块1503,该平坦度检查模块使用任何适当的一种或多种技术检查降噪区域1512的平坦度。在一个实施例中,平坦度检查模块1503确定降噪区域1512的方差并将该方差与预定阈值进行比较。如果该方差没有超过阈值,则提供指示降噪区域1512平坦的平坦度指示符1513。另外,输入区域1511和降噪区域1512被提供给差分器1502,该差分器可以使用任何适当的一种或多种技术对输入区域1511和降噪区域1512进行差分以生成差分区域1514。如图所示,差分区域1514被提供给噪声检查模块1504,该噪声检查模块使用任何适当的一种或多种技术检查差分区域1514以确定输入区域1511是否是噪声区域。在一个实施例中,噪声检查模块1504确定差分区域1514的方差并且将该方差与预定阈值进行比较。在方差满足或超过阈值时,则提供指示输入区域1511有噪声的噪声指示符1515。如果针对输入区域1511的平坦度指示符1513和噪声指示符1515都是肯定的,则确定输入区域1511是平坦的、有噪声区域。

转向图14的判决操作1404,如果块是平坦有噪声块(或者如果块在平坦有噪声块中),则忽略针对4x4分区(例如,cu)的帧内和/或帧间编码模式的评估,从而使得处理可以继续进行到下面讨论的判决操作1409。例如,当4x4帧内模式针对压缩视频不太可能提高视觉质量时,禁用针对平坦有噪声lcu的4x4分区细化(例如,针对4x4分区的编码模式的评估)可以提供忽略这种评估的好处。

转到操作1405,另外或者替代地,可以在操作1405向块(例如,lcu)或包括块的区域应用边缘检测器。例如,边缘检测可以由检测器模块408应用。可以使用诸如canny边缘检测技术的任何适当的一种或多种技术应用边缘检测器。在一个实施例中,当在当前块(例如,lcu)(或者包括当前块的区域)中检测到边缘时,提供针对4x4分区(例如,cu)的帧内和/或帧间模式的评估,否则,忽略针对4x4分区(例如,cu)的帧内和/或帧间编码模式的评估。提供针对其中具有边缘的块(例如,lcu)的4x4分区细化(例如,针对4x4分区的编码模式的评估)提高了视觉质量并减少了伪影。

可以使用任何适当的一种或多种技术,组合所讨论的有关是否提供针对4x4分区(例如,cu)的编码模式的检测技术和判决。在一个实施例中,评估所有8x8分区(例如,cu)。在另一实施例中,评估所有8x8帧内分区(例如,cu)(但是不评估8x8帧间分区(例如,cu))。在一个实施例中,评估其中具有边缘的块(例如,lcu)中的所有8x8分区(例如,cu)。在另一实施例中,仅评估其中具有边缘的块(例如,lcu)中的8x8帧内分区(例如,cu)。在一个实施例中,评估平坦且有噪声的8x8分区以外的所有8x8分区(例如,cu)。在另一实施例中,仅评估并非平坦有噪声的8x8帧内分区(例如,cu)。

对于评估当前8x8分区(例如,cu)的情况,处理继续进行到操作1406。在操作1406,针对从操作1403处选择的当前8x8分区(例如,cu)分割出的每个4x4分区(例如,cu)评估帧内和/或帧间编码模式。在一个实施例中,当8x8分区(例如,cu)的初始编码模式为帧内模式时,在操作1406针对4x4分区(例如,cu)仅评估帧内模式。类似地,在一个实施例中,当8x8分区(例如,cu)的初始编码模式为帧间模式时,在操作1406针对4x4分区(例如,cu)仅评估帧间模式。

在针对4x4分区(例如,cu)评估帧内模式的实施例中,可以评估所有可用的帧内编码模式或者可以评估可用帧内编码模式的有限集合。在一个实施例中,将所评估的帧内编码模式限制到可选操作1407所提供的编码模式。如操作1407所示,操作1406可以实现可用帧内编码模式的有限子集,从而使得该子集仅包括针对当前8x8编码单元的最佳帧内编码模式(如果可用)、dc帧内模式、平面帧内模式、以及针对当前8x8编码单元的最佳帧内编码模式的一个或多个相邻模式。例如,对于特定的帧内定向模式,直接相邻模式是在方向上邻近该特定的帧内定向模式的模式,并且相邻模式包括直接相邻模式和来自直接相邻模式的有限数目的直接相邻模式。例如,对于hevc帧内模式5,直接相邻模式是帧内模式4和6,附加的相邻模式是模式3和7(以及2和8等)。在一个实施例中,一个或多个相邻模式仅包括两个直接相邻模式。在一个实施例中,一个或多个相邻模式包括两个直接相邻模式和该两个直接相邻模式的两个附加的直接邻居(即,每个直接相邻模式有一个邻居)。在一个实施例中,一个或多个相邻模式包括两个直接相邻模式和该两个直接相邻模式的四个附加的直接邻居(即,每个直接相邻模式有两个邻居)。但是,可以使用任意数目的相邻模式。

在针对4x4分区(例如,cu)评估帧间模式的实施例中,可以执行完全运动估计搜索或者可以将运动估计搜索限制到以针对8x8分区的最佳帧间模式的最佳运动向量候选指示的位置为中心的范围(或者如果双向预测是最佳帧间模式,则以两个位置为中心的两个范围)。在一个实施例中,帧间编码模式和运动估计搜索被限制到可选操作1407提供的区域。如操作1407所示,操作1406可以实现运动估计搜索和可用帧间编码模式的有限子集,从而使得该子集或限制仅搜索以由针对当前8x8分区的最佳帧间模式的运动向量候选指示的位置为中心的有限范围。如所讨论的,如果针对当前8x8分区的最佳帧间模式是双向预测,则使用以两个运动向量候选为中心的两个范围。例如,对于特定的帧间模式运动向量,将针对4x4分区的搜索区域定义为参考图片的以当前8x8分区的运动向量指示的参考图片中的位置为中心的区域(例如,原始像素样本或重新构建的像素样本的区域)。以当前8x8分区的运动向量指示的参考图片的位置为中心的搜索范围或区域可以被限制到任何搜索范围,例如,以该位置为中心的36x36像素搜索范围或者100x100像素搜索范围。但是,可以使用比穷尽搜索小的任何大小的搜索范围(例如,正方形搜索范围)。

如图所示,处理从操作1406继续进行到操作1408。在操作1408,选择针对四个4x4分区(例如,cu)接收的编码模式和针对8x8分区(例如,cu)接收的编码模式之间的更好的候选。可以使用诸如速率失真优化技术之类的任何适当的一种或多种技术选择更好的编码模式候选。在解耦编码系统的上下文中,可以仅使用原始像素样本(例如,不进行完全解码环路重新构建)进行候选生成和选择,从而可以如本文中其他位置所讨论地使用仅亮度样本或亮度和色度样本。在集成编码系统的上下文中,可以使用(例如,使用局部解码环路614)重新构建的像素样本进行候选生成和选择,从而使得如本文中其他位置所讨论地使用仅亮度样本或亮度和色度样本。如果选择四个4x4分区(例如,cu)(每个分区具有相应的帧内或帧间编码模式),则对分割决策和cu编码模式决策数据进行更新以生成最终分割和编码模式1421。例如,最终分割和编码模式1421指示4x4分割和针对每个4x4编码单元的帧内或编码模式。

处理从操作1408继续进行到判决操作1409。在操作1409,做出关于(例如,在操作1403选择的)当前8x8分区是否是当前块(例如,lcu)中的最后一个8x8分区(例如,cu)的判定。如果是,则处理结束并且生成针对块(例如,lcu)的最终lcu分割和cu编码模式1421。如果不是,则处理继续进行到操作1410。在操作1410,选择下一个8x8分区(例如,cu),处理1400如上所述地继续(在判决操作1404开始),直到处理了最后一个8x8分区(例如,cu)为止。

图16是示出根据本公开的至少一些实施方式布置的用于视频编码的示例处理1600的流程图。处理1600可以包括图16所示的一个或多个操作1601-1604。处理1600可以形成视频编码处理的至少一部分。通过非限制性的示例,处理1600可以形成由诸如系统1700的本文讨论的任何设备或系统执行的视频编码处理的至少一部分。另外,将参考图17的系统1700描述处理1600。

图17是根据本公开的至少一些实施方式布置的用于视频编码的示例系统1700的说明性示意图。如图17所示,系统1700可以包括中央处理器1701、视频预处理器1702、视频处理器1703、以及存储器1704。另外,如图所示,视频预处理器1702可以包括或实现分割和模式决策模块101,视频处理器1703可以包括或实现编码器102。另外或者替代地,视频处理器1703可以包括或实现编码器600。在系统1700的示例中,存储器1704可以存储诸如输入视频数据、图片数据、分割数据、模式数据、和/或本文讨论的任何其他数据的视频数据或相关内容。

如图所示,在一些实施例中,通过视频预处理器1702实现分割和模式决策模块101。在其他实施例中,通过中央处理器1701或者诸如图像处理器、图形处理器等的另一处理单元实现分割和模式决策模块101或其部分。另外,如图所示,在一些实施例中,通过视频处理器1703实现编码器102。在其他实施例中,通过中央处理器1701或者诸如图像处理器、图形处理器等的另一处理单元实现编码器102及其部分。另外,如图所示,在一些实施例中,通过视频处理器1703实现编码系统600(在图17中标记为编码器600)。在其他实施例中,通过中央处理器1701或者诸如,图像处理器、图形处理器等的另一处理单元实现编码器600或其部分。

视频预处理器1702可以包括可以提供本文讨论的操作的任意数目和类型的视频、图像、或图形处理单元。可以通过软件或硬件或它们的组合实现这些操作。例如,视频预处理器1702可以包括专用于操控从存储器1704获取的图片、图片数据等的电路。类似地,视频处理器1703可以包括可以提供本文中讨论的操作的任意数目和类型的视频、图像、或图形处理单元。这些操作可以通过软件、硬件、或它们的组合实现。例如,视频处理器1703可以包括专用于操控从存储器1704获取的图片、图片数据等的电路。中央处理器1701可以包括可以向系统1700提供控制和其他高级功能和/或提供本文讨论的任意操作的任意数目和类型的处理单元或模块。存储器1704可以是诸如,易失性存储器(例如,静态随机存取存储器(sram)、动态随机存取存储器(dram)等)或非易失性存储器(例如,闪存等)等的任意类型的存储器。在非限制性示例中,存储器1704可以由高速缓冲存储器实现。

在一个实施例中,分割和模式决策模块101、编码器102、以及编码器600中的一者或多者或它们的部分由执行单元(eu)实现。eu可以包括例如,诸如可以提供各种可编程逻辑功能的一个或多个逻辑内核的可编程逻辑或电路。在一个实施例中,通过诸如固定功能电路等的专用硬件实现分割和模式判决模块101、编码器102、以及编码器600中的一者或多者或它们的部分。固定功能电路可以包括专用逻辑或电路,并且可以提供可以映射到用于固定目的或功能的专用逻辑的一组固定功能入口点。在一个实施例中,通过现场可编程网格阵列(fpga)实现分割和模式决策模块101。

转向讨论图16,处理1600可以开始于操作1601。在操作1601,接收用于编码的输入视频。例如,输入视频可以包括多个图片,从而使得该多个图片中的第一图片包括包含个体块的区域,其中个体块包括多个分区。如本文所讨论的,分区可以是编码单元、预测单元、变换单元等中的任一者或者它们的组合。

处理继续进行到操作1602。在操作1602,向区域、个体块、或一个或多个分区中的至少一者应用一个或多个检测器,以生成一个或多个检测指示符。检测指示符可以包括本文讨论的任意指示符,例如,针对操作1603讨论的指示符。

处理继续进行到操作1603。在操作1603,使用检测指示符生成针对个体块的分割决策并生成个体块的对应于分割决策的分区的编码模式决策。如图所示,分割决策和编码模式决策基于以下各项中的至少一项:针对这些分区中的第一分区生成亮度和色度评估决策或仅亮度评估决策,针对这些分区中具有初始合并模式决策的第二分区生成合并或跳过模式决策,针对这些分区中的第三分区仅生成变换系数块的一部分,或者仅针对这些分区中作为8x8初始编码分区的第四分区评估4x4模式。

在一个实施例中,决策指示符包括第一分区的亮度平均值是否超过第一阈值的指示符、第一分区的第一色度通道平均值是否超过第二阈值的指示符、以及第一分区的第二色度通道平均值是否超过第三阈值的指示符,并且生成分割决策和编码模式决策包括在亮度平均值不超过第一阈值、第一色度通道平均值不超过第二阈值、且第二色度通道平均值不超过第三阈值时,通过针对第一分区应用仅亮度评估决策生成针对第一分区的亮度和色度评估决策或仅亮度评估决策。例如,仅亮度评估决策将分割和编码模式决策限制为仅使用亮度信息。在一个实施例中,检测指示符还包括有关第一分区是否包括边缘的指示符和第一分区是否在未覆盖范围中的指示符,并且生成分割决策和编码模式决策包括响应于亮度平均值、第一色度通道平均值、或第二色度通道平均值中的任一者超过它们各自的阈值并且第一分区包括边缘或者在未覆盖范围中,通过针对第一分区应用亮度和色度评估决策生成针对第一分区的亮度和色度评估决策或仅亮度评估决策。例如,亮度和色度评估决策提供了使用亮度信息和色度信息二者的分割和编码模式决策。

在一个实施例中,图片包括包含第一分区的i切片,生成分割决策和编码模式决策包括响应于第一分区在i切片中,通过指示针对第一分区仅使用亮度来生成针对图片的每个分区的亮度和色度评估决策或仅亮度评估决策。在一个实施例中,多个图片包括基层图片和非基层图片,基层图片是非基层图片的参考图片,但是非基层图片不是基层图片的参考图片,图片是包含b切片的基层图片,b切片包括第一分区,并且生成分割决策和编码模式决策包括响应于第一分区在基层b切片中,通过指示针对第一分区使用亮度和色度来生成针对图片的每个分区的亮度和色度评估决策或仅亮度评估决策。在另一实施例中,图片是包括b切片的非基层图片,b切片包括第一分区,并且生成分割决策和编码模式决策包括响应于第一分区在非基层b切片中并且这些分区具有初始合并模式决策,通过指示仅针对第一分区使用亮度和色度来在合并模式和跳过模式之间选择,生成针对图片的每个分区的亮度和色度评估决策或仅亮度评估决策。

在一个实施例中,检测指示符包括有关针对第二分区的初始跳过模式编码代价和初始合并模式编码代价之间的差值的大小是否超过阈值的判定,并且生成分割决策和编码模式决策包括通过在差值的大小超过阈值时针对第二分区选择跳过模式编码或合并模式编码生成最终跳过或合并模式决策或者在差值的大小不超过阈值时将跳过模式编码或合并模式编码的选择推迟到完整编码过程合并模式或跳过模式决策,来生成合并或跳过模式决策。

在一个实施例中,生成分割决策和编码模式决策包括通过对个体块的第三分区与对应于编码模式的预测分区进行差分生成剩余分区,评估针对第三分区的编码模式来生成编码模式决策,通过对剩余分区执行部分变换生成变换系数块的一部分的变换系数(该部分中的变换系数的数目小于剩余分区的值的数目)并将变换系数块的其余变换系数设置为零来生成基于剩余分区的变换系数块,对变换系数块进行量化以生成经量化的变换系数,对经量化的变换系数进行反向量化,以及基于经反向量化的变换系数生成对应于预测分区的失真度量。例如,第三分区可以是tu。在一个实施例中,检测指示符包括有关区域、个体块、或第三分区是否是视觉重要的指示符,并且生成分割决策和编码模式决策包括通过在区域、个体块、或第三分区视觉重要时生成具有第一数目的可用变换系数的第一变换系数块或者在区域、个体块、或第三分区不是视觉重要的时生成具有第二数目的可用变换系数的第二变换系数块,来仅生成变换系数块的一部分,其中第二数目小于第一数目。

在一个实施例中,生成分割决策包括确定针对个体块的初始分割决策,该确定处理包括评估个体块的8x8候选分区的最小候选分区,初始分割决策将个体块分割为第四分区和一个或多个其他分区,并且生成分割决策还包括响应于第四分区是8x8分区,评估第四分区的4x4子分区。在一个实施例中,检测指示符还包括针对8x8第四分区的最佳模式,评估4x4子分区包括在最佳模式是帧间模式时针对4x4子分区仅评估帧间模式并且在最佳模式是帧内模式时针对4x4子分区仅评估帧内模式。在一个实施例中,检测指示符还包括针对8x8第四分区的最佳帧间模式的所选择的运动向量,并且评估4x4子分区包括使用所选择的运动向量定义用于运动估计搜索的搜索中心来执行针对每个4x4子分区的运动估计搜索。在一个实施例中,检测指示符还包括对应于8x8第四分区的最佳帧内模式,并且评估4x4子分区仅使用对应于8x8第四分区的最佳帧内模式、dc模式、平面模式、以及与最佳帧内模式相邻的一个或多个帧内模式。

处理继续进行到操作1604。在操作1604,至少基于分割决策对个体块进行编码,以生成输出比特流的一部分。可以使用任何适当的一种或多种技术对个体块进行编码,并且比特流可以是诸如标准兼容比特流的任何适当的比特流。

可以针对任意数目的输入视频序列、图片、编码单元、块等串行或并行地重复处理1600任意次数。如所讨论的,处理1600可以通过限制用于分割和编码模式决策的信息来提高视频数据利用效率。

本文中描述的系统的各种组件可以实现在软件、固件、和/或硬件、和/或它们的任意组合中。例如,可以至少部分地通过诸如,可以在计算系统(例如,智能电话)中找到的计算片上系统(soc)的硬件提供本文讨论的系统或设备的各种组件。本领域技术人员可以认识到,本文描述的系统可以包括相应附图中没有描绘的附加组件。例如,本文讨论的系统可以包括为了清楚没有示出的诸如,比特流多路复用器或解复用器模块等的附加组件。

尽管本文讨论的示例处理的实施方式可以包括按照所示出的顺序进行所有操作,但是本公开在这方面不做限制。在各种示例中,本文中的示例处理的实施方式可以仅包括所示出的操作、按照不同于示出的顺序执行的操作、或者附加操作的子集。

另外,本文讨论的任意一个或多个操作可以响应于由一个或多个计算机程序产品提供的指令进行。这些程序产品可以包括提供指令的信号承载介质,这些指令在被例如,处理器执行时可以提供本文描述的功能。计算机程序产品可以在一个或多个机器可读介质的任意形式中提供。因此,例如,包括一个或多个图形处理单元或处理器内核的处理器可以响应于由一个或多个机器可读介质递送到处理器的程序代码和/或指令或指令集进行本文中的示例处理的一个或多个块。一般,机器可读介质可以递送程序代码和/或指令或指令集形式的软件,这些程序代码和/或指令或指令集可以使本文描述的任意设备和/或系统实现本文讨论的操作的至少一部分和/或本文讨论的设备、系统、或任意模块或组件的任意部分。

如本文描述的任意实施方式中所使用的,术语“模块”是指被配置为提供本文中描述的功能的软件逻辑、固件逻辑、硬件逻辑、和/或电路的任意组件。软件可以具体化为软件包、代码和/或指令集或指令,并且如本文描述的任意实施方式中使用的,术语“硬件”可以包括例如,单独或任意组合的硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路、和/或存储由可编程电路执行的指令的固件。模块可以一起或分别具体化为形成更大的系统,例如,集成电路(ic)、片上系统(soc)等的部分的电路。

图18是根据本公开的至少一些实施方式布置的示例系统1800的说明性示意图。在各种实施方式中,系统1800可以是移动系统,尽管系统1800不限于该上下文。例如,系统1800可以结合到个人计算机(pc)、膝上型计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如,智能电话、智能平板、或智能电视)、移动互联网设备(mid)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数字单反(dslr)相机)等中。

在各种实施方式中,系统1800包括耦合到显示器1820的平台1802。平台1802可以从诸如,一个或多个内容服务设备1830、一个或多个内容递送设备1840、或者其他类似内容源的内容设备接收内容。包括一个或多个导航特征的导航控制器1850可以用来与例如,平台1802和/或显示器1820交互。下面更详细地描述这些组件中的每个组件。

在各种实施方式中,平台1802可以包括芯片集1805、处理器1810、存储器1812、天线1813、存储设备1814、图形子系统1815、应用1816、和/或无线电1818的任意组合。芯片集1805可以提供处理器1810、存储器1812、存储设备1814、图形子系统1815、应用1816、和/或无线电1818之间的相互通信。例如,芯片集1805可以包括能够提供与存储设备1814的相互通信的存储器适配器。

处理器1810可以实现为复杂指令集计算机(cisc)或精简指令集计算机(risc)处理器、x86指令集兼容处理器、多内核、或者任何其他微处理器或中央处理单元(cpu)。在各种实施方式中,处理器1810可以是一个或多个双内核处理器、一个或多个双内核移动处理器等。

存储器1812可以实现为诸如但不限于,随机存取存储器(ram)、动态随机存取存储器(dram)、或者静态ram(sram)的易失性存储器设备。

存储设备1814可以实现为诸如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池备份sdram(同步dram)、和/或网络可访问的存储设备的非易失性存储设备。在各种实施方式中,存储设备1814可以包括例如,在包括多个硬盘驱动器时增加对于有价值的数字媒体的存储性能增强保护的技术。

图形子系统1815可以执行例如,用于显示的静止或视频图像的处理。图形子系统1815可以是例如,图形处理单元(gpu)或视觉处理单元(vpu)。模拟或数字接口可以用于通信地耦合图形子系统1815和显示器1820。例如,接口可以是高清晰度多媒体接口、显示端口、无线hdmi、和/或无线hd兼容技术中的任意接口。图形子系统1815可以集成在处理器1810或芯片集1850中。在一些实施方式中,图形子系统1815可以是通信地耦合到芯片集1805的独立设备。

可以在各种硬件架构中实现本文讨论的图形和/或视频处理技术。例如,图形和/或视频功能可以集成在芯片集中。替代地,可以使用离散的图形和/或视频处理器。作为另一种实施方式,可以通过包括多内核处理器在内的通用处理器提供图形和/或视频功能。在进一步的实施例中,可以在消费电子设备中实现这些功能。

无线电1818可以包括能够使用各种适当的无线通信技术发送和接收信号的一个或多个无线电。这些技术可以包括横跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wlan)、无线个人域网(wpan)、无线城域网(wman)、蜂窝网络、以及卫星网络。在横跨这些网络进行通信时,无线电1818可以根据任意版本的一种或多种可用标准进行操作。

在各种实施方式中,显示器1820可以包括任意电视类型的监视器或显示器。显示器1820可以包括例如,计算机显示屏、触摸屏显示器、视频监视器、电视类设备、和/或设备。显示器1820可以是数字和/或模拟的。在各种实施方式中,显示器1820可以是全息显示器。另外,显示器1820可以是可以接收视觉投影的透明表面。这些投影可以递送各种类型的信息、图像、和/或对象。例如,这些投影可以是用于移动增强现实(mar)应用的视觉叠加。在一个或多个软件应用1816的控制下,平台1802可以在显示器1820上显示用户界面1822。

在各种实施方式中,一个或多个内容服务设备1830可以由任何国家、国际、和/或独立服务容宿因此对于平台1802而言可以经由例如,互联网访问。一个或多个内容服务设备1830可以耦合到平台1802和/或显示器1820。平台1802和/或内容服务设备1830可以耦合到网络1860,以传送(例如,发送和/或接收)去往和来自网络1860的媒体信息。内容递送设备1840也可以耦合到平台1802和/或显示器1820。

在各种实施方式中,一个或多个内容服务设备1830可以包括有线电视盒、个人计算机、网络、电视、能够递送数字信息和/或内容的互联网使能设备或电器、以及能够经由网络1860或直接在内容提供商和平台1802和/或显示器1820之间进行单向或双向通信的任何其他类似设备。将明白的是,可以经由网络1860单向或双向地传送去往和来自系统1800中的任意一个组件的内容。内容的示例可以包括包括例如,视频、音乐、医疗、以及游戏信息等在内的任意媒体信息。

一个或多个内容服务设备1830可以接收诸如,包括媒体信息、数字信息、和/或其他内容的有线电视节目的内容。内容提供商的示例可以包括任何有线或卫星电视或互联网内容提供商。所提供的示例不用于以任何方式限制根据本公开的实施例。

在各种实施方式中,平台1802可以从具有一个或多个导航特征的导航控制器1850接收控制信号。导航特征可以用来例如,与用户界面1822交互。在各种实施例中,导航可以是指针设备,该指针设备可以是允许用户向计算机输入空间(例如,连续多维)数据的计算机硬件组件(具体地,人机接口设备)。诸如图形用户界面(gui)以及电视机和监视器的很多系统允许用户使用身体姿态控制计算机或电视并向计算机或电视提供数据。

可以通过移动显示器上显示的指针、光标、聚焦环、或者其他视觉指示符的移动,在显示器(例如,显示器1820)上复制导航特征的移动。另外,在软件应用1816的控制下,位于导航上的导航特征可以映射到例如,用户界面1822上显示的虚拟导航特征。在各种实施例中,可以不是单独组建,但是可以集成到平台1802和/或显示器1820中。但是,本公开不限于本文示出或描述的上下文或元件。

在各种实施方式中,驱动器(未示出)可以包括使能用户在诸如电视的平台1802最初启动后并且被使能时立刻开启并关断平台1802的技术。程序逻辑可以允许平台1802在即使该平台被关断时也能将内容流传输到媒体适配器或其他内容服务设备1830或内容递送设备1840。另外,芯片集1805可以包括支持例如,5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可以包括外围组件互连(pci)快速图形卡。

在各种实施方式中,可以集成系统1800中示出的任意一个或多个组件。例如,可以集成平台1802和内容服务设备1830,或者可以集成平台1802和内容递送设备1840,或者可以集成平台1802、内容服务设备1830、以及内容递送设备1840。在各种实施例中,平台1802和显示器1820可以是集成单元。例如,可以集成显示器1820和内容服务设备1830,或者可以集成显示器1820和内容递送设备1840。这些示例不意味着限制本公开。

在各种实施例中,系统1800可以实现为无线系统、有线系统、或它们二者的组合。当实现为无线系统时,系统1800可以包括适用于在诸如,一个或多个天线、发射机、接收机、收发信机、放大器、滤波器、控制逻辑等的无线共享媒体上进行通信的组件和接口。无线共享媒体的示例可以包括诸如,rf频谱等的无线频谱的部分。当实现为有线系统时,系统1800可以包括适用于在有线通信媒体,例如,输入/输出(i/o)适配器、将i/o适配器与对应的有线通信介质连接的物理连接器、网络接口卡(nic)、盘控制器、视频控制器、音频控制器等的有线通信媒体上进行通信的组件和接口。有线通信媒体的示例可以包括钢绳金属引线、印刷电路板(pcb)、背板、开关结构、半导体材料、双绞线、同轴电缆、光纤等。

平台1802可以建立传送信息的一个或多个逻辑或物理信道。信息可以包括媒体信息和控制信息。媒体信息可以指表示用于用户的内容的任何数据。内容的示例可以包括例如,来自语音会话、视频会议、流视频、电子邮件(email)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音会话的数据可以是例如,语音信息、静默期、背景噪声、舒适噪声、声调等。控制信息可以指表示用于自动系统的命令、指令、或控制字的任何数据。例如,控制信息可以被用来将媒体信息路由通过系统,或者指示节点以预定方式处理媒体信息。但是,实施例不限于图18中描述或示出的上下文或者元件。

如上所述,系统1800可以具体化为各种物理形式或形式因子。图19示出了根据本公开的至少一些实施方式布置的示例小型因子设备1900。在一些示例中,系统1800可以经由设备1900实现。在其他示例中,系统100及其部分可以经由设备1900实现。在各种实施例中,例如,设备1900可以实现为具有无线功能的移动计算设备。移动计算设备可以指具有处理系统和移动电源(例如,一个或多个电池)的任何设备。

移动计算设备的示例可以包括个人计算机(pc)、膝上型计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、智能设备(例如,智能电话、智能平板、或智能移动电视)、移动互联网设备(mid)、消息传递设备、数据通信设备、相机等。

移动计算设备的示例还可以包括被布置为由人穿戴的计算机,例如,手腕计算机、手指计算机、项链计算机、眼镜计算机、夹带计算机、臂带计算机、鞋计算机、衣服计算机、以及其他可穿戴计算机。在各种实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以通过示例的方式利用实现为智能电话的移动计算设备描述了一些实施例,但是可以理解的是,可以使用其他无线移动计算设备实现其他实施例。实施例不限于本上下文。

如图19所示,设备1900可以包括具有正面1901和背面1902的外壳。设备1900包括显示器1904、输入/输出(i/o)设备1906、以及集成天线1908。设备1900还可以包括导航特征1912。i/o设备1906可以包括用于向移动计算设备输入信息的任何适当的i/o设备。i/o设备1906的示例可以包括字母数字键盘、数字小键盘、触摸板、输入按键、按钮、开关、麦克风、扬声器、语音辨认设备和软件等。信息也可以通过麦克风(未示出)被输入到设备1900,或者可以由语音辨认设备进行数字化。如图所示,设备1900可以包括集成到设备1900的背面1902(或其他位置)的闪光灯1910和相机1905(例如,包括镜头、光圈、以及成像传感器)。在其他实例中,相机1905和闪光灯1910可以集成到设备1900的正面1901,或者可以提供前置和后置相机。相机1905和闪光灯1910可以是例如,相机模块的产生图像数据的组件,该图像数据被处理为流传输视频,该流传输视频被输出到显示器1904和/或通过天线1908从设备1900远程传送。

可以使用硬件元件、软件元件、或者它们二者的组合实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、进程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或它们的任意组合。可以根据任意数目的因素来确定是否使用硬件元件和/或软件元件实现实施例,这些因素是例如,期望计算速率、功率等级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其他设计或性能约束。

可以通过表示处理器中的各种逻辑的机器可读介质上存储的代表性指令实现至少一个实施例的一个或多个方面,这些代表性指令在被机器读取时使得该机器制造执行本文描述的技术的逻辑。被称为ip内核的这些表示可以被存储在有形机器可读介质上并被提供给各种消费者或制造设施,以加载到实际制造逻辑或处理器的制造机。

尽管参考各种实施方式描述了本文给出的某些特征,但是本描述不希望理解为限制性含义。因此,对于本公开所涉及领域的技术人员显而易见的本文描述的实施方式的各种修改和其他实施方式被认为出于本公开的精神和范围内。

下面的实施例涉及进一步的实施例。

在一个或多个第一实施例中,一种计算机实现的视频编码方法,包括:接收用于编码的输入视频,该输入视频包括多个图片,该多个图片中的第一图片包括包含个体块的区域,其中,个体块包括多个分区;向该多个分区中的一个或多个分区、区域、或个体块中的至少一者应用一个或多个检测器,以生成一个或多个检测指示符;基于以下各项中的至少一项,使用检测指示符生成针对个体块的分割决策并针对个体块的对应于分割决策的分区生成编码模式决策:针对分区中的第一分区生成亮度和色度评估决策或仅亮度评估决策,针对分区中具有初始合并模式决策的第二分区生成合并或跳过模式决策,针对分区中的第三分区仅生成变换系数块的一部分,或者仅针对分区中作为8x8初始编码分区的第四分区评估4x4模式;以及至少基于分割决策对个体块进行编码,以生成输出比特流的一部分。

在一个或多个第二实施例中,对于任意一个第一实施例,检测指示符包括关于第一分区的亮度平均值是否超过第一阈值、第一分区的第一色度通道平均值是否超过第二阈值、以及第一分区的第二色度通道平均值是否超过第三阈值的指示符,并且生成分割决策和编码模式决策包括:在亮度平均值没有超过第一阈值、第一色度通道平均值没有超过第二阈值、并且第二色度通道平均值没有超过第三阈值时,通过对第一分区应用仅亮度评估决策来针对第一分区生成亮度和色度评估决策或仅亮度评估决策。

在一个或多个第三实施例中,对于任意一个第一或第二实施例,检测指示符包括关于第一分区的亮度平均值是否超过第一阈值、第一分区的第一色度通道平均值是否超过第二阈值、第一分区的第二色度通道平均值是否超过第三阈值、第一分区是否包括边缘、以及第一分区是否在未覆盖范围内的指示符,并且生成分割决策和编码模式决策包括:响应于亮度平均值、第一色度通道平均值、或第二色度通道平均值中的任意一者超过它们各自的阈值、以及第一分区包括边缘或者在未覆盖范围内,通过针对第一分区应用亮度和色度评估决策来针对第一分区生成亮度和色度评估决策或仅亮度评估决策。

在一个或多个第四实施例中,对于任意一个第一至第三实施例,图片包括i切片,该i切片包括第一分区,并且生成分割决策和编码模式决策包括:响应于第一分区处于i切片中,通过指示针对第一分区仅使用亮度来针对图片的每个分区生成亮度和色度评估决策或仅亮度评估决策。

在一个或多个第五实施例中,对于任意一个第一至第四实施例,多个图片包括基层图片和非基层图片,使得基层图片是非基层图片的参考图片,而非基层图片不是基层图片的参考图片,图片是包括b切片的基层图片,b切片包括第一分区,并且生成分割决策和编码模式决策包括:响应于第一分区在基层b切片中,通过指示针对第一分区使用亮度和色度来针对图片的每个分区生成亮度和色度评估决策或仅亮度评估决策。

在一个或多个第六实施例中,对于任意一个第一至第五实施例,多个图片包括基层图片和非基层图片,使得基层图片是非基层图片的参考图片,而非基层图片不是基层图片的参考图片,图片是包括b切片的非基层图片,b切片包括第一分区,并且生成分割决策和编码模式决策包括:响应于第一分区在非基层b切片中并且分区具有初始合并模式决策,通过指示仅针对第一分区使用亮度和色度以在合并模式和跳过模式之间选择,来针对图片的每个分区生成亮度和色度评估决策或仅亮度评估决策。

在一个或多个第七实施例中,对于任意一个第一至第六实施例,检测指示符包括针对第二分区的初始跳过模式编码代价和初始合并模式编码代价之间的差值的大小是否超过阈值的判定,并且生成分割决策和编码模式决策包括:通过在差值的大小超过阈值时针对第二分区选择跳过模式编码或合并模式编码以生成最终跳过或合并模式决策、或者在差值的大小没有超过阈值时将跳过模式编码或合并模式编码的选择推迟到完全编码过程合并模式或跳过模式决策,来生成合并或跳过模式决策。

在一个或多个第八实施例中,对于任意一个第一至第七实施例,生成分割决策和编码模式决策包括通过以下处理针对个体块的第三分区评估编码模式来生成编码模式决策:对第三分区和对应于编码模式的预测分区进行差分,以生成剩余分区;基于剩余分区通过以下处理生成变换系数块:对剩余分区执行部分变换,以生成变换系数块的一部分的变换系数,其中,所述部分中的变换系数的数目小于剩余分区的值的数目;以及将变换系数块的其余变换系数设置为零;对所述变换系数块进行量化,以生成经量化的变换系数;对经量化的变换系数进行反向量化;以及基于经反向量化的变换系数生成对应于预测分区的失真度量。

在一个或多个第九实施例中,对于任意一个第一至第八实施例,检测指示符包括关于区域、个体块、或第三分区是否视觉重要的指示符,并且生成分割决策和编码模式决策包括:在区域、个体块、或第三分区视觉重要时通过生成具有第一数目个可用变换系数的第一变换系数块或者在区域、个体块、或第三分区不是视觉重要的时通过生成具有第二数目个可用变换系数的第二变换系数块,来仅生成变换系数块的一部分,其中第二数目小于第一数目。

在一个或多个第十实施例中,对于任意一个第一至第九实施例,生成分割决策包括确定针对个体块的初始分割决策,该初始分割决策评估个体块的8x8候选分区的最小候选分区,初始分割决策将个体块分割为第四分区和一个或多个其他分区,并且生成分割决策还包括:响应于第四分区是8x8分区,评估第四分区的4x4子分区。

在一个或多个第十一实施例中,对于任意一个第一至第十实施例,检测指示符包括针对8x8第四分区的最佳模式,并且评估4x4子分区包括:在最佳模式是帧间模式时针对4x4子分区仅评估帧间模式并且在最佳模式是帧内模式时针对4x4子分区仅评估帧内模式。

在一个或多个第十二实施例中,对于任意一个第一至第十一实施例,检测指示符包括针对8x8第四分区的最佳帧间模式所选择的运动向量,并且评估4x4子分区包括:使用所选择的运动向量定义用于运动估计搜索的搜索中心,针对4x4子分区中的每个4x4子分区执行运动估计搜索。

在一个或多个第十三实施例中,对于任意一个第一至第十二实施例,检测指示符包括对应于8x8第四分区的最佳帧内模式,并且评估4x4子分区仅使用对应于8x8第四分区的最佳帧内模式、dc模式、平面模式、以及与最佳帧内模式相邻的一种或多种帧内模式。

在一个或多个第十四实施例中,一种视频编码系统包括:存储用于编码的输入视频的存储器,该输入视频包括多个图片,该多个图片中的第一图片包括包含个体块的区域,其中,个体块包括多个分区;以及耦合到存储器的一个或多个处理器,该一个或多个处理器用于:向多个分区中的一个或多个分区、区域、或个体块中的至少一者应用一个或多个检测器,以生成一个或多个检测指示符;基于一个或多个处理器执行的以下处理中的至少一者,使用检测指示符生成针对个体块的分割决策并针对个体块的对应于分割决策的分区生成编码模式决策:针对分区中的第一分区生成亮度和色度评估决策或仅亮度评估决策,针对分区中具有初始合并模式决策的第二分区生成合并或跳过模式决策,针对分区中的第三分区仅生成变换系数块的一部分,或者仅针对分区中作为8x8初始编码分区的第四分区评估4x4模式;以及至少基于分割决策对个体块进行编码,以生成输出比特流的一部分。

在一个或多个第十五实施例中,对于任意一个第十四实施例,检测指示符包括关于第一分区的亮度平均值是否超过第一阈值、第一分区的第一色度通道平均值是否超过第二阈值、第一分区的第二色度通道平均值是否超过第三阈值、第一分区是否包括边缘、以及第一分区是否在未覆盖范围内的指示符,并且一个或多个处理器生成分割决策和编码模式决策包括:一个或多个处理器通过在亮度平均值没有超过第一阈值、第一色度通道平均值没有超过第二阈值、并且第二色度通道平均值没有超过第三阈值时针对第一分区应用仅亮度评估决策,并且响应于亮度平均值、第一色度通道平均值、或第二色度通道平均值中的任意一者超过它们各自的阈值、以及第一分区包括边缘或在未覆盖范围内而针对第一分区应用亮度和色度评估决策,来针对第一分区生成亮度和色度评估决策或仅亮度评估决策。

在一个或多个第十六实施例中,对于任意一个第十四或十五实施例,检测指示符包括针对第二分区的初始跳过模式编码代价和初始合并模式编码代价之间的差值的大小是否超过阈值的判定,并且一个或多个处理器生成分割决策和编码模式决策包括:一个或多个处理器通过在差值的大小超过阈值时针对第二分区在跳过模式编码或合并模式编码之间进行选择以生成最终跳过或合并模式决策、或者在差值的大小没有超过阈值时将跳过模式编码或合并模式编码的选择推迟到完全编码过程合并模式或跳过模式决策,来生成合并或跳过模式决策。

在一个或多个第十七实施例中,对于任意一个第十四至第十六实施例,检测指示符包括区域、个体块、或第三分区是否视觉重要的指示符,并且一个或多个处理器生成分割决策和编码模式决策包括一个或多个处理器通过以下处理仅生成变换系数块的一部分:一个或多个处理器在区域、个体块、或第三分区视觉重要时生成具有第一数目个可用变换系数的第一变换系数块、或者一个或多个处理器在区域、个体块、或第三分区不是视觉重要的时生成具有第二数目个可用变换系数的第二变换系数块,其中,第二数目小于第一数目。

在一个或多个第十八实施例中,对于任意一个第十四至第十七实施例,一个或多个处理器生成分割决策包括一个或多个处理器确定针对个体块的初始分割决策,该初始分割决策评估个体块的8x8候选分区的最小候选分区,该初始分割决策将个体块分割为第四分区和一个或多个其他分区,并且生成分割决策还包括响应于第四分区是8x8分区而评估第四分区的4x4子分区。

在一个或多个第十九实施例中,对于任意一个第十四至第十八实施例,检测指示符包括针对8x8第四分区的最佳模式,一个或多个处理器评估4x4子分区包括:在最佳模式是帧间模式时针对4x4子分区仅评估帧间模式、以及在最佳模式是帧内模式时针对4x4子分区仅评估帧内模式,其中,仅评估帧间模式包括:一个或多个处理器使用针对8x8第四分区的最佳帧间模式所选择的运动向量定义用于运动估计搜索的搜索中心,通过针对4x4子分区中的每个4x4子分区的运动估计搜索来评估4x4子分区,并且其中,仅评估帧内模式包括:一个或多个处理器仅使用对应于8x8第四分区的最佳帧内模式、dc模式、平面模式、以及与最佳帧内模式相邻的一个或多个帧内模式评估4x4子分区。

在一个或多个第二十实施例中,包括多个指令的至少一个机器可读介质,所述多个指令响应于在计算设备上被执行而使得计算设备执行根据上述实施例中的任意一个实施例的方法。

在一个或多个第二十一实施例中,一种设备可以包括用于执行根据上述实施例中的任意一个实施例的方法的装置。

将认识到,实施例不限于所描述的这些实施例,但是可以在不偏离所附权利要求的范围的条件下做出修改和改变实施。例如,上述实施例可以包括特征的具体组合。但是,上述实施例不限于这方面,并且在各种实施方式中,上述实施例可以包括仅利用这些特征的子集,利用这些特征的不同顺序,利用这些特征的不同组合,和/或利用明确列出的这些特征以外的附加特征。因此,实施例的范围应该参考所附权利要求和这些权利要求所保护的等同的完整范围确定。

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