日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码

發(fā)布時(shí)間:2023/11/27 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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解碼?

原因提煉如下:??

  1. 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利用率低原因如下:
    1. 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推理圖片速度。
    2. GPU近些年來的硬件能力進(jìn)步速度遠(yuǎn)超過CPU,而且相關(guān)GPU推理加速優(yōu)化方法也進(jìn)展迅速。兩者任務(wù)量不變的情況下,GPU相對(duì)CPU經(jīng)常大大超前完成任務(wù)。
  2. GPU相對(duì)CPU天生更擅長解碼工作:雖然CPU內(nèi)也有核顯,但相對(duì)GPU還是小了點(diǎn)。

2 GPU解碼當(dāng)前主流方案有哪些?

本文等下說的是PC機(jī)內(nèi)DL開發(fā)中的主要方法,其他情況下需要更多的跟蹤調(diào)研,比如手機(jī)芯片中,有非常專用的視頻解碼單元、音頻解碼單元等等。

通常的方法如下:

  1. OpenCV中的硬解碼:由cv::gpu::VideoReader_GPU完成。(當(dāng)前不支持RTSP視頻流解碼
  2. ffmpeg + CUVID:FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源程序。CUVID是基于CUDA的視頻解碼庫。FFmpeg編碼庫可以使用GPU加速。
  3. 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。