- •Введение
- •1. Предмет информатики
- •1.1 Роль информации в современном обществе
- •1.2 Информационные барьеры в истории человечества
- •1.3 Предметная область информатики
- •2. Теория информации
- •2.1 Исходные понятия теории информации
- •2.2 Формы представления информации
- •2.3 Преобразование сообщений
- •3. Понятие информации в теории Шеннона
- •3.1 Понятие энтропии
- •3.2 Условная энтропия
- •3.3 Статистическое определение информации
- •3.4 Энтропия и информация
- •3.5 Информация и алфавит
- •4. Кодирование символьной информации
- •4.1 Постановка задачи кодирования. Первая теорема Шеннона
- •4.2 Алфавитное неравномерное двоичное кодирование сигналами равной длительности
- •4.2.1 Неравномерный код с разделителем
- •4.2.2 Префиксное неравномерное кодирование
- •4.3 Равномерное алфавитное двоичное кодирование. Байтовый код
- •4.4 Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •4.5 Блочное двоичное кодирование
- •5. Кодирование и представление чисел в компьютере
- •5.1 Системы счисления
- •5.2 Перевод чисел из одной системы счисления в другую
- •5.3 Перевод чисел между системами счисления с основанием 2k
- •5.4 Формы представления вещественных чисел
- •5.5 Кодирование целых чисел в компьютере
- •5.5.1 Кодирование в компьютере целых чисел без знака
- •5.5.2 Кодирование в компьютере целых чисел со знаком
- •5.6 Кодирование в компьютере вещественных чисел
- •5.7 Двоично-десятичные коды
- •5.7.1 Код (8421) – код прямого замещения
- •6. Обработка чисел в компьютере
- •6.1 Выполнение операций сложения
- •6.2 Сложение нормализованных чисел
- •6.3 Выполнение операции умножения
- •6.3.1 Общий алгоритм умножения
- •6.3.2 Особенности умножения в форме с плавающей запятой
- •6.4 Деление чисел
- •7. Кодирование графической и звуковой информации
- •7.1 Представление изображений
- •7.2 Представление звука
- •Список литературы
- •Родина Наталья Васильевна Информатика
- •Часть 1
- •107846, Москва, ул.Стромынка, 20
7. Кодирование графической и звуковой информации
7.1 Представление изображений
По сравнению с методами кодирования/хранения символов и чисел способы представления графической информации находятся в начале своего развития и не настолько стандартизированы.
В соответствии с методами, применяемыми для их представления, все изображения можно разделить на 2 категории: растровые (bitmap techniques) и векторные (vector techniques).
Растровые изображения представляют собой набор точек, которые называются пикселами (pixel). Самое простое представление имеет вид длинной последовательности битов, каждый из которых равен 0 или 1 (белый/черный) цвет пиксела. Цветные изображения намного сложнее, так как каждый пиксел должен быть представлен комбинацией битов, обозначающей его цвет.
Для отображения цвета многие внешние устройства компьютера (факсы, видеокамеры, сканеры) представляют цвет пиксела в виде комбинации трех составляющих: красный (Red), зеленый (Green) и синий (Blue) – RGB. Этот же подход с использованием 3-х составляющих цвета используется также в мониторе ПК.
Для представления интенсивности каждого цвета используется 1 байт. В этом случае для представления целого пиксела требуется 3 байта.
Формат, в котором одному пикселу соответствует 3 байта, подразумевает, что для изображения 1024720 точек потребуется несколько мегабайтов памяти (1024*720*3 = 2 211 840 байт 2.2МБ). Для того чтобы уменьшить требования к памяти, разработаны различные схемы сжатия.
Одна из них – GIF (Graphic Interchange Format). Этот стандарт сжатия решает проблему путем сокращения количества цветов, которые могут быть приписаны пикселу, до 256. Это означает, что значение каждого пиксела можно представить с помощью 1 байта, а не трех.
Каждому из 256 значений при помощи таблицы, которая называется палитрой, ставится в соответствие определенное сочетание RGB цветов. Изменяя палитру, можно менять цвета изображения.
Одному из цветов в формате GIF обычно присваивается значение «прозрачный», то есть через любой участок изображения, которому присвоен этот цвет, виден фон.
Вследствие этой возможности и относительной простоты формата GIF он используется в компьютерных играх, где многочисленные изображения перемещаются по экрану.
Другой стандарт сжатия – JPEG (Joint Photographic Experts Group) – очень эффективен для представления цветных фотографий.
В действительности стандарт JPEG включает в себя несколько способов представления, у каждого из которых своя задача. Например, в ситуациях, когда требуется предельная точность, формат JPEG предоставляет метод «без потерь», при котором не происходит потери информации во время кодирования изображения. В соответствии с этим алгоритмом хранится различие между соседними пикселами, а не интенсивность пикселов. Такой подход основывается на предположении, что в большинстве случаев различие между соседними пикселами можно представить более коротким двоичным кодом, чем их значение (относительное кодирование). Различия записываются при помощи кода переменной длины.
Но применение этого метода не дает изображений, размер которых можно легко менять, и поэтому используется редко. Вместо него используется базисный стандарт JPEG, который сокращает размер кода изображения, используя для определения состояния пикселов 2 параметра: яркость и цвет.
Причина такого разделения в том, что человеческий глаз более чувствителен к изменению яркости, чем к изменению цвета (например, 2 синих фона: на одном яркая синяя точка, на другом – зеленая точка той же яркости, что и фон. Человеческий глаз быстрее обнаружит яркую синюю точку, чем зеленую). Базисный формат использует это свойство человеческого глаза и кодирует каждую компоненту яркости, но при этом изображение разделяется на блоки размером 4 пиксела, и записывается только средний цвет каждого блока. Следовательно, в окончательном представлении сохраняются все быстрые изменения яркости, но при этом стираются быстрые изменения цвета.
Дополнительное пространство экономится при записи изменений яркости и цвета, а не их фактических значений. Степень различия соседних пикселов можно представить более коротким двоичным кодом, чем тот, который потребовался бы для записи фактических значений цвета. Например, для последовательности кодов (970 980 500) изменение значение может быть закодировано так: (970(база), +10, -320).
При помощи стандарта JPEG можно кодировать высококачественные цветные изображения, используя двоичный код, который занимает примерно в 20 раз меньше памяти, чем код формата «три байта на пиксел».
Растровый формат представления изображений имеет один недостаток, а именно – размер изображения не может быть произвольно изменен. В сущности, единственный способ увеличить изображение – увеличить размер пикселов. Но это приводит к «зернистому» искажению изображения.
Векторный формат представления изображений преодолевает эту проблему. Векторное изображение представляет собой набор линий и дуг. Такое описание заставляет устройство само рисовать изображение, а не воспроизводить комбинацию пикселов. Различные шрифты, доступные в современных принтерах и мониторах, часто закодированы именно таким способом, для того чтобы сделать размер символа более гибким. Такие шрифты называют масштабируемыми. Векторный формат также распространен в автоматизированном проектировании. Он позволяет создавать трехмерные объекты и управлять их отображением на мониторе.
Однако векторный формат не обеспечивает фотографического качества изображений, которое доступно в растровом формате. Именно поэтому растровый формат используется в современных цифровых камерах.