Файл: Методы кодирования данных (История кодирования и что это такое).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 307

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1.3 Двоичная система счисления

Нам необходимо понимать, что такое двоичная система счисления, так как она широко применяется в практике кодирования сигналов.

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

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

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

Двоичная система используется в цифровых устройствах, т.к. является наиболее простой и соответствует требованиям: 1) Чем меньше значений существует в системе, тем проще изготовить отдельные элементы, оперирующие этими значениями. В частности, две цифры двоичной системы счисления могут быть легко представлены многими физическими явлениями: есть ток — нет тока, индукция магнитного поля больше пороговой величины или нет и т. д. 2) Чем меньше количество состояний у элемента, тем выше помехоустойчивость и тем быстрее он может работать. Например, чтобы закодировать три состояния через величину индукции магнитного поля, потребуется ввести два пороговых значения, что не будет способствовать помехоустойчивости и надёжности хранения информации. 3) Двоичная арифметика является довольно простой. Простыми являются таблицы сложения и умножения - основных действий над числами. 4) Возможно применение аппарата алгебры логики для выполнения побитовых операций над числами.

В цифровой электронике одному двоичному разряду в двоичной системе счисления соответствует один двоичный логический элемент (инвертор с логикой на входе) с двумя состояниями (открыт, закрыт).


1 + 0 = 1

1 + 1 = 10

10 + 10 = 100

Таблица умножения двоичных чисел

0 • 0 = 0

0 • 1 = 0

1 • 0 = 0

1 • 1 = 1

Использование двоичной системы при измерении дюймами

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

Преобразование чисел

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

512 256 128 64 32 16 8 4 2 1

Начиная с цифры 1 все цифры умножаются на два. Точка, которая стоит после 1 называется двоичной точкой.

Преобразование двоичных чисел в десятичные

Допустим, вам дано двоичное число 110001. Для перевода в десятичное просто запишите его справа налево как сумму по разрядам следующим образом:

Можно записать это в виде таблицы следующим образом:

Точно так же, начиная с двоичной точки, двигайтесь справа налево. Под каждой двоичной единицей напишите её эквивалент в строчке ниже. Сложите получившиеся десятичные числа. Таким образом, двоичное число 110001 равнозначно десятичному 49.

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

0*2+1=1>>1*2+0=2>>2*2+1=5>>5*2+1=11>>11*2+0=22>>22*2+1=45>> 45*2+1=91. В десятичной системе это число будет записано как 91. Или число 101111 переводится в десятичную систему так:

0*2+1=1>>1*2+0=2>>2*2+1=5>>5*2+1=11>> 11*2+1=23 >> 23*2+1=47 То есть в десятичной системе это число будет записано как 47.

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

unsigned int to_deg_2(unsigned int num){int i; if ( num == 1 ) return 2;for( num-=1,i=1; i < sizeof (unsigned int)*8; i*=2 ) num = num|(num>>i); return num+1;}

Допустим, нужно перевести число 19 в двоичное. Следует воспользоваться следующей процедурой:

19 /2 = 9 с остатком 1

9 /2 = 4 c остатком 1

4 /2 = 2 с остатком 0

2 /2 = 1 с остатком 0

1 /2 = 0 с остатком 1

Итак, мы делим каждое частное на 2 и записываем в остаток 1 или 0. Продолжать деление надо пока в делимом не будет 1. Ставим числа из остатка друг за другом, начиная с конца. В результате получаем число 19 в двоичной записи (начиная с конца): 10011.


1.4 Виды кодирования информации

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

Итак, начнем с кодирования текстовой информации. Мы уже понимаем, что текст состоит из некой последовательности символов и, что символами могут быть буквы, цифры, знаки препинания и т.д. Так вот, текстовая информация, как и любая другая, хранится в памяти компьютера в двоичном виде. Для этого каждому в соответствии ставится некоторое неотрицательное число, которое зовется кодом символа, и это число записывается в память электронной вычислительно машины в двоичном виде. Конкретное соотношение между символами и их кодами называется системой кодировки. В персональных компьютерах обычно используется система ASCII (American Standart Code for Informational Interchange). К кодированию текстовой информации можно отнести: криптографию (наука, занимающаяся методами шифрования), стенографию (быстрый способ записи устной речи).

Следующим видом кодирования информации является кодирование цвета. Чтобы сохранить фотографию в двоичном коде, ее сначала разделяют на множество мелких цветных точек, называемых пикселями. После разбивки на точки цвет каждого пикселя кодируется в бинарный код и записывается на запоминающем устройстве. Как пример, если размер изображения составляет 100 на 100 точек, то это значит, что они представляют собой матрицу, образованную из 10000 пикселей. Качество кодирования фотографий в бинарный код зависит не только от количества пикселей, но также и от их цветового разнообразия. Существует несколько алгоритмов записи цвета в двоичном коде. Самый распространенный из них это RGB. Расшифровывается как red – green – blue, то есть первые буквы названий трёх основных цветов. Смешивая эти три цвета в любой последовательности и пропорции, можно получить абсолютно любой цвет и любой оттенок. На этом и построен алгоритм RGB. Каждый пиксель записывается в двоичном коде путем указания количества красного, зеленого и синего цвета, участвующего в его формировании. Чем больше битов выделяется для кодирования пикселя, тем больше вариантов смешивания этих трёх каналов можно использовать и тем значительнее будет цветовая насыщенность изображения.


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

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

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


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

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

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