发信运动向量差值推导的制作方法

文档序号:28205829发布日期:2021-12-28 17:42阅读:93来源:国知局
发信运动向量差值推导1.相关申请的交叉引用2.本发明要求于2019年5月22日提交的申请号为62/851,140的美国临时专利申请的优先权,以上列出的申请的内容通过引用并入本发明。
技术领域
:3.本发明通常涉及视频编解码。尤其,本发明关于用于帧间预测的运动向量差值的发信。
背景技术
::4.除非此处另有说明外,本部分所描述的方法相对于下面列出的权利要求而言不是现有技术,并且不因纳入于本部分而被认为承认是现有技术。5.高效率视频编码(high‑efficiencyvideocoding,hevc)是由视频编码联合协作小组(jointcollaborativeteamonvideocoding,jct‑vc)所发展的新一代国际性视频编解码标准。hevc是基于混合块为基础的运动补偿类似dct转换的编解码架构。补偿的基本单元(称为编解码单元(codingunit,cu)是一2nx2n的方型块,而每一cu可以递归式地被分割成四个较小的cu,一直达到预定的最小尺寸为止。每个cu包括一或多个预测单元(predictionunit,pu)。6.为改善混合编解码架构的编解码效率,对于每一puhevc提供了两种类型的预测模式,即帧内预测与帧间预测。对于帧内预测模式而言,可以用空间相邻重构像素来产生方向性的预测,在hevc中有多达35种方向。对于帧间预测模式而言,可以用时间重构参考帧来产生运动补偿的预测。有三种不同模式,包括跳过(skip)、合并(merge)以及帧间高级运动向量预测(advancedmotionvectorprediction,amvp)模式。7.当一pu是以帧间amvp模式编码时,运动补偿的预测是由所传送来的运动向量差值(motionvectordifferences,mvds)来执行,mvds可以与运动向量预测子(motionvectorpredictors,mvps)一起使用来推导出运动向量(motionvector,mvs)。为了决定帧间amvp模式下的mvp,可以使用高级运动向量预测(amvp)的架构来选出一运动向量预测子,方式是从包括二空间mvp以及一时间mvp的一amvp候选组中选出。因此在amvp模式下,需要对mvp的mvp索引以及相对应的mvds进行编码与传送。此外,帧间预测方向(用来表明在双向预测以及单向预测之间的预测方向,也就是列表list0(l0)以及列表list1(l1))以及对于每一列表所伴随的参考帧索引也应予以编码与传送。技术实现要素:8.以下
发明内容仅是说明性的,不打算以任何方式加以限制。也就是说,以下
发明内容被提供以介绍此处所描述的新且非显而易见的技术的概念、重点、好处和优势。选择性而不是将所有的实施方式在下面的详细说明中进行进一步描述。因此,以下
发明内容不用于决定所要求主题的本质特征,也不用于决定所要求主题的范围。9.本发明的一些实施例提供用于发信运动向量差值的一种方法。一视频解码器接收一块的像素数据,该块将被解码作为一视频的一当前画面中的一当前块。当该当前块通过使用帧间模式与双向预测加以编解码时,该视频解码器接收一第一运动向量差值;以及基于一第一旗标或一第二旗标来导出一第二运动向量差值。当该第一旗标为假时,该视频解码器使用该第二旗标来决定是否将该第二运动向量差值设定为该第一运动向量差值的一相反数值。当该第一旗标为真时,该视频解码器设定该第二运动向量差值为零。基于该第一运动向量差值与该第二运动向量差值,该视频解码器通过使用运动信息来执行帧间预测而重构该当前块。附图说明10.下列附图用以提供本发明的进一步理解,并被纳入且构成本发明的一部分。这些附图说明了本发明的实施方式,并与说明书一起用以解释本发明的原理。为了清楚地说明本发明的概念,与实际实施方式中的尺寸相比,一些组件可以不按照比例被示出,这些附图无需按照比例绘制。11.图1概念性地绘示出当smvd模式旗标为真时当前块的帧间预测。12.图2概念性地绘示出当mvd_l1_zero_flag为真时的帧间预测。13.图3绘示出一示例的视频编码器。14.图4绘示出可以实施smvd模式与零l1mvd模式的视频编码器的部分。15.图5概念性地绘示一进程以调和smvd模式与零l1mvd模式。16.图6绘示出一示例的视频解码器。17.图7绘示出可以实施smvd模式与零l1mvd模式的视频解码器的部分。18.图8概念性地绘示一进程以调和smvd模式与零l1mvd模式。19.图9概念性地绘示一电子系统,本发明的一些实施例可以于其中加以实施。具体实施方式20.以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本发明所描述的概念的仅有配置。21.在下面详细的说明书中,为了透彻理解相关教示内容,透过举例的方式进行说明大量具体的细节。基于本发明所描述的教示内容的任何改变、推导和/或拓展均在本发明的保护范围内。为了避免不必要地混淆本发明的教示内容的方面,关于此处所公开的一个或者多个示例性实施方式中已知的方法、程序、组件和/或电路,在有些时候会用相对较高的层次加以描述而不细说。22.i.对称的运动向量差值(symmetricmotionvectordifference,smvd)模式23.除了用于一般的单向预测与双向预测模式的mvd发信之外,一种用于双向预测的mvd发信模式(smvd模式,也称作对称mvd模式)被应用。在对称mvd模式中,运动信息(包括列表‑0与列表‑1二者的参考画面索引以及列表‑1的mvd)不被发信而是推导得出。对称的运动向量差值(smvd)模式是一帧间预测模式,其中运动信息被对称性地决定或推论得出。尤其在一些实施例中,在l1方向的运动向量差值(以mvd1或mvdl1表示)是基于在l0方向的一运动向量差值(以mvd0或mvdl0表示)来加以决定。在一些实施例中,l1参考画面与l0参考画面是与当前画面在时间上或poc上等距离(可基于画面顺序计数(pictureordercount,poc)或与时间域或poc相关的任何其他因素来加以决定)。在一些实施例中,在smvd模式下,mvd1被推论等于–mvd0。在一些实施例中,当smvd模式旗标为真,bdof不被应用于预测以降低复杂度。24.在一些实施例中,一参考对(ref_idx_l0与ref_idx_l1)不被发信而是推导得出(ref_idx_l0是指向参考画面列表‑0的参考索引,而且ref_idx_l1是指向参考画面列表‑1的参考索引)。在一些实施例中,mvd0被发信,但是mvd1不被发信而是被推论得出。25.在一些实施例中,于cu层级,如果用于smvd模式的一致能条件满足时,一smvd模式旗标(其指示出对称模式(或smvd模式)是否被使用)被显性地发信(explicitlysignaled)。当对称模式旗标为真,仅有mvp_l0_flag、mvp_l1_flag与mvd0被显性地发信。用于列表‑0与列表‑1的参考索引,表示为(refidxsyml0,refidxsyml1),分别被设定为参考画面对(pairofreferencepictures)。mvd1被设定等于(–mvd0)。根据smvd模式的mv计算为根据如下公式:[0026][0027]l0mv=(mvx0,mvy0),l0预测子=(mvpx0,mvpy0),l0mvd或mvd0=(mvdx0,mvdy0)。l1mv=(mvx1,mvy1),l1预测子=(mvpx1,mvpy1)。l1mvd或mvd1=(mvdx1,mvdy1),但是因为是smvd模式,被推论为(–mvdx0,–mvdy0)或–mvd0。[0028]ii.l1运动向量差值导出[0029]在一些实施例中,当当前cu或pu是帧间‑编解码而且双向预测被允许时(例如,当当前cu或pu是在一b‑帧或b‑切片中),许多不同设定可以被使用来隐含地推导出mvd1。这些设定中之一(其可以被使用来隐含地推导出mvd1)是smvd模式。当用于smvd模式的一致能条件(以条件a表示)满足而且smvd模式旗标为真时,mvd1被设定等于–mvd0而非显性地加以发信。在一些实施例中,smvd模式旗标可以被发信于cu/pu、ctu、切片、方块(tile)、方块群组(tilegroup)、sps、pps、或画面层级。[0030]另一个可以被使用来隐含地推导出mvd1的设定是零mvd1模式,mvd1模式可以通过mvd_l1_zero_flag加以启动。当用于mvd_l1_zero_flag的一致能条件(以条件b表示)满足而且mvd_l1_zero_flag为真时,mvd1被设定等于零而非显性地加以发信。在一些实施例中,mvd_l1_zero_flag可以被发信于cu/pu、ctu、切片、方块(tile)、方块群组(tilegroup)、sps、pps、或画面层级。[0031]在一些实施例中,画面层级(picturelevel)指的是画面标头(pictureheader,ph)。ph语法结构包含对于与ph语法结构相关联的经过编解码画面的所有切片都通用的信息。[0032]图1概念性地绘示出当smvd模式旗标为真时当前块的帧间预测。图2概念性地绘示出当mvd_l1_zero_flag为真时的帧间预测。如第1‑2图所绘示,一视频编解码器编码或解码一像素块100(例如cu或pu)以作为在一当前画面110的一当前块。l0参考画面120与l1参考画面130是与当前画面在时间上或poc上等距离。当smvd模式旗标为真,mvd1被设定为–mvd0。当mvd_l1_zero_flag为真,mvd1被设定为零。[0033]本发明的一些实施例提供方法来处理(或调和)于smvd模式旗标与mvd_l1_zero_flag之间的互动,这是由于这二个旗标都关于(会影响)mvd1的推导。在一些实施例中,当前块(或当前cu/pu)是帧间‑编解码而且双向‑预测是被允许的条件,是使得smvd模式旗标或mvd_l1_zero_flag致能的一前提必要条件。当此前提必要条件在当前块被满足时,一视频编码器可以使用smvd模式旗标与/或mvd_l1_zero_flag来决定mvd1的推导。在一些实施例中,当条件a不满足时,smvd模式旗标被推论为假。在一些实施例中,当条件b不满足时,mvd_l1_zero_flag被推论为假。在这些实施例中的一些,条件a和条件b不相同。下列是条件a与条件b的例子:[0034]在一些实施例中,条件a(即用于smvd模式的致能条件)包括(或至少包括)cu是双向‑预测编解码与/或满足某些特定条件的参考画面存在,其中在一些实施例中,bidirpredflag可以被用来指示出满足某些特定条件的参考画面是否存在。bidirpredflag在切片层级被推导如下:如果mvd_l1_zero_flag为1,bidirpredflag被设定等于0。否则,如果列表‑0中最接近的参考画面以及列表‑1中最接近的参考画面形成一对顺向与逆向的参考画面或是一对逆向与顺向的参考画面,而且列表‑0与列表‑1参考画面二者皆为短期的(short‑term)参考画面,bidirpredflag被设定等于1。否则,bidirpredflag被设定等于0。在一些实施例中,条件a包括(或至少包括)列表‑0中一被选择的参考画面(以refidxsyml0表示)以及列表‑1中一被选择的参考画面(以refidxsyml1表示)形成一对顺向与逆向的参考画面或是一对逆向与顺向的参考画面。在一些实施例中,列表‑0中该被选择的画面是列表‑0中(时间上或poc)最接近于当前画面的参考画面。在一些实施例中,列表‑1中该被选择的画面是列表‑1中(时间上或poc)最接近于当前画面的参考画面。在一些实施例中,列表‑0中该被选择的画面被发信于cu/pu、ctu、切片、方块(tile)、方块群组(tilegroup)、sps、pps、或画面层级。在一些实施例中,列表‑1中该被选择的画面被发信于cu/pu、ctu、切片、方块(tile)、方块群组(tilegroup)、sps、pps、或画面层级。在一些实施例中,列表‑0中该被选择的画面是列表‑0中的第一参考画面。在一些实施例中,列表‑1中该被选择的画面是列表‑1中的第一参考画面。在实施例中,上述的任何组合可以被应用。[0035]在一些实施例中,条件a包括(或至少包括)列表‑0中最接近的参考画面(以refidxsyml0表示)以及列表‑1中最接近的参考画面(以refidxsyml1表示)形成一对顺向与逆向的参考画面或是一对逆向与顺向的参考画面。在一些实施例中,条件a包括(或至少包括)列表‑0中的第一参考画面以及列表‑1中的第一参考画面是对称的。换言之,列表‑0中的第一参考画面以及列表‑1中的第一参考画面形成一对顺向与逆向的参考画面(或是一对逆向与顺向的参考画面),而且当前画面与列表‑0中的第一参考画面之间的距离和当前画面与列表‑1中的第一参考画面之间的距离是相同的。在一些实施例中,当条件a满足时,refidxsyml0与refidxsyml1被推论为零。[0036]在一些实施例中,条件b包括(或至少包括)列表‑0中的任一参考画面以及列表‑1中的任一参考画面所形成的一对顺向与顺向的参考画面。(这被称为一般化的p与b画面(或gpb)条件)。[0037]在一些实施例中,如果条件a(用于smvd模式旗目标致能条件)满足时,条件b无法满足。在一些实施例中,条件a包括(或至少包括)mvd_l1_zero_flag为假。在一些实施例中,当用于smvd模式旗目标条件满足时,mvd_l1_zero_flag的条件自动被认为无法满足,而且mvd_l1_zero_flag被设定为假。[0038]在一些实施例中,如果条件b(用于mvd_l1_zero_flag的致能条件)满足时,条件a无法满足。在一些实施例中,条件b包括(或至少包括)smvd模式旗标为假。换言之,当用于mvd_l1_zero_flag的条件满足时,smvd模式旗目标条件自动被认为无法满足,而且smvd模式旗标被设定为假。[0039]在一些实施例中,当mvd_l1_zero_flag与smvd模式旗标二者皆为真时,mvd1被设定为零(而不是–mvd0)。在一些实施例中,当mvd_l1_zero_flag与smvd模式旗标二者皆为真时,mvd1被设定为–mvd0(而不是零)。在一些实施例中,条件b与条件a相反。在一些实施例中,条件a与条件b相反。[0040]前面提出的任何方法可以在编码器与/或解码器中加以实施。例如,所提出的任何方法可以在一编码器的一帧间编解码模块、一运动补偿模块、一解码器的一帧间候选推导模块中加以实施。所提出的任何方法也可以备选式地实施为一电路而耦合至一编码器的一帧间编解码模块与/或一运动补偿模块、一解码器的一合并/帧间候选推导模块。[0041]iii.示例性的视频编码器[0042]图3绘示出一示例性的视频编码器300。如图所示,视频编码器300从一视频源305接收输入视频信号并将该信号编码进比特流395。视频编码器300具有若干组件或模块以将来自视频源305的信号加以编码,至少包括有些组件是选择自转换模块310、量化模块311、逆量化模块314、逆转换模块315、帧内‑画面估计模块320、帧内‑预测模块325、运动补偿模块330、运动估计模块335、回路滤波器345、已重构画面缓冲器350、mv缓冲器365、mv预测模块375以及熵编码器390。运动补偿模块330与运动估计模块335是帧间‑预测模块340的一部分。[0043]在一些实施例中,模块310‑390是由计算设备或电子装置的一个或多个处理单元(例如,处理器)所执行的软件指令的模块。在一些实施例中,模块310‑390是由电子装置的一个或多个集成电路(integratedcircuit,ic)所实现的硬件电路的模块。虽然模块310‑390被示出为分离的模块,但是一些模块可以被组合成单一个模块。[0044]视频源305提供原始视频信号,其呈现没有压缩的每个视频帧的像素数据。减法器308计算视频源305的原始视频像素数据与来自于运动补偿模块330或者帧内‑预测模块325的已预测像素数据313之间的差。转换模块310将此差(或残差像素数据或残差信号309)转换为转换系数(例如,透过执行离散余弦转换,或dct)。量化模块311将转换系数量化为已量化数据(或已量化系数)312,其由熵编码器390编码进比特流395中。[0045]逆量化模块314逆量化已量化资料(或已量化系数)312,以获得转换系数,而逆转换模块315对转换系数执行逆转换以产生已重构残差319。已重构残差319与已预测像素数据313相加以生成已重构像素数据317。在一些实施例中,已重构像素数据317被暂时存储在一线缓冲器(未示出)中以用于帧内‑画面预测和空间mv预测。已重构像素由回路滤波器345进行滤波并被存储在已重构画面缓冲器350中。在一些实施例中,已重构画面缓冲器350是在视频编码器300之外的一内存。在一些实施例中,已重构画面缓冲器350是在视频编码器300之内的一内存。[0046]帧内‑画面估计模块320基于已重构像素数据317执行帧内‑预测,以产生帧内预测数据。帧内‑预测数据被提供给熵编码器390以被编码进比特流395中。帧内‑预测数据也被帧内‑预测模块325使用,以产生已预测像素数据313。[0047]运动估计模块335通过提供mv给存储在已重构画面缓冲器350中的现有已解码视频帧的参考像素数据,来执行帧间‑预测。这些mv被提供给运动补偿模块330以产生已预测像素数据。[0048]不用将完整实际mv编码进比特流中,视频编码器300使用mv预测来产生已预测mv,并且将用于运动补偿的mv与已预测mv之间的差被编码为残差运动数据并被存储在比特流395中。[0049]mv预测模块375基于参考mv来产生已预测mv,所述参考mv是在编码现有视频帧所产生的,也就是用于执行运动补偿的运动补偿mv。mv预测模块375从mv缓冲器365中取回来自现有视频帧的参考mv。视频编码器300将所产生以用于当前视频帧的mv存储在mv缓冲器365中,以作为用于产生已预测mv的参考mv。[0050]mv预测模块375使用参考mv来创建已预测mv。已预测mv可以由空间mv预测或时间mv预测来加以计算。当前视频帧(残差运动数据)的已预测mv与运动补偿mv(mcmv)之间的差值由熵编码器390编码进比特流395中。[0051]熵编码器390透过使用诸如上下文适应性二进制算术编码(context‑basedadaptivebinaryarithmeticcoding,cabac)或霍夫曼编码(huffmanencoding)的熵编解码技术,将各种参数和数据编码进比特流395中。熵编码器390将各种标头元素、旗标、以及已量化转换系数312与残差运动数据,一起编码为语法元素进入比特流395中。然后比特流395被存储于存储装置中或透过诸如网络的通信介质被传输至一解码器。[0052]回路滤波器345对已重构像素数据317进行滤波运算或平滑操作运算以减少编解码伪影,特别是在像素块的边界处。在一些实施例中,所执行的滤波操作包括取样自适应偏移(sampleadaptiveoffset,sao)。在一些实施例中,滤波操作包括自适应回路滤波器(adaptiveloopfilter,alf)。[0053]图4绘示出可以实施smvd模式与零l1mvd模式的视频编码器的一些部分。如之前所述,帧间‑预测模块340,尤其是运动估计模块335输出实际被用于运动补偿(mcmv)的一运动向量。在一些实施例中,当用于smvd模式的致能条件满足而且smvd旗标指示出使用smvd模式时,运动估计以一初始mv评估(initialmvevaluation)开始对称mvd搜寻。此初始mv是从一组初始mv候选中来加以评估,包括:从单向‑预测搜寻所得到的mv、从双向‑预测搜寻所得到的mv、以及从amvp列表的mv。具有最低率‑失真成本(rate‑distortioncost)的mv被选择为用于该对称mvd运动搜寻的该初始mv。[0054]mcmv的数值是基于下列所决定:帧间‑预测模块340是否使用smvd模式(smvd模式旗标=真)、零l1mvd模式(mvd_l1_zero_flag=真)、或是一些其他模式来实施帧间‑预测。如果当前块是在一b‑切片或b‑帧中,于其中双向预测被允许与/或当前块是由双向预测所编解码。帧间‑预测模块340依据一mvd选择模块400来执行运动估计与运动补偿,其中mvd选择模块400提供与smvd模式旗标与/或mvd_l1_zero_flag相关联的mvd信息。如果用于smvd模式旗目标致能条件满足时,smvd模式旗标可以于比特流中被发信;否则,smvd模式旗标可以不经由发信而被推导出。如果用于mvd_l1_zero_flag的致能条件满足时,mvd_l1_zero_flag可以于比特流中被发信;否则,mvd_l1_zero_flag可以不经由发信而被推导出。如果smvd模式被使用时,mcmv基于mvd1=–mvd0被设定。如果零l1mvd模式被使用时,mcmv基于mvd1=0被设定。如果用于smvd模式旗标与/或mvd_l1_zero_flag其中之一被设定为真时,熵编码器390不可以将用于l1的运动向量差值或残差运动数据发信进入比特流395中。[0055]图5概念性示出了一进程500,以调和smvd模式与零l1mvd模式。在一些实施例中,通过执行储存于一计算机可读取媒介上的指令,实施编码器300的一计算装置上的一个或多个处理单元(例如,处理器)会执行进程500。在一些实施例中,实施编码器300的一电子装置会执行进程500。[0056]编码器接收(于区块510)一像素块的原始像素数据,以编码作为一视频的一当前画面中的一当前块于一比特流中。编码器决定(于区块515)当前块是否通过使用帧间模式与双向‑预测来加以编解码。如果是,进程进行至520。如果当前块不是通过帧间模式与双向‑预测来加以编解码,视频编码器会通过其他编解码模式来编码当前块。[0057]编码器接收(于区块520)或计算一第一运动向量差值。编码器决定(于区块525)一第一旗标(mvd_l1_zero_flag)是否为真或假。在一些实施例中,第一旗标(mvd_l1_zero_flag)被发信于一画面层级。在一些实施例中,此mvd_l1_zero_flag可以被发信于cu/pu、ctu、切片、方块(tile)、方块群组(tilegroup)、sps、或pps层级。如果第一旗标为真,编码器进行至区块530。如果第一旗标为假,进程进行至区块535。在一些实施例中,使smvd模式致能的条件(或条件a)至少包括mvd_l1_zero_flag为假。[0058]于区块530,由于第一旗标(mvd_l1_zero_flag)指示出零l1mvd模式被使用,编码器设定一第二运动向量(即mvd1)为零。在一些实施例中,该第一与第二运动向量差值是相关联于第一与第二参考画面。在一些实施例中,该第一参考画面是选择自一第一参考画面列表而且该第二参考画面是选择自一第二参考画面列表。在一些实施例中,该第一与第二参考画面形成一对顺向与顺向的参考画面。这被称为一般化的p与b画面(或gpb)条件。然后进程进行至区块570。[0059]于区块535,编码器决定一第二旗标(smvd模式旗标)是否为真或假。在一些实施例中,第二旗标(smvd模式旗标)被发信于该当前块的编解码单元(cu)层级。在一些实施例中,此smvd模式旗标可以被发信于ctu、切片、方块(tile)、方块群组(tilegroup)、sps、pps、或画面层级。如果第二旗标为真,进程进行至540。如果第二旗标为假,进程进行至550。[0060]于区块540,编码器设定该第二运动向量差值(即mvd1)为该第一运动向量差值的一相反数值(即–mvd0)。在一些实施例中,该第一与第二运动向量差值是相关联于与该当前画面相对称的或相同距离的第一与第二参考画面。在一些实施例中,编码器可以从一第一参考画面列表中选择该第一参考画面而且从一第二参考画面列表中选择该第二参考画面。在一些实施例中,该第一与第二参考画面形成一对逆向与顺向的或是一对顺向与逆向的参考画面。在一些实施例中,该第一参考画面是在该第一参考画面列表中一时间上或poc最接近该当前画面的画面,而且该第二参考画面是在该第二参考画面列表中一时间上或poc最接近该当前画面的画面。然后进程进行至区块570。[0061]于区块550,编码器基于用于运动补偿的一运动向量与一经过预测的运动向量来设定该第二运动向量差值(即mvd1)。然后该进程于该比特流中发信(于区块560)该第二运动向量差值(mvd1)。在一些实施例中,当该第一旗标或是该第二旗标为真时,该第二运动向量差值(mvd1)不被发信于该比特流中。[0062]基于该第一运动向量差值(mvd0)与该第二运动向量差值(mvd1),该进程通过使用运动信息来执行帧间预测(尤其为双向‑预测)而编码(于区块570)该当前块进入该比特流中。在一些实施例中,只有当双向‑预测被允许用于当前块与/或只有当当前块是一双向‑切片或双向‑画面时,smvd模式旗标与mvd_l1_zero_flag才会被视频编码器考虑用于帧间‑预测。[0063]iv.示例性的视频解码器[0064]图6绘示出一示例性的视频解码器600。如图所示,视频解码器600是一影像‑解码或视频‑解码电路,其接收一比特流695并将比特流的内容解码为视频帧的像素数据以用于显示。视频解码器600具有用于解码比特流695的若干组件或模块,包括有些组件是选择自一逆量化模块605、一逆转换模块610、一帧内‑预测模块625、一运动补偿模块630、一回路滤波器645、一已解码画面缓冲器650、一mv缓冲器665、一mv预测模块675与一解析器690。运动补偿模块630是帧间‑预测模块640的一部分。[0065]在一些实施例中,模块610‑690是由计算设备的一个或多个处理单元(例如,处理器)所执行的软件指令的模块。在一些实施例中,模块610‑690是由电子设备的一个或多个集成电路所实现的硬件电路的模块。虽然模块610‑690被表示为分离的模块,但是一些模块可以被组合成单一个模块。[0066]解析器690(或熵解码器)接收比特流695,并且根据由视频‑编解码或影像‑编解码标准所定义的语法来执行初步解析。所解析的语法元素包括各种标头元素、旗标、以及已量化数据(或已量化系数)612。解析器690通过使用诸如上下文适应性二进制算术编码(context‑adaptivebinaryarithmeticcoding,cabac)或霍夫曼编码的熵编解码技术来解析出各种语法元素。[0067]逆量化模块605对已量化数据(或已量化系数)612进行逆量化以获得转换系数,并且逆转换模块610对转换系数616执行逆转换运算以产生已重构残差信号619。已重构残差信号619与来自于帧内‑预测模块625或运动补偿模块630的已预测像素数据613相加,以产生已解码像素数据617。已解码像素数据由回路滤波器645滤波并被存储在已解码画面缓冲器650中。在一些实施例中,已解码画面缓冲器650是在视频解码器600之外的一内存。在一些实施例中,已解码画面缓冲器650是在视频解码器600之内的一内存。[0068]帧内‑预测模块625从比特流695接收帧内‑预测数据,并且据此从存储在已解码画面缓冲器650中的已解码像素数据617来产生已预测像素数据613。在一些实施例中,已解码像素数据617也被存储在用于帧内‑画面预测和空间mv预测的一线缓冲器(未示出)中。[0069]在一些实施例中,已解码画面缓冲器650的内容被用于显示。显示设备655直接取回出已解码画面缓冲器650的内容以进行显示,或将已解码画面缓冲器的内容取回到一显示缓冲器。在一些实施例中,显示设备透过一像素传输从已解码画面缓冲器650来接收像素值。[0070]运动补偿模块630根据运动补偿mv(mcmv),从存储在已解码画面缓冲器650中的已解码像素数据617来产生已预测像素数据613。这些运动补偿mv透过将自比特流695接收的残差运动数据与自mv预测模块675接收的预测mv相加而被解码。[0071]mv预测模块675基于参考mv来产生已预测mv,所述参考mv是在解码现有视频帧所产生的,也就是用于执行运动补偿的运动补偿mv。mv预测模块675从mv缓冲器665中取回现有视频帧的参考mv。视频解码器600将产生为用来解码当前视频帧的运动补偿mv存储在mv缓冲器665中,以作为用于产生已预测mv的参考mv。[0072]回路滤波器645对已解码像素数据617执行滤波操作或平滑操作,以减少编解码伪影,特别是在像素块的边界处。在一些实施例中,所执行的滤波操作包括取样自适应偏移(sampleadaptiveoffset,sao)。在一些实施例中,滤波操作包括自适应回路滤波器(adaptiveloopfilter,alf)。[0073]图7绘示出可以实施smvd模式与零l1mvd模式的视频解码器600的一些部分。如图所示,熵解码器690可以从比特流695解析出smvd模式旗标与/或mvd_l1_zero_flag。如果使smvd模式旗标致能的条件满足时,熵解码器可以解析出smvd模式旗标;否则,smvd模式旗标可以不经由发信而被推导出。如果使mvd_l1_zero_flag致能的条件满足时,熵解码器可以解析出mvd_l1_zero_flag;否则,mvd_l1_zero_flag可以不经由发信而被推导出。熵解码器690也可以从比特流中解析出语法元素,比特流中发信当前块是否在一b‑切片或b‑帧中、与/或当前块是否为双向预测或不由语法而推导出的来决定当前块是否在一b‑切片或b‑帧中。[0074]如果当前块是在一b‑切片或b‑帧中、双向预测被允许、与/或当前块是由双向预测所编解码时,一mvd选择模块700会基于smvd模式旗标与/或mvd_l1_zero_flag来决定是否使用smvd模式或零l1mvd模式。[0075]当mvd选择模块700决定smvd模式被使用时,当建构运动向量以用于运动补偿(mcmv)时,–mvd0被用作为运动向量差值的l1运动向量差值(mvd1)。当mvd选择模块700决定零l1mvd模式被使用时,当建构运动向量以用于运动补偿(mcmv)时,零被用作为l1运动向量差值。在其他情况时,由熵解码器690从比特流所解析出的残差运动数据会被使用来建构运动向量以用于运动补偿。然后通过加入预测过后的mv,mvd0与mvd1被用来计算运动向量以用于运动补偿(mcmv)。[0076]图8概念性地绘示一进程以调和smvd模式与零l1mvd模式。在一些实施例中,通过执行储存于一计算机可读取媒介上的指令,实施解码器600的一计算装置上的一个或多个处理单元(例如,处理器)会进行进程800。在一些实施例中,实施解码器600的一电子装置会进行进程800。[0077]解码器从一比特流中接收(于区块810)数据,以解码一像素块作为一视频的一当前画面中的一当前块。解码器决定(于区块815)是否通过使用帧间模式与双向预测来对当前块加以编解码。如果是,进程进行至820。如果当前块不是通过帧间模式与双向预测来加以编解码时,视频解码器会基于其他编解码模式来重构当前块。[0078]解码器从一比特流中接收(于区块820)一第一运动向量差值(即mvd0)。解码器决定(于区块825)一第一旗标(mvd_l1_zero_flag)是否为真或假。在一些实施例中,第一旗标(mvd_l1_zero_flag)被发信于一画面层级。在一些实施例中,此mvd_l1_zero_flag可以被发信于cu/pu、ctu、切片、方块(tile)、方块群组(tilegroup)、sps、或pps层级。如果第一旗标为真,解码器进行至区块830。如果第一旗标为假,进程进行至区块835。在一些实施例中,使smvd模式致能的条件(或条件a)至少包括mvd_l1_zero_flag为假。[0079]于区块830,由于第一旗标(mvd_l1_zero_flag)指示出零l1mvd模式被使用,解码器设定一第二运动向量(即mvd1)为零。在一些实施例中,该第一与第二运动向量差值是相关联于第一与第二参考画面。在一些实施例中,该第一参考画面是选择自一第一参考画面列表而且该第二参考画面是选择自一第二参考画面列表。在一些实施例中,该第一与第二参考画面形成一对顺向与顺向的参考画面。这被称为一般化的p与b画面(或gpb)条件。然后进程进行至区块870。[0080]于区块835,解码器决定一第二旗标(smvd模式旗标)是否为真或假。在一些实施例中,第二旗标(smvd模式旗标)被发信于该当前块的编解码单元(cu)层级。在一些实施例中,此smvd模式旗标可以被发信于ctu、切片、方块(tile)、方块群组(tilegroup)、sps、pps、或画面层级。如果第二旗标为真,进程进行至840。如果第二旗标为假,进程进行至860。[0081]于区块840,解码器设定该第二运动向量差值(即mvd1)为该第一运动向量差值的一相反数值(即–mvd0)。在一些实施例中,该第一与第二运动向量差值是相关联于与该当前画面相对称的或相同距离的第一与第二参考画面。在一些实施例中,解码器可以从一第一参考画面列表中选择该第一参考画面而且从一第二参考画面列表中选择该第二参考画面。在一些实施例中,该第一与第二参考画面形成一对逆向与顺向的或是一对顺向与逆向的参考画面。在一些实施例中,该第一参考画面是在该第一参考画面列表中一时间上或poc最接近该当前画面的画面,而且该第二参考画面是在该第二参考画面列表中一时间上或poc最接近该当前画面的画面。然后进程进行至区块870。[0082]然后该进程接收(于区块860)于该比特流中的该第二运动向量差值(mvd1)。在一些实施例中,当该第一旗标或是该第二旗标为真时,该第二运动向量差值(mvd1)不被发信于该比特流中。[0083]基于该第一运动向量差值与该第二运动向量差值,解码器通过使用运动信息来执行帧间预测(尤其为双向‑预测)而重构(于区块870)该当前块。在一些实施例中,只有当双向‑预测被允许用于当前块与/或只有当当前块是一双向‑切片或双向‑画面(前提必要条件)时,smvd模式旗标与mvd_l1_zero_flag才会被视频解码器考虑用于帧间‑预测。[0084]ix.示例性的电子系统[0085]很多上述的特征和应用可以被实现为软件处理,其被指定为记录在计算机可读存储介质(computerreadablestoragemedium)(也被称为计算机可读介质)上的指令集。当这些指令由一个或者多个计算单元或者处理单元(例如,一个或者多个处理器、处理器核或者其他处理单元)来执行时,则这些指令使得该处理单元执行这些指令所表示的动作。计算机可读介质的示例包括但不限于cd‑rom、闪存驱动器(flashdrive)、随机存取内存(randomaccessmemory,ram)芯片、硬盘、可擦写可程序设计只读存储器(erasableprogrammablereadonlymemory,eprom),电可擦除可程序设计只读存储器(electricallyerasableprogrammableread‑onlymemory,eeprom)等。该计算机可读介质不包括透过无线或有线连接的载波和电信号。[0086]在本说明书中,术语“软件”意味着包括只读存储器中的固件或者存储在磁存储装置中的应用程序,该应用程序可以被读入到内存中以用于处理器进行处理。同时,在一些实施例中,多个软件发明可以作为更大程序的子部分来实现,而保留不同的软件发明。在一些实施例中,多个软件发明可以作为独立的程序来实现。最后,一起实现此处所描述的软件发明的独立的程序的任何结合是在本发明的范围内。在一些实施例中,当被安装以在一个或者多个电子系统上执行操作时,软件程序定义了一个或者多个特定的机器实现方式,该机器实现方式执行和实施该软件程序的操作。[0087]图9概念性地绘示一电子系统900,本发明的一些实施例可以于其中加以实施。电子系统900可以是计算机(例如,台式计算机、个人计算机、平板计算机等)、电话、pda或者其他种类的电子设备。这个电子系统包括各种类型的计算机可读媒质和用于各种其他类型的计算机可读媒质的接口。电子系统900包括总线905、处理单元910、图像处理单元(graphics‑processingunit,gpu)915、系统内存920、网络925、只读存储器(read‑onlymemory,rom)930、永久存储装置935、输入设备940和输出设备945。[0088]总线905集体表示与大量的电子系统900通信连接的内部设备的所有系统总线、外设总线和芯片组总线。例如,总线905透过图像处理单元915、只读存储器930、系统内存920和永久存储装置935,与处理单元910通信连接。[0089]对于这些各种内存单元,处理单元910取回执行的指令和处理的数据,以为了执行本发明的处理。在不同实施例中,该处理单元可以是单个处理器或者多核处理器。某些指令被传输图像处理单元915和并被其执行。该图像处理单元915可以卸除各种计算或补充由处理单元910提供的图像处理。[0090]只读存储器930存储处理单元910或者电子系统的其他模块所需要的静态数据和指令。另一方面,永久存储装置935是一种读写内存设备(read‑and‑writememory)。这个设备是一种非易失性(non‑volatile)内存单元,其即使在电子系统900关闭时也存储指令和数据。本发明的一些实施例使用大容量存储设备(例如磁盘或光盘及其相应的磁盘驱动器)作为永久存储装置935。[0091]其他实施例使用卸除式存储装置设备(如软盘、闪存设备等,以及其相应的磁盘驱动器)作为该永久存储装置。与永久存储装置935一样,系统内存920是一种读写内存设备。但是,与存储装置935不一样的是,该系统内存920是一种易失性(volatile)读写内存,例如随机读取内存。系统内存920存储一些处理器在运行时需要的指令和数据。在一些实施例中,根据本发明的处理被存储在该系统内存920、永久存储装置935和/或只读存储器930中。例如,各种内存单元包括用于根据一些实施例的处理多媒体剪辑的指令。对于这些各种内存单元,处理单元910取回执行的指令和处理的数据,以为了执行某些实施例的处理。[0092]总线905也连接到输入设备940和输出设备945。该输入设备940使得用户沟通信息并选择指令到该电子系统上。该输入设备940包括字母数字元键盘和指点设备(也被称为“游标控制设备”),摄像机(如网络摄像机(webcam)),用于接收语音命令的麦克风或类似的设备等。输出设备945显示由电子系统生成的图像或以其他方式输出的数据。输出设备945包括打印机和显示设备,例如阴极射线管(cathoderaytube,crt)或液晶显示器(liquidcrystaldisplay,lcd),以及扬声器或类似的音讯输出设备。一些实施例包括诸如同时用作输入设备和输出设备的触摸屏等设备。[0093]最后,如图9所示,总线905也透过网络适配器(未示出)将电子系统900耦接到网络925。在这个方式中,计算机可以是计算机网络(例如,局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)或者内部网络)或者网络的网络(例如互联网)的一部分。电子系统900的任一或者所有组件可以与本发明结合使用。[0094]一些实施例包括电子组件,例如,微处理器、存储装置和内存,其将计算机程序指令存储到机器可读介质或者计算机可读介质(可选地被称为计算机可读存储介质、机器可读介质或者机器可读存储介质)。计算机可读介质的一些实例包括ram、rom、只读光盘(read‑onlycompactdisc,cd‑rom),可录制光盘(recordablecompactdisc,cd‑r)、可擦写光盘(rewritablecompactdisc,cd‑rw)、只读数字通用光盘(read‑onlydigitalversatiledisc)(例如,dvd‑rom,双层dvd‑rom)、各种可记录/可擦写dvd(例如dvdram、dvd‑rw、dvd+rw等)、闪存(如sd卡、迷你sd卡,微sd卡等)、磁性和/或固态硬盘、只读和可刻录盘、超高密度光盘和其他任何光学介质或磁介质,以及软盘。计算机可读介质可以存储由至少一个处理单元执行的计算机程序,并且包括用于执行各种操作的指令集。计算机程序或计算机代码的示例包括机器代码,例如编译程序产生的机器代码,以及包含由计算机、电子组件或微处理器使用注释器(interpreter)而执行的高级代码的文档。[0095]当以上讨论主要是指执行软件的微处理器或多核处理器时,很多上述的功能和应用程序由一个或多个集成电路执行,如特定应用的集成电路(applicationspecificintegratedcircuit,asic)或现场可程序设计门阵列(fieldprogrammablegatearray,fpga)。在一些实施例中,这种集成电路执行存储在该电路本身上的指令。此外,一些实施例执行存储在可程序设计逻辑器件(programmablelogicdevice,pld),rom或ram设备中的软件。[0096]如本发明的说明书和任一权利要求中所使用,术语“计算机”、“服务器”、“处理器”和“内存”均指电子设备或其他技术设备。这些术语不包括人或群体。为了本说明书的目的,术语显示或显示设备指在电子设备上进行显示。如本发明的说明书和任一权利要求中所使用,术语“计算机可读介质”、“计算机可读媒质”和“机器可读介质”完全局限于有形的、实体的物体,其以计算机可读的形式存储信息。这些术语不包括任何无线信号、有线下载信号和其他任何短暂信号。[0097]在结合许多具体细节的情况下描述了本发明时,本领域通常知识者将认识到,本发明可以以其他具体形式而被实施,而不脱离本发明的精神。此外,大量的图(包括图5和图8)概念性示出了处理。这些处理的具体操作可以不以所示以及所描述的确切顺序来被执行。这些具体操作可用不在一个连续的操作系列中被执行,并且不同的具体操作可以在不同的实施例中被执行。另外,该处理透过使用几个子处理而被实现,或者作为更大宏处理的部分。因此,本领域技术人员将能理解的是,本发明不受前述说明性细节的限制,而是由权利要求加以界定。[0098]附加的说明[0099]本发明所描述的主题有时表示不同的组件,其包含在或者连接到其他不同的组件。可以理解的是,所描述的结构仅是示例,实际上可以由许多其他结构来实施,以实现相同的功能。从概念上讲,任何实现相同功能的组件的排列实际上是“相关联的”,以便实现所需的功能。因此,不论结构或中间部件,为实现特定的功能而组合的任何两个组件被视为“相互关联”,以实现所需的功能。同样,任何两个相关联的组件被看作是相互“可操作连接”或“可操作耦接”,以实现特定功能。能相互关联的任何两个组件也被视为相互“可操作地耦合”以实现特定功能。可操作连接的具体例子包括但不限于物理可配对和/或物理上相互作用的组件,和/或无线可交互和/或无线上相互作用的组件,和/或逻辑上相互作用和/或逻辑上可交互的组件。[0100]此外,关于基本上任何多和/或单数术语的使用,本领域的技术人员可以根据上下文和/或应用从多转换为单数和/或从单数到多。为清楚起见,本发明明确规定了不同的单数/多排列。[0101]此外,本领域的通常知识者可以理解,通常,本发明所使用的术语特别是权利要求中的,如权利要求的主题,通常用作“开放”术语,例如,“包括”应解释为“包括但不限于,“有”应理解为“至少有”“包括”应解释为“包括但不限于”等。本领域的通常知识者可以进一步理解,若计划介绍特定数量的权利要求内容,将在权利要求内明确表示,并且,在没有这类内容时将不显示。例如,为帮助理解,下面权利要求可能包含短语“至少一个”和“一个或多个”,以介绍权利要求内容。然而,这些短语的使用不应理解为暗示使用不定冠词“a”或“an”介绍权利要求内容,而限制了任何特定的权利要求。甚至当相同的权利要求包括介绍性短语“一个或多个”或“至少有一个”,不定冠词,例如“a”或“an”,则应被解释为表示至少一个或者更多,对于用于介绍权利要求的明确描述的使用而言,同样成立。此外,即使明确引用特定数量的介绍性内容,本领域通常知识者可以认识到,这样的内容应被解释为表示所引用的数量,例如,没有其他修改的“两个引用”,意味着至少两个引用,或两个或两个以上的引用。此外,在使用类似于“a、b和c中的至少一个”的表述的情况下,通常如此表述是为了本领域通常知识者可以理解该表述,例如,“系统包括a、b和c中的至少一个”将包括但不限于单独具有a的系统,单独具有b的系统,单独具有c的系统,具有a和b的系统,具有a和c的系统,具有b和c的系统,和/或具有a、b和c的系统,等。本领域通常知识者进一步可理解,无论在说明书中、权利要求中或者附图中,由两个或两个以上的替代术语所表现的任何分隔的单词和/或短语应理解为,包括这些术语中的一个,其中一个,或者这两个术语的可能性。例如,“a或b”应理解为,“a”,或者“b”,或者“a和b”的可能性。[0102]从前述可知,为了说明目的,此处已描述了各种实施方案,并且在不偏离本发明的范围和精神的情况下,可以进行各种变形。因此,此处所公开的各种实施方式不用于限制,专利申请范围表示真实的范围和精神。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1