Re: Lossless JPEG
От: alex6565  
Дата: 26.03.09 11:40
Оценка:
Здравствуйте, Nesta, Вы писали:

N>Добрый день, я работаю с Lossless JPEG изображениями.

N>Для кодирования и декодирования использую библиотеку Intel ipp53. При работе с обычными JPEG не возникает никаких проблем. Все пишется и считывается правильно. А вот когда работаю с Lossless JPEG вылазит следующая проблема:

N>Не могу прочитать цветовую схему (RGB, YСBСR и т.д.) из Lossless JPEG-файла. Самое интересное, что этот файл я пишу при помощи ipp53 и передаю этой библиотеке цветовую схему. А потом не могу получить цветовую схему из этого файла. Причем я опять-таки читаю его при помощи ipp53.


N>По этому поводу удалось накопать следующее. Некоторые библиотеки для работы с JPEG в заголовок Lossles JPEG файла вставляют строку "Adobe" (для обычных JPEG файлов в заголовок вставляется "JFIF"). ipp53 работает след. образом: если "Adobe" найдена, то включается дополнительная логика, которая позволяет определить цветовую схему. Если эта строка не найдена — то цветовая схема не определяется.


N>Вот что здесь интересно. Получается, что ipp53 может корректно прочитать цветовую схему из Lossless JPEG файла, созданного другими библиотеками (потому что они пишут строку "Adobe" в заголовок), но не может эту цветовую схему достать из файла, который сама же и записала (ipp53 не пишет строку "Adobe" в заголовок).


N>Для разрешения данной проблемы мне нужна спецификация для Lossless JPEG файлов. В спецификации я хочу посмотреть как нужно правильно кодировать цветовую схему для Lossless JPEG файлов.


N>Кто-нибудь знает где можно скачать подобный док?

N>Спасибо за помощь

5116.DCT_Filter.pdf — там написано про маркер Adobe

Вообще то тут все просто — вот он

/* AbodeMarker == APP14; Adobe TN 5116
*/
struct AdobeMarker {
char sign[5]; // "Adobe"
uint16 version; // 0x64/0x65
uint16 flags0; // 0x8000 bit: Encoder used Blend=1 downsampling
uint16 flags1; // currently 0
uint8 colorTransform; // 1-YCbCr/2-YCCK/0-otherwise
};

вставляешь его в APP14 и все....

ЗЫ
я бы читал LJPEG своим кодом, итз перфекционизма
А ipp53 поддерживает bits per sample > 8 ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.