FLAC: характеристики

| | начало | | | новости | | | файлы | | | характеристики | | | цели | | | формат | |
| | id | | | сравнение | | | разработка | | | документация | | | ссылки | | | авторы | |

| | english | | | русский | |

## FLAC: характеристики

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 совместимым и т.п. Перед проектом не стоит цели поддерживать методы защиты, которые на практике лишь увеличивают объем файла. Конечно, мы не сможем препятствовать кому-либо создавать несвободные блоки метаданных, однако, стандартные декодеры все равно будут их пропускать.

Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson