Файл: Лекции Компьютерная графика.pdf

Добавлен: 29.10.2018

Просмотров: 6922

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Кодек (от кодер-декодер) — программный модуль, реализующий упаков-
ку и распаковку звука или видео.

Существуют две основные схемы сжатия с потерями:

1.

В предсказывающих кодеках предыдущие и/или последующие данные ис-

пользуются для того, чтобы предсказать текущий фрейм. Ошибка между пред-

сказанными данными и реальными вместе с добавочной информацией, необхо-

димой для производства предсказания, затем квантизуется и кодируется.

2.

В трансформирующих кодеках берутся фреймы (изображений или зву-

ка), разрезаются на небольшие сегменты, трансформируются в новое базисное

пространство и производится квантизация. Результат затем сжимается эн-
тропийными методами

.

В некоторых системах эти две техники комбинируются путём использования

трансформирующих кодеков

для сжатия ошибочных сигналов, сгенерирован-

ных на стадии предсказания.

Преимущество методов сжатия с потерями над методами сжатия без потерь

состоит в том, что первые существенно превосходят по степени сжатия, продолжая

удовлетворять поставленным требованиям.

Распакованный файл может очень сильно отличаться от оригинала на уровне

сравнения «бит в бит», но практически неотличим для человеческого уха или глаза

в большинстве практических применений.

Много методов основано на особенностях строения органов чувств человека. Пси-

хоакустическая модель определяет то, как сильно звук может быть сжат без ухуд-

шения воспринимаемого качества звука.

Дефекты, причинённые сжатием с потерями, которые заметны для
человеческого глаза или уха, называются артефакты сжатия.

Звуковые данные, прошедшие сжатие с потерями, не принимаются судами как

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

что информация, прошедшая сжатие, приобретает артефакты сжатия и теряет есте-

ственные шумы среды, из которой производилась запись, в связи с чем невозможно

установить, подлинная ли запись или синтезированная. Поэтому важные записи ре-

комендуется производить в форматах импульсно-кодовой модуляции (ИКМ, или

Pulse Code Modulation, PCM) (см. стр. ??) или использовать плёночный диктофон.

Фотографии, записанные в формате JPEG, могут быть приняты судом (несмот-

ря на то, что данные прошли сжатие с потерями). Но при этом должен быть предо-

ставлен фотоаппарат, которым они сделаны, или соответствующая фототаблица
цветопередачи

.

5.3. Растровые файлы

BMP

(Windows Bitmap,

.bmp) — формат Microsoft Windows.

20


background image

PCX

(

.pcx) — формат Z-Soft, имеет алгоритм сжатия без потерь, оптими-

зированный для BW-файлов.

TIFF

(Tagged Image File Format,

.tif, .tiff) — наилучший формат хране-

ния

растровых изображений, поддерживает различные цветовые схемы, алгоритм

сжатия без потерь

LZW и алгоритм сжатия с потерями JPEG. Поддерживается

почти всеми издательскими и графическими пакетами.

RAW

(

.raw) — простой формат (сырые данные) растровых изображений глу-

биной цвета

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

символом).

В современных цифровых устройствах это формат цифровых файлов изображе-

ния, содержащий необработанные данные об электрических сигналах с фотоматри-

цы цифрового фотоаппарата, цифровой кинокамеры, а также сканеров неподвиж-

ных изображений или киноплёнки.

В таких файлах содержится информация, полученная непосредственно с АЦП,

не имеющая какой-либо общепринятой спецификации.

GIF(87)

(Graphics Interchange Format,

.gif) — выходной формат растровых

изображений (рисованного типа) для электронных публикаций, поддерживается по-

чти всеми издательскими и графическими пакетами, сжатие достигается за счёт

индексации цветов (до 256).

GIF(89a)

(Graphics Interchange Format,

.gif) — появилась возможность черес-

строчной загрузки

, задания прозрачного цвета и покадровой анимации.

PhotoCD

(

.pcd) — формат Kodak, имеет 5 фиксированных уровней разреше-

ния: Base (512 × 768), Base/4, Base × 4, Base/16, Base × 16; имеет алгоритм сжатия
с потерями

.

JPEG

(Joint Photographic Experts Group,

.jpeg, .jpg, .jpe, .jfif) — выходной

формат растровых изображений (фотографического типа) для электронных публи-

каций, поддерживается почти всеми издательскими и графическими пакетами, имеет
мощный регулируемый алгоритм сжатия с потерями

, возможность чересстрочной

загрузки

.

Поддерживается сжатие цветных (24 бит) и серых изображений. При сохранении

можно указать степень качества (степень сжатия), которую обычно задают в неко-

торых условных единицах (например, от 1 до 100 или от 1 до 10). Большее число

соответствует лучшему качеству, но при этом увеличивается размер файла. Чаще

всего разница в качестве между 90% и 100% на глаз уже практически не восприни-

мается.

При сжатии изображение переводится в цветовую систему YCbCr (YUV) (по-

дробнее см. на стр. ??, ??). Далее каналы изображения Cb и Cr, отвечающие за

цвет, уменьшаются в 2 раза (по линейному масштабу) — формат 2:1:1. Уже на этом

этапе необходимо хранить только четверть информации о цвете изображения.

21


background image

Реже используется уменьшение цветовой информации в 4 раза (4:1:1) или сохра-

нение размеров цветовых каналов как есть (1:1:1). Количество программ, которые

поддерживают сохранение в таком виде, относительно невелико. Далее цветовые

каналы изображения, включая чёрно-белый канал Y, разбиваются на блоки 8 × 8

пикселей. Каждый блок подвергается дискретно-косинусному преобразованию.

Полученные коэффициенты подвергаются квантованию и упаковываются с по-

мощью кодов Хаффмана. Идея алгоритма состоит в следующем: зная вероятно-

сти символов в сообщении, можно описать процедуру построения кодов переменной

длины, состоящих из целого количества битов. Символам с большей вероятностью

ставятся в соответствие более короткие коды. Коды Хаффмана обладают свойством

префиксности (то есть ни одно кодовое слово не является префиксом другого), что

позволяет однозначно их декодировать.

Матрица, используемая для квантования коэффициентов, хранится вместе с

изображением.

Это приводит к огрублению мелких деталей на изображении. Чем выше степень

сжатия, тем более сильному квантованию подвергаются все коэффициенты.

Рис. 1.12. Изображение в формате JPEG с увеличением степени сжатия слева на-

право

Progressive JPEG — способ записи сжатого изображения, при кото-
ром старшие (низкочастотные) коэффициенты находятся в начале фай-
ла.

В случае progressive JPEG сжатые данные записываются в выходной поток в

виде набора сканов, каждый из которых описывает изображение полностью со всё

большей степенью детализации. Это позволяет получить уменьшенное изображение

при загрузке лишь небольшой части файла и повышать детализацию изображения

по мере загрузки оставшейся части. Progressive JPEG получил широкое распро-

странение в Интернете.

Демонстрация различной степени сжатия представлена на рис.

1.13

.

В целом алгоритм основан на дискретном косинусоидальном преобразо-

вании

(ДКП), которое является разновидностью дискретного преобразования Фу-

рье, применяемом к матрице изображения для получения некоторой новой матри-

цы коэффициентов. Для получения исходного изображения применяется обратное

преобразование. ДКП раскладывает изображение по амплитудам некоторых частот.

Таким образом, при преобразовании мы получаем матрицу, в которой многие ко-
эффициенты либо близки, либо равны нулю

.

Кроме того, благодаря несовершенству человеческого зрения можно аппрокси-

мировать коэффициенты более грубо без заметной потери качества изображения

.

22


background image

Рис. 1.13. Фотография заката в формате JPEG с уменьшением степени сжатия слева

направо

Для этого используется квантование коэффициентов. В самом простом случае — это

арифметический побитовый сдвиг вправо. При этом преобразовании теряется часть

информации, но могут достигаться большие коэффициенты сжатия.

Процесс сжатия по схеме JPEG включает ряд этапов:

преобразование изображения в оптимальное цветовое пространство;

субдискретизация компонентов цветности усреднением групп пикселей;

применение дискретных косинусных преобразований для уменьшения избыточ-

ности данных изображения;

квантование каждого блока коэффициентов ДКП с применением весовых

функций, оптимизированных с учётом визуального восприятия человеком;

кодирование результирующих коэффициентов (данных изображения) с приме-

нением алгоритма группового кодирования и алгоритма Хаффмана для удале-

ния избыточности информации.

JPEG 2000

(

.jp2, .j2k, .jpf, .jpx, .jpm, .mj2, .jpg2 или .mjp2) — графиче-

ский формат, который вместо дискретного косинусного преобразования, характерно-

го для JPEG, использует технологию вейвлет-преобразования, основывающуюся

на представлении сигнала в виде суперпозиции некоторых базовых функций — вол-

новых пакетов.

Изображения JPEG 2000 по сравнению с JPEG более гладкие и чёткие, а размер

файла при одинаковом качестве уменьшается ещё на 30%. JPEG 2000 полностью

свободен от главного недостатка своего предшественника: благодаря использованию

вейвлетов, изображения в этом формате не содержат знаменитой «решётки» из бло-

ков по 8 пикселей. Новый формат также, как и JPEG, поддерживает так называемое

23


background image

«прогрессивное сжатие», позволяющее по мере загрузки видеть сначала размытое,

но затем всё более чёткое изображение.

JPEG 2000

во многом сходен с форматом сжатия изображений ICER, который

используется NASA. Кодек изображений ICER был разработан для сжатия изобра-

жений на устройствах, работающих в открытом космосе.

Пока этот формат мало распространён и поддерживается не всеми современны-

ми браузерами. Среди поддерживающих

JPEG 2000 браузеров — Konqueror, Safari и

Mozilla Firefox

(через Quicktime).

JPEG 2000

не является свободным от патентованных алгоритмов сжатия, но уси-

лиями комитета JPEG достигнуто согласие, что в составе этого формата они могут

использоваться бесплатно.

Всегда одним из самых больших преимуществ стандартов, выпущенных коми-

тетом JPEG, было то, что они могут быть реализованы в базовой конфигурации

без каких-либо лицензионных выплат. Новый стандарт JPEG 2000 был подготов-

лен с учётом этой возможности, согласие было достигнуто между 20 большими

организациями-держателями большинства патентов в области сжатия.

Разумеется, неопределённые и скрытые патенты могут всё ещё представлять

опасность. Тем не менее JPEG 2000 стоит рассматривать как более защищённый

от притязаний формат, чем JPEG или MP3 , для которых подобная работа велась

на гораздо более низком уровне.

Однако, не взирая на свободность лицензирования патентов, JPEG 2000 всё рав-

но не может соответствовать Debian Free Software Guidelines (тест на свободность

программного обеспечения). Это затрудняет адаптацию JPEG 2000 к требованиям

WWW, так исключает свободные веб-браузеры (особенно браузеры, основанные на
Gecko

) и популярные веб-приложения LAMP

1

.

Артефакты, возникающие при сжатии алгоритмом JPEG 2000 , отличаются

от артефактов, возникающих при сжатии алгоритмом JPEG — присутствуют

незначительные искажения на изображениях при высокой степени компрессии (см.

рис.

1.14

).

Часто фотографическое изображение может быть сжато в отношении 1/20 к ори-

гинальному размеру без появления значительных искажений. Изображение справа

демонстрируют различные искажения JPEG 2000 при различных степенях сжатия

(верхнее изображение — это оригинал без сжатия).

Основные области применения этого стандарта:

цифровой кинематограф;

мультимедийные устройства (цифровые камеры, КПК, смартфоны, цифровые

факсы, принтеры, сканеры);

клиент/серверные взаимодействия (Интернет, базы данных изображений, по-

токовое видео, видео-серверы);

военное (HD-спутниковые изображения, обнаружение движения, распределён-

ные сети и хранилища);

1

LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, ши-

роко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав

компонентов: Linux, Apache, MySQL, PHP

24