FLAC: сравнение

Целью этой страницы является сравнение FLAC с другими аналогичными кодеками. Исследование затрагивает не только уровень и время кодирования/декодирования, но и другие важные для пользователя возможности кодеков. Выбирая для себя кодек, помните о следующем:

  • Насколько я знаю, только два кодека (FLAC и WavPack) полностью свободны и активно поддерживаются (исходные тексты Shorten и Monket's Audio доступны, но лицензия более ограничена). Большинство предоставляют бесплатные скомпилированные программы без доступа к исходным кодам, следовательно, выбирая их, вы попадаете в зависимость от производителя. У вас уже не будет шанса портировать программу на другую операционную систему или исправить ошибку, если она появится и этого не захочет сделать автор. Это может оказаться серьезным недостатком, если формат не является всемирно признаным.
  • Уровень и время сжатия для flac характеризуют только конкретную версию кодера. Они не выявляют предела для всех кодеров и формата FLAC, так как формат открытый и расширяемый и каждый может написать улучшенную версию. Можно с большой долей уверенности сказать, что кодек будет улучшаться.
  • Поддержка потокового формата у FLAC дает ему дополнительное преимущество над теми кодеками, которые такой возможности не имеют.
  • Я постараюсь обновлять информацию на этой странице как можно чаще, однако, если вы заметите какую-либо неточность, сообщите мне и я исправлю ее.

    Рассматриваемые кодеры (кроме flac):

  • Bonk - открытый кодек. Нет отдельной библиотеки и поддержки плейера.
  • Kexis - открытый кодек. Похоже, что проект прекратился на начальной стадии разработки. Нет поддержки плейера.
  • La - закрытый симметрический, адаптивный кодек. Предоставляются скомпилированные версии для Windows и Linux. Дает максимальный уровень сжатия, но работает очень медленно.
  • LPAC - поставляется только скомпилированным. Доступны версии не только для Windows, хотя плагин есть только для Winamp.
  • Monkey's Audio - симметрический, адаптивный кодек с хорошим уровнем сжатия. Исходные тексты доступны по ограниченной лицезии. Доступны две версии: от создателя проекта Мэтта Ошленда и от Франка Клемма. В тестах использовалась оригинальная версия.
  • Ogg Squish - открытый кодек, но более неподдерживаемый. Тестируемая версия 0.98 была последней, которую можно найти. Версии для Windows не было, но судя по результатам, полученным под Unix, это "быстрый" кодек.
  • optimFROG - закрытый кодек для Windows и Linux с плагинами для Winamp и XMMS. Медленный, но имеет высокий уровень сжатия.
  • Pegasus-SPS - закрытый кодек только для Windows.
  • RKAU - закрытый кодек только для Windows. Не обновлялся в течение 2 лет.
  • Shorten - наиболее распространенный кодек с доступными исходными текстами.
  • WaveZIP - закрытый архиватор только для Windows. Использует движок MUSICompress[tm], который, предположительно, запатентован. Я хотел сделать ссылку на компанию, написавшую WaveZIP (GadgetLabs), но они завершили свою деятельность (может, потому что пытались продать то, не должно ничего стоить).
  • WavPack - открытый кодек только для Windows, выпущенный под лицензией BSD. Имеет хорошее соотношение между уровнем и временем сжатия.
  • Я не смог достать копии кодеков AudioPack и WavARC.

    Если не принимать во внимание уровень и скорость сжатия (как вы увидите позже, большинство кодеков имеют сходную производительность), то субъективная картина, основанная на базовых возможностях будет выглядеть следующим образом. Основное преимущество имеют свободные кодеки, так как это предоставляет Вам возможность добавлять все, что необходимо. Кроме того, проекты с открытыми исходниками обычно развиваются и улучшаются быстрее. Второй важный для пользователя фактор - это поддержка разных операционных систем и/или возможность использования плагинов для плейеров.

    Таблица 1. Сравнение возможностей кодеков.

    Кодек Доступны тексты? Доступны плагины? Аппаратная поддержка? Поточность? Поиск? Цена Поддержка ОС
    flac v1.1.0 да (OSI) да (XMMS, AlsaPlayer, Winamp, MacAmp Lite, dBpowerAMP, Foobar2000, Apollo) да (PhatBox, Kenwood MusicKeg, Rio Receiver, Dell Digital Audio Receiver, Turtle Beach AudioTron) да да своб. Linux, Windows, Mac OS X, *BSD, Solaris, OS/2, BeOS и другие
    Shorten v3.2 да (огранич.) да (Winamp, XMMS) нет нет да (только v3) своб. Linux, Windows, Mac OS 9, Mac OS X, *BSD, Solaris и другие
    WavPack v3.97a да да (Winamp) нет нет да своб. Windows
    Monkey's Audio v3.96 да (огранич.) да (Winamp, MediaJukebox, dBpowerAMP) нет нет да беспл. Windows, Linux
    Ogg Squish 0.98 да нет? нет да да своб. Linux, Windows, другие UNIX
    Bonk 0.5 да да (XMMS) нет нет нет своб. Linux, Windows, другие UNIX
    La 0.3c нет да (Winamp, XMMS) нет нет да беспл. Windows, Linux
    optimFrog 4.21 нет да (Winamp, XMMS) нет нет да беспл. Windows, Linux
    LPAC v1.31 (codec 3.0) нет да (Winamp) нет нет? да беспл. Windows, Linux, Solaris
    RKAU v1.07 нет да (Winamp) нет нет да беспл. Windows
    Kexis 0.2.2 да нет нет нет нет своб. Linux, Windows, другие UNIX
    WaveZIP v2 нет нет нет нет нет беспл. (24-бит за $) Windows
    Pegasus-SPS нет нет нет нет нет $39 (trial) Windows

    Для тестирования использовался PII-333 с 256Mб и ОС Windows NT SP5. К сожалению, именно Windows явлется единственной операционной системой, под которой могут работать все кодеки и где можно добиться равных условий работы.

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

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

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

    Необходимо сделать несколько замечаний: