一种基于海思芯片的码流控制方法与流程

文档序号:21083886发布日期:2020-06-12 16:45阅读:1256来源:国知局
一种基于海思芯片的码流控制方法与流程

本申请属于码率控制技术领域,具体涉及一种基于海思芯片的码流控制方法。



背景技术:

视频编码中,图像质量和流畅性总是不可兼得。虽然h.265视频编码标准相对于h.264已经有了很大的优化,可以节省50%的编码码率,但是依然不能满足高清视频业务的需求,从而影响客户对视频的观看体验,因此亟需一种有效权衡图像质量和流畅性的编码方法。



技术实现要素:

本申请的目的在于提供一种基于海思芯片的码流控制方法,能够在满足人形区域画质不变的前提下降低码率。

为实现上述目的,本申请所采取的技术方案为:

一种基于海思芯片的码流控制方法,所述基于海思芯片的码流控制方法,包括:

步骤s1、运行基于海思芯片的人形检测算法获取画面中的人形检测结果;

步骤s2、运行基于海思芯片的移动侦测算法获取画面中的移动侦测结果;

步骤s3、判断人形检测结果中是否检测到人形,若检测到人形,即执行步骤s4~s5;否则执行步骤s6;

步骤s4、获取画面中人形的位置信息,根据本次获取的所有人形的位置信息与上一次获取的所有人形的位置信息进行匹配,若本次与上次人形的位置相同,则不进行码流更改并结束本次码流调控;若本次新增了人形的位置,则执行步骤s5;若本次减少了人形的位置,则去除减少的人形的位置信息,不进行码流更改并结束本次码流调控;

步骤s5、将本次检测到的人形的位置信息设置为roi区域,并设置roi区域的qp值,完成本次码流调控;

步骤s6、获取所述移动侦测结果,根据移动侦测结果设置roi区域和背景帧率,完成本次码流调控。

作为优选,所述人形检测算法将识别到的人形采用独立的矩形块进行标识,所述人形检测结果包括人形个数,以及各人形对应的矩形块的坐标(x,y)和大小(w,h),其中,x为矩形块在画面中的x轴坐标,y为矩形块在画面中的y轴坐标,w为矩形块的宽,h为矩形块的高。

作为优选,所述根据本次获取的所有人形的位置信息与上一次获取的所有人形的位置信息进行匹配,包括:

取上一次的一个人形对应的矩形块的位置信息为:坐标(x′,y′)和大小(w′,h′);取本次的一个人形对应的矩形块的位置信息为:坐标(x,y)和大小(w,h);

计算本次矩形块的位移mv为:

δx=x-x′

δy=y-y′

δw=w-w′

δh=h-h′

得到本次矩形块的位移mv包含四个因素为δx、δy、δw、δh;

若本次矩形块的位移mv的四个因素均小于阈值a,则本次矩形块和上一次矩形块相匹配;否则不匹配。

作为优选,所述根据移动侦测结果设置roi区域和背景帧率,包括:

步骤s6.1、根据移动侦测结果判断当前画面为静态画面还是动态画面,若为静态画面且保持静态1s及以上则执行步骤s6.2;否则执行步骤s6.3;

步骤s6.2、设置roi区域为预设的最小roi区域,且roi区域的起始坐标为(0,0),同时设置背景帧率为1;

步骤s6.3、设置roi区域为整个画面,同时不控制背景帧率。

作为优选,所述动态画面为移动侦测结果返回的移动块的个数大于或等于1,所述静态画面为移动侦测结果返回的移动块的个数为0。

作为优选,所述基于海思芯片的移动侦测算法的输入图片的大小为704*576,宏块大小为4*4,采用中值法设置sad阈值sadthr的值为30;

作为优选,所述qp值设置时在预设的调节范围内更改,所述调节范围为minqp~maxqp,所述minqp为最小qp值,所述maxqp为最大qp值。

作为优选,所述minqp取值为29,所述maxqp取值为45。

作为优选,所述海思芯片的型号为hi3516ev300。

本申请提供的基于海思芯片的码流控制方法,采用海思芯片的移动侦测结果作为码率控制中roi背景帧率的控制参数,降低了静止场景下的码率;采用了海思芯片的人形检测算法,将返回的人形的位置信息作为roi的控制参数,设置roi区域以及降低roi区域的qp值,从而保证了人形位置的图像质量;通过先检测有无人形,再检测有无移动的方法,来控制roi的参数,实现了保证人形位置图像质量的前提下降低码率的需求。

附图说明

图1为本申请的基于海思芯片的码流控制方法的流程图;

图2为设置roi区域和未设置roi区域的一种实施例qp值对比显示图像。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本申请。

其中一个实施例中,提供一种基于海思芯片的码流控制方法,以满足人形区域画质不变的前提下降低码率的需求。

如图1所示,本实施例的基于海思芯片的码流控制方法,包括以下步骤:

步骤s1、运行基于海思芯片的人形检测算法获取画面中的人形检测结果。

人形检测算法运行时包括ivp初始化,申请mmz内存加载海思资源文件,从vpss扩展通道获取一帧图像送给hi_ivp_process_ex进行处理,将识别到的人形采用独立的矩形块进行标识,以便于观察人形检测是否准确。

并且人形检测结果包括但不限于人形个数,以及各人形对应的矩形块的坐标(x,y)和大小(w,h),其中,x为矩形块在画面中的x轴坐标,y为矩形块在画面中的y轴坐标,w为矩形块的宽,h为矩形块的高。

步骤s2、运行基于海思芯片的移动侦测算法获取画面中的移动侦测结果。

在运行移动侦测算法时,先初始化ivs_md,创建md通道,创建vpss扩展通道并获取一帧通过ive_dma送给ivs_md作为当前图像,再获取一帧作为参考图像,通过hi_ivs_md_process获取移动侦测结果ive_ccblob_s。

其中,基于海思芯片的移动侦测算法的输入图片的大小为704*576,宏块大小为4*4,采用中值法设置sad阈值sadthr的值为30,设置sad的阈值可以控制移动侦测的灵敏度,可以根据实际场景调试sad的阈值sadthr,以达到合适的灵敏度。一般设置检测灵敏度为可以检测到至少10米的距离的物体的移动。

本实施例使用海思芯片的型号为hi3516ev300,资源丰富,且经济实用。当然也可以采用其他型号的海思芯片实现。

若移动侦测结果返回的移动块的个数大于或等于1,则表示当前画面为动态画面,若移动侦测结果返回的移动块的个数为0则表示当前画面为静态画面。

步骤s3、判断人形检测结果中是否检测到人形,若检测到人形,即执行步骤s4~s5;否则执行步骤s6。

步骤s4、获取画面中人形的位置信息,根据本次获取的所有人形的位置信息与上一次获取的所有人形的位置信息进行匹配,若本次与上次人形的位置相同,则不进行码流更改并结束本次码流调控;若本次新增了人形的位置,则执行步骤s5;若本次减少了人形的位置,则去除减少的人形的位置信息,不进行码流更改并结束本次码流调控。

需要说明的是,图1中的步骤s4仅展示了有新增人形的位置的一条分支,另两条结束码流调控的分支未示出。

在一实施例中,人形匹配的过程如下:

取上一次的一个人形对应的矩形块的位置信息为:坐标(x',y')和大小(w′,h');取本次的一个人形对应的矩形块的位置信息为:坐标(x,y)和大小(w,h);

计算本次矩形块的位移mv为:

δx=x-x′

δy=y-y'

δw=w-w'

δh=h-h'

得到本次矩形块的位移mv包含四个因素为δx、δy、δw、δh。

若本次矩形块的位移mv的四个因素均小于阈值a,则本次矩形块和上一次矩形块相匹配;否则不匹配。

由于本实施例中人形检测算法的图片的分辨率为640x360,所以设置高的1/6作为判断是否匹配的标准,即阈值a取值为60。

步骤s5、将本次检测到的人形的位置信息设置为roi区域(感兴趣区域),并设置roi区域的qp值,完成本次码流调控。其中qp值对应量化步长的序号,对于亮度而言,此值范围为0~51。值越小,量化步长越小,量化的精度就越高,意味着同样画质的情况下,产生的数据量可能会更大。qp值每增加6,量化步长就增加一倍。

在调节qp值时,根据人形检测结果降低roi区域的qp值,以改善roi区域的画质。并且码率控制采用海思的vbr的方式,qp值设置时在预设的调节范围内更改,并且调节范围为minqp~maxqp,以保证图像质量的同时具有较低的码流。

并且为了降低整体画面的画质,在一实施例中,将整体的最小qp值minqp、最大qp值maxqp分别设置为29、45。海思芯片的人形检测算法最多可以检测3个人形,将人形的坐标大小设置为感兴趣区域,并且在设置roi区域的qp值时,需要对i帧p帧的roi区域都进行设置,设置感兴趣区域的qp控制为相对qp控制,相对qp值设置为-3。

如图2所示,图2(上)为设置了roi区域的qp值的显示图像,图2(下)为未设置roi区域的qp值的显示图像。由图可以看出,设置了qp值的显示图像的清晰度显著优于未设置qp值的显示图像。

步骤s6、获取所述移动侦测结果,根据移动侦测结果设置roi区域和背景帧率,完成本次码流调控。本实施例中的背景帧率应理解为背景区域的帧率,即图像中除去roi区域的区域。

在一实施例中,根据移动侦测结果设置roi区域和背景帧率,包括:

步骤s6.1、根据移动侦测结果判断当前画面为静态画面还是动态画面,若为静态画面且保持静态1s及以上则执行步骤s6.2;否则执行步骤s6.3。

步骤s6.2、设置roi区域为预设的最小roi区域,且roi区域的起始坐标为(0,0),同时设置背景帧率为1。本实施例中设置背景帧率为1应理解为设置背景帧率的输入帧率为输入图像的原帧率,输出帧率为1。

步骤s6.3、设置roi区域为整个画面,同时不控制背景帧率。此处的不控制背景帧率应理解为设置背景帧率的输入帧率和输出帧率均为-1。

上述调节步骤根据画面状态进行帧率调节,在静态画面时通过降低帧率来降低码流,当画面转为动态画面时,立即设置背景帧率为正常帧率,即不进行背景帧率控制,以避免动态画面出现卡顿。

通常预设设置最小roi区域为16x16的像素区域。

本实施例的基于海思芯片的码流控制方法,采用海思的人形检测、移动侦测算法,使用vbr的码流控制方式。降低整体画质再根据人形检测结果重点编码人形区域,没有检测到人形的情况下根据移动侦测结果判断是否将画面设置为背景画面并将帧率设置为1,从而进一步满足了人形区域画质不变而降低码率的需求。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1