Добрый день, я работаю с Lossless JPEG изображениями.
Для кодирования и декодирования использую библиотеку Intel ipp53. При работе с обычными JPEG не возникает никаких проблем. Все пишется и считывается правильно. А вот когда работаю с Lossless JPEG вылазит следующая проблема:
Не могу прочитать цветовую схему (RGB, YСBСR и т.д.) из Lossless JPEG-файла. Самое интересное, что этот файл я пишу при помощи ipp53 и передаю этой библиотеке цветовую схему. А потом не могу получить цветовую схему из этого файла. Причем я опять-таки читаю его при помощи ipp53.
По этому поводу удалось накопать следующее. Некоторые библиотеки для работы с JPEG в заголовок Lossles JPEG файла вставляют строку "Adobe" (для обычных JPEG файлов в заголовок вставляется "JFIF"). ipp53 работает след. образом: если "Adobe" найдена, то включается дополнительная логика, которая позволяет определить цветовую схему. Если эта строка не найдена — то цветовая схема не определяется.
Вот что здесь интересно. Получается, что ipp53 может корректно прочитать цветовую схему из Lossless JPEG файла, созданного другими библиотеками (потому что они пишут строку "Adobe" в заголовок), но не может эту цветовую схему достать из файла, который сама же и записала (ipp53 не пишет строку "Adobe" в заголовок).
Для разрешения данной проблемы мне нужна спецификация для Lossless JPEG файлов. В спецификации я хочу посмотреть как нужно правильно кодировать цветовую схему для Lossless JPEG файлов.
Кто-нибудь знает где можно скачать подобный док?
Спасибо за помощь
Здравствуйте, 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>Спасибо за помощь
wiki
Standards
* JPEG (lossy and lossless): ITU-T T.81, ISO/IEC IS 10918-1
* JPEG (extensions): ITU-T T.84
* JPEG-LS (lossless, improved): ITU-T T.87, ISO/IEC IS 14495-1
* JBIG (black and white pictures): ITU-T T.82, ISO/IEC IS 11544-1
* JPEG 2000 (successor of JPEG/JPEG-LS): ITU-T T.800, ISO/IEC IS 15444-1
* JPEG-2000 (extensions): ITU-T T.801
* JPEG XR (formerly called HD Photo) undergoing final voting as ISO/IEC 29199-2
Не бойтесь пользоваться поиском
Здравствуйте, Grey-, Вы писали:
G>wiki
G>Standards
G> * JPEG (lossy and lossless): ITU-T T.81, ISO/IEC IS 10918-1
G> * JPEG (extensions): ITU-T T.84
G> * JPEG-LS (lossless, improved): ITU-T T.87, ISO/IEC IS 14495-1
G> * JBIG (black and white pictures): ITU-T T.82, ISO/IEC IS 11544-1
G> * JPEG 2000 (successor of JPEG/JPEG-LS): ITU-T T.800, ISO/IEC IS 15444-1
G> * JPEG-2000 (extensions): ITU-T T.801
G> * JPEG XR (formerly called HD Photo) undergoing final voting as ISO/IEC 29199-2
G>Не бойтесь пользоваться поиском
Я читал эти доки. В них достаточно хорошее описание стандартных baseline JPEGов, но нет ничего конкретного про lossless JPEG файлы
Здравствуйте, 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 ?