选择参考场及获取时域运动矢量的方法

文档序号:7930078阅读:236来源:国知局
专利名称:选择参考场及获取时域运动矢量的方法
技术领域
本发明涉及一种在跳过或直接模式中选择参考场及时域运动矢量预测的方法。
背景技术
AVS1-P2是我国2006年2月批准的先进视音频编解码标准中的视频部分。在视频编码中,隔行扫描信号的编码通常要采用和逐行扫描不同的编码模式以提高编码效率。这些隔行编码模式通常分为基于宏块的隔行编码模式和基于场的隔行编码模式。AVS1-P2提供了基于场的隔行编码模式。在视频编码中,B帧通过使用前后参考帧,能够获得比P帧更高的编码效率。特别是B帧中的直接和跳过模式能够提供非常高的压缩比率,但其能否发挥作用直接取决于运动矢量预测的准确性。一般运动矢量的预测分为空域预测和时域预测两种。空域预测使用的是同一帧或场的相邻运动矢量来预测当前块的运动矢量,时域预测是指通过时间轴上后续参考帧相同位置宏块的运动矢量进行预测。在AVS1-P2编解码标准中,P帧的跳过模式使用了空域预测,而B帧的直接和跳过模式使用了时域预测。但是,AVS1-P2中的B帧直接和跳过模式运动矢量预测方法在进行场编码时,底场的运动矢量预测只使用了后参考帧的底场。而后参考帧底场的预测在经过率失真优化后绝大部分宏块会选择使用同一帧的顶场作为参考,因此其运动矢量在时域跨度上只有一场。这样便造成了使用短运动矢量来预测长运动矢量,意味着参考运动矢量的误差会被放大,当帧编码模式在I/P帧间使用两个B帧时,误差放大便达到4倍,造成了压缩效率的明显下降。而且这种运动矢量噪声在直接模式下没有残差补偿,码率较低时会产生明显可见的抖动,使主观质量评价大幅下降。

发明内容
有鉴于此,有必要针对AVS视频编码器B帧底场编码在直接和跳过模式中运动矢量预测误差较大的问题,提供一种选择参考场及获取时域运动矢量的方法。一种选择参考场及获取时域运动矢量的方法,具体包括如果当前宏块类型为B_Skip或B_Direct_16*16,或当前子块类型为SB_ Direct_8*8,对每个8*8块分别进行如下操作第一步(1)、如果后向参考图像中与当前8*8块的左上角样本位置对应的样本所在的编码宏块类型为1_8*8,则当前块的前后向参考图像均为缺省参考图像;O)、否则,如果当前块所在图像的图像结构等于1,当前块的前后向参考图像均为缺省参考图像,其前后向距离索引分别为DistancehdexFw和DistancehdexBw,当前块的前后向块距离分别为BlockDistanceFw和BlockDistanceBw ;在后向参考图像中与当前块的左上角样本位置对应的样本所在的编码块的运动矢量mvRef为(mVRef_X,mvRef_ y),该编码块的距离索引为DistancehdexCol,该运动矢量指向的参考块的距离索引为DistanceIndexRef ;(3)、否则,如果当前块所在图像的图像结构等于0,当前块的前向参考索引为0 和1的参考场中的参考块的距离索引分别为DistancehdexFwO和DistanceIndexFwl ; 如果DistancehdexRef等于DistancehdexFwO,则当前块的前向参考索引为0, DistanceIndexFw等于DistancehdexFwO ;否则当前块的前向参考索引为1, DistanceIndexFw等于DistancehdexFwl ;当前块的后向参考索引为O和1的参考场中的参考块的距离索引分别为DistancehdexBwO和DistancehdexBwl ;如果当前块的MWndex < MbWidth*MbHeight/2,其中MWndex为宏块索引,MbWidth为图像以宏块表达的宽度, MbHeight为图像以宏块表达的高度,则当前块的后向参考场是参考索引标记为O的场, DistanceIndexBw 等于 DistanceIndexBwO ;0)、判断当前块后向参考索引标记为1的场的对应参考块的参考索引是否为0, 如果为0,则当前块的后向参考场是参考索引标记为O的场,参考块相对应的宏块位置由 MbIndex- (Mbffidth*MbHeight/2)得出,DistancehdexBw 等于 DistancehdexBwO ;否则,当前块的后向参考场是参考索引标记为1的场,DistancehdexBw等于DistancehdexBwl ;(5)、对场垂直矢量偏移补偿deltal和delta2定义如下如果当前块所在的场为顶场,并且mvRef指向的场为底场,则deltal = 2 ;如果当前块所在的场为底场,并且mvRef指向的场为顶场,则deltal = _2 ;如果当前块所在的场为顶场,并且mvFw/mvBw指向的场为底场,则delta2 = 2 ;如果当前块所在的场为底场,并且mvFw/mvBw指向的场为顶场,则delta2 = _2 ;其中mvFw为当前块的前向运动矢量,mvBw为当前块的后向运动矢量;第二步(1)、BlockDistanceRef = (DistanceIndexCol-DistanceIndexRef+512)% 512 ;BlockDistanceFw = (DistanceIndexCur-DistanceIndexFw+512)% 512 ;BlockDistanceBw = (DistanceIndexBw-DistanceIndexCur+512)% 512 ;其中,DistancehdexCol为后向参考帧中与当前块同位的块的距离索弓丨,DistancehdexRef为后向参考帧中同位块的运动矢量指向的块的距离索弓丨, DistanceIndexCur为当前块的距离索引,DistancehdexFw为当前块的前向参考块的距离索引,DistancehdexBw为当前块的后向参考块的距离索引,BlockDistanceRef为后向参考块与其自身参考块的块距离,BlockDistanceFw为当前块与其前向参考块的块距离, BlockDistanceBw为当前块与其后向参考块的块距离;O)、如果当前块所在图像的图像结构等于1,并且后向参考图像的图像结构等于 0,则 mvRef_y = mvRef_y*2 ;(3)、如果当前块所在图像的图像结构等于0,并且后向参考图像的图像结构等于 1,则 mvRef_y = mvRef_y/2 ;第三步(1)、当前块的前向运动矢量mvFw为(mvFw_x,mvFw_y);如果mvRef_x小于0,贝丨JmvFw_x = -(((16384/BlockDistanceRef)*(l_mvRef_x*BlockDistanceFw)_1) >
mvFw_x = ((16384/BlockDistanceRef)*(l+mvRef_x*BlockDistanceFw)_1) >> 14;如果(mvRef_y+deltal)小于 0,则mvFw_y = - ( ( (16384/BlockDistanceRef) * (1- (mvRef_ y+deltal)^BlockDistanceFw)-1) >> 14)_delta2 ;否则mvFw_y = ( ( (16384/BlockDistanceRef) * (1+ (mvRef_ y+deltal)氺BlockDistanceFw)_1) >> 14)-delta2 ;(2)、当前块的后向运动矢量mvBw为(mvBw_x,mvBw_y);如果mvRef_x小于0,贝丨JmvBw_x = ((16384/BlockDistanceRef)*(l_mvRef_x*BlockDistanceBw)-1) >> 14 ;否则mvBw_x = -(((16384/BlockDistanceRef)*(l+mvRef_x*BlockDistanceBw)-1) >
>14);如果(mvRef_y+deltal)小于 0,则mvBw_y = ( ( (16384/BlockDistanceRef) * (1- (mvRef_ y+deltal)氺BlockDistanceBw)-1) >> 14)-delta2 ;否则mvBw_y = - ( ( (16384/BlockDistanceRef) * (1+ (mvRef_ y+deltal)^BlockDistanceBw)-1) >> 14_delta2。对于典型的隔行视频序列,当直接和跳过模式较适用时,本发明能从总体提高编码效率10%到20%,效果非常显著。现有技术的基准算法在低码率会造成低场视频的严重跳动失真,而本发明能消除这种跳动,大幅提高原有AVS基准档次场编码码流的主观评价得分。


图1是参考索引标记方法的示意图。图2是亮度块E和相邻块的空间关系示意图。图3和图4是本发明与AVS基准算法进行效果对比的率失真图。
具体实施例方式本发明的目的是提供一种能有效避免AVS视频编码器B帧底场编码在直接和跳过模式中运动矢量预测误差较大的方法。在保持客观质量不变的情况下,能够有效降低编码比特率,并能明显提高主观质量。为了达到上述目的,本发明提供了一种获取时域运动矢量的方法。具体实现步骤如下如果当前宏块类型为B_Skip或B_Direct_16*16,或当前子块类型为SB_ Direct_8*8,对每个8*8块分别进行如下操作第一步
(1)、如果后向参考图像中与当前8*8块的左上角样本位置对应的样本所在的编码宏块类型为“1_8*8”,则当前块的前后向参考图像均为缺省参考图像,即图1中标记为0 的图像(引用自GB/T20090. 2-2006),当前块的前后向运动矢量是直接根据原国家标准GB/ T20090. 2-2006中章节9. 4. 4得到的当前块所在宏块(图2中块E为当前块所在宏块)的前后向运动矢量预测值。O)、否则,如果当前块所在图像的PictureMructure(图像结构,值为0时是场编码模式,即当前图像的两场编码数据依次出现,值为1是帧编码模式,表示当前图像的两场编码数据交融出现)等于1 (帧编码模式),当前块的前后向参考图像均为缺省参考图像,即图1(e)中标记为0的图像,其前后向Distancehdex(距离索引)分别为 DistanceIndexFw (前向距离索引)和DistancehdexBw (后向距离索引);当前块的前后向 BlockDistance (块距离)分别为 BlockDistanceFw (前向块距离)和 BlockDistanceBw (后向块距离);在后向参考图像中与当前块的左上角样本位置对应的样本所在的编码块的运动矢量为mvRef (mvRef_x,mvRef_y),该编码块的距离索引为DistancehdexCol,该运动矢量指向的参考块的距离索引为DistancehdexRef。(3)、否则,如果当前块所在图像的PictureStructure(图像结构)等于0(场编码模式),在后向参考图像中与当前块的左上角样本位置对应的样本所在的编码块的运动矢量为mvRef (mvRef_x, mvRef_y),该编码块的距离索引为DistancehdexCol,该运动矢量指向的参考块的距离索引为DistancehdexRef ;当前块的前向参考索引为O 和1的参考场中的参考块的距离索引分别为DistanceIndexFwO和DistanceIndexFwlo 如果DistancehdexRef等于DistancehdexFwO,则当前块的前向参考索引为0, DistanceIndexFw等于DistancehdexFwO ;否则当前块的前向参考索引为1, DistancehdexFw等于DistancehdexFwl ;当前块的后向参考索引为O和1的参考场中的参考块的距离索引分别为DistancehdexBwO和DistancehdexBwl。如果当前块的 MbIndex < Mbffi dth*MbHeight/2 (Mb Index为宏块索弓丨,Mbffidth为图像以宏块表达的宽度,MbHeight为图像以宏块表达的高度),则当前块的后向参考场是参考索引标记为O的场,DistancehdexBw 等于 DistancehdexBwO ;如果 MHndex > = Mbffidth*MbHeight/2, 判断当前块后向参考索引标记为1的场的对应参考块的参考索引是否为0,如果为0,则当前块的后向参考场是参考索引标记为O的场,参考块相对应的宏块位置由 MbIndex- (Mbffidth*MbHeight/2)得出,DistancehdexBw 等于 DistancehdexBwO ;否则,当前块的后向参考场是参考索引标记为1的场,DistanceIndexBw等于DistancehdexBwl。G)、为配合本发明可使用不同空间位置场作为参考场的特点,在运动矢量预测中统一使用场垂直矢量偏移补偿(deltal和delta2),并定义deltal和delta2如下如果当前块所在的场为顶场,并且mvRef指向的场为底场,则deltal = 2 ;如果当前块所在的场为底场,并且mvRef指向的场为顶场,则deltal = _2 ;如果当前块所在的场为顶场,并且mvFw/mvBw指向的场为底场,则delta2 = 2 ;如果当前块所在的场为底场,并且mvFw/mvBw指向的场为顶场,则delta2 = -2。其中mvFw为当前块的前向运动矢量,mvBw为当前块的后向运动矢量。第二步(1),BlockDistanceRef = (DistanceIndexCol-DistanceIndexRef+512)% 512 设当前块的距离索引为DistancehdexCurJlJBlockDistanceFw = (DistanceIndexCur-DistanceIndexFw+512)% 512 ;BlockDistanceBw = (DistanceIndexBw-DistanceIndexCur+512)% 512 ;其中%符号代表模运算,也即求余运算。(2)、如果当前块所在图像的PictureStructure等于1 (帧图像),并且后向参考图像的 PictureStructure 等于 O (场图像),贝Ij mvRef_y = mvRef_y*2 ;(3)、如果当前块所在图像的PictureStructure等于O (场图像),并且后向参考图像的 PictureStructure 等于 1 (帧图像),则 mvRef_y = mvRef_y/2。第三步(1)、当前块的前向运动矢量mvFw (mvFw_x, mvFw_y)为如果mvRef_x小于0,贝丨JmvFw_x = -(((16384/BlockDistanceRef)*(l_mvRef_x*BlockDistanceFw)_1) >
>14);否则mvFw_x = ((16384/BlockDistanceRef)*(l+mvRef_x*BlockDistanceFw)_1) >> 14。如果(mvRef_y+deltal)小于 0,则mvFw_y = - ( ( (16384/BlockDistanceRef) * (1- (mvRef_ y+deltal)^BlockDistanceFw)-1) >> 14)_delta2 ;否则mvFw_y = ( ( (16384/BlockDistanceRef) * (1+ (mvRef_ y+deltal)氺BlockDistanceFw)_1) >> 14)_delta2。(2)、当前块的后向运动矢量mvBw (mvBw_x, mvBw_y)为如果mvRef_x小于0,贝丨JmvBw_x = ((16384/BlockDistanceRef)*(l_mvRef_x*BlockDistanceBw)-1) >> 14;否则mvBw_x = -(((16384/BlockDistanceRef)*(l+mvRef_x*BlockDistanceBw)-1) >
>14);如果(mvRef_y+deltal)小于 0,则mvBw_y = ( ( (16384/BlockDistanceRef) * (1- (mvRef_ y+deltal)氺BlockDistanceBw)-1) >> 14)-delta2 ;否则mvBw_y = - ( ( (16384/BlockDistanceRef) * (1+ (mvRef_ y+deltal)^BlockDistanceBw)-1) >> 14_delta2。采用率失真图表对本发明与AVS基准算法的效果进行了对比,如图3和图4所示, 其中X轴为码率(IAps),Y轴为PSNR(dB),由率失真图表可见,对于典型的隔行视频序列, 当直接和跳过模式较适用时,本发明能从总体提高编码效率10%到20%,效果非常显著。本发明更为重要但又无法从率失真图表体现出来的优势是人眼的主观感觉,原基准算法在低码率会造成低场视频的严重跳动失真,而本发明能消除这种跳动,大幅提高原有AVS基准档次场编码码流的主观评价得分。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1. 一种在跳过或直接模式中选择参考场及时域运动矢量预测的方法,其特征在于 如果当前宏块类型为B_Skip或B_Direct_16*16,或当前子块类型为SB_Direct_8*8, 对每个8*8块分别进行如下操作 第一步(1)、如果后向参考图像中与当前8*8块的左上角样本位置对应的样本所在的编码宏块类型为1_8*8,则当前块的前后向参考图像均为缺省参考图像;O)、否则,如果当前块所在图像的图像结构等于1,当前块的前后向参考图像均为缺省参考图像,其前后向距离索引分别为DistancehdexFw和DistancehdexBw,当前块的前后向块距离分别为BlockDistanceFw和BlockDistanceBw ;在后向参考图像中与当前块的左上角样本位置对应的样本所在的编码块的运动矢量mvRef为(mVRef_X,mvRef_ y),该编码块的距离索引为DistancehdexCol,该运动矢量指向的参考块的距离索引为 DistanceIndexRef ;(3)、否则,如果当前块所在图像的图像结构等于0,当前块的前向参考索引为O和 1的参考场中的参考块的距离索引分别为DistancehdexFwO和DistancehdexFwl ; 如果DistancehdexRef等于DistancehdexFwO,则当前块的前向参考索引为0, DistanceIndexFw等于DistancehdexFwO ;否则当前块的前向参考索引为1, DistanceIndexFw等于DistancehdexFwl ;当前块的后向参考索引为O和1的参考场中的参考块的距离索引分别为DistancehdexBwO和DistancehdexBwl ;如果当前块的MWndex < MbWidth*MbHeight/2,其中MWndex为宏块索弓丨,MbWidth为图像以宏块表达的宽度, MbHeight为图像以宏块表达的高度,则当前块的后向参考场是参考索引标记为O的场, DistanceIndexBw 等于 DistanceIndexBwO ;、如果当前块属于底场图像,即MWndex > Mbffidth*MbHeight/2时,判断当前块后向参考索引标记为1的场的对应参考块的参考索引是否为0,如果为0, 则当前块的后向参考场是参考索引标记为0的场,参考块相对应的宏块位置由 Mb Index- (Mbff i dth*MbHe i ght/2)得出,DistancehdexBw 等于 DistancehdexBwO ;否则,当前块的后向参考场是参考索引标记为1的场,DistancehdexBw等于DistancehdexBwl ; (5)、对场垂直矢量偏移补偿deltal和delta2定义如下 如果当前块所在的场为顶场,并且mvRef指向的场为底场,则deltal = 2 ; 如果当前块所在的场为底场,并且mvRef指向的场为顶场,则deltal = _2 ; 如果当前块所在的场为顶场,并且mvFw/mvBw指向的场为底场,则delta2 = 2 ; 如果当前块所在的场为底场,并且mvFw/mvBw指向的场为顶场,则delta2 = -2 ; 其中mvFw为当前块的前向运动矢量,mvBw为当前块的后向运动矢量;第二步 ⑴、BlockDistanceRef = (DistanceIndexCoI-DistanceIndexRef+512)% 512 ; BlockDistanceFw = (DistanceIndexCur-DistanceIndexFw+512)% 512 ; BlockDistanceBw = (DistanceIndexBw-DistanceIndexCur+512)% 512 ; 其中,DistencehdexCol为后向参考帧中与当前块同位的块的距离索弓丨, DistencehdexRef为后向参考帧中同位块的运动矢量指向的块的距离索弓丨,DistancehdexCur为当前块的距离索弓丨,DistancehdexFw为当前块的前向参考块的距离索引,DistancehdexBw为当前块的后向参考块的距离索引,BlockDistanceRef为后向参考块与其自身参考块的块距离,BlockDistanceFw为当前块与其前向参考块的块距离, BlockDistanceBw为当前块与其后向参考块的块距离;0)、如果当前块所在图像的图像结构等于1,并且后向参考图像的图像结构等于0,则 mvRef_y = mvRef—y*2 ;(3)、如果当前块所在图像的图像结构等于0,并且后向参考图像的图像结构等于1,则 mvRef_y = mvRef_y/2 ;(1)、当前块的前向运动矢量mvFw为(mvFw_x,mvFw_y); 如果mvRef_x小于0,则mvFw_x = -(((16384/BlockDistanceRef)*(l-mvRef_x*BlockDistanceFw)-l) > > 14);否则mvFw_x = ((16384/BlockDistanceRef)*(l+mvRef_x*BlockDistanceFw)-1) >> 14; 如果(mvRef_y+deltal)小于 0,则mvFw_y = - ( ( (16384/BlockDistanceRef) * (1- (mvRef_ y+deltal)^BlockDistanceFw)-1) >> 14)_delta2 ;否则mvFw_y = ( ( (16384/BlockDistanceRef) * (1+ (mvRef_ y+deltal)氺BlockDistanceFw)_1) >> 14)-delta2 ;O)、当前块的后向运动矢量mvBw为(mvBw_x,mvBw_y); 如果mvRef_x小于0,则mvBw_x = ((16384/BlockDistanceRef)*(l-mvRef_x*BlockDistanceBw)-l) >> 14; 否则mvBw_x = -(((16384/BlockDistanceRef)*(l+mvRef_x*BlockDistanceBw)-l) > >14);如果(mvRef_y+deltal)小于 0,则m ν B w _ y = ( ( (16384/BlockDi stanceRef) * (1- (mvRef_ y+deltal)氺BlockDistanceBw)-1) >> 14)-delta2 ; 否则mν Bw_y = - ( ( ( 1 6 3 8 4 /B 1 οckDi sta ηceRef) * ( 1 + ( mν Ref_ y+deltal)^BlockDistanceBw)-1) >> 14_delta2。
全文摘要
本发明涉及一种在跳过或直接模式中选择参考场及时域运动矢量预测的方法,首先判断当前宏块类型或当前子块类型,后根据不同类型进行下列操作根据当前块的图像结构,给当前块的不同数值赋值;并定义对场垂直矢量偏移补偿;定义后向参考块与其自身/前向/后向参考块的块距离的公式;对mvRef_y的赋值;根据公式及赋值,计算当前块的前/后向运动矢量。用类似的方法可以计算出当前块的后向运动矢量mvBw。对于典型的隔行视频序列,当直接和跳过模式较适用时,本发明能从总体提高编码效率10%到20%,效果非常显著。而本发明能消除这种低场视频的严重跳动失真,大幅提高原有AVS基准档次场编码码流的主观评价得分。
文档编号H04N7/36GK102447902SQ201110300629
公开日2012年5月9日 申请日期2011年9月30日 优先权日2011年9月30日
发明者曾志华 申请人:曾志华
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1