JFIF
Как уже отмечалось, JPEG является методом сжатия графических данных, а не графическим форматом. Поэтому в нем не определяются такие специфические параметры изображения, как геометрический размер пиксела, световое пространство или чередование битовых строк. Все это делается в формате JFIF.
JFIF (Jpeg File Interchange Format, формат обмена файлами стандарта JPEG) является графическим форматом данных, который обеспечивает обмен сжатыми файлами JPEG между компьютерами. Основные особенности этого формата заключаются в использовании цветового пространства YCbCr из трех цветовых компонент цветных изображений (или одна компонента для полутоновых изображений), а также использование маркера для обозначения параметров, отсутствующих в стандарте JPEG, а именно, разрешение изображения, геометрический размер пиксела и некоторые другие параметры, специфические для конкретных приложений.
Маркер JFIF (называемый еще АРРО) начинается строкой символов JFIF(NUL). Затем записаны информация о пикселах и другие спецификации. Далее могут следовать дополнительные сегменты, описывающие расширения JFIF, в которых записывается платфор-менно ориентированная информация об изображении.
|
Значение |
Имя |
Описание |
|
Недифференциальное, кодирование Хаффмана |
||
|
FFC0 |
SOFo |
Вазелина DCT 1 |
|
FFC1 |
SOFi |
Расширенное последовательное DCT |
|
FFC2 |
SOF2 |
Прогрессирующее DCT |
|
FFC3 |
SOF3 |
Без потери (последовательное) | |
|
д |
ифферен |
циальное, кодирование Хаффмана |
|
FFC5 |
SOF5 |
Дифференциальное последовательное DCT I |
|
FFC6 |
SOF6 |
Дифференциальное прогрессирующее DCT |
|
FFC7 |
SOF7 |
Дифференциальное без потери (последов.) | |
|
Недифференциальное арифметическое кодирование |
||
|
FFC8 |
JPG |
Зарезервировано для расширения 1 |
|
FFC9 |
SOFg |
Расширенное последовательное DCT |
|
FFCA |
SOF10 |
Прогрессирующее DCT |
|
FFCB |
SOFn |
Без потери (последов.) | |
|
1 Диф |
ференцш |
ильное, арифметическое кодирование |
|
FFCD |
SOFis |
Дифференциальное последовательное DCT I |
|
FFCE |
SOF14 |
Дифференциальное прогрессирующее DCT |
|
FFCF |
SOF15 |
Дифференциальное без потери (последов.) | |
|
Таблицы для метода Хаффмана |
||
|
FFC4 |
DHT |
Задание таблиц для метода Хаффмана | |
|
Спег |
дефикаци |
и для арифметического кодирования |
|
FFCC |
DAC |
Задание условий арифм. кодирования | |
|
Начало нового интервала |
||
|
FFD0-FFD7 |
RSTm |
Рестарт по модулю 8 счетчика га | |
|
Другие маркеры |
||
|
FFD8 |
SOI |
Начало образа 1 |
|
FFD9 |
EOI |
Конец образа |
|
FFDA |
SOS |
Начало скана |
|
FFDB |
DQT |
Задание таблиц квантования |
|
FFDC |
DNL |
Задание числа строк |
|
FFDD |
DRI |
Задание интервала рестарта |
|
FFDE |
DHP |
Задание иерархической прогрессии |
|
FFDF |
EXP |
Расширенная компонента ссылки |
|
FFE0-FFEF |
APPn |
Зарезервировано для сегментов приложений |
|
FFF0-FFFD |
JPGn |
Зарезервировано для расширения JPEG |
|
FFFE |
COM |
Комментарий | |
|
Зарезервированные маркеры |
||
|
FF01 |
ТЕМ |
Для временного использования 1 |
|
| FF02-FFBF |
RES |
Зарезервированы | |
Табл. 3.59. Маркеры JPEG.
Каждое расширение начинается строкой JFXX(NUL). Далее следует 1 байт, идентифицирующий конкретное расширение. Расширение может содержать данные, используемые конкретными приложениями. Тогда они могут начинаться другими строками или специальными идентифицирующими маркерами, отличными от JFIF и JFXX.
Формат первого сегмента маркера АРРО состоит из следующих полей:
1. Маркер АРРО (4 байта): FFD8FFE0.
2. Длина (2 байта): общая длина маркера, включая 2 байта поля «длина», но исключая сам маркер АРРО (поле 1).
3. Идентификатор (5 байтов): 4A46494600i6. Это строка JFIF(NUL), идентифицирующая маркер АРРО.
4. Версия (2 байта). Пример: 0102i6 обозначает версию 1.02.
5. Единица измерения (1 байт) плотности по координатам X и Y. Число 0 означает отсутствие этой единицы, поля Xdensity и Ydensity обозначают геометрический размер пиксела. Число 1 обозначает, что величины Xdensity и Ydensity измеряются в точках на дюйм, а 2 - в точках на сантиметр.
6. Xdensity (2 байта), Ydensity (2 байта): плотность пикселов по горизонтали и по вертикали (обе должны быть ненулевые).
7. Xthumbnail (1 байт), Ythumbnail (1 байт): Размер крохотного пиксела по горизонтали и вертикали.
8. (RGB)n (3n байт) упакованные (24-битовые) величины RGB раскраски крохотного пиксела, п =XthumbnailxYthumbnail.
Синтаксис сегмента расширения маркера АРРО имеет следующий вид.
1. Маркер АРРО.
2. Длина (2 байта): общая длина маркера, включая 2 байта поля «длина» , но исключая сам маркер АРРО (поле 1).
3. Идентификатор (5 байтов): 4A46585800i6. Это строка JFXX(NUL), идентифицирующая расширение.
4. Код расширения (1 байт): 10i6 означает, что пиксел закодирован JPEG, 1116 - размер пиксел 1 байт/пиксел (монохроматический), 13ie _ размер пиксел 3 байт/пиксел (цветной).
5. Данные расширения (переменные): это поле зависит от конкретного приложения.
- Теги:
- 521 просмотр









