AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码
0 項(xiàng)目背景
見《AI視頻行為分析系統(tǒng)項(xiàng)目復(fù)盤——技術(shù)篇1》
https://blog.csdn.net/weixin_42118657/article/details/118105545?spm=1001.2014.3001.5501
1 為什么不使用CPU解碼?
原因提煉如下:??
- CPU利用率沖頂,而GPU利用率低:視頻流的解碼工作,一般視頻處理函數(shù)庫由于歷史原因,默認(rèn)使用CPU解碼視頻流,但如果要實(shí)時(shí)解碼多路視頻流,CPU的計(jì)算資源將耗費(fèi)非常嚴(yán)重。這種情況下,服務(wù)器內(nèi)的CPU會(huì)經(jīng)常感覺不夠用成為瓶頸,但是與此同時(shí),GPU的利用率通常還很低。導(dǎo)致GPU利用率低原因如下:
- DL工程一般數(shù)據(jù)流如下:CPU解碼視頻(費(fèi)時(shí)間)→ CPU各種預(yù)處理圖片(費(fèi)時(shí)間)→圖片從內(nèi)存拷貝到GPU顯存中(費(fèi)時(shí)間)→GPU推理圖片(一般的DL模型任務(wù),速度非常快),即便采用數(shù)據(jù)緩沖池等操作,但很多時(shí)候再昂貴的CPU也趕不上GPU推理圖片速度。
- GPU近些年來的硬件能力進(jìn)步速度遠(yuǎn)超過CPU,而且相關(guān)GPU推理加速優(yōu)化方法也進(jìn)展迅速。兩者任務(wù)量不變的情況下,GPU相對(duì)CPU經(jīng)常大大超前完成任務(wù)。
- GPU相對(duì)CPU天生更擅長解碼工作:雖然CPU內(nèi)也有核顯,但相對(duì)GPU還是小了點(diǎn)。
2 GPU解碼當(dāng)前主流方案有哪些?
本文等下說的是PC機(jī)內(nèi)DL開發(fā)中的主要方法,其他情況下需要更多的跟蹤調(diào)研,比如手機(jī)芯片中,有非常專用的視頻解碼單元、音頻解碼單元等等。
通常的方法如下:
- OpenCV中的硬解碼:由cv::gpu::VideoReader_GPU完成。(當(dāng)前不支持RTSP視頻流解碼)
- ffmpeg + CUVID:FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源程序。CUVID是基于CUDA的視頻解碼庫。FFmpeg編碼庫可以使用GPU加速。
- deepstream方案:NVIDIA推出的一整套工具,包含解碼、預(yù)處理和推理,一般推薦直接用這個(gè)。但是其靈活性在某些場景可能目前還不夠,具體參考:《深蘭科技|硬編解碼技術(shù)的AI應(yīng)用》
3 GPU硬解碼的一個(gè)全過程Demo實(shí)現(xiàn)
略。
4 CPU解碼和GPU解碼的性能對(duì)比
注意:GPU解碼在深度學(xué)習(xí)工程項(xiàng)目中主要在兩個(gè)環(huán)節(jié)應(yīng)用,即解碼視頻流 + 圖像預(yù)處理(主要是顏色空間轉(zhuǎn)換和resize)。
參考1:(公司內(nèi)部人員測(cè)試)
視頻流解碼對(duì)比:3倍
CPU上解碼:
- CPU占用率:538.5%
- 總幀數(shù): ?18514
- 耗時(shí):30591.02 ms
- 平均每幀耗時(shí):1.652318 ms
GPU上解碼:
- CPU占用率:30.3%
- GPU占用率:3%
- 顯存占用:215MB
- 總幀數(shù): ?18514
- 耗時(shí):9699.89 ms
- 平均每幀耗時(shí): 0.52392189 ms
視頻流解碼 + cvtColor 對(duì)比:預(yù)估10倍
參考2:https://www.cnblogs.com/ahfuzhang/p/10855762.html
視頻大小:1168856 字節(jié)
畫面尺寸:480*848
幀數(shù):275
opencv + cuvid 方案:tesla P4(性能類似于GTX 1070)解碼性能:1426.84 fps
ffmpeg 4.0 API 方案:[Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz]解碼性能:206.46 fps
GPU解碼是CPU解碼的6.9倍。
注意:
1. GPU解碼丟了兩幀;
2. 如果使用cuda stream流水線技術(shù),理論上性能還會(huì)再提升。
總結(jié)
以上是生活随笔為你收集整理的AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优达学城《DeepLearning》2-
- 下一篇: 优达学城《DeepLearning》项目