Файл: Методы кодирования данных (Общие принципы кодирования данных).pdf
Добавлен: 29.04.2023
Просмотров: 210
Скачиваний: 1
ВВЕДЕНИЕ
Рост общего количества информации в современном мире, а также повышение ее значимости во всех областях жизнедеятельности неминуемо влечет за собой развитие цифровых технологий, расширение их возможностей и применения.
В современном обществе информационные ресурсы ничуть не менее значимы, чем материальные. Говоря об информации, нельзя не упомянуть понятие «данные».
Данные (лат. data) – это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. Данные – это зарегистрированные сигналы. Любая конретная информация, сведения, сообщения, факты, представленные в определенной форме (записью, числом, таблицей, сообщением), может называться данными. Таким обpазом, данные – это набоp неодноpодных ключевых слов (позиций, знаков), несущих инфоpмацию различной степени ценности.
Под кодированием принято понимать процесс формирования определенного представления информации, процесс преобразования сигнала из формы, удобной для использования информации, в форму, удобную для хранения, обработки и передачи. Кодирование подразумевает представление информации в виде дискретных данных.
Следует разделять понятия кодирования и шифрования.
Шифрование - это способ изменения исходных данных, обеспечивающее сокрытие их содержимого. Кодирование - это преобразование исходных данных (например, текста) в код, при котором подразумевается, что имеется взаимно однозначное соответствие между текстовыми символами и символами кода.
Кодирование и декодирование данных изучается в теории кодирования, которая, в свою очередь, близка к криптографии. Первой системой кодирования, ориентированной на технику, стала азбука Морзе, имеющая троичное кодирование (точка, тире и пауза)[8].
Ежедневно возрастающие объемы информации, необходимые для повседневной деятельности, требуют применения машинных методов обработки, а следовательно, должны быть представлены в виде, доступном для хранения и использования вычислительными машинами.
В связи с этим, изучение и анализ методов кодирования данных является актуальной задачей.
Целью данной работы является детальное рассмотрение методов кодирования данных.
Обозначенная цель определяет следующие задачи курсовой работы:
- Ознакомиться с общими принципами кодирования данных.
- Ознакомиться с кодированием чисел и текстовой информации.
- Детально рассмотреть кодирование мультимедиа-информации.
ГЛАВА 1 КОДИРОВАНИЕ ЧИСЕЛ И ТЕКСТОВОЙ ИНФОРМАЦИИ
1.1 Общие принципы кодирования данных
Выделяют два типа данных: текстовые и двоичные (бинарные).
Для обработки двоичных данных требуется специализированное программное обеспечение, работающее с их структурой. Прочие программы передают такие данные без изменений.
Текстовые данные передающие системы воспринимают как записанный на каком-либо языке текст. Они могут выполнять перекодировку, также могут производить небольшие изменения (заменять символы переноса строк, изменять количество пробелов в тексте и максимальную длину строки).
Передача текстовых данных как бинарных требует изменения кодировки в прикладном ПО, а передача бинарных данных как текстовых может повлечь за собой их необратимое повреждение.[1]
Современные ЭВМ могут обрабатывать различные виды информации: текстовую, числовую, графическую, звуковую и видеоинформацию. Представление информации в компьютере в виде последовательности электрических импульсов (импульс отсутствует - 0, импульс есть – 1) определяет необходимость кодирования в двоичном коде, то есть использования алфавита мощностью два символа (0 и 1). Данный вид кодирования называют двоичным, а последовательности нулей и единиц – машинным языком.[3]
Двоичное кодирование - один из самых распространенных способов представления информации. Вся информация, с которой работает устройство в вычислительных машинах, как правило кодируется в виде слов двоичного алфавита.
Широта применения двоичного кодирования объясняется тем, что создать техническое устройство, корректно различающее два различных состояния сигнала, технически проще, чем устройство, различающее, например, пять различных состояний. Поскольку компьютер работает с информацией, представленной в числовой форме, вся информация для обработки должна преобразовываться в числовую форму.
Одна цифра машинного двоичного кода содержит количество информации равное одному биту (поскольку при записи двоичной цифры можно сделать выбор только одного из двух возможных состояний). Чтобы определить количество информации в битах, нужно определить количество цифр в двоичном машинном коде.
Недостатком двоичного кодирования считаются очень длинные записи двоичных кодов, которые сложны в работе.[7]
1.2 Кодирование чисел
Современные вычислительные машины оперируют информацией, представленной в форме двоичного кода. Данная особенность обусловлена тем, что элементы, образующие память компьютера, способны находиться в двух устойчивых состояниях, связанных с прохождением тока, или его отсутствием. Данные состояния принято интерпретировать как "0" и "1".
Совокупность некоторого множества данных элементов обеспечивает представление многоразрядных чисел в двоичной форме и образует собой разрядную сетку. Наименьшей единицей представления информации является байт, образованный восьмью двоичными разрядами, при этом самый правый бит является младшим, а крайний левый - старшим.[12]
Множество целых чисел можно рассматривать как множество вещественных, дробная часть которых равна нулю. Но с целью более эффективного использования ресурсов (как памяти, так и вычислительных) при представлении целого числа позиция запятой фиксируется на аппаратном уровне. Подобное представление определяется как число с фиксированной точкой. Как правило, точка занимает позицию либо следом за старшим знаковым разрядом сетки, образуя представление правильной дроби, либо за младшим, образуя представление целого числа. [10]
При кодировании чисел, принадлежащих к множеству вещественных, применяется представление с плавающей запятой.
Целочисленные параметры применяются для представления дат, указания времени, нумерации элементов массивов, указания ячеек памяти, и т.д..
Для машинного представления данного типа чисел применяются несколько вариантов форматов, имеющих отличие в размере разрядной сетки, и наличием (или отсутствием) знака.
Сетка может иметь длину в 8, 16, 32, 64 бита. Разрядность сетки определяет диапазон чисел, доступных для представления. Его размер определяется как 2 в степени n, где n - разрядность сетки. Например, для восьмибитного слова этот диапазон включает в себя числа от 0 до 255, в десятичной системе исчисления.
При знаковом представлении старший бит определяет знак числа, при этом в положительном числе он равен нулю, в отрицательном - единице. Машинное представление чисел можно изобразить в виде кольца, при этом возле максимального значения числового типа стоит минимальное. При такой организации представления, положительные числа выражены в прямом коде, отрицательные - в так называемом "дополнительном".
Выполнение арифметических операций компьютером осуществляется посредством сложения и сдвига двоичных кодов. Так, разность двух чисел а и b можно выразить в виде суммы a + (-b). При выполнении сложения положительные числа представлены в прямом коде, отрицательные - в дополнительном. Характер кода результата определяется разрядом знака: если он равен единице, то результат операции отрицательный, соответственно представлен в форме дополнительного кода. Если равен нулю - результат положительный и представлен прямым кодом. [7]
Множество вещественных чисел наравне с целой частью содержат дробную, а также запятую, разделяющую данные части. Соотвтественно, представление вещественного числа требует наличия поля знака, поля целой части, поля запятой (точки) а также поля дробной части. Подобное представление является неэффективным с точки зрения использования машинной памяти. В связи с этим для представления чисел данного множества используется специальный формат, в основе которого лежит нормализованная форма записи числа. Она выглядит следующим образом:
A = ±ma ∙ q ±Pa , где ma ‒ мантисса числа А, удовлетворяющая условию:
1/q <=|m|<1; q ‒ основание системы счисления; Рa ‑ порядок числа.
При этом стоит отметить, что число запись числа 0 в нормализованной форме недоступна, так что для него создано исключение, которое заключается в том, что запись 0 является нормализованной, при условии что и мантисса, и порядок равны 0.
Представление чисел в нормализованной форме обеспечивает выраженную экономию оперативной памяти, так как лишает необходимости выделения памяти для целой части числа - она всегда равно нулю. Сетка представлена полем знака мантиссы (нулевой бит ), полем знака порядка (первый бит), полем значения порядка (биты со второго по k-й), и полем мантиссы. Поскольку мантисса представлена дробью, то заполнение ее поля ориентировано слева направо, при этом недостающие нули выставляются справа. [9]
1.3 Кодирование текстовой информации
При осуществлении ввода в компьютер каждая буква (символ) кодируется конкретным числом, а при выводе на экран либо печать эти цифры преобразуюся в буквы (символы), понятные человеку. Знаки или символы, из которых конструируются информационные сообщения, называют кодами, а соответствие между набором букв (символов) и числами - кодировкой символов. Множество символов называется алфавитом, а их количество – мощностью алфавита.
Для представления текстовых данных в ЭВМ обычно используется алфавит мощностью 256 символов (один его символ несет 8 бит информации, что составляет один байт, а значит, двоичный код символа занимает 1 байт памяти). Символы алфавита нумеруются от нуля до 255, причем каждому номеру соответствует 8–разрядный двоичный код (от 00000000 до 11111111). Данный код служит порядковым номером символа в двоичной системе счисления.[11]
В различных типах ЭВМ и операционных систем применяются разные таблицы кодировки. Отличия заключаются в порядке размещения символов алфавита в кодовой таблице. Международным стандартом для ПК считается таблица кодировки ASCII.[6]
Принцип последовательного кодирования алфавита состоит в том, что в таблице ASCII латинские буквы располагаются в алфавитном порядке, а цифры упорядочены по возрастанию значений.
В данной таблице имеются так называемые стандартные симнолы (это первые 128 символов, имеющие номера от нуля (00000000 в двоичном коде) до 127 (01111111 в двоичном коде). Стандартными символами являются цифры, буквы латинского алфавита, знаки препинания и некоторые другие символы. Остальные 128 кодов (со 128-го (10000000 в двоичном коде) до 255-го (11111111 в двоичном коде) применяются для кодировки символов национальных алфавитов, псевдографики и научных символов.
Для русского алфавита существует несколько разных кодовых таблиц (КОИ-8, СР-1251, СР-866, Mac, ISO). Текстовая информация, созданная в одной кодировке, может некорректно отображаться в другой. Решение данной проблемы состоит в переводе текста из одной кодировки в другую при помощи специальных программ перевода.[4] В операционной системе Windows пришлось передвинуть русские буквы в таблице на место псевдографики, и получили кодировку Windows 1251 (Win-1251).
Другая проблема кодирования текстовых символов состоит в том, что 256 различных символов не достаточно, поскольку довольно часто возникает необходимость использовать специальные математические символы, символы из различных национальных алфавитов, символы, обозначающие валюты государств и многие другие. Эту проблему призвана решать система Unicode - универсальная система кодирования текстовой информации. В этой кодировке каждый символ может представляться двумя байтами, или шестнадцатью битами. Это позволяет использовать для кодирования информации 65536 (2 в степени 16) различных кодов. Такого количества достаточно для кириллицы, латиницы, иврита, африканских, азиатских языков, а также для специализированных технических, математических, экономических символов. Недостаток системы Unicode состоит в том, что представление текстов становится в два раза длиннее. В настоящее время стандарты ASCII и Unicode существуют параллельно [5].