4

我正在尝试使用 libjpeg 从 jpeg 中获取 YUV420 平面或半平面(NV12)图像。

我看到有一个选项可以指定 JCS_YCbCr 的输出格式,它通常是 YUV 格式,但据我了解,它会给我作为 3 个元素 { Y、U、V} 的数组的数据。因此,为了使图像格式正确,我必须自己重新排列像素并对其进行二次采样,出于性能原因,我想避免这种情况。

所以我想知道有没有办法配置 libjpeg 直接输出 YUV420p / NV12 缓冲区。

4

1 回答 1

3

只需查看gst_jpeg_decode()gstreamer 源代码树即可。这个函数和gst_jpeg_decode_direct()函数正是你想做的。

请注意,它提供了 YUV420 平面输出,绕过了 libjpeg 完成的所有颜色转换。(注意:这假设输入的 JPEG 是在 YUV420 颜色空间(又名 I420)中编码的,这对于几乎所有的 JPEG 都是正确的。

于 2012-12-04T09:28:43.017 回答