替代sws_scale

时间:2012-08-30 07:02:24

标签: libavcodec color-space libx264

我正在使用libavcodec使用x264对捕获的Windows屏幕进行编码。由于输入是RGB,我将其转换为YUV以使其与x264兼容。我正在使用sws_scale函数。 我的问题是,如果这个函数有任何替代,因为我不需要在我的情况下进行任何缩放。此外,如果有人可以对这个功能的工作流程有所了解,那将会非常有用。

P.S:我假设x264仅在YUV色彩空间中运行。如果这个假设不正确,请通知我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

  

P.S:我假设x264仅在YUV色彩空间中运行。如果这个假设不正确,请通知我。

libx264支持I420 / YV12 / NV12 / I422 / YV16 / NV16 / I444 / YV24 / BGR24 / BGR32 / RGB24输入颜色空间,编码为YUV 4:2:0 / YUV 4:2:2 / YUV 4:4 :4 / RGB(应在params中指定)。但除了YUV 4:2:0之外的任何东西都需要解码器的支持,因为它们不是High profile但更新的配置文件(High 4:2:2和High 4:4:4配置文件)的一部分。

答案 1 :(得分:0)

我找不到swscale的替代方案,除了快速双线性算法(用于缩放)之外,库中使用的所有其他算法都提供了相当可忽略的色移。
此外,在数学上不可能在没有任何颜色偏移的情况下从RGB转换为YUV颜色空间(由于方程式中的近似值)。
P.S:我无法使用RGB版本的libx264 / libavcodec。如果您有关于如何实施以及如何在Windows上构建相应版本的详细信息,请发布相同的链接/信息。