Файл: Методы кодирования данных (Кодирование аудиоданных в формате WAV).pdf

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

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

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

Добавлен: 24.04.2023

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

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

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

Таблица 1 – основные теги в файле TIFF.

Код

HEX

Название

Описание

254

0x00FE

NewSubfileType

Тип данных, хранящихся в этом файле. Эта метка является заменой метке SubfileType, и является очень полезным, когда в одном TIFF файле хранится несколько изображений.

255

0x00FF

SubfileType

Тип данных, хранящихся в этом файле (старый).

256

0x0100

ImageWidth

Количество столбцов в изображении.

257

0x0101

ImageLength

Количество строк в изображении.

258

0x0102

BitsPerSample

Количество бит в компоненте. Эта метка предполагает различное число битов в каждом компоненте (хотя в большинстве случаев оно одинаковое). Например, для RGB может быть 8 для всех компонентов — красного, зелёного и голубого, или 8,8,8 для каждого из компонентов.

259

0x0103

Compression

Используемый вид компрессии.

262

0x0106

PhotometricInterpretation

Используемая цветовая модель.

263

0x0107

Threshholding

Вид преобразования серого в чёрное и белое для черно-белых изображений.

264

0x0108

CellWidth

Количество колонок в матрице преобразования из серого в чёрное и белое.

265

0x0109

CellHeight

Количество строк в матрице преобразования из серого в чёрное и белое.

266

0x010A

FillOrder

Логический порядок битов в байте.

270

0x010E

ImageDescription

Описание изображения.

271

0x010F

Make

Производитель изображения.

272

0x0110

Model

Модель или серийный номер.

273

0x0111

StripOffsets

Смещение для каждой полосы изображения в байтах.

274

0x0112

Orientation

Ориентация изображения.

277

0x0115

SamplesPerPixel

Количество компонентов на пиксель.

278

0x0116

RowsPerStrip

Количество строк на полосу.

279

0x0117

StripByteCounts

Количество байт на полосу после компрессии.

280

0x0118

MinSampleValue

Минимальное значение, используемое компонентом.

281

0x0119

MaxSampleValue

Максимальное значение, используемое компонентом.

282

0x011A

XResolution

Количество пикселей в ResolutionUnit строки.

283

0x011B

YResolution

Количество пикселей в ResolutionUnit столбца.

284

0x011C

PlanarConfiguration

Метод хранения компонентов каждого пикселя.

288

0x0120

FreeOffsets

Смещение в байтах к строке неиспользуемых байтов.

289

0x0121

FreeByteCounts

Количество байтов в строке неиспользуемых байтов.

290

0x0122

GrayResponseUnit

Разрешение данных, хранящихся в GrayResponseCurve.

291

0x0123

GrayResponseCurve

Величина плотности серого.

296

0x0128

ResolutionUnit

Разрешение данных, хранящихся в XResolution, YResolution.

305

0x0131

Software

Имя и версия программного продукта.

306

0x0132

DateTime

Дата и время создания изображения.

315

0x013B

HostComputer

Компьютер и операционная система, использованные при создании изображения.

316

0x013C

Artist

Имя создателя изображения.

320

0x0140

ColorMap

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

338

0x0152

ExtraSamples

Описание дополнительных компонентов.

33432

0x8298

Copyright

Имя владельца прав на хранимое изображение.


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

Кроме того, сам по себе цвет часто кодируется при помощи шестнадцатиричного кода[8]. Каждому цвету соответствует шестиразрядный код в шестнадацтиричной системе счисления. Он делится на три секции по два разряда: #RRGGBB, где RR – доля красного цвета, GG – доля зеленого цвета, BB – доля голубого цвета. В качестве примера можно рассмотреть часть таблицы веб-цветов (безопасных цветов). Она приведена на рисунке 4.

Рисунок 3 – часть таблицы безопасных цветов.

Кодирование аудиоданных в формате WAV

Для представления звука в цифровых форматах, в каждый единичный интервал времени производится измерение амплитуды сигнала. В силу того, что сам по себе звук имеет волновую природу, для точного представления его в цифровом виде, необходимо также непрерывно измерять амплитуду колебаний. В действительности, количество измерений в секунду, называемое частотой дискретизации, варьируется от 10000 до 96000. Наиболее часто применяется частоты 44100 и 48000 Гц. В качестве амплитудной градации (разрешения) применяют 28, 216 и 224 бита. Само собой, при оцифровке аудиосигнала возникают искажения и отклонения, которые напрямую зависят от частоты дискретизации и разрешения. Высокочастотные искажения могут подавляться при помощи специальных фильтров, которые размещаются на выходе цифро-аналогового преобразователя[9].

Звук в цифровом формате занимает достаточно большой объём памяти. Для примера возьмём аудиофайл, длительность которого составляет 60 секунд, частота дискретизации равна 44100 Герц, а разрешение – 16 бит. Такой файл занимает чуть более 10 мегабайт дискового пространства.

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

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


Заголовок файла содержит информацию о:

  • размере аудиофайла;
  • каналах;
  • частоте дискретизации;
  • глубине звучания.

Эти термины уже были озвучены ранее, и их определение было дано, поэтому перейдем к структуре файла WAV, а именно - к заголовку. Его структура описана в таблице 2.

Таблица 2 – структура файла WAV.

0-3

chunkId

Содержит символы «RIFF» в ASCII кодировке 0x52494646. Является началом RIFF-цепочки.

4-7

chunkSize

Это оставшийся размер цепочки, начиная с этой позиции. Иначе говоря, это размер файла минус 8, то есть, исключены поля chunkId и chunkSize.

8-11

format

Содержит символы «WAVE» 0x57415645

12-15

subchunk1Id

Содержит символы "fmt " 0x666d7420

16-19

subchunk1Size

16 для формата PCM. Это оставшийся размер подцепочки, начиная с этой позиции.

20-21

audioFormat

Аудио формат, список допустипых форматов. Для PCM= 1 (то есть, Линейное квантование). Значения, отличающиеся от 1, обозначают некоторый формат сжатия.

22-23

numChannels

Количество каналов. Моно = 1, Стерео = 2 и т.д.

24-27

sampleRate

Частота дискретизации. 8000 Гц, 44100 Гц и т.д.

28-31

byteRate

Количество байт, переданных за секунду воспроизведения.

32-33

blockAlign

Количество байт для одного сэмпла, включая все каналы.

34-35

bitsPerSample

Количество бит в сэмпле. Так называемая «глубина» или точность звучания. 8 бит, 16 бит и т.д.

36-39

subchunk2Id

Содержит символы «data» 0x64617461

40-43

subchunk2Size

Количество байт в области данных.

44-

data

Непосредственно WAV-данные.

Методы кодирования символьных данных. Кодировка Unicode и ASCII

Unicode – одна из наиболее популярных кроссплатформенных мультиязычных кодировок, которая используется для описания различных текстовых символов. В Unicode есть большое количество символов и национальных литералов.

В Unicode для кодирования символов предоставляется 31 бит (4 байта за вычетом одного бита). Количество возможных комбинаций дает запредельное число: 231 = 2 147 483 684 (т.е. более двух миллиардов). Поэтому Unicode описывает алфавиты всех известных языков, даже «мертвых» и выдуманных, включает многие математические и иные специальные символы. Однако информационная емкость 31-битового Unicode все равно остается слишком большой. Поэтому чаще используется сокращенная 16-битовая версия (216 = 65 536 значений), где кодируются все современные алфавиты. Данная кодировка частично совпадает с ASCII (одинаковые коды имеют первые 128 символов).


Рассмотрим методику наложения символов в Unicode для получения специальных литералов. Это происходит с использованием различных методологий. На рисунке 4 представлен пример получения некоторых символов путем совмещения в формате NFD – рекурсивного сложения.

Рисунок 4 – сложение символов Unicode в методологии NFD.

Методология NFKD позволяет получить совмещенные символы в форме совместной декомпозиции. Пример использования данной методологии приведен на рисунке 5.

Рисунок 5 – сложение символов с использованием NFKD.

Также существуют и другие методологии для сложения символов в данной кодировке.

Далее следует рассмотреть кодировку символов в машинном представлении – UTF-8, одной из базовых составляющих Unicode.

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

Рисунок 6 – соответствие диапазона номеров символов количеству байт в Unicode.

Далее производится установка старших битов:

  • 0, если требуется 1 байт;
  • 110, если требуется 2 байта;
  • 1110, если требуется 3 байта;
  • 11110, если требуется 4 байта.

Рисунок 7 – шаблон кодирования символов.

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

Рисунок 8 – примеры кодирования символов.

Чтобы указать на то, что файл содержит символы в кодировке Unicode, в заголовке файла выставляются преамбулы – маркеры последовательности. Они показаны на рисунке 9.

Рисунок 9 – маркеры последовательности в Unicode.

ASCII (American standard code for information interchange) — одна из наиболее распространенных и самая поддерживаемая из существующих на данный момент кодировка для представления распространенных символов, разработанная в Соединенных Штатах Америки в 1963 году[4]. В данной таблице кодировки приводятся однобайтные коды для следующих групп символов:

  • арабские цифры;
  • латинский алфавит (верхний и нижний регистры);
  • знаки пунктуации;
  • управляющие знаки;
  • дополнительные буквы национальных алфавитов.

В ASCII коды цифр начинаются с 0011 в двоичной системе, а заканчиваются самим значением представляемого числа в данной системе счисления. К примеру, 0101 – двоичный код числа 5, а 01110101 – код символа «5» в таблице ASCII. Таким образом, каждое число в двоичной системе счисления можно превратить в строку ASCII путем добавления к каждому из них префикса 0011.

Кодирование видеоданных. Формат AVI

Формат AVI – RIFF-видеоформат, разработанный компанией Microsoft в 1992 году. Файлы с расширением AVI могут содержать видео- и аудиоданные, сжатые с использованием разных комбинаций кодеков, что позволяет синхронно воспроизводить видео со звуком. Файл AVI может содержать различные виды компрессированных данных (например, DivX-видео + WMA-аудио или Indeo-видео + PCM-аудио), в зависимости от того, какой кодек используется для кодирования/декодирования. Как и DVD, файлы AVI поддерживают многопоточное аудио-видео.

Файл начинается с заголовка, который приведен на рисунке 10.

Рисунок 10 – заголовок файла AVI.

В заголовке указывается различная информация: частота кадров, потоки, флаги, общее количество кадров, ширина и высота видео, размер буфера и другие параметры.

Сам по себе файл AVI состоит из файлов формата RIFF. Они основаны на понятии «чанк», т.е. блок, содержащий три поля: заголовок, указателя размера чанка и самих графических данных. Формат чанка приведен на рисунке 11.

Рисунок 11 – формат чанка RIFF.

Также AVI содержит аудиоданные, которые кодируются в зависимости от своего формата.

Заключение

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

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

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