CN114640854A - 一种多路视频流实时高速解码方法 - Google Patents
一种多路视频流实时高速解码方法 Download PDFInfo
- Publication number
- CN114640854A CN114640854A CN202210224350.0A CN202210224350A CN114640854A CN 114640854 A CN114640854 A CN 114640854A CN 202210224350 A CN202210224350 A CN 202210224350A CN 114640854 A CN114640854 A CN 114640854A
- Authority
- CN
- China
- Prior art keywords
- decoding
- video
- video stream
- image data
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000003909 pattern recognition Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种多路视频流实时高速解码方法,其特点是该方法的实现具体包括:1)根据需要解码的视频流路数,为每一路视频流创建一个视频流解码线程;2)调用视频数据接收模块获取原始的流数据;3)将获取的视频数据利用GPU设备进行高速解码;4)将解出的YUV格式的原始图像数据转换为RGB格式图像数据,并存储在线程中;5)从视频流解码线程中获取图像数据和转换后的图像数据同时返回给上层业务程序进行模式识别和追踪的应用。本发明与现有技术相比具有提升了GPU资源的利用率,有效降低硬件资源成本,提升视频解码的速度,尤其适合模式识别和追踪场景的应用。
Description
技术领域
本发明涉及智能视频分析技术领域,尤其是一种多路视频流实时高速解码的实现方法。
背景技术
智能视频分析是人工智能中的模式识别,通过图像分析,提炼出人员、物品等目标的各种行为模式。在应用中,通过比较和比对,辨识采集到的视频图像属于何种物体,何种行为,对目标的行动轨迹打上标签,做出预警和实时报警等。智能视频分析技术利用机器,将“人脑”对于视频画面的监控判断,进行数据分析提炼特征形成算法植入机器,形成“机器脑”对视频画面自动检测分析,并做出报警或其他动作。它借助计算机强大的数据处理能力过滤掉视频画面无用的或干扰信息、自动分析、抽取视频源中的关键有用信息,从而使监控摄像头不但成为人的眼睛,也使计算机成为人的大脑。智能视频分析技术是最前沿的应用之一,体现着未来视频监控系统全面走向数字化、智能化、多元化的必然发展趋势。
随着监控技术的广泛应用,监控视频的数据流量巨大,单个视频的长度也很长,因此在传输过程中通常对视频数据进行编码压缩,接收视频后使用GPU对图像进行解码。常见的视频格式有mov,avi,mp4、mpg、mpeg、m4v、wmv、mkv等格式,也可以是rtsp、rtmp等协议的网络传输视频流。通常的视频解码流程是智能视频分析业务程序先提取出h264、hevc、mpeg4等常见编码格式数据,再送入GPU解码出图像数据送回上层智能视频分析业务程序,智能视频分析业务程序继续处理图像,例如模式识别、追踪等。
现有技术的视频解析服务进程通常一个进程只能接收一路视频流,在处理多路视频流时需要启动很多服务进程进行视频解码处理,极度消耗资源,在资源不足的情况下,严重影响视频解码的实时性,并且无法充分的发挥GPU高速解码的性能。
发明内容
本发明的目的是针对现有技术的不足而设计的一种多路视频流实时高速解码方法,利用创建的视频流解码线程,调用图像解码模块,将获取的视频数据输入GPU进行高速解码,在视频流解码线程中用于存储图像数据的队列,存储约30张图像数据的情况下,大约占用200M的显存空间,目前使用的GPU硬件资源,一块显卡即可同时实时解码30路以上的视频流,大大提升了GPU资源的利用率,有效降低硬件资源成本的同时,大幅度的提升视频解码的速度。
本发明的目的是这样实现的:一种多路视频流实时高速解码方法,其特点是实时高速解码的实现方法具体包括下述步骤:
1)根据需要解码的视频流路数,多次调用多路视频流实时高速解码模块,为每一路视频流创建一个视频流解码线程,即指定网络传输协议为TCP或UDP;
2)视频流解码线程中,调用视频数据接收模块来连接视频流服务器或摄像头设备等,以获取原始的流数据,并对获取的数据进行过滤,只保留视频数据;
3)获取到原始视频数据后,在视频流解码线程中,调用图像解码模块,将获取的视频数据传入GPU中,利用GPU设备进行高速解码;
4)GPU解码完成后,在视频流解码线程中,将图像解码模块解码出的YUV格式的原始图像数据转换为RGB格式图像数据,并存储在线程中;
5)上层业务程序调用多路视频流实时高速解码模块,从视频流解码线程中获取图像数据,多路视频流实时高速解码模块在从视频解码线程中获取图像时,可根据上层业务程序的指定要求对图像数据进行格式转换后,将原始图像数据和格式转换后的图像数据同时返回给上层业务程序进行模式识别和追踪的应用。
本发明与现有技术相比具有充分发挥GPU高速解码的性能,大大提升了GPU资源的利用率,在降低硬件资源成本的同时,大幅度的提升视频解码的速度,较好的解决了视频解析服务进程通常一个进程只能接收一路视频流,在处理多路视频流时需要启动很多服务进程进行视频解码处理,极度消耗资源的问题,有效缓解了在资源不足的情况下,严重影响视频解码的实时性,以及GPU高速解码性能的发挥,尤其适合模式识别和追踪场景的应用。
附图说明
图1为实施例1利用本发明构建的系统图;
图2为视频流解码线程的处理流程图。
具体实施方式
通过以下具体实施例对本发明作进一步的详细说明。
实施例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进行模式识别和追踪的具体应用。
本发明的实现具体包括以下步骤:
1)上层视频流信息管理模块1根据视频流解码要求读取每一路视频流信息,即上层业务程序读取视频流配置信息,获取每一路视频流信息。
2)根据获取的视频流信息,调用多路视频流实时高速解码模块3,创建指定网络传输协议的视频解码线程4,所述视频解码线程4与多路视频流匹配的n个线程。
3)线程创建成功后,视频解码线程4内部自动开始连接视频流服务器/摄像头6,即视频源获取视频数据,解码成图像数据保存在视频解码线程4的图像数据存储队列中。
4)上层业务程序的模式识别、追踪模块2调用多路视频流实时高速解码模块3的图像数据获取API,获取解码图像。在调用图像数据获取API时,根据业务要求可指定图像的大小、格式等,同时获取原始图像数据和转换后的图像数据,供后续的模式识别和追踪等业务功能使用。
参阅图2,所述视频解码线程4的内部处理流程按下述步骤进行:
1) 检查线程状态,如果线程状态为运行中状态,初始化视频数据接收模块7;在初始化的过程中,利用ffmpeg的API进行视频流连接,设置视频流连接传输的通信协议(支持TCP或UDP)和通信传输时的连接超时时间(若连接超时,线程内部会重新初始化视频数据接收模块进行重新连接视频流,保证线程工作的可持续性);设置完成后,连接视频流识别编码的格式,为后续解码时使用何种解码格式提供依据,保证解码时能支持多种常用的解码格式。
2)初始化多路视频流实时高速解码模块(视频解码模块)3,在初始化的过程中,依据视频数据接收模块7初始化得到的视频流的编码格式和上层业务程序指定的GPU序列,初始化视频解码模块3。在多GPU资源的场合,可灵活利用GPU资源。
3)调用视频数据接收模块7,连接视频流服务器/摄像头6接收视频流数据,并对获取的数据进行过滤,只保留视频数据。
4)视频数据接收成功后,调用视频解码模块3,将数据传入GPU设备5中,利用GPU的高速运算特性进行数据解码获取每一帧的图像数据。
5)将解码出的每一帧图像数据由YUV格式转换为业务可用的RGB格式,并保存在视频解码线程4的图像数据存储队列中
6)以上处理完成后,重复执行3~5步骤,不断的获取新的视频流数据,然后解码出图像并保存在图像数据存储队列中。
本发明在视频流解码线程中用于存储图像数据的队列,存储约30张图像数据的情况下,大约占用200M的显存空间,根据目前行业中通常使用的GPU硬件资源,一块显卡即可同时实时解码30路以上的视频流,大大提升了GPU资源的利用率,有效降低硬件资源成本的同时,大幅度的提升视频解码的速度。
以上只是本发明的较佳实现而已,并非对本发明做任何形式上的限制,故凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实现方法所做的任何简单修改、等同变化与修饰,即为本发明等效实施,均应包含于本专利的权利要求范围之内。
Claims (4)
1.一种多路视频流实时高速解码方法,其特征在于多路视频流实时高速解码的实现方法具体包括下述步骤:
1)根据需要解码的视频流路数,多次调用多路视频流实时高速解码模块,为每一路视频流创建一个视频流解码线程;
2)视频流解码线程中,调用视频数据接收模块来连接视频流服务器或摄像头设备等,以获取原始的流数据,并对获取的数据进行过滤,只保留视频数据;
3)获取到原始视频数据后,在视频流解码线程中,调用图像解码模块,将获取的视频数据传入GPU中,利用GPU设备进行高速解码;
4)GPU解码完成后,在视频流解码线程中,将图像解码模块解码出的YUV格式的原始图像数据转换为RGB格式图像数据,并存储在线程中;
5)上层业务程序调用多路视频流实时高速解码模块,从视频流解码线程中获取图像数据,多路视频流实时高速解码模块在从视频解码线程中获取图像时,可根据上层业务程序的指定要求对图像数据进行格式转换后,将原始图像数据和转换后的图像数据同时返回给上层业务程序中的模式识别和追踪模块进行模式识别和追踪的应用。
2.根据权利要求1所述多路视频流实时高速解码方法,其特征在于所述高速解码线程的内部处理流程如下:
1)检查线程状态
如果线程状态为运行中状态,初始化视频数据接收模块;在初始化的过程中,利用ffmpeg的API进行视频流连接,设置视频流连接传输的通信协议(支持TCP或UDP)和通信传输时的连接超时时间(若连接超时,线程内部会重新初始化视频数据接收模块进行重新连接视频流,保证线程工作的可持续性);设置完成后连接视频流识别编码的格式,为后续解码时使用何种解码格式提供依据,保证解码时能支持多种常用的解码格式;
2)初始化视频解码模块
在初始化的过程中,依据视频数据接收模块初始化得到的视频流的编码格式和上层业务程序指定的GPU序列,初始化视频解码模块,在多GPU资源的场合,可灵活利用GPU资源;
3)调用视频数据接收模块接收视频流数据,并对获取的数据进行过滤,只保留视频数据;
4)视频数据接收成功后调用视频解码模块,将数据传入GPU中,利用GPU的高速运算特性进行数据解码获取每一帧的图像数据;
5)将解码出的每一帧图像数据由YUV格式转换为业务可用的RGB格式,并保存在线程的图像数据存储队列中;
6)重复执行上述3)~5)步骤,不断的获取新的视频流数据,然后解码出图像并保存在图像数据存储队列中。
3.根据权利要求1所述多路视频流实时高速解码方法,其特征在于所述模式识别和追踪模块调用多路视频流实时高速解码模块的图像数据获取API,获取解码图像,在调用图像数据获取API时,根据业务要求指定图像的大小和格式,同时获取原始图像数据和转换后的图像数据,供后续的模式识别和追踪功能的使用。
4.根据权利要求1或权利要求2所述多路视频流实时高速解码方法,其特征在于所述视频流解码线程的创建具体包括以下步骤:
1)上层业务程序读取视频流配置信息,获取每一路视频流信息;
2)根据获取的视频流信息,调用多路视频流实时高速解码模块,创建指定网络传输协议为TCP或UD P的视频解码线程;
3)线程创建成功后,线程内部自动开始连接视频源,并获取视频数据,解码成图像数据保存在线程的图像数据存储队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210224350.0A CN114640854A (zh) | 2022-03-09 | 2022-03-09 | 一种多路视频流实时高速解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210224350.0A CN114640854A (zh) | 2022-03-09 | 2022-03-09 | 一种多路视频流实时高速解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114640854A true CN114640854A (zh) | 2022-06-17 |
Family
ID=81947911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210224350.0A Pending CN114640854A (zh) | 2022-03-09 | 2022-03-09 | 一种多路视频流实时高速解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114640854A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115984675A (zh) * | 2022-12-01 | 2023-04-18 | 扬州万方科技股份有限公司 | 一种用于实现多路视频解码及ai智能分析的系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001189906A (ja) * | 1999-12-28 | 2001-07-10 | Kawasaki Heavy Ind Ltd | 画像処理装置 |
CN102036043A (zh) * | 2010-12-15 | 2011-04-27 | 成都市华为赛门铁克科技有限公司 | 视频数据处理方法、装置及视频监控系统 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
US20170214930A1 (en) * | 2016-01-26 | 2017-07-27 | Sandia Corporation | Gpu-assisted lossless data compression |
CN107241598A (zh) * | 2017-06-29 | 2017-10-10 | 贵州电网有限责任公司 | 一种针对多路h.264视频会议的GPU解码方法 |
CN110381322A (zh) * | 2019-07-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、终端设备及存储介质 |
-
2022
- 2022-03-09 CN CN202210224350.0A patent/CN114640854A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001189906A (ja) * | 1999-12-28 | 2001-07-10 | Kawasaki Heavy Ind Ltd | 画像処理装置 |
CN102036043A (zh) * | 2010-12-15 | 2011-04-27 | 成都市华为赛门铁克科技有限公司 | 视频数据处理方法、装置及视频监控系统 |
US20170214930A1 (en) * | 2016-01-26 | 2017-07-27 | Sandia Corporation | Gpu-assisted lossless data compression |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN107241598A (zh) * | 2017-06-29 | 2017-10-10 | 贵州电网有限责任公司 | 一种针对多路h.264视频会议的GPU解码方法 |
CN110381322A (zh) * | 2019-07-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、终端设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115984675A (zh) * | 2022-12-01 | 2023-04-18 | 扬州万方科技股份有限公司 | 一种用于实现多路视频解码及ai智能分析的系统及方法 |
CN115984675B (zh) * | 2022-12-01 | 2023-10-13 | 扬州万方科技股份有限公司 | 一种用于实现多路视频解码及ai智能分析的系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113221706B (zh) | 基于多进程的多路视频流的ai分析方法及系统 | |
CN110430441B (zh) | 一种云手机视频采集方法、系统、装置及存储介质 | |
CN111479048A (zh) | 一种基于边缘计算的智能视频图像处理设备 | |
CN114640854A (zh) | 一种多路视频流实时高速解码方法 | |
US11562772B2 (en) | Video processing method, electronic device, and storage medium | |
CN111263113B (zh) | 数据包的发送方法及装置、数据包的处理方法及装置 | |
CN108234940A (zh) | 一种视频监控服务端、系统及方法 | |
CN110798688A (zh) | 一种基于实时传输的高清视频压缩编码系统 | |
CN113067887B (zh) | 一种多目标应用程序窗口信息抓取与网络推送方法及系统 | |
CN103974087B (zh) | 视频图像文件压缩系统、客户端及方法 | |
CN111541864B (zh) | 一种数字视网膜软件定义摄像机方法及系统 | |
CN112637538B (zh) | 用于优化视频分析的智能标签方法、系统、介质及终端 | |
CN113992948A (zh) | 一种基于云平台的视频管理系统、方法和装置 | |
CN110379130B (zh) | 一种基于多路高清sdi视频的医疗看护防摔倒系统 | |
CN106973307A (zh) | 一种视频设备访问方法及装置 | |
CN114694007A (zh) | 一种视频结构化处理方法及视频结构化引擎 | |
CN105049806A (zh) | 嵌入式视频监控系统的设计方法 | |
CN111818337A (zh) | 多种视频监控设备兼容监控的方法和系统 | |
CN206294299U (zh) | 一种移动音视频直播系统 | |
CN113542875B (zh) | 视频处理方法、装置、电子设备以及存储介质 | |
CN111860455B (zh) | 基于html5页面的活体检测方法及装置 | |
CN113051415B (zh) | 图像存储方法、装置、设备和存储介质 | |
CN113038254B (zh) | 一种视频播放方法、装置和存储介质 | |
CN113596396B (zh) | 一种基于gb28181的目标跟踪系统 | |
CN106210745A (zh) | 一种智能化jpeg图像编解码系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |