007. opencv編解碼慢的原因理解

1. 問題介紹:最近在2080ti上做實時視頻流的模型推理時,發現一個問題,當每一幀的像素超過1000*1000時,顯示會變得卡頓。於是查看了一下CPU和GPU的佔用率,發現GPU只佔用了2%~3%,CPU的專用率卻達到了66%以上。對產生這個現象的原因做一個粗淺的理解記錄。

2. 首先明確兩個概念:什麼是軟解碼?什麼是硬解碼?

答:

(1)軟件解碼是通過軟件本身佔用的CPU進行解碼,所以會增加CPU工作負荷,提升功耗。軟解由於加大CPU工作負荷,會佔用過多的移動CPU資源,如果CPU能力不足,則軟件也將受到影響。

(2)硬件解碼是通過硬件進行視頻的解碼工作,其中硬件解碼是由GPU來進行的,使用GPU解碼能夠降低CPU的工作負荷,降低功耗。

3. 那麼產生問題的原因就明確了,opencv對rtsp視頻流的解碼屬於軟解碼,當視頻流很大時,CPU的佔用率高,而解碼後的視頻流交給GPU做推理運算時,2080ti綽綽有餘,因此GPU佔用率並不高。

4. 展望:與導師溝通,後面會去了解一下deepstream,是nvidia提供的一種硬解碼解決方案。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章