本发明涉及通信领域,具体而言,涉及一种长度确定方法及装置。
背景技术:
视频序列中每帧图像的内容在时域方向上存在前向、后向很强的相关性。因此,为了编码性能的提升,即编码比特尽可能逼近高阶熵,用帧间预测方式来消除图像时域冗余,已经成为很重要的技术手段,被广泛使用。
帧间预测主要包括两个方面:参考帧的数目和预测结构。参考帧的数目是指帧间预测中一帧原始图像可以参考的重构帧数量。预测结构是指一帧原始图像采用哪些重构图像作运动补偿且包含它们的组织形式。
分层级(hieratical)的帧间预测结构被引入以来,由于其显著的编码性能增益,目前已经被广泛用到各种主流编码器中。hieratical编码结构以gop为单位构建二叉树状的层次结构,序列中各帧图像根据其所在二叉树中的层级来决定编码使用的帧间预测方式和量化参数(qp)。通常qp值由基准qp与其偏移量(qpoffset)之和计算得出。
目前的各种编码策略中多采用预设固定的gop长度和参考结构,在整个编码过程中不作改变,编码的性能受到一定的限制。
针对相关技术中,编码过程中由于gop长度固定而导致的编码性能不高的问题,尚未提出有效的解决方案。
技术实现要素:
为了解决上述技术问题,本发明提供了一种长度确定方法及装置。
根据本发明的一个方面,提供了一种长度确定方法,包括:获取待编码图像的运动特征,其中,所述运动特征用于表征所述待编码图像和该待编码图像的原始图像之间的运动变化程度;根据所述运动特征确定所述待编码图像进行编码所采用的图像组gop长度。
优选地,获取待编码图像的运动特征,包括:将所述待编码图像划分为n个长度为n的正方形,其中,将该正方形作为所述待编码图像的子块;对于所述待编码图像中的每一个子块,确定每一个字块的相对运动距离dj,其中,j为大于0小于或者等于n的正整数。
优选地,确定每一个字块的相对运动距离dj,包括:在所述原始图像中确定子块的最佳匹配块,记录所述最佳匹配块的运动矢量mj=(△x,△y),其中,△x表示所述子块与所述最佳匹配块在x轴方向上的位移偏移量,△y表示所述子块与所述最佳匹配块在y轴方向上的位 移偏移量;根据以下公式确定所述相对运动距离dj:
优选地,根据所述运动特征确定所述待编码图像进行编码所采用的图像组gop长度,包括:根据确定的相对运动距离dj确定一帧所述待编码图像的运动能量e;根据所述运动能量e以及层次数k确定所述gop长度。
优选地,根据确定的相对运动距离dj确定一帧所述待编码图像的运动能量e,包括:根据以下公式确定:
优选地,根据所述运动能量e以及层次数k确定所述gop长度,包括:根据以下公式确定
根据本发明的另一个方面,还提供了一种长度确定装置,包括:获取模块,用于获取待编码图像的运动特征,其中,所述运动特征用于表征所述待编码图像和该待编码图像的原始图像之间的运动变化程度;确定模块,用于根据所述运动特征确定所述待编码图像进行编码所采用的图像组gop长度。
优选地,所述获取模块,包括:划分单元,用于将所述待编码图像划分为n个长度为n的正方形,其中,将该正方形作为所述待编码图像的子块;第一确定单元,用于对于所述待编码图像中的每一个子块,确定每一个字块的相对运动距离dj,其中,j为大于0小于或者等于n的正整数。
优选地,所述第一确定单元,包括:记录子单元,用于在所述原始图像中确定子块的最佳匹配块,记录所述最佳匹配块的运动矢量mj=(△x,△y),其中,△x表示所述子块与所述最佳匹配块在x轴方向上的位移偏移量,△y表示所述子块与所述最佳匹配块在y轴方向上的位移偏移量;确定子单元,用于根据以下公式确定所述相对运动距离dj:
优选地,所述确定模块,包括:第二确定单元,用于根据确定的相对运动距离dj确定一帧所述待编码图像的运动能量e;第三确定单元,用于根据所述运动能量e以及层次数k确定所述gop长度。
通过本发明,能够根据待编码图像的运动特征来灵活调整gop的长度,采用上述技术方案,解决了相关技术中,编码过程中由于gop长度固定而导致的编码性能不高的问题,进而提高了编码性能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为根据本发明实施例的长度确定方法的流程图;
图2为根据本发明实施例的长度确定装置的结构框图;
图3为根据本发明实施例的长度确定装置的获取模块20的结构框图;
图4为根据本发明实施例的长度确定装置的确定模块22的结构框图;
图5为根据本发明优选实施的运动补偿的示意图;
图6为根本发明优选实施例的视频编码主流程图;
图7为根本发明优选实施例的的核心流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
在本发明实施例中,还提供了一种长度确定方法,图1为根据本发明实施例的长度确定方法的流程图,如图1所示,包括以下步骤:
步骤s102,获取待编码图像的运动特征,其中,上述运动特征用于表征上述待编码图像和该待编码图像的原始图像之间的运动变化程度;
步骤s104,根据上述运动特征确定上述待编码图像进行编码所采用的图像组gop长度。
通过上述各个步骤,能够根据待编码图像的运动特征来灵活调整gop的长度,采用上述技术方案,解决了相关技术中,编码过程中由于gop长度固定而导致的编码性能不高的问题,进而提高了编码性能。
在本发明实施例中,获取待编码图像的运动特征,可以通过以下技术方案实现:将上述 待编码图像划分为n个长度为n的正方形,其中,将该正方形作为上述待编码图像的子块;对于上述待编码图像中的每一个子块,确定每一个字块的相对运动距离dj,其中,j为大于0小于或者等于n的正整数。
优选地,确定每一个字块的相对运动距离dj,可以通过以下方案实现:在上述原始图像中确定子块的最佳匹配块,记录上述最佳匹配块的运动矢量mj=(△x,△y),其中,△x表示上述子块与上述最佳匹配块在x轴方向上的位移偏移量,△y表示上述子块与上述最佳匹配块在y轴方向上的位移偏移量;根据以下公式确定上述相对运动距离dj:
在本发明实施例中,根据上述运动特征确定上述待编码图像进行编码所采用的图像组gop长度,包括:根据确定的相对运动距离dj确定一帧上述待编码图像的运动能量e;根据上述运动能量e以及层次数k确定上述gop长度。
可选地,根据确定的相对运动距离dj确定一帧上述待编码图像的运动能量e,包括:根据以下公式确定:
优选地,根据上述运动能量e以及层次数k确定上述gop长度,包括:根据以下公式确定
以下结合一示例对上述技术方案进行详细说明,但不用于限定本发明实施例的保护范围。
本发明示例通过信源图像(相当于上述实施例的待编码图像)的运动矢量计算,结合重构图像的运动失真统计,提出一种自适应调节gop长度的方法。与固定gop长度的帧间预测编码相比较,编码性能有明显增益。
主要方案包括以下步骤:
1)假设图像的分辨率以宽w高h的乘积形式表示。将每帧图像分为大小为n×n正方形子块,其中n表示块的宽度。可计算得出一帧图像含有的子块总数n,由公式(1)给出。
2)将当前帧中的每一个子块在相邻帧(前一帧)的原始图像中寻找其最佳匹配块,记录其运动矢量mj=(δx,δy)j,其中j表示一个子块在帧中的序号,1≤j≤n。运动估值采用最小mse或mad作为代价,dj记为子块j的运动估值代价,也称为残差。
3)用公式(2)计算块j所在单位时间(帧率的倒数)内运动的距离。
其中,dj表示块j运动矢量的大小。一帧图像中的每一个块都将具有其独立的dj值。
4)定义e为一帧图像的运动能量,其值可由公式(3)给出。
那么,为下一个gop所决策的层次数由e所决定。由于gop的层次数应该绑定在合理的范围,不失一般性用公式(4)来做层次数k的绑定操作。由公式(4)给出。
其中,
5)gop的长度可以由公式(5)决定。
l=2k(5)
至此,完成了gop长度的自适应计算。
实际上,对不同运动特性的图像序列,选择不同长度的图像组,按照规范的hieratical层级方式进行,性能差异可能很大。运动变化比较剧烈的序列采用较小的gop长度会取得较好的编码性能;对运动变化比较缓慢的序列采用较大的gop长度会取得较好的编码性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必需的。
在本实施例中还提供了一种长度确定装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2为根据本发明实施例的长度确定装置的结构框图。如图2所示,该装置包括:
获取模块20,用于获取待编码图像的运动特征,其中,所述运动特征用于表征所述待编码图像和该待编码图像的原始图像之间的运动变化程度;
确定模块22,用于根据所述运动特征确定所述待编码图像进行编码所采用的图像组gop长度。
通过上述各个模块的作用,能够根据待编码图像的运动特征来灵活调整gop的长度,采用上述技术方案,解决了相关技术中,编码过程中由于gop长度固定而导致的编码性能不高的问题,进而提高了编码性能。
图3为根据本发明实施例的长度确定装置的获取模块20的结构框图,如图3所示,获取模块20,包括:划分单元200,用于将所述待编码图像划分为n个长度为n的正方形,其中,将该正方形作为所述待编码图像的子块;第一确定单元202,用于对于所述待编码图像中的每一个子块,确定每一个字块的相对运动距离dj,其中,j为大于0小于或者等于n的正整数。
为了更好的理解上述方案,如图3所示,第一确定单元202,包括:记录子单元2020,用于在所述原始图像中确定子块的最佳匹配块,记录所述最佳匹配块的运动矢量mj=(△x,△y),其中,△x表示所述子块与所述最佳匹配块在x轴方向上的位移偏移量,△y表示所述子块与所述最佳匹配块在y轴方向上的位移偏移量;确定子单元2022,用于根据以下公式确定所述相对运动距离dj:
图4为根据本发明实施例的长度确定装置的确定模块22的结构框图,确定模块22,包括:第二确定单元220,用于根据确定的相对运动距离dj确定一帧所述待编码图像的运动能量e;第三确定单元222,用于根据所述运动能量e以及层次数k确定所述gop长度。
为了更好的理解上述长度确定方法及装置所体现的技术方案,以下结合优选实施例进行说明。
图5为根据本发明优选实施的运动补偿的示意图。t时刻图像中的任意块将在t-1时刻图像中进行最小失真搜索,获得最小失真匹配块。最小失真可以用mad或者mse表示。这时,将计算并得出上述两个块的矢量距离,如图5中所示mv=(δx,δy)。
图6为根本发明优选实施例的视频编码主流程图,主要包括以下步骤:
步骤s602:根据gop长度l值获取整个gop图像;
步骤s604:对获取的gop图像进行编码,编码方法采用通用编码技术;
步骤s606:判断是否编码完所有图像,如未编码完,则转到步骤s608,如果编码完,则转到步骤s610;
步骤s608:更新计算下一个gop的长度l值,继续编码;
步骤s610:结束。
图7为根本发明优选实施例的核心流程图,即如何更新计算下一个gop长度l值。具体步骤如下:
步骤s702:获取gop中poc(pushtotalkovercellular,基于蜂窝通信的半双工通信)最末两帧图像。
步骤s704:将两帧图像划分为n×n的正方形子块,通过公式(1)得出一帧图像含有的子块数n,将图像中的每一个子块在相邻帧(前一帧)的原始图像中寻找其最佳匹配块,记录其运动矢量mj=(δx,δy)j,用公式(2)计算子块j所运动的距离dj。
计算得出子块j运动的距离dj之后,对子块j做运动估值,动估值采用最小平均平方误差(meansquarederror,简称为mse)或平均绝对差值(meanabsolutedifference,简称为mad)作为代价,dj记为子块j的运动估值代价。
步骤s706:统计图像的运动强度e。定义e为一帧图像的运动强度,其值由公式(3)计算出。
步骤s708:计算下一个gop层次总数k。gop的层次数应该绑定在合理的范围,由公式(4)计算出。λ为经验参数,本实施例中λ=20。
步骤s710:通过公式(5)计算下一个gop长度l值。
按照hevc制定通用测试序列及条件,本发明用x265编码器进行编码测试,测试结果由表1给出。根据表1数据可知,本发明提出的方法实施后编码性能有明显增益。
表1实施例通测bd-rate性能比较
表1给出了本发明实施例的实际编码测试结果。测试采用x265v1.6进行视频编码,测试序列根据hevc制定的通用测试条件进行。测试了ld结构即ipp…和随机访问结构ra即ibbbpbbbpbbb…两种。ra设置的插入b帧数量为3。表1所示的测试结果中,classa为不进行测试的超大分辨率图像,其余classb–f全部进行22、27、32、37四个qp测点的测试。其中所示的百分数值为bd-rate值,负值表示在同等质量下节省的比特率比例,负越大性能越好。在所有的class级别上都显示出本发明方法取得了不同程度的性能增益。在平均意义上,本发明在ld下取得了4.14%的bd-rate增益,在ra下取得了1.26%的增益,整体效果好。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上上述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。