(Крест отправил на libjpeg-турбо-пользователям.)Как сжать YUYV изображение в формате JPEG
У меня возникли проблемы с libjpeg-турбо.
Функция tjCompress2 требует сжатия изображения RGB или Greyscale.
http://libjpeg-turbo.sourceforge.net/ljtdoc.branches_1.3.x/turbojpeg-c/group___turbo_j_p_e_g.html#gaba62b7a98f960839b588579898495cf2
(К сожалению, вам придется вставить эту ссылку, как он ломает уценки.)
Моя веб-камера (а PS3 EyeToy) имеет следующие характеристики:
[email protected] ~ $ v4l2-ctl --get-fmt-video
Format Video Capture:
Width/Height : 320/240
Pixel Format : 'YUYV'
Field : None
Bytes per Line: 640
Size Image : 153600
Colorspace : SRGB
От http://en.wikipedia.org/wiki/JPEG#Color_space_transformation это похоже, что YUYV эквивалентен YCbCr, который нужен JPEG (хотя он имеет половину данных Cb и Cr, по сравнению с яркостью). Правильно ли я понял?
Я знаю, как превратить YUYV в RGB, используя матрицу, но это кажется пустой тратой скудных циклов процессора и цветовой точностью, чтобы выполнить два изменения цветового пространства, когда они не нужны.
Есть функция, которая может напрямую сжимать изображение YUYV в JPEG?