Кодирование и декодирование информации



· кодирование – это перевод информации с одного языка на другой (запись в другой системе символов, в другом алфавите);

· обычно кодированием называют перевод информации с «человеческого» языка на формальный, например, в двоичный код, а декодированием – обратный переход;

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

· кодирование может быть равномерное и неравномерное; при равномерном кодировании все символы кодируются кодами равной длины;

· при неравномерном кодировании разные символы могут кодироваться кодами разной длины, это затрудняет декодирование;

· закодированное сообщение можно однозначно декодировать с начала, если выполняется условие Фано: никакое кодовое слово не является началом другого кодового слова;

· закодированное сообщение можно однозначно декодировать с конца, если выполняется обратное условие Фано: никакое кодовое слово не является окончанием другого кодового слова;

· условие Фано – это достаточное, но не необходимое условие однозначного декодирования.

Пример. Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В, Г использовали соответственно кодовые слова 000, 001, 10, 11. Укажите кратчайшее возможное кодовое слово для буквы Д, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

Решение: Построим дерево для заданного двоичного кода

А
Б
0
0
0
1
1
1
В
Г
0
1

1) согласно условию Фано, код декодируется однозначно, если все используемые кодовые слова соответствуют листьям такого дерева; видим, что для заданных кодовых слов это условие выполняется;

2) может показаться, что ответ – 01, поскольку на эту ветвь можно «подвесить» букву Д, однако это не так – тогда будет некуда подвешивать оставшуюся букву – Е;

3) поэтому для того, чтобы добавить в это дерево две буквы (Д и Е) и сохранить выполнение условия Фано, нужно в узле 01 сделать развилку, тогда получается два свободных кода, 010 и 011, из них меньший – 010. Ответ: 010.

 

Кодирование и обработка графической информации

Графическая информация может храниться в растровом и векторном форматах.

· для хранения растрового изображения нужно выделить в памяти I = N·i битов, где N – количество пикселей и i – глубина цвета (разрядность кодирования);

· количество пикселей изображения N вычисляется как произведение ширины рисунка на высоту (в пикселях);

· глубина кодирования – это количество бит, которые выделяются на хранение цвета одного пикселя;

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

· нужно помнить, что 1 Мбайт = 220 байт = 223 бит, 1 Кбайт = 210 байт = 213 бит.

Пример задания: Рисунок размером 512 на 256 пикселей занимает в памяти 64 Кбайт (без учёта сжатия). Найдите максимально возможное количество цветов в палитре изображения.

Решение: 1)находим количество пикселей, используя для вычисления степени числа 2: N = 512 · 256 = 29 · 28 = 217;

2)объём файла в Кбайтах 64 = 26 ; 3) объём файла в битах 26 · 213 = 219 ; 4) глубина кодирования (количество битов, выделяемых на 1 пиксель): 219 : 217 = 22 = 4 бита на пиксель; 5) максимальное возможное количество цветов 24 = 16. Ответ: 16.

Палитра – это ограниченный набор цветов, которые используются в изображении (обычно не более 256); при кодировании с палитрой выбираются n любых цветов (из полного набора 16 777 216 цветов), для каждого из них определяется rgb-код и уникальный номер от 0 до n-1; тогда информация о цвете пикселя – это номер его цвета в палитре; при кодировании с палитрой количество битна 1 пиксель (k) зависит от количества цветов в палитре n, они связаны формулой: N=2k. Цвет на Web-страницах кодируется в виде RGB-кода в шестнадцатеричной системе: #RRGGBB, где RR, GG и BB – яркости красного, зеленого и синего, записанные в виде двух шестнадцатеричных цифр; это позволяет закодировать 256 значений от 0 (0016) до 255 (FF16) для каждой составляющей; коды некоторых цветов:

#FFFFFF – белый, #000000 – черный, #CCCCCC и любой цвет, где R = G = B, – это серый разных яркостей, #FF0000 – красный, #00FF00 – зеленый, #0000FF – синий, #FFFF00 – желтый, #FF00FF – фиолетовый, #00FFFF – цвет морской волны.


Дата добавления: 2019-09-08; просмотров: 196; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!