视频编码中的黄金帧选择的制作方法

文档序号:11162258阅读:596来源:国知局
视频编码中的黄金帧选择的制造方法与工艺

本申请要求于2014年7月30日提交的题为“GOLDEN FRAME SELECTION IN VIDEO CODING(视频编码中的黄金帧选择)”的美国专利申请序号14/446,556的优先权,该美国专利申请以其全部内容通过引用结合在此。



背景技术:

在压缩/解压缩(编解码)系统中,压缩效率和视频质量是重要的性能指标。例如,在许多视频应用中,视频质量是用户体验的重要方面,并且压缩效率影响存储视频文件所需的存储器存储量和/或传输和/或流传输视频内容所需的带宽量。例如,视频编码器对视频信息进行压缩从而使得更多的信息可通过给定带宽被发送或存储在给定的存储器空间中等。经压缩的信号或数据然后可以经由对该信号或数据进行解码或解压缩的解码器被解码以显示给用户。在大多数实现方式中,具有更大压缩的更高视频质量是令人期望的。

在一些方法中,可以对正被压缩的视频帧进行帧类型选择。例如,帧类型可以包括:不参考另一个或多个帧所预测的帧内帧(I帧)、参考另一个或多个帧所预测的且可用于预测其他帧的预测帧(P帧)、和/或参考另一个或多个帧所预测的但不可用于预测其他帧的双向帧(B帧)。其他帧类型可以是可用的。此外,在一些方法中,视频帧可以被指定为黄金帧。例如,针对当前帧,一个或多个最近的过去帧和/或时间上接近的未来帧通常可用于对当前帧进行编码(例如,使用运动补偿技术等)。此外,在一些实现方式中,黄金帧(如,例如,更远的过去帧)可用于对当前帧进行编码。例如,在对视频流传输可能特别有利的VP8和VP9视频压缩格式中,黄金帧的使用是可被启用的特征。在这种背景下,选择哪些帧作为黄金帧以及这些黄金帧的速率控制在所产生的视频质量和压缩中是重要的决策。然而,用于选择黄金帧并提供黄金帧的速率控制的现有技术可能并不能提供高质量视频和/或高压缩增益。

这样,现有技术可能并不能为用户和/或有效压缩提供高视觉质量。随着越来越高质量的视频传输变得更加广泛,这类问题可能变得关键。

附图说明

在附图中通过举例而非限制的方式展示了本文所描述的材料。为了图示的简明和清晰,图中所展示的元件不一定按比例绘制。例如,为清楚起见,某些元件的尺寸相对于其他元件可能被放大了。另外,在认为适当的情况下,在附图之间对参考标记加以重复以表示相应的或相似的元件。在附图中:

图1是一种用于提供视频编码的示例系统的示意图;

图2是展示用于在视频编码中指定黄金帧的示例过程的流程图;

图3展示了示例黄金帧分布;

图4展示了具有两个黄金帧类别的示例黄金帧分布;

图5展示了示例比特流;

图6是展示用于提供具有黄金帧的视频编码的示例过程的流程图;

图7是一种用于提供具有黄金帧的视频编码的示例系统的示意图;

图8是示例系统的示意图;并且

图9展示了全部根据本公开的至少一些实现方式安排的示例设备。

具体实施方式

现在参照附图描述一个或多个实施例或实现方式。虽然对特定配置和安排进行了讨论,但应理解,这仅出于说明目的来进行。相关领域的技术人员将认识到,在不背离本描述的精神和范围的情况下可以采用其他配置和安排。对相关领域技术人员而言将明显的是,在此描述的技术和/或安排还可以在除了在此描述的系统和应用之外的各种各样的其他系统和应用中被采用。

虽然以下描述阐述可以在如例如片上系统(SoC)架构的架构中显现各实现方式,但在此描述的技术和/或安排的实现方式并不局限于具体的架构和/或计算系统并且出于类似目的可以由任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装体、和/或各种计算设备和/或消费电子产品(CE)设备(如机顶盒、智能电话等)的各架构可以实现在此描述的技术和/或安排。此外,虽然以下描述可以阐述许多特定的细节(如逻辑实现、系统部件的类型和内在关系、逻辑划分/集成选择等),但要求保护的主题可以在没有这些特定细节的情况下被实践。在其他实例中,可以不详细示出某些材料(如,例如,控制结构和完整的软件指令序列),以便不模糊在此公开的材料。

在此公开的材料可以在硬件、固件、软件、或其任意组合中实现。在此公开的材料还可以被实现为存储于机器可读介质上的指令,这些指令可以由一个或多个处理器来读取并执行。机器可读介质可以包括用于存储或传输具有由机器(例如,计算设备)可读的形式的信息的任何介质和/或机制。例如,机器可读介质可包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)以及其他。

说明书中提到“一种实现方式”、“实现方式”、“示例实现方式”等表明所描述的实现方式可以包括具体特征、结构、或特性,但每个实施例可能不一定包括这个具体特征、结构、或特性。而且,这些短语不一定指同一实现方式。此外,当结合一个实施方式来说明特定特征、结构或特性时,应当指出,无论是否在本文中明确说明,结合其他实施方式来实现这种特征、结构或特性都在本领域技术人员的知识范围内。

本文描述的方法、设备、装置、计算平台和制品涉及视频编码,并且具体地涉及黄金帧选择以及非黄金帧随后的黄金帧的帧大小和/或量化参数确定。

如上所述,在许多视频编码实现方式中提供更高的视觉质量和更大的压缩可能是有利的。还如所讨论的,在一些视频编解码系统中,黄金帧可以被选择或被指定。例如,黄金帧可以是可用于对当前帧进行编码的更远的过去帧,被编码成具有更高质量(例如,更多比特)从而为编码当前帧提供更好参考的帧,等等。如在此使用的,术语“黄金帧”用于指定这种帧;然而,任何术语都可以用于指示这种帧,如“超帧”,等等。在一些示例中,黄金帧相比属于相同类型的非黄金帧可以以更高质量被编码和/或黄金帧相比属于相同类型的非黄金帧可以(例如,经由存储器)被保留以用于对更多数量的帧进行编码。例如,黄金帧可以被保留直到下一个黄金帧被指定和编码,而非黄金帧可以仅被保留用于对下一个帧或接下来的两个帧等等进行编码。

在一些实施例中,视频编码可以包括将视频序列的个体帧指定为黄金帧和/或确定被指定为黄金帧的个体帧的帧大小或量化参数。如在此进一步讨论的,可以针对视频序列的个体帧,判定该个体帧是否为场景变化帧、黄金帧距离(例如,以至前一黄金帧的帧数表达的距离)以及平均时间失真。例如,该平均时间失真可以是该个体帧的时间失真与自前一黄金帧开始在个体帧之前的时间失真的平均值。基于该个体帧是否为场景变化帧、黄金帧距离和平均时间失真,可以将该个体帧指定为黄金帧或非黄金帧。例如,如果该个体帧是场景变化帧,则该个体帧可以被指定为黄金帧。如果该个体帧不是场景变化帧,则基于黄金帧距离,可以将平均时间失真与阈值进行比较以将该个体帧指定为黄金帧或非黄金帧。

如在此进一步讨论的,如果该个体帧被指定为黄金帧,则可以基于该个体帧的时间失真、黄金帧距离和视频序列的预定平均目标比特率来确定帧大小(例如,用于对个体帧进行编码的目标帧大小)和/或量化参数。此外,针对黄金个体帧之后的帧,可以基于编码黄金帧大小、黄金帧距离、预定平均目标比特率和黄金帧目标大小来确定帧大小和/或量化参数。

黄金帧和非黄金帧量化参数可以用于对与帧相关联的变换系数进行量化,并且经量化的变换系数和量化参数可以被编码成用于解码器的比特流。该解码器可以解压缩和/或解码该比特流以便生成再现帧以呈现给用户。此外,黄金帧和非黄金帧量化参数可以用于生成与视频序列相关联的模式选择以用于编码。

图1是根据本公开的至少一些实现方式安排的用于提供视频编码的示例系统100的示意图。如图1所示,系统100可以包括黄金帧(GF)指定和量化参数(QP)模块101、量化模块112、模式选择模块113、编码控制器114、以及熵编码器模块115。还如所示,黄金帧指定和QP模块101可以包括粗糙级失真模块104、初始量化参数(QP)估计模块105、历史失真和量化参数(QP)模块106、时间相关性估计模块107、黄金帧指定模块108、黄金帧判定模块109、黄金帧大小和量化参数(QP)模块110、以及非黄金帧大小和量化参数(QP)模块111。

还如所示,黄金帧指定和QP模块101可以接收视频102和编码参数103,并且熵编码器模块115可以提供或传输比特流128。系统100可以提供例如视频压缩,并且系统100可以是经由计算机或计算设备等实现的视频编码器。例如,系统100可以生成与视频压缩-解压缩(编码解码器)标准(如,VP 8标准或VP 9标准等)兼容的比特流128。

系统100可以包括为了清楚呈现而未示出的其他模块。例如,系统100可以包括变换模块、帧内预测模块、运动估计模块、运动补偿模块、环内滤波模块、参考帧缓冲器、扫描模块等。在一些示例中,系统100可以包括用于生成在编码过程中使用的参考帧的本地解码环路。这类模块对于本领域技术人员是已知的,并且为了清楚地呈现所描述的技术,在此不再对其进一步讨论。

如所讨论的,黄金帧指定和QP模块101可以接收视频102和编码参数103。视频102可以包括任何适当的分辨率的任何适当的视频帧、视频帧序列、视频数据等。例如,视频102可以是视频图形阵列(VGA)、高清晰度(HD)、全HD(例如,1080p)、或4K分辨率视频等。此外,视频102可以包括任何数量的视频帧、视频帧序列、或场景等。可以针对视频102作出帧选择和/或模式选择(未示出),从而使得视频102的视频帧可以各自由帧类型来指定。这些帧类型可以包括任何适当的帧类型或多个帧类型,其可以由标准或协议等来限定。例如,帧类型可以包括:不参考另一个或多个帧所预测的帧内帧(I帧)、参考另一个或多个帧所预测的且可用于预测其他帧的预测帧(P帧)、参考另一个或多个帧所预测的但不可用于预测其他帧的双向帧(B帧)、和/或参考另一个或多个帧所预测的且可用于层级编码结构中的预测的参考双向帧(B参考帧)。在一些示例中,B帧可能不可用,并且仅可以使用I帧和P帧。例如,在VP8标准中,仅I帧和P帧可用。在其他示例(如,VP9标准、H.264/MPEG-4高级视频编码(AVC)标准和高效率视频编码(HEVC)标准)中,I帧、P帧和B帧全部可以是可用的。

编码参数103可以包括与视频102的编码相关联的任何参数。例如,编码参数103可以包括视频102的目标比特率,如,预定平均目标比特率等。在一些示例中,编码参数103可以包括视频质量(如,期望的或要求的视频质量等)的指示,如,由用户设置或确定的质量因数、与系统100的通信连接质量、视频102的分辨率、量化参数范围(例如,与经由系统100实现的编解码器相关联的QP范围)等。此外,在一些示例中,编码参数103可以包括最小黄金帧间隔(例如,黄金帧之间的最小时间间隔或帧数)、默认黄金帧间隔(例如,黄金帧之间的默认时间间隔或帧数)、以及最大黄金帧间隔(例如,黄金帧之间的最大时间间隔或帧数)。如所示,编码参数103(或其部分)可以被提供给初始QP估计模块105和黄金帧指定模块108。

如所示,初始QP估计模块105可以接收编码参数103(或其部分),并且初始QP估计模块105可以生成初始量化参数(IQP)117。初始量化参数117可以包括经由系统100实现的每种帧类型的初始量化参数。例如,可以确定I帧的初始量化参数(例如,初始_QP(I))、P帧的初始量化参数(例如,初始QP_(P))和/或B帧的初始量化参数(例如,初始QP(B))。如所讨论的,在一些示例中,可以不实现B帧,并且在这种示例中,可以不确定B帧的初始量化参数。这类初始量化参数117可以是基于例如视频102的目标比特率、视频102的目标质量和/或(例如,如经由编码参数103提供的)量化参数范围生成的。初始量化参数117可以包括任何适当的值。例如,初始量化参数117的范围可以是从1至51,其中,约20至26的值提供中等质量视频、约27至31的值提供低质量视频、以及约15至19的值提供高质量视频,尽管可以使用任何值和/或范围。如所示,初始量化参数117可以被提供给历史失真和QP模块106,该历史失真和QP模块106可以存储初始量化参数117和/或根据需要将它们提供给其他模块。

针对视频102(或视频102的序列)的第一I帧,量化参数可以是基于I帧的初始量化参数(例如,初始_QP(I))的调制确定的。例如,如所示,粗糙级失真模块104可以确定视频102的帧的空间和/或时间复杂度(S/T C)值116。可以使用任何适当的技术来确定该空间复杂度,该适当的技术提供对视频102的视频帧的空间复杂度的测量。在实施例中,基于视频102的视频帧的帧内预测失真对该空间复杂度进行估计。此外,可以使用任何适当的技术来确定视频102的视频帧的时间复杂度,该适当的技术提供对视频帧的时间复杂度的测量。在实施例中,基于视频102的视频帧的帧间预测失真对该时间复杂度进行估计。在各个实施例中,帧内预测失真的测量、帧间预测失真的测量或两者均可以基于统计测量,如绝对差和(SAD)、失真求和等。在一些示例中,可以基于视频102的视频帧的下采样版本来确定该帧内预测失真、该帧间预测失真或两者。例如,在确定视频帧的帧内预测失真、帧间预测失真或两者之前,可以由因子2、4、或8等对视频102的帧进行下采样或缩减。针对视频102的一些视频帧,可以确定空间和时间复杂度两者,而针对视频102的其他视频帧,仅可以确定空间和时间复杂度中的一者。

可以基于I帧的初始量化参数和第一I帧的空间复杂度的度量确定视频102的第一I帧的量化参数。在实施例中,第一I帧的量化参数可以与空间复杂度的度量成比例。例如,当第一I帧的空间复杂度指示高空间复杂度时,第一I帧的量化参数可以大于I帧的初始量化参数(例如,初始_QP(I)),从而使得相对大的量化参数可以用于具有高空间复杂度的帧(例如,当用户可能没有注意到质量下降并且压缩可能增加时),并且相对小的量化参数可以用于具有低空间复杂度的帧(例如,当更高质量可以有益于用户时)。在一些示例中,可以基于帧内预测失真和凭经验确定的常数来确定高空间复杂度。

如所讨论的,在实施例中,第一I帧的量化参数可以与I帧的空间复杂度成比例。例如,第一I帧的量化参数可以被确定如方程(1)所示:

QP帧内=初始_QP(I)×失真(帧内)C/阈值1

(1)

其中,QP帧内可以是第一I帧的量化参数,初始_QP(I)可以是I帧的初始QP值(如以上所讨论的),失真(帧内)可以是帧内空间预测失真,C可以是凭经验确定的常数,并且阈值1可以是凭经验确定的常数或阈值。

如方程(1)所示,第一I帧的量化参数可以与升至值C的I帧的空间复杂度成比例。C可以是任何适当的值或常数,如,例如1或任何非整数值。如所讨论的,C可以凭经验被确定,并且可以基于确定空间复杂度所使用的方法(例如,SAD或失真求和等)。在一些示例中,C可以基于视频102的内容从而使得C基于视频102可以是自适应的或可变的。确定第一I帧的量化参数可以由黄金帧大小和QP模块110(例如,当第一I帧被典型地指定为黄金帧时)或系统100的另一个模块(未示出)执行。

如所讨论的,针对视频102的帧,可以关于帧是否为黄金帧进行指定。可以针对任何帧类型进行黄金帧指定。在此,将帧指定为黄金帧或非黄金帧通常是关于P帧进行描述的;然而,任何帧类型可以被指定为黄金帧。此外,如所述,粗糙级失真模块104可以确定并提供空间和/或时间复杂度值116,该空间和/或时间复杂度值可以包括视频102的帧的空间复杂度的度量和/或时间复杂度的度量。如在此使用的,这种复杂度可以被描述为失真。如所示,空间和/或时间复杂度值116可以被提供给历史失真和QP模块106和/或时间相关性估计模块107。历史失真和QP模块106还可以接收帧大小和/或量化参数(FS&QP)123,如在此进一步讨论的。历史失真和QP模块106可以存储并提供视频102的帧的空间复杂度、时间复杂度、空间失真、时间失真、帧大小、量化参数或时间相关性等。例如,历史失真和QP模块106可经由系统100的其他模块(如,黄金帧指定和QP模块101的模块)可访问的存储器来实现。

如所示,历史失真和QP模块106可以为时间相关性估计模块107提供空间和时间复杂度以及量化参数(S/T C&QP)118。空间和时间复杂度以及量化参数118可以包括视频102的帧的空间复杂度、时间复杂度、空间失真、时间失真或量化参数,如在当前帧之前的帧的空间复杂度、时间复杂度、空间失真、时间失真或量化参数或者在当前帧之前直到前一黄金帧的空间复杂度、时间复杂度、空间失真、时间失真或量化参数等等。

时间相关性估计模块107可以确定视频102的一个或多个帧的平均时间失真和时间相关性,并且时间相关性估计模块107可以为黄金帧指定模块108提供平均时间失真和/或时间相关性(ATD/TC)119。例如,时间相关性估计模块107可以确定视频102的个体帧(例如,P帧)的时间相关性。时间相关性可以是使用一项或多项任何适当的技术确定的。例如,个体帧的时间相关性可以是基于个体帧的时间复杂度及其与过去帧(例如,过去的编码P帧)的历史平均时间复杂度的比较确定的。在实施例中,个体帧的时间相关性是个体帧的时间复杂度与时间复杂度的历史平均之比。历史平均可以是基于任意数量的过去帧,如,直到前一黄金帧的所有过去帧、经由历史失真和QP模块106可用的所有过去帧、预定数量的过去帧等等。此外,时间相关性估计模块107可以确定视频102的个体帧(例如,P帧)的平均时间失真。例如,个体帧的平均时间失真可以是个体帧的时间失真与过去帧(例如,在个体帧之前的帧)的时间失真的平均值。过去帧可以包括任意数量的过去帧,如,直到前一黄金帧的所有过去帧、经由历史失真和QP模块106可用的所有过去帧、预定数量的过去帧等等。

黄金帧指定模块108可以接收平均时间失真和/或时间相关性119,并且黄金帧指定模块108可以部分地基于经由平均时间失真和/或时间相关性119接收的时间相关性指定黄金帧。例如,针对视频102的帧,黄金帧指定模块108可以基于哪些帧(若有的话)是场景变化帧并且基于视频102(或视频102的一部分或片段)的时间相关性来指定一个或多个黄金帧。在实施例中,如果视频102的个体帧是场景变化帧,则该个体帧被指定为黄金帧。可以基于任何一项或多项合适的技术而将帧确定为场景变化。在实施例中,可以将个体帧的时间相关性与预订阈值进行比较,从而使得如果时间相关性大于该阈值则将该个体帧视为场景变化帧。如果该个体帧不是场景变化帧,则可以基于视频102的一部分的时间相关性将黄金帧指定在视频102的该部分内或分配于视频102的该部分。例如,视频102具有较强时间相关性的部分可以具有较大的黄金帧间隔(例如,黄金帧之间的帧数),并且视频102具有弱时间相关性的部分可以具有较短的黄金帧间隔。

图2是展示根据本公开的至少一些实现方式安排的用于在视频编码中指定黄金帧的示例过程200的流程图。如图2所展示的,过程200可以包括一个或多个操作201-212。过程200可以形成视频编码过程的至少一部分。通过非限制性示例,针对由如在此讨论的系统100采取的视频,过程200可以形成视频编码过程的至少一部分。在一些示例中,过程200可以由黄金帧指定模块108执行。

过程200可以从操作201“帧i”处开始,在该操作中,可以确定视频序列的个体帧。例如,过程200可以开始于视频102的第一帧、黄金帧之后的第一帧、I帧之后的第一帧等等。在一些示例中,帧i可以是在黄金帧之后的预定数量的帧,如,2至5个帧等等。

过程200可以在判定操作202“场景变化”处继续,在该操作中,可以判定帧i是否为场景变化帧。例如,针对视频序列的个体帧,可以判定个体帧是否为场景变化帧。可以使用任何适当的技术来确定场景变化帧,如,将个体帧的时间相关性与阈值进行比较。例如,如果个体帧的时间相关性大于或大于等于阈值,则该个体帧可以使场景变化帧。如所示,如果个体帧(例如,帧i)被确定为场景变化帧,则过程200可以在操作209“黄金帧”处继续,在该操作中,个体帧可以被指定为黄金帧。

从操作209,过程200可以在操作211“下一帧”处继续,在该操作中,可以选择下一帧用于处理。例如,如所讨论的,帧i之后的帧或者在帧i一定数量的帧之后的帧可以被选择用于处理。此外,如果最后帧已经被处理,则过程200可以结束。

返回至判定操作202,如果个体帧(例如,帧i)未被确定为场景变化帧,则过程200可以在操作203“黄金帧距离(GFD)和平均时间失真(ATD)”处继续,在该操作中,可以确定个体帧(例如,帧i)的黄金帧距离和平均时间失真。在实施例中,黄金帧距离是从个体帧(例如,帧i)到前一黄金帧的距离(例如,帧数)。例如,如果帧i是P帧,则前一黄金帧可以使黄金P帧或黄金I帧。如果还不存在前一黄金帧,则黄金帧距离可以是到前一I帧的距离。可以如上讨论确定个体帧(例如,帧i)的平均时间失真,从而使得个体帧(例如,帧i)的平均时间失真可以是个体帧的时间失真与过去帧(例如,在该个体帧之前的帧)的时间失真的平均值。例如,平均时间失真可以是时间失真的运行平均值。在一些示例中,时间失真可以是关于下采样视频的帧间预测失真,并且在其他示例中,时间失真可以是在帧压缩之后的实际失真。如所讨论的,过去帧可以包括任意数量的过去帧,如,直到前一黄金帧的所有过去帧、经由历史失真和QP模块106可用的所有过去帧、预定数量的过去帧等等。

此外,如在此关于编码参数103所讨论的,可以确定或接收最小黄金帧间隔(例如,黄金帧之间的最小时间间隔或帧数)、默认黄金帧间隔(例如,黄金帧之间的默认时间间隔或帧数)、以及最大黄金帧间隔(例如,黄金帧之间的最大时间间隔或帧数)。最小、默认和最大黄金帧间隔可以包括任何适当的时间间隔或帧数。例如,最小黄金帧间隔可以是0.25秒,默认黄金帧间隔可以是0.5秒,并且最大黄金帧间隔可以是1秒。针对每秒60帧(fbs)的视频,在这种示例中的最小、默认和最大黄金帧间隔将分别为15帧、30帧和60帧。在其他示例中,最小黄金帧间隔的范围可以为10到20帧,默认黄金帧间隔的范围可以为20到40帧,并且最大黄金帧间隔的范围可以为40到80帧。

过程200可以在判定操作204“GFD≥GFI最小”处继续,在该操作中,黄金帧距离(GFD)可以与最小黄金帧间隔(GFI最小)进行比较。如所示,如果黄金帧距离小于最小黄金帧间隔,则过程200可以在操作210“非黄金帧”处继续,在该操作中,个体帧可以被指定为非黄金帧。

从操作210,过程200可以在操作212“下一帧”处继续,在该操作中,可以选择下一帧用于处理。例如,帧i之后的帧或者在帧i一定数量的帧之后的帧可以被选择用于处理。此外,如果最后帧已经被处理,则过程200可以结束。

返回至判定操作204,如果黄金帧距离大于等于最小黄金帧间隔,则过程200可以在判定操作205“ATC>TH1”处继续,在该操作中,平均时间失真(ATD)可以与阈值(TH1)进行比较。阈值TH1可以是用于评估视频102的时间复杂度、失真和/或相关性的任何适当的阈值。阈值TH1可以被选择使得具有较大时间相关性的视频序列(例如,静态视频序列)具有较大的黄金帧距离并且具有较小时间相关性的视频序列(例如,活动视频序列)具有较短的黄金帧距离。如所示,如果平均时间失真大于阈值,则过程200可以在操作209处继续,在该操作中,个体帧(例如,帧i)可以被指定为黄金帧,并且处理可以在如以上讨论的操作211处继续。

如果平均时间失真不大于阈值,则过程200可以在判定操作206“GFD≥GFI默认”处继续,在该操作中,黄金帧距离(GFD)可以与默认黄金帧间隔(GFI默认)进行比较。如所示,如果黄金帧距离小于默认黄金帧间隔,则过程200可以在操作210处继续,在该操作中,个体帧可以被指定为非黄金帧,并且进行如以上讨论的操作212。

如果黄金帧距离大于等于默认黄金帧间隔,则过程200可以在判定操作207“ATC>TH2”处继续,在该操作中,平均时间失真(ATD)可以与阈值(TH2)进行比较。阈值TH2可以是用于评估视频102的时间复杂度、失真和/或相关性的任何适当的阈值。正如TH1,阈值TH2可以被选择使得具有较大时间相关性的视频序列(例如,静态视频序列)具有较大的黄金帧距离并且具有较小时间相关性的视频序列(例如,活动视频序列)具有较短的黄金帧距离。在实施例中,TH1大于TH2,从而使得如果视频非常活跃,则将迅速提供另一个黄金帧,而如果视频不那么活跃,则黄金帧可以被延伸至最大黄金帧间隔。如所示,如果平均时间失真大于阈值,则过程200可以在操作209处继续,在该操作中,个体帧(例如,帧i)可以被指定为黄金帧,并且处理可以在如以上讨论的操作211处继续。

如果平均时间失真不大于阈值TH2,则过程200可以在判定操作208“GFD=GFI最大”处继续,在该操作中,黄金帧距离(GFD)可以与最大黄金帧间隔(GFI最大)进行比较。如所示,如果黄金帧距离等于最大黄金帧间隔,则过程200可以在操作209继续,在该操作中,个体帧可以被指定为黄金帧,并且进行如以上讨论的操作211。如果黄金帧距离不等于最大黄金帧间隔(例如,黄金帧距离小于最大黄金帧间隔),则过程200可以在操作210处继续,在该操作中,个体帧可以被指定为非黄金帧,并且进行如以上讨论的操作212。

可以针对视频102的任意数量的帧并且针对任意数量的视频或视频序列串行地或并行地执行过程200任意次数。在以上描述中,出于解释的目的已经使用大于、小于和等于等等,然而,可以进行其他比较来实现相同或相似的结果。例如,当讨论大于或等于比较时,经常可以使用大于比较等等。

如所讨论的,过程200可以实现与最小黄金帧间隔和默认黄金帧间隔相关联的两个阈值(例如,TH1和TH2)。在其他示例中,可以仅使用一个阈值(例如,最小或默认黄金帧间隔等等)。在其他示例中,可以使用(多个)附加阈值和黄金帧间隔。如所讨论的,基于将个体帧的黄金帧距离确定为等于或大于最小黄金帧间隔和/或默认黄金帧间隔中的至少一者的至少一种情况以及基于平均时间失真与同最小黄金帧间隔和/或默认黄金帧间隔相关联的阈值的比较将个体帧指定为黄金帧或非黄金帧,可以将个体帧i指定为黄金帧或非黄金帧。

在一些示例中,基于针对帧序列的第二帧确定至前一黄金帧的第二黄金帧距离和第二平均时间失真以及基于该第二黄金帧距离和该第二平均时间失真将第二帧指定为黄金帧或非黄金帧,可以将第二帧指定为黄金帧或非黄金帧。例如,黄金帧距离(例如,针对个体帧)可以在最小黄金帧间隔与默认黄金帧间隔之间,并且第二黄金帧距离可以在默认黄金帧间隔与最大黄金帧间隔之间。例如,将个体帧指定为黄金帧或非黄金帧可以是基于个体帧的平均时间失真与第一阈值的比较,并且将第二帧指定为黄金帧或非黄金帧可以是基于第二平均时间失真与第二阈值的比较。如所讨论的,在一些示例中,第一阈值(例如,TH1)可以大于第二阈值(例如,TH2)。

返回至图1,黄金帧指定模块108可以基于如所讨论的黄金帧或非黄金帧指定来生成黄金帧位置(GFL)120。例如,黄金帧位置120可以指示哪些帧是黄金帧。黄金帧位置120可以被传送至黄金帧判定模块109。黄金帧判定模块109可以基于黄金帧位置120提供帧(例如,如P帧的个体帧)是黄金帧(GF)121或非黄金帧(NGF)122的指示。

黄金帧大小和QP模块110可以经由黄金帧判定模块109接收黄金帧指示121并且经由历史失真和QP模块106接收空间和时间复杂度以及量化参数118。黄金帧大小和QP模块110可以生成经指示的黄金帧的帧大小和/或量化参数(FS/QP)123。例如,可以基于黄金帧的时间失真、该帧的黄金帧距离、以及(例如,如在此讨论的,经由编码参数103提供的)目标比特率来确定该帧的黄金帧目标大小。如所讨论的,在一些示例中,帧的时间失真可以是基于使用下采样视频的帧间预测失真。在一些示例中,黄金帧目标大小可以被确定为如方程(2)所示:

目标_大小G=(黄金_间隔-失真(帧间)/阈值2)×平均_速率×W1(2)

其中,目标_大小G可以是黄金帧目标大小,黄金_间隔可以是帧的黄金帧距离(例如,至前一黄金帧的距离),失真(帧间)可以是时间失真(例如,在这个示例中为帧间预测失真),阈值2可以是阈值,平均_速率可以是目标比特率(例如,视频102的预定平均目标比特率),并且W1可以是加权参数。阈值2可以是任何适当的阈值,并且可以基于用于生成时间失真(例如,失真(帧间))的技术。例如,阈值2可以对时间失真进行缩放以修改黄金帧距离。例如,如果时间失真较低,则可能产生相对较大的黄金帧目标大小从而使得静态视频可能被提供更高的质量(例如,在用户可能注意到视频质量的情况下),并且如果时间失真相对较高,则可能产生相对较小的黄金帧目标大小从而使得活动视频可能被提供较低的质量(例如,因为活动视频设置中的这种较低质量可能不被用户注意到)。此外,该加权参数可以是用于对黄金帧距离与经缩放的时间失真之差和目标比特率的乘积进行缩放的任何适当的加权参数。在实施例中,加权参数为0.5。

还如图1所示,非黄金帧大小和QP模块111可以经由黄金帧判定模块109接收非黄金帧指示122、经由历史失真和QP模块106接收空间和时间复杂度以及量化参数118、并且经由黄金帧大小和QP模块110接收所讨论的黄金帧大小(例如,如帧大小和/或量化参数(FS/QP)123的一部分)。非黄金帧大小和QP模块111可以生成经指示的非黄金帧的帧大小和/或量化参数(FS/QP)125。在一些示例中,非黄金帧大小和QP模块111可以生成黄金帧之后的非黄金帧的帧大小和/或量化参数(FS/QP)125。针对这种第一非黄金帧之后的非黄金帧,可以应用标准速率控制技术,从而使得例如之后的非黄金帧可以被确定为具有相同的帧大小和/或相同的QP(当基于标准速率控制技术修改时)。

例如,可以基于相关联的黄金帧的黄金帧距离、(例如,如经由编码参数103提供的)目标比特率以及相关联的黄金帧的目标大小来确定非黄金帧的非黄金帧目标大小。在一些示例中,黄金帧目标大小可以被确定为如方程(3)所示:

目标_大小P=(黄金_间隔×平均_速率-目标_大小G)/(黄金_间隔-1)

(3)

其中,目标_大小P可以是非黄金帧目标大小,黄金_间隔可以是相关联黄金帧的黄金帧距离,平均_速率可以是目标比特率(例如,视频102的预定平均目标比特率),并且目标_大小G可以是相关联黄金帧的黄金帧目标大小。

如所示,非黄金帧大小和QP模块111可以将非黄金帧的目标大小、黄金帧大小(TFS)124传送至黄金帧大小和QP模块110。黄金帧大小和QP模块110可以确定初始量化参数的(例如,如关于初始量化参数117所讨论的)偏移量。该偏移量可以基于黄金帧目标大小与非黄金帧目标大小之比。例如,该偏移量可以是黄金帧目标大小与非黄金帧目标大小之比的二进制对数与常数之积。在一些示例中,该比值(例如,黄金比)可以被确定为如方程(4)所示:

比值_G=目标_大小G/目标_大小P

(4)

其中,比值_G可以是黄金帧比,目标_大小G可以是如关于方程(2)所讨论的黄金帧目标大小,并且目标_大小P可以是如关于方程(3)所讨论的非黄金帧目标大小。

此外,该偏移量(例如,黄金偏移量)可以被确定为如方程(5)所示:

偏移量_G=Q1×Ln2(比值_G)

(5)

其中,偏移量_G可以是黄金偏移量,Q1可以是常数,Ln2可以是二进制对数,并且比值_G可以是如关于方程(4)所讨论的黄金比。常数Q1可以是对黄金比的二进制对数进行缩放以对例如P帧的初始量化参数(例如,初始_QP(P))提供调整的任何适当的常数。如所讨论的,可以经由初始QP估计模块105确定初始量化参数,该初始QP估计模块105可以是由比特率控制器等实现的。

例如,可以经由初始量化参数和黄金偏移量来确定黄金帧的量化参数。在一些示例中,可以通过从初始量化参数中减去黄金偏移量来确定黄金帧的量化参数。在一些示例中,黄金帧的量化参数可以被确定为如方程(6)所示:

QP黄金=初始_QP(P)-偏移量_G

(6)

其中,QP黄金可以是黄金帧的量化参数,初始_QP(P)可以是P帧的初始量化参数,并且偏移量_G可以是如关于方程(5)所讨论的黄金偏移量。如所讨论的,在这个示例中,黄金帧为P帧。然而,属于任何帧类型的初始量化参数可以被修改一黄金偏移量以确定黄金帧量化参数。

如所示,黄金帧的量化参数(例如,帧大小和/或量化参数123)可以被提供给量化模块112和/或模式选择模块113。量化模块112可以接收(多个)黄金帧量化参数和变换系数127,并且可以基于该(多个)黄金帧量化参数对变换系数127进行量化。例如,可以基于黄金帧的黄金帧量化参数对该帧的变换系数进行量化。变换系数127可以是任何适当的变换系数,如,例如,基于亮度数据的离散余弦变换的变换系数、色度数据、差分数据(例如,针对预测块与实际块之间的差)等。模式选择模块113可以接收帧大小和/或量化参数123,其可以用于模式选择和/或模式决策。

如所示,可以将量化参数(例如,如以下进一步讨论的黄金帧QP和非黄金帧QP)、经量化的变换系数和/或模式选择数据传输至熵编码器115。熵编码器115可以将量化参数、经量化的变换系数、模式选择数据和/或其他数据(例如,运动向量等)熵编码至比特流128中。在一些示例中,经量化的变换系数、(多个)模式数据、和/或其他数据在编码之前可以被提供给扫描模块。此外,尽管在此针对熵编码进行了讨论,但是可以使用任何适当的(多个)编码技术。比特流128可以被传输至另一个设备以用于解码或保存至存储器设备等。在一些示例中,比特流128可以是标准顺应性比特流,如,例如,符合VP8或VP9等的比特流。

此外,熵编码器115可以在编码控制器114的控制下操作和/或被编码控制器114监控。例如,编码控制器114可以经由熵编码器115和/或系统100的其他模块确定编码帧大小。在一些示例中,编码控制器114可以确定用于对所讨论的黄金帧进行编码的实际比特数并将该实际黄金帧大小(帧大小)126传送至非黄金帧大小和QP模块111。

非黄金帧大小和QP模块111可以基于实际黄金帧大小、黄金帧的黄金间隔、平均比特率和黄金帧目标大小来确定(多个)非黄金帧的量化参数。例如,实际黄金帧大小可以代替(如关于方程(2)所讨论的)估计黄金帧大小被使用,因为任何未使用的比特可以由此用于对非黄金帧进行编码并提高非黄金帧的质量。在一些示例中,非黄金帧大小和QP模块111可以通过基于偏移量修改P帧的初始量化参数(初始QP_(P))来确定量化参数。例如,该偏移量可以是非黄金帧比的二进制对数与常数之积。在一些示例中,该比值(例如,非黄金比)可以被确定为如方程(7)所示:

比值_P=(黄金_间隔×平均_速率-实际_黄金_大小)/(黄金_间隔×平均_速率-目标_大小G)

(7)

其中,比值_P可以是非黄金比,黄金_间隔可以是相关联黄金帧的黄金帧距离,平均_速率可以是目标比特率(例如,视频102的预定平均目标比特率),

实际_黄金_大小可以是实际黄金帧大小,并且目标_大小G可以是相关联黄金帧的黄金帧目标大小。

此外,该偏移量(例如,非黄金偏移量)可以被确定为如方程(8)所示:

偏移量_P=Q1×Ln2(比值_P)

(8)

其中,偏移量_P可以是非黄金偏移量,Q1可以是常数,Ln2可以是二进制对数,并且比值_P可以是如关于方程(7)所讨论的非黄金比。常数Q1可以是对非黄金比的二进制对数进行缩放以对例如P帧的初始量化参数(例如,初始_QP(P))提供调整的任何适当的常数。在一些示例中,方程(5)的常数Q1与方程(8)的常数Q1可以是相同的,并且在其他示例中,它们可以不同。所提供的示例可以在非黄金帧之间均匀地分配剩余比特。在其他示例中,比特率控制器可以基于非黄金帧的空间和时间失真等修改比特率分配。

偏移量_P可以例如通过将其添加至初始量化参数而被应用于初始量化参数(例如,初始_QP(P))。如所示,非黄金帧大小和QP模块111可以将非黄金帧量化参数传送至量化模块112和/或模式选择模块113。例如,非黄金帧大小和QP模块111可以传送帧大小和/或量化参数125。量化模块112可以接收(多个)非黄金帧量化参数和变换系数127,并且可以基于该(多个)非黄金帧量化参数对变换系数127进行量化。例如,可以基于非黄金帧的非黄金帧量化参数对该帧的变换系数进行量化。此外,模式选择模块113可以接收帧大小和/或量化参数123,其可以用于模式选择和/或模式决策。

图3展示了根据本公开的至少一些实现方式安排的示例黄金帧分布300。如图3所示,帧302可以各自具有多个分配的比特301。如所示,黄金帧(标记为“G”)可以具有比非黄金帧(标记为“P”)更多的比特分配,但是比I帧(标记为“I”)更少的比特分配。例如,较多的比特分配可以与较小的QP相关联,并且较少的比特分配可以与较大的QP相关联。如所讨论的,在一些示例中,I帧也可以被指定为黄金帧或非黄金帧。此外,如所讨论的,尽管在所展示的示例中帧302不包括B帧,但是在一些示例中可以利用B帧。例如,如所讨论的,实现VP8视频编解码器可以不包括B帧,而实现VP9视频编解码器的系统可以包括B帧。如由在帧302之间延伸的无标号箭头所示,非黄金帧可以参照紧前一非黄金帧、之前的I帧和/或之前的黄金帧以用于预测(例如,运动估计和补偿)。此外,黄金帧可以类似地参照紧前一非黄金帧、之前的I帧和/或之前的黄金帧。图3展示了可以用作任何介于中间的非黄金帧的参考的黄金帧,从而使得黄金帧被保留以用于对比非黄金帧而言更多个帧(以及潜在更多个帧)进行编码。因此,所讨论的分配比特301的增加可以提供质量提高的块或宏块等等以对随后的帧进行预测和/或运动补偿。尽管关于紧前一帧进行讨论,在一些实施例中,非黄金帧可以被保留以用于对多个(例如,两个、三个或四个)帧进行编码,但并非与关于所讨论的黄金帧具有相同的帧数或采用相同的方式。

在所展示的示例中,七个非黄金帧在I帧与第一黄金帧之间并且在第一黄金帧与第二黄金帧之间。在其他示例中,任意数量的非黄金帧可以如本文所讨论的在I帧与黄金帧之间或者在黄金帧之间。例如,从1帧到最大黄金帧间隔的任意数量的帧可以在I帧与黄金帧之间或者在黄金帧之间。此外,在一些示例中,黄金帧可以如所展示的沿着帧302均匀地分布,而在其他示例中,黄金帧可以不均匀地分布。在本文的讨论中并且在图3的说明性示例中,已经描述了单类黄金帧。在其他示例中,可以实现两类或更多类黄金帧。

图4展示了根据本公开的至少一些实现方式安排的具有两个黄金帧类别的示例黄金帧分布400。如图4所示,帧402可以各自具有多个分配的比特401。还如所示,黄金帧(标记为“G”)可以被划分为两类(标记为“G0”和“G1”),从而使得黄金帧可以被指定在第一黄金帧类别或第二黄金帧类别中或作为其一员。例如,黄金帧类别G0相比黄金帧类别G1可以被分配更多的比特,从而使得黄金帧类别G0相比黄金帧类别G1可以具有更低的QP。在所展示的示例中,展示了两个黄金帧类别;然而,可以使用任意数量的黄金帧类别。在这种实现方式中,黄金帧距离(例如,黄金帧之间的距离)可以减小,同时黄金帧仍可以使用类似的总比特百分比(例如,与图3的示例相比)。在这种实现方式中,属于黄金帧类别G0的帧可以被分配帧大小和QP,该帧大小和QP可以如在此关于例如方程(2)所讨论的被确定为具有较低加权参数W1。此外,属于黄金帧类别G1的帧然后可以被分配帧作为属于黄金帧类别G0的帧大小的一部分的大小和QP。然后可以类似于方程(6)和(7)提供目标大小和QP,其中,可以(例如,针对两种类别)基于目标黄金帧大小和实际编码黄金帧大小使比特均匀地分布于非黄金帧。

图5展示了根据本公开的至少一些实现方式安排的示例比特流500。在一些示例中,比特流500可以对应于如图1所示的比特流128。尽管未在图5中示出,但是在一些示例中,比特流500可以包括一个或多个报头部分以及一个或多个数据部分。比特流500可以包括与编码视频数据相关联的任何适当的数据。如图5所示,比特流500可以包括编码量化变换系数501、编码模式数据502、编码I帧量化参数303、编码黄金帧指示符504、编码黄金P帧量化参数505、编码非黄金P帧量化参数506、和/或编码运动向量数据507。如所讨论的,比特流500可以经由系统100的熵编码器114生成。

例如,比特流500可以包括编码量化变换系数501,该编码量化变换系数501包括基于第一I帧的量化参数量化的变换系数(如关于方程(1)所讨论的)、基于黄金帧量化参数量化的变换系数、和/或基于非黄金帧量化参数量化的变换系数。该经量化的变换系数可以被编码(例如,经由熵编码器115被熵编码的)并插入比特流500中。此外,比特流500可以包括编码模式数据502,该编码模式数据可以包括来自模式选择模块113的被编码(例如,经由熵编码器115被熵编码的)并插入比特流500中的(多个)模式选择数据。还如所示,比特流500可以包括编码I帧量化参数503、编码黄金P帧量化参数505、以及编码非黄金P帧量化参数506,其可以包括被编码(例如,经由熵编码器115被熵编码的)并插入比特流500中的帧级量化参数。

此外,比特流500可以包括编码黄金帧指示符504。黄金帧指示符504可以包括指示哪些帧是黄金帧的任何适当的标签或比特或指示符等。例如,黄金帧指示符504可以包括与(多个)黄金帧指示121相关联的数据以及被编码(例如,经由熵编码器115被熵编码的)并插入比特流500中的(多个)非黄金帧指示符122。比特流500还可以包括用于提供与视频102的编码相关联的信息的编码运动向量507以及其他编码数据。例如,运动向量和/或其他数据可以被编码(例如,经由熵编码器115被熵编码的)并插入比特流500中。

如所讨论的,比特流500可以经由编码器或编码器系统(如,例如,系统100)生成,并且比特流500可以(例如,作为文件或容器)存储至(例如,系统100的)存储器中、(例如,作为文件或容器)存储至存储器存储设备(例如,盘、用于下载的服务器等)中。此外,比特流500可以由解码器访问(例如,经由读取盘、流传输、下载等),该解码器可以对比特流进行解码并且生成视频帧或视频帧序列以用于呈现给用户。

图6是展示根据本公开的至少一些实现方式安排的用于提供具有黄金帧的视频编码的示例过程600的流程图。如图6所展示的,过程600可以包括一个或多个操作601-603。过程600可以形成视频编码过程的至少一部分。通过非限制性示例,针对由如在此讨论的系统100采取的视频,过程600可以形成视频编码过程的至少一部分。进一步地,在此将参考图7的系统700描述过程600。

图7是根据本公开的至少一些实现方式安排的用于提供具有黄金帧的视频编码的示例系统700的示意图。如图7所示,系统700可以包括图形处理单元(GPU)701、一个或多个中央处理单元702以及存储器存储703。同样如所示出的,GPU 701可以包括黄金帧指定和量化参数模块101、量化模块112、模式选择模块113、编码控制器114、和/或熵编码器模块115。此外,在一些示例中,黄金帧指定和量化参数模块101可以包括黄金帧指定模块704和量化参数模块705。例如,黄金帧指定模块704可以实现黄金帧指定模块108,并且量化参数模块705可以实现黄金帧大小和QP模块110和/或非黄金帧大小和QP模块111。在其他示例中,黄金帧指定和量化参数模块101可以被实现为没有所展示的子模块。在系统700的示例中,存储器存储703可以存储视频内容,如视频帧和/或比特流。

图形处理单元701可以包括任意数量和类型的图形处理单元,这些图形处理单元可以提供如在此所讨论的操作。这些操作可以经由软件或硬件或其组合来实现。在实施例中,图形处理单元701的所展示的模块可以经由电路等来实现。例如,图形处理单元701可以包括专门用于操纵视频数据以便生成压缩视频数据的电路。中央处理单元702可以包括任何数量和类型的处理单元或模块,这些处理单元或模块可以为系统700提供控制以及其他高级别的功能。存储器存储703可以是任意类型的存储器,如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等等。在实施例中,存储器存储703可以被配置成用于存储视频数据,如,黄金和/或非黄金帧大小、黄金和/或非黄金帧量化参数、经量化的变化系数、比特流、或在此讨论的任何其他视频数据。在非限制性示例中,存储器存储703可以由缓存存储器实现。在实施例中,黄金帧指定和量化参数模块101、量化模块112、模式选择模块113、编码控制器114、和/或熵编码器模块115可以经由图形处理单元701的执行单元(EU)实现。EU可以包括例如可编程逻辑或电路,如可以提供广泛的可编程逻辑功能阵列的一个或多个逻辑核。在实施例中,黄金帧指定和量化参数模块101、量化模块112、模式选择模块113、编码控制器114、和/或熵编码器模块115可以经由专用硬件(如固定功能电路等)实现。固定功能电路可以包括专用逻辑或电路并且可以提供固定功能入口点的集合,该集合可以映射到针对固定目的或功能的专用逻辑。

返回至图6的讨论,过程600可以从操作601“针对视频序列的帧,判定该帧是否为场景变化帧、黄金帧距离以及平均时间失真”处开始,在该操作中,可以针对视频序列的个体帧,判定该个体帧是否为场景变化帧、至前一黄金帧的黄金帧距离以及平均时间失真。例如,如经由GPU 701实现的黄金帧指定模块704可以判定该个体帧是否为场景变化帧、该个体帧至前一黄金帧的黄金帧距离以及该个体帧的平均时间失真。在一些示例中,平均时间失真是个体帧的时间失真与帧序列的在该个体帧之前的帧的时间失真的平均值。在一些示例中,如经由GPU 701实现的一个或多个黄金帧指定模块108可以判定该个体帧是否为场景变化帧、该个体帧至前一黄金帧的黄金帧距离以及该个体帧的平均时间失真。

过程600可以在操作602“将该帧指定为黄金帧或非黄金帧”处继续,在该操作中,可以基于该个体帧是否为场景变化帧、该黄金帧距离和该平均时间失真,将该个体帧指定为黄金帧或非黄金帧。例如,如经由GPU 701实现的黄金帧指定模块704可以基于该个体帧是否为场景变化帧、该黄金帧距离和该平均时间失真,将该个体帧指定为黄金帧或非黄金帧。

在一些示例中,当该个体帧是场景变化帧时,该个体帧可以被指定为黄金帧。此外,在一些示例中,如果黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况,则可以基于平均时间失真与阈值的比较将该个体帧指定为黄金帧或非黄金帧。例如,当平均时间失真大于阈值时,可以将该个体帧指定为黄金帧。在一些示例中,当黄金帧距离不小于最小黄金帧间隔时,当平均时间失真大于与最小黄金帧间隔相关联的第一阈值时,可以将该个体帧指定为黄金帧。此外,当平均时间失真不大于与该第一阈值时,并且当黄金帧距离不小于默认黄金帧间隔时,当平均时间失真大于与默认黄金帧间隔相关联的第二阈值时,可以将该个体帧指定为黄金帧。并且,当黄金帧距离等于最大黄金帧间隔时,该个体帧可以被指定为黄金帧。

过程600可以在操作603“基于所述指定以及该帧的时间失真确定该帧的量化参数”处继续,在该操作中,可以基于将个体帧指定为黄金帧或非黄金帧以及个体帧的时间失真来确定个体帧的至少一部分的量化参数。例如,如经由GPU 701实现的量化参数模块705可以基于将该个体帧指定为黄金帧或非黄金帧以及该个体帧的时间失真,确定该个体帧的至少一部分的量化参数。如所讨论的,量化参数可以是针对个体帧的一部分或者针对整个个体帧。在一些示例中,可以针对个体帧的一部分基于个体帧内的局部失真图案等对量化参数进行修改。

例如,如果个体帧被指定为黄金帧,则可以通过如在此关于方程(2)所讨论的基于个体帧的时间失真、黄金帧距离以及视频序列的目标比特率确定个体帧的黄金帧目标大小并且如在此关于方程(6)所讨论的基于黄金帧目标大小将初始量化参数修改一偏移量以生成个体帧的一部分的量化参数来确定量化参数。例如,如在此关于方程(4)和(5)讨论的该偏移量可以是基于黄金帧目标大小与非黄金帧目标大小之比,并且如在此关于方程(6)所讨论的将初始量化参数修改一偏移量可以包括从初始量化参数中减去该偏移量。

此外,如果个体帧被指定为非黄金帧并且从而使得个体帧在黄金帧之后,那么可以通过以下各项来确定量化参数:对黄金帧进行编码;(例如,经由GPU 701实现的编码控制器114)确定个体帧的编码黄金帧大小;如本文关于方程(7)所讨论的基于编码黄金帧大小、黄金帧的黄金帧距离、预定平均目标比特率以及黄金帧目标大小确定个体帧的非黄金帧比;以及基于该非黄金帧比将初始量化参数(例如,初始_QP(P)等)修改一非黄金帧偏移量(例如,如在此关于方程(8)所讨论的)以生成个体帧的至少一部分的量化参数。例如,修改初始量化参数可以包括将非黄金帧偏移添加到初始量化参数。

如所讨论的,黄金帧和非黄金帧量化参数可以用于对与黄金帧和非黄金帧相关联的变换系数进行量化和/或用于作出与视频序列相关联的模式选择决策。该黄金帧和非黄金帧量化参数、经量化的变换系数、和/或模式可以被编码成如在此讨论的比特流。可以针对任意数量的视频帧、视频序列或视频片段串行地或者并行地重复过程600任意次数。

在此描述的系统的各种组件可以用软件、固件、和/或硬件和/或其任意组合来实现。例如,系统100或系统700的各组件可以至少部分地由如可以在计算系统(如,例如,智能电话)中找到的计算片上系统(SoC)的硬件来提供。本领域技术人员可以认识到,在此描述的系统可以包括尚未在相应附图中描绘的附加组件。例如,在此讨论的系统可以包括为了清楚起见尚未被描绘的附加组件,如比特流复用器或解复用器模块等。

虽然在此讨论的示例过程(例如,过程200和过程600)的实现方式可以包括按所展示的顺序采取示出的所有操作,但是本公开并不限于这个方面,并且在各个示例中,此处的示例过程的实现方式可以仅包括所示操作的子集、以与所展示的顺序不同的顺序执行的操作、或附加操作。

另外,在此讨论的操作中的任何一个或多个操作可以响应于由一个或多个计算机程序产品提供的指令而被采取。这类程序产品可以包括提供指令的信号承载介质,当指令由例如处理器执行时可以提供在此描述的功能。计算机程序产品可以以一个或多个机器可读介质的任何形式被提供。因此,例如,包括一个或多个图形处理单元或处理器核的处理器可以响应于由一个或多个机器可读介质传达给处理器的程序代码和/或指令或指令集而采取此处的示例过程的块中的一个或多个块。通常,机器可读介质可以以程序代码和/或指令或指令集的形式传达软件,这些程序编码和指令集可以使在此描述的设备和/或系统中的任意一者实现系统100或700的至少多个部分、或者如在此讨论的任何其他模块或组件。

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

图8是根据本公开的至少一些实现方式安排的示例系统800的示意图。在各实现方式中,尽管系统800不限于此上下文,但系统800可以是媒体系统。例如,系统800可以并入个人计算机(PC)、膝上计算机、超级膝上计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备、相机(例如,自动对焦相机、超级变焦相机、数码单镜头反光(DSLR)相机)等。

在各实现方式中,系统800包括耦合到显示器820的平台802。平台802可以接收来自内容设备的内容,如(多个)内容服务设备830或(多个)内容传递设备840或者其他类似内容源。包括一个或多个导航特征的导航控制器850可以用来例如与平台802和/或显示器820交互。以下将更详细地描述这些组件中的每个组件。

在各实现方式中,平台802可以包括芯片组805、处理器810、存储器812、天线813、存储设备814、图形子系统815、应用816和/或无线电818的任意组合。芯片组805可以在处理器810、存储器812、存储设备814、图形子系统815、应用816和/或无线电818之中提供相互通信。例如,芯片组805可以包括能够提供与存储设备814的交互通信的存储适配器(未示出)。

处理器810可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核处理器、或任何其他微处理器或中央处理器单元(CPU)。在各实现方式中,处理器810可以是(多个)双核处理器、(多个)双核移动处理器等。

存储器812可以被实现为易失性存储设备,如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。

存储设备814可以被实现为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附属存储设备、闪存、电池应急SDRAM(同步DRAM)和/或网络可接入的存储设备。在各实现方式中,存储设备814可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。

图形子系统815可以执行对如用于显示的静态或视频图像的处理。例如,图形子系统815可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口将图形子系统815和显示820通信地耦合。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或符合无线HD的技术中的任何一个。图形子系统815可以集成到处理器电路810或芯片组805中。在一些实现方式中,图形子系统815可以是通信地耦合至芯片组805的独立设备。

在此描述的图形和/或视频处理技术可以用各种硬件架构实现。例如,图形和/或视频功能可以集成到芯片组中。替代性地,可以使用离散图形和/或视频处理器。如又另一种实现方式,图形和/或视频功能可以由通用处理器(包括多核处理器)来提供。在进一步的实施例中,该功能可以在消费电子设备中实现。

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

在各实现方式中,显示器820可以包括任何电视机类型的监测器或显示器。显示器820可以包括例如,计算机显示屏、触摸屏显示器、视频监视器、类似电视机的设备和/或电视机。显示器820可以是数字的和/或模拟的。在各实现方式中,显示器820可以是全息显示器。而且,显示器820可以是可以接收视觉投影的透明表面。这种投影可以传达各种形式的信息、图像和/或物体。例如,这种投影可以是针对移动增强现实(MAR)应用的视觉叠加。在一个或多个软件应用816的控制下,平台802可以在显示器820上显示用户界面822。

在各实现方式中,(多个)内容服务设备830可以由任何国家的、国际的和/或独立的服务托管,并因此例如经由互联网可接入平台802。(多个)内容服务设备830可以耦合至平台802和/或至显示器820。平台802和/或(多个)内容服务设备830可以耦合至网络860以便将媒体信息传达至网络860或从网络传达(例如,发送和/或接收)。(多个)内容传递设备840也可以耦合到平台802和/或显示器820。

在各实现方式中,(多个)内容服务设备830可以包括有线电视盒、个人电脑、网络、电话、能够传递数字信息和/或内容的启用互联网的设备或应用程序、以及能够在内容提供者与平台802和/或显示器820之间经由网络860或直接地单向或双向传达内容的任意其他类似设备。将理解,内容可以经由网络860单向地和/或双向地来往于系统800中的任何一个组件与内容提供者之间进行通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

(多个)内容服务设备830可以接收如包含媒体信息、数字信息和/或其他内容的有线电视节目的内容。内容提供方的示例可以包括任何有线或卫星电视或无线电或互联网内容提供方。所提供的示例不旨在以任何方式限制根据本公开的实现方式。

在各实现方式中,平台802可以从具有一个或多个导航特征的导航控制器850中接收控制信号。控制器850的导航特征可以用于例如与用户界面822进行交互。在各实施例中,导航控制器850可以是定点设备,该定点设备可以是允许用户输入空间(例如,连续的和多维的)数据到计算机的计算机硬件部件(特别是人机接口设备)。如图形用户界面(GUI)、和电视机以及监视器的许多系统允许用户使用物理姿势来控制计算机或电视机并向计算机或电视机提供数据。

可以通过指针、光标、聚焦环或在显示器上显示的其他视觉指示器的移动在显示器(例如,显示器820)上复制控制器850的导航特征的移动。例如,在软件应用816的控制下,位于导航控制器850上的导航特征可以例如被映射为在用户界面822上显示的虚拟导航特征。在各实施例中,控制器850可以不是独立组件但可以集成在平台802和/或显示器820内。然而,本公开不限于在此示出或描述的元素或内容。

在各实现方式中,驱动器(未示出)可以包括使用户能够通过例如在初始引导后启动的按钮的触摸立刻打开和关闭类似电视机的平台802的技术。当平台被“关闭”时,程序逻辑可以允许平台802将内容流传输到媒体适配器或其他(多个)内容服务设备830或(多个)内容传递设备840。此外,芯片组805可以包括支持例如5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在各实施例中,图形驱动器可以包括外围部件互连(PCI)快速图形卡。

在各实现方式中,系统800中示出的部件中的任何一个或多个部件可以是集成的。例如,平台802和(多个)内容服务设备830可以是集成的,或者平台802和(多个)内容传递设备840可以是集成的,或者平台802、(多个)内容服务设备830和(多个)内容传递设备840可以例如是集成的。在各种实施例中,平台802和显示器820可以是集成的单元。例如,显示820和内容服务设备830可以是集成的,或者显示820和内容传递设备840可以是集成的。这些示例并不意在限制本公开。

在各实施例中,系统800可以被实现为无线系统、有线系统、或二者的组合。当实现为无线系统时,系统800可以包括适合于通过如一个或多个天线、发送器、接收器、收发器、放大器、过滤器、控制逻辑等的无线共享介质通信的部件和接口。无线共享介质的示例可以包括无线频谱部分,例如RF频谱等。当被实现为有线系统时,系统800可以包括适用于通过有线通信介质(如输入/输出(I/O)适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等)进行通信的组件和接口。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。

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

如上所述,系统800可以用变化的物理风格或形成因子来体现。图9展示了可以用其具体化系统900的小形成因子设备900的实现方式。在各实施例中,例如,设备900可以被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源或电源(如一个或多个电池)的任何设备。

如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上计算机、超级膝上计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备、相机(例如,自动对焦相机、超级变焦相机、数码单镜头反光(DSLR)相机)等。

移动计算设备的示例还可以包括被安排以由人穿戴的计算机,如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机、以及其他可穿戴计算机。在各实施例中,例如移动计算设备可以实现为能够执行计算机应用程序、以及语音通信和/或数据通信的智能电话。举例来讲,尽管一些实施例可以用被实现为智能电话的移动计算设备来描述,但可以理解的是,其他实施例也可以使用其他无线移动计算设备来实现。实施例并不限于本上下文中。

如图9所示,设备900可以包括:壳体902、显示器904、输入/输出(I/O)设备906、和天线908。设备900还可以包括导航特征912。显示器904可以包括适合于移动计算设备的用于显示信息的任何适当的显示单元。如所示,在一些示例中,显示器904可以包括用户界面910。I/O设备906可以包括用于将信息输入移动计算设备中的任何适当的I/O设备。I/O设备906的示例可以包括:字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇杆式开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风(未示出)输入到设备900中。这种信息可以由语音识别设备(未示出)数字化。实施例并不限于本上下文中。

可以使用硬件元件、软件元件、或两者的组合来实现各实施例。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。判定是否使用硬件元件和/或软件元件来实现实施例可以根据任意数量的因子而变化,如预期的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。

可以由机器可读介质上所存储的表属性指令实现至少一个实施例的一个或多个方面,该指令代表处理器内的各种逻辑,当被机器读取时该指令使该机器制作用于执行在此所描述的技术的逻辑。此类表示(称为“IP核”)可以被存储在有形的机器可读介质上并提供给各顾客或制造设施以加载至实际制作该逻辑或处理器的制作机器中。

虽然已经参照各实现方式描述了在此阐述的某些特征,但并不打算在限制性意义上解释本说明书。因此,本公开涉及的对本领域技术人员而言明显的对在此描述的实现方式以及其他实现方式的各种修改被视为是在本公开的精神和范围内。

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

在一个或多个第一实施例中,一种用于视频编码的计算机实现的方法,所述方法包括:针对视频序列的个体帧,判定所述个体帧是否为场景变化帧、至前一黄金帧的黄金帧距离以及平均时间失真;基于所述个体帧是否为场景变化帧、所述黄金帧距离和所述平均时间失真,将所述个体帧指定为黄金帧或非黄金帧;以及基于将所述个体帧指定为黄金帧或非黄金帧以及所述个体帧的时间失真,确定所述个体帧的至少一部分的量化参数。

进一步针对所述第一实施例,所述平均时间失真包括所述个体帧的所述时间失真与所述帧序列的在所述个体帧之前的帧的时间失真的平均值。

进一步针对所述第一实施例,将所述个体帧指定为黄金帧或非黄金帧包括当所述个体帧为场景变化帧时将所述个体帧指定为黄金帧。

进一步针对所述第一实施例,所述平均时间失真包括所述个体帧的所述时间失真与所述帧序列的在所述个体帧之前的帧的时间失真的平均值,和/或其中,将所述个体帧指定为黄金帧或非黄金帧包括当所述个体帧为场景变化帧时将所述个体帧指定为黄金帧。

进一步针对所述第一实施例,将所述个体帧指定为黄金帧或非黄金帧包括:确定所述黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况,以及基于所述平均时间失真与同所述最小黄金帧间隔或所述默认黄金帧间隔相关联的阈值的比较将所述个体帧指定为黄金帧或非黄金帧。

进一步针对所述第一实施例,将所述个体帧指定为黄金帧或非黄金帧包括:确定所述黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况,以及基于所述平均时间失真与同所述最小黄金帧间隔或所述默认黄金帧间隔相关联的阈值的比较将所述个体帧指定为黄金帧或非黄金帧,其中,当所述平均时间失真大于所述阈值时,将所述个体帧指定为黄金帧。

进一步针对所述第一实施例,所述方法进一步包括:针对所述帧序列的第二帧,确定至所述前一黄金帧的第二黄金帧距离以及第二平均时间失真;以及基于所述第二黄金帧距离和所述第二平均时间失真,将所述第二帧指定为黄金帧或非黄金帧,其中,所述黄金帧距离在最小黄金帧间隔与默认黄金帧间隔之间,其中,所述第二黄金帧距离在所述默认黄金帧间隔与最大黄金帧间隔之间,其中,将所述个体帧指定为黄金帧或非黄金帧包括基于所述平均时间失真与第一阈值的比较将所述个体帧指定为黄金帧或非黄金帧,其中,将所述第二帧指定为黄金帧或非黄金帧包括基于所述第二平均时间失真与第二阈值的比较将所述第二帧指定为黄金帧或非黄金帧,并且其中,所述第一阈值大于所述第二阈值。

进一步针对所述第一实施例,将所述个体帧指定为黄金帧或非黄金帧包括:确定所述黄金帧距离为不小于最小黄金帧间隔;当所述平均时间失真大于与所述最小黄金帧间隔相关联的第一阈值时,将所述个体帧指定为黄金帧;当所述平均时间失真不大于所述第一阈值时,确定所述黄金帧距离为不小于默认黄金帧间隔;以及当所述平均时间失真大于与所述默认黄金帧间隔相关联的第二阈值时,将所述个体帧指定为黄金帧。

进一步针对所述第一实施例,确定所述个体帧的所述一部分的所述量化参数包括:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数。

进一步针对所述第一实施例,确定所述个体帧的所述一部分的所述量化参数包括:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数,并且所述方法进一步包括:对所述个体帧进行编码;确定所述个体帧的编码黄金帧大小;基于所述编码黄金帧大小、所述黄金帧距离、所述预定平均目标比特率和所述黄金帧目标大小,确定所述个体帧之后的第二帧的非黄金帧比;以及基于所述非黄金帧比将所述初始量化参数修改一非黄金帧偏移量以生成所述第二帧的至少一部分的第二量化参数。

进一步针对所述第一实施例,确定所述个体帧的所述一部分的所述量化参数包括:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数,其中,所述偏移量基于所述黄金帧目标大小与非黄金帧目标大小之比,并且其中,将所述初始量化参数修改所述偏移量包括从所述初始量化参数中减去所述偏移量。

进一步针对所述第一实施例,所述方法进一步包括:确定所述黄金帧之后的非黄金帧的至少一部分的第二量化参数,其中,所述第一量化参数小于所述第二量化参数。

进一步针对所述第一实施例,所述个体帧被指定为黄金帧并且所述方法进一步包括:将所述视频序列的所述多个帧中的第二帧指定为第二黄金帧;以及确定所述第二帧的至少一部分的第二量化参数,其中,所述个体帧属于第一黄金帧类别,并且所述第二帧属于第二黄金帧类别,并且其中,所述量化参数小于所述第二量化参数。

进一步针对所述第一实施例,所述方法进一步包括:基于所述量化参数,对与所述个体帧相关联的变换系数进行量化;至少部分地基于所述量化参数,生成与所述视频序列相关联的模式选择;以及将所述经量化的变换系数与所述量化参数编码成比特流。

在一个或多个第二实施例中,一种用于在计算设备上提供视频编码的系统,所述系统包括:存储器,所述存储器被配置成用于存储视频数据;以及图形处理单元,所述图形处理单元耦合至所述存储器,其中,所述图形处理单元包括:黄金帧选择电路,所述黄金帧选择电路被配置成用于:针对视频序列的个体帧,判定所述个体帧是否为场景变化帧、至前一黄金帧的黄金帧距离以及平均时间失真;以及基于所述个体帧是否为场景变化帧、所述黄金帧距离和所述平均时间失真,将所述个体帧指定为黄金帧或非黄金帧;以及量化参数电路,所述量化参数电路被配置成用于:基于将所述个体帧指定为黄金帧或非黄金帧以及所述个体帧的时间失真,确定所述个体帧的至少一部分的量化参数。

进一步针对所述第二实施例,所述黄金帧选择电路被配置成用于:当所述个体帧为场景变化帧时将所述个体帧指定为黄金帧。

进一步针对所述第二实施例,所述黄金帧选择电路被配置成用于将所述个体帧指定为黄金帧或非黄金帧包括所述黄金帧选择电路被配置成用于确定所述黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况,以及基于所述平均时间失真与同所述最小黄金帧间隔或所述默认黄金帧间隔相关联的阈值的比较将所述个体帧指定为黄金帧或非黄金帧。

进一步针对所述第二实施例,所述黄金帧选择电路被配置成用于将所述个体帧指定为黄金帧或非黄金帧包括所述黄金帧选择电路被配置成用于确定所述黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况,以及基于所述平均时间失真与同所述最小黄金帧间隔或所述默认黄金帧间隔相关联的阈值的比较将所述个体帧指定为黄金帧或非黄金帧,其中,当所述平均时间失真大于所述阈值时,将所述个体帧指定为黄金帧。

进一步针对所述第二实施例,所述黄金帧选择电路进一步被配置成用于:针对所述帧序列的第二帧,确定至所述前一黄金帧的第二黄金帧距离以及第二平均时间失真;以及基于所述第二黄金帧距离和所述第二平均时间失真,将所述第二帧指定为黄金帧或非黄金帧,其中,所述黄金帧距离在最小黄金帧间隔与默认黄金帧间隔之间,其中,所述第二黄金帧距离在所述默认黄金帧间隔与最大黄金帧间隔之间,其中,所述黄金帧选择电路被配置成用于基于所述平均时间失真与第一阈值的比较将所述个体帧指定为黄金帧或非黄金帧,其中,所述黄金帧选择电路被配置成用于基于所述第二平均时间失真与第二阈值的比较将所述第二帧指定为黄金帧或非黄金帧,并且其中,所述第一阈值大于所述第二阈值。

进一步针对所述第二实施例,所述量化参数电路被配置成用于确定所述量化参数包括所述量化参数电路被配置成用于:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数。

进一步针对所述第二实施例,所述量化参数电路被配置成用于确定所述量化参数包括所述量化参数电路被配置成用于:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数,并且所述系统进一步包括:熵编码器,所述熵编码器被配置成用于对所述个体帧进行编码;以及编码控制器,所述编码控制器被配置成用于确定所述个体帧的编码黄金帧大小,其中,所述量化参数电路进一步被配置成用于:基于所述编码黄金帧大小、所述黄金帧距离、所述预定平均目标比特率和所述黄金帧目标大小,确定所述个体帧之后的第二帧的非黄金帧比;以及基于所述非黄金帧比将所述初始量化参数修改一非黄金帧偏移量以生成所述第二帧的至少一部分的第二量化参数。

进一步针对所述第二实施例,所述量化参数电路被配置成用于确定所述量化参数包括所述量化参数电路被配置成用于:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数,其中,所述偏移量基于所述黄金帧目标大小与非黄金帧目标大小之比,并且其中,所述量化参数电路被配置成用于将所述初始量化参数修改所述偏移量包括所述量化参数电路被配置成用于从所述初始量化参数中减去所述偏移量。

进一步针对所述第二实施例,所述量化参数电路进一步被配置成用于:确定所述黄金帧之后的非黄金帧的至少一部分的第二量化参数,其中,所述第一量化参数小于所述第二量化参数。

进一步针对所述第二实施例,所述黄金帧选择电路进一步被配置成用于:将所述视频序列的所述多个帧中的第二帧指定为第二黄金帧;以及确定所述第二帧的至少一部分的第二量化参数,其中,所述个体帧属于第一黄金帧类别,并且所述第二帧属于第二黄金帧类别,并且其中,所述量化参数小于所述第二量化参数。

在一个或多个第三实施例中,一种用于在计算设备上提供视频编码的系统,所述系统包括:用于针对视频序列的个体帧判定所述个体帧是否为场景变化帧、至前一黄金帧的黄金帧距离以及平均时间失真的装置;用于基于所述个体帧是否为场景变化帧、所述黄金帧距离和所述平均时间失真将所述个体帧指定为黄金帧或非黄金帧的装置;以及用于基于将所述个体帧指定为黄金帧或非黄金帧以及所述个体帧的时间失真而确定所述个体帧的至少一部分的量化参数的装置。

进一步针对所述第三实施例,将所述个体帧指定为黄金帧或非黄金帧包括当所述个体帧为场景变化帧时将所述个体帧指定为黄金帧。

进一步针对所述第三实施例,所述用于将所述个体帧指定为黄金帧或非黄金帧的装置包括:用于确定所述黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况的装置,以及用于基于所述平均时间失真与同所述最小黄金帧间隔或所述默认黄金帧间隔相关联的阈值的比较将所述个体帧指定为黄金帧或非黄金帧的装置。

进一步针对所述第三实施例,所述系统进一步包括:用于针对所述帧序列的第二帧确定至所述前一黄金帧的第二黄金帧距离以及第二平均时间失真的装置;以及用于基于所述第二黄金帧距离和所述第二平均时间失真将所述第二帧指定为黄金帧或非黄金帧的装置,其中,所述黄金帧距离在最小黄金帧间隔与默认黄金帧间隔之间,其中,所述第二黄金帧距离在所述默认黄金帧间隔与最大黄金帧间隔之间,其中,将所述个体帧指定为黄金帧或非黄金帧包括基于所述平均时间失真与第一阈值的比较将所述个体帧指定为黄金帧或非黄金帧,其中,将所述第二帧指定为黄金帧或非黄金帧包括基于所述第二平均时间失真与第二阈值的比较将所述第二帧指定为黄金帧或非黄金帧,并且其中,所述第一阈值大于所述第二阈值。

在一个或多个第四实施例中,至少一种机器可读介质包括多条指令,所述指令响应于在计算设备上被执行而使所述计算设备通过以下各项来执行视频编码:针对视频序列的个体帧,判定所述个体帧是否为场景变化帧、至前一黄金帧的黄金帧距离以及平均时间失真;基于所述个体帧是否为场景变化帧、所述黄金帧距离和所述平均时间失真,将所述个体帧指定为黄金帧或非黄金帧;以及基于将所述个体帧指定为黄金帧或非黄金帧以及所述个体帧的时间失真,确定所述个体帧的至少一部分的量化参数。

进一步针对所述第四实施例,将所述个体帧指定为黄金帧或非黄金帧包括当所述个体帧为场景变化帧时将所述个体帧指定为黄金帧。

进一步针对所述第四实施例,将所述个体帧指定为黄金帧或非黄金帧包括:确定所述黄金帧距离为等于或大于最小黄金帧间隔或默认黄金帧间隔中的至少一者中的至少一种情况,以及基于所述平均时间失真与同所述最小黄金帧间隔或所述默认黄金帧间隔相关联的阈值的比较将所述个体帧指定为黄金帧或非黄金帧。

进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在所述计算设备上被执行而使所述计算设备通过以下各项来执行视频编码:针对所述帧序列的第二帧,确定至所述前一黄金帧的第二黄金帧距离以及第二平均时间失真;以及基于所述第二黄金帧距离和所述第二平均时间失真,将所述第二帧指定为黄金帧或非黄金帧,其中,所述黄金帧距离在最小黄金帧间隔与默认黄金帧间隔之间,其中,所述第二黄金帧距离在所述默认黄金帧间隔与最大黄金帧间隔之间,其中,将所述个体帧指定为黄金帧或非黄金帧包括基于所述平均时间失真与第一阈值的比较将所述个体帧指定为黄金帧或非黄金帧,其中,将所述第二帧指定为黄金帧或非黄金帧包括基于所述第二平均时间失真与第二阈值的比较将所述第二帧指定为黄金帧或非黄金帧,并且其中,所述第一阈值大于所述第二阈值。

进一步针对所述第四实施例,确定所述个体帧的所述一部分的所述量化参数包括:当所述个体帧被指定为黄金帧时,基于所述个体帧的所述时间失真、所述黄金帧距离以及所述视频序列的目标比特率,确定所述个体帧的黄金帧目标大小;以及基于所述黄金帧目标大小将初始量化参数修改一偏移量以生成所述个体帧的所述一部分的所述量化参数。

进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在所述计算设备上被执行而使所述计算设备通过以下各项来执行视频编码:对所述个体帧进行编码;确定所述个体帧的编码黄金帧大小;基于所述编码黄金帧大小、所述黄金帧距离、所述预定平均目标比特率和所述黄金帧目标大小,确定所述个体帧之后的第二帧的非黄金帧比;以及基于所述非黄金帧比将所述初始量化参数修改一非黄金帧偏移量以生成所述第二帧的至少一部分的第二量化参数。

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

在一个或多个第六实施例中,一种装置可以包括:用于执行根据以上实施例中的任一项所述的方法的装置。

将认识到,这些实施例并不限于如此描述的这些实施例,而是可在不背离所附权利要求书的范围的情况下通过修改和变更来实践。例如,以上实施例可以包括特征的特定组合。然而,以上实施例并不限于这个方面,并且在各实现方式中,以上实施例可以包括仅采取这类特征的子集、采取这类特征的不同顺序、采取这类特征的不同组合、和/或采取除了明确例举的那些特征之外的附加特征。因此,这些实施例的范围应当参考所附权利要求书、连同这样的权利要求书有权获得的等效物的全部范围来确定。

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