Я пишу декодер для чтения необработанного потока данных в формате jpeg и преобразования его в значения пикселей. Я нахожусь на этапе, когда я построил деревья Хаффмана, и мне нужно использовать их для декодирования сканирования изображения, которое следует за сегментом SOS. Я понимаю, что процесс декодирования отличается в зависимости от маркера APPn, но подробностей самого процесса декодирования найти не могу. Я получаю четыре отдельных дерева AC Huffman в базовом формате jpeg, и меня смущает то, какое дерево должно использоваться для декодирования. Кажется, что деревья имеют перекрывающиеся значения, поэтому я не могу просто применить все деревья к процессу декодирования. Итак, предполагая базовый кодированный jpeg, как мне выяснить, какие деревья Хаффмана использовать для декодирования сканирования изображения, а также где их использовать при сканировании?
Декодируйте данные сканирования изображений JPEG с помощью таблиц Хаффмана
comment
Именно это подробно описано в стандарте.
- person DaBler   schedule 29.11.2020
Ответы (1)
Это единственный известный мне источник, который объясняет процесс без академической чепухи:
https://rads.stackoverflow.com/amzn/click/com/0201604434
Для каждого сканирования используется одна таблица Хаффмана. Вы используете только один для каждого. Одно сканирование может совместно использовать таблицы Хаффмана с другим. Маркер SOS указывает, какую таблицу Хаффмана использовать при сканировании.
person
user3344003
schedule
03.05.2019