Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Ответы на экзаменационные билеты по компьтерной графике - файл ShPORA_PO_KG_5.DOC


Ответы на экзаменационные билеты по компьтерной графике
скачать (407 kb.)

Доступные файлы (5):

ShPORA_PO_KG_5.DOC198kb.14.01.2004 15:57скачать
shpory_po_kompyuternoy_grafike.doc825kb.21.12.2010 19:13скачать
Вопросы+к+экзамену+.doc27kb.15.12.2010 17:56скачать
Цветовые модели.htm13kb.15.01.2006 11:27скачать
мои шпорки.doc436kb.13.01.2006 19:23скачать

содержание
Загрузка...

ShPORA_PO_KG_5.DOC

Реклама MarketGid:
Загрузка...
Графика и компьютерная графика.

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

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

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


^ Графические форматы.


Графический формат – формат, в котором данные, описывающие графические изображения, записаны в файле. Графические форматы разработаны для того, чтобы эффективно и логично организовывать, сохранять и восстанавливать графические данные. Практически каждая прикладная программа создает и сохраняет некоторые виды графических данных. Даже простейшие текстовые редакторы позволяют создавать линии с помощью символов ASCII. Программы, основанные на GUI(Graphic User Interface), позволяют поддерживать смешанные форматы, чтобы можно было включать векторные, растровые и текстовые данные друг в друга.


Графические файлы.


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


^ Графические данные.


Графические данные традиционно подразделяются на 2 класса: векторные и растровые. (Сейчас вместо raster – bitmap.)

Векторные данные в комп. графике обычно используют для представления прямых, многоугольников и кривых, или любых объектов на их основе, с помощью определенных в численном виде контрольных (ключевых) точек. Программа воспроизводит линии посредством соединения ключевых точек. С этими данными всегда связана информация об атрибутах и набор соглашений или правил, позволяющих программе начертить требуемые объекты. Эти соглашения могут быть заданы явно или неявно (по умолчанию). Они программно зависимы, хотя используются для одних и тех же целей.

^ Примеры векторных данных:


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

^ Примеры растровых данных.


Раньше термин bitmap применялся для обозначения массива в единичных битах, в которых каждый бит соответствовал 1 пикселю. А термины pixelmap, pixmap, greymap – для отображения массивов пикселей, независимо от типа, а термин битовая (пиксельная) глубина – для указания размеров этих пикселей, выраженных в битах или байтах. Битовая глубина определяет количество возможных цветов пикселя. Растровые устройства вывода воспроизводят изображения в виде образов пикселей, поэтому пиксельные значения в растре упорядочены. Применение растровых данных не всегда целесообразно, т.к. они очень объемны.


^ Пиксели и координаты.


В комп. графике для указания местоположения объекта используются математические координаты. Но устройство отображения – это реальный физический объект, поэтому существует разница между физическими и логическими пикселями:

  • Физические – это наименьшие физические элементы поверхности отображения, которые можно обработать аппаратным или программным способом, т.е. это те реальные точки, которые мы видим на устройствах вывода. На практике отдельный пиксель состоит из более мелких элементов. В аналоговых устройствах это по-разному окрашенные тоски, которые человеческий глаз видит как единый пиксель. (На принтере бывает разрешение: 300 dpi – dots per inch)

  • Логические – подобны математическим точкам, имеют местоположение, но не занимают физического пространства, поэтому при отображении значение логических пикселей из растровых данных в физические пиксели экрана должны учитываться как размер, так и положение физических пикселей.


Устройства, которые способны достичь или даже превысить возможности цветовосприятия человеческого глаза (224 цветов), отображают так называемый true color. 215 или 216 – такие устройства отображают hicolor.


^ Отображение цветов.


Набор цветов, который задается набором пиксельных значений в файле, может отличаться от того, которое способно отобразить устройство вывода. Задача согласования набора цветов решается программной визуализации, которая осуществляет преобразование цветов из заданных в файле в цвета устройства отображения. Существует 2 варианта такого отображения:

  1. когда количество цветов, заданное пиксельными значениями в файле, значительно меньше количества цветов, которое способно отобразить устройство вывода. В этом случае программа визуализации выбирает для каждого цветоисточника соответствующий цвет адресата. Данные с 3-мя битами на пиксель (8 цветов) отобразим на 256 цветов:


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

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


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


^ Пиксельные данные и палитры.


Изображение, которое хорошо визуализируется в черно-белом исполнении – это чертежи, текст, несложные вставки – их логичнее хранить в виде однобитовых данных. Пиксельные значения, содержащие более одного бита на пиксель иногда представляется набором индексов в палитре цветов, хотя чаще используется непосредственное представление цвета.

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

На практике каждый элемент палитры занимает 24 бита или 3 байта. Цветовые модели часто базируются на трех первичных цветах. Именно этим объясняется использование 3-ех битов для хранения данных объем памяти в байтах, занимаемый палитрой, обычно в 3 раза больше, чем максимальное количество определяемых его цветов.

16 цветов*3 байта=48 битов информации

256 цветов*3 байта=768 битов

320*200 пикселей*3 байта=192 Кбайта

320*200*1 байт=64 Кбайта (при использовании палитры)+768 байтов=64768 байтов.

Если сохранять напрямую 3-ех байтовую цветовую информацию для каждого пикселя и использовать 256 цветов, то пиксельное значение растра 320*200 будет 192 Кбайта. Если же это же изображение сохранять с использованием палитры из 256 цветов, то для каждого пикселя в растре потребуется только 1 байт, содержащий значение индекса от 0 до 255. Размер такого же файла 320*200 пикселей с использованием палитры будет 64768 байтов. Если объем растровых данных в файле не велик или цветов в палитре очень много, то включение палитры приводит к обратному результату: объем растровых данных не уменьшится, а увеличится. Косвенное задание цвета с использованием палитры имеет несколько преимуществ:

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

    • С помощью палитр очень удобно изменять цвета изображения.

Недостатки палитры: использование палитры целесообразно лишь для сохранения небольшого количества цветов (обычно от 256). Изображение, содержащее больше 256 цветов целесообразно сохранять в формате без использования палитры.

^ Цветовые пространства.

Чтобы определить цвет, нужно задать несколько значений. Обычно это 3 значения, которые определяют интенсивность каждого из основных цветов (цветовых каналов), которые смешивают для получения составных цветов. Составной цвет создается упорядоченным набором значений. Конкретный цвет представляет собой точку на графическом отображении всех возможных цветов, т.е. точку в цветовом пространстве.


Наиболее распространенным способом передачи цвета является модель RGB. В этой модели красный, зеленый и синий являются основными, т.е. не составными. Цвет в этой модели задается посредством триплета (R, G, B).

(0%, 0%, 0%) – черный;

(100%, 100%, 100%) – белый;

(100%, 0%, 0%) – красный;

(50%, 50%, 50%) – серый.

Точнее цветовые компоненты задаются не в процентах, а в виде цветовых величин. Если для каждого цветового компонента отводится 1 байт, то диапазон этих величин составляет от 0 до 255. И т.к. цвета определяются 3-мя байтами, то разумно присваивать каждому из 3-ех байтов значение одного цветового компоненты. Т.о., получается: 0 – нулевая интенсивность; 255 – максимальная интенсивность.

Черный – (0, 0, 0);

Белый – (255, 255, 255);

Красный – (255, 0, 0);

Серый – (127, 127, 127).

Порядок следования цветовых составляющих в модели может быть произвольный, а порядок и обработка цветовых составляющих в пиксельных значениях разные в различных форматах. Составляющие пиксельного значения могут быть интерпретированы как (R, G, B), (G, B, R), (B, R, G). Задача прочтения в таком случае ложится на программу визуализации. Задание цветов в последовательности RGB является наиболее предпочтительным, т.к. в этом случае цвета упорядочены в соответствии со своими электромагнитными частотами, определяющими их место в физическом спектре. Равномерное распределение памяти для цветовых составляющих в модели является наиболее распространенным.


^ Типы палитр.


Различают одно- и многоканальные палитры. Одноканальные предусматривают только одну цветовую величину для каждого элемента. Причем эта цветовая величина явно указывает цвет пикселей. (G) = 233. Многоканальные предусматривают 2 и более отдельные цветовые величины для каждого цветового элемента. (R, G, B) = (180, 215, 15). Палитры могут быть как пиксельно так и плоскостно ориентированные. Пиксельно ориентированные – хранят все данные о цветах пикселей в виде последовательности битов в каждом элементе массива.

(RGB)(RGB)(RGB)…….

(BGR)(BGR)(BGR)…….

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

(RRR GGG BBB)

(BBB GGG RRR)

И одно- и многоканальные палитры могут быть как пиксельно, так и плоскостно ориентированными:

  • Одноканальная пиксельно ориентированная палитра: содержит одно пиксельное значение на элемент.

  • Многоканальная пиксельно ориентированная палитра: хранит по одному пикселю на элемент, но каждый пиксель содержит 1 или более цветовых каналов данных.

  • Одноканальная плоскостно ориентированная палитра: хранит 1 пиксель на элемент и 1 бит на плоскость.

  • Многоканальная плоскостно ориентированная палитра: содержит одно значение цветового канала на элемент. В этом случае каждая плоскость – это разные цветовые каналы.

Количество элементов в палитре определяется по формуле 2N, где N – размер пиксельного значения в файле. Обычно количество элементов в палитре соответствует максимальному количеству цветов заданного изображения. Используемые элементы палитры не всегда следуют один за другим, не всегда упорядочены и не всегда начинаются с 1-го индексного значения. Местоположение применяемых элементов задается программой, записывающей изображение в файл.


Цвет.


Рецепторы человеческого глаза могут воспринимать световое излучение в диапазоне длин волн от 380 до 770 нм. Теоретически глаз может воспринимать одновременно около 10000 различных цветов. Волны различной длины воспринимаются глазом по-разному. Наиболее чувствительный глаз к зеленому, затем – к красному и к синему. Человеческий глаз плохо воспринимает цвет очень маленьких объектов, и когда одновременно отображается много пикселей, даже если он окрашен в цвет, глаз далеко от экрана не различает эти пиксели. Для восприятия цвета важно и то, как этот цвет получен. Обычно для нас цвет – излучение определенной длины волны, но при смешивании 2-ух или более цветов образуется 3-ий цвет. Такое же смешивание происходит при освещении окрашенного объекта. Цвет объекта всегда смешивается с цветом света, образуя 3-ий цвет. Из-за разного способа получения цвета изображение, визуализированное на разных устройствах, выглядит по-разному.

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


^ Цветовые модели.

Цветовые модели бывают аддитивные и субтрактивные. В аддитивных моделях новые цвета получают путем сложения основного цвета с черным. Чем больше интенсивность добавляемого цвета, тем ближе результирующий цвет к белому. Смешивание всех основных цветов дает чистый белый цвет, если значение их интенсивности максимально. И чистый черный – если значение интенсивностей = 0. Аддитивные цветовые среды являются самосветящимися. В субтрактивных моделях для получения новых цветов основные цвета вычитаются из белого. Чем больше интенсивность вычитаемого цвета, тем ближе результирующий цвет к черному. Смешивание всех основных цветов дает чистый черный цвет. В случае, когда значение их интенсивности максимально, а отсутствие всех основных цветов теоретически задает чистый белый цвет. Субтрактивные среды являются отражающими, т.к. цвета передаются посредством отражения цвета от внешнего источника. Основные примеры аддитивных и субтрактивных моделей:

RGB (Red Green Blue) – аддитивная. Эта модель широко используется в графических форматах. В ней различное количество красного, зеленого и синего добавляется к черному для получения нового цвета. Графические файлы, в которых применяется модель RGB, представляют каждый пиксель в виде цветового триплета, 3-ех числовых величин красного, зеленого и синего цвета соответствующих интенсивностей этих цветовых каналов.

CMY (Cyan Magenta Yellow) – голубой, пурпурный и желтый. Это субтрактивная модель, применяемая для получения цветных изображений на белой поверхности. Используется в большинстве устройств вывода, когда для получения изображения краска наносится на белую бумагу. При освещении каждый из 3-ех цветов поглощает дополнительный его цвет: голубой поглощает красный, пурпурный – зеленый, желтый – синий. Новые цвета имеют длину волны отраженного цвета, не поглощенного основными цветами CMY. Если все составляющие CMY будут вычтены, то результирующим цветом станет черный. Т.л. на практике черный цвет получать сложно, существует более практичный вариант модели CMYK, в которую отдельно добавлена черная составляющая, где “K” означает черный цвет. Модель CMYK часто называют 4-ех цветной, а результат ее применения – 4-ех цветной печатью. Данные в ней представляются либо триплетом, аналогичным RGB, либо 4-мя величинами. Если данные представлены цветовым триплетом, то отдельные цветовые величины противоположны цветовым величинам RGB. 4-ех цветовые составляющие модели CMYK задаются в процентах в диапазоне от 0 до 100.

HSV (Hue Saturation Value) – оттенок, насыщенность, величина. Это цветовая модель, в которой при моделировании новых цветов не смешивают основные цвета, а изменяют их свойства. Оттенок – это цвет, насыщенность (цветность) – определяется количеством белого в оттенке. В полностью насыщенном 100%-ом оттенке не содержится белого. Такой оттенок считается чистым. Величина – яркость.

HSB (Hue Saturation Brightness) – определяет интенсивность определения цвета. Оттенок с высокой интенсивностью является очень ярким, с низкой – является темным. Смешивание белого, черного и серого цвета с чистыми цветами для получения различных тонов и оттенков. Tint, shade, tone. Оттенок tint является чистым, полностью насыщенным цветом, смешанным с белым. Оттенок shade является чистым, полностью насыщенным цветом, смешанным с черным. Tone – полностью насыщенный цвет, к которому добавляется черный и белый или серый. Если HSV рассматривать с точки зрения этих цветов, то насыщенность представляет количество белого, величина – количество черного, а оттенок – тот цвет, к которому добавляется белый и черный. Существует несколько цветовых моделей, подобных HSV, в которых цвет получается посредством изменения оттенков двумя другими составляющими:

HSI (Hue Saturation Intensity (интенсивность));

HSL (Hue Saturation Luminosity (освещенность));

HBL (Hue Brightness Luminosity);

Черный, белый и серый цвета являются нейтральными (ахроматическими), не имеющих оттенков и насыщенности. Белый и черный являются граничными значениями диапазонов, а гамма серого цвета точно определяет слои цветового пространства, каждый из которых состоит из точек с равными величинами 3-ех основных цветов, не имеющих насыщенности и различающихся только интенсивностью.

^ Наложение и прозрачность.

Обычные изображения являются непрозрачными, т.е. не существует условий, при которых можно накладывать одно изображение на другое. Для того, чтобы изображение могло бы накладывать одно изображение на другое, существует механизм задания прозрачности либо на уровне всего изображения, либо фрагмента, либо пикселя. Прозрачностью управляют с помощью дополнительной информации, содержащейся в каждом элементе пиксельных данных. Наложение изображения осуществляют, добавив каждому пиксельному значению оверлейный бит. Установка такого оверлийного бита в некоторой области изображения позволяет программе визуализации или устройству вывода выборочно игнорировать те пиксельные значения, у которых этот бит установлен.

(RGBT)=(5 битов, 5 битов, 5 битов, 1 оверлейный бит) (это, например, для 16 битов информации).

Создатель изображения или программа визуализации могут переключать этот оверлейный бит, который будет интерпретироваться устройством отображения, как команда игнорировать данный пиксель. Т.о., накладываются 2 изображения, причем верхнее изображение должно содержать информацию, позволяющую образовывать дыры, через которые будут видны фрагменты нижнего изображения. Программа визуализации может выборочно переключать оверлейный бит в пиксельных значениях заданного цвета, а также отключить отображение любых областей изображения, не окрашенных в данный цвет. Процесс игнорирования отдельных пикселей в изображении называется цветной рирпроекцией. Существует другой вариант наложения изображения при помощи изменения прозрачности как нижней, так и накладываемой картины. В этом случае каждое пиксельное значение содержит не один оверлейный бит, а несколько (обычно 8).

Если 24 цвета:

(RGBT)=(8 битов, 8 битов, 8 битов, 8 битов прозрачности)

8 битов прозрачности обычно называют альфа-каналом. Идеальный альфа-канал поддерживает 256 уровней прозрачности. «0» - пиксель прозрачности, «255» - не прозрачен. Данные, определяющие прозрачность обычно сохраняется в виде части пиксельных данных, но может быть сохранены и в виде 4-ой плоскости (как данные палитры с плоскостной организацией формата). Такая информация может быть сохранена также в виде отдельного блока, не зависящего от остальной информации. Такой способ позволяет манипулировать данными о прозрачности, независимо от пиксельных данных изображения.

^ Векторные файлы.

Векторные файлы содержат математическое описание всех элементов изображения, используемых программой визуализации для конструктурирования этого изображения. Векторные файлы строятся не из пиксельных значений, а из описания элементов изображения или векторных объектов. Описание вектора может включать данные о типе линии, кривой или сплайна. Прямые и кривые линии используются для построения более сложных геометрических фигур (окружности, прямоугольника и т.д.), которые в свою очередь, могут быть использованы для построения объемных фигур (сферы, куба и т.д.). сохраненные данные в векторном формате представляются в виде математических описаний элементов изображения, т.е. размера, формы и позиции на экране дисплея, записанных в том порядке, в котором они должны отображаться на устройстве вывода. Векторные форматы отличаются друг от друга очень сильно, т.к. каждый из них конструировался для конкретной цели. Простейшие векторные форматы используются электронными таблицами. Они содержат числовые данные, которые отображаются на устройстве вывода в виде двухмерной сетки. Но большинство векторных форматов разработано для хранения чертежей и рисунков, созданных программами САПР. Пакеты САПР используются для выполнения чертежей, схем, карт, графиков и всевозможных рисунков. Программы САПР поддерживают более сложные ресурсы.


^ Организация векторных файлов.


Векторные файлы имеют базовую структуру, состоящую из заголовков, раздела данных и маркера конца файла. Структура векторного файла представляет собой в основном поток данных.

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

Заголовок – содержит информацию, общую для всего векторного файла и должен быть прочитан до того, как будет обрабатываться остальная информация. Общая информация включает число, идентифицирующее файловый формат, номер версии и цветовую информацию. Заголовки могут содержать значения атрибутов по умолчанию, т.е. те значения, которые будут применяться к любым элементам векторных данных, если значения их собственных атрибутов не заданы. Это позволяет существенно сократить размер файла. Заголовки и концовки не всегда имеют постоянную длину, поэтому файл должен читаться последовательно, информация, записанная в заголовке, определяется типом данных в файле и включает сведения о высоте и ширине изображения, его позицию на устройстве вывода, о количестве слоев в изображении и т.д.

^ Данные изображения.

Т.к векторные файлы состоят из элементарных векторных данных, которые в свою очередь описывают объекты изображения, то объем данных для представления каждого объекта зависит от его сложности и тех возможностей по уменьшению размеров файла, которые заложены в применяемом формате. Данные изображения следуют сразу за заголовком, если в файле нет палитры и состоят из элементов, являющихся наименьшими частями изображения. Каждый элемент либо сопровождается информацией, задающей его размер, форму, относительную позицию в изображении, цвет и другие атрибуты, либо однозначно связан с информацией по умолчанию. Например:

^ …CIRCLE, 40, 100, 100, BLUE; LINE, 200, 100, 230, 180, BLACK; RECT, 80, 66, 28, 33, RED; …

Т. к. многие векторные форматы используют принятые в данном формате соглашения для уменьшения размеров файла, то при расшифровке векторного формата программа визуализации должна уметь находить векторные данные и понимать эти принятые соглашения и определения отдельных элементов. Во всех форматах принята полная запись всех элементов в такой последовательности: каждый элемент поименован, за ним идет числовая информация о координатах на устройстве вывода, о размере изображения, затем идет цветовая информация. Элементы разделяются «;». Наиболее известные типы сокращений: LINE (без числовых элементов); если после числовой информации нет цветовой, то она воспринимается как черный цвет. Во многих форматах используются абривиатуры:

…; С, 40, 100, 100, BL; L, 200, 100,230, 180, B; R, 80, 66, 28, 23, R; …

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


Палитра.

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

1 RED (255,0,0)

^ 2 BLACK (0,0,0)

3 BLUE (0,0,255)

LINE,200,100,230,180,2 (BLACK) и также для других.

Для изображения контуров применяются разные стили пера. Не цветовые элементы информации, необходимые для визуализации изображения, называются элементарными атрибутами. Замкнутые элементы векторных данных могут проектироваться с учетом заполнения их цветом. Цвет заполнения не зависит от цвета контура элемента. Т.о., каждый элемент может быть связан с двумя или более цветами. В этом случае первый цвет будет задан для цвета контура, остальные – для заполнения этого элемента. Цвета заполнения чаще всего прозрачные по умолчанию. Замкнутые элементы могут заполняться чистыми цветами, могут содержать штриховку, полутона, задаваемые атрибутами заполнения. Замкнутый элемент может быть заполнен несколькими цветами. Простейший способ заполнения двумя цветами – градиентное. Также – типа ПостСкрипт заполнение и заполнение без шаблонов. Градиентное – это плавный переход от одного цвета к другому и информация о нем хранится в виде начального и конечного цвета, направления и типа заполнения.

Концовка.

Может содержать информацию о времени, дате создания файла, имени создавшей программы, количестве объектов и т.д. а обычно содержит маркер EOF. Используется для маркировки конца данных.


^ Размер векторного файла.


Если не принимать в расчет палитру и информацию об атрибутах, то размер векторного файла прямо пропорционален количеству содержащихся в нем объектов. В отличие от растровых файлов векторные файлы не поддерживают сжатия данных. Используются другие способы по уменьшению размеров файла:

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

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

Векторные данные хранятся в виде чисел, поэтому различные манипуляции с ними, как вращение и т.д., осуществляется с ними проще, чем с растровыми. А т.к. масштабирование упрощено, то векторные файлы не ограничивают размер изображения. Некоторые форматы допускают также альтернативный метод кодирования, что тоже позволяет уменьшить объем информации, не сокращая ее содержания.


^ Текст в векторных файлах.


Сохранить символьные строки векторных форматов можно одним из способов:

  1. записать текст в виде ASCII-строк, сопровождаемых информацией о шрифте, позиции, цвете атрибутов. Т.к. текст хранится в формате, пригодном для чтения, он легко редактируется.

  2. сохраняются отдельные символы в виде контуров, созданных из множества простейших элементов векторных данных. В этом случае программа, создающая файл, должна иметь эти шрифтовые контуры, но

  3. т.к. эти контуры хранятся аналогично другим векторным данным, они могут быть растянуты, масштабированы и т.д.


^ Преимущества и недостатки векторных файлов.


Преимущества:

    • Векторные файлы используются для хранения изображений, состоящих из элементов, представляемых линиями (из окружностей, многоугольников) или могут быть разложены на простейшие геометрические объекты (текст). Более сложные форматы позволяют хранить трехмерные объекты (многогранники, каркасные модели).

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

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

Недостатки:

    • Векторные файлы трудно применить для хранения сложных изображений.

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

    • Визуализация векторных данных требует значительно больше времени, чем визуализация растровых данных равной сложности, т.к. каждый элемент изображения должен быть воспроизведен в определенное время и в определенной последовательности.



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


Растровые файлы имеют общую структуру. Обычно содержат заголовок, растровые данные и прочую информацию, которой может быть, например, палитра и т.п. Если файл не имеет данных об изображении, то он содержит только заголовок. Дополнительную информацию, которая не помещается в заголовок, ее размещают в концовке файла. Если применяется палитра, то она сохраняется после заголовка или на листе концовки. Если файловый формат позволяет хранить несколько изображений, то после заголовка в файле размещается каталог изображения («индекс изображения»). Он содержит информацию о смещении всех изображений в файле. Если формат позволяет каждому изображению иметь свою собственную палитру, то ее сохраняют непосредственно перед данными того изображения, с которым она связана.

Заголовок.

Заголовок – это раздел двоичных или символьных в формате ASCII данных, располагается в начале файла, хранит общую информацию о растровых данных, которые в этом файле содержатся. Все структурированные растровые файлы имеют заголовок, структура и содержание которого определяется конкретным форматом. Обычно заголовок растрового файла состоит из фиксированных полей. Ни одно из этих полей не является обязательным, но определенный набор типичен для большинства популярных форматов.

    • ^ Идентификатор файла: обычно заголовок начинается с уникального идентифицирующего значения, называемого идентификатором файла или ID-значением. Идентификатор позволяет программе определить формат графического файла, с которым она работает. Идентификаторы файлов также называются «магическими числами», т.к. выбирались разработчиками форматов произвольно. В качестве идентификатора может использоваться как последовательность символов, так и любые числовые значения. Идентификатор должен быть уникальным даже для форматов, используемых на различных платформах, т.к. если значение, прочитанное из определенного места в файле, совпадает с ожидаемым идентификационным значением, то программа, читающая заголовок файла, предполагает, сто ей известен данных формат. Однако на самом деле это может быть и не так. Есть 3 обстоятельства, которые препятствуют правильной идентификации файлов и снижают надежность при определении форматов:

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

  2. При создании нового формата автор может полностью или частично воспроизвести магическое значение другого формата.

  3. Распространение формата умышленно или случайно изменяет его спецификацию, сохраняя при этом идентификатор данного формата. В этом случае программа распознает формат, но не всегда может правильно прочесть его данные.

    • ^ Версия файла: т.к. версии одного и того же формата могут иметь различные характеристики, поэтому после идентификации формата с помощью ID-значения программа проверяет номер версии и определяет, сможет ли она обрабатывать данные, содержащиеся в этом файле.

    • ^ Идентификация, описывающая изображение: количество строк в растровом изображении называется высотой изображения или количеством строк в развертке, и содержит значение, определяющее количество строк в реальных растровых данных. Количество пикселей в строке называется шириной строки развертки, и определяет количество пикселей, сохраненных в каждой строке. Количество битов на пиксель определяет размер данных, необходимых для описания каждого пикселя в цветовой плоскости. Количество цветовых плоскостей определяет количество используемых цветовых плоскостей. Чаще всего его значение = 1, т.е. растровые данных сохраняются в одноплоскостном формате.

    • ^ Тип сжатия: если с целью уменьшения объема файла формат поддерживает какой-нибудь вид кодирования, то в заголовок включается поле «тип сжатия». Некоторые форматы поддерживают несколько алгоритмов компрессии. Модификации форматов – это чаще всего дополнение или изменение к уже используемым схемам сжатия.

    • ^ Координаты изображения: определяют координаты точки начала изображения на устройстве вывода. Чаще всего они имеют значение (0;0) и совмещают начало изображения с точкой отсчета системы координат устройства. Различные форматы и устройства отображения по-разному определяют позицию точки отсчета и ориентацию позиции изображения.

    • ^ Текстовое описание: это поле представляет собой комментарий, содержащий произвольные символьные данные (имя программы, автора и т.п.).

    • Неиспользуемое пространство: в конце заголовка располагается неиспользуемые поля, которые называются заполнительными или зарезервированными полями. Зарезервированные поля не описываются и не структурируются, их местоположение в заголовке известно. Если возникает необходимость расширить формат, то сведения о новых данных заносятся в зарезервированное пространство. Т.о. сохраняется совместимость с программами, поддерживающими старые версии этого формата. И проблема, связанная с появлением новым версий, также сводится к минимуму. Т.к. заголовок имеет фиксируемую длину и структуру, то новые поля добавляются в зарезервированную область заголовка без изменения его размера.


^ Растровые данные.

Обычно располагаются сразу после заголовка, но могут появиться и в другом месте файла, если перед ними сохранены другие данные (например, палитра). Если они находятся не сразу после заголовка, то в заголовке в поле смещения данных изображения указывается местоположение начала данных изображения в файле. Структура растровых файлов представляет собой набор пиксельных значений. На устройстве вывода пиксели выводятся в виде строк развертки по всей ширине поверхности отображения. Строки развертки объединяют пиксельные данные в двухмерную сетку – это позволяет определить местоположение каждого пикселя в заданных логических координатах. Растровые данные обычно организуются одним из двух способов:

  1. в виде строк развертки;

  2. в виде плоскостей.


^ Организация данных в виде строк развертки.

Пиксельные данные в файле, описывающие изображение, организуемые в виде строк развертки, представляют собой последовательности набора значений, где каждый набор соответствует строке изображения. Несколько строк представляются несколькими наборами, записанными в файл последовательно от начала до конца. Если известно количество пикселей в строке и размер каждого пикселя, то можно рассчитать смещения начала каждой строки в файле. Если ширина строки изображения = 21 пиксель, то смещение от начала растровых данных будет: 0, 21, 42, … байта. Некоторые компьютеры и форматы требуют, чтобы строки данных изображения занимали четное количество байтов или были выровнены по границе двойного слова (4 байта). В этом случае в каждой строке лишние байты становятся заполнительными, но это компенсируется выигрышем скорости за счет более быстрой обработки и декодирования информации. Пиксельные данные, представляющие изображение в виде строк развертки, могут быть сохранены в файле тремя способами:

  1. в виде непрерывных данных;

  2. в виде полос;

  3. в виде фрагментов.

Непрерывные данные.

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

Полосы.

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


Фрагменты.

Фрагменты подобны полосам, но каждый фрагмент соответствует прямоугольной вертикальной области изображения. В отличие от полос, которые всегда имеют ту же ширину, что и оригинальные изображения, фрагменты могут иметь любую ширину от 1 пикселя до ширины всего изображения. На практике фрагменты организуются т. о., что пиксельные данные, соответствующие одному фрагменту, имеют объем от 4 до 64 Кбайтов, а их высота и ширина кратны 16. Если данные изображения организованы в виде фрагментов, то все они имеют одинаковый размер, фрагментируется все изображение и фрагменты не перекрываются. Фрагментация данных позволяет оптимизировать степень сжатия информации путем применения к различным частям изображения различных схем сжатия. Фрагментация позволяет декодировать и распаковывать большие изображения быстрее, чем если бы ее пиксельные данные были организованы в виде строк и полос. И т.к. фрагменты можно распаковывать независимо друг от друга, то файловые форматы, позволяющие применять фрагменты, содержат в заголовке файла сведения о количестве фрагментов, их размере и смещении. В виде строк развертки, В виде полос, В виде фрагментов.


^ Организация данных в виде плоскостей.

Это такой способ, где растровые данные изображения разделены на 2 или более плоскости. Файлы, в которых файлы изображения организованы т.о., называются плоскостными. Изображение, использующее много цветов, называется составным изображением. В плоскостных файлах составное изображение представляется несколькими блоками растровых данных (обычно тремя), каждый блок содержит одну из цветовых составляющих, используемых в данном изображении. Конструирование каждого блока происходит с использованием фильтров для разложения цветного изображения на цветовые составляющие. Программа визуализации восстанавливает оригинал путем объединения этих составляющих. В каждом блоке объединяются строки, расположенные последовательно, но для восстановления всего изображения требуется чтение более одного блока информации. Блоки могут сохраняться в файле как последовательно, так и раздельно. Данные в виде плоскостей сохраняются тогда, когда устройство отображения создает пиксели, окрашенные в составные цвета из компонентов, т.к. конструкция этого оборудования позволяет управлять в каждый момент времени только одним цветом. Данные в таком формате обычно читаются отдельными плоскостями, но некоторые программы визуализации читают их попиксельно посредством последовательного чтения данных из соответствующих точек в каждой плоскости.

Пример:

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17

так мы описали 6 пикселей.

В виде плоскостей:

- красная: 00 03 06 09 12 15

- зеленая: 01 04 07 10 13 16

- синяя: 02 05 08 11 14 17

Большинство растровых файлов в неплоскостном формате, поэтому для пиксельно – организованных файлов на плоскостно – организованных устройствах вывода пиксельные данные раскладываются на временные цветовые плоскости в памяти, чтобы представить их в форме, удобной для обработки программой визуализации. Пиксельные данные из плоскостного файла могут конструироваться в отдельном буфере или программа визуализации обработает их в файле попиксельно.


^ Палитра (аналогично векторным данным).

Концовка.

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


^ Дополнительные структуры данных растровых файлов.

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


^ Преимущества и недостатки растровых файлов.


Преимущества:

  1. растровые файлы удобны для изображений, полученных со сканирующего, фотографического или видео оборудования.

  2. пиксельные данные, сохраненные в растровом файле, могут быть представлены в виде двухмерной сетки. Т.о. возможно воспроизведение этих данных с определенного пикселя.

  3. растровые файлы легко преобразовываются ля передачи на точечные устройства вывода.

  4. растровые файлы могут изменяться индивидуально или большими группами с помощью палитры.

Недостатки:

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

  2. растровые форматы плохо поддаются масштабированию.


^ Сжатие данных.

Сжатие – процесс, применяемый для уменьшения физического блока информации. Сжатие применяется также для того, чтобы поместить изображение в блок памяти заданного размера. Для алгоритмов сжатия используется термин «кодирования данных». Сжатие – это один из типов кодирования, применяемый для уменьшения их объема. Программа-компрессор осуществляет сжатие данных, а программа-декомпрессор – их восстановление. Декомпрессор может осуществить свои функции только на базе алгоритмов сжатия. Лишь несколько схем сжатия применяется сегодня широко. Наиболее известные:

    1. Групповое кодирование (RLE – метод);

    2. Лемпела-Зифа-Велча (LZW);

    3. CCITT (Хаффман);

    4. Дискретное косинус преобразование (JPEG).

В растровых данных сжимаются только данные изображения, остальные данные всегда остаются несжатыми (заголовки и т.д.). Векторные файлы обычно не сжимаются, а если и сжимаются, то сжимается все изображение. Существует термин «степень сжатия» - отношение объема несжатых данных с объему сжатых.


^ Физическое и логическое сжатие.

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

^ Физическое сжатие.

При нем данные преобразуются без учета содержащейся в них информации. Происходит просто перевод серии видов из одного шаблона в другой, более компактный. Методы физического сжатия представляют данные в виде строк. Объем блока сжатых данных гораздо меньше, чем оригинальных, т.к. алгоритм физического сжатия удалил существующую в данных избыточность. Методы физического сжатия делятся на 2 категории:

  • Сжатие всего файла (1);

  • Сжатие, включенное в структуру файла (2).

(1): при нем программа считывает все его данные, применяет к ним некоторый сжимающий алгоритм и создает новый файл. Выигрыш в размере файла значительный, но его нельзя использовать ни одной программой, пока он не будет восстановлен до исходного состояния. Поэтому сжатие всего файла применяется только для длительного хранения или пересылки. Наиболее популярные форматы: zip, rar и т.д.

(2): программа, предназначенная для чтения файлов таких форматов, способная сразу считать данные при распаковке файла. Внутреннее сжатие используется тогда, когда файлы занимают в памяти очень много места.

^ Логическое сжатие.

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


^ Адаптивное, полу адаптивное и неадаптивное кодирование.

Неадаптивные кодировщики содержат статический словарь определенных подстрок, о которых известно, что они встречаются в данных достаточно часто (RLE). Адаптивный кодировщик предопределяет правила для сжимаемых данных. Адаптивные компрессоры не зависят от типов обрабатываемых данных, т.к строят свои словари полностью из поступивших данных, они не имеют предопределенного списка подстрок, а строят фразы динамически в процессе кодирования (LZW – кодирование). Полу адаптивное основано на применении обоих словарных методов кодирования. Полу адаптивный кодировщик работает в 2 прохода. В 1-ом он рассматривает все данные и строит свой словарь; во 2-ом выполняется собственно кодирование.


^ Сжатие с потерями и минимизацией потерь.

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

RLE-кодирование.

Это кодирование используется большинством растровых файловых форматов. Алгоритм RLE позволяет сжимать данные любых типов, независимо от содержащейся в них информации. Сама информация влияет лишь на полноту сжатия. Большинство алгоритмов RLE не достигают большой степени сжатия, но выполняются легко и быстро. RLE уменьшает физический размер повторяющихся строк символов и кодирует эти строки, которые в RLE называются группами, в двух байтах. Первый байт определяет количество символов в группе и называется счетчиком группы (группа может содержать от 1 до 256 символов); второй – содержит значения символов группы и называется значением группы. Если программа читает подряд несколько пикселей с одинаковым значением, она не записывает цветовое значение пикселей еще раз, а просто запоминает сколько пикселей с таким значением следует друг за другом. Новый пакет генерируется всякий раз, когда изменяется группа или когда количество символов в группе превышает максимальное значение счетчика. Для кодирования группы в RLE требуется 2 байта, поэтому группы из 1 символа займут в 2 раза больше памяти, чем незакодированные данные. Эффективность сжатия RLE зависит от типа данных изображения. Черно-белое кодируется с помощью RLE особенно хорошо, т.к. включает большие объемы непрерывных данных. Сложное изображение с большим количеством цветов с помощью RLE кодируется плохо. Групповое кодирование не является форматом файла, это метод кодирования, который может быть включен в некоторые графические форматы. Данные изображения кодируются последовательно, начиная с верхнего левого угла, затем слева направо по линиям развертки. Альтернативные схемы RLE позволяют записать данные по длине растра, т.е. по вертикали, либо кодировать фрагментами или загзагом по диагонали. Иногда говорят, что бывает RLE-кодирование с потерями – это когда отбрасываются в процессе кодирования младшие биты в каждом пикселе. RLE-кодировщик должен останавливаться в конце каждой строки развертки растровых данных. Построчное кодирование требует меньшего размера буфера и предотвращает проблему перекрестного кодирования. Перекрестное кодирование – слияние строк развертки, происходящее из-за того, что в процессе кодирования различие между строками исчезает. В RLE закодированную группу принято заканчивать в конце строки развертки. Программа-кодировщик помещает в закодированные данные маркер конца строки, чтобы программа-декодировщик могла распознать начало строки развертки. Маркер представляет собой уникальный пакет, который нельзя спутать с другими данными, имеет длину 1 байт. Также для определения в закодированных данных начала точек строки развертки используется таблица строк развертки. Она содержит по одному элементу для каждой строки развертки, а элемент содержит информацию о смещении каждой строки развертки от начала данных.


^ RLE-схемы битового, байтового и пиксельного уровней.

Различают алгоритмы группового кодирования по длине групп данных. RLE-схемы, применяемые для кодирования растровой графики, делятся на классы в зависимости от уровня обрабатываемых данных. Большинство форматов используют 3 класса: битовый, байтовый и пиксельный уровни. Битового уровня – кодируют в группы биты строк развертки, игнорируя при этом границы битов и слов. Используются только при обработке монохромных изображений, которые содержат достаточное количество битовых групп. RLE-схемы битового уровня кодируют в группы только до 128 битов, создавая из них однобайтовый пакет. 7 младших битов этого байта содержат счетчик группы, старшие – значения группы.

^ RLE-схемы битового уровня – кодируют в группы байтовые значения, игнорируя отдельные биты и границы слов в строке развертки. Простая такая схема кодирует группы байтов в двухбитовые пакеты. Один байт содержит счетчик, а второй – значение группы. Также применяется схема, которая позволяет хранить в потоке данных литералы, т.е. блоки незакодированных данных. 7 младших битов первого байта содержат счетчик, а самый старший – тип группы. Если самый старший бит установлен «1», то значит, группа закодирована. Если в «0», то он указывает на литеральную группу (т.е. на незакодированную группу), т.е. байты читаются напрямую из данных изображения. Счетчик содержит значения от 0 до 127, значения группы – от 0 до 255.

^ RLE-схемы пиксельного уровня – применяются тогда, когда для хранения одного пиксельного значения используется 2 или более байтов данных изображения. На пиксельном уровне биты игнорируются, а байты используются для идентификации пиксельного значения.


^ Пакеты вертикального повторения.

Некоторые RLE-схемы для повышения эффективности сжатия используют пакет повторения строк развертки или пакет вертикального повторения. Этот пакет не хранит реальных строк развертки, он содержит указатель на необходимость повторить предыдущую строку. Пакет вертикального повторения занимает всего 1 байт для счетчика группы, причем этот байт равен 0. Второй байт – на значение количества строк (значение повторений).


LZW-сжатие.

Этот метод сжатия без потерь применяется в различных форматах файлов: GIF, TIFF; включен в стандарт сжатия для модемов и язык ПостСкрипт (Post Script). Используется для сжатия текста и является основой архивирующих программ: PK ZIP и ARG. Алгоритм LZW позволяет работать с любым типом данных, обеспечивает быстрое сжатие и распаковку. Этот алгоритм основан на поиске шаблонов в изображении и сохранении их. Программа считывает значения пикселей и строит таблицы кодов, которые представляют повторяющиеся пиксельные узоры, найденные этой программой. Степень сжатия достигается 3:1 или 4:1. Хорошо сжимаются насыщенные узорами изображения, содержащие большие блоки однотонной окраски или повторяющиеся одинаковые значения цветовых элементов. Это алгоритм, как и RLE, не является форматом – он лишь включен в различные другие форматы файлов. LZW является полуадаптивным, т.к. строит словарь данных из входного потока, образцы данных идентифицируются в потоке данных и сопоставляются с записями из словаря. Если данные не представлены в словаре, то создается кодовая фраза, которая записывается как в словарь, так и в выходной поток сжатых данных. Т.к. фразы имеют меньший физический размер, чем исходные данные, то LZW считается сжатием. Декомпрессор работает в порядке, обратном кодированию. Преимущество LZW в том, что для него необязательно сохранять словарь для последующего декодирования. При сжатии текстовых файлов LZW инициализирует первые 256 записей символами ASCII как фразами, а затем ищет их повторения.


^ Кодирование CCITT или кодирование по алгоритму Хаффмана.

Этот вид кодирования используется всеми современными факс-модемами, а также используется в сетях передачи данных. В этих алгоритмах используется фиксированная таблица кодовых значений, которые были выбраны специально для документов, подлежащих факсимильной передаче. Степень сжатия: от 5:1 до 15:1 в зависимости от модификации. Степень сжатия многоцветных изображений обычно не превышает 3:1. Если изображение представляется в виде черно-белых однобитовых пиксельных групп переменной длины, то кодировщик определяет длину пиксельной группы в строке развертки и выводит двоичное кодовое слово переменной длины, представляющее длину и цвет группы. Кодовые слова берутся из предопределенной таблицы значений, представляющих группы белых и черных пикселей. Метод Хаффмана строит таблицы кодов, базирующихся на частоте повторяющихся величин. Чем чаще встречается та или иная величина, тем короче будет заменяющий ее код. Размер кодовых слов определяется CCITT на основе статистической усредненной частоты черно-белых групп, появляющихся в типичных печатных и рукописных документов. Длина группы представляется двумя типами кодовых слов: образующей группой и терминальной. Образующей может и не быть. Терминальная бывает всегда. Группа длиной от 0 до 63 пикселей кодируется терминальным кодом. От 64 до 2623 – одним образующим и одним терминальным.


JPEG.

JPEG не является просто алгоритмом – это целый набор методов сжатия изображений. Он является форматом файла. JPEG-сжатие сопровождается потерями, считается, что в процессе преобразования отбрасываются ненужные или невидимые человеком данные. Т.к. глазом человека плохо распознаются незначительные изменения цвета, а незначительные изменения интенсивности – гораздо лучше, то JPEG как раз использует эту способность цветовосприятия человеческого глаза. Схема JPEG специально разработана для сжатия цветных и полутоновых многоцветных изображений, т.е. фотографий, телевизионных заставок и т.п. Схема JPEG используется также для сжатия видеоизображений в стандарте MPEG. Объем сжатых данных зависит от содержания исходного изображения и степень сжатия составляет 20:1 или 25:1. JPEG используется только для изображений, имеющих пиксельную глубину более 5 – 6 битов на цветовой канал. Пользователь может отрегулировать качество кодировщика JPEG, используя параметр Q-фактор – установка качества. Диапазон Q-фактора от 1 до 100. При значении, равном 1, создается сжатое изображение самого маленького размера и самого плохого качества. При 100 – размер сжатого JPEG – файла – максимальный и качество максимальное. JPEG основан на схеме кодирования, базирующейся на дискретных косинусных преобразованиях (DCT). Эти преобразования всегда кодируют с потерями, но способны обеспечить высокую степень сжатия при минимальных потерях данных. JPEG эффективнее всего применять к тем изображениям, в которых различие между соседними пикселями незначительное. Процесс сжатия по схеме JPEG:

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

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

  3. применение DCT для уменьшения избыточности данных;

  4. квантование каждого блока коэффициентов DCT с применением весовых функций,

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

  1. кодирование результирующих коэффициентов по алгоритму Хаффмана.

1 этап: JPEG преобразовывает каждый компонент цветовой модели отдельно и обеспечивает полную независимость преобразования от модели цветового пространства. Причем преобразуются они в модель YUV или YCbCr, где Y – компонент яркости, а U(Cb) и V(Cr) – компоненты цветности.

RGB – YUV:

Y = 0.299R + 0.587G + 0.114B

U = -0.1687R – 0.3313G + 0.5B + 128

V = 0.5R – 0.4187G – 0.0813B + 128

Обратное преобразование:

YUV – RGB:

R = Y + 1.402(Cr - 128)

G = Y – 0.34414(Cb - 128) – 0.71414(Cr - 128)

B = Y + 1.772(Cb - 128)

2 этап: субдискретизация осуществляется за счет уменьшения количества пикселей для каналов цветности. При поступлении несжатых данных компрессор уменьшает разрешение каналов цветности путем субдискретизации, канал яркости всегда остается с полным разрешением (т.е. дискретизация яркости 1:1), для обоих каналов цветности производится субдискретизация 2:1 в горизонтальном направлении и 1:1 или 2:1 в вертикальном. Пиксель цветности охватывает ту же область, что и 2*1 или 2*2 пикселей яркости. Эти процессы соответственно называют 2h1v или 2h2v – дискретизацией.

3 этап: применяется DTC к каждому блоку 8*8 пикселей, преобразуется пространственное представление изображение в спектральное представление. Воздействие на спектральное представление картинки, состоящее из гармоник, можно балансировать между качеством воспроизведения изображения и степенью его сжатия. Разделив высокочастотную и низкочастотную информацию, отбрасываются высокочастотная без потери низкочастотной информации. DTC не предусматривает потерь, за исключением округлений.

4 этап: квантование. Прежде, чем отбросить определенный объем информации, компрессор делит каждое выходное значение DCT на коэффициент квантования, округляя полученный результат до целого. Коэффициент квантования – величина, обратная Q-фактору. Чем больше коэффициент квантования, тем больше данных теряется, т.к. реальное DCT значение представляется все менее и менее точно. На этом этапе JPEG-компрессор управляется установкой качества (Q-фактора).

5 этап: т.к. результирующие коэффициенты содержат значительный объем избыточных данных, сжатие по алгоритму Хаффмана позволяет без потерь удалить избыточность информации, уменьшив объем данных.


^ Фрактальное сжатие.

Фрактальное кодирование – это математический процесс, применяемый для кодирования растров, которые содержат реальные изображения. В результате образуется совокупность математических данных, описывающих фрактальные свойства изображения. Фрактал – структура, состоящая из подобных форм и рисунков, встречающихся во множестве в данном изображении. Фракталы описываются математически и создаются с помощью простых алгоритмов и незначительного количества данных. Фракталы подбираются путем применения масштабирования, поворота, зеркального отображения начальных кусочков изображения. Обнаружив совпадение, программа создает описание фрактала. Обработав таким образом всю поверхность, получается система математических уравнений, называемая фрактальными кодами. Различие между векторной и фрактальной графикой состоит в том, что фрактальное описание создается из реальных объектов изображения, а векторные и трехмерные объекты – это часто искусственные структуры. Процесс кодирования требует огромного количества вычислений, для поиска фракталов в изображении требуются миллионы итераций. Процесс кодирования прост: требуется лишь интерпретировать фрактальные коды в растровое изображение.

Преимущества:

  1. возможность масштабировать фрактальные изображения без введения артефактов и «лестничного» эффекта.

  2. размер данных, используемых для записи фрактальных кодов, значительно меньше реальных растровых данных. Степень сжатия приблизительно 200:1.

.FIF – формат для этого сжатия. Фрактальное сжатие сопровождается потерями, т.к. процесс сравнения фракталов не предусматривает поиска точного их соответствия. Ищется наилучшее соответствие на основании параметров сжатия. Процессом кодирования можно управлять, подбирая то состояние, в котором изображение не имеет потерь. Фрактальное сжатие – процесс асимметричный. Сжатие в тысячи и десятки тысяч раз больше, чем декодирование информации.


^ MPEG – сжатие.

MPEG – экспертная группа по кинематографии. Применяется метод асимметричного сжатия, т.е. процесс сжатия более сложный, чем распаковка. Формат удобен, когда данные записываются однажды, читаются не достаточно часто. В MPEG применяются 2 вида сжатия:

  1. внутрикадровое кодирование (подобно JPEG);

  2. межкадровое кодирование (основано на кодировании с предсказанием и интерполятивном кодировании).

^ Кодирование с предсказанием – т.к последовательные кадры содержат множество идентичных данных, то достаточно закодировать лишь различия, т.е. различия в информации этих кадров. Интерполятивное кодирование – межкадровое кодирование, компенсирующее движение, позволяет уменьшить размер данных за счет двунаправленного предсказания. Двунаправленное предсказание кодирует на основе различий между ним, предыдущим и последующим кадром. Для поддержки межкадрового и внутрикадрового кодирования поток MPEG содержит 3 типа закодированных кадров: 1. I – кадры – исходные; 2. P – кадры – предсказуемые; 3. B – кадры – двунаправленной интерполяции.

I – используется для внутрикадрового кодирования. P – кодирование с предсказанием. B – на которых осуществляется двунаправленное кодирование. В I-кадр записан один кадр видеоданных, который никак не связан с информацией любого другого кадра. Каждый поток данных MPEG начинается с этого кадра. P-кадр содержит различия между текущим кадром и последующим I или P. B-кадр состоит из различий между текущим кадром и двумя кадрами: предыдущим и последующим I или P. Данные в MPEG отображаются не в том порядке, в котором записываются, т.к. B-кадры связаны с двумя кадрами, последние должны быть декодированы раньше, чем сам B. Отображаться же они будут в последовательности: 0312645.

I – 150 кбит;

P – 50 кбит;

B – 20 кбит.

Применение P и B кадров необязательно. Кодирование только I-кадров соответствует кодированию JPEG. Такое кодирование осуществляется в режиме реального времени. Процесс кодирования и декодирования I-кадров гораздо проще, но степень сжатия значительно меньше.

^ Сравнительный анализ MPEG – стандартов.

  1. MPEG – 1.

Появился в 92 г. Был рассчитан для передачи видео по низкоскоростным сетям и для записи на CD. В MPEG – 1 разрешающая возможность картинки была снижена в 2 раза по обеим осям по сравнению с разверткой TV (288*360). Полнометражный фильм помещался двух CD.

  1. MPEG – 2.

95 г. Предназначен для обработки видеоизображения, соизмеримого по качеству с TV при пропускной способности каналов передачи данных от 3 до 15 Мбит в секунду. DVD и спутниковое цифровое телевидение – область применения MPEG – 2. На этом стандарте построены системы НТВ+ и т.д. MPEG – 2 представляет возможность в процессе кодирования задавать точность частотных коэффициентов матрицы квантования. Имеется возможность настройки качества изображения в зависимости от пропускной способности сети или емкости носителя.

  1. MPEG – 3.

Для использования в системах TV высокой четности HDTV со скоростью потока данных от 20 до 40 Мбит в секунду. MPEG – 3 стал составной частью MPEG – 2 при увеличенной скоростью цифрового потока.

  1. MPEG – 4.

99г. Задает принципы работы с контентом, цифровым представлением медиаданных: 1) интерактивная мультимедиа; 2) графические приложения; 3) цифровое TV. MPEG – 4 позволяет работать с естественными и синтезированными двух- и трехмерными объектами. Позволяет производить привязку, взаимное расположение и синхронизацию объекта друг относительно друга. В MPEG - 4 картинка делится на составные элементы – медиаобъекты. Описывается структура этих объектов и их взаимосвязи, а затем собирается в единую видео - звуковую сцену. Результирующая сцена состоит из: 1) неподвижной картинки (фона); 2) видеообъекта (человек); 3) аудиообъекта; 4) текст, связанный с синтетическими объектами, из которого синтезируется голос. Такой способ представления данных позволяет перемещать объекты, трансформировать их, собирать из отдельных объектов составными объектами, а также менять точку наблюдения за сценой. MPEG – 4 используется как схема сжатия видеоматериала. В отличие от MPEG – 2, в которых кадр делится на квадратные блоки независимо от его содержания, в MPEG – 4 оперируют целыми объектами произвольной формы. Также в MPEG – 4 применен интеллектуальный способ расстановки I-кадров. Ключевые кадры выделяются в те моменты, в которых происходит смена сюжета. Распространению MPEG – 4 препятствует отсутствие аппаратных средств кодирования и декодирования, а их распространение сдерживает отсутствие надежной защиты от несанкционированного кодирования.

  1. MPEG – 7.

Конец 2001 г. Обеспечивает формализацию и стандартизацию описания различных типов мультимедийной информации для ее быстрого поиска. В нем определен стандартный набор дескрипторов для различного типа мультимедийной информации. Эффективный поиск мультимедийной информации специализированными поисковыми машинами.





Скачать файл (407 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации