2015-11-05 140 views
0

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

任何帮助将不胜感激。

回答

0

您不可能在OpenCL中找到任何已在此无损视频压缩任务中实现的内容。最好的办法是采取一些已经存在的东西,然后尝试去适应它,但OpenCL的基本方法是将计算任务分成不同的线程,这些线程在小块内存上运行。你可以看看WebM作为起点。

1

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

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

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

+0

我们的应用程序非常耗费CPU资源,只要我可以将某些处理加载到GPU上,那将会很棒。我会给你的答案尝试并让你知道。谢谢 – Arash

+1

噢,在这种情况下,它可以帮助。 x264会负载平衡,因此将x264保留为单个CPU核心+ GPU可能是一种很好的做法,可以使用大多数GPU设备。 – DarkZeros

+0

我想将png文件转换为视频,ffmpeg具有相同的问题,不接受--opencl与libx264。你知道如何用x264做到这一点吗? – Arash