Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Методы кодирования данных (Общие принципы кодирования данных)

Содержание:

ВВЕДЕНИЕ

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

В современном обществе информационные ресурсы ничуть не менее значимы, чем материальные. Говоря об информации, нельзя не упомянуть понятие «данные».

Данные (лат. data) – это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. Данные – это зарегистрированные сигналы. Любая конретная информация, сведения, сообщения, факты, представленные в определенной форме (записью, числом, таблицей, сообщением), может называться данными. Таким обpазом, данные – это набоp неодноpодных ключевых слов (позиций, знаков), несущих инфоpмацию различной степени ценности.

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

Следует разделять понятия кодирования и шифрования.

Шифрование - это способ изменения исходных данных, обеспечивающее сокрытие их содержимого. Кодирование - это преобразование исходных данных (например, текста) в код, при котором подразумевается, что имеется взаимно однозначное соответствие между текстовыми символами и символами кода.

Кодирование и декодирование данных изучается в теории кодирования, которая, в свою очередь, близка к криптографии. Первой системой кодирования, ориентированной на технику, стала азбука Морзе, имеющая троичное кодирование (точка, тире и пауза)[8].

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

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

Целью данной работы является детальное рассмотрение методов кодирования данных.

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

  1. Ознакомиться с общими принципами кодирования данных.
  2. Ознакомиться с кодированием чисел и текстовой информации.
  3. Детально рассмотреть кодирование мультимедиа-информации.

ГЛАВА 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].

ГЛАВА 2. КОДИРОВАНИЕ МУЛЬТИМЕДИА-ИНФОРМАЦИИ

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

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

Изображения принято разделять на векторную и растровую графику.

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

Таким образом, растровое изображение состоит из горизонтальных линий (строк), а строки в свою очередь из пикселей. Массив элементарных единиц изображения принято называть растром. Четкость изображения определяется количеством строк и количеством точек в каждой строке, то есть от разрешающей способности экрана. В настоящее время достаточно качественным считается разрешение 1360x768, то есть 1360 точек на строку и 768 строчек на экран.[1]

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

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

Для кодирования черно-белых изображений, не имеющих полутонов, пиксель принимает только два значения: черный и белый, соответственно, для кодирования достаточно одного бита памяти (1 – белый, 0 – черный, либо наоборот). Изображение, полученное таким образом, будет чрезмерно контрастным, в то время как черно-белые изображение, как правило, состоят не только из черного и белого цветов, но и различных промежуточных оттенков (темно-серый, светло-серый и прочие). Добавление даже двух дополнительных оттенков, например, темно-серого и светло-серого, потребует уже два бита, для кодирования цветового состояния одного пикселя.

Чтобы получить реалистичные монохромные изображения используют кодирование цветового состояния пикселя с помощью одного байта. Это позволяет передавать 256 оттенков серого цвета (градации от полностью белого до черного). В таком случае для передачи всего растра из 640 x 480 пикселей понадобится 307200 байтов. [7]

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

Цветные изображения определяются двоичным кодом цвета каждого пикселя, хранящимся в видеопамяти, также они могут иметь различную глубину цвета, задаваемую количеством битов, используемым для кодирования цвета точки. Чаще всего используются значения глубины цвета 8, 16, 24 и 32 бита.

Цветное изображение может быть закодировано различными способами. Наиболее известным является метод RGB (RGB - первые буквы слов Red, Green, Blue, обозначающих соответственно красный, зеленый и синий цвет). Данный метод основывается на физиологической особенности зрительного анализатора человека: глаз воспринимает все цвета как сумму трех основных цветов - красного, зеленого, синего. Соответственно, цвет в системе RGB представляется в виде суммы различной яркости красного (red), зеленого (green) и синего (blue) цветов. Для получения одного цветного пикселя в одно и то же место экрана направляется сразу три цветных луча. [1]

В результате растровые изображения представляют собой однослойную сетку пикселей, а код пикселя имеет информацию о его цвете.

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

Если считать, что для кодирования одного из цветов достаточно одного бита ( "0" в бите будет обозначать отсутствие в суммарном цвете данного основного, а "1" - его присутствие), то для кодирования одного цветного пикселя понадобится 3 бита (по одному пикселю на каждый цвет). Пусть первый бит будет соответвовать красному цвету, второй — зеленому, а третий — синему. В таком случае, например, сиреневый цвет будет задаваться кодом 101 (красный цвет есть, зеленого нет, синий есть), а желтый цвет — кодом 110 (красный и зеленый цвет есть, синий отсутствует). Данная схема кодирования подразумевает, что каждый пиксель может иметь один из восьми цветов.

Однако для получения реалистического монохромного изображения этого недостаточно, и поэтому используется кодирование цветов с помощью одного байта. Это позволяет передавать по 256 оттенков для каждого из основных цветов. При этом обеспечивается передача 16777216 (256*256*256) различных цветов, и это позволяет приблизиться к действительной чувствительности человеческого глаза. Такой метод представления цветной графики называется режимом True Color (истинный цвет), то есть полноцветным режимом. Данная схема кодирования цвета требует 3 байта (24 бита) памяти на изображение одного пикселя.

Еще один широко используемый метод представления цвета называется CMYK В отличие от RGB, этот метод является субтрактивной системой, то есть при выводе на бумагу максимальная яркость обеспечивает черный цвет, а отсутствие – белый. Это составляет их принципиальное различие. CMYK раскладывается на С (Cyan – голубой), M (Magenta – пурпурный), Y (Yellow – желтый) и K (blacK – черный).

Вместо основного цвета здесь используется его дополнение до белого. Если красный, зеленый и синий суммарно дают белый цвет, то дополнением для красного будет сочетание зеленого и синего цветов, то есть голубой. Дополнением для зеленого цвета является пурпурный, как сочетание красного и синего, а для синего – желтый цвет (то есть сочетание красного и зеленого). Таким образом, голубой, пурпурный, желтый с добавлением черного составляют основные цвета в системе CMYK .

Режим CMYK также считается полноцветным, и для передачи состояния одного пикселя ему требуется 4 байта (32 бита) памяти, что позволяет передавать 4294967295 различных цветов.

Очевидно, что полноцветные режимы требуют большого количества памяти. Для растра 640 x 480 при использовании RGB-метода требуется 921600 байтов, а для системы CMYK – 1228800 байтов памяти. Поэтому для экономии памяти создаются различные режимы и графические форматы, которые требуют намного меньше памяти, но при этом несколько хуже передают цвет. Таким является, например, режим High Color. Для передачи цвета одного пикселя в нем используется 16 битов (то есть возможно передать 65535 цветовых оттенков), а также индексный режим, базирующийся на специальной таблице цветовых оттенков. Необходимый цвет из этой таблицы выбирается при помощи номера-индекса, занимающего один байт памяти [7].

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

Наиболее распространенными растровыми форматами являются BMP, JPEG и GIF-форматы. В формате BMP задается цветность всех точек изображения. Также имеется возможность выбрать монохромный режим (256 градаций) или цветной (16 256 или 16777216 цветов). Разумеется, такой формат требует много памяти.

GIF-формат - графический формат обмена (Graphics Interchange Format) предполагает использование специальных методов сжатия кода, и при этом обеспечивает поддержку только 256 цветов. Это определяет несколько худшее качество изображения, относительно формата BMP, но важным достоинством GIF-формата является то, что он требует в десятки раз меньше памяти.

JPEG-формат — Объединенная группа экспертов по фотографии (Joint Photographic Experts Group) использует методы сжатия, которые приводят к потерям некоторых деталей. Формат поддерживает 16777216 цветов, обеспечивая тем самым довольно высокое качество изображения, и занимает промежуточное положение между форматами GIF и BMP по требованиям к памяти.[1]

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

Качество изображения определяется разрешающей способностью монитора, то есть количеством точек, из которых оно состоит. Чем выше разрешающая способность, тем выше качество изображения.

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

Кодирование векторных изображений

Векторное изображение состоит не из пикселей, а из так называемых геометрических примитивов (линии, отрезки, точки, а также геометрические фигуры, которые могут быть из них получены: прямоугольники, эллипсы, окружности и прочие). Базовым объектом векторной графики является линия. Любой элемент векторного изображения является объектом, который описывается при помощи математических уравнения линий, дуг, окружностей. Сложные объекты представляются в виде совокупности элементарных графических объектов. Сложность представления векторного изображения позволяет получить значимое преимущество относительно растровой графики: векторные изображения могут увеличивать и уменьшать свои размеры без потери качества, в то время как при увеличении растрового изображения значительно снижается его качество за счет увеличения размеров пикселей.

Так, например, для представления векторного изображения круга достаточно закодировать в двоичный код тип объекта "окружность" (для этого необходимо задать ее радиус, координаты центра, выбрать толщину и цвет линии, а также цвет заливки). В растровой системе та же задача будет решаться кодированием цвета каждого пикселя. Соответственно, чем больше размер изображения, тем больше места для его хранения потребуется на запоминающем устройстве. [1]

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

Компания Adobe разработала специальный язык, служащий для описания изображений при помощи указанных методов, - язык PostScript (poster script - сценарий плакатов, афиш, объявлений). PostScript служит основой для некоторых векторных графических форматов (форматы PS и EPS). Большинство популярных программ не воспроизводят тексты и изображения, записанные в данных форматах, поэтому для их просмотра и печати требуются специализированные программные средства.

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

В методе фрактального кодирования используются системы доменных и ранговых блоков изображения, блоков квадратной формы, покрывающих все изображение. Изображение разбивается на множество неперекрывающихся ранговых подизображений, затем определяется множество перекрывающихся доменных подизображений. Алгоритм кодирования находит для каждого рангового блока наиболее подходящий ему доменный блок и аффинное преобразование, переводящее этот доменный блок в данный ранговый блок. Далее структура изображения отображается в систему доменных блоков, ранговых блоков и преобразований. Данный подход послужил основой для большинства методов фрактального кодирования.[13]

2.2 Кодирование звуковой информации

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

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

Амплитуда определяет громкость, с которой человек воспринимает звук. Частота характеризует высоту тона. Звуковой сигнал определяется непрерывно изменяющимися величинами, т.е является аналоговым.Поскольку персональный компьютер оперирует дискретными величинами, данный сигнал необходимо привести в доступную цифровую форму. Данное превращение осуществляется с помощью специального оборудования - аналоговоцифровых преобразователей. Для вывода звуковой информации применяется обратный процесс и соответствущие средства - цифроаналоговые преобразователи.

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

Измерение точки времени определяется как дискретизация сигнала, и характеризуется заданной частотой. При этом к частоте дискретизации предъявляется требование, согласно которому она должна составлять не менее удвоенной частоты наивысшей гармонической составляющей преобразуемого звукового сигнала (в соответствии с теоремой Котельникова). Так как человек воспринимает звук с частотой принадлежащей диапазону от 16 Гц до 20 кГц, то соответствующее максимальное значение частоты дискретизации составляет не менее 40 кГц. Таким образом, измерение уровня сигнала должно происходить не реже 40000 раз в секунду. Для большинства современных аудиоподсистем этот параметр составляет 44,1 или 48 кГц.[2]

Для приведения в цифровую форму уровня сигнала используется процесс квантования по амплитуде. Он заключается в замене абсолютных значений амплитуды значениями, приближенными с некоторой точностью. Уровень точности зависит от количества бит N, отведенных для записи уровня сигнала в каждой точке времени. Все возможные значения из диапазона 2 в степени N называются уровнем квантования, а дистанция между двумя ближайшими значениями носит название шага квантования. Сам параметр N определяется как разрядность квантования. Значения, полученные в результате приближения, называются семплами. Считается, что погрешность, возникающая при квантовании с величиной разрядность 16 бит, не воспринимается человеком на слух.

В 1997 году компанией Intel был представлен стандарт аудиокодеков AC`97. Данный стандарт, рекомендуемый для использования в материнских и звуковых платах, а также модемах, декларирует поддержку частоты дискретизации 96 кГц с применением 20-разрядного стерео и 48 кГц с применением 20-разрядного стерео для многоканальной записи и воспроизведения.

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

В 2004 году компания Intel представила новый стандарт, призванный обеспечить более высокое качество воспроизведения звука - High Definition Audio (HDA). HDA, будучи наследником AC`97, не обладает обратной совместимостью с предыдущим стандартом. При этом он обеспечивает поддержку большего количества каналов (до 16) и большую разрядность сэмплирования.

Разработанные на его основе устройства предоставляют 8-, 16-, 20-, 24- и 32-разрядные сэмплы, поддерживая при этом частоту дискретизации до 192 кГц в стереорежиме и до 96 кГц в многоканальном режиме.

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

Массив аудиоинформации может быть сохранен в неизмененном виде, как последовательность приближенных величин амплитуды, при этом используются два схожих формата: Pulse Code Modulation (импульсно-кодовая модуляция. Частный случай реализации - формат WAV), при котором в память заносятся абсолютные значения амплитуды, и Adaptive Delta PCM (адаптивная относительная импульсно-кодовая модуляция), при которой записываются относительные изменения амплитуды.

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

Данные методы принято разделять на два основных типа: кодирование данных без потерь (lossless coding), и кодирование данных с потерями (lossy coding).

Основное отличие между двумя приведенными типами кодеков заключается, как следует из названия, в том, что кодеки без потерь сохраняют в аудиоданных информацию, которую при сжатии с потерями кодек расценивает как избыточную. Применение lossless-методов позволяет обеспечить компрессию данных так, чтобы сохранить возможность восстановления оригинальных данных из сжатых.

К наиболее популярным форматам кодирования без потерь относятся FLAC, WavPac, Monkey`s Audio.

FLAC (Free Loseless Audio Codec) создан Джошем Колсоном. Первая версия представлена в 2001 году. Применение данного кодека обеспечивает компрессию аудиоданных на уровне 50 - 60% от исходного файла (для сравнения - применение известного архиватора ZIP позволяет сжать аудиофайл на 10-20%). Максимальная эффективность FLAC достигается при компрессии записей голоса.

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

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

Конкурирующий формат WavPack обеспечивает уровень компрессии от 30 до 70%, в зависимости от исходных данных. К его отличительным особенностям относится так называемый " гибридный режим" работы, при котором создаются два файла, одним из которых является "коррекционный" файл, обеспечивающий полное восстановление данных, а вторым - файл меньшего размера, созданный с помощью методов, основанных на "lossing coding", при этом сохраняющий высокое качество звука [7].

Еще одним, относительно распространенным, форматом сжатия без потерь является Monkey`s Audio. К его преимуществом перед приведенными кодеками являются более высокая степень компрессии и поддержка многопоточности. Однако последняя особенность оказывается недостатком при определенных обстоятельствах, поскольку декодирование подразумевает задействование вычислительных ресурсов, пропорциональных кодированию. Это ограничивает распространение данного формата среди специализированных устройств воспроизведения звука. Кроме того, широкому распространению данного формата препятствует лицензия, которая не относится к разряду "открытых". Официальная версия препятствует поддерживает кодирование только в среде Windows. Декодирование с последующим воспроизведением доступно так же для платформ Mac OS и Linux. [2]

Алгоритмы кодирования данных с потерями отличаются сравнительно большим разнообразием, но наибольшее распространение из них получили MPEG - 1 Layer I, II, III; MPEG II AAC (Advanced Audio Coding); Windows Media Audio.

Общим для приведенных форматов является то обстоятельство, что при осуществлении компрессии из исходного файла удаляются неразличимые для человеческого слуха детали. Таким образом, на этапе декодирования данный сигнал перестает быть идентичным, а лишь является максимально приближенным. Данный подход основывается на так называемой " психоакустической модели" и позволяет достигать снижения объема файла в 10-14 раз от исходного. В качестве примеров принципов, лежащих в основе данного подхода можно привести следующее: при одновременном звучании двух звуковых сигналов разной интенсивности более сильный сигнал маскирует более слабый, соответственно при компресси с потерями более слабый сигнал отбрасывается. Подобная ситуация наблюдается при воспроизведении тихого звука сразу после громкого: тихий сигнал не воспронимается вследствие пониженной слуховой чувствительности, вызванной громким звуком. В этом случае информацией о нем можно пренебречь. Кроме того, активно используется то обстоятельство, что большинство слушателей не способно воспринимать сигналы с мощностью ниже определенного порога при соотвтествующих частотных диапазонах.

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

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

Версия MPEG Layer III имеет наименьшую длину отрезков, благодаря чему достигается высокий уровень компрессии.

Все три "слоя" MPEG Audio имеют обратную совместимость, позволяя воспроизводить информацию, закодированную с помощью Layer I, декодором Layer III.

Файлы, закодированные Layer III, обладают , как правило, расширением mp3.

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

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

Упомянутый ранее WAV кодируется с максимальным битрейтом на уровне 320 кбит/с. При снижении уровня битрейта ниже 128 кб/с потеря качества воспроизводимого сигнала становится заметной. Сам по себе битрейт является важным интегральным показателем качества закодированного сигнала. Несмотря на наличие прямой корреляции между битрейтом и качеством, следует учитывать, что конечный итог зависит от исходного материала, и сигнал закодированный с меньшим битрейтом может теоретически обладать более высоким качеством, чем другой сигнал, закодированный с более высоким уровнем показателя.

По отношению к битрейту существует три алгоритма компрессии:

  1. С постоянным битерейтом (CBR, Constant Bit Rate), при использовании которого при кодировании сигнала уровень показателя остается постоянным.
  2. С переменным битрейтом (VBR, Variable Bit Rate), при котором показатель меняется в реальном времени в зависимости от кодируемого сигнала . Это позволяет снижать размер файла, при повышении уровня качества, по сравнению с постоянным битрейтом.
  3. С усредненным битрейтом (ABR, Average Bit Rate). представляющм собой комплекс двух приведенных алгоритмов. В качестве параметра при кодировании задается средний битрейт. В ходе дискретизации сигнала алгоритм применяет переменный битрейт, контролируя при этом, чтобы средний уровень показателя не превышал установленный пользователем. Это снижает уровень качества по сравнению с переменным битрейтом, но позволяет добиться необходимой оптимизации размера итогового файла.

Свои особенности при кодировании имеет стереосигнал. Для этого существуют два метода. При использовании первого - двухканального - оба канала кодируются по отдельности, вследствие чего битрейт снижается вдвое в пересчете на канал. Второй метод - Joint Stereo - подразумевает вычисление суммы и разности сигналов каждого из каналов. Благодаря совпадению частот для хранения разности требуется меньше памяти, чем для суммы, вследствие чего большая ширина битрейта предоставляется сумме.

К другим алгоритмам компрессии с потерями относятся проприетарные форматы Advanced Audio Coding и Windows Media Audio. Они имеют свои особенности, позволяющие добиться более высокого, в сравнении с MPEG Layer III, качества, но используют те же принципы.

Кроме того в 2000 году был представлен открытый формат Vorbis, предусматривающий отсутствие патентных ограничений. Данный формат поддерживается множеством платформ, включая Windows, Linux, Mac OS, Android, и более редкие. [2]

ЗАКЛЮЧЕНИЕ

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

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

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

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

Цели и задачи курсовой работы считаю выполненными.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Гаврилов М.В. Информатика и информационные технологии/ М.В. Гаврилов, В.А. Климов. – М.: Юрайт, 2013. – 378с.
  2. Еремин Е.А.Представление звуковой информации в ЭВМ. Информатика 2004, № 45, с. 16–17.
  3. Информатика. Общий курс: учебник / под ред. В.И. Колесникова. – М.: Издательско-торговая корпорация «Дашков и К», 2013. – 400 с.
  4. Каймин В.А. Информатика. Учебник. - М.: ИНФА-М., 2003 – 285 с.
  5. Каплунова Н.В., Шарыхин В.В., Хмельницкий С.В. Концепция развития информационных ресурсов. // Под ред. С.В.Хмельницкого. - СПб.: Европейский университет в Санкт-Петербурге, 2001.
  6. Леонтьев В. Новейшая энциклопедия персонального компьютера - М.: Олма Медиа Групп, 2007. –734 с.
  7. Симонович С.В. Информатика. Базовый курс. Учебник для вузов, 3-е изд. - СПб.: Питер, 2011. – 640 с.
  8. Соловьева Ф. И. Введение в теорию кодирования: Учебное пособие / Новосиб.гос. ун-т. Новосибирск, 2006 с. 127
  9. Сочко, С. С. С 69 Системы счисления. Методы кодирования числовой информации в ЭВМ [Текст] : учеб. пособие / С. С. Сочко. ‒ Ухта : УГТУ, 2016. – 76 с.
  10. Шауман А. М. Основы машинной арифметики/ А. М. Шауман. – СПб.: Питер, 2009. – 415с.
  11. Шафрин Ю.А. Основы компьютерной технологии. – М., 1998
  12. Широбокова Н. В. Представление информации в компьютере/ Н.В. Широбокова. – М.: ИНФРА-М, 2011. – 328 с.
  13. Алгоритм фрактального сжатия [Электронный ресурс] URL: https://ru.wikipedia.org/wiki/Алгоритм_фрактального_сжатия (дата обращения: 07.02.2018)