图像块编码和解码的方法和装置与流程

文档序号:17585191发布日期:2019-05-03 21:15阅读:339来源:国知局
图像块编码和解码的方法和装置与流程

本原理一般涉及图像块编码和解码的方法和装置,更具体地,涉及利用环路滤波,特别是利用样本自适应偏移滤波的图像块编码和解码的方法和装置。



背景技术:

为了实现高压缩效率,视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。一般地,帧内或帧间预测用于利用帧内或帧间的帧相关性,然后原始图像和预测图像之间的差异(通常表示为残差)被变换,量化和熵编码。为了重构视频,通过与预测,变换,量化和熵编码对应的逆处理来解码压缩数据。

传统视频编码方案包括用于改进重构图像质量的环路滤波处理。环路滤波可以包括去块滤波以及之后的样本自适应偏移(sao)滤波,如在hevc中的那样。样本自适应偏移滤波处理在题为“highefficiencyvideocoding”的文献itu-th.265的第8.7.3节中描述。sao滤波包括向一些像素添加偏移以减少编码伪像,例如,环状伪像。当启用(或激活)sao滤波时,可以执行两种类型的滤波:边缘偏移(eo)型或带偏移(bo)型。sao滤波通过首先将区域中的样本分类为多个类别(称为bo类型的情况下的带宽),并且根据其类别向每个样本添加特定偏移(bo类型的情况下的带偏移)来减少样本失真。

在hevc中定义的bo滤波中,将一个带偏移添加到其值属于相同带(值的范围)的所有样本。为此目的,样本值范围被划分为32个相等的带,并且带从0到31被索引。对于[0;255]范围内的8比特样本,带的宽度为8。可以将带偏移用信号通知给解码器。在hevc中,仅将4个连续带的带偏移和当前块的带位置(也称为起始带位置)用信号通知给解码器。起始带位置指示第一编码的带偏移的带的位置。带位置由索引指示。作为示例,在图1中,带位置是18并且四个偏移是{0,0,2,3},其分别被分配给4个连续带18,19,20和21。对于其他带,推断偏移为零。

在hevc中,在ctu(编码树单元)级别用信号通知sao参数(带位置和带偏移)。然而,这些sao参数的编码是次优的。首先,可以至少以两种方式对图2中描绘的带偏移的配置编码。因为只有带20和21具有非零偏移,所以可以通过指示带位置是18并且带偏移是{0,0,2,3}或者通过指示带位置是19并且带偏移是{0,2,3,0}或者通过指示带位置是20并且带偏移是{2,3,0,0}来编码该配置。在熵编码理论中,如果信息可以用不同的语法编码,则语法被认为是次优的。

其次,假设带位置是等概率的,使用具有非自适应概率状态的固定长度编码(flc)以绝对值编码起始带位置。该假设导致次优语法。

因此,期望改进sao滤波器参数的编码以减少编码成本。



技术实现要素:

公开了允许减少用于编码样本自适应偏移滤波器(sao)参数的比特数解码和编码方法。

解码方法包括:

-从比特流解码至少一个图像块;

-从比特流解码样本自适应偏移滤波器(sao)的多个带偏移和第一带偏移的带位置;

-响应于解码的多个带偏移和解码的带位置,利用样本自适应偏移滤波器滤波解码的块;

其中,多个带偏移的解码的第一带偏移必然是非零带偏移。

在特定实施例中,解码第一带偏移包括将1加到表示第一带偏移的解码语法元素。

作为示例,至少一个图像块是亮度块。在特定实施例中,解码方法还包括解码至少两个色度块并且针对至少第一色度块解码用于指示第一色度块的所有带偏移是否等于零的附加比特。

在另一特定实施例中,解码方法还包括:针对至少第二色度块,仅在针对第一色度块的附加比特指示不是第一色度块的所有带偏移都等于零的情况下,解码用于指示所述第二色度块的所有带偏移是否等于零的附加比特。

在另一实施例中,解码带位置包括从参考带位置解码带位置。

作为示例,解码带位置使用可变长度解码。

在特定实施例中,参考带位置是包括解码块的最低样本值的带的位置。

在特定实施例中,从参考带位置解码带位置包括将解码的残差添加到参考带位置。

有利地,在指示包括解码块的最大样本值的带的位置的索引与指示包括解码块的最低样本值的带的位置的索引之间的差低于解码的带偏移的数量的情况下,不解码带位置。

编码方法包括:

-编码和解码比特流中的至少一个图像块;

-编码比特流中的样本自适应偏移滤波器(sao)的多个带偏移和第一带偏移的带位置;

-响应于编码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码块;

其中,多个带偏移的编码的第一带偏移必须是非零带偏移。

在特定实施例中,编码第一带偏移包括编码第一带偏移减1。

作为示例,至少一个图像块是亮度块。在特定实施例中,编码方法还包括:编码至少两个色度块,并且针对至少第一色度块编码用于指示第一色度块的所有带偏移是否等于零的附加比特。

在另一特定实施例中,编码方法还包括:仅在编码的用于第一色度块的附加比特指示不是第一色度块的所有带偏移等于零的情况下,针对至少第二色度块,编码用于指示第二色度块的所有带偏移是否等于零的附加比特。

在特定实施例中,编码带位置包括从参考带位置编码带位置。

作为示例,编码带位置使用可变长度编码。

在示例性实施例中,参考带位置是包括解码块的最低样本值的带的位置。

在特定实施例中,从参考带位置编码带位置包括从带位置减去参考带位置以获得残差并编码所述残差。

有利地,在指示包括解码块的最大样本值的带的位置的索引与指示包括解码块的最低样本值的带的位置的索引之间的差低于编码的带偏移的数量的情况下,不编码带位置。

公开一种解码器,包括:

-从比特流解码至少一个图像块的部件;

-从比特流解码样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的部件;

-响应于解码的多个带偏移和解码的带位置,利用样本自适应偏移滤波器滤波解码块的部件;

其中,多个带偏移的解码的第一带偏移必然是非零带偏移。

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

-从访问的比特流中解码至少一个图像块;

-从比特流解码样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置;

-响应于解码的多个带偏移和解码的带位置,利用样本自适应偏移滤波器滤波解码块;

其中,多个带偏移的解码的第一带偏移必然是非零带偏移。

解码器被配置为实现根据各种实施例的编码方法。

公开一种编码器,包括:

-编码和解码比特流中的至少一个图像块的部件;

-编码比特流中的样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的部件;

-响应于编码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码块的部件;

其中,多个带偏移的编码的第一带偏移必须是非零带偏移。

在变型中,公开一种编码器,其包括:通信接口,被配置为访问至少一个图像块;以及至少一个处理器,被配置为:

-编码和解码被访问的比特流中至少一个图像块;

-编码比特流中的样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置;

-响应于编码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码块;

其中,多个带偏移的编码的第一带偏移必须是非零带偏移。

编码器被配置为实现根据各种实施例的编码方法。

公开了一种比特流,包括表示至少一个图像块的编码数据;以及表示样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的编码数据,其中多个带偏移的第一带偏移必须是非零带偏移。即,比特流没有指示第一偏移是否为零的显式语法。

公开了一种其上存储有流的非暂时性处理器可读介质,其中该流包括:

表示至少一个图像块的编码数据;以及表示样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的编码数据,其中多个带偏移的第一带偏移必须是非零带偏移。

公开一种传输方法,包括:

-传送表示至少一个图像块的编码数据;和

-传送表示样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的编码数据,其中多个带偏移的第一带偏移必然是非零带偏移。

公开一种传送器,包括:

-传送表示至少一个图像块的编码数据的部件;和

-传送表示样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的编码数据的部件,其中多个带偏移的第一带偏移必然是非零带偏移。

在变型中,公开一种传送器,其包括被配置为访问编码数据的通信接口和至少一个处理器,被配置为:

-传送表示至少一个图像块的编码数据;和

-传送表示样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置的编码数据,其中多个带偏移的第一带偏移必须是非零带偏移。

公开一种非暂时性计算机可读介质,其具有存储在其中的指令,所述指令在执行时指示至少一个处理器:

-从访问的比特流中解码至少一个图像块;

-从比特流中解码样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置;

-响应于解码的多个带偏移和解码的带位置,利用样本自适应偏移滤波器滤波解码块;

其中,多个带偏移的解码的第一带偏移必然是非零带偏移。

公开一种非暂时性计算机可读介质,其具有存储在其中的指令,所述指令在执行时指示至少一个处理器:

-编码和解码访问的比特流中的至少一个图像块;

-编码比特流中的样本自适应偏移滤波器的多个带偏移和第一带偏移的带位置;

-响应于编码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码块;

其中,多个带偏移的编码的第一带偏移必须是非零带偏移。

附图说明

-图1和2例示将样本范围划分到32个带的示例;

-图3表示根据非限制性实施例的被配置为编码比特流中的图像块的传送器的示例性架构;

-图4例示示例性hevc编码器;

-图5和6表示根据特定和非限制性实施例的在比特流中编码图像块的方法的流程图;

-图7a和7b例示具有重构块样本的直方图的将样本范围划分到32个带的示例;

-图8表示根据非限制性实施例的被配置为从比特流解码图像块以获得解码图像块的接收器的示例性架构;

-图9例示示例性hevc视频解码器的框图;和

-图10和11表示根据特定和非限制性实施例的从比特流解码图像块的方法的流程图。

具体实施方式

要理解,附图和描述已经被简化以例示与清楚理解本原理相关的要素,同时为了清楚的目的,消除在典型编码和/或解码装置中发现的许多其他要素。

在下文中,单词“重构”和“解码”可以互换使用。通常但不一定,“重构”在编码器侧使用,而“解码”在解码器侧使用。

图3表示根据非限制性实施例的被配置为解码比特流中的图像块的传送器200的示例性架构。

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

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

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

-存储接口,例如具有大容量存储器、rom、光盘或磁性载体的接口;

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

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

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

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

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

-移动设备;

-通信设备;

-游戏设备;

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

-膝上型计算机;

-照相机;

-摄像机;

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

-静止图像服务器;

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

图4例示示例性视频编码器400,例如,hevc视频编码器,其适配于执行图5和/或6的编码方法。编码器400是传送器200的示例。为了编码具有一个或多个画面的视频序列,将画面划分成一个或多个切片(slice),其中每个切片可以包括一个或多个切片片段。切片片段被组织成编码单元,预测单元和变换单元。hevc规范在“块”和“单元”之间区分,其中“块”针对样本阵列中的特定区域(例如,亮度,y),“单元”包括所有编码的颜色分量的并置块(y,cb,cr或单色)、与块相关联的语法元素和预测数据(例如,运动矢量)。

为了编码,将画面划分为具有可配置大小的方形的编码树块(ctb),并且将连续的一组编码树块分组为切片。与ctb对应的编码树单元(ctu)包含编码的颜色分量的ctb。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或其他视频编码标准中规定的宏块,分区和子块,并且更一般地,指代各种大小的样本阵列。。

在示例性编码器400中,画面由编码器元件编码,如下所述。要编码的画面以cu为单位处理。使用帧内或帧间模式编码每个cu。当cu以帧内模式编码时,其执行帧内预测(460)。在帧间模式中,执行运动估计(475)和补偿(470)。编码器判定(405)帧内模式或帧间模式中的哪一个用于编码cu,并且通过预测模式标志指示帧内/帧间判定。通过从原始图像块中减去(410)预测的样本块(也被称为预测值)来计算残差。

帧内模式中的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用于亮度。

残差被变换(425)和量化(430)。熵编码(445)量化的变换系数以及运动向量和其他语法元素以输出比特流。编码器还可以跳过变换并且在4×4tu的基础上将量化直接应用于非变换的残差信号。编码器还可以绕过变换和量化,即,在不需要应用变换或量化处理的情况下直接编码残差。在直接pcm编码中,不应用预测,并且编码单元样本被直接编码到比特流中。

编码器包括解码循环,并因此对编码块进行解码以提供参考用于进一步预测。去量化(440)和逆变换(450)量化的变换系数以解码残差。通过组合(455)解码残差和预测样本块来重构图像块。例如,将环路滤波器(465)应用于重构画面,以执行去块/sao(样本自适应偏移)滤波以减少编码伪像。滤波图像存储在参考画面缓冲器(480)处。

图5表示根据特定和非限制性实施例的在比特流中编码图像块的方法的流程图。

该方法开始于步骤s200。在步骤s210,例如诸如编码器400之类的传送器访问图像块。在步骤s220,传送器在比特流中编码访问的图像块,并进一步解码/重构编码的图像块。编码图像块可以包括通过从图像块中减去预测值来获得残差。可以从帧内预测或运动补偿预测(即,帧间预测)获得预测值。然后,可以将残差变换并量化为在比特流中被熵编码的量化系数。编码块的解码通常包括去量化和逆变换量化系数以获得解码残差。在编码器侧,编码图像块的解码通常不包括熵解码。通过组合解码的残差和预测值来解码/重构图像块。作为示例,块是亮度块,即亮度分量的块。在一个变型中,块是色度块,即色度分量块。应当注意,术语“解码”或“重构”可以意味着图像块被部分地“解码”,例如,在去块滤波之后但是在sao滤波之前。

在步骤s230,传送器(例如,使用编码器400的模块445)编码比特流中的多个带偏移和带位置。有利地,修改多个带偏移的第一带偏移的编码,使得第一带偏移必须是非零带偏移。因此,编码器在不需要指示第一偏移是否为零的显式语法的情况下编码第一偏移。参考返回到之前讨论的带偏移为{0,2,3,0}的示例,带位置从19移动到20,并且要编码的偏移变为{2,3,0,0},即首先编码2,然后编码3,然后编码0并且然后编码0。结果,在这种情况下,不需要编码指示第一偏移是否为零的比特。在特定实施例中,编码第一带偏移减去1的值而不是带偏移值本身。在{2,3,0,0}带偏移的上述示例中,值1被编码用于第一带偏移,值3被编码用于第二带偏移,并且值0被编码用于第三和第四带偏移。通过在带偏移的编码上添加这样的约束,可以空余一比特。也可以在比特流中编码带偏移符号用于非零带偏移。在特定示例中,编码4个带偏移,第一个是非零。在变型中,编码多于4个带偏移。可以从原始图像块和解码图像块获得样本自适应偏移滤波器(sao)的多个带偏移和带位置。本原理不受获得这些sao参数的方式的限制。作为示例,可以通过最小化平均采样率-失真成本或通过使用另一标准来获得它们。

在步骤s240,传送器响应于编码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码块。然后,经滤波的解码块可以存储在参考画面缓冲器480中,并用于预测其他图像块。该方法在步骤s250结束。

在图6中描述的另一个特定实施例中,传送器在步骤s210访问第一和第二色度块(例如cb和cr)。在步骤s220,传送器编码和解码第一色度块(cb)。在步骤s225,传送器编码用于编码的色度块的指示其所有带偏移是否都等于零的信息(例如,附加比特sao_all_offsets_zero)。实际上,在hevcsao滤波器中,在两个色度分量之间共用相同的sao类型(由语法元素sao_type_idx_chroma指示)。因此,在针对色度禁用sao滤波器的情况下,对两个色度分量禁用sao滤波器。结果,在两个色度分量中的一个(cb或cr)的所有带偏移等于零而另一个色度分量具有至少一个非零带偏移的情况下,需要编码4个零值以用于其所有带偏移等于零的分量。通过编码附加比特sao_all_offsets_zero,可以空余附加比特,因为不再需要编码4个零值用于其所有带偏移等于零的分量。因此,仅在该信息指示并非其所有带偏移都等于零的情况下,在步骤s230中编码色度块的带偏移和带位置,否则不编码带偏移和带位置。在步骤s240,传送器响应于编码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码的色度块。

重复步骤s220,s225,s230和s240用于第二色度块(cr)。然而,在sao_all_offsets_zero指示第一色度分量(cb)的所有带偏移为零的情况下,可以避免(即,不编码)第二色度分量(cr)的附加比特sao_all_offsets_zero,因为第二色度分量带偏移可能不是全部为零。实际上,在后一种情况下,通过将滤波模式设置为“未应用”(sao_type_idx_chroma=0)来禁用sao滤波更有效。该方法在步骤s250结束。

用于色度分量的该特定实施例独立于用于亮度分量的实施例。然而,两个实施例可以有利地组合在一起,例如用于编码块的亮度和色度分量。

表1示出利用提出的编码色度带偏移用于不同色度偏移配置的方法获得的预期增益(比特数)。用于色度分量的该特定实施例独立于用于亮度分量的实施例。然而,两个实施例可以有利地组合在一起。

在hevc中,使用特定模式(模式“未应用”,如hevc的表7-8中所示)来指示两个色度分量的所有带偏移等于零的情况。在这种情况下,不编码带偏移和带位置。

表1

表2例示根据本原理的sao参数编码的示例性语法表。与hevc语法的区别以斜体显示。在该表中,编码的带偏移的数量等于4。然而,将认识到,本原理不限于编码4个带偏移。

表2

sao_offset_abs_minus1加1指定第一个带偏移的绝对值。因此,第一带偏移的编码是特定的,因为编码带偏移值减去1而不是带偏移值本身。对于所有剩余的带偏移,直接编码它们的值。

sao_all_offsets_zero[cidx=1]对应于第一色度分量(例如cb)的sao_all_offsets_zero,sao_all_offsets_zero[cidx=2]对应于第二色度分量(例如cr)的sao_all_offsets_zero。

hevc语法元素在题为“highefficiencyvideocoding”的文献itu-th.265的第7.3.8.3和7.4.9.3节中定义。

在又一实施例中,用于亮度分量或用于色度分量或用于亮度和色度分量二者的带位置(sao_band_position)相对于参考带位置refval被编码。在hevc中,带位置以绝对值编码,这在解码块的样本范围小于8比特的[0;255]范围或通常小于[0;2bitdepth-1]]范围的情况下是低效的。可以通过分析当前解码块的解码样本值来确定解码块的最低样本值min和可能的最大样本值max。如图7描绘,当前块中可以不存在经典范围[0;2bitdepth-1]的值。在这种情况下,编码非零带偏移用于当前解码块样本值范围之外的带是无用的。实际上,当前块中没有样本会被这样的带偏移修改。作为示例,参考带位置是包括解码(亮度和/或色度)块的最低样本值(min)的带的位置,即图7中的索引7的带。因此带位置可以相对于参考带位置更有效地被编码。实际上,要编码的较小值一般导致使用vlc的较少比特。在特定实施例中,代替在比特流中编码带位置的绝对值,编码残差r,其等于带位置与参考值refval之间的差,r=band_position-refval。作为示例,refval=最小带位置。在图7中,band_position=24和refval=7。有利地使用vlc代替flc来编码残差r。

在最大带位置(包括最大样本值的带的位置)和最小带位置(包括最大样本值的带的位置)之间的差低于编码的带偏移的数量(例如,低于4)的情况下,不编码带位置。有利地,在这种情况下,编码的偏移的数量也可以相应地减少。带的位置由其索引表示。在hevc的情况下,存在32个带,并且带的位置由0到31之间的索引指示。参考图7a,最小带位置等于7并且最大带位置等于25。在该特定情况下,最大带位置和最小带位置之间的差等于18。18优于编码的带偏移的数量,即在hevc的情况下为4,然后编码band_position。在另一个实施例中,如图7b中描绘,最小带位置等于7并且最大带位置等于9。这意味着画面仅在带7,8和9中具有样本值。这种情形可以通过建立重构样本值的直方图而检测到。在该特定情况下,可以由解码器推断起始带位置等于最小带位置,并且非零带偏移的数量最多等于3。在该特定情况下,最大带位置和最小带位置之间的差等于2。2低于编码的带偏移的数量,即在hevc的情况下为4,然后不编码band_position并且仅编码3个带偏移。

在hevc中,在bo中,在带位置靠近最后带位置的情况下,带偏移可以对应于非连续带,因为带由环形缓冲器管理,如图7描绘。根据本原理,通过将(索引0的)第一带和(索引31的)最后的带位置替换为包括值min(图7中的索引7的带)的min带和包括值max的max带(图7中索引25的带)来修改带位置的环形缓冲器。实际上,在带位置靠近max带的情况下,偏移值可以对应于非连续带,并且返回到min带而不是具有零索引的带,因为解码块样本范围之外的带位置是无用的。

编码带位置的该特定实施例独立于编码亮度分量(图5)和/或色度分量(图6)的实施例。然而,这些实施例可有利地组合在一起。

图8表示根据非限制性实施例的接收器100的示例性架构,其被配置为从比特流解码图像块以获得解码的图像块。

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

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

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

-存储接口,例如具有大容量存储器,rom,光盘或磁性载体的接口;

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

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

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

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

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

-移动设备;

-通信设备;

-游戏设备;

-机顶盒;

-电视机;

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

-膝上型计算机;

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

-显示器以及

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

图9例示适用于执行图10和/或11的解码方法的示例性hevc视频解码器200的框图。视频解码器200是接收器100的示例。在示例性解码器200中,由解码器元件解码比特流,如下所述。视频解码器200一般执行与图4中描述的编码通道相反的解码通道,其执行视频解码作为编码视频数据的一部分。

具体地,解码器的输入包括视频比特流,其可以由视频编码器400生成。首先熵解码(330)比特流以获得变换系数,运动矢量和其他编码信息。去量化(340)和逆变换(350)变换系数以解码残差。然后将解码残差与预测样本块(也被称为预测值)组合(355)以获得解码/重构图像块。可以从帧内预测(360)或运动补偿预测(即,帧间预测)(375)获得(370)预测样本块。如上所述,可以在运动补偿期间使用amvp和合并模式技术,其可以使用插值滤波器来计算插入值用于参考块的亚整数(sub-integer)像素。将环路滤波器(365)应用于重构图像。环路滤波器可以包括去块滤波器和sao滤波器。经滤波的图像存储在参考画面缓冲器(380)处。

图10表示根据特定和非限制性实施例的从比特流解码图像块的方法的流程图。

该方法从步骤s100开始。在步骤s110,诸如解码器300的接收器100访问比特流。在步骤s120,接收器从比特流解码至少一个图像块。解码块可以包括熵解码以获得变换系数,运动矢量和其他编码信息。然后可以对变换系数去量化和逆变换以获得残差。通过组合残差和预测值来重构块。可以从帧内预测或运动补偿预测(即,帧间预测)获得预测值。作为示例,块是亮度块。在一个变型中,块是色度块。应当注意,术语“解码”或“重构”可以意味着图像块被部分地“解码”,例如,在去块滤波之后但是在sao滤波之前,并且解码块可以与用于显示的最终解码输出不同。

在步骤s130,接收器从比特流解码样本自适应偏移滤波器(sao)的多个带偏移和带位置。有利地,多个带偏移的第一解码带偏移必须是非零带偏移。因此,对于带偏移为{2,3,0,0}的示例,首先解码2,然后是3,然后是0,然后是0。在这样的情况下,不需要解码指示第一个偏移是否为零的比特。即,解码器解码第一偏移,而不需要指示第一偏移是否为零的显式语法。在特定实施例中,解码第一带偏移减去1的值而不是带偏移值本身。为了获得第一带偏移值,将1加到第一带偏移的解码值。在{2,3,0,0}带偏移的上述示例中,解码值1用于第一带偏移,值3用于第二带偏移,并且解码值0用于第三和第四带偏移。通过在带偏移的解码上添加这样的约束,可以因此空余一个比特。也可以从比特流解码带偏移符号用于非零带偏移。在特定示例中,解码4个带偏移,第一个是非零。在变型中,解码多于4个带偏移。

在步骤s140,接收器响应于解码的多个带偏移和解码的带位置,利用样本自适应偏移滤波器滤波解码块。

该方法在步骤s150结束。

在图11中描述的另一个特定实施例中,接收器在步骤s110访问比特流。在步骤s120,接收器解码第一色度块(cb)。在步骤s125,接收器解码用于色度块指示其所有带偏移是否都等于零的信息(例如,附加比特sao_all_offsets_zero)。实际上,在hevcsao滤波器中,在两个色度分量之间共用相同的sao类型。因此,在针对色度禁用sao滤波器的情况下,必须对两个色度分量禁用sao滤波器。因此,在两个色度分量中的一个(cb或cr)的所有带偏移等于零而另一个色度分量具有至少一个非零带偏移的情况下,需要解码4个零值以用于其所有带偏移等于零的分量。通过解码附加比特(sao_all_offsets_zero),可以空余附加比特。因此,仅在该信息指示并非其所有带偏移都等于零的情况下,在步骤s130中解码带色度块的偏移和带位置,否则不编码带偏移和带位置。在步骤s140,接收器响应于解码的多个带偏移和编码的带位置,利用样本自适应偏移滤波器滤波解码的色度块。

重复步骤s120,s125,s130和s140用于第二色度块(cr)。然而,在sao_all_offsets_zero指示第一色度分量(cb)的所有带偏移为零的情况下,可以避免(即,不编码)第二色度分量(cr)的附加比特(sao_all_offsets_zero),因为第二色度分量带偏移不一定全部为零。该方法在步骤s150结束。

用于色度分量的该特定实施例独立于用于亮度分量的实施例。然而,两个实施例可以有利地组合在一起。

在又一实施例中,用于亮度分量或用于色度分量或用于亮度和色度分量二者的带位置(sao_band_position)从参考带位置解码。在hevc中,带位置以绝对值解码,这在解码块的样本范围小于8比特的[0;255]范围或通常小于[0;2bitdepth-1]]范围的情况下是低效的。可以通过分析当前块的解码样本值来确定解码块的最低样本值min和可能的最大样本值max。如图7描绘,当前块中可以不存在经典范围[0;2bitdepth-1]的值。在这种情况下,解码非零带偏移用于当前块样本值范围之外的带是无用的。实际上,当前块中没有样本会被这样的带偏移修改。作为示例,参考带位置是包括解码(亮度和/或色度)块的最低样本值(min)的带的位置,即图7中的索引7的带。因此带位置可以相对于参考带位置更有效地被解码。在特定实施例中,代替解码比特流中的带位置的绝对值,解码残差r(通过编码方法被编码的那个)。然后通过向残差r添加参考值refval获得band_position,band_position=r+refval。作为示例,refval=min带位置,即图7中的索引7。有利地使用vlc代替flc来解码残差r。

在max带位置(即,max带的索引)和min带位置(即,min带的索引)之间的差低于解码带偏移的数量(例如,低于4)的情况下,不解码带位置。带的位置由其索引指示。在hevc的情况下,存在32个带,并且带的位置由0到31之间的索引指示。参考图7a,最小带位置=7并且最大带位置=25。在该特定情况下,最大带位置和最小带位置之间的差等于18。18优于解码带偏移的数量,即4,然后解码band_position。在另一个实施例中,如图7b中描绘,最小带位置等于7并且最大带位置等于9。这意味着画面仅在带7,8和9中具有样本值。该情形可以通过建立重构样本值的直方图而检测到。在该特定情况下,可以由解码器推断起始带位置等于最小带位置,并且非零带偏移的数量最多等于3。在该特定情况下,最大带位置和最小带位置之间的差等于2。2低于解码带偏移的数量,即,4,然后不解码band_position。

在hevc中,在bo中,在带位置靠近最后的带位置的情况下,带偏移可以对应于非连续带,因为带由环形缓冲器管理,如图7描绘。根据本原理,通过将(索引0的)第一带和(索引31的)最后的带位置替换为包括值min(图7中的索引7的带)的min带和包括值max的max带(图7中索引25的带)来修改带位置的环形缓冲器。实际上,在带位置靠近最大带的情况下,偏移值可以对应于非连续带,并且返回到最小带而不是具有零索引的带,因为解码块样本范围之外的带位置是无用的。

解码带位置的该特定实施例独立于用于解码亮度分量(图10)和/或色度分量(图11)的实施例。然而,这些实施例可有利地组合在一起。

在图5,6,10和11中,模块是功能单元,其可以与可区分的物理单元相关或不相关。例如,这些模块或它们中的一些可以在唯一的组件或电路中集合在一起,或者对于软件的功能有贡献。相反,一些模块可能潜在地由单独物理实体组成。与本公开兼容的装置使用纯硬件实现,例如使用诸如asic或fpga或vlsi的专用硬件(分别为“专用集成电路”,“现场可编程门阵列”,“超大规模集成”)或者来自嵌入在设备中的若干集成电子组件,或者来自硬件和软件组件的混合来实现。

关于hevc标准描述了各种实施例。然而,本原理不限于hevc,并且可以应用于其他标准,推荐和扩展,包括例如hevc或hevc扩展,类似格式范围(rext),可伸缩性(shvc)和多视图(mv-hevc)扩展。关于图像块的编码/解码描述了各种实施例。它们可以应用于编码/解码整个画面或图像的整个序列。

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

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

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

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

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

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

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