具体实施方式
本发明涉及一种用于视频编码器和解码器中的量化的方法和设备。
考虑到在基于变换的图像与视频编码中,AC系数在其分布中倾向于主要密集在零周围,所以利用死区量化来试图获得良好的率失真性能。通常在假定系数服从拉普拉斯或高斯(正态)分布的情况下,来执行死区量化方法的设计。不幸的是,在大多数情况下都没有考虑分段分布(关于每个相应的量化区间),这可能导致性能下降。此外,主要是基于客观测量来进行设计,而客观测量可能进一步导致视觉人为产物及大大降低的主观质量。根据本发明的原理,提供了几种可以通过取决于图像特性、量化步长和重构电平来自适应地选择死区参数,从而能提高主观质量并且在许多情况下也提高客观质量的方法。虽然这些方法中的一些方法只需要在编码器内进行考虑,但是其它策略也影响解码器设计,并且要求在编码后的位流中存在附加信息。
本说明书举例说明本发明的原理。因而,应该理解,本领域技术人员将能够设计出虽然在此未明确描述或示出、但是能具体实施本发明原理且被包括在本发明精神和范围内的各种配置。
在此列举的所有例子和条件语言都试图用于教学,以帮助读者理解本发明人所提出的、有助于促进本技术领域发展的本发明的原理和概念,并且应该被认为不限于这些具体列举的例子和条件。
而且,在此列举本发明的原理、方面和实施例及本发明的特定例子的所有语句,都试图包括本发明的结构和功能等效物。另外,这种等效物试图包括当前已知的等效物以及将来开发的等效物,即与结构无关的、执行相同功能的任何被开发元件。
因而,例如本领域技术人员应该理解,在此给出的框图代表具体实施本发明原理的说明性电路的概念图。类似应该理解,任何流程表、流程图、状态转移图、伪码等,都代表实质上可以在计算机可读介质中表示、从而可通过计算机或处理器来执行的各种过程,而不管这种计算机或处理器是否明确示出。
通过利用专用硬件以及能够与适当软件关联地执行软件的硬件,可以提供图中所示的各种元件的功能。当通过处理器来提供这些功能时,可以通过单个专用处理器、通过单个共享处理器、或通过其中一些可以被共享的多个单独处理器,来提供这些功能。而且,术语“处理器”或“控制器”的显式使用不应被认为专门指能够执行软件的硬件,而是可以隐含地包括但不限于数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器。
也可以包括其它常规和/或定制的硬件。类似地,图中所示的任何开关都只是概念性的。如从上下文更具体地理解的,可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互、乃至手动操作的可以由实施者选择的特定技术来实现它们的功能。
在本发明权利要求中,被表示为用于执行指定功能的装置的任何元件都试图包括执行该功能的任何方式,例如包括:a)执行该功能的电路元件的组合;或b)任何形式的软件,因而包括与用于执行该软件的适当电路相结合以执行该功能的固件、微码等。如这些权利要求所定义的本发明在于,以权利要求所要求的方式来组合并集合由所列举的各种装置所提供的功能性。因而,认为能够提供这些功能性的任何装置都等效于在此所示出的那些装置。
根据本发明的原理,描述了可用于基于变换的图像或视频编码器中的,用于自动计算量化参数如死区、每个电平的量化区及量化加权矩阵的设备和方法的各种实施例。而且,公开了一组新的量化偏移矩阵,这组新的量化偏移矩阵可以被发送给解码器,并且在量化过程中提供附加灵活性、并能够提高主观和/或客观质量。
在关于该主题的大多数研究中,都要求在基于变换的编解码器中AC系数分布倾向于拉普拉斯分布。在H.264编解码器中也遵循这种假定,这尤其倾向于影响量化过程的设计。尤其是,通过考虑固定舍入因子f,来如下执行H.264参考软件内对系数W的死区处理:
其中Z是映射后的量化电平,Δ是量化步长。通过减小f,重构值0周围的死区面积实质上增大了,而对于其它所有电平,量化区按照f而同样地偏移。在图2A和2B中可以更好地看到该过程。对于帧内片,选择f等于Δ/3,而对于帧间片,选择f等于Δ/6,以试图近似这种拉普拉斯分布。转到图2A和2B,一般分别用附图标记200和250来表示,对于步长为Δ、且f=Δ/2和f=Δ/4的均匀量化器,输入信号W与逆量化(重构)的输出信号W’之间的关系。
然而,可以观察到(例如见图4至16B)该要求不一定均适用,而是与内容和系数高度相关。在图4中,一般用附图标记400来表示对于高纹理SD序列的帧内变换(4×4)系数分布。在图5中,一般用附图标记500来表示对于该序列的电平1(QP 30)周围的帧内系数分布。图6示出了一般用附图标记600来表示的以上电平1周围的系数分布的误差贡献。然而,图7示出了一般用附图标记700来表示的,对该序列使用更小量化器(QP 24)的电平1周围的帧内系数分布。类似于图6,图8示出了一般用附图标记800来表示的以上电平1周围的系数分布的误差贡献。在图9中,一般用附图标记900来表示对于该高纹理SD序列的帧间变换(4×4)系数分布。对于该分布,图10示出了一般用附图标记1000来表示的电平1(QP 24)周围的分布。转到图11,一般用附图标记1100来表示以上电平1周围的系数分布的误差贡献。与之相比,现在转到图12,一般用附图标记1200来表示对于低纹理QCIF(四分之一通用中间格式)序列的帧内变换(4×4)系数分布。在图13中,一般用附图标记1300来表示对于该序列的电平1(QP 24)周围的帧内系数分布。图14示出了一般用附图标记1400来表示的以上电平1周围的系数分布的误差贡献。在图15中,一般用附图标记1500来表示对于该低纹理QCIF序列的帧间变换(4×4)系数分布。对于该分布,图16A示出了一般用附图标记1600来表示的电平1(QP 24)周围的分布。转到图16B,一般用附图标记1650来表示以上电平1周围的系数分布的误差贡献。注意,在这些图中,也考虑了对每个变换系数的适当缩放。可以观察到,对于低分辨率和细节的内容,如图12至16B所示的QCIF序列,虽然系数的分布可能更接近于拉普拉斯分布,但是系数间存在大的差异。如果采用拉普拉斯分布,则较高阶系数倾向于比较低阶系数衰减得更快(更小的衰减率λ或更大的方差)。这立即暗示,需要按照系数的阶数来不同地处理系数,而不是在整个频率范围内都采取相似的分布模型。对于高分辨率内容尤其是也可包含噪声(例如胶片颗粒噪声)的胶片或高度有纹理的内容,这变得更明显,并且能够大大影响系数分布(图4至11)。这种噪声倾向于将它自己表示为样本中的低到中等方差,该方差本身影响着分布、以致更接近于高斯分布。显然,如果使用如H.264参考软件所使用的固定舍入参数f,则即使按照频率来修改这种固定舍入参数f,也不能合理地解释这种分布,从而导致非最优量化过程。实际上可观察到,尤其是对于低到中等量化参数(对应于很高到中等比特率),量化电平内或附近(并且尤其是电平1周围)的分段分布在某些情况下可以变得均匀或接近于均匀(图5、7、10、13)。在这些条件下,f的选择可能相当关键,因为不适当的大死区可能造成不必要的系数被量化为0,这可能导致客观质量的降低、乃至主观质量的大大降低。
考虑到基本档次(profile)、主档次和扩展档次只允许使用4×4整数变换,该问题倾向于对H.264更为关键。4×4变换虽然倾向于具有某些非常好的特性,如成块和振铃人为产物的减少、准确的位实现等,但是它具有比8×8变换更低的去相关特性,同时对量化决策也更敏感。尤其是,假定希望利用量化器值(QP)26(认为f等于Δ/2)来执行以下块的量化:
则量化过程将产生以下结果:
立即可以观察到,虽然用高垂直活性和低水平活性来描述原始块、并且QP不是很高,但是重构块中的所有水平活性都丢失了。虽然该特殊块的均方差(MSE)较低(7.625),但是考虑到该块的感觉特性已被大大改变,所以该过程的主观影响可能相当严重。更具体地说,可以观察到,与原始块相比,重构后的块倾向于更加结构化,从而使重构后的块对于观众而言更引人注意和更不舒服。
以上是量化过程的直接后果,并且尤其是将系数分配给电平0而非电平1的直接后果。如果所有系数都被水平或垂直地设为0,则所得结果将如同以上。然而,可以通过选择性地将受影响维的某些系数(至少一个)强制为电平1而不是电平0,来避免这种结果。可以用多种方式来执行这种过程。首先,需要确定这种过程是否必需。尤其是,如果逐列或逐行方差(即块中所有行或列的方差之和)较小,则这种特性易于发生。可以如下计算这些值:
及
其中xi,j分别对应于行i、列j处的像素值。如果满足T1<column_sVar<T2或者T3<row_sVar<T4,则可以改变量化过程以考虑这种特性。此外,可以如下考虑整个宏块或块的方差:
其中Bv和Bh分别是块的高度和宽度。更具体地说,如果blockVar对应于不同的值域,则可以应用不同的处理,或者可以据此修改T1、T2、T3和T4的值(例如利用取决于blockVar的查找表)。实际上建议,不是仅仅收集整幅图像的AC系数的分布统计特性,而是可以另外收集具有不同特性的区域的分布,以允许对量化过程进行更准确和精确的修改。
一种用于在4×4变换内人为地引入水平或/和垂直方差(根据需要)的较简单的方法是,强制将位置(1,0)或/和(0,1)的AC系数设为电平1,或者增大将位置(1,0)或/和(0,1)的AC系数设为电平1的概率。只有当发现那些系数最初是利用原始f值而成为0的时候,才可通过增大那些系数的f值来这样做。例如,如果满足以上特性(垂直或水平方差),并假定希望如有可能就保留(1,0)系数,则可以执行以下过程:
其中f
1是初始舍入参数。如果
且满足以上条件,则如下计算最终电平Z
1,0:
其中以这样一种方式来选择f2(f2>f1),以提高该系数被映射为电平1的优先级。
虽然该实施例对于某些情况可以提高主观质量,但是对于其它情况可能损害主观质量,同时该实施例也从不考虑对客观质量的影响。另一种方法是,首先对所有系数执行初始量化。这将基本上产生如下的变换矩阵W和初始量化矩阵
如果对于j>0的所有列,
都为0,或者/并且对于i>0,所有
都为0,则找到这些
中按照规定的代价最适于被设为电平1的系数。这是个最小化问题,其中需要找到最小函数J(类似于率失真优化技术),如:
Ji,j=Distortioni,j+λ*Costi,j
可以利用不同的失真度量来设置Distortioni,j,如:
Distortioni,j=(Wi,j-Δ)2或者Distortioni,j=|Wi,j-Δ|,
同时Costi,j可以代表用于修改一个系数的实际比特率代价,乃至可以等于按照扫描顺序到最后一个非零系数的距离,并且可以用如下的矩阵形式来描述:
注意,如果水平和垂直系数都需要改变(即,除DC以外的所有系数都被量化为0),则需要考虑在另一维(即0,j或i,0处的系数)为0时,由于改变水平或垂直系数而产生的联合代价,同时另一方面,修改i和j都大于0的位置(i,)的单个系数将对水平和垂直维都产生直接影响,并且可以使用单一代价。
对于大于4×4的变换(即8×8),可以遵循类似的方法。例如,对于8×8变换,可能希望不仅保留单个水平或垂直系数,而且两个都保留,因为这可以允许原始纹理的更逼真重构/表示。在这种情况下,需要再次联合执行(通过检查所有可能的组合)两个(或多个)系数的选择,或者为简单起见,也可以设法首先分别优化每个系数,同时在每一步中,在代价处理中考虑先前的系数修改。如有必要,对于4×4变换也可以用类似的方式保留更多系数。更具体地说,可以如下执行该过程:
基于
计算用于将单个系数从电平0改变为电平1的代价矩阵。
然后,修改具有基于最小RD的代价的系数:
这将导致以下新矩阵Z′:
再次利用诸如Ji,j=Distortioni,j+λ*Costi,j的准则来选择要修改的第二系数,其中现在基于新的电平矩阵Z′来计算Costi,j。可以取决于需要保留的附加系数的数量,根据需要来重复该过程。
虽然对于某些情况,利用以上方法可以稍微提高主观质量,然而可以采用一种能够通过基于系数分布更好地选择f2、并通过使所产生的失真最小化,来提高主观和客观质量的备选方法。如前,再次如下计算系数W1,0的初始电平
其中f1是初始舍入参数。
其中以这样一种方式来选择f
2(f
2>f
1),以提高该系数被映射为电平1的优先级。现在,可以通过检查系数分布来计算f
2。可以通过对当前数据执行预分析,或者通过假定当前分布将具有和相同类型的先前已编码块(在当前或先前图像中)类似的分布特性,来收集这种分布。假定初始电平为
则可以计算该电平周围的分布面积。这可以通过考虑分布的准确统计特性、或者通过使用基于模型的方法(例如使用拉普拉斯或高斯分布模型)来实现。可以选择用于将给定分布区的最佳量化点确定为分布的近似中值点(即,把分布分成两个相同大小的面积
的点)的常用方法。应该注意,通过假定分段分布几乎是分段线性的,来使该中值点成为近似点。一种更精确的策略是,使用Lloyd Max方法,并找到使误差最小化的点。通过构造分段线性分布,可以利用直角梯形(即具有两个直角的梯形)(可以参见图17)的特性来计算f
2:
且
转到图17,一般用附图标记1700来表示利用直角梯形的f的计算。
我们也得到:
且
注意,f和平方根内的值都必须为正。
也可以使用其它算术积分法如Simpson或3/8方法来代替梯形方法,虽然那些方法稍微复杂些。然而,虽然较不精确,但却更简单的一种策略是,首先通过先设置x
-=x
+=Δ来分别从
和
计算面积
和
然后,选择虽然不是最优解,但却是足够好的解的
注意,x
-=2×f
2,而x
+=2×(1-f
2)。也可以将这种方法和前面描述的主观地优化系数的方法结合起来,尽管现在是基于新的f2值来计算那个过程中的
然而,以上方法没有认真考虑由每个量化值所引起的失真。在近似地对所引起的失真作出相同假定的情况下,进行面积计算。而一种更适当的方法将是考虑这种计算内的实际失真。即,应该如下更好地计算面积
和
且
其中
可以是重构值
与x之间的失真度量,如平方差即
或绝对差即
frequency(x)对应于值等于x的系数的数量。我们的目标又是使
实现这种特性的一种简单方法将是,首先利用f=Δ/2,通过缓慢减小f以找到满足这种条件或
形式的条件的第一个位置,来计算
和
执行该过程的一种简单算法可以如下:
步骤1:设 计算 及
步骤2:如果则结束处理。
步骤3:设f=f-1。如果f==0,则设f=1,并结束处理。
步骤4:设 且 转到步骤2。
虽然以上方法能够提高性能(客观性能、主观性能或客观和主观性能两者),但是人为引入较高电平的方法可能不一定是所希望的,因为它也将不能精确匹配原始信号。为此,现有技术引入了Θ参数,该Θ参数可以以某一间隔(即每一片)在位流内被发送,并且本质上引入了所有系数的重构值的平移(移动)(见图3)。转到图3,一般用附图标记300来表示量化过程中Θ=Δ/4的影响。对于图3,假定f=Δ/4。它类似于本发明之处在于,选择性地将某些系数从零电平调节为电平1。然而该现有技术不同于本发明,因为在该现有技术中需要改变编解码器标准,使得解码器知道这种调节、并能够更精确地重构系数,而这在本发明中是不必要的。该现有技术中所提出的方法没有考虑到AC系数(包括DC系数)倾向于具有较为不同的分布。而更好的方法将是设计一种和位流一起发送的矩阵Θ,这将允许对每个不同系数进行更精细的改进。该方法和考虑H.264及其它编解码器内的量化矩阵的现有技术很相似。在H.264FRExt规范中,目前允许12种不同的量化加权矩阵,这些量化加权矩阵基本上是按照变换尺寸(4×4对8×8)、颜色分量(Y、U和V)及预测类型(帧内对帧间)来划分的,因为这些是能够包含较为不同的分布特性的基本成分。类似地,现在可以定义12种不同的量化偏移矩阵,这些量化偏移矩阵不是缩放,而是偏移重构电平。可能希望增加附加矩阵,这些附加矩阵只需可供宏块自适应帧-场编码使用,并且将区分场和帧宏块。然而,虽然可以偏移所有重构值,但是观察到最重要的重构值是与电平1相关的重构值。这暗示,如果要重构的电平是电平1,则按照RD性能,只考虑Θ参数可能更好。尤其是在现有技术中提到,可以如下计算重构值W′ij:
其中Vij参数来源于逆变换过程,并且与量化器值QP相关。在我们的情况下,现在也可考虑到Θ现在取决于系数位置,来如下计算W′ij:
if abs(Zij)==1
else
另一种备选方法将是,根据电平来如下修改Θ:
例如,可以使用g(Θij,Zij)=Θij>>(Zij-1)。
为计算Θ,可以使用类似于计算f2的方法。在此的思想是,找到量化区间Δ内与分布的中值相对应的位置,或者基本上导致将Δ分成两个等面积区的位置(见图18)。转到图18,一般用附图标记1800来表示通过中值选择(面积均衡)来选择Θ的曲线图。这可以通过考虑模型分布,并执行积分计算,来手动地实现(即计算全面积,然后找到对半分割全面积的点),或者通过考虑简单的算术方法来实现。尤其是,从图18可再次观察到,我们的分段分布再次类似于如从图19可看到的直角梯形。转到图19,一般用附图标记1900来表示利用直角梯形来计算Θ的示图。可以如下计算全面积:
找到点x=Δ/2+Θ,以致将全面积分成两个等面积区A/2,即
然而,由于类似的三角形特性,h3也等于
因为负号没有意义,所以所得结果为:
也替换A,得到以下:
也可以用类似于计算f的方式,通过考虑实际失真和系数频率来计算Θ。然而,在此不是改变f,而是需要改变第一个重构值。即,意图找到一重构值
以致
再次,可以利用如下类似于计算f的策略,来实现这一点:
步骤2:计算 以及
步骤5:转到步骤2。
为进一步提高性能及改善Θ值的计算,也可以考虑被设为0的系数的数量。尤其是,可能希望限制被强制为零的某些AC系数,即位置(i,j)处的AC系数的百分比。可以在一组宏块、片、图像、图像组(GOP)、乃至序列级,计算该百分比。可以通过在编码器中提供预定的百分比值,来隐含地决定是否将值设为0,或者通过考虑序列的某些统计特性如方差或失真,来自动决定是否将值设为0。如果分布暗示使用当前分布模型将大大超过该百分比,则最好进一步增大Θ值以提高质量。考虑该特性的一种简单方法是,找到满足关于零电平的该百分比关系的系数值,并据此增大以上Θ计算中所使用的Δ值。例如,假定零满足位置y(y<Δ/2)处的百分比X%,则使用新的Δ′为Δ′=Δ+(Δ/2-y),并如下计算Θ:
如有必要,也可以约束Θ,如a≤Θ<b(例如可以将a设为0,并将b设为b=Δ/2)。注意,也可以利用直角梯形面积计算来执行为计算f
2所需的
和
面积的近似,而不必对这些面积内的分布执行全积分。一般,可以把梯形近似和任何区间一起使用,以计算这些面积。
最后,也可利用分布来计算量化加权矩阵。假定基于感觉分析而已知加权系数,则也可通过设法使所有系数的分布均衡,来缩放加权系数。这可以通过考虑以下来执行:(a)每个系数的最大值,并计算它与给定值相比的比值(例如与DC相比);(b)在从零开始的分布的指定百分比(例如95%)内,每个系数的最大可得值;以及(c)在从零开始的分布的指定独特百分比Pi,j内,每个系数的最大可得值。
虽然可以考虑所有系数的分布,但是通常更好的做法是,确定哪些区域按照主观质量被认为是更重要的(通常是具有低方差特征的区域),并且只利用这些区域来执行这种计算。然而,这样也可能损害剩余区域的性能,从而一种备选方法将是,分别对整幅图像和每个区域执行这些计算,然后组合这些结果(即,使用基于重要性即每个区域的主观影响、出现次数等的加权平均方法),来计算最终加权矩阵。
转到图20,一般用附图标记2000来表示基于图像级的变换统计特性的量化的方法。相对于图像数据的编码,来实现该方法2000。
开始块2005将控制传递给功能块2010。功能块2010对分布数组进行初始化,并将控制传递给循环限制块2015。循环限制块2015开始图像编码循环,并将控制传递给功能块2020。功能块2020决定图像级量化参数,执行图像决策等,以准备编码,并将控制传递给循环限制块2025。循环限制块2025开始宏块编码循环,并将控制传递给功能块2030。功能块2030确定/选择正被处理的当前宏块的量化参数,并将控制传递给循环限制块2035。循环限制块2035开始预测模式循环,并将控制传递给功能块2040。功能块2040对当前宏块执行帧内或帧间预测,并将控制传递给循环限制块2045。循环限制块2045开始对于所有4×4块的变换循环(在正被处理的当前宏块内),并将控制传递给功能块2050。功能块2050对正被处理的当前4×4块执行变换,并将控制传递给功能块2055。功能块2055利用偏移量1/2来量化当前4×4块,以获得每个变换系数的leveli,j,并将控制传递给功能块2060。功能块2060检查分布数组,以便基于量化参数leveli,j和i、j来确定最佳偏移量fi,j,并将控制传递给功能块2065。功能块2065通过把fi,j用作新的偏移量,来重新量化位置i,j处的系数,并将控制传递给循环限制块2070。循环限制块2070结束变换循环,并将控制传递给循环限制块2075。循环限制块2075结束预测模式循环,并将控制传递给功能块2080。功能块2080更新分布数组,并将控制传递给循环限制块2085。循环限制块2085结束宏块(MB)编码循环,并将控制传递给循环限制块2090。循环限制块2090结束图像编码循环,并将控制传递给结束块2095。
转到图21,一般用附图标记2100来表示基于区域考虑的量化的方法。相对于图像数据的编码,来实现该方法2100。
开始块2105将控制传递给功能块2110。功能块2110对分布数组进行初始化,并将控制传递给循环限制块2115。循环限制块2115开始图像编码循环,并将控制传递给功能块2120。功能块2120决定图像级量化参数,执行图像决策等,以准备编码,并将控制传递给功能块2122。功能块2122基于内容来分析场景(例如使用区域分割方案),并将控制传递给循环限制块2125。循环限制块2125开始宏块编码循环,并将控制传递给功能块2130。功能块2130确定/选择正被处理的当前宏块的量化参数,确定与当前宏块对应的区域,并将控制传递给循环限制块2135。循环限制块2135开始预测模式循环,并将控制传递给功能块2140。功能块2140对当前宏块执行帧内或帧间预测,并将控制传递给循环限制块2145。循环限制块2145开始对于所有4×4块的变换循环(在正被处理的当前宏块内),并将控制传递给功能块2150。功能块2150对正被处理的当前4×4块执行变换,并将控制传递给功能块2155。功能块2155利用偏移量1/2来量化当前4×4块,以获得每个变换系数的leveli,j,并将控制传递给功能块2160。功能块2160检查对应区域的分布数组,以便基于量化参数leveli,j和i、j来确定最佳偏移量fi,j,并将控制传递给功能块2165。功能块2165通过把fi,j用作新的偏移量,来重新量化位置i,j处的系数,并将控制传递给循环限制块2170。循环限制块2170结束变换循环,并将控制传递给循环限制块2175。循环限制块2175结束预测模式循环,并将控制传递给功能块2180。如果可得到对应区域的分布数组和全局数组,功能块2180就更新这些数组,并将控制传递给循环限制块2185。循环限制块2185结束宏块编码循环,并将控制传递给循环限制块2190。循环限制块2190结束图像编码循环,并将控制传递给结束块2195。
转到图22,一般用附图标记2200来表示考虑变换系数、以实现最优量化的编码器。
编码器2200的输入以信号通信方式连接到区域分析与统计特性模块2210的第一输入、加法器2215的反相输入、以及运动补偿器2220的第一输入。加法器2215的输出以信号通信方式连接到变换器2225的输入。变换器2225的第一输出以信号通信方式连接到区域分析与统计特性模块2210的第二输入。区域分析与统计特性模块2210的输出以信号通信方式连接到预量化器2230的第一输入。预量化器2230的输出以信号通信方式连接到量化器2235的第一输入。变换器2225的第二输出以信号通信方式连接到量化器2235的第二输入。变换器2225的第三输出以信号通信方式连接到预量化器2230的第二输入。量化器2235的输出以信号通信方式连接到可变长编码器(VLC)2240的第一输入以及逆量化器2245的输入。VLC 2240的输出可用作编码器2200的输出。
运动补偿器2220的第一输出以信号通信方式连接到加法器2215的非反相输入以及加法器2255的第一输入。运动补偿器2220的第二输入以信号通信方式和运动估计与模式决策模块2250的第一输出相连。逆量化器2245的输出以信号通信方式连接到逆变换器2260的输入。逆变换器2260的输出以信号通信方式连接到加法器2255的第二输入。加法器2255的输出以信号通信方式连接到环路滤波器2275的输入。环路滤波器2275的输出以信号通信方式连接到图像参考存储器2270的输入。图像参考存储器2270的输出以信号通信方式连接到运动补偿器2220的第三输入、以及运动估计与模式决策模块2250的输入。运动估计与模式决策模块2250的第二输出以信号通信方式连接到VLC 2240的第二输入。
转到图23,一般用附图标记2300来表示考虑θ参数和变换系数、以实现最优量化的编码器。
编码器2300的输入以信号通信方式连接到区域分析与统计特性模块2310的第一输入、加法器2315的反相输入、以及运动补偿器2320的第一输入。加法器2315的输出以信号通信方式连接到变换器2325的输入。变换器2325的第一输出以信号通信方式连接到区域分析与统计特性模块2310的第二输入。区域分析与统计特性模块2310的第一输出以信号通信方式连接到预量化器2330的第一输入。预量化器2330的输出以信号通信方式连接到量化器2335的第一输入。变换器2325的第二输出以信号通信方式连接到量化器2335的第二输入。变换器2325的第三输出以信号通信方式连接到预量化器2330的第二输入。量化器2335的输出以信号通信方式连接到VLC 2340的第一输入以及逆量化器2345的第一输入。VLC 2340的输出可用作编码器2300的输出。
运动补偿器2320的第一输出以信号通信方式连接到加法器2315的非反相输入以及加法器2355的第一输入。运动补偿器2320的第二输入以信号通信方式和运动估计与模式决策模块2350的第一输出相连。逆量化器2345的输出以信号通信方式连接到逆变换器2360的输入。逆变换器2360的输出以信号通信方式连接到加法器2355的第二输入。加法器2355的输出以信号通信方式连接到环路滤波器2375的输入。环路滤波器2375的输出以信号通信方式连接到图像参考存储器2370的输入。图像参考存储器2370的输出以信号通信方式连接到运动补偿器2320的第三输入、以及运动估计与模式决策模块2350的输入。运动估计与模式决策模块2350的第二输出以信号通信方式连接到VLC 2340的第二输入。
区域分析与统计特性模块2310的第二输出以信号通信方式连接到θ推导模块2380的输入。θ推导模块2380的第一输出以信号通信方式连接到逆量化器2345的第二输入。θ推导模块2380的第二输出以信号通信方式连接到预量化器2330的第三输入、量化器2335的第三输入、以及VLC 2340的第三输入。
转到图24,一般用附图标记2400来表示解码器。解码器2400的输入以信号通信方式连接到θ推导模块2480的输入以及可变长解码器(VLD)2440的输入。θ推导模块2480的输出以信号通信方式连接到逆离散余弦变换(IDCT)模块2499的第一输入。VLD 2440的第一输出以信号通信方式连接到运动补偿器2420的第一输入。VLD 2440的第二输出以信号通信方式连接到逆量化器2435的输入。逆量化器2435的输出以信号通信方式连接到IDCT模块2499的第二输入。IDCT模块2499的输出以信号通信方式连接到加法器2488的第一输入。运动补偿器2420的输出以信号通信方式连接到加法器2488的第二输入。加法器2488的输出以信号通信方式连接到环路滤波器2477的输入。环路滤波器2477的输出以信号通信方式连接到帧缓冲器2466的输入。帧缓冲器2466的第一输出以信号通信方式连接到运动补偿器2420的第二输入。帧缓冲器2466的第二输出可用作解码器2400的输出。
现在将描述按照本发明的各说明性实施例的本发明的许多相关优点/特征中的一些优点/特征。例如,一个优点/特征是一种编码设备和方法,其中通过考虑系数位置及关联的分布来自适应地执行死区量化。另一个优点/特征是如上所述的编码设备和方法,其中取决于编码模式(帧内或帧间)、颜色分量、变换尺寸、以及场和帧宏块编码模式(如有必要)的至少之一,来执行自适应。又一个优点/特征是如上所述的自适应编码设备和方法,其中分别对每种不同的情况收集分布统计特性。又一个优点/特征是如上所述的自适应编码设备和方法,其中基于区域特征(方差、边缘等)来收集分布统计特性。又一个优点/特征是如上所述的编码设备和方法,其中用两步方法来执行死区量化,首先利用固定死区/舍入控制来确定初始电平,然后基于该电平,利用电平相关死区/舍入控制来重复量化。而且,另一个优点/特征是如上所述的利用两步死区量化的编码设备和方法,其中基于那个电平内的分段分布来计算电平相关舍入控制。而且,另一个优点/特征是如上所述具有两步死区量化和电平相关舍入控制的编码设备和方法,其中利用重构区内的分布密度(分布面积)来执行计算。此外,另一个优点/特征是具有两步死区量化和电平相关舍入控制的编码设备和方法,其中利用算术积分法如梯形或单形近似法,来计算电平相关舍入控制。另外,另一个优点/特征是如上所述的具有两步死区量化的编码设备和方法,其中在计算中也考虑失真。而且,另一个优点/特征是如上所述的编码设备和方法,其中最初被设为零电平的某些系数被强制改为更高电平,以试图提高主观质量。而且,另一个优点/特征是如上所述的具有系数电平强制的编码设备和方法,其中这种决策是基于率失真优化准则的。此外,另一个优点/特征是如上所述的编码设备和方法,其中通过发送并考虑一组偏移量化矩阵Θ,来改进死区量化。而且,另一个优点/特征是如上所述的通过偏移矩阵来改进死区量化的编码设备和方法,其中Θ值在不同电平有不同影响。而且,另一个优点/特征是如上所述的通过偏移矩阵来改进死区量化的编码设备和方法,其中基于图像统计特性和系数分布来计算Θ。此外,另一个优点/特征是如上所述的通过偏移矩阵来改进死区量化、并基于图像统计特性和系数分布来计算Θ的编码设备和方法,其中利用重构区内的分布密度(分布面积)来计算Θ。另外,另一个优点/特征是如上所述的通过偏移矩阵来改进死区量化、并基于图像统计特性和系数分布以及分布密度来计算Θ的编码设备和方法,其中利用算术积分法如梯形或单形近似法来计算Θ。此外,另一个优点/特征是如上所述的通过偏移矩阵来改进死区量化、并基于图像统计特性和系数分布以及分布密度来计算Θ的编码设备和方法,其中对于Θ的计算也考虑失真。而且,另一个优点/特征是如上所述的通过偏移矩阵来改进死区量化的编码设备和方法,其中可以取决于允许利用零电平进行编码的系数的最大百分比,来调节Θ的计算。又一个优点/特征是如上所述的编码设备和方法,其中死区量化考虑基于所有系数的分布特征所计算的加权量化矩阵。另一个优点/特征是如上所述的基于区域特征来收集分布统计特性、并利用基于所有系数的分布特征所计算的加权矩阵来执行死区量化的自适应编码设备和方法,其中对于该计算,只考虑“最重要区域”的分布。而且,另一个优点/特征是如上所述的基于区域特征来收集分布统计信息、并利用基于所有系数的分布特征所计算的加权矩阵来执行死区量化的自适应编码设备和方法,其中通过使用基于主观影响和出现率统计特性的加权平均方法,来考虑所有不同区域,以计算加权矩阵。
相关领域的普通技术人员根据在此给出的教导可以容易地弄清本发明的这些及其它特征和优点。应该理解,可以用各种形式的硬件、软件、固件、专用处理器或它们的组合,来实施本发明的教导。
更为优选地,把本发明的教导实施为硬件和软件的组合。而且,优选地把软件实施为确实可在程序存储单元上具体实施的应用程序。该应用程序可以被上载到包括任何合适架构的机器上,并被该机器所执行。优选地,在具有硬件如一个或多个中央处理单元(CPU)、随机存取存储器(RAM)和输入/输出(I/O)接口的计算机平台上,实现该机器。该计算机平台也可包括操作系统和微指令码。在此描述的各种过程和功能可以是,可由CPU执行的微指令码一部分、或应用程序一部分、或它们的任何组合。另外,其它各种外围单元如附加数据存储单元和打印单元,可以连接到该计算机平台。
进一步应该理解,因为附图中所描述的一些组成系统部件和方法优选地是用软件来实现的,所以系统部件或过程功能块之间的实际连接可以随本发明的编程方式而有所不同。给定在此的教导,相关领域普通技术人员将能够预期本发明的这些及类似实施或配置。
虽然在此参考附图描述了说明性实施例,但是应该理解,本发明不限于这些具体实施例,并且相关领域普通技术人员可以在不脱离本发明的范围或精神的情况下进行各种变动和修改。所有这种变动和修改都预定被包括在所附的权利要求所阐述的本发明的范围内。