视频编码方法及装置、解码方法及装置制造方法及图纸

技术编号:23473177 阅读:24 留言:0更新日期:2020-03-06 14:20
本公开提出了一种视频编码方法及装置、解码方法及装置,其中,所述编码方法,包括:确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差;根据所述基准运动矢量精度和运动矢量差确定编码运动矢量精度,并根据所述编码运动矢量精度对所述运动矢量差进行处理;以及将所述基准运动矢量精度信息和所述处理后的运动矢量差信息写入码流。本公开视频编码方法及装置、解码方法及装置减少了传输开销,提高了编解码性能。

Video coding method and device, decoding method and device

【技术实现步骤摘要】
视频编码方法及装置、解码方法及装置
本公开涉及视频编解码
,特别是涉及一种视频编解码中运动信息的编码方法及装置、解码方法及装置。
技术介绍
由于在自然视频中,图像与图像之间存在很高的相似性。因此在视频压缩时,为了去除图像与图像之间的信息冗余,往往要进行帧间预测。所谓的帧间预测就是利用上一帧已经编码过的图像对当前要编码的图像进行预测,然后将预测的误差传递给解码器。比起直接传输当前图像的内容,预测误差的信息量要小得多,这样就达到了压缩的目的。实际在进行帧间预测时,编码器需要对每个图像块在之前已编码的参考图像中寻找一个尽量与之匹配的参考块,这样才能最大限度地减少预测误差。当前块与参考块之间的位置差称为运动矢量,运动矢量信息也需要在码流中传输,这样解码器才能知道当前块的参考块是哪个块。所以,虽然帧间预测这一技术减少了在码流中传输的像素信息,但是却增加了需要传输的新的信息。随着预测技术的发展,预测误差越来越小,这样运动矢量信息在码流中所占的比例就越来越大了。所以,运动矢量信息也需要压缩。目前的方法是对运动矢量进行预测,将运动矢量预测值和运动矢量的差值写入码流,这一差值称为运动矢量差。运动矢量差的大小要比原运动矢量大小得多,这样就起到了对运动矢量信息的压缩作用。在提高帧间预测效率方面,为了能够得到与当前块更为匹配的参考块,目前的编解码器都采用了分像素帧间预测,也就说参考块在参考图像中的位置并不一定是整像素,也可以是分像素。为了支持分像素的参考块,运动矢量的精度也必须是分像素的,进而运动矢量差也是分像素精度的。这样,一方面由于分像素位置的参考块的使用提高了帧间预测的效率降低了预测误差,另一方面由于分像素精度的运动矢量差的使用而增加了运动矢量信息在码流中传输时所需要的比特数。为了平衡这一矛盾,视频编码领域的专家们又提出了变精度的运动矢量技术。所谓变精度的运动矢量精度技术就是说码流中传输的运动矢量差以及实际编解码时使用的运动矢量的精度是非固定的,不同的图像块可以采用的不同的运动矢量精度。这样,需要使用精细的预测的图像块就传输一个高像素精度的运动矢量差以提高帧间预测的效率,不需要使用精细预测的图像块就使用可以传输一个低像素精度的运动矢量差以减少传输比特。变精度运动矢量技术一般有两种实现方法:一种是由编码器根据当前图像块的情况来选择运动矢量精度,然后在码流中传输所使用的精度值(称为显性指示方式);另一种是编解码器直接根据码流中传输的运动矢量差的大小来推断当前所使用的精度(称为隐形推断方式),比如当运动矢量差大于某个阈值时该运动矢量差为低像素精度运动矢量,当运动矢量差小于某阈值时该运动矢量差为高像素精度运动矢量。然而,尽管变精度的运动矢量技术能够一定程度上解决预测效率和运动矢量传输开销之间的矛盾,但是上述现有的两种实现方法仍存在以下不足之处。显性传输方式虽然能够精准地为每个图像块选择最优的运动矢量精度,但是需要在码流中传输额外的比特来指示运动矢量差所使用的精度,特别是当支持许多个不同的运动矢量精度时,这一额外的比特开销会变得十分巨大。而隐形推断方式,虽然不增加额外的比特开销,但是推断出来的情况并不一定适合当前的图像块的。比如,上文中所举例的根据运动矢量差的大小来推断运动矢量精度,事实上,大的运动矢量差的图像块有可能更适用于高精度帧间预测,而小运动矢量差的图像块有可能更适用于低精度帧间预测。此外,当前运动矢量差正好为零时,运动矢量精度是不起实际作用的。因为任何精度下的零值都等于零。但是在显性指示方式中,每个图像块都需要传输运动矢量精度信息,这样对于运动矢量差正好为零的图像块,就白白多传输了运动矢量精度信息,这样反而会降低最终编码效率。
技术实现思路
(一)要解决的技术问题本公开提供了一种编码方法及装置、解码方法及装置,以至少部分解决以上所提出的技术问题。(二)技术方案根据本公开的一个方面,提供了一种视频编码方法,包括:确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差;根据所述基准运动矢量精度和运动矢量差确定编码运动矢量精度,并根据所述编码运动矢量精度对所述运动矢量差进行处理;以及将所述基准运动矢量精度信息和所述处理后的运动矢量差信息写入码流。在一些实施例中,所述确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差的步骤包括:遍历所有候选基准运动矢量精度,对于每个候选基准运动矢量精度,通过运动搜索的方法确定该精度下的最优候选运动矢量;进行运动矢量预测得到运动矢量预测值并计算运动矢量差;比较采用不同候选基准运动矢量精度下的最优候选运动矢量对当前块进行编码的编码代价,以此确定最优候选基准运动矢量精度下的最优候选运动矢量,从而确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差;或者所述确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差的步骤包括:遍历所有候选运动矢量,为每个候选运动矢量在所有的候选基准运动矢量精度中确定最优候选基准运动矢量精度;对各候选运动矢量在所述最优候选基准运动矢量精度下进行预测得到运动矢量预测值并计算运动矢量差;比较采用各自最优候选基准运动矢量精度下的各候选运动矢量进行编码的编码代价,以此确定最优候选运动矢量及其对应的最优候选基准运动矢量精度,从而确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差。在一些实施例中,所述根据基准运动矢量精度和运动矢量差确定编码运动矢量精度包括:根据所述运动矢量差的大小来对所述基准运动矢量精度进行调节,将调节后的基准运动矢量精度作为所述的编码运动矢量精度。在一些实施例中,在根据所述运动矢量差的大小来对所述基准运动矢量精度进行调节时,将所述运动矢量差与一阈值进行比较,若所述运动矢量差大于所述阈值,则降低所述基准运动矢量精度并将降低后的基准运动矢量精度作为所述编码运动矢量精度,若所述运动矢量差小于所述阈值,则直接将所述基准运动矢量精度作为所述编码运动矢量精度;或者若所述运动矢量差大于所述阈值,则将基准运动矢量精度作为所述编码运动矢量精度,若所述运动矢量差小于或等于所述阈值,则提高基准运动矢量精度并将提高后的基准运动矢量精度作为所述编码运动矢量精度;或者若所述运动矢量差大于所述阈值,则降低基准运动矢量精度并将降低后的基准运动矢量精度作为所述编码运动矢量精度,若运动矢量差小于或等于所述阈值,则提高基准运动矢量精度并将提高后的基准运动矢量精度作为所述编码运动矢量精度。在一些实施例中,在根据所述基准运动矢量精度和运动矢量差确定编码运动矢量精度时,对部分基准运动矢量精度进行调节并将调节后的基准运动矢量精度作为编码运动矢量精度。在一些实施例中,所述对部分基准运动矢量精度进行调节并将调节后的基准运动矢量精度作为编码运动矢量精度包括:对最低精度的基准运动矢量精度进行调节并将调节后的基准运动矢量精度作为编码运动矢量精度;或者所有支持的候选基准运动矢量精度为四分之一像素、二分之一像素、整像素、二像素和四像素;若本文档来自技高网
...

【技术保护点】
1.一种视频编码方法,包括:/n确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差;/n根据所述基准运动矢量精度和运动矢量差确定编码运动矢量精度,并根据所述编码运动矢量精度对所述运动矢量差进行处理;以及/n将所述基准运动矢量精度信息和所述处理后的运动矢量差信息写入码流。/n

【技术特征摘要】
1.一种视频编码方法,包括:
确定基准运动矢量精度和所述基准运动矢量精度下的运动矢量差;
根据所述基准运动矢量精度和运动矢量差确定编码运动矢量精度,并根据所述编码运动矢量精度对所述运动矢量差进行处理;以及
将所述基准运动矢量精度信息和所述处理后的运动矢量差信息写入码流。


2.一种视频编码装置,包括:
基准运动矢量精度和运动矢量差确定单元,用于确定基准运动矢量精度和运动矢量差;
编码运动矢量精度确定和运动矢量差处理单元,用于根据确定的运动矢量差和基准运动矢量精度确定编码运动矢量精度并根据编码运动矢量精度对运动矢量差进行处理;以及
码流写入单元,用于将确定的基准运动矢量精度信息和处理后的运动矢量差信息写入码流。


3.一种视频解码方法,包括以下步骤:
从码流中解析得到基准运动矢量精度信息和运动矢量差信息,并确定基准运动矢量精度和运动矢量差;
根据运动矢量差和基准运动矢量精度确定编码运动矢量精度,并根据编码运动矢量精度对运动矢量差进行处理;
根据处理后的运动矢量差导出运动矢量;以及
根据导出的运动矢量对当前解码块进行解码。


4.根据权利要求3所述的解码方法,其中,所述根据运动矢量差和基准运动矢量精度确定编码运动矢量精度包括:根据所述运动矢量差的大小对所述基准运动矢量精度进行调节,将调节后的基准运动矢量精度作为所述的编码运动矢量精度。


5.根据权利要求4所述的解码方法,其中,在所述根据运动矢量差的大小对所述基准运动矢量精度进行调节时,将所述运动矢量差与一阈值进行比较,
若所述运动矢量差大于所述阈值,则降低所述基准运动矢量精度并将降低后的基准运动矢量精度作为所述编码运动矢量精度,若所述运动矢量差小于或等于所述阈值,则直接将所述基准运动矢量精度作为所述编码运动矢量精度;或者
若所述运动矢量差大于所述阈值,则将基准运动矢量精度作为所述编码运动矢量精度,若所述运动矢量差小于或等于所述阈值,则提高基准运动矢量精度并将提高后的基准运动矢量精度作为所述编码运动矢量精度;或者
若所述运动矢量差大于所述阈值,则降低基准运动矢量精度并将降低后的基准运动矢量精度作为所述编码运动矢量精度,若运动矢量差小于或等于所述阈值,则提高基准运动矢量精度并将提高后的基准运动矢量精度作为所述编码运动矢量精度。


6.根据权利要求4所述的解码方法,其中,在根据运动矢量差和基准运动矢量精度确定编码运动矢量精度时,对部分基准运动矢量精度进行调节并将调节后的基准运动矢量精度作为编码运动矢量精度。


7.根据权利要求6所述的解码方法,所述对部分基准运动矢量精度进行调节并将调节后的基准运动矢量精度作为编码运动矢量精度,包括
对最低精度的基准运动矢量精度进行调节并将调节后的基准运动矢量精度作为编码运动矢量精度,对其余基准运动矢量精度不做调节直接作为编码运动矢量精度;或者
所有支持的候选基准运动矢量精度为四分之一像素、二分之一像素、整像素、二像素和四像素;若当前块的基准运动矢量精度为四分之一像素、二分之一像素或整像素,则编码运动矢量精度与基准运动矢量精度相同;若当前块的基准运动矢量精度为二像素或四像素,则比较运动矢量差与一阈值,当运动矢量差大于阈值时,分别确定编码运动矢量精度为四像素或八像素,当运动矢量精度小于或等于阈值时,确定编码运动矢量精度为基准运动矢量精度;或者
所有支持的候选基准运动矢量精度为四分之一像素、二分之一像素、整像素、二像素和四像素;若当前块的基准运动矢量精度为四分之一像素、二分之一像素、整像素或二像素,则编码运动矢量精度与基准运动矢量精度相同;若当前块的基准运动矢量精度为四像素,则比较运动矢量差与阈值,当运动矢量差大于阈值时,分别确定编码运动矢量精度为八像素,当运动矢量精度小于或等于阈值时,确定编码运动矢量精度为仍为四像素。


8.根据权利要求3至7中任一项所述的解码方法,其中,所述根据所述编码运动矢量精度对运动矢量差进行处理的步骤包括:
比较所述基准运动矢量精度和所述编码运动矢量精度;以及
根据比较结果对运动矢量差进行处理。


9.根据权利要求8所述的解码方法,其中,所述根据比较结果对运动矢量差进行处理包括:若编码运动矢量精度低于基准运动矢量精度,对运动矢量差超过阈值的部分进行左移。


10.根据权利要求9所述的解码方法,其中,若编码运动矢量精度低于基准运动矢量精度时,对运动矢量差超过阈值的部分按下式方式进行左移:
mvD=((mvd-TH)<<1)+TH+(2pmv-pmvc)=2mvd-TH+(2pmv-pmvc);
式中,pmv为基准运动矢量精度下的运动矢量预测值,pmvc为编码运动矢量精度下的运...

【专利技术属性】
技术研发人员:陈杰王凡阿尼斯·马亨德拉·泰姆斯
申请(专利权)人:北京三星通信技术研究有限公司三星电子株式会社
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1