Jump to content

ФЛАК

Бесплатный аудиокодек без потерь
Разработчик(и) Фонд Xiph.Org , Джош Коулсон, Эрик де Кастро Лопо
Первоначальный выпуск 20 июля 2001 г .; 22 года назад ( 20 июля 2001 )
Стабильная версия
1.4.3 [1] / 23 июня 2023 г .; 11 месяцев назад ( 23 июня 2023 г. )
Репозиторий
Написано в С , С++
Операционная система Кросс-платформенный
Тип Кодек
Лицензия Инструменты командной строки: GNU GPL.
Библиотеки: БСД
Веб-сайт ксиф .org /флак
Бесплатный аудиокодек без потерь
Расширение имени файла
.flac
Тип интернет-СМИ
аудио/флак
Единый идентификатор типа (UTI) org.xiph.flac
Магическое число ФЛАК [2]
Тип формата без потерь Звук
Стандартный ксиф .org /флак /формат .html
Открытый формат ? Да [3]
Свободный формат ? Да

FLAC ( / f , k / ; Free Lossless Audio Codec ) — формат аудиокодирования для сжатия цифрового звука без потерь , разработанный Xiph.Org Foundation , а также название проекта бесплатного программного обеспечения, создающего инструменты FLAC эталонный пакет программного обеспечения, включающий реализацию кодека . Цифровой звук, сжатый алгоритмом FLAC, обычно можно уменьшить до 50–70 процентов от исходного размера. [4] и распаковывает в идентичную копию исходных аудиоданных.

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

История [ править ]

Разработка была начата в 2000 году Джошем Коулсоном. Формат битового потока был заморожен с выпуском версии 0.9 эталонной реализации 31 марта 2001 г. Версия 1.0 была выпущена 20 июля 2001 г. [5]

29 января 2003 года фонд Xiph.Org и проект FLAC объявили о включении FLAC под баннер Xiph.org. Xiph.org является домом для других бесплатных форматов сжатия, таких как Vorbis , Theora , Speex и Opus . [5] [6] [7]

Версия 1.3.0 была выпущена 26 мая 2013 года, после чего разработка была перенесена в git-репозиторий Xiph.org. [8]

В 2019 году FLAC был предложен в качестве стандарта IETF. [9]

Дизайн [ править ]

FLAC — это кодирование данных линейной импульсно-кодовой модуляции без потерь . [10]

Структура файла [ править ]

Файл FLAC состоит из магического числа. fLaC, метаданные и закодированное аудио. [10]

Закодированный звук делится на кадры, каждый из которых состоит из заголовка, блока данных и контрольной суммы CRC16 . Каждый кадр кодируется независимо друг от друга. Заголовок кадра начинается со слова синхронизации , используемого для идентификации начала действительного кадра. Остальная часть заголовка содержит количество выборок, положение кадра, назначение канала и, при необходимости, частоту дискретизации и разрядность . Блок данных содержит аудиоинформацию. [10]

Метаданные в FLAC предшествуют аудио. Такие свойства, как частота дискретизации и количество каналов, всегда содержатся в метаданных. Он также может содержать другую информацию, обложку альбома . например [10] FLAC использует комментарии Vorbis для текстовых метаданных, таких как название трека и имя исполнителя.

Кодирование и декодирование [ править ]

Алгоритм кодирования FLAC состоит из нескольких этапов. На первом этапе входной звук разбивается на блоки. Если звук содержит несколько каналов , каждый канал кодируется отдельно как подблок. Затем кодер пытается найти хорошую математическую аппроксимацию блока либо путем подгонки простого полинома , либо с помощью общего линейного прогнозирующего кодирования . Затем записывается описание аппроксимации длиной всего несколько байт. Наконец, разница между аппроксимацией и входными данными, называемая остатком, кодируется с помощью кодирования Райса . Во многих случаях описание аппроксимации и кодированного остатка занимает меньше места, чем при использовании импульсно-кодовой модуляции . [10]

Процесс декодирования является обратным процессу кодирования. Сжатый остаток сначала декодируется. [11] [12] Описание математической аппроксимации затем используется для расчета формы сигнала. Результат формируется путем сложения остатка и рассчитанной формы сигнала. [13] [14] Поскольку FLAC сжимает без потерь , декодированная форма сигнала идентична форме сигнала до кодирования.

Для двухканального стереокодер может выбрать совместное кодирование звука. Каналы преобразуются в боковой канал, который представляет собой разницу между двумя входными каналами, и средний канал, представляющий собой сумму двух входных каналов. Вместо среднего канала может быть закодирован левый или правый канал, что иногда более эффективно с точки зрения использования пространства. [15]

Несмотря на то, что эталонный кодер использует один размер блока для всего потока, [10] FLAC позволяет изменять размер блока в сэмплах для каждого блока.

Сжатие [ править ]

Степень сжатия определяется различными параметрами, включая порядок модели линейного прогнозирования и размер блока. Независимо от степени сжатия исходные данные всегда можно идеально восстановить.

Для удобства пользователя эталонная реализация определяет 9 уровней сжатия, которые являются предустановками более технических параметров алгоритма кодирования. Уровни обозначены от 0 до 8, причем более высокие числа приводят к более высокой степени сжатия за счет скорости сжатия. Значение каждого уровня сжатия зависит от реализации. [16] [17]

FLAC оптимизирован для скорости декодирования за счет скорости кодирования. Тестирование показало, что, несмотря на то, что при увеличении уровня сжатия скорость декодирования меняется незначительно, за пределами уровня сжатия по умолчанию 5 процесс кодирования занимает значительно больше времени с небольшой экономией места по сравнению с уровнем 5. [18]

Реализация [ править ]

Помимо формата, проект FLAC также содержит с открытым исходным кодом бесплатную эталонную реализацию FLAC под названием libFLAC. libFLAC содержит средства для кодирования и декодирования данных FLAC, а также для управления метаданными файлов FLAC. libFLAC++, объектно-ориентированная оболочка libFLAC для C++ и программ командной строки . flac и metaflac, также являются частью эталонной реализации.

Формат FLAC, как и libFLAC, не защищен какими-либо патентами , и каждый волен писать свои собственные реализации FLAC.

Сравнение с другими форматами [ править ]

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

Технические преимущества FLAC по сравнению с другими форматами без потерь заключаются в его способности быстро передаваться и декодироваться независимо от уровня сжатия.

Поскольку FLAC представляет собой схему без потерь, он подходит в качестве формата архива для владельцев компакт-дисков и других носителей, желающих сохранить свои аудиоколлекции. Если исходный носитель утерян, поврежден или изношен, копия аудиодорожек в формате FLAC гарантирует, что точную копию исходных данных можно будет восстановить в любое время. Точное восстановление из копии тех же данных с потерями (например, MP3 ) невозможно. Отсутствие потерь в формате FLAC означает, что он отлично подходит для перекодирования, обычно связанной с например, в MP3, без потери качества, перекодированием между одним форматом с потерями и другим. Файл CUE может быть дополнительно создан при копировании компакт-диска. Если компакт-диск прекрасно читается и копируется в файлы FLAC, файл CUE позволяет позднее записать аудио-CD, который по аудиоданным идентичен исходному компакт-диску, включая порядок дорожек и промежутки , но исключает дополнительные данные, такие как тексты песен и CD+G. графика. [19] Но в зависимости от используемой программы записи CD-Text может быть восстановлен из метаданных, хранящихся в листе CUE, и записан обратно в новую копию на чистом носителе CD-R.

Принятие и внедрение [ править ]

Эталонная реализация FLAC реализована как базовая библиотека кодировщика и декодера libFLAC вместе с основной распространяемой программой. flac является эталонной реализацией API libFLAC. Этот API кодека также доступен на C++ как libFLAC++. Эталонная реализация FLAC компилируется на многих платформах, включая большинство Unix (таких как Solaris , BSD ) и Unix-подобных (включая Linux ), Microsoft Windows , BeOS и OS/2 операционных систем . Существуют build-системы для autoconf / automake , MSVC , Watcom C и Xcode . В настоящее время в libFLAC нет поддержки многоядерности , но такие утилиты, как GNU Parallel и различные графические интерфейсы, можно использовать для запуска нескольких экземпляров кодировщика.

Поддержка воспроизведения FLAC на портативных аудиоустройствах и специализированных аудиосистемах ограничена по сравнению с такими форматами, как MP3. [20] или несжатый PCM . Поддержка FLAC включена по умолчанию в устройствах Windows 10 , Android , BlackBerry 10 и Jolla .

В 2014 году несколько компаний, занимающихся вторичной мобильной электроникой, представили мультимедийные решения с поддержкой FLAC. К ним относятся серия NEX от Pioneer Electronics, а также VX404 и NX404 от Clarion.

Европейский вещательный союз (EBU) принял формат FLAC для распространения высококачественного звука по своей сети Еврорадио. [21] Операционная Windows система поддерживает встроенную интеграцию FLAC с момента появления Windows 10. [22] Операционная система Android поддерживает собственное воспроизведение FLAC, начиная с версии 3.1. [23] [24] В macOS High Sierra и iOS 11 добавлена ​​встроенная поддержка воспроизведения FLAC. [25]

Помимо прочего, музыкальный проигрыватель и потоковый сервис Pono использовали формат FLAC. [26] [27] Bandcamp настаивает на формате загрузки без потерь и предлагает FLAC в качестве варианта загрузки. [28] Фонд Викимедиа спонсировал бесплатный онлайн- инструмент ECMAScript FLAC с открытым исходным кодом для браузеров, поддерживающих необходимые функции HTML5 . [29]

Поддержка FLAC различными операционными системами
Microsoft Windows macOS Андроид BlackBerryOS iOS
Поддержка кодеков Да Да Да Да Да
Поддержка контейнеров FLAC (.flac)
Matroska (.mka, .mkv)
Огг (.oga) [30]
FLAC (.flac)
Основной аудиоформат (.caf)
FLAC (.flac) FLAC (.flac) FLAC (.flac)
Основной аудиоформат (.caf)
Примечания

Поддержка появилась в Windows 10.

Проигрыватель Windows Media (2022) также поддерживает FLAC в контейнере Ogg для прямых трансляций (например, Icecast интернет-радио ). [31]

Поддержка введена в High Sierra.

Поддержка появилась в Android 3.1.

Android изначально поддерживает обычный формат FLAC (.flac), но не Ogg FLAC (.oga). [32] была добавлена ​​поддержка как обычного FLAC, так и Ogg FLAC Однако позже в файловый менеджер Files (Google) .

Поддержка появилась в BlackBerry OS 5.0. Поддержка появилась в iOS 11 (но зависит от используемого оборудования).

Поддерживаются различные другие контейнеры независимо от используемой операционной системы и используемого программного обеспечения для воспроизведения.

См. также [ править ]

Ссылки [ править ]

  1. ^ «FLAC 1.4.3 выпущен с дополнительными оптимизациями, в нем отсутствует код, специфичный для PowerPC» . 23 июня 2023 г. Проверено 19 февраля 2024 г.
  2. ^ Коулсон, Джош. «FLAC – формат» . Фонд Xiph.Org . Проверено 4 апреля 2013 г. «fLaC», маркер потока FLAC в ASCII, что означает, что байт 0 потока равен 0x66, за которым следует 0x4C 0x61 0x43.
  3. ^ "ИграйОгг!" . Фонд свободного программного обеспечения . 17 марта 2010 г. Проверено 1 октября 2013 г.
  4. ^ «Изучение степени сжатия Flac» . Стивен Голубь. 7 февраля 2012 года . Проверено 10 мая 2018 г.
  5. ^ Jump up to: Перейти обратно: а б "Функции" . Фонд Xiph.Org . Проверено 23 ноября 2023 г.
  6. ^ «FLAC присоединяется к Xiph.org» . Фонд Xiph.org . 29 января 2003 года . Проверено 31 августа 2009 г.
  7. ^ Плант, Эммет. «FLAC присоединяется к Xiph!» . Фонд Xiph.org . Архивировано из оригинала 29 мая 2008 года . Проверено 31 августа 2009 г.
  8. ^ «FLAC – журнал изменений» . Фонд Xiph.org . Проверено 15 октября 2013 г.
  9. ^ ван Берден, Мартейн; Уивер, Эндрю. Бесплатный аудиокодек без потерь . Идентификатор проекта-ietf-cellar-flac . Проверено 14 мая 2023 г.
  10. ^ Jump up to: Перейти обратно: а б с д и ж Коулсон, Джош. «О формате FLAC» . Проверено 13 февраля 2022 г.
  11. ^ "stream_decoder.c" . libFLAC . Проверено 19 февраля 2022 г.
  12. ^ libFLAC/stream_decoder.c , строка 2734.
  13. ^ "lpc.c" . libFLAC . Проверено 19 февраля 2022 г.
  14. ^ libFLAC/lpc.c , строки 813–820.
  15. ^ «Спецификация формата FLAC» . ФЛАК . Проверено 19 февраля 2022 г.
  16. ^ «Сравнение кодировщиков FLAC CUETools» . CUETools Wiki . Проверено 27 мая 2013 г.
  17. ^ «Настройки кодирования» . Медиацентр JRiver . Проверено 27 мая 2013 г.
  18. ^ «Сравнение кодеков без потерь» . Synthetic-soul.co.uk . Архивировано из оригинала 2 февраля 2009 года . Проверено 26 ноября 2016 г.
  19. ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ" . ФЛАК . Проверено 23 сентября 2014 г.
  20. ^ «Ссылки» . ФЛАК . Проверено 24 марта 2009 г.
  21. ^ «Что такое система EBU Musipop?» . ЭБУ . 24 августа 2021 г.
  22. ^ «Любители аудио возрадуются: Windows 10 будет иметь общесистемную поддержку FLAC» . Мир ПК . Проверено 10 июля 2015 г.
  23. ^ «Форматы мультимедиа, поддерживаемые Android» . Android.com . 4 августа 2011 г. Проверено 27 февраля 2012 г.
  24. ^ «Проблема 1461 — Android — запрос на улучшение поддержки файлов FLAC» . Гугл-код . Проверено 5 августа 2011 г.
  25. ^ «iOS 11 обеспечивает воспроизведение аудио в формате FLAC без потерь на iPhone и iPad» . idownloadblog.com . 9 июня 2017 года . Проверено 26 сентября 2017 г.
  26. ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ" . ponomusic.com . 14 марта 2014 года . Проверено 14 марта 2014 г.
  27. ^ "Дом" . Qobuz.com . Проверено 10 апреля 2014 г.
  28. ^ «Как и почему мне следует загружать файлы без потерь?» . Бандкамп . Проверено 16 февраля 2022 г.
  29. ^ Рилке (2015). «Де- и кодировщик JavaScript FLAC» . Проверено 9 февраля 2015 г.
  30. ^ «MIME-типы и расширения файлов — XiphWiki» .
  31. ^ «FLAC против Ogg FLAC» .
  32. ^ «Платформа Android не полностью поддерживает форматы контейнеров OGG (OGA) [36906426] — доступно всем — система отслеживания проблем» .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 94d8df22a409b8f0cfe8302448359379__1717856520
URL1:https://arc.ask3.ru/arc/aa/94/79/94d8df22a409b8f0cfe8302448359379.html
Заголовок, (Title) документа по адресу, URL1:
FLAC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)