FLAC (англ. Free Lossless Audio Codec — вільний аудіокодек без втрат) — аудіокодек для стиснення аудіо зі 100% збереженням оригінального звукового потоку. На відміну від таких кодеків, як MP3, WMA чи Ogg Vorbis, FLAC забезпечує т.зв. стиснення без втрат (англ. lossless), тобто під час розпакування звукові дані залишаються повністю ідентичним до початкового файлу перед стисненням. FLAC також включає можливість перевірки точності даних завдяки збереженню у файлі відбитку MD5 оригінальних даних.
Тип | аудіо-кодек, звуковий формат |
---|---|
Розробник | Xiph.Org Foundation, Джош Коалсон |
Перший випуск | 20 липня 2001 |
Стабільний випуск | 1.3.3 (4 серпня 2019 ) |
Платформа | Багатоплатформність |
Операційна система | кросплатформова програма |
Мова програмування | C[1] |
Ліцензія | утиліти командного рядка: GNU GPL бібліотеки: BSD |
Репозиторій | gitlab.xiph.org/xiph/flac |
Вебсайт | xiph.org/flac |
|
Розширення файлу: | .flac |
---|---|
MIME-тип: | audio/x-flac |
Тип формату: | Аудіо |
Стандарт(и): | Специфікація |
FLAC є вільним форматом: його використання не вимагає виплат роялті, специфікації є відкритими та його основна реалізація є вільним програмним забезпеченням.
Розвиває цей кодек Xiph.Org Foundation.
Відомості про формат
Аудіопотік
Основними частинами потоку є:
- Рядок з чотирьох байтів «
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, різницевий = лівий - правий. На відміну від , що використовується в lossy-кодерах, в lossless-кодуванні цей процес не призводить до втрат. Для даних з аудіодисків це зазвичай призводить до значного збільшення рівня стиснення.
Моделювання
На наступному етапі кодер намагається апроксимувати сигнал такою функцією, щоб отриманий після її вирахування з оригіналу результат (званий різницею, залишком, помилкою) можна було закодувати мінімальною кількістю бітів. Параметри функцій теж повинні записуватися, тому вони не повинні займати багато місця. FLAC використовує два методи формування апроксимацій:
- підгонка простого полінома до сигналу
- загальне кодування з лінійними предикторами (LPC).
По-перше, постійне поліноміальне пророкування (-l 0) працює значно швидше, але менш точно, ніж LPC. Чим вище порядок LPC, тим повільніше, але краще буде модель. Однак зі збільшенням порядку виграш буде все менш значним. В деякій точці (зазвичай близько 9) процедура кодера, що визначає найкращий порядок, починає помилятися і розмір одержуваних фреймів зростає. Щоб подолати це, можна використовувати повний перебір, що призведе до значного збільшення часу кодування.
По-друге, параметри для постійних предикторів можуть бути описані трьома бітами, а параметри для моделі LPC залежать від кількості біт на семпл і порядку LPC. Це означає, що розмір заголовка фрейму залежить від обраного методу і порядку і може вплинути на оптимальний розмір блоку.
Залишкове кодування
Коли модель підібрана, кодер віднімає наближення з оригіналу, щоб отримати залишковий (помилковий) сигнал, який потім кодується без втрат. Для цього використовується та обставина, що різницевий сигнал зазвичай має розподіл Лапласа і є набір ентропійних кодів, що має назву , що дозволяє ефективно і швидко кодувати ці сигнали без використання словника.
Кодування Райса складається з знаходження одного параметра, що відповідає розподілу сигналу, а потім використання його для складання кодів. Зі зміною розподілу змінюється і оптимальний параметр, тому є метод, що дозволяє перераховувати його в разі потреби. Залишок може бути розбитий на контексти або розділи, у кожного з яких буде свій параметр Райса. FLAC дозволяє вказати, як потрібно проводити розбиття. Залишок може бути розбитий на 2 n розділів.
Складання фреймів
Аудіофрейму передує заголовок, який починається з коду синхронізації і містить мінімум інформації, необхідної декодеру для відтворення потоку. Сюди також записується номер блоку або семпли і восьмибітна контрольна сума самого заголовку. Код синхронізації, CRC заголовка фрейму і номер блоку/семплу дозволяють виконувати пересинхронізацію і пошук навіть під час відсутності точок пошуку. В кінці фрейма записується його шістнадцятибітна контрольна сума. Якщо базовий декодер виявить помилку, то буде згенерований блок тиші.
Різне
Щоб підтримувати основні типи метаданих, базовий декодер вміє пропускати теги ID3v1 і ID3v2, тому їх можна вільно додавати. Теги ID3v2 повинні розташовуватися перед маркером «fLaC», а теги ID3v1 - в кінці файлу.
Існують модифікації FLAC кодера: і .
Підтримка FLAC
Файли з розширенням .flac можна відкрити на комп'ютері, зокрема за допомогою таких програм:
- Roxio Easy Media Creator
- Jet Audio
- AIMP
- Adobe Audition
- VLC Media Player
- VUPlayer
- Winamp з підключеним модулем FLAC
- Windows Media Player з фільтрами Illiminable або CoreFLAC
- Sound Normalizer [ 9 грудня 2010 у Wayback Machine.]
Апаратно підтримується, зокрема, такими пристроями (список не повний):
- DUNE HD
- Weiss Minerva
- Blackberry
- Blacknote DSS 30
- Cowon
- DIGMA (Insomnia 5)
- Rio Karma
- ICONBIT HD390DVD; HD400L; HD400DVD
- iRiver, Gigabeat (Toshiba) (через прошивку RockBox)
- iAudio (Cowon)
- Ritmix (Meizu)
- SANSA
- TeXet (T-900, T-890, T-860, T-790, T-660, T-589, T-590, T-560)
- Transcend (MP 870, MP 860, MP 330)
- iPod (через прошивку RockBox)
- Networked Media Tank (Popcorn Hour — A100, A110, B110, C200)
- Explay
- Nationite S:Flo 2 (Teclast T51)
- Philips Xenium K700
- Hifiman HM-801
- Sony Ericsson W20i Zylo
- Samsung Galaxy S
- Samsung Galaxy S II
- Samsung Galaxy R
- Samsung Wave
- Samsung Wave II
- Sony Ericsson W20(Zylo)
- Sony Ericsson Xperia x10i
- Sony Ericsson Xperia Arc
- Oysters PMP-200
- Sony Ericsson Xperia Play
- Nokia N900 з пакетом OGG support
- Meizu M8
- Mystery MMD-584U
- Nokia N8, C7, C6-01, E7 (смартфони на Symbian^3, використовуючи FolderPlay 1.8)
- Nokia 5800 (смартфони на S60, використовуючи FolderPlay 1.8)
Примітки
- The flac Open Source Project on Open Hub: Languages Page — 2006.
- . Архів оригіналу за 17 липня 2013. Процитовано 11 липня 2013.
- . Архів оригіналу за 11 вересня 2013. Процитовано 11 липня 2013.
Посилання
- FLAC (рос.). Архів оригіналу за 10 лютий 2012. Процитовано 12 січень 2017.
- Xiph.Org: QuickTime Components (англ.). Архів оригіналу за 10 лютого 2012. Процитовано 12 січня 2017.
Це незавершена стаття про програмне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
FLAC angl Free Lossless Audio Codec vilnij audiokodek bez vtrat audiokodek dlya stisnennya audio zi 100 zberezhennyam originalnogo zvukovogo potoku Na vidminu vid takih kodekiv yak MP3 WMA chi Ogg Vorbis FLAC zabezpechuye t zv stisnennya bez vtrat angl lossless tobto pid chas rozpakuvannya zvukovi dani zalishayutsya povnistyu identichnim do pochatkovogo fajlu pered stisnennyam FLAC takozh vklyuchaye mozhlivist perevirki tochnosti danih zavdyaki zberezhennyu u fajli vidbitku MD5 originalnih danih Free lossless audio codecTipaudio kodek zvukovij formatRozrobnikXiph Org Foundation Dzhosh KoalsonPershij vipusk20 lipnya 2001Stabilnij vipusk1 3 3 4 serpnya 2019 4 roki tomu 2019 08 04 PlatformaBagatoplatformnistOperacijna sistemakrosplatformova programaMova programuvannyaC 1 Licenziyautiliti komandnogo ryadka GNU GPL biblioteki BSDRepozitorijgitlab xiph org xiph flacVebsajtxiph org flac Mediafajli u Vikishovishi Free lossless audio codecRozshirennya fajlu flacMIME tip audio x flacTip formatu AudioStandart i Specifikaciya FLAC ye vilnim formatom jogo vikoristannya ne vimagaye viplat royalti specifikaciyi ye vidkritimi ta jogo osnovna realizaciya ye vilnim programnim zabezpechennyam Rozvivaye cej kodek Xiph Org Foundation Vidomosti pro formatAudiopotik Osnovnimi chastinami potoku ye Ryadok z chotiroh bajtiv fLaC Blok metadanih STREAMINFO Inshi neobov yazkovi bloki metadanih Audiofrejmi Pershi chotiri bajti identifikuyut potik FLAC Nastupni za nimi metadani mistyat informaciyu pro potik potim jdut stisnuti zvukovi dani Metadani Stanom na 10 03 2010 v libflac 1 2 1 viznacheni taki tipi blokiv StreamInfo Padding Application SeekTable VorbisComment CueSheet Picture Unknown Bloki metadanih mozhut buti bud yakogo rozmiru dodavannya novih blokiv ne viklikaye trudnoshiv Nevidomi bloki metadanih dekoder propuskaye Blok STREAMINFO obov yazkovij U nomu mistyatsya dani sho dozvolyayut dekoderu nalashtuvati bufer diskretizaciyi kilkist kanaliv kilkist bit na sempl i kilkist sempliv Takozh v blok zapisuyetsya pidpis MD5 ne stisnenih audio danih Ce korisno dlya perevirki vsogo potoku pislya jogo peredachi Inshi bloki priznacheni dlya rezervuvannya miscya zberigannya tablic tochok poshuku tegiv spisok rozmitki audiodiskiv a takozh danih dlya konkretnih dodatkiv Opciyi dlya dodavannya blokiv PADDING abo tochok poshuku navedeni nizhche FLAC ne potrebuye tochok poshuku prote voni dozvolyayut znachno zbilshiti shvidkist dostupu a takozh mozhut buti vikoristani dlya rozmishennya mitok v audio redaktorah Tochnij opis struktur standartnih blokiv mozhna znajti v fajli format h biblioteki libflac dostupnoyu na sajti formatu Audiodani Za metadanimi sliduyut stisli audiodani Metadani ta audio ne cherguyutsya Yak i bilshist kodekiv FLAC dilit vhidnij potik na bloki i koduye yih nezalezhno odin vid odnogo Blok zapakovuyetsya u frejm i dodayetsya do potoku Bazovij koder vikoristovuye bloki postijnogo rozmiru dlya vsogo potoku odnak format peredbachaye nayavnist blokiv riznoyi dovzhini v potoci Rozbittya na bloki Rozmir bloku duzhe vazhlivij parametr dlya koduvannya Yaksho vin zanadto malij to v potoci bude nadto bagato zagolovkiv frejmiv sho zmenshit riven stisnennya Yaksho zh rozmir velikij to koder ne zmozhe pidibrati efektivnu model stisnennya Rozuminnya procesu modelyuvannya dopomozhe vam zbilshiti riven stisnennya dlya deyakih tipiv vhidnih danih Zazvichaj pid chas vikoristannya linijnogo prognozuvannya na audio z chastotoyu diskretizaciyi 44 1 kGc optimalnij rozmir bloku lezhit v diapazoni 2 6 tis sempliv Mizhkanalna dekorelyaciya Yaksho na vhid nadhodyat stereoaudiodani voni mozhut projti cherez stadiyu mizhkanalnoyi dekorelyaciyi Pravij i livij kanal peretvoryuyutsya do serednogo i riznicevomu za formulami serednij livij pravij 2 riznicevij livij pravij Na vidminu vid sho vikoristovuyetsya v lossy koderah v lossless koduvanni cej proces ne prizvodit do vtrat Dlya danih z audiodiskiv ce zazvichaj prizvodit do znachnogo zbilshennya rivnya stisnennya Modelyuvannya Na nastupnomu etapi koder namagayetsya aproksimuvati signal takoyu funkciyeyu shob otrimanij pislya yiyi virahuvannya z originalu rezultat zvanij rizniceyu zalishkom pomilkoyu mozhna bulo zakoduvati minimalnoyu kilkistyu bitiv Parametri funkcij tezh povinni zapisuvatisya tomu voni ne povinni zajmati bagato miscya FLAC vikoristovuye dva metodi formuvannya aproksimacij pidgonka prostogo polinoma do signalu zagalne koduvannya z linijnimi prediktorami LPC Po pershe postijne polinomialne prorokuvannya l 0 pracyuye znachno shvidshe ale mensh tochno nizh LPC Chim vishe poryadok LPC tim povilnishe ale krashe bude model Odnak zi zbilshennyam poryadku vigrash bude vse mensh znachnim V deyakij tochci zazvichaj blizko 9 procedura kodera sho viznachaye najkrashij poryadok pochinaye pomilyatisya i rozmir oderzhuvanih frejmiv zrostaye Shob podolati ce mozhna vikoristovuvati povnij perebir sho prizvede do znachnogo zbilshennya chasu koduvannya Po druge parametri dlya postijnih prediktoriv mozhut buti opisani troma bitami a parametri dlya modeli LPC zalezhat vid kilkosti bit na sempl i poryadku LPC Ce oznachaye sho rozmir zagolovka frejmu zalezhit vid obranogo metodu i poryadku i mozhe vplinuti na optimalnij rozmir bloku Zalishkove koduvannya Koli model pidibrana koder vidnimaye nablizhennya z originalu shob otrimati zalishkovij pomilkovij signal yakij potim koduyetsya bez vtrat Dlya cogo vikoristovuyetsya ta obstavina sho riznicevij signal zazvichaj maye rozpodil Laplasa i ye nabir entropijnih kodiv sho maye nazvu sho dozvolyaye efektivno i shvidko koduvati ci signali bez vikoristannya slovnika Koduvannya Rajsa skladayetsya z znahodzhennya odnogo parametra sho vidpovidaye rozpodilu signalu a potim vikoristannya jogo dlya skladannya kodiv Zi zminoyu rozpodilu zminyuyetsya i optimalnij parametr tomu ye metod sho dozvolyaye pererahovuvati jogo v razi potrebi Zalishok mozhe buti rozbitij na konteksti abo rozdili u kozhnogo z yakih bude svij parametr Rajsa FLAC dozvolyaye vkazati yak potribno provoditi rozbittya Zalishok mozhe buti rozbitij na 2 n rozdiliv Skladannya frejmiv Audiofrejmu pereduye zagolovok yakij pochinayetsya z kodu sinhronizaciyi i mistit minimum informaciyi neobhidnoyi dekoderu dlya vidtvorennya potoku Syudi takozh zapisuyetsya nomer bloku abo sempli i vosmibitna kontrolna suma samogo zagolovku Kod sinhronizaciyi CRC zagolovka frejmu i nomer bloku semplu dozvolyayut vikonuvati peresinhronizaciyu i poshuk navit pid chas vidsutnosti tochok poshuku V kinci frejma zapisuyetsya jogo shistnadcyatibitna kontrolna suma Yaksho bazovij dekoder viyavit pomilku to bude zgenerovanij blok tishi Rizne Shob pidtrimuvati osnovni tipi metadanih bazovij dekoder vmiye propuskati tegi ID3v1 i ID3v2 tomu yih mozhna vilno dodavati Tegi ID3v2 povinni roztashovuvatisya pered markerom fLaC a tegi ID3v1 v kinci fajlu Isnuyut modifikaciyi FLAC kodera i Pidtrimka FLAC Fajli z rozshirennyam flac mozhna vidkriti na komp yuteri zokrema za dopomogoyu takih program Roxio Easy Media Creator Jet Audio AIMP Adobe Audition VLC Media Player VUPlayer Winamp z pidklyuchenim modulem FLAC Windows Media Player z filtrami Illiminable abo CoreFLAC Sound Normalizer 9 grudnya 2010 u Wayback Machine Aparatno pidtrimuyetsya zokrema takimi pristroyami spisok ne povnij DUNE HD Weiss Minerva Blackberry Blacknote DSS 30 Cowon DIGMA Insomnia 5 Rio Karma ICONBIT HD390DVD HD400L HD400DVD iRiver Gigabeat Toshiba cherez proshivku RockBox iAudio Cowon Ritmix Meizu SANSA TeXet T 900 T 890 T 860 T 790 T 660 T 589 T 590 T 560 Transcend MP 870 MP 860 MP 330 iPod cherez proshivku RockBox Networked Media Tank Popcorn Hour A100 A110 B110 C200 Explay Nationite S Flo 2 Teclast T51 Philips Xenium K700 Hifiman HM 801 Sony Ericsson W20i Zylo Samsung Galaxy S Samsung Galaxy S II Samsung Galaxy R Samsung Wave Samsung Wave II Sony Ericsson W20 Zylo Sony Ericsson Xperia x10i Sony Ericsson Xperia Arc Oysters PMP 200 Sony Ericsson Xperia Play Nokia N900 z paketom OGG support Meizu M8 Mystery MMD 584U Nokia N8 C7 C6 01 E7 smartfoni na Symbian 3 vikoristovuyuchi FolderPlay 1 8 Nokia 5800 smartfoni na S60 vikoristovuyuchi FolderPlay 1 8 PrimitkiThe flac Open Source Project on Open Hub Languages Page 2006 d Track Q124688 Arhiv originalu za 17 lipnya 2013 Procitovano 11 lipnya 2013 Arhiv originalu za 11 veresnya 2013 Procitovano 11 lipnya 2013 PosilannyaFLAC ros Arhiv originalu za 10 lyutij 2012 Procitovano 12 sichen 2017 Xiph Org QuickTime Components angl Arhiv originalu za 10 lyutogo 2012 Procitovano 12 sichnya 2017 Ce nezavershena stattya pro programne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi