用于低时延视频编码的自适应质量提升的制作方法

文档序号:30434399发布日期:2022-06-15 18:37阅读:116来源:国知局
用于低时延视频编码的自适应质量提升的制作方法
用于低时延视频编码的自适应质量提升


背景技术:

1.在压缩/解压缩(编解码器)系统中,压缩效率和视频质量是重要的性能标准。视觉质量在许多视频应用中是用户体验的一个重要方面,并且压缩效率影响着存储视频文件所需要的存储器存储的数量和/或传输和/或流传输视频内容所需要的带宽的数量。例如,视频编码器压缩视频信息以使得更多的信息可通过给定的带宽被发送或者被存储在给定的存储器空间中,等等。经压缩的信号或数据随后可经由解码器被解码,解码器对信号或数据进行解码或解压缩来显示给用户。在大多数实现方式中,具有更大压缩的更高视觉质量是想要的。
2.在包括视频会议和视频电话在内的一些视频编码情境中,采用实时视频流传输。这种实时视频流传输尤其是一种重要的互联网视频应用。随着最近云视频游戏的出现,实时视频流传输已变得更加重要。在所有这样的应用中,以低时延编码和发送视频是提供期望的用户体验的必要条件,尤其是对于要求用户交互的应用而言。当前,视频编码器负责以反映估计网络带宽的平均比特率(或平均帧大小)来编码视频。对于每一帧,经编码的帧大小被限制在平均帧大小附近的一个小范围内。由于这个限制,当场景变化发生时,经编码的视频质量会下降,并且随着时间的推移逐渐增大到一个收敛的稳定质量。然而,鉴于帧大小限制,收敛速度缓慢,并且稳定的质量往往停留在非最优的标准质量。
3.在这种低时延情境中,提高视频质量可能是有利的。正是考虑到这些和其他考虑事项,需要本改进。随着压缩和传输视频数据的愿望变得更普遍,这种改进可变得关键。
附图说明
4.在附图中以示例而不是限制的方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,在附图之间重复附图标记以指示对应或相似的元素。在附图中:
5.图1是用于低时延视频编码的示例系统的说明图,其中包括在时间上相邻的视频帧之间应用移动的高质量编码区域;
6.图2是示例输入视频和该输入视频的每一帧的相应区域数据和质量提升水平的说明图;
7.图3是图示出用于确定帧的时间相关性以用来定义质量提升水平或值的示例过程的流程图;
8.图4是图示出用于利用帧的时间相关性来确定帧的质量提升水平或值的示例过程的流程图;
9.图5是用于低时延视频编码的示例高质量编码区域跨帧移动的说明图;
10.图6是用于低时延视频编码的另一示例高质量编码区域跨帧移动的说明图;
11.图7是用于低时延视频编码的另一示例高质量编码区域跨帧移动的另一说明图;
12.图8是图示出用于在低时延编码管线中执行移动区域高质量编码的示例过程的流
程图;
13.图9图示了示例比特流;
14.图10是图示出用于低时延视频编码的示例过程的流程图,其中包括在时间上相邻的视频帧之间应用移动的高质量编码区域;
15.图11是用于低时延视频编码的示例系统的说明图,其中包括在时间上相邻的视频帧之间应用移动的高质量编码区域;
16.图12是示例系统的说明图;并且
17.图13图示了完全根据本公开的至少一些实现方式布置的示例设备。
具体实施方式
18.现在参考附图描述一个或多个实施例或实现方式。虽然论述了具体的配置和布置,但应当理解这么做只是为了说明。相关领域的技术人员将认识到,在不脱离本描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将会清楚,本文描述的技术和/或布置也可被用在与本文所述不同的各种其他系统和应用中。
19.虽然接下来的描述阐述了例如可在诸如片上系统(system-on-a-chip,soc)体系结构之类的体系结构中显现的各种实现方式,但本文描述的技术和/或布置的实现方式不限于特定的体系结构和/或计算系统,而是可由任何体系结构和/或计算系统为类似的目的而实现。例如,采用例如多个集成电路(integrated circuit,ic)芯片和/或封装的各种体系结构,和/或诸如机顶盒、智能电话等等之类的各种计算设备和/或消费电子(consumer electronic,ce)设备,可实现本文描述的技术和/或布置。另外,虽然接下来的描述可阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等等,但可在没有这种具体细节的情况下实现要求保护的主题。在其他情况中,可能没有详细示出一些素材,例如控制结构和完整软件指令序列,以免模糊本文公开的素材。
20.可以用硬件、固件、软件、或者它们的任何组合来实现本文公开的素材。本文公开的素材也可被实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(read only memory,rom);随机存取存储器(random access memory,ram);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的、或者其他形式的传播信号(例如,载波、红外信号、数字信号等等),以及其他。
21.说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等是表明所描述的实现方式可包括特定特征、结构、或特性,但并不一定每个实施例都包括该特定特征、结构、或特性。此外,这种短语不一定指代同一实现方式。另外,当联系实施例来描述特定特征、结构、或特性时,认为联系其他实现方式(无论本文是否明确描述)来实现这种特征、结构、或特性是在本领域技术人员的知识范围内的。
22.本文描述了与用于低时延视频编码的自适应质量提升有关、特别是与随着时间的推移将质量提升应用于不同的帧部分以改善视频质量有关的方法、设备、装置、计算平台、和物品。
23.如上所述,在一些视频编码情境中,需要低时延编码。就本文使用的而言,术语“低时延”指的是具有非常有限的帧编码时间约束(例如,每帧的编码时间小于100ms)的低延迟
编码。在这样的低时延编码中,可以使用平均比特率(或平均帧大小),这样,必须使用与平均帧大小的差异在特定差异内(例如,小于5%)的帧大小来对每个帧进行编码。就本文使用的而言,术语“平均比特率”和“平均帧大小”指的是在对视频的特定部分(例如,帧)的编码之后的结果比特的数目。同样如上所述,在低时延和遵守平均帧大小方面的这种约束,导致视频质量在场景变化帧或帧内帧处下降。重要的是,即使在场景变化帧或帧内帧之后,视频质量改善时,该改善仍被限制在缓慢的改善和低于期望质量水平的最终质量水平。就本文使用的而言,术语“视频质量”和类似术语指的是从经编码的比特流解码出的视频帧或序列的客观和/或主观质量。此外,术语“场景变化帧”或“帧内帧”指的是仅使用来自该帧的像素样本(即,不参考任何其他帧)来编码的帧。术语“场景变化”也可以指视频的内容相对于场景变化帧之前的帧的变化。
24.为了解决这些问题和约束,本文论述的技术提供了一种自适应滚动区域质量提升,以实现更快的质量收敛和更好的稳定质量,从而改善视觉体验。值得注意的是,论述的技术既提供了更快的质量改善,也提供了更高的最终质量水平。在一些实施例中,若干个时间上相邻的帧中的每一帧被分割成高质量编码区域和标准质量编码区域。在此,术语“高质量编码区域”指的是这样的区域:该区域在编码期间要包括编码质量提升,以便该区域可被解码以生成更高质量的视频。术语“标准质量区域”指的是这样的区域:该区域不采用编码质量提升,并且相对于这种高质量编码区域和/或相对于帧的未修改编码而言是标准质量。在一些实施例中,标准质量编码区域被未经修改地编码,而高质量编码区域被如本文所述那样质量提升。在一些实施例中,除了高质量编码区域被质量提升以外,标准质量编码区域还具有降低的质量。在任何情况下,标准质量编码也可以被表征为低质量编码、常规质量编码、未经修改的质量编码等。
25.术语“编码质量提升”指的是相对于标准质量区域,相应的区域接收更多的比特或者更多的可用比特来进行编码。可以利用任何一种或多种适当的技术来采用更多比特或更多可用比特的这种应用。在一些实施例中,在高质量编码区域中应用量化参数(quantization parameter,qp)德尔塔(delta)来降低这种区域中的qp。例如,某帧的帧级别qp可被降低到降低的qp,该降低的qp被应用在高质量编码区域中,而标准质量编码区域应用帧级别qp。在一些实施例中,应用质量提升包括调整高质量编码区域中相对于标准质量编码区域的速率失真优化,以便使用更多的比特。例如,在一些速率失真优化(rate distortion optimization,rdo)情境中,可以使用更低的拉姆达(lambda)值,这样比特率相对于优化中的失真就不会受到那么大的惩罚。
26.将时间上相邻的帧分割成高质量和标准质量编码区域,提供了高质量编码区域随着时间的推移在帧之间的移动。从而,随着处理继续,帧的不同区域被提升。这样的高质量编码区域可具有任何形状,例如,单个水平条带、多个水平条带、定义图案的多个矩形区域等。在时间上相邻的帧之间,高质量编码区域被移动,使得在特定数目的帧上,整个视频帧大小被高质量编码区域所填充或覆盖。例如,给定完整帧大小,高质量编码区域的复合覆盖该完整帧大小,在高质量编码区域之间有或没有重叠。此外,在一些实施例中,时间上相邻的帧中的每个帧中的高质量编码区域有一部分相对于时间上相邻的帧的(一个或多个)高质量编码区域是独特的。例如,高质量编码区域在帧之间移动,以覆盖完整帧大小的独特且先前未覆盖的区域。
27.在一些实施例中,应用于特定帧的编码质量提升是自适应的。例如,编码质量提升可以自适应于帧的测量到的时间相关性,当帧具有更高的时间相关性时,提供更高的编码质量提升。在一些实施例中,场景变化帧或帧内帧(没有时间相关性)使用预定义的编码质量提升,例如用于其高质量编码区域的预定qp降低。对于随后的帧,可以使用任何一种或多种适当的技术来测量时间相关性,并且使用时间相关性来调整编码质量提升。在一些实施例中,当检测到更高的时间相关性时,使用更高的qp降低,而当检测到更高的qp降低时,使用更低的qp降低。虽然论述的是qp调整,但在一些实施例中,可以通过速率失真优化调整来采用这种编码质量提升水平。可以使用多个时间相关性阈值和相应的编码质量提升。
28.在一些实施例中,首先分析视频预分析统计信息,并且根据估计的时间相关性,为当前帧确定自适应提升值。然后,该提升值被应用到当前帧的一组选定区域(即,高质量编码区域)。这种选定区域在帧与帧之间周期性地滚动,从而使得每一帧将在不同的区域中被提升,并且在帧的某个周期之后整个帧被覆盖。无论是否采用场景变化帧或帧内帧,这种周期性的区域选择在整个帧被覆盖之后可以被一次又一次地继续。此外,虽然就滚动的高质量编码区域进行了论述,但在一些实施例中,这些区域在帧周围跳过。在一些实施例中,高质量编码区域的位置和/或大小是为当前帧随机选择的。论述的技术提供了实现的低复杂性,相对容易的集成,以及显著的质量改善(例如,对于长期的稳定显示高达2db,平均为0.4db)。
29.图1是根据本公开的至少一些实现方式布置的用于低时延视频编码的示例系统100的说明图,其中包括在时间上相邻的视频帧之间应用移动的高质量编码区域。如图1所示,系统100包括预分析模块101、比特率控制帧级别参数估计模块102、质量提升水平决定模块103、基于区域的质量提升编码模块104、以及区域选择模块105。
30.如图所示,系统100接收用于编码的输入视频111并且系统100提供视频压缩来生成比特流117,从而系统100可以是经由计算机或计算设备之类的实现的视频编码器。如本文进一步论述的,系统100提供移动的高质量编码区域和相应的编码质量提升水平或值,以获得改善的低时延视频,该改善的低时延视频在输入视频111的视频帧之间具有更快的质量改善并且具有更高的稳定质量水平。比特流117可以是任何适当的比特流,例如,服从标准的比特流。例如,比特流117可以服从avc(advanced video coding,高级视频编码)标准、服从hevc(high efficiency video coding,高效率视频编码)标准、服从vp9标准等等。系统100可经由任何适当的设备来实现,例如,个人计算机、膝上型计算机、平板设备、平板手机、智能电话、数字相机、游戏控制台、可穿戴设备、一体化设备、二合一设备等等,或者诸如移动平台等等之类的平台。例如,就本文使用的而言,系统、设备、计算机、或计算设备可包括任何这种设备或平台。
31.系统100可包括为了呈现的清晰起见而没有示出的其他模块或组件。例如,基于区域的质量提升编码模块104(和预分析模块101)可包括分区模块、变换模块、量化模块、内预测模块、运动估计模块、运动补偿模块、扫描模块、熵编码模块等等中的一个或多个。此外,基于区域的质量提升编码模块104可包括本地解码循环,其中包括逆量化模块、逆变换模块、以及用于将重建的残余块与参考块相组合的加法器、去块滤波模块、样本自适应偏移(sample adaptive offset,sao)滤波模块等等。这些模块和与之相关联的操作是本领域技术人员已知的,并且为了呈现的清晰起见在本文中不作进一步论述。
32.如前所述,系统100接收输入视频111。输入视频111可包括采取任何适当分辨率的任何适当的视频帧、视频图片、视频帧序列、图片组、多个图片组、视频数据等等。例如,视频可以是视频图形阵列(video graphics array,vga)、高清晰度(high definition,hd)、全hd(例如,1080p)、4k分辨率视频、5k分辨率视频等等,并且视频可包括任何数目的视频帧、视频帧序列、图片、图片组等等。为了呈现的清晰起见,本文论述的技术是针对帧和块论述的。然而,这种帧可被表征为图片、视频帧或图片、帧或图片序列、视频序列等等,并且这种块可被表征为编码单元、编码块、宏块、子单元、子块等等。例如,彩色视频数据的图片或帧可包括亮度平面或成分和相对于亮度平面处于相同或不同分辨率的两个色度平面或成分。输入视频111可包括可被划分成任何大小的块的图片或帧,这些块包含与例如,像素的mxn块相对应的数据。这种块可包括来自像素数据的一个或多个平面或颜色通道的数据。就本文使用的而言,术语“块”可包括任何适当大小的宏块、编码单元等等。将会明白,这种块也可被划分成子块,用于预测、变换之类的。
33.图2是根据本公开的至少一些实现方式布置的示例输入视频111和输入视频111的每个帧的相应区域数据和质量提升水平的说明图。如图2所示,输入视频111包括若干个时间上相邻的帧201-208(n至n+7)。就本文使用的而言,术语“时间上相邻”指的是帧在时间呈现顺序(例如,时间顺序)上是彼此接近的。术语“时间上紧邻”指的是帧采取时间呈现顺序并且在其间没有中间帧。此外,在图2中,帧201-208的相对高度大致相同,指的是在例如低时延视频编码的情境中,帧201-208分别具有大致相同的目标比特率或帧大小。在一些实施例中,目标比特率或帧大小是与比特流117的传输的可用通道带宽相对应的平均目标比特率或帧大小。在一些情境中,系统100为时间上相邻的帧201-208中的每一者提供比特率或帧大小,该比特率或帧大小在目标比特率或帧大小的接近范围内,例如在目标的5%内、在目标的2%内、或者在目标的1%内。例如,输入视频111可以被编码为比特流117,以便在视频会议、视频电话、云游戏、或者其他低时延应用的情境中使用。
34.同样如图所示,时间上相邻的帧201-208中的每一者具有相应的区域数据(region data,rd)211-218和相应的质量提升(quality boost,qb)水平或值221-228。例如,区域数据211-218可定义质量提升将被应用到的时间上相邻的帧201-208中的每一者中的一个或多个区域的大小和位置。此外,每个质量提升水平或值221-228指示针对区域数据211-218定义的区域的质量提升。虽然论述的是一帧的具有相同的质量提升水平或值的高质量区域,但在一些实施例中,对于同一帧的不同高质量区域采用不同的质量提升水平或值。
35.返回到图1,预分析模块101接收输入视频111,并且如果适用,则预分析模块101生成分析数据112,从而分析数据112至少包括帧的时间相关性值。如图所示,分析数据112——如果可用的话——被提供给比特率控制帧级别参数估计模块102,以生成该帧的帧级别qp(flqp)113,并且被提供给质量提升水平决定模块103,以生成该帧的质量提升水平或值(qb)114。质量提升水平或值114可以是任何适当的值或数据结构,以指示出将被应用于帧的(一个或多个)高质量编码区域的差分编码。在一些实施例中,质量提升水平或值114是将为(一个或多个)高质量编码区域采用的德尔塔qp(例如,qp降低值)。在一些实施例中,质量提升水平或值114是用于(一个或多个)高质量编码区域的提升水平或等级(例如,值1为最高提升,2为次高等,依此类推)。可以利用任何一种或多种适当的技术在编码期间采用这种水平或等级,以便相对于帧的其他区域,将更多的比特分配给(一个或多个)高质量编
码区域。在一些实施例中,编码调整速率失真优化,以提供更多比特给(一个或多个)高质量编码区域。在一些实施例中,利用对用于为(一个或多个)高质量编码区域执行速率失真优化的拉姆达值(例如,德尔塔拉姆达)的降低来采用这种速率失真优化调整。
36.注意,比特率控制帧级别参数估计模块102和质量提升水平决定模块103可以根据需要接收除了分析数据112以外的数据,分别用于生成帧级别qp 113和质量提升水平或值114,例如,帧类型、目标比特率、或帧大小等等。
37.在一些实施例中,不为帧确定时间相关性值,例如,当帧是将只使用来自该帧自身的像素数据来编码的场景变化帧或帧内帧时。在这种情境中,预定义的质量提升可被用于场景变化帧或帧内帧。在使用qp降低的示例中,可以使用四或五的qp降低值。可以利用任何一种或多种适当的技术来定义或检测场景变化帧或帧内帧,例如,使用预定义的图片组编码结构、部署场景变化检测器等等。例如,参考图2,在帧201是场景变化帧或帧内帧(例如,使用预定义的图片组编码结构来定义)的示例中,可以响应于帧是场景变化帧或帧内帧而将质量提升水平或值221作为预定义的质量提升水平或值来提供。
38.参考图1,对于非帧内帧或场景变化帧,生成时间相关性值作为分析数据112的一部分。可以利用任何一种或多种适当的技术来生成时间相关性,并且时间相关性可包括指示当前帧和一个或多个时间上在前的帧之间的时间相关性的任何值。在一些实施例中,时间相关性值是基于来自先前解码帧的跳过块的数目而生成的。例如,参考图2,在帧202先前被编码且帧202的编码统计信息可用的情况下,帧203的时间相关性值可以是帧202中的跳过块的比例、百分比、或数目(即,指示出时间上紧挨的在前帧中的跳过块的数目的值)。值得注意的是,在低时延编码的情境中,对于帧203的先行分析是不可用的,并且可使用先前的相关统计信息。注意,随着更多的编码统计信息变得可用,对于当前帧,例如帧208,可以使用来自额外的先前帧(例如,任何帧207、206、205等等)的跳过块的数目或其他时间相关性指标。例如,可以对多个帧的跳过块的数目或其他时间相关性指标进行平均,可以应用中值滤波器等等。
39.在一些实施例中,时间相关性值是基于当前帧和时间上紧挨的在前帧之间的差异来生成的。可以利用任何一种或多种适当的技术来生成该差异,例如,像素级差异的绝对值之和、像素级差异的平方之和等等。该差异可以是紧邻的帧或其下采样版本之间的差异。例如,参考图2,帧203的时间相关性值可以通过比较帧203和帧202生成,帧204的时间相关性值可以通过比较帧204和帧203生成,依此类推。与其他统计信息一样,由于帧差异是针对几个先前的帧累积的,所以它们可以被取平均、中值滤波等等,以确定当前帧(例如,帧208)的时间相关性值。
40.图3是图示出根据本公开的至少一些实现方式布置的用于确定帧的时间相关性以用于定义质量提升水平或值的示例过程300的流程图。过程300可包括图3所示的一个或多个操作301-306。过程300可由系统100的预分析模块101执行,以例如确定帧的时间相关性值。
41.过程300开始于操作301,在该操作中输入视频111的帧被选择用于处理。例如,时间上相邻的帧201-208可以按照与其显示顺序相对应的时间顺序被处理。处理在决策操作302处继续,在该操作中确定在操作301处选择的帧是否是场景变化帧或帧内帧。可利用任何一种或多种适当的技术来作出这种确定。在一些实施例中,图片组结构被应用到输入视
频111,以便在帧结构中周期性地提供帧内帧。在一些实施例中,使用场景变化检测。在一些实施例中,这种场景变化检测包括将每一帧与时间上的在前帧进行比较,并且当差异(例如,像素级绝对值差异之和、像素级绝对值差异的平方之和等等)超过阈值时指示出场景变化帧。
42.当帧是场景变化帧或帧内帧时,处理在操作303处继续,在该操作中不为场景变化帧或帧内帧确定时间相关性值,并且将预定的质量提升应用于场景变化帧或帧内帧的高质量编码区域(如上所述)。
43.当帧不是场景变化帧或帧内帧,并且将使用参考帧(例如,使用运动估计和补偿)来对该帧编码时,处理在决策操作304处继续,在该操作中确定当前帧是否紧随在场景变化帧或帧内帧之后。值得注意的是,如果当前帧紧随在场景变化帧或帧内帧之后,则不对紧挨的在前帧进行运动估计。
44.当帧紧随在场景变化帧或帧内帧之后时,处理在操作305处继续,在该操作中使用当前帧和场景变化帧或帧内帧之间的帧相似度来确定当前帧的时间相关性值。帧相似性的差异度量可以是任何适当的度量。在一些实施例中,帧相似性的差异度量是当前帧和场景变化帧或帧内帧之间的像素级差异的绝对值之和。在一些实施例中,帧相似性的差异度量是当前帧和场景变化帧或帧内帧之间的像素级差异的平方之和。在这种情境中,较低的值表明帧之间的时间相关性较高。可以利用帧或者其下采样版本来确定这种值。此外,这种时间相关性值可以被反转或缩放,以提供与更高时间相关性相对应的更高时间相关性值。
45.当帧不是紧随在场景变化帧或帧内帧之后时,处理在操作306处继续,在该操作中使用当前帧和一个或多个先前帧之间的帧相似性和/或使用一个或多个先前帧的编码统计信息来确定当前帧的时间相关性值。在使用帧相似性的示例中,可以利用关于操作305论述的技术来确定帧相似性的差异度量。在使用一个或多个先前的编码统计信息的示例中,编码统计信息可以是指示时间相关性的任何统计信息。值得注意的是,编码统计信息是来自先前一个或多个帧的编码的。在一些实施例中,编码统计信息包括先前一个或多个帧中的跳过块的数目、百分比、或比例。在这样的示例中,较高的值表明帧之间的时间相关性较高。在一些实施例中,可使用这两种技术,并且可将它们组合来形成时间相关性度量。例如,时间相关性度量可以是跳过块的数目、百分比、或比例与帧差异的倒数的线性组合。所得到的时间相关性度量也可以可选地被缩放。
46.正如所论述的,所得到的时间相关性(对于除了场景变化帧或帧内帧之外的帧)随后被用来为帧的(一个或多个)高编码质量区域确定编码质量提升。在图4的情境中,假定采用时间相关性,从而如上所述,较高的时间相关性值表明较高的时间相关性。在较低的时间相关性值表明较高的时间相关性的示例中,可以使用其他阈值,并且与阈值的比较可以被反转(即,《被替代使用》)。
47.图4是图示出根据本公开的至少一些实现方式布置的用于利用帧的时间相关性确定帧的质量提升水平或值的示例过程400的流程图。过程400可包括图4所示的一个或多个操作401-408。过程400可由系统100的质量提升水平决定模块103执行,以例如确定帧的质量提升水平或值。
48.过程400开始于操作401,在该操作中接收帧的时间相关性值。帧的时间相关性值可以是本文论述的任何时间相关性值。处理在决策操作402处继续,在该操作中确定时间相
关性值大于第一阈值(th1)。如果是,则处理在操作403处继续,在该操作中对于当前帧的(一个或多个)高质量编码区域采用最高质量提升(qb1)。在一些实施例中,最高质量提升对应于(一个或多个)高质量编码区域的qp的最大降低(例如,大约6)。在一些实施例中,最高质量提升对应于最大速率失真优化调整,以为(一个或多个)高质量编码区域提供更多比特。可以使用其他编码质量提升技术,使得在操作403处提供的提升是最大或最高可用提升。
49.如果时间相关性值不大于第一阈值,则处理在决策操作404处继续,在该操作中确定时间相关性大于比第一阈值小的第二阈值(th2)(th2《th1)。如果是,则处理在操作405处继续,在该操作中对于当前帧的(一个或多个)高质量编码区域采用第二高质量提升(qb2)。在一些实施例中,第二高质量提升对应于(一个或多个)高质量编码区域的qp的第二大降低(例如,四或五)。在一些实施例中,第二高质量提升对应于第二大速率失真优化调整,以为(一个或多个)高质量编码区域提供更多比特。可以使用其他编码质量提升技术,使得在操作403处提供的提升是第二大或第二高可用提升。
50.如果时间相关性值不大于第二阈值,则使用任何数目的阈值(值递减)和相应的基于编码区域的质量提升水平(提供的提升量也递减),处理通过决策操作406和操作407以类似的方式继续。在一些实施例中,使用三个基于整体编码区域的质量提升水平。在一些实施例中,使用四个基于整体编码区域的质量提升水平。在一些实施例中,使用五个基于整体编码区域的质量提升水平。如所论述的,在一些实施例中,每个编码质量提升水平使用相应的qp降低。在一些实施例中,最高水平将qp降低六,第二高水平将qp降低四或五,第三高水平将qp降低三或四,第四高水平将qp降低一或二。
51.在决策操作406,确定时间相关性不超过最终阈值(thf),并且响应于此,处理在操作407处继续,在该操作中对当前帧使用最低质量提升水平(qb
l
)。例如,可以为所有帧的高编码质量区域应用质量提升。处理在操作408处继续,在该操作中利用选定的质量提升水平对当前帧进行编码。例如,选定的质量提升被应用到帧的(一个或多个)高质量编码区域,而对帧的(一个或多个)其余区域可能不作任何改变。
52.返回到图1,如所论述的,质量提升水平决定模块103为输入视频111的每一帧确定质量提升水平或值114。一般而言,较小的提升水平或值被用于具有较高运动(例如,较低的时间相关性)的帧(或片段),而较大的提升水平或值被用于具有平滑或接近零运动的帧(或片段)。在一些实施例中,当没有预分析可用时,对输入视频111的所有帧使用固定的质量提升水平或值114。
53.论述现在转向经由区域选择模块105的区域选择。如图所示,区域选择模块105可包括用于部署在输入视频111的时间上的第一帧中的初始区域116。可以利用任何适当的数据结构来定义初始区域116,例如指示出输入视频111的帧内的边界的数据。在一些实施例中,左上角(例如,x、y位置)和大小(水平或x维度大小(宽度)和垂直或y维度大小(高度))的一个或多个组合可被用于在输入视频111的帧内定义一个或多个矩形。然后,这样的一个或多个矩形可以定义高质量编码区域,而(一个或多个)其余区域定义标准质量编码区域。在一些实施例中,不采用初始区域116。
54.对于随后的帧或所有帧,区域选择模块105生成区域数据115,该区域数据可包括与初始区域116相同或类似的数据结构,以定义输入视频111的帧中的(一个或多个)高质量
编码区域。区域数据115包括输入视频111的一些或所有视频帧的这种数据。值得注意的是,区域选择模块105可以在若干个时间上相邻的视频帧中的每一者中定义一个或多个高质量编码区域,从而使得每一帧中的一个区域的至少一部分相对于其他时间上相邻的视频帧的高质量编码区域是独特的。也就是说,高质量编码区域在一帧与另一帧之间有移位或移动。
55.此外,在一定数目的时间上相邻的视频帧,例如8、10、12、或更多个帧之间,时间上相邻的视频帧内的高质量编码区域的总和填充了时间上相邻的视频帧的整个视频帧大小。例如,在一定数目的帧之后,整个帧已经被提升。就本文使用的而言,术语“视频帧大小”指的是时间上相邻的视频帧之间的共同大小,术语“填充”或“覆盖”之类指的是当加起来或者被叠加到帧模板上时,这些区域覆盖视频帧大小。
56.这样的(一个或多个)高质量编码区域可以是任何适当的大小和形状。在一些实施例中,帧内的(一个或多个)高质量编码区域覆盖不超过该帧总面积的20%。在一些实施例中,帧内的(一个或多个)高质量编码区域覆盖不超过该帧总面积的15%。在一些实施例中,帧内的(一个或多个)高质量编码区域覆盖该帧总面积的8%至15%。也可以使用其他的帧覆盖百分比。这种帧区域可在帧之间被维持在恒定的覆盖百分比,或者帧的作为(一个或多个)高质量编码区域的比例可以变化。在一些实施例中,帧的作为(一个或多个)高质量编码区域的比例随着帧是降低的。
57.在一些实施例中,高质量编码区域包括跨越视频帧的宽度的若干个水平条带。在一些实施例中,每个条带是视频帧的一个宏块或最大编码单元的大小。在一些实施例中,在每个帧中使用具有多个宏块或最大编码单元的高度的单个高质量编码区域条带。在一些实施例中,每个帧具有组合形成高质量编码区域的若干个区域。也可以使用其他形状,例如(一个或多个)垂直条带、(一个或多个)对角线条带等等。
58.在一些实施例中,为一个或多个帧随机选择(一个或多个)高质量编码区域的大小或形状或大小和形状两者。这样的技术可在视觉质量上有利地减少视觉上可察觉的模式。在一些实施例中,对于编码或显示顺序上的第n帧,随机选择的大小和/或形状是从一组可用的大小和/或形状中选择的。例如,可以采用若干个预定义的高质量编码区域集合,并且在每一帧,采用其中一个集合来使用,然后从可供下一帧中选择的可用集合的池中将其排除。
59.如上所述,区域选择模块105选择帧的具有提升的质量的子集。所选区域的位置在帧的编码或显示顺序上在帧与帧之间移动,从而在一定数目的帧(例如,一个周期)之后覆盖整个帧。在该周期或一定数目的帧之后,所论述的区域选择继续,并且对于另外的一定数目的帧重复,从而对于每个帧周期(相同或不同数目的帧),整个帧被移动的(一个或多个)高质量编码区域所覆盖。每个周期的多个帧可以采用相同的区域模式,或者可以是不同的。
60.值得注意的是,提升区域选择的基本原则是选择每一帧的子集区域,并且在帧与帧之间改变位置(和/或大小),以便在一定数目的帧之后覆盖整个帧。只要满足这个原则,就可以使用任何(一个或多个)区域形状和移位。例如,用于高质量编码提升的(一个或多个)子集区域可以是一组分离的块行或块条带,如下图5所示,其中从帧n到帧n+1再到帧n+2等等,块行垂直移位。通过这样的移位,在一定数目的帧之后,帧中的所有位置都被覆盖,并且这些位置可能有重叠或没有重叠。在另一个示例中,用于高质量编码提升的(一个或多个)子集区域可以是一组连接的块行,如下图6所示,其中从帧n到帧n+1再到帧n+2等等,块
行垂直移位。通过这样的移位,同样地,在一定数目的帧之后,帧中的所有位置都被覆盖,并且这些位置可能有重叠或没有重叠。在另外一个示例中,用于高质量编码提升的(一个或多个)子集区域可以是一组方形块组,如下图7所示,其中从帧n到帧n+1再到帧n+2等等,方形块组水平移位。同样,通过这样的移位,在一定数目的帧之后,帧中的所有位置都被覆盖,并且这些位置可能有重叠或没有重叠。
61.图5是根据本公开的至少一些实现方式布置的用于低时延视频编码中的示例高质量编码区域跨帧移动500的说明图。如图5所示,视频帧201被分割成高质量编码区域502和标准质量编码区域501,视频帧202被分割成高质量编码区域512和标准质量编码区域511,视频帧203被分割成高质量编码区域522和标准质量编码区域521,等等,依此类推通过任何数目的帧,从而使得跨越视频帧,高质量编码区域在向下的方向上移动(重叠或不重叠),直到帧530的整体被任何数目的高质量编码区域532覆盖为止。
62.在图5的示例中,将时间上相邻的视频帧201-208分割成高质量和标准质量编码区域,包括将视频帧201分割成多个(即,两个或更多个)高质量编码区域502,从而使得每个高质量编码区域502是延伸过视频帧201的宽度的条带(即,从视频帧201的左边缘连续延伸至右边缘)。然后,标准质量编码区域501构成了视频帧201的其余部分。高质量编码区域502可具有相同的垂直高度,或者也可以不同。在一些实施例中,高质量编码区域502中的一个或多个具有与视频帧201的最大编码块大小相匹配的垂直高度。在avc编码的情境中,高质量编码区域502中的一个或多个的垂直高度为16像素(例如,采用16x16宏块)。在hevc编码的情境中,高质量编码区域502中的一个或多个的垂直高度为32或64像素(例如,采用32x32或64x64编码单元)。此外,每个高质量编码区域502之间的间距或间隔可以是相同的,或者也可以不同。
63.高质量编码区域502可以构成视频帧201的任何适当的部分。在一些实施例中,高质量编码区域502覆盖不超过视频帧201的20%的面积。在一些实施例中,高质量编码区域502覆盖不超过视频帧201的15%的面积。在一些实施例中,高质量编码区域502覆盖视频帧201的面积的8%至15%。虽然图示的是高质量编码区域502的水平条带,但也可以采用垂直或对角线条带(由于块边界而具有锯齿状的边缘)。此外,在图示示例中,高质量编码区域502的水平条带从视频帧201的左边缘延伸到右边缘。然而,在一些实施例中,高质量编码区域502的条带没有延伸到视频帧201的左边缘和右边缘中的一者或两者。
64.继续说视频帧202,如图所示,时间上随后的视频帧,例如视频帧202,也被分割成多个(即,两个或更多个)高质量编码区域512,从而使得每个高质量编码区域是在视频帧202的至少一部分上延伸的条带。与视频帧201一样,视频帧202的其余部分包括标准质量区域511。视频帧202的高质量编码区域512可具有关于高质量编码区域502论述的任何特性。然而,如图所示,高质量编码区域512相对于高质量编码区域502在向下的方向上移动了。注意,虽然视频帧201、202是不同的帧,但关于视频帧201、202和本文的任何其他视频帧所示出和论述的高质量编码区域的这种移动是相对于本领域已知的参考视频帧(具有已知的参考像素位置)而言的。类似地,图示出高质量编码区域532的复合的帧530是相对于在具有已知参考像素位置的参考视频帧中叠加这种高质量编码区域532形成的。
65.在图5的示例中,高质量编码区域512相对于高质量编码区域502被移动,使得每个高质量编码区域512的顶部与高质量编码区域502中的相应一个的底部对齐,从而不提供重
叠。在其他实施例中,每个高质量编码区域512的顶部高于高质量编码区域502中的相应一个的底部,从而提供重叠(例如,12.5%至25%的重叠之类的)。此外,高质量编码区域512可以按其他适当的模式相对于高质量编码区域502被移动,例如提高高质量编码区域512的垂直位置(而不是降低它们),改变高质量编码区域512的大小或位置等等。在一些实施例中,高质量编码区域512的大小和形状相对于高质量编码区域502被维持,但其垂直位置以伪随机方式被随机化,从而使得某种顺序被事先或实时选择,从而利用随机位置生成器基于帧中的剩余可用位置选择每个高质量编码区域512的位置。也就是说,每个高质量编码区域512的位置可以被选择,以使得它不会重复先前使用的高质量编码区域位置。这样的技术与重叠的实现是兼容的。例如,随后选择的高质量编码区域512的位置可包括这样的位置:使得每个高质量编码区域512的至少一部分先前没有被质量提升。
66.以类似的方式继续处理随后的视频帧203,等等依此类推通过任何数目的帧,例如8,10,12或者类似的帧,直到整个帧已被质量提升区域所覆盖为止。随后,这种提升模式利用相同或不同的高质量编码区域形状和大小和/或利用相同或不同的区域跨帧移动来重复。值得注意的是,提供高质量编码区域形状和大小和/或移动的多样性,避免了可能被用户察觉到的质量模式。
67.例如,视频帧203被分割成高质量编码区域522和其余的标准质量编码区域521,使得高质量编码区域522相对于高质量编码区域512被移动。每个高质量编码区域522的顶部可以与高质量编码区域512中的相应一个的底部对齐,从而不提供重叠或者可以采用重叠。此外,虽然图示了每个高质量编码区域522的向下移动,但高质量编码区域522可以按如上所述的其他适当的模式相对于高质量编码区域502被移动。也如所论述的,对帧201、202、203和任何数目的额外帧的这种处理继续通过任何数目的帧,直到帧的整体被质量提升区域所覆盖为止,然后重复进行。
68.图6是根据本公开的至少一些实现方式布置的用于低时延视频编码中的另一示例高质量编码区域跨帧移动600的说明图。如图6所示,视频帧201被分割成高质量编码区域602和标准质量编码区域601,视频帧202被分割成高质量编码区域612和标准质量编码区域611,视频帧203被分割成高质量编码区域622和标准质量编码区域621等等,依此类推通过视频帧205(在此示例中),视频帧205被分割成高质量编码区域632、633和标准质量编码区域631,并且通过任何数目的帧,从而使得跨越视频帧,高质量编码区域在向下的方向上移动(重叠或不重叠),直到帧640的整体被任何数目的高质量编码区域642覆盖为止。
69.在图6的示例中,将时间上相邻的视频帧201-208分割成高质量和标准质量编码区域,包括将视频帧201分割成单个高质量编码区域602,从而使得高质量编码区域602是延伸过视频帧201的宽度的单个条带,并且标准质量编码区域601构成视频帧201的其余部分。高质量编码区域602可具有任何适当的高度,例如若干个最大编码块大小的倍数。在avc编码的情境中,高质量编码区域602的垂直高度可以是128、144、或160个像素之一(例如,采用8、9、或10个16x16的宏块),尽管可以使用任何适当的高度。在hevc编码的情境中,高质量编码区域602的垂直高度同样可以是128、160、192、或224个像素之一(例如,采用4、5、6、或7个32x32编码单元或者2或3个64x64编码单元),尽管可以使用任何适当的高度。
70.高质量编码区域602可以构成视频帧201的任何适当部分。在一些实施例中,高质量编码区域602覆盖不超过视频帧201的20%的面积。在一些实施例中,高质量编码区域602
覆盖不超过视频帧201的15%的面积。在一些实施例中,高质量编码区域602覆盖视频帧201的面积的8%至15%。虽然图示的是水平条带,但也可以采用垂直或对角线条带(由于块边界而具有锯齿状的边缘)。此外,在图示示例中,高质量编码区域602从视频帧201的左边缘延伸到右边缘。然而,在一些实施例中,高质量编码区域602没有延伸到视频帧201的左边缘和右边缘中的一者或两者。
71.继续说视频帧202,如图所示,时间上随后的视频帧,例如视频帧202,也被分割成高质量编码区域612和标准质量区域611,高质量编码区域612的水平条带延伸过视频帧202的至少一部分。视频帧202的高质量编码区域612可以具有关于高质量编码区域602论述的任何特性,并且高质量编码区域612相对于高质量编码区域602在垂直方向上被向下移动。在图6中,高质量编码区域612相对于高质量编码区域602被移动,从而不提供重叠。在其他实施例中,可以提供重叠,如关于图5所论述的。例如,高质量编码区域612的顶部与高质量编码区域602的底部对齐或重叠。
72.此外,高质量编码区域612可以按其他移动模式相对于高质量编码区域602被移动,例如提高高质量编码区域612的垂直位置(而不是降低它们),改变高质量编码区域612的大小等等。在一些实施例中,高质量编码区域612的大小和形状被维持,但其垂直位置被随机化,如关于图5所论述。这种随机化可以是伪随机的方式,从而事先以非线性模式选择顺序,或者随机化可被实时执行,从而使得高质量编码区域612的位置是利用随机位置生成器基于帧中的剩余可用位置选择的。
73.以类似的方式继续处理随后的视频帧203,视频帧203被以类似的方式分割成高质量编码区域602和其余的标准质量区域611等等,依此类推通过视频帧205。如关于视频帧205所示,在一些实施例中,由于高质量编码区域的完全大小和形状与帧边界的错位或重叠,一个高质量编码区域可被分割成两个高质量编码区域633。在这种情境中,采用从视频帧205的顶部延伸的第一高质量编码区域632和从视频帧205的底部延伸的第二高质量编码区域633,从而使得高质量编码区域632、633的高度的总和可与高质量编码区域602、高质量编码区域612、高质量编码区域622等等的高度匹配。这种技术可以维持帧被提升的比例。在一些实施例中,不需要或者不采用这种高质量编码区域划分。
74.这样的处理以相同或相似的方式继续等等,依此类推通过任何数目的帧,例如8、10、12个或者类似的帧,直到整个帧已被质量提升区域所覆盖为止。随后,这种提升模式利用相同或不同的高质量编码区域形状和大小和/或利用相同或不同的区域跨帧移动来重复。值得注意的是,提供高质量编码区域形状和大小和/或移动的多样性,避免了可能被用户察觉到的质量模式。
75.图7是根据本公开的至少一些实现方式布置的用于低时延视频编码中的另一示例高质量编码区域跨帧移动700的另外一个说明图。如图7所示,视频帧201被分割成高质量编码区域702、703、704和标准质量编码区域701,视频帧202被分割成高质量编码区域712、713、714和标准质量编码区域711,视频帧203被分割成高质量编码区域722、723、724和标准质量编码区域721等等,依此类推通过视频帧205(在此示例中),视频帧205被分割成高质量编码区域732、733、734、735和标准质量编码区域731,并且通过任何数目的帧,从而使得跨越视频帧,高质量编码区域在水平方向上移动(重叠或不重叠),直到帧(未示出)的整体被任何数目的高质量编码区域所覆盖为止,如关于图5和图6所论述。
76.在图7的示例中,将时间上相邻的视频帧201-208分割成高质量和标准质量编码区域,包括将视频帧201分割成任何数目的高质量编码区域702、703、704,从而使得高质量编码区域702、703、704的每一者是一个矩形区域,该矩形区域与至少一个其他区域毗连,以定义视频帧201内的高质量编码模式。虽然图示了毗连的高质量编码区域702、703、704,但在一些实施例中,高质量编码区域702、703、704中的一个或多个可能不与另一区域共享边界。此外,虽然图示了三个高质量编码区域702、703、704,但可以采用任何数目的区域,例如2、4、5或更多个。高质量编码区域702、703、704可具有任何适当的高度和宽度,例如高度和宽度是若干个最大编码块大小(例如,avc中的16x16宏块或者hevc中的32x32或64x64编码单元)的倍数。此外,高质量编码区域702、703、704可一起构成视频帧201的任何适当部分。在一些实施例中,高质量编码区域702、703、704覆盖不超过视频帧201的20%的面积。在一些实施例中,高质量编码区域702、703、704覆盖不超过视频帧201的15%的面积。在一些实施例中,高质量编码区域702、703、704覆盖视频帧201的面积的8%至15%。
77.如关于视频帧202所示,时间上随后的视频帧,例如视频帧202,也被分割成具有相同大小和形状的高质量编码区域712、713、714,以定义关于视频帧202的相同的高质量编码模式。视频帧202的其余部分由标准质量区域711构成。视频帧202的高质量编码区域712、713、714可具有关于高质量编码区域702、703、704所论述的任何特性,并且如图所示,高质量编码区域712、713、714在水平方向上被向右移动。在图7中,高质量编码区域712、713、714相对于高质量编码区域702、703、704被移动,从而不提供重叠。在其他实施例中,可如上所述提供水平重叠。例如,高质量编码区域712、713、714可分别具有与高质量编码区域702、703、704中的相应一个的右侧对齐或重叠的左侧。
78.此外,高质量编码区域712、713、714可按其他移动模式相对于高质量编码区域712、713、714被移动,例如水平向左移动、对角线移动、改变高质量编码区域712、713、714中的一个或多个的大小等等。在一些实施例中,高质量编码区域712、713、714中的每一者的大小和形状被维持,但高质量编码区域712、713、714中的一个或多个的位置被如上所述地随机化。例如,由高质量编码区域702、703、704定义的高质量编码模式可以保持相同,或者它可以在高质量编码区域712、713、714中变化。这种随机化可以是伪随机的方式,从而使得顺序被预选择,或者它可被实时执行,从而使得高质量编码区域712、713、714的位置被利用随机位置生成器基于帧中的剩余可用位置来选择。
79.以类似的方式继续处理随后的视频帧203,视频帧203被以类似的方式分割成高质量编码区域722、723、724和其余的标准质量区域721等等,依此类推通过视频帧205,视频帧205被分割成高质量编码区域732、733、734、735和其余的标准质量区域731。如关于视频帧205所示,在一些实施例中,由于高质量编码区域的完全大小和形状与帧边界的错位或重叠,一个高质量编码区域可被分割成两个高质量编码区域。在这种情境中,高质量编码区域可被划分成两个或更多个高质量编码区域,其总和为关于将高质量编码区域划分或分割成高质量编码区域734、735所示的相同大小,(因为否则它将延伸过视频帧205的右边界)。例如,高质量编码区域734、735的整体宽度相对于高质量编码区域704、714、724维持该宽度。如上所述,这种技术可有利地维持帧被提升的比例。在一些实施例中,不需要或者不采用这种高质量编码区域划分。这样的处理以相同或相似的方式继续等等,依此类推通过任何数目的帧,例如8、10、12个或类似的帧,直到帧的整体已被质量提升区域覆盖为止,随后,这样
的提升模式利用相同或不同的高质量编码区域形状和大小和/或利用相同或不同的区域跨帧移动来重复。
80.返回到图1,如图所示,基于区域的质量提升编码模块104根据需要接收区域数据115、每一帧的质量提升水平或值114、每一帧的帧级别qp113、以及输入视频111和其他数据,以对输入视频111进行编码,从而生成比特流117。在输入视频111的编码期间,基于区域的质量提升编码模块104向每一帧内由区域数据115定义的(一个或多个)高质量编码区域应用如质量提升水平或值114所指示的视频编码质量提升。
81.可以利用任何一种或多种适当的技术来执行这种基于区域的质量提升编码,这种编码相对于帧的其他区域,对帧的(一个或多个)高质量编码区域应用更多的比特或可用比特。这样的其他区域可以被表征为(一个或多个)低质量或正常质量编码区域。在一些实施例中,使用标准编码对其他区域进行编码,而没有响应于为(一个或多个)高质量编码区域执行的高质量编码而补偿性地降低编码质量。
82.在一些实施例中,(一个或多个)高质量编码区域中的高质量编码是通过改变编码参数以有意提高选定的(一个或多个)高质量编码区域中的质量来执行的。在一些实施例中,提升水平被指示为或者被转换成德尔塔qp值(例如,qp调整),该值是从帧级别qp 113检测出来的,从而使得调整或降低的qp(降低了qp调整的帧级别qp 113)被用于(一个或多个)高质量编码区域的编码,而帧级别qp 113被用于(一个或多个)其他(低)质量编码区域的编码。因此,较小的qp被用于(一个或多个)高质量编码区域,并且质量被提升。例如,这样的qp被用来量化变换后的系数,这在本领域中是已知的。
83.在一些实施例中,(一个或多个)高质量编码区域中的高质量编码是通过调整第一帧的第一高质量编码区域相对于第一标准质量编码区域的速率失真优化来执行的。可利用任何如下技术来采用这种速率失真调整:这种技术在(一个或多个)高质量编码区域中提供更多比特,例如降低速率失真优化中对速率的惩罚(降低拉姆达)。也可以采用其他技术来提高速率并且降低这样的(一个或多个)高质量编码区域中的失真。
84.图8是图示出根据本公开的至少一些实现方式布置的用于在低时延编码管线中执行移动区域高质量编码的示例过程800的流程图。过程800可包括图8所示的一个或多个操作801-806。过程800可由设备或系统(例如,系统100)执行,以对时间上相邻的视频帧的视频序列进行编码。
85.过程800开始于操作801,在该操作中接收输入视频序列用于编码。输入的视频序列可包括任何分辨率和格式的任何数目的视频帧。在一些实施例中,输入视频序列被划分为帧组(独立于任何图片组部署),使得每组帧包括若干个按顺序的时间上相邻的视频帧。对于每组视频帧,可以为每个帧或一些帧定义高质量编码区域,以使得在部署于组内之后,输入视频序列的整个视频帧大小已经有了高质量编码提升,并且使得,在具有(一个或多个)高质量编码区域的每个帧内,每个区域有一部分相对于该组中的其他帧中的其他高质量编码区域而言是独特的。也就是说,在该组中,每个高质量编码区域被应用到视频帧大小的新部分,有或没有重叠。
86.处理在操作802处继续,在该操作中为每个帧确定帧级别量化参数。在一些实施例中,对于输入视频序列内的高质量编码区域,通过将高质量编码区域内的帧级别qp降低到高质量编码qp来实现高质量编码,同时将帧级别qp应用于帧的标准或低质量编码区域(即,
高质量编码区域之外的那些区域)。然而,在其他实施例中,高质量编码是通过以其他方式更改高质量编码区域内的编码以提供相对于标准或低质量编码区域的更多比特来提供的。例如,这种技术可包括调整高质量编码区域相对于标准或低质量编码区域的速率失真优化。
87.处理在操作803处继续,在该操作中为要部署高质量编码区域的每个帧选择或确定质量提升水平。在一些实施例中,对于场景变化帧或帧内帧应用预定义的提升水平。在一些实施例中,对于其他帧(例如,运动估计帧和运动补偿帧),使用时间相关性度量来确定自适应提升水平,以使得较低的时间相关性使用较低的提升水平,而较高的相关性使用较高的提升水平。可以向这种时间相关性水平或值应用任何水平的粒度,以编码质量提升水平或值的映射。在一些实施例中,这种映射是通过单调递增函数进行的,该函数映射时间相关性以编码质量提升。
88.处理在操作804处继续,在该操作中为要部署高质量编码区域的每个帧选择或确定一个或多个提升区域。这样的提升区域可具有本文论述的任何形状和大小,例如在各帧间平移的多个水平条带,在各帧间平移的单个水平条带,在各帧间平移的编码图案或形状(即,由几个矩形图案定义),或者从在第一帧中居中的初始方形或矩形高质量编码区域辐射出来的向外辐射的周边图案。在一些实施例中,选择提升区域包括从剩余的可用提升区域中随机选择这种提升区域。例如,可以定义提升区域的若干个集合(对于每个帧部署一个),这些提升区域在各集合(例如,8、10或12个集合)上一起覆盖该帧的整体。对于要部署高质量编码区域的每一帧,可以随机选择其中一个集合,然后将其从可用集合的池中去除。可以从剩余的可用集合中选择随机集合等等依此类推,直到最后一帧被指派以最后的可用提升区域集合为止。在一些实施例中,集合中的一个或多个可以在没有随机化的情况下被指派,例如为该视频组中的第一时间帧指派第一集合。
89.处理在操作805处继续,在该操作中利用选定的高质量编码区域和质量提升水平或调整对每个输入帧进行编码。如所论述的,编码质量提升被应用于高质量编码区域,而其余的(一个或多个)(标准或低质量)区域在没有编码质量提升的情况下被编码。在一些实施例中,在不更改编码过程的情况下对其余区域进行编码。可以利用任何一种或多种适当的技术来对输入帧进行编码。在一实施例中,利用符合标准的编码器对输入帧进行编码,以生成符合标准的比特流,例如符合avc或符合hevc的比特流。
90.处理在操作806处继续,在该操作中比特流被传输以便解码并且呈现给用户。例如,比特流可以被传输到本地存储器以存储并最终传输到远程设备,或者比特流可被直接传输到远程设备。在一些实施例中,比特流在低时延编码情境中被传输。例如,比特流可以作为视频会议应用、视频电话应用、云视频游戏应用等等的一部分被传输。
91.可以针对任何数目的输入帧或者输入视频帧的序列,串行或并行地将过程800或其一些部分重复任何次数。如上所述,过程800提供了低时延编码管线,该管线为每个帧生成一个或多个高质量编码区域和相应的编码质量提升。可以利用本文论述的任何一种或多种适当的技术来生成(一个或多个)高质量编码区域和编码质量提升。如所论述的,对输入帧利用(一个或多个)高质量编码区域和编码质量提升来对输入帧进行编码,以生成比特流的至少一部分。
92.图9图示了根据本公开的至少一些实现方式布置的示例比特流900。在一些示例
中,比特流900可对应于关于图1所示的比特流117。如图9所示,在一些实施例中,比特流900包括头部部分901和数据部分902。在一实施例中,头部部分901包括帧头部911和切片头部912。
93.在一实施例中,与利用本文论述的技术确定的帧级别qp相对应的一个或多个指示符被实现或插入到帧头部911中。此外,数据部分902可包括利用本文论述的高质量编码区域选择和质量提升技术来编码的帧的经编码帧数据921。在一些实施例中,经编码帧数据921(或头部部分901)包括与在(一个或多个)高质量编码区域的编码质量提升中进行的qp调整相对应的qp调整值。帧数据921包括例如与经编码帧相对应的经编码量化变换系数、模式选择信息等等。在一些实施例中,比特流900是符合标准的比特流,从而其格式是标准定义的,因此符合标准的解码器可以解码比特流900。例如,比特流900可以是符合avc的、符合hevc的、或者符合任何其他标准的。
94.图10是图示出根据本公开的至少一些实现方式布置的用于低时延视频编码的示例过程1000的流程图,其中包括在时间上相邻的视频帧之间应用移动的高质量编码区域。过程1000可包括图10所示的一个或多个操作1001-1003。过程1000可形成低时延视频编码过程的至少一部分。作为非限制性示例,过程1000可形成由诸如系统100之类的本文所述的任何设备或系统执行的低时延视频编码过程的至少一部分。此外,本文将参考图11的系统1100来描述过程1000。
95.图11是根据本公开的至少一些实现方式布置的用于低时延视频编码的示例系统1100的说明图,其中包括在时间上相邻的视频帧之间应用移动的高质量编码区域。如图11所示,系统1100可包括中央处理器1101、视频处理器1102、以及存储器1103。还如图所示,视频处理器1102可包括或实现预分析模块101、比特率控制帧级别参数估计模块102、质量提升水平决定模块103、基于区域的质量提升编码模块104、以及区域选择模块105。在一实施例中,存储器1103存储用于处理的一个或多个视频帧或其一些部分。此外,在系统1100的示例中,存储器1103可存储视频数据或者有关内容,例如,帧数据、分析数据、帧级别量化参数、质量提升值、区域数据、比特流数据、和/或本文所述的任何其他数据。
96.如图所示,在一些实施例中,视频处理器1102实现预分析模块101、比特率控制帧级别参数估计模块102、质量提升水平决定模块103、基于区域的质量提升编码模块104、以及区域选择模块105。在一些实施例中,预分析模块101、比特率控制帧级别参数估计模块102、质量提升水平决定模块103、基于区域的质量提升编码模块104、和区域选择模块105中的一个或多个或一些部分是由中央处理器1101、图形处理器等等实现的。
97.视频处理器1102可包括任何数目和类型的、可提供本文所述的操作的视频、图像、或图形处理单元。可经由软件或硬件或者它们的组合来实现这些操作。例如,视频处理器1102可包括专用于操纵从存储器1103获得的帧、帧数据等等的电路。中央处理器1101可包括任何数目和类型的、可以为系统1100提供控制和其他高级别功能和/或提供本文所述的任何操作的处理单元或模块。存储器1103可以是任何类型的存储器,例如,易失性存储器(例如,静态随机存取存储器(static random access memory,sram)、动态随机存取存储器(dynamic random access memory,dram),等等)或者非易失性存储器(例如,闪存等)等等。在非限制性示例中,存储器1103可由高速缓存存储器实现。
98.在一实施例中,预分析模块101、比特率控制帧级别参数估计模块102、质量提升水
平决定模块103、基于区域的质量提升编码模块104、以及区域选择模块105中的一个或多个或一些部分是经由执行单元(execution unit,eu)实现的。eu可包括例如可编程逻辑或电路,例如可提供多种多样的可编程逻辑功能的一个或多个逻辑核心。在一实施例中,预分析模块101、比特率控制帧级别参数估计模块102、质量提升水平决定模块103、基于区域的质量提升编码模块104、以及区域选择模块105中的一个或多个或一些部分是经由诸如固定功能电路之类的专用硬件实现的。固定功能电路可包括专用逻辑或电路,并且可提供一组固定功能入口点,这些固定功能入口点可映射到用于固定目的或功能的专用逻辑。
99.返回到对图10的论述,过程1000开始于操作1001,在该操作中多个时间上相邻的视频帧中的每一个被分割成高质量和标准质量编码区域,以使得每个视频帧的每个高质量编码区域的至少一部分相对于其他时间上相邻的视频帧的高质量编码区域,是该视频帧独特的。也就是说,每个编码区域包括在时间上相邻的视频帧中尚未被提升的视频帧的一部分。此外,术语“高质量”和“标准质量”是指相对于彼此要采用的编码质量。可以利用任何一种或多种适当的技术将时间上相邻的视频帧分割成任何适当的高质量和标准质量编码区域。在一些实施例中,在时间上相邻的视频帧之间,高质量编码区域填充了多个时间上相邻的视频帧的整个视频帧大小。
100.在一些实施例中,将相邻视频帧中的每个视频帧分割成高质量和标准质量编码区域包括随机选择相邻视频帧中的第一视频帧的第一高质量编码区域的位置或大小中的至少一者。在一些实施例中,随机选择第一高质量编码区域的位置或大小包括从第一视频帧之前的一个或多个视频帧未使用的剩余可用高质量编码区域中随机选择。在一些实施例中,将时间上相邻的视频帧分割成高质量和标准质量编码区域包括将第一帧分割成两个或更多个高质量编码区域条带和包括第一帧的其余部分的标准质量编码区域,其中每个高质量编码区域条带延伸过第一帧的宽度。在一些实施例中,将时间上相邻的视频帧分割成高质量和标准质量编码区域包括将第一帧分割成单个高质量编码区域条带和两个标准质量编码区域,其中该高质量编码区域条带延伸过第一帧的宽度,并且该两个标准质量编码区域的每一者延伸过该宽度并且从高质量编码区域条带的边缘延伸到第一帧的边缘。在一些实施例中,将时间上相邻的视频帧分割成高质量和标准质量编码区域包括将第一帧分割成定义高质量编码模式的一个或多个高质量编码区域矩形和包括第一帧的其余部分的一个或多个标准质量编码区域。在一些实施例中,将时间上相邻的视频帧分割成高质量和标准质量编码区域包括将第二帧分割成第二高质量编码模式,该第二高质量编码模式与该高质量编码模式的形状相匹配并且在第二帧中具有相对于该高质量编码模式在第一帧中的第一位置的第二位置。
101.处理在操作1002处继续,在该操作中通过相对于标准质量编码区域向高质量编码区域应用编码质量提升来对每个时间上相邻的视频帧进行编码,以生成比特流的至少一部分。可利用任何一种或多种适当的技术来提供对于高质量编码区域的编码质量提升。在一些实施例中,应用编码质量提升包括将多个相邻视频帧中的第一帧的帧级别量化参数(qp)调整到高质量区域qp,并且使用高质量区域qp来对第一帧的第一高质量编码区域进行编码。在一些实施例中,应用编码质量提升包括相对于第一帧的第一标准质量编码区域调整第一高质量编码区域的速率失真优化。此外,编码质量提升可以应用任何量的编码质量提升,这种编码质量提升量在时间上相邻的视频帧之间可能是相同的,或者也可能不同。在一
些实施例中,响应于相邻视频帧中的第一帧是帧内帧或者场景变化帧,预选择的编码质量提升被应用到第一帧的第一高质量编码区域,并且在第一帧之后的第二帧的第二高质量编码区域基于第二帧的时间相关性应用自适应编码质量提升。在一些实施例中,第一帧之后的第三帧基于第三帧的第二时间相关性应用第二自适应编码质量提升,以使得第二自适应编码质量提升响应于第二时间相关性小于所述时间相关性而小于所述自适应编码质量提升。
102.处理在操作1003处继续,在该操作中比特流被传输以便最终解码并且呈现给用户。在一些实施例中,比特流被传输到存储器中以进行存储并且最终传输到远程设备。在一些实施例中,比特流在诸如视频会议情境、视频电话情境、或者云视频游戏情境之类的低时延编码情境中被传输到远程设备。然而,比特流可被传输到任何设备来进行解码。如所论述的,在一些实施例中,这种分割和编码质量提升处理对后续数目的视频帧重复进行。在一些实施例中,过程1000还包括将紧接在所述时间上相邻的视频帧之后的若干个时间上相邻的第二视频帧中的每一者分割成第二高质量和标准质量编码区域,以使得每个第二视频帧的每个第二高质量编码区域的至少一部分相对于其他时间上相邻的第二视频帧而言是该视频帧独特的,并且在多个时间上相邻的第二视频帧之间,第二高质量编码区域填充整个视频帧大小。这样的后续分割和编码可以使用与先前分割和编码相同或不同的区域、大小、和提升水平。
103.可针对任何数目的帧,串行或并行地重复过程1000任意多次。如所论述的,过程800可提供低时延视频编码,包括在时间上相邻的视频帧之间应用移动的高质量编码区域。
104.可以用软件、固件、和/或硬件和/或它们的任何组合来实现本文描述的系统的各种组件。例如,本文论述的设备或系统的各种组件可至少部分由计算片上系统(soc)的硬件来提供,该计算soc例如可存在于计算系统(例如,智能电话中)中。本领域技术人员可认识到,本文描述的系统可包括在相应附图中没有描绘的额外组件。例如,本文论述的系统可包括为了清晰起见而没有描绘的额外组件。在一些实施例中,本文论述的操作由一种系统执行,该系统包括存储器来存储本文论述的任何数据以及一个或多个处理器来执行过程800的操作或者本文论述的其他操作。
105.虽然本文论述的示例过程的实现方式可包括按图示的顺序执行示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括示出的操作的子集,包括按与图示不同的顺序执行的操作,或者包括额外的操作。
106.此外,可响应于由一个或多个计算机程序产品提供的指令来执行本文论述的操作中的任何一个或多个操作。这种程序产品可包括提供指令的信号承载介质,这些指令在被例如处理器执行时,可提供本文描述的功能。可在任何形式的一个或多个机器可读介质中提供计算机程序产品。从而,例如,包括一个或多个图形处理单元或处理器核心的处理器可响应于由一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而执行这里的示例过程的一个或多个块。一般而言,机器可读介质可通过程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何设备和/或系统实现这些设备或系统的至少一些部分,或者本文所述的任何其他模块或组件。在一些实施例中,本文论述的操作由包括多个指令的非暂态机器可读介质执行,所述指令响应于在计算设备上被执行而使得该计算设备执行操作。
107.按照在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑、和/或电路的任何组合。软件可被实现为软件封装、代码、和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”例如可单一地或者组合地包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路、和/或存储被可编程电路执行的指令的固件。模块可集体地或者个体地被实现为形成更大系统的一部分的电路,例如,集成电路(ic)、片上系统(soc)等等。
108.图12是根据本公开的至少一些实现方式布置的示例系统1200的说明图。在各种实现方式中,系统1200可以是移动系统,虽然系统1200不限于此情境。例如,系统1200可被包含到以下所列项中:个人计算机(pc)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personal digital assistant,pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如,智能电话、智能平板、或智能电视)、移动互联网设备(mobile internet device,mid)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,dslr)相机)等等。
109.在各种实现方式中,系统1200包括与显示器1220耦合的平台1202。平台1202可从内容设备接收内容,其中内容设备例如是(一个或多个)内容服务设备1230或者(一个或多个)内容递送设备1240或者其他类似的内容源。包括一个或多个导航特征的导航控制器1250可用于与例如平台1202和/或显示器1220进行交互。在下文更详述描述这些组件的每一者。
110.在各种实现方式中,平台1202可包括芯片组1205、处理器1210、存储器1212、天线1213、存储装置1214、图形子系统1215、应用1216、和/或无线电装置1218的任何组合。芯片组1205可提供处理器1210、存储器1212、存储装置1214、图形子系统1215、应用1216、和/或无线电装置1218之间的相互通信。例如,芯片组1205可包括能够提供与存储装置1214的相互通信的存储适配器(未描绘)。
111.处理器1210可被实现为复杂指令集计算机(complex instruction set computer,cisc)或者精简指令集计算机(reduced instruction set computer,risc)处理器、x86指令集兼容处理器、多核心、或者任何其他微处理器或中央处理单元(cpu)。在各种实现方式中,处理器1210可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器等等。
112.存储器1212可被实现为易失性存储器设备,例如但不限于随机存取存储器(random access memory,ram)、动态随机存取存储器(dynamic random access memory,dram)、或者静态ram(static ram,sram)。
113.存储装置1214可被实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池后备sdram(同步dram)、和/或网络可访问存储设备。在各种实现方式中,例如当包括多个硬盘驱动器时,存储装置1214可包括技术来为有价值的数字媒体增大存储性能增强保护。
114.图形子系统1215可执行诸如静态或视频之类的图像的处理以便显示。图形子系统1215例如可以是图形处理单元(graphics processing unit,gpu)或者视觉处理单元(visual processing unit,vpu)。模拟或数字接口可被用于通信地耦合图形子系统1215和
显示器1220。例如,该接口可以是高清晰度多媒体接口、显示端口(displayport)、无线hdmi、和/或无线hd遵从技术中的任何一者。图形子系统1215可被集成到处理器1210或芯片组1205中。在一些实现方式中,图形子系统1215可以是与芯片组1205通信耦合的独立设备。
115.本文描述的图形和/或视频处理技术可被实现在各种硬件体系结构中。例如,图形和/或视频功能可被集成在芯片组内。或者,可以使用分立的图形和/或视频处理器。作为另外一种实现方式,图形和/或视频功能可由包括多核处理器在内的通用处理器来提供。在另外的实施例中,这些功能可被实现在消费型电子设备中。
116.无线电装置1218可包括能够利用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wireless local area network,wlan)、无线个人域网(wireless personal area network,wpan)、无线城域网(wireless metropolitan area network,wman)、蜂窝网络、以及卫星网络。在跨这种网络通信时,无线电装置1218可根据任何版本的一个或多个适用的标准来进行操作。
117.在各种实现方式中,显示器1220可包括任何电视型监视器或者显示器。显示器1220例如可包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备、和/或电视机。显示器1220可以是数字的和/或模拟的。在各种实现方式中,显示器1220可以是全息显示器。另外,显示器1220可以是可接收视觉投影的透明表面。这种投影可传递各种形式的信息、图像、和/或对象。例如,这种投影可以是移动增强现实(mobile augmented reality,mar)应用的视觉覆盖。在一个或多个软件应用1216的控制下,平台1202可在显示器1220上显示用户界面1222。
118.在各种实现方式中,(一个或多个)内容服务设备1230可由任何国家的、国际的、和/或独立的服务所容宿并且从而例如是平台1202经由互联网可访问的。(一个或多个)内容服务设备1230可耦合到平台1202和/或显示器1220。平台1202和/或(一个或多个)内容服务设备1230可耦合到网络1260,以向和从网络1260传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备1240也可耦合到平台1202和/或显示器1220。
119.在各种实现方式中,(一个或多个)内容服务设备1230可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的设备或电器、以及能够经由网络1260或者直接地在内容提供者与平台1202和/或显示器1220之间单向或双向地传输内容的任何其他类似设备。将会明白,可经由网络1260单向地和/或双向地向和从系统1200中的任何一个组件和内容提供者传输内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗、和游戏信息等等。
120.(一个或多个)内容服务设备1230可接收内容,例如有线电视节目(包括媒体信息、数字信息、和/或其他内容)。内容提供者的示例可包括任何有线电视或卫星电视或者无线电或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
121.在各种实现方式中,平台1202可从具有一个或多个导航特征的导航控制器1250接收控制信号。导航特征例如可用于与用户界面1222交互。在各种实施例中,导航可以是指针设备,该指针设备可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口设备)。诸如图形用户界面(graphical user interface,gui)以及电视机和监视器之类的许多系统允许用户利用物理手势来控制计算
机或电视机并向其提供数据。
122.导航特征的移动可被在显示器上显示的指针、光标、聚焦环、或其他视觉指示物的移动复制在显示器(例如,显示器1220)上。例如,在软件应用1216的控制下,位于导航上的导航特征例如可被映射到在用户界面1222上显示的虚拟导航特征。在各种实施例中,可不是单独的组件,而是可被集成到平台1202和/或显示器1220中。然而,本公开并不限于本文示出或描述的元素或者情境。
123.在各种实现方式中,例如,当被使能时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮来像电视机那样即刻开启和关闭平台1202的技术。程序逻辑可允许平台1202即使在平台被“关闭”时也可将内容流传输到媒体适配器或(一个或多个)其他内容服务设备1230或(一个或多个)内容递送设备1240。此外,芯片组1205可包括对例如5.1环绕立体声音频和/或高清晰度7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括高速外围组件互连(peripheral component interconnect,pci)图形卡。
124.在各种实现方式中,系统1200中示出的组件中的任何一个或多个可被集成。例如,平台1202和(一个或多个)内容服务设备1230可被集成,或者平台1202和(一个或多个)内容递送设备1240可被集成,或者平台1202、(一个或多个)内容服务设备1230、和(一个或多个)内容递送设备1240可被集成。在各种实施例中,平台1202和显示器1220可以是集成的单元。例如,显示器1220和(一个或多个)内容服务设备1230可被集成,或者显示器1220和(一个或多个)内容递送设备1240可被集成。这些示例并不意图限制本公开。
125.在各种实施例中,系统1200可被实现为无线系统、有线系统、或者它们两者的组合。当被实现为无线系统时,系统1200可包括适合于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可包括无线频谱的一些部分,例如rf频谱等等。当被实现为有线系统时,系统1200可包括适合于通过有线通信介质进行通信的组件和接口,例如输入/输出(i/o)适配器、将i/o适配器与相应的有线通信介质相连接的物理连接器、网络接口卡(network interface card,nic)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括导线、电缆、金属引线、印刷电路板(printed circuit board,pcb)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
126.平台1202可建立一个或多个逻辑或物理通道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调等等。控制信息可以指表示打算给自动化系统的命令、指令、或控制字的任何数据。例如,控制信息可用于将媒体信息路由过系统,或者指示节点以预定的方式处理媒体信息。然而,实施例并不限于图12中示出或描述的元素或情境。
127.如上所述,系统1200可被实现为不同的物理风格或外形参数。图13图示了根据本公开的至少一些实现方式布置的示例小外形参数设备1300。在一些示例中,可经由设备1300来实现系统1200。在其他示例中,可经由设备1300来实现系统100或其一些部分。在各种实施例中,例如,设备1300可被实现为具有无线能力的移动计算设备。移动计算设备例如
可以指具有处理系统和移动电源或电力供应(例如一个或多个电池)的任何设备。
128.移动计算设备的示例可包括:个人计算机(pc)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、智能设备(例如,智能电话、智能平板、或智能移动电视)、移动互联网设备(mid)、消息传递设备、数据通信设备、相机等等。
129.移动计算设备的示例还可包括被布置为被人穿戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机、和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可被实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然作为示例,可利用被实现为智能电话的移动计算设备来描述一些实施例,但可明白也可利用其他无线移动计算设备来实现其他实施例。实施例不限于此情境中。
130.如图13所示,设备1300可包括具有正面1301和背面1302的外壳。设备1300包括显示器1304、输入/输出(i/o)设备1306、以及集成天线1308。设备1300还可包括导航特征1312。i/o设备1306可包括用于将信息输入到移动计算设备中的任何适当的i/o设备。i/o设备1306的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件等等。信息也可通过麦克风(未示出)被输入到设备1300中,或者可被语音识别设备数字化。如图所示,设备1300可包括集成到设备1300的背面1302(或别处)的相机1305(例如,包括镜头、光圈、和成像传感器)和闪光灯1310。在其他示例中,相机1305和闪光灯1310可被集成到设备1300的正面1301中,或者正面和背面相机都可被提供。相机1305和闪光灯1310可以是相机模块的组件,用于创作被处理成流视频的图像数据,该流视频例如被输出到显示器1304和/或被从设备1300经由天线1308远程传送。
131.可以利用硬件元素、软件元素、或者它们两者的组合来实现各种实施例。硬件元素的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、进程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或者这些的任何组合。确定是否利用硬件元素和/或软件元素来实现一实施例可根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其他设计或性能约束。
132.至少一个实施例的一个或多个方面可由被存储在机器可读介质上的、表示处理器内的各种逻辑的代表性指令来实现,这些代表性指令当被机器读取时使得该机器制作逻辑来执行本文描述的技术。这种被称为ip核心的表现形式可被存储在有形机器可读介质上并且被提供到各种客户或制造设施以加载到实际制作该逻辑或处理器的制作机器中。
133.虽然已参考各种实现方式描述了本文记载的某些特征,但此描述并不打算被从限制意义上来解释。因此,对本公开所属领域的技术人员来说显而易见的对本文描述的实现方式的各种修改以及其他实现方式,被认为属于本公开的精神和范围内。
134.在一个或多个第一实施例中,一种用于低时延视频编码的方法,包括:将多个时间
上相邻的视频帧中的每一者分割成高质量编码区域和标准质量编码区域,其中每个视频帧的每个高质量编码区域的至少一部分相对于其他时间上相邻的视频帧的高质量编码区域而言是该视频帧独特的;通过相对于所述标准质量编码区域向所述高质量编码区域应用编码质量提升来对每个时间上相邻的视频帧进行编码,以生成比特流的至少一部分;以及传输所述比特流。
135.在一个或多个第二实施例中,关于所述第一实施例,又及,在所述多个时间上相邻的视频帧之间,所述高质量编码区域填充了所述多个时间上相邻的视频帧的整个视频帧大小。
136.在一个或多个第三实施例中,关于所述第一或第二实施例,又及,所述方法还包括:将紧随在所述时间上相邻的视频帧之后的多个时间上相邻的第二视频帧中的每一者分割成第二高质量编码区域和第二标准质量编码区域,其中每个第二视频帧的每个第二高质量编码区域的至少一部分相对于其他时间上相邻的第二视频帧而言是该视频帧独特的,并且,在所述多个时间上相邻的第二视频帧之间,所述第二高质量编码区域填充了整个视频帧大小。
137.在一个或多个第四实施例中,关于所述第一至第三实施例中的任何一者,又及,应用所述编码质量提升包括以下之一:将所述多个相邻视频帧中的第一帧的帧级别量化参数(qp)调整到高质量区域qp并且使用所述高质量区域qp来对所述第一帧的第一高质量编码区域进行编码,或者相对于所述第一帧的第一标准质量编码区域调整所述第一高质量编码区域的速率失真优化。
138.在一个或多个第五实施例中,关于所述第一至第四实施例中的任何一者,又及,响应于所述多个相邻视频帧中的第一帧是帧内帧或场景变化帧,预选择的编码质量提升被应用到所述第一帧的第一高质量编码区域,并且所述第一帧之后的第二帧的第二高质量编码区域基于所述第二帧的时间相关性应用自适应编码质量提升。
139.在一个或多个第六实施例中,关于所述第一至第五实施例中的任何一者,又及,所述第一帧之后的第三帧基于所述第三帧的第二时间相关性应用第二自适应编码质量提升,其中所述第二自适应编码质量提升响应于所述第二时间相关性小于所述时间相关性而小于所述自适应编码质量提升。
140.在一个或多个第七实施例中,关于所述第一至第六实施例中的任何一者,又及,将所述相邻视频帧中的每一者分割成高质量编码区域和标准质量编码区域包括随机选择所述相邻视频帧中的第一视频帧的第一高质量编码区域的位置或大小中的至少一者。
141.在一个或多个第八实施例中,关于所述第一至第七实施例中的任何一者,又及,随机选择所述第一高质量编码区域的位置或大小包括从所述第一视频帧之前的一个或多个视频帧未使用的剩余可用高质量编码区域中随机选择。
142.在一个或多个第九实施例中,关于所述第一至第八实施例中的任何一者,又及,将所述多个时间上相邻的视频帧分割成高质量编码区域和标准质量编码区域包括将第一帧分割成两个或更多个高质量编码区域条带和包括所述第一帧的其余部分的标准质量编码区域,其中每个高质量编码区域条带延伸过所述第一帧的宽度。
143.在一个或多个第十实施例中,关于所述第一至第九实施例中的任何一者,又及,将所述多个时间上相邻的视频帧分割成高质量编码区域和标准质量编码区域包括将第一帧
分割成单个高质量编码区域条带和两个标准质量编码区域,其中所述单个高质量编码区域条带延伸过所述第一帧的宽度,并且所述两个标准质量编码区域的每一者延伸过所述宽度并且从所述高质量编码区域条带的边缘延伸到所述第一帧的边缘。
144.在一个或多个第十一实施例中,关于所述第一至第十实施例的任何一者,又及,将所述多个时间上相邻的视频帧分割成高质量编码区域和标准质量编码区域包括将第一帧分割成定义高质量编码模式的一个或多个高质量编码区域矩形和包括所述第一帧的其余部分的一个或多个标准质量编码区域。
145.在一个或多个第十二实施例中,关于所述第一至第十一实施例的任何一者,又及,将所述多个时间上相邻的视频帧分割成高质量编码区域和标准质量编码区域包括将第二帧分割成第二高质量编码模式,该第二高质量编码模式与所述高质量编码模式的形状相匹配并且在所述第二帧中具有相对于所述高质量编码模式在所述第一帧中的第一位置的第二位置。
146.在一个或多个第十三实施例中,一种设备或系统包括存储器和一个或多个处理器来执行根据上述实施例中的任何一者的方法。
147.在一个或多个第十四实施例中,至少一个机器可读介质包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备执行根据上述实施例中的任何一者所述的方法。
148.在一个或多个第十五实施例中,一种装置包括用于执行根据上述实施例中的任何一者所述的方法的部件。
149.将会认识到,实施例不限于这样描述的实施例,而是可在带有修改和变更的情况下实现,而不脱离所附权利要求的范围。例如,上述实施例可包括特征的特定组合。然而,上述实施例不限于此,并且在各种实现方式中,上述实施例可包括仅执行这种特征的子集,执行这种特征的不同顺序,执行这种特征的不同组合,和/或执行除明确列出的那些特征以外的附加特征。因此,应当参考所附权利要求以及这种权利要求有权享有的等同物的完整范围来确定实施例的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1