русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Основные подходы к кодированию цвета и хранению растровых изображений


Дата добавления: 2013-12-23; просмотров: 1105; Нарушение авторских прав


Растровые изображения и их характеристики

Хранение и обработка растровых изображений

Векторная графика

Изображение задаётся как набор графических примитивов (точки, линии, отрезки, кривые Безье, текстовые надписи и т.п.). Несколько замкнутых кривых могут образовывать замкнутый контур, который можно залить.

Достоинства:

● Параметры каждого примитива могут изменяться независимо от других

● Очень легко выполнять повороты и масштабирование

● Высокая точность рисования даже при большом увеличении

● Экономичный расход памяти

● Возможность растеризации

Недостатки:

● Все устройства ввода изображений — растровые

● Векторизация изображений — очень сложная задача

● В векторной форме сложно построить реалистичное изображение

● Нет возможности применять эффекты и фильтры

Примеры:

● PS / PDF

● TrueType-шрифты

Изображение разбивается на множество мелких, неделимых и не пересекающихся друг с другом фрагментов — пикселов. При этом каждая точка исходного изображения всегда попадает в некоторый из полученных фрагментов. Цвет каждого пикселя задаётся независимо от других.

Основные параметры растрового изображения:

Логический размер (например, 1000х1000 пикселей)

Физический размер (например, размеры монитора)

Разрешение (плотность) — связывает логический и физический размеры

○ Знаете ли вы?

■ Человеческое зрение различает точки с точностью до одной минуты (1/60 градуса)

■ Для расстояния в 50 см это соответствует разрешению 181 175 dpi

■ А для 30 см — 192 291 dpi

Форма, шаг, размер пикселя

Геометрия растра

○ Форма пикселя (бывает прямоугольная (НЕ квадратная) и круглая)



○ Взаимное расположение пикселей

Глубина цвета — определяется числом бит, отводящихся для хранения цвета пикселя

Наличие α-канала (прозрачность)

 

Достоинства растровой графики:

● Универсальность

● Все устройства ввода и многие устройства вывода — растровые

● Скорость обработки изображения не зависит от самого изображения

● Возможность параллельной обработки

Недостатки:

● Большие объёмы памяти и ресурсоёмкость

● Невозможность точного масштабирования и поворота

● Невозможность вывод на плоттер (графопостроитель)

Задача хранения растрового изображения сводится к задаче хранения положения пикселя и его цвета.

 

Способы хранения цвета:

● Непосредственное кодирование (например, RGB24 (24 бит, по байту на цвет), RGBA32)

○ Достоинства:

■ Надёжность

■ Независимость хранения

○ Недостатки:

■ большой расход памяти

● Использование палитры (набор цветов — палитра — хранится отдельно, а в пикселях только ссылки на цвета из палитры). Обычно содержит 2n цветов.

○ Виды палитр

■ аппаратные (неизменяемые, заданные на уровне устройства)

■ программные

○ Достоинства

■ экономичный расход памяти

○ Недостатки

■ ограниченный набор цветов: приемлемо для просмотра/хранения, но неудобно при редактировании. При изменении количества цветов надо перелопатить всю палитру.

○ Примеры:

■ CGA (четыре некоторых цвета)

■ EGA (16 цветов)

■ VGA (256 цветов)

■ SVGA (16 млн.)

Способы хранения изображения:

Без сжатия (в виде двумерного массива пикселей)

○ Достоинства:

■ Простота

○ Недостатки:

■ Большой расход памяти

Сжатие без потерь

○ Виды

■ С использованием специфики изображения

■ Без использования специфики

○ Алгоритмы

■ RLE (Run-length encoding) — хранит значение и число повторов

Например, пусть дана строка:

WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW

Если мы применим простое кодирование длин серий, то получим следующее:

12W1B12W3B24W1B14W

 

Однако, в случае, если строка состоит из большого количества неповторяющихся символов, её объем может вырасти. Например, строка

ABCABCABCABCDDEFFFFFFFF

закодируется как

1A1B1C1A1B1C1A1B1C1A1B1C2D1E8F

Проблема решается достаточно просто. Положительные числа используют для записи количества повторяющихся одинаковых символов, а отрицательные — для записи количества неодинаковых:

-12ABCABCABCABC2D1E8F

 

Если кодировать также повтор групп символов, то можно сжать строку ещё больше:

4[ABC]1C2D1E8F

 

Ещё одна проблема связана с тем, что численные типы данных на компьютере всегда имеют некоторый предел. Предположим, мы используем signed char для записи длин серий. Тогда мы не можем записать серию длиннее 127 символов одной парой "длина-символ". Если подряд записано 256 символов “A”, их разделяют на минимальное количество групп:

127A127A2A

Запись на некотором языке программирования алгоритма RLE с учетом этих ограничений нетривиальна.

Методы энтропийной компрессии:

● LZW — zip-алгоритмы

● Метод Хаффмана (сначала собирает статистику по изображению)

Каждой последовательности пикселей ставится в соответствие битовая последовательность, длина которой обратно пропорциональна частоте появления цвета/группы пикселей в изображении: чем чаще встречается элемент, тем короче его код, и наоборот. (Мы считываем последовательно символы входного потока и проверяем, есть ли в созданной нами таблице строк такая строка. Если строка есть, то мы считываем следующий символ, а если строки нет, то заносим в поток код для предыдущей найденной строки, заносим строку в таблицу и начинаем поиск снова. LZW реализован в форматах GIF и TIFF. )

○ Достоинства

■ Экономичный расход памяти

■ Сохранение точной информации

○ Недостатки

■ Сложный доступ к данным

■ При изменении изображения может не хватить памяти (?)

■ Невозможность регуляции степени сжатия

Сжатие с потерями — происходят незначительные изменения, незаметные человеку. Все алгоритмы этого класса используют особенности человеческого зрения. Однако существует порог, после которого изображение заметно теряет качество.

○ Достоинства

■ Экономичное расходование памяти

■ Возможность регулировки степени сжатия

○ Недостатки

■ Сложный доступ к данным

 

Основные форматы

bmp

○ Использует несколько способов хранения цвета

○ Поддерживает α-канал

○ Поддерживает сжатие без потерь

○ Поддерживает палитры

tiff

○ БОльшая глубина цвета

○ Поддерживает несколько цветовых моделей

○ Поддерживает несколько методов цветовой компрессии (изначально формат поддерживал сжатие без потерь, впоследствии формат был дополнен для поддержки сжатия с потерями в формате JPEG)

○ Поддерживает теги

gif(graphics interchange format)

○ Сжатие без потерь

○ Однобитный α-канал (без полупрозрачности)

○ Поддерживает только 256-цветную палитру

○ Поддерживает анимацию

○ Поддерживает чересстрочную развёртку — позволяет увидеть картинку до полной загрузки, которая проходит в четыре этапа:

Можно создавать GIF-изображения только с помощью лицензионного ПО Срок действия последнего патента на GIF истёк 11 августа 2006 года (с) ВП

png(portable network graphics)

○ Сжатие без потерь

○ Поддерживает двумерную и 4-х-строчную развёртку

○ Поддерживает палитры

○ Поддерживает анимацию

○ Поддерживает теги

jpeg

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

■ JPEG-LS — сжатие без потерь

■ JPEG-2000 — сжатие на основе вейвлетов

■ Сжатие с потерями

○ Хорошо подходит для фото, хуже для рисунков

○ Может хранить служебную информацию (тэги, информацию о фотоаппарате, условиях съёмки и т.п.)



<== предыдущая лекция | следующая лекция ==>
Основные цветовые модели | Фрактальное сжатие изображений. Алгоритм Малла


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.