Авторы: Чернышов Александр Викторович, Притыка Сергей Игоревич

Рубрика: Информатика

Опубликовано в Молодой учёный №7 (111) апрель-1 2016 г.

Дата публикации: 03.04.2016

Статья просмотрена: 23 раза

Библиографическое описание:

Чернышов А. В., Притыка С. И. Метод кодирования аудиозаписей для размещения в электронном хранилище музея истории детского движения // Молодой ученый. — 2016. — №7. — С. 29-33.



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

1) формат со сжатием аудиоданных без потерь [1];

2) формат со сжатием аудиоданных с потерями [2].

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

Идеального формата аудиоданных не бывает. Различные типы аудиоформатов имеют как плюсы, так и минусы. Из аудиоданных плохого качества невозможно восстановить аудиосигнал высокого качества. Поэтому при выборе аудиоформатов будем предполагать, что в качестве исходного аудиосигнала всегда используется аудиопоток без сжатия типа WAV [3] или AudioCD. Классические параметры такого потока: 1411 кбит/с, частота дискретизации 44100 кГц.

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

Сжатие с потерями — способ кодирования, который применяется в случае, когда нужно как можно сильнее сжать данные, сохранив при этом приемлемое качество звучания. Кодирование с потерями основывается на том, что из исходного несжатого материала удаляется часть информации, которая не приводит к сильному искажению звучания. Как следствие обеспечивается повышение уровня сжатия [4].

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

Основными требованиями к выбору аудиоформатов (и для сжатия без потерь, и для сжатия с потерями) являлись:

– отсутствие лицензионных ограничений;

– открытость формата;

– наличие программ кодирования и декодирования с открытым исходным кодом;

– кроссплатформенность;

– многоканальность.

Было установлено, что сформулированным требованиям удовлетворяют форматы Flac, Wavpack, Oggvorbis.

Flac

Flac [6] — это кодек для сжатия аудио данных, изначально написанный Джошем Колсоном. Flacосуществляет сжатие данных, оставляя при этом их идентичными оригиналу, таким образом, ни одна часть данных не теряется — это и является основной задачей алгоритмов сжатия без потерь. Степень сжатия форматаFlac, как правило, варьируется от 50 % до 60 % от оригинального размера.

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

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

WavPack

WavPack — открытый, бесплатный аудиокодек, разработанный Дэвидом Брайантом. Изначально он был lossless-кодеком. Однако в нем появилась возможность, выделяющая его — гибридный режим.

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

WavPackподдерживает высокие частоты дискретизации и позволяет сжимать 8/16/24/32-битные аудиофайлы. В lossless-режиме работает подобно архиватору типа Zip. Степень сжатия зависит от конкретного типа аудио — аудиозаписи с более широким диапазоном частот сжимаются сильнее. В среднем, при lossless-режиме можно рассчитывать на 50 % [7].

Oggvorbis

Vorbis — свободный формат сжатия звука с потерями, официально появившийся летом 2002 года. Используется в компьютерных играх и для подкастов [8].

Vorbis идеален для применения в качестве звуковых дорожек фильмов, так как не изменяет их длину при переменном битрейте, что позволяет сохранять синхронность с видеодорожкой и применим для многоканального звука (например, 6-канальный звук).

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

Формат имеет гибкую систему тегов. Заголовок тегов легко расширяется и позволяет включать тексты любой длины и сложности (например, текст песни), перемежающиеся изображениями (например, фотографиями обложек альбомов). Текстовые теги хранятся в UTF-8, что позволяет писать на нескольких языках одновременно и исключает возможные проблемы с кодировками.

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

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

В противоположность WavPack, форматы Flac (сжатие без потерь) и ogg vorbis (сжатие с потерями) поддерживаются гораздо шире, в том числе непосредственно в ряде плееров. Поэтому выбор именно этих форматов для использования в ИПС можно считать наиболее обоснованным.

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

Аудиокодек формата Flac допускает кодирование с уровнями сжатия от 0 до 8. Был проведён эксперимент по сжатию аудиофайла в формат Flac с разными уровнями сжатия двумя свободно распространяемыми программами (Fre:ac [9] и Germanix Transcoder [10]). При этом использовался исходный файл с характеристиками:

– Формат: Wav;

– Битрейт: 1414 кб/с;

– Размер:40 132 525 байт;

– Длительность: 3:47 мин;

– Частота: 44100 Гц.

Результаты экспериментов приведены в таблице 1.

Таблица 1

Характеристики аудиозаписи при сжатии разными уровнями кодека Flac

Программа

Уровень сжатия

Время, с

Размер, Мб

Битрейт, кб/с

Fre:ac

0

2,29

30,328928

1069

1

2,37

30,179341

1064

2

2,4

30,087614

1060

3

2,45

29,573474

1042

4

2,52

29,387187

1036

5

2,9

29,333782

1034

6

4,08

29,273257

1032

7

4,2

29,250964

1031

8

6

29,237793

1030

Germanix Transcoder

0

3,85

30,333327

1066

1

4,02

30,18374

1061

2

4,11

30,092013

1058

3

4,14

29,551747

1039

4

4,2

29,362598

1032

5

4,3

29,311711

1030

6

4,4

29,311393

1030

7

5,9

29,30182

1030

8

7

29,278565

1029

По таблице 1 для наглядности построим графики зависимости итогового размера сжатого файла от уровня сжатия и времени сжатия от уровня сжатия для каждой программы (рис. 1–4).

Рис. 1. Соотношение уровень сжатия — размер при сжатии кодеком Flac программе Fre:ac

Рис. 2. Соотношение уровень сжатия — время при сжатии кодеком Flac в программе Fre:ac

Рис. 3. Соотношение уровень сжатия — размер при сжатии кодеком Flac в программе GermanixTranscoder

Рис. 4. Соотношение уровень сжатия — время при сжатии кодеком Flac в программе GermanixTranscoder

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

Литература:

  1. Сжатие аудиоинформации без потерь. URL: http://www.intuit.ru/studies/courses/511/367/lecture/8699?page=1 (Дата обращения: 7.04.2015)
  2. Форматы сжатия аудиоданных с потерями. URL: http://www.intuit.ru/studies/courses/511/367/lecture/8699?page=1 (Дата обращения: 7.04.2015)
  3. Батов Сергей. Форматы звуковых файлов часть 1 // «Звукорежиссер» — информационно-технический журнал предназначенный для специалистов в области профессиональных звуковых технологий. Статья от 1999 г. URL: http://www.linuxlib.ru/mmedia/sndfl1.htm (Дата обращения 14.10.2015).
  4. Сергей Кайбер. Форматы аудио файлов. URL: http://allfrets.ru/studiotheory/audiofiles (Дата обращения 03.10.2015).
  5. Цифровой звук: теория. // «Upgrade» — журнал, посвященный комплектующим, мониторам, устройствам мультимедиа — всему, из чего состоит современный ПК. Статьяот 16.04.2005 г. URL: http://www.npk.ru/articles/article.html?io=1&id=126&pv=1 (Дата обращения: 11.10.2015).
  6. Whatisflac? URL: https://xiph.org/flac/ (Дата обращения 08.11.2015).
  7. WavPack звук без потерь // «LinuxFormat» — журнал, посвященный операционной системе Linux. Статья от 25.12.2009 г. URL: http://wiki.linuxformat.ru/wiki/LXF99:WavPack (Дата обращения: 03.10.2015).
  8. Знакомьтесь: OggVorbis — современный формат аудиосжатия. URL: http://vorbis.org.ru (Дата обращения: 23.11.2015)
  9. Welcome to the fre:ac project. URL: http://www.freac.org (Дата обращения: 04.12.2015).
  10. James Thornton. Convert audio files into virtually any format you want. URL: http://germanix-transcoder.en.softonic.com (Дата обращения: 04.12.2015).
Основные термины (генерируются автоматически): Дата обращения, уровень сжатия, Степень сжатия, уровня сжатия, уровнями сжатия, Степень сжатия форматаFlac, сжатия большего уровня, повышение уровня сжатия, сжатия типа wav, Современные алгоритмы сжатия, формат сжатия звука, сжатия аудио данных, задачей алгоритмов сжатия, разными уровнями сжатия, «насыщение» алгоритма сжатия, увеличение уровня сжатия, процедуру сжатия, уровне сжатия, потерями качества, сжатием аудиоданных.

Обсуждение

Социальные комментарии Cackle
Задать вопрос