帧间预测方法、装置及其应用的编/解方法及装置与流程

文档序号:20376986发布日期:2020-04-14 14:09阅读:195来源:国知局
帧间预测方法、装置及其应用的编/解方法及装置与流程

本申请实施例上涉及视频编码领域,更确切地说,涉及视频编解码过程中帧间预测方法。



背景技术:

视频编码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、互联网和移动网络上的视频传播、视频聊天和视频会议等实时会话应用、dvd和蓝光光盘、视频内容采集和编辑系统以及可携式摄像机的安全应用。

随着1990年h.261标准中基于块的混合型视频编码方式的发展,新的视频编码技术和工具得到发展并形成了后续视频编码标准演进的基础。视频编码标准包括mpeg-1视频、mpeg-2视频、itu-th.262/mpeg-2、itu-th.263、itu-th.264/mpeg-4第10部分高级视频编码(advancedvideocoding,avc)、itu-th.265/高效视频编码(highefficiencyvideocoding,hevc)…以及此类标准的扩展,例如可扩展性和/或3d(three-dimensional)扩展。随着视频创作和分享变得越来越广泛,视频流量成为通信网络和数据存储的最大负担。因此大多数视频编码标准的目标之一是相较之前的标准,在不降低图片的主观质量的前提下减少比特率。即使最新的高效视频编码(highefficiencyvideocoding,hevc)可以在不降低图片的主观质量的前提下比avc大约多压缩视频一倍,仍然亟需新技术相对hevc进一步压缩视频,新一代的视频编码技术vvc(versatilevideocoding)技术正在制定过程中,其目标在于相较于hevc能够在图片的主观质量不下降的前提下,进一步将压缩率提升50%左右。

hevc/h.265视频编码标准、或者正在制定的vvc/h.266视频编码标准,一帧图像会被分割成互不重叠的编码树单元(codingtreeunit,ctu),ctu的大小可以设置为64×64或128×128大小。以64×64大小的ctu为例,其包含64列像素,每列包含64个像素,每个像素包含亮度分量或/和色度分量。一个ctu被划分为一个或多个编码单元(codingunit,cu)。一个cu包含基本的编码信息,包括预测模式、变换系数等信息。解码端可以按照这些编码信息对cu进行相应的预测、反量化、反变换、重建、滤波等解码处理,产生这个cu对应的重建图像。一个cu对应有预测图像和残差图像,预测图像与残差图像相加得到重建图像。预测图像通过帧内预测或帧间预测生成,残差图像通过对变换系数进行反量化和反变换处理生成。

帧间预测是基于运动补偿(motioncompensation)的预测技术,。在帧间预测编码中,由于图像邻近帧中的相同物体存在一定时域相关性,可将图像序列的每一帧划分成许多互不重叠的块,并认为块内所有像素点的运动都相同。主要处理过程为确定当前块的运动信息,根据运动信息从当前块的参考帧中获取参考图像块,产生当前块的预测图像,其中,当前块(currentblock)是指正在进行编码/解码处理的图像块,其中所述当前块可以是一个编码单元中的亮度块或者色度块。运动信息包含帧间预测方向、参考帧索引(referenceindex,ref_idx)、运动矢量(motionvector,mv)等,其中帧间预测方向指示当前块使用前向预测、后向预测或双向预测其中的何种预测方向,运动矢量指示了参考帧中用于预测当前块的参考图像块相对于当前块的位移矢量,因而一个运动矢量对应有一个参考帧中的一个参考图像块。一个图像块的帧间预测可以只通过一个运动矢量,使用一个参考帧中的像素来生成预测图像,称为单向预测;也可以通过两个运动矢量,使用两个参考帧中的像素来组合生成预测图像,称为双向预测。也就是说,一个图像块通常可包含一个或两个运动矢量。对于一些多假设帧间预测(multi-hypothesisinterprediction)技术,一个图像块可能包含多于两个运动矢量。

一个mv是二维矢量,包含水平方向位移分量和竖直方向位移分量;一个mv对应于两个帧,每一帧具有一个图像顺序号(pictureordercount,poc),用于表示图像在显示顺序上的编号,所以一个mv也对应于一个poc差值。poc差值与时间间隔呈线性关系。运动矢量的缩放通常采用基于poc差值的缩放方式,将一对图像之间的运动矢量转换成另一对图像之间的运动矢量。

在编码时,h.265/hevc、h.266/vvc等视频编码标准把一帧图像分割成互不重叠的编码树单元(codingtreeunit,ctu),一个ctu被划分为一个或多个编码单元(codingunit,cu)。一个cu包含编码信息,包括预测模式、变换系数等信息。解码端:按照这些编码信息对cu进行相应的预测、反量化、反变换等解码处理,产生这个cu对应的重建图像。

码流中,运动信息占有大量的数据量。为了降低所需数据量,通常采用预测的方式传送运动信息,预测方式分为帧间预测和帧内预测,帧内预测是采用同一帧图像内的参考块作为预测块,而帧间预测则是采用不同帧内的参考块作为预测块。

常用的帧间预测模式有以下三种:

1)高级运动矢量预测模式(advancedmotionvectorprediction,amvp):在码流中标识当前块使用的帧间预测方向(前向、后向或双向)、参考帧索引(referenceindex)、运动矢量预测值索引(motionvectorpredictorindex,mvpindex)、运动矢量残差值(motionvectordifference,mvd);由帧间预测方向确定使用的参考帧队列,由参考帧索引确定当前块mv指向的参考帧,由运动矢量预测值索引指示mvp列表中的一个mvp作为当前块mv的预测值,一个mvp与一个mvd相加得到一个mv。

2)merge/skip模式:码流中标识融合索引(mergeindex),根据mergeindex从融合候选者列表(mergecandidatelist)中选择一个mergecandidate,当前块的运动信息(包括预测方向、参考帧、运动矢量)由这个mergecandidate确定。merge模式和skip模式的主要区别在于,merge模式隐含当前块有残差信息,也即,从运动候选者列表中获取的运动矢量作为当前块的运动矢量预测值,而当前块的运动矢量由该运动矢量的预测值与运动矢量的残差值相加得到,运动矢量的残差通过解码码流得到;而skip模式隐含当前块没有残差信息(或者说残差为0),即从运动矢量列表中获得的运动矢量直接作为当前块的运动矢量进行帧间预测;这两种模式导出运动信息的方式是一样的。

3)仿射变换模式:通过仿射变换由两个或三个控制点运动矢量得到当前块中各个子块的运动矢量。

在amvp模式以及merge/skip模式中,各自都需要首先建立一个候选者列表,对于amvp,一个候选运动矢量列表(amvp候选者列表)需要建立,一个较优的运动矢量将会被选出作为当前块的运动矢量预测值,而该运动矢量的索引值将会被写入码流中;而对于merge/skip模式,需要建议一个运动候选者列表(mergecandidatelist)需要被建立,而该当前候选运动信息列表中的候选运动信息包括有,单向或者双向参考信息,参考帧索引,以及与参考方向对应的运动矢量信息。图6展示了在amvp以及merge/skip模式下,建立候选运动矢量列表以及当前候选运动信息列表所需要参考的空域的候选块以及时域的候选块的具体位置。amvp允许最多两个候选的运动矢量,即amvp候选者列表的最大值为2,而merge/skip模式则允许更多的候选运动信息,在hevc中所允许的最多的候选运动信息为5个,即,当前候选运动信息列表的最大值为5。

在最新的视频编码技术,多用途视频编码(versatilevideocoding),开发过程中,提出了采用历史运动信息来扩展上述amvp以及merge/skip模式下的可选的运动矢量或者候选运动信息。jvet-k0104提案中提出了在融合运动信息候选列表和候选运动矢量预测列表中加入历史候选运动信息(historycandidate)的方法,增加了merge/skip的融合运动信息候选和intermvp模式的运动矢量预测候选的数量,提高了预测效率。历史候选运动信息列表是由历史候选运动信息组成,其中历史候选运动信息为先前编码块的运动信息。jvet-k0104提案中,介绍了历史候选运动信息列表(historycandidatelist)的使用方法以及历史候选运动信息列表的构建方法。

加入历史候选运动信息的融合运动信息候选列表的构建方式(历史候选运动信息列表的使用方法)如下:

步骤1:将与当前块空域相邻的空间候选和时域候选加入当前块的融合运动信息候选列表,其方法与hevc中的方法相同。如图6所示,空间候选包含a0、a1、b0、b1、和b2,时域候选包括t0和t1。在vtm中,时域候选也包括自适应时域运动矢量预测(atmvp)技术提供的候选。

步骤2:将历史候选运动信息列表中的历史候选运动信息按照加入到融合运动信息候选列表中,按照从历史候选运动信息列表尾部到头部的顺序检查预设数目的历史候选运动信息,如图7所示。从历史候选运动信息列表尾部的历史候选运动信息开始,检查其与步骤1得到的融合运动信息候选列表中融合运动信息候选是否相同,如果不同则加入到融合运动信息候选列表中,如果相同则检查历史候选运动信息列表中下一个历史候选运动信息。

步骤3:加入其它类型的融合运动信息候选,如双向预测候选(bi-predictivecandidate)和零运动矢量候选(zeromotionvectorcandidate)。

jvet-k0104提案中,历史候选运动信息列表利用当前帧中已编码块的运动信息构建,采用先进先出的方式对于历史候选运动信息列表进行访问。编码/解码端中总体的历史候选运动信息列表构建和使用方式如下:

步骤1:在片(slice)解码开始的时候初始化历史候选运动信息列表,将其清空。

步骤2:解码当前cu,如果当前cu或当前块为merge或inter帧间预测模式,则生成融合运动信息候选列表或候选运动矢量预测列表,同时将历史候选运动信息列表中的历史候选运动信息加入到融合运动信息候选列表或候选运动矢量预测列表中。

步骤3:在解码完当前cu或当前块之后,将当前块的运动信息作为新的历史候选运动信息,加入到历史候选运动信息列表中,更新历史候选运动信息列表,如图8所示。首先,从历史候选运动信息列表头部开始,将当前块的运动信息与历史候选运动信息列表中历史候选运动信息进行比较。如果某个历史候选运动信息(例如图3中的mv2)与当前块的运动信息相同,则将这个历史候选运动信息mv2移除。然后,检查历史候选运动信息列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选运动信息移除。最后,将当前块的运动信息加入到历史候选运动信息列表的尾部。

然而,在构建上述的历史候选运动信息列表过程中,现有技术采用的每个片开始编解码时初始化历史候选运动信息列表,不利于行级以及ctu级的编解码并行。而且该方法在每一个编码块都进行历史候选运动信息列表格更新,历史候选运动信息列表较长时,其构造和更新花销时间较长。



技术实现要素:

有鉴于次,本发明提供一种帧间预测方法及装置,以及应用该方法的编解码方法以及应用该装置的编解码装置。本发明的第一方面,提供一种帧间预测的方法,其包括:若当前编码树单元位于一个编码树单元行的第一个,或者位于并行编码树单元组合的第一个(所述并行编码树单元由位于同于编码树单元行的连续k个编码树单元构成,k大于等于1,小于一个编码树单元行内总的编码树单元数目l,l大于等于2),则初始化与当前编码树单元对应的历史候选运动信息列表,其中,所述历史候选运动信息列表中包括n个存储空间,所述n个存储空间用于存储历史候选运动信息,所述初始化后的历史候选运动信息列表包括至少m空置的存储空间,所述m≤n,m及n为整数,所述当前编码树单元包含于由多个编码树单元构成的编码树单元集合(slice)中,其所述当前编码树单元非所述编码树单元集合中按照预定的处理顺序中的第一个;按照预定的顺序将所述当前编码树单元的空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中,其中,m≤l≤n,所述空域相邻块内l个位置根据预设的规则得到;构建所述当前编码树单元的当前候选运动信息列表或者当前编码单元的当前候选运动信息列表,其中所述编码单元由所述编码树单元划分得到;以及根据所述当前编码树单元的当前候选运动信息列表和所述历史候选运动信息列表的组合或者当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合,对所述当前编码树单元或者当前编码单元进行帧间预测。

该方法中,在进行当前编码树单元的编码过程中,对历史候选运动信息列表进行初始化操作,即,将构建与当前编码树单元对应的独立的历史候选运动信息列表,从而切断编码树单元编码过程中由于构建历史候选运动信息列表而造成的依赖关系,以使得编码树单元可以根据自己的历史候选运动信息列表进行独立的编码,在具有相当的编码效率的同时,更有利于设计行级以及ctu级的编解码并行,通过并行处理,能够在保证编码质量基本不受损失的情况下,极大的降低编解码时间。

在结合本发明的第一方面的一可选实施方式,所述初始化与当前编码树单元对应的历史候选运动信息列表包括,清空所述历史候选运动信息列表,使得m=n。该方式使得当前编码树单元可以构建全新的历史候选运动信息列表,以增加帧间预测的准确性。

在结合本发明的第一方面的或者基于第一方面的可选实施方式的另一可选的实施方式,采用所述空域内相邻块内的m个预定的位置作为所述m个历史候选运动信息的来源位置,具体地,所述空域相邻块内m个位置为,从所述空域相邻块内预设位置获取第一个候选运动信息,以获取所述第一个候选运动信息的位置为起点,以预设的步长为间隔获取剩余的m-1个候选运动信息。在构建所述历史候选运动信息列表过程中为了能够和现有的历史候选运动信息列表构建方式统一并具有较为简化的算法,所述m个位置处的运动矢量通常是从一个起点位置以预设的间隔依次获取m个位置处的运动矢量,其中所述预设的间隔也可以称之为步长,该步长可以是固定的,例如,采用4个或者8个像素为单位;此外,所述步长也可以是变化的,例如,根据当前编码树单元的大小来设置不同的步长。

在结合本发明的第一方面的或者基于第一方面任意可选实施方式的另一可选实施方式中,所述m位置的运动信息的添加顺序可是预设的顺序,例如,按照顺时针的顺序,以所述当前编码树单元的左下角的空域相邻块为起点,以所述当前编码树单元右上角的空域相邻块为终点,将所述空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中。该获取方式以能够很好的匹配空域相邻块的处理顺序以及简化历史运动信息的读写逻辑为目标,因此,可以采用多种不同的方式。例如,采用逆时针的方式,或者,从两个端点处的空域相邻块为起点同时以相对的方向读取。

在结合本发明的第一方面的或者基于第一方面任意可选实施方式的另一可选实施方式中,在对所述当前编码树单元或者当前编码单元进行帧间预测之前,该方法还可以将所述当前编码树单元的当前候选运动信息列表和所述历史候选运动信息列表的组合进行组合或者将当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表进行组合,其具体可以是:将所述历史候选运动信息加入所述当前编码树单元的当前候选运动信息列表或者前编码单元的当前候选运动信息列表中,然后基于所述当前编码树单元的当前候选运动信息列表或者前编码单元的当前候选运动信息列表中,进行所述的帧间预测。这种处理方式可以简化当前运动编码树单元或者编码单元的运动信息的索引操作,将所述历史候选运动信息列表中的运动信息加入所述当前运动编码树单元或者编码单元的当前候选运动信息列表后,原始的候选运动信息和历史候选运动信息采用了统一的索引顺序及索引号,不需要建立额外的当前候选运动信息列表索引,从而能够有效简化索引的过程。

在结合本发明的第一方面的或者基于第一方面任意可选实施方式的另一可选实施方式中,若当前的编码树单元还需要进一步划分为编码单元进行编码的情况下,所述方法除了根据所获取的运动信息对所述当前编码单元进行帧间预测之外,所述方法还可以包括基于所述当前编码单元运动信息更新所述历史候选运动信息列表。该方法可以使得当前编码树单元对应的历史候选运动信息列表能够持续的获得更新,以提高帧间预测的准确性。

在结合本发明的第一方面的或者基于第一方面任意可选实施方式的另一可选实施方式中,上述的对历史候选运动信息列表的跟新可以分为两种情况,即,若所述m个位置并未填满,则将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表内所述m个位置中距离n-m位置最近的空置的存储空间内;或者;若所述m个位置已填满,则按照先入先出的原则将最早加入所述历史候选运动信息列表内的历史运动信息移除,并将剩余历史运动信息超被移除的历史运动信息位置移位后将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表的尾部,其中,所述历史候选运动信息列表中包含最新加入的历史运动信息的一端为所述历史候选运动信息列表的尾部。该方法提供的历史候选运动信息列表应用的灵活性,即,历史候选运动信息列表在不完全填满的时候也可以用于当前块的帧间预测,而在历史候选运动信息列表填满的情况下,当前编码块的运动信息/运动矢量依然可以用于更新所述历史候选运动信息列表。

在结合本发明的第一方面的或者基于第一方面任意可选实施方式的另一可选实施方式中,在历史候选运动信息列表填满的情况下,当前编码块的运动信息/运动矢量依然可以不再对所述历史候选运动信息列表更新,即,基于与所述当前编码单元相同的方法对另一编码单元进行帧间预测,其中,所述另一个编码单元按照预设处理顺序位于所述当前编码单元之后且与所述当前编码单元属于所述编码树单元,所述另一编码单元的帧间预测所采用的历史运动信息列表包括所述当前编码单元的帧间预测所采用的历史运动信息列表中的历史运动信息。具体地可以是,若所述m个位置并未填满,则将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表内所述m个位置中距离n-m位置最近的空置的存储空间内;若所述m个位置并已填满,则基于所述当前候选运动信息列表对下一个编码单元进行帧间预测处理。这种处理方式可以允许在当前编码树单元内的编码块的并行处理,

在结合本发明的第一方面的或者基于第一方面任意可选实施方式的另一可选实施方式中,如果在遍历完所述空域相邻图像块之后历史候选运动信息列表并没有填满的情况下、或者若当前编码树单元位于一帧图像最上侧,或者若当前编码树单元位于一帧图像的最左则,可以参考如下任意一种方法来处理历史候选运动信息列表中没有填满的部分。方式一:不再填充任何其他来源的运动信息,在编解码当前编码树单元内的当前编码单元时所获取的当前编码单元的运动信息作为所述历史候选运动信息加入到所述历史候选运动信息列表中。方式二:填充当前编码树单元空域预设非临近位置的编码块的运动信息。预设非临近位置可以是与临近位置固定间隔,也可以是预设模板。方式三:填充来自于参考帧中,当前编码树单元对应位置和当前编码树单元临近编码块对应位置中预设位置的编码块时域运动信息。当前编码树单元对应位置中的预设位置可以是固定间隔抽取,也可以是以特定规则或顺序抽取。当前编码树单元临近编码块对应位置中预设位置可以是一特定规则特定顺序抽取。方式四:填充来自于参考帧中,当前编码树单元对应位置和前编码树单元预设非临近位置的编码块对应位置中预设位置的编码块时域运动信息。当前前编码树单元对应位置中的预设位置可以是固定间隔抽取,也可以是以特定规则或顺序抽取。当前前编码树单元预设非临近位置的编码块对应位置中预设位置可以是一特定规则特定顺序抽取。方式五:填充来自于当前编码树单元邻近的编码树单元的历史候选运动信息列表中的历史候选运动信息。以上任意一种对未填充满的历史候选信息运动列表的填充方式都能够丰富所述历史候选运动信息列表内的历史候选运动信息,能够在空域相邻块不足或者空域相邻块的mv不足的情况下补足当前候选运动信息列表从而能够充分发挥历史候选运动信息列表所能够带来的编解码增益。

本发明第二方面提供一种采用本发明第一方面的帧间预测进行编码的方法:其包括:基于本发明的第一方面的帧间预测方法对当前的编码树单元或者编码单元进行帧间预测以获得帧间预测图像;将当前编码树单元或者所述当前编码单元的原始图像与将所获得的帧间预测图像相减获得残差图像;对所述残差图像以及所述运动信息索引进行编码形成码流。其中,需要说明的是作为解码方法,在进行所述帧间预测的过程中,需要,从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息,根据所述当前编码树单元或者当前编码单元的运动信息,对所述当前编码树单元或者当前编码单元进行帧间预测获得帧间预测图像,其中,获取所述运动信息的具体可以通过解析码流,所述当前编码树单元或者当前编码单元对应的运动信息索引,根据所述从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息。

本发明第三方面提供一种采用本发明第一方面的帧间预测进行编码的方法:其包括:基于本发明的第一方面的帧间预测方法对当前的编码树单元或者编码单元进行帧间预测以获得帧间预测图像,将当前编码树单元或者所述当前编码单元的原始图像与将所获得的帧间预测图像相减获得残差图像;对所述残差图像进行编码形成码流。其中,在基于第一方面的帧间预测方法获取帧间预测图像过程中,该方法还包括:从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息,以及所述运动信息的运动信息索引;根据所述当前编码树单元或者当前编码单元的运动信息,对所述当前编码树单元或者当前编码单元进行帧间预测获得帧间预测图像;以及,对所述运动索引进行编码。

相比于现有技术,上述编码/解码方法中,采用了在编码树级别的历史候选运动信息列表的更新,允许行级以及ctu级的编解码并行,能够有效降低编码的时间。

此外,本发明还提供了与本发明第一、第二及第三方面对应的阵间预测装置,编码装置以及编码设备以及与本发明第三方面对应的解码装置接解码设备。

此外,本发明还提供了与本发明第一、第二及第三方面对应的阵间预测设备,编码设备以及编码设备,其包括数字处理器以及存储器,在所述存储器中存储有可执行的指令集,所述数字处理器读取存储在所述存储器中的指令集用于实现本发明第一、第二或第三方面提供的方法。

附图说明

图1是用于实现本发明实施例的视频编码系统实例的框图;

图2是用于实现本发明实施例的视频编码器实例结构的框图;

图3是用于实现本发明实施例的视频解码器实例结构的框图;

图4是显示包含图2的编码器20和图3的解码器30

图5是显示另一种编码装置或解码装置实例的框图;

图6是为当前块空域相邻块以及时域相邻块的位置示意图;

图7是历史候选运动信息加入融合当前候选运动信息列表的示意图;

图8是历史候选运动信息列表构建的示意图;

图9为前编码树单元左侧和上方空域相邻图像块的运动信息;

图10为两个空间候选运动信息a和b的获取流程。

图11是根据一实施例的视频编码器实现本发明帧间预测方法的实例操作的流程图;

图12是根据另一实施例的视频解码器基于图11的阵间预测方法进行解码的方法流程图;

图13是根据另一实施例的视频解码器基于图11的阵间预测方法进行编码的方法流程图;

图14是根据另一实施例提供的具备实现图11中所述方法的帧间预测装置的示意图;

图15是根据另一实施例提供的具备实现图12中所述方法的帧间预测装置的示意图;

图16是根据另一实施例提供的具备实现图13中所述方法的帧间预测装置的示意图;

图17是根据另一实施例提供的具备实现图11~13中任意方法的设备的示意图。

以下如果没有关于相同参考符号的具体注释,相同的参考符号是指相同或至少功能上等效的特征。

具体实施方式

以下,参考附图来说明本发明具体的实施方式以及使用本发明具体实施方式的应用实例。

应理解,本发明实施例并不局限于在本文中所列举处的实例中,其可在其它方面中使用,并可包括附图中未显示的结构或逻辑变化。

例如,应理解,本文中帧间预测方法所包含的内容可以同样适用于用于执行所述方法的对应设备或系统,且反之亦然。例如,当描述一个或多个具体方法步骤,则对应的设备可以包含如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元,其中每个都执行多个步骤中的一个或多个),即使附图中未明确描述或说明这种一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元描述具体装置,则对应的方法可以包含一个步骤来执行一个或多个单元的功能性(例如,一个步骤执行一个或多个单元的功能性,或多个步骤,其中每个执行多个单元中一个或多个单元的功能性),即使附图中未明确描述或说明这种一个或多个步骤。进一步,应理解的是,除非另外明确提出,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。

视频编码通常是指处理形成视频或视频序列的图片序列。在视频编码领域,术语“图片(picture)”、“帧(frame)”或“图像(image)”可以用作同义词。本申请(或本公开)中使用的视频编码表示视频编码或视频解码。视频编码在源侧执行,通常包括处理(例如,通过压缩)原始视频图片以减少表示该视频图片所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重构视频图片。实施例涉及的视频图片(或总称为图片,下文将进行解释)“编码”应理解为涉及视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码(编码和解码)。

无损视频编码情况下,可以重构原始视频图片,即经重构视频图片具有与原始视频图片相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频编码情况下,通过例如量化执行进一步压缩,来减少表示视频图片所需的数据量,而解码器侧无法完全重构视频图片,即经重构视频图片的质量相比原始视频图片的质量较低或较差。

h.261~h.265的几个视频编码标准属于“有损混合型视频编解码”(即,将样本域中的空间和时间预测与变换域中用于应用量化的2d变换编码结合)。视频序列的每个图片通常分割成不重叠的块集合,通常在块层级上进行编码。换句话说,编码器侧通常在块(视频块)层级处理亦即编码视频,例如,通过空间(图片内)预测和时间(图片间)预测来产生预测块,从当前块(当前处理或待处理的块)减去预测块以获取残差块,在变换域变换残差块并量化残差块,以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理部分应用于经编码或经压缩块,以重构用于表示的当前块。另外,编码器复制解码器处理循环,使得编码器和解码器生成相同的预测(例如帧内预测和帧间预测)和/或重构,用于处理亦即编码后续块。

如本文中所用,术语“块”可以为图片或帧的一部分。为便于描述,参考vvc或由itu-t视频编码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频编码联合工作组(jointcollaborationteamonvideocoding,jct-vc)开发的高效视频编码(high-efficiencyvideocoding,hevc)描述本发明实施例。本领域普通技术人员理解本发明实施例不限于hevc或vvc。可以指cu、pu和tu。在hevc中,通过使用表示为编码树的四叉树结构将ctu拆分为多个cu。在cu层级处作出是否使用图片间(时间)或图片内(空间)预测对图片区域进行编码的决策。每个cu可以根据pu拆分类型进一步拆分为一个、两个或四个pu。一个pu内应用相同的预测过程,并在pu基础上将相关信息传输到解码器。在通过基于pu拆分类型应用预测过程获取残差块之后,可以根据类似于用于cu的编码树的其它四叉树结构将cu分割成变换单元(transformunit,tu)。在视频压缩技术最新的发展中,使用四叉树和二叉树(quad-treeandbinarytree,qtbt)分割帧来分割编码块。在qtbt块结构中,cu可以为正方形或矩形形状。在vvc中,编码树单元(codingtreeunit,ctu)首先由四叉树结构分割。四叉树叶节点进一步由二进制树结构分割。二进制树叶节点称为编码单元(codingunit,cu),所述分段用于预测和变换处理,无需其它任何分割。这表示cu、pu和tu在qtbt编码块结构中的块大小相同。同时,还提出与qtbt块结构一起使用多重分割,例如三叉树分割。

以下基于图1到3描述编码器20、解码器30和编码系统10的实施例(在基于图6更详细描述本发明实施例之前)。

图1为示例性编码系统10的概念性或示意性框图,例如,可以利用本申请(本公开)技术的视频编码系统10。视频编码系统10的编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)表示可用于根据本申请中描述的各种实例执行用于进行融合候选者列表构建,以及基于该融合后选择列表进行编解码的技术的设备实例。如图1中所示,编码系统10包括源设备12,用于向例如解码经编码数据13的目的地设备14提供经编码数据13,例如,经编码图片13。

源设备12包括编码器20,另外亦即可选地,可以包括图片源16,例如图片预处理单元18的预处理单元18,以及通信接口或通信单元22。

图片源16可以包括或可以为任何类别的图片捕获设备,用于例如捕获现实世界图片,和/或任何类别的图片或评论(对于屏幕内容编码,屏幕上的一些文字也认为是待编码的图片或图像的一部分)生成设备,例如,用于生成计算机动画图片的计算机图形处理器,或用于获取和/或提供现实世界图片、计算机动画图片(例如,屏幕内容、虚拟现实(virtualreality,vr)图片)的任何类别设备,和/或其任何组合(例如,实景(augmentedreality,ar)图片)。

(数字)图片为或者可以视为具有亮度值的采样点的二维阵列或矩阵。阵列中的采样点也可以称为像素(pixel)(像素(pictureelement)的简称)或像素(pel)。阵列或图片在水平和垂直方向(或轴线)上的采样点数目定义图片的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图片可以表示为或包含三个采样阵列。rbg格式或颜色空间中,图片包括对应的红色、绿色及蓝色采样阵列。但是,在视频编码中,每个像素通常以亮度/色度格式或颜色空间表示,例如,ycbcr,包括y指示的亮度分量(有时也可以用l指示)以及cb和cr指示的两个色度分量。亮度(简写为luma)分量y表示亮度或灰度水平强度(例如,在灰度等级图片中两者相同),而两个色度(简写为chroma)分量cb和cr表示色度或颜色信息分量。相应地,ycbcr格式的图片包括亮度采样值(y)的亮度采样阵列,和色度值(cb和cr)的两个色度采样阵列。rgb格式的图片可以转换或变换为ycbcr格式,反之亦然,该过程也称为色彩变换或转换。如果图片是黑白的,该图片可以只包括亮度采样阵列。

图片源16(例如,视频源16)可以为,例如用于捕获图片的相机,例如图片存储器的存储器,包括或存储先前捕获或产生的图片,和/或获取或接收图片的任何类别的(内部或外部)接口。相机可以为,例如,本地的或集成在源设备中的集成相机,存储器可为本地的或例如集成在源设备中的集成存储器。接口可以为,例如,从外部视频源接收图片的外部接口,外部视频源例如为外部图片捕获设备,比如相机、外部存储器或外部图片生成设备,外部图片生成设备例如为外部计算机图形处理器、计算机或服务器。接口可以为根据任何专有或标准化接口协议的任何类别的接口,例如有线或无线接口、光接口。获取图片数据17的接口可以是与通信接口22相同的接口或是通信接口22的一部分。

区别于预处理单元18和预处理单元18执行的处理后的图片或者图片数据,图片或图片数据17(例如,视频数据16)也可以称为原始图片或原始图片数据17。

预处理单元18用于接收(原始)图片数据17并对图片数据17执行预处理,以获取经预处理的图片19或经预处理的图片数据19。例如,预处理单元18执行的预处理可以包括整修、色彩格式转换(例如,从rgb转换为ycbcr)、调色或去噪。可以理解,预处理单元18可以是可选组件。

编码器20(例如,视频编码器20)用于接收经预处理的图片数据19并提供经编码图片数据21(下文将进一步描述细节,例如,基于图2或图4、5)。在一个实例中,编码器20可以根据率失真代价评估选择对当前块(当前待编码图像块)最适合的预测方式,例如,采用帧内预测或者采用帧间预测。在编码器20选择采用帧间预测模式时,所述编码器可以执行以下的方法来对当前块进行帧间预测,即,所述编码器20,首先,若当前编码树单元位于一个编码树单元行的第一个,或者位于并行编码树单元组合的第一个(所述并行编码树单元由位于同于编码树单元行的连续k个编码树单元构成,k大于等于1,小于一个编码树单元行内总的编码树单元数目),则初始化与当前编码树单元对应的历史候选运动信息列表,其中,所述历史候选运动信息列表中包括n个存储空间,所述n个存储空间用于存储历史候选运动信息,所述初始化后的历史候选运动信息列表包括至少m空置的存储空间,所述m≤n,m及n为整数,所述当前编码树单元包含于由多个编码树单元构成的编码树单元集合(slice)中,其所述当前编码树单元非所述编码树单元集合中按照预定的处理顺序中的第一个;接着,按照预定的顺序将所述当前编码树单元的空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中,其中,m≤l≤n,所述空域相邻块内l个位置根据预设的规则得到;构建所述当前编码树单元或者当前编码单元的当前候选运动信息列表,其中所述编码单元由所述编码树单元划分得到;最后,根据所述当前编码树单元或者当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合,对所述当前编码树单元或者当前编码单元进行帧间预测。基于上述的方法,编码器20在进行编码过程中可以获取更加多样的运动信息,来对当前块进行预测,在历史候选运动信息列表的应用过程中并不需要等待前一个编码树单元编码完毕之后才开始处理后一个编码树单元,从而能够提升帧间预测中编码树单元并行处理的能力,提升编码效率。

源设备12的通信接口22可以用于接收经编码图片数据21并传输至其它设备,例如,目的地设备14或任何其它设备,以用于存储或直接重构,或用于在对应地存储经编码数据13和/或传输经编码数据13至其它设备之前处理经编码图片数据21,其它设备例如为目的地设备14或任何其它用于解码或存储的设备。

目的地设备14包括解码器30(例如,视频解码器30),另外亦即可选地,可以包括通信接口或通信单元28、后处理单元32和显示设备34。

目的地设备14的通信接口28用于例如,直接从源设备12或任何其它源接收经编码图片数据21或经编码数据13,任何其它源例如为存储设备,存储设备例如为经编码图片数据存储设备。

通信接口22和通信接口28可以用于藉由源设备12和目的地设备14之间的直接通信链路或藉由任何类别的网络传输或接收经编码图片数据21或经编码数据13,直接通信链路例如为直接有线或无线连接,任何类别的网络例如为有线或无线网络或其任何组合,或任何类别的私网和公网,或其任何组合。

通信接口22可以例如用于将经编码图片数据21封装成合适的格式,例如包,以在通信链路或通信网络上传输。

形成通信接口22的对应部分的通信接口28可以例如用于解封装经编码数据13,以获取经编码图片数据21。

通信接口22和通信接口28都可以配置为单向通信接口,如图1中用于经编码图片数据13的从源设备12指向目的地设备14的箭头所指示,或配置为双向通信接口,以及可以用于例如发送和接收消息来建立连接、确认和交换任何其它与通信链路和/或例如经编码图片数据传输的数据传输有关的信息。

解码器30用于接收经编码图片数据21并提供经解码图片数据31或经解码图片31(下文将进一步描述细节,例如,基于图3或图5)。在一个实例中,解码器30可以用于解码经过编码器编码的数据,其具体可以是,解析码流获取融合候选者索引;根据所述融合候选者索引从所述融合候选者列表中获取对应的融合候选者并将所述融合候选者作为所述当前块的运动信息;根据所述当前块的运动信息对当前块进行帧间预测获得所述当前块的预测图像;获取所述当前块的残差图像;将所述当前块的预测图像以及所述当前块的残差图像相加得到所述当前块的重建图像。

目的地设备14的后处理器32用于后处理经解码图片数据31(也称为经重构图片数据),例如,经解码图片131,以获取经后处理图片数据33,例如,经后处理图片33。后处理单元32执行的后处理可以包括,例如,色彩格式转换(例如,从ycbcr转换为rgb)、调色、整修或重采样,或任何其它处理,用于例如准备经解码图片数据31以由显示设备34显示。

目的地设备14的显示设备34用于接收经后处理图片数据33以向例如用户或观看者显示图片。显示设备34可以为或可以包括任何类别的用于呈现经重构图片的显示器,例如,集成的或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微led显示器、硅基液晶(liquidcrystalonsilicon,lcos)、数字光处理器(digitallightprocessor,dlp)或任何类别的其它显示器。

虽然图1将源设备12和目的地设备14显示为单独的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括两者的功能性,即源设备12或对应的功能性以及目的地设备14或对应的功能性。在此类实施例中,可以使用相同硬件和/或软件,或使用单独的硬件和/或软件,或其任何组合来实施源设备12或对应的功能性以及目的地设备14或对应的功能性。

本领域技术人员基于描述明显可知,不同单元的功能性或图1所示的源设备12和/或目的地设备14的功能性的存在和(准确)划分可能根据实际设备和应用有所不同。

编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)都可以实施为各种合适电路中的任一个,例如,一个或多个微处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件实施所述技术,则设备可将软件的指令存储于合适的非暂时性计算机可读存储介质中,且可使用一或多个处理器以硬件执行指令从而执行本公开的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可视为一或多个处理器。视频编码器20和视频解码器30中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可以集成为对应设备中的组合编码器/解码器(编解码器)的一部分。

源设备12可称为视频编码设备或视频编码装置。目的地设备14可称为视频解码设备或视频解码装置。源设备12以及目的地设备14可以是视频编码设备或视频编码装置的实例。

源设备12和目的地设备14可以包括各种设备中的任一个,包含任何类别的手持或静止设备,例如,笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并可以不使用或使用任何类别的操作系统。

在一些情况下,源设备12和目的地设备14可以经装备以用于无线通信。因此,源设备12和目的地设备14可以为无线通信设备。

在一些情况下,图1中所示视频编码系统10仅为示例,本申请的技术可以适用于不必包含编码和解码设备之间的任何数据通信的视频编码设置(例如,视频编码或视频解码)。在其它实例中,数据可从本地存储器检索、在网络上流式传输等。视频编码设备可以对数据进行编码并且将数据存储到存储器,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备执行编码和解码。

应理解,对于以上参考视频编码器20所描述的实例中的每一个,视频解码器30可以用于执行相反过程。关于信令语法元素,视频解码器30可以用于接收并解析这种语法元素,相应地解码相关视频数据。在本发明一些例子中,视频编码器20可以将一个或多个定义融合候选者在融合候选者列表中的具体位置的语法元素以及当前块的空间非相邻块的帧间编码类型的语法元素熵编码成经编码视频比特流。在此类实例中,视频解码器30可以解析这种语法元素,并相应地解码相关视频数据。

编码器&编码方法

图2示出用于实现本发明技术的视频编码器20的实例的示意性/概念性框图。在图2的实例中,视频编码器20包括残差计算单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、缓冲器216、环路滤波器单元220、经解码图片缓冲器(decodedpicturebuffer,dpb)230、预测处理单元260和熵编码单元270。预测处理单元260可以包含帧间预测单元244、帧内预测单元254和模式选择单元262。帧间预测单元244可以包含运动估计单元和运动补偿单元(未图示)。图2所示的视频编码器20也可以称为混合型视频编码器或根据混合型视频编解码器的视频编码器。

例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260和熵编码单元270形成编码器20的前向信号路径,而例如逆量化单元210、逆变换处理单元212、重构单元214、缓冲器216、环路滤波器220、经解码图片缓冲器(decodedpicturebuffer,dpb)230、预测处理单元260形成编码器的后向信号路径,其中编码器的后向信号路径对应于解码器的信号路径(参见图3中的解码器30)。

编码器20通过例如输入202,接收图片201或图片201的块203,例如,形成视频或视频序列的图片序列中的图片。图片块203也可以称为当前图片块或待编码图片块,图片201可以称为当前图片或待编码图片(尤其是在视频编码中将当前图片与其它图片区分开时,其它图片例如同一视频序列亦即也包括当前图片的视频序列中的先前经编码和/或经解码图片)。

分割

编码器20的实施例可以包括分割单元(图2中未显示),用于将图片201分割成多个例如块203的块,通常分割成多个不重叠的块。分割单元可以用于对视频序列中所有图片使用相同的块大小以及定义块大小的对应栅格,或用于在图片或子集或图片群组之间更改块大小,并将每个图片分割成对应的块。在vvc中引入了由j.an等人的在用于下一代视频编码的分块结构(blockpartitioningstructurefornextgenerationvideocoding)”(国际电信联盟,com16-c966,2015年9月,以下称作“vceg建议书com16-c966”)中提出的四叉树二叉树(quad-tree-binary-tree,qtbt)划分技术。模拟已展示出提出的qtbt结构比所用的hevc中的四叉树结构更高效。此外,在qtbt中,cu可具有正方形或矩形形状。如图3中所示,编码树单元(codingtreeunit,ctu)首先通过四叉树结构划分。四叉树叶节点可进一步通过二叉树结构划分。在二叉树划分中存在两种划分类型:对称水平划分和对称竖直划分。在每种情况下,通过沿着中部水平地或竖直地平分节点来划分节点。二叉树叶节点称为编码单元(codingunit,cu),且分别在无任何进一步划分的情况下的预测和变换处理。这意味着cu、pu和tu在qtbt编码块结构中具有相同的块尺寸。cu有时由具有不同颜色分量的编码块(codingblock,cb)构成,例如,在4:2:0色度格式的p、b条带的情况下,一个cu含有一个亮度cb和两个色度cb,且cu有时由具有单个分量的cb构成,例如,在i条带的情况下,一个cu仅含有一个亮度cb或仅含有两个色度cb。

另外,在美国专利申请公开案第20170208336号中提出替代基于qt、bt和/或qtbt的cu结构的名为多型树(multi-type-tree,mtt)的块划分结构。mtt划分结构仍是递归树结构。在mtt中,使用多个不同划分结构(例如三个或更多个)。举例来说,根据mtt技术,可在树结构的每个深度针对树结构的每个相应的非叶节点使用三个或更多个不同划分结构。树结构中的节点的深度可指从所述节点到树结构的根部的路径的长度(例如划分次数)。划分结构可大体上指一个块可分成多少个不同块。划分结构可以是可将块分为四个块的四叉树划分结构、可将块分为两个块的二叉树划分结构或可将块分为三个块的三叉树划分结构,此外,三叉树划分结构可能并不通过中心划分块。划分结构可具有多个不同划分类型。划分类型可另外限定如何划分块,包含对称或不对称划分、均匀或不均匀划分和/或水平或竖直划分。

在mtt中,在树结构的每个深度处,编码器100可用于使用三个另外的划分结构中的一个划分结构的特定划分类型来进一步划分子树。举例来说,编码器100可用于确定来自qt、bt、三叉树(triple-tree,tt)和其它划分结构的特定划分类型。在一个示例中,qt划分结构可包含正方形四叉树或矩形四叉树划分类型。编码器100可使用正方形四叉树划分通过沿着中心水平地和竖直地将块平分为四个均等尺寸的正方形块来对正方形块进行划分。同样,编码器100可使用矩形四叉树划分通过沿着中心水平地和竖直地将矩形块平分为四个均等尺寸的矩形块来对矩形(例如非方形)块进行划分。

bt划分结构可包含水平对称二叉树、竖直对称二叉树、水平不对称二叉树或竖直不对称二叉树划分类型中的至少一个。对于水平对称二叉树划分类型,编码器100可用于沿着块的中心水平地将块平分为相同尺寸的两个对称块。对于竖直对称二叉树划分类型,编码器100可用于沿着块的中心竖直地将块平分为相同尺寸的两个对称块。对于水平不对称二叉树划分类型,编码器100可用于将块水平地分为不同尺寸的两个块。举例来说,一个块可以是父块尺寸的1/4,而另一块可以是父块尺寸的3/4,类似于part_2n×nu或part_2n×nd划分类型。对于竖直不对称二叉树划分类型,编码器100可用于将块竖直地分为不同尺寸的两个块。举例来说,一个块可以是父块尺寸的1/4,而另一块可以是父块尺寸的3/4,类似于part_nl×2n或part_nr×2n划分类型。在其它示例中,不对称二叉树划分类型可将父块分为不同尺寸的部分。举例来说,一个子块可以是父块的3/8,而另一子块可以是父块的5/8。当然,此类划分类型可以是竖直型或水平型。

tt划分结构与qt或bt结构的类型的不同之处在于,tt划分结构并不沿着中心划分块。块的中心区域一起保持在同一子块中。不同于产生四个块的qt或产生两个块的二叉树,根据tt划分结构的划分产生三个块。根据tt划分结构的示例划分类型包含对称划分类型(水平和竖直两种)以及不对称划分类型(水平和竖直两种)。此外,根据tt划分结构的对称划分类型可以是不均等/不均匀或均等/均匀的。根据tt划分结构的不对称划分类型是不均等/不均匀的。在一个示例中,tt划分结构可包含以下划分类型中的至少一个:水平均等/均匀对称三叉树,竖直均等/均匀对称三叉树,水平不均等/不均匀对称三叉树,竖直不均等/不均匀对称三叉树,水平不均等/不均匀不对称三叉树,或竖直不均等/不均匀不对称三叉树划分类型。

总的来说,不均等/不均匀对称三叉树划分类型是围绕块的中心线对称但其中所得三个块中的至少一个的尺寸与另两个不相同的划分类型。一个优选示例是其中侧边块是块尺寸的1/4,而中心块是块尺寸的1/2。均等/均匀对称三叉树划分类型是围绕块的中心线对称且所得块的尺寸全都相同的划分类型。此类划分在块高度或宽度——依竖直或水平划分而定——是3的整倍数的情况下是可能的。不均等/不均匀不对称三叉树划分类型是并不围绕块的中心线对称且其中所得块中的至少一个并非与另两个同等尺寸的划分类型。

在一个实例中,视频编码器20的预测处理单元260可以用于执行上述分割技术的任何组合。

如图片201,块203也是或可以视为具有亮度值(采样值)的采样点的二维阵列或矩阵,虽然其尺寸比图片201小。换句话说,块203可以包括,例如,一个采样阵列(例如黑白图片201情况下的亮度阵列)或三个采样阵列(例如,彩色图片情况下的一个亮度阵列和两个色度阵列)或依据所应用的色彩格式的任何其它数目和/或类别的阵列。块203的水平和垂直方向(或轴线)上采样点的数目定义块203的尺寸。

如图2所示的编码器20用于逐块编码图片201,例如,对每个块203执行编码和预测。

残差计算

残差计算单元204用于基于图片块203和预测块265(下文提供预测块265的其它细节)计算残差块205,例如,通过逐样本(逐像素)将图片块203的样本值减去预测块265的样本值,以在样本域中获取残差块205。

变换

变换处理单元206用于在残差块205的样本值上应用例如离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)的变换,以在变换域中获取变换系数207。变换系数207也可以称为变换残差系数,并在变换域中表示残差块205。

变换处理单元206可以用于应用dct/dst的整数近似值,例如为hevc/h.265指定的变换。与正交dct变换相比,这种整数近似值通常由某一因子按比例缩放。为了维持经正变换和逆变换处理的残差块的范数,应用额外比例缩放因子作为变换过程的一部分。比例缩放因子通常是基于某些约束条件选择的,例如,比例缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性和实施成本之间的权衡等。例如,在解码器30侧通过例如逆变换处理单元212为逆变换(以及在编码器20侧通过例如逆变换处理单元212为对应逆变换)指定具体比例缩放因子,以及相应地,可以在编码器20侧通过变换处理单元206为正变换指定对应比例缩放因子。

量化

量化单元208用于例如通过应用标量量化或向量量化来量化变换系数207,以获取经量化变换系数209。经量化变换系数209也可以称为经量化残差系数209。量化过程可以减少与部分或全部变换系数207有关的位深度。例如,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。可通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantizationparameter,qp)指示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可以对应精细量化(较小量化步长),较大量化参数可以对应粗糙量化(较大量化步长),反之亦然。量化可以包含除以量化步长以及例如通过逆量化210执行的对应的量化或逆量化,或者可以包含乘以量化步长。根据例如hevc的一些标准的实施例可以使用量化参数来确定量化步长。一般而言,可以基于量化参数使用包含除法的等式的定点近似来计算量化步长。可以引入额外比例缩放因子来进行量化和反量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的标度而修改的残差块的范数。在一个实例实施方式中,可以合并逆变换和反量化的标度。或者,可以使用自定义量化表并在例如比特流中将其从编码器通过信号发送到解码器。量化是有损操作,其中量化步长越大,损耗越大。

逆量化单元210用于在经量化系数上应用量化单元208的逆量化,以获取经反量化系数211,例如,基于或使用与量化单元208相同的量化步长,应用量化单元208应用的量化方案的逆量化方案。经反量化系数211也可以称为经反量化残差系数211,对应于变换系数207,虽然由于量化造成的损耗通常与变换系数不相同。

逆变换处理单元212用于应用变换处理单元206应用的变换的逆变换,例如,逆离散余弦变换(discretecosinetransform,dct)或逆离散正弦变换(discretesinetransform,dst),以在样本域中获取逆变换块213。逆变换块213也可以称为逆变换经反量化块213或逆变换残差块213。

重构单元214(例如,求和器214)用于将逆变换块213(即经重构残差块213)添加至预测块265,以在样本域中获取经重构块215,例如,将经重构残差块213的样本值与预测块265的样本值相加。

可选地,例如线缓冲器216的缓冲器单元216(或简称“缓冲器”216)用于缓冲或存储经重构块215和对应的样本值,用于例如帧内预测。在其它的实施例中,编码器可以用于使用存储在缓冲器单元216中的未经滤波的经重构块和/或对应的样本值来进行任何类别的估计和/或预测,例如帧内预测。

例如,编码器20的实施例可以经配置以使得缓冲器单元216不只用于存储用于帧内预测254的经重构块215,也用于环路滤波器单元220(在图2中未示出),和/或,例如使得缓冲器单元216和经解码图片缓冲器单元230形成一个缓冲器。其它实施例可以用于将经滤波块221和/或来自经解码图片缓冲器230的块或样本(图2中均未示出)用作帧内预测254的输入或基础。

环路滤波器单元220(或简称“环路滤波器”220)用于对经重构块215进行滤波以获取经滤波块221,从而顺利进行像素转变或提高视频质量。环路滤波器单元220旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf),或锐化或平滑滤波器,或协同滤波器。尽管环路滤波器单元220在图2中示出为环内滤波器,但在其它配置中,环路滤波器单元220可实施为环后滤波器。经滤波块221也可以称为经滤波的经重构块221。经解码图片缓冲器230可以在环路滤波器单元220对经重构编码块执行滤波操作之后存储经重构编码块。

编码器20(对应地,环路滤波器单元220)的实施例可以用于输出环路滤波器参数(例如,样本自适应偏移信息),例如,直接输出或由熵编码单元270或任何其它熵编码单元熵编码后输出,例如使得解码器30可以接收并应用相同的环路滤波器参数用于解码。

经解码图片缓冲器(decodedpicturebuffer,dpb)230可以为存储参考图片数据供视频编码器20编码视频数据之用的参考图片存储器。dpb230可由多种存储器设备中的任一个形成,例如动态随机存储器(dynamicrandomaccessmemory,dram)(包含同步dram(synchronousdram,sdram)、磁阻式ram(magnetoresistiveram,mram)、电阻式ram(resistiveram,rram))或其它类型的存储器设备。可以由同一存储器设备或单独的存储器设备提供dpb230和缓冲器216。在某一实例中,经解码图片缓冲器(decodedpicturebuffer,dpb)230用于存储经滤波块221。经解码图片缓冲器230可以进一步用于存储同一当前图片或例如先前经重构图片的不同图片的其它先前的经滤波块,例如先前经重构和经滤波块221,以及可以提供完整的先前经重构亦即经解码图片(和对应参考块和样本)和/或部分经重构当前图片(和对应参考块和样本),例如用于帧间预测。在某一实例中,如果经重构块215无需环内滤波而得以重构,则经解码图片缓冲器(decodedpicturebuffer,dpb)230用于存储经重构块215。

预测处理单元260,也称为块预测处理单元260,用于接收或获取块203(当前图片201的当前块203)和经重构图片数据,例如来自缓冲器216的同一(当前)图片的参考样本和/或来自经解码图片缓冲器230的一个或多个先前经解码图片的参考图片数据231,以及用于处理这类数据进行预测,即提供可以为经帧间预测块245或经帧内预测块255的预测块265。

模式选择单元262可以用于选择预测模式(例如帧内或帧间预测模式)和/或对应的用作预测块265的预测块245或255,以计算残差块205和重构经重构块215。

模式选择单元262的实施例可以用于选择预测模式(例如,从预测处理单元260所支持的那些预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差意味着传输或存储中更好的压缩),或提供最小信令开销(最小信令开销意味着传输或存储中更好的压缩),或同时考虑或平衡以上两者。模式选择单元262可以用于基于码率失真优化(ratedistortionoptimization,rdo)确定预测模式,即选择提供最小码率失真优化的预测模式,或选择相关码率失真至少满足预测模式选择标准的预测模式。

下文将详细解释编码器20的实例(例如,通过预测处理单元260)执行的预测处理和(例如,通过模式选择单元262)执行的模式选择。

如上文所述,编码器20用于从(预先确定的)预测模式集合中确定或选择最好或最优的预测模式。预测模式集合可以包括例如帧内预测模式和/或帧间预测模式。

帧内预测模式集合可以包括35种不同的帧内预测模式,例如,如dc(或均值)模式和平面模式的非方向性模式,或如h.265中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如,如dc(或均值)模式和平面模式的非方向性模式,或如正在发展中的h.266中定义的方向性模式。

(可能的)帧间预测模式集合取决于可用参考图片(即,例如前述存储在dbp230中的至少部分经解码图片)和其它帧间预测参数,例如取决于是否使用整个参考图片或只使用参考图片的一部分,例如围绕当前块的区域的搜索窗区域,来搜索最佳匹配参考块,和/或例如取决于是否应用如半像素和/或四分之一像素内插的像素内插。

除了以上预测模式,也可以应用跳过模式和/或直接模式。

预测处理单元260可以进一步用于将块203分割成较小的块分区或子块,例如,通过迭代使用四叉树(quad-tree,qt)分割、二进制树(binary-tree,bt)分割或三叉树(triple-tree,tt)分割,或其任何组合,以及用于例如为块分区或子块中的每一个执行预测,其中模式选择包括选择分割的块203的树结构和选择应用于块分区或子块中的每一个的预测模式。

帧间预测单元244可以包含运动估计(motionestimation,me)单元(图2中未示出)和运动补偿(motioncompensation,mc)单元(图2中未示出)。运动估计单元用于接收或获取图片块203(当前图片201的当前图片块203)和经解码图片231,或至少一个或多个先前经重构块,例如,一个或多个其它/不同先前经解码图片231的经重构块,来进行运动估计。例如,视频序列可以包括当前图片和先前经解码图片31,或换句话说,当前图片和先前经解码图片31可以是形成视频序列的图片序列的一部分,或者形成该图片序列。本申请的融合候选者列表的构建可以通过该该运动估计模块来实现。

例如,编码器20可以用于从多个其它图片中的同一或不同图片的多个参考块中选择参考块,并向运动估计单元(图2中未示出)提供参考图片(或参考图片索引……)和/或提供参考块的位置(x、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数。该偏移也称为运动向量(motionvector,mv)。

运动补偿单元用于获取,例如接收帧间预测参数,并基于或使用帧间预测参数执行帧间预测来获取帧间预测块245。由运动补偿单元(图2中未示出)执行的运动补偿可以包含基于通过运动估计(可能执行对子像素精确度的内插)确定的运动/块向量取出或生成预测块。内插滤波可从已知像素样本产生额外像素样本,从而潜在地增加可用于编码图片块的候选预测块的数目。一旦接收到用于当前图片块的pu的运动向量,运动补偿单元246可以在一个参考图片列表中定位运动向量指向的预测块。运动补偿单元246还可以生成与块和视频条带相关联的语法元素,以供视频解码器30在解码视频条带的图片块时使用。

帧内预测单元254用于获取,例如接收同一图片的图片块203(当前图片块)和一个或多个先前经重构块,例如经重构相邻块,以进行帧内估计。例如,编码器20可以用于从多个(预定)帧内预测模式中选择帧内预测模式。

编码器20的实施例可以用于基于优化标准选择帧内预测模式,例如基于最小残差(例如,提供最类似于当前图片块203的预测块255的帧内预测模式)或最小码率失真(例如……)。

帧内预测单元254进一步用于基于如所选择的帧内预测模式的帧内预测参数确定帧内预测块255。在任何情况下,在选择用于块的帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即提供指示所选择的用于块的帧内预测模式的信息。在一个实例中,帧内预测单元254可以用于执行下文描述的帧内预测技术的任意组合。

熵编码单元270用于将熵编码算法或方案(例如,可变长度编码(variablelengthcoding,vlc)方案、上下文自适应vlc(contextadaptivevlc,cavlc)方案、算术编码方案、上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码方法或技术)应用于经量化残差系数209、帧间预测参数、帧内预测参数和/或环路滤波器参数中的单个或所有上(或不应用),以获取可以通过输出272以例如经编码比特流21的形式输出的经编码图片数据21。可以将经编码比特流传输到视频解码器30,或将其存档稍后由视频解码器30传输或检索。熵编码单元270还可用于熵编码正被编码的当前视频条带的其它语法元素。

视频编码器20的其它结构变型可用于编码视频流。例如,基于非变换的编码器20可以在没有针对某些块或帧的变换处理单元206的情况下直接量化残差信号。在另一实施方式中,编码器20可具有组合成单个单元的量化单元208和逆量化单元210。

图3示出示例性视频解码器30,用于实现本申请的技术,即进行待解码块(当前块)的融合候选者列表构造以及基于构造的融合候选者列表进行压缩图像的解码。视频解码器30用于接收例如由编码器20编码的经编码图片数据(例如,经编码比特流)21,以获取经解码图片231。在解码过程期间,视频解码器30从视频编码器20接收视频数据,例如表示经编码视频条带的图片块的经编码视频比特流及相关联的语法元素。

在图3的实例中,解码器30包括熵解码单元304、逆量化单元310、逆变换处理单元312、重构单元314(例如求和器314)、缓冲器316、环路滤波器320、经解码图片缓冲器330以及预测处理单元360。预测处理单元360可以包含帧间预测单元344、帧内预测单元354和模式选择单元362。在一些实例中,视频解码器30可执行大体上与参照图2的视频编码器20描述的编码遍次互逆的解码遍次。

熵解码单元304用于对经编码图片数据21执行熵解码,以获取例如经量化系数309和/或经解码的编码参数(图3中未示出),例如,帧间预测、帧内预测参数、环路滤波器参数和/或其它语法元素中(经解码)的任意一个或全部。熵解码单元304进一步用于将帧间预测参数、帧内预测参数和/或其它语法元素转发至预测处理单元360。视频解码器30可接收视频条带层级和/或视频块层级的语法元素。

逆量化单元310功能上可与逆量化单元110相同,逆变换处理单元312功能上可与逆变换处理单元212相同,重构单元314功能上可与重构单元214相同,缓冲器316功能上可与缓冲器216相同,环路滤波器320功能上可与环路滤波器220相同,经解码图片缓冲器330功能上可与经解码图片缓冲器230相同。

预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中帧间预测单元344功能上可以类似于帧间预测单元244,帧内预测单元354功能上可以类似于帧内预测单元254。预测处理单元360通常用于执行块预测和/或从经编码数据21获取预测块365,以及从例如熵解码单元304(显式地或隐式地)接收或获取预测相关参数和/或关于所选择的预测模式的信息。

当视频条带经编码为经帧内编码(i)条带时,预测处理单元360的帧内预测单元354用于基于信号表示的帧内预测模式及来自当前帧或图片的先前经解码块的数据来产生用于当前视频条带的图片块的预测块365。当视频帧经编码为经帧间编码(即b或p)条带时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)用于基于运动向量及从熵解码单元304接收的其它语法元素生成用于当前视频条带的视频块的预测块365。对于帧间预测,可从一个参考图片列表内的一个参考图片中产生预测块。视频解码器30可基于存储于dpb330中的参考图片,使用默认建构技术来建构参考帧列表:列表0和列表1。

预测处理单元360用于通过解析运动向量和其它语法元素,确定用于当前视频条带的视频块的预测信息,并使用预测信息产生用于正经解码的当前视频块的预测块。例如,预测处理单元360使用接收到的一些语法元素确定用于编码视频条带的视频块的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如,b条带、p条带或gpb条带)、用于条带的参考图片列表中的一个或多个的建构信息、用于条带的每个经帧间编码视频块的运动向量、条带的每个经帧间编码视频块的帧间预测状态以及其它信息,以解码当前视频条带的视频块。

逆量化单元310可用于逆量化(即,反量化)在比特流中提供且由熵解码单元304解码的经量化变换系数。逆量化过程可包含使用由视频编码器20针对视频条带中的每一视频块所计算的量化参数来确定应该应用的量化程度并同样确定应该应用的逆量化程度。

逆变换处理单元312用于将逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残差块。

重构单元314(例如,求和器314)用于将逆变换块313(即经重构残差块313)添加到预测块365,以在样本域中获取经重构块315,例如通过将经重构残差块313的样本值与预测块365的样本值相加。

环路滤波器单元320(在编码循环期间或在编码循环之后)用于对经重构块315进行滤波以获取经滤波块321,从而顺利进行像素转变或提高视频质量。环路滤波器单元320旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf),或锐化或平滑滤波器,或协同滤波器。尽管环路滤波器单元320在图3中示出为环内滤波器,但在其它配置中,环路滤波器单元320可实施为环后滤波器。

随后将给定帧或图片中的经解码视频块321存储在存储用于后续运动补偿的参考图片的经解码图片缓冲器330中。

解码器30用于例如,藉由输出332输出经解码图片31,以向用户呈现或供用户查看。

视频解码器30的其它变型可用于对压缩的比特流进行解码。例如,解码器30可以在没有环路滤波器单元320的情况下生成输出视频流。例如,基于非变换的解码器30可以在没有针对某些块或帧的逆变换处理单元312的情况下直接逆量化残差信号。在另一实施方式中,视频解码器30可以具有组合成单个单元的逆量化单元310和逆变换处理单元312。

图4是根据一示例性实施例的包含图2的编码器20和/或图3的解码器30的视频编码系统40的实例的说明图。系统40可以实现本申请的技术,用于基于本发明提出的融合候选者构造方法来构建当前块的融合候选者列表,并基于所述的融合候选者列表进行图像的编码或者解码。在所说明的实施方式中,视频编码系统40可以包含成像设备41、视频编码器20、视频解码器30(和/或藉由处理单元46的逻辑电路47实施的视频编码器)、天线42、一个或多个处理器43、一个或多个存储器44和/或显示设备45。

如图所示,成像设备41、天线42、处理单元46、逻辑电路47、视频编码器20、视频解码器30、处理器43、存储器44和/或显示设备45能够互相通信。如所论述,虽然用视频编码器20和视频解码器30显示视频编码系统40,但在不同实例中,视频编码系统40可以只包含视频编码器20或只包含视频解码器30。

在一些实例中,如图所示,视频编码系统40可以包含天线42。例如,天线42可以用于传输或接收视频数据的经编码比特流。另外,在一些实例中,视频编码系统40可以包含显示设备45。显示设备45可以用于呈现视频数据。在一些实例中,如图所示,逻辑电路47可以通过处理单元46实施。处理单元46可以包含专用集成电路(application-specificintegratedcircuit,asic)逻辑、图形处理器、通用处理器等。视频编码系统40也可以包含可选处理器43,该可选处理器43类似地可以包含专用集成电路(application-specificintegratedcircuit,asic)逻辑、图形处理器、通用处理器等。在一些实例中,逻辑电路47可以通过硬件实施,如视频编码专用硬件等,处理器43可以通过通用软件、操作系统等实施。另外,存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(staticrandomaccessmemory,sram)、动态随机存储器(dynamicrandomaccessmemory,dram)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,存储器44可以由超速缓存内存实施。在一些实例中,逻辑电路47可以访问存储器44(例如用于实施图像缓冲器)。在其它实例中,逻辑电路47和/或处理单元46可以包含存储器(例如,缓存等)用于实施图像缓冲器等。

在一些实例中,通过逻辑电路实施的视频编码器20可以包含(例如,通过处理单元46或存储器44实施的)图像缓冲器和(例如,通过处理单元46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路47实施的视频编码器20,以实施参照图2和/或本文中所描述的任何其它编码器系统或子系统所论述的各种模块。逻辑电路可以用于执行本文所论述的各种操作。

视频解码器30可以以类似方式通过逻辑电路47实施,以实施参照图3的解码器30和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路实施的视频解码器30可以包含(通过处理单元2820或存储器44实施的)图像缓冲器和(例如,通过处理单元46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路47实施的视频解码器30,以实施参照图3和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。

在一些实例中,视频编码系统40的天线42可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/或定义编码分割的数据)。视频编码系统40还可包含耦合至天线42并用于解码经编码比特流的视频解码器30。显示设备45用于呈现视频帧。

图5是根据一示例性实施例的可用作图1中的源设备12和目的地设备14中的任一个或两个的装置500的简化框图。装置500可以实现本申请的技术,用于进行融合候选者列表的构造以及基于该构造的融合候选者列表进行图像的编码或者解码。装置500可以采用包含多个计算设备的计算系统的形式,或采用例如移动电话、平板计算机、膝上型计算机、笔记本电脑、台式计算机等单个计算设备的形式。

装置500中的处理器502可以为中央处理器。或者,处理器502可以为现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。如图所示,虽然可以使用例如处理器502的单个处理器实践所揭示的实施方式,但是使用一个以上处理器可以实现速度和效率方面的优势。

在一实施方式中,装置500中的存储器504可以为只读存储器(readonlymemory,rom)设备或随机存取存储器(randomaccessmemory,ram)设备。任何其他合适类型的存储设备都可以用作存储器504。存储器504可以包括代码和由处理器502使用总线512访问的数据506。存储器504可进一步包括操作系统508和应用程序510,应用程序510包含至少一个准许处理器502执行本文所描述的方法的程序。例如,应用程序510可以包括应用1到n,应用1到n进一步包括执行本文所描述的融合候选者列表构造的视频编码应用。装置500还可包含采用从存储器514形式的附加存储器,该从存储器514例如可以为与移动计算设备一起使用的存储卡。因为视频通信会话可能含有大量信息,这些信息可以整体或部分存储在从存储器514中,并按需要加载到存储器504用于处理。

装置500还可包含一或多个输出设备,例如显示器518。在一个实例中,显示器518可以为将显示器和可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合于处理器502。除了显示器518还可以提供其它准许用户对装置500编程或以其它方式使用装置500的输出设备,或提供其它输出设备作为显示器518的替代方案。当输出设备是显示器或包含显示器时,显示器可以以不同方式实现,包含通过液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathode-raytube,crt)显示器、等离子显示器或发光二极管(lightemittingdiode,led)显示器,如有机led(organicled,oled)显示器。

装置500还可包含图像感测设备520或与其连通,图像感测设备520例如为相机或为现有的或今后将研发出的可以感测图像的任何其它图像感测设备520,所述图像例如为运行装置500的用户的图像。图像感测设备520可以放置为直接面向运行装置500的用户。在一实例中,可以配置图像感测设备520的位置和光轴以使其视野包含紧邻显示器518的区域且从该区域可见显示器518。

装置500还可包含声音感测设备522或与其连通,声音感测设备522例如为麦克风或为现有的或今后将研发出的可以感测装置500附近的声音的任何其它声音感测设备。声音感测设备522可以放置为直接面向运行装置500的用户,并可以用于接收用户在运行装置500时发出的声音,例如语音或其它发声。

虽然图5中将装置500的处理器502和存储器504显示为集成在单个单元中,但是还可以使用其它配置。处理器502的运行可以分布在多个可直接耦合的机器中(每个机器具有一个或多个处理器),或分布在本地区域或其它网络中。存储器504可以分布在多个机器中,例如基于网络的存储器或多个运行装置500的机器中的存储器。虽然此处只显示单个总线,但装置500的总线512可以由多个总线形成。进一步地,从存储器514可以直接耦合至装置500的其它组件或可以通过网络访问,并且可包括单个集成单元,例如一个存储卡,或多个单元,例如多个存储卡。因此,可以以多种配置实施装置500。

图11是由根据图1中所示视频编码器20以及视频解码器30实现本发明一实施例中融合候选者列表构造方法的实例操作的流程图。视频编码器20或者视频解码器30的一个或多个功能单元包含预测处理单元260/360,可以用于执行图11的方法。在图11的实例中提出一种改进历史候选运动信息列表的更新方法,该方法应用与帧间预测中,允许在ctu(编码树)级别对于历史候选运动信息列表进行重构,在不增加额外存储区域和具有相当的编码效率的同时,更有利于设计行级以及ctu级的编解码并行,该方法能够保证在帧间编码过程中基本不损失编码质量时,极大的降低编解码时间。该候选者列表的帧间预测方法参考图11包括:

s1101若当前编码树单元位于一个编码树单元行的第一个,或者位于并行编码树单元组合的第一个则初始化与当前编码树单元对应的历史候选运动信息列表;

在当前的编码技术中,通常编码树单元是采用的逐行操作的方式,在该操作方式下,若当前编码树单元为一个编码树单元行的第一个,或者所述当前编码单元树位于并行编码单元组合的第一个(所述并行编码树单元由位于同于编码树单元行的连续k个编码树单元构成,k大于等于1,小于一个编码树单元行内总的编码树单元数目l,l大于等于2),对历史候选运动信息列表进行初始化有助于提高编码效率。

其中,所述历史候选运动信息列表中包括n个存储空间,所述n个存储空间用于存储历史候选运动信息,所述初始化后的历史候选运动信息列表包括至少m空置的存储空间,所述m≤n,m及n为整数,所述当前编码树单元包含于由多个编码树单元构成的编码树单元集合(slice)中,其所述当前编码树单元非所述编码树单元集合中按照预定的处理顺序中的第一个;

s1103按照预定的顺序将所述当前编码树单元的空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中,其中,m≤l≤n,所述空域相邻块内l个位置根据预设的规则得到;

s1105构建所述当前编码树单元的当前候选运动信息列表或者当前编码单元的当前候选运动信息列表,其中所述编码单元由所述编码树单元划分得到;以及

s1107根据所述当前编码树单元的当前候选运动信息列表和所述历史候选运动信息列表的组合或者当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合,对所述当前编码树单元或者当前编码单元进行帧间预测。

该方法中,在进行当前编码树单元的编码过程中,对历史候选运动信息列表进行初始化操作,即,将构建与当前编码树单元对应的独立的历史候选运动信息列表,从而切断编码树单元编码过程中由于构建历史候选运动信息列表而造成的依赖关系,以使得编码树单元可以根据自己的历史候选运动信息列表进行独立的编码,在具有相当的编码效率的同时,更有利于设计行级以及ctu级的编解码并行,通过并行处理,能够在保证编码质量基本不受损失的情况下,极大的降低编解码时间。

可选地,所述初始化与当前编码树单元对应的历史候选运动信息列表包括,清空所述历史候选运动信息列表,使得m=n,该方式使得当前编码树单元可以构建全新的历史候选运动信息列表,以增加帧间预测的准确性。

可选地,所述空域相邻块内m个位置为,从所述空域相邻块内预设位置获取第一个候选运动信息,以获取所述第一个候选运动信息的位置为起点,以预设的步长为间隔获取剩余的m-1个候选运动信息。在构建所述历史候选运动信息列表过程中为了能够和现有的历史候选运动信息列表构建方式统一并具有较为简化的算法,所述m个位置处的运动矢量通常是从一个起点位置以预设的间隔依次获取m个位置处的运动矢量,其中所述预设的间隔也可以称之为步长,该步长可以是固定的,例如,采用4个或者8个像素为单位;此外,所述步长也可以是变化的,例如,根据当前编码树单元的大小来设置不同的步长。所述m位置的运动信息/运动矢量的添加顺序可是预设的顺序,例如,按照顺时针的顺序,以所述当前编码树单元的左下角的空域相邻块为起点,以所述当前编码树单元右上角的空域相邻块为终点,将所述空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中。

可选地,根据所述当前编码树单元的当前候选运动信息列表和所述历史候选运动信息列表的组合或者当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合,对所述当前编码树单元或者当前编码单元进行帧间预测之前,该方法还可以将所述当前编码树单元的当前候选运动信息列表和所述历史候选运动信息列表的组合进行组合或者将当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表进行组合,其具体可以是:将所述历史候选运动信息加入所述当前编码树单元的当前候选运动信息列表或者前编码单元的当前候选运动信息列表中,然后基于所述当前编码树单元的当前候选运动信息列表或者前编码单元的当前候选运动信息列表中,进行所述的帧间预测。

若当前的编码树单元还需要进一步划分为编码单元进行编码的情况下,所述的方法还可以包括:根据所述当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合获取所述当前编码单元的运动信息,并根据所获取的运动信息对所述当前编码单元进行帧间预测;以及基于所述当前编码单元运动信息更新所述历史候选运动信息列表。该方法可以使得当前编码树单元对应的历史候选运动信息列表能够持续的获得更新,以提高帧间预测的准确性。可选地,上述的对历史候选运动信息列表的跟新可以分为两种情况,即,若所述m个位置并未填满,则将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表内所述m个位置中距离n-m位置最近的空置的存储空间内;或者;若所述m个位置已填满,则按照先入先出的原则将最早加入所述历史候选运动信息列表内的历史运动信息移除,并将剩余历史运动信息超被移除的历史运动信息位置移位后将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表的尾部,其中,所述历史候选运动信息列表中包含最新加入的历史运动信息的一端为所述历史候选运动信息列表的尾部。该方法提供的历史候选运动信息列表应用的灵活性,即,历史候选运动信息列表在不完全填满的时候也可以用于当前块的帧间预测,而在历史候选运动信息列表填满的情况下,当前编码块的运动信息/运动矢量依然可以用于更新所述历史候选运动信息列表。当然,在历史候选运动信息列表填满的情况下,当前编码块的运动信息/运动矢量依然可以不再对所述历史候选运动信息列表更新,即,若所述m个位置并未填满,则将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表内所述m个位置中距离n-m位置最近的空置的存储空间内;若所述m个位置并已填满,则基于所述当前候选运动信息列表对下一个编码单元进行帧间预测处理。这种处理方式可以允许在当前编码树单元内的编码块的并行处理,具体地可以是,基于与所述当前编码单元相同的方法对另一编码单元进行帧间预测,其中,所述另一个编码单元按照预设处理顺序位于所述当前编码单元之后且与所述当前编码单元属于所述编码树单元,所述另一编码单元的帧间预测所采用的历史运动信息列表包括所述当前编码单元的帧间预测所采用的历史运动信息列表中的历史运动信息。

发明方案允许在ctu(编码树)级别对于历史候选运动信息列表进行重构,在具有相当的编码效率的同时,更有利于设计行级以及ctu级的编解码并行,该方法能够保证在帧间编码过程中基本不损失编码质量时,极大的降低编解码时间。

以下为本发明帧间预测方法的具体实施的示例:

实施例一:

在开始编码当前的编码树单元时,将历史候选运动信息列表初始化;

历史候选运动信息列表的初始化过程可以参考现有技术,例如,该过程可采用与jvet-k0104提案相同的方法进行(即在片(slice)开始的时候,将历史候选运动信息列表清空),也可采用其他历史候选运动信息列表的初始化方法,本发明不作限定;而在本实施例中,所述的初始化为将所述历史候选运动信息列表清空。所述的编码树单元为编码过程中可以基于该单元决定预测模式的待处理图像块,其可以进一步划分也可以不划分,其定义与hevc和vvc中编码树单元的定义一致,在h.264中为宏块(macroblock)。下文中均用编码树单元,如果该编码树单元进一步划分,则会形成多个编码单元,因此,在这种情况下,所述编码树单元也可以理解为编码单元组合。

接着,将当前编码树单元的空域相邻块的运动信息加入到历史候选运动信息列表中。

空域相邻图像块的运动信息包含左侧空域相邻图像块的运动信息(a,an)和上方空域相邻图像块的运动信息(b,bn,c),如图10所示。图10中的bn和an为从所有上方和左侧相邻已编/解码图像块中,以预定规则抽取的运动信息。其中,预定规则可以是以固定间隔m和n抽取(m和n为大于0的正整数),间隔m适用于左侧相邻图像块内的运动信息的提取,间隔n适用于上侧相邻图像块内的运动信息的提取,也可以使用其他抽取的预定规则方式,本发明不涉及具体抽取的预定规则方式。以上所述的相邻的图像块优选的指与当前编码树单元位于相同的slice中的图像块。

如果在遍历完所述空域相邻图像块之后历史候选运动信息列表并没有填满的情况下、或者若当前编码树单元位于一帧图像最上侧,或者若当前编码树单元位于一帧图像的最左则,可以参考如下任意一种方法来处理历史候选运动信息列表中没有填满的部分。

方法一:

不再填充任何其他来源的运动信息,在编解码当前编码树单元内的当前编码单元时所获取的当前编码单元的运动信息作为所述历史候选运动信息加入到所述历史候选运动信息列表中。

方法二:

填充当前编码树单元空域预设非临近位置的编码块的运动信息。预设非临近位置可以是与临近位置固定间隔,也可以是预设模板。

方法三:

填充来自于参考帧中,当前编码树单元对应位置和当前编码树单元临近编码块对应位置中预设位置的编码块时域运动信息。当前编码树单元对应位置中的预设位置可以是固定间隔抽取,也可以是以特定规则或顺序抽取。当前编码树单元临近编码块对应位置中预设位置可以是一特定规则特定顺序抽取。

方法四:

填充来自于参考帧中,当前编码树单元对应位置和前编码树单元预设非临近位置的编码块对应位置中预设位置的编码块时域运动信息。当前前编码树单元对应位置中的预设位置可以是固定间隔抽取,也可以是以特定规则或顺序抽取。当前前编码树单元预设非临近位置的编码块对应位置中预设位置可以是一特定规则特定顺序抽取。

方法五:

填充来自于当前编码树单元邻近的编码树单元的历史候选运动信息列表中的历史候选运动信息。

按照预定顺序将a,an,b,bn和c加入到历史候选运动信息列表中,直到所有相邻块遍历结束,或者直到历史候选运动信息列表中的历史候选运动信息个数超过预设的最大值,其中,a,an,b,bn和c加入历史候选运动信息列表的预定顺序可以采取c、an、bn的顺序,也可以采取c、a0、b0、a1、b1直到an和bn的顺序,也可以采取其他预定顺序,本发明不涉及具体预定顺序。该实施例中在每个编码树单元开始编码的时候都对所述的历史候选运动信息列表进行初始化,使得每个编码树单元并不需要等待上一个编码树单元的最后一个编码单元编码完成后才能启动处理,而是可以和上一个编码树单元并行的处理,从而极大的节省了处理时间。

实施例二:

不同于实施例一种在开始编码当前的编码树单元时,将历史候选运动信息列表初始化,本实施例在在始编码当前的编码树单元时,将预设数目的当前编码树单元的空域相邻图像块的运动信息加入到历史候选运动信息列表中,其中预设数目为大于0的正整数。其中,将预设数目的当前编码树单元的空域相邻图像块的运动信息加入到历史候选运动信息列表中的一种可能的实施方式可以是在现有的历史候选运动信息列表中已有的历史候选运动信息的基础上额外补充预定数目的运动信息作为新的历史候选运动信息,不论所述历史候选运动信息列表是已经填满或者没有填满;另一中可能的实施方式可以是将现有的历史候选运动信息列表中已有的历史候选运动信息的按照预定的规则清除预定数目个历史候选运动信息,再将当前编码树单元的空域相邻图像块内预设数目的运动信息作为新的历史候选运动信息加入到历史候选运动信息列表中。

实施例三:

该实施例为实施例一以及实施例二中的历史候选运动信息列表初始化或者重构后应用与当前编码单元的帧间预测中,其具体包括:

采用实施例一或者实施例二中的方法对历史候选运动信息列表进行更新或重构。具体重构方法参见实施例一或者实施例二;

(1)对当前编码树单元中或者当前编码树单元中的至少一个编码单元进行帧间预测;

对当前编码树单元中或者当前编码树单元中的至少一个编码单元进行帧间预测,是以所述以所述编码单元或编码树单元所包含的亮度块或者色度块为基本处理单元,一个编码树单元或编码单元包括一个亮度编码块以及两个色度编码块。正在执行编码或者解码处理的前编码树单元中或者当前编码树单元中的至少一个颜色分量(色度或亮度)编码块称为当前块。

上述对当前编码树单元中或者当前编码树单元中的至少一个编码单元进行帧间预测可以包括:

(2)解析当前块的帧间预测模式,若当前块为merge/skip模式,则生成融合运动信息候选列表;若当前cu或当前块为amvp模式,则生成运候选动矢量预测列表。

可选地,将上述历史候选运动信息列表中的历史候选运动信息加入到融合运动信息候选列表或候选运动矢量预测列表中。需要说明的是,也可以不将历史候选运动信息列表中的历史候选运动信息加入到融合运动信息候选列表或候选运动矢量预测列表中,而保持历史候选运动信息列表的独立,并在对当前块进行预测的时候直接索引该历史候选运动信息列表。若将历史候选运动信息列表中的历史候选运动信息加入到融合运动信息候选列表,则可以按照jvet-k0104提案中的方法,也可采用其他方法将历史候选运动信息列表中的历史候选运动信息按照加入到融合运动信息候选列表中,本发明不做限定。需要说明的是,若将历史候选运动信息加入到融合运动信息候选列表,该历史候选运动信息列表中的历史候选运动信息的位置可以是在其它类型的融合候选之前,如双向预测融合候选(bi-predictivemergecandidate)和零运动矢量融合候选(zeromotionvectormergecandidate)。

上述若当前块为merge/skip模式,生成融合运动信息候选列表的详细过程如下。

融合运动信息候选列表基于以下候选者构建:a.从五个空间相邻块得到的最多四个空间融合运动信息候选列表;b.从两个时间同位块得到的一个时间融合运动信息候选;c.包含组合的双向预测候选者和零运动矢量候选者的另外的融合运动信息候选。融合运动信息候选列表中的第一候选者是空间相邻者。根据图6的右侧部分,通过依次循序检查a1、b1、b0、a0和b2,最多可以在合并列表中以所述顺序插入四个候选者。在将相邻块的所有运动数据作为融合运动信息候选之前执行一些另外的冗余检查。这些冗余检查可以分为两类,用于两个不同的目的:a.避免列表中存在具有冗余运动数据的候选者;b.防止合并两个可以用其它方式表示的会产生冗余语法的分区。

当n是空间融合运动信息候选列表的数量时,完整的冗余检查将由次运动数据比较组成。在五个潜在空间融合运动信息候选的情况下,将需要十次运动数据比较来确保合并列表中的所有候选者具有不同的运动数据。在开发hevc期间,对冗余运动数据的检查已经减少到一个子集,从而在比较逻辑明显减少的同时保持编码效率。在最终设计中,对于每个候选者执行不超过两次比较,从而产生总共五次比较。给定{a1,b1,b0,a0,b2}的顺序,b0只检查b1,a0只检查a1,且b2只检查a1和b1。在分区冗余检查的实施例中,通过选择候选者b1来将2n×n分区的底部pu与顶部pu合并。这将产生一个cu具有两个具有相同运动数据的pu,其可以被均等地用信号表示为2n×2ncu。总体而言,这种检查适用于矩形和不对称分区2n×n、2n×nu、2n×nd、n×2n、nr×2n和nl×2n的所有第二pu。应注意,对于空间融合运动信息候选列表,仅执行冗余检查,并且按原样从候选块复制运动数据。因此,这里不需要运动矢量缩放。

时间融合运动信息候选列表的运动矢量的得到与tmvp的相同。由于融合运动信息候选列表包括所有运动数据并且tmvp仅是一个运动矢量,因此整个运动数据的得到仅取决于片的类型。对于双向预测片,针对每个参考图片列表得到tmvp。取决于每个列表的tmvp的可用性,将预测类型设置成双向预测或设置成tmvp可用的列表。所有相关的参考图片索引被设置成等于零。因此,对于单向预测片,只连同等于零的参考图片索引一起得到列表0的tmvp。

当至少一个tmvp可用并且时间融合运动信息候选列表被添加到列表中时,不执行冗余检查。这使得合并列表构建独立于同位图片,从而提高抗抗误码能力。考虑时间融合运动信息候选列表将是多余的并因此未包含在融合运动信息候选列表列表中的情况。在丢失同位图片的情况下,解码器不能得到时间候选运动信息,因此不检查它是否是冗余的。所有后续候选者的索引将受此影响。

出于解析鲁棒性原因,融合运动信息候选列表列表的长度是固定的。在已经添加了空间和时间融合运动信息候选列表之后,可能出现所述列表还没有固定长度的情况。为了补偿与非长度自适应列表索引信令一起出现的编码效率损失,生成另外的候选者。取决于片的类型,最多可以使用两种候选者来完全填充列表:a.组合双向预测候选者;b.零运动矢量候选者。

在双向预测片中,通过组合一个候选者的参考图片列表0运动数据与另一候选者的列表1运动数据,可基于现有候选者生成另外的候选者。这通过从第一候选者等一个候选者复制δx0、δy0、δt0并且从第二候选者等另一候选者复制δx1、δy1、δt1来完成。预定义不同的组合并在表1.1中给出。

表1.1

当添加组合的双向预测候选者之后或对于单向预测片来说列表仍然不完整时,计算零运动矢量候选者以使列表完整。所有零运动矢量候选者对于单向预测片具有一个零位移运动矢量,对于双向预测片具有两个零位移运动矢量。参考索引被设置成等于零,并且对于每个另外的候选者递增一,直到达到参考索引的最大数量。如果是这种情况,并且还有其它候选者缺失,则使用等于零的参考索引来创建这些候选者。对于所有另外的候选者,不执行冗余检查,因为结果显示省略这些检查不会引起编码效率损失。

对于以图片间预测模式编码的每个pu,所谓的merge_flag指示使用所述块合并来得到运动数据。merge_idx进一步确定合并列表中提供mcp所需的所有运动数据的候选者。除了此pu层级的信令之外,还在片头中用信号表示合并列表中的候选者的数量。由于默认值为五,因此它表示为与五的差(five_minus_max_num_merge_cand)。这样,五利用0的短码字用信号表示,而仅使用一个候选者则利用4的较长码字用信号表示。至于对融合运动信息候选列表列表构建过程的影响,整个过程保持不变,但是在列表含有最大数量融合运动信息候选列表之后,所述过程终止。在初始设计中,合并索引编码的最大值由列表中可用空间和时间候选运动信息的数量给出。当例如只有两个候选者可用时,索引可以高效地编码为一个标志。但是,为了解析合并索引,必须构建整个融合运动信息候选列表列表以了解候选者的实际数量。假设由于发送错误而导致不可用的相邻块,将不可能再解析合并索引。

hevc中的块合并概念的关键应用是与跳过模式的组合。在先前的视频编码标准中,使用跳过模式指示这样的块:推测而不是显式地用信号表示运动数据,并且预测残差为零,即,不发送变换系数。在hevc中,在图片间预测片中的每个cu的开始处,用信号表示skip_flag,这意味着以下方面:a.cu仅含有一个pu(2n×2n分区类型);b.使用合并模式来得到运动数据(merge_flag等于1);c.码流中不存在残差数据。

在hevc中引入指示区域的并行合并估计层级,其中可以通过检查候选块是否位于所述合并估计区域(mer)中而独立地得到融合运动信息候选列表列表。相同mer中的候选块不包含在融合运动信息候选列表列表中。因此,它的运动数据不需要在列表构建时可用。当这个层级是例如32时,那么32×32区域中的所有预测单元可以并行构建融合运动信息候选列表列表,因为处于相同32×32mer中的所有融合运动信息候选列表都不插入列表中。如图5所示,存在具有七个cu和十个pu的ctu分区。第一pu0的所有潜在融合运动信息候选列表都可用,因为它们在第一32×32mer之外。对于第二mer,当mer内的合并估计应该独立时,pu2-6的融合运动信息候选列表列表不能包含来自这些pu的运动数据。因此,例如在查看pu5时,没有融合运动信息候选列表可用且因此不插入融合运动信息候选列表列表中。在这种情况下,pu5的合并列表仅由时间候选运动信息(如果可用)和零mv候选者组成。为了使编码器能够权衡并行性和编码效率,并行合并估计层级是自适应的,并且在图片参数集中用信号表示为log2_parallel_merge_level_minus2。

若当前块为intermvp模式,也称之为amvp,则生成候选运动矢量预测列表的详细过程如下。

amvp模式的初始设计包含来自三个不同类别预测值的五个mvp:来自空间相邻者的三个运动矢量、三个空间预测值的中值以及来自同位时间相邻块的缩放运动矢量。此外,通过重新排序以将最可能的运动预测值放在第一位置并通过去除冗余候选者以确保最小的信令开销来修改预测值列表。接着,最初的amvp经历了多次的简化,例如去除中值预测值、将列表中的候选者数量从五个减少到两个、固定列表中的候选者顺序,以及减少冗余检查的数量。amvp候选者列表构建的最终设计包含以下两个mvp候选者:a.从五个空间相邻块得到的最多两个空间候选mvp;b.当两个空间候选mvp不可用或它们相同时,从两个时间同位块得到的一个时间候选mvp;c.当空间候选运动信息、时间候选运动信息或这两者都不可用时的零运动矢量。正如已经提到的,从五个空间相邻块得到两个空间mvp候选者a和b,如图6右侧部分所示。对于amvp和帧间预测块合并,空间候选块的位置是相同的。图10中描绘了两个空间候选运动信息a和b的得到过程流程。对于候选者a,在两遍式方法中考虑来自左下角的两个块a0和a1的运动数据。在第一遍中,检查是否有任何候选块含有的参考索引等于当前块的参考索引。找到的第一运动矢量将作为候选者a。当来自a0和a1的所有参考索引指向与当前块的参考索引不同的参考图片时,相关的运动矢量不能按原样使用。因此,在第二遍中,需要根据候选参考图片与当前参考图片之间的时间距离来缩放运动矢量。方程式(1.1)示出了如何根据缩放因子缩放候选运动矢量mvcand。基于当前图片与候选块td的参考图片之间的时间距离以及当前图片与当前块tb的参考图片之间的时间距离来计算scalefactor。时间距离以定义图片显示顺序的图片顺序编号(pictureordercount,poc)值之间的差表示。缩放操作基本上与h.264/avc中用于时间直通模式的方案相同。这种分解允许在片层级预先计算scalefactor,因为它只取决于片头中用信号表示的参考图片列表结构。应注意,仅在当前参考图片和候选参考图片都是短期参考图片时才执行mv缩放。参数td被定义为同位候选块的同位图片与参考图片之间的poc差。

mv=sign(mvcand·scalefactor)·((|mvcand·scalefactor|+27)>>8)(1.1)

scalefactor=clip(-212,212-1,(tb·tx+25)>>6)(1.2)

对于候选者b,以与在第一遍中检查a0和a1相同的方式依次检查候选者b0到b2。然而,第二遍仅在块a0和a1不含有任何运动信息时执行,即,不可用或使用图片内预测来编码时执行。接着,如果找到候选者a,则将候选者a设置成等于未缩放的候选者b,并且将候选者b设置成等于候选者b的第二未缩放的或缩放的变体。第二遍搜索从候选者b0到b2得到的未缩放的以及缩放的mv。总体而言,这种设计允许独立于b0、b1和b2来处理a0和a1。b的得到应只了解a0和a1两者的可用性,以便搜索从b0到b2得到的缩放的或另外未缩放的mv。考虑到它明显减少了候选者b的复杂运动矢量缩放操作,这种相依性是可接受的。减少运动矢量缩放的数量表示运动矢量预测值得到过程中显着的复杂度降低。

在hevc中,已确定当前块的右下方和中心处的块为最适合提供良好的时间运动矢量预测值(temporalmotionvectorpredictor,tmvp)。这些候选者在图3的左侧部分示出,其中c0表示右下相邻者,c1表示中心块。这里同样首先考虑c0的运动数据,并且如果不可用,则使用来自中心处的同位候选块的运动数据来得到时间mvp候选者c。当相关的pu属于当前ctu行之外的ctu时,c0的运动数据也被视为不可用。这最大限度地减少了存储同位运动数据的内存带宽要求。与运动矢量可能指代相同参考图片的空间mvp候选者对比,运动矢量缩放对于tmvp是强制性的。因此,使用与空间mvp相同的缩放操作。

虽然h.264/avc中的时间直通模式总是参考第二参考图片列表、即列表1中的第一参考图片,并且仅在双向预测片中被允许,但hevc提供了为每个图片指示哪个参考图片被视为同位图片的可能性。这是通过在片头中用信号表示同位参考图片列表和参考图片索引以及要求图片中的所有片中的这些语法元素应指定相同的参考图片来完成的。

由于时间mvp候选者引入了另外的相依性,因此出于差错鲁棒性原因,可能需要禁用其使用。在h.264/avc中,可能禁用片头中的双向预测片的时间直通模式(direct_spatial_mv_pred_flag)。hevc语法通过允许在序列层级或在图片层级禁用tmvp(sps/slice_temporal_mvp_enabled_flag)来扩展此信令。尽管在片头中用信号表示标志,但是对于一个图片中的所有片,其值应该是相同的,这是码流一致性的要求。由于图片层级标志的信令取决于sps标志,因此在pps中用信号表示图片层级标志将引入sps与pps之间的解析相依性。这种片头信令的另一个优点是,如果只想改变pps中此标志的值而不改变其它参数,则不需要发送第二pps。

通常,hevc中的运动数据信令与h.264/avc中的类似。图片间预测语法元素inter_pred_idc用信号表示是否使用参考列表0、1或这两者。对于从一个参考图片列表获得的每个mcp,对应的参考图片(δt)由参考图片列表的索引ref_idx_l0/1用信号表示,并且mv(δx,δy)由mvp的索引mvp_l0/1_flag及其mvd表示。片头中新引入的标志mvd_l1_zero_flag指示第二参考图片列表的mvd是否等于零且因此不在码流中用信号表示。当运动矢量被完全重构时,最终剪切操作确保最终运动矢量的每个分量的值将始终在-215到215-1的范围内,包含端点值。

若将历史候选运动信息列表中的历史候选运动信息加入到当前候选运动信息列表,可以按照jvet-k0104提案中的方法,也可采用其他方法将历史候选运动信息列表中的历史候选运动信息按照加入到融合运动信息候选列表中,本发明不作限定。

(3)获取当前块的运动信息;

经过上述方式将当前块的当前候选运动信息列表(包括当前块自身的运动信息候选则列表以及历史候选运动信息列表)则可以根据现有的方法从中获取当前块的运动信息。

更具体的,解码端:若当前块为merge/skip模式,则根据码流中携带的融合索引确定当前块的运动信息。若当前块为intermvp模式,则根据码流中传送的帧间预测方向、参考帧索引、运动矢量预测值索引、运动矢量残差值确定当前块运动信息。

(4)根据运动信息得到当前块的帧间预测图像;

更具体的,解码端:根据运动信息进行运动补偿(motioncompensation),得到预测图像;进一步,上述步骤(4)还可以包括,获取当前块的残差图像,以及,将帧间预测图像与残差图像相加,得到当前块的重建图像;如果当前块没有残差,则预测图像为当前块的重建图像。

可选地,上述实施例三,还可包括使用当前块的运动信息对历史候选运动信息列表进行更新,该步骤可以在步骤(4)之前步骤(2)之后,或者在步骤(4)之后;

具体的,可以按照jvet-k0104提案中的方法,也可采用其他方法对历史候选运动信息列表进行更新。jvet-k0104提案中,从历史候选运动信息列表头部开始,将当前块的运动信息与历史候选运动信息列表中的历史候选运动信息进行比较;如有某个历史候选运动信息与当前块运动信息相同,将该历史候选运动信息从历史候选运动信息列表中移除。然后,检查历史候选运动信息列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选运动信息移除,并将当前候选运动信息列表中剩余的历史候选运动信息向所述列表的头部移位后,将所述当前块的运动信息加入到历史候选运动信息列表的尾部。需要说明的是,在本发明中,上述的判断当前块运动信息与历史候选运动信息列表中某个历史候选运动信息是否相同的步骤可以不用执行,即,所述历史候选运动信息列表中可以存在两个完全相同的运动信息,也可以是两个运动信息在某种处理后相同,例如两个运动矢量右移2位后的结果相同。

需要说明的是,若在上述实施例三中不包括使用当前块的运动信息对历史候选运动信息列表进行更新,则意味着当前编码树单元内的编码块可采用相同的历史候选运动信息列表进行帧间预测,从而能够允许在编码树单元内部的编码块的处理过程中实现并行操作。

总的来说,上述实施例一至三可在不增加额外存储区域和具有相当的编码效率的前提下,更有利于行级以及ctu级的编解码并行,能够有效降低编解码的时间。图12是由根据图1中所示视频解码器30实现本发明一实施例中应用图11中的帧间预测方法进行图像解码的实例操作的流程图。视频解码器30的一个或多个功能单元包含预测处理单元360,可以用于执行图12的方法。在图12的实例中,基于图11的方法中的帧间预测方法来进行图片的解码,所述解码方法1200具体包括:

s1201若当前编码树单元位于一个编码树单元行的第一个,或者位于并行编码树单元组合的第一个则初始化与当前编码树单元对应的历史候选运动信息列表;

在当前的编码技术中,通常编码树单元是采用的逐行操作的方式,在该操作方式下,若当前编码树单元为一个编码树单元行的第一个,或者所述当前编码单元树位于并行编码单元组合的第一个(所述并行编码树单元由位于同于编码树单元行的连续k个编码树单元构成,k大于等于1,小于一个编码树单元行内总的编码树单元数目l,l大于等于2),对历史候选运动信息列表进行初始化有助于提高编码效率。

其中,所述历史候选运动信息列表中包括n个存储空间,所述n个存储空间用于存储历史候选运动信息,所述初始化后的历史候选运动信息列表包括至少m空置的存储空间,所述m≤n,m及n为整数,所述当前编码树单元包含于由多个编码树单元构成的编码树单元集合(slice)中,其所述当前编码树单元非所述编码树单元集合中按照预定的处理顺序中的第一个;

s1203按照预定的顺序将所述当前编码树单元的空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中,其中,m≤l≤n,所述空域相邻块内l个位置根据预设的规则得到;

在所述当前编码单元或者所述当前编码树单元的帧间预测类型是amvp模式或者merge/skip模式时,生成所述当前编码单元或者所述当前编码树单元的当前候选运动信息列表;其中amvp模式下的所述当前候选运动信息列表中包含运动矢量,而在merge/skip模式下,所述当前候选运动信息列表中包含双向参s考或者单向参考指示,参考帧索引,以及与参考方向对应的运动矢量;

s1205构建所述当前编码树单元或者当前编码单元的当前候选运动信息列表;

s1207从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息,根据所述当前编码树单元或者当前编码单元的运动信息,对所述当前编码树单元或者当前编码单元进行帧间预测获得帧间预测图像;

该步骤中包括解析码流,所述当前编码树单元或者当前编码单元对应的运动信息索引,根据所述从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息,并根据该运动信息对所述当前对所述当前编码树单元或者当前编码单元进行帧间预测获得帧间预测图像;

s1209将所获得的帧间预测图像与所述当前编码树单元或者所述当前编码单元的残差图像相加,获得所述当前编码树单元或者所述当前编码单元的重建图像。

相比于现有技术,上述解码方法中,采用了在ctu级别的历史候选运动信息列表的更新,允许行级以及ctu级的编解码并行,能够有效降低解码的时间。

图13是由根据图1中所示视频编码器20实现本发明一实施例中应用图11所构造融合候选者列表构造方法进行图像编码的实例操作的流程图。视频编码器20的一个或多个功能单元包含预测处理单元260,可以用于执行图13的方法。在图13的实例中,基于图11的方法中的帧间预测方法来进行图片的编码,,所述编码方法1300具体包括:

s1301若当前编码树单元位于一个编码树单元行的第一个,或者位于并行编码树单元组合的第一个则初始化与当前编码树单元对应的历史候选运动信息列表;

在当前的编码技术中,通常编码树单元是采用的逐行操作的方式,在该操作方式下,若当前编码树单元为一个编码树单元行的第一个,或者所述当前编码单元树位于并行编码单元组合的第一个(所述并行编码树单元由位于同于编码树单元行的连续k个编码树单元构成,k大于等于1,小于一个编码单元行内总的编码树单元数目l,l大于等于2),对历史候选运动信息列表进行初始化有助于提高编码效率。其中,所述历史候选运动信息列表中包括n个存储空间,所述n个存储空间用于存储历史候选运动信息,所述初始化后的历史候选运动信息列表包括至少m空置的存储空间,所述m≤n,m及n为整数,所述当前编码树单元包含于由多个编码树单元构成的编码树单元集合(slice)中,其所述当前编码树单元非所述编码树单元集合中按照预定的处理顺序中的第一个;

s1303按照预定的顺序将所述当前编码树单元的空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中,其中,m≤l≤n,所述空域相邻块内l个位置根据预设的规则得到;

在所述当前编码单元或者所述当前编码树单元的帧间预测类型是amvp模式或者merge/skip模式时,生成所述当前编码单元或者所述当前编码树单元的当前候选运动信息列表;其中amvp模式下的所述当前候选运动信息列表中包含运动矢量,而在merge/skip模式下,所述当前候选运动信息列表中包含双向参考或者单向参考指示,参考帧索引,以及与参考方向对应的运动矢量;

s1305构建所述当前编码树单元或者当前编码单元的当前候选运动信息列表;

s1307从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息,以及所述运动信息的运动信息索引;

s1309根据所述当前编码树单元或者当前编码单元的运动信息,对所述当前编码树单元或者当前编码单元进行帧间预测获得帧间预测图像;

s1311将当前编码树单元或者所述当前编码单元的原始图像与将所获得的帧间预测图像相减获得残差图像;

s1213对所述残差图像以及所述运动信息索引进行编码形成码流。

相比于现有技术,上述解码方法中,采用了在ctu级别的历史候选运动信息列表的更新,允许行级以及ctu级的编解码并行,能够有效降低编码的时间。

图14是本发明提供的一种帧间预测装置1400,该帧间预测装置具备实施前述图11中的帧间预测方法的功能,其包括有:初始化模块1401,用于,在当前编码树单元位于一个编码树单元行的第一个,或者位于并行编码树单元组合的第一个时,初始化与当前编码树单元对应的历史候选运动信息列表,其中,所述历史候选运动信息列表中包括n个存储空间,所述n个存储空间用于存储历史候选运动信息,所述初始化后的历史候选运动信息列表包括至少m空置的存储空间,所述m≤n,m及n为整数,所述当前编码树单元包含于由多个编码树单元构成的编码树单元集合(slice)中,其所述当前编码树单元非所述编码树单元集合中按照预定的处理顺序中的第一个;历史候选运动信息列表构建模块1403,其用于,按照预定的顺序将所述当前编码树单元的空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中,其中,所述空域相邻块内m≤l≤n个位置根据预设的规则得到;当前候选运动信息列表构建模块1405,其用于,构建所述当前编码树单元的当前候选运动信息列表或者当前编码单元的当前候选运动信息列表,其中所述编码单元由所述编码树单元划分得到;以及预测模块1407,其用于,根据所述当前编码树单元的当前候选运动信息列表和所述历史候选运动信息列表的组合或者所述当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合,对所述当前编码树单元或者当前编码单元进行帧间预测。

可选地,所述初始化与当前编码树单元对应的历史候选运动信息列表包括,清空所述历史候选运动信息列表,使得m=n。可选地,所述空域相邻块内m个位置为,从所述空域相邻块内预设位置获取第一个候选运动信息,以获取所述第一个候选运动信息的位置为起点,以预设的步长为间隔获取剩余的m-1个候选运动信息,所述预设的步长为固定值,或者所述预定的步长根据预设规则变化。

可选地,所述预测模块1405用于:根据所述当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合获取所述当前编码单元的运动信息,并根据所获取的运动信息对所述当前编码单元进行帧间预测;所述装置1400还包括:历史运动信息列表更新模块1407,其用于,基于所述当前编码单元运动信息更新所述历史候选运动信息列表。

可选地,历史运动信息列表更新模块根据如下规则更新所述历史候选运动信息列表:若所述m个位置并未填满,则将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表内所述m个位置中距离n-m位置最近的空置的存储空间内;或者;若所述m个位置已填满,则按照先入先出的原则将最早加入所述历史候选运动信息列表内的历史运动信息移除,并将剩余历史运动信息向被移除的历史运动信息位置移位后将所述当前编码单元运动信息作为历史运动信息加入所述历史候选运动信息列表的尾部,其中,所述历史候选运动信息列表中包含最新加入的历史运动信息的一端为所述历史候选运动信息列表的尾部。

可选地,当前候选运动信息列表构建模块1403还用于;将历史候选运动信息列表中的历史候选运动信息加入所述当前编码单元的当前候选运动信息列表中;对应地,所述预测模块1405将根据所述当前编码单元的当前候选运动信息列表获取所述当前编码单元的运动信息,并根据所获取的运动信息对所述当前编码单元进行帧间预测。

可选地,所述预测模块1405,用于,根据所述当前编码单元的当前候选运动信息列表和所述历史候选运动信息列表的组合获取所述当前编码单元的运动信息,并根据所获取的运动信息对所述当前编码单元进行帧间预测;所述预测模块1405还用于,基于与所述当前编码单元相同的方法对另一编码单元进行帧间预测,其中,所述另一个编码单元按照预设处理顺序位于所述当前编码单元之后且与所述当前编码单元属于所述编码树单元,所述另一编码单元的帧间预测所采用的历史运动信息列表包括所述当前编码单元的帧间预测所采用的历史运动信息列表中的历史运动信息。

可选地,所述历史候选运动信息列表构建模块1403用于,按照顺时针的顺序,以所述当前编码树单元的左下角的空域相邻块为起点,以所述当前编码树单元右上角的空域相邻块为终点,将所述空域相邻块内l个位置处的运动信息增加到所述历史候选运动信息列表中。

图15是本发明提供的一种编码装置1500,该编码装置具备实施前述图12中的编码方法的功能,其包括有:帧间预测装置1501(与帧间预测装置1400相同),获取当前编码树单元的帧间预测图像或者当前编码单元的帧间预测图像;所述获取当前编码树单元的帧间预测图像或者当前编码单元的帧间预测图像包括:从所述历史候选运动信息列表与所述当前候选运动信息列表的组合中获取所述当前编码树单元或者当前编码单元的运动信息,以及所述运动信息的运动信息索引;根据所述当前编码树单元或者当前编码单元的运动信息,对所述当前编码树单元或者当前编码单元进行帧间预测获得帧间预测图像;残差计算模块1503,用于,将当前编码树单元或者所述当前编码单元的原始图像与将所获得的帧间预测图像相减获得残差图像;以及编码模块1505,其用于对所述残差图像以及所述运动信息索引进行编码形成码流。

图16是本发明提供的一种解码装置1600,该解码装置具备实施前述图13中的解码方法的功能,其包括有:帧间预测装置1601(与帧间预测装置1400相同),用于,获取当前编码树单元的帧间预测图像或者当前编码单元的帧间预测图像;以及,重建模块(1603),用于,将所获得的帧间预测图像与所述当前编码树单元或者所述当前编码单元的残差图像相加,获得所述当前编码树单元或者所述当前编码单元的重建图像。

图17是本发明提供的一种用于实施图11至图13中的方法的设备的通用示意图,所述的设备1700可以是,帧间预测设备,编码设备,以及解码设备,所述设备包括有,一种帧间预测设备,其包括数字处理器1701以及存储器1702,在所述存储器中存储有可执行的指令集,所述数字处理器读取存储在所述存储器中的指令集用于实现图11至13中描述的方法。

在一个或一个以上实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果在软件中实施,那么所述功能可作为一或多个指令或代码在计算机可读介质上存储或传输,并且由基于硬件的处理单元执行。计算机可读介质可以包含计算机可读存储介质,其对应于例如数据存储介质或通信介质的有形介质,通信介质例如根据通信协议包含有助于将计算机程序从一处传送到另一处的任何介质。以此方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质,或(2)通信介质,例如,信号或载波。数据存储介质可以是可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包含计算机可读介质。

借助于实例而非限制,此类计算机可读存储介质可包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存,或可用以存储呈指令或数据结构形式的所需程序代码且可由计算机存取的任何其它介质。并且,任何连接可适当地称为计算机可读介质。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(digitalsubscriberline,dsl)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤缆线、双绞线、dsl或例如红外线、无线电及微波等无线技术包含在介质的定义中。但是,应理解,所述计算机可读存储介质及数据存储介质并不包括连接、载波、信号或其它暂时性介质,而是实际上针对于非暂时性有形存储介质。如本文中所使用,磁盘和光盘包含压缩光盘(compactdisc,cd)、激光光盘、光学光盘、数字多功能光盘(digitalversatiledisc,dvd)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含于计算机可读介质的范围内。

指令可以由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(digitalsignalprocessor,dsp)、通用微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程逻辑阵列(fieldprogrammablelogicarrays,fpga)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代上述结构或适用于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在用于编码和解码的专用硬件和/或软件模块内提供,或并入在合成编解码器中。并且,所述技术可完全实施于一或多个电路或逻辑元件中。

本公开的技术可以在包含无线手持机、集成电路(integratedcircuit,ic)或ic集合(例如,芯片组)的多种设备或装置中实施。本公开描述各种组件、模块或单元是为了强调用于执行所揭示的技术的设备的功能方面,但未必需要通过不同硬件单元实现。确切地,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。

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