ФЛАC (инглизча: Фреэ Лосслесс Аудио Cодеc) - бу ҳеч қандай ё'қотишларсиз аудио ма'лумотларини сиқиш учун мо'лжалланган бепул аудио кодек ҳисобланади.

ФЛАC - аудиокодек
FLAC logo

ФЛАC 1.4.0 версиясининг экран тасвири
МуаллифХипҳ.Орг Фоундатион
Ишлаб чиқувчиЖош Cоалсон
ташкил топди:20-июл, 2001
Сўнгги версияси
ПлатформаКросс-платформа
Формат(лар)иФреэ Лосслесс Аудио Cодеc
ЖанрАудиокодек
ЛицензияГНУ ГПЛ; БСД(Парц)
Вебсайт:Хипҳ.орг/флаc
Дастурлаш тили:C

Аудио ма'лумотларини ё'қотишлар билан сиқувчи аудио кодеклардан (МП3, ААC, WМА, Огг Ворбис, Опус) фарқли о'лароқ, ФЛАC, аудио оқимдан ҳеч қандай ма'лумотларни олиб ташламайди, ма'лумотлар ё'қолмайди ва юқори сифатли аудио ма'лумотларни сақлаб беради.

Бугунги кунда ФЛАC формати ко'плаб аудио иловалар, портатив аудио плаерлар ва ихтисослаштирилган аудио тизимлар томонидан қо'ллаб-қувватланади ва турли хил аппаратларда қо'ллаш мумкин[1].

Формат ма'лумотлари

Аудио оқим

Ушбу форматнинг асосий қисмлари қуйидагилардан иборат:

  • То'рт байтдан иборат " фЛаC " қатори
  • СТРЕАМИНФО метадата блоки
  • Бошқа ихтиёрий метадата блоклари
  • Аудиофреймлар

Биринчи то'рт байт ФЛАC оқимини аниқлайди. Кейинги байтлар метадата оқим ҳақидаги ма'лумотларни, кейингилари эса сиқилган аудио ма'лумотларини о'з ичига олади.

Метадата

03/10/2010 ҳолатига ко'ра, либфлаc-1.2.1 қуйидаги блок турларини белгилайди: СтреамИнфо, Паддинг, Апплиcатион, СеэкТабле, ВорбисCоммент, CуэШеэт, Пиcтуре, Ункноwн. Метадата блоклари ҳар қандай ҳажмда бо'лиши мумкин, янги блокларни қо'шиш қийин эмас. Декодер метама'лумотларнинг нома'лум блокларини о'тказиб юборади.

СТРЕАМИНФО блоки бо'лиши шарт. У декодерга буферларни, намуна тезлигини, каналлар сонини, намунадаги битлар сонини ва намуналар сонини созлаш имконини берувчи ма'лумотларни о'з ичига олади. Сиқилмаган аудио ма'лумотларнинг МД5 имзоси ҳам блокга ёзилади. Бу оқим узатилгандан кейин бутун оқимни текшириш учун фойдалидир.

Бошқа блоклар бо'ш жойни захиралаш, қидириш нуқталари жадвалларини, тегларни, аудио CД макетлари ро'йхатини, шунингдек, ма'лум иловалар учун ма'лумотларни сақлаш учун мо'лжалланган. ПАДДИНГ блоклари ёки қидириш нуқталарини қо'шиш вариантлари қуйида келтирилган. ФЛАC қидирув нуқталарига муҳтож эмас, лекин улар кириш тезлигини сезиларли даражада ошириши мумкин ва аудио муҳаррирларда теглаш учун ҳам ишлатилиши мумкин.

Аудио ма'лумотлар

Метадатадан кейин сиқилган аудио ма'лумотлар келади. Метадата ва аудио ма'лумотлар аралашмайди. Ко'пгина кодеклар сингари, ФЛАC кириш оқимини блокларга ажратади ва уларни мустақил равишда кодлайди. Блок рамкага о'ралган ва оқимга қо'шилган. Асосий энкодер бутун оқим учун доимий о'лчамдаги блоклардан фойдаланади, аммо формат оқимдаги турли узунликдаги блокларга рухсат беради.

Блокларга бо'линиши

Блок ҳажми кодлаш учун жуда муҳим параметрдир. Агар у жуда кичик бо'лса, у ҳолда оқимда жуда ко'п рамка сарлавҳалари бо'лади, бу эса сиқилиш даражасини пасайтиради. Агар о'лчам катта бо'лса, у ҳолда энкодер самарали сиқиш моделини танлай олмайди. Моделлаштириш жараёнини тушуниш киришнинг айрим турлари учун сиқилиш даражасини оширишга ёрдам беради. Одатда, намуна олиш тезлиги 44,1 кҲз бо'лган аудио ма'лумотларга чизиқли башорат қилишда оптимал блок ҳажми 2-6 минг блок оралиг'ида жойлашган. намуналар.

Каналлараро декорреляция

Агар стерео аудио ма'лумотлар киритилса, у каналлараро декорреляция босқичидан о'тиши мумкин. О'нг ва чап каналлар формулалар бо'йича о'ртача ва фарқга айлантирилади: о'ртача = (чап + о'нг) / 2, фарқ = чап - о'нг. Ё'қотилган энкодерларда ишлатиладиган қо'шма стереодан фарқли о'лароқ, бу жараён ё'қотишсиз кодлашнинг бузилишига олиб келмайди. Аудио CД ма'лумотлари учун бу одатда сиқилиш даражасининг сезиларли даражада ошишига олиб келади.

Моделлаштириш

Кейинги босқичда энкодер сигнални шундай функсия билан яқинлаштиришга ҳаракат қиладики, уни асл нусхадан айириш натижасида олинган натижа (фарқ, қолдиқ, хато деб аталади) минимал битлар сони билан кодланиши мумкин. Функсия параметрлари ҳам ёзилиши керак, шунинг учун улар ко'п жой эгалламаслиги керак. ФЛАC тахминий ма'лумотларни яратиш учун иккита усулдан фойдаланади:

  • сигналга оддий полином мослаштириш
  • умумий чизиқли башорат қилувчи кодлаш (ЛПC).

Биринчидан, доимий полином башорати (-л 0) ЛПC (Лоw Пин Cоунт)дан сезиларли даражада тезроқ, аммо аниқроқ эмас. ЛПC сони қанчалик юқори бо'лса, модел шунчалик секинроқ, лекин яхшироқ бо'лади. Бироқ, буюртма ортиб бораётганлиги сабабли, даромад камроқ ва камроқ аҳамиятга эга бо'лади. Бир нуқтада (одатда 9 атрофида) кодловчининг энг яхши тартибни аниқлаш тартиби муваффақияцизликка учрайди ва қабул қилинган кадрлар ҳажми ортади. Буни бартараф этиш учун то'лиқ қидирувдан фойдаланиш мумкин, бу кодлаш вақтини сезиларли даражада оширишга олиб келади.

Иккинчидан, доимий башорат қилувчилар учун параметрлар учта бит билан тавсифланиши мумкин, ЛПC модели учун параметрлар эса намунадаги битлар сонига ва ЛПC тартибига бог'лиқ. Бу шуни англатадики, рамка сарлавҳасининг о'лчами танланган усул ва тартибга бог'лиқ ва оптимал блок ҳажмига та'сир қилиши мумкин.

Қолдиқ кодлаш

Модел о'рнатилганда, кодловчи қолдиқ (ното'г'ри) сигнални олиш учун асл нусхадан тахминийликни олиб ташлайди, кейин эса ё'қотишсиз кодланади. Бунда фарқ сигнали одатда Лаплас тақсимотига эга эканлиги ва Райс кодлари деб аталадиган энтропия кодлари тўплами мавжудлигидан фойдаланилади, бу эса луғатдан фойдаланмасдан ушбу сигналларни самарали ва тез кодлаш имконини беради.

Гуручни кодлаш сигналнинг тақсимланишига мос келадиган битта параметрни топиш ва ундан кейин кодларни яратиш учун фойдаланишдан иборат. Тарқатиш о'згарганда, оптимал параметр ҳам о'згаради, шунинг учун керак бо'лганда уни қайта ҳисоблаш имконини берувчи усул мавжуд. Қолганларни контекстларга ёки бо'лимларга бо'лиш мумкин, уларнинг ҳар бири о'з Райс параметрига эга бо'лади. ФЛАC бо'линиш қандай амалга оширилиши кераклигини белгилашга имкон беради. Қолганларини 2н бо'лимга бо'лиш мумкин.

Рамкаланиши

Аудио кадрдан олдин синхронлаш коди билан бошланадиган сарлавҳа мавжуд ва оқимни ижро этиш учун декодер учун зарур бо'лган минимал ма'лумотларни о'з ичига олади. Блок ёки намуна рақами ва сарлавҳанинг саккиз битли назорат суммаси ҳам бу ерда ёзилади. Синхронизация коди, рамка сарлавҳаси CРC ва блок/намуна рақами қидирув нуқталари бо'лмаган тақдирда ҳам вақтни қайта о'тказиш ва қидириш имконини беради. Кадр охирида унинг о'н олти битли назорат суммаси ёзилади. Агар асосий декодер хатоликни аниқласа, жим блок ҳосил бо'лади.

Турли хил

Асосий метадата турларини қо'ллаб-қувватлаш учун асосий декодер ИД3в1 ва ИД3в2 тегларини о'тказиб юбориши мумкин, шунинг учун уларни эркин қо'шиш мумкин. ИД3в2 теглари "фЛаC" белгисидан олдин, ИД3в1 теглари эса файл охирида жойлаштирилиши керак.

ФЛАC энкодерининг модификациялари мавжуд: ФЛАC кодловчи яхшиланган, Флаке ва ФЛАCCЛ.

2003-йил 29-январ Хифофор (ҳозир Хипҳ деб аталади. Орг Фоундатион) о'з маҳсулот қаторига ФЛАC форматини киритишни э'лон қилди: Огг Ворбис, Тҳеора ва Спеэх[2].

Эслатмалар

  1. ↑ „Линкс“. ФЛАC. 28-январ 2017-йилда асл нусхадан архивланган. Қаралди: 6-октабр 2015-йил.
  2. ↑ „ФЛАC Жоинс Хипҳ!“ (инглизча). 2007-йил 30-июнда асл нусхадан архивланган. Қаралди: 30-октабр 2008-йил.

Ҳаволалар