【问题标题】:OpenCL lossless video compressionOpenCL 无损视频压缩
【发布时间】:2023-03-16 04:20:01
【问题描述】:

我正在寻找 OpenCL 中的无损视频压缩。它必须是无损的,因为它是项目要求。找到了一些用 OpenCV 和 ffmpeg 编写的无损算法,但它们都不支持 OpenCL 编码/解码。我使用的是 Apple 电脑,它们带有不支持 CUDA 的 ATI 显卡。

任何帮助将不胜感激。

【问题讨论】:

    标签: opencv opencl gpu video-encoding lossless-compression


    【解决方案1】:

    您可以使用已经支持 OpenCL 的 x264,并使用 0(无损)的 CRF。我知道,看起来 mpeg4 总是有损的,但事实证明它也有无损模式,大多数时候比其他无损编解码器效果更好。

    avconv -i input -c:v libx264 -preset slow --opencl -crf 0 -c:a copy outvideo.mp4
    

    x264 中的 OpenCL 比普通 CPU 稍快一些,因此没有被广泛使用。编辑:在我的系统中,我的 libx264 不接受--opencl,但我认为从来没有版本接受该参数。也许您需要一个二进制可执行文件“x264”,因为 libx264 可能不会公开所有底层功能。

    【讨论】:

    • 我们的应用程序是 CPU 密集型的,只要我能将一些处理任务卸载到 GPU 上就可以了。我会给你的答案试试,让你知道。谢谢
    • 哦,好的,在这种情况下它可以提供帮助。 x264 会进行负载平衡,因此最好将 x264 保持在单个 CPU 内核 + GPU 上,以充分利用 GPU 设备。
    • 我想把png文件转成视频,ffmpeg也有同样的问题不接受--opencl with libx264。你知道如何用 x264 做到这一点吗?
    • 这里有 x264 二进制文件 download.videolan.org/pub/x264/binaries 为了加载 png,您需要为 00001.png 之类的 png 提供输入为“%05d.png ....
    • 什么?实际的命令是 -x264-params opencl=true。哇,哇。
    【解决方案2】:

    对于这个无损视频压缩任务,您不太可能会找到在 OpenCL 中实现的任何东西。您最好的选择是采用已经存在的东西,然后尝试对其进行调整,但 OpenCL 的基本方法是将计算任务分成不同的线程,这些线程在小块内存上运行。你可以看看WebM 作为起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      相关资源
      最近更新 更多