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提供的一種硬解碼解決方案。