一种帧级运动矢量精度比特分配的优化方法技术

技术编号:22105350 阅读:42 留言:0更新日期:2019-09-14 04:32
本发明专利技术属于视频编解码技术领域,涉及一种帧级运动矢量精度比特分配的优化方法。本发明专利技术通过统计序列中三个运动矢量差值精度的使用频率,自适应地调整比特分配,减少传输运动矢量所需比特数,进一步提高了编码性能。特别地,本发明专利技术在4K序列等超清序列上有更大的编码性能增益,符合视频超高清发展趋势。

An Optimal Bit Allocation Method for Frame-Level Motion Vector Accuracy

【技术实现步骤摘要】
一种帧级运动矢量精度比特分配的优化方法
本专利技术属于视频编解码
,涉及一种基于帧级运动矢量精度比特分配的优化方法。
技术介绍
在现有的视频框架中,使用帧间预测技术消除视频中的时域冗余,目前普遍采用基于块匹配的运动估计算法,即在已编码重建帧中为当前编码块寻找一个最佳匹配块作为参考,参考块与当前编码块之间的位移称为运动矢量(MotionVector,MV),当前编码块与参考块之间的差值称为预测残差,编码器只需要将运动矢量和预测残差传输至解码端,即可在解码端恢复出编码块的像素值。运动矢量精度在运动估计和运动补偿中起着关键作用,但是帧与帧之间运动并不只是整数,使用简单的整像素运动矢量精度难以满足物体运动的多样性,运动矢量精度自适应分配使得运动估计更加准确,编码运动矢量所需要的比特数下降。在最早的视频编码标准H.261中,整数像素运动矢量精度用于运动补偿,其中预测仅在全像素位置执行。在该方法下,尽管时域冗余已经减小到一定程度,但帧与帧之间的位移可能并不总是位于整数像素位置,所以时域冗余相关技术有待进一步提高。鉴于此,在MPEG-2和H.263中引入了1/2像素运动矢量精度,这显著提高了编码效率。随后,自H.264/AVC采用1/4-pel运动矢量精度并保留在最新的H.265/HEVC中。在H.265/HEVC的开发过程中,还研究了1/8像素运动矢量精度。然而,由于额外的计算复杂性和有限的性能改进,它最终没有被采用。虽然具有高精度的运动矢量可以预测的更加准确,但它们需要更多的比特来编码表示更高精度的运动矢量。自适应运动矢量精度技术在过去十年中已成为一个活跃的研究课题。J.Ribas-Corbera等人也曾提出过一种块级自适应运动矢量精度方案,运动矢量精度的选择基于率失真优化(RDO),编码器将选择运动矢量精度的索引传输至解码端。但是引入的比特开销限制了该方法的潜在增益。在最新的视频编码标准H.266/VVC的探索过程中,Qualcomm提出了局部自适应运动矢量精度的方案,即运动矢量残差分辨率能够以1/4,整数或4倍亮度为单位编码,但是该方法中运动矢量残差分辨率是在CU级控制,即对于每一个CU都需要传输一个flag来表示所使用的运动矢量精度,这将带来极大的比特开销。因此,比特消耗与编码效益之间的平衡问题成为进一步的研究重点,在保证良好编码效益的同时控制比特消耗,从而使编码性能更优。
技术实现思路
为了改善现有帧级运动矢量精度自适应分配方法中,对每个CU都需要传输一个flag表征所采用的运动矢量精度所带来的巨大比特开销的缺点,进一步提升编码性能,本专利技术拟对CU级flag所占用的比特进行自适应分配,降低比特开销。本专利技术的一种帧级运动矢量精度比特分配的优化方法具体步骤如下:S1、在编码端统计序列中每一帧中使用的1/4像素运动矢量精度信息,1像素运动矢量精度信息,4像素运动矢量精度信息,分别用Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4)来表示,其中i表示第i帧。如表1所示,在编解码器中,使用一个可变长的flag来传输运动矢量精度,其中1/4像素精度用1比特的flag来传输,1像素精度和4像素精度使用2比特的flag来传输。表1S2、根据步骤S1中统计的编码端每帧中使用的运动矢量精度信息,对下一帧中传输该运动矢量差值精度精度信息的flag所占用的比特重新进行分配。具体步骤如下:S21、统计当前第i帧中使用各个运动矢量差值的CU总数,即第i帧中使用1/4像素、1像素、4像素运动矢量差值精度的CU数目分别为Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4),如果此时第i帧中使用Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(1/4),即在第i+1帧中,如表1所示,使用1比特的flag来传输1/4像素运动矢量精度,使用2比特的flag来传输1像素和4像素运动矢量精度。S22、如果第i帧中Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(1),则在第i+1帧中,如表2所示,使用1比特的flag来传输1像素运动矢量精度,使用2比特的flag来传输1/4像素和4像素运动矢量精度。表2S23、如果第i帧中Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(4),则在第i+1帧中,如表3所示,使用1比特的flag来传输4像素运动矢量精度,使用2比特的flag来传输1/4像素和1像素运动矢量精度。表3S3、在解码端做类似编码端步骤S1的操作,在解码端中统计序列当前第i帧中使用各个运动矢量差值的CU总数,即第i帧中使用1/4像素、1像素、4像素运动矢量差值精度的CU数目,分别用Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4)来表示,其中i表示第i帧。S4、根据步骤S3中统计的解码端每帧中使用的运动矢量精度信息,对传输该运动矢量精度精度信息的flag所占用的比特重新进行分配,与编码端保持一致。具体步骤如下:S41、如果第i帧中Max(Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4))=Decoder_SUMi(1/4),则在第i+1帧中,传输1/4像素运动矢量精度的flag分配1比特,传输1像素和4像素运动矢量精度的flag分配2比特。S42、如果第i帧中Max(Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4))=Decoder_SUMi(1),则在第i+1帧中,如表4所示,传输1像素运动矢量精度的flag分配1比特,传输1/4像素和4像素运动矢量精度的flag分配2比特。表4S43、如果第i帧中Max(Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4))=Decoder_SUMi(4),则在第i+1帧中,如表5所示,传输4像素运动矢量精度的flag分配1比特,传输1/4像素和1像素运动矢量精度的flag分配2比特。表5本专利技术的有益效果为,本专利技术通过统计序列中三个运动矢量差值精度的使用频率,自适应地调整比特分配,减少传输运动矢量所需比特数,进一步提高了编码性能。特别地,本专利技术在4K序列等超清序列上有更大的编码性能增益,符合视频超高清发展趋势。附图说明图1为实施例中编码端决策流程图;图2为实施例中解码端决策流程图;图3为实施例中随机接入配置下序列FoodMarket4在QP22的运动矢量统计信息;图4为实施例中随机接入配置下序列FoodMarket4在QP37的运动矢量统计信息;图5实施例中随机接入配置下序列CampfireParty在QP22的运动矢量统计信息;图6实施例中随机接入配置下序列BasketballDrive在QP22的运动矢量统计信息;图7实施例中随机接入配置下序列Bas本文档来自技高网
...

【技术保护点】
1.一种帧级运动矢量精度比特分配的优化方法,其特征在于,包括以下步骤:S1、在编码端统计序列中每一帧中使用的1/4像素运动矢量精度的次数,1像素运动矢量精度的次数,4像素运动矢量精度次数,分别用Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4)来表示,其中i表示第i帧;在编解码器中,使用一个可变长的flag来传输运动矢量精度,其中1/4像素精度用1比特的flag来传输,1像素精度和4像素精度使用2比特的flag来传输;S2、根据步骤S1中统计的编码端每帧中使用的运动矢量精度次数信息,对下一帧中传输该运动矢量差值精度精度信息的flag所占用的比特重新进行分配,具体为:S21、统计当前第i帧中使用各个运动矢量差值的CU总数,即第i帧中使用1/4像素、1像素、4像素运动矢量差值精度的CU数目分别为Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4),如果此时第i帧中使用Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(1/4),即在第i+1帧中,使用1比特的flag来传输1/4像素运动矢量精度,使用2比特的flag来传输1像素和4像素运动矢量精度;对Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))的值进行判断,若第i帧中Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(1),则进入步骤S22;若第i帧中Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(4),则进入步骤S23;S22、在第i+1帧中,使用1比特的flag来传输1像素运动矢量精度,使用2比特的flag来传输1/4像素和4像素运动矢量精度;S23、在第i+1帧中,使用1比特的flag来传输4像素运动矢量精度,使用2比特的flag来传输1/4像素和1像素运动矢量精度;S3、在解码端,与步骤S1同理,在解码端中统计序列当前第i帧中使用各个运动矢量差值的CU总数,即第i帧中使用1/4像素、1像素、4像素运动矢量差值精度的CU数目,分别用Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4)来表示,其中i表示第i帧;S4、根据步骤S3中统计的解码端每帧中使用的运动矢量精度信息,对传输该运动矢量精度精度信息的flag所占用的比特重新进行分配,与编码端保持一致;具体为:对Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))的值进行判断,若第i帧中Max(Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4))=Decoder_SUMi(1/4),则进入步骤S41;若第i帧中Max(Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4))=Decoder_SUMi(1),则进入步骤S42;若第i帧中Max(Decoder_SUMi(1/4),Decoder_SUMi(1),Decoder_SUMi(4))=Decoder_SUMi(4),则进入步骤S43;S41、在第i+1帧中,传输1/4像素运动矢量精度的flag分配1比特,传输1像素和4像素运动矢量精度的flag分配2比特;S42、在第i+1帧中,传输1像素运动矢量精度的flag分配1比特,传输1/4像素和4像素运动矢量精度的flag分配2比特;S43、在第i+1帧中,传输4像素运动矢量精度的flag分配1比特,传输1/4像素和1像素运动矢量精度的flag分配2比特。...

【技术特征摘要】
1.一种帧级运动矢量精度比特分配的优化方法,其特征在于,包括以下步骤:S1、在编码端统计序列中每一帧中使用的1/4像素运动矢量精度的次数,1像素运动矢量精度的次数,4像素运动矢量精度次数,分别用Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4)来表示,其中i表示第i帧;在编解码器中,使用一个可变长的flag来传输运动矢量精度,其中1/4像素精度用1比特的flag来传输,1像素精度和4像素精度使用2比特的flag来传输;S2、根据步骤S1中统计的编码端每帧中使用的运动矢量精度次数信息,对下一帧中传输该运动矢量差值精度精度信息的flag所占用的比特重新进行分配,具体为:S21、统计当前第i帧中使用各个运动矢量差值的CU总数,即第i帧中使用1/4像素、1像素、4像素运动矢量差值精度的CU数目分别为Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4),如果此时第i帧中使用Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(1/4),即在第i+1帧中,使用1比特的flag来传输1/4像素运动矢量精度,使用2比特的flag来传输1像素和4像素运动矢量精度;对Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))的值进行判断,若第i帧中Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(1),则进入步骤S22;若第i帧中Max(Encoder_SUMi(1/4),Encoder_SUMi(1),Encoder_SUMi(4))=Encoder_SUMi(4),则进入步骤S23;S22、在第i+1帧中,使用1比特的flag来传输1像...

【专利技术属性】
技术研发人员:朱策蒋妮邓玲玲王秋月刘凯丁可可
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

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

1