LXF99:WavPack

Материал из Linuxformat.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: ==''WavPack'' Cжатие: с потерями, но без потерь== :''WavPack'': Не иди на компромисс! :Убеждены, что отношение качест...)
Строка 4: Строка 4:
:Убеждены, что отношение качества аудиозаписи к размеру содержащего ее файла - величина постоянная? '''Александр Супрунов''' готов сломать этот стереотип.
:Убеждены, что отношение качества аудиозаписи к размеру содержащего ее файла - величина постоянная? '''Александр Супрунов''' готов сломать этот стереотип.
-
:С ростом мощностей компьютеров, увеличением емкости жестких дисков и благодаря широкому распространению DVD начали набирать популярность так называемые lossless-кодеки для сжатия звука. Другими словами, уже можно переставать мириться с потерями форматов MPEG Layer 3 или Ogg Vorbis и перейти на следующий уровень, применяя для аудиоданных сжатие без потерь.
+
С ростом мощностей компьютеров, увеличением емкости жестких дисков и благодаря широкому распространению DVD начали набирать популярность так называемые lossless-кодеки для сжатия звука. Другими словами, уже можно переставать мириться с потерями форматов MPEG Layer 3 или Ogg Vorbis и перейти на следующий уровень, применяя для аудиоданных сжатие без потерь.
-
:На сегодня существует достаточно большое семейство lossless-кодеков: ''FLAC'' (Free Lossless Audio Codec), ''Monkey’s Audio'', ''WavPack'' и даже ''WMA9''. Записи, сжатые такими кодеками, имеют больший размер. По крайней мере, так считалось, пока не появился гибридный режим ''WavPack'', позволяющий использовать сжатие с потерями, ничего не теряя! О нем сегодня и пойдет речь.
+
На сегодня существует достаточно большое семейство lossless-кодеков: ''FLAC'' (Free Lossless Audio Codec), ''Monkey’s Audio'', ''WavPack'' и даже ''WMA9''. Записи, сжатые такими кодеками, имеют больший размер. По крайней мере, так считалось, пока не появился гибридный режим ''WavPack'', позволяющий использовать сжатие с потерями, ничего не теряя! О нем сегодня и пойдет речь.
{{Врезка
{{Врезка
Строка 15: Строка 15:
===Что это?===
===Что это?===
-
:''WavPack'' – бесплатный открытый аудиокодек, разработанный Дэвидом Брайантом [David Bryant] и распространяющийся по лицензии BSD. Изначально ''WavPack'' был сугубо lossless-кодеком, но позднее в нем появилась уникальная возможность, резко выделяющая его из череды других решений – гибридный режим.
+
''WavPack'' – бесплатный открытый аудиокодек, разработанный Дэвидом Брайантом [David Bryant] и распространяющийся по лицензии BSD. Изначально ''WavPack'' был сугубо lossless-кодеком, но позднее в нем появилась уникальная возможность, резко выделяющая его из череды других решений – гибридный режим.
-
:При кодировании в этом режиме создаются два файла – один сжат по принципу '''lossy (.wv)''' и несет все преимущества такого сжатия (имеет минимальный размер) и второй – корректирующий '''(.wvc)'''. Он используется при восстановлении потерянных данных с помощью утилиты ''WvUnpack'' – что позволяет бескомпромиссно решить вечную проблему выбора между качеством и количеством.
+
При кодировании в этом режиме создаются два файла – один сжат по принципу '''lossy (.wv)''' и несет все преимущества такого сжатия (имеет минимальный размер) и второй – корректирующий '''(.wvc)'''. Он используется при восстановлении потерянных данных с помощью утилиты ''WvUnpack'' – что позволяет бескомпромиссно решить вечную проблему выбора между качеством и количеством.
-
:''WavPack'' поддерживает высокие частоты дискретизации и позволяет сжимать 8/16/24/32-битные аудиофайлы. В lossless-режиме ''WavPack'' работает подобно стандартному архиватору вроде Zip, не приводит к деградации записей, как это происходит в форматах MP3 или Ogg и является идеальным способом архивирования аудиоконтента. Степень сжатия зависит от музыкального материала: композиции с более широким динамическим диапазоном сжимаются сильнее. В среднем, при lossless-режиме можно рассчитывать на 50%. В гибридном режиме lossy-файл будет лишь слегка превосходить по размерам файлы вездесущего MP3.
+
''WavPack'' поддерживает высокие частоты дискретизации и позволяет сжимать 8/16/24/32-битные аудиофайлы. В lossless-режиме ''WavPack'' работает подобно стандартному архиватору вроде Zip, не приводит к деградации записей, как это происходит в форматах MP3 или Ogg и является идеальным способом архивирования аудиоконтента. Степень сжатия зависит от музыкального материала: композиции с более широким динамическим диапазоном сжимаются сильнее. В среднем, при lossless-режиме можно рассчитывать на 50%. В гибридном режиме lossy-файл будет лишь слегка превосходить по размерам файлы вездесущего MP3.
-
:Прежде чем углубляться в сферу практического использования ''WavPack'', давайте рассмотрим основные преимущества кодека. Это, в первую очередь, быстрое сжатие (существует возможность кодировать симметрично/асимметрично, что позволяет влиять на время декомпрессии), открытый исходный код, гибридный режим, поддержка многоканального звука, аппаратная поддержка (iRiver H10/H1xx/H3xx, iAudio X5, Apple iPod, Toshiba Gigabeat), мультиплатформенность, ReplayGain (технология, уравнивающая громкость разных файлов при воспроизведении) и много чего другого. Хотелось бы еще раз подчеркнуть очень быстрое сжатие – в несколько раз более быстрее, чем сжатие в MP3 кодеком ''Lame''.
+
Прежде чем углубляться в сферу практического использования ''WavPack'', давайте рассмотрим основные преимущества кодека. Это, в первую очередь, быстрое сжатие (существует возможность кодировать симметрично/асимметрично, что позволяет влиять на время декомпрессии), открытый исходный код, гибридный режим, поддержка многоканального звука, аппаратная поддержка (iRiver H10/H1xx/H3xx, iAudio X5, Apple iPod, Toshiba Gigabeat), мультиплатформенность, ReplayGain (технология, уравнивающая громкость разных файлов при воспроизведении) и много чего другого. Хотелось бы еще раз подчеркнуть очень быстрое сжатие – в несколько раз более быстрее, чем сжатие в MP3 кодеком ''Lame''.
===Приступим к делу===
===Приступим к делу===
-
:Ну что же, давайте попрактикуемся. Вероятно, кодек ''WavPack'' уже есть в вашем дистрибутиве (в моем ALT Linux 4.0 – точно), если же нет – ищите соответствующие RPM/Deb-пакеты или скачивайте исходные коды. Официальный сайт кодека – http://www.wavpack.com, но вы также можете найти ''WavPack'' на нашем DVD. Сборка из исходных текстов не вызывает сложностей и ограничивается стандартными
+
Ну что же, давайте попрактикуемся. Вероятно, кодек ''WavPack'' уже есть в вашем дистрибутиве (в моем ALT Linux 4.0 – точно), если же нет – ищите соответствующие RPM/Deb-пакеты или скачивайте исходные коды. Официальный сайт кодека – http://www.wavpack.com, но вы также можете найти ''WavPack'' на нашем DVD. Сборка из исходных текстов не вызывает сложностей и ограничивается стандартными
-
:'''./configure''' (можете указать ключ '''--enable-mmx''' для использования MMX-инструкций вашего процессора), '''make''' и '''make install'''.
+
'''./configure''' (можете указать ключ '''--enable-mmx''' для использования MMX-инструкций вашего процессора), '''make''' и '''make install'''.
-
:Следующий вопрос – откуда взять неискаженный звук? Можно, например, «оцифровать» CD. Этот вопрос я оставлю на самостоятельное изучение, скажу лишь, что для решения задачи существуют как графические ('''KAudioCreator'''), так и консольные утилиты. Важно лишь иметь возможность получить на выходе файл в формате WAV. В дальнейшем я буду предполагать, что он называется '''forest.wav'''.
+
Следующий вопрос – откуда взять неискаженный звук? Можно, например, «оцифровать» CD. Этот вопрос я оставлю на самостоятельное изучение, скажу лишь, что для решения задачи существуют как графические ('''KAudioCreator'''), так и консольные утилиты. Важно лишь иметь возможность получить на выходе файл в формате WAV. В дальнейшем я буду предполагать, что он называется '''forest.wav'''.
-
:Перейдите в консоль и наберите WavPack. В окне терминала отобразятся ключи, которые можно использовать при кодировании, и синтаксис команды:
+
Перейдите в консоль и наберите WavPack. В окне терминала отобразятся ключи, которые можно использовать при кодировании, и синтаксис команды:
<code>
<code>
Строка 37: Строка 37:
</code>
</code>
-
:В простейшем случае достаточно указать оригинальный файл и название выходного файла в формате ''WavPack'' ('''.wv'''), используя ключ '''-o''':
+
В простейшем случае достаточно указать оригинальный файл и название выходного файла в формате ''WavPack'' ('''.wv'''), используя ключ '''-o''':
<code>
<code>
Строка 43: Строка 43:
</code>
</code>
-
:В результате будет создан файл '''forest.wv''', сжатый lossless-кодеком. В моем случае его размер файла уменьшился с 24,1 МБ до 10,9 МБ, и заметьте – без деградации аудиоматериала. Пожелав улучшить (или ухудшить) этот результат, я мог бы воспользоваться следующими ключами:
+
В результате будет создан файл '''forest.wv''', сжатый lossless-кодеком. В моем случае его размер файла уменьшился с 24,1 МБ до 10,9 МБ, и заметьте – без деградации аудиоматериала. Пожелав улучшить (или ухудшить) этот результат, я мог бы воспользоваться следующими ключами:
* '''-bn''' Включает гибридный режим. Значение n указывает число бит на сэмпл (от 2.0 до 23.9).
* '''-bn''' Включает гибридный режим. Значение n указывает число бит на сэмпл (от 2.0 до 23.9).
* '''-c''' Создает корректирующий файл ('''.wvc''') для гибридного режима;
* '''-c''' Создает корректирующий файл ('''.wvc''') для гибридного режима;
Строка 51: Строка 51:
* '''-x''' Увеличивает скорость декодирования в будущем за счет замедления кодирования в настоящм.
* '''-x''' Увеличивает скорость декодирования в будущем за счет замедления кодирования в настоящм.
-
:Полный список ключей можно получить, набрав '''wavpack --help'''.
+
Полный список ключей можно получить, набрав '''wavpack --help'''.
===Высший пилотаж===
===Высший пилотаж===
-
:Настало время активировать самый интересный, гибридный режим. За него отвечают ключи '''-b''' и '''-c'''. Если не использовать '''-с''', то корректирующий файл создан не будет и вы получите обычное lossy-сжатие без
+
Настало время активировать самый интересный, гибридный режим. За него отвечают ключи '''-b''' и '''-c'''. Если не использовать '''-с''', то корректирующий файл создан не будет и вы получите обычное lossy-сжатие без
возможности восстановить оригинал. Например, набрав
возможности восстановить оригинал. Например, набрав
Строка 70: Строка 70:
качество будет повыше, но и размер выходного файла, соответственно, увеличится.
качество будет повыше, но и размер выходного файла, соответственно, увеличится.
-
:Но мы, помнится, собрались здесь вовсе не для того, чтобы сжимать аудио lossy-кодеком. Давайте создадим корректирующий файл, способный вернуть оригинальное звучание без потерь. Для это пригодится ключ '''-с''':
+
Но мы, помнится, собрались здесь вовсе не для того, чтобы сжимать аудио lossy-кодеком. Давайте создадим корректирующий файл, способный вернуть оригинальное звучание без потерь. Для это пригодится ключ '''-с''':
<code>
<code>
Строка 76: Строка 76:
</code>
</code>
-
:В результате будет создан выходной файл '''forest.wv''' и корректирующий файл '''forest.wvc'''. Оптимальный, на мой взгляд, результат дает строка вида:
+
В результате будет создан выходной файл '''forest.wv''' и корректирующий файл '''forest.wvc'''. Оптимальный, на мой взгляд, результат дает строка вида:
<code>
<code>
Строка 82: Строка 82:
</code>
</code>
-
:Она создает корректирующий файл и одновременно удаляет оригинальный. При таком раскладе размер файла уменьшается с 24 МБ до 3,4 МБ ('''forest.wv'''), а корректирующий файл '''forest.wvc''' занимает 8,4 МБ.
+
Она создает корректирующий файл и одновременно удаляет оригинальный. При таком раскладе размер файла уменьшается с 24 МБ до 3,4 МБ ('''forest.wv'''), а корректирующий файл '''forest.wvc''' занимает 8,4 МБ.
-
:Но в вашей аудиоколлекции наверняка будет больше одного файла. Чтобы разобраться с ними скопом, используйте команду вида
+
Но в вашей аудиоколлекции наверняка будет больше одного файла. Чтобы разобраться с ними скопом, используйте команду вида
<code>
<code>
Строка 90: Строка 90:
</code>
</code>
-
:Остается последний вопрос: на чем прослушать эту новенькую,только что сконвертированную в коллекцию «'''.wv + .wvc'''»? О, здесь изобилие вариантов: поддержка ''WavPack'' добавлена в ''FFmpeg'' и ''xine-lib'', а значит, доступна через большинство популярных оболочек. Попробуйте ''Amarok, Audacious, Quod  Libet, XMMS''... А удовлетворившись программными проигрывателями, присмотритесь к аппаратным. Забудьте MP3, живите в XXI веке, используйте lossless-кодеки, Linux, бластеры и флаеры. Будущее не остановить! '''LXF'''
+
Остается последний вопрос: на чем прослушать эту новенькую,только что сконвертированную в коллекцию «'''.wv + .wvc'''»? О, здесь изобилие вариантов: поддержка ''WavPack'' добавлена в ''FFmpeg'' и ''xine-lib'', а значит, доступна через большинство популярных оболочек. Попробуйте ''Amarok, Audacious, Quod  Libet, XMMS''... А удовлетворившись программными проигрывателями, присмотритесь к аппаратным. Забудьте MP3, живите в XXI веке, используйте lossless-кодеки, Linux, бластеры и флаеры. Будущее не остановить! '''LXF'''

Версия 09:50, 12 марта 2008

Содержание

WavPack Cжатие: с потерями, но без потерь

WavPack: Не иди на компромисс!
Убеждены, что отношение качества аудиозаписи к размеру содержащего ее файла - величина постоянная? Александр Супрунов готов сломать этот стереотип.

С ростом мощностей компьютеров, увеличением емкости жестких дисков и благодаря широкому распространению DVD начали набирать популярность так называемые lossless-кодеки для сжатия звука. Другими словами, уже можно переставать мириться с потерями форматов MPEG Layer 3 или Ogg Vorbis и перейти на следующий уровень, применяя для аудиоданных сжатие без потерь.

На сегодня существует достаточно большое семейство lossless-кодеков: FLAC (Free Lossless Audio Codec), Monkey’s Audio, WavPack и даже WMA9. Записи, сжатые такими кодеками, имеют больший размер. По крайней мере, так считалось, пока не появился гибридный режим WavPack, позволяющий использовать сжатие с потерями, ничего не теряя! О нем сегодня и пойдет речь.

Скорая помощь

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

Что это?

WavPack – бесплатный открытый аудиокодек, разработанный Дэвидом Брайантом [David Bryant] и распространяющийся по лицензии BSD. Изначально WavPack был сугубо lossless-кодеком, но позднее в нем появилась уникальная возможность, резко выделяющая его из череды других решений – гибридный режим.

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

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

Прежде чем углубляться в сферу практического использования WavPack, давайте рассмотрим основные преимущества кодека. Это, в первую очередь, быстрое сжатие (существует возможность кодировать симметрично/асимметрично, что позволяет влиять на время декомпрессии), открытый исходный код, гибридный режим, поддержка многоканального звука, аппаратная поддержка (iRiver H10/H1xx/H3xx, iAudio X5, Apple iPod, Toshiba Gigabeat), мультиплатформенность, ReplayGain (технология, уравнивающая громкость разных файлов при воспроизведении) и много чего другого. Хотелось бы еще раз подчеркнуть очень быстрое сжатие – в несколько раз более быстрее, чем сжатие в MP3 кодеком Lame.

Приступим к делу

Ну что же, давайте попрактикуемся. Вероятно, кодек WavPack уже есть в вашем дистрибутиве (в моем ALT Linux 4.0 – точно), если же нет – ищите соответствующие RPM/Deb-пакеты или скачивайте исходные коды. Официальный сайт кодека – http://www.wavpack.com, но вы также можете найти WavPack на нашем DVD. Сборка из исходных текстов не вызывает сложностей и ограничивается стандартными

./configure (можете указать ключ --enable-mmx для использования MMX-инструкций вашего процессора), make и make install.

Следующий вопрос – откуда взять неискаженный звук? Можно, например, «оцифровать» CD. Этот вопрос я оставлю на самостоятельное изучение, скажу лишь, что для решения задачи существуют как графические (KAudioCreator), так и консольные утилиты. Важно лишь иметь возможность получить на выходе файл в формате WAV. В дальнейшем я буду предполагать, что он называется forest.wav.

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

 wavpack [-options] [@]infile[.wav]|- [...] [-o [@]outfile[.wv]|

В простейшем случае достаточно указать оригинальный файл и название выходного файла в формате WavPack (.wv), используя ключ -o:

wavpack forest.wav -o forest.wv

В результате будет создан файл forest.wv, сжатый lossless-кодеком. В моем случае его размер файла уменьшился с 24,1 МБ до 10,9 МБ, и заметьте – без деградации аудиоматериала. Пожелав улучшить (или ухудшить) этот результат, я мог бы воспользоваться следующими ключами:

  • -bn Включает гибридный режим. Значение n указывает число бит на сэмпл (от 2.0 до 23.9).
  • -c Создает корректирующий файл (.wvc) для гибридного режима;
  • -cc обеспечивает максимальную (для гибридного же режима) степень сжатия.
  • -f Быстрый режим: повышает скорость работы, понижает степень сжатия.
  • -h Опция, обратная -f. Сжимает медленно, но верно. Если же вам и этого мало, используйте -hh: качество и степень сжатия будут очень высокими, но использовать такой файл в портативном проигрывателе не рекомендуется.
  • -x Увеличивает скорость декодирования в будущем за счет замедления кодирования в настоящм.

Полный список ключей можно получить, набрав wavpack --help.

Высший пилотаж

Настало время активировать самый интересный, гибридный режим. За него отвечают ключи -b и -c. Если не использовать , то корректирующий файл создан не будет и вы получите обычное lossy-сжатие без возможности восстановить оригинал. Например, набрав

wavpack -b2.0 forest.wav -o forest.wv

вы получите ролик наихудшего возможного качества и отсутствие корректирующего файла. Можете считать это аналогом MP3. В варианте

wavpack -b16 forest.wav -o forest.wv

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

Но мы, помнится, собрались здесь вовсе не для того, чтобы сжимать аудио lossy-кодеком. Давайте создадим корректирующий файл, способный вернуть оригинальное звучание без потерь. Для это пригодится ключ :

wavpack -cb16 forest.wav -o forest.wv

В результате будет создан выходной файл forest.wv и корректирующий файл forest.wvc. Оптимальный, на мой взгляд, результат дает строка вида:

wavpack -chhdb16 forest.wav -o forest.wv

Она создает корректирующий файл и одновременно удаляет оригинальный. При таком раскладе размер файла уменьшается с 24 МБ до 3,4 МБ (forest.wv), а корректирующий файл forest.wvc занимает 8,4 МБ.

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

wavpack -chdb2.0 *.wav -o /home/suprunov/music/

Остается последний вопрос: на чем прослушать эту новенькую,только что сконвертированную в коллекцию «.wv + .wvc»? О, здесь изобилие вариантов: поддержка WavPack добавлена в FFmpeg и xine-lib, а значит, доступна через большинство популярных оболочек. Попробуйте Amarok, Audacious, Quod  Libet, XMMS... А удовлетворившись программными проигрывателями, присмотритесь к аппаратным. Забудьте MP3, живите в XXI веке, используйте lossless-кодеки, Linux, бластеры и флаеры. Будущее не остановить! LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию