空间层速率分配

文档序号:864166 发布日期:2021-03-16 浏览:15次 >En<

阅读说明:本技术 空间层速率分配 (Spatial layer rate allocation ) 是由 迈克尔·霍罗威茨 拉斯马斯·勃兰特 于 2019-06-23 设计创作,主要内容包括:一种方法(400)包括接收对应于缩放视频输入信号(120)的变换系数(226),所述缩放视频输入信号(120)包括多个空间层(L),所述多个空间层(L)包括基本层(L_0)。该方法还包括基于来自缩放视频输入信号的帧样本(S_F)来确定空间速率因子(332)。空间速率因子在从缩放视频输入信号形成的编码比特流(204)的每个空间层处定义用于比特率分配的因子。空间速率因子由基本层的每个变换系数的比特率与每个变换系数的平均比特率(R_L)之间的差来表示。所述方法还包括通过基于空间速率因子和帧样本将比特率分配给每个空间层来减小多个空间层的失真。(A method (400) includes receiving a response toScaling transform coefficients (226) of a video input signal (120), the scaled video input signal (120) comprising a plurality of spatial layers (L) including a base layer (L) 0 ). The method further comprises scaling the video input signal based on frame samples (S) from the video input signal F ) A spatial rate factor is determined (332). The spatial rate factor defines a factor for bit rate allocation at each spatial layer of an encoded bitstream (204) formed from the scaled video input signal. The spatial rate factor is formed by the bit rate of each transform coefficient of the base layer and the average bit rate (R) of each transform coefficient L ) The difference between them. The method also includes reducing distortion of the plurality of spatial layers by allocating a bit rate to each spatial layer based on the spatial rate factor and the frame samples.)

空间层速率分配

技术领域

本发明涉及在可缩放视频编码背景下的空间层速率分配。

背景技术

随着视频在广泛的应用中变得越来越普遍,视频流可能需要依据应用的情况被编码和/或解码若干次。例如,不同的应用和/或设备可能需要遵守带宽或资源约束。为了满足这些需要几种设置组合而不至于过于昂贵的需求,已经开发了将视频压缩成几种分辨率的高效编解码器。利用诸如可缩放VP9和H.264之类的编解码器,视频比特流可以包含多个空间层,这些空间层允许用户以不同的分辨率(即每个空间层的分辨率)重构原始视频。通过具有可缩放能力,视频内容可以通过有限的进一步处理从设备传递到设备。

发明内容

本发明的一个方面提供了一种用于分配比特率的方法。所述方法包括在数据处理硬件处接收对应于缩放视频输入信号的变换系数,所述缩放视频输入信号包括多个空间层,所述多个空间层包括基础层。该方法还包括由数据处理硬件基于来自缩放视频输入信号的帧样本来确定空间速率因子。空间速率因子在从缩放视频输入信号形成的编码比特流的每个空间层处定义用于比特率分配的因子。空间速率因子由基本层的每个变换系数的比特率和多个空间层的每个变换系数的平均比特率之间的差来表示。该方法还包括通过基于空间速率因子和帧样本将比特率分配给每个空间层来减少编码比特流的多个空间层的失真。

本发明的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,该方法还包括在数据处理硬件处从缩放视频输入信号接收第二帧样本;数据处理硬件基于来自缩放视频输入信号的第二帧样本修改空间速率因子;数据处理硬件基于修改后的空间速率因子和第二帧样本,为每个空间层分配修改后的比特率。在另外的实施方式中,该方法还包括在数据处理硬件处接收来自缩放视频输入信号的第二帧样本;数据处理硬件基于指数移动平均值逐帧修改空间速率因子,指数移动平均值至少对应于帧样本和第二帧样本;数据处理硬件基于修改后的空间速率因子为每个空间层分配修改后的比特率。

在一些示例中,接收缩放视频输入信号包含接收视频输入信号、将视频输入信号缩放成多个空间层、将每一空间层分割成子块、将每一子块变换成变换系数、以及标量量化对应于每一子块的变换系数。基于来自缩放视频输入信号的帧样本来确定空间速率因子可包含基于视频输入信号的帧的所有变换块上的平均值来确定每一标量量化变换系数的方差估计。在此,每个子块的变换系数可以在所有子块上相同地分布。

在一些实施方式中,该方法还包括由数据处理硬件确定空间速率因子满足空间速率因子阈值。在这些实施方式中,当空间速率因子阈值对应的值小于约1.0且大于约0.5时,该值可以满足空间速率因子阈值。空间速率因子可以包括经配置将比特率分配给编码比特流每个层的单个参数。在一些示例中,空间速率因子包括与方差乘积的比率相对应的加权和,其中所述比率包括基于来自第一空间层的标量量化变换系数的估计方差的分子和基于来自第二空间层的标量量化变换系数的估计方差的分母。

本发明的另一方面提供了一种用于分配比特率的系统。该系统包括数据处理硬件以及与数据处理硬件通信的存储器硬件。所述存储器硬件存储在被数据处理硬件执行时致使其执行操作的指令。所述操作包括接收对应于缩放视频输入信号的变换系数,所述缩放视频输入信号包括多个空间层,所述多个空间层包括基础层。所述操作还包括基于来自缩放视频输入信号的帧样本来确定空间速率因子。空间速率因子在从缩放视频输入信号形成的编码比特流的每个空间层处定义了用于比特率分配的因子。空间速率因子由基本层的每个变换系数的比特率和多个空间层的每个变换系数的平均比特率之间的差来表示。该操作还包括通过基于空间速率因子和帧样本将比特率分配给每个空间层来减少编码比特流的多个空间层的失真。

该方面可以包括一个或多个以下的可选特征。在一些实施方式中,所述操作还包括从缩放视频输入信号接收第二帧样本;基于来自缩放视频输入信号的第二帧样本来修改空间速率因子;以及基于修改后的空间速率因子和第二帧样本来将修改后的比特率分配给每个空间层。在另外的实施方式中,所述操作还包括接收来自缩放视频输入信号的第二帧样本;基于指数移动平均值逐帧修改空间速率因子,所述指数移动平均值至少对应于帧样本和第二帧样本;以及基于修改后的空间速率因子为每个空间层分配修改后的比特率。

在一些示例中,接收缩放视频输入信号包含接收视频输入信号、将视频输入信号缩放成多个空间层、将每一空间层分割成子块、将每一子块变换成变换系数、以及标量量化对应于每一子块的变换系数。基于来自缩放视频输入信号的帧样本来确定空间速率因子可包含基于视频输入信号的帧的所有变换块上的平均值来确定每一标量量化变换系数的方差估计。在此,每个子块的变换系数可以在所有子块上相同地分布。

在一些实施方式中,操作还包括确定空间速率因子满足空间速率因子阈值。在这些实施方式中,当空间速率因子阈值对应的值小于约1.0且大于约0.5时,该值可以满足空间速率因子阈值。空间速率因子可以包括经配置将比特率分配给编码比特流每个层的单个参数。在一些示例中,空间速率因子包括与方差乘积的比率相对应的加权和,其中所述比率包括基于来自第一空间层的标量量化变换系数的估计方差的分子和基于来自第二空间层的标量量化变换系数的估计方差的系数。

本发明的一个或多个实施方式的细节在附图和以下描述中阐述。根据说明书和附图以及根据权利要求书,其它的方面、特征和优点将是显而易见的。

附图说明

图1是示例性速率分配系统的示意图。

图2是图1的速率分配系统内的示例性编码器的示意图。

图3是图1的速率分配系统内的示例性分配器的示意图。

图4是用于实现速率分配系统的示例性方法的流程图。

图5是可用于实现本文所述的系统和方法的示例性计算设备的示意图。

在各个附图中相同的附图标记表示相同的元件。

具体实施方式

图1是速率分配系统100的示例。速率分配系统100通常包括视频源设备110,其经由网络130将所捕获的视频作为视频输入信号120传送到远程系统140。在远程系统140处,编码器200和分配器300将视频输入信号120转换成编码比特流204。编码比特流204包括一个以上的空间层L0-i,其中i表示空间层L0-i的数量。每个空间层L是编码比特流204的可缩放形式。可缩放视频比特流指的是其中部分比特流可以通过产生子流(例如空间层L)的方式被去除的视频比特流,该子流形成用于某些目标解码器的有效比特流。更具体地讲,子流表示原始视频输入信号120的源内容(例如捕获的视频),其重构质量低于原始捕获的视频的质量。例如,第一空间层L1具有1280×720的720p高清晰度(HD)分辨率,而基础层L0作为视频图形适配器分辨率(VGA)的扩展形式缩放到640×360的分辨率。在可缩放性方面,通常视频可在时间上(例如通过帧速率),在空间上(例如通过空间分辨率)和/或在质量上(例如通过保真度,通常被称为信噪比SNR)可缩放。

速率分配系统100是示例环境,其中用户10,10a在视频源设备110处捕获视频并将所捕获的视频传送到其它用户10,10b-c。在此,在用户10b,10c经由视频接收设备150,150b-c接收所捕获的视频之前,编码器200和分配器300以所分配的比特流速率将所捕获的视频转换为编码比特流204。每个视频接收设备150可以被配置为接收和/或处理不同的视频分辨率。在此,具有较大层号i的空间层L指具有较大分辨率的层L,因此i=0在多于一个空间层L0-i的比特流内指具有最低可缩放分辨率的基本层L0。参考图1,编码视频比特流204包括两个空间层L0、L1。这样,一个视频接收设备150可以接收作为较低分辨率空间层L0的视频内容,而另一个视频接收设备150可以接收作为较高分辨率空间层L1的视频内容。例如,图1将属于用户10b的第一视频接收设备150a描述为接收较低空间分辨率层L0的蜂窝电话,而拥有作为膝上型计算机的第二接收设备150b的用户10c接收较高分辨率空间层L1

当不同的视频接收设备150a-b接收不同的空间层L0-i时,每个空间层L的视频质量可能取决于所接收的空间层L的比特率BR和/或分配因子AF。在此,比特率BR对应每秒的比特数,分配因子AF对应每个样本的比特数(即变换系数)。在可缩放比特流(例如,编码比特流204)的情况下,可缩放比特流的总比特率BRtot通常受到限制,使得可缩放比特流的每个空间层L收到相似的比特率限制。由于这些限制,一个空间层L关联的比特率BR可能会损害或折衷另一个空间层L的质量。更具体地讲,如果用户10经由视频接收设备150接收到的空间层L上的质量受到损害,则该质量可能对用户体验产生负面影响。例如,当下通过实时通信(RTC)应用程序将视频内容作为一种通信形式进行传输变得更加普遍。使用RTC应用程序的用户10通常可以基于应用程序的主观质量来选择用于通信的应用程序。因此,作为应用程序用户,用户10通常期望获得积极的通信体验,而不会出现因为分配到应用程序用户10所接收的空间层L比特率不足而可能导致的质量问题。为了帮助确保积极的用户体验,分配器300被配置为自适应地传送分配因子AF,以确定多个空间层L0-i中的每个空间层L的比特率BR。通过在多个空间层L0-i之间解析地分配分配因子AF,分配器300寻求对于给定的总比特率BRtot在所有空间层L0-i上实现最高的视频质量。

视频源设备110可以是能够将捕获的视频和/或视频输入信号120传送到网络130和/或远程系统140的任何计算设备或数据处理硬件。在一些示例中,视频源设备110包括数据处理硬件112,存储器硬件114和视频捕获设备116。在一些实施方式中,视频捕获设备116实际上是图像捕获设备,其可以将所捕获的图像序列作为视频内容进行传送。例如,一些数码相机和/或网络摄像机配置成以特定频率捕获图像从而形成感观的视频内容。在其它示例中,视频源设备110以连续模拟格式捕获视频,随后可将其转换成数字格式。在一些配置中,视频源设备110包括编码器,用来将捕获的数据(例如,模拟或数字)初步编码或压缩为编码器200进一步处理的格式。在其它示例中,视频源设备110被配置为在视频源设备110处访问编码器200。例如,编码器200是托管在远程系统140上的web应用程序,但可由视频源设备110经由网络连接来访问。在其它示例中,编码器200和/或分配器300的部分或全部被托管在视频源设备110上。例如,编码器200和分配器300被托管在视频源设备110上,但是远程系统140用作后端系统,该后端系统根据视频接收设备150的解码能力以及视频接收设备150和远程系统140之间的网络130的连接能力,将包括空间层L0-i的比特流中继到视频接收设备150。附加地或替代地,视频源设备110被配置为使得用户10a可使用视频捕获设备116通过网络130与另一用户10b-c进行通信。

视频输入信号120是所捕获的视频内容对应的视频信号。在此,视频源设备110捕获视频内容。例如,图1描绘了视频源设备110经由网络摄像头116捕获视频内容。在一些示例中,视频输入信号120是由编码器200处理成数字格式的模拟信号。在其它示例中,视频输入信号120在编码器200之前经历某种程度的编码或数字格式化,使得编码器200执行重新量化过程。

与视频源设备110十分类似,视频接收设备150可以是能够经由网络130和/或远程系统140接收被传送的捕获视频的任何计算设备或数据处理硬件。在一些示例中,视频源设备110和视频接收设备150被配置有相同的功能,使得视频接收设备150可以成为视频源设备110,并且视频源设备110可以成为视频接收设备150。在任一情况下,视频接收设备150至少包括数据处理硬件152和存储器硬件154。另外,视频接收设备150包括显示器156,该显示器156被配置为显示所接收的视频内容(例如,编码比特流204的至少一个层L)。如图1所示,用户10b、10c以比特率BR作为空间层L接收编码比特流204,并且将编码比特流204解码以及在显示器156上显示为视频。在一些示例中,视频接收设备150包含解码器或被配置为访问解码器(例如,经由网络130)以允许视频接收设备150显示编码比特流204的内容。

在一些示例中,编码器200和/或分配器300是由远程系统140(例如云环境的分布式系统)托管的应用程序,其经由视频源设备110和/或视频接收设备150访问。在一些实施方式中,编码器200和/或分配器300是下载到视频源设备110和/或视频接收设备150的存储器硬件114、154的应用程序。与编码器200和/或分配器300的访问点无关,编码器200和/或分配器300可被配置为与远程系统140通信以访问资源142(例如,数据处理硬件144,存储器硬件146或软件资源148)。对远程系统140的资源142的访问可以允许编码器200和/或分配器300将视频输入信号120编码成编码比特流204和/或将比特率BR分配给编码比特流204的一个以上空间层L0-i的每个空间层L。可选地,作为用于在用户10,10a-c之间通信的远程系统140的软件资源148,实时通信(RTC)应用程序包括编码器200和/或分配器300作为内置功能。

更详细地参考图1,三个用户10,10a-c经由由远程系统140托管的RTC应用程序(例如,由云托管的WebRTC视频应用程序)通信。在该示例中,第一用户10a是与第二用户10b和第三用户10c进行群组视频聊天。当视频捕获设备116捕获第一用户10a发言的视频时,经由视频输入信号120捕获的视频由编码器200和分配器300处理,并经由网络130传送。在此,编码器200和分配器300结合RTC应用程序进行操作,以生成具有一个以上空间层L0、L1的编码比特流204,其中每个空间层L具有分配比特率BR0、BR1,该分配比特率由基于视频输入信号120的分配因子AF0、AF1确定。由于每个视频接收设备150a、150b的能力不同,每个接收第一用户10a视频聊天的用户10b、10c接收到视频输入信号120对应的原始视频的不同缩放版本。例如,第二用户10b接收到基本空间层L0,而第三用户10c接收到第一空间层L1。每个用户10b、10c继续在显示器156a、156b上显示与RTC应用程序通信而接收到的视频内容。尽管示出了RTC通信应用程序,但编码器200和/或分配器300可用于涉及具有一个以上空间层L0-i的编码比特流204的其它应用程序中。

图2是编码器200的示例。编码器200被配置为将作为输入202的视频输入信号120转换为作为输出204的编码比特流。尽管单独示出,编码器200和分配器300可以集成到单个设备中(例如,如图1中的虚线所示),或者在多个设备(例如视频输入设备110、视频接收设备150或远程系统140)上单独出现。编码器200通常包括缩放器210、变换器220、量化器230和熵编码器240。尽管未示出,编码器200可以包括用于生成编码比特流204的附加组件,诸如预测组件(例如运动估计和帧内预测)和/或环路滤波器。预测组件可产生待传递到变换器220以进行变换的残差,其中残差基于原始输入帧减去帧预测(例如运动补偿或帧内预测)的差。

缩放器210被配置为将视频输入信号120缩放成多个空间层L0-i。在一些实施方式中,缩放器210通过确定视频输入信号120中可被去除以降低空间分辨率的部分来缩放视频输入信号120。通过去除一个或多个部分,缩放器210形成视频输入信号120的多个版本以形成多个空间层(例如子流)。缩放器210可以重复该过程,直到缩放器210形成基本空间层L0。在一些示例中,缩放器210缩放视频输入信号120以形成设定数量的空间层L0-i。在其它示例中,缩放器210被配置为缩放视频输入信号120直到缩放器210确定不存在解码器来解码子流为止。当缩放器210确定不存在解码器来对与视频输入信号120的缩放版本相对应的子流进行解码时,缩放器210将先前版本(例如空间层L)识别为基本空间层L0。缩放器210的一些示例包括与可伸缩视频编码(SVC)扩展相对应的编解码器,例如H.264视频压缩标准的扩展或VP9编码格式的扩展。

变换器220被配置为从缩放器210接收与视频输入信号120相对应的每个空间层L。对于每个空间层L,变换器220在操作222将每个空间层L划分成子块。利用每个子块,变换器220在操作224变换每个子块以生成变换系数226(例如,通过离散余弦变换(DCT))。通过产生变换系数226,变换器220可以使冗余视频数据和非冗余视频数据相关,以帮助编码器200去除冗余视频数据。在一些实施方式中,变换系数还允许分配器300容易地确定空间层L中具有非零方差的每个变换块的多个系数。

量化器230被配置为执行量化或重新量化过程232(即,标量量化)。量化过程通常将输入参数(例如,从连续的模拟数据集)转换为较小的输出值数据集。尽管量化过程可以将模拟信号转换为数字信号,但是在此,量化过程232(有时也称为再量化过程)通常进一步处理数字信号。根据视频输入信号120的形式,可以互换地使用任一过程。通过运用量化或重新量化过程,数据可能会被压缩,但是以某些方面的数据丢失为代价,因为较小的数据集是较大或连续数据集的缩减。在此,量化过程232转换数字信号。在一些示例中,量化器230通过将来自变换器220的每个子块的变换系数226标量量化为量化索引234,从而有助于形成编码比特流204。在此,标量量化变换系数226可允许有损编码对每个变换系数226进行缩放,以便将冗余视频数据(例如,可在编码期间移除的数据)与有价值视频数据(例如,不应移除的数据)进行对比。

熵编码器240被配置为将量化索引234(即,量化变换系数)和辅助信息转换为比特。通过这种转换,熵编码器240形成编码比特流204。在一些实施方式中,熵编码器240连同量化器230使编码器200能够形成编码比特流204,其中每个层L0-i具有基于由分配器300确定的分配因子AF0-i的比特率BR0-i

图3是分配器300的示例。分配器300被配置为接收与多于一个空间层L0-i相关的非量化变换系数226,并为每个接收到的空间层L0-i确定分配因子AF。在一些实施方式中,分配器300基于用于标量量化的基于平方误差的高速率近似进行来确定每个分配因子AF。平方误差高速率近似允许系统确定最佳(在高速率近似的情况下)比特率,以分配给N个标量量化器。通常,为N个标量量化器分配的最佳比特率由速率失真优化量化来确定。速率失真优化试图通过最小化经受比特率约束(例如总比特率BRtot)的失真量(即视频质量的损失)来改善视频压缩期间的视频质量。在此,分配器300应用为N个标量量化器的确定最佳比特率的原理,以确定最佳分配因子,从而将比特率分配给编码比特流204的一个以上空间层L0-i中的每一个。

一般而言,标量量化的平方误差高速率近似可以由以下等式表示:

其中,取决于到第i个量化器的输入信号(例如,变换系数)的源分布,是该信号的方差,并且ri是用于第i个量化器的比特率,以每输入符号的比特数为单位。以下是使用平方误差高速率近似推导出的用于两个标量量化器的最佳速率分配的表达式。

双量化器问题的平均失真D,D2等于类似地,双量化器问题的平均速率R2等于在此,di是由于第i个量化器引起的平方误差失真,并且ri是以每个样本的比特数为单位分配给第i个量化器的比特率。虽然,参数di是速率ri的函数,使得像di(ri)这样的等式是合适的,但是为了方便起见,将di简单地代替表示为di。将d0和d1的高速率近似值代入D2的等式中以得到:

用等式(2),可以用2R2-r0代替r1得到:

通过进一步求得D2关于r0的导数,等式(3)得到以下表达式:

将上述表达式(等式(4))设置为零,并求解r0,得到零量化器的最佳速率r*的表达式,表示如下:

因为高速率失真的表达式是凸的,所以通过将导数设置为零而找到的最小值是全局的。类似地,第一量化器的最佳速率r*可以表示如下:

为了找到最佳量化器失真将等式(5)和(6)作为最佳速率代入标量量化器失真的高速率表达式中,如下所示:

等式(7)的简化形式得出以下等式:

对于所有的i (8)

通过将零量化器和第一量化器组合成单个量化系统(即嵌套系统),可以将相同的双量化器分析扩展到三个量化器,其中组合的量化器已经根据等式(1)-(8)求解。使用类似于双量化器速率分配的方法,导出三量化器系统如下。

由于双量化器系统的平均单个量化器失真被表示为通过代入davg到平均三量化器失真的表达式产生以下等式:

类似地,三量化器系统的平均速率表示如下:

其中

利用如等式(8)中所示的来自双量化器分析的最佳失真结果,由此得出三量化器失真可以由以下等式表示:

因此,当将等式(11)简化并代入到等式(11)时,等式(11)转化为以下表达式:

利用等式(12),可以将关于r2的导数设置为零并解出r2得到以下等式:

对于三个量化器,等式(13)可以更全面的表示为如下:

基于第一和第二量化器,可以导出用于N个量化器的最佳速率分配r*的表达式。第i个量化器的最佳速率的表达式如下:

通过将用于最佳速率的表达式代入用于失真的高速率表达式中,并进行与双量化器表达式类似的简化,就N个量化器而言,用于最佳失真的结果表达式如下所示。

对于所有的i (16)

基于从等式(1)-(16)导出的表达式,分配器300可以将这些表达式应用于最佳失真,以确定用于多个空间层L0-i中的每个层L的最佳分配因子AF(即,有助于最佳比特率BR)。类似于已导出的N量化器表达式,可以从与两层和三层速率分配系统相关联的表达式中推导出多空间层比特率。在一些示例中,假设尽管空间层L0-i通常具有不同的空间维度,但是空间层L0-i源自相同的视频源(例如,视频源设备110)。在一些实施方式中,编码第一空间层L0和第二空间层L1的标量量化器在结构上被假定为相同,即便这些标量量化器的值可能不同。此外,对于每个空间层L,多个样本S通常等于多个变换系数226(即,也等于多个量化器)。

在两个空间层速率分配系统的情况下,两个空间层的平均失真D2可以表示为平均失真d0和d1的加权和,并且对应于第一和第二空间层L0、L1(即空间层0和1)如下:

其中si等于第i个空间层Li中的样本的数目,并且S=s0+s1。类似地,两个空间层的平均比特率可以表示如下:

其中r0和r1分别是第一和第二空间层L0、L1的平均比特率。通过将N量化器最佳失真的表达式(即等式(16))代入上述D2的等式(17),D2可以表示如下:

其中是第i个空间层Li中第j个标量量化器的输入信号的方差。在等式(18)中求解r1并将结果代入等式(19),得出:

此外,通过将D2关于r0的导数设置为零并且求解r0,r0可以由以下等式表示:

简化等式(21)以便于表示,将该Pi的表达式代入的等式(21)中,并将所得项重新排列,形成类似于N量化器分配表达式的以下表达式:

或者,可以用表示等式(22),以实现以下等式:

基于等式(17)-(23),最佳的两空间层失真可以表示如下:

类似的方法可以得出应用于三个空间层L0-2的最佳分配因子。非常类似于两个空间层L0、L1,si等于第i个空间层L1中的样本数,使得S=s0+s1+s2。三个空间层L0-2的平均速率和失真,R3和D3,可分表示为空间层0、1和2(例如,三个空间层L0-2)的平均速率和失真r0、r1和r2与d0、d1和d2的加权和,如下:

当类似的技术从双量化器结果应用到三个量化器时,R3可以使用以下等式将其表示为平均两层速率R2的组合:

其中

类似地,对于三个量化器,失真可以表示如下:

其中

利用两层最佳失真的等式(24)和最佳N量化器失真的等式(8),可以在等式(29)中求解D3以得到以下表达式:

其中可以在等式(27)中求解R2以得到以下表达式:

此外,通过将等式(32)代入D3的等式(31)来组合等式(31)和(32)以形成以下等式:

可以通过取D3关于r2的导数并将结果设置为零来形成r2的表达式。该表达式可以由以下等式表示:

当项被重新排列时,等式(34)可能看起来类似于N量化器分配表达式如下:

将该等式(36)应用于第一层L0和第二层L1,每层的分配因子可以表示如下:

两个空间层L0-1和三个空间层L0-2的两个推导说明了可扩展到多个空间层以在分配器300处优化速率分配(例如,用于确定分配给每个空间层L的比特率BR的分配因子AF)的模式。在此,将上述结果扩展到L个空间层L0-L得到通用表达式,如以下等式所示:

其中RL是平均速率,该平均速率对应于L个空间层L0-i上每个样本的比特数;在L个空间层上的样本总数S,其中si是第i个空间层中的样本数;其中,hj,i取决于由第j个量化器在第i个空间层中量化的信号的源分布;并且对应于第i个空间层中的第j个变换系数的方差。

在一些实施方式中,由于各种假设,等式(39)具有不同的形式。以下表示等式(39)的两种不同形式。

例如,hj,i的值取决于在第i个空间层Li中由第j个量化器量化的视频输入信号120的源分布。在具有相似源分布的示例中,hj,i的值在不同量化器之间不改变,因此由于等式(39)中乘积项的比率而抵消。换句话说,hj,0=hj,1=hj,2=h。因此,当这种抵消发生时,项 这有效地消除了对该参数的考虑,因为Pi总是以比率的方式出现,其中h在分子中用来消除分母中的类似项。在实践中,hj,0可以不同于hj,1和hj,2,因为基本空间层L0仅使用时间预测,而其他空间层可以使用时间和空间预测。在一些配置中,这种差异不会显著影响分配器300所确定的分配因子AF

在其它实施方式中,编码器200引入产生变换系数226的变换块。当这种情况发生时,变换系数226的组合可能发生改变,该改变引入变量si’。变量si’对应于在第i个空间层Li中每个具有非零方差的变换块的变换系数226的平均数量,如等式(39a)所示。与此变量si’不同,等式(39b)中的si对应于第i个空间层Li中的样本数S。此外,在等式(39a)中,项其中σ2 k,i是第i个空间层Li中的变换块中的第k个系数的方差。实际地讲,等式(39a)表示第i个空间层Li的最佳比特率分配,作为方差乘积的比率的加权和的表达式(例如,)。

参考图3,在一些实施方式中,分配器300包括采样器310,估计器320和速率确定器330。采样器310接收具有多个空间层L0-i的非量化变换系数226作为分配器300的输入302。例如,图2示出了由变换器220生成的变换系数226,该变换系数226通过虚线传送到分配器300。利用所接收的非量化变换系数226,采样器310将视频输入信号120的帧识别为样本SF。基于由采样器310识别的样本SF,分配器300为每个空间层L确定分配因子AF。在一些实施方式中,分配器300被配置为动态地确定每个空间层L的分配因子AF。在这些实施方式中,采样器310可以被配置为迭代地识别帧样本SF的集合,使得分配器300可以将分配因子AF适配于由采样器310识别的每个样本SF的集合。例如,分配器310基于视频输入信号120的帧的第一样本SF1来确定到每个空间层L的分配因子AF。然后(例如,如有必要)基于由采样器310识别的视频输入信号120的帧的第二样本SF2,继续调整或修改施加到每个空间层L的分配因子AF(例如,如图3所示,从第一样本SF1的第一分配因子AF1变为第二样本SF2的第二分配因子AF2)。该过程可以迭代地持续到分配器300接收视频输入信号120的持续时间。在这些示例中,分配器300修改分配因子AF,分配因子AF又基于第一样本SF1和第二样本SF2之间的变化来改变空间速率因子332(例如,从第一空间速率因子3321改变到第二空间速率因子3322)。附加地或替代地,分配器300可以使用指数移动平均值来逐帧地修改分配因子AF。指数移动平均值通常是加权移动平均值,其用来自先前帧的分配因子AF的加权平均值为当前帧确定的分配因子AF进行加权。换句话说,在此,对分配因子AF的每次修改是具有当前和先前分配因子AF的加权平均值。

估计器320被配置为确定来自编码器200的每个变换系数的方差估计322。在一些配置中,估计器320假定来自变换器220的每个块中的变换系数226是类似分布的。基于该假设,可以通过对视频输入信号120的样本帧SF中的所有变换块求平均来估计变换系数226的方差。例如,下面的表达式将第i个空间层L1中的第k个变换系数226建模为随机变量Ek,i

其中εb,k,i,t是第t帧中第i个空间层Li中的第b个变换块中的第k个变换系数226,Bi表示第i个空间层Li中的块的数量,SF表示用于估计方差的样本帧的数量。在一些示例中,的值第i个空间层Li中的第k个变换系数226的方差的估计,当假设所有变换块具有相同的统计量时,该值是独立于变换块的。然而,在实践中,变换块的统计量可以在整个帧上变化。视频会议内容尤其如此,其中在帧边缘的块可能比在中心的块具有更少的活动。因此,如果这些不同的统计量负面地影响速率分配结果的准确性,则基于位于帧中央的块来估计方差可以减轻负面影响。在一些配置中,用来估计变换系数方差的子块表示视频图像中的所有子块的子集(例如,位于视频图像最中心部分的子块或者位于视频图像相对于先前图像已经改变的位置的子块)。

速率确定器330被配置为基于采样器310识别的视频输入信号120的帧样本SF来确定空间速率因子332。在一些示例中,空间速率因子332定义了用于在编码比特流204的每个空间层L0-i处确定比特率BR的因子。空间速率因子332是分配给空间层Li-1的比特率和分配给空间层L1的比特率之间的比率。在具有空间层L0和L1,空间速率因子等于0.5,以及分配给空间层L1的比特率等于500kbps的两空间示例中,分配给空间层L0的比特率等于250kbps(即500kbps的0.5倍)。在这些实施方式中,空间速率因子332的值设置为基本层L0的分配因子AF与平均速率RL之间的差(例如等式(39)的表达式r*0-RL)。在此,分配因子AF对应于基本层L0的每个变换系数的比特数(也称为r*0),而平均速率RL对应于多于一个空间层L0-i的每个变换系数的比特数。在一些配置中,两个空间层的实验结果表明空间速率因子332对应于表达式作为单个参数,空间速率因子332可以允许分配器300轻松地调整或修改编码比特流204的每个层L的比特率BR

尽管关于两个空间层进行了解释,但是分配器300可以将空间速率因子332和/或分配因子AF应用于任何数量的空间层L0-i。例如,分配器300相对于每两个空间层的组确定分配因子AF和/或空间速率因子332。为了用三个层L0-2说明,分配器300先确定基本层L0和第一层L1的分配因子AF,然后确定第一层L1和第二层L2的分配因子AF。每个分配因子AF可以用于确定空间速率因子332,基本层L0和第一层L1的一个空间速率因子332,以及第一层L1和第二层L2的第二个空间速率因子332。利用每两个空间层的组的空间速率因子332,分配器300可以对空间速率因子332和/或分配因子AF进行平均(例如加权平均、算术平均、几何平均等),从而为任何数量的空间层L0-i生成平均空间速率因子和/或平均分配因子。

在一些示例中,空间速率因子332必须满足空间速率因子阈值334(例如在值的范围内),以便分配器300基于空间速率因子332帮助确定比特率BR。在一些实施方式中,当值在小于约1.0和大于约0.5的区间内时,该值满足空间速率因子阈值334。在其它实施方式中,空间速率因子阈值334对应于较窄的值区间(例如0.55-0.95、0.65-0.85、0.51-0.99、0.65-1.0、0.75-1.0等)或较宽的值区间(例如0.40-1.20、0.35-0.95、0.49-1.05、0.42-1.17、0.75-1.38等)。在一些配置中,当空间速率因子332在空间速率因子阈值334的值区间之外时,分配器300调整空间速率因子332以满足空间速率因子阈值334。例如,当空间速率因子阈值334取0.45-0.95的区间时,将此区间之外的空间速率因子332调节至该区间的最近最大值(例如,将0.3的空间速率因子332调节至0.45的空间速率因子332,同时将1.82的空间速率因子332调节至0.95的空间速率因子332)。

基于所确定的空间速率因子332,分配器300被配置为通过减少一个以上空间层L0-i的失真来优化视频质量,该失真受制于总比特率BRtot的约束。为了减小失真,分配器300基于为帧样本SF计算的空间速率因子332来影响(例如,帮助编码器200确定)每个空间层L的比特率BR。例如,当编码比特流204包括两个空间层L0、L1时,分配器300确定分配因子AF,分配因子AF又用于确定空间速率因子332以生成对应于等式的第一比特率BR1和对应于等式的第二比特率BR0,其中BRtot对应于可用于编码总比特流的总比特率(即所有空间层L0、L1)。

图4是用于实现速率分配系统100的方法400的示例。在操作402中,方法400在数据处理硬件510处接收对应于视频输入信号120的变换系数226(例如,非量化变换系数)。视频输入信号120包括多个空间层L0-i,其中多个空间层L0-i包括基本层L0。在操作404中,方法400由数据处理硬件510基于来自视频输入信号120的帧样本SF来确定空间速率因子332。空间速率因子332定义了用于在编码比特流204的每个空间层L上进行速率分配的因子,并且由基本层L0的每个变换系数的比特率与多个空间层L0-i的每个变换系数的平均比特率RL之间的差来表示。在操作406中,方法400由数据处理硬件510通过基于空间速率因子332和帧样本SF将比特率BR分配给每个空间层L来减小编码比特流204的多个空间层L0-i的失真d。

图5是可用于实现本文档中所描述的系统和方法(例如编码器200和/或分配器300)的示例计算设备500的示意图。计算设备500用于表示各种形式的数字计算机,例如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当的计算机。在此所示的组件,它们的连接和关系以及它们的功能仅仅是示例性的,并不是要限制在本文档中描述和/或要求保护的发明的实施方式。

计算设备500包括数据处理硬件510、存储器硬件520、存储设备530、连接到存储器520和高速扩展端口550的高速接口/控制器540、以及连接到低速总线570和存储设备530的低速接口/控制器560。组件510、520、530、540、550和560中的每个组件使用各种总线互连,并且可以安装在公共母板上或是情况以其它方式安装。处理器510可以处理用于在计算设备500内执行的指令,包括存储在存储器520中或存储设备530上的指令,以在外部输入/输出设备(例如耦合到高速接口540的显示器580)上显示图形用户界面(GUI)的图形信息。在其它实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备500,其中每个设备提供部分必要操作(例如作为服务器库、一组刀片服务器、或多处理器系统)。

存储器520在计算设备500内非暂时性地存储信息。存储器520可以是计算机可读介质,易失性存储器单元或非易失性存储器单元。非暂时性存储器520可以是用于临时或永久地存储由计算设备500使用的程序(例如,指令序列)或数据(例如,程序状态信息)的物理设备。非易失性存储器的示例包括(但不限于)闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电子可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,比如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。

存储设备530能够为计算设备500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其它类似的固态存储设备,或设备阵列,包括存储区域网络或其它配置中的设备。在另外的实施方式中,计算机程序产品被有形地体现在信息载体中。所述计算机程序产品包含在执行时执行一个或多个诸如上述方法的指令。信息载体是计算机或机器可读介质,例如存储器520、存储设备530或处理器510上的存储器。

高速控制器540管理计算设备500的带宽密集操作,而低速控制器560管理较低的带宽密集操作。这种职责的分配仅是示例性的。在一些实施方式中,高速控制器540耦合到存储器520,显示器580(例如,通过图形处理器或加速器)以及高速扩展端口550,高速扩展端口550可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器560耦合到存储设备530和低速扩展端口590。低速扩展端口590可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网),低速扩展端口590可以(例如,通过网络适配器)耦合到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪、或网络设备,例如交换机或路由器。

如图所示,计算设备500可以以多种不同的形式来实现。例如,它可以实现为标准服务器500a或者在一组这样的服务器500a中多次实现,实现为为膝上型计算机500b,或者实现为机架服务器系统500c的一部分。

在此描述的系统和技术的各种实施方式可以在数字电子和/或光学电路,集成电路,专门设计的ASIC(专用集成电路),计算机硬件,固件,软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,其耦合以接收和发送数据和指令到存储系统、至少一个输入设备和至少一个输出设备。

这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如本文所用,术语"机器可读介质"和"计算机可读介质"是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语"机器可读信号"是指用于向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器来执行,这些可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程也可以由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或被有效地耦合到一个或多个用于存储数据的大容量存储设备(例如磁盘,磁光盘或光盘)以接收和/或向其传送数据。然而,计算机不必具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如包括半导体存储设备,如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;CD ROM和DVD-ROM盘。所述处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。

为了提供与用户的交互,本发明的一个或多个方面可以在具有显示设备的计算机上实现,所述显示设备例如CRT(阴极射线管)、LCD(液晶显示器)显示器、或者用于向用户显示信息的触摸屏,所述计算机还可以具有键盘和定点设备,例如鼠标或轨迹球,通过所述定点设备用户可以向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以用任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户的客户端设备上的web浏览器发送网页。

本文已经描述了多种实施方式。然而,应当理解的是,在不脱离本发明的精神和范围的情况下可以做出各种修改。因此,其它实施方式也在所附权利要求的范围内。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:编码装置、编码方法、编码程序、解码装置、解码方法和解码程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类