基于感知度量分类对视频进行编码和解码的方法和装置与流程

文档序号:18126594发布日期:2019-07-10 09:56阅读:420来源:国知局
基于感知度量分类对视频进行编码和解码的方法和装置与流程

本实施例通常涉及基于感知度量分类的视频编码和解码。



背景技术:

本文描述的任何背景信息旨在向读者介绍本领域的各个方面,其可以与下面描述的本实施例相关。相信该讨论有助于向读者提供背景信息,以促进更好地理解本公开的各个方面。因此,应该理解,应该从这个角度来阅读这些陈述。

数字图像和视频序列需要大量资源用于存储和传输,并且因此需要图像和视频压缩技术来减少带宽和存储空间。

视频编码方案是已知的,诸如hevc(“高效视频编码”)或vp9。在这种方案中,视频序列是逐个图片编码的。每张图片被分解为一组块。为了减少用于编码每个块的比特数,这样的方案使用量化工具来执行有损编码,该量化工具将值的范围压缩为单个量值。

在视频压缩方案中,诸如例如vp8或vp9,在编码器侧执行速率/失真优化,以便在编码图片的每个块时确定速率和失真之间的最佳折衷。这种速率/失真优化可以在块级处调整量化参数,以精确地控制要编码的块的速率和失真。传统上,使用诸如psnr(峰值信噪比)或mse(均方误差)的客观测量在块级处测量失真。然而,这些测量没有考虑人类视觉系统的属性,并导致其中图片质量不均匀的压缩视频。



技术实现要素:

根据本公开的方面,公开了一种用于对视频进行编码的方法,包括:基于视频的图片中的块的感知度量分类将失真与量化曲线分配给块;基于用于块的曲线和目标失真确定用于块的量化参数,目标失真是图片的整体目标失真;以及基于量化参数对块进行编码。

根据本公开的方面,公开了一种用于对视频进行编码的装置,包括:用于基于视频的图片中的块的感知度量分类将失真与量化曲线分配给块的部件;用于基于用于块的曲线和目标失真确定用于块的量化参数的部件,目标失真是图片的整体目标失真;以及用于基于量化参数对块进行编码的部件。

根据本公开的方面,公开了一种用于对视频进行解码的方法,包括:提取用于编码视频比特流的图片的块的量化参数,该量化参数基于用于块的失真与量化曲线和用于块的目标失真,该曲线是基于块的感知度量分类确定的,该目标失真是图片的整体目标失真;以及基于量化参数对块进行解码。

根据本公开的方面,公开了一种用于对视频进行解码的装置,包括用于提取用于编码视频比特流的图片的块的量化参数的部件,该量化参数基于用于块的失真与量化曲线和用于块的目标失真,该曲线是基于块的感知度量分类确定的,该目标失真是图片的整体目标失真;以及用于基于量化参数对块进行解码的部件。

根据本公开的方面,公开了一种格式化为包括表示图片的块的编码数据的比特流,根据用于对视频进行编码的方法的任何实施例编码该编码数据。

根据本公开的方面,公开了一种计算机可读程序产品,其包括用于执行用于对视频进行编码的方法的任何实施例的程序代码指令。

根据本公开的方面,公开了一种计算机可读存储介质,其承载包括用于对视频进行编码的方法的任何实施例的程序代码指令的软件程序。

根据本公开的方面,公开了一种计算机可读程序产品,其包括用于执行用于对视频进行解码的方法的任何实施例的程序代码指令。

根据本公开的方面,公开了一种计算机可读存储介质,其承载包括用于对视频进行解码的方法的任何实施例的程序代码指令的软件程序。

以上呈现了主题的简化概述,以便提供对主题实施例的某些方面的基本理解。该概述不是对主题的广泛概述。其并不旨在标识实施例的关键/重要元素或描绘主题的范围。其唯一目的是以简化形式呈现主题的某些概念,作为稍后呈现的更详细描述的序言。

通过参考附图进行的说明性实施例的以下详细描述,本公开的附加特征和优点将变得显而易见。

附图说明

根据以下简要描述的以下示例性附图可以更好地理解本公开:

图1图示了根据本原理的实施例的用于编码图片的示例性方法的流程图,

图2a图示了根据本公开的实施例的用于生成学习数据的示例性方法的流程图,该学习数据可以在用于编码图片的示例性方法中使用,

图2b图示了根据本公开的实施例的用于生成轨迹曲线的示例性方法的流程图,该轨迹曲线可以在用于编码图片的示例性方法中使用,

图3图示了根据本公开的实施例的轨迹曲线的简化示例,

图4a图示了根据本公开的实施例的用于生成量化参数图的示例性方法的流程图,

图4b图示了根据本公开另一实施例的用于生成量化参数图的示例性方法的流程图,

图4c图示了根据本公开另一实施例的用于生成量化参数图的示例性方法的流程图,

图5图示了用于调整量化参数图的示例性方法的流程图,

图6图示了用于给定块轨迹的允许qp范围的简化示例,

图7图示了块的因果邻居,

图8图示了使用的图片编码顺序和参考图片的示例,

图9图示了根据本公开的实施例的示例性编码器的框图,

图10图示了根据本公开的实施例的、可以在本文公开的任何一个实施例中使用的编码器的示例性结构。

具体实施方式

传统的速率-失真优化(rdo)工具旨在在编码图片时在块级处分配比特预算,同时优化重构块的客观质量。此类rdo工具基于客观度量,诸如mse/psnr。因此,关于这些度量,优化了要编码的图片的整体客观质量。但是,psnr没有考虑人类视觉系统的属性。可以在知道人眼的灵敏度的情况下执行更一致的比特率分配。通过在源视频序列的图片上更好地分布压缩方法和参数,可以实现整体内容的更高的感知/视觉质量。

人类视觉系统(hvs)对比度比绝对亮度更灵敏。此外,灵敏度取决于图片的空间频率或图片的区域。该灵敏度在高空间频率上降低,即在细节纹理中降低。这种现象也称为对比灵敏度。

高频率通常需要以高质量水平发送的大量比特,因为它们更难以预测。通过在编码图片时更好地分布编码参数,这些高度详细的区域或块将以较低的质量水平编码,例如通过使用更严格的量化。由于hvs不能检测产生的伪像,因此重构图片的主观质量不会受到影响。然后可以利用保留的比特率来增强低频区域的质量,以便改善整体感知质量。

当解决感知编码的问题时,某些方法依赖于在编码阶段期间特定的局部“感知度量”可用的事实,允许编码器基于这些度量来决定编码模式(尤其是局部块的qp)。这些方法通常依赖于局部活动测量,以决定编码模式。这些方法的问题是块的感知质量很难进行局部测量(即仅考虑块内的像素),并且最佳感知度量(例如vqm、用于基于小波的质量评估的wqa等)使用全局方法来获得每个像素的度量。

实际上,这意味着在编码阶段,人们无法基于当前块的编码结果(通常在rdo期间)即时计算这些感知度量。另一种方法是执行所谓的“第一通道”,以便在编码阶段之前选择某些合适的量化参数(qp)。

图1示出了根据本公开的实施例的用于编码图片的示例性方法的流程图。在步骤10中,执行离线学习方法以计算一组轨迹曲线或d-q曲线。轨迹曲线允许表示图片的给定块的质量变化作为量化参数的函数。对于视频序列的测试组,执行这种离线学习方法。离线学习方法提供一组n个轨迹类{tk}n={mk(qp)}n,其中mk(qp)是类k的表示函数,其给出作为qp的函数的块的失真。

离线学习方法包括生成学习数据(步骤101)和生成qp(d)轨迹(步骤102)。下面分别利用图2a和2b进一步描述步骤101和102。

在步骤11中,将要编码的图片划分为一组块。通常,可以使用8×8像素或16×16像素,但是可以使用qp可以设置为恒定的任何其他区域形状。

在步骤12中,使用在步骤10中计算的一组轨迹类{tk}n对每个块进行分类。这样的分类允许将来自组{tk}n的给定轨迹类k与图片的每个块相关联。可以通过对当前块执行离线学习处理的步骤来执行这样的分类,以便确定其轨迹曲线mb(qp),并将类k与包括块的轨迹曲线mb(qp)的当前块相关联。

根据另一变型,每类轨迹与块的特定特征相关联,诸如纹理类型、频率范围等。然后通过计算或确定块的特征、并将块与(与类似特征相关联的)轨迹类相关联来执行当前块的分类。

在步骤13中,为图片的每个块选择量化参数,使得图片的整体失真或整体质量在整个图片上扁平化。已知的rdo工具旨在最小化在块级别处的速率约束下的失真。相比之下,根据本原理,失真在整个图片上“均衡”。

为此,在步骤131中,针对图片计算或确定目标整体失真g0。将相同的初始量化参数qpg分配给图片的每个块。这样的初始量化参数qpg可以是例如通过编码器分配给图片的标称qp。然后,使用与针对qpg的块相关联的类的轨迹曲线获得每个块的失真。即,对于与轨迹类k相关联的块,失真由mk(qpg)给出。

根据变型,然后通过平均图片的块的失真mk(qpg)来计算目标整体失真g0。

根据另一变型,为了保持与由编码器决定的用于编码当前帧的质量相同的全局质量,目标整体失真g0被计算为鲁棒绝对感知度量和鲁棒扁平化得分的组合:

g0=mk_50%+a*(mk_99%-mk_50%),

其中:

-mk_50%是图片上的失真得分的中位数,

-mk_99%是图片上99%分位数的失真,即失真使得99%的块低于该阈值,

-a是平衡绝对质量和扁平化得分的因素。

在步骤132中,确定用于图片的量化参数(qp)图。这样的qp图包括针对图片的每个块分配的qp。

由于函数mk(qp)是可逆的,对于轨迹类k的每个块b,可以将qpb分配给具有的块b。

注意,可以选择目标质量g0作为任何度量,只要存在表示qp和失真之间的关系的可逆函数m。典型的示例是将m简单地定义为psnr。在这种情况下,此方法将尝试提供与全局psnr相同的局部psnr。可以选择另一个度量作为wqa得分。

在步骤16中,然后使用在步骤132确定的qp图对图片进行编码。结合图10进一步公开了图片的编码。

根据本公开的实施例,在对图片进行编码之前,在可选步骤14中根据编码约束进一步调整qp图。结合图5进一步详细说明步骤14。当调整qp图到编码约束时,图片的整体失真g0可能已经改变并且可能不会在整个图片上扁平化。因此,可以迭代地执行步骤131、132和14,以便在整个图片上收敛到扁平化的整体失真。下面结合图4a、4b和4c公开了这种迭代方法的实施例。

根据本公开的实施例,在对图片进行编码之前,在可选步骤15中进一步细化分配给图片块的qp(qp图),以便降低qp图的编码成本。下面结合图7和8进一步详细说明步骤15。

离线学习的目标(图1的步骤10)是创建一组类,该组类用于稍后对要编码的图片的每个块进行分类。分类基于块轨迹(d-q曲线)。该轨迹显示了qpg质量函数的变化。通过将曲线拟合到在离线学习方法中获得的原始数据点{qp,度量}来计算该函数。

图2a图示了用于生成学习数据的示例性方法的流程图(图1中的步骤101)。在步骤20中,使用来自一组学习qp的不同qpg值对一组学习图片进行编码,范围例如从0到255。可以根据任何视频压缩方案来执行学习图片的编码。

在步骤21中,使用所选择的度量来评估每个编码的图片的质量和每个不同的qpg值。例如,选择wqa(基于小波的质量评估)度量。这样的度量给出每个像素的失真得分,但是使用整个图像来计算。

在步骤22中,将重构的图片划分为与图1中的步骤11中相同大小的一组块。我们的示例中的度量wqa是针对图片的每个块计算的。例如,针对块的wqa度量被计算为块中像素的wqa度量的平均值。

注意,给出每个块得分的任何其他度量也适用于此处。

学习数据的生成导致块原始数据包括用于来自该组学习图片的图片的每个块的一组qp和相关联的度量值。

图2b图示了用于生成轨迹类的示例性方法的流程图(图1中的步骤102)。在步骤23中,通过将曲线拟合到用于学习图片的每个块的原始数据点来对块原始数据进行建模。

由于所选择的度量依赖于全局方法,因此对于每个块可能不会单调变化。由于期望函数mk(qp)=wqa是可逆的,因此强制建模曲线的单调性。单调可以通过以下几种方式强制:

-“软单调”:原始数据是单调的,并且拟合是正常的(例如使用多项式函数的最小二乘拟合)。得到的轨迹不一定是单调的,但得到的曲线得到改善。

-“硬单调”:在拟合期间,添加硬单调约束(例如,使用凸优化方法)。

在将块原始数据建模到轨迹之后,似乎许多块轨迹可以分解为两个部分,如图3所示:

-增加的失真部分(图3中的拟合部分)

-“稳定(plateau)”部分,其中误差几乎稳定;实际上,它意味着块的所有“纹理”都已被移除,并且然后块质量不变。

知道用于编码图片的这些属性,执行拟合直到稳定部分,并且附加参数qpe给出稳定期的开始。

在步骤24中,在将测试组的每个块建模为轨迹曲线之后,需要将轨迹聚类成n个类。为此,执行轨迹空间中的聚类算法,如k-均值算法,例如此处的多项式函数。可替换地,可以通过使用前一步骤的原始数据重新计算最终类轨迹来细化最终轨迹类。

一旦决定了轨迹类,该类的所有相关轨迹样本用于计算用于该类的两个属性:速率轨迹和度量轨迹。从编码步骤20,对于一组学习图片的每个块,已知与给定qp相关联的比特率。因此,对于给定的轨迹类k,可以执行使用属于类k的、块的这种速率数据的模型拟合,以便关联用于每个qp的速率。由此获得函数rk(qp),其给出用于给定qp的类k的块的速率。

对于给定的类k,qp和度量之间的关系由函数mk(qp)给出,其给出用于给定qp的类k的块的度量(或失真)。获得用于类k的这种函数mk(qp)作为类k的质心轨迹。

在步骤102结束时,递送包括两条曲线mk(qp)和rk(qp)的一组轨迹类{tk}n,以便稍后在对视频序列进行编码时用于块分类。

图4a图示了根据本公开的实施例的用于生成量化参数图的示例性方法的流程图。根据该实施例,为了考虑最终qp图,在从图1的步骤14进行调整之后,迭代地细化要编码的图片的每个块的qp。在该实施例中,期望保持要编码的图片的目标质量,并且因此不改变目标整体失真g0。

根据该实施例,一旦qp图已经调整到编码约束,则在步骤40中计算用于要编码的图片的整体失真gi。根据调整的qp图和与图片的每个块相关联的轨迹曲线计算整体失真gi。例如,如图1的步骤131所公开的那样计算整体失真gi,但是对于图片的每个块b,使用在调整的qp图中分配给块b的qpb。也就是说,块b的失真因此由mk(qpb)给出,其中k是块b所属的轨迹类,而mk是类k的轨迹。

在步骤41中,比较整体失真gi和目标整体失真g0。如果整体失真gi高于取决于目标整体失真g0的第一阈值,即gi>α×g0,则目标整体失真g0减小变化因子d。这导致图片的输入质量目标的微小变化。

如果整体失真gi低于取决于目标整体失真g0的第二阈值,即gi<β×g0,则目标整体失真g0增加变化因子d。这导致图片的输入质量目标的微小变化。

如果整体失真gi在第一和第二阈值之间,即α×g0>gi>β×g0,则目标整体失真g0不会改变,并且调整的qp图被递送到用于对图片进行编码的方法的下一步骤。例如,α和β可以被设置为0.05或者被设置为导致阈值为在两个阈值之间的整体失真gi的值是目标整体失真g0的适当近似的任何值(例如1)。

如果在步骤41改变目标整体失真g0,则迭代步骤132、14、40和41,直到整体失真gi在第一阈值和第二阈值之间或者直到已达到迭代次数。

图4b图示了根据本公开另一实施例的用于生成量化参数图的示例性方法的流程图。根据该实施例,期望保留由编码器决定的标称qp以对当前图片进行编码。

在步骤42中,计算qp图的中心qp(qpc)。例如,qp图的中心qp是qp图的n个排序qp的中值qp。

在步骤43中,比较中心qpc和标称qpg。如果中心qpc高于标称qpg,即qpc>qpg,则目标整体失真g0减小变化因子d。

如果中心qpc低于标称qpg,即qpc<qpg,则目标整体失真g0增加变化因子d。

如果中心qpc等于标称qpg,则目标整体失真g0不会改变,并且调整的qp图被递送到用于编码图片的方法的下一步骤。注意,这里的结束条件是在标称qpg不可达的情况下,中心qpc等于标称qpg或在标称qpg周围的中心qpc的振荡。

如果在步骤41改变目标整体失真g0,则重复步骤132、14、42和43,直到中心qpc等于标称qpg或者直到达到迭代次数。

图4c图示了根据本公开另一实施例的用于生成量化参数图的示例性方法的流程图。根据该实施例,期望保持标称速率rt,其中标称速率是使用标称qpg的图片的速率或直接由编码器给出的目标速率。

在步骤44中,使用调整的qp图和与图片的每个块相关联的速率曲线rk(qp)来计算用于图片的整体速率r。例如,对于图片的每个块b,速率rb由rk(qpb)给出,其中k是块b所属的轨迹类,以及rk是类k的速率函数,以及qpb是在qp图中分配给块b的qp。然后,图片的速率r由图片的所有块的速率rb的总和给出。

在步骤45中,比较速率r和标称速率rt。如果速率r低于取决于标称速率rt的第一阈值,即r<α×rt,则目标整体失真g0减小变化因子d。

如果速率r高于取决于标称速率rt的第二阈值,即r>β×rt,则目标整体失真g0增加变化因子d。

如果速率r在第一和第二阈值之间,即α×rt>r>β×rt,则目标整体失真g0不会改变,并且调整的qp图被递送到用于对图片进行编码的方法的下一步骤。例如,例如,α和β可以被设置为0.05或者被设置为导致阈值为在两个阈值之间的速率r的值是标称速率rt的适当近似的任何值(例如1)。

如果在步骤41改变目标整体失真g0,则迭代步骤132、14、40和41,直到速率r在第一阈值和第二阈值之间或者直到已经达到迭代次数。

图5图示了根据本公开的实施例的用于调整qp图的示例性方法的流程图。例如,qp图是从图1公开的步骤13获得的qp图。

调整qp图的目的是将任意qp的图转换成n个qp的图。与vp9/vp10编码器中一样,n可以是例如2到8的范围。

根据该实施例,通过应用类似k-均值(k-means)算法的聚类方法来执行调整qp图。然而,根据本公开,经典k-均值算法不能用于调整qp图。

根据本公开,要注意的是,每个块的qp来自特定函数mk,其可以包含稳定部分,如图3所示。因此,即使块b被分配了特定量化参数qb,如果qb在区间[qpe,255]中,则区间[qpe,255]中的任何量化参数都适合于块b,因为在该区间内的所有量化参数将为块b提供相同的失真。还应注意,由于qp图的编码,可以通过开销消除非常接近的2个qp之间提供的质量差异。

在下文中,公开了考虑上述约束的k-均值算法,以便根据编码约束来调整qp图。

在步骤50中,选择n个初始质心,其中每个类i具有一个初始质心ci。例如,初始质心是在qp图的qp范围内以规则区间取得的。步骤50递送一组初始质心{ci}0={qpi}0

在步骤51中,计算n个类。在标准k-均值算法中,类计算如下:

其中ci是类i的质心,c(qp)是量化参数qp的类。这意味着每个值qp与最近的质心ci相关联。

为了从轨迹类考虑mk函数的稳定期,如果分配给qp图中的块b的给定值qp属于与块b相关联的mk函数的稳定部分,则如果质心处于稳定期区间,则分配给块b的qp的值与几个质心相关联:

c(qp)={ck},

在步骤52中,计算在步骤51确定的每个类的新质心。在标准k-均值算法中,质心计算如下:

即,类k的新质心cn+1是前一步骤n中类k的所有元素的平均值。

为了考虑与块相关联的函数的稳定部分,对于给定值qp,用2个步骤计算平均值。

我们用表示不属于稳定期区间的qp值,并且用表示属于稳定期区间的qp值:

其中n是不属于稳定期区间的qp的数量。

那么其中m是属于稳定期区间的qp的数量,是用于值的稳定期的开始。这里,当考虑qp是否属于稳定期区间时,应该理解,所考虑的稳定期区间是与在qp图中已经分配了qp的块b相关联的函数的稳定期区间。因此,来自类k中的qp的相同值,qp值可以属于用于第一块b1而不是第二块b2的函数的稳定部分。

根据本公开,它意味着稳定部分中的元素将参与质心计算,诸如稳定部分中的元素尽可能少地移动它们所属的类的平均值。

在步骤53中,计算用于qp的每个类i的误差。在k-均值算法中,用于类的误差计算如下:

使用与上述相同的方法,误差计算被调整如下:

具有

pi=max(qpe-ck,0)ifqpi∈[qpe,255]

在步骤54中,将误差ek与阈值进行比较。如果误差ek很小,即如果误差ek低于阈值,则聚类方法结束,否则,聚类从步骤51迭代到54。

根据本公开的实施例,在k-均值算法中,通过对类的元素求平均来经典地完成质心计算。这可能导致质心值为非整数值,并且质心值彼此非常接近。为了避免这种情况,在质心计算之后,每个类都以整数值与另一个类进行比较:

如果值tk1,k2低于阈值,则合并类。在这种情况下,可以在下一次迭代中重新插入新类。

根据本公开的另一实施例,质心的数量可以低于类的目标数量。这样的目标数可以是例如在vp9编码器中n类的硬约束等于8。质心的数量可以低于目标数量,例如,因为如下所公开的类合并。

根据该实施例,聚类方法将尝试插入新的质心以很好地平衡质心。选择新的类质心作为初始猜测以最小化全局误差,例如通过取最分离的质心之间的值。

根据本公开的实施例,qp图的不同量化参数的数量取决于图片的目标比特率。这意味着qp类的数量以及因此质心的数量取决于用于要编码的图片的目标比特率。

当为图片分配的速率变低时,与用于图片的感知度量的增益相比,用于编码qp图的成本的开销可能变得太高。因此,当在图1的步骤14处调整qp图时,调整最大质心数以便调整qp图的成本到分配给要编码的图片的速率。这种调整可以例如通过调整质心的数量作为标称量化参数qpg的函数来执行。例如,在低qp(高比特率)下,可以将8个类用于qp图,在高qp(例如qpg=250)下,对于整个图片可以使用仅一个类,对于中间qp值,例如qpg=125,可以将4个类用于qp图。

根据本公开的实施例,为了降低qp图的编码成本,在图1的步骤15执行对分配给qp图中的每个块的qp的细化。根据其他变型,这样的步骤15也可以在图4a、4b或4c公开的任何一个实施例中执行。

根据该实施例,对于每个块、块轨迹,即表示qp的度量(失真)函数的函数mk以及目标整体失真g0是已知的。通过设置最大度量误差de,可以为每个块推导出qp[qpm,qpm]的可允许范围,如图6中所公开的。

根据变型,使用空间邻域来编码qp图以便确定熵编码器的上下文。图7图示了对于qp图的当前块(用较粗的线表示)的这种空间邻域。为了降低qp图的成本,用于每个当前块的qp应尽可能与其相邻块的qp相似。为此,对于qp图的每个块,从分配给相邻块的qp值计算中值qp值。如果中值在qp的可允许范围的[qpm,qpm]区间内,则将用于当前块的qp设置为中值。

否则,对于当前块的因果邻域的每个相邻块,如果分配给相邻块的qp值在当前块的qp的可允许范围的[qpm,qpm]区间内,则将当前块的qp值设置为分配给相邻块的qp值。

否则,当前块的qp值保持为分配给qp图中的块的原始qp0值。

根据另一变型,使用时间编码来对qp图进行编码,即将上一帧中的共址块用于熵编码器的上下文。

为了降低qp图的成本,应该将分配给当前块的qp设置为与分配给共址块的qp尽可能相似。

为此,对于每个qp图,如果共址块的值在当前块的qp的可允许范围的[qpm,qpm]区间内,则将当前块的qp设置为分配给共址块的qp值。

否则,当前块的qp值保持为分配给qp图中的块的原始qp0值。

图9图示了根据本公开的实施例的示例性视频编码器的框图。根据本原理的实施例,这样的视频编码器90将视频的一组图片编码为比特流。视频编码器90根据诸如h.266、hevc/h.265、avc/h.264、vp9/vp10的任何视频编码标准或任何专有视频编码系统来执行图片的编码。

传统上,视频编码器90可以包括用于基于块的视频编码的若干模块,如图9所示。将要编码的图片i输入到编码器90。图片i首先由细分模块细分为一组块。然后对图片i的每个块blk进行处理以便编码。块blk可以具有从4×4到128×128像素的大小范围。通常但不是必须地,块blk的大小是2的幂。

编码器90包括模式选择单元,用于(例如,基于速率/失真优化的编码模式)为要编码的图片的块选择编码模式,这种模式选择单元包括:

-运动估计模块,用于估计要编码的图片的一个当前块与参考图片之间的运动,

-运动补偿模块,用于使用所估计的运动来预测当前块,

-内部(intra)预测模块,用于对当前块进行空间预测。

模式选择单元递送预测块pred和要在比特流中编码的相应语法元素,以便在解码器处执行相同的块预测。然后从要编码的图片的块和预测块pred获得残差块res。残差块res由递送变换残差系数tcoef的变换处理模块进行变换。然后,经变换的残差系数由递送经量化的残差变换系数qcoef的量化模块进行量化。

在本公开中,在变换之后使用分配给如在上面公开的任何一个实施例中所公开的qp图中的块的量化参数qp来量化残差块res。

然后将语法元素和经量化的残差变换系数qcoef输入到熵编码模块以递送编码的视频数据。

经量化的残差变换系数qcoef由逆量化模块和逆变换模块进行处理,以便重构残差块res′。使用分配给如上面公开的任何一个实施例中所公开的qp图中的块的量化参数qp来执行块的系数的逆量化。

将预测块pred添加到重构的残差块res′,以便重构形成重构块rec的块。重构块rec存储在存储器中以供图片重构模块使用。图片重构模块执行从重构块rec重构图片i的解码版本i′。然后将重构的图片i′存储在参考图片存储器中以供稍后用作用于对要编码的一组图片的后续图片进行编码或用于对图片i的后续块进行编码的参考图片。

在模式选择单元对要编码的块执行模式选择之前,或在将要编码的图片i编码输入到编码器90之前,可以在编码器的第一编码通道中执行如在图1至图7中公开的任何一个实施例中所公开的qp图的确定。然后,编码器90在量化要编码的当前块的系数时使用分配给qp图中的块的量化参数。

当编码当前图片i时,应该将根据上面公开的任何一个实施例确定的用于当前图片i的qp图编码到比特流中,使得解码器可以使用与在编码阶段相同的量化参数来解码图片i的块。

根据本公开的实施例,qp图包括头部,其中将索引分配给qp图中的每个不同的qp值。也就是说,如果qp图包括n类qp,则头部包括n-1个索引,索引0对应于帧的默认qp(qpg)。qp图还包括索引图,其中将索引分配给qp图的每个块。

然后,通过编码表示头部的数据并且编码表示索引图的数据来对图片的qp图进行编码。通过对图的每个块使用根据图中块的因果邻域的空间预测,或者根据与上一编码图片进行编码的索引图的共址块的时间预测,由熵编码模块编码索引图。

编码器可以使用索引图来共享用于编码索引图的块的其他参数。例如,在vp9编码器中,上面公开的头部用于将给定索引(也称为vp9编码器中的段id)编码特征分配给索引图中已经分配了索引的块。这样的编码特征可以是例如:对可以用于每个索引的参考帧、系数跳过、量化参数、环路滤波器强度、变换大小选项的限制。

在本公开中,共享用于若干编码特征的索引的影响是限制用于图片的不同qp的数量。

从一张图片到另一张图片,可以不对qp图的元素(头部、索引图)全部进行编码。可以有若干种用于图片的qp图的编码模式。

可以完全刷新qp图,即对图的每个块的索引值以及头部进行编码。或者,仅刷新qp图的头部,即仅更新分配给索引的qp值,分配给索引图中的块的索引不变。或者,qp图不变,即将相同的qp值分配给相同的索引,并且索引图保持不变。在该模式中,来自上一编码图片的qp图完全重用于要编码的当前图片。

根据该实施例,为了改善速率和感知失真之间的平衡,下面根据要编码的图片的类型提出qp图编码策略。

对于要编码的每个图片,在表1中示出了可以选择的qp图编码模式,以及与每个编码模式相关联的对速率和失真的影响,其中符号“+”表示对速率或失真的增加影响,并且符号“-”表示减少影响。

表1

对于内部编码(intra-coded)图片,即仅使用空间预测进行编码的图片,当在编码器处使能自适应qp工具时,应始终刷新qp图的头部和索引图。

对于间编码(inter-coded)图片,即通过参考先前的编码图片进行编码的图片,来自表1的任何一个选项都可以是有效的。

典型地,对于具有高速率的间编码图片,应该刷新索引图。根据本公开的实施例,为了保持一组一致的qp,在间编码图片的情况下,分配给qp图的头部中的索引的qp值不变。仅调整索引图。这意味着对于qp图的这种编码模式,在如图5所公开的qp图聚类中,qp类的每个质心的值是已知的。

对于低速率的间编码图片,可以传播索引图而不引入任何失真。对于这样的图片,qp图的附加编码成本可能太高,尤其是对于在深时间层处编码的图片。对于这类图片,应禁用qp图。

这样做的一个问题是会丢失可用于下一编码帧的时间编码的qp图。另一方面,通过使用传播模式保持qp图将增加失真,因为针对当前图片确定的qp图不一定与针对先前图片确定并编码的qp图对齐。

根据该实施例,在传播索引图但通过将每个索引的qp设置为相同的qp值来禁用qp图的情况下,使用“仅刷新头部”模式。通过这样做,索引图仍然可用于针对未来帧的熵编码,但是通过不更新索引图没有引入失真。

对于特定类型的图片,在vp9标准中称为怀旧帧(goldenframes),应该构建一个特殊的图。

怀旧帧是使用对“alt-ref”图片的参考进行编码的图片。alt-ref图片是在比特流中编码的图片,但由于alt-ref图片不用于显示,因此其是不可见的图片。仅对alt-ref图片进行编码以供稍后用作参考图片。alt-ref图片是与怀旧帧在时间上共址的图片,如图8所公开的。对于怀旧帧,期望精确地使用共址的alt-ref图片的块。产生的一个问题是,对怀旧帧进行编码而做出的速率-失真选择可能与alt-ref图片的速率-失真选择不一致,因为qp图在其间发生了变化,如图8所公开的。

为了保持怀旧帧的质量,当编码用于怀旧帧的qp图时,不刷新索引图,即使用上一编码图片的索引图。诸如对于每个索引刷新qp图的头部,而不是编码qp值,对设置为值1的跳过标志进行编码。

通过这样做,将整个怀旧帧编码为块的完全跳过,从而产生共址的alt-ref图片的精确副本。

图10图示了根据本原理的实施例的用于对视频进行编码的装置(100)的简化结构。这样的装置100被配置为根据上面公开的任何实施例实现根据本原理的用于对视频进行编码的方法。已经参考图9公开了编码器装置100的功能单元。下面公开的结构装置100可以被配置为根据上面公开的原理的任何一个实施例并且单独地或组合地实现这些功能单元中的每一个。

结构装置100还可以被配置为实现用于确定qp图的方法,如在图1至图8中描述的任何一个实施例中所公开的。

根据实施例,编码器装置100包括处理单元proc,其配备有例如处理器并由存储在存储器mem中的计算机程序pg驱动,并且实现根据本原理的用于对视频进行编码的方法。

在初始化时,计算机程序pg的代码指令例如被加载到ram(未示出)中,然后由处理单元proc的处理器运行。处理单元proc的处理器根据计算机程序pg的指令实现上面已经描述的用于对视频进行编码的方法的步骤。

编码器装置100包括通信单元comout,以将编码比特流str发送到数据网络。编码器装置100还包括用于接收要编码的图片或视频的接口comin。

根据本公开,公开了用于对视频进行编码的方法。这种编码方法包括:

-关联12来自视频的图片的每个块与将量化参数作为失真值的函数给出的第一曲线,

-根据分配给图片的每个块的相同初始量化参数计算131用于图片的目标整体失真,并对每个块使用相关联的第一曲线,

-确定132用于图片的量化参数图,包括:

-为每个块分配由与用于目标整体失真的块相关联的第一曲线给出的量化参数,

-使用量化参数图对图片进行编码16。

本公开允许基于用于图片的目标整体失真来确定用于要编码的每个块的量化参数。因此,产生的压缩视频的图片质量更均匀。

根据实施例,公开了一种用于对视频进行编码的方法,包括:

-根据一组块的类对来自视频的图片的每个块进行分类12,并且为每个块分配与用于每个块的相应类相关联的失真量化d-q曲线,d-q曲线将量化参数作为失真值的函数给出并且是可逆的,

-使用分配给图片的每个块的相同初始量化参数确定131用于图片的目标整体失真,并使用为每个块分配的d-q曲线以从初始量化参数确定用于每个块的失真,

-确定132用于图片的量化参数图,包括:

-通过对为每个块分配的d-q曲线应用等于目标整体失真的失真值来确定用于每个块的量化参数,量化参数图包括用于每个块的量化参数,

-使用量化参数图对图片进行编码16。

根据本公开的实施例,编码方法还包括根据用于对量化参数图进行编码的编码约束来调整量化参数图。根据该实施例,由于根据编码约束调整所产生的量化参数图(qp图),因此提高了压缩效率。例如,编码约束可以是对图片的块使用有限数量的量化参数。例如,vpx编码器仅允许8个不同的量化参数用于量化参数图。根据变型,用于对量化参数图进行编码的编码约束可以是对分配给每个块的qp进行编码所允许的编码成本或比特率。

根据本公开的实施例,编码方法还包括:

-根据调整的量化参数图和与图片的每个块相关联的第一曲线计算用于图片的整体失真,

-比较整体失真和目标整体失真:

-如果整体失真高于取决于目标整体失真的第一阈值,将目标整体失真减少第一变化因子,

-如果整体失真低于取决于目标整体失真的第二阈值,将目标整体失真增加第二变化因子,

-迭代确定用于图片的量化参数图的操作,根据编码约束调整量化参数图,计算用于图片的整体失真并比较整体失真和目标整体失真,直到整体失真在第一阈值和第二阈值之间或直到已经达到迭代次数。

该实施例允许在所选量化参数的编码速率与所产生的编码图片的质量之间提供折衷。该实施例允许基于感知的图片质量来控制量化参数图的确定。

根据本公开的实施例,编码方法还包括:

-从量化参数图计算中心量化参数,

-比较中心量化参数和初始量化参数:

-如果中心量化参数低于取决于初始量化参数的第一阈值,将目标整体失真减少第一变化因子,

-如果中心量化参数高于取决于初始量化参数的第二阈值,将目标整体失真增加第二变化因子,

-迭代确定用于图片的量化参数图的操作,根据编码约束调整量化参数图,计算中心量化参数并比较中心量化参数和初始量化参数,直到中心量化参数等于初始量化参数或直到已经达到迭代次数。

该实施例允许基于分配给要编码的图片的初始量化参数来控制量化参数图的确定。例如,这种初始量化参数可以是由编码器的速率控制机制分配的量化参数。

根据本公开的实施例,图片的每个块与将量化参数表示为速率值的函数的第二曲线相关联。编码方法还包括:

-根据调整的量化参数图和与图片的每个块相关联的第二曲线计算用于图片的整体速率,

-比较用于图片的整体速率和图片的目标速率:

-如果整体速率低于取决于目标速率的第一阈值,则将目标整体失真减少第一变化因子,

-如果整体速率高于取决于目标速率的第二阈值,则将目标整体失真增加第二变化因子,

-迭代确定用于图片的量化参数图的操作,根据编码约束调整量化参数图,计算用于图片的整体速率并比较整体速率和目标速率,直到整体失真在第一阈值和第二阈值之间或直到已经达到迭代次数。

该实施例允许基于要编码的图片的目标速率来控制量化参数图的确定。例如,这样的目标速率可以对应于使用由编码器分配给图片的初始量化参数计算的图片的速率或直接由编码器分配的速率。

根据本公开的实施例,调整量化参数图使用k-均值聚类方法来减少图的量化参数的数量。

根据本公开的实施例,k-均值聚类包括量化参数类计算,其中对于分配给块的量化参数,量化参数与包括稳定期上的质心的每个量化参数类相关联。

根据本公开的实施例,k-均值聚类包括量化参数类质心计算,其中对于分配给块的量化参数,量化参数属于与块相关联的第一曲线的稳定部分,用于计算类质心而考虑的值对应于从量化参数所属的第一曲线的稳定部分的第一量化参数中选择的最大值或者不属于稳定部分的类的量化参数的平均值。

根据该实施例,属于qp-失真曲线的稳定部分的类的量化参数将参与类质心的计算,例如它去除了较小可能的类的平均值。

根据本公开的实施例,k-均值聚类包括类的误差计算,其中对于分配给块的量化参数,量化参数属于与块相关联的第一曲线的稳定部分,通过考虑从差值中选择的最大值来计算误差,该差值被计算为量化参数所属的第一曲线的稳定部分的第一量化参数减去类质心的值或零值。

根据本公开的实施例,图的不同量化参数的数量取决于用于图片的目标比特率。该实施例允许将用于编码qp图的开销成本调整为分配给图片的速率。在低比特率下,与感知度量的增益相比,用于编码qp图的开销成本高。

根据本公开的实施例,编码方法还包括:对于图片的至少一个块,根据至少一个块的空间相邻块或者根据上一编码帧中的与至少一个块共址的块来细化分配给至少一个块的量化参数。该实施例允许通过考虑用于qp图的熵编码的块的空间或时间相邻来降低量化参数图的编码成本。

根据本公开的实施例,量化参数图包括量化参数的n个不同的值,并且量化参数图包括为量化参数的每个不同的值分配索引的头部,以及其中将索引分配给图片的每个块的索引图。编码方法还包括对量化参数图进行编码,包括:

-对表示头部的数据进行编码,

-对表示索引图的数据进行编码。

根据本公开的另一实施例,对于以帧间模式进行编码的图片,在图片之后,后续图片的头部是与图片的头部相同的头部。根据该实施例,用于编码图片的一组量化参数在间编码的图片之间保持一致。

根据本公开的实施例,对于在预定时间层进行编码的图片,在头部中将量化参数的n个不同的值设置为相同的量化参数值。根据该实施例,通过将数据图中的所有索引设置为相同的qp,可以对在深时间层中编码的图片禁用qp图。对于这样的图片,qp图的成本可能太高。根据该实施例,即使对深时间层图片禁用qp图,数据图仍然被传播到未来图片,使得数据图对于用于未来图片的熵编码可用。因此,当没有为图片更新数据图时,不会引入失真。

根据本公开的实施例,对于与仅用作参考图片进行编码的参考图片共址的第一图片,第一图片从参考图片进行间编码,至少一个第二图片在参考图片和第一图片之间进行编码,将被设置为值1的跳过标志分配给第一图片的量化参数图的头部的每个索引而不是量化参数值。例如,仅用作参考图片进行编码的参考图片对应于vpx压缩标准的alt-ref图片,并且与这样的参考图片共址并且从这样的参考图片进行间编码的第一图片对应于vpx压缩标准的怀旧图片。当在alt-ref图片和怀旧图片之间的比特流中对图片进行编码时,因为对于其间图片做出的速率-失真选择,用于对alt-ref图片进行编码的qp图可能在对怀旧图片进行编码时已经改变。该实施例允许通过将怀旧图片编码为块的完全跳过来保持怀旧图片的质量,从而导致alt-ref图片到怀旧图片的精确复制。

根据本公开的方面,还公开了用于对视频进行编码的装置。这种装置包括:

-用于关联来自视频的图片的每个块与将量化参数作为失真值的函数给出的第一曲线的部件,

-用于根据分配给图片的每个块的相同初始量化参数计算用于图片的目标整体失真的装置、并对每个块使用相关联的第一曲线的部件,

-用于确定用于图片的量化参数图的部件,包括:

-用于为每个块分配由与目标整体失真的块相关联的第一曲线给出的量化参数的部件,

-用于使用量化参数图对图片进行编码的部件。

根据本公开,公开了用于对视频进行编码的装置90、100,包括:

-用于根据一组块的类对来自视频的图片的每个块进行分类、并且为每个块分配与用于每个块的相应类相关联的失真量化d-q曲线的部件,d-q曲线将量化参数作为失真值的函数给出并且是可逆的,

-用于使用分配给图片的每个块的相同初始量化参数确定用于图片的目标整体失真、并使用为每个块分配的d-q曲线以从初始量化参数确定用于每个块的失真的部件,目标整体失真是每个块的失真的平均值。

-用于确定用于图片的量化参数图的部件,包括:

-用于通过对为每个块分配的d-q曲线应用等于目标整体失真的失真值来确定用于每个块的量化参数的部件,量化参数图包括用于每个块的量化参数,

-用于使用量化参数图对图片进行编码部件。

根据本公开,提供了用于对视频进行编码的装置90,其包括处理器和至少一个存储器,该处理器被配置为实现对视频进行编码的方法的任何实施例。

根据实施方式,如上所述的用于对视频进行编码的方法的不同步骤由一个或多个软件程序或软件模块程序实现,该软件程序或软件模块程序包括旨在由用于对视频进行编码的装置的数据处理器运行的软件指令,这些软件指令被设计为命令运行根据本公开的方法的不同步骤。

还公开了能够由计算机或数据处理器运行的计算机程序,该程序包括用于命令运行如上所述的用于对视频进行编码的方法的步骤的指令。

该程序可以使用任何编程语言,并且可以是源代码、目标代码或源代码和目标代码之间的中间代码的形式,诸如部分编译的形式或任何其他期望的形式。

信息载体可以是能够存储程序的任何实体或装置。例如,载体可以包括诸如rom的存储部件,例如cdrom或微电子电路rom,或者也可以包括磁记录部件,例如软盘或硬盘驱动器。

同样,信息载体可以是可传输的载体,例如电信号或光信号,其可以经由电缆或光缆通过无线电或其他方式递送。可以特别地将根据本公开的程序上载到因特网类型的网络。

作为替代方案,信息载体可以是包含程序的集成电路,该电路适于运行所讨论的方法或适于被用于所讨论的方法的运行。

根据一种实施方式,如上所述的用于对视频进行编码的方法的不同步骤由一个或多个软件程序或软件模块程序实现,该软件程序或软件模块程序包括旨在由用于对视频进行编码的装置的数据处理器运行的软件指令,这些软件指令被设计为命令运行根据本公开的方法的不同步骤。

根据用于对视频进行编码的方法或装置的实施例,目标整体失真是用于每个块的失真的平均值或鲁棒绝对感知度量和鲁棒扁平化得分的加权和。

根据用于对视频进行编码的方法或装置的实施例,根据用于对量化参数图进行编码的编码约束来调整量化参数图。

根据用于对视频进行编码的方法或装置的实施例,根据调整的量化参数图和为图片的每个块分配的d-q曲线来确定用于图片的整体失真,并且将整体失真和目标整体失真进行比较,其中:

-如果整体失真高于第一值,目标整体失真减少第一变化因子,

-如果整体失真低于第二值,目标整体失真增加第二变化因子。

根据用于对视频进行编码的方法或装置的实施例,第一值和第二值是目标整体失真、初始量化参数和目标速率中的一个的函数,其中,当第一值和第二值是目标速率的函数时,为每个块分配的d-q曲线是为每个块分配的第二d-q曲线。

根据用于对视频进行编码的方法或装置的实施例,调整量化参数图使用k-均值聚类方法来减少图的量化参数的数量。

根据用于对视频进行编码的方法或装置的实施例,k-均值聚类包括确定量化参数类,其中对于分配给块的量化参数,量化参数与包括稳定期上的质心的每个量化参数类相关联。稳定期

根据用于对视频进行编码的方法或装置的实施例,k-均值聚类包括确定量化参数类质心,其中对于分配给块的量化参数,量化参数属于与块相关联的第一曲线的稳定部分,用于确定类质心而考虑的值对应于从量化参数所属的第一曲线的稳定部分的第一量化参数中选择的最大值或者不属于稳定部分的类的量化参数的平均值。

根据用于对视频进行编码的方法或装置的实施例,k-均值聚类包括确定类的误差,其中对于分配给块的量化参数,量化参数属于与块相关联的第一曲线的稳定部分,通过考虑从差值中选择的最大值来计算误差,该差值被计算为量化参数所属的第一曲线的稳定部分的第一量化参数减去类质心的值或零值。

根据用于对视频进行编码的方法或装置的实施例,图的不同量化参数的数量取决于用于图片的目标比特率。

根据用于对视频进行编码的方法或装置的实施例,对于图片的至少一个块,根据至少一个块的空间相邻块或根据上一编码帧中的与至少一个块共址的块来细化分配给至少一个块的量化参数。

根据用于对视频进行编码的方法或装置的实施例,量化参数图包括量化参数的n个不同的值,并且其中量化参数图包括为量化参数的每个不同的值分配索引的头部,以及其中将索引分配给图片的每个块的索引图,其中还对量化参数图进行如下编码:

-对表示头部的数据进行编码,

-对表示索引图的数据进行编码。

根据用于对视频进行编码的方法或装置的实施例,对于以帧间模式进行编码的图片,在图片之后,后续图片的头部是与图片的头部相同的头部。

根据用于对视频进行编码的方法或装置的实施例,对于在预定时间层进行编码的图片,在头部中将量化参数的n个不同的值设置为相同的量化参数值。

根据用于对视频进行编码的方法或装置的实施例,对于与仅用作参考图片进行编码的参考图片共址的第一图片,第一图片从参考图片进行间编码,至少一个第二图片在参考图片和第一图片之间进行编码,将被设置为值1的跳过标志分配给第一图片的量化参数图的头部的每个索引而不是量化参数值。

根据本公开,提供了一种对视频进行编码的方法,包括基于视频的图片中的块的感知度量分类将失真与量化曲线分配(12)给块,基于用于块的曲线和目标失真确定132用于块的量化参数,目标失真是用于图片的整体目标失真,并且基于量化参数对块进行编码16。

根据本公开,提供了用于对视频进行编码的装置90、100,包括用于基于视频的图片中的块的感知度量分类将失真与量化曲线分配给块的部件,用于基于用于块的曲线和目标失真确定用于块的量化参数的部件,目标失真是用于图片的整体目标失真,以及用于基于量化参数对块进行编码的部件。

根据本公开,提供了对视频进行解码的方法,包括:提取(retrieving)用于编码视频比特流的图片的块的量化参数,该量化参数基于用于块的失真与量化曲线和用于块的目标失真,基于块的感知度量分类确定失真与量化曲线,目标失真是用于图片的整体目标失真,并且基于量化参数对块进行解码。可以根据对视频进行编码的方法的任何实施例来确定量化参数。可以根据对视频进行编码的方法的任何实施例对视频进行编码。

根据一种实施方式,如上所述的用于对视频进行解码的方法的不同步骤由一个或多个软件程序或软件模块程序实现,该软件程序或软件模块程序包括旨在由用于对视频进行解码的装置的数据处理器运行的软件指令,这些软件指令被设计为命令运行根据本公开的方法的不同步骤。

根据本公开,提供了用于对视频进行解码的装置100,包括:用于提取用于编码视频比特流的图片的块的量化参数的部件,该量化参数基于用于块的失真与量化曲线和用于块的目标失真,基于块的感知度量分类确定失真与量化曲线,目标失真是用于图片的整体目标失真,以及用于基于量化参数对块进行解码的部件。根据对视频进行编码的方法的任何实施例确定量化参数。根据对视频进行编码的方法的任何实施例对视频进行编码。

根据本公开,提供了用于对视频进行解码的装置100,包括:处理器和至少一个存储器,该处理器被配置为执行对视频进行解码的方法的任何实施例。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,量化参数被包括在用于图片的量化参数图中。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,量化参数图被包括在视频比特流中。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,目标整体失真是用于每个块的失真的平均值或鲁棒绝对感知度量和鲁棒扁平化得分的加权和。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,根据用于对量化参数图进行编码的编码约束来调整量化参数图。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,根据调整的量化参数图和为图片的每个块的分配的失真与量化曲线来确定用于图片的整体失真,并且将整体失真与目标整体失真进行比较,其中:

-如果整体失真高于第一值,目标整体失真减少第一变化因子,

-如果整体失真低于第二值,目标整体失真增加第二变化因子。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,第一值和第二值是目标整体失真、初始量化参数和目标速率中的一个的函数,其中,当第一值和第二值是目标速率的函数时,为每个块分配的失真与量化曲线是为每个块分配的第二失真与量化曲线。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,调整量化参数图使用k-均值聚类方法以减少图的量化参数的数量。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,k-均值聚类包括确定量化参数类,其中对于分配给块的量化参数,量化参数与包括稳定期上的质心的每个量化参数类相关联。稳定期。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,k-均值聚类包括确定量化参数类质心,其中对于分配给块的量化参数,量化参数属于与块相关联的第一曲线的稳定部分,用于确定类质心而考虑的值对应于从量化参数所属的第一曲线的稳定部分的第一量化参数中选择的最大值或者不属于稳定部分的类的量化参数的平均值。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,k-均值聚类包括确定类的误差,其中对于分配给块的量化参数,量化参数属于与块相关联的第一曲线的稳定部分,通过考虑从差值中选择的最大值来计算误差,该差值被计算为量化参数所属的第一曲线的稳定部分的第一量化参数减去类质心的值或零值。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,图的不同量化参数的数量取决于用于图片的目标比特率。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,根据块的空间相邻块或根据上一编码帧中的与所述块共址的块来细化量化参数。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,量化参数图包括量化参数的n个不同的值,并且其中量化参数图包括为量化参数的每个不同的值分配索引的头部,以及其中将索引分配给图片的每个块的索引图,其中还对量化参数图进行如下编码:

-对表示头部的数据进行编码,

-对表示索引图的数据进行编码。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,对于以帧间模式编码的图片,在图片之后,后续图片的头部是与图片的头部相同的头部。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,对于在预定时间层进行编码的图片,在头部中将量化参数的n个不同的值设置为相同的量化参数值。

根据用于对视频进行编码或对视频进行解码的方法或装置的实施例,对于与仅用作参考图片进行编码的参考图片共址的第一图片,第一图片从参考图片进行间编码,至少一个第二图片在参考图片和第一图片之间进行编码,将被设置为值1的跳过标志分配给第一图片的量化参数图的头部的每个索引而不是量化参数值。

根据本公开,提供了格式化为包括表示图片的块的编码数据的比特流,该编码数据被根据对视频进行编码的方法的任何实施例而编码。

根据本公开,提供了计算机可读程序产品,包括用于执行对视频进行编码的方法的任何实施例的程序代码指令。

根据本公开,提供了计算机可读存储介质,其承载包括用于对视频进行编码的方法的任何实施例的程序代码指令的软件程序。

根据本公开,提供了计算机可读程序产品,包括用于执行对视频进行解码的方法的任何实施例的程序代码指令。

根据本公开,提供了计算机可读存储介质,其承载包括用于对视频进行解码的方法的任何实施例的程序代码指令的软件程序。

根据一个实施例,可以借助于软件和/或硬件组件来实现方法/装置。在这方面,术语“模块”或“单元”在本文中可以等同地对应于软件组件和硬件组件或一组硬件和软件组件。

软件组件对应于一个或多个计算机程序,程序的一个或多个子程序或更一般地对应于程序的任何元素或能够实现如下所述的用于相关模块的功能或一组功能的软件。这样的软件组件由物理实体(终端、服务器等)的数据处理器运行,并且能够访问该物理实体的硬件资源(存储器、记录介质、通信总线、输入/输出电子板、用户界面等)。

以相同的方式,硬件组件对应于能够实现如下所述的用于相关模块的功能或一组功能的硬件单元的任何元件。它可以是可编程硬件组件或具有用于运行软件的集成处理器的组件,例如用于运行固件的集成电路、智能卡、存储卡、电子板等。

重要的是要注意,根据本公开的各种方法中的一个或多个元素可以组合,以不同的顺序执行,或者不包含在某些实施例中,同时仍然实现本公开的各方面。可以并行执行其他步骤,其中处理器在开始另一步骤之前不等待步骤的完全完成。

应该理解,对本公开的“一个实施例”或“实施例”或“一个实施方式”或“实施方式”的引用以及其他变型意味着结合该实施例描述的特定特征、结构、特性等等包括在本公开的至少一个实施例中。因此,在整个说明书中出现在各个地方的短语“在一个实施例中”或“在实施例中”或“在一个实施方式中”或“在实施方式中”以及任何其他变型的出现不一定都指代同一实施例。

应该理解,所示和所述的各种特征是可互换的。除非另有指示,否则在一个实施例中示出的特征可以结合到另一个实施例中。此外,除非另外指示为不可分离或不可组合,否则各种实施例中描述的特征可以组合或分离。

如前所述,可以通过使用专用硬件以及能够与适当软件相联合运行软件的硬件来提供图中所示的各种元件的功能。而且,当由处理器提供时,功能可以由单个专用处理器提供、由单个共享处理器提供,或由多个单独的处理器提供,其中某些处理器可以是共享的。

还应该理解,因为附图中描绘的某些组成系统组件和方法优选地以软件实现,所以系统组件或过程功能块之间的实际连接可以根据本公开的过程的编程方式而不同。在给出本文的教导的情况下,相关领域的普通技术人员将能够设想本公开的这些和类似的实施方式或配置。

尽管本文已经参考附图描述了说明性实施例,但是应该理解,本公开不限于那些精确的实施例,并且本领域普通技术人员在不脱离本公开的范围的情况下可以在其中实现各种改变和修改。另外,在不脱离本公开的范围的情况下,可以组合单独的实施例。所有这种改变和修改都应包括在所附权利要求中阐述的本公开的范围内。

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