用于视频译码的改进双向光流的制作方法

文档序号:14394923阅读:172来源:国知局

本申请案请求2015年9月28日申请的美国临时申请案第62/233,846号的权利,所述美国临时申请案的全部内容特此以引用的方式并入。

本发明涉及视频译码。



背景技术:

数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏主控台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电传会议装置、视频流式发射装置,及其类似者。数字视频装置实施视频译码技术,诸如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4、part10、先进视频译码(avc)、itu-th.265/高效率视频译码(hevc)定义的标准及这些标准的扩展中所描述的视频译码技术。视频装置可通过实施这些视频译码技术来更有效地发射、接收、编码、解码及/或存储数字视频信息。

视频译码技术包含空间(图片内)预测及/或时间(图片间)预测以缩减或移除视频序列中所固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频帧或视频帧的部分)分割成视频块,其也可被称作树块、译码单元(cu)及/或译码节点。图片的经帧内译码(i)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测予以编码。图片的经帧间译码(p或b)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测,或关于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。

空间或时间预测会得到用于待译码块的预测性块。残余数据表示原始待译码块与预测性块之间的像素差。根据指向形成预测性块的参考样本块的运动向量及指示经译码块与预测性块之间的差的残余数据来编码经帧间译码块。根据帧内译码模式及残余数据来编码经帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而得到残余变换系数,接着可量化残余变换系数。可扫描最初以二维阵列而布置的经量化变换系数以便产生变换系数的一维向量,且可应用熵译码以实现甚至更多的压缩。



技术实现要素:

一般来说,本发明描述用于译码(例如,编码或解码)视频数据的技术。更特定来说,本发明描述对双向光流(bio)处理技术的各种改进。确切地说,本发明描述将使用bio来预测从在相同方向上出现的参考图片(例如,具有在当前图片之前或在当前图片之后的显示次序值的两个参考图片)双向地预测的块的技术。举例来说,视频译码器可确定涉及参考图片中的参考块的运动向量是否与当前图片与参考图片之间的对应时间距离成比例或几乎成比例。另外,或在替代方案中,视频译码器可在运动向量中的至少一者为零值及/或当前块出现于照明改变区域中时避免使用bio。

在一个实例中,一种解码视频数据的方法包含:解码第一参考图片及第二参考图片,所述第二参考图片不同于所述第一参考图片;将所述第一参考图片添加到用于当前图片的参考图片列表,其中所述第一参考图片及所述第二参考图片两者待显示于当前图片之前或两者待显示于所述当前图片之后;确定从所述当前图片的当前块到所述第一参考图片的第一参考块的第一运动向量(mv0);确定从所述当前块到所述第二参考图片的第二参考块的第二运动向量(mv1);确定从所述当前图片到所述第一参考图片的第一时间距离(td0);确定从所述当前图片到所述第二参考图片的第二时间距离(td1);及使用mv0、mv1、td0及td1而根据双向光流(bio)来解码所述当前块。

在另一实例中,一种编码视频数据的方法包含:解码第一参考图片及第二参考图片,所述第二参考图片不同于所述第一参考图片,其中所述第一参考图片及所述第二参考图片两者待显示于一当前图片之前或两者待显示于所述当前图片之后;确定从所述当前图片的当前块到所述第一参考图片的第一参考块的第一运动向量(mv0);确定从所述当前块到所述第二参考图片的第二参考块的第二运动向量(mv1);确定从所述当前图片到所述第一参考图片的第一时间距离(td0);确定从所述当前图片到所述第二参考图片的第二时间距离(td1);及使用mv0、mv1、td0及td1而根据双向光流(bio)来编码所述当前块。

在另一实例中,一种用于解码视频数据的装置包含:存储器,其经配置以存储视频数据;及一或多个处理器,其经配置以进行以下操作;解码第一参考图片及第二参考图片,所述第二参考图片不同于所述第一参考图片,其中所述第一参考图片及所述第二参考图片两者待显示于当前图片之前或两者待显示于所述当前图片之后;确定从所述当前图片的当前块到所述第一参考图片的第一参考块的第一运动向量(mv0);确定从所述当前块到所述第二参考图片的第二参考块的第二运动向量(mv1);确定从所述当前图片到所述第一参考图片的第一时间距离(td0);确定从所述当前图片到所述第二参考图片的第二时间距离(td1);及使用mv0、mv1、td0及td1而根据双向光流(bio)来解码所述当前块。

在另一实例中,一种用于解码视频数据的装置包含:用于解码一第一参考图片及一第二参考图片的装置,所述第二参考图片不同于所述第一参考图片,其中所述第一参考图片及所述第二参考图片两者待显示于当前图片之前或两者待显示于所述当前图片之后;用于确定从所述当前图片的当前块到所述第一参考图片的第一参考块的第一运动向量(mv0)的装置;用于确定从所述当前块到所述第二参考图片的第二参考块的第二运动向量(mv1)的装置;用于确定从所述当前图片到所述第一参考图片的第一时间距离(td0)的装置;用于确定从所述当前图片到所述第二参考图片的第二时间距离(td1)的装置;及用于使用mv0、mv1、td0及td1而根据双向光流(bio)来解码所述当前块的装置。

在另一实例中,一种计算机可读存储媒体在其上存储有指令,所述指令在经执行时致使用于解码视频数据的装置的处理器进行以下操作:解码第一参考图片及第二参考图片,所述第二参考图片不同于所述第一参考图片,其中所述第一参考图片及所述第二参考图片两者待显示于当前图片之前或两者待显示于所述当前图片之后;确定从所述当前图片的当前块到所述第一参考图片的第一参考块的第一运动向量(mv0);确定从所述当前块到所述第二参考图片的第二参考块的第二运动向量(mv1);确定从所述当前图片到所述第一参考图片的第一时间距离(td0);确定从所述当前图片到所述第二参考图片的第二时间距离(td1);及使用mv0、mv1、td0及td1而根据双向光流(bio)来解码所述当前块。

以下随附图式及实施方式中阐述一或多个实例的细节。其它特征、目标及优点将从实施方式及图式以及权利要求书显而易见。

附图说明

图1为说明可利用用于双向光流的技术的实例视频编码及解码系统的框图。

图2为将单侧运动估计(me)的实例说明为经执行用于运动补偿帧速率向上转换(mc-fruc)的块匹配算法(bma)的概念图。

图3为将双侧me的实例说明为经执行用于mc-fruc的bma的概念图。

图4为说明根据本发明的技术的对双向光流(bio)的实例改进的概念图。

图5为说明视频编码器的实例的框图。

图6为说明可实施用于双向光流的技术的视频解码器的实例的框图。

图7为说明根据本发明的技术的用于预测视频数据块的实例方法的流程图。

图8为说明根据本发明的技术的用于解码视频数据块的实例方法的流程图。

具体实施方式

一般来说,本发明的技术涉及双向光流(bio)的改进。可在运动补偿期间应用bio。一般来说,bio用以针对当前块在每像素基础上修改运动向量,使得使用应用于运动向量的对应偏移值来预测当前块的像素。可单独地或以任何组合方式应用本发明的各种技术以在预测视频数据块时(例如,在运动补偿期间)确定何时及是否执行bio。在一个实例中,本发明的技术包含当用以在共同预测方向上相对于参考图片的参考块来帧间预测当前图片的视频数据块的运动向量与当前图片与参考图片之间的时间距离成比例或几乎成比例时执行bio,及否则避免执行bio。另外或替代地,可仅当块不在照明改变区域中时才执行bio。此外,执行bio的技术通常包含计算用于块的梯度。根据本发明的技术,可根据当前图片与参考图片之间的时间距离来修改梯度。

本发明的技术可应用于任何现有视频编解码器,诸如符合itu-th.264/avc(先进视频译码)或高效率视频译码(hevc)(也被称作itu-th.265)的视频编解码器。h.264被描述于国际电信联盟的“用于一般视听服务的先进视频译码(advancedvideocodingforgenericaudiovisualservices)”,h系列:视听及多媒体系统(seriesh:audiovisualandmultimediasystems),视听服务的基础结构——移动视频的译码,h.264,2011年6月;且h.265被描述于国际电信联盟的“高效率视频译码(highefficiencyvideocoding)”,h系列:视听及多媒体系统(seriesh:audiovisualandmultimediasystems),视听服务的基础结构—移动视频的译码,2015年4月。本发明的技术也可作为有效译码工具而应用于任何其它先前或未来视频译码标准。

其它视频译码标准包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual,及h.264的可调式视频译码(svc)与多视图视频译码(mvc)扩展,以及hevc的扩展,诸如范围扩展、多视图扩展(mv-hevc)及可调式扩展(shvc)。在2015年4月,视频译码专家组(vceg)开始目标为下一代视频译码标准的新研究计划。参考软件被称为hm-kta。

下文描述与本发明的技术相关的某些视频译码技术,诸如h.264及hevc的视频译码技术。

以下论述涉及运动信息。一般来说,图片被划分成块,所述块中的每一者可被预测性地译码。当前块的预测通常可使用帧内预测技术(使用来自包含当前块的图片的数据)或帧间预测技术(使用来自相对于包含当前块的图片的经先前译码图片的数据)予以执行。帧间预测包含单向预测及双向预测两者。

对于每一经帧间预测块,运动信息集合可为可用的。运动信息集合可含有用于前向预测方向及后向预测方向的运动信息。此处,前向预测方向及后向预测方向为双向预测模式的两个预测方向,且术语“前向”及“后向”未必具有几何结构涵义。代替地,其通常对应于参考图片待显示于当前图片之前(“后向”)或之后(“前向”)。在一些实例中,“前向”预测方向及“后向”预测方向可对应于当前图片的参考图片列表0(refpiclist0)及参考图片列表1(refpiclist1)。当仅一个参考图片列表可用于图片或切片时,仅refpiclist0是可用的,且切片的每一块的运动信息始终是指refpiclist0的图片(例如,为前向)。

在一些状况下,运动向量连同其参考索引一起用于解码过程中。具有关联参考索引的此运动向量被表示为单预测性运动信息集合。

对于每一预测方向,运动信息含有参考索引及运动向量。在一些状况下,出于简单起见,可以假设运动向量自身具有关联参考索引的方式涉及所述运动向量。参考索引可用以识别当前参考图片列表(refpiclist0或refpiclist1)中的参考图片。运动向量具有水平(x)分量及垂直(y)分量。一般来说,水平分量指示参考图片内相对于当前图片中的当前块的位置的水平位移,其为定位参考块的x坐标所需要;而垂直分量指示参考图片内相对于当前块的位置的垂直位移,其为定位参考块的y坐标所需要。

图片次序计数(poc)值广泛地用于视频译码标准中以识别图片的显示次序。尽管存在一个经译码视频序列内的两个图片可具有相同poc值的状况,但此通常不会发生于经译码视频序列内。因此,图片的poc值通常是唯一的,且因此可唯一地识别对应图片。当位流中存在多个经译码视频序列时,具有相同poc值的图片可彼此在解码次序方面较接近。图片的poc值通常用于参考图片列表构建、如hevc中的参考图片集合导出,及运动向量缩放。

以下各者描述被称作帧速率向上转换(fruc)的过程:h.liu、r.xiong、d.zhao、s.ma及w.gao的“通过运动补偿内插的自适应融合的多假设贝叶斯帧率向上转换(multiplehypothesesbayesianframerateup-conversionbyadaptivefusionofmotion-compensatedinterpolations)”,关于视频技术的电路及系统的ieee会刊,第22卷,第8号,2012年8月;w.h.lee、k.choi、j.b.ra的“基于变分图像融合的帧率向上转换(framerateupconversionbasedonvariationalimagefusion)”,关于图像处理的ieee会刊,第23卷,第1号,2014年1月;及u.s.kim及m.h.sunwoo的“具有低计算复杂度的新帧率向上转换算法(newframerateup-conversionalgorithmswithlowcomputationalcomplexity)”,关于视频技术的电路及系统的ieee会刊,第24卷,第3号,2014年3月。fruc技术可用以基于低帧速率视频来产生高帧速率视频。fruc已广泛地用于显示器工业中。

fruc算法可被划分成两种类型。可执行一种类型的方法以通过简单帧重复或平均化来内插中间帧。然而,此方法会在含有大量运动的图片中提供不适当的结果。被称为运动补偿fruc(mc-fruc)的另一类型的方法在其产生中间帧时考虑物件移动,且包含两个步骤:运动估计(me),及运动补偿内插(mci)。视频译码装置执行me以产生运动向量(mv),其使用向量来表示物件运动,而视频译码装置使用mv来执行mci以产生(例如,内插)中间帧。

块匹配算法(bma)广泛地用于mc-fruc中的me,因为其实施简单。应用bma的视频译码装置将图像划分成块且检测那些块的移动。两种种类的me主要用于bma:单侧me,及双侧me。下文更详细地描述两种类型的me的实例。

以下各者提出基于帧速率向上转换(fruc)方法的译码方法:li等人的“基于帧率向上转换的视频译码工具(videocodingtoolbasedonframe-rateup-conversion)”,2015年3月27日申请的美国临时申请案第62/139,572号;及li等人的“基于帧率向上转换的视频译码工具(videocodingtoolbasedonframe-rateup-conversion)”,2015年6月19日申请的美国临时申请案第62/182,367号。所述方法相当有效且用至hm-kta-2.0软件中。

以下各者描述被称为双向光流(bio)的方法:e.alshina、a.alshin、j.-h.min、k.choi、a.saxena、m.budagavi的“用于下一代视频译码的已知工具性能调查(knowntoolsperformanceinvestigationfornextgenerationvideocoding)”,波兰华沙,itu-电信标准化部门,studygroup16问题6,视频译码专家组(vceg),vceg-az05,2015年6月(在下文中,“alshina1”);及a.alshina、e.alshina、t.lee的“用于改进运动补偿的双向光流(bi-directionalopticalflowforimprovingmotioncompensation)”,日本名古屋,图片译码研讨会(pcs),2010年(在下文中,“alshina2”)。bio是基于像素级光流。根据alshina1及alshina2,bio仅应用于具有前向预测及后向预测两者的块。下文概述如alshina1及alshina2中所描述的bio:

在时间t给出像素值it的情况下,其一阶泰勒展开式(taylorexpansion)为

it0在it的运动轨迹上。即,在公式中考虑从it0到it的运动。

在光流的假设下:

使(梯度),且方程式(1)变为

在将视为移动速度的情况下,可使用vx0及vy0以表示

因此,方程式(2)变为

it=it0-gx0·vx0·(t-t0)-gy0·vy0·(t-t0)(3)

假设在t0具有前向参考且在t1具有后向参考,且

t0-t=t-t1=δt=1

则具有

it=it0-gx0·vx0·(t-t0)-gy0·vy0·(t-t0)=it0+gx0·vx0+gy0·vy0

it=it1-gx1·vx1·(t-t1)-gy1·vy1·(t-t1)=it1-gx1·vx1-gy1·vy1

由于运动是沿着轨迹,所以进一步假设vx0=vx1=vx且vy0=vy1=vy。因此,(4)变为

其中δgx=gx0-gx1、δgy=gy0-gy1可基于经重新建构参考予以计算。由于为规则双向预测,故出于方便起见而在下文中将称为bio偏移。

vx及vy通过最小化以下失真而在编码器及解码器两者处导出:

在导出vx及vy的情况下,运用(5)来计算块的最终预测。出于方便起见而将vx及vy称为“bio运动”。

一般来说,视频译码器在运动补偿期间执行bio。即,在视频译码器确定用于当前块的运动向量之后,视频译码器使用关于运动向量的运动补偿来产生用于当前块的经预测块。一般来说,运动向量识别参考图片中参考块相对于当前块的位置。当执行bio时,视频译码器针对当前块在每像素基础上修改运动向量。即,根据bio,视频译码器确定对用于当前块的运动向量的每像素修改,且构建参考块使得参考块包含由运动向量识别的参考像素及用于当前块的对应像素的每像素修改,而非检索参考块的每一像素作为块单元。因此,bio可用以产生用于当前块的较准确的参考块。

本发明描述可根据(例如)alshina1及alshina2来改进与bio相关的技术的技术。举例来说,本发明描述可进一步改进视频编解码器的译码效率(例如,与bio的性能相关)的技术。举例来说,根据alshina1及alshina2,bio可仅应用于具有前向预测及后向预测两者的块。另外,bio可在存在照明改变时导致损失。此外,bio可不稳定,尤其是对于有噪声的序列。本发明的技术可克服这些问题且改进bio的性能。

图1为说明可利用用于双向光流的技术的实例视频编码及解码系统10的框图。如图1所展示,系统10包含源装置12,源装置12提供将在稍后时间由目的地装置14解码的经编码视频数据。确切地说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含台式计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、诸如所谓的“智能”电话的电话手机、所谓的“智能”板、电视、相机、显示装置、数字媒体播放器、视频游戏主控台、视频流式发射装置,或其类似者。在一些状况下,源装置12及目的地装置14可经装备用于无线通信。

目的地装置14可经由计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,计算机可读媒体16可包括通信媒体以使源装置12能够实时地将经编码视频数据直接发射到目的地装置14。经编码视频数据可根据通信标准(诸如无线通信协议)予以调制,且被发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,诸如一射频(rf)频谱或一或多个物理发射线。通信媒体可形成分组式网络(诸如局域网、广域网,或全球网,诸如互联网)的部分。通信媒体可包含路由器、交换器、基站,或可有用于促进从源装置12到目的地装置14的通信的任何其它装备。

在一些实例中,可将经编码数据从输出接口22输出到存储装置。相似地,可由输入接口从存储装置存取经编码数据。存储装置可包含多种分散式或本地存取数据存储媒体中的任一者,诸如硬盘驱动器、蓝光(blu-ray)光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适数字存储媒体。在一另外实例中,存储装置可对应于文件服务器或可存储由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式发射或下载而从存储装置存取经存储视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、ftp服务器、网络附接存储(nas)装置,或本地磁盘驱动器。目的地装置14可经由任何标准数据连接(包含互联网连接)来存取经编码视频数据。此数据连接可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、缆线调制解调器等等)或此两者的组合。来自存储装置的经编码视频数据的发射可为流式发射、下载发射,或其组合。

本发明的技术未必限于无线应用或设定。所述技术可应用于视频译码以支持多种多媒体应用中的任一者,诸如空中电视广播、有线电视发射、卫星电视发射、互联网流式视频发射(诸如http动态自适应流式发射(dash))、经编码到数据存储媒体上的数字视频、存储于数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射以支持诸如视频流式发射、视频播放、视频广播及/或视频电话的应用。

在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。目的地装置14包含输入接口28、视频解码器30及显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于双向光流的技术。在其它实例中,源装置及目的地装置可包含其它组件或布置。举例来说,源装置12可从外部视频源18(诸如外部相机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而非包含集成式显示装置。

图1的所说明系统10仅仅为一个实例。用于双向光流的技术可由任何数字视频编码及/或解码装置执行。尽管本发明的技术通常由视频编码装置执行,但所述技术也可由视频编码器/解码器(通常被称作“编解码器”)执行。此外,本发明的技术也可由视频预处理器执行。源装置12及目的地装置14仅仅为这些译码装置的实例,其中源装置12产生经译码视频数据以供发射到目的地装置14。在一些实例中,装置12、14可以实质上对称方式而操作,使得装置12、14中的每一者包含视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射,例如,用于视频流式发射、视频播放、视频广播,或视频电话。

源装置12的视频源18可包含视频捕捉装置,诸如视频相机、含有经先前捕捉视频的视频档案,及/或用以从视频内容提供者接收视频的视频馈送接口。作为一另外替代方案,视频源18可产生基于计算机图形的数据作为源视频,或实况视频、经存档视频与经计算机产生视频的组合。在一些状况下,若视频源18为视频相机,则源装置12及目的地装置14可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术可大体上适用于视频译码,且可适用于无线及/或有线应用。在每一状况下,经捕捉、经预捕捉或经计算机产生视频可由视频编码器20编码。经编码视频信息可接着由输出接口22输出到计算机可读媒体16上。

计算机可读媒体16可包含:暂态媒体,诸如无线广播或有线网络发射;或存储媒体(即,非暂时性存储媒体),诸如硬盘、闪存驱动器、紧凑光盘、数字视频光盘、蓝光光盘,或其它计算机可读媒体。在一些实例中,网络服务器(图中未展示)可从源装置12接收经编码视频数据,且(例如)经由网络发射将经编码视频数据提供到目的地装置14。相似地,媒体生产设施(诸如光盘冲压设施)的计算装置可从源装置12接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体16可被理解为包含各种形式的一或多个计算机可读媒体。

目的地装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息,所述语法信息也供视频解码器30使用,其包含描述块及其它经译码单元(例如,gop)的特性及/或处理的语法元素。显示装置32将经解码视频数据显示给用户,且可包括多种显示装置中的任一者,诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器,或另一类型的显示装置。

视频编码器20及视频解码器30可根据视频译码标准(诸如高效率视频译码(hevc)标准,也被称作itu-th.265)而操作。替代地,视频编码器20及视频解码器30可根据其它专属或工业标准(诸如itu-th.264标准,被替代地称作mpeg-4、part10、先进视频译码(avc))或这些标准的扩展而操作。然而,本发明的技术并不限于任何特定译码标准。视频译码标准的其它实例包含mpeg-2及itu-th.263。尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当多路复用器-多路分用器(mux-demux)单元或其它硬件及软件,以处置共同数据流或单独数据流中的音频及视频两者的编码。在适用的情况下,多路复用器-多路分用器单元可符合ituh.223多路复用器协议,或诸如用户数据电报协议(udp)的其它协议。

一般来说,根据itu-th.265,视频帧或图片可被划分成包含明度样本及色度样本两者的树块或最大译码单元(lcu)的序列。位流内的语法数据可定义用于lcu的大小,lcu在像素的数目方面为最大译码单元。切片包含按译码次序的数个连续树块。视频帧或图片可被分割成一或多个切片。每一树块可根据四叉树(quadtree)而被分裂成译码单元(cu)。一般来说,四叉树数据结构包含每cu一个节点,其中根节点对应于树块。若cu被分裂成四个子cu,则对应于cu的节点包含四个叶节点,所述四个叶节点中的每一者对应于所述子cu中的一者。

四叉树数据结构中的每一节点可提供用于对应cu的语法数据。举例来说,四叉树中的节点可包含分裂旗标,其指示对应于所述节点的cu是否被分裂成子cu。用于cu的语法元素可被递归地定义,且可取决于cu是否被分裂成子cu。若cu未被进一步分裂,则其被称作叶cu。在本发明中,即使不存在原始叶cu的明确分裂,叶cu的四个子cu也将被称作叶cu。举例来说,若处于16×16大小的cu未被进一步分裂,则四个8×8子cu也将被称作叶cu,但16×16cu从未被分裂。

除了cu不具有大小区别以外,cu具有与h.264标准的宏块相似的目的。举例来说,树块可被分裂成四个子节点(也被称作子cu),且每一子节点又可为父节点且被分裂成另四个子节点。被称作四叉树的叶节点的最终的未被分裂的子节点包括译码节点,也被称作叶cu。与经译码位流相关联的语法数据可定义树块可被分裂的最大次数(被称作最大cu深度),且也可定义译码节点的最小大小。因此,位流也可定义最小译码单元(scu)。本发明使用术语“块”以在hevc的上下文中是指cu、预测单元(pu)或变换单元(tu)中的任一者,或在其它标准(例如,h.264/avc中的其宏块及子块)的上下文中是指相似数据结构。

cu包含译码节点,且可包含与译码节点相关联的一或多个预测单元(pu)及/或变换单元(tu)。cu的大小对应于译码节点的大小,且为大体上正方形形状。cu的大小的范围可为8×8像素直到具有最大大小(例如,64×64像素或更大像素)的树块的大小。每一cu可含有一或多个pu及/或一或多个tu。与cu相关联的语法数据可描述(例如)将cu分割成子cu、分割区或一或多个pu。分割模式可在cu被跳过或直接模式编码、帧内预测模式编码或帧间预测模式编码之间不同。pu可被分割为非正方形形状。与cu相关联的语法数据也可描述(例如)根据四叉树将cu分割成一或多个tu。tu可为正方形或非正方形(例如,矩形)形状。

hevc标准允许根据tu的变换,所述变换对于不同cu可不同。tu通常是基于针对经分割lcu所定义的给定cu内的pu的大小而定大小,但可并非始终为此状况。tu的大小通常相同于或小于pu的大小。在一些实例中,可使用被称为“残余四叉树”(rqt)的四叉树结构将对应于cu的残余样本再分成较小单元。rqt的叶节点可被称作变换单元(tu)。可变换与tu相关联的像素差值以产生可被量化的变换系数。

叶cu可包含一或多个pu。一般来说,pu表示对应于对应cu的全部或部分的空间区,且可包含用于检索及/或产生用于pu的参考样本的数据。此外,pu包含与预测相关的数据。举例来说,当pu被帧内模式编码时,用于pu的数据可包含于残余四叉树(rqt)中,所述rqt可包含描述用于对应于pu的tu的帧内预测模式的数据。rqt也可被称作变换树。在一些实例中,可在叶cu语法而非rqt中用信号表示帧内预测模式。作为另一实例,当pu被帧间模式编码时,pu可包含用于定义用于pu的运动信息(诸如一或多个运动向量)的数据。定义用于pu的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、用于运动向量的解析度(例如,四分之一像素精确度或八分之一像素精确度)、运动向量所指向的参考图片,及/或用于运动向量的参考图片列表(例如,列表0或列表1)。

叶cu也可包含一或多个变换单元(tu)。可使用rqt(也被称作tu四叉树结构)来指定变换单元,如上文所论述。举例来说,分裂旗标可指示叶cu是否被分裂成四个变换单元。接着,可将每一变换单元进一步分裂成另外子tu。当tu未被进一步分裂时,其可被称作叶tu。通常,对于帧内译码,属于叶cu的所有叶tu共用相同帧内预测模式。即,通常应用相同帧内预测模式以计算用于叶cu的所有tu的经预测值。对于帧内译码,视频编码器可使用帧内预测模式将用于每一叶tu的残余值计算为对应于tu的cu的部分与原始块之间的差。tu未必限于pu的大小。因此,tu可大于或小于pu。对于帧内译码,pu可与用于同一cu的对应叶tu共置。在一些实例中,叶tu的最大大小可对应于对应叶cu的大小。

此外,叶cu的tu也可与相应四叉树数据结构(被称作残余四叉树(rqt))相关联。即,叶cu可包含指示叶cu如何被分割成tu的四叉树。tu四叉树的根节点通常对应于叶cu,而cu四叉树的根节点通常对应于树块(或lcu)。未被分裂的rqt的tu被称作叶tu。一般来说,除非另有提到,否则本发明分别使用术语cu及tu以是指叶cu及叶tu。

视频序列通常包含一系列视频帧或图片。图片群组(gop)通常包括所述视频图片中的一系列一或多者。gop可包含在gop的标头中、在图片中的一或多者的标头中或在别处的语法数据,所述语法数据描述包含于gop中的图片的数目。图片的每一切片可包含描述用于相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作,以便编码视频数据。视频块可对应于cu内的译码节点。视频块可具有固定或变化的大小,且可在大小方面根据指定译码标准而不同。

作为一实例,可针对各种大小的pu执行预测。假设特定cu的大小为2n×2n,则可对2n×2n或n×n的pu大小执行帧内预测,且可对2n×2n、2n×n、n×2n或n×n的对称pu大小执行帧间预测。也可针对2n×nu、2n×nd、nl×2n及nr×2n的pu大小执行用于帧间预测的不对称分割。在不对称分割中,cu的一个方向未被分割,而另一方向被分割成25%及75%。对应于25%分割区的cu的部分通过“n”后面接着“向上(up)”、“向下(down)”、“左(left)”或“右(right)”的指示予以指示。因此,举例来说,“2n×nu”是指经水平地分割为在顶部上具有2n×0.5npu及在底部上具有2n×1.5npu的2n×2ncu。

在本发明中,“n×n”与“n乘n”可被可互换地使用以是指视频块在垂直维度及水平维度方面的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16)且在水平方向上具有16个像素(x=16)。同样地,n×n块通常在垂直方向上具有n个像素且在水平方向上具有n个像素,其中n表示非负整数值。块中的像素可以行及列而布置。此外,块未必需要在水平方向上与在垂直方向上具有同相同数目个像素。举例来说,块可包括n×m个像素,其中m未必等于n。

在使用cu的pu的帧内预测性或帧间预测性译码之后,视频编码器20可计算用于cu的tu的残余数据。pu可包括描述在空间域(也被称作像素域)中产生预测性像素数据的方法或模式的语法数据,且tu可包括在将变换(例如,离散余弦变换(dct)、整数变换、小波变换或概念上相似变换)应用于残余视频数据之后的变换域中的系数。残余数据可对应于未经编码图片的像素之间的像素差及对应于pu或cu分割区的预测值。视频编码器20可形成tu以包含表示用于cu的残余数据的经量化变换系数。即,视频编码器20可计算残余数据(呈残余块的形式),变换残余块以产生变换系数块,且接着量化变换系数以形成经量化变换系数。视频编码器20可形成包含经量化变换系数的tu,以及其它语法信息(例如,用于tu的分裂信息)。

如上文所提到,在进行任何变换以产生变换系数之后,视频编码器20可执行变换系数的量化。量化通常是指量化变换系数以可能地缩减用以表示变换系数的数据的量从而提供进一步压缩的过程。量化过程可缩减与所述系数中的一些或全部相关联的位深度。举例来说,可在量化期间将n位值向下取整到m位值,其中n大于m。

在量化之后,视频编码器可扫描变换系数,从而从包含经量化变换系数的二维矩阵产生一维向量。所述扫描可经设计以将较高能量(且因此,较低频率)系数置放于阵列的前部处,且将较低能量(且因此,较高频率)系数置放于阵列的后部处。在一些实例中,视频编码器20可利用预定义扫描次序以扫描经量化变换系数以产生可被熵编码的序列化向量。在其它实例中,视频编码器20可执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可(例如)根据上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、机率区间分割熵(pipe)译码或另一熵编码方法来熵编码一维向量。视频编码器20也可熵编码与经编码视频数据相关联的语法元素以供视频解码器30用来解码所述视频数据。

为了执行cabac,视频编码器20可将上下文模型内的上下文指派到待发射符号。所述上下文可关于(例如)所述符号的相邻值是否为非零。为了执行cavlc,视频编码器20可选择用于待发射符号的可变长度码。可构建vlc中的码字,使得相对较短码对应于较可能的符号,而较长码对应于较不可能的符号。以此方式,相对于(例如)针对每一待发射符号使用相等长度的码字,使用vlc可达成位节省。机率确定可基于经指派到符号的上下文。

一般来说,视频解码器30执行与由视频编码器20执行的过程实质上相似但互逆的过程以解码经编码数据。举例来说,视频解码器30反量化及反变换经接收tu的系数以再现残余块。视频解码器30使用经用信号表示的预测模式(帧内预测或帧间预测)以形成经预测块。接着,视频解码器30组合经预测块与残余块(在逐像素基础上)以再现原始块。可执行额外处理,诸如执行解块过程以缩减沿着块边界的视觉假影。此外,视频解码器30可以与视频编码器20的cabac编码过程实质上相似但互逆的方式使用cabac来解码语法元素。

视频编码器20可(例如)在帧标头、块标头、切片标头或gop标头中进一步将语法数据(诸如基于块的语法数据、基于帧的语法数据,及基于gop的语法数据)发送到视频解码器30。gop语法数据可描述相应gop中的帧的数目,且帧语法数据可指示用以编码对应帧的编码/预测模式。

根据本发明的技术,视频编码器20及/或视频解码器30可进一步在如下文更详细地所论述的运动补偿期间执行双向光流(bio)技术。一般来说,视频编码器20及/或视频解码器30可将bio应用于具有在同一参考图片列表中的两个不同参考图片(例如,在列表0(refpiclist0)或列表1(refpiclist1)中的两个参考图片)的块。另外或在替代方案中,视频编码器20及/或视频解码器30可在针对照明改变区域中的块所执行的bio期间应用特殊过程。另外或在替代方案中,视频编码器20及/或视频解码器30可根据某些限定而配置以避免原本可在bio期间由噪声造成的负面影响。

视频编码器20及视频解码器30各自可在适用时被实施为多种合适编码器或解码器电路系统中的任一者,诸如一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑电路系统、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,所述一或多个编码器或解码器中的任一者可被集成为组合式视频编码器/解码器(编解码器)的部分。包含视频编码器20及/或视频解码器30的装置可包括集成电路、微处理器,及/或无线通信装置,例如蜂窝电话。

图2为将单侧运动估计(me)的实例说明为经执行用于运动补偿帧速率向上转换(mc-fruc)的块匹配算法(bma)的概念图。一般来说,视频译码器(诸如视频编码器20或视频解码器30)通过从用于当前帧100的当前块106的参考帧102搜索最佳匹配块(例如,参考块108)来执行单侧me以获得运动向量(mv),诸如mv112。接着,视频译码器在经内插帧104中沿着运动向量112的运动轨迹内插经内插块110。即,在图2的实例中,运动向量112穿过当前块106、参考块108及经内插块110的中点。

如图2所展示,在运动轨迹之后涉及三个帧中的三个块。尽管当前帧100中的当前块106属于经译码块,但参考帧102中的最佳匹配块(即,参考块108)无需完全地属于经译码块(即,最佳匹配块可能并不落于经译码块边界上,而是可重叠于此边界)。同样地,经内插帧104中的经内插块110无需完全地属于经译码块。因此,在经内插帧104中可出现所述块与未填充(孔)区域的经重叠区域。

为了处置重叠,简单fruc算法仅仅涉及平均化及覆写经重叠像素。此外,孔可由来自参考或当前帧的像素值覆盖。然而,这些算法可引起块假影及模糊。因此,可使用运动场分段、使用离散哈特莱(hartley)变换的连续外插以及图像修复(imageinpainting)以处置孔及重叠,而不增加块假影及模糊。

图3为将双侧me的实例说明为经执行用于mc-fruc的bma的概念图。双侧me为可用以避免由重叠及孔造成的问题的另一解决方案(在mc-fruc中)。执行双侧me的视频译码器(诸如视频编码器20及/或视频解码器30)使用当前帧120的当前块126与参考帧122的参考块128之间的时间对称性来获得穿过经内插帧124(其在当前帧120与参考帧122中间)的经内插块130的mv132、134。因此,视频译码器不会在经内插帧124中产生重叠及孔。由于假设当前块126为视频译码器以某一次序(例如,如在视频译码的状况下)处理的块,所以这些块的序列将覆盖整个中间图片而无重叠。举例来说,在视频译码的状况下,可以解码次序处理块。因此,若可在视频译码架构中考虑fruc想法,则此方法可更合适。

s.-f.tu、o.c.au、y.wu、e.luo及c.-h.yeun的“anovelframeworkforframerateupconversionbypredictivevariableblock-sizemotionestimatedopticalflow”(国际图像信号处理大会(cisp),2009年)描述用于帧速率向上转换的混合式块级运动估计及像素级光流方法。tu陈述出混合式场景好于任一个别方法。

图4为说明根据本发明的技术的对bio的实例改进的概念图。本发明的一个实例技术涉及将bio应用于如下块:所述块具有两者在时间上处于当前图片之前或两者在时间上处于当前图片之后(例如,在同一参考图片列表(诸如列表0或列表1)中)的两个不同参考图片,且具有与当前图片与参考图片之间的时间距离成比例或几乎成比例的两个运动向量。可如下定义“与时间距离成比例”及“与时间距离几乎成比例”:使td0及td1分别为当前图片与ref0及ref1之间的时间距离,诸如图4所展示。

可如以下公式(6)中所展示而定义“与时间距离成比例”:

|mv0x*td1-mv1x*td0|==0且|mv0y*td1-mv1y*td0|==0(6)

可如以下公式(7)中所展示而定义“与时间距离几乎成比例”:

|mv0x*td1-mv1x*td0|<=th且|mv0y*td1-mv1y*td0|<=th(7)

th表示阈值,其可为预定义的或在位流中被用信号表示。举例来说,th可在序列参数集(sps)、图片参数集(pps)、切片标头、块级语法数据或其类似者中被用信号表示。使“cur”表示当前图片,使“ref0”表示第一参考图片,且使“ref1”表示第二参考图片。mv0x及mv0y分别表示从cur的当前块到ref0的运动向量(mv0)的x分量及y分量。mv1x及mv1y分别表示从当前块到ref1的运动向量(mv1)的x分量及y分量。td0表示cur与ref0之间的时间距离(例如,用于cur的poc值与用于ref0的poc值之间的差)。td1表示cur与ref1之间的时间距离(例如,用于cur的poc值与用于ref1的poc值之间的差)。

此外,可修改以上公式(4),使得运用如上文所论述的td0来替换(t-t0)且运用如上文所论述的td1来替换(t-t1)。因此,可运用如下文所展示的公式(4')来替换以上公式(4):

it=it0-gx0·vx0·(t-t0)-gy0·vy0·(t-t0)=it0+gx0·vx0·td0+gy0·vy0·td0

it=it1-gx1·vx1·(t-t1)-gy1·vy1·(t-t1)=it1-gx1·vx1·td1-gy1·vy1·td1

确切地说,图4的实例说明包含当前块150的当前图片144。当前块150系使用运动向量154从参考图片142的参考块148且使用运动向量152从参考图片140的参考块146予以预测。参考图片140及参考图片142相对于当前图片144出现于相同时间方向上。即,在此实例中,参考图片140及参考图片142各自显示于当前图片144之前。在其它实例中,两个参考图片可出现于当前图片之后(即,显示于当前图片之后),然而本发明的技术仍可应用于这些实例中。此外,参考图片140与当前图片144相隔td1158的时间距离。td1158可等于用于当前图片144的图片次序计数(poc)值与用于参考图片140的poc值之间的差。相似地,参考图片142与当前图片144相隔td0156的时间距离。即,td0156可等于用于当前图片144的poc值与用于参考图片142的poc值之间的差。

根据本发明的技术,在图4的实例中,视频译码器(诸如视频编码器20或视频解码器30)可确定运动向量154、152是否分别与td0156及td1158成比例或几乎成比例。举例来说,视频译码器可使用运动向量152、154的x值及y值以及用于时间距离td0156及td1158的值来执行以上公式(6)及/或公式(7)。响应于确定运动向量154、152与td0156及td1158成比例(例如,使用公式(6))或与td0156及td1158几乎成比例(例如,使用公式(7)),视频译码器可在预测当前块150时执行bio。替代地,响应于确定运动向量154、152不与td0156及td1158成比例(例如,使用公式(6))或不与td0156及td1158几乎成比例(例如,使用公式(7)),视频译码器可在预测当前块150时避免执行bio。

图5为说明可实施用于双向光流的技术的视频编码器20的实例的框图。视频编码器20可执行视频切片内的视频块的帧内译码及帧间译码。帧内译码依赖于空间预测以缩减或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测以缩减或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(i模式)可指若干基于空间的译码模式中的任一者。帧间模式(诸如单向预测(p模式)或双向预测(b模式))可指若干基于时间的译码模式中的任一者。

如图5所展示,视频编码器20接收待编码视频帧内的当前视频块。在图5的实例中,视频编码器20包含模式选择单元40、参考图片存储器64(其也可被称作经解码图片缓冲器(dpb))、求和器50、变换处理单元52、量化单元54,及熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46,及分割单元48。出于视频块重新构建起见,视频编码器20也包含反量化单元58、反变换单元60,及求和器62。也可包含解块滤波器(图5中未展示)以滤波块边界以从经重新构建视频移除块效应假影。视需要,解块滤波器通常将滤波求和器62的输出。除了解块滤波器以外,也可使用额外滤波器(回路内或回路后)。出于简洁起见而未展示这些滤波器,但视需要,这些滤波器可滤波求和器50的输出(作为回路内滤波器)。

在编码过程期间,视频编码器20接收待译码视频帧或切片。可将帧或切片划分成多个视频块。运动估计单元42及运动补偿单元44执行经接收视频块相对于一或多个参考帧中的一或多个块的帧间预测性编码以提供时间预测。帧内预测单元46可替代地使用与待译码块相同的帧或切片中的一或多个相邻块的像素来帧内预测经接收视频块以提供空间预测。视频编码器20可执行多个译码遍次,例如,以选择用于每一视频数据块的适当译码模式。

此外,分割单元48可基于先前译码遍次中的先前分割方案的评估而将视频数据块分割成子块。举例来说,分割单元48可最初将帧或切片分割成lcu,且基于速率-失真分析(例如,速率-失真最佳化)而将所述lcu中的每一者分割成子cu。模式选择单元40可进一步产生指示将lcu分割成子cu的四叉树数据结构。四叉树的叶节点cu可包含一或多个pu及一或多个tu。

模式选择单元40可选择帧内预测模式或帧间预测模式中的一者(例如,基于错误结果),且将所得的经预测块提供到求和器50以产生残余数据且将所得的经预测块提供到求和器62以重新构建经编码块以用作参考帧。模式选择单元40也将语法元素(诸如运动向量、帧内模式指示符、分割区信息及其它此类语法信息)提供到熵编码单元56。

运动估计单元42与运动补偿单元44可高度地集成,但出于概念目的而被单独地说明。由运动估计单元42执行的运动估计为产生运动向量的过程,所述运动向量估计用于视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块的pu相对于参考图片(或其它经译码单元)内的预测性块相对于当前图片(或其它经译码单元)内正被译码的当前块的位移。预测性块为在像素差方面被发现为接近地匹配于待译码块的块,所述像素差可通过绝对差和(sad)、平方差和(ssd)或其它差度量予以确定。在一些实例中,视频编码器20可计算用于存储于参考图片存储器64中的参考图片的次整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分率像素位置的值。因此,运动估计单元42可执行关于全像素位置及分率像素位置的运动搜索且输出具有分率像素精确度的运动向量。

运动估计单元42通过比较pu的位置与参考图片的预测性块的位置来计算用于经帧间译码切片中的视频块的pu的运动向量。参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),所述列表中的每一者识别存储于参考图片存储器64中的一或多个参考图片。运动估计单元42将经计算运动向量发送到熵编码单元56及运动补偿单元44。

由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量来提取或产生预测性块。再次,在一些实例中,运动估计单元42与运动补偿单元44可功能上集成。在接收到用于当前视频块的pu的运动向量后,运动补偿单元44就可在参考图片列表中的一者中定位运动向量所指向的预测性块。求和器50通过自正被译码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值,如下文所论述。一般来说,运动估计单元42执行关于明度分量的运动估计,且运动补偿单元44针对色度分量及明度分量两者使用基于明度分量所计算的运动向量。模式选择单元40也可产生与视频块及视频切片相关联的语法元素以供视频解码器30用来解码视频切片的视频块。

此外,运动补偿单元44可经配置以执行本发明技术中的任一者或全部(单独地或以任何组合方式)。尽管关于运动补偿单元44予以论述,但应理解,模式选择单元40、运动估计单元42、分割单元48及/或熵编码单元56也可经配置以单独地或与运动补偿单元44组合地执行本发明的某些技术。在一个实例中,运动补偿单元44可经配置以执行上文关于图4所论述且如下文更详细地所论述的bio技术。

举例来说,运动补偿单元44可经配置以将bio应用于如下块:所述块具有两者在时间上处于当前图片之前(例如,两者在参考图片列表0中)或两者在时间上处于当前图片之后(例如,两者在参考图片列表1中)的两个不同参考图片,其中所述块具有与当前图片与参考图片之间的时间距离至少几乎成比例(例如,成比例或几乎成比例)的两个运动向量。

在一个实例中,运动补偿单元44可经配置为具有阈值(th),或可确定表示th的值且在视频位流中(例如,在sps、pps、切片标头或块级语法中)编码所述值。运动补偿单元44可接着执行公式(7)以确定用于当前图片的当前块的运动向量是否与到对应参考图片的时间距离几乎成比例。当用于当前块的运动向量与到用于当前块的对应参考图片的时间距离几乎成比例时,运动补偿单元44可将上文所论述的bio技术应用于所述块。确切地说,运动补偿单元44可在形成用于当前块的经预测块时应用bio技术,运动补偿单元44将接着将所述经预测块提供到(例如)求和器50及求和器62。

作为另一实例(其可为除了上文使用公式(7)所论述的实例以外的实例或为上文使用公式(7)所论述的实例的替代方案),运动补偿单元44可经配置以执行公式(6)以确定用于当前块的运动向量是否与到对应参考图片的时间距离成比例。当用于当前块的运动向量与到用于当前块的对应参考图片的时间距离成比例时,运动补偿单元44可将上文所论述的bio技术应用于所述块。

在一些实例中,运动补偿单元44可受到约束,使得对于上文所论述的技术中的任一者(与公式(6)及公式(7)相关),仅当两个运动向量为非零时才执行所述技术。即,运动补偿单元44可确定两个运动向量(例如,从运动估计单元42接收的运动向量)是否为非零。若运动向量两者为非零,则运动补偿单元44可在预测块时继续执行上文所论述的bio技术。然而,若运动向量中的至少一者为零值,则运动补偿单元44可在预测块时避免执行bio技术。除了如上文所论述而确定运动向量是否与时间距离成比例或几乎成比例以外或在所述确定的替代方案中,运动补偿单元44也可执行此确定。

在一些实例中,运动补偿单元44可在计算梯度gx及gy时进一步考虑时间距离。确切地说,运动补偿单元44可从经正常计算梯度gx及gy计算经修改梯度gx′及gy′,其中这些修改是基于相应时间距离。举例来说,运动补偿单元44可将经修改梯度gx′及gy′计算为真梯度gx及gy与时间距离td0及td1的乘积,诸如gx′=gx·td0及gy′=gy·td1。运动补偿单元44也可将经修改梯度计算为真梯度与关于参考图片与当前图片之间的时间距离的因子的乘积。

另外或替代地,运动补偿单元44(或模式选择单元40)可确定块是否在照明改变区域中,例如,其中视频编码器20针对照明补偿旗标(ic_flag)设定为“真”的值。运动补偿单元44可将用于bio的特殊过程应用于照明改变区域中的块。在一些实例中,当一块在照明补偿改变区域中时,运动补偿单元44不会将bio应用于所述块。替代地,运动补偿单元44可在照明补偿之后应用bio,且此外,也可在计算用于bio的块梯度时应用照明补偿。替代地,若未启用照明补偿译码工具,则可针对一块用信号表示另一旗标以指示bio是否应用于所述块。

另外或替代地,运动补偿单元44可关于bio而受到限定,例如,以避免由信号噪声造成的负面影响。举例来说,运动补偿单元44可经配置为具有以下限定中的任一者或两者。bio偏移(上文在表达式(5)下方所定义)的范围可受到限定。最大值及/或最小值可为预定义的或被确定且接着用信号表示(例如,在sps、pps、切片标头或块级语法中)。替代地,关于表达式(5)中的规则双向预测的最大值及最小值可为预定义的或被确定且接着用信号表示。另外或替代地,在bio过程期间所计算的梯度的范围可基于预定义值或被确定且接着用信号表示的值而受到限定。

另外或替代地,运动补偿单元44可首先评定作为bio过程的部分而导出的运动向量的可靠性。当用于像素或块的bio运动向量的可靠性低时,运动补偿单元44可避免加上bio偏移,或可在加上bio偏移时将较小权重应用于bio偏移。运动补偿单元44可通过分析一像素的bio运动与所述像素的相邻像素的bio运动的关系来导出用于所述像素的运动向量的可靠性。举例来说,当用于当前像素的bio运动与用于当前像素的相邻像素的bio运动之间的一或多个偏差大时,运动补偿单元44可确定用于当前像素的bio运动的可靠性低。另外或替代地,运动补偿单元44可通过分析一块内的像素的bio运动来导出所述块的可靠性。举例来说,当块内的bio运动的偏差大时,当前bio运动的可靠性可被认为低。另外或替代地,运动补偿单元44可基于分析像素样本值来导出bio运动的可靠性。举例来说,运动补偿单元44可估计噪声水平,且接着,当噪声水平高时确定bio运动的可靠性低。运动补偿单元44可将多种方法(其可包含上文所论述的方法中的任一者或全部)一起以任何组合方式应用以导出bio运动的可靠性。

响应于确定将bio应用于一块(根据上文所论述的技术中的任一者或全部,单独地或以任何组合方式),运动补偿单元44可应用上文所论述的技术(例如,关于以上公式(1)到公式(5))以根据bio来预测所述块。

作为如上文所描述的由运动估计单元42及运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可帧内预测当前块。确切地说,帧内预测单元46可确定待用以编码当前块的帧内预测模式。在一些实例中,帧内预测单元46可使用各种帧内预测模式来编码当前块(例如,在单独编码遍次期间),且帧内预测单元46(或在一些实例中,模式选择单元40)可从经测试模式选择待使用的适当帧内预测模式。

举例来说,帧内预测单元46可使用用于各种经测试帧内预测模式的速率-失真分析来计算速率-失真值,且在所述经测试模式当中选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析通常确定经编码块与原始未经编码块(其经编码以产生经编码块)之间的失真(或误差)量,以及用以产生经编码块的位速率(即,位的数目)。帧内预测单元46可从用于各种经编码块的失真及速率计算比率以确定哪一帧内预测模式展现用于所述块的最佳速率-失真值。

在选择用于一块的帧内预测模式之后,帧内预测单元46可将指示用于所述块的经选择帧内预测模式的信息提供到熵编码单元56。熵编码单元56可编码指示经选择帧内预测模式的信息。视频编码器20可在经发射位流中包含以下各者:配置数据,其可包含多个帧内预测模式索引表格及多个经修改帧内预测模式索引表格(也被称作码字映射表格);用于各种块的编码上下文的定义;及待用于所述上下文中的每一者的最可能帧内预测模式、帧内预测模式索引表格及经修改帧内预测模式索引表格的指示。

视频编码器20通过从正被译码的原始视频块减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示执行此减去运算的一或多个组件。变换处理单元52将变换(诸如离散余弦变换(dct)或概念上相似变换)应用于残余块,从而产生包括残余变换系数值的视频块。可使用小波变换、整数变换、子频带变换、离散正弦变换(dst)或其它类型的变换以代替dct。在任何状况下,变换处理单元52将变换应用于残余块,从而产生变换系数块。变换可将残余信息从像素值域转换到变换域,诸如频域。变换处理单元52可将所得变换系数发送到量化单元54。量化单元54量化变换系数以进一步缩减位速率。量化过程可缩减与所述系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。

在量化之后,熵编码单元56熵译码经量化变换系数。举例来说,熵编码单元56可执行上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、机率区间分割熵(pipe)译码或另一熵译码技术。在基于上下文的熵译码的状况下,上下文可基于相邻块。在由熵编码单元56进行熵译码之后,可将经编码位流发射到另一装置(例如,视频解码器30)或存档以供稍后发射或检索。

反量化单元58及反变换单元60分别应用反量化及反变换以在像素域中重新构建残余块。确切地说,求和器62将经重新构建残余块与由运动补偿单元44或帧内预测单元46产生的运动补偿预测块相加,以产生用于存储于参考图片存储器64中的经重新构建视频块。经重新构建视频块可由运动估计单元42及运动补偿单元44用作参考块以帧间译码后续视频帧中的块。

图6为说明可实施用于双向光流的技术的视频解码器30的实例的框图。在图6的实例中,视频解码器30包含熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、参考图片存储器82,及求和器80。在一些实例中,视频解码器30可执行与关于视频编码器20(图5)或视频编码器20'(图5b)所描述的编码遍次大体上互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动向量来产生预测数据,而帧内预测单元74可基于从熵解码单元70接收的帧内预测模式指示符来产生预测数据。

在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块及关联语法元素的经编码视频位流。视频解码器30的熵解码单元70熵解码位流以产生经量化系数、运动向量或帧内预测模式指示符及其它语法元素。熵解码单元70将运动向量及其它语法元素转递到运动补偿单元72。视频解码器30可在视频切片级及/或视频块级处接收语法元素。

当视频切片被译码为经帧内译码(i)切片时,帧内预测单元74可基于用信号表示帧内预测模式及来自当前帧或图片的经先前解码块的数据来产生用于当前视频切片的视频块的预测数据。当视频帧被译码为经帧间译码(即,b、p或gpb)切片时,运动补偿单元72基于从熵解码单元70接收的运动向量及其它语法元素来产生用于当前视频切片的视频块的预测性块。可从参考图片列表中的一者内的参考图片中的一者产生预测性块。视频解码器30可基于存储于参考图片存储器82中的参考图片而使用预设构建技术来构建参考帧列表:列表0及列表1。

运动补偿单元72通过剖析运动向量及其它语法元素来确定用于当前视频切片的视频块的预测信息,且使用所述预测信息以产生用于正被解码的当前视频块的预测性块。举例来说,运动补偿单元72使用经接收语法元素中的一些以确定用以译码视频切片的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,b切片、p切片,或gpb切片)、用于所述切片的参考图片列表中的一或多者的构建信息、用于所述切片的每一经帧间编码视频块的运动向量、用于所述切片的每一经帧间译码视频块的帧间预测状态,及用以解码当前视频切片中的视频块的其它信息。

运动补偿单元72也可针对子像素精确度而基于内插滤波器来执行内插。运动补偿单元72可使用如由视频编码器20在编码视频块期间所使用的内插滤波器以计算用于参考块的子整数像素的经内插值。在此状况下,运动补偿单元72可从经接收语法元素确定由视频编码器20使用的内插滤波器且使用所述内插滤波器以产生预测性块。

此外,运动补偿单元72可经配置以执行本发明技术中的任一者或全部(单独地或以任何组合方式)。举例来说,运动补偿单元72可经配置以执行上文关于图4所论述且如下文更详细地所论述的bio技术。

举例来说,运动补偿单元72可经配置以将bio应用于如下块:所述块具有两者在时间上处于当前图片之前(例如,两者在参考图片列表0中)或两者在时间上处于当前图片之后(例如,两者在参考图片列表1中)的两个不同参考图片,其中所述块具有与当前图片与参考图片之间的时间距离至少几乎成比例(例如,成比例或几乎成比例)的两个运动向量。

在一个实例中,运动补偿单元72可经配置为具有阈值(th),或可从位流(例如,在sps、pps、切片标头或块级语法中)解码表示th的值。运动补偿单元72可接着执行公式(7)以确定用于当前块的运动向量是否与到对应参考图片的时间距离几乎成比例。当用于当前块的运动向量与到用于当前块的对应参考图片的时间距离几乎成比例时,运动补偿单元72可将上文所论述的bio技术应用于所述块。确切地说,运动补偿单元72可在形成用于当前块的经预测块时应用bio技术,运动补偿单元44将接着将所述经预测块提供到(例如)求和器80。

作为另一实例,运动补偿单元72可经配置以执行公式(6)以确定用于当前块的运动向量是否与到对应参考图片的时间距离成比例。当用于当前块的运动向量与到用于当前块的对应参考图片的时间距离成比例时,运动补偿单元72可将上文所论述的bio技术应用于所述块。

在一些实例中,运动补偿单元72可受到约束,使得对于上文所论述的技术中的任一者(与公式(6)及公式(7)相关),仅当两个运动向量为非零时才执行所述技术。即,运动补偿单元72可确定由熵解码单元70解码的两个运动向量是否为非零。若运动向量两者为非零,则运动补偿单元72可在预测块时继续执行上文所论述的bio技术。然而,若运动向量中的至少一者为零值,则运动补偿单元72可在预测块时避免执行bio技术。除了如上文所论述而确定运动向量是否与时间距离成比例或几乎成比例以外或在所述确定的替代方案中,运动补偿单元72也可执行此确定。

在一些实例中,运动补偿单元72可在应用bio时进一步考虑时间距离。在公式(4)中,时间距离td0及td1被假设为相等,此并非始终为真。一种用以考量时间距离的特定方式为,运动补偿单元72可从经正常计算梯度gx及gy计算经修改梯度gx′及gy′,其中这些修改是基于相应时间距离。举例来说,运动补偿单元72可将经修改梯度gx′及gy计算为真梯度gx及gy与时间距离td0及td1的乘积,诸如gx′=gx·td0及gy′=gy·td1。确切地说,从以上方程序,可将td0计算为t0-t,而可将td1计算为t-t1。因此,可使用当前图片与参考图片之间的真时间距离,例如,如公式(4')中所展示,而非对于td0及td1两者假设δt等于1。运动补偿单元72也可将经修改梯度计算为真梯度与关于参考图片与当前图片之间的时间距离的因子的乘积。

另外或替代地,诸如当被指示为在照明改变区域中的块包含具有为真的值的照明补偿旗标(ic_flag)时,运动补偿单元72可将用于bio的特殊过程应用于所述块。在一些实例中,当一块在照明补偿改变区域中时,运动补偿单元72不会将bio应用于所述块。替代地,运动补偿单元72可在照明补偿之后应用bio,且此外,也可在计算用于bio的块梯度时应用照明补偿。

另外或替代地,运动补偿单元72可关于bio而受到限定,例如,以避免由信号噪声造成的负面影响。举例来说,运动补偿单元72可经配置为具有以下限定中的任一者或两者。bio偏移(上文在表达式(5)下方所定义)的范围可受到限定。最大值及/或最小值可为预定义的或用信号表示(例如,在sps、pps、切片标头或块级语法中)。替代地,关于表达式(5)中的规则双向预测的最大值及最小值可为预定义的或用信号表示。另外或替代地,在bio过程期间所计算的梯度的范围可基于预定义值或用信号表示的值而受到限定。

另外或替代地,运动补偿单元72可首先评定由bio导出的运动向量的可靠性。当用于像素或块的bio运动向量的可靠性低时,运动补偿单元72可避免加上bio偏移,或可在加上bio偏移时将较小权重应用于bio偏移。运动补偿单元72可通过分析一像素的bio运动与所述像素的相邻像素的bio运动的关系来导出用于所述像素的运动向量的可靠性。举例来说,在当前bio运动与相邻bio运动之间的偏差大时,当前bio运动的可靠性可被认为低。另外或替代地,运动补偿单元72可通过分析一块内的像素的bio运动来导出所述块的可靠性。举例来说,当块内的bio运动的偏差大时,当前bio运动的可靠性可被认为低。另外或替代地,运动补偿单元72可基于分析像素样本值来导出bio运动的可靠性。举例来说,可估计噪声水平,且接着,当噪声水平高时可将bio运动的可靠性认为低。可将多种方法(其可包含上文所论述的方法中的任一者或全部)一起以任何组合方式应用以导出bio运动的可靠性。

响应于确定将bio应用于一块(根据上文所论述的技术中的任一者或全部,单独地或以任何组合方式),运动补偿单元72可应用上文所论述的技术(例如,关于以上公式(1)到公式(5))以根据bio来预测所述块。

反量化单元76反量化(即,解量化)位流中所提供且由熵解码单元70解码的经量化变换系数。反量化过程可包含使用由视频解码器30针对视频切片中的每一视频块所计算的量化参数qpy以确定应被应用的量化程度且同样地确定应被应用的反量化程度。

反变换单元78将反变换(例如,反dct、反整数变换或概念上相似反变换过程)应用于变换系数,以便在像素域中产生残余块。

在运动补偿单元72基于运动向量及其它语法元素来产生用于当前视频块的预测性块之后,视频解码器30通过求和来自反变换单元78的残余块与由运动补偿单元72产生的对应预测性块来形成经解码视频块。求和器80表示执行此求和运算的一或多个组件。视需要,也可应用解块滤波器以滤波经解码块以便移除块效应假影。也可使用其它回路滤波器(在译码回路中或在译码回路之后)以使像素转变平滑,或以其它方式改进视频质量。接着将给定帧或图片中的经解码视频块存储于参考图片存储器82中,参考图片存储器82存储用于后续运动补偿的参考图片。参考图片存储器82也存储经解码视频以用于稍后呈现于显示装置(诸如图1的显示装置32)上。举例来说,参考图片存储器82可存储经解码图片。

图7为说明根据本发明的技术的用于预测视频数据块的实例方法的流程图。关于图1及5的视频编码器20来解释图7的方法。然而,应理解,在其它实例中,其它装置可经配置以执行图7的方法。

假设视频编码器20最初编码图片,且接着随后解码图片以用作存储于参考图片存储器64(图5)中的参考图片,但图7的实例中未说明这些步骤。视频编码器20接着接收视频数据块(170)。块可为(例如)视频数据的当前图片(或图片的切片)的译码单元(cu)的预测单元(pu)。视频编码器20可确定使用多种预测模式中的哪一者(诸如帧内预测或帧间预测)来预测块,且若确定帧间预测,则确定使用单向帧间预测或双向帧间预测。在图7的实例中,视频编码器20确定使用双向预测来预测块(172)。举例来说,视频编码器20(确切地说,图5的模式选择单元40)可计算用于各种可能预测模式(例如,一或多个帧内预测模式,及从存储于参考图片存储器64中的各种经解码参考图片的单向或双向预测)的速率-失真度量且确定双向预测得到用于块的最佳速率-失真度量。

视频编码器20(确切地说,图5的运动估计单元42)可根据双向预测来进一步计算用于块的运动向量(174)。这些运动向量可参考两者待显示于当前图片之前、两者待显示于当前图片之后或一者待显示于当前图片之前且另一者待显示于当前图片之后的参考图片。举例来说,参考图片可两者出现于参考图片列表0中,两者出现于参考图片列表1中,或一者可出现于参考图片列表0中且另一者可出现于参考图片列表1中。

在此实例中,视频编码器20确定用于块的运动向量是否指向于共同时间方向上(176)。即,视频编码器20确定运动向量是否参考两者待显示于当前图片之前或之后的参考图片,例如,参考图片是否出现于同一参考图片列表(诸如列表0或列表1)中。

若两个运动向量指向于共同时间方向上(176的“是”分支),则视频编码器20可进一步确定运动向量是否与当前图片与对应参考图片之间的时间距离至少几乎成比例(178)。时间距离可对应于用于当前图片及两个参考图片的图片次序计数(poc)值之间的差。“至少几乎成比例”通常是指与时间距离几乎成比例,或与时间距离成比例。视频编码器20可执行如上文所论述的公式(6)及/或公式(7)以确定运动向量是否与时间距离至少几乎成比例。

举例来说,视频编码器20可将用于当前图片的poc值与用于第一运动向量(mv0)所参考的第一参考图片的poc值之间的第一poc差确定为第一时间距离td0,且将用于当前图片的poc值与用于第二运动向量(mv1)所参考的第二参考图片的poc值之间的第二poc差确定为第二时间距离td0。mv0及mv1可包含相应x分量及y分量。举例来说,mv0可包含mv0x分量及mv0y分量,其中mv0x描述水平偏移且mv0y描述相对于当前图片中的块的位置的垂直偏移以确定供定位第一参考图片中的参考块的位置。相似地,mv1可包含mv1x分量及mv1y分量,其中mv1x描述水平偏移且mv1y描述相对于当前图片中的块的位置的垂直偏移以确定供定位第二参考图片中的参考块的位置。视频编码器20可接着使用这些值以执行公式(6)及/或公式(7)中的任一者或两者或其它相似公式,以确定运动向量是否与时间距离至少几乎成比例。

若运动向量与时间距离至少几乎成比例(178的“是”分支),则视频编码器20可进一步确定运动向量是否皆为非零(180)。即,视频编码器20可确定所述运动向量中的每一者的x分量或y分量中的至少一者是否具有大于零的绝对值。尽管运动向量是否为非零的确定(步骤180)被展示为与图7的实例中的运动向量是否与时间距离至少几乎成比例的确定(步骤178)分离的步骤,但应理解,在其它实例中,步骤178及步骤180可经执行为单一步骤。

若运动向量皆为非零(180的“是”分支),或若运动向量不指向于共同时间方向上(176的“否”分支),则视频编码器20也可确定块是否在照明改变区域中(182)。若块不在照明改变区域中(182的“否”分支),则视频编码器20可继续使用bio来预测块(184),例如,根据如上文所论述的公式(1)到公式(5)。替代地,当使用bio来预测块时,视频编码器20可根据时间距离td0及/或td1来修改梯度计算。举例来说,视频编码器20可从经正常计算梯度gx及gy计算经修改梯度gx′及gy′,诸如通过计算gx′=gx·td0及gy′=gy·td1。视频编码器20可接着使用gx′及gy′以代替公式(5)中的gx及gy。

另一方面,在此实例中,若运动向量指向于共同时间方向上,但不与时间距离至少几乎成比例(178的“否”分支),所述运动向量中的至少一者为零值(180的“否”分支),或块在照明改变区域中(182的“是”分支),则视频编码器20可使用标准双向预测而不使用bio来预测块(186)。应理解,在各种实例中,可以任何次序或并行地执行运动向量是否指向于共同时间方向上、运动向量是否皆为非零及块是否在照明改变区域中的确定,使得所述确定的次序不限于图7所展示的实例。

在任何状况下,在使用bio或不使用bio来预测块之后,视频编码器20可继续熵编码用于块的语法元素(188)。确切地说,视频编码器20可确定原始初始块与经预测块之间的逐像素差以形成残余块。视频编码器20可接着将残余块变换到频域以形成变换系数,接着量化变换系数。视频编码器20可接着熵编码经量化变换系数。视频编码器20可进一步熵编码其它语法元素,诸如使用双向预测来预测块的指示、运动向量(例如,使用合并模式或先进运动向量预测(amvp))、表示块是否在照明改变区域中的照明补偿旗标(ic_flag),及其类似者。

以此方式,图7的方法表示编码视频数据的方法的实例,所述方法包含:解码第一参考图片及第二参考图片,第二参考图片不同于第一参考图片,其中第一参考图片及第二参考图片两者待显示于当前图片之前或两者待显示于当前图片之后;确定从当前图片的当前块到第一参考图片的第一参考块的第一运动向量(mv0);确定从当前块到第二参考图片的第二参考块的第二运动向量(mv1);确定从当前图片到第一参考图片的第一时间距离(td0);确定从当前图片到第二参考图片的第二时间距离(td1);及使用mv0、mv1、td0及td1而根据双向光流(bio)来编码当前块。

图8为说明根据本发明的技术的解码视频数据块的实例方法的流程图。关于图1及6的视频解码器30来解释图8的方法。然而,应理解,在其它实例中,其它装置可经配置以执行图8的方法。

假设视频解码器30最初解码图片以用作用于当前图片的参考图片,其中参考图片存储于参考图片存储器82(图6)中,但图8的实例中未说明这些步骤。视频解码器30接着熵解码用于当前图片的当前块的语法元素(200)。举例来说,视频解码器30可熵解码指示预测模式(例如,帧内预测模式或帧间预测模式)的语法元素,及用于预测模式(诸如用于帧间预测)的对应语法元素、与合并模式或amvp相关的语法元素,以及待用以再现用于当前块的残余块的经量化残余系数。

在图8的实例中,视频解码器30确定使用双向预测来预测当前块(202),例如,基于用于当前块的经熵解码语法元素。因此,在再次使用用于当前块的经熵解码语法元素的情况下,视频解码器30解码用于块的运动向量(204)。运动向量可参考存储于参考图片存储器82中的参考图片,参考图片可两者按显示次序出现于当前图片之前,两者按显示次序出现于当前图片之后,或一者可按显示次序出现于当前图片之前且另一者可按显示次序出现于当前图片之后。

在此实例中,视频解码器30确定用于块的运动向量是否指向于共同时间方向上(206)。即,视频解码器30确定运动向量是否参考两者待显示于当前图片之前或之后的参考图片,例如,参考图片是否出现于同一参考图片列表(诸如列表0或列表1)中。

若两个运动向量指向于共同时间方向上(206的“是”分支),则视频解码器30可进一步确定运动向量是否与当前图片与对应参考图片之间的时间距离至少几乎成比例(208)。时间距离可对应于用于当前图片及两个参考图片的图片次序计数(poc)值之间的差。“至少几乎成比例”通常是指与时间距离几乎成比例,或与时间距离成比例。视频解码器30可执行如上文所论述的公式(6)及/或公式(7)以确定运动向量是否与时间距离至少几乎成比例。

举例来说,视频解码器30可将用于当前图片的poc值与用于第一运动向量(mv0)所参考的第一参考图片的poc值之间的第一poc差确定为第一时间距离td0,且将用于当前图片的poc值与用于第二运动向量(mv1)所参考的第二参考图片的poc值之间的第二poc差确定为第二时间距离td0。mv0及mv1可包含相应x分量及y分量。举例来说,mv0可包含mv0x分量及mv0y分量,其中mv0x描述水平偏移且mv0y描述相对于当前图片中的块的位置的垂直偏移以确定供定位第一参考图片中的参考块的位置。相似地,mv1可包含mv1x分量及mv1y分量,其中mv1x描述水平偏移且mv1y描述相对于当前图片中的块的位置的垂直偏移以确定供定位第二参考图片中的参考块的位置。视频解码器30可接着使用这些值以执行公式(6)及/或公式(7)中的任一者或两者或其它相似公式,以确定运动向量是否与时间距离至少几乎成比例。

尽管图8的实例中未展示,但如上文所论述,计算公式(6)及/或公式(7)可涉及阈值th的使用。视频解码器30可存储定义用于th的值的配置数据。另外或替代地,视频解码器30可解码用于表示th的语法元素的值。举例来说,视频解码器30可接收此值作为视频参数集(vps)、序列参数集(sps)、图片参数集(pps)、切片标头及/或块级语法数据中的任一者或全部的部分。

若运动向量与时间距离至少几乎成比例(208的“是”分支),则视频解码器30可进一步确定运动向量是否皆为非零(210)。即,视频解码器30可确定所述运动向量中的每一者的x分量或y分量中的至少一者是否具有大于零的绝对值。尽管运动向量是否为非零的确定(步骤210)被展示为与图8的实例中的运动向量是否与时间距离至少几乎成比例的确定(步骤208)分离的步骤,但应理解,在其它实例中,步骤208及步骤210可经执行为单一步骤。

若运动向量皆为非零(210的“是”分支),或若运动向量不指向于共同时间方向上(206的“否”分支),则视频解码器30也可确定块是否在照明改变区域中(212)。举例来说,视频解码器30可确定用于照明补偿旗标(ic_flag)的值以确定块是否在照明改变区域中。确切地说,在一个实例中,若ic_flag的值为真,则视频解码器30确定块在照明改变区域中。若块不在照明改变区域中(212的“否”分支),则视频解码器30可继续使用bio来预测块(214),例如,根据如上文所论述的公式(1)到公式(5)。替代地,当使用bio来预测块时,视频解码器30可根据时间距离td0及/或td1来修改梯度计算。举例来说,视频解码器30可从经正常计算梯度gx及gy计算经修改梯度gx′及gy′,诸如通过计算gx′=gx·td0及gy′=gy·td1。视频解码器30可接着使用gx′及gy′以代替公式(5)中的gx及gy。

另一方面,在此实例中,若运动向量指向于共同时间方向上,但不与时间距离至少几乎成比例(208的“否”分支),所述运动向量中的至少一者为零值(210的“否”分支),或块在照明改变区域中(212的“是”分支),则视频解码器30可使用标准双向预测而不使用bio来预测块(216)。应理解,在各种实例中,可以任何次序或并行地执行运动向量是否指向于共同时间方向上、运动向量是否皆为非零及块是否在照明改变区域中的确定,使得所述确定的次序不限于图7所展示的实例。

在任何状况下,在使用bio或不使用bio来预测块之后,视频解码器30可继续再现块(218)。确切地说,视频解码器30可反量化经量化变换系数以再现变换系数。视频解码器30可接着反变换所述变换系数以再现用于当前块的残余块。接着,视频解码器30可组合残余块与经预测块(在逐像素基础上)以再现当前块。此经再现当前块也可被称作经解码块。

以此方式,图8的方法表示解码视频数据的方法的实例,所述方法包含:解码第一参考图片及第二参考图片,第二参考图片不同于第一参考图片;将第一参考图片添加到用于当前图片的参考图片列表,其中第一参考图片及第二参考图片两者待显示于当前图片之前或两者待显示于当前图片之后;确定从当前图片的当前块到第一参考图片的第一参考块的第一运动向量(mv0);确定从当前块到第二参考图片的第二参考块的第二运动向量(mv1);确定从当前图片到第一参考图片的第一时间距离(td0);确定从当前图片到第二参考图片的第二时间距离(td1);及使用mv0、mv1、td0及td1而根据双向光流(bio)来解码当前块。

应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可以不同序列被执行,可被添加、合并或完全地省去(例如,并非所有所描述动作或事件皆为实践所述技术所必要)。此外,在某些实例中,可同时地(例如,经由多线程处理、中断处理,或多个处理器)而非依序地执行动作或事件。

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

作为实例而非限制,这些计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。又,任何连接被适当地称为计算机可读媒体。举例来说,若使用同轴缆线、光缆、双绞线、数字用户线(dsl)或诸如红外线、无线电及微波的无线技术而从网站、服务器或其它远程源发射指令,则同轴缆线、光缆、双绞线、dsl或诸如红外线、无线电及微波的无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是有关于非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧凑光盘(cd)、激光光盘、光学光盘、数字影音光盘(dvd)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘运用激光以光学方式再现数据。以上各者的组合也应包含于计算机可读媒体的范围内。

指令可由诸如以下各者的一或多个处理器执行:一或多个数字信号处理器(dsp)、一般用途微处理器、专用集成电路(asic)、现场可编程门阵列(fpga),或其它等效集成或离散逻辑电路系统。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于经配置用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编解码器中。又,所述技术可完全地实施于一或多个电路或逻辑元件中。

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

已描述各种实例。这些及其它实例在以下权利要求书的范围内。

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