一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多路视频流实时高速解码方法与流程

2022-06-18 03:34:13 来源:中国专利 TAG:

1.本发明涉及智能视频分析技术领域,尤其是一种多路视频流实时高速解码的实现方法。


背景技术:

2.智能视频分析是人工智能中的模式识别,通过图像分析,提炼出人员、物品等目标的各种行为模式。在应用中,通过比较和比对,辨识采集到的视频图像属于何种物体,何种行为,对目标的行动轨迹打上标签,做出预警和实时报警等。智能视频分析技术利用机器,将“人脑”对于视频画面的监控判断,进行数据分析提炼特征形成算法植入机器,形成“机器脑”对视频画面自动检测分析,并做出报警或其他动作。它借助计算机强大的数据处理能力过滤掉视频画面无用的或干扰信息、自动分析、抽取视频源中的关键有用信息,从而使监控摄像头不但成为人的眼睛,也使计算机成为人的大脑。智能视频分析技术是最前沿的应用之一,体现着未来视频监控系统全面走向数字化、智能化、多元化的必然发展趋势。
3.随着监控技术的广泛应用,监控视频的数据流量巨大,单个视频的长度也很长,因此在传输过程中通常对视频数据进行编码压缩,接收视频后使用gpu对图像进行解码。常见的视频格式有mov,avi,mp4、mpg、mpeg、m4v、wmv、mkv等格式,也可以是rtsp、rtmp等协议的网络传输视频流。通常的视频解码流程是智能视频分析业务程序先提取出h264、hevc、mpeg4等常见编码格式数据,再送入gpu解码出图像数据送回上层智能视频分析业务程序,智能视频分析业务程序继续处理图像,例如模式识别、追踪等。
4.现有技术的视频解析服务进程通常一个进程只能接收一路视频流,在处理多路视频流时需要启动很多服务进程进行视频解码处理,极度消耗资源,在资源不足的情况下,严重影响视频解码的实时性,并且无法充分的发挥gpu高速解码的性能。


技术实现要素:

5.本发明的目的是针对现有技术的不足而设计的一种多路视频流实时高速解码方法,利用创建的视频流解码线程,调用图像解码模块,将获取的视频数据输入gpu进行高速解码,在视频流解码线程中用于存储图像数据的队列,存储约30张图像数据的情况下,大约占用200m的显存空间,目前使用的gpu硬件资源,一块显卡即可同时实时解码30路以上的视频流,大大提升了gpu资源的利用率,有效降低硬件资源成本的同时,大幅度的提升视频解码的速度。
6.本发明的目的是这样实现的:一种多路视频流实时高速解码方法,其特点是实时高速解码的实现方法具体包括下述步骤:1)根据需要解码的视频流路数,多次调用多路视频流实时高速解码模块,为每一路视频流创建一个视频流解码线程,即指定网络传输协议为tcp或udp;2)视频流解码线程中,调用视频数据接收模块来连接视频流服务器或摄像头设备等,以获取原始的流数据,并对获取的数据进行过滤,只保留视频数据;
3)获取到原始视频数据后,在视频流解码线程中,调用图像解码模块,将获取的视频数据传入gpu中,利用gpu设备进行高速解码;4)gpu解码完成后,在视频流解码线程中,将图像解码模块解码出的yuv格式的原始图像数据转换为rgb格式图像数据,并存储在线程中;5)上层业务程序调用多路视频流实时高速解码模块,从视频流解码线程中获取图像数据,多路视频流实时高速解码模块在从视频解码线程中获取图像时,可根据上层业务程序的指定要求对图像数据进行格式转换后,将原始图像数据和格式转换后的图像数据同时返回给上层业务程序进行模式识别和追踪的应用。
7.本发明与现有技术相比具有充分发挥gpu高速解码的性能,大大提升了gpu资源的利用率,在降低硬件资源成本的同时,大幅度的提升视频解码的速度,较好的解决了视频解析服务进程通常一个进程只能接收一路视频流,在处理多路视频流时需要启动很多服务进程进行视频解码处理,极度消耗资源的问题,有效缓解了在资源不足的情况下,严重影响视频解码的实时性,以及gpu高速解码性能的发挥,尤其适合模式识别和追踪场景的应用。
附图说明
8.图1为实施例1利用本发明构建的系统图;图2为视频流解码线程的处理流程图。
具体实施方式
9.通过以下具体实施例对本发明作进一步的详细说明。
10.实施例1参阅图1,利用本发明构建的系统图由上层视频流信息管理模块1、模式识别、追踪模块2、多路视频流实时高速解码模3、视频解码线程4、gpu设备5、视频流服务器/摄像头6和视频数据接收模块7组成,所述上层视频流信息管理模块1将视频流解码要求接入多路视频流实时高速解码模3;所述多路视频流实时高速解码模3将输入的视频流启动视频解码线程4;所述视频解码线程4将视频流连接请求通过视频数据接收模块7,连接视频流服务器/摄像头6接收视频流数据;所述视频数据接收模块7将获取的视频流数据输入视频解码线程4,且由视频解码线程4将接收的视频数据输入gpu设备5;所述gpu设备5将获取的图像数据经视频解码线程4输入多路视频流实时高速解码模3;所述多路视频流实时高速解码模3将获取的解码图像数据接入模式识别、追踪模块2进行模式识别和追踪的具体应用。
11.本发明的实现具体包括以下步骤:1)上层视频流信息管理模块1根据视频流解码要求读取每一路视频流信息,即上层业务程序读取视频流配置信息,获取每一路视频流信息。
12.2)根据获取的视频流信息,调用多路视频流实时高速解码模块3,创建指定网络传输协议的视频解码线程4,所述视频解码线程4与多路视频流匹配的n个线程。
13.3)线程创建成功后,视频解码线程4内部自动开始连接视频流服务器/摄像头6,即视频源获取视频数据,解码成图像数据保存在视频解码线程4的图像数据存储队列中。
14.4)上层业务程序的模式识别、追踪模块2调用多路视频流实时高速解码模块3的图像数据获取api,获取解码图像。在调用图像数据获取api时,根据业务要求可指定图像的大
小、格式等,同时获取原始图像数据和转换后的图像数据,供后续的模式识别和追踪等业务功能使用。参阅图2,所述视频解码线程4的内部处理流程按下述步骤进行:1) 检查线程状态,如果线程状态为运行中状态,初始化视频数据接收模块7;在初始化的过程中,利用ffmpeg的api进行视频流连接,设置视频流连接传输的通信协议(支持tcp或udp)和通信传输时的连接超时时间(若连接超时,线程内部会重新初始化视频数据接收模块进行重新连接视频流,保证线程工作的可持续性);设置完成后,连接视频流识别编码的格式,为后续解码时使用何种解码格式提供依据,保证解码时能支持多种常用的解码格式。
15.2)初始化多路视频流实时高速解码模块(视频解码模块)3,在初始化的过程中,依据视频数据接收模块7初始化得到的视频流的编码格式和上层业务程序指定的gpu序列,初始化视频解码模块3。在多gpu资源的场合,可灵活利用gpu资源。
16.3)调用视频数据接收模块7,连接视频流服务器/摄像头6接收视频流数据,并对获取的数据进行过滤,只保留视频数据。
17.4)视频数据接收成功后,调用视频解码模块3,将数据传入gpu设备5中,利用gpu的高速运算特性进行数据解码获取每一帧的图像数据。
18.5)将解码出的每一帧图像数据由yuv格式转换为业务可用的rgb格式,并保存在视频解码线程4的图像数据存储队列中6)以上处理完成后,重复执行3~5步骤,不断的获取新的视频流数据,然后解码出图像并保存在图像数据存储队列中。
19.本发明在视频流解码线程中用于存储图像数据的队列,存储约30张图像数据的情况下,大约占用200m的显存空间,根据目前行业中通常使用的gpu硬件资源,一块显卡即可同时实时解码30路以上的视频流,大大提升了gpu资源的利用率,有效降低硬件资源成本的同时,大幅度的提升视频解码的速度。
20.以上只是本发明的较佳实现而已,并非对本发明做任何形式上的限制,故凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实现方法所做的任何简单修改、等同变化与修饰,即为本发明等效实施,均应包含于本专利的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献