для кодирования четырех цветов достаточно
Урок 24
Кодирование изображения. Работа с растровым графическим редактором
§20. Как кодируется изображение
Основные темы параграфа:
— кодирование цветов пикселей;
— объем видеопамяти.
Изучаемые вопросы:
— Принцип формирования цвета пикселя на экране.
— Связь между количеством цветов в палитре и количеством бит для кодирования одного пикселя (формула).
— Формула определения объёма видеопамяти для хранения изображения заданного размера.
Кодирование цветов пикселей
Информация о состоянии каждого пикселя хранится в закодированном виде в памяти компьютера. Код может быть однобитовым, двухбитовым и т. д.
Код пикселя — это информация о цвете пикселя.
Для получения черно-белого изображения (без полутонов) используются два состояния пикселя: светится — не светится (белый — черный). Тогда для кодирования цвета пикселя достаточно одного бита памяти:
1 — белый;
0 — черный.
Количество цветов, в которые может быть окрашен пиксель на цветном дисплее, больше двух. Поэтому одного бита на пиксель недостаточно.
Для кодирования четырехцветного изображения требуется двухбитовый код, поскольку с помощью двух битов можно выразить четыре различных значения (отобразить четыре различных состояния). Может использоваться, например, такой вариант кодирования цветов:
00 — черный;
10 — зеленый;
01 — красный;
11 — коричневый.
Из трех базовых цветов — красного, зеленого, синего — можно получить восемь комбинаций трехбитового кода:
В этом коде каждый базовый цвет обозначается его первой буквой (к — красный, з — зеленый, с — синий). Черточка означает отсутствие цвета.
Следовательно, для кодирования восьмицветного изображения требуются три бита памяти на один видеопиксель. Если наличие базового цвета обозначить единицей, а отсутствие — нулем, то получается таблица кодировки восьмицветной палитры (табл. 4.1).
Таблица 4.1. Двоичный код восьмицветной палитры
Из сказанного, казалось бы, следует вывод: с помощью трех базовых цветов нельзя получить палитру, содержащую больше восьми цветов. Однако на экранах современных компьютеров получают цветные изображения, составленные из сотен, тысяч и даже миллионов различных оттенков. Как это достигается?
Если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, дающих разные оттенки, увеличивается.
Шестнадцатицветная палитра получается при использовании четырехразрядной кодировки пикселя: к трем битам базовых цветов добавляется один бит интенсивности. Этот бит управляет яркостью всех трех цветов одновременно (интенсивностью трех электронных пучков) (табл. 4.2).
Таблица 4.2. Двоичный код шестнадцатицветной палитры.
«и» — бит интенсивности
Большее количество цветов получается при раздельном управлении интенсивностью базовых цветов. Причем интенсивность может иметь более двух уровней, если для кодирования интенсивности каждого из базовых цветов выделять больше одного бита.
Из сказанного можно вывести правило.
2 1 = 2, 2 2 = 4, 2 3 = 8, 2 4 = 16 и т. д. Для получения цветовой гаммы из 256 цветов требуется 8 битов = 1 байт на каждый пиксель, так как 2 8 = 256.
Величина b называется битовой глубиной цвета.
Объем видеопамяти
Объем необходимой видеопамяти определяется размером графической сетки дисплея и количеством цветов. Минимальный объем видеопамяти должен быть таким, чтобы в него помещался один кадр (одна страница) изображения. Например, для сетки 640 х 480 и черно-белого изображения минимальный объем видеопамяти должен быть таким:
640 • 480 • 1 бит = 307 200 битов = 38 400 байтов.
Это составляет 37,5 Кбайт.
Для работы с 256-цветной палитрой на мониторе с разрешением 1024 х 768 минимальный объем видеопамяти составляет 768 Кб.
На современных высококачественных дисплеях используется палитра более чем из 16 миллионов цветов (b = 24 бита). Требуемый объем видеопамяти в этом случае — несколько мегабайтов.
На самом деле видеопамять хранит одновременно не одно изображение экрана, а множество. Это способствует быстрой смене кадров. Поэтому размер видеопамяти на современных ПК составляет от сотен мегабайтов до нескольких гигабайтов.
Коротко о главном
Информация в видеопамяти — это двоичные коды, обозначающие цвета пикселей на экране.
Для кодирования двух цветов достаточно 1 бита на пиксель; четырех цветов — 2 битов; восьми цветов — 3 битов; шестнадцати цветов — 4 битов и т. д. Количество цветов К и размер кода в битах (битовая глубина цвета) b связаны формулой К = 2b.
Из трех базовых цветов можно получить 8 различных цветов. Большее число цветов получается путем управления интенсивностью базовых цветов.
Минимально необходимый объем видеопамяти зависит от размера сетки пикселей и от количества цветов. Обычно в видеопамяти помещается несколько страниц (кадров) изображения одновременно.
Вопросы и задания
1. Какая информация содержится в видеопамяти?
2. Сколько битов видеопамяти на один пиксель требуется для хранения двухцветного; четырехцветного; восьмицветного; шестнадцатицветного изображения?
3. Какие цвета получаются из смешения красного и синего, красного и зеленого, зеленого и синего цветов?
4. Сколько цветов будет содержать палитра, если каждый базовый цвет кодировать двумя битами?
5. Придумайте способ кодирования цветов для 256-цветной палитры.
6. Пусть видеопамять компьютера имеет объем 512 Кбайт. Размер графической сетки — 640 х 480. Сколько страниц экрана одновременно разместится в видеопамяти при палитре из 16 цветов; 256 цветов?
Электронное приложение к уроку
Вернуться к материалам урока | ||
Презентации, плакаты, текстовые файлы | Ресурсы ЕК ЦОР | |
Видео к уроку |
Cкачать материалы урока
Кодирование для чайников, ч.1
Не являясь специалистом в обозначенной области я, тем не менее, прочитал много специализированной литературы для знакомства с предметом и прорываясь через тернии к звёздам набил, на начальных этапах, немало шишек. При всём изобилии информации мне не удалось найти простые статьи о кодировании как таковом, вне рамок специальной литературы (так сказать без формул и с картинками).
Статья, в первой части, является ликбезом по кодированию как таковому с примерами манипуляций с битовыми кодами, а во второй я бы хотел затронуть простейшие способы кодирования изображений.
0. Начало
Давайте рассмотрим некоторые более подробно.
1.1 Речь, мимика, жесты
1.2 Чередующиеся сигналы
В примитивном виде кодирование чередующимися сигналами используется человечеством очень давно. В предыдущем разделе мы сказали про дым и огонь. Если между наблюдателем и источником огня ставить и убирать препятствие, то наблюдателю будет казаться, что он видит чередующиеся сигналы «включено/выключено». Меняя частоту таких включений мы можем выработать последовательность кодов, которая будет однозначно трактоваться принимающей стороной.
1.3 Контекст
2. Кодирование текста
Текст в компьютере является частью 256 символов, для каждого отводится один байт и в качестве кода могут быть использованы значения от 0 до 255. Так как данные в ПК представлены в двоичной системе счисления, то один байт (в значении ноль) равен записи 00000000, а 255 как 11111111. Чтение такого представления числа происходит справа налево, то есть один будет записано как 00000001.
Итак, символов английского алфавита 26 для верхнего и 26 для нижнего регистра, 10 цифр. Так же есть знаки препинания и другие символы, но для экспериментов мы будем использовать только прописные буквы (верхний регистр) и пробел.
Тестовая фраза «ЕХАЛ ГРЕКА ЧЕРЕЗ РЕКУ ВИДИТ ГРЕКА В РЕЧКЕ РАК СУНУЛ ГРЕКА РУКУ В РЕКУ РАК ЗА РУКУ ГРЕКУ ЦАП».
2.1 Блочное кодирование
Информация в ПК уже представлена в виде блоков по 8 бит, но мы, зная контекст, попробуем представить её в виде блоков меньшего размера. Для этого нам нужно собрать информацию о представленных символах и, на будущее, сразу подсчитаем частоту использования каждого символа:
Для кодирования четырех цветов достаточно
Электронные облака
Лекции
Рабочие материалы
Тесты по темам
Template tips
Задачи
Логика вычислительной техники и программирования
Лекция «Технология кодирования и измерения количества информации»
Качество и количество информации
Анализируя информацию, мы сталкиваемся с необходимостью определения качества и определения количества полученной информации. Определить качество информации чрезвычайно сложно, а часто и вообще невозможно. Какие-либо сведения, например исторические, могут десятилетиями считаться ненужными и вдруг их ценность может резко возрасти.
Вместе с тем определить количество информации не только можно, но и нужно. Это необходимо для того, чтобы сравнить друг с другом различные массивы информации, а также определить, какие размеры должны иметь материальные объекты (бумага, магнитные носители и т.д.), хранящие эту информацию.
Далее, говоря об измерении информации, мы будем иметь в виду определение ее количества.
Единая форма кодирования и измерения количества информации
Как измерять количество информации? Для этого нужно иметь универсальный способ, позволяющий представить любую ее форму (текстовую, графическую и др.) в едином стандартном виде.
За такой способ принята так называемая двоичная форма представления информации. Она заключается в записи любой информации в виде последовательности только двух символов: 0 и 1 (то есть в виде двоичных чисел) и с технической точки зрения наиболее проста и удобна (есть ток/нет тока, намагничено/размагничено, высокое напряжение/низкое напряжение).
Рассмотрим сначала одноразрядное двоичное число – бит. Оно может принимать два различных значения: 0 и 1
Если с помощью одноразрядного числа попробовать закодировать какую-либо информацию (например, ответ на вопрос «идет ли дождь?»), то мы успешно справимся с поставленной задачей, поскольку количество различных вариантов кодирования в данном случае равно двум (0-не идет, 1-идет).
К = 2 n °, где n – число разрядов двоичного числа.
В общем случае, верно, что чем больше различных видов однотипной информации требуется закодировать, тем больше разрядов двоичного числа (бит) требуется.
Единицы измерения информации
Таким образом, можно утверждать: информацию можно измерять в битах, то есть в количестве двоичных разрядов. Бит является наименьшей единицей измерения количества информации.
В 100 Мб можно уместить:
Страниц текста | 50000 |
Цветных слайдов высочайшего качества | 150 |
Аудиозапись | 1,5 часа |
Музыкальный фрагмент качества CD-стерео | 10 минут |
Фильм высокого качества записи | 15 секунд |
Протоколы операций по банковским счетам | За 1000 лет |
Представление текстовой информации в компьютере. Кодовые таблицы
Кодирование текстового сообщения
Каждому символу ставится в соответствие двоичное число, причем таким образом, что чем дальше символ расположен от начала алфавита, тем больше значение двоичного числа, которое является кодом данного символа. Сколько разрядов (бит) требуется, чтобы закодировать все буквы, знаки препинания, математические и специальные символы? Легко подсчитать:
Находим, что для кодирования всех символов необходимо 8-разрядное двоичное число. Каждому символу ставится в соответствие свое уникальное значение восьмиразрядного двоичного числа. Так, если 10000000 – код буквы А, а 10001100 – код буквы М, то слово «МАМА» кодируется последовательностью из 32-х двоичных цифр (бит):
10000000 10001100 10000000 10001100, именно в такой форме данное текстовое сообщение и будет закодировано компьютером с использованием ровно 32-х бит.
Таблица кодирования ASCII
Как мы уже выяснили, традиционно для кодирования одного символа используется 8 бит. И, когда люди определились с количеством бит, им осталось договориться о том, каким кодом кодировать тот или иной символ, чтобы не получилось путаницы, т.е. необходимо было выработать стандарт – все коды символов сохранить в специальной таблице кодов. В первые годы развития вычислительной техники таких стандартов не существовало, а сейчас наоборот, их стало очень много, но они противоречивы. Первыми решили эти проблемы в США, в Институте стандартизации. Этот институт ввел в действие таблицу кодов ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США).
Рассмотрим таблицу кодов ASCII:
Таблица ASCII разделена на две части. Первая – стандартная – содержит коды от 0 до 127. Вторая – расширенная – содержит символы с кодами от 128 до 255.
Первые 32 кода отданы производителям аппаратных средств и называются они управляющие, т.к. эти коды управляют выводом данных. Им не соответствуют никакие символы.
Коды с 32 по 127 соответствуют символам английского алфавита, знакам препинания, цифрам, арифметическим действиям и некоторым вспомогательным символам.
Коды расширенной части таблицы ASCII отданы под символы национальных алфавитов, символы псевдографики и научные символы.
Все буквы расположены в них по алфавиту, а цифры – по возрастанию. Этот принцип последовательного кодирования позволяет определить код символа, не заглядывая в таблицу.
Коды цифр берутся из этой таблицы только при вводе и выводе и если они используются в тексте. Если же они участвуют в вычислениях, то переводятся в двоичную систему счисления.
Альтернативные системы кодирования кириллицы
Таблица Unicode разделена на несколько областей. Область с кодами от 0000 до 007F содержит символы набора Latin 1 (младшие байты соответствуют кодировке ISO 8859-1). Далее идут области, в которых расположены знаки различных письменностей, а также знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем (29000). 6000 кодовых комбинаций оставлено программистам.
Символам кириллицы выделены коды в диапазоне от 0400 до 0451.
Использование Unicode значительно упрощает создание многоязычных документов, публикаций и программных приложений.
Решение задач
1. Закодируйте с помощью ASCII слово: МИР
Решение: открываем таблицу ASCII,
по таблице ищем букву М, её код 204
по таблице ищем букву И, её код 200
по таблице ищем букву Р, её код 208
Ответ: код слова МИР – 204 200 208
2. Декодируйте тексты, заданные десятичным кодом: 192 203 195 206 208 200 210 204
Решение: открываем таблицу ASCII, в таблице ищем коды и соответствующую им букву:
192 – А; 203 – Л; 195 – Г; 206 – О; 208 – Р; 200 – И; 210 – Т; 204 – М, т. е. получили слово: АЛГОРИТМ
Ответ: 192 203 195 206 208 200 210 204 – АЛГОРТИМ
3. Десятичный код буквы «I» в таблице ASCII равен 73. Не пользуясь таблицей, составьте последовательность кодов, соответствующих слову MIR
Решение: Зная, что все буквы расположены по алфавиту, а цифры по возрастанию делаем следующие выводы: I – 73, J – 74, K – 75, L – 76, M – 77, N – 78, O – 79, P – 80, Q – 81, R – 82
Ответ: MIR – 77 73 82
4. Каков информационный объём текста, содержащего слово МИР:
а) в 16-битовой кодировке; б) в 8-битовой кодировке
Решение:
Зная, что в 8-битовой кодировке 1 символ – 8 бит делаем следующие выводы:
МИР – 3 символа = 24 бит (3*8)
Зная, что в 16-битовой кодировке 1 символ – 16 бит делаем следующие выводы:
МИР – 3 символа = 48 бит (3*16)
Ответ: а) 48 бит; б) 24 бит.
5. Текст занимает полных 2 страницы. На каждой странице размещается 45 строк по 45 символов. Определить объём оперативной памяти, который займёт этот текст.
Кодирование графической информации
Общие понятия о графической информации
Графическая информация представляет собой изображение, сформированное из определенного числа точек – пикселей. Добавим к этой информации новые сведения. Процесс разбиения изображения на отдельные маленькие фрагменты (точки) называется пространственной дискретизацией. Ее можно сравнить с построением рисунка из мозаики. При этом каждой мозаике (точке) присваивается код цвета.
От количества точек зависит качество изображения. Оно тем выше, чем меньше размер точки и соответственно большее их количество составляет изображение. Такое количество точек называется разрешающей способностью и обычно существуют четыре основных значений этого параметра: 640×480, 800×600, 1024×768, 1280×1024.
Качество изображения зависит также от количества цветов, т.е. от количества возможных состояний точек изображения, т.к. при этом каждая точка несет большее количество информации. Используемый набор цветов образует палитру цветов.
Кодирование цвета
Рассмотрим, каким образом происходит кодирование цвета точек. Для кодирования цвета применяется принцип разложения цвета на составляющие. Их три: красный цвет (Red, R), синий (Blue, В) и зелёный (Green, G). Смешивая эти составляющие, можно получать различные оттенки и цвета – от белого до черного.
Сколько бит необходимо выделить для каждой составляющей, чтобы при кодировании изображения его качество было наилучшим?
Если рисунок черно-белый, то общепринятым на сегодняшний день считается представление его в виде комбинации точек с 256 градациями серого, т.е. для кодирования точки достаточно 1 байта.
Если же изображение цветное, то с помощью 1 байта можно также закодировать 256 разных оттенков цветов. Этого достаточно для рисования изображений типа тех, что мы видим в мультфильмах. Для изображений же живой природы этого недостаточно. Если увеличить количество байт до двух (16 бит), то цветов станет в два раза больше, т.е. 65536. Это уже похоже на то, что мы видим на фотографиях и на картинках в журналах, но все равно хуже, чем в живой природе. Увеличим еще количество байтов до трех (24 бита). В этом случае можно закодировать 16,5 миллионов различных цветов. Именно такой режим позволяет работать с изображениями наилучшего качества.
Количество бит, необходимое для кодирования цвета точки называется глубиной цвета. Наиболее распространенными значениями глубины цвета являются 4, 8, 16 и 24 бита на точку.
Решение задач
1. Какой объём видеопамяти необходим для хранения четырёх страниц изображения при условии, что разрешающая способность дисплея равна 640Х480 точек, а используемых цветов – 32?
Теперь все параметры нам известны, находим объём:
V = 640*480*5*4 =6144000 бит = 750 Кбайт (т.к. в 1 байте – 8 бит и в 1 Кбайте – 1024 байт)
Ответ: 750 Кбайт
2. 256-цветный рисунок содержит 1 Кбайт информации. Из скольки точек он состоит?
Переведём известный объём в биты: 1Кбайт = 1024 байт*8бит = 8192 бит
Зная глубину и объём находим количество точек на изображении: 8192:8 = 1024 точек
Кодирование звуковой информации
Оцифровка звука
Звук представляет собой звуковую волну с непрерывно меняющейся амплитудой и частотой. Для человека звук тем громче, чем больше амплитуда сигнала, и тем выше тон, чем больше частота сигнала. Непрерывный сигнал не несет в себе информации, поэтому он должен быть превращен в последовательность двоичных нулей и единиц – двоичный (цифровой) код.
Оцифровку звука выполняет специальное устройство на звуковой плате. Называется оно аналого-цифровой преобразователь (АЦП). Обратный процесс – воспроизведение закодированного звука производится с помощью цифро-аналогового преобразователя (ЦАП).
Весь процесс кодирования и декодирования представить в виде следующей схемы:
Схема кодирования звука:
В процессе кодирования непрерывного звукового сигнала производится дискретизация по времени, или, как говорят, «временная дискретизация». Звуковая волна разбивается на отдельные маленькие временные участки и для каждого участка устанавливается определенная величина амплитуд. Данный метод называется импульсно-амплитудной модуляцией РСМ Code Modulation).
Таким образом, гладкая кривая заменяется на последовательность «ступенек».. Каждой «ступеньке» присваивается значение громкости звука (1, 2, 3). Чем больше «ступенек», тем большее количество уровней громкости выделено в процессе кодирования, и тем большее количество информации будет нести значение каждого уровня и более качественным будет звучание.
Характеристики оцифрованного звука
Качество звука зависит от двух характеристик – глубины кодирования и частоты дискретизации. Рассмотрим эти характеристики.
Современные звуковые карты обеспечивают 16-битную глубину кодирования звука, и тогда общее количество различных уровней будет: N=2 16 = 65536.
Частота дискретизации (М) – это количество измерений уровня звукового сигнала в единицу времени. Эта характеристика показывает качество звучания и точность процедуры двоичного кодирования. Измеряется в герцах (Гц). Одно измерение за одну секунду соответствует частоте 1 Гц, 1000 измерений за одну секунду – 1 килогерц (кГц). Частота дискретизации звукового сигнала может принимать значения от 8 до 48 кГц. При частоте 8 кГц качество дискретизированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 кГц – качеству звучания аудио-CD.
Высокое качество звучания достигается при частоте дискретизации 44,1 кГц и глубины кодирования звука, равной 16 бит. Для мрачного, приглушенного звука характерны следующие параметры: частота дискретизации – 11 кГц, глубина кодирования – 8 бит.
Глубина кодирования | Частота дискретизации | |
Радиотрансляция | 8 бит | До 8 кГц |
Среднее качество | 8 бит или 16 бит | 8-48 кГц |
Звучание CD-диска | 16 бит | До 48 кГц |
Для того, чтобы найти объем звуковой информации, необходимо воспользоваться следующей формулой:
V= M*I*t,
где М — частота дискретизации (в Гц),
I — глубина кодирования (в битах),
t — время звучания (в секундах).
Решение задач
1. Определить объём памяти для хранения моноаудиофайла, время звучания которого составляет пять минут при частоте дискретизации 44 кГц и глубине кодирования 16 бит.
Решение: Воспользуемся формулой: V = M*I*t
В нашем случае М = 44 кГц = 44000 Гц
I = 16 бит
t = 5 минут,
подставляем в формулу и получаем:
V = 44000*16*5 = 3520000 бит = 430 Кбайт (примерно)