Журнал LinuxFormat - перейти на главную

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'''

Версия 12: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, позволяющий использовать сжатие с потерями, ничего не теряя! О нем сегодня и пойдет речь.


Что это?

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

Персональные инструменты
купить
подписаться
Яндекс.Метрика