Парсинг формата файла JPEG: Формат кодированных энтропией сегментов (ECS)?

Я испытываю затруднения при понимании спецификации ITU-T T.81 для формата файла JPEG. Надо надеяться, кто-то еще здесь попытался проанализировать файлы JPEG и/или знает о деталях этого формата файла.

Спецификация indiates, который сегмент ECS0 запускает после сегмента SOS, но я не могу найти, где в спецификации это на самом деле говорит о формате сегмента ECS0 или как действительно обнаруживают его запуск. Простые реализации JPEG онлайн имеют ограниченную справку, потому что они принимают много вещей о JPEGs, который они анализируют.

Кто-либо может указать на меня в правильном направлении?

К вашему сведению: спецификация формата файла JPEG здесь.

7
задан me2 18 March 2010 в 01:59
поделиться

1 ответ

Когда в стандарте говорится о ECS, он не относится к нему как к типу сегмента, как SOS, с компонентом заголовка и размера; это буквально необработанный сжатый по Хаффману битовый поток, представляющий MCU, которые содержат данные изображения. Он дополняется для заполнения целого числа байтов и может при желании чередоваться с заголовками RST (формально заголовки RST отделены от ECS).

Когда в стандарте указано ECS 0 , это означает 0-й (первый) запуск ECS, а не конкретный тип ECS, например, различные типы SOF0 / SOF1 / SOF2 / и т. Д.

Пример базового DCT:

FF DA // SOS header
00 08 // 8 bytes
01 // 1 channel
01 00 // channel 1 QT 0 HT 0
00 3F 00 // start/end spectral selector, successive approximation bit high/low
12 34 56 78 ... // Huffman-compressed MCU raw data
 (sequence of Fuffman codes looked-up in AC/DC Huffman tables)

FF D9 // EOI

Удобная бесплатная программа для объяснения структуры JFIF - это JPEGsnoop ( http://www.impulseadventure.com/photo/jpeg-snoop.html ) . В меню есть опция «Полное декодирование», которая показывает необработанный битовый поток Хаффмана, как он отображается на символы Хаффмана, деквантизируется и затем отображается в компоненты DCT.

5
ответ дан 7 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: