FLAC: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Добавлен в список устройств, поддерживающих FLAC смартфон Marshall London. https://www.marshallheadphones.com/mh_uk_en/london |
Gromolyak (обсуждение | вклад) Метки: с мобильного устройства через мобильное приложение через приложение для Android App section source |
||
(не показано 45 промежуточных версий 30 участников) | |||
Строка 1: | Строка 1: | ||
{{Карточка программы |
{{Карточка программы |
||
| name |
| name = Free Lossless Audio Codec |
||
| logo |
| logo = FLAC logo vector.svg |
||
| screenshot |
| screenshot = |
||
| caption = |
|||
| developer = Josh Coalson, Tim Miller [[Xiph.Org Foundation]] |
|||
| caption = |
|||
| released = [[20 июля]] [[2001]] |
|||
| developer = Josh Coalson, [[Xiph.Org Foundation]] |
|||
| operating_system = [[Кроссплатформенное программное обеспечение|кроссплатформенный]] |
|||
| released = [[20 июля]] [[2001]] |
|||
| genre = [[аудиокодек]], [[Список аудиоформатов файлов|формат аудиофайлов]] |
|||
| latest_release_version = 1.3.2 |
|||
| license = [[GNU GPL]]; [[лицензия BSD|BSD]] (Некоторые части) |
|||
| latest_release_date = [[1 января]] [[2017]] |
|||
| website = https://xiph.org/flac |
|||
| operating_system = [[Кроссплатформенное программное обеспечение|Кросcплатформенный]] |
|||
| genre = Аудио [[кодек]], [[Список аудиоформатов файлов|формат аудиофайлов]] |
|||
| license = [[GNU GPL]]; [[лицензия BSD|BSD]] (Parts) |
|||
| website = http://flac.sourceforge.net |
|||
}} |
}} |
||
'''FLAC''' ({{lang-en|Free Lossless Audio Codec}}) — [[Свободное программное обеспечение|свободный]] [[кодек]], предназначенный для [[Сжатие данных|сжатия]] [[Цифровая звукозапись|аудиоданных]] [[Сжатие без потерь|без потерь]]. |
|||
{{Файловый формат |
|||
| name = FLAC |
|||
| icon = |
|||
| logo = FLAC logo inverted.png |
|||
| type code = |
|||
| uniform type = |
|||
| magic = |
|||
| owner = |
|||
| genre = [[Аудио]] |
|||
| container for = |
|||
| contained by = |
|||
| extended from = |
|||
| extended to = |
|||
| standard = [http://flac.sourceforge.net/format.html Спецификация] |
|||
}} |
|||
'''FLAC''' ({{lang-en|Free Lossless Audio Codec}}) — популярный [[Свободное программное обеспечение|свободный]] [[кодек]], предназначенный для [[Сжатие данных|сжатия]] аудиоданных [[Сжатие без потерь|без потерь]]. |
|||
В отличие от аудиокодеков, обеспечивающих [[сжатие с потерями]] ([[MP3]], [[AAC]], [[WMA]], [[Ogg Vorbis]]), FLAC, как и любой другой [[lossless]]-кодек, не удаляет никакой информации из аудиопотока и подходит как для прослушивания музыки на высококачественной звуковоспроизводящей аппаратуре, так и для архивирования аудиоколлекции. |
В отличие от [[Аудиокодек|аудиокодеков]], обеспечивающих [[сжатие с потерями]] ([[MP3]], [[AAC]], [[WMA]], [[Ogg Vorbis]], [[Opus (кодек)|Opus]]), FLAC, как и любой другой [[lossless]]-кодек, не удаляет никакой информации из аудиопотока и подходит как для прослушивания музыки на высококачественной звуковоспроизводящей аппаратуре, так и для архивирования аудиоколлекции. |
||
Сегодня формат FLAC поддерживается множеством аудиоприложений, портативных аудиоплееров и специализированных аудиосистем и имеет большое число разнообразных аппаратных реализаций<ref name="hardware">{{cite web|url=https://xiph.org/flac/links.html#hardware |title=Links |publisher=FLAC |accessdate= |
Сегодня формат FLAC поддерживается множеством аудиоприложений, портативных [[Медиапроигрыватель|аудиоплееров]] и специализированных [[Акустическая система|аудиосистем]] и имеет большое число разнообразных аппаратных реализаций<ref name="hardware">{{cite web |url=https://xiph.org/flac/links.html#hardware |title=Links |publisher=FLAC |accessdate=2015-10-06 |archive-date=2017-01-28 |archive-url=https://web.archive.org/web/20170128193920/https://xiph.org/flac/links.html#hardware |deadlink=no }}</ref>. Формат FLAC 5D поддерживается более продвинутыми системами. |
||
== Сведения о формате == |
== Сведения о формате == |
||
=== Аудиопоток === |
=== Аудиопоток === |
||
Основными частями [[ |
Основными частями [[Поток данных|потока]] являются: |
||
* Строка из четырёх [[байт]]ов «<code>fLaC</code>» |
* Строка из четырёх [[байт]]ов «<code>fLaC</code>» |
||
* Блок [[Метаданные|метаданных]] STREAMINFO |
* Блок [[Метаданные|метаданных]] STREAMINFO |
||
* Другие необязательные блоки метаданных |
* Другие необязательные блоки метаданных |
||
* [[Фрейм|Аудиофреймы]] |
|||
* Аудио[[фрейм]]ы |
|||
Первые четыре байта идентифицируют поток FLAC. Следующие за ними [[метаданные]] содержат информацию о потоке, затем идут сжатые аудиоданные. |
Первые четыре байта идентифицируют поток FLAC. Следующие за ними [[метаданные]] содержат информацию о потоке, затем идут сжатые аудиоданные{{Нет АИ|06|06|2023}}. |
||
=== Метаданные === |
=== Метаданные === |
||
По состоянию на 10.03.2010 в libflac-1.2.1 определены следующие типы блоков: StreamInfo, Padding, Application, SeekTable, VorbisComment, CueSheet, Picture, Unknown. Блоки метаданных могут быть любого размера, не представляет большого труда добавление новых блоков. Неизвестные блоки метаданных декодер пропускает. |
По состоянию на 10.03.2010 в libflac-1.2.1 определены следующие типы блоков: StreamInfo, Padding, Application, SeekTable, VorbisComment, CueSheet, Picture, Unknown. Блоки метаданных могут быть любого размера, не представляет большого труда добавление новых блоков. Неизвестные блоки метаданных декодер пропускает. |
||
Блок STREAMINFO — обязательный. В нём содержатся данные, позволяющие декодеру настроить [[Буфер (информатика)|буфера]], [[Частота дискретизации|частоту дискретизации]], количество каналов, количество бит на семпл и количество семплов. Также в блок записывается подпись [[MD5]] несжатых аудиоданных. Это полезно для проверки всего потока после его передачи. |
Блок STREAMINFO — обязательный. В нём содержатся данные, позволяющие декодеру настроить [[Буфер (информатика)|буфера]], [[Частота дискретизации|частоту дискретизации]], количество каналов, количество бит на семпл и количество [[Семпл|семплов]]. Также в блок записывается подпись [[MD5]] несжатых аудиоданных. Это полезно для проверки всего потока после его передачи. |
||
Другие блоки предназначены для резервирования места, хранения таблиц точек поиска, [[Тег (метаданные)|тегов]], список разметки аудиодисков, а также данных для конкретных приложений. Опции для добавления блоков PADDING или точек поиска приведены ниже. FLAC не нуждается в точках поиска, однако они позволяют значительно увеличить скорость доступа, а также могут быть использованы для расстановки меток в аудиоредакторах. |
Другие блоки предназначены для резервирования места, хранения таблиц точек поиска, [[Тег (метаданные)|тегов]], список разметки аудиодисков, а также данных для конкретных приложений. Опции для добавления блоков PADDING или точек поиска приведены ниже. FLAC не нуждается в точках поиска, однако они позволяют значительно увеличить скорость доступа, а также могут быть использованы для расстановки меток в [[Аудиоредактор|аудиоредакторах]]. |
||
Точное описание структур стандартных блоков можно найти в файле format.h библиотеки libflac, доступной на сайте формата. |
Точное описание структур стандартных блоков можно найти в файле format.h библиотеки libflac, доступной на сайте формата. |
||
Строка 57: | Строка 40: | ||
=== Разбиение на блоки === |
=== Разбиение на блоки === |
||
Размер блока — очень важный параметр для кодирования. Если он слишком мал, то в потоке будет чересчур много заголовков фреймов, что уменьшит уровень сжатия. Если же размер большой, то кодер не сможет подобрать эффективную модель сжатия. Понимание процесса моделирования |
Размер блока — очень важный параметр для кодирования. Если он слишком мал, то в потоке будет чересчур много заголовков фреймов, что уменьшит уровень сжатия. Если же размер большой, то кодер не сможет подобрать эффективную модель сжатия. Понимание процесса моделирования помогает увеличить уровень сжатия для некоторых типов входных данных. Обычно при использовании линейного прогнозирования на аудиоданных с частотой дискретизации 44,1 кГц оптимальный размер блока лежит в диапазоне 2-6 тыс. семплов{{Нет АИ|06|06|2023}}. |
||
=== Межканальная декорреляция === |
=== Межканальная декорреляция === |
||
Строка 63: | Строка 46: | ||
=== Моделирование === |
=== Моделирование === |
||
На следующем этапе кодер пытается [[Аппроксимация|аппроксимировать]] сигнал такой функцией, чтобы полученный после её вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством битов. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC |
На следующем этапе кодер пытается [[Аппроксимация|аппроксимировать]] сигнал такой функцией, чтобы полученный после её вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством [[Бит|битов]]. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC и FLAC 5D используют два метода формирования [[Аппроксимация|аппроксимаций]]: |
||
* подгонка простого полинома к сигналу |
* подгонка простого [[Многочлен|полинома]] к сигналу |
||
* общее кодирование с линейными предикторами (LPC). |
* общее кодирование с линейными предикторами (LPC). |
||
Строка 78: | Строка 61: | ||
=== Составление фреймов === |
=== Составление фреймов === |
||
Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или семпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, [[Циклический избыточный код|CRC]] заголовка фрейма и номер блока/семпла позволяют выполнять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная контрольная сумма. Если базовый декодер обнаружит ошибку, то будет сгенерирован блок тишины. |
Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или семпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, [[Циклический избыточный код|CRC]] заголовка фрейма и номер блока/семпла позволяют выполнять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная [[контрольная сумма]]. Если базовый декодер обнаружит ошибку, то будет сгенерирован блок тишины. |
||
=== Разное === |
=== Разное === |
||
Строка 84: | Строка 67: | ||
Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать [[ID3 (метаданные)|теги ID3v1 и ID3v2]], поэтому их можно свободно добавлять. Теги ID3v2 должны располагаться перед маркером «fLaC», а теги ID3v1 — в конце файла. |
Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать [[ID3 (метаданные)|теги ID3v1 и ID3v2]], поэтому их можно свободно добавлять. Теги ID3v2 должны располагаться перед маркером «fLaC», а теги ID3v1 — в конце файла. |
||
Существуют модификации FLAC кодера: [[Improved FLAC encoder]] |
Существуют модификации FLAC кодера: [[Improved FLAC encoder]], [[Flake]], FLAC 5D и FLACCL. |
||
29 января 2003 г. Xiphophorus (сейчас называется [[Xiph.Org]] Foundation) анонсировали включение формата FLAC в линейку своих продуктов: [[Ogg]] [[Vorbis]], [[Theora]] и [[Speex]]<ref name="xiph">{{cite web|url=http://xiph.org/ogg/flac.html|title=FLAC Joins Xiph!|lang=en|accessdate=30 |
29 января 2003 г. Xiphophorus (сейчас называется [[Xiph.Org]] Foundation) анонсировали включение формата FLAC в линейку своих продуктов: [[Ogg]] [[Vorbis]], [[Theora]] и [[Speex]]<ref name="xiph">{{cite web|url=http://xiph.org/ogg/flac.html |title=FLAC Joins Xiph! |lang=en |accessdate=2008-10-30 |deadlink=404 |archiveurl=https://web.archive.org/web/20070630155035/http://xiph.org/ogg/flac.html |archivedate=2007-06-30 }}</ref>. |
||
Аппаратно поддерживается на устройствах(список не полный): |
|||
{{Кол|3}} |
|||
* [[Blackberry]] |
|||
* Blacknote DSS 30 |
|||
* [[Cowon]] |
|||
* DIGMA (Insomnia 5) |
|||
* DUNE HD |
|||
* [[Explay]] |
|||
* HTC 825 |
|||
* Hifiman HM-801 |
|||
* iAudio (Cowon) |
|||
* ICONBIT HD390DVD; HD400L; HD400DVD |
|||
* [[iRiver]], Gigabeat (Toshiba) (через прошивку [[RockBox]]) |
|||
* [[iPod]] (через прошивку RockBox) |
|||
* [[Marshall London]] |
|||
* Meizu M8 |
|||
* Mystery MMD-584U |
|||
* [[Networked Media Tank]] (Popcorn Hour — A100, A110, B110, C200) |
|||
* Nationite S:Flo 2 (Teclast T51) |
|||
* [[Nokia 5800]] (смартфоны на S60, используя FolderPlay 1.8) |
|||
* [[Nokia N8]], [[Nokia C7-00|C7]], [[Nokia C6-01|C6-01]], [[Nokia E7-00|E7]] (смартфоны на Symbian3, используя FolderPlay 1.8) |
|||
* [[Nokia N900]] с пакетом OGG support |
|||
* [[Oysters]] PMP-200 |
|||
* [[Philips]] Xenium K700 |
|||
* Rio Karma |
|||
* Ritmix ([[Meizu]]) |
|||
* [[Samsung Galaxy S]] |
|||
* [[Samsung Galaxy S II]] |
|||
* [[Samsung Galaxy S III]] |
|||
* Samsung Galaxy S III Mini |
|||
* [[Samsung Galaxy S4]] |
|||
* [[Samsung Galaxy S4 mini|Samsung Galaxy S4 Mini]] |
|||
* [[Samsung Galaxy S5]] |
|||
* Samsung Galaxy S5 Mini |
|||
* [[Samsung Galaxy S6]] |
|||
* [[Samsung Galaxy S6|Samsung Galaxy S6 Edge]] |
|||
* [[Samsung Galaxy S6|Samsung Galaxy S6 Edge+]] |
|||
* [[Samsung Galaxy S7]] |
|||
* [[Samsung Galaxy S7|Samsung Galaxy S7 Edge]] |
|||
* [[Samsung Galaxy S8]] |
|||
* [[Samsung Galaxy S8|Samsung Galaxy S8+]] |
|||
* [[Samsung Galaxy Note II]] |
|||
* [[Samsung Galaxy Note 10.1]] |
|||
* [[Samsung Galaxy Note 3]] |
|||
* Samsung Galaxy Note 10.1 2014 Edition |
|||
* [[Samsung Galaxy Note 4]] |
|||
* [[Samsung Galaxy Note Edge]] |
|||
* [[Samsung Galaxy Note 5]] |
|||
* [[Samsung Galaxy Note 7]] |
|||
* [[Samsung Galaxy A3 (2015)]] |
|||
* [[Samsung Galaxy A5 (2015)]] |
|||
* [[Samsung Galaxy A7 (2015)]] |
|||
*[[ Samsung Galaxy A8 (2015)]] |
|||
* [[Samsung Galaxy A3 (2016)]] |
|||
* Samsung Galaxy A5 (2016) |
|||
* Samsung Galaxy A7 (2016) |
|||
* Samsung Galaxy A8 (2016) |
|||
* Samsung Galaxy A9 (2016) |
|||
* Samsung Galaxy A3 (2017) |
|||
* Samsung Galaxy A5 (2017) |
|||
* Samsung Galaxy A7 (2017) |
|||
* Samsung Galaxy Grand Prime |
|||
* [[Samsung Galaxy R]] |
|||
* [[Samsung Wave]] |
|||
* [[Samsung Wave II]] |
|||
* SANSA |
|||
* [[Sony Ericsson Xperia Arc]] |
|||
* [[Sony Ericsson Xperia Play]] |
|||
* [[Sony Ericsson Xperia X10|Sony Ericsson Xperia x10i]] |
|||
* Sony Ericsson W20(Zylo) |
|||
* Sony Ericsson W20i Zylo |
|||
* [[TeXet]] (T-900, T-890, T-860, T-790, T-660, T-589, T-590, T-560) |
|||
* [[Transcend]] (MP 870, MP 860, MP 330) |
|||
* Weiss Minerva |
|||
* [[Alcatel]] Pixi 4 |
|||
{{Конец кол}} |
|||
== Примечания == |
== Примечания == |
||
Строка 169: | Строка 75: | ||
== Ссылки == |
== Ссылки == |
||
{{внешние ссылки нежелательны}} |
|||
* {{cite web |
* {{cite web |
||
| |
|url = http://flac.sourceforge.net/ru/index.html |
||
| |
|title = FLAC |
||
| |
|lang = ru |
||
| |
|description = Официальная страница проекта FLAC на [[SourceForge.net]] |
||
| |
|accessdate = 2011-07-26 |
||
| |
|archiveurl = https://web.archive.org/web/20120212110450/http://flac.sourceforge.net/ru/index.html |
||
| |
|archivedate = 2012-02-12 |
||
|deadlink = yes |
|||
}} |
}} |
||
* {{cite web |
* {{cite web |
||
| |
|url = http://www.xiph.org/quicktime/ |
||
|title = Xiph.Org: QuickTime Components |
|||
|lang = en |
|||
|description = поддержка FLAC в Quicktime |
|||
|accessdate = 2008-10-30 |
|||
|archiveurl = https://www.webcitation.org/65LQVE7cT?url=http://www.xiph.org/quicktime/ |
|||
|archivedate = 2012-02-10 |
|||
}} |
}} |
||
Текущая версия от 14:40, 18 декабря 2024
Free Lossless Audio Codec | |||
---|---|---|---|
Тип | аудиокодек, формат аудиофайлов | ||
Разработчики | Josh Coalson, Tim Miller Xiph.Org Foundation | ||
Написана на | Си[3] | ||
Операционная система | кроссплатформенный | ||
Первый выпуск | 20 июля 2001 | ||
Последняя версия | |||
Репозиторий | gitlab.xiph.org/xiph/flac | ||
| |||
| |||
Лицензия | GNU GPL; BSD (Некоторые части) | ||
Сайт | xiph.org/flac | ||
Медиафайлы на Викискладе |
FLAC (англ. Free Lossless Audio Codec) — свободный кодек, предназначенный для сжатия аудиоданных без потерь.
В отличие от аудиокодеков, обеспечивающих сжатие с потерями (MP3, AAC, WMA, Ogg Vorbis, Opus), FLAC, как и любой другой lossless-кодек, не удаляет никакой информации из аудиопотока и подходит как для прослушивания музыки на высококачественной звуковоспроизводящей аппаратуре, так и для архивирования аудиоколлекции.
Сегодня формат FLAC поддерживается множеством аудиоприложений, портативных аудиоплееров и специализированных аудиосистем и имеет большое число разнообразных аппаратных реализаций[4]. Формат FLAC 5D поддерживается более продвинутыми системами.
Сведения о формате
[править | править код]Аудиопоток
[править | править код]Основными частями потока являются:
- Строка из четырёх байтов «
fLaC
» - Блок метаданных STREAMINFO
- Другие необязательные блоки метаданных
- Аудиофреймы
Первые четыре байта идентифицируют поток FLAC. Следующие за ними метаданные содержат информацию о потоке, затем идут сжатые аудиоданные[источник не указан 563 дня].
Метаданные
[править | править код]По состоянию на 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 тыс. семплов[источник не указан 563 дня].
Межканальная декорреляция
[править | править код]Если на вход поступают стереоаудиоданные, они могут пройти через стадию межканальной декорреляции. Правый и левый канал преобразуются к среднему и разностному по формулам: средний = (левый + правый)/2, разностный = левый — правый. В отличие от joint stereo, используемом в lossy-кодерах, в lossless-кодировании этот процесс не приводит к потерям. Для данных с аудиодисков это обычно приводит к значительному увеличению уровня сжатия.
Моделирование
[править | править код]На следующем этапе кодер пытается аппроксимировать сигнал такой функцией, чтобы полученный после её вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством битов. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC и FLAC 5D используют два метода формирования аппроксимаций:
- подгонка простого полинома к сигналу
- общее кодирование с линейными предикторами (LPC).
Во-первых, постоянное полиномиальное предсказание (-l 0) работает значительно быстрее, но менее точно, чем LPC. Чем выше порядок LPC, тем медленнее, но лучше будет модель. Однако с увеличением порядка выигрыш будет всё менее значительным. В некоторой точке (обычно около 9) процедура кодера, определяющая наилучший порядок, начинает ошибаться и размер получаемых фреймов возрастает. Чтобы преодолеть это, можно использовать полный перебор, что приведёт к значительному увеличению времени кодирования.
Во-вторых, параметры для постоянных предикторов могут быть описаны тремя битами, а параметры для модели LPC зависят от количества бит на семпл и порядка LPC. Это значит, что размер заголовка фрейма зависит от выбранного метода и порядка и может повлиять на оптимальный размер блока.
Остаточное кодирование
[править | править код]Когда модель подобрана, кодер вычитает приближение из оригинала, чтобы получить остаточный (ошибочный) сигнал, который затем кодируется без потерь. Для этого используется то обстоятельство, что разностный сигнал обычно имеет распределение Лапласа и есть набор энтропийных кодов, называемый кодами Райса, позволяющий эффективно и быстро кодировать эти сигналы без использования словаря.
Кодирование Райса состоит из нахождения одного параметра, отвечающего распределению сигнала, а затем использования его для составления кодов. При изменении распределения меняется и оптимальный параметр, поэтому имеется метод, позволяющий пересчитывать его по необходимости. Остаток может быть разбит на контексты или разделы, у каждого из которых будет свой параметр Райса. FLAC позволяет указать, как нужно производить разбиение. Остаток может быть разбит на 2n разделов.
Составление фреймов
[править | править код]Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или семпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, CRC заголовка фрейма и номер блока/семпла позволяют выполнять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная контрольная сумма. Если базовый декодер обнаружит ошибку, то будет сгенерирован блок тишины.
Разное
[править | править код]Информация в этом разделе устарела. |
Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать теги ID3v1 и ID3v2, поэтому их можно свободно добавлять. Теги ID3v2 должны располагаться перед маркером «fLaC», а теги ID3v1 — в конце файла.
Существуют модификации FLAC кодера: Improved FLAC encoder, Flake, FLAC 5D и FLACCL.
29 января 2003 г. Xiphophorus (сейчас называется Xiph.Org Foundation) анонсировали включение формата FLAC в линейку своих продуктов: Ogg Vorbis, Theora и Speex[5].
Примечания
[править | править код]- ↑ FLAC 1.4.3 Released With More Optimizations, Drops PowerPC-Specific Code — 2023.
- ↑ 1 2 3 4 5 6 7 8 9 10 https://xiph.org/flac/documentation_tools_flac.html
- ↑ The flac Open Source Project on Open Hub: Languages Page — 2006.
- ↑ Links . FLAC. Дата обращения: 6 октября 2015. Архивировано 28 января 2017 года.
- ↑ FLAC Joins Xiph! (англ.). Дата обращения: 30 октября 2008. Архивировано 30 июня 2007 года.
Ссылки
[править | править код]- FLAC . — Официальная страница проекта FLAC на SourceForge.net. Дата обращения: 26 июля 2011. Архивировано из оригинала 12 февраля 2012 года.
- Xiph.Org: QuickTime Components (англ.). — поддержка FLAC в Quicktime. Дата обращения: 30 октября 2008. Архивировано 10 февраля 2012 года.