
- •Глава 6. Системы технического зрения
- •6.1. Основные понятия
- •6.2. Основы формирования и передачи изображений
- •6.2.1. Понятие о видеосигнале
- •6.2.2. Принципы кодирования цвета
- •6.3. Датчики изображений
- •6.3.1. Видикон
- •6.3.2. Телекамеры на основе приборов с зарядовой связью
- •6.3.3. Фотодиодные матрицы
- •6.4. Устройства ввода и хранения изображений
- •6.4.1. Принципы хранения изображений
- •6.4.2. Кодирование видеосигнала
- •Форматы хранения изображений в стз
- •6.5.1. Структура графического файла
- •6.5.2. Сжатие изображений
- •6.5.2.1. Сжатие графических файлов
- •Ааааааааааааааа
- •6.5.2.2. Сжатие видеоизображений
- •6.6. Базовые алгоритмы обработки изображений
- •6.6.1. Предварительная обработка изображений
- •6.6.2. Сегментация
- •6.6.3. Кодирование изображений
- •6.6.4. Описание изображений
- •6.7. Распознавание изображений
- •6.7.1. Пример алгоритма распознавания
- •6.7.2. Особенности получения трехмерных изображений
- •Вопросы для самостоятельной подготовки
Ааааааааааааааа
После RLE-кодирования та же строка займет всего два байта: 15А. Схемы RLE просты и быстры, но эффективность сжатия зависит от типа данных изображения, подлежащего кодированию. Черно-белые изображения, содержащие значительно больше белого цвета (например, страница книги), кодируются очень хорошо, поскольку включают большие объемы непрерывных данных постоянного цвета. Однако, сложные изображения с большим количеством цветов, типа фотографий, кодируются значительно хуже.
Анализ эффективности алгоритмов сжатия без потерь показывает, что для черно-белых изображений наиболее эффективны модифицированные алгоритмы Хаффмана.
Схема сжатия без потерь Лемпела-Зива-Велча, названная в честь разработчиков LZW-сжатием является одной из наиболее распространенных в компьютерной графике. Этот метод применяется в различных форматах файлов изображений в частности в GIF и TIFF, а также включен в стандарт сжатия для модемов V.42bis и post-Script Level 2. Основой метода явился созданный в 1977 г. А. Лемпелом и Д. Зивом первый компрессор из широко известного семейства архиваторов LZ. В соответствии с алгоритмом первая часть файла передается без сжатия, и кодируются лишь та часть изображения, в которой содержатся уже переданные данные (например, где значения яркости повторяются). Алгоритмы сжатия LZ77 широко использовались для сжатия текста, а также стали основой таких архивирующих программ как ZOO, LHA, PKZIP и ARJ. Алгоритмы сжатия LZ78 часто применялись для сжатия двоичных данных, например, бинарных изображений. В 1984 г. сотрудник фирмы Unisys Т. Велч модифицировал компрессор LZ78 с учетом применения высокоскоростных дисковых контроллеров. Алгоритм LZW относится к алгоритмам, основанным на словарях.
Подведем итоги.
Чем больше количество деталей в изображении, тем хуже оно сжимается. Это характерно для полутоновых изображений и изображения в истинных цветах. Степень сжатия составляет 5%. Палитровые изображения сжимаются без потерь весьма эффективно, особенно при использовании комбинации LZW и RLE (КДС) методов. В лучшем случае, степень сжатия достигает 50%. В то же время, использование этих методов сжатия иногда приводит к увеличению размера графического файла.
Принципиально другой подход используется в методах сжатия изображений с потерей информации. Он основан на частотном представлении изображения. Действительно, информационное содержание видеосигнала чаще удобно анализировать, не рассматривая его изменение во времени, а раскладывая на частотные составляющие. Тогда, благодаря удалению менее существенных компонент можно упростить запоминание сигнала и, следовательно, уменьшить требуемую емкость памяти. Правда, некоторая часть информации теряется безвозвратно. Наиболее известным способом кодирования с потерей информации является сжатие с помощью ДКП (DCT). ДКП - это общее имя определенного класса операций, на которых базируются различные методы сжатия, в основе которых лежит цифровое частотное кодирование. Для примера рассмотрим процесс сжатия полутонового изображения, состоящего из матрицы байтовых элементов. На первом этапе производится преобразование значений яркости и цвета каждого элемента в частотную область. Для упрощения процедуры изображение разбивается на субматрицы размером 88 элементов, в которых определяются частотные составляющие фрагментов. Затем сокращают число этих составляющих, сохраняя только самые существенные, и, наконец, записывают их возможно более компактным способом.
ДКП определяется следующей процедурой:
PDCT = DCTPDCTT
Здесь P - блок изображения размером 88 элементов, P - блок данных после ДКП, DCT - матрица косинусного преобразования, DCTT - соответствующая ей транспонированная матрица. Знаком обозначено матричное умножение.
Матрица ДКП имеет вид представленный на рис. 6.39. Для упрощения записи в каждом коэффициенте учтены только три цифры после запятой.
Процедура
ДКП реализуется с помощью последовательности
матричных перемножений, поблочно (размер
блока 88
элементов). Сначала производится
умножение видеоданных P
на транспонированную ДКП матрицу
DCTT,
затем результат умножается на собственно
матрицу ДКП. Результатом этого
преобразования является новая матрица,
численные значения элементов которой
быстро уменьшаются от левого верхнего
угла к правому нижнему (рис. 6.40). Она
характеризует распределение частот
в видеоданных: в левом
верхнем
углу размещаются наиболее важные данные.
Сжатие выполняется путем устранения
менее важных составляющих, для чего
проводится квантование
преобразованных (частотных) данных.
Идея квантования заключается в выборке
из матрицы тех составляющих изображения,
которые превышают некоторый частотный
порог. Выбор правильного порога является
отдельной проблемой. Если он будет
слишком высоким, то потеряется большая
часть видеоданных, хотя и само сжатие
будет значительным. Тогда восстановленное
изображение будет сильно отличаться
от исходного. На практике, можно обеспечить
степень сжатия до 80%, прежде чем потери
качества изображения будут заметными
[ ]. Квантование осуществляется умножением
«частотной матрицы» на матрицу делителей,
определяемую с помощью алгоритма
«делитель - качество». Так, при
квантовании «с качеством 2» при котором
потери практически незаметны в
матрице сохраняется лишь небольшое
число ненулевых элементов, значения
которых также невелики [ ]:
Полученные значения можно экономно запомнить, применяя, например, кодирование по Хаффману. Если установить зигзагообразную траекторию обхода коэффициентов, то можно получить очень длинную непрерывную последовательность из 26 нулей.
Восстановление сжатого изображения производится обратным ДКП. При этом все шаги выполняются в обратном порядке.
ДКП
является очень эффективным способом
сжатия. При его использовании необходимо
в изображении выделить яркостную и
цветовую компоненты. Поэтому если
изображение представлено в цветовых
моделях RGB или CMYK, его следует преобразовать
в одну из аппаратно-независимых моделей
- HSV или YUV. Яркостную информацию сжимают
непосредственно, а цветовую с помощью
ДКП. Следовательно, и палитровые
изображения с помощью ДКП также не
сжимаются. Это связано с тем, что в них
цвет пикселей представлен не
непосредственно, а лишь через индексы
в таблице цветов. Поэтому палитровые
изображения тоже необходимо
преобразовать в форму HSV или YUV моделей,
что оправданно лишь в редких случаях.
Теперь рассмотрим некоторые особенности спецификации JPEG. На сегодняшний день JPEG является одним из наиболее актуальных направлений развития технологии сжатия изображений. Принцип JPEG-кодирования также не является одним алгоритмом сжатия; он может рассматриваться как набор методов сжатия, пригодных для удовлетворения нужд пользователя. В основе JPEG лежит схема ДКП кодирования (рис. 6.41).
Аббревиатура JPEG происходит от названия комитета по стандартам Joint Photographic Experts Group (дословно - объединенная группа экспертов по фотографии), входящего в состав Международной организации по стандартизации (ISO). В 1982 году ISO сформировала группу экспертов по фотографии (PEG), возложив на нее обязанности по проведению исследований в области передачи видеосигналов неподвижных изображений и текстов по каналам ISDN (интегральной цифровой сети связи). В 1987 году PEG и CCITT объединили свои группы в комитет, который должен был провести исследования и выпустить один стандарт сжатия данных. Новый комитет получил название JPEG.
Схема JPEG была специально разработана для сжатия цветных и полутоновых (т.е. многоградационных) изображений - фотографий и другой сложной графики. При этом анимация, черно-белые иллюстрации и документы, а также типичная векторная графика, как правило, сжимаются плохо. Практически JPEG хорошо работает только с изображениями, имеющими глубину хотя бы 4 … 5 битов на цветовой канал.
Алгоритм JPEG преобразует каждый компонент цветовой модели отдельно, что обеспечивает его полную независимость от любой модели цветового пространства (например, от RGB, HSI или SMY). Лучшая степень сжатия достигается в случае применения цветового пространства YUV или YCbCr. Спецификация на JPEG файлы показывает, что это расширение позволяет хранить одно и то же изображение с разными разрешениями в порядке иерархии. Так, изображение может быть сохранено с разрешениями 250250, 500500, 10001000 и 20002000 пикселей (что позволяет поддерживать его отображение на экранах мониторов с низким разрешением, лазерных принтерах среднего разрешения и на высококачественных устройствах печати). Степень сжатия изображения с фотографическим качеством может составить от 20:1 до 25:1 без заметной потери качества. Регулирование качества кодировщика JPEG осуществляется с помощью Q-фактора. В различных программах обработки изображений используются разные диапазоны изменения Q-фактора, но типичные значения находятся в диапазоне 1... 100. При Q = 100 сжатие мало: изображение будет иметь значительный размер, но высокого качества. Оптимальное значение Q-фактора зависит от содержимого изображения и подбирается индивидуально.
Отметим, что JPEG не всегда является лучшей схемой сжатия, т.к. она не удовлетворяет всем возможным потребностям в сжатии. Например, изображения, содержащие большие области одного цвета, сжимаются плохо. JPEG вводит в такие изображения артефакты, особенно заметные на сплошном фоне. Кроме того, JPEG сжатие весьма медленно. В настоящее время этот метод реализуется также и аппаратно.
Компоненты цветности в JPEG кодируются методом субдискретизации. Суть этого подхода, заключающегося в уменьшении количества пикселей для каналов цветности, основана на меньшей чувствительности глаза к цветовой информации. Например, при сохранении цветного изображения размером 10001000 пикселей можно использовать все 10001000 пикселей яркости, но только 500500 пикселей для каждой компоненты цветности. При таком представлении каждый пиксель цветности будет охватывать ту же область, что и блок 22 пикселей яркости. Следовательно, для кодирования блока 22 требуется всего 6 пиксельных значений (4 значения яркости и по 1 значению для каждого канала цветности U и V). В несжатом виде такой блок требует 12 пиксельных значений (4 + 4 + 4). Существенно, что уменьшение объема данных на 50% практически не отражается на качестве большинства изображений.
Таким образом, при сжатии изображения в цветовой модели YUV яркостную компоненту Y (также как и полутоновые изображения) сжимают непосредственно. Информация о цвете U и V в соседних элементах изображения объединяется. Так, при субдискретизации 4:2:2 производится суммирование значений U и V для четырех соседних элементов, а запоминается только среднее значение. Тогда, даже несжатый по яркости, но субдискретизированный по цвету массив из 4-х элементов изображения будет представлен 6 байтами, что соответствует 12 (48:4) битам на элемент. Уже при этом достигается 50% сжатие информации. Еще более высокая степень сжатия достигается при субдискретизации 4:1:1, когда объединяются значения восьми соседних элементов. Благодаря этому количество данных на элемент изображения сокращается с 24 до 10 бит. Сжатие достигает 58%, хотя уже становятся заметными некоторые цветовые искажения. Большее сжатие применяют только для подвижных изображений. Стандарт JPEG предлагает несколько различных вариантов определения коэффициентов дискретизации, или относительных размеров каналов субдискретизации. Канал яркости всегда остается с полным разрешением (дискретизация 1:1). Для обоих каналов цветности обычно производится субдискретизация 2:1 в горизонтальном направлении и 1:1 или 2:1 - в вертикальном. При этом подразумевается, что пиксель цветности будет охватывать ту же область, что и блок 21 или 22 пикселей яркости. Согласно терминологии JPEG, эти процедуры называются 2hlv и 2h2v-дискретизацией соответственно.
В последние годы в СТЗ используется также и фрактальное сжатие изображений. Фрактальное кодирование - это математический процесс, применяемый для кодирования растров, которые содержат реальное изображение, в совокупность математических данных, которые описывают фрактальные свойства изображения. Фрактальное кодирование (наиболее известен формат FIF) основано на том факте, что все естественные и большинство искусственных объектов содержат избыточную информацию в виде одинаковых, повторяющихся рисунков, которые называются фракталами. Фрактальное представление подобно векторной двухмерной и объемной графике оперирует математическими описаниями объектов, а не их реальными изображениями. Существенное различие между векторной и фрактальной графикой состоит в том, что фрактальные описания выводятся из реальных изображений объектов, тогда как векторные - это чисто искусственные структуры. Фрактальное кодирование изображения требует исключительно большого объема вычислений, включающего миллионы и даже миллиарды итераций. Декодирование фрактального изображения процесс гораздо более простой, так как вся трудоемкая работа была выполнена при поиске всех фракталов во время кодирования. В процессе декодирования нужно лишь интерпретировать фрактальные коды, преобразовав их в растровое изображение. Фрактальное представление имеет два существенных достоинства. Во-первых, фрактальное изображение можно масштабировать без введения артефактов и потери деталей, как это характерно для растровых изображений. Во-вторых, размер физических данных, используемых для записи фрактальных кодов, значительно меньше (более чем в 100 раз) размера исходных растровых данных. Именно этот аспект фрактальной технологии, называемый фрактальным сжатием, вызвал наибольший интерес в сфере формирования и воспроизведения компьютерных изображений.
Рассмотренные методы сжатия изображений с потерей информации по своему характеру несимметричны, т.к. сжатие длится гораздо дольше, чем распаковка.
В завершении приведем результаты сравнительного анализа некоторых известных графических форматов (табл. 6.16).
Таблица 6.16 . Степень сжатия базового изображения в некоторых форматах
Параметры изображения: 64048024 | |||
Сжатие без потерь |
Сжатие с потерями | ||
Формат |
Размер (байты) |
Формат |
Размер (байты) |
BMP |
921656 |
JPEG (Q=0) |
26591 |
IFF |
751138 |
JPEG (Q=5) |
45734 |
PCX |
789801 |
JPEG (Q=8) |
83256 |
PNG |
310827 |
JPEG (Q=10) |
114171 |
PNG-Adaptive |
261427 |
FIF (Q=65) |
15074 |
TGA-24 |
24921644 |
FIF (Q=85) |
24740 |
TIFF-LZW |
303976 |
FIF (Q=90) |
31952 |
TIFF |
929472 |
FIF (Q=100) |
172542 |
GIF87 (8-bit) |
141458 |
|
|
Подведем некоторые итоги. Простой способ получения графического файла заключается в использовании известной процедуры Print Screen. Полученный экранный кадр хорошо сжимается методом КДС (в формат РСХ), и LZW (в форматы GIF и TIF). Палитровое изображение методом КДС не сжимается совсем. Его лучше сохранять в форматах GIF и TIF (т.е. использовать LZW-метод). Метод JPEG для палитровых изображений неэффективен. Полутоновое изображение плохо сжимается и КДС и LZW методами. TIF-формат позволяет запоминать со сжатием изображение в истинных цветах (известных как True Color).. С этой целью целесообразно использовать LZW-метод. Методы JPEG-сжатия эффективны и для полутоновых изображений и для изображений в истинных цветах. Но поскольку цветовая информация сжимается лучше (особенно при использовании субдискретизации), коэффициенты сжатия для полутоновых изображений оказываются меньшими, чем для True Color изображений, но большими, чем при сжатии без потерь (КДС и LZW).