Pull to refresh

Как современные кодеки изображений жмут звук. JPEG2000 vs MP3

Reading time 3 min
Views 3.7K
В этом эксперименте популярный формат сжатия изображений JPEG2000 будет использоваться для несвойственной ему задачи, хранения звукового файла.

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

Чем больше амплитуда колебаний звукового сигнала по времени, тем громче звук. Аналогом для изображения будет увеличение контрастности.

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

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

Осталась одна небольшая проблема. Звук — это одномерный сигнал, а изображение двумерный. Можно представить, что звуковой файл — это один длинный ряд пикселов, а изображение — это очень много рядов пикселов. Тем не менее, соседние ряды пискелов очень похожи.

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

Для эксперимента был приготовлен полуминутный звуковой файл из моей любимой песни Ame Caleen — A demi-nue. Запись в 16 битном моно формате занимает 2570 KB.

Для этого файла была экспериментально определена основная частота. И затем, как описано выше, запись нарезана на куски равные длине периода этой волны. В результате получился файл изображения. Формат представления пиксела — 16 бит в оттенках серого. То есть полностью соответствует формату звукового образца. Размер изображения 909x1448 пикселей.



Очень удобно, что JPEG2000 поддерживает формат 16-бит/пиксел в оттенках серого. Для сжатия в JPEG2000 использовался ImageMagick. ImageMagick позволяет сжимать изображение слабо или сильно, тем самым влияя на качество результирующей звуковой записи. Соперником ImageMagick был выбран штатный mp3 кодек из пакета Adobe Audition.

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

Мне хотелось оценить, насколько сильно пострадает качество при среднем и сильном сжатии. Подбором параметров кодеков, исходный файл ужимался до 32KB для сильного сжатия и до 400KB для среднего.

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

Для сильного сжатия JPEG2000 производилась дополнительная трансформация изображения (чтобы вытянуть качество звука): уменьшение размера изображения. Уменьшение ширины изображения напоминает уменьшения частоты дискретизации для звука. А уменьшение высоты изображения — что-то вроде ускорения звука.

Также тестировалось lossy сжатие JPEG2000 (то есть сжатие почти без искажений). Файл jp2 ужался до 71% процента по сравнению с нежатым изображением. Неплохо, при том что специализированные lossless кодеки (вроде FLAC и APE) жмут на уровне 40-50%%.
Еще один результат. JPEG XR lossless сжатие показало 81%.

Ниже представлены команды запуска ImageMagick.

Пример для сжатия в 400KB:
convert -depth 16 -size 909x1448 wav.txt.gray -depth 16 -type Grayscale -define jp2:rate=0.1565 tn.jp2
convert tn.jp2 -type Grayscale tn3.gray

Для сжатия 32K:
convert -depth 16 -size 909x1448 wav.txt.gray -depth 16 -type Grayscale -resize -454x924 -define jp2:rate=0.0325 tn.jp2
convert tn.jp2 -type Grayscale -resize -909x1448 tn3.gray

Ниже указана ссылка на файл с результатами. В нем лежат звуковые файлы, полученные кодеками JPEG2000 и mp3, и пример «картинки со звуком».
http://depositfiles.com/files/jmd4yfdf5.
Tags:
Hubs:
+66
Comments 36
Comments Comments 36

Articles