Определение таблицы квантования файла JPEG - PullRequest
1 голос
/ 14 февраля 2012

Когда я использую функцию Photoshop Сохранить как и выбираю формат файла jpeg, я получаю следующее окно:

enter image description here

Как вы можете видеть, я выбираю Baseline («Стандарт»") формат и максимальное качество изображения.Когда я открываю эту картинку в шестнадцатеричном редакторе, я вижу несколько маркеров FF DB (которые являются началом таблиц квантования).Пока проблем нет, но давайте посмотрим на следующее изображение: enter image description here

Как видно на рисунке выше, в строке адреса BDA начинается маркер FFDA.Первые два байта - 00 84, что означает, что этот маркер содержит 132 байта данных.Делая некоторые математические вычисления, мы можем заключить, что этим маркером определены две таблицы квантования.Значения первой таблицы: 0C 08 08 08 09 и т. Д. *

В этом же файле есть еще один маркер FFDB, начиная со строки адреса 2885, как вы можете видеть на рисунке:

enter image description here

Опять же, значение первых двух байтов равно 00 84, что означает 132 байта данных.Но на этот раз значения первой таблицы квантования таковы: 01 01 01 и т. Д.

Как узнать, какой из маркеров FF DA следует использовать, и почему в файле есть несколько маркеров FFDA

1 Ответ

2 голосов
/ 14 февраля 2012

Не видя всего файла, сложно сказать с уверенностью, но похоже, что ваша первая таблица квантования предназначена для встроенного эскиза, сжатого с более низким качеством.Вторая таблица квантования предназначена для основного изображения и имеет значения 01,01,01, ... потому что вы выбрали самое высокое качество и, следовательно, значения коэффициентов квантованы в наименьшем возможном количестве.

...