用于预测画面编码和解码的方法和设备

文档序号:1602874 发布日期:2020-01-07 浏览:18次 >En<

阅读说明:本技术 用于预测画面编码和解码的方法和设备 (Method and apparatus for predictive picture coding and decoding ) 是由 E.弗朗索瓦 C.切旺斯 F.希隆 于 2018-03-15 设计创作,主要内容包括:公开了用于编码画面的块的方法。该方法包括:针对块的至少一个样本并且针对一个当前分量:-获得预测值;-响应于映射函数从样本的源值并且从预测值确定映射的残差值;以及-将映射的残差值编码到比特流;其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的减少或对于给定的比特流的比特成本的重构质量的增加中的至少一个。(A method for encoding a block of a picture is disclosed. The method comprises the following steps: for at least one sample of the block and for one current component: -obtaining a predicted value; -determining mapped residual values from the source values of the samples and from the predicted values in response to the mapping function; -encoding the mapped residual values into a bitstream; wherein the mapping function is derived to obtain at least one of a reduction in bit cost of the bitstream for a given reconstruction quality or an increase in reconstruction quality for the bit cost of the given bitstream.)

用于预测画面编码和解码的方法和设备

技术领域

本原理总体上涉及用于画面编码和解码的方法和设备,并且更具体地涉及用于编码和解码画面的块的方法和设备。

背景技术

新一代视频格式包括更宽的颜色色域,更高的帧率和更高的动态范围。已经创建新的标准来支持该类型的内容。例如,ITU-R建议书BT-2020定义这样的格式,该格式包括当前部署的BT-709色域之外的原色。ITU-R建议书BT-2100定义这样的格式,该格式包括传递函数,以使得能够相对于BT.709扩展内容的动态范围。BT-2100中的原色与BT-2020中的原色相同。

使用BT.709容器(container)或BT.2100容器导致明显不同的代码字分布。到目前为止开发的大多数编码工具专注使用BT.709容器的SDR信号。当移至更宽的容器时,诸如BT.2100容器,可能要求对编解码器设计的适应或改变。因此,需要在编码之前“重塑”或映射样本值,以便修改新容器中的样本值以更好地适合当前编解码器和编码器(诸如,例如,HEVC)期望的属性。

已知在对定容器(例如,BT.2100)中表示的样本进行编码之前对其执行映射/重塑,以得到类似于初始输入样本分布(例如BT.709)的样本分布。将逆映射应用于解码的样本。编码之前的映射和解码之后的逆映射使信号失真。实际上,映射和逆映射处理二者应用定点精度,这产生了信息损失。该失真随着编码处理的失真而累积,并导致编码性能的损失。

代替在编码之前“重塑”样本值,处理新容器的替代方法修改量化步骤,以对变换的预测残差的系数进行量化。为此,已知的是,基于从对于样本的给定块的预测、原始或重构样本推导的值,针对该块,向残差预测样本的变换(例如,DCT)产生的系数所应用的量化步骤进行适配。按块适配量化步骤可能效率低,尤其是在块包含具有许多不同值的样本(例如,亮样本和暗样本)的情况下。

公开了用于编码画面的块的方法,包括针对块的至少一个样本以及针对一个当前分量:

-获得预测值;

-响应于映射函数,从样本的源值并且从预测值确定映射的残差值;和

-将映射的残差值编码到比特流;

其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或对于给定的比特流的比特成本的重构质量的增加中的至少一个。

一种用于编码画面的块的设备,包括:

-用于获得针对块的至少一个样本并且针对一个当前分量的预测值的部件;

-用于响应于映射函数,从样本的源值并且从预测值确定映射的残差值;和

-用于将映射的残差值编码到比特流的部件;

其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或对于给定的比特流的比特成本的重构质量的增加中的至少一个。

在变型中,公开一种编码设备,其包括被配置为访问画面的块的通信接口和被配置为进行以下的至少一个处理器:

-获得访问的块的至少一个样本和一个当前分量的预测值;

-响应于映射函数,从样本的源值和预测值确定映射的残差值;和

-将映射的残差值编码到比特流;

其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或对于给定的比特流的比特成本的重构质量的增加中的至少一个。

公开了表示画面的块的比特流,包括:

-表示映射的残差值的编码数据,其中,针对块的至少一个样本以及针对一个当前分量,响应于映射函数从样本的源值和预测值,获得映射的残差值,并且其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或者对于给定的比特流的比特成本的重构质量的增加中的至少一个;

-表示映射函数的编码数据。

在变型中,公开了非暂时性处理器可读介质,具有存储在其上的表示画面的块的比特流,其中,比特流包括:

-表示映射的残差值的编码数据,其中,针对块的至少一个样本以及针对一个当前分量,响应于映射函数从样本的源值和预测值,获得映射的残差值,并且其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或者对于给定的比特流的比特成本的重构质量的增加中的至少一个;

-表示映射函数的编码数据。

公开一种发送方法,包括:

-发送表示映射的残差值的编码数据,其中,响应于映射函数从样本的源值和预测值,针对画面的块的至少一个样本以及针对一个当前分量,获得映射的残差值,并且其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或者对于给定的比特流的比特成本的重构质量的增加中的至少一个;

-发送表示映射函数的编码数据。

公开一种发送设备,包括:

-用于发送表示映射的残差值的编码数据的部件,其中,响应于映射函数从样本的源值和预测值,针对画面的块的至少一个样本以及针对一个当前分量,获得映射的残差值,并且其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或者对于给定的比特流的比特成本的重构质量的增加中的至少一个;

-用于发送表示映射函数的编码数据的部件。

公开一种发送设备,包括配置为访问画面的块的通信接口和配置为进行以下的至少一个处理器:

-发送表示映射的残差值的编码数据,其中,响应于映射函数从样本的源值和预测值,针对块的至少一个样本以及针对一个当前分量,获得映射的残差值,并且其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或者对于给定的比特流的比特成本的重构质量的增加中的至少一个;

-发送表示映射函数的编码数据。

以下实施例应用于上面公开的编码方法、编码设备、比特流、处理器可读介质、发送方法和发送设备。

在第一特定和非限制实施例中,确定映射的残差值包括:

-用映射函数映射样本的源值;

-用映射函数映射样本的预测值;

-通过从映射的分量值中减去映射的预测值来确定映射的残差值。

在第二特定且非限制性实施例中,确定映射的残差值包括:

-通过从样本的源值中减去预测值来确定中间残差值;和

-响应于映射函数,取决于预测值来映射中间残差值。

在第三特定且非限制性实施例中,响应于映射函数,取决于预测值来映射中间残差值包括:将中间残差值乘以取决于样本的预测值的缩放因子。

在第四特定且非限制性实施例中,响应于映射函数,取决于预测值来映射中间残差值包括:将中间残差值乘以缩放因子,缩放因子取决于针对样本的另一分量获得的预测值,该另一分量与当前分量不同。

公开了一种用于解码画面的块的方法,包括针对块的至少一个样本以及针对一个当前分量:

-获得预测值;

-解码样本的残差值;

-响应于映射函数,从解码的残差值和预测值确定样本的重构值;

其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或对于给定的比特流的比特成本的重构质量的增加中的至少一个。

还公开一种用于解码画面的块的设备,该设备包括:

-用于获得针对块的至少一个样本和一个当前分量的预测值的部件;

-用于解码样本的残差值的部件;

-用于响应于映射函数,从解码的残差值和预测值中确定样本的重构的值的部件;

其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或对于给定的比特流的比特成本的重构质量的增加中的至少一个。

在变型中,公开一种解码设备,其包括:被配置为访问比特流的通信接口以及配置为进行以下的至少一个处理器:

-获得块的至少一个样本和一个当前分量的预测值;

-从访问的比特流中解码样本的残差值;

-响应于映射函数,从解码的残差值和预测值确定样本的重构值;

其中,推导映射函数以获得对于给定的重构质量的比特流的比特成本的降低或对于给定的比特流的比特成本的重构质量的增加中的至少一个。

以下实施例应用于以上公开的解码方法和解码设备。

在第一特定且非限制性实施例中,确定样本的重构值包括:

-利用映射函数映射样本的预测值;

-利用映射函数的逆函数来映射解码的残差值;

-通过将映射的预测值与映射的解码的残差值相加来确定重构的值。

在第二特定且非限制性实施例中,确定样本的重构的值包括:

-取决于预测值,利用映射函数的逆函数来映射解码的残差值;

-通过将预测值与映射的解码的残差值相加来确定重构的值。

在第三特定且非限制性实施例中,取决于预测值利用映射函数的逆函数来映射解码的残差值包括:将解码的残差值乘以取决于样本的预测值的缩放因子。

在第四特定且非限制性实施例中,取决于预测值利用映射函数的逆函数来映射解码的残差值包括:将解码的残差值乘以缩放因子,缩放因子取决于针对样本的另一分量获得的预测值,该另一分量与当前分量不同。

附图说明

-图1表示根据特定且非限制性实施例的被配置为编码比特流中的画面的发送器的示例性架构;

-图2例示根据本原理的适应于执行编码方法的示例性视频编码器,例如,HEVC视频编码器;

-图3表示根据特定且非限制性实施例的配置为从比特流解码画面以获得解码的画面的接收器的示例性架构;

-图4例示根据本原理的适应于执行解码方法的示例性视频解码器(例如,HEVC视频解码器)的框图;

-图5A,6A,8A,10A和11A表示根据各种实施例的用于在比特流中编码画面块的方法的流程图;

-图5B,6B,8B,10B和11B表示根据各种实施例的用于从比特流解码画面块的方法的流程图;

-图7描绘映射函数fmap及其逆函数invfmap

-图9描绘映射函数fmap的导数f’map和函数1/f’map;和

-图12示出从dQP表构建的完整或有限范围内的映射函数。

具体实现方式

要理解,已经简化附图和描述以示出与清楚理解本原理有关的元件,同时为了清楚起见,省去在典型编码和/或解码设备中发现的许多其他元件。将理解的是,尽管本文可以使用术语第一和第二来描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一个元件。

画面是单色格式的亮度样本的数组,或者是4:2:0、4:2:2和4:4:4颜色格式的亮度样本的数组和两个相应的色度样本的数组。通常,“块”针对样本阵列(例如,亮度Y)中的特定区域,并且“单元”包括所有颜色分量(亮度Y以及可能的色度Cb和色度Cr)的共位的块。条带是整数个基本编码单元,诸如HEVC编码树单元或H.264宏块单元。条带可以包括完整画面及其一部分。每一条带可包含一个或多个条带片段。

在下文中,单词“重构的”和“解码的”可以互换使用。通常但不一定在编码器侧使用“重构的”,而在解码器侧使用“解码的”。应该注意,术语“解码的”或“重构的”可以意味着比特流被部分地“解码”或“重构”,例如,在去块滤波之后但在SAO滤波之前获得的信号,并且重构的样本可以与用于显示的最终解码的输出不同。还可以互换使用术语“图像”,“画面”和“帧”。还可以互换使用术语“样本”和“像素”。

关于HEVC标准描述各种实施例。然而,本原理不限于HEVC,并且可以应用于其他标准,建议及其扩展,包括例如HEVC或HEVC扩展,像格式范围(RExt),可伸缩性(SHVC),多视图(MV-HEVC)扩展和H.266那样。关于条带的编码/解码描述各种实施例。它们可以应用于编码/解码整个画面或整个画面序列。

参考本原理的“一个实施例”或“实施例”,以及其他变型,意味着结合该实施例描述的特定特征,结构,特性等包括在至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型的出现不一定全部指代相同的实施例。

要认识到,例如在“A/B”,“A和/或B”和“A或B中的至少一个”的情况下,使用以下“/”,“和/或”以及“至少一个”中的任何一个,旨在涵盖仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或两个选项(A和B)。作为另一示例,在“A,B和/或C”和“A,B或C中的至少一个”的情况下,这种措词旨在包括仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或仅选择第三个列出的选项(C),或仅选择第一个和第二个列出的选项(A和B),或仅选择第一个和第三个列出的选项(A和C),或者仅选择第二个和第三个列出的选项(B和C),或者选择所有三个选项(A和B和C)。如本领域和相关领域的普通技术人员显而易见的那样,对于列出的许多项目,这可以扩展。

以上描述各种方法,并且每个方法包括用于实现描述的方法的一个或多个步骤或动作。除非方法的适当操作要求特定顺序的步骤或动作,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。

图1表示根据特定且非限制性实施例的被配置为在比特流中编码画面的发送器1000的示例性架构。

发送器1000包括一个或多个处理器1005,其可以包括例如CPU,GPU和/或DSP(数字信号处理器的英文缩写),以及内部存储器1030(例如,RAM,ROM,和/或EPROM)。发送器1000包括一个或多个通信接口1010(例如,键盘,鼠标,触摸板,网络摄像头),每个适应于显示输出信息和/或允许用户输入命令和/或数据;以及电源1020,可以位于发送器1000的外部。发送器1000还可以包括一个或多个网络接口(未示出)。编码器模块1040表示可以被包括在设备中以执行编码功能的模块。另外,编码器模块1040可以被实现为发送器1000的单独的元件,或者可以被并入处理器1005中作为硬件和软件的组合,如本领域技术人员已知。

画面可以从源获得。根据不同的实施例,源可以是但不限于:

-本地存储器,例如,视频存储器,RAM,闪存,硬盘;

-存储接口,例如与大容量贮存器,ROM,光盘或磁性载体的接口;

-通信接口,例如,有线接口(例如,总线接口,广域网接口,局域网接口)或无线接口(例如,IEEE 802.11接口或蓝牙接口);和

-图像捕获电路(例如,传感器,诸如例如CCD(电荷耦合器件)或CMOS(互补金属氧化物半导体))。

根据不同的实施例,比特流可以被发送到目的地。作为示例,比特流被存储在远程或本地存储器中,例如,视频存储器或RAM,硬盘。在变型中,比特流被发送到存储接口,例如,与大容量贮存器,ROM,闪存,光盘或磁性载体的接口和/或通过通信接口(例如,点对点链接,通信总线,点对多点链接或广播网络的接口)传输。

根据示例性且非限制性的实施例,发送器1000还包括存储在存储器1030中的计算机程序。该计算机程序包括指令,当由发送器1000,特别是由处理器1005执行时,这些指令使发送器1000能够执行参考图5A,6A,8A,10A和11A描述的编码方法。根据变型,计算机程序在发送器1000外部存储在非暂时性数字数据载体上(例如外部存储介质上,诸如HDD,CD-ROM,DVD,只读和/或DVD驱动器和/或DVD读/写驱动器之类,都是本领域已知的)。发送器1000因此包括读取计算机程序的机构。此外,发送器1000可以通过相应的USB端口(未示出)访问一个或多个通用串行总线(USB)类型的存储设备(例如,“存储器棒”)。

根据示例性和非限制性实施例,发送器1000可以是但不限于:

-移动设备;

-通信设备;

-游戏设备;

-平板电脑(或平板计算机);

-膝上型计算机;

-静态画面相机;

-摄像机;

-编码芯片或编码设备/装置;

-静态画面服务器;和

-视频服务器(例如,广播服务器,视频点播服务器或网络服务器)。

图2例示适应于执行根据图5A,6A,8A,10A和11A的实施例之一的编码方法的示例性视频编码器100,例如HEVC视频编码器。编码器100是发送器1000或该发送器1000的一部分的示例。

为了编码,通常将画面划分为基本编码单元,例如,HEVC中的编码树单元(CTU)或H.264中的宏块单元。一组可能连续的基本编码单元被分组为条带。基本编码单元包含所有颜色分量的基本编码块。在HEVC中,最小的CTB大小16x16对应于先前视频编码标准中使用的宏块大小。将理解的是,尽管本文中使用术语CTU和CTB来描述编码/解码方法和编码/解码设备,但是这些方法和设备不应受到可以用其他标准(诸如,H.264)不同地措辞(例如宏块)表述的这些特定术语的限制。

在HEVC中,CTB是四叉树划分为编码块(CB)的根,而编码块则划分为一个或多个预测块(PB),并形成四叉树划分为变换块(TB)的根。与编码块,预测块和变换块对应,编码单元(CU)包括预测单元(PU)和树状结构的变换单元(TU)组,PU包括所有颜色分量的预测信息,并且TU包括每个颜色分量的残差编码语法结构。亮度分量的CB,PB和TB的大小适用于相应的CU,PU和TU。在本申请中,术语“块”或“画面块”可用于指代CTU,CU,PU,TU,CB,PB和TB中的任何一个。另外,术语“块”或“画面块”可用于指代H.264/AVC或其他视频编码标准中指定的宏块,分区和子块,并且更一般地指代各种大小的样本数组。

在示例性编码器100中,如下描述,通过编码器元件对画面进行编码。要编码的画面以CU为单位进行处理。使用帧内或帧间模式对每个CU进行编码。当CU以帧内模式编码时,其执行帧内预测(160)。在帧间模式下,执行运动估计(175)和补偿(170)。编码器确定(105)使用帧内模式或帧间模式中的哪一个来对CU进行编码,并且通过预测模式标志指示帧内/帧间决定。通过从原始画面块中减去(110)预测的样本块(也称为预测器)来计算残差。预测样本块包括预测值,该块的每个样本一个。

帧内模式下的CU根据同一条带内重构的邻近样本预测。HEVC中可用35个帧内预测模式的组,包括DC,平面和33个角度预测模式。从与当前块相邻的行和列重构帧内预测参考。使用来自先前重构的块的可用样本,参考在水平和垂直方向上延伸超过块大小的两倍。当将角度预测模式用于帧内预测时,可以沿角度预测模式指示的方向复制参考样本。

可以使用两个不同的选项对当前块的适用亮度帧内预测模式进行编码。如果适用的模式包括在三个最可能的模式(MPM)的构造列表中,则该模式由MPM列表中的索引发信号通知。否则,通过模式索引的固定长度二进制化来发信号通知模式。从顶部和左侧邻近块的帧内预测模式推导三种最可能的模式。

对于帧间CU,将相应的编码块进一步划分为一个或多个预测块。在PB级别上执行帧间预测,并且相应的PU包含关于如何执行帧间预测的信息。可以以两种方法来发信号通知运动信息(即,运动矢量和参考索引),即“高级运动矢量预测(AMVP)”和“合并模式”。在AMVP中,视频编码器或解码器基于从已编码块中确定的运动矢量来组装候选列表。然后,视频编码器将索引发信号通知到候选列表中以标识运动矢量预测器(MVP),并发信号通知运动矢量差(MVD)。在解码器侧,运动矢量(MV)被重构为MVP+MVD。

在合并模式中,视频编码器或解码器基于已经编码的块来组装候选列表,并且视频编码器发信号通知候选列表中候选之一的索引。在解码器侧,基于发信号通知的候选来重构运动矢量和参考画面索引。

在HEVC中,用于运动补偿的运动信息的精度对于亮度分量是四分之一样本,并且对于色度分量是八分之一样本。7抽头或8抽头插值滤波器用于对分数样本采样位置进行插值,即,可以针对亮度在水平和垂直方向上的完整样本位置的1/4、1/2和3/4进行寻址。

对残差进行变换(125)和量化(130)。对量化的变换系数以及运动矢量和其他语法元素进行熵编码(145)以输出比特流。编码器还可以跳过该变换,并以4x4 TU为基础将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化两者,即,在不应用变换或量化处理的情况下直接对残差进行编码。在直接PCM编码中,不应用任何预测,并且将编码单元样本直接编码到比特流中。

编码器包括解码环路,并因此对编码的块进行解码以为进一步的预测提供参考。量化的变换系数被去量化(140)并被逆变换(150)以解码残差。通过组合(155)解码的残差和预测的样本块来重构画面块。环内滤波器(165)被应用于重构的画面,以例如执行去块/SAO(样本自适应偏移)滤波以减少编码伪像。滤波的画面可以存储在参考画面缓冲器(180)中,并用作其他画面的参考。

在HEVC中,可以在视频级别,条带级别和CTB级别上激活或去激活SAO滤波。指定两种SAO模式:边缘偏移(EO)和频带偏移(BO)。对于EO,样本分类基于要滤波画面中的局部定向结构。对于BO,样本分类基于样本值。EO或BO的参数可以显式编码或从邻域推导。SAO可以应用于亮度和色度分量,其中SAO模式对于Cb和Cr分量相同。为每个颜色分量分别配置SAO参数(即,偏移量,SAO类型EO,BO和禁用,EO时的类别和BO时的波段位置)。

图3表示根据特定且非限制性实施例的被配置为从比特流解码画面以获得解码的画面的接收器2000的示例性架构。

接收器2000包括一个或多个处理器2005,其可以包括例如CPU,GPU和/或DSP(数字信号处理器的英文缩写),以及内部存储器2030(例如,RAM,ROM,和/或EPROM)。接收器2000包括一个或多个通信接口2010(例如,键盘,鼠标,触摸板,网络摄像头),每个适应于显示输出信息和/或允许用户输入命令和/或数据;以及电源2020,可以位于接收器2000的外部。接收器2000还可以包括一个或多个网络接口(未示出)。解码器模块2040表示可以被包括在设备中以执行解码功能的模块。另外,解码器模块2040可以被实现为接收器2000的单独的元件,或者可以被并入处理器2005中作为硬件和软件的组合,如本领域技术人员已知。

比特流可以从源获得。根据不同的实施例,源可以是但不限于:

-本地存储器,例如,视频存储器,RAM,闪存,硬盘;

-存储接口,例如与大容量贮存器,ROM,光盘或磁性载体的接口;

-通信接口,例如,有线接口(例如,总线接口,广域网接口,局域网接口)或无线接口(诸如,IEEE 802.11接口或蓝牙接口);和

-图像捕获电路(例如,传感器,诸如例如CCD(电荷耦合器件)或CMOS(互补金属氧化物半导体))。

根据不同的实施例,解码的画面可以被发送到目的地,例如,显示设备。作为示例,解码的画面被存储在远程或本地存储器中,例如,视频存储器或RAM,硬盘。在变型中,解码的画面被发送到存储接口,例如,与大容量贮存器,ROM,闪存,光盘或磁性载体的接口和/或通过通信接口(例如,点对点链接,通信总线,点对多点链接或广播网络的接口)传输。

根据特定且非限制性实施例,接收器2000还包括存储在存储器2030中的计算机程序。该计算机程序包括指令,当由接收器2000,特别是由处理器2005执行时,这些指令使接收器能够执行参考图5B,6B,8B,10B和11B描述的解码方法。根据变型,计算机程序在接收器2000外部存储在非暂时性数字数据载体上(例如外部存储介质上,诸如HDD,CD-ROM,DVD,只读和/或DVD驱动器和/或DVD读/写驱动器之类,都是本领域已知的)的。接收器2000因此包括读取计算机程序的机构。此外,接收器2000可以通过相应的USB端口(未示出)访问一个或多个通用串行总线(USB)类型的存储设备(例如,“存储器棒”)。

根据示例性和非限制性实施例,接收器2000可以是但不限于:

-移动设备;

-通信设备;

-游戏设备;

-机顶盒;

-电视机;

-平板电脑(平板计算机);

-膝上型计算机;

-视频播放器,例如,蓝光播放器,DVD播放器;

-显示器;和

-解码芯片或解码设备/装置。

图4例示适应于执行根据图5B,6B,8B,10B和11B的实施例的解码方法的示例性视频解码器200(例如,HEVC视频解码器)的框图。视频解码器200是接收器2000或这样的接收器2000的一部分的示例。在示例性解码器200中,由如下所述的解码器元件对比特流进行解码。视频解码器200一般执行与执行图2中描述的编码通道相反的解码通道,其执行视频解码作为编码视频数据的一部分。

特别地,解码器的输入包括可由视频编码器100生成的视频比特流。首先对比特流进行熵解码(230),以获得变换系数,运动矢量和其他编码信息。对变换系数进行去量化(240)和逆变换(250)以解码残差。然后将解码的残差与预测的样本块(也称为预测器)组合(255)以获得解码/重构的画面块。可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)获得(270)预测的样本块。如上所述,可以在运动补偿期间使用AMVP和合并模式技术,其可以使用插值滤波器来计算参考块的亚整数样本的插值的值。环内滤波器(265)被应用于重构的画面。环内滤波器可以包括去块滤波器和SAO滤波器。滤波的画面被存储在参考画面缓冲器中(280)。

图5A表示根据本原理的用于编码比特流中的画面块的方法的流程图。将该映射应用于编码环路中以获得像素级别的映射的残差样本。与现有技术相反,编码方法的输入样本不由映射修改。在解码器侧,来自解码器的输出样本不由逆映射修改。

该映射可以应用于画面的一个或若干分量。例如,它可以仅应用于亮度分量,或者仅应用于色度分量,或者应用于亮度和色度分量。

该方法开始于步骤S100。在步骤S110,发送器1000(例如,诸如编码器100之类)访问画面条带的块。在步骤S120,发送器针对访问的块的至少一个样本以及针对至少一个分量(例如针对亮度)获得其源值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。依赖于对于该块选择的预测模式(帧内/帧间模式)获得,即通常确定预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即对于给定的重构的视觉或客观质量,降低比特流的比特成本,即比特数,或者对于给定的比特成本,增加重构的视觉或客观质量。当块,画面或画面序列以给定大小(即,给定比特数)的比特流编码时,在块,画面或画面序列的接收器处的重构的质量取决于该大小。另一方面,当以给定的重构的质量对块,画面,画面的序列进行编码时,则比特流的大小取决于该重构的质量。

在大多数情况下,表示重构的质量的失真被定义为输入和输出信号之差的平方的期望值(即,均方误差)。然而,由于大多数有损压缩技术对人类消费者将要感知的数据(观看画面和视频)进行操作,失真测量可优选地基于人类感知以及也许美学来建模。

例如,可以通过以下方法之一来推导映射函数:

-推导映射函数,使得对于分量值的大幅度值相比于对于分量值的小幅度值而言,残差值的幅度增加的更多,如图7所示;

-可以推导或调谐预定义的编码器量化调整表deltaQP或量化调整函数dQP(Y),其中Y是视频信号亮度,以获得改善的感知或客观编码性能。从deltaQP或dQP(Y),可以按如下方式推导缩放函数:sc(Y)=2^(–dQP(Y)/6),其中^是幂运算符。缩放函数可以在映射函数中使用,其将对应于残差与从缩放函数推导出的缩放值的乘积。在变型中,可以通过考虑该缩放函数是应用于残差的映射函数的导数函数来推导映射函数。

-在步骤S130中,预编码器函数Map(Y)或作为缩放函数的Map(Y)的导数可以用作映射函数fmap(),以映射残差值,其中Y是亮度视频信号。推导预编码器函数Map(Y),使得信号的原始样本一旦被此预编码器函数Map(Y)映射,就可以更好地分布在整个代码字范围内(例如,由于直方图均衡)。

除了上面提到的三种方法外,如果映射残差值改善压缩性能,则可以使用其他方法来推导映射函数。

可以针对访问的块的每个样本重复步骤S110和S120,以获得映射的残差值的块。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中对量化的系数进行熵编码。

该方法在步骤S180处结束。

图5B表示与图5A的编码方法相对应的用于解码比特流中的画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,对于亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是样本在画面中的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图5A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,以对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,发送器响应于映射函数invfmap(),从解码的残差值和预测值中为样本确定重构的样本值,映射函数invfmap()是编码方法在步骤130使用的映射函数fmap()的逆。可以针对访问的块的每个样本重复步骤S220至S240。

该方法在步骤S280处结束。

图6A表示根据第一特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。

该方法开始于步骤S100。在步骤S110,发送器1000,例如诸如编码器100,访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,针对亮度)获得针对访问的块的至少一个样本的值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即,对于给定的视觉或客观质量,降低比特率,或者对于给定的比特率,增加视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第一实施例中,表示为Resmap(x,y)的映射残差等于fmap(Orig(x,y))–fmap(Pred(x,y))。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中对量化的系数进行熵编码。

该方法在步骤S180处结束。

图6B表示根据第一特定和非限制性实施例的与根据图6A的编码方法的实施例相对应的用于解码比特流中画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,接收器2000,诸如解码器200访问比特流。

在步骤S220,接收器针对至少一个分量(例如,对于亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是样本在画面中的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图6A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,发送器响应于由编码方法在步骤S130使用的映射函数fmap()及其逆invfmap(),针对样本从解码的残差值Res(x,y)和预测值Pred(x,y)确定重构样本值Dec(x,y)。可以针对访问的块的每个样本重复步骤S220至S240以获得重构的块。在第一实施例中,表示为Dec(x,y)的重构的样本值等于invfmap(Res(x,y)+fmap(Pred(x,y)))。

该方法在步骤S280处结束。

图8A表示根据第二特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。

该方法开始于步骤S100。在步骤S110,发送器1000,例如,诸如编码器100访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,对于亮度)获得针对访问的块的至少一个样本的值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数gmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即,对于给定的视觉或客观质量,降低比特率,或者对于给定的比特率,增加视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第二个实施例中,表示为Resmap(x,y)的映射的残差等于gmap(Resusual(x,y),Pred(x,y)),其中Resusual(x,y)=Orig(x,y)–Pred(x,y)。

可以从第一实施例中推导函数gmap(p,v)和invgmap(p,v)的一个简单版本。对于预测值p和样本残差值v,可以如下构造gmap(p,v)和invgmap(p,v)。

在第一实施例中,Resremap(x,y)=fmap(Orig(x,y))–fmap(Pred(x,y))。

如果信号Orig(x,y)和Pred(x,y)接近,这是在预测效果良好时可以预期的,那么可以考虑Orig(x,y)=Pred(x,y)+e,e是很小的幅度。考虑到函数的导数的定义,可以认为

fmap(Orig(x,y))=fmap(Pred(x,y)+e)≈fmap(Pred(x,y))+e*f’map(Pred(x,y))

其中fmap对应于1D函数,例如在实施例1中定义,而f′map是函数fmap的导数。

然后Resmap(x,y)=fmap(Orig(x,y))–fmap(Pred(x,y))≈e*f’map(Pred(x,y))。

根据定义,e=Orig(x,y)–Pred(x,y)是通常的预测残差Resusual(x,y)。

因此,我们可以使用以下函数gmap(p,v)和invgmap(p,v):

gmap(p,v)=f’map(p)*v

invgmap(p,v)=(1/f’map(p))*v

在编码器处,映射的残差推导如下:

Resmap(x,y)=f’map(Pred(x,y))*Resusual(x,y) (等式1)

在解码器处,重构的信号推导如下:

Dec(x,y)=Pred(x,y)+1/f’map(Pred(x,y))*Resdec(x,y)) (等式2)

这意味着映射是通过取决于预测值的缩放因子对普通残差进行的简单缩放。可能在编码器上,缩放因子取决于原始值,而不取决于预测值。然而,通过这样做,产生编码器和解码器之间的不匹配。通过使用平滑滤波器,也可以使用预测的滤波的版本,例如减少量化误差的影响。

例如,不是在等式1和2中使用Pred(x,y),而是可以使用滤波的版本(Pred(x-1,y)/4+Pred(x,y)/2+Pred(x+1,y))/4)。

图9给出函数f'map和(1/f'map)的示例。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中的量化系数进行熵编码。

该方法在步骤S180处结束。

图8B表示对应于关于图8A公开的编码方法的用于解码比特流中的画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,针对亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是画面在空间中的空间坐标。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图8A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,发送器响应于映射函数invgmap,针对样本从解码的残差值Res(x,y)和预测值Pred(x,y)确定重构样本值Dec(x,y),映射函数invgmap是图8A中步骤S130的编码方法使用的映射函数gmap()的逆。可以针对访问的块的每个样本重复步骤S220至S240以获得重构的块。在第二实施例中,表示为Dec(x,y)的重构的样本值等于Pred(x,y)+invgmap(Res(x,y),Pred(x,y))。

该实施例有利地允许在解码器处使用invgmap函数在单个步骤中映射预测残差,而第一实施例要求同时应用fmap函数和invfmap

该方法在步骤S280处结束。

图10A表示根据第三特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。该实施例是第二实施例的概括。函数fmap和invfmap()是缩放函数,其缩放因子取决于预测信号(或如前所述,预测信号的滤波版本)的值。

该方法开始于步骤S100。在步骤S110,诸如编码器100的发送器1000访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,针对亮度)获得针对访问的块的至少一个样本的值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即,对于给定的视觉或客观质量,降低比特率,或者对于给定的比特率,提高视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第二个实施例中,表示为Resmap(x,y)的映射的残差等于fmap(Pred(x,y))*Resusual(x,y),其中Resusual(x,y)=Orig(x,y)–Pred(x,y)。这是(等式1)和(等式2)的概括的版本。在变型中,可以使用原始值Orig(x,y)代替Pred(x,y)。在这种情况下,Resmap(x,y)等于fmap(Orig(x,y))*Resusual(x,y)。在另一个变型中,可以使用Orig(x,y)和Pred(x,y)的组合Comb(x,y),例如这两个值的平均值。在后一种情况下,Resmap(x,y)等于fmap(Comb(x,y))*Resusual(x,y)。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中对量化的系数进行熵编码。

该方法在步骤S180处结束。

图10B表示对应于关于图10A公开的编码方法的用于从比特流解码画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,针对亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是样本在画面中的空间坐标。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图10A的步骤S140中编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,接收器响应于编码方法在步骤S130使用的映射函数invfmap()=1/fmap(),针对样本从解码的残差值Res(x,y)和预测值Pred(x,y)确定重构的样本值Dec(x,y)。可以针对访问的块的每个样本重复步骤S220至S240以获得重构的块。在第二实施例中,表示为Dec(x,y)的重构的样本值等于Pred(x,y)+(1/fmap(Pred(x,y)))*Res(x,y)。

该实施例有利地允许在解码器处通过使用简单的乘法来执行逆映射,这带来有限增加的复杂度并且使得能够执行精确的映射,其中舍入运算可以在处理的最后(在计算Dec(x,y)时)进行。

该方法在步骤S280处结束。

图11A表示根据第四特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。在该实施例中,映射是交叉分量缩放。例如,该映射取决于共位的亮度分量Y(或其滤波版本)应用于色度分量C,C为U(或Cb)或V(或Cr)。当亮度和色度画面的分辨率不同(例如,对于4:2:0色度格式)时,亮度值可以在重新采样后取得,或者作为与色度样本相关联的亮度画面的样本值之一。例如,在4:2:0信号的情况下,对于画面中的位置(x,y),可以考虑位置(2*x,2*y)的亮度值。

该方法开始于步骤S100。在步骤S110,发送器1000,例如诸如编码器100访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,对于色度C)获得针对访问的块的至少一个样本的源值OrigC(x,y)的预测值PredC(x,y),其中(x,y)是画面中样本的空间坐标,并针对至少另一个分量(例如,亮度Y)进一步获取针对相同样本的源值OrigY(x,y)的预测值PredY(x,y)。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值OrigC(x,y)以及预测值PredC(x,y)和PredY(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即对于给定的视觉或客观质量降低比特率,或者对于给定的比特率提高视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第四实施例中,表示为ResCmap(x,y)的映射残差等于fmap(PredY(x,y))*ResCusual(x,y),其中ResCusual(x,y)=OrigC(x,y)–PredC(x,y),其中OrigC(x,y)是画面中位置(x,y)上(待编码的)色度分量C的源样本的值,PredC(x,y)是色度分量C的预测样本的值,并且ResCusual(x,y)是色度分量C的预测残差样本的值。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中的对量化的系数进行熵编码。

该方法在步骤S180处结束。

图11B表示对应于关于图11A公开的编码方法的用于从比特流解码画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,针对色度C)获得针对访问的块的至少一个样本的源值OrigC(x,y)的预测值PredC(x,y),其中(x,y)是画面中样本的空间坐标,并针对至少另一个分量(例如亮度Y)进一步获取相同样本的源值OrigY(x,y)的预测值PredY(x,y)(当亮度和色度画面的分辨率不同时,可能利用下采样)。取决于为该块选择的预测模式(帧内/帧间模式)获取预测值。

在步骤S230,接收器解码要解码的样本的残差值ResC(x,y)。残差值ResC(x,y)是在图11A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,接收器响应于映射函数1/fmap(),针对样本,从解码的残差值ResC(x,y)以及预测值PredC(x,y)和PredY(x,y)确定重构的样本值DecC(x,y),其中fmap()是编码方法在步骤S130处使用的映射函数。可以针对访问的块的每个样本重复步骤S220至S240,以获得重构的色度块。在第四实施例中,表示为DecC(x,y)的重构的样本值等于PredC(x,y)+(1/fmap(PredY(x,y)))*ResC(x,y)。

该实施例有利地允许在解码器处取决于亮度分量来缩放色度分量,通常,归功于针对不同亮度间隔的色度缩放的精细控制而导致改善的视觉质量。

该方法在步骤S280处结束。

关于图10A,10B,11A和11B公开的第三和第四实施例可以有利地以定点方式实现。

使ResCusual是位置(x,y)处的预测残差,以缩放因子scal进行映射,例如在交叉分量缩放的情况下,从值PredY处的fmap值(用作交叉分量的预测亮度的共位的值)得出)推导:scal=fmap(perdy)。

用在解码器处(并且可能在比特流中进行编码,如将在下面进行解释)的是invScal=round(2^B÷scal)。

··^是幂运算符,

··round(x)是x的最接近的整数值,

··B是选择用来量化缩放因子的bitDepth(典型,B=8或10比特)

值ResCusual到映射值ResCmap的映射应用如下:

ResCmap=(ResCusual*2B+sign(ResCusual)*(invScal/2))/invScal (等式3)

其中ResCusual(x,y)=OrigC(x,y)–PredC(x,y),并且当x>=0时sign(x)等于1,否则为-1。

该等式中的所有参数均为整数,并且除法“/”也适用于整数(而除法÷是浮点除法)。然后对映射值ResCmap进行编码。

在解码器侧,将编码的映射的值ResCmap解码为值ResCmap_dec。解码的值ResCmap_dec到逆映射值ResCinvmap的逆映射应用如下:

ResCinvmap=(ResCmap_dec*invScal+sign(ResCmap_dec)*2(B-1))/2B (等式4)

(ResCmap_dec*invScal+sign(ResCmap_dec)*2(B-1))/2B

其等效于:

ResCinvmap=(ResCmap_dec*invScal+sign(ResCmap_dec)*2(B-1))>>B (等式5)

然后从位置(x,y)处的预测值PredC和ResCinvmap推导重构值DecC为DecC=PredC+ResCinvmap (等式6)

这些操作也可以直接组合,以避免使用符号运算符。将式(等式5)和(等式6)组合为(等式7)。

DecC=(PredC*2B+ResCmap_dec*invScal+2(B-1))>>B (等式7)。

在HEVC中,使用量化参数QP调谐量化。根据QP,量化步长Qstep0被推导,并且可以被近似为(K*2^(QP/6)),其中K是固定参数。

当使用局部QP校正dQP时,实际的量化步长Qstep1可以近似为(K*2^((QP+dQP)/6)),也就是,(Qstep0*2^(dQP/6))。信号除以量化步长。

这意味着,对于给定的dQP,在量化中应用信号的从量化步长的倒数推导的相应缩放应用于2^(-dQP/6)。

例如,可以为dQP表建立以下对应关系。

Figure BDA0002284575790000221

Figure BDA0002284575790000231

该缩放可以例如在第三实施例中描述的缩放解决方案中使用。该缩放还可以用于推导如在第一和第二实施例中使用的映射函数。实际上,该缩放对应于映射函数的导数。因此,可以将映射函数建模为分段线性函数,其中每个段具有等于与该段对应的缩放的斜率。

如果将dQP表定义为一组间隔[Yi,Yi+1–1],其中dQP值dQPi与每个间隔相关联,对于i=0到n,n为整数,则映射函数可以定义如下。

使i为包含Y的间隔的索引(Y在[Yi,Yi+1–1]中)。

fmap(Y)=fmap(Yi)+2^(–dQPi/6)*(Y-Yi)

对于上面的特定dQP表,这给定图12中示出的函数,用于全范围(FR)或受限范围(LR)信号表示。

函数fmap或gmap或其逆函数invfmap或invgmap可以在解码器中(并因此在解码器规范中)显式定义,或在比特流中用信号通知。

函数fmap,invfmap,gmap或invgmap可以以下形式实现:

·查找表,

··分段标量函数(PWS),

··分段线性函数(PWL),

··分段多项式函数(PWP)。

它们可以在SEI消息,序列参数集(SPS),画面参数集(PPS),条带标头,编码树单元(CTU)语法,每个平铺,或新结构(诸如,自适应画面集(APS))中进行编码。

本文描述的实现方式可以例如以方法或处理,装置,软件程序,数据流或信号来实现。即使仅在单一形式的实现方式的上下文中进行讨论(例如,仅作为方法或设备进行讨论),讨论的特征的实现方式也可以以其他形式(例如程序)实现。装置可以例如以适当的硬件,软件和固件来实现。该方法可以在例如诸如处理器之类的装置中实现,其一般指代处理设备,包括例如计算机,微处理器,集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机,蜂窝电话,便携式/个人数字助理(“PDA”),以及有助于最终用户之间信息通信的其他设备。

本文描述的各种处理和特征的实现方式可以体现在各种不同的设备或应用中,尤其是例如设备或应用中。这种设备的示例包括编码器,解码器,处理来自解码器的输出的后处理器,将输入提供给编码器的预处理器,视频编码器,视频解码器,视频编解码器,Web服务器,机顶盒,膝上型计算机,个人计算机,蜂窝电话,PDA和其他通信设备。应当清楚,设备可以是移动的,甚至可以安装在移动车辆中。

另外,可以通过由处理器执行的指令来实现方法,并且可以将这样的指令(和/或由实现方式产生的数据值)存储在诸如例如集成电路,软件载体或其他贮存设备(诸如例如硬盘,致密盘(CD),光盘(例如DVD,通常称为数字多功能盘或数字视频盘),随机存取存储器(“RAM”)或只读存储器(“ROM”))之类的处理器可读介质上。指令可以形成有形地体现在处理器可读介质上的应用程序。指令可以是例如硬件,固件,软件或其组合。指令可以在例如操作系统,单独的应用或两者的组合中找到。因此,处理器可以特征在于,例如,被配置为执行处理的设备和包括具有用于实施处理的指令的处理器可读介质的设备(诸如,贮存设备)。此外,除了或代替指令,处理器可读介质可以存储由实现方式产生的数据值。

如将对本领域技术人员显而易见的,实现方式可以产生各种信号,其被格式化以承载例如可以被存储或发送的信息。该信息可以包括例如用于执行方法的指令或由所描述的实现方式之一产生的数据。例如,信号可以被格式化为承载用于写入或读取所描述的实施例的语法的规则作为数据,或者承载由所描述的实施例写入的实际语法值作为数据。这样的信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流来调制载波。信号承载的信息可以是例如模拟或数字信息。众所周知,该信号可以通过各种不同的有线或无线链路传输。信号可以存储在处理器可读介质上。

已经描述许多实现方式。然而,将理解,可以进行各种修改。例如,不同实现方式的要素可以被组合,补充,修改或移除以产生其他实现方式。另外,本领域普通技术人员将理解,可以用其他结构和处理代替公开的那些,并且所产生的实现方式将以至少基本上相同的(多个)方式执行至少基本上相同的(多个)功能,以至少实现与公开的实现方式基本相同的(多个)结果。因此,本申请考虑了这些和其他实现方式。

具体实施方式

-图1表示根据特定且非限制性实施例的被配置为编码比特流中的画面的发送器的示例性架构;

-图2例示根据本原理的适应于执行编码方法的示例性视频编码器,例如,HEVC视频编码器;

-图3表示根据特定且非限制性实施例的配置为从比特流解码画面以获得解码的画面的接收器的示例性架构;

-图4例示根据本原理的适应于执行解码方法的示例性视频解码器(例如,HEVC视频解码器)的框图;

-图5A,6A,8A,10A和11A表示根据各种实施例的用于在比特流中编码画面块的方法的流程图;

-图5B,6B,8B,10B和11B表示根据各种实施例的用于从比特流解码画面块的方法的流程图;

-图7描绘映射函数fmap及其逆函数invfmap

-图9描绘映射函数fmap的导数f’map和函数1/f’map;和

-图12示出从dQP表构建的完整或有限范围内的映射函数。

具体实现方式

要理解,已经简化附图和描述以示出与清楚理解本原理有关的元件,同时为了清楚起见,省去在典型编码和/或解码设备中发现的许多其他元件。将理解的是,尽管本文可以使用术语第一和第二来描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一个元件。

画面是单色格式的亮度样本的数组,或者是4:2:0、4:2:2和4:4:4颜色格式的亮度样本的数组和两个相应的色度样本的数组。通常,“块”针对样本阵列(例如,亮度Y)中的特定区域,并且“单元”包括所有颜色分量(亮度Y以及可能的色度Cb和色度Cr)的共位的块。条带是整数个基本编码单元,诸如HEVC编码树单元或H.264宏块单元。条带可以包括完整画面及其一部分。每一条带可包含一个或多个条带片段。

在下文中,单词“重构的”和“解码的”可以互换使用。通常但不一定在编码器侧使用“重构的”,而在解码器侧使用“解码的”。应该注意,术语“解码的”或“重构的”可以意味着比特流被部分地“解码”或“重构”,例如,在去块滤波之后但在SAO滤波之前获得的信号,并且重构的样本可以与用于显示的最终解码的输出不同。还可以互换使用术语“图像”,“画面”和“帧”。还可以互换使用术语“样本”和“像素”。

关于HEVC标准描述各种实施例。然而,本原理不限于HEVC,并且可以应用于其他标准,建议及其扩展,包括例如HEVC或HEVC扩展,像格式范围(RExt),可伸缩性(SHVC),多视图(MV-HEVC)扩展和H.266那样。关于条带的编码/解码描述各种实施例。它们可以应用于编码/解码整个画面或整个画面序列。

参考本原理的“一个实施例”或“实施例”,以及其他变型,意味着结合该实施例描述的特定特征,结构,特性等包括在至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型的出现不一定全部指代相同的实施例。

要认识到,例如在“A/B”,“A和/或B”和“A或B中的至少一个”的情况下,使用以下“/”,“和/或”以及“至少一个”中的任何一个,旨在涵盖仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或两个选项(A和B)。作为另一示例,在“A,B和/或C”和“A,B或C中的至少一个”的情况下,这种措词旨在包括仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或仅选择第三个列出的选项(C),或仅选择第一个和第二个列出的选项(A和B),或仅选择第一个和第三个列出的选项(A和C),或者仅选择第二个和第三个列出的选项(B和C),或者选择所有三个选项(A和B和C)。如本领域和相关领域的普通技术人员显而易见的那样,对于列出的许多项目,这可以扩展。

以上描述各种方法,并且每个方法包括用于实现描述的方法的一个或多个步骤或动作。除非方法的适当操作要求特定顺序的步骤或动作,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。

图1表示根据特定且非限制性实施例的被配置为在比特流中编码画面的发送器1000的示例性架构。

发送器1000包括一个或多个处理器1005,其可以包括例如CPU,GPU和/或DSP(数字信号处理器的英文缩写),以及内部存储器1030(例如,RAM,ROM,和/或EPROM)。发送器1000包括一个或多个通信接口1010(例如,键盘,鼠标,触摸板,网络摄像头),每个适应于显示输出信息和/或允许用户输入命令和/或数据;以及电源1020,可以位于发送器1000的外部。发送器1000还可以包括一个或多个网络接口(未示出)。编码器模块1040表示可以被包括在设备中以执行编码功能的模块。另外,编码器模块1040可以被实现为发送器1000的单独的元件,或者可以被并入处理器1005中作为硬件和软件的组合,如本领域技术人员已知。

画面可以从源获得。根据不同的实施例,源可以是但不限于:

-本地存储器,例如,视频存储器,RAM,闪存,硬盘;

-存储接口,例如与大容量贮存器,ROM,光盘或磁性载体的接口;

-通信接口,例如,有线接口(例如,总线接口,广域网接口,局域网接口)或无线接口(例如,IEEE 802.11接口或蓝牙接口);和

-图像捕获电路(例如,传感器,诸如例如CCD(电荷耦合器件)或CMOS(互补金属氧化物半导体))。

根据不同的实施例,比特流可以被发送到目的地。作为示例,比特流被存储在远程或本地存储器中,例如,视频存储器或RAM,硬盘。在变型中,比特流被发送到存储接口,例如,与大容量贮存器,ROM,闪存,光盘或磁性载体的接口和/或通过通信接口(例如,点对点链接,通信总线,点对多点链接或广播网络的接口)传输。

根据示例性且非限制性的实施例,发送器1000还包括存储在存储器1030中的计算机程序。该计算机程序包括指令,当由发送器1000,特别是由处理器1005执行时,这些指令使发送器1000能够执行参考图5A,6A,8A,10A和11A描述的编码方法。根据变型,计算机程序在发送器1000外部存储在非暂时性数字数据载体上(例如外部存储介质上,诸如HDD,CD-ROM,DVD,只读和/或DVD驱动器和/或DVD读/写驱动器之类,都是本领域已知的)。发送器1000因此包括读取计算机程序的机构。此外,发送器1000可以通过相应的USB端口(未示出)访问一个或多个通用串行总线(USB)类型的存储设备(例如,“存储器棒”)。

根据示例性和非限制性实施例,发送器1000可以是但不限于:

-移动设备;

-通信设备;

-游戏设备;

-平板电脑(或平板计算机);

-膝上型计算机;

-静态画面相机;

-摄像机;

-编码芯片或编码设备/装置;

-静态画面服务器;和

-视频服务器(例如,广播服务器,视频点播服务器或网络服务器)。

图2例示适应于执行根据图5A,6A,8A,10A和11A的实施例之一的编码方法的示例性视频编码器100,例如HEVC视频编码器。编码器100是发送器1000或该发送器1000的一部分的示例。

为了编码,通常将画面划分为基本编码单元,例如,HEVC中的编码树单元(CTU)或H.264中的宏块单元。一组可能连续的基本编码单元被分组为条带。基本编码单元包含所有颜色分量的基本编码块。在HEVC中,最小的CTB大小16x16对应于先前视频编码标准中使用的宏块大小。将理解的是,尽管本文中使用术语CTU和CTB来描述编码/解码方法和编码/解码设备,但是这些方法和设备不应受到可以用其他标准(诸如,H.264)不同地措辞(例如宏块)表述的这些特定术语的限制。

在HEVC中,CTB是四叉树划分为编码块(CB)的根,而编码块则划分为一个或多个预测块(PB),并形成四叉树划分为变换块(TB)的根。与编码块,预测块和变换块对应,编码单元(CU)包括预测单元(PU)和树状结构的变换单元(TU)组,PU包括所有颜色分量的预测信息,并且TU包括每个颜色分量的残差编码语法结构。亮度分量的CB,PB和TB的大小适用于相应的CU,PU和TU。在本申请中,术语“块”或“画面块”可用于指代CTU,CU,PU,TU,CB,PB和TB中的任何一个。另外,术语“块”或“画面块”可用于指代H.264/AVC或其他视频编码标准中指定的宏块,分区和子块,并且更一般地指代各种大小的样本数组。

在示例性编码器100中,如下描述,通过编码器元件对画面进行编码。要编码的画面以CU为单位进行处理。使用帧内或帧间模式对每个CU进行编码。当CU以帧内模式编码时,其执行帧内预测(160)。在帧间模式下,执行运动估计(175)和补偿(170)。编码器确定(105)使用帧内模式或帧间模式中的哪一个来对CU进行编码,并且通过预测模式标志指示帧内/帧间决定。通过从原始画面块中减去(110)预测的样本块(也称为预测器)来计算残差。预测样本块包括预测值,该块的每个样本一个。

帧内模式下的CU根据同一条带内重构的邻近样本预测。HEVC中可用35个帧内预测模式的组,包括DC,平面和33个角度预测模式。从与当前块相邻的行和列重构帧内预测参考。使用来自先前重构的块的可用样本,参考在水平和垂直方向上延伸超过块大小的两倍。当将角度预测模式用于帧内预测时,可以沿角度预测模式指示的方向复制参考样本。

可以使用两个不同的选项对当前块的适用亮度帧内预测模式进行编码。如果适用的模式包括在三个最可能的模式(MPM)的构造列表中,则该模式由MPM列表中的索引发信号通知。否则,通过模式索引的固定长度二进制化来发信号通知模式。从顶部和左侧邻近块的帧内预测模式推导三种最可能的模式。

对于帧间CU,将相应的编码块进一步划分为一个或多个预测块。在PB级别上执行帧间预测,并且相应的PU包含关于如何执行帧间预测的信息。可以以两种方法来发信号通知运动信息(即,运动矢量和参考索引),即“高级运动矢量预测(AMVP)”和“合并模式”。在AMVP中,视频编码器或解码器基于从已编码块中确定的运动矢量来组装候选列表。然后,视频编码器将索引发信号通知到候选列表中以标识运动矢量预测器(MVP),并发信号通知运动矢量差(MVD)。在解码器侧,运动矢量(MV)被重构为MVP+MVD。

在合并模式中,视频编码器或解码器基于已经编码的块来组装候选列表,并且视频编码器发信号通知候选列表中候选之一的索引。在解码器侧,基于发信号通知的候选来重构运动矢量和参考画面索引。

在HEVC中,用于运动补偿的运动信息的精度对于亮度分量是四分之一样本,并且对于色度分量是八分之一样本。7抽头或8抽头插值滤波器用于对分数样本采样位置进行插值,即,可以针对亮度在水平和垂直方向上的完整样本位置的1/4、1/2和3/4进行寻址。

对残差进行变换(125)和量化(130)。对量化的变换系数以及运动矢量和其他语法元素进行熵编码(145)以输出比特流。编码器还可以跳过该变换,并以4x4 TU为基础将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化两者,即,在不应用变换或量化处理的情况下直接对残差进行编码。在直接PCM编码中,不应用任何预测,并且将编码单元样本直接编码到比特流中。

编码器包括解码环路,并因此对编码的块进行解码以为进一步的预测提供参考。量化的变换系数被去量化(140)并被逆变换(150)以解码残差。通过组合(155)解码的残差和预测的样本块来重构画面块。环内滤波器(165)被应用于重构的画面,以例如执行去块/SAO(样本自适应偏移)滤波以减少编码伪像。滤波的画面可以存储在参考画面缓冲器(180)中,并用作其他画面的参考。

在HEVC中,可以在视频级别,条带级别和CTB级别上激活或去激活SAO滤波。指定两种SAO模式:边缘偏移(EO)和频带偏移(BO)。对于EO,样本分类基于要滤波画面中的局部定向结构。对于BO,样本分类基于样本值。EO或BO的参数可以显式编码或从邻域推导。SAO可以应用于亮度和色度分量,其中SAO模式对于Cb和Cr分量相同。为每个颜色分量分别配置SAO参数(即,偏移量,SAO类型EO,BO和禁用,EO时的类别和BO时的波段位置)。

图3表示根据特定且非限制性实施例的被配置为从比特流解码画面以获得解码的画面的接收器2000的示例性架构。

接收器2000包括一个或多个处理器2005,其可以包括例如CPU,GPU和/或DSP(数字信号处理器的英文缩写),以及内部存储器2030(例如,RAM,ROM,和/或EPROM)。接收器2000包括一个或多个通信接口2010(例如,键盘,鼠标,触摸板,网络摄像头),每个适应于显示输出信息和/或允许用户输入命令和/或数据;以及电源2020,可以位于接收器2000的外部。接收器2000还可以包括一个或多个网络接口(未示出)。解码器模块2040表示可以被包括在设备中以执行解码功能的模块。另外,解码器模块2040可以被实现为接收器2000的单独的元件,或者可以被并入处理器2005中作为硬件和软件的组合,如本领域技术人员已知。

比特流可以从源获得。根据不同的实施例,源可以是但不限于:

-本地存储器,例如,视频存储器,RAM,闪存,硬盘;

-存储接口,例如与大容量贮存器,ROM,光盘或磁性载体的接口;

-通信接口,例如,有线接口(例如,总线接口,广域网接口,局域网接口)或无线接口(诸如,IEEE 802.11接口或蓝牙接口);和

-图像捕获电路(例如,传感器,诸如例如CCD(电荷耦合器件)或CMOS(互补金属氧化物半导体))。

根据不同的实施例,解码的画面可以被发送到目的地,例如,显示设备。作为示例,解码的画面被存储在远程或本地存储器中,例如,视频存储器或RAM,硬盘。在变型中,解码的画面被发送到存储接口,例如,与大容量贮存器,ROM,闪存,光盘或磁性载体的接口和/或通过通信接口(例如,点对点链接,通信总线,点对多点链接或广播网络的接口)传输。

根据特定且非限制性实施例,接收器2000还包括存储在存储器2030中的计算机程序。该计算机程序包括指令,当由接收器2000,特别是由处理器2005执行时,这些指令使接收器能够执行参考图5B,6B,8B,10B和11B描述的解码方法。根据变型,计算机程序在接收器2000外部存储在非暂时性数字数据载体上(例如外部存储介质上,诸如HDD,CD-ROM,DVD,只读和/或DVD驱动器和/或DVD读/写驱动器之类,都是本领域已知的)的。接收器2000因此包括读取计算机程序的机构。此外,接收器2000可以通过相应的USB端口(未示出)访问一个或多个通用串行总线(USB)类型的存储设备(例如,“存储器棒”)。

根据示例性和非限制性实施例,接收器2000可以是但不限于:

-移动设备;

-通信设备;

-游戏设备;

-机顶盒;

-电视机;

-平板电脑(平板计算机);

-膝上型计算机;

-视频播放器,例如,蓝光播放器,DVD播放器;

-显示器;和

-解码芯片或解码设备/装置。

图4例示适应于执行根据图5B,6B,8B,10B和11B的实施例的解码方法的示例性视频解码器200(例如,HEVC视频解码器)的框图。视频解码器200是接收器2000或这样的接收器2000的一部分的示例。在示例性解码器200中,由如下所述的解码器元件对比特流进行解码。视频解码器200一般执行与执行图2中描述的编码通道相反的解码通道,其执行视频解码作为编码视频数据的一部分。

特别地,解码器的输入包括可由视频编码器100生成的视频比特流。首先对比特流进行熵解码(230),以获得变换系数,运动矢量和其他编码信息。对变换系数进行去量化(240)和逆变换(250)以解码残差。然后将解码的残差与预测的样本块(也称为预测器)组合(255)以获得解码/重构的画面块。可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)获得(270)预测的样本块。如上所述,可以在运动补偿期间使用AMVP和合并模式技术,其可以使用插值滤波器来计算参考块的亚整数样本的插值的值。环内滤波器(265)被应用于重构的画面。环内滤波器可以包括去块滤波器和SAO滤波器。滤波的画面被存储在参考画面缓冲器中(280)。

图5A表示根据本原理的用于编码比特流中的画面块的方法的流程图。将该映射应用于编码环路中以获得像素级别的映射的残差样本。与现有技术相反,编码方法的输入样本不由映射修改。在解码器侧,来自解码器的输出样本不由逆映射修改。

该映射可以应用于画面的一个或若干分量。例如,它可以仅应用于亮度分量,或者仅应用于色度分量,或者应用于亮度和色度分量。

该方法开始于步骤S100。在步骤S110,发送器1000(例如,诸如编码器100之类)访问画面条带的块。在步骤S120,发送器针对访问的块的至少一个样本以及针对至少一个分量(例如针对亮度)获得其源值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。依赖于对于该块选择的预测模式(帧内/帧间模式)获得,即通常确定预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即对于给定的重构的视觉或客观质量,降低比特流的比特成本,即比特数,或者对于给定的比特成本,增加重构的视觉或客观质量。当块,画面或画面序列以给定大小(即,给定比特数)的比特流编码时,在块,画面或画面序列的接收器处的重构的质量取决于该大小。另一方面,当以给定的重构的质量对块,画面,画面的序列进行编码时,则比特流的大小取决于该重构的质量。

在大多数情况下,表示重构的质量的失真被定义为输入和输出信号之差的平方的期望值(即,均方误差)。然而,由于大多数有损压缩技术对人类消费者将要感知的数据(观看画面和视频)进行操作,失真测量可优选地基于人类感知以及也许美学来建模。

例如,可以通过以下方法之一来推导映射函数:

-推导映射函数,使得对于分量值的大幅度值相比于对于分量值的小幅度值而言,残差值的幅度增加的更多,如图7所示;

-可以推导或调谐预定义的编码器量化调整表deltaQP或量化调整函数dQP(Y),其中Y是视频信号亮度,以获得改善的感知或客观编码性能。从deltaQP或dQP(Y),可以按如下方式推导缩放函数:sc(Y)=2^(–dQP(Y)/6),其中^是幂运算符。缩放函数可以在映射函数中使用,其将对应于残差与从缩放函数推导出的缩放值的乘积。在变型中,可以通过考虑该缩放函数是应用于残差的映射函数的导数函数来推导映射函数。

-在步骤S130中,预编码器函数Map(Y)或作为缩放函数的Map(Y)的导数可以用作映射函数fmap(),以映射残差值,其中Y是亮度视频信号。推导预编码器函数Map(Y),使得信号的原始样本一旦被此预编码器函数Map(Y)映射,就可以更好地分布在整个代码字范围内(例如,由于直方图均衡)。

除了上面提到的三种方法外,如果映射残差值改善压缩性能,则可以使用其他方法来推导映射函数。

可以针对访问的块的每个样本重复步骤S110和S120,以获得映射的残差值的块。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中对量化的系数进行熵编码。

该方法在步骤S180处结束。

图5B表示与图5A的编码方法相对应的用于解码比特流中的画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,对于亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是样本在画面中的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图5A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,以对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,发送器响应于映射函数invfmap(),从解码的残差值和预测值中为样本确定重构的样本值,映射函数invfmap()是编码方法在步骤130使用的映射函数fmap()的逆。可以针对访问的块的每个样本重复步骤S220至S240。

该方法在步骤S280处结束。

图6A表示根据第一特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。

该方法开始于步骤S100。在步骤S110,发送器1000,例如诸如编码器100,访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,针对亮度)获得针对访问的块的至少一个样本的值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即,对于给定的视觉或客观质量,降低比特率,或者对于给定的比特率,增加视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第一实施例中,表示为Resmap(x,y)的映射残差等于fmap(Orig(x,y))–fmap(Pred(x,y))。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中对量化的系数进行熵编码。

该方法在步骤S180处结束。

图6B表示根据第一特定和非限制性实施例的与根据图6A的编码方法的实施例相对应的用于解码比特流中画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,接收器2000,诸如解码器200访问比特流。

在步骤S220,接收器针对至少一个分量(例如,对于亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是样本在画面中的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图6A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,发送器响应于由编码方法在步骤S130使用的映射函数fmap()及其逆invfmap(),针对样本从解码的残差值Res(x,y)和预测值Pred(x,y)确定重构样本值Dec(x,y)。可以针对访问的块的每个样本重复步骤S220至S240以获得重构的块。在第一实施例中,表示为Dec(x,y)的重构的样本值等于invfmap(Res(x,y)+fmap(Pred(x,y)))。

该方法在步骤S280处结束。

图8A表示根据第二特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。

该方法开始于步骤S100。在步骤S110,发送器1000,例如,诸如编码器100访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,对于亮度)获得针对访问的块的至少一个样本的值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。根据为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数gmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即,对于给定的视觉或客观质量,降低比特率,或者对于给定的比特率,增加视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第二个实施例中,表示为Resmap(x,y)的映射的残差等于gmap(Resusual(x,y),Pred(x,y)),其中Resusual(x,y)=Orig(x,y)–Pred(x,y)。

可以从第一实施例中推导函数gmap(p,v)和invgmap(p,v)的一个简单版本。对于预测值p和样本残差值v,可以如下构造gmap(p,v)和invgmap(p,v)。

在第一实施例中,Resremap(x,y)=fmap(Orig(x,y))–fmap(Pred(x,y))。

如果信号Orig(x,y)和Pred(x,y)接近,这是在预测效果良好时可以预期的,那么可以考虑Orig(x,y)=Pred(x,y)+e,e是很小的幅度。考虑到函数的导数的定义,可以认为

fmap(Orig(x,y))=fmap(Pred(x,y)+e)≈fmap(Pred(x,y))+e*f’map(Pred(x,y))

其中fmap对应于1D函数,例如在实施例1中定义,而f′map是函数fmap的导数。

然后Resmap(x,y)=fmap(Orig(x,y))–fmap(Pred(x,y))≈e*f’map(Pred(x,y))。

根据定义,e=Orig(x,y)–Pred(x,y)是通常的预测残差Resusual(x,y)。

因此,我们可以使用以下函数gmap(p,v)和invgmap(p,v):

gmap(p,v)=f’map(p)*v

invgmap(p,v)=(1/f’map(p))*v

在编码器处,映射的残差推导如下:

Resmap(x,y)=f’map(Pred(x,y))*Resusual(x,y) (等式1)

在解码器处,重构的信号推导如下:

Dec(x,y)=Pred(x,y)+1/f’map(Pred(x,y))*Resdec(x,y)) (等式2)

这意味着映射是通过取决于预测值的缩放因子对普通残差进行的简单缩放。可能在编码器上,缩放因子取决于原始值,而不取决于预测值。然而,通过这样做,产生编码器和解码器之间的不匹配。通过使用平滑滤波器,也可以使用预测的滤波的版本,例如减少量化误差的影响。

例如,不是在等式1和2中使用Pred(x,y),而是可以使用滤波的版本(Pred(x-1,y)/4+Pred(x,y)/2+Pred(x+1,y))/4)。

图9给出函数f'map和(1/f'map)的示例。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中的量化系数进行熵编码。

该方法在步骤S180处结束。

图8B表示对应于关于图8A公开的编码方法的用于解码比特流中的画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,针对亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是画面在空间中的空间坐标。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图8A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,发送器响应于映射函数invgmap,针对样本从解码的残差值Res(x,y)和预测值Pred(x,y)确定重构样本值Dec(x,y),映射函数invgmap是图8A中步骤S130的编码方法使用的映射函数gmap()的逆。可以针对访问的块的每个样本重复步骤S220至S240以获得重构的块。在第二实施例中,表示为Dec(x,y)的重构的样本值等于Pred(x,y)+invgmap(Res(x,y),Pred(x,y))。

该实施例有利地允许在解码器处使用invgmap函数在单个步骤中映射预测残差,而第一实施例要求同时应用fmap函数和invfmap

该方法在步骤S280处结束。

图10A表示根据第三特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。该实施例是第二实施例的概括。函数fmap和invfmap()是缩放函数,其缩放因子取决于预测信号(或如前所述,预测信号的滤波版本)的值。

该方法开始于步骤S100。在步骤S110,诸如编码器100的发送器1000访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,针对亮度)获得针对访问的块的至少一个样本的值Orig(x,y)的预测值Pred(x,y),其中(x,y)是画面中样本的空间坐标。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值Orig(x,y)和预测值Pred(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即,对于给定的视觉或客观质量,降低比特率,或者对于给定的比特率,提高视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第二个实施例中,表示为Resmap(x,y)的映射的残差等于fmap(Pred(x,y))*Resusual(x,y),其中Resusual(x,y)=Orig(x,y)–Pred(x,y)。这是(等式1)和(等式2)的概括的版本。在变型中,可以使用原始值Orig(x,y)代替Pred(x,y)。在这种情况下,Resmap(x,y)等于fmap(Orig(x,y))*Resusual(x,y)。在另一个变型中,可以使用Orig(x,y)和Pred(x,y)的组合Comb(x,y),例如这两个值的平均值。在后一种情况下,Resmap(x,y)等于fmap(Comb(x,y))*Resusual(x,y)。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中对量化的系数进行熵编码。

该方法在步骤S180处结束。

图10B表示对应于关于图10A公开的编码方法的用于从比特流解码画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,针对亮度)获得针对至少一个样本的预测值Pred(x,y),其中(x,y)是样本在画面中的空间坐标。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S230,接收器解码要解码的样本的残差值Res(x,y)。残差值Res(x,y)是在图10A的步骤S140中编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,接收器响应于编码方法在步骤S130使用的映射函数invfmap()=1/fmap(),针对样本从解码的残差值Res(x,y)和预测值Pred(x,y)确定重构的样本值Dec(x,y)。可以针对访问的块的每个样本重复步骤S220至S240以获得重构的块。在第二实施例中,表示为Dec(x,y)的重构的样本值等于Pred(x,y)+(1/fmap(Pred(x,y)))*Res(x,y)。

该实施例有利地允许在解码器处通过使用简单的乘法来执行逆映射,这带来有限增加的复杂度并且使得能够执行精确的映射,其中舍入运算可以在处理的最后(在计算Dec(x,y)时)进行。

该方法在步骤S280处结束。

图11A表示根据第四特定且非限制性实施例的用于在比特流中编码画面块的方法的流程图。在该实施例中,映射是交叉分量缩放。例如,该映射取决于共位的亮度分量Y(或其滤波版本)应用于色度分量C,C为U(或Cb)或V(或Cr)。当亮度和色度画面的分辨率不同(例如,对于4:2:0色度格式)时,亮度值可以在重新采样后取得,或者作为与色度样本相关联的亮度画面的样本值之一。例如,在4:2:0信号的情况下,对于画面中的位置(x,y),可以考虑位置(2*x,2*y)的亮度值。

该方法开始于步骤S100。在步骤S110,发送器1000,例如诸如编码器100访问画面条带的块。在步骤S120,发送器针对至少一个分量(例如,对于色度C)获得针对访问的块的至少一个样本的源值OrigC(x,y)的预测值PredC(x,y),其中(x,y)是画面中样本的空间坐标,并针对至少另一个分量(例如,亮度Y)进一步获取针对相同样本的源值OrigY(x,y)的预测值PredY(x,y)。取决于为该块选择的预测模式(帧内/帧间模式)获得预测值。

在步骤S130,发送器响应于映射函数fmap(),从样本的源值OrigC(x,y)以及预测值PredC(x,y)和PredY(x,y)确定样本的映射的残差值。定义或推导映射函数以获得编码增益,即对于给定的视觉或客观质量降低比特率,或者对于给定的比特率提高视觉或客观质量。可以通过参考图5A公开的方法之一来推导映射函数。可以针对访问的块的每个样本重复步骤S110至S130,以获得映射的残差值的块。在第四实施例中,表示为ResCmap(x,y)的映射残差等于fmap(PredY(x,y))*ResCusual(x,y),其中ResCusual(x,y)=OrigC(x,y)–PredC(x,y),其中OrigC(x,y)是画面中位置(x,y)上(待编码的)色度分量C的源样本的值,PredC(x,y)是色度分量C的预测样本的值,并且ResCusual(x,y)是色度分量C的预测残差样本的值。

在步骤S140,发送器对映射的残差值进行编码。对映射的残差值进行编码通常(但非必须)包括将残差变换为变换系数,以量化步长QP对系数进行量化以获得量化的系数,以及在比特流中的对量化的系数进行熵编码。

该方法在步骤S180处结束。

图11B表示对应于关于图11A公开的编码方法的用于从比特流解码画面块的方法的流程图。

该方法开始于步骤S200。在步骤S210,诸如解码器200的接收器2000访问比特流。

在步骤S220,接收器针对至少一个分量(例如,针对色度C)获得针对访问的块的至少一个样本的源值OrigC(x,y)的预测值PredC(x,y),其中(x,y)是画面中样本的空间坐标,并针对至少另一个分量(例如亮度Y)进一步获取相同样本的源值OrigY(x,y)的预测值PredY(x,y)(当亮度和色度画面的分辨率不同时,可能利用下采样)。取决于为该块选择的预测模式(帧内/帧间模式)获取预测值。

在步骤S230,接收器解码要解码的样本的残差值ResC(x,y)。残差值ResC(x,y)是在图11A的步骤S140处编码的映射的残差值的解码版本。解码通常但不一定包括对表示块的比特流的一部分进行熵解码以获得变换系数的块,对变换系数的块进行去量化和逆变换以获得残差的块。

在步骤S240,接收器响应于映射函数1/fmap(),针对样本,从解码的残差值ResC(x,y)以及预测值PredC(x,y)和PredY(x,y)确定重构的样本值DecC(x,y),其中fmap()是编码方法在步骤S130处使用的映射函数。可以针对访问的块的每个样本重复步骤S220至S240,以获得重构的色度块。在第四实施例中,表示为DecC(x,y)的重构的样本值等于PredC(x,y)+(1/fmap(PredY(x,y)))*ResC(x,y)。

该实施例有利地允许在解码器处取决于亮度分量来缩放色度分量,通常,归功于针对不同亮度间隔的色度缩放的精细控制而导致改善的视觉质量。

该方法在步骤S280处结束。

关于图10A,10B,11A和11B公开的第三和第四实施例可以有利地以定点方式实现。

使ResCusual是位置(x,y)处的预测残差,以缩放因子scal进行映射,例如在交叉分量缩放的情况下,从值PredY处的fmap值(用作交叉分量的预测亮度的共位的值)得出)推导:scal=fmap(perdy)。

用在解码器处(并且可能在比特流中进行编码,如将在下面进行解释)的是invScal=round(2^B÷scal)。

··^是幂运算符,

··round(x)是x的最接近的整数值,

··B是选择用来量化缩放因子的bitDepth(典型,B=8或10比特)

值ResCusual到映射值ResCmap的映射应用如下:

ResCmap=(ResCusual*2B+sign(ResCusual)*(invScal/2))/invScal (等式3)

其中ResCusual(x,y)=OrigC(x,y)–PredC(x,y),并且当x>=0时sign(x)等于1,否则为-1。

该等式中的所有参数均为整数,并且除法“/”也适用于整数(而除法÷是浮点除法)。然后对映射值ResCmap进行编码。

在解码器侧,将编码的映射的值ResCmap解码为值ResCmap_dec。解码的值ResCmap_dec到逆映射值ResCinvmap的逆映射应用如下:

ResCinvmap=(ResCmap_dec*invScal+sign(ResCmap_dec)*2(B-1))/2B (等式4)

(ResCmap_dec*invScal+sign(ResCmap_dec)*2(B-1))/2B

其等效于:

ResCinvmap=(ResCmap_dec*invScal+sign(ResCmap_dec)*2(B-1))>>B (等式5)

然后从位置(x,y)处的预测值PredC和ResCinvmap推导重构值DecC为DecC=PredC+ResCinvmap (等式6)

这些操作也可以直接组合,以避免使用符号运算符。将式(等式5)和(等式6)组合为(等式7)。

DecC=(PredC*2B+ResCmap_dec*invScal+2(B-1))>>B (等式7)。

在HEVC中,使用量化参数QP调谐量化。根据QP,量化步长Qstep0被推导,并且可以被近似为(K*2^(QP/6)),其中K是固定参数。

当使用局部QP校正dQP时,实际的量化步长Qstep1可以近似为(K*2^((QP+dQP)/6)),也就是,(Qstep0*2^(dQP/6))。信号除以量化步长。

这意味着,对于给定的dQP,在量化中应用信号的从量化步长的倒数推导的相应缩放应用于2^(-dQP/6)。

例如,可以为dQP表建立以下对应关系。

Figure BDA0002284575790000221

Figure BDA0002284575790000231

该缩放可以例如在第三实施例中描述的缩放解决方案中使用。该缩放还可以用于推导如在第一和第二实施例中使用的映射函数。实际上,该缩放对应于映射函数的导数。因此,可以将映射函数建模为分段线性函数,其中每个段具有等于与该段对应的缩放的斜率。

如果将dQP表定义为一组间隔[Yi,Yi+1–1],其中dQP值dQPi与每个间隔相关联,对于i=0到n,n为整数,则映射函数可以定义如下。

使i为包含Y的间隔的索引(Y在[Yi,Yi+1–1]中)。

fmap(Y)=fmap(Yi)+2^(–dQPi/6)*(Y-Yi)

对于上面的特定dQP表,这给定图12中示出的函数,用于全范围(FR)或受限范围(LR)信号表示。

函数fmap或gmap或其逆函数invfmap或invgmap可以在解码器中(并因此在解码器规范中)显式定义,或在比特流中用信号通知。

函数fmap,invfmap,gmap或invgmap可以以下形式实现:

·查找表,

··分段标量函数(PWS),

··分段线性函数(PWL),

··分段多项式函数(PWP)。

它们可以在SEI消息,序列参数集(SPS),画面参数集(PPS),条带标头,编码树单元(CTU)语法,每个平铺,或新结构(诸如,自适应画面集(APS))中进行编码。

本文描述的实现方式可以例如以方法或处理,装置,软件程序,数据流或信号来实现。即使仅在单一形式的实现方式的上下文中进行讨论(例如,仅作为方法或设备进行讨论),讨论的特征的实现方式也可以以其他形式(例如程序)实现。装置可以例如以适当的硬件,软件和固件来实现。该方法可以在例如诸如处理器之类的装置中实现,其一般指代处理设备,包括例如计算机,微处理器,集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机,蜂窝电话,便携式/个人数字助理(“PDA”),以及有助于最终用户之间信息通信的其他设备。

本文描述的各种处理和特征的实现方式可以体现在各种不同的设备或应用中,尤其是例如设备或应用中。这种设备的示例包括编码器,解码器,处理来自解码器的输出的后处理器,将输入提供给编码器的预处理器,视频编码器,视频解码器,视频编解码器,Web服务器,机顶盒,膝上型计算机,个人计算机,蜂窝电话,PDA和其他通信设备。应当清楚,设备可以是移动的,甚至可以安装在移动车辆中。

另外,可以通过由处理器执行的指令来实现方法,并且可以将这样的指令(和/或由实现方式产生的数据值)存储在诸如例如集成电路,软件载体或其他贮存设备(诸如例如硬盘,致密盘(CD),光盘(例如DVD,通常称为数字多功能盘或数字视频盘),随机存取存储器(“RAM”)或只读存储器(“ROM”))之类的处理器可读介质上。指令可以形成有形地体现在处理器可读介质上的应用程序。指令可以是例如硬件,固件,软件或其组合。指令可以在例如操作系统,单独的应用或两者的组合中找到。因此,处理器可以特征在于,例如,被配置为执行处理的设备和包括具有用于实施处理的指令的处理器可读介质的设备(诸如,贮存设备)。此外,除了或代替指令,处理器可读介质可以存储由实现方式产生的数据值。

如将对本领域技术人员显而易见的,实现方式可以产生各种信号,其被格式化以承载例如可以被存储或发送的信息。该信息可以包括例如用于执行方法的指令或由所描述的实现方式之一产生的数据。例如,信号可以被格式化为承载用于写入或读取所描述的实施例的语法的规则作为数据,或者承载由所描述的实施例写入的实际语法值作为数据。这样的信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流来调制载波。信号承载的信息可以是例如模拟或数字信息。众所周知,该信号可以通过各种不同的有线或无线链路传输。信号可以存储在处理器可读介质上。

已经描述许多实现方式。然而,将理解,可以进行各种修改。例如,不同实现方式的要素可以被组合,补充,修改或移除以产生其他实现方式。另外,本领域普通技术人员将理解,可以用其他结构和处理代替公开的那些,并且所产生的实现方式将以至少基本上相同的(多个)方式执行至少基本上相同的(多个)功能,以至少实现与公开的实现方式基本相同的(多个)结果。因此,本申请考虑了这些和其他实现方式。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于编码和重构点云的方法和设备

相关技术

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类