Формат аудио flac что это

Формат аудио flac что это

Дата: 1 января 2017
Файл: flac-1.3.2-win.zip
Размер: 1.22 MB

Расширение файлов: .flac

  • Разработчик: Организация Xiph.Org, Джош Колсон
  • Первый релиз: 20 июля 2001 года
  • Стабильный релиз: 1.3.1 / 25 ноября 2014
  • Операционная система: кросплатформенный
  • Лицензия: утилиты командной строки под GBU GPL, библиотеки под BSD

FLAC является кодеком для сжатия аудио данных, изначально написанный Джошем Колсоном. Как следует из названия, FLAC осуществляет сжатие данных, оставляя при этом их идентичными оригиналу, таким образом, ни одна часть данных не теряется — это и является основной задачей алгоритмов сжатия без потерь. Цифровая аудио запись (такая как CD-Audio трэк), сжатая в формат FLAC может быть распакована в абсолютно идентичную копию аудио данных. Степень сжатия формата FLAC, как правило, варьируется от 50 до 60% от оригинального размера.

FLAC подходит как для ежедневного прослушивания записей, так и для архивирования, так как имеет поддержу тэгов, встроенных обложек и быстрого изменения места воспроизведения. Бесплатность и открытость формата делают его хорошо поддерживаемым различным программным обеспечением. Поддержка воспроизведения на различных устройствах достаточно ограничена на данный момент, но, тем не менее, формат поддерживается большим количеством аппаратных устройств по сравнению с конкурирующим форматом WavPack.

История

Разработка была начата в 2000-м году Джошем Колсоном. Формат битового потока был зафиксирован, когда FLAC вошел в бета стадию с версией 0.5, выпущенной 15 января 2001 года. Версия 1.0 была выпущена 20 июля 2001 года.

29 января 2003 года организация Xiph.Org и проект FLAC объявили о включении проекта FLAC под символ Xiph.Org.

17 сентября 2007 года была выпущена версия 1.2.1, в которой была добавлена возможность сохранять AIFF и RIFF цепочки метаданных при помощи ключа —keep-foreign-metadata .

Спустя 6 лет 26 мая 2013 года вышел следующий релиз 1.3.0 от новой команды Xiph.Org. В этот релиз вошли небольшие изменения и общие улучшения. В частности, проект переехал в git-репозиторий организации Xiph.Org и была добавлена поддержка форматов RF64 и Wave64.

После прошествия ещё полутора лет 25 ноября 2014 года вышел в свет релиз 1.3.1 с более серьезными изменениями. В этот раз была улучшена производительность кодирования при использовании SSE и AVX расширений. Также была улучшена производительность декодирования для всех разрядностей, но особенно для 24 бит в связке с архитектурой IA32.

Проект

Проект FLAC состоит из следующих частей:

  • Формата аудио-данных
  • Простой формат-контейнер для аудио-данных, также называемый FLAC (Нативный FLAC или Native FLAC)
  • libFLAC — библиотека эталонного кодека, а также интерфейс для метаданных
  • libFLAC++, являющейся объектно-ориентированной надстройкой над библиотекой libFLAC
  • flac — утилита командной строки, основанная на libFLAC для кодирования и декодирования потоков формата FLAC
  • metaflac — утилита командной строки, являющаяся редактором метаданных (тэгов) для файлов .flac
  • Входные плагины для различных музыкальных плееров (Winamp, foobar2000, XMMS, musikCube и многих других)
  • Учитывая слияние проекта с организацией Xiph.Org, контейнер Ogg также поддерживает аудио-данные формата FLAC (также называется Ogg FLAC)

Бесплатность формата означает то, что спецификация его потокового формата может быть реализована кем угодно, без каких либо прав на это (тем не менее, Xiph.Org оставляет за собой право устанавливать спецификации формата и сертифицировать их соблюдение). Также реализация любых методов кодирования / декодирования формата FLAC не может быть включена в патент. Это означает, что эталонная реализация является свободным программным обеспечением. Исходные коды libFLAC и libFLAC++ доступны под лицензией BSD, а утилиты командной строки — под GPL.

Одной из поставленных целей проекта FLAC является призыв разработчиков, не создавать какие бы то ни было функции защиты от копирования.

Сравнения

FLAC был разработан для эффективного сжатия аудио данных, в отличие от обычных алгоритмов, таких как DEFLATE (ZIP и gzip), которые используются в других кодеках без потерь. В то время как ZIP может сжать CD-Audio файл на 10-20%, FLAC достигает коэффициентов сжатия 30-50% для большинства музыки, и особенно хорошо сжатие FLAC показывает при работе с голосовыми записями. Для сравнения, кодеки с потерями могут достигать коэффициентов сжатия в 80% и более, отбрасывая часть данных из исходного звукового потока.

Читайте также:  Программа для усиления интернета на ноутбук

FLAC использует линейное прогнозирование для конвертации сэмплов в небольшие последовательности некоррелирующих чисел (известных как остаточные), которые хранятся используя эффективное кодирование Голомба-Райса. Также в формате FLAC используется кодирование блоков с идентичными сэмплами, таких, как тихие пассажи. Технической силой формата FLAC, по сравнению с другими кодеками без потерь, является его возможность быть потоковым и декодироваться за короткое время, которое не зависит от степени сжатия.

Будучи схемой сжатия без потерь, FLAC также является популярным форматом для хранения архивов у владельцев аудио дисков или других медиа-данных, стремящихся сохранить свою аудио коллекцию. Если оригинальная запись потеряется, повредится или износится, копия в формате FLAC дает гарантию того, что точный дубликат оригинальной записи может быть восстановлен в любое время. Точное восстановление из архива с потерями (например, MP3) невозможно. Являясь форматом без потерь, FLAC вполне может подвергаться транскодингу (например, в MP3) без потерь качества, как правило, свойственным транскодингу. Во время извлечения данных с CD может быть также создан CUE файл. Если данные с компакт диска были извлечены в формат FLAC успешно, то файл CUE позволяет восстановить копию диска, идентичную оригинальному, включая порядок треков, начальный зазор (pregap) и CD-Text данные. Однако, дополнительная информация, которая может присутствовать на некоторых аудио дисках, такая как тексты песен, графика CD+G будут находиться за полем видимости CUE файла и большинства извлекающего программного обеспечения, и, таким образом, эта информация не будет извлечена.

Европейский вещательный союз (EBU) принял на вооружение формат FLAC для распространения высококачественного звука через сеть «Еврорадио».

Технические детали

Формат FLAC поддерживает только целочисленные сэмплы. Это позволяет избежать неточностей нецелочисленной арифметики, таким образом, это дает гарантию сжатия без потерь. На вход кодировщик может принимать от 4 до 32 бит на сэмпл, любую частоту дискретизации от 1 Гц до 655 350 Гц с шагом в 1 Гц, а также любое количество каналов в диапазоне от 1 до 8. Каналы могут быть сгруппированы в случае стерео или 5.1 звука для извлечения выгода от межканальных корреляций и, тем самым, увеличивая степень сжатия звука. FLAC проверяет контрольные суммы CRC для обнаружения испорченных фреймов в тех случаях, когда формат используется в потоковом протоколе. Помимо этого, в тэге с заголовком STREAMINFO хранится полный MD5 хэш необработанных PCM аудио данных. FLAC допускает диапазон Rice параметра от 0 до 16. FLAC поддерживает ReplayGain.

FLAC реализован как ядро кодека в библиотеке libFLAC, которая слинкована с основной поставляемой программой flac, являющейся эталонной программой, использующей API libFLAC. Также API кодека доступно для C++ в библиотеке libFLAC++.

Эталонная реализация FLAC компилируется на многих платформах, включая системы Unix (такие как Solaris и Mac OS X) и Unix-подобные (включая Linux и BSD), Windows BeOS и OS/2. Проект настроен для сборки следующими утилитами: autoconf / automake, MSVC, Watcom C и Xcode. В настоящий момент FLAC не поддерживает многопоточность.

Для тэгов FLAC использует ту же систему, что и Vorbis-комментарии.

Организация API

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

Плюсы

  • Портируется на многие системы и платформы
  • Исходный код открыт и легко лицензирован
  • Быстрое декодирование, высокая независимость от уровня сжатия
  • Аппаратная поддержка (PhatBox, Kenwood MusicKeg, Rio Karma и другие)
  • Поддержка стриминга
  • Испорченные файлы могут быть частично восстановлены

Минусы

  • Менее эффективное сжатие, чем у некоторых других современных кодеков (APE (Monkey’s Audio), LPAC, OptimFROG)

Коэффициент производительность/сжатие приблизительно такой же как и у WavPack (однако, WavPack быстрее), и на 1%-2% хуже, чем у других современных кодеков, таких как APE (Monkey’s Audio) и OptimFROG.

Декодирование формата FLAC очень нетребовательно к ресурсам процессора, что делает этот формат идеальным для воспроизведения на различных портативных устройствах.

Читайте также:  Элементы для sweet home 3d

FLAC (англ. Free Lossless Audio Codec ) — свободный кодек, предназначенный для сжатия аудиоданных без потерь.

В отличие от аудиокодеков, обеспечивающих сжатие с потерями (MP3, AAC, WMA, Ogg Vorbis, Opus), FLAC, как и любой другой lossless-кодек, не удаляет никакой информации из аудиопотока и подходит как для прослушивания музыки на высококачественной звуковоспроизводящей аппаратуре, так и для архивирования аудиоколлекции.

Сегодня формат FLAC поддерживается множеством аудиоприложений, портативных аудиоплееров и специализированных аудиосистем и имеет большое число разнообразных аппаратных реализаций [4]

Содержание

Сведения о формате [ править | править код ]

Аудиопоток [ править | править код ]

Основными частями потока являются:

  • Строка из четырёх байтов « fLaC »
  • Блок метаданных STREAMINFO
  • Другие необязательные блоки метаданных
  • Аудиофреймы

Первые четыре байта идентифицируют поток FLAC. Следующие за ними метаданные содержат информацию о потоке, затем идут сжатые аудиоданные.

Метаданные [ править | править код ]

По состоянию на 10.03.2010 в libflac-1.2.1 определены следующие типы блоков: StreamInfo, Padding, Application, SeekTable, VorbisComment, CueSheet, Picture, Unknown. Блоки метаданных могут быть любого размера, не представляет большого труда добавление новых блоков. Неизвестные блоки метаданных декодер пропускает.

Блок STREAMINFO — обязательный. В нём содержатся данные, позволяющие декодеру настроить буфера, частоту дискретизации, количество каналов, количество бит на семпл и количество семплов. Также в блок записывается подпись MD5 несжатых аудиоданных. Это полезно для проверки всего потока после его передачи.

Другие блоки предназначены для резервирования места, хранения таблиц точек поиска, тегов, список разметки аудиодисков, а также данных для конкретных приложений. Опции для добавления блоков PADDING или точек поиска приведены ниже. FLAC не нуждается в точках поиска, однако они позволяют значительно увеличить скорость доступа, а также могут быть использованы для расстановки меток в аудиоредакторах.

Точное описание структур стандартных блоков можно найти в файле format.h библиотеки libflac, доступной на сайте формата.

Аудиоданные [ править | править код ]

За метаданными следуют сжатые аудиоданные. Метаданные и аудиоданные не чередуются. Как и большинство кодеков, FLAC делит входной поток на блоки и кодирует их независимо друг от друга. Блок упаковывается во фрейм и добавляется к потоку. Базовый кодер использует блоки постоянного размера для всего потока, однако формат предусматривает наличие блоков разной длины в потоке.

Разбиение на блоки [ править | править код ]

Размер блока — очень важный параметр для кодирования. Если он слишком мал, то в потоке будет чересчур много заголовков фреймов, что уменьшит уровень сжатия. Если же размер большой, то кодер не сможет подобрать эффективную модель сжатия. Понимание процесса моделирования помогает увеличить уровень сжатия для некоторых типов входных данных. Обычно при использовании линейного прогнозирования на аудиоданных с частотой дискретизации 44,1 кГц оптимальный размер блока лежит в диапазоне 2-6 тыс. семплов.

Межканальная декорреляция [ править | править код ]

Если на вход поступают стереоаудиоданные, они могут пройти через стадию межканальной декорреляции. Правый и левый канал преобразуются к среднему и разностному по формулам: средний = (левый + правый)/2, разностный = левый — правый. В отличие от joint stereo, используемом в lossy-кодерах, в lossless-кодировании этот процесс не приводит к потерям. Для данных с аудиодисков это обычно приводит к значительному увеличению уровня сжатия.

Моделирование [ править | править код ]

На следующем этапе кодер пытается аппроксимировать сигнал такой функцией, чтобы полученный после её вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством битов. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC использует два метода формирования аппроксимаций:

  • подгонка простого полинома к сигналу
  • общее кодирование с линейными предикторами (LPC).

Во-первых, постоянное полиномиальное предсказание (-l 0) работает значительно быстрее, но менее точно, чем LPC. Чем выше порядок LPC, тем медленнее, но лучше будет модель. Однако с увеличением порядка выигрыш будет всё менее значительным. В некоторой точке (обычно около 9) процедура кодера, определяющая наилучший порядок, начинает ошибаться и размер получаемых фреймов возрастает. Чтобы преодолеть это, можно использовать полный перебор, что приведёт к значительному увеличению времени кодирования.

Читайте также:  Лучшие книги по нлп для начинающих

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

Остаточное кодирование [ править | править код ]

Когда модель подобрана, кодер вычитает приближение из оригинала, чтобы получить остаточный (ошибочный) сигнал, который затем кодируется без потерь. Для этого используется то обстоятельство, что разностный сигнал обычно имеет распределение Лапласа и есть набор энтропийных кодов, называемый кодами Райса, позволяющий эффективно и быстро кодировать эти сигналы без использования словаря.

Кодирование Райса состоит из нахождения одного параметра, отвечающего распределению сигнала, а затем использования его для составления кодов. При изменении распределения меняется и оптимальный параметр, поэтому имеется метод, позволяющий пересчитывать его по необходимости. Остаток может быть разбит на контексты или разделы, у каждого из которых будет свой параметр Райса. FLAC позволяет указать, как нужно производить разбиение. Остаток может быть разбит на 2 n разделов.

Составление фреймов [ править | править код ]

Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или семпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, CRC заголовка фрейма и номер блока/семпла позволяют выполнять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная контрольная сумма. Если базовый декодер обнаружит ошибку, то будет сгенерирован блок тишины.

Разное [ править | править код ]

Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать теги ID3v1 и ID3v2, поэтому их можно свободно добавлять. Теги ID3v2 должны располагаться перед маркером «fLaC», а теги ID3v1 — в конце файла.

Существуют модификации FLAC кодера: Improved FLAC encoder, Flake и FLACCL.

Как мы знаем, MP3 — это самый популярный музыкальный кодек. Им сжимают музыку с потерей качества. Эмпэтришные файлы бывают худые и толстые. Самый жирный и качественный файл имеет битрейт 320 kbps.

Смотрите также

Комментарии 13

скинь ссылку на качественную прогу пережималку из wav в mp3 с битрейдом 320

По формату FLAC, есть много полезной информации + особенности работы с ним filesreview.com/ru/info/flac

Для формата FLAC нужна качественная аппаратура, иначе разницы слышно не будет.

Бесспорно. Но даже на плохой разница местами заметна. Но на твоих ламповиках, уверен, и мп3 так звучит, как у некоторых и флэк без такого усилителя не заиграет.

По своему опыту заметил, что главное качество записи.Бывает FLAC играет хуже чем МР 3
Лампы звучат довольно хорошо.

Он. Убунта 10.04 лтс

мало того он еще и свободный! в отличии от mp3

FLAC (англ. Free Lossless Audio Codec) — популярный свободный кодек, предназначенный для сжатия аудио данных без потерь.

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

В общем, да. Однако, несвободность MP3 не является его минусом, т.к. он вшит везде)

для кого как, для меня это принципиальный минус… и не важно на сколько закрытое ПО популярно, у меня на домашнем компе например нет виндоуза уже 7лет.

А я недавно вернулся на винду на домашнем компе(( По работе пришлось.

не уж то был линукс? )

для кого как, для меня это принципиальный минус… и не важно на сколько закрытое ПО популярно, у меня на домашнем компе например нет виндоуза уже 7лет.

К счастью уже 2 года как бесплатный, патент истек в апреле 2017.

Ссылка на основную публикацию
Adblock detector