Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.pdf
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
2.2 Mб
Скачать

тов в палитре изображения. Коэффициенты сжатия для RLE в случае формата PCX: лучший 32, средний 2, худший 0.5.

7.2.2. Формат BMP

Рисунок 66 – Формат хранения растрового (bitmap) изображения Формат хранения растрового (bitmap) изображения разработан и поддер-

живается компанией Microsoft и используется в операционной системе Windows и создаваемых под неё приложениях.

Файл формата "BMP" имеет следующую достаточно простую структуру, содержащую в своей основе используемый Windowsв формат DIB (DeviceIndepended Bitmap) с разделенной информацией о цвете и изображении:

141

Расшифровка числа битов на пиксель:

1 – монохромное изображение, два элемента палитры, каждый бит графических данных - индекс в палитре.

4 – 16 цветов, до 16 элементов палитры, каждый пиксель кодируется 4 битами в массиве графических данных

8 – 256 цветов, до 256 элементов палитры, каждый байт графических данных имеет значение индекса в палитре цветов

24 – True Color формат (16 млн. цветов), массив палитры отсутствует, каждые 3 байта графических данных представляют RGB-код.

RGBQUAD – палитра

Данные растрового изображения

Последовательность байтов графических данных, возможно подвергнутых сжатию. Строки изображения восстанавливаются снизу вверх слева направо. Строки дополняются битами до 32-битной границы.

Рисунок 67 – RGBQUAD – палитра

Преимущества формата проявляются только при работеMicrosoftс Windows и ее приложениями. Алгоритмы обработки данного формата наиболее просты и понятны. Недостаток – чаще всего огромный размер получаемых файлов (так как даже простейшее сжатие обычно не используется).

Особенности RLE для формата BMP.

BMP-файлы могут хранить сжатое изображение (тогда они обычно имеют расширение RLE), используя метод группового кодирования, где группы из последовательности одинаковых пикселей записаны в виде числа повторенийn и значения повторяемого цветаv. Таким образом, для распаковки сжатого изображения следует отобразить n пикселей v цвета, а затем переходить к другой кодовой группе. Максимальный размер группы n = 255 пикселей, при этом, чем длиннее группа, тем эффективнее сжатие. Сжатие может осуществляться на

142

уровне байтов (256 цветов) или полубайтов (16 и менее цветов). 24-битные данные не сжимаются. Для BMP коэффициенты сжатия RLE: лучший 64, средний

3, худший 128/129.

1) Кодирование BI_RLE8. В данном формате обработка ведется на уровне байтов. Пиксели хранятся в виде многобайтовых блоков, как минимум, по два байта каждый. Если первый байт блока не равен нулю, он представляет собой байт-повторитель, за которым идет 8-разрядный индекс цвета (рис. V.2).

Пример: код "07 0А" распакуется в последовательность "0А 0А 0А 0А 0А 0А 0А" и процедура перейдет к чтению нового блока.

Если первый байт блока равен нулю, то это специальная командная последовательность, которая имеет следующий ряд значений:

00 00 – закончить текущую строку развертки и начать новую. 00 00 – закончить текущую строку развертки и начать новую. 00 01 – конец данных, закончить распаковку изображения.

00 02 XX YY – отобразить следующий пиксель сXX-горизонтальным и YY-вертикальным смещением относительно текущей позиции. Цвета пропущенных пикселей не определяются.

00 NN k1 k2 k3 ...kn – отобразить NN несжатых пикселей с цветами, опре-

деляемыми индексами k1 , k2 ...kn . Поскольку все команды должны иметь четное число байтов, блок этого типа заканчивается дополнительным нулевым байтом, если NN нечетное. Очевидно, что 3<=NN<=255.

Пример: код "00 05 03 0А 02 01 07 00" распакуется в последовательность

"03 0А 02 01 07".

Рисунок 68 – Кодирование BI_RLE8 для BMP формата

2) Кодирование BI_RLE4. Особенность этого формата в том, что операции проводятся с четверками битов (полубайтами), схема кодирования остается такой же.

Если первый байт не равен нулю, то он определяет количество пикселей для вывода. В старших четырех битах второго байта хранится индекс цвета1, а в младшей – индекс цвета 2. При распаковке эти цвета чередуются.

143

Если первый байт равен нулю, то это специальная команда, которая отрабатывается так же, как и в случае BI_RLE8, за исключением последней – режима абсолютного вывода. В этом случае второй байт содержит количество следующих за ним полубайтов. Общее число байтов в такой группе дополняется нулями до границы 16-разрядного слова.

Пример: группа "00 05 12 34 50 00" превратится в "1 2 3 4 5". Три конечных нулевых полубайта – только дополнение, которое игнорируется.

7.2.3.Формат TGA (Targa)

Был разработан вTruevision Inc. и AT&T для аппаратной реализации в платах оцифровки видеоизображений (Targa), широко используется в профессиональных системах компьютерной графики и видеомонтажа.

Общая структура файла:

Заголовок (блок переменной длины, структуру см. в табл. V.5)

Палитра (блок переменной длины, длина указана в заголовке, может отсутствовать)

Видеоданные (блок переменной длины, может отсутствовать)

Завершитель (может отсутствовать)

Каталог разработчика (может отсутствовать)

Область расширения (может отсутствовать) Структура байта описателя изображения:

– биты 0, 1, 2, 3 отвечают за организацию альфа-канала, если его нет - ну-

ли.

– биты 4, 5 ответственны за порядок сохранения / восстановления пиксе-

лей.

– биты 6, 7 всегда нули.

Если палитра отсутствует, то цвет кодируется байтами видеоданных, при этом действуют те же соглашения, что и в случае описания палитры, при этом информация берется из байта со смещением16. Например, если байт 1 равен нулю (палитры нет), а число бит на пиксель равно 24, то идущие за заголовком видеоданные представляют собой набор трехбайтовыхBGRпоследовательностей, соответствующих каждому пикселю изображения.

Завершителем является строкаTRUEVISION-TARGA22 и нулевой символ на конце неё.

22

Однако, Adobe Photoshop ставит в качестве завершителя строку TRUEVISION-XFILE

144

Рисунок 69 – Кодирование RLE для TGA формата

Рисунок 70 – Структура заголовка файла формата TGA

145