У меня есть вопрос о стандарте DICOM и библиотеке libjpeg. В стандарте DICOM, есть, в частности, передача Синтаксис:libjpeg и lossless JPEG
JPEG Lossless, неиерархические, первого порядка Предсказание (Процессы 14 [Значение Выбор 1]): По умолчанию Передача Синтаксис Lossless JPEG Сжатие изображения
Насколько я знаю, этот Синтаксис перевода соответствует формату JPEG-1 Lossles. я начал исследовать libjpeg библиотеки, и я обнаружил, что он не поддерживает Lossless JPEG, как указано здесь (?): JPEG Lossless in DICOM
Кроме того, в libjpeg документации есть часть, говоря:
Неподдерживаемого вариант ISO включают: * иерархическое хранение * Lossless JPEG * DNL маркерных * нецелых коэффициентов подвыборки
Однако в коде библиотеки, в параметрах сжатия структуры jpeg_compress_struct
есть поле:
boolean lossless; /* TRUE=lossless encoding, FALSE=lossy */
Что все это значит есть? Я действительно смущен. Может ли кто-нибудь описать, какие стандарты JPEG поддерживаются библиотекой? Кроме того, как установить параметры сжатия для совместимости с стандартом DICOM JPEG Lossless?
Оказывается, что libjpeg поддерживает режим без потерь (JPEG-LS), которая отличается из JPEG без потерь, с которым вы работаете. Я не видел никаких реализаций этого кодека, кроме как в библиотеках DICOM. Я написал свой собственный, и на самом деле он очень упрощен. – BitBank
Вы уверены, что libjpeg поддерживает JPEG-LS? Я думаю, что это более поздняя модификация JPEG и libjpeg - насколько я знаю - поддерживает «базовый» – Artyshan
Я не уверен на 100%, но я не видел ничего похожего на то, что это вам поможет. Дело в том, что для декодирования DICOM без потерь JPEG требуется около 100 строк кода C (для конкретного алгоритма без потерь). Он похож на PNG с фильтром и значениями дельты, закодированными с макс. Длиной 16 кодов Хаффмана. – BitBank