2013-10-09 5 views
4

(Крест отправил на 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?

ответ

2

С момента запроса вопроса в API TurboJPEG реализована функция tjCompressFromYUV. Он принимает изображение в формате YCbCr или YUV и преобразует его в изображение JPEG.

Однако для сжатия изображения YUYV с использованием API TurboJPEG вам все равно необходимо преобразовать YUYV в формат изображения Y-Cb-Cr.

Там также может быть небольшой шанс использовать YUYV изображение YUV изображение с подвыборки из 4:2:2, так как это привело бы к двум Y компонентов в UV компонентов, но если this source точно, есть четыре различных возможных способы разместить компоненты YUVY. Но чтобы быть уверенным, есть шанс 1/4, чтобы это работало.

В противном случае вы также можете преобразовать изображение с помощью PNGU или что-то подобное, прежде чем преобразовать его в JPEG, поскольку эта библиотека может «сохранять изображения YCbYCr в формате PNG RGB8».

 Смежные вопросы

  • Нет связанных вопросов^_^