咨询OpenCV中GPU加速PNG编码方案:解决CPU编码帧率不足问题
PNG编码性能优化问题
在CPU上使用OpenCV进行PNG编码的速度远低于实时帧率,例如在一台现代PC上,采用以下设置对500万像素(5Mp)的图像im进行编码耗时超过200ms:
cv2.imwrite("f.png", im, [cv2.IMWRITE_PNG_STRATEGY_RLE])
是否存在GPU加速版本,能够以与上述设置相近的压缩比,实现每秒10帧(10fps)或更高的500万像素图像编码速度?
多核CPU临时解决方案
在未找到GPU加速解决方案的情况下,我利用自己的6核CPU实现了稳定的28fps编码速度,这也是我的AVT相机所能提供的最高帧率。以下是代码片段:
from multiprocessing import Process ... def writePNG(path, image): cv2.imwrite(path, image, [cv2.IMWRITE_PNG_STRATEGY_RLE]) def frame_handler(cam, frame): global iFrame cam.queue_frame(frame) Process(target=writePNG, args=(f'{videoPath}/frame{iFrame}.png', frame.as_opencv_image(),)).start() iFrame += 1
内容的提问来源于stack exchange,提问作者Paul Jurczak
相关产品推荐
相关产品推荐

