aLLigator

|
Posted: Sat Feb 11, 2012 02:47 Post subject: |
|
|
Немного информации по поводу отличий Baselinе (standard) и Baselinе (Оptimized) в структуре для режима "Save for Web".
Отличия имеет только маркер DHT (Таблицы Хаффмана), а точнее его размер.. файл сжатый в обычном Baselinе имеет вдвое больший размер этой секции по сравнению с Оptimized и Progressive.
Кстати, это же самое справедливо и для режима "Save As.."
Все остальные маркеры либо абсолютно идентичны, либо не имеют существенных различий.
Надеюсь эта информация как-то поможет!
Так же пытаюсь понять колько же всетаки сканов используется в Progressive...
Немного о самой структуре:
Code: |
Маркер [FF C4]: DHT (таблица Хаффмана)
Эта секция хранит коды и значения полученные кодированием Хаффмана.
_______________FF C4 00 15 00 01 01 00 00 00 00
00 00 00 00 00 00 00 00 00 00 03 02
[00 15] длина: 21 байт.
[0_] класс: 0 (0 — таблица AC коэффициэнтов, 1 — таблица DC коэффициэнтов).
[_0] идентификатор таблицы: 0
Длина кода Хаффмана: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Количество кодов: [01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
Количество кодов означает количество кодов такой длины. Обратите внимание, что секция хранит только длины кодов, а не сами коды. Мы должны найти коды сами. Итак, у нас есть один код длины 1 и один — длины 2. Итого 2 кода, больше кодов в этой таблице нет.
С каждым кодом сопоставлено значение, в файле они перечислены следом. Значения однобайтовые, поэтому читаем 2 байта.
[03] — значение 1-го кода.
[02] — значение 2-го кода.
|
Last edited by aLLigator on Sun Feb 12, 2012 01:55; edited 3 times in total |
|