![]() |
|
||||||||||||||||||||
|
|
|
|||||||||||||||||||
|
|
|
||||||||||||||||||||
|
WavPack — это бесплатный формат для сжатия аудио без потерь с открытыми исходниками разработанный Дэвидом Браянтом.
ОписаниеWavPack (произносится "вейв-пак") позволяет сжимать (и восстанавливать) все аудио форматы PCM, включая 8, 16, и 24-бытные целые; 32-бытные дробные; моно, стерео, и многоканальные; с частотой сэмплирования от 6 до 192 кГц. Как и в других подобных схемах, степень сжатия зависит от характера исходника и обычно колеблется в пределах 25-50% для популярной музыки и немного выше для классической и подобной ей с широким динамическим диапазоном.WavPack также имеет уникальный "гибридный режим", который предоставляет все преимущества сжатия без потерь плюс дополнительный бонус. Создаётся не один, а два файла, первый относительно небольшой, высококачественный и сжатый с потерями, который можно слушать сам по себе, и файл для его "коррекции" который восстанавливает сигнал до полного исходного. Для пользователей это прекрасная возможность ознакомиться с материалом, прежде чем скачивать полную версию! Основные особенности
ИсторияДэвид Браянт приступил к разработке WavPack в середине 1998 и выпустил версию 1.0. Эта первоначальная версия могла только производить компрессию и декомпрессию звука без потерь, и ничего более, но на то время она демонстрировала лучшее соотношение производительность/скорость среди аналогичных программ.Вскоре после выпуска версии 1.0, Браянт выпустил v. 2.0, в которой было сжатие с потерями (использовалась только квантизация, без психоакустической обработки). В 1999 разработчик выпустил версию 3.0, с такими новинками, как быстрый режим (с худшей степенью сжатия), сжатием RAW файлов и обнаружением ошибок с помощью контрольных сумм CRC. Разработка WavPack продолжается, главным новшевством, добавленным в последние версии 3.x, был гибридный режим, когда кодировщик делает файл, сжатый с потерями + корректировочный файл, которые вместе могут быть восстановлены в оригинальный PCM поток. Недавно был выпущен WavPack 4. В нём были такие важные добавления, как быстрая перемотка, поддержка многоканальности, аудио высокого разрешения и т.д., которые сделали его одим из мощнейших и современных аудиокомпрессоров для сжатия без потерь. Программная поддержкаПлееры
Frontends
КонверторыNote: Several players, like foobar2000 and VUplayer, can also convert from other formats to WavPack)
Редакторы
CD writers/rippers
Taggers
Other tools
Аппаратная поддержка
Описание технологииДля обеспечения высокой скорости работы, WavPack использует очень простой алгоритм предсказания, реализованный целиком в целочисленной математике. В «быстром» режиме предсказатель делает простую арифметическую экстраполяцию предыдущих двух сэмплов. Например, если два предыдущих сэмпла были -10 и 20, то предполагается, что следующий будет 50. В обычном режиме добавляется простой адаптивный фактор для усиления воздействия предыдущих сэмплов на прогнозирование. В нашем примере результат предсказания может изменяться от 20 при отсутствии влияния до 50 при максимальном влиянии. Вес этого фактора постоянно обновляется на основе изменяющихся спектральных характеристик звука, поэтому он и называется «адаптивным».Предсказанное значение затем вычитается из реального сэмпла для получения погрешности. В режиме моно это значение направляется прямо в кодировщик. У стереосигналов сигналы в каналах часто похожи, и это можно использовать. Поэтому рассчитываются разность и среднее арифметическое от погрешностей каждого канала. В «быстром» режиме в кодировщик посылаются два этих новых значения вместо отдельных значений для правого и левого канала. В обычном режиме ему направляется значение разности вместе с одним из остальных трёх значений (правое, левое, усрендённое). Адаптивный алгоритм постоянно выбирает лучший из них на основе изменения баланса каналов. Автор уверен, что его уникальный кодировщик данных превосходит кодирование Райса в двух аспектах. Невозможно сжимать лучше кодирования Райса (оно же «сжатие Хаффмана») по причине того, что для этого типа данных оно осуществляет оптимальное побитное кодирование. Кодировщик WavPack жмёт немного хуже, всего лишь примерно на 0.15 бит/сэмпл (или менее одного процента для 16-битных данных). Первое преимущество WavPack состоит в том, что ему не требуется буферизация данных перед кодированием, вместо этого он он конвертирует каждый сэмпл прямо в биткод. Это требует меньше вычислений, а также лучше для тех приложений, у которых задержки при кодировании критичны. Вторым преимуществом является то, что WavPack легко адаптировать к сжатию с потерей качества, потому что все значащие биты (кроме старшего бита, который принимается за «1») передаются целиком. А можно, к примеру, передавать только три старших бита (с знаком) каждого сэмпла. В действительности, можно передавать только знак и предполагаемый старший бит для каждого сэмпла, что составит в среднем 3,65 бит для каждого сэмпла. Вот какая схема кодирования используется для реализации «режима с потерями». В «быстром режиме» выходные данные неадаптивного декоррелятора просто округляются на указанное количество бит до ближайшего кодируемого значения. В обычном режиме используется адаптивный декоррелятор (который снижает шум в среднем на 1 дб), помимо этого рассматриваются текущий и следующий сэмплы для выбора лучшего из двух имеющихся кодов (что снижает шумы ещё на 1 дб). Автор решил не использовать операции с плавающей запятой в тракте данных WavPack вообще, так как уверен, что целочисленные операции менее восприимчивы к изменениям, вносимым в нежные процессоры, и которые могут нарушить природу сжатия без потерь, очевидный пример - ошибка в процессоре Pentium. Запросто может случиться, что кодировщик, использующий вычисления с плавающей запятой, произведёт совсем иной результат на этом бракованном пентиуме. Даже если пренебречь явными техническими дефектами производства, вычисления с плавающей запятой сами по себе настолько сложны, что их реализация может незначительно отличаться от «правильных», и это создаст проблемы для такого рода приложений. Для большей уверенности в целостности произведённого WavPack сжатия кодировщик использует 32-битный код обнаружения ошибок в генерируемых потоках данных. Исходный код WavPack легко переносим. Он был собран для разных Unic-ов (Linux, Mac OS X, Solaris, FreeBSD, OpenBSD, NetBSD, Compaq Tru64, HP-UX...), а также для Windows, DOS и OpenVMS. Он работает на архитектурах x86, ARM, PowerPC, SPARC, DEC Alpha, PA-RISC, MIPS, Motorola 68k... Ссылки
|
|||||||||||||||||||||
![]() |
|
|
|
|
|
||||||||||||||||
|
|
| ||||||||||||||||||||
|
|
|
|
|||||||||||||||||||
|
|
|||||||||||||||||||||
|
Copyright © Студия O7 Online издательство; создаём тематические проекты |
|
Начало | Кодеки | Тесты | Программы | Плееры | О проекте |
|
||||||||||||||||||