我正在尝试使用libjpeg从jpeg中获取YUV420 palanar或semiplanar(NV12)图像。
我看到有一个选项可以指定JCS_YCbCr的输出格式,它通常是YUV格式,但据我所知,它会给我数据为3个元素{Y,U,V}的数组。因此,为了使图像格式正确,我必须自己重新排列和子采样像素,我想避免出于性能原因。
所以我想知道有没有办法配置libjpeg直接输出YUV420p / NV12缓冲区。
答案 0 :(得分:3)
只需查看gstreamer源代码树中的gst_jpeg_decode()
即可。此功能以及gst_jpeg_decode_direct()
功能完全符合您的要求。
请注意,它提供了YUV420平面输出,绕过了libjpeg完成的所有颜色转换。 (注意:这假设输入JPEG是在YUV420色彩空间(又名I420)中编码的,几乎所有的JPEG都是如此。