CN103108183B - 一种三维视频中Skip和Direct模式运动矢量的预测方法 - Google Patents

一种三维视频中Skip和Direct模式运动矢量的预测方法 Download PDF

Info

Publication number
CN103108183B
CN103108183B CN201310041654.4A CN201310041654A CN103108183B CN 103108183 B CN103108183 B CN 103108183B CN 201310041654 A CN201310041654 A CN 201310041654A CN 103108183 B CN103108183 B CN 103108183B
Authority
CN
China
Prior art keywords
motion vector
reference frame
vsp
pos
skip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310041654.4A
Other languages
English (en)
Other versions
CN103108183A (zh
Inventor
苏文艺
李厚强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201310041654.4A priority Critical patent/CN103108183B/zh
Publication of CN103108183A publication Critical patent/CN103108183A/zh
Application granted granted Critical
Publication of CN103108183B publication Critical patent/CN103108183B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种三维视频中Skip和Direct模式运动矢量的预测方法,该方法包括:判断当前编码块的临块是否采用虚拟参考帧的跳跃Skip或直接Direct模式进行编码;若是,则当前块的Skip或Direct模式按照优先级顺序为虚拟参考帧运动矢量MVvsp、基本视角运动矢量MVbs、临块运动矢量MVmedian与视角间运动矢量MViv的方式构建运动矢量集合;否则当前块的Skip或Direct模式按照优先级顺序为MVbs、MVmedian、MViv与MVvsp的方式构建运动矢量集合;计算所述运动矢量集合中每一运动矢量的速率失真函数R-D代价,选择结果最小的作为当前编码块Skip或Direct模式的最优运动矢量。通过采用本发明公开的方法,提高了编码性能。

Description

一种三维视频中Skip和Direct模式运动矢量的预测方法
技术领域
本发明涉及视频处理技术领域,尤其涉及一种三维视频中Skip和Direct模式运动矢量的预测方法。
背景技术
近二十年来,视频广播技术发生了重大变革,从20世纪的模拟电视到数字电视、高清数字电视,乃至现在的三维电视,视频技术随着人们生活水平的提高不断发展进步。当今世界,人们已经不再满足于传统的单目视频带来的视觉感受,具有临场感和交互性的三维视频以其独特的景深效果给用户带来前所未有的奇妙体验。随着好莱坞推出《阿凡达》等立体电影,三维视频技术逐渐成为多媒体信息产业的热门话题。与传统的单目视频相比,三维视频包含的数据量成倍增加。为了避免信道中数据量激增,必须对其进行有效的编码压缩。
近年来,全球各大研究机构都投人大量精力对三维视频编码技术进行深入研究。ITU-T(ITU-T for ITU Telecommunication Standardization Sector,国际电信联盟远程通信标准化组织)的VCEG(VCEG Video Coding Experts Group,视频编码专家组)和ISO/IEC(国际标准化组织/国际电工委员会)的MPEG(Moving Picture Experts Group,动态图像专家组)正积极开展对三维视频和多视角视频的研究和标准制定工作。
相对于传统的单目视频编码,三维视频编码中不仅有帧内预测,时间预测,同时还有视角间预测和虚拟参考帧预测。Skip和Direct(跳跃和直接)模式是视频编码中一种高效的编码模式,这种模式利用当前块的空间或者时间相邻块推断出当前块的运动矢量,其效率取决与运动矢量估计的精度,因此如何高效的预测Skip和Direct模式的运动矢量一直是视频编码领域的一个热点。
现有技术中,主要通过如下几种方法进行当前编码块运动矢量的预测:
(1)根据空间临块A、B、C的运动矢量的中间值作为当前编码块的运动矢量。但是该处理方法在三维编码中并不合理。例如:当前编码块的临块A,B,C分别采用时间预测,视角间预测和虚拟参考帧预测,那么A的运动矢量主要取决于其时间参考帧与当前编 码帧的距离,B的运动矢量取决于摄像机的分布,而在虚拟视角参考帧质量较高的情况下,C通常为零。我们发现A,B,和C的运动矢量差异较大,取中间值操作也会变得没有意义,进而导致运动矢量的预测值和真正的运动矢量值相差较大,编码性能下降。
(2)基于深度图的运动矢量选择方案:首先把临块A,B,和C的运动矢量映射到对应的深度图中,然后分别计算每一个运动矢量在深度图中的运动补偿块与当前编码块的深度图对应块的失真,最后选择失真最小的运动矢量作为当前块的最优运动矢量。这种方法考虑到纹理图和深度图轮廓的相似性,若临块运动矢量决定的深度图的运动补偿块与当前块的深度对应块相差较小,则可以推断由该运动矢量得到的运动补偿块与当前编码块很可能属于同一块区域(例如:当前编码块和运动补偿块都位于背景中);但该算法的性能依赖与深度图的质量,当深度图噪声较大时,编码效率较差。
(3)提高虚拟参考帧运动矢量或基本视角运动矢量的优先级,当虚拟参考帧运动矢量或基本视角运动矢量可用时,直接作为当前块的运动矢量输出,否则,按照现有技术(1)处理。但是该方法在虚拟视角参考帧质量较差,或者视角间的相关性下降使基本视角的运动矢量预测性能不好时,编码性能不可避免会下降。
发明内容
本发明的目的是提供一种三维视频中Skip和Direct模式运动矢量的预测方法,提高了编码性能。
一种三维视频中Skip和Direct模式运动矢量的预测方法,该方法包括:
判断当前编码块的临块是否采用虚拟参考帧的Skip或Direct(跳跃或直接)进行编码;
若是,则按照优先级从高到低顺序为虚拟参考帧运动矢量MVvsp、基本视角运动矢量MVbs、临块运动矢量MVmedian与视角间运动矢量MViv的方式构建运动矢量集合;否则按照从高到低优先级顺序为MVbs、MVmedian、MViv与MVvsp的方式构建运动矢量集合;其中,所述MVbs为利用视差定位当前编码块在已编码视角中对应块的运动矢量,所述MViv为基于视角相关性获得的临块的运动矢量;
计算所述运动矢量集合中每一运动矢量的速率失真函数R-D代价,选择结果最小的作为当前编码块Skip或Direct模式的最优运动矢量。
由上述本发明提供的技术方案可以看出,根据临块的运动信息,自适应的决定虚拟预测参考帧的优先级,并利用R-D选择最优的运动矢量,使得视角间预测性能较差的或者 虚拟视角参考帧质量较差时,仍然可以取得较好的编码性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例一提供的一种三维视频中Skip和Direct模式运动矢量的预测方法的流程图;
图2为本发明实施例一提供的一种当前编码块与其临块空间位置的示意图;
图3为本发明实施例二提供的又一种三维视频中Skip和Direct模式运动矢量的预测方法的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
实施例一
图1为本发明实施例一提供的一种三维视频中Skip和Direct模式运动矢量的预测方法的流程图,主要包括如下步骤:
步骤101、判断当前编码块的临块是否采用虚拟参考帧的跳跃Skip或直接Direct进行编码。
可预先在临块的中添加标识位,通过解码标识位来判断临块是否使用Skip或Direct模式(例如,使用Skip或Direct模式则将其语法元素值设为1,否则把语法元素设置为0);当判定该临块使用Skip或Direct模式后,进一步分析该模式对应的参考帧类型,来判断临块是否采用了虚拟参考帧预测。
步骤102、按照优先级从高到低的顺序建立运动矢量集合。
若当前编码块的临块使用了虚拟参考帧的Skip或Direct模式进行编码,则当前块Skip 或Direct模式的虚拟参考帧运动矢量MVvsp的优先级最高,其次为基本视角运动矢量MVbs、临块运动矢量MVmedian与视角间运动矢量MViv;否则,基本视角运动矢量MVbs最高,其次为临块运动矢量MVmedian与视角间运动矢量MViv,虚拟参考帧运动矢量MVvsp的优先级最低。
其中,视角间运动矢量MViv为基于视角相关性获得的临块的运动矢量;MVbs为利用视差定位当前编码块在已编码视角中对应块的运动矢量;临块运动矢量MVmedian为若干临块(一般选择空间上相邻的3个编码块)的运动矢量方向一致时的临块运动矢量中间值,或临块运动矢量方向不一致时的优先级最高的可用编码块(例如依照图2中A,B,C的优先级顺序)的运动矢量。
步骤103、从运动矢量集合中选择当前编码块的最优运动矢量。
可对运动矢量集合里面的每个运动矢量进行R-D(速率失真函数)代价的计算,选择结果最小的作为当前编码块的最优运动矢量。
本发明实施例通过临块的运动信息,自适应的决定虚拟预测参考帧的优先级,并利用R-D选择最优的运动矢量;使得视角间预测性能较差的或者虚拟视角参考帧质量较差时,仍然可以取得较好的编码性能。
实施例二
为了便于理解本发明,以下结合附图2-3做本发明做进一步介绍。如图3所示,主要包括如下步骤:
步骤301、判断当前编码块对应的帧的类型。
本实施例主要考虑预测帧P帧及双向预测帧B帧。其中,P帧解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面,即P帧没有完整画面数据,只有与前一帧的画面差别的数据;换言之,P帧只允许帧内预测(没有运动矢量)和前向参考帧预测。B帧记录的是本帧与前后帧的差别,即要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面;换言之,B帧允许帧内预测、前向参考帧预测、后向参考帧预测及前后参考帧联合预测。考虑以上几点,本发明P帧运动矢量集合的建立过程与B帧有较大不同。
步骤302、计算运动矢量。
每一运动矢量均包含三个元素:水平方向的偏移mvx、竖直方向的偏移mvy与参考帧索引ref,可表示为:
MV={mvx,mvy,ref}。
如步骤301所介绍的,P帧只有前向参考帧预测没有后向参考帧预测,因此,没有后向运动偏移,B帧可以前向与后向运动偏移,表示为:
其中,mvlist0为前向偏移,mvlist1为后向偏移。
另外,运动矢量还包括方向,可直接根据运动矢量的方向判断其类型:
其中,与基本视角运动矢量相关的时间参考帧的运动矢量方向为z(一般为0),视角间运动矢量方向为x(一般为1),虚拟参考帧的运动矢量方向为c(一般为2),v(一般为-1)表示运动矢量为空。
本实施例主要计算的运动矢量类型包括:基本视角运动矢量MVbs(涉及视角间预测与时间预测)、临块运动矢量MVmedian与视角间运动矢量MViv(通过视角间预测)。
以下结合附图2做具体介绍,如图2所示,为当前编码块与其临块空间位置的示意图,其中cb为当前编码块,A、B、C为临块。
临块运动矢量MVmedian的计算过程为:比较临块A、B、C的运动矢量方向是否一致(即根据运动矢量的方向判断是否为同一类型的运动矢量),若是,则分别计算临块的运动矢量中的水平方向的偏移的中间值、竖直方向的偏移的中间值及参考帧的中间值作为MVmedian的水平方向的偏移,竖直方向的偏移和参考帧;否则,按照所述若干临块的优先级依次判断是否存在运动矢量,并将第一个存在运动矢量的临块的运动矢量作为MVmedian输出;若临块均不存在运动矢量,则输出为空。
视角间运动矢量MViv的计算过程与MVmedian的计算过程类似,但是只考察使用视角间预测的临块(可通过运动矢量的方向判断);若存在使用视角间预测的临块,则将优先级最高的使用视角间预测的临块的运动矢量作为MViv输出;否则,从参考帧列表中的提取第一个视角间参考帧,通过深度图计算出的当前编码块相对于该视角间参考帧的水平视差disparity作为水平方向的偏移mvx,同时将竖直方向的偏移mvy为0;将该mvx、mvy及对应的视角间参考帧的索引作为MViv输出。
基本视角运动矢量MVbs指我们利用视差定位当前编码块在编码视角中的对应块(colocated block from base view,下面简称为BVcolocated,其基本单位为4×4),该块的运动矢量称为基本视角运动矢量。计算过程包括:构建运动矢量集合MVnb,该集合包括临块A、B、C的运动矢量及视差运动矢量MVdis;其中,所述MVdis中水平方向的偏移为深度图计算出的当前编码块相对于该视角间参考帧的水平视差disparity,竖直方向的偏移为0(与计算MViv类似);表示为:MVnb={mvA,mvB,mvC,mvdis}。
从集合MVnb中取出第i个运动矢量MVnb[i]并判断其是否为视角间运动矢量(可根据运动方向进行判断),若是,则表明其可用来定位当前编码块在基本视角的位置,否则,继续第i+1个运动矢量的判断,直至得到视角间运动矢量或者MVnb被判断完毕;当MVnb[i]为视角间运动矢量时,则将其水平和竖直方向的偏移mvx,mvy分别赋值给disx,,disy(中间值,便于后续计算);通过disx,,disy计算当前编码块在已编码视角中对应块的水平位置posx1和竖直位置posy1,所述对应块的运动矢量可表示为:MVbv[posy1][posx1];最后,判断MVbv[posy1][posx1]是否为时间参考帧的运动矢量,若是,则表明MVbv[posy1][posx1]合法,直接作为MVnb输出;否则采用前述相同的方法继续下一个运动矢量MVnb[j]>i)得到视角间运动矢量,进而得到当前块在已编码视角采用时间预测的对应块。若集合MVnb中的所有运动矢量被考察后,仍然没有找到当前编码编码块在已编码视角中采用时间预测的对应块,则mvbs输出为空。
步骤303、判断当前编码块的临块是否采用虚拟参考帧的Skip或Direct模式进行编码。
通过分析语法元素skip_flag(跳跃标识)的值来判断临块是否使用Skip或Direct模式,当判定该临块使用Skip或Direct模式后,进一步分析该模式对应的参考帧类型,来判断临块是否采用了虚拟参考帧预测。例如,通过标识vsp_first_pos(该标识为中间值,其名称可根据需求进行更改)表示当前编码块的临块是否采用了虚拟参考帧的Skip或Direct模式,若是,则定义vsp_first_pos为1,否则,定义vsp_first_pos为0。
步骤304、根据当前编码块对应参考帧的类型帧的类型及运动矢量的优先级构建运动矢量集合。
从步骤301中可知,P帧与B帧的差异较大,因此,构建的运动矢量也存在较大区别。
P帧运动矢量集合构建:如果当前编码块的某一临块采用了虚拟参考帧的Skip模式, 则将vsp_first_pos设为1,否则,将vsp_first_pos为0(当前块的临块均不采用虚拟参考帧的Skip模式,则为0);当vsp_first_pos为1时,MVvsp被放置在运动矢量集合的第一个位置,随后基本视角运动矢量MVbs、临块运动矢量MVmedian和视角间运动矢量MViv被分别加入到运动矢量集合中;当vsp_first_pos为0时,按照优先级顺序为MVbs、MVmedian,MViv与MVvsp的方式构建矢量集合。该集合可表示为:
S = { mv vsp , mv bs , mv median , mv iv } , vsp _ first _ pos = = 1 { mv bs , mv median , mv iv , mv vsp } , vsp _ first _ pos = = 0 ;
其中,集合中的MVvsp的水平及竖直方向的偏移均为0,其对应的参考帧为参考帧列表中的第一个虚拟参考帧。当运动矢量集合中所有的运动矢量都按照上述优先级顺序加入集合中后,还要进行去重操作,即判断运动矢量集合中是否存在大小和方向均一致的运动矢量,若是,则删除优先级较低的运动矢量,例如,MVbs和MVmedian的大小及对应的参考帧一致,则删除MVmedian保留MVbs;再计算运动矢量集合的大小,若小于阈值,则向该集合中添加默认运动矢量MVdefault;所述MVdefault为前向参考帧列表中第一个参考帧,且其水平及竖直方向的偏移量均为零。
B帧运动矢量集合构建:如果当前编码块的临块均采用了虚拟参考帧的Skip或Direct,则将vsp_first_pos设为1,否则,将vsp_first_pos设为0(当前编码块的临块不同时采用虚拟参考帧的Skip或Direct模式,则为0);当vsp_first_pos为1时,MVvsp被放置在运动矢量集合的第一个位置,随后基本视角运动矢量MVbs和临块运动矢量MVmedian被分别加入到运动矢量集合中;当vsp_first_pos为0时,按照优先级顺序为MVbs、MVmedian与MVvsp的方式构建矢量集合。
由于B帧不仅有前向运动矢量还有后向运动矢量,前向运动矢量的构造与P相同,后向候选运动矢量的处理方法为:1)若候选参考帧列表中有虚拟视角参考帧,MVvsp定位为水平和竖直方向偏移为零且后向参考帧列表中的第一个虚拟视角参考帧,否则MVvsp后向参考帧不存在,2)后向运动矢量MVmedian和前向类似,不过考察的是临块的后向运动矢量信息,3)前向和后向的MVbs的计算是同时进行的,也就是说本发明首先定位当前块在基本视角的对应块,然后把基本视角对应块的前向和后向运动矢量分别作为MVbs的前向和后向运动矢量。
需要注意的时,B帧是双向预测帧包括前向与后向的时间预测到的运动矢量(基本视角运动矢量),因此,视角间参考帧的重要性下降,为减少计算量,则不加入集合之 中。该集合可表示为:
S ′ = { mv vsp , mv bs , mv median , mv iv } , vsp _ first _ pos = = 1 { mv bs , mv median , mv iv , mv vsp } , vsp _ first _ pos = = 0 ;
当运动矢量集合中所有的运动矢量都按照上述优先级顺序加入集合中后,还要进行去重操作,即判断运动矢量集合中是否存在大小和方向均一致的运动矢量,若是,则删除优先级较低的运动矢量,例如,MVbs和MVmedian的大小及对应的参考帧一致,则删除MVmedian保留MVbs;再计算运动矢量集合的大小,若小于阈值,则向该集合中添加默认运动矢量MVdefault;所述MVdefault为前向和后向参考帧列表中第一个参考帧,且其水平及竖直方向的偏移量均为零。
步骤305、从运动矢量集合中选择当前编码块的最优运动矢量。
本实施例采用拉格朗日优化法计算运动矢量集合中每个运动矢量的R-D代价,计算公式为:
J=D+λR;
其中,λ为拉格朗日因子;
D为当前编码块的失真值,其计算公式为:
D=DY+DU+DV
其中,DY为亮度分量,DU与DV为色度分量; 
R为当前编码块编码时所需要的比特数,其计算公式为:
R=Rskip_flag+Rmvp_idx
其中,Rskip_flag为编码skip_flag的比特数,Rmvp_idx为编码索引的比特数(一般为编码最优运动矢量索引的比特数)。
通过上述公式的计算,选择结果最小的运动矢量作为当前编码块的最优运动矢量。
步骤306、编码最优矢量。
为了解码端能够正常解码,必须要把最优运动矢量信息的索引值写入码流文件。
例如,通过自适应二进制算术编码CABAC算法,将所述最优矢量的索引值写入码流文件。
本实施例中的P帧的运动矢量集合中最多可以添加三个候选矢量(例如:MVvsp、MVbs、MVmedian),B帧最多可以添加两个候选矢量(例如,MVbs、MVmedian),因此,编码时的上下文有所区别。
对于P帧,由于最多可包含三个候选矢量,所以编码时CABAC算法的上下文包括act_ctx0和act_ctx1:
act_ctx0=a+b;
act_ctx1=a+b+3;
其中,a与b定义为:
a = 0 , ( mb _ left ! = NULL ) ∩ ( mb _ left → skip _ flag ) ∩ ( mb _ left → mvp _ idx = = 0 ) 1 , else
b = 0 , ( mb _ up ! = NULL ) ∩ ( mb _ up → skip _ flag ) ∩ ( mb _ up → mvp _ idx = = 0 ) 1 , else
即,a对应于图2中的左边临块A;b对应于图2中的上边临块B;当左边临块其采用Skip或Direct模式时,且对应的最优运动矢量索引值为0时,把a赋值为0,否则,把a赋值为1;当上边临块其采用Skip或Direct模式时,且对应的最优运动矢量索引值为0时,把b赋值为1,否则,把b赋值为1。
另外,根据P帧是否为锚定帧(is_anchor),上下文的建立有所不同,锚定帧中is_anchor赋值为1,非锚定帧is_anchor赋值为0。同时当P帧是锚定帧时,由于没有时间预测参考帧,MVbs必然不存在,因此运动矢量集合中必然不包括MVbs。本发明P帧最多可以添加三个候选运动矢量(例如,锚定帧的运动矢量集合为MVvsp、MVbs、MVmedian,非锚定帧为MVvsp、MVbs,MVbs),编码过程可定义为:
而对于B帧,必然为非锚定帧,且最多只能添加两个候选矢量(例如,MVbs、MVmedian),因此,编码时仅定义is_anchor==0(非锚定帧),编码过程可定义为:
且编码时CABAC算法的上下文仅包括act_ctx0:act_ctx0=a+b,其中,a与b的定义与P帧的类似,不再赘述。
同理,在解码端也可采用类似的方法进行解码,例如,首先,计算出a与b的值,从而得出act_ctx0和act_ctx1或者act_ctx0;再解码得到到最优运算矢量索引mvp_idx,进而得到最优运动矢量S[mvp_idx]={S[mvp_idx].mvx,S[mvp_idx].mvy,S[mvp_idx].ref}。
本发明实施例通过临块的运动信息,自适应的决定虚拟预测参考帧的优先级,并利用R-D选择最优的运动矢量;再将最优运动矢量的索引值写入码流;解码端利用同样的策略构解码出最优运动矢量的索引值。因此,最终得到的运动矢量总是R-D选择后最优的运动矢量。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (10)

1.一种三维视频中Skip和Direct模式运动矢量的预测方法,其特征在于,该方法包括:
判断当前编码块的邻块是否采用虚拟参考帧的跳跃Skip或直接Direct模式进行编码;
若是,则当前块的Skip或Direct模式按照优先级顺序为虚拟参考帧运动矢量MVvsp、基本视角运动矢量MVbs、邻块运动矢量MVmedian与视角间运动矢量MViv的方式构建运动矢量集合;否则当前块的Skip或Direct模式按照优先级顺序为MVbs、MVmedian、MViv与MVvsp的方式构建运动矢量集合;其中,所述MVbs为利用视差定位当前编码块在编码视角中对应块的运动矢量,所述MViv为基于视角相关性获得的邻块的运动矢量,所述优先级顺序表示优先级从高到低的顺序,且所述运动矢量集合按照优先级从高到低的顺序排列;
计算所述运动矢量集合中每一运动矢量的速率失真函数R-D代价,选择结果最小的作为当前编码块Skip或Direct模式的最优运动矢量。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:判断当前编码块对应参考帧的类型,根据当前编码块对应参考帧的类型及运动矢量的优先级构建运动矢量集合,其步骤包括:
判断当前编码块对应参考帧的类型;并通过标识vsp_first_pos表示当前编码块的邻块是否采用了虚拟参考帧的Skip或Direct模式,若是,则定义vsp_first_pos为1,否则,定义vsp_first_pos为0;
若当前编码块对应的参考帧为预测帧P帧,则判断当前编码块的邻块是否采用虚拟参考帧的Skip模式进行编码;若当前编码块的某一邻块采用了虚拟参考帧的Skip模式,则将vsp_first_pos设为1,否则,将vsp_first_pos设为0;当vsp_first_pos为1时,按照优先级顺序为MVvsp、MVbs、MVmedian与MViv的方式构建运动矢量集合;当vsp_first_pos为0时,按照优先级顺序为MVbs、MVmedian、MViv与MVvsp的方式构建矢量集合,该集合表示为:
S = { mv vsp , mv bs , mv median , mv iv } , vsp _ firrt _ pos = = 1 { mv bs , mv median , mv iv , mv vsp } , vsp _ first _ pos = = 0 ;
若当前编码块对应的参考帧为双向预测帧B帧,则判断当前编码块的邻块是否采用虚拟参考帧的Skip或Direct模式进行编码;若当前编码块的邻块均采用了虚拟参考帧的Skip或Direct模式,则将vsp_first_pos设为1,否则,将vsp_first_pos设为0;当vsp_first_pos为1时,按照优先级顺序为MVvsp、MVbs、MVmedian的方式构建运动矢量集合;当vsp_first_pos为0时,按照优先级顺序为MVbs、MVmedian与MVvsp的方式构建矢量集合,该集合表示为:
S ′ = { mv vsp , mv bs , mv median } , vsp _ first _ pos = = 1 { mv bs , mv median , mv vsp } , vsp _ first _ pos = = 0 .
3.根据权利要求1或2所述的方法,其特征在于,所述运动矢量集合中每一运动矢量包括:
MV={mvx,mvy,ref};
其中,mvx为水平方向的偏移,mvy为垂直方向的偏移,ref为参考帧索引;
P帧与B帧的mvx与mvy包括:
其中,mvlist0为前向偏移,mvlist1为后向偏移;
运动矢量的方向dir(MV)表示为:
其中,与基本视角运动矢量相关的时间参考帧的运动矢量方向为z,视角间运动矢量方向为x,虚拟参考帧的运动矢量方向为c,v表示运动矢量为空。
4.根据权利要求3所述的方法,其特征在于,所述根据帧的类型构建运动矢量集合还包括:
判断运动矢量集合中是否存在大小和方向均一致的运动矢量,若是,则删除运动矢量集合中优先级较低的运动矢量;
计算所述运动矢量集合的大小,比较运动矢量集合的大小与阈值的大小关系,若所述运动矢量集合的大小小于阈值,则根据对应参考帧的类型向该集合中添加默认运动矢量MVdefault;所述MVdefault为前向或前向和后向参考帧列表中第一个参考帧,且其水平及竖直方向的偏移量均为零。
5.根据权利要求1所述的方法,其特征在于,所述计算所述运动矢量集合中每一运动矢量的速率失真函数R-D代价包括:
利用拉格朗日优化法进行计算:J=D+λR;
其中,λ为拉格朗日因子;
D为当前编码块的失真值,其计算公式为:
D=DY+DU+DV
其中,DY为亮度分量,DU与DV为色度分量;
R为当前编码块编码时所需要的比特数,其计算公式为:
R=Rskip_flag+Rmvp_idx
其中,Rskip_flag为编码跳跃标识skip_flag的比特数,Rmvp_idx为编码索引的比特数。
6.根据权利要求3所述的方法,其特征在于,计算所述MVbs的步骤包括:
构建运动矢量集合MVnb,该集合包括若干邻块的运动矢量及视差运动矢量MVdis;其中,所述MVdis中水平方向的偏移为深度图计算出的当前编码块相对于该视角间参考帧的水平视差disparity,竖直方向的偏移为0;
判断MVnb中第i个运动矢量MVnb[i]的运动矢量方向是否等于x,若是,则利用所述第i个运动矢量的mvx与mvy计算当前编码块在编码视角中对应块的水平位置posx1和竖直位置posy1,获得所述对应块的运动矢量MVbv[posy1][posx1],否则,判断第i+1个运动矢量MVnb[i+1]的运动矢量方向是否等于x,直至找到MVnb中运动矢量方向为x或者MVnb被判断完毕;
判断所述对应块的运动矢量MVbv[posy1][posx1]的方向是否为z,若是,则将所述对应块的运动矢量MVbv[posy1][posx1]作为mvbs输出;
当所述运动矢量集合MVnb中的所有运动矢量均被计算,且不存在当前编码块在已编码视角中运动矢量方向为z的对应块,则mvbs输出为空。
7.根据权利要求3所述的方法,其特征在于,计算所述MVmedian的步骤包括:
比较若干邻块的运动矢量方向是否一致,若是,则分别计算邻块的运动矢量中的水平方向偏移的中间值、竖直方向偏移的中间值及参考帧的中间值,并作为MVmedian的水平方向的偏移,竖直方向的偏移和参考帧;
否则,按照所述若干邻块的优先级依次判断是否存在运动矢量,并将第一个存在运动矢量的邻块的运动矢量作为MVmedian输出;若邻块均不存在运动矢量,则输出为空。
8.根据权利要求3所述的方法,其特征在于,计算所述MViv的步骤包括:
根据运动矢量的方向判断当前编码块的若干邻块的运动矢量中是否存在视角间预测的邻块;若是,则将优先级最高的使用视角间预测的邻块的运动矢量作为MViv输出;
否则,从参考帧列表中提取第一个视角间参考帧,通过深度图计算出的当前编码块相对于该视角间参考帧的水平视差disparity作为水平方向的偏移mvx,同时将竖直方向的偏移mvy为0;将该mvx、mvy及对应的视角间参考帧的索引作为MViv输出。
9.根据权利要求2所述的方法,其特征在于,构建所述运动矢量之后还包括:通过自适应二进制算术编码CABAC算法,将所述最优矢量的索引值写入码流文件:
编码时CABAC算法的上下文包括act_ctx0和act_ctx1:
act_ctx0=a+b;
act_ctx1=a+b+3;
其中,P帧编码时CABAC算法的上下文包括act_ctx0和act_ctx1,B帧编码时CABAC算法的上下文包括act_ctx0;a与b定义为:
a = 0 , ( mb _ left ! = NULL ) ∩ ( mb _ left → skip _ flag ) ∩ ( mb _ left → mvp _ idx = = 0 ) 1 , else
b = 0 , ( mb _ up ! = NULL ) ∩ ( mb _ up → skip _ flag ) ∩ ( mb _ up → mvp _ idx = = 0 ) 1 , else ;
a对应当前编码块的左边邻块;b对应当前编码块的上边邻块;当左边邻块其采用Skip或Direct模式时,且对应的最优运动矢量索引值为0时,把a赋值为0,否则,把a赋值为1;当上边邻块其采用Skip或Direct模式时,且对应的最优运动矢量索引值为0时,把b赋值为0,否则,把b赋值为1。
10.根据权利要求9所述的方法,其特征在于,该方法还包括:根据当前参考帧是否为锚定帧进行编码,具体的:
判断当前参考帧是否为锚定帧:利用is_anchor来指示当前参考帧是否为锚定P帧;若当前参考帧为锚定P帧,则is_anchor赋值为1,否则,将is_anchor赋值为0,同时P帧最多运行3个运动矢量,其编码过程定义为:
If mvp_idx==0
CABAC_encoder(0,context[is_anchor][act_ctx0]
else if mvp_idx==1
CABAC_encoder(1,context[is_anchor][act_ctx0]
CABAC_encoder(0,context[is_anchor][act_ctx1]
else
CABAC_encoder(1,context[is_anchor][act_ctx0]
CABAC_encoder(1,context[is_anchor][act_ctx1];
若当前帧为非锚定B帧,则最多允许2个运动矢量,运动矢量集合对应的阈值为2,其编码过程定义为:
If mvp_idx==0
CABAC_encoder(0,context[2][act_ctx0]
else
CABAC_encoder(1,context[2][act_ctx0]。
CN201310041654.4A 2013-02-01 2013-02-01 一种三维视频中Skip和Direct模式运动矢量的预测方法 Active CN103108183B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310041654.4A CN103108183B (zh) 2013-02-01 2013-02-01 一种三维视频中Skip和Direct模式运动矢量的预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310041654.4A CN103108183B (zh) 2013-02-01 2013-02-01 一种三维视频中Skip和Direct模式运动矢量的预测方法

Publications (2)

Publication Number Publication Date
CN103108183A CN103108183A (zh) 2013-05-15
CN103108183B true CN103108183B (zh) 2015-04-29

Family

ID=48315712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310041654.4A Active CN103108183B (zh) 2013-02-01 2013-02-01 一种三维视频中Skip和Direct模式运动矢量的预测方法

Country Status (1)

Country Link
CN (1) CN103108183B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248899B (zh) * 2013-05-21 2016-02-24 清华大学 多视点视频skip模式的运动矢量预测方法
WO2015006951A1 (en) * 2013-07-18 2015-01-22 Mediatek Singapore Pte. Ltd. Methods for fast encoder decision
CN105474643A (zh) * 2013-07-19 2016-04-06 联发科技(新加坡)私人有限公司 3d视频编码中简化的视图合成预测的方法
CN105812829B (zh) * 2016-03-10 2018-11-02 福州瑞芯微电子股份有限公司 一种向量场外插的错误隐藏方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101466036A (zh) * 2007-12-21 2009-06-24 北京中电华大电子设计有限责任公司 基于avs的运动矢量预测流水并行设计方法
CN102158709A (zh) * 2011-05-27 2011-08-17 山东大学 一种解码端可推导的运动补偿预测方法
US8213515B2 (en) * 2008-01-11 2012-07-03 Texas Instruments Incorporated Interpolated skip mode decision in video compression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI109633B (fi) * 2001-01-24 2002-09-13 Gamecluster Ltd Oy Menetelmä videokuvan pakkauksen nopeuttamiseksi ja/tai sen laadun parantamiseksi

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101466036A (zh) * 2007-12-21 2009-06-24 北京中电华大电子设计有限责任公司 基于avs的运动矢量预测流水并行设计方法
US8213515B2 (en) * 2008-01-11 2012-07-03 Texas Instruments Incorporated Interpolated skip mode decision in video compression
CN102158709A (zh) * 2011-05-27 2011-08-17 山东大学 一种解码端可推导的运动补偿预测方法

Also Published As

Publication number Publication date
CN103108183A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
US11516498B2 (en) Image encoding/decoding apparatus and method
US9883186B2 (en) Method and apparatus for encoding/decoding motion vector
US8953684B2 (en) Multiview coding with geometry-based disparity prediction
CN101601304B (zh) 用于对多视图图像进行编码和解码的方法和设备
CN104412597B (zh) 用于3d视频编码的统一视差矢量推导的方法及装置
KR101364195B1 (ko) 움직임벡터 부호화/복호화 방법 및 그 장치
US20140002599A1 (en) Competition-based multiview video encoding/decoding device and method thereof
US10264281B2 (en) Method and apparatus of inter-view candidate derivation in 3D video coding
US20120189060A1 (en) Apparatus and method for encoding and decoding motion information and disparity information
US9961369B2 (en) Method and apparatus of disparity vector derivation in 3D video coding
CN106105191A (zh) 用于处理多视图视频信号的方法和装置
US20150172714A1 (en) METHOD AND APPARATUS of INTER-VIEW SUB-PARTITION PREDICTION in 3D VIDEO CODING
KR101747434B1 (ko) 움직임 정보 및 변이 정보를 부호화/복호화하는 영상 처리 장치 및 방법
CN101600108A (zh) 一种多视点视频编码中的运动和视差联合估计方法
KR20140068013A (ko) 심도맵의 인코딩 및 디코딩
KR101598855B1 (ko) 입체영상 부호화 장치 및 방법
CN103108183B (zh) 一种三维视频中Skip和Direct模式运动矢量的预测方法
KR20230129320A (ko) 시점 간 움직임 병합 후보 유도 방법 및 장치
US20130100245A1 (en) Apparatus and method for encoding and decoding using virtual view synthesis prediction
Ekmekcioglu et al. A temporal subsampling approach for multiview depth map compression
CN105359529A (zh) 三维视频编码中用于高级时间残差预测的方法及装置
CN103997635A (zh) 自由视点视频的合成视点失真预测方法及编码方法
KR101567964B1 (ko) 움직임벡터 부호화/복호화 방법 및 그 장치
KR20140026579A (ko) 움직임벡터 부호화/복호화 방법 및 그 장치
KR20130088096A (ko) 움직임벡터 부호화/복호화 방법 및 그 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant