使用统计特性编码脉冲矢量的方法与流程

文档序号:11161948阅读:462来源:国知局
使用统计特性编码脉冲矢量的方法与制造工艺

本申请涉及编码和解码视频信号。更特别地,本申请涉及使用对脉冲矢量的统计分析来编码和解码表示视频帧的部分的脉冲矢量。



背景技术:

近来,已经建立了编码在许多音频和语言压缩系统中呈现的整数化脉冲序列(类似于线性PCM信号)的一般方法。被称为阶乘脉冲编码或FPC的方法克服了与音频信号矢量的组合编码关联的一些技术局限,最值得注意地,与实现涉及二项式(N-choose-K)型组合运算的高阶阶乘表达式关联的高计算复杂度。

要注意,不同于音频,视频分辨率持续增加。另外,不同于音频,针对视频信息的发送和存储二者的带宽要求以与视频显示器的水平和垂直分辨率的乘积成正比的方式增大。在高分辨率视频显示器已变得寻常的情况下,这不仅对于内容供应商和视频服务商(例如,和)而且对于无线服务供应商和装置制造商是重要的。因此,通信行业中的有效视频信号编码的重要性持续升高。

因此,需要一种以更有效的紧凑方式编码和解码视频信号的方法,该方式使用FPC的益处的一些方面,但是进一步适于并且被构造成有效地针对各种视频编解码进行操作并且为视频信号提供更有效的编码。

附图说明

为了更完全地理解,现在参照下面结合附图进行的描述,其中:

图1是涉及使用统计学和概率性质来编码脉冲矢量的方法的实施例的用户设备(UE)的框图和功能流程图;

图2是示出不包括使用概率模型的编码量化脉冲序列的现有技术方法的流程图;

图3是描述编码量化脉冲矢量的编码器实施例的流程过程的流程图;

图4是提供关于编码量化脉冲矢量的脉冲计数的过程的细节的流程图;

图5是提供关于编码包括状态处理的量化脉冲矢量的脉冲计数的过程的额外细节的流程图;

图6提供说明用于确定条件概率的实施例中使用的递归过程的网格流程图;

图7是提供关于编码量化脉冲矢量脉冲位置信息的过程的细节的流程图;

图8是提供量化脉冲矢量非零位置的VPCC编码量值所使用的步骤序列的概述的流程图;

图9是提供使用可变阶乘脉冲编码VFPC来编码平均值矢量以创建表示编码脉冲矢量xk的输出码字的过程的详述的流程图;以及

图10是详述用于重新创建量化脉冲矢量xk的按照实施例的解码码字的处理的流程图。

具体实施方式

现在参照其中在本文中始终使用相同附图标记来指代相同的元件的附图,示出和描述了使用统计学性质编码脉冲矢量的方法的各种视图和实施例,并且描述了其他可能的实施例。这些图不一定按比例绘制,并且在一些情形下,已经在某些地方夸大和/或简化了附图,这只是出于例示目的。本领域的普通技术人员应该基于可能实施例的以下示例理解许多可能的应用和变形。

另外,在详细描述按照本发明的实施例之前,应该观察到,实施例主要具备与数字视频编码和解码相关的方法步骤和设备的组合,以减小在这样的数字视频信号的通信中所需的必要带宽。因此通过在附图中用传统符号在适当位置表示设备组件和方法步骤,设备组件和方法步骤仅示出了有关本发明的实施例的理解的那些具体细节,以便没有用得益于本文中提供的描述和附图的本领域的普通技术人员将容易清楚的细节混淆本公开。

作为阶乘脉冲编码(FPC)的概述,FPC是编码音频序列中开发使用的技术。虽然是针对音频压缩应用开发的,但FPC通常针对符合以下基本约束的任何量化独立同分布(i.i.d)拉普拉斯(Laplacian)随机信号xi进行工作:

其中,x={x0,x1,...,xn-1}是包含整数值的量化信号矢量,n是矢量长度,并且m是矢量x内单位量值“脉冲”的总数,使得所有矢量元素在范围-m≤xi≤m内。已经发现,源自方程1的视频帧中特有脉冲组合的总数N是:

其中,F(n,k)是n个矢量位置的k个非零元素的组合的数量:

D(m,k)是m个单位量值脉冲可落到k个非零矢量元素上的组合的数量,(其中,k≤m):

并且2k是k个非零矢量位置的特有符号组合的数量。在给定组合的总数N并且N个组合中的每个是等概率的情况下,那么编码矢量序列x所需的位的总数M是:

M=log2(N)。

如可观察到的,组合的数量N(和对应的位数M)可变得十分大,即使是对于n和m的最适当值。

存在所谓的金字塔矢量量化(PVQ)的方法,该方法是为了使用方程1中给定的形式约束来编码拉普拉斯随机变量所推荐的方法。最近,在部分基于CELT编解码的开源编解码Opus中出现了在音频压缩中另外使用PVQ。另外,名称为“Daala”的新开源视频编解码代码使用PVQ上的变量。

虽然图1中给定的基础约束对于FPC和PVQ二者是通用的,但重要的是理解FPC和PVQ之间的主要差异在于列举算法和FPC在保持用于编码的最小位数的同时以高得多的m和n值进行操作的能力。如此,PVQ方法通常使用可通常拟合在32位操作数内的m和n的范围。相反地,并且通过以上理解不了的,FPC可扩大至数百或甚至数千位,同时其计算复杂度仅线性增大。发明人已经发现FPC在非常高阶的系统中也是有用的,包括用于编码高分辨率变换域系数,其中,码字域可包含数百(或数千)位。FPC也已经包括在以下音频行业标准中:3GPP2 EVRC-B和EVRC-WB、和ITU—T G.718。在这些标准中,需要低复杂度固定点软件实现作为分布包的部分。因此,FPC优于PVQ的主要技术优点是:

1)可扩大至n和m的大值,以及

2)在这样做的同时保持低计算复杂度的能力。

为了评价视频中的FPC使用,将(方程1至5中给定的)FPC位速率估计器“插”入到现有视频编解码器中。然后,在保持视频质量恒定的同时,测量FPC相对于默认编码方法增加的位速率(对于视频编解码器所使用的默认编码方法)。只对被执行等同FPC操作的默认视频编解码器所使用的位进行计数。通过保持视频质量恒定(即,对于默认编解码操作精确的位),可集中到位速率方面,并不关心尝试测量相对质量差异。然而,保持位精确度并没有造成其他编解码特定问题,以下将对此进行讨论。

参照图1,描绘了移动通信装置、电子平板装置、视频创建/回放装置或具有用户接口(未具体示出)的其他用户设备(UE)1的示例。UE 1具有视频块10,视频块10包括适于编码或解码数字视频信号的硬件和/或软件块。如本领域中熟知的,数字视频信号可被划分成多个帧。通常,帧具有不同的帧类型,利用这些帧来补偿运动并且同时减小将帧区域内的运动表现发送到解码器的位速率。通常,存在本领域中熟知的数字视频信号中的数据的I、B和P编码域或帧。本发明的实施方式针对视频数据的各种类型的I、B和P数据域或数据帧中的每个同样好地工作。

这里,在图1中,在视频块10内的是表示可按照各种实施例并入视频FPC(FPC)的视频编解码器的高阶视图的框图。基本上是视频画面(单个视频帧)的空间域快照的数据帧12被划分成栅格或矩阵形式的多个宏块14。各宏块14的尺寸可以是例如32×32个像素。在各种实施方式中,各宏块可被分割成64×64、32×32、16×16或8×8个像素。宏块14还可被细分成可例如是8×8或4×4个像素的子块16。

子块16中的每个作为数据的阵列提供到变换块18。在一些实施例中,变换块18对子块16中的每个执行离散余弦变换(DCT)19,子块16将各子块的XY坐标系转换成空间-频率域。DCT 19块输出变换系数。然后,在量化块20中量化变换系数。

在其他实施例中,可对子块16中的每个执行不同变换。例如,可使用Walsh-Hadamard变换(WHT)来替代块19中的DCT。当使用WHT块19时,变换块19所生成的变换系数已经被量化,因此不需要量化块20并且可绕过量化块20,如虚线21所示出的。在其他实施例中,当使用子块16的无损编码时,量化步骤对变换块19中生成的变换系数的影响极小或没有影响,而不管是否使用DCT。

在变换块18之后,在一些实施例中各,从变换块18输出的量化系数的4×4或8×8块被从二维矩阵转换成量化系数的顺序串。在各种实施例中,这通过按例如Z字形图案扫描矩阵来执行(如本领域中也已知的),以将2D矩阵转变为量化系数的顺序串,该顺序串也可被称为量化脉冲矢量。随后,可将量化系数的顺序串提供到环路滤波器块24,环路滤波器块24可由于取决于图片信息(例如,帧数据I、B或P帧数据的类型)的复杂度和数字视频帧中采集的运动量和类型的变化位速率而缓冲量化系数的顺序串,还有其他。

环路滤波器24的输出提供量化脉冲矢量x,量化脉冲矢量x只包含视频FPC编码器26的实施例需要的整数值的量值分量。(量化脉冲矢量x在本文中也可被称为脉冲矢量)在一些实施例中,脉冲矢量x还可包含指示脉冲矢量的长度n的信息。视频FPC编码器26接收脉冲矢量x和矢量长度n。应该注意,脉冲矢量还可包括或附接有与帧或整体视频数据关联的元数据25。编码器26可被构造成针对每个脉冲矢量x具有预定数量的单位量值脉冲的数量m(如在各种视频应用中一样),或者能够从脉冲矢量x信号本身计算数量单位量值脉冲m。然而,相反地,在解码器侧,如果m不固定,则要么是通过隐式编码要么是间接通过能够从其推导出位数m的编码块能量,必须将它作为边信息传送。一旦可得到位数,就能够从其确定量值脉冲的数量m。

在各种实施例中,视频FPC编码器26将统计学编码与矢量量化组合,以提供需要比现有视频编码和解码方法小的数据和带宽的编码视频。随后,视频FPC编码器26的编码视频输出能够被存储在存储器或数据存储装置2中,或者经由天线5经由收发器4进行无线发送。UE 1内的一个或更多个处理器6经由存储在存储器2中的指令来控制数字视频数据的处理。

通过实验和算术分析,确定使用无损编码和Walsh-Hadamard变换(WHT)来生成从WHT块19输出的系数的有效构造能够被用于与编码全体矢量中的脉冲矢量的非零位置的数量相关联的统计学模型。如此,实施例使用FPC的修改版本,该版本在本文中被称为用于视频的视频FPC,以新的方式利用与视频编码宏块和/或子块相关联的概率。实施例以新的方式使用变换和量化的宏块和/或子块(即,脉冲矢量),使得可按非均匀方式使用视频FPC,在该非均匀方式中,概率不均匀分布于不同的数据帧,如以下更详细说明的。

经发明人确定,另外有改变的FPC能够被用于以需要比之前所使用的其他视频编码和解码技术少的带宽的方式来编码和解码视频数据。

图2是编码单个脉冲矢量x的现有技术方法的流程图。该现有技术方法使用被称为阶乘脉冲编码(FPC)的编码技术。在用于音频编码的美国专利8,149,144中一定程度地讨论了FPC。在这种方法中,在步骤30中接收单个量化脉冲矢量x。在步骤32中,计算并且编码非零位置np的数量。由于在框40中单位量值脉冲的数量是固定的或者是该现有技术方法中已知的,因此不必计算该信息。在步骤34中,脉冲矢量内的各非零脉冲的位置被编码为位置矢量π。在步骤36中,脉冲矢量内的各非零脉冲的量值被编码为量值矢量μ。最终,在步骤38中,编码脉冲矢量内的各非零脉冲的符号。然后,在步骤42中,从步骤32至40中的每个输出并且被组合为表示原始量化脉冲矢量x的编码参数的值/矢量随后被作为编码信号(即,编码位流)发送或存储。重要的是,要注意,如果FPC用于视频编码,则FPC没有对量化脉冲矢量xk的组执行统计分析,其中,k是1和表示一个视频帧的量化脉冲矢量子块的数量之间的全部的数。步骤32至38中的每个的结果实质上是与用于计算它们的脉冲矢量直接相关的编码数量。例如,在步骤32中,量化脉冲矢量内的非零脉冲的数量可以是在0和宏块中的像素最大数量之间的正整数,在这个示例中,在4×4子块中存在16个可能的位置。另外,例如,位置矢量π可指示例如量化脉冲数量(具有位置0至15)的位置2、5、6、7和8是非零值。虽然编码量化脉冲矢量的该现有技术方法可节省一定数据空间并且能够有针对音频数据的较高数据速率,但现有方法受到限制并且如以下将讨论的被改进,使得它能够被用于视频信息的可变长度编码。

执行另外的搜索,以使用VP9视频编解码器中的新VFPC速率估计来研究示例实施例。VP9是Google所使用的视频编解码标准,但要理解,各种视频编解码方法和系统可用于本发明的实施例。发现实施例减小了重新参见视频子块、宏块和最终视频帧所必需或需要的视频数据的带宽或位速率。因此,实施例使发送和接收视频信号所必须的带宽或位速率减小,而UE1或其他显示装置上显示的解码后重新创建的视频图像没有劣化。

仔细考虑包含在WHT或DCT变换块18的输出量化信号矢量或脉冲矢量x中的信息的类型。可以是变换块18的输出的量化后的量化系数的顺序串是基本上在频域中编码视频信号的一系列脉冲或脉冲矢量。这一系列脉冲或脉冲矢量中的各脉冲样本具有整数量值和符号(+/-)。在各脉冲矢量内还存在多个非零脉冲。也就是说,如相对于方程(1)讨论的,变换块18的量化输出x={x0,x1,K,xn-1}是包含整数值的量化信号矢量,n是矢量长度,m是矢量x内的单位量值“脉冲”的总数,使得所有矢量元素在–m≤xi≤m的范围内。

在例如对VP9视频编解码器中的FPC位速率估计的积分进行研究中,其中使用VP9视频编解码器的无损模式并且使用Walsh-Hadamard变换(WHT)来编码被扫描的4×4个像素块以形成一组16个元素脉冲矢量。使用各种FPC变量来编码被扫描的WHT系数,以下在本文中讨论FPC变量的一个构造实施例。

对于VP9,发明人发现,在所得的脉冲矢量中存在统计偏差。另外,在通过其他视频编解码器创建的脉冲矢量中发现统计偏差。预料到,在诸如Daala、VP8、Indeo、Windows Media Video(WMV)、QuickTime H264以及其他视频编解码器的其他视频编解码输出中也存在统计偏差。因此,也可使用表明在本文中用于VP9的相同VFPC方法中的一些并且这些VFPC方法将应用于其他类型的视频编解码器。要注意,“单位量值脉冲的数量”不可重新用于VP9,因为例如它可在如同Daala编解码器的其他视频编解码器中进行。因此,当使用诸如VP9的视频编解码器时,作为矢量x内的单位量值脉冲总数的参数m应该被显式地编码在矢量用或与矢量显式地编码在一起。在使用不同编码配置进行数次迭代实验之后,发现按照实施例的非常好的视频编码配置包括数量1和以下中的至少一个或更多个:

1.使用范围编码来编码非零变换元素的数量;

2.使用条件(状态驱动)逐位算术编码来编码单位量值脉冲的总数;

3.使用自适应性算术编码来编码变换系数位置的位所;

4.使用基于概率的组合编码的方法来编码变换系数量值;以及

5.使用逐位算术编码来编码对应的符号信息。

发现通过使用以上的视频FPC编码配置,其包括在编码过程中使用统计分析,优于默认VP9方法(对于无损模式)的大约3.5%至大约4.0%的编码增益。换句话讲,通过使用包括需要少大约3.5%至4.0%的数据来编码视频信号的视频FPC块29的编码视频输出27中的包括数量1和编码元素2至5结果中的一个或更多个的编码配置作为默认VP9编码方法,仍然在解码时保持相同的视频图像质量。为了容易比较编码数据的长度并且确定编码增益,禁用编码器中的速率-失真(R-D)优化功能。这是重要的,因为R-D优化匹配V9中的默认量化方法。如果使用不同的编码方法,则在R-D优化和实际编码之间存在固有的不匹配,并且压缩性能将变差。要注意,为了建立更合理的比较,将还使用针对FPC方法优化的R-D功能,但这超出了本讨论的范围。还应该理解,实施例可正确操作,不管是使用还是禁用编码器中的R-D优化功能,并且只针对比较目的来启用R-D功能。

现在参照图3,流程图50表现为描述示例编码方法,这些编码方法利用全体脉冲矢量的统计模型(即,概率模型)来更有效地编码全体脉冲矢量。在一些实施例中,使用针对给定脉冲矢量的统计模型和非零脉冲位置的数量来编码描述给定脉冲矢量的非零脉冲的至少一个脉冲参数。通过诸如图1中的编码器26的编码器来执行这些编码方法。

再参照图3,接下来将描述一种这样的示例编码方法。在步骤52中,通过编码器26从变换块18或可在其中生成或存储这些脉冲矢量(如果之前生成了)的其他块接收全体脉冲矢量的脉冲矢量xk。在步骤54中,计算脉冲矢量xk中的非零脉冲位置的数量np。在步骤56中,计算脉冲矢量xk中的单位量值脉冲的数量mk(虽然在一个实施例中在以下被描述为,可计算相关数量m’k)。单位量值脉冲的数量mk还可被视为脉冲矢量xk的非零脉冲位置的量值之和。在步骤58中,计算位置矢量πk,位置矢量πk包括指示脉冲矢量xk的各非零脉冲位置的位所数量的值的序列。在步骤60中,计算量值矢量μk,量值矢量μk包括脉冲矢量xk中的各非零脉冲位置的量值信息。示例量值矢量μk包括指示脉冲矢量xk的各非零脉冲位置的绝对量值的值的序列,并且省略了任何零值位置。最后,在步骤62中,计算脉冲矢量xk的各非零位置的符号信息(例如,代数符号)并且生成对应的符号矢量sk。这些参数np、mk、位置矢量πk、量值矢量μk和符号矢量sk中的每个可被视为描述全体脉冲矢量的相应脉冲矢量xk内的非零脉冲位置的相应脉冲参数。

针对全体N个脉冲数量的每个脉冲矢量xk,重复以上步骤52、54、56、58、60、62。此全体N个脉冲矢量可表示正在评价的整个视频帧(即,对应于视频帧的子块的各脉冲矢量xk)。在步骤64中,针对全体N个脉冲矢量的每个相应脉冲矢量xk,累加步骤54至62中生成的相应脉冲参数中的每个。在步骤66中,针对全体所有N个脉冲矢量累加的脉冲参数,计算66个概率模型。以下,更详细地描述这些概率模型的示例。在步骤68中,针对每个脉冲矢量xk的相应脉冲参数被编码成相应矢量码字组的对应码字。基于针对全体的概率模型并且还基于相应脉冲矢量xk中的非零位置的相应数量来编码针对每个相应脉冲矢量xk的脉冲参数中的至少一个。在一些示例中,基于针对全体脉冲矢量的概率模型来编码相应脉冲参数np。在一些示例中,基于针对全体的概率模型并且还基于相应脉冲矢量xk中的非零位置的相应数量来编码相应参数mk、位置矢量πk、量值矢量μk、和符号矢量sk中的一个、或多于一个、或全部。以下,更详细地描述编码这些不同脉冲参数中的每个的示例方法。

在步骤72中,发送或存储还可被视为编码位流的、针对全体中的每个相应脉冲矢量xk的相应矢量码字组(即,针对非零位置数量、单位量值脉冲数量、位置矢量、量值矢量、和符号位的统计编码脉冲参数)。可随后通过解码器解码此编码位流,以重构全体脉冲矢量(例如,作为解码编码位流所表示的视频信号的部分)。返回参照图1,此位流可被存储在内存存储器2中,并且可使用收发器4和天线5进行发送。还料想到其他存储块和发送块。

由于解码编码脉冲参数需要用于编码这些脉冲参数的概率模型的知识,因此在步骤68中还将针对每个全体脉冲矢量的概率模型编码成针对该全体的统计模型码字组(即,编码概率模型)的一个或更多个对应码字。在步骤70中,发送或存储该统计模型码字组,供解码器后续用于重构全体脉冲矢量中的每个脉冲矢量。应该注意,针对全体中的每个相应脉冲矢量(例如,视频子块)生成,然后发送或存储相应矢量码字组(即,针对非零位置数量、单位量值脉冲数量、位置矢量、量值矢量、和符号位的统计编码脉冲参数),但是针对整个全体生成统计模型码字组(即,编码概率模型),并且只需要每个全体(例如,视频帧)发送或存储一次。由于每个视频帧通常包括大量子块,并且由于编码概率模型相比于编码脉冲参数相对不频繁地发送,因此用于编码概率模型的特定方法对编码给定视频帧所需的位的总数没有显著影响,并且这种编码不需要要求大幅压缩。

在一个示例实施例中,用于编码全体脉冲矢量的方法包括接收全体脉冲矢量,并且针对全体脉冲矢量中的每个脉冲矢量,确定描述相应脉冲矢量内的非零脉冲位置的相应多个脉冲参数。这相应多个脉冲参数中的一个对应于相应脉冲矢量内的多个非零脉冲位置。示例方法还包括针对全体脉冲矢量生成统计参数组,并且编码这组统计参数来生成与全体矢量对应的统计模型码字组。对于全体脉冲矢量中的每个相应脉冲矢量,示例方法还包括编码与相应脉冲矢量内的非零脉冲位置的数量对应的脉冲参数,以生成相应矢量码字组中的第一码字;以及基于相应脉冲矢量内的非零脉冲位置的数量和针对全体的统计参数组,编码描述相应脉冲矢量内的非零脉冲位置的剩余多个脉冲参数中的至少一个,以生成相应矢量码字组中的至少一个对应码字。

在一个示例实施例中,用于编码全体脉冲矢量的系统包括:第一缓冲器,例如在编码器块中,能进行操作以接收全体脉冲矢量;以及处理器,如图1中描绘的。处理器能进行操作,以针对全体脉冲矢量中的每个相应脉冲矢量,确定描述相应脉冲矢量内的非零脉冲位置的相应多个脉冲参数。相应多个脉冲参数中的一个对应于相应脉冲矢量内的非零脉冲位置的数量。处理器能进一步进行操作,以生成针对全体脉冲矢量的统计参数组,并且编码这组统计参数以生成与全体矢量对应的统计模型码字组。处理器能针对全体脉冲矢量中的每个脉冲矢量进一步进行操作,编码与相应脉冲矢量内的非零脉冲位置的数量对应的脉冲参数,以生成相应矢量码字组中的第一码字,并且基于相应脉冲矢量内的非零脉冲位置的数量和针对全体的统计参数组,编码描述相应脉冲矢量内的非零脉冲位置的剩余多个脉冲参数中的至少一个,以生成相应矢量码字组中的至少一个对应码字。

解码此编码位流在计算上并不太困难,因为不必生成概率模型。相反地,解码器从编码位流接收针对每个全体的编码概率模型,然后解码编码概率模型,以针对全体(例如,视频帧)生成概率模型。解码器还从编码位流接收各组编码脉冲参数,然后使用概率模型来解码针对全体中的每个相应脉冲矢量的对应脉冲参数,并且使用对应的脉冲参数来确定全体中的每个相应脉冲矢量内的非零脉冲位置中的每个。

在一个示例实施例中,用于解码编码位流来重构全体脉冲矢量的方法包括从编码位流接收统计模型码字组,并且解码统计模型码字组来确定与全体脉冲矢量对应的统计参数组。该示例方法还包括从编码位流接收与全体中的相应脉冲矢量对应的相应矢量码字组。对于每个相应矢量码字组,该示例方法还包括解码相应矢量码字组中的第一码字,以确定与对应的相应脉冲矢量内的非零脉冲位置的数量对应的第一脉冲参数;使用针对全体的统计参数组和对应的相应脉冲矢量内的非零脉冲位置的数量,解码相应矢量码字组中的剩余多个码字中的至少一个,以确定描述在对应的相应脉冲矢量内的非零脉冲位置的剩余多个脉冲参数中的至少一个;以及使用相应多个脉冲参数来确定全体中的对应的相应脉冲矢量内的非零脉冲位置中的每个。

在一个示例实施例中,用于解码编码位流以重构全体脉冲矢量的系统包括第一缓冲器和处理器。第一缓冲器能进行操作以从编码位流接收统计模型码字组和与全体中的相应脉冲矢量对应的相应矢量码字组。处理器能进行操作,解码统计模型码字组,以确定与全体脉冲矢量对应的统计参数组。处理器能针对每个相应矢量码字组进一步进行操作,解码相应矢量码字组中的第一个码字,以确定与对应的相应脉冲矢量内的非零脉冲位置的数量对应的第一脉冲参数;使用针对全体的统计参数组和对应的相应脉冲矢量内的非零位置的数量来解码相应矢量码字组中的剩余多个码字中的至少一个,以确定描述对应相应脉冲矢量内的非零脉冲位置的剩余多个脉冲参数中的至少一个;以及使用相应多个脉冲参数来确定全体中的对应的相应脉冲矢量内的非零脉冲位置中的每个。

现在,参照用于编码视频信号的脉冲矢量xk的单独的五个步骤中的每个,实施例的编码过程的该部分中的第一个步骤是针对每个矢量xk编码非零元素的数量np(k)。为了针对每个矢量xk编码非零元素的数量np(k),在步骤54中执行以下,其中:

对于这个表达式,n是脉冲矢量xk的长度,对于4×4块大小,是16。为了对np(k)进行有效距离信息编码(range code),计算出现的特定非零元素np(k)的概率P,该计算可被表达为:

其中,N是(例如,对应于帧中块的数量)正在评价的矢量全体中的矢量(块)的数量,np(k)是第k个矢量(块)中的非零位置的数量,并且j是脉冲矢量xk的位索引。根据这些表达式,用于编码np(k)的每个块Mp的位数可被估计为:

在步骤68中,使用该信息来使用距离信息编码来显式编码np(k)。

现在,将讨论另一个步骤,即,编码脉冲矢量xk56中的每个中包含的单位量值脉冲。用于编码每个矢量xk中包含的单位量值脉冲的数量的这种方法使用条件逐位算术编码。类似于该实施例中的其他步骤,第一,长度n的矢量xk(其中,xk的所有值是带符号的整数)中的单位量值脉冲mk的数量被计算为:

接下来,计算被设置成1的mk的每个位的逐位概率。在广义的逐位(换句话讲,二进制)算术编码(BAC)方案中,以下表达式产生逐位概率:

其中,Nb是待编码的最大位数,j是位索引,mk是针对第k个矢量(块)的单位量值脉冲的数量,并且N是例如待编码在帧或宏块中的矢量(块)的总数。另外,“&”符号表示逐位与(AND)运算符。对于以上表达式,Pm(j)表示值mk的第j个位位置被设置成1的概率。可使用该概率来无损编码用于信号压缩中的mk个值的阵列。

然而,由于已经知道在xk中包含的占据位置数量np(k)是多少(在以上讨论的步骤54中),那么可利用这两个数量之间的冗余量。例如,np(k)能够决不大于mk,因为如果在占据位置中的每个处只有一个脉冲,则mk=np(k)。所以,如果mk一直等于np(k)并且np(k)是已知的,则不需要针对这种情况编码mk,因为mk=np(k)的概率是100%。所以,为了利用该性质,则初始地应该编码“脉冲数量偏差”m′k=mk-np(k),使得消除了mk和np(k)之间的相关性中的一些。

第二,利用了m′k和np(k)之间存在的更直接的相关性。也就是说,当占据较少位置(即,np(k)相对于n小)时,存在m′k将相对小的概率对应地增大,并且相反地,当占据更多位置时,存在m′k将相对大的概率增大。可通过针对np(k)的每个应值生成二进制算术编码(BAC)概率表来利用该关系,使得:

其中,c1(np(k),j)是脉冲数量m′k参数的第j位被设置(针对给定np(k))的次数,np(k)是xk中的非零位置的数量,并且c2(np(k))是xk包含np(k)个非零位置的实例的数量。该表达式限定n×Nb大小矩阵,该矩阵给出针对给定预定数量的占据位置np(k)而设置的m′k(i)的特定位的概率。为了清晰起见,在图4中用流程图形式示出以上过程。

在图4中,框64能进行操作,以针对值从0变至N的k值累加给定帧中的所有脉冲矢量参数。k的值在框410中以无效值开始,然后前进至框412,接收第k个脉冲矢量xk以计算非零位置,并且然后前进到框414,计算非零位置,并且前进到框416,针对该特定矢量来计算单位量值脉冲的数量。一旦已经针对特定脉冲矢量计算出非零位置和单位量值脉冲的数量,就针对N的值测试k的值,以确定是否已经完成该帧。如果否,则过程循环到框412。如果确实如此,则过程从框64流向下一个过程以生成概率模型,这是图3中的框66。

在过程框66中,利用值从0变至N的k值计算整个帧内m‘k的逐位概率。对于给定脉冲矢量xk,提供了表示针对给定脉冲矢量xk的单位量值脉冲数量的计算值m‘k。在框418中,在第j位是“0”时初始化该过程,然后过程前进至测试m‘k中的每个位。判定框420确定是否设置当前测试位。如果是,则这指示非零位并且过程流向框422,计算值c1(np(k),j),随后前进至判定框424,确定j的值是否小于Nb的值。如果否,则过程流回到判定框420的输入。如果没有设置当前测试位,则过程将绕过框422。这样本质上对m‘k中“设置”的位数进行计数。在确定特定矢量中设置的位数之后,程序随后流向框426,以针对xk包含np(k)个非零位置的实例的数量计算c2(np(k)),然后流向框428,以针对帧中的所有脉冲矢量xk执行该测试。一旦在整个帧内执行了该过程,在这就提供了m‘k的逐位概率,并且过程流向框432,以按照以上的等式1.6构建表,然后前进至框432,其中,将表发送或存储到框434中以使用针对所有k,j的概率表来编码m‘k的位。然后将m‘k的编码位与其他统计编码位一起发送或存储,如框436所指示的。

第三,观察到特定位m′k之间的相关性很大程度上取决于m′k内的最高有效位的位置。也就是说,如果编码位Nb的数量总体上相比于待编码的脉冲偏移量m′k大(即,),则相关性非常高,因为m′k的前几(最高有效)位的概率往往会是0。相反地,随着m′k值相对于编码位的数量变大,即,则位概率在最低有效位中变得更随机。为了利用该性质,引入状态机,该状态机允许进行最高有效位(为零的概率更高)和最低有效位(具有更大随机概率)之间进行区分。通过针对不同状态分别计算概率,大幅提高了整体性能。

图5提供了在实施例中可如何采用状态机的流程图的一个示例。这里,脉冲矢量被累加并且如以上讨论并且在图4中示出地执行m′k的逐位概率。在图5中,提供两种状态,表示没有设置位的状态0和指示出现设置第一位的状态1。从MSB到LSB地测试位,从而利用以下事实:m‘k的大值将具有在数字字的上部部分中没有设置的大量位。因此,在框520中初始地将状态设置成状态0并且在该状态下设置成m‘k的头j位。此后,过程流向第一判定框522,以确定状态是否仍然是状态0。该状态将是状态0,直到设置了所测试的头j位。只要还未设置该位,程序就将沿着从框522到框524的路径流动,以确定是否设置了该测试位。这是状态从状态0变成状态1的点。只要没有设置测试位,过程就将保持在状态0并且过程将仅计算c2(np(k)),如框526中指出的。然而,如果设置了测试位,则这指示状态操作必须变成状态1。这将导致过程从框524流向框528,以便计算c1(np(k),j)的值,随后将状态设置成1,然后流向框526。过程将流向判定框532并且有可能循环回到判定框522。如果状态已经变成状态1,则程序将针对与图4的过程类似的过程,从判定框522流向另一个判定框532。这将流向框534并且进行以计算c1(np(k),j),然后流到框536,如果设置了位,则计算c2(np(k))。如果第j位没有被设置成状态1;过程将绕过框534。随后,过程流向判定框530并且继续进行,直到已经针对j测试了所有位。然后,程序流向判定框540,以循环回到框524的输入,直到操纵了帧中的所有另外的脉冲矢量,然后前进至执行与相对于框430-436所阐述的相同的功能。

从图5,注意到,没有像针对状态0那样针对状态1示出完整的概率表。对于状态0,表P(np(k),j)遍及范围1≤np(k)≤n和0≤j<Nb。对于状态1,因为在所有状态1的位上的固有随机性,只需要另外的Nb-1个存储器位置。因此,通过仅仅利用P(np(k),j)概率矩阵的第0行来访问针对状态1的另外概率,P(np(k),j)概率矩阵此时具有尺寸0≤np(k)≤n和0≤j<Nb,其中,状态1概率被存储在P(0,j)元素中。

表1示出相比于传统标量和二进制算术编码(使用已知概率模型)的所描述方法的相对性能增益。

表1:无损压缩4×4个WHT块(360个帧,原始内容分辨率352×288)中的“m”参数的编码方法的比较

编码位置信息的步骤(图3的步骤58)涉及使用二进制算法编码来传达量化矢量xk的元素是否包含非零信息。量化矢量内的给定元素的整体概率包括非零的第i个位置元素的条件概率,前提是j个剩余非零元素位于i至n–1的范围。也就是说,由于预先已知在长度n的矢量xk中存在np个非零位置,那么还已知np-j个非零位置是否已经在头i个可能位置,那么在剩余的n-i个位置存在剩下待编码的j个非零位置。这可显著改变量化脉冲矢量xk的整体概率,尤其是如果概率分布是不均匀的。因此,需要以逐个位置为基础适用进行二进制算术编码所需的关联概率。以下的描述概述了用于以计算上非常有效的方式来执行该任务的低复杂度方法。

参照图7,提供了流程图,该流程图提供了用于编码量化脉冲矢量脉冲位置信息的示例过程的细节。在步骤64中,累加每个k矢量xk的参数,如在图4中已经讨论的。然后,在步骤72、74和76中,针对每个矢量xk,基于以下等式确定正被非零值占据的输入矢量xk的第i个位置或元素的概率:

其中,N是概率全体(例如,帧或帧的一部分)中的矢量总数,n是矢量长度。接下来,如果落到矢量xk的剩余n-i个位置的j个非零值的概率被设置成P(T(n-i,j)),则整体概率可被表示为P(xk(i)|T(n-i,j))。同样,在给定矢量xk的剩余n-i个位置上的j个非零值元素的情况下,元素xk(i)的概率是非零。在一些实施例中,由编码器经由概率计算来确定正被非零值占据的输入矢量xk的第i个元素的概率,而在其他实施例中,从与编码器块关联的功能块接收这些概率。

为了计算条件概率,基于之前的编码元素,检查其他编码元素的概率组合,并且聚合其关联概率,以调节待编码的剩余量化矢量元素的概率。在此,将概率矩阵P(T)定义为

其中,矩阵元素P(T(i,j))表示使用在矢量xk的剩余i个位置具有j个非零元素的trellis矩阵得到的概率。另外,可将矩阵元素定义为:

P(T(0,0))=1, (1.9a)

P(T(1,0))=1-P(xk(n-1)), (1.9b)

P(T(1,1))=P(xk(n-1)), (1.9c)

P(T(2,0))=(1-P(xk(n-1)))·(1-P(xk(n-2))), (1.9d)

P(T(2,1))=P(xk(n-1))·(1-P(xk(n-2)))+(1-P(xk(n-1)))·P(xk(n-2)), (1.9e)

P(T(2,2))=P(xk(n-1))·P(xk(n-2)), (1.9f)

等等。显然,可如下地形成递归关系:

P(T(2,0))=(1-P(xk(n-2)))·P(T(1,0)), (1.10a)

P(T(2,1))=P(xk(n-2))·P(T(1,0))+(1-P(xk(n-2)))·P(T(1,1)), (1.10b)

P(T(2,2))=P(xk(n-2))·P(T(1,1)), (1.10c)

该关系可被概括为:

为了形象化表现以上给出的递归过程,参见图6中的trellis图。在步骤80和82中,在一些实施例中,可按降序和具有矩阵元素P(T(i,j))的trellis矩阵来分选概率P(xk(i))。在步骤84中,从k=0开始进行二进制算术编码。

在此,确定联合概率:P(xk(i)≠0|T(n-i,j))。通过向这个表达式应用贝叶斯法则(Bayes’Theorem),得到:

其中,隐含着P(xk(i)≠0)=P(xk(i))。从这个表达式,使用图6的trellis图来推导P(T(n-i,j)|xk(i)≠0)=P(T(n-i-1,j-1)),然后将其代入前一等式中,得到:

据此,可理解,比率P(T(n-i-1,j-1))/P(T(n-i,j))只取决于恒定索引偏移,即,n-i→n-i-1和j→j-1,因此,可通过预先计算比率,节省了大量计算。

由此将每个矢量概率计算减少为:

P(xk(i)≠0|T(n-i,j))=T′(n-i,j)·P(xk(i)) (1.15a)

以及

P(xk(i)=0|T(n-i,j))=1-T′(n-i,j)·P(xk(i)) (1.15b)

然后,通过图7中的步骤84和86之间的流程回路中示出的二进制算术编码过程来使用这些简单直截了当的方程1.15a和1.15b。

要注意,图7的流程图示出表示概率P(xk(i))80的分选的虚线框。无论是否分选了概率,编码非零位置所需的位数都将不变。然而,分选概率有两个优点:a)trellis图更短,即,可从trellis图中去除开始位置P(xk(i))=1和结束位置P(xk(i))=0,以及b)分选增加了图7中示出的第二循环提早终止的机会。

表2:在4×4个WHT块(360个帧,无损压缩,原始内容分辨率352×288)中进行位置编码的方法的比较

出于编码矢量xk(图3,步骤60、64、66和68)的目的,将长度np(k)的量值矢量定义为:

x′≡{xk|>0}, (1.16)

使得是具有长度n的矢量xk的所有非零元素的绝对值。

参照图8,示出描述编码量值矢量xk的简化概述流程图。在步骤90中,全体整数脉冲序列矢量(即,针对整个帧或框的脉冲矢量xk)被设置成具有长度n。在步骤92中,计算全体中的矢量xk的平均值矢量μ={μ012,…μn-1}。然后,在步骤94中,分选平均值矢量μ,使得按平均值矢量μ的降序将矢量xk的分量在例如UE的存储器中重新排列或重新索引。

在步骤96中,针对全体中的每个矢量,确定非零值的数量(np)并且从xk矢量中去除所有零值。然后,保存所得矢量x’。另外,通过从分选的平均矢量μ中去除对应的平均值来修改平均值矢量μ并且将该结果保存为μ’。然后,在步骤98中,使用VPFC基于修改后的平均值矢量μ’来编码去除了0的矢量x’。

为了更深入地理解编码矢量xk的量值分量的示例方法,使用基于概率的组合编码,以下在图9中的流程图中提供并且示出。也就是说,在步骤100中,将长度np(k)的量值矢量定义为:

x′≡{|xk|>0} (1.16)

使得,是具有长度n的矢量xk的所有非零元素的绝对值。然后,在使用新型VFPC方法的实施例中,通过以下给出从编码量值矢量x′而得到的第k个码字:

其中,F(m,j)是图3中给出的组合表达式。然后,通过以下给出(从方程4中的)量值码字的对应长度(单位:位)

L=log2(F(mk-1,np(k)-1) (1.18)

其中,mk和np(k)分别是针对矢量索引k的单位量值脉冲的数量和非零矢量元素的数量,如以上定义和讨论的。

注意的是,针对给定的np(k),码字的长度仅取决于mk,而不取决于x′的各个元素。将平均绝对矢量定义为:

其中,如以上也讨论的,N是每帧的矢量(或被扫描的视频块)的数量,并且n是矢量长度。能够从统计学推导出,如果所有xk(i)都是独立同分布的(i.i.d),则它们相应的预期绝对值是相等的,并且它们取样的平均绝对值μi大致相等。然而,如果对于所有值0≤i<n,平均绝对值μi大有不同,则量值矢量x′(进而,码字(C))的所有可能组合不可能相等。在这种情况下,没有充分利用用于编码C的位,因此这些位不是100%有效的。为了绕开这个问题,组合码字C的长度对于最有可能的矢量而言应该较小,对于不太有可能的数量而言应该较大。以下描述用于实现这个目的的方法。

为了生成其长度取决于量值矢量x′构造的组合码字C,可通过也取决于预期值或平均值μi的组合编码方法来生成码字。在不失一般性的情况下,排列量值矢量,使得μi成降序,即,μ0≥μ1≥...≥μi≥…≥μn-1。如果它们没有已经按降序排列,则可首先分选μi,然后重新排列或重新索引xk(i)分量,使得它们的平均值成降序。此时,非常有可能的是,xk的初始较少分量将具有较高值,即,xk(0)、xk(1)等以及大于过去几个分量的概率较高。为了有利地使用这种性质,使用自适应性组合编码方法来编码量值,以生成可变长度码字。这种方法是新型的并且已经被发明人命名为可变阶乘脉冲编码(VFPC)。

在新型VFPC方法中,得到VPFC的量值码字为:

其中,基于部分编码矢量和取样后的绝对平均值,自适应性地得到aj≤m(被定义为自适应性脉冲计数)和bj(被定义为自适应性偏移计数)。如果aj=m且bj=0,则该表达式等同于方程1.17。因为通常在j=np-1时开始编码并且一直操作至j=1,(随后重新排列右边的项),得到:

所以,现在将描述使用取样后的绝对平均值μi的某个函数来适应aj和bj的过程,使得码字C的平均长度减小。

这里,在步骤101中,这些函数被定义为:

其中,s和t定义了待分析的子矢量的开始分量和结束分量。在以下表达式中,使用这些函数将自适应性脉冲计数aj生成为:

其中,Δ是固定的预定正常数。在以上等式中,μ′j对应于矢量x′的第j个元素的平均绝对值。也就是说,也被确定并且在步骤100中从针对N个脉冲矢量的累加参数输入的矢量μ′包含与矢量xk的非零元素对应的矢量μ的值。在实验中,选择Δ=3。本领域的普通技术人员可选择其他值作为VPFC的各种实施例中的Δ。应该注意,当μ′的所有值相等时,方程1.23中的aj等于m-Δ。然而,为了一些实施例的最佳性能,aj应该是m。在实施例的这个示例情形(当所有平均值相等时)下,优选地选择Δ=0。

可观察到,如果已经分选了绝对平均,即,μ′0≥μ′1≥…≥μ′j,则:

因此,从方程1.23,可看到aj≤m-Δ。该结果是明显的,因为当位置的预期绝对平均值小于平均值时,期望以使单位量值脉冲的总数显得更小的方式来编码量值。

如步骤102中的图9的流程图中示出的,为了适应aj和bj的值,实施例初始化β=0且bj=0。另外,在这个步骤中,代码字C被设置成0并且位索引j被初始化成在第一位的位置。在步骤103中,使用方程1.23计算aj。然后,在步骤104中,将β递增,使得当β处于某些预定值时和/或当在步骤106中β=aj-j+1时,aj和bj的值被修改。当β在某些预定值内时,在步骤107中,此时得到修改后的值a’j为:

可验证a′j≥aj

为了得到修改值b′j,在步骤109中寻找最小值,使得

F(aj-β,j)≥2-s·F(a′j-β,j) (1.26)

这里,设置bj=bj+s,并且在步骤110中aj和bj被它们的修改值取代,在步骤110中过程循环回到步骤104。注意的是,步骤109的方程1.26中的不等条件保证过程处理仍然是特有可编码的,并且选择s的最小值将最小化编码位数的增加最小化。

当在步骤106中β没有预定值时,则在步骤112中,确定是否如果不为真,则过程流回到步骤104,将β递增。如果为真,则生成针对量值x′(j)的组合贡献为:

在步骤116中,使C等于C+Cj。并且,直到j=1,j的值减小并且此时将aj-1和bj-1的值设置成等于步骤118和120中的aj和bj。然后,针对j的所有后续值,仍然使用方程1.25和方程1.26来修改aj和bj的值。当在步骤118中j=1时,从步骤116中得到最终组合码字C作为相应组合贡献Cj之和:

通过以下给出最终码字的长度:

由于b1不是固定的并且取决于编码序列和平均值矢量,因此该方法生成可变长度码字。对应的解码器过程与编码器过程互补。

此时,重要的是理解已经描述了生成可变长度码字的组合编码方法。另外,应该理解,码字长度和码字取决于待编码矢量的平均绝对值。另外,图10提供了示出按照本发明的实施例的VFPC解码步骤的流程图。本领域的普通技术人员在理解图9的工作之后容易理解图10。

当平均值是固定的并且是已知先验的时,可直接使用图9的方法。然而,在许多真实世界应用中,还需要计算并且发送平均值。例如,在视频编码应用中,宏块(矢量xk)的系数xk(i)的平均值对于不同的帧可发生改变或者可根据宏块(亮度或色度)的类型而不同。在这些情形下,为了最佳使用各种实施例,计算平均值并且可在编码视频的每个帧中发送平均值。

在另一个实施例中,计算平均值还利用了以下事实:到VFPC编码器(参见图9)的输入是其分量是非零的并因此可以比仅非零的量化矢量的那些分量更好地限制平均的矢量。因此,将xk(i)定义为矢量xk的第i个分量,并且将ci定义为对于所有矢量x0至xN-1都是非零的第i个分量的计数,即,

其中,Iq是如果q为真则为1否则为0的指标函数,其中,q是xk(i)≠0的值。此时,可将第i个分量的平均值计算为:

可使用方程1.31或方程1.19来计算绝对平均值μi。由此计算出的平均值可被量化(标量量化)并且每个帧发送或存储一次(参见图3,步骤70)。

为了将可变长度FPC(VFPC)方法的实施例的性能与常规现有技术FPC方法进行比较,用于编码表示大小4×4的Walsh-Hadamard变换(WHT)系数的宏块的VFPC方法被一体化到无损模式下操作的VP9编解码器中(参见图1)。

另外,为了将VFPC视频编码实施例与作用于编码量值的独立编码方法进行比较,其分量x(i)≥0的长度n=16的随机矢量x={x0,x1,…,xn-1}是独立的,其绝对平均值是μi=g0·γ(i-1),其中,首先生成γ≤1。注意的是,当γ=1时,所有分量x(i)都具有相同的平均值。VFPC实施例用于编码模拟中的脉冲矢量x的非零分量的量值。在表3中,将VFPC量值编码方法的结果与常规FPC量值编码方法进行比较。

表3:示出对于具有分量平均值是μi=g0·γ(i-1)的编码量值,VFPC与常规FPC所需的平均位数比较

可看到,γ的值越小,绝对平均值μi越偏斜(远离相等),因此当与常规FPC比较时,VFPC的百分比代码增益越大(表3中,对于γ=0.70,9%)。然而,当γ~1(即,0.99)时,那么使用VFPC导致略有损失。这是因为,在这个实施例中,平均值几乎相等,因此常规FPC将以近乎最佳水平执行,从而使VPFC难以超过它。对于γ=0.99而言没有很好执行的VPFC的另一个原因是因为在方程(1.23)中Δ被设置为Δ=3,这并没有调整当分布相同时进行编码的实施例。

为了编码符号信息(参见图3,步骤62、64、66和68),可使用用于二进制算术编码的现有方法。

本发明的这些实施例提供了在被变换、量化和映射成一维矢量之后在视频编码中的预测残余数据的块的无损编码(熵编码)。实施例提供了UE,UE经由硬件和/或程序指令使用如下编码方法,该编码方法将源自帧的视频块数据分离成以下信息单元,然后使用每个帧更新的统计模型有效地编码这些信息单元。这些信息单元包括:a)确定每块的量化脉冲矢量的非零位置的数量,其中,块是帧的宏块或微块;b)对量化脉冲矢量的非零位置m的量值(绝对值)求和;c)确定量化脉冲矢量内的哪些位置具有非零量值;d)确定量化脉冲矢量中的每个非零位置的绝对值量值;以及e)确定量化脉冲矢量中的非零位置处的每个量值的符号。

然后,累加帧中的所有脉冲矢量N的参数。接下来,针对帧和帧内的每个信息块单元,生成概率模型。使用这些概率模型编码视频数据的每个块的信息单元(a至e)以生成编码视频数据。在各种实施例中,根据需要将概率模型与编码视频数据的每个块单元一起发送或存储,使得可在解码器处解码编码的视频数据。

概率模型使用逐位算术编码(BAC)来编码这些信息单元,BAC计算当用二进制表现脉冲矢量时,脉冲矢量中的每个非零位的概率被编码成1,以寻找最有效代码长度的模型概率。方法基于非零位置的数量将一组被占据的位置编码到来自脉冲矢量的脉冲量值信息中,然后使用自适应性算术编码来设置统计参数。另外,使用逐位算术来编码每个非零位置。基于脉冲矢量中有多少位置被非零值占据,改变每个帧的统计概率。针对每个帧来更新统计概率。利用阶乘脉冲编码的使用,以基于阶乘计算来生成块中的每个非零位置的量值的代码。针对(n,m)值的集合,生成固定码字道和码字。由于如同音频编码数据,视频编码残余块不是i.i.d,因此每个帧块具有迥异的与平均值关联的统计参数和相对于脉冲矢量的每个非零位置的数量、位所、量值、位置和符号的概率。

虽然理解编码位置信息是熟知的,但本发明的各种新编码器实施例使用算术编码同时进行位置和量值编码。使用判定或“块结束”代码来实现编码最后非零位置。这种新方法使用用于编码位置的算术编码的专门版本,其中,基于有多少之前的编码位置被占据或未被占据,在每个数据帧中改变概率。经由trellis逐帧地预先计算改变后的概率而非使用显式终止代码,trellis可被称为“概率矩阵”,实施例提供了当非零位置的数量被耗尽时完成的过程。这些实施例提供了无损编码视频数据,可按较低的数据速率来发送它们或者使用比之前数字视频编码技术小的存储器空间进行存储。

得益于本公开的本领域技术人员应该理解,使用统计性质编码脉冲矢量的这种方法和系统提供了利用针对全体脉冲矢量的统计模型(即,概率模型)来编码全体脉冲矢量以更有效地编码全体中的每个脉冲矢量的改进方法。在各种实施例中,使用针对给定脉冲矢量的统计模型和非零脉冲位置的数量来编码描述给定脉冲矢量的非零脉冲的至少一个脉冲参数。在一些实施例中,使用距离信息编码来编码非零脉冲位置的数量。可使用条件(状态驱动)逐位算术编码来编码单位量值脉冲的总数。可使用自适应性算术编码来编码非零脉冲位置的位所。另外,可使用基于概率的组合编码来编码非零脉冲位置量值,并且可使用逐位算术编码来编码对应的符号信息。这些实施例方法和系统非常适于编码非独立同分布信号,诸如,编码视频信息。应该理解,本文中的附图和具体实施方式将被视为是例示性的而非限制方式,并不旨在限于所公开的特定形式和示例。相反,在不脱离由随附权利要求书限定的其精神和范围的情况下,包括对于本领域的普通技术人员显然的任何其他修改、改变、重新排列、取代、替代、设计选择和实施例。因此,随附权利要求书旨在被理解为涵盖所有这些其他修改、改变形式、重新排列形式、取代、替代、设计选择和实施例。

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