Код Хаффмана в формате JPEG - PullRequest
       42

Код Хаффмана в формате JPEG

0 голосов
/ 08 декабря 2011

Это шестнадцатеричное содержание моего изображения JPEG (я пометил маркер FFC4 на изображении).Как видите, после байта 0x01 стоит значение 0xA2!Как это возможно, потому что стандарт говорит, что следующие 16 байтов после 0x10 сообщают нам, сколько кодов каждой длины?Невозможно иметь такое количество кодов с 1 битом.Я ошибся?JPEG hex content

1 Ответ

2 голосов
/ 09 декабря 2011

То, что вы видите, это длина блока Хаффмана (в порядке с прямым порядком байтов) в байтах (вычтите 2, чтобы включить поле длины длины).

Блок Хаффмана имеет длину 0x1a2 байта. После длины есть один байт, представляющий информацию таблицы Хаффмана (номер таблицы, а также, предназначена ли таблица для коэффициентов переменного или постоянного тока)

Начало чтения кодов длины после информационного значения:

    Information Byte = 0x00    
    Number of length 1 codes = 0
    Number of length 2 codes = 0
    Number of length 3 codes = 7
    ...
...