• Кодирование графической информации_10 класс_Урок информатики. Двоичное кодирование графической информации §16

    28.10.2021

    Растры, пиксели, дискретизация, разрешение

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

    И линия, и область состоят из бесконечного числа точек. Цвет каждой из этих точек нам нужно закодировать. Если их бесконечно много, мы сразу приходим к выводу, что для этого нужно бесконечно много памяти. Поэтому «поточечным» способом изображение закодировать не удастся. Однако, эту все-таки идею можно использовать.

    Начнем с черно-белого рисунка. Представим себе, что на изображение ромба наложена сетка, которая разбивает его на квадратики. Такая сетка называется растром. Теперь для каждого квадратика определим цвет (черный или белый). Для тех квадратиков, в которых часть оказалась закрашена черным цветом, а часть белым, выберем цвет в зависимости от того, какая часть (черная или белая) больше.

    Рисунок 1.

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

    Определение 1

    Пиксель (англ. pixel = picture element, элемент рисунка) – это наименьший элемент рисунка, для которого можно задать свой цвет. Разбив «обычный» рисунок на квадратики, мы выполнили его дискретизацию – разбили единый объект на отдельные элементы. Действительно, у нас был единый и неделимый рисунок – изображение ромба. В результаты мы получили дискретный объект – набор пикселей.

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

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

    Пример 1

    Покажем это на простом примере:

    Рисунок 2.

    Ширина этого рисунка – $8$ пикселей, поэтому каждая строчка таблицы состоит из $8$ двоичных разрядов – битов. Чтобы не писать очень длинную цепочку нулей и единиц, удобно использовать шестнадцатеричную систему счисления, закодировав $4$ соседних бита (тетраду) одной шестнадцатеричной цифрой.

    Рисунок 3.

    Например, для первой строки получаем код $1A_{16}$:

    а для всего рисунка: $1A2642FF425A5A7E_{16}$.

    Замечание 1

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

    Определение 2

    Разрешение – это количество пикселей, приходящихся на дюйм размера изображения.

    Разрешение обычно измеряется в пикселях на дюйм (используется английское обозначение $ppi$ = pixels per inch). Например, разрешение $254$ $ppi$ означает, что на дюйм ($25,4$ мм) приходится $254$ пикселя, так что каждый пиксель «содержит» квадрат исходного изображения размером $0,1×0,1$ мм. Чем больше разрешение, тем точнее кодируется рисунок (меньше информации теряется), однако одновременно растет и объем файла .

    Кодирование цвета

    Что делать, если рисунок цветной? В этом случае для кодирования цвета пикселя уже не обойтись одним битом. Например, в показанном на рисунке изображении российского флага $4$ цвета: черный, синий, красный и белый. Для кодирования одного из четырех вариантов нужно $2$ бита, поэтому код каждого цвета (и код каждого пикселя) будет состоять из двух бит. Пусть $00$ обозначает черный цвет, $01$ – красный, $10$ – синий и $11$ – белый. Тогда получаем такую таблицу:

    Рисунок 4.

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

    Человек воспринимает свет как множество электромагнитных волн. Определенная длина волны соответствуют некоторому цвету. Например, волны длиной $500-565$ нм – это зеленый цвет. Так называемый «белый» свет на самом деле представляет собой смесь волн, длины которых охватывают весь видимый диапазон.

    Согласно современному представлению о цветном зрении (теории Юнга-Гельмгольца), глаз человека содержит чувствительные элементы трех типов. Каждый из них воспринимает весь поток света, но первые наиболее чувствительны в области красного цвета, вторые – области зеленого, а третьи – в области синего цвета. Цвет – это результат возбуждения всех трех типов рецепторов. Поэтому считается, что любой цвет (то есть ощущения человека, воспринимающего волны определенной длины) можно имитировать, используя только три световых луча (красный, зеленый и синий) разной яркости. Следовательно, любой цвет приближенно раскладывается на три составляющих – красную, зеленую и синюю. Меняя силу этих составляющих, можно составить любые цвета. Эта модель цвета получила название RGB по начальным буквам английских слов red (красный), green (зеленый) и blue (синий).

    В модели RBG яркость каждой составляющей (или, как говорят, каждого канала) чаще всего кодируется целым числом от $0$ до $255$. При этом код цвета – это тройка чисел (R,G,B), яркости отдельных каналов. Цвет ($0,0,0$) – это черный цвет, а ($255,255,255$) – белый. Если все составляющие имеют равную яркость, получаются оттенки серого цвета, от черного до белого.

    Рисунок 5.

    Чтобы сделать светло-красный (розовый) цвет, нужно в красном цвете ($255,0,0$) одинаково увеличить яркость зеленого и синего каналов, например, цвет ($255, 150, 150$) – это розовый. Равномерное уменьшение яркости всех каналов делает темный цвет, например, цвет с кодом ($100,0,0$) – тёмно-красный.

    Всего есть по $256$ вариантов яркости каждого из трех цветов. Это позволяет закодировать $256^3= 16 777 216$ оттенков, что более чем достаточно для человека. Так как $256 = 2^8$, каждая из трех составляющих занимает в памяти $8$ бит или $1$ байт, а вся информация о каком-то цвете – $24$ бита (или $3$ байта). Эта величина называется глубиной цвета.

    Определение 3

    Глубина цвета – это количество бит, используемое для кодирования цвета пикселя.

    $24$-битное кодирование цвета часто называют режимом истинного цвета (англ. True Color – истинный цвет). Для вычисления объема рисунка в байтах при таком кодировании нужно определить общее количество пикселей (перемножить ширину и высоту) и умножить результат на $3$, так как цвет каждого пикселя кодируется тремя байтами. Например, рисунок размером $20×30$ пикселей, закодированный в режиме истинного цвета, будет занимать $20×30×3 = 1800$ байт.

    Кроме режима истинного цвета используется также $16$-битное кодирование (англ. High Color – «высокий» цвет), когда на красную и синюю составляющую отводится по $5$ бит, а на зеленую, к которой человеческий глаз более чувствителен – $6$ бит. В режиме High Color можно закодировать $2^{16} = 65 536$ различных цветов. В мобильных телефонах $12$-битное кодирование цвета ($4$ бита на канал, $4096$ цветов).

    Кодирование с палитрой

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

    Определение 4

    Цветовая палитра – это таблица, в которой каждому цвету, заданному в виде составляющих в модели RGB, сопоставляется числовой код.

    Кодирование с палитрой выполняется следующим образом:

    • выбираем количество цветов $N$ (как правило, не более $256$);
    • из палитры истинного цвета ($16 777 216$ цветов) выбираем любые $N$ цветов и для каждого из них находим составляющие в модели RGB;
    • каждому из цветов присваиваем номер (код) от $0$ до $N–1$;
    • составляем палитру, записывая сначала RGB-составляющие цвета, имеющего код $0$, затем составляющие цвета с кодом $1$ и т.д.

    Цвет каждого пикселя кодируется не в виде значений RGB-составляющих, а как номер цвета в палитре. Например, при кодировании изображения российского флага (см. выше) были выбраны $4$ цвета:

    • черный: RGB-код ($0,0,0$); двоичный код $002$;
    • красный: RGB-код ($255,0,0$); двоичный код $012$;
    • синий: RGB-код ($0,0,255$); двоичный код $102$;
    • белый: RGB-код ($255,255,255$); двоичный код $112$.

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

    Рисунок 6.

    Код каждого пикселя занимает всего два бита.

    Палитры с количеством цветом более $256$ на практике не используются.

    Достоинства и недостатки растрового кодирования

    Растровое кодирование имеет достоинства :

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

    И недостатки :

    • при дискретизации всегда есть потеря информации;
    • при изменении размеров изображения искажается цвет и форма объектов на рисунке, поскольку при увеличении размеров надо как-то восстановить недостающие пиксели, а при уменьшении – заменить несколько пикселей одним;
    • размер файла не зависит от сложности изображения, а определяется только разрешением и глубиной цвета.

    Как правило, растровые рисунки имеют большой объем.

    Под графической информацией можно понимать рисунок, чертеж, фотографию, картинку в книге, изображения на экране телевизора или в кинозале и т. д. Рассмотрим принципы кодирования графической информации на примере изображения на экране телевизора. Это изображение состоит из горизонтальных линий - строк, каждая из которых в свою очередь состоит из элементарных мельчайших единиц изображения - точек, которые принято называть пикселями (picsel - PICture"S ELement - элемент картинки). Весь массив элементарных единиц изображения называют растром .

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

    Если мы посмотрим на показатели разрешения современных плазменных и жидкокристаллических телевизоров, то обнаружим, что наиболее распространенные разрешения – 640×480 (ЖК-телевизоры с соотношением сторон 4:3); 852×480 (плазменные панели с соотношением сторон 16:9), 1024×768 (ЖК и «плазма» как 4:3, так и 16:9); 1366×768 (HD Ready); 1920×1080 (Full HD) пикселей. Встречаются, но редко, и некоторые другие значения разрешения, например 800×600 или 1024×1024 пикселей.

    Обозначение разрешения, например 640×480, означает, что используется 480 горизонтальных строк по 640 пикселей в каждой. Таким образом, изображение на экране представляет собой последовательность из 640·480=307200 пикселей.

    Изображения могут быть монохромными и цветными.

    Монохромное изображение состоит из любых двух контрастных цветов - черного и белого, зеленого и белого, коричневого и белого и т. д. Для простоты обсуждения будем считать, что один из цветов - черный, а второй - белый. Тогда каждый пиксель изображения может иметь либо черный, либо белый цвет. Поставив в соответствие черному цвету двоичный код «0», а белому - код «1» (либо наоборот), мы сможем закодировать в 1 бите состояние 1 пикселя монохромного изображения. Однако полученное таким образом изображение будет чрезмерно контрастным.

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

    Цветное изображение может формироваться на основе различных моделей. Наиболее распространенные цветовые модели:

    · RGB чаще всего используется в информатике;


    · CMYK - основная цветовая модель в полиграфии;

    · в телевидении для стандарта PAL применяется цветовая модель YUV, для SÉCAM - модель YDbDr, а для NTSC - модель YIQ;

    · эталонная модель XYZ основана на замерах характеристик человеческого глаза.

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

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

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

    Если каждый из цветов кодировать с помощью 1 байта (яркость каждого компонента задается числами от 0 до 255), как это принято для реалистического монохромного изображения, появится возможность передавать по 256 оттенков каждого из основных цветов. А всего в этом случае обеспечивается передача 256 · 256 · 256 = 16 777 216 различных цветов, что достаточно близко к реальной чувствительности человеческого глаза. Таким образом, при данной схеме кодирования цвета на изображение 1 пикселя требуется 3 байта или 24 бита памяти. Этот способ представления цветной графики принято называть режимом True Color (true color - истинный цвет) или полноцветным режимом .

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

    Рис. 4.1. RGB-цветовая модель, представленная в виде куба

    Пример 4.7. В Win32 стандартный тип для представления цветов – COLORREF. Для определения цвета в RGB используется 4 байта в виде:

    BB, GG, RR - значение интенсивности соответственно синей, зеленой и красной составляющих цвета. Максимальное их значение - 0xFF.

    Тогда определить переменную типа COLORREF можно следующим образом:

    COLORREF C = (b,g,r );

    b, g и r - интенсивность (в диапазоне от 0 до 255) соответственно синей, зеленой и красной составляющих определяемого цвета C. То есть ярко-красный цвет может быть определен как (255,0,0), ярко-фиолетовый - (255,0,255), черный - (0,0,0), а белый - (255,255,255).

    Полноцветный режим требует много памяти. Поэтому памяти разрабатываются различные режимы и графические форматы, которые немного хуже передают цвет, но требуют гораздо меньше памяти. В частности, можно упомянуть режим High Color (high color - богатый цвет), в котором для передачи цвета 1 пикселя используется 16 бит, и, следовательно, можно передать 65 535 цветовых оттенков, а также индексный режим, который базируется на заранее созданной для данного рисунка таблице используемых в нем цветовых оттенков. Затем нужный цвет пикселя выбирается из этой таблицы с помощью номера - индекса, который занимает всего 1 байт памяти. При записи изображения в память компьютера, кроме цвета отдельных точек, необходимо фиксировать много дополнительной информации - размеры рисунка, разрешение, яркость точек и т. д. Конкретный способ кодирования всей требуемой при записи изображения в память компьютера информации образует графический формат. Форматы кодирования графической информации, основанные на передаче цвета каждого отдельного пикселя, из которого состоит изображение, относят к группе растровых, или BMP (Bit MaP - битовая карта), форматов .

    Модель CMYK (Cyan, Magenta, Yellow, blacK) субтрактивная схема формирования цвета, используемая прежде всего в полиграфии для стандартной триадной печати. Схема CMYK (рис. 4.2), как правило, обладает сравнительно небольшим цветовым охватом .

    Рис. 4.2. Схема субтрактивного синтеза в CMYK

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

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

    Объяснение первых трех букв в аббревиатуре CMYK дано выше, а по поводу четвертой одна из версий утверждает, что K – сокращение от англ. blacK (если бы взяли B, то возникла бы путаница с моделью RGB, где B – это синий цвет). Согласно этой версии, при выводе полиграфических пленок на них одной буквой указывался цвет, которому они принадлежат. Согласно другому варианту, буква K появилась от сокращения англ. слова Key : в англоязычных странах термином key plate обозначается печатная форма для черной краски.

    CMYK называют субтрактивной моделью, потому что эту модель применяют в основном в полиграфии при цветной печати, а бумага и прочие печатные материалы служат поверхностями, отражающими свет: удобнее считать, какое количество света (и цвета) отразилось от той или иной поверхности, нежели – сколько поглотилось. Таким образом, если вычесть из белого три первичных цвета, RGB, мы получим тройку дополнительных цветов CMY. «Субтрактивный» означает «вычитаемый» – мы вычитаем первичные цвета из белого.

    Каждое из чисел, определяющее цвет в CMYK, представляет собой процент краски данного цвета, составляющей цветовую комбинацию, Например, для получения темно-оранжевого цвета следует смешать 30 % голубой краски, 45 пурпурной, 80 желтой и 5 % черной краски. Это можно обозначить следующим образом: (30,45,80,5). Иногда пользуются таким обозначением: C30M45Y80K5.

    Контрольные вопросы и задания

    1. Что называется форматом данных?

    2. Как в компьютерах кодируется числовая информация?

    3. Как связан диапазона представления целого числа с форматом его хранения.

    4. Есть ли различия в отображении положительных чисел в прямом, обратном и дополнительном кодах?

    5. Представьте число -78 в прямом, обратном и дополнительном кодах в однобайтовом формате.

    6. Как связаны точность и диапазон представления вещественного числа с разрядностью мантиссы?

    7. Почему порядок при представлении вещественного числа называют смещенным?

    8. Почему при представлении нормализованного вещественного числа не хранят первую цифру мантиссы?

    9. Представьте число 34.256 в одинарном формате вещественного числа.

    10. Как в компьютерах кодируется текстовая информация?

    11. Для чего используются кодовые таблицы? Какие кодовые таблицы вам известны?

    12. Чем отличаются базовая таблица ASCII от расширенной?

    13. Какие преимущества дает представление текстовой информации в формате Юникод?

    14. Дайте определения понятиям пиксель, растр, разрешающая способность .

    15. Сколько байт памяти необходимо, чтобы закодировать изображение на экране компьютерного монитора с разрешением 800×600 при 256 цветах?

    16. Какие модели формирования цветных изображений вам известны?

    17. Какие цвета считаются основными в моделях RGB и CMYK?


    5. Основные понятия алгебры логики


    Цветовая палитра
    Видимое излучение

    24-битный цвет (являющийся подмножеством TrueColor англ. «истинный цвет» ) в компьютерной графике - метод представления и хранения изображения, позволяющий отобразить большо́е количество цветов , полутонов и оттенков. Цвет представляется с использованием 256 уровней для каждой из трёх компонент модели RGB : красного(R), зелёного(G) и синего(B), что в результате даёт 16 777 216 (2 8+8+8) различных цветов.

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

    Сверх-Truecolor

    Также существуют системы (например SGI), в которых на представление цвета выделяется более 8 бит на канал, такие способы представления информации изображения также обычно называются TrueColor (например 48-битный TrueColor-сканер).

    В фотоаппаратах, обладающих разрешающей способностью более 8 бит на канал (обычно 12, иногда до 22), «полноцветное» изображение хранится в форме сырых данных (RAW).

    Примечания


    Wikimedia Foundation . 2010 .

    Смотреть что такое "TrueColor" в других словарях:

      Truecolor - See also True Colors (disambiguation). Truecolor is a method of representing and storing graphical image information (especially in computer processing) in an RGB color space such that a very large number of colors, shades, and hues can be… … Wikipedia

      Глубина цвета битовое изображение 8 битная шкала серого 8 битный цвет 15/16 bit: Highcolor 24 bit: Truecolor 30/36/48 bit: Deep Color См. также Цветовая палитра Видимое излучение Цвета в Web 24 битный цвет (являющийся подмножеством … Википедия

      Truecolor - Le terme Truecolor désigne les méthodes de représentation et de stockage d information d image dans un espace colorimétrique RVB telles qu un très grand nombre de couleurs, de nuances et des teintes peuvent être affichées dans une image, comme… … Wikipédia en Français

      TrueColor - True Color (engl. für Echtfarben) ist ein Begriff aus der Computertechnik (Grafikkarten) und bezeichnet eine Farbtiefe von 24 Bit (3×8 Bit, entspricht 224 ≈ 16,78 Millionen Farben). Bilder dieser Farbtiefe erwecken beim menschlichen Betrachter… … Deutsch Wikipedia

      truecolor - ● en /trou ko lor/ adj. GRAPH Se dit d un dispositif de restitution qui permet d afficher plus de couleurs que ne peut en distinguer l œil humain, qui ne voit donc plus la différence entre les vraies couleurs et les couleurs d une photo. Aussi… … Dictionnaire d"informatique francophone

      Color depth - 1 bit monochrome 8 bit grayscale 8 bit color 15/16 bit color (High color) 24 bit color (True color) 30/36/48 bit color (Deep color) Related Indexed color Palette RGB color model Web safe color This box … Wikipedia

      Portable Network Graphics - PNG A PNG image with an 8 bit transparency channel (top). The same image is overlaid onto a checkered background (botto … Wikipedia

      Bildspeicher

      Bildwiederholspeicher - Der Bildspeicher bzw. Framebuffer (engl. frame – Einzelbild, buffer – Puffer) ist Teil des Video RAM von Computern und entspricht einer digitalen Kopie des Monitorbildes. Das heißt, jedem Bildschirmpixel kann genau ein bestimmter Bereich des… … Deutsch Wikipedia

      Frame buffer - Der Bildspeicher bzw. Framebuffer (engl. frame – Einzelbild, buffer – Puffer) ist Teil des Video RAM von Computern und entspricht einer digitalen Kopie des Monitorbildes. Das heißt, jedem Bildschirmpixel kann genau ein bestimmter Bereich des… … Deutsch Wikipedia

    Книги

    • Русский язык. Сдаем ЕГЭ 2014 (CDpc) , Дунаева Л. А., Руденко-Моргун О. И., Щеголева А. Е., Кедрова Г. Е., Стрельцова Т. Е.. Комплекс "1 С:Репетитор. Русский язык. Сдаем ЕГЭ 2014" разработан с целью поддержки проводимого Министерством образования и науки Российской Федерации единого государственного экзамена и…

    Какие сложности у вас возникли? Как их можно преодолеть?

    2. Постройте черно-белый рисунок шириной 8 пикселей, закодированный шестнадцатеричной последовательностью 2466FF6624 16 .

    3. Постройте черно-белый рисунок шириной 5 пикселей, закодированный шестнадцатеричной последовательностью 3A53F88 16 .

    4. Рисунок размером 10×15 см кодируется с разрешением 300 ppi. Оцените количество пикселей в этом рисунке. (Ответ: около 2 мегапикселей)

    5. Постройте шестнадцатеричный код для цветов, имеющих RGB-коды (100,200,200), (30,50,200), (60,180, 20), (220, 150, 30). (Ответ: #64C8C8, #1E32C8, #3CB414, #DC961E)

    6. Как бы вы назвали цвет, заданный на веб-странице в виде кода: #CCCCCC, #FFCCCC, #CCCCFF, #000066, #FF66FF, #CCFFFF, #992299, #999900, #99FF99? Найдите десятичные значения составляющих RGB- кода. (Ответ: (204,204,204), (255,204,204), (204,204,255), (0,0,102), (255.255,102), (104,255,255), (153,34,153), (153,153,0), (153,255,153))

    7. Что такое глубина цвета? Как связаны глубина цвета и объем файла?

    8. Какова глубина цвета, если в рисунке используется 65536 цветов? 256 цветов? 16 цветов? (Ответ: 16 бит; 8 бит; 4 бита)

    9. Для желтого цвета найдите красную, зеленую и синюю составляющие при 12-битном кодировании. (Ответ: R=G=15, B=0)

    10. Сколько места занимает палитра в файле, где используются 64 цвета? 128 цветов?

    11. Сколько байт будет занимать код рисунка размером 40×50 пикселей в режиме истинного цвета? при кодировании с палитрой 256 цветов? при кодировании с палитрой 16 цветов? в черно-белом варианте (два цвета)? (Ответ: 6000, 2000, 1000, 250)

    12. Сколько байт будет занимать код рисунка размером 80×100 пикселей в кодировании с глубиной цвета 12 бит на пиксель? (Ответ: 12000)

    13. Для хранения растрового изображения размером 32×32 пикселя отвели 512 байтов памяти. Каково максимально возможное число цветов в палитре изображения? (Ответ: 16)

    14. Для хранения растрового изображения размером 128 x 128 пикселей отвели 4 килобайта памяти. Каково максимально возможное число цветов в палитре изображения? (Ответ: 4)

    15. В процессе преобразования растрового графического файла количество цветов уменьшилось с 1024 до 32. Во сколько раз уменьшился информационный объем файла? (Ответ: в 2 раза)

    16. В процессе преобразования растрового графического файла количество цветов уменьшилось с 512 до 8. Во сколько раз уменьшился информационный объем файла?(Ответ: в 3 раза)

    17. Разрешение экрана монитора – 1024 х 768 точек, глубина цвета – 16 бит. Каков необходимый объем видеопамяти для данного графического режима? (Ответ: 1,5 Мбайт)

    18. После преобразования растрового 256-цветного графического файла в черно- белый формат (2 цвета) его размер уменьшился на 70 байт. Каков был размер исходного файла? (Ответ: 80 байт)

    19. Сколько памяти нужно для хранения 64-цветного растрового графического изображения размером 32 на 128 точек? (Ответ: 3 Кбайта)

    20. Какова ширина (в пикселях) прямоугольного 64-цветного неупакованного растрового изображения, занимающего на диске 1,5 Мбайт, если его высота вдвое меньше ширины? (Ответ: 2048)

    21. Какова ширина (в пикселях) прямоугольного 16-цветного неупакованного растрового изображения, занимающего на диске 1 Мбайт, если его высота вдвое больше ширины? (Ответ: 1024)

    а) б)

    Рисунок 6.3 – Растровый рисунок

    а) растр; б) моделирование рисунка

    Растровый рисунок – это набор пикселей-квадратиков. Размер квадратика определяется разрешением . Разрешение – это количество пикселей, приходящихся на единицу длины изображения. Разрешение измеряется в пикселях на дюйм, ppi – pixels per inch. Например, разрешение 254 ppi означает, что на 1 дюйм (25,4 мм) приходится 254 пикселя, так что каждый пиксель имеет размер 0,1 ∙ 0,1 мм. Чем больше разрешение, тем точнее (чётче) моделируется рисунок.

    6.2 Кодирование цвета

    Каждый пиксель кодируется указанием цвета. Например, для черно-белого рисунка, белый цвет – 1, черный цвет – 0. Тогда рисунок 6.3 можно закодировать матрицей 4 9, первые три строки которой, заполненные кодами, показаны ниже:

    Как быть, если рисунок цветной? Например, рисунок флага, в котором используются 4 цвета – черный, белый, красный, синий (рисунок 6.4, а). В приложении приводится рисунок в цвете.

    синий
    красный

    Рисунок 6.4 – Кодирование цветного растрового рисунка;

    а) растровый рисунок; б) матрица кодирования рисунка

    Для кодирования одного из четырех вариантов цвета нужно 2 бита, поэтому код каждого цвета (и код каждого пикселя) будет состоять из двух бит. Пусть 00 обозначает черный цвет, 01 – красный, 10 – синий и 11 – белый. Тогда получаем таблицу кодов (рисунок 6.4, б).

    6.2.1 Кодирование цвета на экране

    Считается, что любой излучаемый цвет можно имитировать, используя только три световых луча (красный, зеленый и синий) разной яркости. Следовательно, любой цвет (в том числе и «белый») приближенно раскладывается на три составляющих – красную, зеленую и синюю. Меняя яркость этих составляющих, можно составить любые цвета. Эта модель цвета получила название RGB по начальным буквам английских слов red – красный, green – зеленый и blue – синий (рисунок 6.5,а). Рисунок в цвете приведен в приложении.



    В модели RGB яркость каждой составляющей чаще всего кодируется целым числом от 0 до 255. При этом код цвета – это тройка чисел (R,G,B), яркости отдельных составляющих. Цвет (0,0,0) – это черный цвет, а (255,255,255) – белый. Если все составляющие имеют равную яркость, получаются оттенки серого цвета, от черного до белого. Например, (75,75,75) – темно-серый, а (175,175,175) – светло-серый.

    Чтобы сделать светло-красный (розовый) цвет, нужно в красном цвете (255,0,0) одинаково увеличить яркость зеленого и синего цветов, например, (255, 155, 155) – это розовый цвет. Это можно проверить в редакторе MSWord, инструмент – цвет текста - другие цвета… - спектр (рисунок 6.5,б).

    а) б)


    Рисунок 6.5 – Модель цвета RGB;

    а) модель RGB; б) инструмент “цвет текста” в MSWord

    Коды некоторых цветов представлены ниже в таблице 6.1.

    Таблица 6.1 – Коды цветов

    Всего есть по 256 вариантов яркости каждого из трех цветов. Это позволяет закодировать 256 3 = 16 777 216 оттенков (более 16 миллионов), что более чем достаточно для человека. Так как
    256 = 2 8 , каждая из трех составляющих занимает в памяти 8 бит или один байт, а вся информация о каком-то цвете – 24 бита (или три байта). Эта величина называется глубиной цвета .



    Глубина цвета – это количество бит, используемое для кодирования цвета пикселя.

    Каждому пикселю отводится от 1 бита до 3 байтов видеопамяти (изображение формируется в видеопамяти ). Например:

    Монохромный режим, 2 цвета (черно-белый) – 1 бит (рисунок 6.3, б).

    Цветной режим, 8 цветов – 3 бит. Red=0; 1. Green=0; 1. Blue=0; 1. RGB= 2 3 = 8.

    Цветной режим, 16 цветов – 4 бит; i = 0; 1 – интенсивность (яркий, тусклый); i RGB = 2∙2 3 = 2 4 = 16 (таблица 6.2).

    Цветной режим, 256 цветов – 8 бит; i = 00000 ,…, 11111 = = 2 5 = 32 градации интенсивности; i RGB = 2 5 * 2 3 = 2 8 = 256.

    Или по 2 градации интенсивности и по 2 цвета RGB
    i 2 R 2 G 2 B 2 = 4*4*4*4 =2 8 = 256 (таблица 6.3).

    Цветной режим, 16 млн. цветов – 3 байта = 24 бит
    (рисунок 6.5, б).

    Таблица 6.2 – Коды для формирования 16 цветов

    Цвет i RGB
    Black (черный)
    Blue (синий)
    Green (зеленый)
    Cyan (сине–зеленый)
    Red (красный)
    Magenta (фиолетовый)
    Brown (коричневый)
    Light Gray (светло–серый)
    Dark Gray (темно–серый)
    Light Blue (ярко–синий)
    Light Green (ярко–зеленый)
    Light Cyan (бирюзовый)
    Light Red (ярко–красный)
    Light Magenta (лиловый)
    Yellow (желтый)
    White (белый)

    Таблица 6.3 – Коды для формирования 256 цветов

    i R G B
    ∙∙∙ ∙∙∙ ∙∙∙ ∙∙∙

    24-битное кодирование цвета часто называют режимом истинного цвета (англ. True Color – истинный цвет). Для вычисления объема рисунка в байтах при таком кодировании нужно определить общее количество пикселей (перемножить ширину и высоту) и умножить результат на 3, так как цвет каждого пикселя кодируется тремя байтами. Например, рисунок размером 20×30 пикселей, закодированный в режиме истинного цвета, будет занимать 20×30×3 = 1800 байт.

    Кроме режима истинного цвета используется также 16-битное кодирование (англ. High Color – «высокий» цвет), когда на красную и синюю составляющую отводится по пять бит, а на зеленую, к которой человеческий глаз более чувствителен – шесть бит (итого 16 бит). В режиме High Color можно закодировать 2 16 = 65536 различных цветов. В мобильных телефонах 12-битное кодирование цвета (4 бита на составляющую, 2 12 = 4096 цветов).

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

    Таблица 6.4 – Глубина цвета и количество цветов

    Как правило, чем меньше цветов используется, тем больше будет искажаться цветное изображение. Таким образом, при кодировании цвета тоже есть неизбежная потеря информации, которая «добавляется» к потерям, вызванным дискретизацией. Дискретизация возникает при замене рисунка набором пикселей-квадратиков. Однако при увеличении количества используемых цветов одновременно растет объем файла. Например, в режиме истинного цвета файл получится в два раза больше, чем при
    12-битном кодировании.

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

    Цветовая палитра – это таблица, в которой каждому цвету, заданному в виде составляющих в модели RGB, сопоставляется числовой код.

    Размер палитры – это количество байт, указывающие цвета палитры.

    Например, черно-белая палитра, всего 2 цвета (рисунок 6.3):

    ü черный: RGB-код (0,0,0); двоичный код 0 2 ;

    ü белый: RGB-код (255,255,255); двоичный код 1 2 .

    Здесь размер палитры 6 байт.

    Кодирование изображения флага, четыре цвета (рисунок 6.4):

    ü черный: RGB-код (0,0,0); двоичный код 00 2 ;

    ü красный: RGB-код (255,0,0); двоичный код 01 2 ;

    ü синий: RGB-код (0,0,255); двоичный код 10 2 ;

    ü белый: RGB-код (255,255,255); двоичный код 11 2 .

    Здесь размер палитры 12 байт.

    Ниже приведены данные по некоторым вариантам кодирования с палитрой (Таблица 6.5).

    Таблица 6.5 – Варианты кодирования с палитрой

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

    Таблица 6.6 – Объем видеопамяти

    6.2.2 Кодирование цвета на бумаге

    RGB-кодирование лучше всего описывает цвет, который излучается некоторым устройством, например, монитором или экраном ноутбука. Когда же мы смотрим на изображение, отпечатанное на бумаге, ситуация совершенно другая. Мы видим не прямые лучи источника, попадающие в глаз, а отраженные от поверхности. «Белый свет» от какого-то источника (солнце, лампочка), содержащий волны во всем видимом диапазоне, попадает на бумагу, на которой нанесена краска. Краска поглощает часть лучей (их энергия уходит на нагрев бумаги), а оставшиеся отраженные цвета попадают в глаз, это и есть тот цвет, который мы видим.

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

    Отметим синонимы цветов: фиолетовый = пурпурный.

    Ниже показаны соотношения падающего и отраженного цветов (Таблица 6.7).

    Таблица 6.7 – Соотношения падающего и отраженного цветов

    На трех дополнительных цветах – голубом, фиолетовом и желтом – строится цветовая модель CMY (англ. Cyan – голубой, Magenta – фиолетовый, Yellow – желтый), которая применяется для вывода на печать (рисунок 6.6,б). Таким образом, модели цветов RGB и CMY - обратимы (рисунок 6.7). Рисунок в цвете показан в приложении.

    Рисунок 6.6 – Модели цветов;

    а) модель RGB (для монитора); б) модельCMY (для принтера)

    Рисунок 6.7 – Обратимые модели цветов

    Значения C=M=Y=0 говорят о том, что на белую бумагу
    не наносится никакая краска, поэтому все лучи отражаются, это белый цвет.

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

    Чтобы решить эту проблему, в набор красок добавляют черную, это так называемый ключевой цвет (англ. Keycolor ), поэтому получившуюся модель обозначают CMYK .

    Кроме цветовых моделей RGB и CMY (CMYK), существуют и другие. Наиболее интересная из них – модель HSB (англ. Hue – тон, оттенок; Saturation – насыщенность, Brightness – яркость), которая ближе всего к естественному восприятию человека. Тон – это, например, синий, зеленый, желтый. Насыщенность – это чистота тона, при уменьшении насыщенности до нуля получается серый цвет. Яркость определяет, насколько цвет светлый или темный. Любой цвет при снижении яркости до нуля превращается в черный.

    6.3 Особенности растрового кодирования

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

    Растровое кодирование имеет достоинства :

    ü универсальный метод (можно закодировать любое изображение);

    ü единственный метод для кодирования и обработки размытых изображений, не имеющих четких границ, например, фотографий;

    и недостатки :

    ü при дискретизации всегда есть потеря информации;

    ü при изменении размеров изображения искажается цвет и форма объектов на рисунке, поскольку при увеличении размеров надо как-то восстановить недостающие пиксели, а при уменьшении – заменить несколько пикселей одним;

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

    Существует много разных форматов растровых рисунков. Чаще всего встречаются следующие расширения в именах файлов:

    .bmp (англ. bitmap – битовая карта) – стандартный формат в операционной системе Windows; поддерживает кодирование с палитрой и в режиме истинного цвета;

    .jpg или.jpeg (англ. Joint Photographic Experts Group – объединенная группа фотографов–экспертов) – формат, разработанный специально для кодирования фотографий; поддерживает только режим истинного цвета; для уменьшения объема файла используется сильное сжатие, при котором изображение немного искажается, поэтому не рекомендуется использовать его для рисунков с четкими границами;

    .gif (англ. Graphics Interchange Format – формат для обмена изображениями) – формат, поддерживающий только кодирование с палитрой (от 2 до 256 цветов); в отличие от предыдущих форматов, части рисунка могут быть прозрачными; в современном варианте можно хранить анимированные изображения; используется сжатие без потерь, то есть при сжатии изображение не искажается;

    .png (англ. Portable Network Graphics – переносимые сетевые изображения) – формат, поддерживающий как режим истинного цвета, так и кодирование с палитрой; части изображения могут быть прозрачными и даже полупрозрачными (32–битное кодирование RGBA, где четвертый байт задает прозрачность); изображение сжимается без искажения; анимация не поддерживается.

    6.4 Замечание о кодировании файла

    Ранее было сказано, что все виды информации хранятся в памяти компьютера в виде двоичных кодов, то есть цепочек из нулей и единиц. Получив такую цепочку, абсолютно невозможно сказать, что это – текст, рисунок, звук или видео. Например, код 11001000 2 может обозначать число 200, букву «И», одну из составляющих цвета пикселя в режиме истинного цвета, номер цвета в палитре для рисунка с палитрой 256 цветов, цвета 8 пикселей черно–белого рисунка и т. п. Как же компьютер разбирается в двоичных данных? В первую очередь нужно ориентироваться на расширение имени файла. Например, чаще всего файлы с расширением.txt содержат текст, а файлы с расширениями.bmp, .gif, .jpg, .png – рисунки.

    Однако расширение файла можно менять как угодно. Например, можно сделать так, что текстовый файл будет иметь расширение.bmp, а рисунок в формате JPEG – расширение.txt. Поэтому в начало всех файлов специальных форматов (кроме простого текста, .txt) записывается заголовок, по которому можно «узнать» тип файла и его характеристики. Например, файлы в формате BMP начинаются с символов «BM», а файлы в формате GIF – с символов «GIF». Кроме того, в заголовке указывается размер рисунка и его характеристики, например, количество цветов в палитре, способ сжатия и т.п. Используя эту информацию, программа декодирует (расшифровывает) основную часть файла и выводит его на экран.

    6.5 Вопросы и задания

    1. Какие два принципа кодирования рисунков используются в компьютерной технике?

    2. Почему не удается придумать единый метод кодирования рисунков, пригодный во всех ситуациях?

    3. В чем состоит идея растрового кодирования?
    Что такое растр?

    4. В чем состоит идея векторного кодирования? Что такое графический примитив?

    5. Что такое пиксель? Как образовалось такое слово?

    6. Что такое дискретизация рисунка? Почему она необходима?

    7. Что теряется при дискретизации рисунка?

    8. Что такое разрешение (экрана, принтера)? В каких единицах оно измеряется?

    9. Что такое глубина цвета? В каких единицах она
    измеряется?

    10. Что такое режим истинного цвета (True Color)?

    11. Что такое режим «высокого» цвета (High Color)?

    12. Что такое кодирование с палитрой? В чем его принципиальное отличие от режима истинного цвета?

    13. В чем состоят достоинства и недостатки растрового кодирования?

    14. В чем состоят достоинства и недостатки векторного кодирования?

    15. В каких форматах целесообразно сохранять фотографии?

    16. В каких форматах целесообразно сохранять чертежи, рисунки с четкими границами?

    17. Как запишется код следующего рисунка? Черно-белое растровое изображение кодируется построчно, начиная с левого верхнего угла и заканчивается в правом нижнем углу. При кодировании 0 обозначает черный цвет, а 1 – белый.

    Решение. Запись кода изображения будет следующая:

    010100 011111 101010 011101 = 010100011111101010011101 2 =

    24375235 8 = 51FAD 16 .


    Список использованных источников

    1. Андреева Е. В. Математические основы информатики: учеб. пособие / Е. В. Андреева, Л. Л. Босова, И. Н. Фалина. – М. : БИНОМ. Лаборатория знаний, 2007.

    2. Поспелов Д. А. Арифметические основы вычислительных машин дискретного действия / Д. А. Поспелов. – М. : Энергия, 1970.

    3. Савельев А. Я. Арифметические и логические основы цифровых автоматов / А. Я. Савельев. – М. : Высшая школа, 1980.

    4. Поздняков С. Н. Дискретная математика: учебник
    / С. Н. Поздняков, С. В. Рыбин. – М. : Академия, 2008.

    5. Хартли Р. В. Л. Передача информации / Р. В. Л. Хартли
    // Теория информации и ее приложения. – М. : Физматгиз, 1959.

    6. Шеннон К. Математическая теория связи. (Shannon C.E. A Matematical Theory of Communication. Bell System Technical Journal. – 1948. – c. 379-423, 623-656).

    7. Юшкевич А. П. История математики в средние века
    / А. П. Юшкевич. – М. : Физматгиз, 1961.

    Похожие статьи