Добавлен: 04.04.2023
Просмотров: 136
Скачиваний: 3
Коды символов в ASCII применяются в QWERTY-клавиатурах в качестве промежуточной кодировки, которая обладает свойством кроссплатформенности. Соответствие кодов и символов на клавиатуре изображено на рисунке 2.
Рисунок 2 – соответствие кодов и клавиш на QWERTY-клавиатуре.
2.2 Кодирование звука в формате MP3
Для представления звука в цифровых форматах, в каждый единичный интервал времени производится измерение амплитуды сигнала. В силу того, что сам по себе звук имеет волновую природу, для точного представления его в цифровом виде, необходимо также непрерывно измерять амплитуду колебаний. В действительности, количество измерений в секунду, называемое частотой дискретизации, варьируется от 10000 до 96000. Наиболее часто применяется частоты 44100 и 48000 Гц. В качестве амплитудной градации (разрешения) применяют 28, 216 и 224 бита. Само собой, при оцифровке аудиосигнала возникают искажения и отклонения, которые напрямую зависят от частоты дискретизации и разрешения. Высокочастотные искажения могут подавляться при помощи специальных фильтров, которые размещаются на выходе цифро-аналогового преобразователя[5].
Звук в цифровом формате занимает достаточно большой объём памяти. Для примера возьмём аудиофайл, длительность которого составляет 60 секунд, частота дискретизации равна 44100 Герц, а разрешение – 16 бит. Такой файл занимает чуть более 10 мегабайт дискового пространства.
Звуковые файлы плохо сжимаются в архивы стандартными средствами, но существуют различные форматы, которые позволяют сократить объём используемого пространства памяти, однако в связи с этим возникают потери качества, поэтому для профессиональной работы со звуком не применяются форматы со сжатием.
Рассмотрим кодирование звука в формате MP3. Данный формат использует метод сжатия данных, который разработан компанией Moving Pictures Experts Group и носит название MPEG (группа методов). Он базируется на перцептуальном кодировании звука. В 1987 году был дан старт работам по созданию методики кодирования звука для цифрового теле- и радиовещания, в результате чего был разработан мощный алгоритм под названием ISO-MPEG Audio Layer-3[6]. Данный алгоритм кодирования аудиоинформации использовал революционные эффективные параллельные методики сжатия и преобразования, что позволило добиться колоссальных результатов: аудиоданные подвергались сжатию в 12 раз без потери качества, в некоторых случаях степень сжатия могла быть на несколько единиц больше. В целом различаются три уровня сжатия аудиоинформации:
- MPEG Layer-1 – коэффициент сжатия 1:4 при потоке данных 384 Кбит/с;
- MPEG Layer-2 – 1:6.1:8 при 256–192 Кбит/с;
- MPEG Layer-3 (MP3) – 1:10.1:12 при 128–112 Кбит/с.
Если о файлах mp1 и mp2 в современное время слышали только профессионалы в области цифрового аудио и старожилы, то формат mp3 знаком практически всем. Именно этот формат использует алгоритм кодирования MPEG Layer-3.
В первом приближении, методики и алгоритмы сжатия-восстановления MPEG были предназначены исключительно для машинного исполнения, т.е. их реализация была основана на применении цифровых устройств (микросхем) обработки аудиосигналов, но производительность современных устройств уже давно предоставила возможность воспроизведения сжатых аудиофайлов, закодированных в формате MP3. К примеру, для воспроизведения файла, закодированного при помощи алгоритма MPEG Layer-3, достаточно любого 32-битного процессора с тактовой частотой более 70 МГц.
Сжатие звука в реальном времени на таких устройствах является более проблематичной задачей, однако для этого чаще всего используются программные конвертеры, сжимающие готовые аудиофайлы.
Формат кодирования MP3 по факту предоставляет качество Audio CD. Разумеется, сжатие порождает некоторые потери качества, но зачастую они не имеют критического и заметного влияния. Более того, возможность размещения в десятки раз большего количества файлов на носителе такого же объёма позволяет закрыть глаза на потери качества столь малого масштаба.
MP3-файл состоит из нескольких фрагментов (фреймов) MP3, которые, в свою очередь, состоят из заголовка и блока данных. Такая последовательность фрагментов называется элементарным потоком. Фрагменты не являются независимыми элементами («резервуар байт»), и поэтому не могут быть извлечены произвольно. Блок данных MP3-файла содержит сжатую аудиоинформацию в виде частот и амплитуд. На приведённой диаграмме показано, что заголовок MP3 состоит из маркера, который служит для нахождения верного MP3-фрагмента. За ним следует бит, показывающий, что используется стандарт MPEG, и два бита, показывающие использование layer 3; другими словами, это определяет MPEG-1 Audio Layer 3 или MP3. Последующие значения могут варьироваться в зависимости от типа MP3-файла. Стандарт ISO/IEC 11172-3 определяет диапазон значений для каждой секции заголовка, вместе с общей его спецификацией. Большинство MP3-файлов в настоящий момент содержат ID3-метаданные, которые предшествуют или следуют за MP3-фрагментом.
Фрейм содержит в себе заголовок и аудио-данные. Формат фрейма показан на рисунке 3.
Рисунок 3 – формат фрейма MP3.
Таким образом, первые 11 бит отводятся для маркера фрейма. Все они должны быть установлены. Следующие 2 бита содержат информацию об индексе версии MPEG. Соответствие версий индексам представлено на рисунке 4.
Рисунок 4 – версии MPEG.
Следующие 2 бита отводятся для указания информации об индексе Layer. Таблица индексов представлена на рисунке 5.
Рисунок 5 – версии Layer.
Бит 15 содержит информацию о защите и называется Protection bit. 1 означает отсутствие защиты, при значении 0 – заголовок защищён, CRC идёт после заголовка.
Следующие 4 бита определяют битрейт аудиофайла. Таблица соответствия представлена на рисунке 6.
Рисунок 6 – битрейт файла MP3.
Далее идёт информация о частоте дискретизации файла – рисунок 7.
Рисунок 7 – определение частоты дискретизации в файле MP3.
Бит 22 определяет смещение, что является важным при вычислении размера файла. За ним следует закрытый информационный бит. Следующие 2 бита содержат информацию о режиме канала – рисунок 8.
Рисунок 8 – режим канала.
Далее следуют биты, которые содержат информацию о расширении режима канала, копирайте, акценте.
Также интерес представляет технология создания MP3 файлов. В первую очередь необходимо создать файл в формате WAV из треков на Audio CD. Это возможно осуществить двумя способами: оцифровка звука на аудиокарте и получение аудиоданных непосредственно с носителя.
При использовании первого способа сигнал подаётся на звуковую карту с привода или линейного выхода и создается обычная запись. Этот метод имеет существенный недостаток: в зависимости от качества звуковой карты происходит потеря качества звука из-за шумов звуковой карты. В основном это свойственно недорогим моделям оборудования.
Таким образом, второй путь выглядит предпочтительнее, тем более что теоретически мы должны получить идеальный «цифровой слепок» аудиотрека с компакт-диска. К сожалению, во-первых, не все приводы CD-ROM поддерживают команду Read Long и способны находить звуковые секторы в режиме прямого доступа (обычно программу прямого считывания с компакт-диска полных звуковых секторов приходится подбирать под определенный тип привода), а во-вторых, во время работы возникают некоторые технические осложнения.
Кэширование устройств чтения компакт-дисков с помощью специальных программ также дает зачастую отрицательный эффект, поэтому настоятельно рекомендуется удалять из конфигурационных файлов запуск программ типа SMARTDRV и т. д.
Могут возникнуть и менее серьезные трудности. Так, на диске должно быть достаточно свободного места для создания WAV-файлов, ведь одна минута звучания займет более 10 Мбайт дискового пространства.
Далее, получив WAV-файл на диске, можно приступать к кодированию его в файл MP3. Существует ряд программ, позволяющих преобразовать WAV в MP3.
2.3 Кодирование графической информации
Человеческий глаз воспринимает цветовую информацию в диапазоне волн примерно от 380 нм (синий цвет) до 770 нм (красный цвет). Причем наилучшую чувствительность имеет в районе 520 нм (зеленый цвет). Глаз реагирует на три различных цветовых составляющих. Глаз реагирует на три различных составляющих.
Кодирование изображения подразумевает процесс его дискретизации, т.е. разбиения на отдельные составляющие. Таким образом, графическое изображение представляет собой мозаику, каждому элементу которой соответствует определенный цвет. Качество изображения напрямую зависит от кодирования, а именно – от размера точки и размера применяемой палитры цветов. Чем меньше размер точки – тем выше качество изображения, а чем богаче палитра – тем более натуральным оно является.
Рассмотрим классификацию изображений. В первую очередь они делятся на растровые и векторные.
Растровое изображение представляет собой сетку из пикселей, каждому из которых соответствует определенная позиция и цвет[7]. Подавляющее большинство изображений являются растровыми. Их основными преимуществами являются:
- растровая графика предоставляет возможность создания изображения крайне высокой сложности;
- растровая графика очень широко распространена и используется практически повсеместно;
- растровая графика легко поддаётся редактированию и обработке;
- растровые графические форматы являются естественными для большого количества устройств, работающих с графикой – принтеров, сканеров, фотоаппаратов.
Разумеется, наряду с преимуществами, растровая графика имеет свои недостатки:
- масштабирование без потерь является трудновыполнимой задачей, качество зависит от разрешения изображения напрямую;
- простые изображения занимают большое количество дискового пространства;
- растровые изображения нельзя выводить на печать векторных графопостроителей.
Векторная графика — методика представления графической информации, базирующаяся на математическом описании различных геометрических единиц (примитивов), таких как: точки, отрезки, кривые, различные геометрические фигуры и другие[8].
Основными преимуществами векторной графики являются:
- объём данных, который занимает описательная часть файла изображения, совершенно не имеет зависимости от действительных размеров описываемого объекта, благодаря чему появляется возможность описывать огромные объекты в файлах малого размера. К примеру, для того чтобы описать окружность, требуется лишь задать три числа (если не брать в расчёт дополнительные атрибуты);
- ввиду того, что данные объекта хранятся в форме описания, можно масштабировать графические примитивы при выводе на устройство вывода графических данных, к примеру – можно увеличить дугу окружности и при любом коэффициенте увеличения она останется гладкой. Но в том случае, если на самом деле данная кривая представлена в форме ломаной линии, увеличение продемонстрирует это как нельзя лучше;
- параметры объектов хранятся и могут быть легко изменены. Также это означает что перемещение, масштабирование, вращение, заполнение и т. д. не ухудшает качества рисунка. Более того, обычно указывают размеры в аппаратно-независимых единицах (англ. device-independent unit), которые ведут к наилучшей возможной растеризации на растровых устройствах;
- при масштабировании графических объектов толщина линий может быть задана константой, которая в действительности не зависит от реальной площади описываемого объекта.
Рассмотрим кодирование растрового изображения на примере формата JPEG. Это самый распространенный формат растровой графики. Файлы данного формата представляют собой последовательность так называемых маркеров, которые начинаются с байта 0хFF, который обозначает начало маркера и байта-идентификатора. Отдельные маркеры состоят только из этих маркеров, однако есть те, которые включают в себя различные дополнительные данные, которые состоят из двухбайтового поля с длинной информационной части маркера. Эта форма организации хранения данных позволяет быстро найти маркер с требуемыми данными (например, с длиной строки, числом строк и числом цветовых компонентов сжатого изображения)[9]. Рассмотрим основные маркеры JPEG – таблица 2.
Таблица 2 – основные маркеры в файле JPEG.
Маркер |
Байты |
Длина |
Назначение |
SOI |
0xFFD8 |
нет |
Начало изображения |
SOF0 |
0xFFC0 |
переменный размер |
Начало фрейма |
SOF1 |
0xFFC1 |
переменный размер |
Начало фрейма |
SOF2 |
0xFFC2 |
переменный размер |
Начало фрейма |
DHT |
0xFFC4 |
переменный размер |
Содержит таблицы Хаффмана |
DQT |
0xFFDB |
переменный размер |
Содержит таблицы квантования |
DRI |
0xFFDD |
4 байта |
Указывает длину рестарт-интервала |
SOS |
0xFFDA |
переменный размер |
Начало сканирования |
RSTn |
0xFFDn |
нет |
Перезапуск |
APPn |
0xFFEn |
переменный размер |
Задаётся приложением |
COM |
0xFFFE |
переменный размер |
Комментарий |
EOI |
0xFFD9 |
нет |
Конец закодированной части изображения. |