Формат
Опции по умолчанию для flac настроены на получение оптимального соотношения скорость/уровень сжатия для большинства типов входных файлов. Здесь описывается как можно попытаться увеличить уровень или скорость сжатия или с наибольшим эффектом использовать систему метаданных.
Основными частями потока являются:
- Строка из четырех байтов "fLaC".
- Блок метаданных
- Другие необязательные блоки метаданных.
- Один или более аудио фреймов.
Первые четыре байта идетифицируют поток FLAC. Следующие за ними метаданные содержат информацию о потоке, затем идут сжатые аудиоданные.
Метаданные
FLAC определяет несколько типов блоков метаданных (все они перечислены на странице
Другие блоки предназначены для резервирования места, хранения таблиц точек поиска, тегов, список разметки аудиодисков а также данных для конкретных приложений. Опции для добавления блоков PADDING или точек поиска приведены ниже. FLAC не нуждается в точках поиска, однако они позволяют значительно увеличить скорость доступа, а также могут быть использования для расстановки меток в аудио редакторах.
Если Вам нужен собственный блок метаданных, Вы можете определить его и запросить идентификатор
здесь. Вы можете зарезервировать блок PADDING необходимого размера и записать на его место свои данные после кодирования. Полученнный поток будет отвечать формату FLAC, декодеры распознающие эти блоки смогут их использовать, остальные будут их пропускать.Аудиоданные
За метаданным следуют сжатые аудиоданные. Метаданные и аудиоданные не чередуются. Как и большинство кодеков FLAC делит входной поток на блоки и кодирует их независимо друг от друга. Блок упаковыватся во фрейм и добавляется к потоку. Базовый кодер использует блоки постоянного размера для всего потока, однако формат предусматривает наличие блоков разной длины в потоке.
Разбиение на блоки
Размер блока - очень важный параметр для кодирования. Если он очень мал, то в потоке будет слишком заголовков фреймов, что уменьшит уровень сжатия. Если размер большой, то кодер не сможет подобрать эффективную модель сжатия. Понимание процесса моделирования поможет Вам увеличить уровень сжатия для некоторых типов входных данных. Обычно при использовании линейного прогнозирования на аудиоданных с частотой дискретизации 44.1 кГц оптимальный размер блока лежит в диапазоне 2-6 тысяч сэмплов. В этом случае значение по умолчанию - 4608. Если использовать быстрые постоянные предикторы, предпочтительнее меньшие размеры блоков, так как в этом случае размеры заголовков фреймов меньше.
Межканальная декорреляция
Если на вход поступают стерео аудиоданные, они могут пройти через стадию межканальной декорреляции. Правый и левый канал преобразуются к среднему и разностному по формулам: средний = (левый + правый)/2, разностный = левый - правый. В отличие от joint stereo этот процесс не приводит к потерям. Для данных с аудио компакт-дисков это обычно приводит к значительному увеличению уровня сжатия. Для включения использования этого метода кодирования flac имеет две опции: -m всегда делает разностную и независимую версию блока и выбирает наименьший фрейм и -M, которая адаптивно выбирает схему сжатия.
Моделирование
На следующем этапе кодер пытается аппроксимировать сигнал такой функцией, чтобы полученный после ее вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством битов. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC использует два метода формирования аппроксимаций: 1) подгонка простого полинома к сигналу и 2) общее кодирование с линейными предикторами (LPC).
Во-первых, постоянное полиномиальное предсказание (-l 0) работает значительно быстрее, но менее точно, чем LPC. Чем выше порядок LPC, тем медленнее, но лучше будет модель. Однако с увеличением порядка выигрыш будет все менее значительным. В некоторой точке (обычно около 9) процедура кодера, определяющая наилучший порядок, начинает ошибаться и размер получаемых фреймов возрастает. Чтобы преодолеть это, можно использовать полный перебор (опция -e), что приведет к значительному увеличению времени кодирования.
Во-вторых, параметры для постоянных предикторов могут быть описаны тремя битами, а параметры для модели LPC зависят от количества бит на сэмпл и порядка LPC. Это значит, что размер заголовка фрейма зависит от выбранного метода и порядка и может повлиять на оптимальный размер блока.
Остаточное кодирование
Когда модель подобрана, кодер вычитает приближение из оригинала, чтобы получить остаточный (ошибочный) сигнал, который затем кодируется без потерь. Для этого используется то обстоятельство, что разностный сигнал обычно имеет распределение Лапласа и есть набор специальный кодов Хаффмана, называемые кодами Райса, позволяющие эффективно и быстро кодировать эти сигналы без использования словаря.
Кодирование Райса состоит из нахождения одного параметра, отвечающего распределению сигнала, а затем использования его для составления кодов. При изменении распределения меняется и оптимальный параметр, поэтому имеется метод позволяющий пересчитывать его по необходимости. Остаток может быть разбит на контексты или разделы, у каждого из которых будет свой параметр Райса. flac позволяет указать, как нужно производить разбиение, с помощью опции -r. Остаток может быть разбит на 2^n раздела, если использовать -r n,n. Параметр n называется порядком раздела. Также кодер может искать в пределах от m до n порядка, выбирая лучший вариант, если указать -r m,n. Обычно выбор n не влияет на скорость кодирования. От разницы между m и n сильно зависит время работы, чем она больше, тем больше времени будет затрачиваться на поиск лучшего порядка. Выбор размера блока также влияет на оптимальный порядок раздела.
Составление фреймов
Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или сэмпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, CRC заголовка фрейма и номер блока/сэмпла позволяют осуществлять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная контрольная сумма. Если базовый декодер обнаружит ошибку, будет сгенерирован блок тишины.
Разное
Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать теги ID3V1 и ID3V2, поэтому их можно свободно добавлять. Теги ID3V2 должны располагаться перед маркером "fLaC", а теги ID3V1 - в конце файла.
У flac есть опция (-V) для проверки выходных данных при кодировании. В этом случае декодер работает одновременно с кодером и его выход сравнивается с оригинальным вводом. Если будет найдено отличие, flac закончит работу с сообщением об ошибке.
flac
flac - это кодек, работающий из командной строки. Входом для кодера и выходом для декодера должны быть данные в формате RIFF WAVE, AIFF или в виде потока сэмплов без заголовка. flac использует только линейные PCM сэмплы (другими словами, A-LAW, uLAW, и т.п. не поддерживаются). Следующим ограничением является то, что во кодируемом файле сэмплы должны быть 8, 16 или 24-битными. Это не ограничение формата, просто так работают базовый кодер и декодер.
flac предполагает, что файлы RIFF WAVE имеют суффикс ".wav", а файлы формата AIFF имеют суффиксы ".aif", ".aiff" или встречен заголовок AIFF; это умолчание может быть переопределено специальным ключом. Также предполагается, что файлы с суффиком ".ogg" имеют формат Ogg-FLAC. В остальных случаях flac не делает предположений о суффиксах, хотя по соглашению файлы FLAC имеют суффикс ".flac" (или ".fla" на старых файловых системах таких как FAT-16).
Перед полным описанием ключей, используемых flac, обратим внимание на то что: 1) по умолчанию flac сжимает файлы (для декодирования используйте ключ -d); 2) ключи -0..-8, а также --fast и --best, управляющие уровнем сжатия, являются синонимами для различных групп настроек кодирования. Того же эффекта можно добиться, используя наборы соответствующих ключей; 3) модель обработки входных и выходных файлов у flac аналогична gzip.
flac вызывается одним из четырех способов:
- Кодирование:
<настройки_формата>] [<опции_кодирования>] [входной_файл [...]]
flac [] [- Декодирование:
<основные_ключи>] [<настройки_формата>] [<опции_кодирования>] [файл_FLAC [...]]
flac -d [- Тестирование:
<основные_ключи>] [файл_FLAC [...]]
flac -t [- Анализ:
<основные_ключи>] [<опции_анализа>] [файл_FLAC [...]]
flac -a [
В любом случае, если входной файл не указан, подразумевается стандартный ввод. Если указан только один входной файл, то это может быть "-" для стандартного ввода (stdin). Когда используется стандартный ввод, flac пишет в стандартный вывод (stdout). В остальных случаях flac выполнит указанные действия для каждого входного файла и запишет результаты в файлы с аналогичными именами (при кодировании суффикс будет заменен на ".flac" или, если его не было, будет добавлен; при декодировании суффиксы также изменяются в соответствии с типом выходных данных.) Оригинал удаляется, только если указан ключ --delete-input-file.
Существуют особые формы вызова процедур кодирования/декодирования из стандандартного ввода в файл.
- flac [опции] - выходной_файл
- flac -d [опции] - выходной_файл
которые лучше чем
- flac [опции] > выходной_файл
- flac -d [опции] > выходной_файл
так как в первом случае сохраняется возможность произвести при необходимости последующую обработку файла, например для записи заголовков RIFF WAVE или STREAMINFO.
Данные в стандартный вывод можно перенаправить с помощью ключа -c.
Опции кодирования влияют на скорость работы и уровень сжатия. Настройки формата определяют расположение сэмплов, если на вход поступает файл без заголовка. Если у файла есть заголовок RIFF WAVE или AIFF, то настойки формата не нужны, так как они берутся из файла.
В режиме тестирования flac работает как и при декодировании, только выходной файл не записывается. Режимы декодирования и тестирования проверяют поток на наличие ошибок, а также сравнивают подпись MD5 декодированного потока с сохраненной подписью, даже если формат потока правильный.
Основные ключи-v, --version | Номер версии flac. |
-h, --help | Вывести основные методы использования и список всех опций. При запуске flac без аргументов отображается краткая справка. |
-H, --explain | Вывести справку полностью. При запуске flac без аргументов отображается краткая справка. |
-d, --decode | Декодирование (по умолчанию flac кодирует). flac завершит работу с кодом выхода 1, если будет встречена ошибка или контрольная сумма MD5 декодированного потока не совпадет с сохраненной. Если ошибок не будет, код возврата будет равен 0. |
-t, --test | Тестирование (то же самое, что и декодирование, только выход не записывается в файл). Коды возврата те же. |
-a, --analyze | Анализ (то же самое, что и декодирование, только выходом является файл статистики). Коды возврата те же. Режим предназначен в основном для разработчиков. В выходной текстовый файл записывается информация о каждом фрейме и подфрейме. |
-c, --stdout | Направить результат в стандартный вывод (stdout). |
-s, --silent | Не показывать статистику при кодировании/декодировании. |
-o файл --output-name=файл |
Явно указать имя выходного файла, по умолчанию flac просто заменяет суффикс. |
--output-prefix=строка | Добавляет префикс к каждому имени выходному файлу. Может имспользоваться для кодирования/декодирования файлов в другой каталог. Если указанная строка является частью пути, убедитесь, что она заканчивается слэшем '/'. |
--delete-input-file | После успешного окончания кодирования/декодирования входной файл будет удален. Если произойдет ошибка, исходный файл останется. |
--skip={#|mm:ss.ss} | Пропустить первые # сэмплов входного файла. Работает для кодирования и декодирования, но не для тестирования. Альтернативную форму mm:ss.ss можно использовать, чтобы указать минуты, секунды и сотые секунды. Например: --skip=123 : пропустить первые 123 сэмпла входного файла --skip=1:23.45 : пропустить 1 минуту 23.45 секунд |
--until={#|[+|-]mm:ss.ss} | Остановиться на данном сэмпле входного файла. Работает для кодирования и декодирования, но не для тестирования. Сэмпл с указанным номером не включается в вывод. Альтернативную форму mm:ss.ss можно использовать, чтобы указать минуты, секунды и сотые секунды. Если впереди стоит знак +, то последний сэмпл берется от начальной точки воспроизведения, если - -, то последний сэмпл вычисляется от конца потока аудио. Например: --until=123 : декодировать первые 123 сэмпла входного файла (сэмплы 0-122) --until=1:23.45 : декодировать 1 минуту 23.45 секунд --skip=1:00 --until=+1:23.45 : декодировать от 1:00.00 до 2:23.45 --until=-1:23.45 : декодировать все, кроме последней 1 минуты и 23.45 секунд --until=-0:00 : декодировать весь ввод |
--ogg |
При кодировании генерируется вывод в формате Ogg-FLAC вместо "родного" FLAC. Потоки Ogg-FLAC представляют собой потоки FLAC обернутые в транспортный уровень Ogg. Полученный файл будет иметь суффикс '.ogg' и будет декодироваться утилитой flac. При декодировании формат ввода однозначно определяется как Ogg-FLAC. Это полезно при получении данных со стандартного ввода или если у файла суффикс не '.ogg'. |
--serial-number=# | При использовании с ключом --ogg определяет серийный номер для потока FLAC. При кодировании без явно указанного серийного номера flac использует '0'. При декодировании по умолчанию используется серийный номер определенный на первой странице. |
Опции анализаОпции декодированияОпции кодирования
--residual-text | Добавляет в файл остаточный сигнал. Результирующий файл получается очень большим. |
--residual-gnuplot | Создает файлы-диаграммы для каждого подфрейма. В каждом файле будет остаточное распределение для подфрейма. Будет создано очень много файлов. |
-F, --decode-through-errors |
По умолчанию flac прекращает декодирование в случае ошибки в потоке и удаляет частично декодированный файл. Использование ключа -F ведет к тому, что сообщения об ошибках выводятся, но flac продолжает работу до конца. Обратите внимание, что в результате такого декодирования в выходном файле могут быть пропущены сэмплы или появится блоки тишины. |
-V | Проверять процесс сжатия. В данном случае flac создает параллельный декодер, раскодирующий выход кодера и сравнивает результат с оригиналом. Если будет найдено несоответствие, кодирование прекратится. Время работы с этой опцией увеличивается, однако, при этом гарантируется, что файл будет правильно декодирован. |
--lax | Позволяет кодеру создавать файлы, отвечающие подмножеству формата FLAC. В результате работы будет получаться непотоковый файл, поэтому этот ключ следует использовать только для архивирования. Декодер будет поддерживать воспроизведение и поиск в таких файлах. |
--replay-gain | Вычислить значения ReplayGain и сохранить из в комментариях Vorbis, аналогично тому, как это делает VorbisGain. Уровень записи и максимальные значения амплитуды будут вычислены для каждого входного файла. Кроме того будет рассчитаны значения для всего альбома (всех входных файлов). Для этого все файлы должны иметь одинакоыую частоту дискретизации, разрешение и число каналов. Допустимы только моно и стерео файлы, а частота дискретизации должна быть 8, 11.025, 12, 16, 22.05, 24, 32, 44.1 или 48 кГц. Обратите внимание на то, что для этой опции может понадобиться несколько дополнительных байтов в блоке PADDING, так как точный размер блока нельзя вычислить, пока не будут обработаны все файлы. Обратите внимание на то, что эту возможность нельзя использовать при кодировании в стандартный вывод. |
--cuesheet=ИМЯ_ФАЙЛА | Импортировать указанный список разбиения аудиодиска и сохранить его в блоке метаданных CUESHEET. Эту опцию можно использовать только при кодировании одного файла. Точки поиска будут добавлены для каждого трека из списка в блок SEEKTABLE, если не будет указана опция --no-cued-seekpoints. Файл списка разбиения аудиодиска должен иметь такой же вид, в каком его создают программы CDRwin, CDRcue, EAC и т.д |
--sector-align |
При кодировании нескольких WAVE файлов, полученных с аудиодиска, выравнивать их на границу сектора. Эта опция применима только для кодирования нескольких WAVE файлов, каждый из которых должен иметь частоту дискретизации 44.1 кГц и два канала. Если будет указана эта опция кодер выровняет потоки .flac так, что их длины будут кратны размеру сектора CD-Audio (равны 1/75 секундам или 588 сэмплам). Это осуществляется переносом части сектора в конце каждого WAVE файла в начало следующего. Последний поток будет дополнен до границы выравнивания нулями. Использование этой опции не приведет ни к чему, если файлы уже выровнены (например, если правильно скопированы с аудиодиска). flac может выровнять только несколько файлов за один вызов. ВНИМАНИЕ: Порядок файлов имеет значение! Если вы сделаете следующий вызов 'flac --sector-align *.wav', командный процессор может обработать шаблон не в том порядке, в каком вы рассчитываете. Поэтому лучше всего вызывать программу, явно указав список файлов, например, 'flac --sector-align 8.wav 9.wav 10.wav'. |
-S {#|X|#x|#s}, --seekpoint={#|X|#x|#s} |
Добавляет точки для поиска в таблицу SEEKTABLE.
Опцию -S можно использовать несколько раз. В результате получится объединенная таблица, в которой будут присутствовать только уникальные значения. |
-P #, --padding | Кодер запишет блок метаданных PADDING, указанного размера (в байтах), после блока STREAMINFO. Ключ --no-padding указывает, что блок PADDING не нужен (значение по умолчанию). Этот блок полезен, если вы собираетесь добавить тэг в файл позже. Вместо того, чтобы переписывать файл полностью, можно будет записать информацию вместо блока PADDING. Обратите внимание на то, что общий размер блока PADDING будет на 4 байта больше, так как 4 байта занимает заголовок. |
-T ПОЛЕ=ЗНАЧЕНИЕ, --tag=ПОЛЕ=ЗНАЧЕНИЕ | Добавляет комментарии Vorbis, который должен соответствовать спецификации, т.е. ПОЛЕ должно содержать только определенные символы, завершающиеся знаком равенства. При необходимости не забывайте заключать комментарий в кавычки. Эту опцию можно использовать неоднократно для заполнения разных полей комментария. Все указанные значения будут применены ко всем кодируемым файлам. |
-b #, --blocksize | Устанавливает размер блока в сэмплах. По умолчанию 1152 для -l 0, иначе 4608. Стандартные потоки должны использовать одно из указаных значений: 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. Сейчас кодер использует постоянный размер блока для всего файла. |
-m, --mid-side | Включает разностное кодирование (только для стерео потоков). Обычно увеличивает уровень сжатия на несколько процентов. Для каждого блока создается усредненная и стерео версия блока, сохраняется блок меньшего размера. Сейчас разностное кодирование доступно для файлов, где сэмпл имеет размер не больше 16 бит. |
-M, --adaptive-mid-side | Включает адаптивное разностное кодирование (только для стерео потоков). Работает аналогично -m, однако кодер переключается между независимым и усредняющим кодированием адаптивно. Метод работает быстрее, но уровень сжатия меньше, так как -m производит полный перебор вариантов. |
-0..-8 | Быстрейшее сжатие ... максимальное сжатие. По умолчанию -5. |
-0, --compression-level-0 | Аналогично -l 0 -b 1152 -r 2,2. |
-1, --compression-level-1 | Аналогично -l 0 -b 1152 -r 2,2 -M. |
-2, --compression-level-2 | Аналогично -l 0 -b 1152 -r 3 -m. |
-3, --compression-level-3 | Аналогично -l 6 -b 4608 -r 3,3 |
-4, --compression-level-4 | Аналогично -l 8 -b 4608 -r 3,3 -M. |
-5, --compression-level-5 | Аналогично -l 8 -b 4608 -r 3,3 -m. |
-6, --compression-level-6 | Аналогично -l 8 -b 4608 -r 4 -m. |
-7, --compression-level-7 | Аналогично -l 8 -b 4608 -r 6 -m -e. |
-8, --compression-level-8 | Аналогично -l 12 -b 4608 -r 6 -m -e. |
--fast | Быстрейшее сжатие. Аналогично -0. |
--best | Максимальное сжатие. Аналогично -8. |
-e, --exhaustive-model-search |
Полный поиск модели (работает медленно!). Обычно кодер определяет лучшую модель и кодирует далее опираясь на нее. В данном режиме кодер будет создавать подфреймы всех порядков и использовать наименьший. Если максимальное значение порядка LPC велико, время кодирования существенно возрастет. Выигрыш обычно составляет около 0.5%. |
-E, --escape-coding |
Использовать управляющие коды в кодере энтропии. Эта опция позволяет записывать незакодированное представление остатка в разделе, если его размер меньше. При этом время работы увеличивается, а уровень сжатия обычно улучшается примерно на 1%. |
-l #, --max-lpc-order=# |
Определяет максимальный порядок LPC (коэффициентов линейного прогнозирования). Число должно быть меньше или равно 32. Если значение равно 0, кодер будет использовать вместо общего линейного прогнозирования постоянные коэффициенты. Этот метод увеличивает скорость работы, но файлы получаются на 5-10% больше. |
-q #, --qlp-coeff-precision=# |
Определяет точность дискретных коэффициентов линейного прогнозирования в битах. По умолчанию -q 0, что позволяет кодеру принимать решение в зависимости от сигнала. Лучше оставлять значение по умолчанию. |
-p, --qlp-coeff-precision-search |
Производить оптимизацию LPC. Переопределяет любую опцию -q. Сильно замедляет работу, и уменьшает размер файла на долю процента. -q не работает, когда используется -l 0. |
-r [#,]#, --rice-partition-order=[#,]# |
Установить [min,]max порядок раздела. Если минимальное значение не указано, то оно устанавливается равным 0. По умолчанию кодер один параметр Райса для всего остатка подфрейма. Если использовать эту опцию, остаток будет разделяться на 2^min# ... 2^max частей, для каждой из которых будет определен собственный параметр Райса. С увеличением параметра max выигрыш будет все меньше. Наиболее оптимальный вариант достигается при использовании -r 2,2 (и больших значений для больших размеров блоков). При этом сжатие обычно увеличивается на 1.5%. Выбор оптимального значения можно произвести по формуле размер_блока/(2^n)=128. Максимальный уровень сжатия достигается при использовании -r 0,16. |
Настройки формата
--endian={big|little} | Определяет порядок байтов в файле без заголовка big-endian | little-endian. |
--channels=# | Определяет количество каналов в файле без заголовка. |
--bps=# | Определяет количество бит на сэмпл в файле без заголовка. |
--sample-rate=# | Определяет количество сэмплов в секунду в файле без заголовка. |
--sign={signed|unsigned} | Определяет, должны ли быть сэмплы в файле без заголовка беззнаковые или знаковые (по умолчанию знаковые). |
--force-aiff-format | Декодер будет записывать в формат AIFF. Эта опция не нужна, если имя выходного файла (указанное с помощью ключа -o) заканчиватся на .aiff. |
--force-raw-format | Воспринимать входной (или выходной при декодировании) файл как поток сэмплов без заголовка вне зависимости от суффикса. |
Отмена действия опций
metaflac
metaflac - это редактор метаданных, работающий из командной строки. Его можно использовать для удаления, вставки и вывода содержимого блоков во .flac файле, а также управления блокомPADDING, резервирующим место.
Документация для metaflac в формате HTML сейчас переписывается, поэтому сейчас о возможностях можно узнать, дав команду metaflac --help или ознакомиться со man-страницей.
Плагин для XMMS
Для его установки необходимо скопировать libxmms-flac.so в каталог, где находятся плагины ввода XMMS (обычно /usr/lib/xmms/Input). Больше ничего настраивать не надо. Для воспроизведения .flac файлов перезапустите XMMS.
Плагин для Winamp
Есть два плагина для Winamp: один для версий 2.x, а второй для 3.x. Если вы используете Winamp 2.x, то для установки плагина необходимо скопировать in_flac.dll в каталог, где находятся плагины ввода Winamp (обычно /Plugins). Больше ничего настраивать не надо. Для воспроизведения .flac файлов перезапустите Winamp.
Плагин для Winamp
Есть два плагина для Winamp: один для версий 2.x, а второй для 3.x. Если вы используете Winamp 3.x, то для установки плагина необходимо скопировать cnv_flacpcm.wac в каталог, где находятся плагины ввода Winamp (обычно /Wacs). Больше ничего настраивать не надо. Для воспроизведения .flac файлов перезапустите Winamp.
Известные ошибки
Отслеживание ошибок ведется на
Ниже перечислены известные ошибки в текущей версии (1.1.0):
- Нет известных ошибок.
В версии 1.0.4 были следующие значимые ошибки:
- Во всех декодерах до этой версии включительно была ошибка не позволяющая правильно пропускать неизвестные блоки метаданных. Файл FLAC, созданный кодером flac 1.1.0 и содержащий блок метаданных CUESHEET, не будет воспроизводиться более ранними версиями декодеров.
- В metaflac была ошибка, возникающая при импортировании комметария в формате Vorbis, которая могла привести к повреждению файла FLAC.
monkey
Monkey's Audio поставляется с удобным пользовательским интерфейсом. Он поддерживает несколько внешних кодеров, в число которых не входит FLAC. Однако дистрибутив FLAC для Windows поставляется с утилитой, позволяющей заменить один из поддерживаемых внешних кодеков на FLAC. Это можно сделать так:
- Скопируйте flac.exe и flac_ren.exe в каталог External/ установки Monkey's Audio.
- Выберите, какой поддерживаемый кодер заменить:
- Shorten - скопируйте flac_mac.exe поверх External/shortn32.exe
- WavPack - скопируйте flac_mac.exe поверх External/wavpack.exe и External/wvunpack.exe
- RKAU - скопируйте flac_mac.exe поверх External/rkau.exe
Если выбрать WavPack, то для изменения опций FLAC будет доступно меню настройки WavPack Configuration.
- Теперь можно кодировать в формат FLAC. Переименованный файл flac_mac.exe вызывает flac.exe, а затем flac_ren.exe для присвоения получаемому файлу расширения .flac.
Другие оболочки можно использовать примерно таким же способом.
Формат
Здесь приведено полное описание формата FLAC.
От автора
Во-первых, как основной разработчик, я должен отметить, что не являюсь экспертом в области сжатия, поэтому чувствую себя обязанным поблагодарить многих людей, работавших над улучшением алгоритмов компрессии аудиоданных. Отдельную благодарность я выражаю:
-
-
- Н. Левинсону и Дж. Дарбину. Базовый кодер использует разработанный и улучшенный ими алгоритм для определения LPC коэффициентов из коэффициентов автокорреляции.
- И, конечно же,
--Джош Колсон
Э. Робинсону за работу над Shorten. Его статья послужила отправной точкой для нескольких основных методов, заложенных во FLAC. FLAC развил идею постоянных предикторов, используемую в Shorten. С. Голомбу и Роберту Райсу. Их универсальные коды используются кодером энтропии. К. Шеннону.
Область применения
Общеизвестно, что нет алгоритма, способного сжать без потерь входные данные любого типа. Большинство архиваторов позиционируются для работы с данными определенного вида и оптимизируются для этой области. FLAC предназначен для сжатия аудиоданных. Несмотря на то, что он может сжать без потерь данные любого типа, только определенный ввод архивируется хорошо. FLAC использует тот факт, что обычно аудиоданные имеют высокий порядок корреляции между сэмплами.
В области аудио существует множество возможных подразделов. Например, речь с низким битрейтом, многоканальная музыка с высокой частотой дискретизации и т.д. FLAC не нацелен на какой-либо подраздел, однако большинство параметров по умолчанию базового кодера рассчитаны на CD-аудио (т.е. 44.1кГц, 2 канала, 16 бит на сэмпл). Влияние параметров кодирования на разные типы аудио будет рассмотрено позже.
Архитектура
Подобно большинству программ такого рода, кодер FLAC выполняет следующие действия:
-
-
-
-
В дополнение ко всему определена система метаданных, позволяющая добавлять в начало потока произвольную информацию.
Разбиение на блоки. Ввод разбивается на множество последовательных блоков, которые могут иметь различный размер. Оптимальный размер блока обычно зависит от многих факторов, таких как частота дискетизации, спектральная характеристика во времени и т.д. Несмотря на то, что формат FLAC позволяет использовать в потоке блоки различного размера, базовый кодер использует постоянный размер. Межканальная декорреляция. В случае стереопотоков кодер создает средний и разностный сигналы, основанные на среднем значении между левым и правым каналами и их разности соответственно. На следующий этап кодирования передается лучший из вариантов сжатого сигнала. Прогнозирование. Далее кодер пытается найти математическое описание сигнала (обычно приблизительное). Зачастую оно значительно меньше самого сигнала. Так как методы предсказания известны и кодеру, и декодеру в потоке нужно указать только параметры предиктора. Сейчас FLAC использует четыре различных класса предикторов (описанных в разделе Прогнозирование), но в формате предусмотрено место для дополнительных методов. FLAC допускает изменение класса предиктора от блока к блоку и даже в пределах канала в блоке. Кодирование остатков. Если предиктор не описывает сигнал точно, разница между оригинальным сигналом и спрогнозированным (называемым еще ошибочным или остаточным) должна быть закодирована без потерь. Если предсказание эффективно, остаточный сигнал будет занимать меньше бит на сэмпл, чем оригинальный сигнал. Сейчас FLAC использует только один метод для кодирования остатков (см. раздел Кодирование остатков), однако в формате предусмотрено место для дополнительных методов. FLAC допускает изменение метода кодирования остатков от блока к блоку и даже в пределах канала в блоке.
Определения
Многие термины, такие как "блок" и "фрейм", имеют различное значение в схемах кодирования. Например, фрейм в mp3 сооветствует многим сэмплам во всех каналах, в то время как фрейм S/PDIF представляет только один сэмпл для каждого канала. Обратите внимание на то, что, говоря о "блоках" и "подблоках", мы ссылаемся на незакодированные аудиоданные, а термины "фрейм" и "подфрейм" используем для данных сжатых FLAC.
-
Блок - это один или более сэмплов, находящихся в нескольких каналах.
-
Подблок - это один или более сэмплов из одного канала. Таким образом, блок содержит подблок для каждого канала и все подблоки в нем содержат одинаковое количество сэмплов.
-
Размер блока - это количество сэмплов в любом из своих подблоков. Например, блок длиной в одну секунду с частотой дескретизации 44.1кГц имеет размер блока 44100 вне зависимости от количества каналов.
-
Фрейм - это заголовок и один или несколько подфреймов.
-
Подфрейм - это заголовок и один или несколько закодированных сэмплов из данного канала. Все подфреймы в данном фрейме содержат одинаковое количество сэмплов.
Разбиение на блоки
Размер блоков сильно влияет на уровень сжатия. Если размер блока будет слишком мал, то в итоге получится очень много фреймов, а это значит, что на заголовки будет потрачено много битов. Если же размер блока большой, а характеристики сигнала сильно варьируются, кодер не сможет найти хороший предиктор. Чтобы упростить кодек, FLAC определяет минимальный размер блока в 16 сэмплов, а максимальный в 65535 сэмплов. Этот интервал покрывает оптимальные размеры блоков для всех аудиоданных, поддерживаемых FLAC.
Сейчас базовый кодер использует постоянный размер блока, оптимизированный по частоте дискретизации ввода. Последующие версии смогут изменять размер блока в зависимости от характеристик сигнала.
Разбитые на блоки данные передаются на стадию прогнозирования по одному подблоку. Каждый подблок кодируется в подфрейм независимо, а позже они объендиняются во фрейм. Так как каждый канал кодируется отдельно, это означает, что один канал стерео фрейма может сжиматься как постоянный подфрейм, а второй как LPC подфрейм.
Межканальная декорреляция
В большинстве случаев в стерео потоках существует достаточный уровень корреляции между левым и правым каналами. FLAC позволяет фреймам в стерео потоках иметь различное распределение каналов, а кодер может использовать лучшее представление.
-
Независимое. Левый и правый каналы кодируются независимо.
-
Разностное. Левый и правый канал преобразовываются в средний и остаточный каналы. Средний канал - это среднее значение левого и правого сигналов, а остаточный - разница между ними (левый минус правый).
-
Левостороннее. Кодируется левый и остаточный каналы.
-
Правоостороннее. Кодируется правый и остаточный каналы.
Оказывается, что левостороннее и правостороннее кодирование могут быть более эффективными во многих фреймах, несмотря на то, что необходимое для оригинального сигнала количество битов на сэмпл немного больше, чем для независимого или усредненного кодирования.
Прогнозирование
FLAC использует четыре метода для моделирования входного сигнала:
-
Дословный. По существу это прогнозирование сигнала нулевого уровня. Предиктором сигнала является сам сигнал, потому сжатие не происходит. Это образец, с которым сверяются все остальные предикторы. Если передать кодеру случайные данные, для всех подблоков скоре всего будет использован дословный предиктор. Так как необработанный сигнал не проходит стадию кодирования остатков, результаты не будут совпадать с линейным предиктором нулевого порядка.
-
Постоянный. Этот предиктор используется, когда подблок содержит цифровую тишину, т.е. на вход поступает одна константа. Сигнал кодируется по всей длине и добавляется к потоку.
-
Постоянный линейный предиктор. FLAC использует класс эффективно вычисляемых постоянных линейных предикторов (хорошее описание приведено у
-
Линейное прогнозирование FIR. Для более точного моделирования (за счет медленной работы) FLAC поддерживает линейное прогнозирование FIR до 32 порядка (см.
Shorten и AudioPak). FLAC добавляет предиктор четвертого уровня к использованным в Shorten предикторам от нулевого до третьего уровня. Так как предикторы постоянны, в сжатом потоке необходимо сохранить только порядок предиктора. Остаточный сигнал передается кодеру остатков. Shorten и AudioPak). Базовый кодер использует метод Левинсона-Дарбина для расчета LPC коэффициентов из коэффициентов автокорреляции и коэффициенты разбиваются перед вычислением остатков. В то время как такие кодеры как Shorten используют постоянное разбиение для всего ввода, FLAC позволяет для каждого фрейма менять точность коэффициента разбиения. Базовый кодер FLAC оценивает оптимальную точность, основываясь на размере блока и диапазоне оригинального сигнала.
Кодирование остатков
Для кодирования остаточного сигнала от стадии прогнозирования FLAC использует два похожих метода. Остаточный сигнал сжимается с использованием кодов Райса следующими способами:
- Кодер оценивает одиночный параметр Райса, основанный на разнице остатка и кодов Райса. Весь остаток кодируется с использованием этого параметра.
- Остаток делится на несколько интервалов одинаковой длины и каждый из них кодируется со своим параметром Райса, основанным на среднем значении для данного интервала.
Обратите внимание на то, что первый метод является частным случаем второго с одним интервалом. Отличие состоит в том, что в первом методе параметр Райса вычисляется для разницы остатка, а не для среднего значения.
В формате FLAC зарезервировано место для других методов кодирования. Кто-нибудь может попытаться найти лучшее контекстное моделирование параметра Райса или кодирования Хаффмана. Описания нескольких универсальных кодов можно найти на страницах
LOCO-I и pucrunch.
Формат
В этом разделе описывается формат файла. Формат FLAC не предусматривает поля для номера версии, однако содержит несколько зарезервированных позиций. Последующие версии смогут использовать это место без нарушения совместимости с предыдущими версиями. Более старые версии декодеров могут либо прекращать работу, либо пропускать данные, закодированные новыми методами. Кроме того зарезервированы некоторые специальные значения, которые не могут появиться ни в одной из версий формата. Это обычно делается для улучшения механизма синхронизации.
Все числа в формате FLAC являются целыми, младший байт которых записывается вначале (big-endian). Числа являются беззнаковыми, кроме тех случаев, где явно указано обратное.
К потоку FLAC могут быть добавлены тэги ID3v1 (в конце) и ID3v2 (в начале). Эти данные не относятся к формату, однако декодер умеет пропускать их.
Перед полным описанием формата приведем его краткий обзор.
- Формат FLAC состоит из маркера "fLaC" в начале потока, за которым следует обязательный блок STREAMINFO, любое количество других блоков метаданных, а затем аудиофреймы.
- FLAC поддерживает до 128 блоков метаданных. Сейчас определены:
- Аудиопоток состоит из одного или нескольких фреймов. У каждого фрейма есть заголовок, состоящий из кода синхронизации, информации о фрейме (размер блока, частота дискретизации, количество каналов и т.п.) и восьмибитной контрольной суммы. Также в заголовке содержится либо номер первого сэмпла во фрейме относительно всего потока (для потоков с изменяющимся размером блока) или номер фрейма (для потоков с постоянным размером блока). Это позволяет производить быстрый и точный поиск. Далее следуют закодированные подфреймы (по одному на каждый канал) и, наконец, фрейм, дополненный нулями до границы байта. Каждый подфрейм имеет свой заголовок, определяющий способ его декодирования.
- Так как декодер может начать работу в середине потока, должен быть метод определения начала фрейма. Каждый фрейм начинается с 14-битного синхронизирующего кода. Этот код не может появляться ни в одном другом месте заголовка фрейма. Однако так как это код может появиться в подфреймах, у декодера есть два способа определить, что данная последовательность является началом фрейма. Сначала проверяется корректность данных во всем фрейме. Однако этот шаг не может гарантировать отсутствия ошибок, поэтому дополнительно производится расчет восьмибитной контрольной суммы заголовка фрейма и полученный результат сравнивается со значением, полученным при кодировании и записанным после заголовка фрейма.
- Каждый фрейм должен содержать основную информацию о потоке, так как декодер может не иметь доступа к блоку метаданных STREAMINFO в начале потока. Сюда входит частота дискретизации, количество бит на сэмпл, количество каналов и т.д. Так как заголовоки фреймов вносят дополнительные накладные расходы, то они влияют уровень сжатия. Чтобы сделать заголовки фреймов минимальными, FLAC использует таблицы поиска для наиболее часто используемых значений параметров фремов. Например, часть, отвечающая за частоту дискретизации, занимает 4 бита. Восемь предопределенных значений соответствуют наиболее самым распространенным частотам (8/16/22.05/24/32/44.1/48/96 кГц). Однако дополнительные частоты могут быть использованы с помощью специального набора битов, указывающего декодеру, что необходимое значение находится в конце заголовка. Такой же метод используется для указания размера блока и количества битов на сэмпл. В этом случае заголовок остается достаточно малым для наиболее распространенных типов аудиоданных.
- Подфреймы (по одному для каждого канала) кодируются во фрейме отдельно и хранятся в потоке последовательно. Это ведет к упрощению декодера, однако ценой этому является увеличение размеров буффера. У каждого подфрейма есть свой заголовок, определяющий его аттрибуты (метод и порядок прогнозирования, параметры кодирования остатков и т.д.). За заголовком следуют аудиоданные для этого канала.
- Во FLAC определено специальное подмножество формата (Subset format). Все потоки сжатые этим методом на самом деле являются потоковыми, то есть декодер, который не может искать в потоке, имеет возможность перейти к любой его точке и начать воспроизведение. Для файлов, отвечающих этому подмножеству формата, значительно проще сделать аппаратный декодер. flac по умолчанию создает потоки, отвечающие этому подмножеству формата. Ключ --lax запрещает создание таких потоков. Чтобы файл отвечал данному подмножеству, для него должны выполняться следующие ограничения:
- Значение битов, отвечающих за размер блока, должно быть в пределах 0001-0101 или 1000-1110. Поток должен состоять из блоков одинакового небольшого размера (за исключением последнего), а в блоке метаданных STREAMINFO должны быть указаны равные значения для минимального и максимального размера блока.
- Частота дискретизации в заголовке фрейма должна описываться следующим диапазоном битов 0001-1011.
- Количество бит на сэмпл в заголовке фрейма должно описываться следующим диапазоном битов 001-111.
В таблице приведено формальное описание формата FLAC. Числа в угловых скобках показывают количество битов, используемых данным полем.
ПОТОКБЛОК_МЕТАДАННЫХБЛОК_МЕТАДАННЫХ*ФРЕЙМ+
- Нет известных ошибок.
- Во всех декодерах до этой версии включительно была ошибка не позволяющая правильно пропускать неизвестные блоки метаданных. Файл FLAC, созданный кодером flac 1.1.0 и содержащий блок метаданных CUESHEET, не будет воспроизводиться более ранними версиями декодеров.
- В metaflac была ошибка, возникающая при импортировании комметария в формате Vorbis, которая могла привести к повреждению файла FLAC.
- Shorten - скопируйте flac_mac.exe поверх External/shortn32.exe
- WavPack - скопируйте flac_mac.exe поверх External/wavpack.exe и External/wvunpack.exe
- RKAU - скопируйте flac_mac.exe поверх External/rkau.exe
- Н. Левинсону и Дж. Дарбину. Базовый кодер использует разработанный и улучшенный ими алгоритм для определения LPC коэффициентов из коэффициентов автокорреляции.
- И, конечно же,
- Блок - это один или более сэмплов, находящихся в нескольких каналах.
- Подблок - это один или более сэмплов из одного канала. Таким образом, блок содержит подблок для каждого канала и все подблоки в нем содержат одинаковое количество сэмплов.
- Размер блока - это количество сэмплов в любом из своих подблоков. Например, блок длиной в одну секунду с частотой дескретизации 44.1кГц имеет размер блока 44100 вне зависимости от количества каналов.
- Фрейм - это заголовок и один или несколько подфреймов.
- Подфрейм - это заголовок и один или несколько закодированных сэмплов из данного канала. Все подфреймы в данном фрейме содержат одинаковое количество сэмплов.
- Независимое. Левый и правый каналы кодируются независимо.
- Разностное. Левый и правый канал преобразовываются в средний и остаточный каналы. Средний канал - это среднее значение левого и правого сигналов, а остаточный - разница между ними (левый минус правый).
- Левостороннее. Кодируется левый и остаточный каналы.
- Правоостороннее. Кодируется правый и остаточный каналы.
- Дословный. По существу это прогнозирование сигнала нулевого уровня. Предиктором сигнала является сам сигнал, потому сжатие не происходит. Это образец, с которым сверяются все остальные предикторы. Если передать кодеру случайные данные, для всех подблоков скоре всего будет использован дословный предиктор. Так как необработанный сигнал не проходит стадию кодирования остатков, результаты не будут совпадать с линейным предиктором нулевого порядка.
- Постоянный. Этот предиктор используется, когда подблок содержит цифровую тишину, т.е. на вход поступает одна константа. Сигнал кодируется по всей длине и добавляется к потоку.
- Постоянный линейный предиктор. FLAC использует класс эффективно вычисляемых постоянных линейных предикторов (хорошее описание приведено у
- Линейное прогнозирование FIR. Для более точного моделирования (за счет медленной работы) FLAC поддерживает линейное прогнозирование FIR до 32 порядка (см.
- Кодер оценивает одиночный параметр Райса, основанный на разнице остатка и кодов Райса. Весь остаток кодируется с использованием этого параметра.
- Остаток делится на несколько интервалов одинаковой длины и каждый из них кодируется со своим параметром Райса, основанным на среднем значении для данного интервала.
- Формат FLAC состоит из маркера "fLaC" в начале потока, за которым следует обязательный блок STREAMINFO, любое количество других блоков метаданных, а затем аудиофреймы.
- FLAC поддерживает до 128 блоков метаданных. Сейчас определены:
- Аудиопоток состоит из одного или нескольких фреймов. У каждого фрейма есть заголовок, состоящий из кода синхронизации, информации о фрейме (размер блока, частота дискретизации, количество каналов и т.п.) и восьмибитной контрольной суммы. Также в заголовке содержится либо номер первого сэмпла во фрейме относительно всего потока (для потоков с изменяющимся размером блока) или номер фрейма (для потоков с постоянным размером блока). Это позволяет производить быстрый и точный поиск. Далее следуют закодированные подфреймы (по одному на каждый канал) и, наконец, фрейм, дополненный нулями до границы байта. Каждый подфрейм имеет свой заголовок, определяющий способ его декодирования.
- Так как декодер может начать работу в середине потока, должен быть метод определения начала фрейма. Каждый фрейм начинается с 14-битного синхронизирующего кода. Этот код не может появляться ни в одном другом месте заголовка фрейма. Однако так как это код может появиться в подфреймах, у декодера есть два способа определить, что данная последовательность является началом фрейма. Сначала проверяется корректность данных во всем фрейме. Однако этот шаг не может гарантировать отсутствия ошибок, поэтому дополнительно производится расчет восьмибитной контрольной суммы заголовка фрейма и полученный результат сравнивается со значением, полученным при кодировании и записанным после заголовка фрейма.
- Каждый фрейм должен содержать основную информацию о потоке, так как декодер может не иметь доступа к блоку метаданных STREAMINFO в начале потока. Сюда входит частота дискретизации, количество бит на сэмпл, количество каналов и т.д. Так как заголовоки фреймов вносят дополнительные накладные расходы, то они влияют уровень сжатия. Чтобы сделать заголовки фреймов минимальными, FLAC использует таблицы поиска для наиболее часто используемых значений параметров фремов. Например, часть, отвечающая за частоту дискретизации, занимает 4 бита. Восемь предопределенных значений соответствуют наиболее самым распространенным частотам (8/16/22.05/24/32/44.1/48/96 кГц). Однако дополнительные частоты могут быть использованы с помощью специального набора битов, указывающего декодеру, что необходимое значение находится в конце заголовка. Такой же метод используется для указания размера блока и количества битов на сэмпл. В этом случае заголовок остается достаточно малым для наиболее распространенных типов аудиоданных.
- Подфреймы (по одному для каждого канала) кодируются во фрейме отдельно и хранятся в потоке последовательно. Это ведет к упрощению декодера, однако ценой этому является увеличение размеров буффера. У каждого подфрейма есть свой заголовок, определяющий его аттрибуты (метод и порядок прогнозирования, параметры кодирования остатков и т.д.). За заголовком следуют аудиоданные для этого канала.
- Во FLAC определено специальное подмножество формата (Subset format). Все потоки сжатые этим методом на самом деле являются потоковыми, то есть декодер, который не может искать в потоке, имеет возможность перейти к любой его точке и начать воспроизведение. Для файлов, отвечающих этому подмножеству формата, значительно проще сделать аппаратный декодер. flac по умолчанию создает потоки, отвечающие этому подмножеству формата. Ключ --lax запрещает создание таких потоков. Чтобы файл отвечал данному подмножеству, для него должны выполняться следующие ограничения:
- Значение битов, отвечающих за размер блока, должно быть в пределах 0001-0101 или 1000-1110. Поток должен состоять из блоков одинакового небольшого размера (за исключением последнего), а в блоке метаданных STREAMINFO должны быть указаны равные значения для минимального и максимального размера блока.
- Частота дискретизации в заголовке фрейма должна описываться следующим диапазоном битов 0001-1011.
- Количество бит на сэмпл в заголовке фрейма должно описываться следующим диапазоном битов 001-111.
<32> | "fLaC", маркер потока FLAC в кодировке ASCII, означающий, что первыми четырьмя байтами потока являются 0x66, 0x4C, 0x61, 0x43 |
Обязательный блок метаданных STREAMINFO, содержащий основные свойства потока | |
Ноль или больше блоков метаданных | |
Один или больше аудиофреймов |
Заголовок, определяющий тип и размер блока метаданных | |
<1> | Флаг равный 1, если данный блок метаданных является последним перед аудиоблоками, 0 в противном случае |
<7> |
Тип блока:
|
<24> | Длина в байтах соответствующего блока метаданных (не включает размер ЗАГОЛОВКА_БЛОКА_МЕТАДАННЫХ) |
Содержимое блока должно соответствовать типу блока, указанному в заголовке |
<16> | Минимальный размер блока в сэмплах в данном потоке. |
<16> | Максимальный размер блока в сэмплах в данном потоке. |
<24> | Минимальный размер фрейма в байтах в данном потоке. Если значение не известно, то 0 |
<24> | Максимальный размер фрейма в байтах в данном потоке. Если значение не известно, то 0 |
<20> | Частота дискретизации в Гц. |
<3> | (Количество каналов) - 1. FLAC поддерживает от 1 до 8 каналов. |
<5> | (Количество битов на сэмпл) - 1. FLAC поддерживает от 1 до 32 битов на сэмпл. Сейчас базовые декодер и кодер поддерживают до 24 бит на сэмпл. |
<36> | Количество сэмплов в потоке. Если здесь указан 0, то количество сэмплов не известно. |
<128> | Подпись MD5 несжатых аудиоданных, которая позволяет декодеру обнаружить ошибку, даже если ее наличие не нарушает структуру потока. |
Примечания:
|
n бит со значением 0. n должно быть кратно 8. |
<32> | Зарегистрированный id приложения (см. страницу |
Данные приложения. n должно быть кратно 8. |
Одна или больше точек поиска. | |
Примечания:
|
<64> | Номер сэмпла в потоке первого сэмпла целевого фрейма или 0xFFFFFFFFFFFFFFFF для зарезервированной точки. |
<64> | Смещение в байтах от первого байта первого заголовка фрейма до первого байта заголовка целевого фрейма. |
<16> | Количество сэмплов в целевом фрейме. |
Примечания:
|
Содержимое комметария в формате Vorbis, как оно описано |
<128*8> | Номер в мультимедийном каталоге, в котором используются только символы ASCII из диапазона 0x20-0x7e. В общем случае этот номер может иметь размер от 0 до 128 байтов, а символы справа, оставшиеся неиспользованными, должны быть заполнены байтом 0x00. На аудиодисках номер состоит из 13 цифр, за которыми следуют 115 пустых символов. |
<64> | Количество начальных сэмплов. Это поле имеет значение только для оглавлений аудиодисков, для остальных целей должно быть установлено значение 0. Для аудиодисков начальной является зона помеченная как TRACK 00, где хранится оглавление. Более точно определение для данного поля выглядело бы так: это число сэмплов от первого сэмпла на диске до первого сэмпла превой индексной точки первого трека. В соответствии со стандартом Red Book начальная зона должна содержать тишину, поэтому программы для копирования с аудиодиска обычно не сохраняют ее. Кроме того начальная зона должна занимать не меньше двух секунд. Поэтому здесь хранится длина начальной зоны, чтобы потом моджно было вычислить абсолютную позицию первого трека. Обратите внимание на то, что число сэмплов указывается до первой индексной точки первого трека, а не обязательно до точки INDEX 01 первого трека, так как на первом треке могут быть данные с индексом INDEX 00. |
<1> | 1, если CUESHEET соответствует компакт диску, иначе 0. |
<7+258*8> | Зарезервировано. Все биты должны быть равны 0. |
<8> | Количество треков. Для аудиодисков это число должно быть не больше, чем 100 (99 обычных треков и завершающий трек). |
Один или больше треков. В блоке CUESHEET обязательно должен быть завершающий трек@@@@. По спецификации Red Book на аудиодисках номер завершающего трека должен равняться 170. |
<64> | Смещение трека в сэмплах относительно начала аудиопотока FLAC. Это смещение для первой индексной точки трека. (Обратите внимание на отличие от аудиодиска, где смещение трека в содержании хранится в INDEX 01, даже если есть INDEX 00.) В аудиодиске смещение всегда кратно 588 (588 сэмплов = 44100 сэмплов/сек. * 1/75 сек.). |
<8> | Номер трека. Номер трека 0 недопустим, чтобы избежать конфликта со спецификацией аудиодиска, которая резервирует этот номер для начального трека. Для аудиодиска номер должен быть от 1 до 99 или 170 для завершающего трека. Не является необходимым, но рекомендуется начинать нумерацию с 1 и увеличивать номера последовательно. Номера треков в списке должны быть уникальными. |
<12*8> | Международный стандартный код записи (ISRC) для трека. Это 12-символьный код, состоящий только из цифр; см. |
<1> | Тип трека: 0 - для аудио, 1 - для остальных типов данных. Это поле соответствует третьему контольному биту Q-канала аудиодиска. |
<1> | Флаг предварительной корелляции: 0 -- если ее нет, иначе 1. Соответствует 5 контрольному биту Q-канала аудиодиска; см. |
<6+13*8> | Зарезервировано. Все биты должны быть равны 0. |
<8> | Число индексных точек трека. Для каждого трека должен быть хотя бы один индекс, кроме завершающего, у которого нет индекса. У аудиодиска это число не должно быть больше 100. |
Одна или больше индексных точек для трека. |
<64> | Смещение в сэмплах индексной точки относительно смещения трека. Для аудиодиска смещение должно быть кратно 588 (588 сэмплов = 44100 сэмплов/сек. * 1/75 сек.). Обратите внимание на то, что смещение берется от начала трека, а не от начала аудиоданных. |
<8> | Номер индексной точки. Первый индекс трека должен иметь номер 0 или 1, а далее номера индексов должны последовательно увеличиваться на 1. Номера индексов для трека должны быть уникальны. |
<3*8> | Зарезервировано. Все биты должны быть равны 0. |
Один подфрейм на канал | |
> | Выравнивание нулями на границу байта |
<14> | код синхронизации 11111111111110 |
<2> |
Зарезервировано:
|
<4> |
Размер блока в сэмплах:
|
<4> |
Частота дискретизации:
|
<4> |
Расположение каналов:
|
<3> |
Количество битов на сэмпл:
|
<1> | Дополнение нулем до границы бита, чтобы не допустить ошибку синхронизации |
> | Если (переменный размер блока) <8-56> : номер сэмпла в формате UTF-8 (размер декодируемого числа 36 бит) иначе <8-48> : номер фрейма в формате UTF-8 (размер декодируемого числа 31 бит) |
> | Если (битовая маска размера блока == 11x) 8/16 бит (размер блока - 1) |
> | Если (битовая маска частоты дискретизации == 11xx) частота дискретизации 8/16 бит |
<8> | 8-битная полиномальная контрольная сумма (x^8 + x^2 + x^1 + x^0) данных заголовка, включая код синхронизации (x инициализируется нулем). |
Примечания:
|
<16> | 16-битная полиномальная контрольная сумма (x^16 + x^15 + x^2 + x^0) всего фрейма (x инициализируется нулем). |
ПОДФРЕЙМ_LPC|| ПОДФРЕЙМ_VERBATIM
Тип подфрейма, определяемый в заголовке |
<1> | Бит равный 0, чтобы предотвратить ошибку синхронизации. |
<6> |
Тип подфрейма:
|
<1+k> |
Флаг 'неиспользуемые биты на сэмпл':
|
Примечания:
|
Несжатое постоянное значение подблока, n равно количеству битов на сэмпл во фрейме | |
Некодируемые начальные сэмплы (n равно количеству битов на сэмпл во фрейме, умноженному на порядок предиктора). | |
Закодированный остаток |
Некодируемые начальные сэмплы (n равно количеству битов на сэмпл во фрейме, умноженному на порядок предиктора). | |
<4> | (точность дискретного коэффициета линейного прогнозирования (QLP)) - 1. Значение 1111 недопустимо. |
<5> | Необходимый сдвиг дискретного коэффициета линейного прогнозирования в битах. (Примечание: это число - знаковое дополнение до двух). |
Несжатые коэффициенты прогнозирования (n = точность QLP * порядок LPC) (Примечание: эти числа являются знаковыми дополнениями до двух). | |
Закодированный остаток |
Несжатый подблок, n равно количеству битов на сэмпл во фрейме, i - размеру блока |
<2> |
Метод кодирования остатков:
|
Примечания:
|
<4> | Порядок раздела |
Далее следуют 2^порядок разделов |
<4(+5)> |
Параметр кодирования:
|
> |
Закодированный остаток. Количество сэмплов n в разделе определяется следующим образом:
|
- STREAMINFO: Этот блок содержит информацию обо всем потоке (частоту дискретизации, количество каналов, количество сэмплов и т.д.). Он всегда должен быть первым блоком метаданных в потоке. Следующие блоки должны следовать за ним, и могут быть пропущены декодером.
- APPLICATION: Этот блок предназначен для использования приложениями третьих лиц. Единственным обязательным полем является 32-битный идентификатор, который выдается разработчиками FLAC. Формат оставшейся части блока определяется зарегистрированным под этим номером приложением. Чтобы получить id для своего приложения, посетите
- PADDING: Этот блок предназначен для резервирования места. Содержимое блока PADDING не имеет значения. Он полезен в том случае, если известно, что блок после кодирования будет добавлен блок APPLICATION. Пользователь может зарезервировать необходимое пространство с помощью блока PADDING, чтобы приложение смогло записать на его место блок APPLICATION. Эта операция займет намного меньше времени, чем вставка блока в начало файла, так как в втором случае потребуется его полная перезапись.
- SEEKTABLE: Это необязательный блок для хранения точек поиска. В потоке FLAC можно найти любой сэмпл без этой таблицы, однако задержка может быть непредсказуемой, так как битрейт в потоке может существенно меняться. С помощью таблицы точек поиска пауза может быть существенно сокращена. Каждая точка занимает 18 байтов, поэтому для быстрого поиска с точностью до 1% необходимо всего 2кб. В потоке может быть только одни блок SEEKTABLE, но в нем может быть любое количество точек поиска. Также существуют резервируемые точки, которые пропускаются декодером, но могут использоваться для последующих вставок реальных точек поиска.
- VORBIS_COMMENT: Этот блок предназначен для хранения списка в удобном для чтения формате (параметр=значение). Значения записываются в кодировке UTF-8. Используется реализация
- CUESHEET: В этом блоке записывается информация из списка разбиения аудиодиска. Сделана поддержка треков и индекса, совместимая со стандартом Red Book CD для аудиодисков, а также других метаданных, таких как номер в каталоге дисков. Этот блок особенно полезен для архивирования аудиодисков, но также может использоваться как механизм для поиска при воспроизведении. страницу регистрации.спецификации комментария Vorbis. Это единственный официально поддерживаемый механизм работы с тегами в FLAC. В потоке может быть только один блок VORBIS_COMMENT.
-
Windows
- dBpowerAMP-- мощная программа, позволяющая преобразовывать и воспроизводить файлы.
- Графическая оболочка для Windows FLAC frontend.
- FLACdropоболочка для Windows похожая на Oggdrop.
- Оболочку Monkey's Audioможно использовать для работы с FLAC; см. описание.
-
Unix
- Grip- отличная оболочка для копирования аудиодисков и кодирования, которую можно легко настроить для использования FLAC.
Все исходные коды и исполняемые файлы распространяются под "открытыми" лицензиями. Библиотеки -- под LGPL, плагины и утилиты (flac и metaflac) -- под GPL. Если вы хотите распространять FLAC частично или полностью на других условиях,
.Все релизы делаются на SourceForge и лежат на
этой странице. Для каждой версии выложены исходные тексты, а также скомпилированные версии для Linux, Windows и Darwin (включая OS X).Пакеты RPM можно найти на
Planet CCRMAи rpmfind.net.Пакеты для дистрибутива Debian можно взять
здесь.Пользователям Mac OS X стоит использовать
MacFLAC-- дистрибутив FLAC для OS X, включающий установочный пакет .pkg и расширения для этой операционной системы. Если вы используете Fink, вы можете попробовать пакет FLAC Fink.Вы также можете скачать обновляемый ежедневно
архив CVS.Полезные утилиты
Графические оболочки
FLAC - это аббревиатура от Free Lossless Audio Codec (свободный аудиокодек, сжимающий без потерь). Проект FLAC включает:
- потоковый формат;
- базовые кодеры и декодеры в виде библиотек;
- flac, утилиту командной строки, выполняющую сжатие и распаковку файлов .flac;
- metaflac, утилиту командной строки для редактирования метаданных в файлах .flac;
- плагины для разных плейеров.
"Свобода" означает, что спецификация потокового формата открыта для всех и может быть использована для любых целей (проект FLAC оставляет за собой право устанавливать спецификации и сертифицировать относящиеся к нему продукты на совместимость), а также то, что ни формат, ни один из реализованных методов кодирования/декодирования не запатентованы. Это также значит, что все исходные тексты доступны по лицензиям, обязывающим предоставлять исходные коды.
FLAC компилируется на множестве платформ: Unixes (Linux, *BSD, Solaris, OS X), Windows, BeOS и OS/2. Имеются системы сборки для autoconf/automake, MSVC, Watcom C и Project Builder.
Характеристики FLAC:
Формат FLAC и методы кодирования/декодирования не защищены патентами.
- Сжатие без потерь: Кодирование PCM данных не приводит к потере информации, следовательно декодируемый аудиофайл абсолютно идентичен тому, который был подан на вход кодеру. Чтобы определить возможные ошибки при передаче файла, для каждого фрейма вычисляется 16-битная контрольная сумма. Целостность на дальнейшем этапе подтверждается подписью
MD5распакованных данных, которая находится в заголовке и может быть проверена при воспроизведении, декодировании или с помощью тестирования.- Скорость: Скорость работы при кодировании и декодировании несимметричны. Для декодирования используется только целочисленная арифметика, которая требует значительно меньше вычислений, чем в перцепционных кодеках. Декодирование в реальном времени легко достижимо даже на старых компьютерах.
- Аппаратная поддержка: Благодаря свободной базовой реализации и простому декодированию FLAC является единственным аудиокодеком, сжимающим без потерь, который имеет аппаратную поддержку.
- Поточность: Каждый фрейм FLAC содержит достаточно информации для собственного декодирования. Текущий фрейм FLAC не зависит от предыдущих и последующих. FLAC использует коды синхронизации и контрольные суммы, что позволяет декодеру быстро выбирать позицию в текущем потоке.
- Поиск: FLAC поддерживает быстрый и точный поиск, что полезно не только при воспроизведении, но и дает возможность использовать FLAC в звуковых редакторах.
- Метаданные: FLAC имеет расширяемую систему метаданных. Новые блоки метаданных могут быть определены и реализованы в будущих версиях без потери обратной совместимости. Сейчас определены типы метаданных для таблиц поиска, тегов и списков разметки аудиодисков. Приложение может использовать блок метаданных
APPLICATIONпосле регистрации для него ID.- Архивирование: FLAC удобно использовать для архивации, так как сжатие с его помощью не приводит к потере информации. Если в будущем Вы решите использовать другой формат, данные будут восстановлены из .flac файла в первоначальном виде. Кроме контрольной суммы фрейма и подписи
MD5, утилита flacимеет возможность проверки, использование которой приводит к тому, что кодируемый поток сразу же декодируется и сравнивается с исходным. Если происходит ошибка, кодер прекращает работу.- Архивирование аудиодисков: У FLAC если блок метаданных CUESHEET, в котором сохраняется таблица разметки аудиодиска. Например, можно записать аудиодиск в один файл, а затем импортировать его таблицу разметки при кодировании, чтобы полученный файл имел такое же представление как и диск. Если оригинал аудиодиска будет испорчен, то вы сможете восстановить таблицу разметки, чтобы записать точную копию диска.
- Устойчивость от ошибок: Благодаря разбиению на фреймы, ошибки в потоке локализуются до уровня фрейма, в котором произошла ошибка (обычно несколько сотых секунды). В некоторых кодеках одна ошибка может привести к потере всего остатка потока.
Чего нет во FLAC?
сообщите мне и я исправлю ее.
- FLAC не осуществляет сжатие с потерями. Для этого существует много хороших форматов, таких как
Vorbis, MPCи mp3(отличная реализация с открытими исходными текстами LAME).- FLAC не будет SDMI совместимым и т.п. Перед проектом не стоит цели поддерживать методы защиты, которые на практике лишь увеличивают объем файла. Конечно, мы не сможем препятствовать кому-либо создавать несвободные блоки метаданных, однако, стандартные декодеры все равно будут их пропускать.
Целью этой страницы является сравнение 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 треков различных стилей.
В первой таблице приведены общие результаты по всем трекам. В остальных таблицах приведены результаты для каждого трека. В общей таблице приведено большое количество режимов, а на остальых лишь самые интересные
В общей таблице результаты отсортированы по уровню сжатия, которое вычисляется как среднее из уровней для всех треков, чтобы длинные треки не имели большего веса при тестировании. В таблицах для отдельных треков приведен уровень сжатия ( = размер сжатого файла / размер несжатого файла).
Необходимо сделать несколько замечаний:
- flac -5 является "золотой серединой", обеспечивая за малое время достаточный уровень сжатия. Декодирование таких файлов также проходит быстро. Это объясняется тем, что FLAC производит основную обработку на стадии кодирования, которая используется однократно, в то время как при адаптивной схеме кодеру и декодеру нужно одинаковое количество ресурсов. Поэтому FLAC лучше приспособлен для воспроизведения на менее мощных устройствах и это одна из причин, по которой только FLAC поддерживается на аппаратном уровне.
- Настроки качества LPAC становятся нестабильными при использовании ключа -r (добавляет возможность поиска при воспроизведении).
- У RKAU размер файла также может возрастать в режиме 'high' (высокая степень сжатия).
- Следующий факт обративший на себя внимание состоит в том, что патентованные и платные кодеки оказываются худшими по большинству показателей. SPS выглядит настолько устаревшим и корявым, что я забросил его тестирование после кодирования одного файла.
В таблице с общими результатами приведены только самые "экономичные" режимы (которые дают высокий уровень сжатия за приемлемый отрезок времени).
Таблица 2. Общие результаты.
Кодек Время
сжатияВремя
распаковкиСжатый
размерОбщий
уровень
сжатияСредний
уровень
сжатияLa 0.3c 151:13.16 145:49.78 375.76 MB 0.4814 0.4986 Monkey's Audio 3.96 (extra high) 26:52.07 28:44.55 386.96 MB 0.4958 0.5119 optimFROG 4.21 (mode 1 @ 4x) 24:19.58 25:37.44 389.04 MB 0.4984 0.5151 Monkey's Audio 3.96 (high) 13:59.07 15:30.69 391.76 MB 0.5019 0.5179 optimFROG 4.21 (mode 0 @ 4x) 16:34.96 17:57.28 394.69 MB 0.5056 0.5223 Monkey's Audio 3.96 (normal) 11:42.34 13:11.29 395.04 MB 0.5061 0.5223 RKAU 1.07 (normal) 53:46.74 23:31.10 395.71 MB 0.5070 0.5229 RKAU 1.07 (fast) 26:35.34 20:13.22 399.25 MB 0.5115 0.5262 WavPack 3.97a (high) 13:32.02 14:39.12 399.60 MB 0.5119 0.5278 LPAC 1.40 (-r, medium) 18:52.79 10:43.32 403.52 MB 0.5170 0.5319 Monkey's Audio 3.96 (fast) 9:05.59 10:51.09 401.63 MB 0.5145 0.5327 WavPack 3.97a (normal) 6:50.12 8:13.41 409.33 MB 0.5244 0.5424 flac 1.1.0 (-5, default) 12:54.19 7:08.80 413.46 MB 0.5297 0.5459 Bonk 0.5 36:56.36 27:09.35 418.65 MB 0.5364 0.5543 flac 1.1.0 (-3) 9:51.58 7:00.92 419.29 MB 0.5372 0.5544 Ogg Squish 0.98 ? ? 431.08 MB 0.5522 0.5714 Shorten 3.2a (-p0 -b256, default) 9:44.48 6:31.74 433.56 MB 0.5555 0.5729 Kexis 0.2.2 17:49.06 14:53.90 434.33 MB 0.5564 0.5750 WavPack 3.97a (fast) 5:20.17 5:12.38 441.88 MB 0.5661 0.5857 WaveZIP 8:41.72 ? 452.95 MB 0.5802 0.5986 RIFF WAVE 70:11.90 70:11.90 780.56 MB 1.0000 1.0000 Результаты тестирования для всех кодеков во всех режимах.
Таблица 3. Общие результаты.
Кодек Время
сжатияВремя
распаковкиСжатый
размерОбщий
уровень
сжатияСредний
уровень
сжатияLa 0.3c 151:13.16 145:49.78 375.76 MB 0.4814 0.4986 optimFROG 4.21 (mode 4 @ 2x) 183:05.29 184:13.42 386.13 MB 0.4947 0.5105 optimFROG 4.21 (mode 4 @ 1x) 338:34.96 339:23.24 386.22 MB 0.4948 0.5105 optimFROG 4.21 (mode 4 @ 4x) 105:15.85 106:36.23 386.21 MB 0.4948 0.5107 optimFROG 4.21 (mode 3 @ 2x) 92:48.79 93:49.75 386.52 MB 0.4952 0.5110 optimFROG 4.21 (mode 3 @ 1x) 161:51.00 162:10.62 386.55 MB 0.4952 0.5110 optimFROG 4.21 (mode 3 @ 4x) 58:18.40 59:30.51 386.71 MB 0.4954 0.5114 Monkey's Audio 3.96 (extra high) 26:52.07 28:44.55 386.96 MB 0.4958 0.5119 optimFROG 4.21 (mode 2 @ 1x) 68:22.58 69:29.50 387.71 MB 0.4967 0.5128 optimFROG 4.21 (mode 2 @ 2x) 44:17.55 45:31.33 387.72 MB 0.4967 0.5129 optimFROG 4.21 (mode 2 @ 4x) 32:16.85 33:30.92 387.93 MB 0.4970 0.5133 optimFROG 4.21 (mode 1 @ 1x) 43:00.91 44:13.07 388.71 MB 0.4980 0.5146 optimFROG 4.21 (mode 1 @ 2x) 30:35.00 31:50.50 388.81 MB 0.4981 0.5147 optimFROG 4.21 (mode 1 @ 4x) 24:19.58 25:37.44 389.04 MB 0.4984 0.5151 Monkey's Audio 3.96 (high) 13:59.07 15:30.69 391.76 MB 0.5019 0.5179 optimFROG 4.21 (mode 0 @ 1x) 20:51.21 22:08.44 394.35 MB 0.5052 0.5218 optimFROG 4.21 (mode 0 @ 2x) 17:59.86 19:20.53 394.48 MB 0.5054 0.5220 optimFROG 4.21 (mode 0 @ 4x) 16:34.96 17:57.28 394.69 MB 0.5056 0.5223 Monkey's Audio 3.96 (normal) 11:42.34 13:11.29 395.04 MB 0.5061 0.5223 RKAU 1.07 (normal) 53:46.74 23:31.10 395.71 MB 0.5070 0.5229 RKAU 1.07 (high) 136:56.62 27:55.98 395.89 MB 0.5072 0.5235 RKAU 1.07 (fast) 26:35.34 20:13.22 399.25 MB 0.5115 0.5262 WavPack 3.97a (high) 13:32.02 14:39.12 399.60 MB 0.5119 0.5278 LPAC 1.40 (-r, medium) 18:52.79 10:43.32 403.52 MB 0.5170 0.5319 LPAC 1.40 (-r, extra high) 30:30.93 12:20.26 404.08 MB 0.5177 0.5322 LPAC 1.40 (-r, high) 24:56.56 11:51.64 404.03 MB 0.5176 0.5323 Monkey's Audio 3.96 (fast) 9:05.59 10:51.09 401.63 MB 0.5145 0.5327 WavPack 3.97a (normal) 6:50.12 8:13.41 409.33 MB 0.5244 0.5424 flac 1.1.0 (-8) 55:02.38 7:07.59 411.88 MB 0.5277 0.5437 flac 1.1.0 (-5, default) 12:54.19 7:08.80 413.46 MB 0.5297 0.5459 Bonk 0.5 36:56.36 27:09.35 418.65 MB 0.5364 0.5543 flac 1.1.0 (-3) 9:51.58 7:00.92 419.29 MB 0.5372 0.5544 flac 1.1.0 (-1) 8:37.94 7:15.87 432.32 MB 0.5539 0.5706 Ogg Squish 0.98 ? ? 431.08 MB 0.5522 0.5714 Shorten 3.2a (-p0 -b256, default) 9:44.48 6:31.74 433.56 MB 0.5555 0.5729 Kexis 0.2.2 17:49.06 14:53.90 434.33 MB 0.5564 0.5750 Shorten 3.2a (-p8 -b2048) 12:00.04 7:25.12 438.86 MB 0.5622 0.5810 WavPack 3.97a (fast) 5:20.17 5:12.38 441.88 MB 0.5661 0.5857 WaveZIP 8:41.72 ? 452.95 MB 0.5802 0.5986 RIFF WAVE 70:11.90 70:11.90 780.56 MB 1.0000 1.0000 Таблица 4. Результаты для отдельных треков.
Трек Кодек Время
сжатияВремя
распаковкиСжатый
размерУровень
сжатияDream Theater
6:00La 0.3c 11:37.69 11:15.37 42.72 MB 0.7306 Monkey's Audio 3.96 (extra high) 2:05.36 2:13.44 43.24 MB 0.7395 optimFROG 4.21 (mode 1 @ 4x) 1:53.28 2:00.45 43.26 MB 0.7398 optimFROG 4.21 (mode 4 @ 1x) 25:32.41 25:38.15 43.26 MB 0.7398 Monkey's Audio 3.96 (high) 1:07.92 1:13.20 43.39 MB 0.7421 optimFROG 4.21 (mode 0 @ 4x) 1:17.95 1:25.67 43.42 MB 0.7426 Monkey's Audio 3.96 (normal) 0:57.04 1:03.37 43.48 MB 0.7436 WavPack 3.97a (high) 1:10.34 1:08.61 43.49 MB 0.7438 RKAU 1.07 (normal) 1:57.68 1:33.38 43.81 MB 0.7493 Monkey's Audio 3.96 (fast) 0:44.33 0:51.22 43.97 MB 0.7520 LPAC 1.40 (-r, normal) 1:27.61 0:56.18 44.12 MB 0.7545 flac 1.1.0 (-8) 4:18.72 0:37.28 44.33 MB 0.7582 WavPack 3.97a (normal) 0:40.24 0:40.70 44.34 MB 0.7583 Bonk 0.5 2:56.03 2:11.58 44.35 MB 0.7585 flac 1.1.0 (-5, default) 1:01.31 0:37.01 44.41 MB 0.7595 Shorten 3.2a (-p8 -b2048) 0:58.81 0:37.63 44.75 MB 0.7654 flac 1.1.0 (-3) 0:49.05 0:36.44 44.78 MB 0.7659 Ogg Squish 0.98 ? ? 45.17 MB 0.7725 Pegasus-SPS 4:45.00 ? 45.40 MB 0.7765 WavPack 3.97a (fast) 0:18.66 0:18.59 46.31 MB 0.7920 Kexis 0.2.2 1:24.83 1:10.93 46.52 MB 0.7956 flac 1.1.0 (-1) 0:44.00 0:36.91 46.65 MB 0.7978 Shorten 3.2a (-p0 -b256, default) 0:47.75 0:32.56 46.68 MB 0.7984 WaveZIP 0:38.99 ? 47.22 MB 0.8077 RIFF WAVE 5:47.56 5:47.56 58.47 MB 1.0000 Eddie Warner
TitusLa 0.3c 5:24.56 5:13.29 14.76 MB 0.5298 LPAC 1.40 (-r, normal) 0:40.76 0:21.21 14.77 MB 0.5298 flac 1.1.0 (-8) 1:57.87 0:15.05 15.01 MB 0.5385 optimFROG 4.21 (mode 1 @ 4x) 0:53.39 0:55.52 15.01 MB 0.5385 optimFROG 4.21 (mode 4 @ 1x) 12:02.54 12:03.76 15.02 MB 0.5390 flac 1.1.0 (-5, default) 0:28.17 0:15.05 15.12 MB 0.5424 optimFROG 4.21 (mode 0 @ 4x) 0:36.81 0:39.19 15.13 MB 0.5429 RKAU 1.07 (normal) 0:54.82 0:42.71 15.15 MB 0.5435 Monkey's Audio 3.96 (extra high) 0:58.52 1:01.81 15.25 MB 0.5471 Monkey's Audio 3.96 (high) 0:30.88 0:33.55 15.34 MB 0.5505 Monkey's Audio 3.96 (normal) 0:25.45 0:28.37 15.35 MB 0.5509 flac 1.1.0 (-3) 0:22.21 0:14.72 15.43 MB 0.5538 WavPack 3.97a (high) 0:32.15 0:31.18 15.57 MB 0.5585 Monkey's Audio 3.96 (fast) 0:19.85 0:22.90 15.58 MB 0.5592 Shorten 3.2a (-p0 -b256, default) 0:21.16 0:13.55 15.78 MB 0.5662 WavPack 3.97a (normal) 0:18.25 0:17.67 15.86 MB 0.5692 Shorten 3.2a (-p8 -b2048) 0:26.82 0:16.75 16.21 MB 0.5818 flac 1.1.0 (-1) 0:19.75 0:15.76 16.39 MB 0.5880 Bonk 0.5 1:22.01 1:00.12 16.73 MB 0.6003 Ogg Squish 0.98 ? ? 17.03 MB 0.6112 Kexis 0.2.2 0:38.72 0:32.25 17.40 MB 0.6242 WavPack 3.97a (fast) 0:08.19 0:08.79 17.49 MB 0.6275 WaveZIP 0:17.55 ? 17.89 MB 0.6420 RIFF WAVE 2:35.67 2:35.67 27.87 MB 1.0000 Tool
Forty-six & 2La 0.3c 12:34.97 12:09.08 37.42 MB 0.5824 optimFROG 4.21 (mode 4 @ 1x) 27:58.28 28:01.87 37.96 MB 0.5907 optimFROG 4.21 (mode 1 @ 4x) 2:03.43 2:09.27 38.15 MB 0.5937 Monkey's Audio 3.96 (extra high) 2:14.70 2:24.30 38.23 MB 0.5950 Monkey's Audio 3.96 (high) 1:09.82 1:18.09 38.42 MB 0.5979 Monkey's Audio 3.96 (normal) 0:58.69 1:07.02 38.59 MB 0.6005 optimFROG 4.21 (mode 0 @ 4x) 1:24.44 1:30.97 38.68 MB 0.6020 WavPack 3.97a (high) 1:02.47 1:14.54 38.86 MB 0.6048 Monkey's Audio 3.96 (fast) 0:46.50 0:55.41 39.18 MB 0.6098 RKAU 1.07 (normal) 2:16.00 1:41.84 39.42 MB 0.6135 WavPack 3.97a (normal) 0:29.07 0:42.87 39.92 MB 0.6213 LPAC 1.40 (-r, normal) 1:38.01 0:57.56 40.25 MB 0.6263 flac 1.1.0 (-8) 4:35.08 0:39.40 40.89 MB 0.6363 Bonk 0.5 3:07.20 2:21.28 40.98 MB 0.6378 flac 1.1.0 (-5, default) 1:05.54 0:39.65 41.04 MB 0.6388 flac 1.1.0 (-3) 0:50.18 0:38.92 41.74 MB 0.6496 Ogg Squish 0.98 ? ? 42.27 MB 0.6578 flac 1.1.0 (-1) 0:45.83 0:40.89 42.70 MB 0.6646 Kexis 0.2.2 1:30.09 1:16.29 42.75 MB 0.6652 Shorten 3.2a (-p8 -b2048) 1:02.42 0:37.84 43.06 MB 0.6701 Shorten 3.2a (-p0 -b256, default) 0:51.29 0:34.59 43.18 MB 0.6721 WavPack 3.97a (fast) 0:31.26 0:28.79 43.65 MB 0.6794 WaveZIP 0:42.84 ? 44.52 MB 0.6930 RIFF WAVE 6:21.92 6:21.92 64.25 MB 1.0000 Cannibal Corpse
Mummified In Barbed WireLa 0.3c 6:35.94 6:23.57 22.69 MB 0.6798 Monkey's Audio 3.96 (extra high) 1:10.94 1:15.92 22.95 MB 0.6876 optimFROG 4.21 (mode 4 @ 1x) 14:34.28 14:37.69 22.95 MB 0.6877 Monkey's Audio 3.96 (high) 0:37.63 0:41.34 23.19 MB 0.6948 Monkey's Audio 3.96 (normal) 0:31.71 0:34.87 23.26 MB 0.6968 optimFROG 4.21 (mode 1 @ 4x) 1:03.96 1:08.85 23.31 MB 0.6984 RKAU 1.07 (normal) 1:09.71 0:56.66 23.34 MB 0.6993 LPAC 1.40 (-r, normal) 1:05.38 0:36.20 23.53 MB 0.7050 WavPack 3.97a (high) 0:32.99 0:40.05 23.57 MB 0.7062 optimFROG 4.21 (mode 0 @ 4x) 0:44.14 0:48.71 23.95 MB 0.7176 flac 1.1.0 (-8) 2:25.59 0:20.85 24.18 MB 0.7245 Monkey's Audio 3.96 (fast) 0:25.05 0:28.99 24.20 MB 0.7250 flac 1.1.0 (-5, default) 0:34.66 0:21.42 24.30 MB 0.7282 Bonk 0.5 1:40.38 1:14.58 24.36 MB 0.7297 WavPack 3.97a (normal) 0:15.99 0:23.50 24.76 MB 0.7418 Shorten 3.2a (-p8 -b2048) 0:33.74 0:22.47 25.12 MB 0.7526 flac 1.1.0 (-3) 0:27.40 0:20.11 25.16 MB 0.7539 Ogg Squish 0.98 ? ? 25.23 MB 0.7558 Kexis 0.2.2 0:47.13 0:40.67 26.03 MB 0.7799 flac 1.1.0 (-1) 0:24.04 0:21.68 26.10 MB 0.7819 WavPack 3.97a (fast) 0:16.79 0:21.64 26.17 MB 0.7841 Shorten 3.2a (-p0 -b256, default) 0:28.20 0:20.46 26.61 MB 0.7972 WaveZIP 0:22.25 ? 26.89 MB 0.8058 RIFF WAVE 3:18.36 3:18.36 33.37 MB 1.0000 Alanis Morisette
Hand In My PocketLa 0.3c 7:35.21 7:20.19 20.77 MB 0.5312 optimFROG 4.21 (mode 4 @ 1x) 16:51.82 16:54.34 21.24 MB 0.5433 optimFROG 4.21 (mode 1 @ 4x) 1:14.29 1:18.06 21.36 MB 0.5464 Monkey's Audio 3.96 (extra high) 1:21.38 1:27.28 21.54 MB 0.5509 Monkey's Audio 3.96 (high) 0:42.54 0:47.41 21.75 MB 0.5563 Monkey's Audio 3.96 (normal) 0:35.45 0:39.65 21.84 MB 0.5586 optimFROG 4.21 (mode 0 @ 4x) 0:51.39 0:54.97 21.89 MB 0.5598 Monkey's Audio 3.96 (fast) 0:28.23 0:33.21 22.16 MB 0.5668 WavPack 3.97a (high) 0:45.07 0:43.88 22.28 MB 0.5699 WavPack 3.97a (normal) 0:25.40 0:24.80 22.80 MB 0.5832 RKAU 1.07 (normal) 1:21.18 1:01.60 22.80 MB 0.5833 LPAC 1.40 (-r, normal) 1:01.11 0:33.79 23.25 MB 0.5948 Bonk 0.5 1:53.41 1:23.52 23.35 MB 0.5972 flac 1.1.0 (-8) 2:46.09 0:23.14 23.45 MB 0.5998 flac 1.1.0 (-5, default) 0:39.82 0:21.81 23.56 MB 0.6026 Ogg Squish 0.98 ? ? 24.11 MB 0.6167 flac 1.1.0 (-3) 0:30.58 0:22.05 24.32 MB 0.6221 Shorten 3.2a (-p8 -b2048) 0:37.49 0:22.93 24.72 MB 0.6323 Kexis 0.2.2 0:54.26 0:45.64 24.80 MB 0.6345 flac 1.1.0 (-1) 0:26.46 0:22.14 24.82 MB 0.6348 WavPack 3.97a (fast) 0:16.67 0:17.02 24.94 MB 0.6381 Shorten 3.2a (-p0 -b256, default) 0:29.71 0:18.92 25.34 MB 0.6481 WaveZIP 0:28.05 ? 25.95 MB 0.6638 RIFF WAVE 3:52.36 3:52.36 39.09 MB 1.0000 Gloria Estefan
CongaLa 0.3c 8:52.93 8:34.81 28.98 MB 0.6419 optimFROG 4.21 (mode 4 @ 1x) 19:40.53 19:44.47 29.43 MB 0.6517 optimFROG 4.21 (mode 1 @ 4x) 1:26.64 1:32.23 29.58 MB 0.6550 Monkey's Audio 3.96 (extra high) 1:35.65 1:42.11 29.65 MB 0.6567 optimFROG 4.21 (mode 0 @ 4x) 0:59.59 1:05.29 29.78 MB 0.6595 Monkey's Audio 3.96 (high) 0:50.17 0:56.40 29.85 MB 0.6610 WavPack 3.97a (high) 0:53.50 0:51.90 29.92 MB 0.6625 Monkey's Audio 3.96 (normal) 0:42.27 0:47.74 29.97 MB 0.6637 WavPack 3.97a (normal) 0:29.84 0:29.92 30.28 MB 0.6706 Monkey's Audio 3.96 (fast) 0:33.46 0:39.22 30.30 MB 0.6710 RKAU 1.07 (normal) 1:37.85 1:12.15 30.34 MB 0.6719 Bonk 0.5 2:13.34 1:39.44 30.64 MB 0.6785 flac 1.1.0 (-8) 3:16.07 0:27.53 30.76 MB 0.6811 LPAC 1.40 (-r, normal) 1:14.08 0:44.64 30.81 MB 0.6823 flac 1.1.0 (-5, default) 0:46.30 0:26.74 30.86 MB 0.6834 Ogg Squish 0.98 ? ? 31.06 MB 0.6879 WavPack 3.97a (fast) 0:13.31 0:14.15 31.61 MB 0.7000 flac 1.1.0 (-3) 0:35.88 0:27.65 31.63 MB 0.7006 Shorten 3.2a (-p8 -b2048) 0:44.76 0:27.48 31.76 MB 0.7034 Kexis 0.2.2 1:03.91 0:53.54 31.86 MB 0.7056 flac 1.1.0 (-1) 0:32.51 0:27.30 31.99 MB 0.7085 Shorten 3.2a (-p0 -b256, default) 0:35.74 0:23.64 32.47 MB 0.7191 WaveZIP 0:29.42 ? 33.02 MB 0.7313 RIFF WAVE 4:28.39 4:28.39 45.15 MB 1.0000 Cream
White RoomLa 0.3c 10:24.08 10:03.16 33.44 MB 0.6309 optimFROG 4.21 (mode 4 @ 1x) 22:59.05 23:02.98 33.93 MB 0.6399 optimFROG 4.21 (mode 1 @ 4x) 1:42.28 1:47.55 33.96 MB 0.6405 Monkey's Audio 3.96 (extra high) 1:51.77 2:00.37 34.14 MB 0.6441 Monkey's Audio 3.96 (high) 0:58.45 1:04.59 34.29 MB 0.6468 optimFROG 4.21 (mode 0 @ 4x) 1:10.30 1:15.99 34.29 MB 0.6468 Monkey's Audio 3.96 (normal) 0:49.32 0:56.89 34.42 MB 0.6493 WavPack 3.97a (high) 0:51.50 1:02.71 34.55 MB 0.6516 RKAU 1.07 (normal) 1:50.80 1:24.98 34.60 MB 0.6527 LPAC 1.40 (-r, normal) 1:25.16 0:48.67 34.84 MB 0.6572 Bonk 0.5 2:35.36 1:56.20 34.96 MB 0.6595 Monkey's Audio 3.96 (fast) 0:38.75 0:46.80 34.99 MB 0.6601 flac 1.1.0 (-8) 3:48.73 0:31.91 34.99 MB 0.6601 WavPack 3.97a (normal) 0:24.43 0:36.09 35.08 MB 0.6617 flac 1.1.0 (-5, default) 0:54.89 0:33.82 35.16 MB 0.6633 flac 1.1.0 (-3) 0:41.38 0:32.00 35.36 MB 0.6671 Shorten 3.2a (-p8 -b2048) 0:51.44 0:33.02 35.40 MB 0.6677 Ogg Squish 0.98 ? ? 35.74 MB 0.6742 WavPack 3.97a (fast) 0:26.00 0:24.83 36.32 MB 0.6852 Shorten 3.2a (-p0 -b256, default) 0:41.14 0:28.91 36.42 MB 0.6870 flac 1.1.0 (-1) 0:36.87 0:33.39 36.56 MB 0.6897 Kexis 0.2.2 1:13.87 1:02.90 36.64 MB 0.6911 WaveZIP 0:35.77 ? 37.13 MB 0.7004 RIFF WAVE 5:15.11 5:15.11 53.01 MB 1.0000 Maurice Ravel
Fanfare from "L'eventail de Jeanne"La 0.3c 3:55.40 3:47.60 6.46 MB 0.3104 optimFROG 4.21 (mode 4 @ 1x) 8:22.42 8:23.32 6.82 MB 0.3274 Monkey's Audio 3.96 (extra high) 0:39.93 0:41.69 6.85 MB 0.3289 optimFROG 4.21 (mode 1 @ 4x) 0:36.57 0:38.26 7.09 MB 0.3406 Monkey's Audio 3.96 (high) 0:21.22 0:23.04 7.16 MB 0.3437 RKAU 1.07 (normal) 0:40.67 0:28.52 7.18 MB 0.3451 optimFROG 4.21 (mode 0 @ 4x) 0:24.98 0:26.37 7.21 MB 0.3462 LPAC 1.40 (-r, normal) 0:29.01 0:15.11 7.33 MB 0.3520 Monkey's Audio 3.96 (normal) 0:18.19 0:19.54 7.44 MB 0.3575 WavPack 3.97a (high) 0:22.63 0:21.86 7.45 MB 0.3577 Monkey's Audio 3.96 (fast) 0:13.70 0:15.72 7.64 MB 0.3671 flac 1.1.0 (-8) 1:20.73 0:09.51 7.69 MB 0.3692 flac 1.1.0 (-5, default) 0:18.95 0:09.45 7.71 MB 0.3703 flac 1.1.0 (-3) 0:14.98 0:09.19 7.77 MB 0.3734 WavPack 3.97a (normal) 0:12.56 0:11.95 7.83 MB 0.3760 Bonk 0.5 0:55.92 0:40.23 7.83 MB 0.3762 flac 1.1.0 (-1) 0:12.97 0:10.39 8.12 MB 0.3902 Ogg Squish 0.98 ? ? 8.15 MB 0.3914 Shorten 3.2a (-p0 -b256, default) 0:13.81 0:08.88 8.19 MB 0.3932 Shorten 3.2a (-p8 -b2048) 0:17.45 0:10.30 8.29 MB 0.3983 Kexis 0.2.2 0:26.78 0:21.90 8.52 MB 0.4091 WaveZIP 0:13.11 ? 8.72 MB 0.4193 WavPack 3.97a (fast) 0:05.35 0:06.33 8.87 MB 0.4259 RIFF WAVE 2:03.76 2:03.76 20.82 MB 1.0000 Maurice Ravel
String Quartet (4th movement)La 0.3c 10:45.80 10:21.44 19.94 MB 0.3550 Monkey's Audio 3.96 (extra high) 1:54.09 2:01.72 20.47 MB 0.3642 optimFROG 4.21 (mode 4 @ 1x) 24:26.99 24:29.36 20.62 MB 0.3671 Monkey's Audio 3.96 (high) 0:58.14 1:06.45 20.80 MB 0.3702 optimFROG 4.21 (mode 1 @ 4x) 1:42.57 1:47.48 20.93 MB 0.3725 Monkey's Audio 3.96 (normal) 0:48.61 0:54.73 21.14 MB 0.3763 optimFROG 4.21 (mode 0 @ 4x) 1:09.17 1:13.14 21.23 MB 0.3779 RKAU 1.07 (normal) 1:52.65 1:25.39 21.30 MB 0.3791 Monkey's Audio 3.96 (fast) 0:37.30 0:44.79 21.54 MB 0.3835 WavPack 3.97a (high) 0:52.48 1:02.26 21.55 MB 0.3835 LPAC 1.40 (-r, normal) 1:20.84 0:42.73 21.96 MB 0.3909 WavPack 3.97a (normal) 0:23.29 0:34.28 22.11 MB 0.3935 flac 1.1.0 (-8) 3:53.93 0:28.02 22.61 MB 0.4025 flac 1.1.0 (-5, default) 0:54.34 0:27.92 22.68 MB 0.4036 Bonk 0.5 2:33.53 1:51.94 23.18 MB 0.4125 flac 1.1.0 (-3) 0:40.00 0:28.15 23.21 MB 0.4132 flac 1.1.0 (-1) 0:34.99 0:27.73 23.36 MB 0.4158 Kexis 0.2.2 1:15.05 1:03.86 23.42 MB 0.4168 Shorten 3.2a (-p0 -b256, default) 0:39.96 0:27.36 23.71 MB 0.4221 Ogg Squish 0.98 ? ? 24.12 MB 0.4293 WavPack 3.97a (fast) 0:24.34 0:22.17 25.08 MB 0.4463 Shorten 3.2a (-p8 -b2048) 0:49.06 0:29.94 25.59 MB 0.4554 WaveZIP 0:36.60 ? 25.84 MB 0.4600 RIFF WAVE 5:33.95 5:33.95 56.18 MB 1.0000 Sergei Prokofiev
Piano Concerto No.3 (3rd movement)La 0.3c 19:11.61 18:28.80 32.65 MB 0.3243 optimFROG 4.21 (mode 4 @ 1x) 43:21.88 43:26.18 33.58 MB 0.3335 Monkey's Audio 3.96 (extra high) 3:21.33 3:35.91 33.72 MB 0.3349 optimFROG 4.21 (mode 1 @ 4x) 3:00.57 3:08.19 33.83 MB 0.3360 optimFROG 4.21 (mode 0 @ 4x) 2:00.85 2:09.52 34.14 MB 0.3390 Monkey's Audio 3.96 (high) 1:43.17 1:55.31 34.23 MB 0.3400 Monkey's Audio 3.96 (normal) 1:26.19 1:35.90 34.66 MB 0.3442 RKAU 1.07 (normal) 3:08.70 2:26.17 35.21 MB 0.3496 LPAC 1.40 (-r, normal) 2:06.21 1:11.92 35.27 MB 0.3502 WavPack 3.97a (high) 1:32.78 1:50.74 35.35 MB 0.3510 Monkey's Audio 3.96 (fast) 1:06.28 1:18.56 35.43 MB 0.3518 WavPack 3.97a (normal) 0:40.68 1:00.29 36.99 MB 0.3673 flac 1.1.0 (-8) 6:51.48 0:49.47 38.07 MB 0.3781 flac 1.1.0 (-5, default) 1:35.22 0:47.57 38.17 MB 0.3791 flac 1.1.0 (-3) 1:10.67 0:46.40 38.51 MB 0.3824 flac 1.1.0 (-1) 1:01.44 0:53.40 39.30 MB 0.3903 Shorten 3.2a (-p0 -b256, default) 1:10.57 0:50.00 39.49 MB 0.3921 Kexis 0.2.2 2:12.39 1:49.00 39.89 MB 0.3962 Bonk 0.5 4:33.71 3:19.38 40.31 MB 0.4003 Ogg Squish 0.98 ? ? 41.86 MB 0.4157 WavPack 3.97a (fast) 0:43.24 0:40.17 43.03 MB 0.4273 WaveZIP 1:05.60 ? 43.67 MB 0.4337 Shorten 3.2a (-p8 -b2048) 1:26.84 0:53.19 45.34 MB 0.4502 RIFF WAVE 9:58.47 9:58.47 100.68 MB 1.0000 Frederic Chopin
Prelude No.24 in d minorLa 0.3c 5:14.83 5:03.08 9.84 MB 0.3582 Monkey's Audio 3.96 (extra high) 0:55.83 0:59.52 10.25 MB 0.3734 optimFROG 4.21 (mode 4 @ 1x) 11:56.24 11:58.77 10.34 MB 0.3764 optimFROG 4.21 (mode 1 @ 4x) 0:50.07 0:53.49 10.41 MB 0.3790 Monkey's Audio 3.96 (high) 0:28.52 0:31.32 10.47 MB 0.3812 optimFROG 4.21 (mode 0 @ 4x) 0:34.06 0:38.70 10.53 MB 0.3833 Monkey's Audio 3.96 (normal) 0:23.70 0:27.61 10.59 MB 0.3854 LPAC 1.40 (-r, normal) 0:34.91 0:20.01 10.74 MB 0.3911 WavPack 3.97a (high) 0:31.43 0:28.95 10.76 MB 0.3919 RKAU 1.07 (normal) 0:54.46 0:41.54 10.88 MB 0.3963 Monkey's Audio 3.96 (fast) 0:18.53 0:21.80 10.94 MB 0.3982 WavPack 3.97a (normal) 0:16.90 0:15.17 11.34 MB 0.4128 flac 1.1.0 (-8) 1:53.31 0:13.06 11.69 MB 0.4256 flac 1.1.0 (-5, default) 0:26.05 0:13.50 11.71 MB 0.4265 flac 1.1.0 (-3) 0:19.82 0:13.25 11.74 MB 0.4274 flac 1.1.0 (-1) 0:17.61 0:13.80 11.86 MB 0.4319 Shorten 3.2a (-p0 -b256, default) 0:19.20 0:11.89 12.05 MB 0.4386 Kexis 0.2.2 0:36.70 0:30.26 12.14 MB 0.4419 Bonk 0.5 1:15.45 0:55.07 12.86 MB 0.4684 WaveZIP 0:18.75 ? 13.08 MB 0.4765 Ogg Squish 0.98 ? ? 13.31 MB 0.4845 WavPack 3.97a (fast) 0:06.74 0:08.51 13.67 MB 0.4978 Shorten 3.2a (-p8 -b2048) 0:24.43 0:14.32 14.40 MB 0.5242 RIFF WAVE 2:43.23 2:43.23 27.46 MB 1.0000 Domenico Scarlatti
Sonata K.42 (arr.Yepes for guitar)La 0.3c 3:09.33 3:01.82 6.62 MB 0.4036 Monkey's Audio 3.96 (extra high) 0:33.99 0:35.53 6.80 MB 0.4145 optimFROG 4.21 (mode 4 @ 1x) 7:08.77 7:09.52 6.87 MB 0.4190 Monkey's Audio 3.96 (high) 0:17.47 0:19.11 6.94 MB 0.4230 optimFROG 4.21 (mode 1 @ 4x) 0:30.47 0:31.95 6.98 MB 0.4255 Monkey's Audio 3.96 (normal) 0:14.84 0:16.17 7.02 MB 0.4284 RKAU 1.07 (normal) 0:37.09 0:26.56 7.05 MB 0.4297 optimFROG 4.21 (mode 0 @ 4x) 0:20.68 0:22.06 7.07 MB 0.4310 WavPack 3.97a (high) 0:15.50 0:18.31 7.12 MB 0.4340 Monkey's Audio 3.96 (fast) 0:11.39 0:12.95 7.19 MB 0.4384 LPAC 1.40 (-r, normal) 0:29.99 0:14.33 7.21 MB 0.4397 WavPack 3.97a (normal) 0:07.01 0:10.27 7.31 MB 0.4460 flac 1.1.0 (-8) 1:08.58 0:07.99 7.37 MB 0.4498 flac 1.1.0 (-5, default) 0:15.90 0:08.71 7.40 MB 0.4513 flac 1.1.0 (-3) 0:11.84 0:08.26 7.43 MB 0.4530 Bonk 0.5 0:45.59 0:32.63 7.46 MB 0.4548 Shorten 3.2a (-p0 -b256, default) 0:11.67 0:07.17 7.48 MB 0.4564 Kexis 0.2.2 0:22.06 0:18.62 7.50 MB 0.4572 flac 1.1.0 (-1) 0:10.17 0:07.85 7.53 MB 0.4591 WavPack 3.97a (fast) 0:04.11 0:06.57 7.58 MB 0.4624 Ogg Squish 0.98 ? ? 7.74 MB 0.4723 WaveZIP 0:10.56 ? 7.83 MB 0.4781 Shorten 3.2a (-p8 -b2048) 0:14.29 0:09.07 8.20 MB 0.5004 RIFF WAVE 1:37.43 1:37.43 16.39 MB 1.0000 The Benedictine Monks of
Santo Domingo de Silos
Laetatus sumLa 0.3c 4:40.71 4:32.29 11.94 MB 0.4922 Monkey's Audio 3.96 (extra high) 0:50.72 0:54.20 12.15 MB 0.5006 optimFROG 4.21 (mode 4 @ 1x) 10:34.75 10:36.83 12.17 MB 0.5015 Monkey's Audio 3.96 (high) 0:26.36 0:28.52 12.25 MB 0.5048 RKAU 1.07 (normal) 0:57.64 0:41.39 12.25 MB 0.5049 optimFROG 4.21 (mode 1 @ 4x) 0:45.20 0:48.45 12.43 MB 0.5121 Monkey's Audio 3.96 (normal) 0:21.81 0:24.33 12.47 MB 0.5139 LPAC 1.40 (-r, normal) 0:45.66 0:23.29 12.62 MB 0.5200 optimFROG 4.21 (mode 0 @ 4x) 0:31.03 0:33.69 12.63 MB 0.5207 WavPack 3.97a (high) 0:28.01 0:27.43 12.65 MB 0.5213 Bonk 0.5 1:08.18 0:49.70 12.71 MB 0.5237 Monkey's Audio 3.96 (fast) 0:16.91 0:20.60 12.80 MB 0.5277 flac 1.1.0 (-8) 1:43.74 0:13.23 12.82 MB 0.5286 flac 1.1.0 (-5, default) 0:24.12 0:13.08 12.92 MB 0.5325 WavPack 3.97a (normal) 0:15.61 0:15.35 12.98 MB 0.5348 flac 1.1.0 (-3) 0:18.80 0:13.85 12.98 MB 0.5349 WavPack 3.97a (fast) 0:11.07 0:10.38 13.30 MB 0.5481 Kexis 0.2.2 0:33.43 0:28.11 13.30 MB 0.5481 Shorten 3.2a (-p0 -b256, default) 0:17.80 0:11.46 13.32 MB 0.5489 flac 1.1.0 (-1) 0:15.60 0:12.82 13.34 MB 0.5500 Ogg Squish 0.98 ? ? 13.41 MB 0.5528 Shorten 3.2a (-p8 -b2048) 0:22.30 0:13.87 13.42 MB 0.5531 WaveZIP 0:16.37 ? 13.72 MB 0.5655 RIFF WAVE 2:24.21 2:24.21 24.26 MB 1.0000 L. Subramaniam
Raga SivapriyaLa 0.3c 41:10.10 39:35.28 87.51 MB 0.4097 Monkey's Audio 3.96 (extra high) 7:17.86 7:50.75 91.73 MB 0.4295 optimFROG 4.21 (mode 4 @ 1x) 93:05.00 93:16.00 92.05 MB 0.4310 optimFROG 4.21 (mode 1 @ 4x) 6:36.86 6:57.69 92.76 MB 0.4343 Monkey's Audio 3.96 (high) 3:46.78 4:12.36 93.69 MB 0.4387 optimFROG 4.21 (mode 0 @ 4x) 4:29.57 4:53.01 94.74 MB 0.4436 Monkey's Audio 3.96 (normal) 3:09.07 3:35.10 94.81 MB 0.4439 Monkey's Audio 3.96 (fast) 2:25.31 2:58.92 95.70 MB 0.4481 RKAU 1.07 (normal) 7:16.09 5:30.33 95.91 MB 0.4490 WavPack 3.97a (high) 3:41.17 3:56.70 96.51 MB 0.4518 LPAC 1.40 (-r, normal) 4:34.06 2:37.68 96.84 MB 0.4534 WavPack 3.97a (normal) 1:50.85 2:10.55 97.75 MB 0.4577 flac 1.1.0 (-8) 15:02.46 1:51.15 98.02 MB 0.4589 flac 1.1.0 (-5, default) 3:28.92 1:53.07 98.42 MB 0.4608 Bonk 0.5 9:56.25 7:13.68 98.94 MB 0.4633 flac 1.1.0 (-3) 2:38.79 1:49.93 99.22 MB 0.4645 Ogg Squish 0.98 ? ? 101.88 MB 0.4770 Shorten 3.2a (-p8 -b2048) 3:10.19 1:56.31 102.60 MB 0.4804 Shorten 3.2a (-p0 -b256, default) 2:36.48 1:42.35 102.84 MB 0.4815 Kexis 0.2.2 4:49.84 3:59.93 103.57 MB 0.4849 flac 1.1.0 (-1) 2:15.70 1:51.81 103.60 MB 0.4851 WavPack 3.97a (fast) 1:34.44 1:24.44 103.86 MB 0.4863 WaveZIP 2:25.86 ? 107.47 MB 0.5032 RIFF WAVE 21:09.47 21:09.47 213.56 MB 1.0000
--no-adaptive-mid-side --no-decode-through-errors --no-delete-input-file --no-escape-coding --no-exhaustive-model-search --no-lax --no-mid-side --no-ogg --no-padding --no-qlp-coeff-precision-search --no-residual-gnuplot --no-residual-text --no-sector-align --no-seektable --no-silent --no-verify |
Можно использовать для отключения действия конкретной опции. |