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提供的一种硬解码解决方案。

 

你可能感兴趣的:(深度学习,opencv,视频处理)