通过由选出的训练信号生成的码本进行视频编码的矢量量化的制作方法

文档序号:16365312发布日期:2018-12-22 08:24阅读:190来源:国知局
通过由选出的训练信号生成的码本进行视频编码的矢量量化的制作方法

本发明通常涉及视频处理领域,具体涉及视频编解码和视频传输系统。本发明还涉及用于获取训练信号的编码器和方法,其中,所述编码器和方法用于为矢量量化训练码本,涉及一种用于获取训练信号的解码器和方法,其中,所述解码器和方法用于为逆矢量量化训练码本,以及涉及基于获取的训练信号的码本生成。最后,本发明涉及一种包含程序代码的计算机程序,以执行所述方法。

背景技术

由iso和itu开发的国际视频编码标准是混合编码,包括变换、标量量化、变换跳转、运动补偿预测、运动估计、熵编码、去块滤波、采样自适应偏移。对于视频序列来说,每个帧被分割成多个块状区域。视频序列的第一帧仅通过帧内预测进行编码。对于序列或随机接入点之间的所有其它帧,大多数块通常使用帧间预测编码模式。

变换编码和标量量化是混合视频编码系统的元素。所述变换编码和标量量化被用于高效视频编码(highefficiencyvideocoding,简称hevc)标准以及所有h.261、mpeg-1到avc/h.264的前身。使用离散余弦逆变换(inversediscretecosinetransform,简称idct)的不同大小的核心矩阵被指定用于运动补偿视频压缩,而为在hevc中的编码4×4内部块提供备选的离散正弦变换(discretesinetransform,简称dst),以提高压缩性能。在hevc中引入变换跳转来绕开某些编码块的变换。

通常,帧内或帧间预测的残差数据是空间变换的,所述残差数据是原始帧或块与该残差数据预测之间的预测误差或差异。对残差变换系数进行缩放和独立量化,也称为标量量化(scalarquantization,简称sq)。该标量量化占据比特流中的大部分比特率。随着量化参数(quantizationparameter,简称qp)从36变化到20,变换和量化的比特百分比从60%变化到90%。

矢量量化(vectorquantization,简称vq)是一种强大的数据压缩方案,比如a.gersho和r.m.gray的“矢量量化和信号压缩”,kluweradademicpublishers、1992年4月。在比特率降低方面,矢量量化优于标量量化,因为vq一次量化多组数据而不是一次量化一个,并且将像素强度矢量映射为二进制矢量,实现对有限数量的可能再现进行索引。

m.wagner和d.saupe的文献“四叉树视频编码和自适应矢量量化”,欧洲信号处理会议第10期、2000年,提出了一种无运动估计的编码方案。该方法基于在小波域中具有固定码本的自适应矢量量化和四叉树结构。

在b.h.huang、f.henry、c.guillemot和p.salembier的文献“视频压缩中的残基编码的具有速率失真优化码本的模式相关矢量量化”,ieee声学、语音和信号处理(ieeeinternationalconferenceonacoustics,speechandsignalprocessing,简称icassp)国际会议、2015年4月,介绍以hevc中的vq作为二阶预测方法,以进一步减少hevc已知的帧内预测残差中的剩余相关性。

j.m.valin和t.b.timothy的文献“视频编码的感知矢量量化”,proc.spie9410-09、2015年9月,提出了感知矢量量化和对比度掩蔽,以将节能原理应用于视频编码以保持纹理。dct之后的dc分量被单独标量量化,而ac分量使用从fischer和t.r的文献“金字塔矢量量化器”,ieeetrans、“信息论”第32期、第568–586页、1986年,已知的码本来进行编码。码本依赖于当前块的ac分量。

m.narroschke的文献“通过矢量量化器扩展h.264/avc的预测误差编码器”,proc.spie5960、视觉通信和图像处理、2005年,提出使用矢量量化器来扩展h.264/avc的预测误差编码器。使用的码本是固定的。

在us20140355672a1中,提出了一种四路树结构的vq。使用动态四路树结构的vq而不是传统的二路树结构的vq。所提出的结构具有更快的码本搜索效果。

在us5859932a中,结合输入矢量,通过确定最小失真矢量来发现码本中具有最小平方误差的代表矢量。代表矢量和输入矢量之间的差异矢量与代表矢量的索引数据一起发布。基于差异矢量进行码本更新,以便通过使用差异矢量可使代表矢量更接近输入矢量。

然而,即使现有技术提出了基于码本使用矢量量化的视频处理,码本的精度也会受到限制,使得矢量量化质量也受到限制。



技术实现要素:

已明晰上述提到的缺点和问题,本发明旨在改进现有技术。具体而言,本发明致力于提高视频处理中使用的矢量量化的质量,并相应地改进在视频编码器和视频解码器中使用的矢量量化。

虽然可以通过训练信号生成和训练码本,但是本发明尤其旨在获取自适应提高码本质量的训练信号。本发明还旨在通过提供训练信号来改进矢量量化以获取场景自适应码本,即,为视频序列自适应生成的码本和为视频序列的检测到的场景自适应生成的码本。

本发明上述提及的目标通过所附独立权利要求提供的方案实现。本发明有利的实现方案在各自的从属权利要求中进一步定义。

本发明第一方面提供了一种用于获取训练信号的编码器,其中,所述编码器用于为后续帧的视频序列的矢量量化训练码本,其中,每个帧被分为多个编码块。所述编码器包括标量量化单元,用于从预测误差中为所述视频序列的一个或多个训练帧的每个编码块获取标量量化信号。所述编码器包括熵编码单元,用于为所述视频序列的每个训练帧的每个编码块将所述标量量化信号熵编码为输出信号。所述编码器包括数据选择单元,用于根据一个或多个编码块的各自输出信号的代价函数,从所述视频序列的训练帧中选择所述训练帧的所述一个或多个编码块;为每个选出的编码块获取从所选出的编码块的预测误差中导出的训练信号;为所述视频序列的矢量量化训练所述码本。因此,可以获取场景自适应码本,从而改进了矢量量化。

尤其是,所述编码器是用于对编码信号中的视频序列进行编码的编码器,且具体是用于对编码信号中的编码块的原始信号进行编码的编码器。

尤其是,所述标量量化单元可用于通过对预测误差进行标量量化为训练帧的每个编码块获取标量量化信号。

或者,所述标量量化单元可以是变换和标量量化单元,用于通过变换和标量量化预测误差为训练帧的每个编码块获取标量量化信号。

在标量量化之前变换预测误差是可选的。所述标量量化单元实际上可以用于执行变换和标量量化或执行变换跳转和标量量化。换句话说,所述标量量化单元可以执行变换和标量量化,或者只执行标量量化。

尤其是,所述编码器可以包括预测单元,用于为训练帧的每个编码块生成用于编码块的原始信号sk的预测信号s"k。尤其是,预测误差ek是原始信号sk与预测信号s"k之间的差异。在第一方面的所述编码器的一种实现形式中,所述输出信号的代价函数为所述输出信号的每像素的比特数或所述输出信号的率失真函数。所述数据选择单元用于选择各自的输出信号的代价函数大于阈值tvq的编码块。因此,可通过排除不相关的预测误差来优化码本。

尤其是,所述输出信号的代价函数为所述输出信号的每像素的比特数或所述输出信号的率失真函数。

尤其是,与代价函数是每像素比特数或是率失真函数无关,所述数据选择单元用于选择各自的输出信号的代价函数大于阈值tvq的编码块。

在第一方面的所述编码器的另一种实现形式中,所述编码器是用于对编码信号中的视频序列进行编码的编码器。所述编码器用于将所述阈值tvq添加到所述编码信号中作为辅助信息。从而,接收辅助信息的解码器可自身获取训练信号,且可自身生成码本,因此不需要通过辅助信息传输码本相关的信息。

在第一方面的所述编码器的另一种实现形式中,所述训练信号为所选出的编码块的预测误差ek。因此,可以获取允许排除无关编码块的有用训练信号。

在第一方面的所述编码器的另一种实现形式中,所述编码器包括逆标量量化单元,用于从所述标量量化信号中为所述视频序列的每个训练帧的每个编码块获取重建预测误差e'k。所述训练信号为所选出的编码块的重建预测误差e'k。因此,由于该重建预测误差在解码器侧也可用,解码器可自身获取训练信号,且可自身生成码本,以加快码本的生成。此时,不需要将码本从编码器传输到解码器,从而减少了信令和带宽的使用。

尤其是,所述逆标量量化单元可以用于通过对所述标量量化信号进行逆标量量化为训练帧的每个编码块获取重建预测误差e'k。

或者,所述逆标量量化单元可以是逆标量量化和逆变换单元,用于通过对标量量化信号进行逆标量量化和逆变换为训练帧的每个编码块获取重建预测误差e'k。

在逆标量量化之后执行逆变换是可选的。所述逆标量量化单元实际上可以用于执行逆标量量化和逆变换,或者只执行逆标量量化。

所述标量量化单元和所述逆标量量化单元两者的关联在于,根据第一可替代方式,它们都只执行标量量化并且分别执行逆标量量化。根据第二可替代方式,所述标量量化单元和所述逆标量量化单元都执行组合变换和标量量化,并分别执行组合逆标量量化和逆变换。

在第一方面的所述编码器的另一种实现形式中,所述编码器还包括帧内预测单元,用于根据帧内预测模式为原始信号生成预测信号s"k作为帧内预测信号,其中,帧内预测误差ek为所述原始信号sk与所述帧内预测信号s"k之间的差异。所述编码器还包括帧间预测单元,用于根据帧间预测模式为所述原始信号生成所述预测信号s"k作为帧间预测信号,其中,帧间预测误差ek为所述原始信号sk与所述帧间预测信号s"k之间的差异。所述数据选择单元用于为每个选出的编码块获取从所选出的编码块的帧内预测误差导出的第一训练信号和从所选出的编码块的帧间预测误差导出的第二训练信号,其中,所述第一和第二训练信号用于根据帧内预测模式和帧间预测模式分别为所述视频序列的矢量量化训练第一和第二码本。因此,分别针对帧间和帧内预测模式获取用于两个码本的不同训练信号是有可能的。

在第一方面的所述编码器的另一种实现形式中,所述编码器包括场景变化检测器,用于检测所述视频序列中的场景改变。所述数据选择单元用于在检测到场景变化之后获取场景自适应训练信号。从而,可在每个场景变化处获取新的训练信号,以获取改进的和场景相关的码本。

在第一方面的所述编码器的另一种实现形式中,所述训练帧为在根据帧内预测模式和帧间预测模式两者进行编码的场景被检测到改变之后的第一帧。这样是有利的,因为训练信号可以仅从一个帧获取,并且用于获取训练信号的延迟或处理时间可以减少。

在第一方面的所述编码器的另一种实现形式中,所述编码器是用于对编码信号中的原始信号sk进行编码的编码器。所述编码器包括矢量量化单元,用于根据所述训练的码本将待编码帧的给定编码块的预测误差ek矢量量化为矢量量化信号。所述熵编码单元用于为所述给定编码块对所述标量量化单元获取的所述标量量化信号和所述矢量量化单元获取的所述矢量量化信号进行熵编码,以获取相应的标量量化输出信号和矢量量化输出信号;根据所述标量量化输出信号和所述矢量量化输出信号的代价函数选择所述标量量化输出信号或所述矢量量化输出信号作为所述给定编码块的编码信号。因此,可相对于给定的代价函数优化量化输出信号。

所述待编码帧是视频序列的一个帧。尤其是,所述待编码帧可以是训练帧中的一个帧或所述视频序列的其它帧。

在第一方面的所述编码器的另一种实现形式中,所述编码器包括码本生成单元,用于基于所获取的训练信号训练码本。因此,所述编码器在获取训练信号之后可以自身生成码本,从而不需要通过辅助信息传输码本相关的信息。

本发明第二方面提供了一种用于为后续帧的视频序列的矢量量化和/或为后续帧的编码视频序列的比特流的逆矢量量化生成码本的设备。所述设备包括码本生成单元,用于基于根据前述权利要求中任一项所述的编码器所获取的训练信号来训练所述码本。因此,码本的生成可在编码器的外部执行。例如,与位于云端的设备相比,如果所述编码器位于具有受限的电池和计算容量的移动手持单元上,在编码器的外部执行码本的生成是有利的。

本发明第三方面提供了用于获取训练信号的解码器,其中,所述解码器用于为后续帧的编码视频序列的比特流的逆矢量量化训练码本,其中,每个帧被分为多个编码块。所述解码器包括获取单元,用于从所述比特流中为所述视频序列的一个或多个训练帧的每个编码块获取编码信号。所述解码器包括熵解码单元,用于为每个训练帧的每个编码块,将所述编码信号熵解码为标量量化信号。所述解码器包括逆标量量化单元,用于从所述标量量化信号中为每个训练帧的每个编码块获取重建预测误差e'k。所述解码器包括数据选择单元,用于根据一个或多个编码块的各自编码信号的代价函数,从所述视频序列的训练帧中选择所述训练帧的所述一个或多个编码块;为每个选出的编码块获取训练信号,其中,所述训练信号为所选出的编码块的重建预测误差e'k;为所述比特流的逆矢量量化训练所述码本。因此,可以改进矢量量化和整体编码/解码过程。

在第三方面的所述解码器的一种实现形式中,所述获取单元用于从所述比特流中获取阈值tvq。所述代价函数为所述编码信号的每像素的比特数或所述编码信号的率失真函数。所述数据选择单元用于选择各个编码信号的代价函数在阈值tvq以上的编码块。因此,解码器可获取训练信号,从而不必通过辅助信息传输码本相关的信息。

尤其是,所述代价函数为所述编码信号的每像素的比特数或所述编码信号的率失真函数。

尤其是,与代价函数是每像素比特数或是率失真函数无关,所述获取单元用于从所述比特流中获取阈值tvq,所述数据选择单元用于选择各个编码信号的代价函数在阈值tvq以上的编码块。

本发明第四方面提供了一种用于获取训练信号的方法,其中,所述方法用于为后续帧的视频序列的矢量量化训练码本,其中,每个帧被分为多个编码块。所述方法包括:从预测误差ek中为所述视频序列的一个或多个训练帧的每个编码块获取标量量化信号。所述方法包括:为所述视频序列的每个训练帧的每个编码块将所述标量量化信号熵编码为输出信号。所述方法包括:根据一个或多个编码块的各自输出信号的代价函数,从所述视频序列的训练帧中选择所述训练帧的所述一个或多个编码块。所述方法包括:为每个选出的编码块获取从所选出的编码块的预测误差ek中导出的训练信号;为所述视频序列的矢量量化训练所述码本。

尤其是,所述根据本发明第四方面的用于获取训练信号的方法是用于对编码信号中的视频序列进行编码的编码方法的一部分,且具体是用于对编码信号中的编码块的原始信号进行编码的编码方法的一部分。

本发明第五方面提供了用于获取训练信号的方法,其中,所述方法用于为后续帧的编码视频序列的比特流的逆矢量量化训练码本,其中,每个帧被分为多个编码块。所述方法包括:从所述比特流中为所述视频序列的一个或多个训练帧的每个编码块获取编码信号。所述方法包括:为每个训练帧的每个编码块,将所述编码信号熵解码为标量量化信号。所述方法包括:从所述标量量化信号中为每个训练帧的每个编码块获取重建预测误差e'k。所述方法包括:根据一个或多个编码块的各自编码信号的代价函数,从所述视频序列的训练帧中选择所述训练帧的所述一个或多个编码块。所述方法包括:为每个选出的编码块获取训练信号,其中,所述训练信号为所选出的编码块的重建预测误差e'k;为所述比特流的逆矢量量化训练所述码本。

尤其是,所述根据本发明第五方面的获取训练信号的方法是对视频序列的比特流进行解码的解码方法的一部分,且具体是对视频序列的每个编码块的编码信号进行解码的解码方法的一部分。

本发明第六方面提供了一种计算机程序,所述计算机程序具有程序代码,当所述计算机程序在计算设备上运行时,所述程序代码用于执行根据本发明第四或第五方面的方法。

根据第一方面的所述编码器的功能、根据第二方面的所述设备的功能、根据第三方面的所述解码器的功能以及它们的任何实现形式的任一功能可通过处理器或计算机实现,且任何所述装置可作为此类处理器或计算机中的软件和/或硬件实现。

根据第四或第五方面或其任一实现形式的方法可由处理器或计算机执行。

本发明提出将用于编码块的基于内容的vq作为hevc等混合视频编码标准上的附加量化类型。与已知方法相反,码本生成是编码过程的一部分。在编码器侧,选择符合某些标准的帧内或帧间编码块的预测误差作为帧内或帧间vq码本训练的输入数据。如果vq被选用于编码块,则vq将绕开变换和标量量化。如果在解码器侧块由vq进行编码,则不需要进行逆变换和逆标量量化。根据某些实施例,也可要求解码器生成相同的码本。根据其它一些实施例,码本训练可在云端完成。此时,如果需要,编码器和解码器可从云端检索已训练的码本。

需要注意的是,本申请所描述的所有设备、元件、单元和装置均可在软件或硬件元件或它们的任意组合中实现。本申请中描述的各种实体所执行的步骤以及所描述的各种实体要执行的功能均意在指各个实体用于执行各个步骤和功能。即使在具体实施例的下述描述中,完全由外部实体形成的具体功能或步骤未在执行该具体步骤或功能的该实体的具体细节元件的描述中反映,技术人员应清楚可以在各个软件或硬件元件或它们的任意组合中实现这些方法和功能。

附图说明

结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:

图1示出了根据本发明第一实施例的用于获取训练信号的编码器;

图2示出了根据本发明第一实施例的用于生成编码信号的编码器;

图3示出了根据本发明第一实施例的用于获取训练信号并生成编码信号的编码器;

图4示出了根据本发明第一实施例的解码器;

图5示出了根据本发明选择训练帧的编码块;

图6示出了根据本发明的第二和第三实施例的用于获取训练信号的编码器;

图7示出了根据本发明的第二和第三实施例的用于获取训练信号并生成编码信号的编码器;

图8示出了根据本发明第三实施例的解码器;

图9示出了根据本发明第四实施例的系统;

图10示出了根据本发明第五实施例的系统;

图11示出了根据本发明和现有技术的峰值信噪比(peaksignal-to-noiseratio,简称psnr)的对比;

图12示出了根据本发明针对不同量化参数(quantizationparameter,简称qp)的量化误差改进;

图13示出了根据本发明的每帧的量化比特的减少。

具体实施方式

图1示出了根据本发明第一实施例的用于获取训练信号的编码器,尤其示出了用于获取训练信号的编码器100,其中,所述编码器用于为后续帧的视频序列的矢量量化训练码本,每个帧被分为多个编码块。

所述编码器100包括标量量化单元102,用于从预测误差ek中为所述视频序列的一个或多个训练帧的每个编码块获取标量量化信号。换句话说,标量量化信号是为训练帧的每个编码块的原始信号sk获取的。

所述编码器100包括熵编码单元105,用于为所述视频序列的每个训练帧的每个编码块将所述标量量化信号熵编码为输出信号。

在所述编码器100中,所述训练信号为所选出的编码块的预测误差ek。

所述编码器100包括数据选择单元103,用于根据一个或多个编码块的各自输出信号的代价函数,从所述视频序列的训练帧中选择所述训练帧的所述一个或多个编码块;为每个选出的编码块获取从所选出的编码块的预测误差ek中导出的训练信号;为所述视频序列的矢量量化训练所述码本。

尤其是,所述编码器是用于对编码信号中的视频序列进行编码的编码器,且具体是用于对编码信号中的编码块的原始信号进行编码的编码器。

尤其是,所述标量量化单元102可用于通过对预测误差ek进行标量量化为训练帧的每个编码块获取标量量化信号。或者,所述标量量化单元102可以是变换和标量量化单元102,用于通过变换和标量量化预测误差ek为训练帧的每个编码块获取标量量化信号。

在标量量化之前变换预测误差ek是可选的。所述标量量化单元102实际上可以用于执行变换和标量量化或执行变换跳转和标量量化。换句话说,所述标量量化单元102可以执行变换和标量量化,或者只执行标量量化。

尤其是,所述编码器可以包括预测单元108和109,用于为训练帧的每个编码块生成用于编码块的原始信号sk的预测信号s"k。尤其是,预测误差ek是原始信号sk与预测信号s"k之间的差异,其中所述差异由单元101获取。

尤其是,所述编码器100包括逆标量量化单元106,用于从所述标量量化信号中为所述视频序列的每个训练帧的每个编码块获取重建预测误差e'k。

尤其是,所述逆标量量化单元106可以用于通过对所述标量量化信号进行逆标量量化为训练帧的每个编码块获取重建预测误差e'k。或者,所述逆标量量化单元106可以是逆标量量化和逆变换单元106,用于通过对标量量化信号进行逆标量量化和逆变换为训练帧的每个编码块获取重建预测误差e'k。

在逆标量量化之后执行逆变换是可选的。所述逆标量量化单元实际上可以用于执行逆标量量化和逆变换,或者只执行逆标量量化。

所述标量量化单元102和所述逆标量量化单元106两者的关联在于,根据第一可替代方式,它们都只执行标量量化并且分别执行逆标量量化。根据第二可替代方式,所述标量量化单元102和所述逆标量量化单元106都执行组合变换和标量量化,并分别执行组合逆标量量化和逆变换。

尤其是,所述预测单元108和109用于从重建信号s'k中为训练帧的每个编码块生成预测信号s"k。所述重建信号s'k是通过单元107将预测信号s"k与重建预测误差e'k组合而得到的。

尤其是,所述预测单元108和109包括帧内预测单元108和帧间预测单元109。所述帧内预测单元108用于根据帧内预测模式生成预测信号s"k作为帧内预测信号,其中,帧内预测误差ek为所述原始信号sk与所述帧内预测信号s"k之间的差异。所述帧间预测单元109用于根据帧间预测模式生成所述预测信号s"k作为帧间预测信号,其中,帧间预测误差ek为所述原始信号sk与所述帧间预测信号s"k之间的差异。

编码块的预测信号s"k可以由所述帧内预测单元108或所述帧间预测单元109获取。

所述编码器100还包括码本生成单元104,用于基于所获取的训练信号训练码本。

图2示出了根据本发明第一实施例的用于生成编码块的原始信号sk的编码信号的编码器200。

图1示出了训练信号的获取和码本的生成,图2示出了带有矢量量化的编码过程。换句话说,图1示出了矢量量化的初始化阶段,图2示出了矢量量化的稳定阶段。一方面,初始化阶段利用视频序列的训练帧来获取训练信号。另一方面,图2的稳定阶段涉及视频序列的编码。

因此视频序列的每个帧的每个编码块的每个原始信号sk可由图2的编码器200处理,以生成对应的编码信号,这在图2中被称为输出。然后将所述视频序列编码为编码信号,其中,所述编码信号包括为该序列的每个帧的每个块获取的编码信号。

所述编码器200包括与图1中相似的单元。在图2中,没有示出图1的数据选择单元103和码本生成单元104。

另一区别在于,生成编码信号的编码器200包括矢量量化单元210,用于根据所述训练的码本将待编码帧的给定编码块的预测误差ek矢量量化为矢量量化信号。

所述熵编码单元205用于为所述给定编码块对所述标量量化单元202获取的所述标量量化信号和所述矢量量化单元210获取的所述矢量量化信号进行熵编码,以获取相应的标量量化输出信号和矢量量化输出信号。所述熵编码单元205还用于根据所述标量量化输出信号和所述矢量量化输出信号的代价函数选择所述标量量化输出信号或所述矢量量化输出信号作为所述给定编码块的编码信号,其中,所述编码信号对应图2中的输出。

所述编码器200还包括逆标量量化单元211,用于从所述标量量化信号中为所述视频序列的每个帧的每个编码块获取重建预测误差e'k。所述逆矢量量化单元211使用由所述码本生成单元104生成的码本并执行所述矢量量化单元210的逆运算。

图3示出了根据本发明第一实施例的用于获取训练信号并生成编码信号的编码器300。相应地,所述编码器300是编码器100和200的组合,并且包括编码器100和200两者的单元并且执行编码器100和200两者的功能。

第一实施例提出混合视频编码,并与,例如,hevc兼容。每个帧被分成块形区域或编码块。优选地,所述视频序列的第一帧是帧内帧,并且仅使用帧内预测来编码,帧内预测使用同一帧的预测数据且不依赖于其它图片。对于序列的或者随机接入点之间的所有其它帧,大多数编码块优选使用帧间预测编码模式或帧间预测。

在使用基于重建信号的常规帧内或帧间方法完成预测之后,预测误差ek=sk-s″k被标量量化。所述矢量量化单元被设置为与所述标量量化单元平行,其中,所述标量量化单元可以是变换和标量量化单元,像在hevc中一样,在所述标量量化单元中变换编码可以被跳过。

因此,预测误差可以通过矢量量化码本中的矢量或者可选变换编码后的标量量化来量化。选择矢量量化或标量量化的决定基于一定的准则。例如根据拉格朗日率失真成本,它是平方误差和比特率的加权和。

附加辅助信息,如选出的量化器的信息,该信息是矢量量化或标量量化,在编码器处被编码,以便被传输到解码器。换句话说,关于为给定编码块选择矢量量化或标量量化的信息也添加在编码信号中作为辅助信息。

在第一实施例中,由码本生成单元104和304生成的码本也作为辅助信息或与编码信号一起被传输到解码器。另外,辅助信息包括定义已用于矢量量化的码本的矢量的索引信息。

图4示出了根据本发明第一实施例的解码器,尤其示出了用于解码根据第一实施例的编码器先前编码的后续帧的编码视频序列的比特流的解码器400。所述解码器400用于将比特流解码为解码信号sk,d,其中,每个解码信号对应一个编码块。然后,组合所述解码信号,以获取视频序列的帧。

所述解码器400包括获取单元(未示出),用于从所述比特流中为所述视频序列的每个帧的每个编码块获取编码信号。

所述解码器400包括熵解码单元405,用于为每个帧的每个编码块,将所述编码信号熵解码为量化信号。

所述获取单元还用于从所述比特流中获取附加辅助信息。例如,为给定编码块选择矢量量化或标量量化的信息是从比特流中获取的。并且,根据第一实施例的编码器生成的码本是从比特流获取的,以及定义必须使用码本的哪个矢量的索引信息也是从比特流获取的。

基于接收到的关于码本以及关于给定编码块的量化选择的附加辅助信息,所述解码器400将从熵解码单元405获取的量化信号解码为重建预测误差e'k。此时,所述解码器400包括逆标量量化单元406和逆矢量量化单元411,其类似于根据第一实施例的所述编码器的逆标量量化单元和逆矢量量化单元。并且,类似地,所述逆标量量化单元406可以包括逆标量量化和逆变换单元。

如果根据辅助信息量化信号已经通过标量量化被量化,则所述量化信号由所述逆标量量化单元406处理,以获取重建预测误差e'k。如果根据辅助信息量化信号已经通过矢量量化被量化,则所述量化信号由所述逆矢量量化单元411处理,以获取重建预测误差e'k。其中,所述逆矢量量化单元411利用码本和从比特流中获取的索引信息。

所述解码器400还包括与编码器类似的帧内预测单元408和帧间预测单元409,以获取,例如,重建信号s'k。

在下文中,根据本发明,用于获取训练信号的编码块的选择将连同图5一起阐述,其中,所述选择用于训练码本。

由于hevc已经实现了良好的编码效率,因此不是帧中的所有编码块都用大量的比特进行编码。例如,跳转模式不编码比特流中的任何残差或预测误差,并且在大多数情况下,该模式的所选合并候选提供相对准确的预测。

本发明现在提出将矢量量化的重点放在某些编码块上,例如,比特成本相对较高的编码块。矢量量化的质量在很大程度上取决于码本的精度。应该选择合适的数据,即适当的训练信号来训练码本。由于矢量量化只应用于量化成本较高的编码块,因此给定一个预定阈值,如每像素平均比特成本,以排除不相关的预测误差。或者,可以使用率失真函数来排除不相关的预测误差。

图5粗略示出了编码块的选择以及用于训练矢量量化码本的预测误差的相应选择。在图5所示例子中,量化比特的阈值被设置为每像素1比特。符号“o”代表选出的预测误差,符号“x”代表排除的预测误差。如果用符号“x”代表的所有预测误差也包括在所述训练中,则矢量量化区域的代表矩心将会偏离,导致量化不准确。

为了选择适当的预测误差作为码本训练的输入,量化比特的分析在生成和应用vq码本之前完成,因为最有可能的增益可能在于vq比传统量化技术需要更少比特的区域。只有这些区域的预测误差才会被选用于训练,以便生成适当的码本。

通常,视频序列内的场景的第一帧或前几帧将被用于训练,即将被用作训练帧。矢量量化码本是在选定的预测误差上创建的,可以从编码过程中获取。预测误差的选择是基于,例如,hevc中的编码单元(codingunit,简称cu)或变换单元(transformunit,简称tu)等的编码块的标准变换和标量量化所需的每像素的比特数。该cu是预定义大小的视频序列的基本编码结构,其包含图片的一部分,其中,cu可以被分割成更多的cu。所述tu是具有用于应用变换和量化的残差或变换系数的基本代表块。

如果用于编码块,如hevc中的cu或tu,的比特数量超过特定的预定阈值tvq,则将在训练数据中获取该编码块的预测误差。在图1所示的矢量量化码本训练中,例如序列或场景中的第一个(或前几个)帧将被用于训练。在训练期间,将使用常规变换(或变换跳转)和标量量化对编码块的帧内和帧间预测误差进行编码。

可以基于矢量量化的每像素平均比特数来选择阈值tvq。例如,所述阈值可以基于码本的大小和预测误差被选择为需要量化的编码块的大小来定义。例如,如果期望用具有2m个大小为n×n的矢量的码本来量化维度为n×n的编码块的预测误差,则可以基于矢量量化将阈值选择为每像素平均比特数(bpp),其为m/(n×n)。

基于预定义标准,例如码本的大小,选择预测误差tvq的阈值,码本将在对序列或序列内场景的第一帧或多帧进行编码之后生成。而且,预测误差可以被分成源自帧内和帧间预测的预测误差。用于帧内块的码本是基于帧内预测误差生成的,用于帧间块的码本是基于帧间预测误差生成的。

例如,期望用包含212个8×8像素大小的矢量的码本来量化8×8编码块的预测误差。假设码本中的所选矢量的索引是通过固定长度编码的方式来编码的,则基于矢量量化的每像素平均比特数(bpp)是12/64,这意味着阈值tvq等于3/16。用于训练的相关预测误差应是来自编码块的预测误差,其中,所述编码块的变换和标量量化成本超过3/16bpp。

码本训练有不同的方法。在一种可能的实现方式中,可以选择linde-buzo-gray(linde-buzo-gray,简称lbg)算法来训练码本。该lbg算法可从,例如y.linde的文献“矢量量化器设计的一种算法”,ieee通信学报,1980年1月,等中获知。

如果根据下面描述的第一实施例或第二实施例,编码器生成码本且该码本从编码器传输到解码器,码本训练方法与解码器无关。如果根据下面描述的第三实施例,编码器和解码器都生成码本,或者根据下面描述的第四和第五实施例,码本在云端生成,该码本不会从编码器传输到解码器。在后一种情况下,码本训练方法和相关参数,例如选择一帧或几帧的适当预测误差的阈值及所述适当预测误差的图像顺序计数,终止码本训练的条件,码本的大小等等,需要从编码器编码并传输到解码器作为,例如,辅助信息。

对于lbg算法,从编码器传输到解码器的这些参数可以包括如码本的大小、失真度量、迭代次数和收敛条件等。

一种可能的实现方式涉及以4×4块为单位的预测误差的矢量量化,并将该块重新排列成16维的矢量。为了降低码本的编码成本和索引的码长,码本中的矢量数被限制为4。矢量的索引可以通过2比特使用固定长度或者更少长度来编码。这里感兴趣的块是诸如每像素超过2/16比特数的量化的块。

初始尝试使用4×4块进行研究,这表明,如果提供了具有16维的4个矢量的码本,则可以实现增益。通常,矢量量化针对由视频编码标准定义的所有块的大小,例如hevc中的编码树单元(codingtreeunit,简称ctu)的高达64×64。对于大于4×4的块,可以使用适当方法如级联结构或变换等来提高矢量量化码本的质量。级联结构可以从asif、a.、moura、j.m.f.的文献“非因果预测图像编解码器、残差平均去除和级联vq”,ieee视频技术电路和系统汇刊、第6卷、第1期、第42–55页、1996年2月,等中获知。矢量量化码本中的矢量数量取决于块大小和每像素目标比特率。针对帧内和帧间预测模式生成两个不同的码本,因为这两个不同的码本具有不同特征的预测误差。

由于视频内容不同,具有普遍代表性的码本通常效率低下。因此,本发明提出计算基于场景的码本。将场景开始时帧的预测误差作为训练数据。为了同时获取帧内和帧间预测误差的码本,可以利用通过两种预测模式进行编码的第一帧来生成码本。

以较低量化步长编码的预测误差,即较高的编码质量,远小于基于低质量参考帧的预测误差。因此,可以为每组量化参数创建不同的码本。

为了降低复杂度,仅可使用针对场景内的i、p和b帧的每组量化参数的一个码本。通过使用,例如,霍夫曼码、上下文自适应二进制算术码、固定长度码或可变长度码来对所选矢量的索引进行编码,以降低比特率进一步进行矢量量化。

在生成码本之后,通过,例如,由图2或图3的编码器与所提出的矢量量化并行地进行变换和标量量化,来执行编码。对某个块是采取矢量量化还是采取变换编码和标量量化的判定可以基于,例如,由下式(1)中给出的拉格朗日成本d:

d=sse+λ·b(1)

其中sse是量化误差的平方和,b表示矢量量化的索引的编码比特成本(加上在码本不会从编码器传输到解码器的情况下在解码器或在云端生成码本的参数的成本)或块的标量量化的成本。λ是可以基于,例如,标量量化参数和帧的类型导出的权重因子。例如,λ可以是通过量化参数因子(quantizationparameterfactor,简称qpf)与基于当前编码帧的量化参数dqp的项的乘积而导出的权重:

其中,dqp等于量化参数(quantizationparameter,简称qp)与qp偏移之和。根据模拟配置和帧类型,qpf可用。对于hm-16.4中的ld-p配置,qpf在表1中定义。

表1:量化参数因子

qp用于确定hevc中的量化步长(δ),可参考m.budagavi等人的文献“高效视频编码(highefficiencyvideocoding,简称hevc)标准中的核心转换设计”,ieee信号处理专题期刊、第7卷、第6章、第1029–1041页、2013年12月。qp和等效量化步长之间的关系由下式给出:

选择码本中具有最小平方量化误差的矢量作为矢量量化的代表。如果拉格朗日成本dvq小于变换编码和常规标量量化dsq的成本,为该块选择矢量量化。所述解码器将通过使用编码索引,即作为辅助信息而获取的索引信息,从码本中找到矢量。

在一种可能的实现方式中,选择码本中具有最小平方量化误差的矢量作为矢量量化的代表。如果拉格朗日成本dvq小于常规标量量化dsq的成本,为当前块选择矢量量化。所选出的矢量和码本的索引从如图1–3所示的编码器被传输到如图4所示的解码器。附加辅助信息在编码器处被编码并被传输到解码器,其中,所述辅助信息为选出的量化器的信息等,其为矢量量化或变换编码和标量量化。基于接收到的附加辅助信息,如图4所示的解码器通过矢量量化或变换编码和标量量化对块进行解码。如果块被矢量量化编码,解码器通过使用接收到的索引从接收到的码本中找到矢量。

图6示出了根据本发明的第二和第三实施例的用于获取训练信号的编码器600。

图7示出了根据本发明的第二和第三实施例的用于获取训练信号并生成编码信号的编码器700。

所述编码器600和700对应于图1和图3中的编码器。区别在于训练信号是所选编码块的重建预测误差e'k,而不是图1和图3中的预测误差ek。

本发明第二实施例涉及所述编码器600和700,所述编码器600和700使用所述重建预测误差e'k作为训练信号,并涉及图4的解码器400。在该第二实施例中,生成的码本和编码信号一起作为辅助信息从编码器传输到解码器。

本发明第三实施例涉及所述编码器600和700,所述编码器600和700使用所述重建预测误差e'k作为训练信号,并涉及图8的解码器800。在该第三实施例中,生成的码本不会作为辅助信息从编码器传输到解码器。相反,所述解码器800自己生成码本,从而减少了辅助信息的数量。

图8相应地示出了根据本发明第三实施例的解码器,尤其示出了一种用于获取训练信号的解码器800,其中,所述解码器用于为后续帧的编码视频序列的比特流的逆矢量量化训练码本,其中,每个帧被分为多个编码块。

所述解码器800包括获取单元(未示出),用于从所述比特流中为所述视频序列的一个或多个训练帧的每个编码块获取编码信号。

所述解码器800包括熵解码单元805,用于为每个训练帧的每个编码块,将所述编码信号熵解码为标量量化信号。

所述解码器800包括逆标量量化单元806,用于从所述标量量化信号中为每个训练帧的每个编码块获取重建预测误差e'k。

所述解码器800包括数据选择单元803,用于根据一个或多个编码块的各自编码信号的代价函数,从所述视频序列的训练帧中选择所述训练帧的所述一个或多个编码块;为每个选出的编码块获取训练信号,其中,所述训练信号为所选出的编码块的重建预测误差e'k;为所述比特流的逆矢量量化训练所述码本。

尤其是,所述代价函数可为所述编码信号的每像素的比特数或所述编码信号的率失真函数。

尤其是,所述获取单元用于从所述比特流中获取阈值tvq。所述数据选择单元803可用于选择各个编码信号的代价函数在阈值tvq以上的编码块。

所述解码器800的其余结构对应于图4的解码器。

在第三实施例中,所述编码器600和700和所述解码器800生成码本。因此,不需要将码本从编码器传输到解码器。为了确保在编码器和解码器上都生成相同的码本,码本训练的输入数据应是重建预测误差e'k而不是预测误差ek。此外,除了矢量量化或标量量化模式之外,还可以将一些附加参数作为辅助信息从编码器传输到解码器,这表明了所选的量化方法。附加参数包括选择一个或多个训练帧的适当预测误差的阈值及其图像顺序计数,终止码本训练的条件,码本的大小等。这些参数可以通过图片参数集(pictureparameterset,简称pps)和/或序列参数集(sequenceparameterset,简称sps)和/或其它相关参数集进行传输。用于识别视频序列训练帧的辅助信息也可以从编码器传输到解码器。

对于lbg算法,从编码器传输到解码器的这些参数可以包括如码本的大小、失真度量、迭代次数和收敛条件等。在图6和图7所示的编码器中,基于预定义标准,例如码本的大小,选择重建预测误差tvq的阈值,码本将在对序列或序列内场景的第一帧或多帧进行编码之后生成。将所述码本的大小,所述选择重建预测误差的阈值,重建预测误差来自的帧,码本收敛的条件以及其它相关参数传输给解码器。此外,所述重建预测误差分别被分离为帧内和帧间重建预测误差。用于帧内块的码本是基于帧内重建预测误差生成的,用于帧间块的码本是基于帧间重建预测误差生成的。

在图8所示的解码器800中,基于接收到的辅助信息,例如pps和/或sps中的编码模式信息,可以通知解码器对当前序列或几个帧使用矢量量化。在执行矢量量化时,基于接收到的辅助信息,如码本的大小,选择重建预测误差的阈值,重建预测误差来自的帧,码本收敛的条件以及其它相关参数等生成码本。所述码本将在解码序列或序列内场景的第一个或多个帧之后生成。用于帧内块的码本是基于帧内重建预测误差生成的,用于帧间块的码本是基于帧间重建预测误差生成的。

图9示出了根据本发明第四实施例的系统900。所述系统包括编码器901,解码器903和云计算设备902。如图9所示,可以通过云结构来实现矢量量化,以减轻编码器和解码器的计算负担。编码器和解码器与通信模块相结合,可以实现云端和编码器/解码器之间的通信。

在图9的第四实施例中,所述编码器901将已压缩或未压缩的训练信号和相关辅助信息,如使用标量量化时的帧内/帧间块的比特成本,发送到所述云端902,从而将码本生成和可选地将数据选择移到所述云端。在码本生成之前,所述编码器不使用矢量量化。一旦码本创建完成,就通知编码器和解码器。pps/sps或其它参数集中的url链接可用于识别码本下载的位置。然后,所述编码器901可以从云端902中检索用于编码的码本,使得除了变换编码和标量量化之外,可将矢量量化视为替代选项。在解码器903侧,一旦码本准备就绪,解码器可从云端902检索码本,并基于编码模式和其它接收到的辅助信息来对块进行解码。在码本准备就绪之后,编码器和解码器可分别根据第一实施例的编码器和解码器进行操作。可使用pps和/或sps和/或其它参数集中的信令机制来传输辅助信息,并通知解码器903在当前序列或多个帧中使用矢量量化。图9所示的示例结构是使编码器或解码器在计算资源有限的情况下成为移动设备的有吸引力的方案。这种结构减少了编码器和解码器的计算负担。

图10示出了根据本发明第五实施例的系统1000。所述系统1000包括编码器1001,解码器1003和云计算设备1002。第五实施例的系统与根据第四实施例的系统900的不同之处在于所述编码器1001使用重建预测误差e'k作为训练信号,而所述编码器901使用预测误差ek作为训练信号。

对以上所示的所有实施例,可以在pps和/或sps和/或编码块级别和/或低于编码块级别给出用于指示在何处使用矢量量化的语法或辅助信息。如果vq码本是场景相关的,则可以定义语法或辅助信息来指示pps中的场景变化和码本更新,编码块级别和/或低于编码块级别。语法或辅助信息可以通过内容自适应二进制算术编码或固定长度来进行编码。

以下基于以4×4块为单位的矢量量化和将块重新排列为16维矢量,结合上述已描述的示例来呈现测试结果,其中,码本中的矢量数被限制为4。给定通过矢量量化来编码块的选择标准,与变换和标量量化相比,具有4个矢量的码本具有较低矢量索引成本的优势。然而,所述具有4个矢量的码本支付更高的sse价格。因此,我们期望大多数选择矢量量化的块具有较低的平方量化误差。

该模拟基于hevc参考软件hm-16.4的编码过程中的预测误差。我们把该模拟看作开环模拟。可包括通过矢量量化进行编码的块的重建帧被用于峰值信噪比(peaksignal-to-noiseratio,简称psnr)计算。我们使用由常规hevc测试模型生成的帧作为参考帧。

为了在我们的开环模拟中判断向hevc应用矢量量化的前景,只有当矢量表示质量高于变换和标量量化的质量的预测误差时我们才使用矢量量化。因此,我们的开环重建帧总比存储在参考图片缓冲区中的帧具有更好的质量。

vq的码本通过pcm进行编码并从编码器传输到解码器。为码本中的矢量的每个元素提供8个比特。假设低延迟p配置和一组图像(groupofpicture,简称gop)的大小为4,如果码本每秒刷新一次,则码本在比特流中需要大约1kbps。测试集包含采用4:2:0子采样的jct-vc测试序列的c和f类。前者的分辨率为832×480(basketballdrill、partysence、bqmall和racehorses),而后者包含分辨率为1920×1080的basketballdrive、kimono、cactus、parkscene和bqterrace。

我们在这两组序列中使用hm-16.4作为锚点。所有模拟均基于jct-vc通用测试条件的低延迟p配置序列的前100帧。对于每个测试序列,qp设置为20、24、28、32和36。

图11示出了根据本发明和现有技术的峰值信噪比(peaksignal-to-noiseratio,简称psnr)的对比。racehorses的率失真曲线如图11所示。连接五个圆的虚曲线是所提出的具有矢量量化的编码器的结果,而带有实线的方块则显示了具有相同qp的hm-16.4的相应结果。每条曲线的五个数据点的qp为从左边的36到右边的20。

图12示出了根据本发明针对不同量化参数(quantizationparameter,简称qp)的量化误差改进。图12具体示出了qp对racehorses比特率的影响,并提供了解释。随着qp的下降,标量量化的步长变得更小,这导致更高的比特率。更多块将超过每像素(2/16)平均比特数的预定义阈值,这在图12的第一子图中的黑色列示出。比率从qp36的5.46%上升到qp24的66.56%。另一方面,较低的qp提高了重建视频的质量。同时,量化器的精度要求更高,超过了2比特矢量量化器所能提供的精度要求。因此,由vq提供比变换和标量量化器更低sse的块的数量从21%下降到6%。结果,在视频(灰色列)中使用vq的块的百分比为qp下降的凸曲线。因此,比特率下降的整体比例在racehorses选定的qp中间为28时达到最大值(4.79%)。测试集中的所有其它序列表现出类似的qp趋势。重建视频的质量比hm-16.4的质量平均高出约0.02db。

图13示出了根据本发明的每帧的量化比特的减少。尽管每个帧的dqp可能会随着qp偏移而改变,对于基于给定qp的单个模拟,整个序列使用相同码本。从图13可以看出,图像顺序计数(pictureordercount,简称poc)等于4的倍数且用最低dqp进行编码的帧的比特减少更多。因此,用于相同序列的基于qp的码本可以进一步提高vq的编码增益。尽管信令的编码成本不可用,但是我们可以使用类似的语法来估计它。就bd-rate而言,跳转标志的语法在编码比特流中占据大约2%。尽管量化类型信令需要很多比特,所提出的方法仍然可以带来约为2%的平均编码增益。

已经结合作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所请发明,研究附图、本公开以及独立权项,能够理解并获得其它变体。在权利要求以及描述中,术语“包括”不排除其它元件或步骤,且“一个”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的组合不能在有利的实现方式中使用。

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