用于图片编码和解码的方法及设备与流程

文档序号:23068574发布日期:2020-11-25 17:56阅读:287来源:国知局
用于图片编码和解码的方法及设备与流程

本实施例一般地涉及用于图片编码和解码的方法及设备,并且更具体地,涉及用于用照度补偿和双向预测进行图片编码和解码的方法及设备。



背景技术:

为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。一般,使用帧内或帧间预测以利用帧内或帧间相关性,然后对原始图像块和预测图像块之间的差(通常表示为预测误差、预测残差或预测值(predictor))进行变换、量化和熵编码。在编码期间,可能使用四叉树分区,通常将原始图像块分区/分割为子块。为了重构视频,通过与预测、变换、量化和熵编码相对应的逆过程来对压缩的数据进行解码。



技术实现要素:

公开了一种用于对图片块进行编码的方法。该方法包括:

-将预测值确定为第一参考图像中的第一运动补偿的参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和;

-对从图片块和预测值确定的残差块进行编码,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

公开了一种机器可读介质。机器可读介质上存储有机器可执行指令,该机器可执行指令在被执行时实现用于对图片块进行编码的方法,该方法包括:

-将预测值确定为第一参考图像中的第一运动补偿的参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和;

-对从图片块和预测值确定的残差块进行编码,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

公开了一种用于对图片块进行编码的编码设备。该编码设备包括:

-用于将预测值确定为第一参考图像中的运动补偿的第一参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和的部件;

-用于对从图片块和预测值确定的残差块进行编码的部件,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

公开了一种编码设备。该编码设备包括:通信接口,其被配置为访问至少一个图片块;以及至少一个处理器,其被配置为:

-将预测值确定为第一参考图像中的第一运动补偿的参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和;

-对从所访问的图片块和预测值确定的残差块进行编码,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

还公开了一种比特流。比特流被格式化为包括代表图片块的编码数据,该编码数据根据依据以上实施例之一的编码方法编码。非暂时性处理器可读介质上存储有比特流。

有利地,与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的重构样本形成l形状。

在实施例中,其中加权和还被向右移位,并且其中移位s被确定为使得权重为具有接近于1/(1<<s)的精度的整数值。

在实施例中,确定权重和/或移位包括从定义值的集合中选择权重和移位。

在实施例中,确定权重和/或移位包括误差的最小二乘最小化以及从定义值的集合中选择其值最接近通过最小二乘最小化获得的值的权重和移位。

在实施例中,确定权重和/或移位包括计算用定义的权重和移位值的集合所获得的误差,并选择与最小误差相对应的权重和移位。

一种用于对图片块进行解码的方法,该方法包括:

-将预测值确定为第一参考图像中的第一运动补偿的参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和;

-从预测值和残差块解码图片块,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

公开了一种机器可读介质。机器可读介质上存储了机器可执行指令,该机器可执行指令在被执行时实现用于对图片块进行解码的方法,该方法包括:

-将预测值确定为第一参考图像中的第一运动补偿的参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和;

-从预测值和残差块解码图片块,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

公开了一种用于对图片块进行解码的解码设备。该解码设备包括:

-用于将预测值确定为第一参考图像中的运动补偿的第一参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和的部件;

-用于从预测值和残差块解码图片块的部件,

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

还公开了一种解码设备。该解码设备包括:通信接口,其被配置为访问至少一个流;以及至少一个处理器,其被配置为:

-将预测值确定为第一参考图像中的第一运动补偿的参考块的样本值和第二参考图像中的第二运动补偿的参考块的样本值的加权和;

-从预测值和残差块解码图片块,所述残差是从所访问的流解码的;

其中,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的样本之间的误差最小化来确定的。

有利地,与所述图片块相邻的重构样本和与所述第一和第二参考块相邻的重构样本形成l形状。

在实施例中,其中加权和还被向右移位,并且其中移位s被确定为使得权重为具有接近于1/(1<<s)的精度的整数值。

在实施例中,确定权重和/或移位包括从定义值的集合中选择权重和移位。

在实施例中,确定权重和/或移位包括误差的最小二乘最小化以及从定义值的集合中选择其值最接近通过最小二乘最小化获得的值的权重和移位。

在实施例中,确定权重和/或移位包括计算用定义的权重和移位值的集合所获得的误差,并选择与最小误差相对应的权重和移位。

附图说明

图1表示根据特定且非限制性实施例的配置为将图片编码在比特流中的发射器的示例性架构;

图2图示了适于执行参照图5和图6描述的编码方法的示例性视频编码器;

图3表示根据现有技术的使用双向预测和照度补偿推导预测值的方法的流程图;

图4表示根据现有技术的用于推导照度补偿参数的l形状的示例;

图5表示根据特定且非限制性实施例的用于将图片块编码在比特流中的方法的流程图;

图6表示根据特定且非限制性实施例的用于使用双向预测和照度补偿来推导预测值的流程图;

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

图8图示了适于执行参照图6和图9的方法所描述的解码方法的示例性视频解码器的框图;以及

图9表示根据特定且非限制性实施例的用于从比特流解码图片的方法的流程图。

具体实施方式

应当理解,已经简化了附图和描述,以图示与清楚理解本实施例相关的元件,同时为了清楚起见,消除了在典型编码和/或解码设备中找到的许多其他元件。应该理解,尽管术语第一和第二在这里可以用来描述各种元件,但是这些元件不应被这些术语所限制。这些术语仅用于将一个元件与另一元件区分开。

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

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

应当理解的是,例如在“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)。如对于本领域和相关领域的普通技术人员显而易见的,对于许多列出的选项,这可以扩展。

图片是单色格式的亮度样本阵列,或者是4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和两个相应色度样本阵列(或三个三色颜色样本阵列,诸如rgb)。一般,“块”针对样本阵列(例如,亮度y)中的特定区域,而“单元”包括所有颜色分量(亮度y以及可能的色度cb和色度cr)的并置块。切片是整数个诸如hevc编码树单元或h.264宏块单元的基本编码单元。切片可以由完整的图片也可以由其部分组成。每个切片可以包括一个或多个切片片段(slicesegment)。区块(tile)是在切片或图片内部以正方形或矩形区域分组的整数个基本编码单元。

在下文中,单词“重构”和“解码”可以互换使用。通常但不是必须地,在编码器侧使用“重构”而在解码器侧使用“解码”。应当注意,术语“解码”或“重构”可以表示比特流被部分地“解码”或“重构”,例如,在解块滤波之后但在sao滤波之前获得的信号,以及重构的样本可以不同于用于显示的最终解码的输出。我们还可以互换使用术语“图像”、“图片”和“帧”。

参照hevc标准描述了各种实施例。然而,本实施例不限于hevc,并且可以应用于其他标准、建议书及其扩展,包括例如hevc或如格式范围(rext)、可伸缩性(shvc)、多视图(mv-hevc)扩展的hevc扩展以及例如由联合视频专家小组(jvet)开发的那些标准的未来视频编码标准。参照图片块的编码/解码描述了各种实施例。它们可以用于对整个图片或整个图片序列进行编码/解码。

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

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

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

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

-存储接口,例如与大容量存储、rom、光盘或磁性支撑件的接口;

-通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee802.11接口或蓝牙接口);以及

-图片捕获电路(例如,传感器,诸如,例如,ccd(或charge-coupleddevice,电荷耦合器件)或cmos(或complementarymetal-oxide-semiconductor,互补金属氧化物半导体))。

根据不同的实施例,可以向目的地发送比特流。作为示例,比特流存储在远程或本地存储器中,例如视频存储器或ram、硬盘。在变型中,向存储接口(例如与大容量存储、rom、闪存、光盘或磁性支撑件的接口)发送比特流,和/或经由通信接口(例如,到点对点链路、通信总线、点对多点链路或广播网络的接口)传输比特流。

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

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

-移动设备;

-通信设备;

-游戏设备;

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

-膝上型计算机;

-静止图片相机;

-摄像机;

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

-静止图片服务器;以及

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

图2图示了适于执行参照图5和图6描述的编码方法的示例性视频编码器100,例如,hevc类型的编码器。编码器100是发射器1000或这种发射器1000的一部分的示例。

为了编码,图片通常被分区为基本编码单元,例如,在hevc中被分区为编码树单元(ctu),或者在h.264中被分区为宏块单元。可能连续的基本编码单元的集合被分组为切片。基本编码单元包含所有颜色分量的基本编码块。在hevc中,最小编码树块(ctb)尺寸16×16对应于先前视频编码标准中使用的宏块尺寸。将理解,尽管术语ctu和ctb在这里用来描述编码/解码方法和编码/解码装置,但是这些方法和装置不应该受这些特定术语所限制,这些特定术语在诸如h.264的其他标准中可能有不同的措辞(例如,宏块)。

在hevc编码中,图片被分区为正方形形状的ctu,这些ctu具有通常为64×64、128×128或256×256的可配置尺寸。ctu是分区为尺寸相等(即,宽度和高度是父块尺寸的一半)的4个正方形编码单元(cu)的四叉树的根。四叉树是其中父节点可以被分割为四个子节点的树,每个子节点可以成为父节点,从而再被分割为四个子节点。在hevc中,编码块(cb)被分区为一个或多个预测块(pb),并形成分区为变换块(tb)的四叉树的根。与编码块、预测块和变换块相对应,编码单元(cu)包括预测单元(pu)和变换单元(tu)的树结构集合,pu包括所有颜色分量的预测信息,并且tu包括每个颜色分量的残差编码语法结构。亮度分量的cb、pb和tb的尺寸适用于相应的cu、pu和tu。

在最近的编码系统中,ctu是分区为编码单元(cu)的编码树的根。编码树是其中父节点(通常对应于cu)可以被分割为子节点(例如,分割为2、3或4个子节点)的树,每个子节点可以成为父节点,从而再被分割为子节点。除了四叉树分割模式外,还定义了新的分割模式(二叉树对称分割模式、二叉树非对称分割模式和三叉树分割模式),这增加了可能的分割模式的总数。编码树具有唯一的根节点,例如ctu。编码树的叶是树的终止节点。编码树的每个节点表示还可以分割为更小的cu(也称为子cu或更一般地称为子块)的cu。一旦确定了ctu到cu的分区,对与编码树的叶相对应的cu进行编码。可以通过率失真优化过程,在编码器侧确定ctu到cu的分区和用于对每个cu(对应于编码树的叶)进行编码的编码参数。不存在cb到pb和tb的分区,即cu由单个pu和单个tu组成。

在下文中,术语“块”或“图片块”可用于指代ctu、cu、pu、tu、cb、pb和tb中的任何一个。此外,术语“块”或“图片块”可用于指代在h.264/avc或其他视频编码标准中指定的宏块、分区和子块,并且更一般地指代多种尺寸的样本阵列。

回到图2,在示例性编码器100中,如下所述,通过编码器元件对图片进行编码。以cu为单位对要编码的图片进行处理。使用帧内或帧间模式对每个cu进行编码。当以帧内模式对cu进行编码时,其执行帧内预测(160)。在帧间模式下,执行运动估计(175)和补偿(170)。可以以两种方法(即,“高级运动矢量预测(amvp)”和“合并模式”)来用信号通知运动信息(即,运动矢量和参考索引)。在amvp中,视频编码器或解码器基于从已编码块中确定的运动矢量来组配候选列表。然后,视频编码器将索引用信号发送到候选列表中以标识运动矢量预测值(mvp),并用信号通知运动矢量差(mvd)。在解码器侧,运动矢量(mv)被重构为mvp+mvd。

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

编码器决定(105)使用帧内模式或帧间模式中的哪一个来对cu进行编码,并且通过预测模式标志指示帧内/帧间决定。通过从原始图片块中减去(110)预测的块(也称为预测值)来计算残差。

例如,在相同切片内,从重构的相邻样本预测帧内模式下的cu。从存储在参考图片缓冲器(180)中的参考图片的重构样本来预测帧间模式下的cu。在帧间模式下,双向预测组合了经由两个重构参考块的运动补偿(170)获得的两个预测pred0和pred1:

bi-pred=w0*pred0+w1*pred1(1)

另外,双向预测可以与基于块的照度补偿(ic)组合。ic允许通过考虑空间或时间局部照度变化来校正使用运动补偿(mc)获得的块预测样本。在这种情况下,针对当前块编码标志(ic标志)以指示是否应该应用ic校正。例如,如果当前块继承了来自一个相邻重构块的参数(合并模式),则可以不对ic标志进行编码,而是从相邻重构块推导ic标志。

对残差进行变换(125)和量化(130)。对量化后的变换系数以及运动矢量和其他语法元素进行熵编码(145)以输出比特流。编码器也可以跳过变换,或者绕开变换和量化二者,即,在不应用变换或量化过程的情况下直接对残差进行编码。在直接pcm编码中,不应用预测,并且将编码单元样本直接编码到比特流中。

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

图3表示根据现有技术的使用双向预测和照度补偿来推导预测值的方法的流程图。

照度补偿

在帧内模式下,ic允许通过考虑空间或时间局部照度变化来校正使用mc获得的块预测样本。通常,通过将当前块的重构相邻样本(l-shape-cur)的集合scur与参考-i块(i=0或1)的相邻样本(l-shape-ref-i)的对应集合sref-i进行比较,来确定ic参数(s306,s308),如图4所示。图4绘出了重构相邻样本(在本文档中也称为l形状(l-shape))的集合的示例。在该示例中,l形状由当前或参考块上方的一行样本和左侧的一列样本组成。在另一示例中,l形状可以由仅上方的一行样本组成,或仅左侧的一列样本组成,或者左侧的2列样本组成,等等。

在步骤s306和s308处,通过最小化用ic参数校正后的l-shape-cur中的样本与l-shape-ref-i中的样本之间的差(例如,使用最小二乘法),来计算ic参数(ai,bi)。通常,ic模型是线性的:ic(x)=a.x+b,其中x是要补偿的样本的值。

通过对l形状求解最小二乘最小化来确定参数(ai,bi):

最后,将ai变换为整数权重(ai)和移位(shi),并通过ic参数来校正predi(s314和s316),以如下地获得predici:

predici=(ai*xi>>shi)+bi(3)

其中,xi是在步骤s310或s312处确定的运动补偿块(predi)的样本,“>>”是右移算子。

彼此独立地推导ic参数(a0,b0)和(a1,b1)。从l-shape-ref0推导(a0,b0)(s306),并且从l-shape-ref1推导(a1,b1)(s308)。

双向预测

然后将预测值pred0(如果用ref0启用ic,则为predic0)和pred1(或者,如果用ref1启用ic,则为predic1)组合成单个预测值bi-pred(s318)。传统上,组合包括以权重w0=w1=1/2对两个预测取平均。更一般地,两个预测值pred0和pred1如下组合在单个预测值中:

bi-pred=(w0*pred0+w1*pred1+off)>>shift(4)

在变型中,权重w0和w1不同。作为示例,w0可以等于w,并且w1等于(1-w),表1中列出了预定义的权重值w。可以针对每个块将与权重值相对应的索引编码在比特流中。

表1

也可以从全局照度补偿(也称为“权重预测”(wp)工具)推导权重。在这种情况下,由编码器确定权重,并且权重对于整个切片是恒定的。它们可以在比特流中传输。但是,wp工具与ic工具是冗余的,因此激活wp和ic二者通常会适得其反。

在比特流中,当针对当前切片、图片或序列启用ic时,可以逐块编码一个ic标志,以指示是否针对该块启用ic。它也可以从重构的相邻块来推导,诸如在合并模式的情况下。

当用双向预测启用ic时,分别在s314和s316处针对每个参考0和1独立地计算两个式(3)。在步骤s318处利用式(4)将它们的结果组合:bi-pred=(w0*(a0*x0>>sh0+b0)+w1*(a1*x1>>sh1+b1)+off)>>shift(5)

级联几个移位可能会导致精度不足,并增加运算量和存储器带宽。在广义双向预测的情况下,编码器必须检查全部权重,并使用例如rd成本(速率失真成本)准则选择最佳权重。这可能严重降低编码器的速度。

图5表示根据特定且非限制性实施例的用于将图片块编码在比特流中的方法的流程图。

该方法开始于步骤s500。在步骤s510,发射器1000(例如,诸如编码器100)访问图片切片的块。在步骤s520,针对所访问的块确定预测值。预测值被确定为第一参考图像中的第一运动补偿的参考块(pred0)的样本值和第二参考图像中的第二运动补偿的参考块(pred1)的样本值的加权和,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一参考块和第二参考块相邻的样本之间的误差(即,差)最小化来确定的。获得加权和可以包括添加偏移。在图6详细描述了步骤s520的具体实施例。

在步骤s530,发射器对所访问的块进行编码。对块进行编码通常但不一定包括:从该块中减去预测值以获得残差块,将该残差块变换为变换系数块,以量化步长尺寸qp对系数块进行量化以获得变换系数的量化块,以及将变换系数的量化块熵编码在比特流中。在编码器侧重构块通常但不一定包括:对变换系数的量化块进行解量化和逆变换以获得残差块,并将预测值加至残差块以获得解码块。

该方法在步骤s540处结束。

图6表示根据特定且非限制性实施例的使用双向预测和照度补偿来推导预测值的流程图。

在步骤s600,获得运动补偿参考块ref0。它标记为pred0。

在步骤s602,获得运动补偿参考块ref1。它标记为pred1。

在步骤s604,确定组合的ic和双向预测权重a0、a1、b和s。

由编码器(和解码器)使用当前块的l形状直接确定值a′0、a′1、b′和s。作为示例,使用最小二乘法以使二次误差(7)最小化来确定a′0、a′1、b′和s:

调整移位s的值,使得a0、a1、b为具有所需精度p的整数。例如,利用p≈1/(1<<s)(等同于以s比特为小数部分的定点运算):

a0=e(a′0*(1<<s))

a1=e(a′1*(1<<s))

b=e(b′*(1<<s))

e(x)表示x的整数部分。

在以下条件为真的情况下,能够迭代地减小s:

|a′0–(a0>>s)|≤p

|a′1–(a1>>s)|≤p

|b′–(b>>s)|≤p

在变型中,仅检查预定义的值a0、a1、b和s(例如,表1的权重值),并保留与最小二次误差(7)相对应的参数(a′0、a′1、b′和s)。在后一种情况下,不使用最小二乘法。表1的权重值可以在比特流中(例如,在sps中)传输,或者是已知先验的。sps代表序列参数集。

在另一变型中,用最小二乘法计算值a0、a1、b和s,并且接着进行调整,使得它们匹配一个预定义的值(例如,表1的一个权重值)。

在示例性实施例中,对一个标志(广义的双向预测标志)进行编码(或在解码器侧进行解码),该一个标志指示当前块是用图6的方法进行编码的还是当前块是用常规方法进行编码的。在变型中,该标志和ic标志合并为单个标志。在变型中,该标志和广义的双向预测标志合并为一个单一标志。

在步骤s606,通过使用加权和组合pred0和pred1来确定最终预测值bi-pred。在示例性实施例中,使用在步骤s604处获得的组合权重a0、a1、b和s来组合pred0和pred1。在特定实施例中,b可以等于零。在一个单一步骤中(图3的步骤s314、s316和s318组合为图6的一个单一步骤s604)一起应用ic参数和预测权重。式(5)修改为下式(6):

bi-pred=(a0*x0+a1*x1)+b)>>s(6)

如果sh0=sh1,则:a0=w0*a0

a1=w1*a1

b=(w0*b0+w1*b1+off)<<sh0

s=shift+sh0

如果sh0<sh1,则:a0=(w0*a0)<<(sh1-sh0)

a1=w1*a1

b=(w0*b0+w1*b1+off)<<sh1

s=shift+sh1

如果sh0>sh1,则:a0=w0*a0

a1=(w1*a1)<<(sh0–sh1)

b=(w0*b0+w1*b1+off)<<sh0

s=shift+sh0

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

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

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

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

-存储接口,例如与大容量存储、rom、光盘或磁性支撑件的接口;

-通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee802.11接口或蓝牙接口);以及

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

根据不同的实施例,可以向例如显示设备的目的地发送解码的图片。作为示例,解码的图片存储在远程或本地存储器中,例如视频存储器或ram、硬盘。在变型中,向存储接口(例如与大容量存储、rom、闪存、光盘或磁性支撑件的接口)发送解码的图片,和/或经由通信接口(例如,到点对点链路、通信总线、点对多点链路或广播网络的接口)传输解码的图片。

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

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

-移动设备;

-通信设备;

-游戏设备;

-机顶盒;

-电视机;

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

-膝上型计算机;

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

-显示器;以及

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

图8图示了适于执行参照图6和图9描述的解码方法的示例性视频解码器200(例如hevc型的视频解码器)的框图。视频解码器200是接收器2000或这种接收器2000的一部分的示例。在示例性解码器200中,如下所述,由解码器元件对比特流进行解码。视频解码器200一般执行与图2中描述的编码通道相反的解码通道,这作为对视频数据进行编码的部分执行视频解码。

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

图9表示根据特定且非限制性实施例的用于从比特流解码图片的方法的流程图。

该方法开始于步骤s900。在步骤s910,诸如解码器200的接收器2000访问比特流。在步骤s920,接收器将预测值确定为第一参考图像中的第一运动补偿的参考块(pred0)的样本值和第二参考图像中的第二运动补偿的参考块(pred1)的样本值的加权和,加权和的权重是通过使与所述图片块相邻的重构样本和与所述第一参考块和第二参考块相邻的样本之间的误差(即,差)最小化来确定的。获得加权和可以包括添加偏移。步骤s920的特定实施例在图6上详细描述,并且与编码方法的s520相同。

在步骤s930,接收器从比特流中解码图片的块。解码块通常但不一定包括:对代表该块的比特流的一部分进行熵解码以获得变换系数块,对变换系数块进行解量化和逆变换以获得残差块,并将预测值加至残差块以获得解码块。

该方法在步骤s840处结束。

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

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

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

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

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

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