Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


3.7.8. JFIF

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

JFIF (Jpeg File Interchange Format, формат обмена файлами стандарта JPEG) является графическим форматом данных, который обеспечивает обмен сжатыми файлами JPEG между компьютерами. Основные особенности этого формата заключаются в использовании цветового пространства YCbCr из трех цветовых компонент цветных изображений (или одна компонента для полутоновых изображений), а также использование маркера для обозначения параметров, отсутствующих в стандарте JPEG, а именно, разрешение изображения, геометрический размер пиксела и некоторые другие параметры, специфические для конкретных приложений.

Маркер JFIF (называемый еще АРР0) начинается строкой символов JFIF(NUL). Затем записаны информация о пикселах и другие спецификации.

Значение

Имя

Описание

Недифференциальное, кодирование Хаффмана

FFC0

FFC1

FFC2

FFC3

SOF0

SOF1

SOF2

SOF3

Базелина DCT

Расширенное последовательное DCT

Прогрессирующее DCT

Без потери (последовательное)

Дифференциальное, кодирование Хаффмана

FFC5

FFC6

FFC7

SOF5

SOF6

SOF7

Дифференциальное последовательное DCT Дифференциальное прогрессирующее DCT Дифференциальное без потери (последов.)

Недифференциальное, арифметическое кодирование

FFC8

FFC9

FFCA

FFCB

JPG

SOF9

SOF10

SOF11

Зарезервировано для расширения

Расширенное последовательное DCT

Прогрессирующее DCT

Без потери (последов.)

Дифференциальное, арифметическое кодирование

FFCD

FFCE

FFCF

SOF13

SOF14

SOF15

Дифференциальное последовательное DCT Дифференциальное прогрессирующее DCT Дифференциальное без потери (последов.)

Таблицы для метода Хаффмана

FFC4

DHT

Задание таблиц для метода Хаффмана

Спецификации для арифметического кодирования

FFCC

DAC

Задание условий арифм. кодирования

Начало нового интервала

FFD0-FFD7

RSTm

Рестарт по модулю 8 счетчика m

Другие маркеры

FFD8

FFD9

FFDA

FFDB

FFDC

FFDD

FFDE

FFDF

FFE0-FFEF

 FFF0-FFFD

FFFE

SOI

EOI

SOS

DQT

DNL

DRI

DHP

EXP

APPn

JPGn

COM

Начало образа

Конец образа

Начало скана

Задание таблиц квантования

Задание числа строк

Задание интервала рестарта

Задание иерархической прогрессии

Расширенная компонента ссылки

Зарезервировано для сегментов приложений

Зарезервировано для расширения JPEG

Комментарий

Зарезервированные маркеры

FF01

FF02-FFBF

ТЕМ

RES

Для временного использования

Зарезервированы

Табл. 3.59. Маркеры JPEG.

Далее могут следовать дополнительные сегменты, описывающие расширения JFIF, в которых записывается платформенно ориентированная информация об изображении.

Каждое расширение начинается строкой JFXX(NUL). Далее следует 1 байт, идентифицирующий конкретное расширение. Расширение может содержать данные, используемые конкретными приложениями. Тогда они могут начинаться другими строками или специальными идентифицирующими маркерами, отличными от JFIF и JFXX.

Формат первого сегмента маркера АРР0 состоит из следующих полей:

1. Маркер АРР0 (4 байта): FFD8FFE0.

2. Длина (2 байта): общая длина маркера, включая 2 байта поля «длина», но исключая сам маркер АРР0 (поле 1).

3. Идентификатор (5 байтов): . Это строка JFIF(NUL), идентифицирующая маркер АРР0.

4. Версия (2 байта). Пример:  обозначает версию 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 раскраски крохотного пиксела, n=Xthumbnail×Ythumbnail.

Синтаксис сегмента расширения маркера АРР0 имеет следующий вид.

1. Маркер АРР0.

2. Длина (2 байта): общая длина маркера, включая 2 байта поля «длина», но исключая сам маркер АРР0 (поле 1).

3. Идентификатор (5 байтов): . Это строка JFXX(NUL), идентифицирующая расширение.

4. Код расширения (1 байт):  означает, что пиксел закодирован JPEG,  - размер пиксел 1 байт/пиксел (монохроматический),  - размер пиксел 3 байт/пиксел (цветной).

5. Данные расширения (переменные): это поле зависит от конкретного приложения.

 



<< ПредыдущаяОглавлениеСледующая >>