Kompressziós formátum flac, linuxoid

Azóta, amikor a számítógép elegendő energiát szerzett ahhoz, hogy multimédiás adatokkal dolgozhasson, természetesen sokáig számítógépes szabványok szerint. Ez idő alatt számos különböző formátumot, specifikációt és szabványt fejlesztettek ki. Ezek különböznek a kijelölésükben, valamint az elosztásban és az engedélyezésben. Hagyományosan ezeket a formátumokat lehet osztani két fő csoport: formátum audio kódolás és veszteségmentes formátum, amely eredetileg veszített a túlzott mértékű információ mellett a kisebb méretű a fájl.

Tehát az FLAC tömöríti a fájlokat veszteség nélkül. Az adatok kódolása esetén nincs adatvesztés, így a dekódolt hangfájl teljesen azonos az eredetivel. A formátum tömörítésére terveztek audió adatok (a tény, hogy az audió adat magas rendelést korreláció minták.), De az algoritmus működik emlékezteti zip és a fejlesztők kezdetben nem hozott korlátozásokat a forrás típusát adatok, hogy elméletileg lehetséges tömöríteni és minden más adat, de a méret az igazság nem nagyon különbözik az eredetitől. A formátumot eredetileg kiterjeszthetőnek tervezték, így új funkciók hozzáadására lehet szükség a hátrányos kompatibilitás elvesztése nélkül. Az FLAC egy streaming formátum, amelyet úgy érünk el, hogy az adatokat sok blokkba osztjuk, amelyek különböző méretűek lehetnek, bár az elérhető codecek csak állandó méretű blokkokat használnak. Mivel minden blokk külön kódolva van, a blokk méretének módosítása a kódolás során különböző kimeneti fájlhosszakat érhet el. Minél kisebb a blokk mérete, annál nagyobbak, és növekszik a felső szintű információ. A blokk mérete 16-tól 65535-ig van meghatározva, amely az összes lehetséges audioadat (zene, beszéd) optimális méreteit tartalmazza. Ebben az esetben minden blokk teljesen független az előzőtől. A fájlátvitel lehetséges hibáinak meghatározásához minden egyes kerethez (kódolt blokk) 16 bites ellenőrzőösszeget kell kiszámítani. A későbbiekben a sértetlenséget megerősíti a tömörítetlen adatok MD5 aláírása, amely a fejlécben van, és lejátszás, dekódolás vagy tesztelés alatt ellenőrizhető. Ezenkívül a kódoló olyan működési móddal rendelkezik, amelyben a kódolt adatokat dekódolják, és az eredetivel hibák jelenlétében hasonlítják össze, a munka leáll. A blokkolt adatok átkerülnek a predikciós állapotba egy alblokkhoz. Minden egyes alsávot az al-keretben egymástól függetlenül kódolnak, majd később egy keretbe illesztik őket. Mivel minden egyes csatorna külön van kódolva, ez azt jelenti, hogy a sztereó keret egy csatornája konstans keretként tömöríthető, a második pedig LPC alframe. Minden keret egy fejléccel rendelkezik, amely egy szinkronizációs kódból, keretinformációból (blokkméret, mintavételezési sebesség, csatornák száma stb.) És egy nyolcbites ellenőrzőösszegből áll. Szintén tartalmazza a cím, vagy a számát az első minta a keretben viszonyított teljes adatfolyam (áramokkal változó blokkméret) vagy keret szám (áramlások állandó blokkméret). Ez gyors és pontos keresést tesz lehetővé. Ezután követi a kódolt almakereteket (minden egyes csatornán egy), és végül a keretet, amelyet nullák egészítenek ki a byte-határhoz. Minden egyes almakeretnek saját fejléce van, amely meghatározza a dekódolás módját. Mivel a bal és jobb csatorna a legtöbb esetben egy részét tartalmazzák ugyanazt az információt, a csatornák közötti dekorreláció módszert alkalmazzák, amelynek négy különböző típusú, és a kódoló kiválasztja azt külön-külön keret:

  • Független. A bal és a jobb csatornák egymástól függetlenül vannak kódolva.
  • Különbség. A bal és a jobb csatornák átváltásra kerülnek a középső és a maradék csatornákra. Az átlagos csatorna a bal és a jobb jel átlagértéke, a maradék csatorna pedig a különbség (bal mínusz jobb).
  • Bal kezét. A bal és a maradék csatornák kódoltak.
  • Pravoostoronnee. A jobb és a maradék csatornák kódoltak.

A becsléshez négy különböző módszert használnak a bemeneti jel modellezésére (szóban, állandó, konstans lineáris prediktor LPC és lineáris predikciós FIR). Hogy különböznek egymástól, nézze meg az oldalon. Végül a kódoló maradék (hamis) jelet örökölt a predikciós lépés (amelyet szintén meg kell venni, hogy a veszteség elkerülésére) két hasonló módszert Rice kódot. És ezek a módszerek nem dogma, akkor, ha akarod, használhatja saját kódolási módszereit. Ezenkívül a FLAC lehetővé teszi a maradék blokk blokkból, sőt egy blokkban lévő csatornán belüli kódolásának módját. A projekt egyik célja alacsony hardverkövetelmény, amely valós idejű dekódolást biztosít, még a régebbi számítógépeken is. Ezen kívül van két pont, hogy a fejlesztők nem lesz, és nem akarja, hogy végre (bár ha valaki megy, és kérjük, de a kompatibilitás az eredeti ebben az esetben nem garantált). Ez veszteséges tömörítés és a másolásvédelem bármilyen formában történő megvalósítása.

Tehát, a funkciók egy kicsit kiderült, most menjünk le a gyakorlatban. Minden példát idézek a Linux platformra, de más operációs rendszerek érdeklődői számára megtalálja az összes szükséges linket az oldalon. A FLAC szállítása magában foglalja:

• libFLAC. alapkódoló és dekódoló könyvtár és metaadat-interfész;

• libFLAC ++. a libFLAC objektumhéj;

• libOggFLAC és libOggFLAC ++. a libFLAC és libFLAC ++ kódolók és dekóderek csomagolói. hogy hozzáférjenek az FLAC folyamokhoz az Ogg konténerben;

• flac. egy parancssori segédprogram, amely tömöríti és kicsomagolja az .flac fájlokat;

• metaflac. egy parancssori segédprogram a .flac fájlok metaadatainak szerkesztéséhez;

Ráadásul a készlet mindegyikét tartalmazza a különféle lejátszók és könyvtárak plug-injei a kódoláshoz és az ID-címkékhez.

Először mi érdekli flac hasznosság, a legtöbb az alapértelmezett beállításokat a bázis jeladó optimalizált CD-audio (azaz 44,1 kHz, 2 csatorna, 16 bit minta), bár természetesen mindezt természetesen lehet változtatni kiválasztja a megfelelő beállítást.

A legegyszerűbb esetben annak érdekében, hogy egy wav fájlt flac-be kódoljon, elegendő bemenet beírása paraméterek nélkül, jelezve csak a bemeneti fájlt.
[sergej @ grinder sound] $ flac teszt.wav

Ennek eredményeképpen az aktuális könyvtárban létrehoz egy azonos nevű, de .flac kiterjesztéssel rendelkező fájlt. Ügyeljen arra, hogy az opciók sorban a valóban használt kódolási lehetőségek láthatók legyenek. Rövid segítséget kaphat egyszerűen a flac beírásával, a részletes opcióval pedig a -help segítségével. Az alapértelmezett tömörítési szint 5, amely megváltoztatható a - # (ahol # számjegy 0-tól (gyorsabb) 8-ig (jobb)).

[sergej @ grinder sound] $ flac -8 teszt.wav

A kimeneti fájl neve explicit módon megadható a -o opció használatával. A flac fájl dekódolásához használja a -d kapcsolót.

[sergej @ grinder sound] $ flac -d test.flac

metaflac segédprogram lehetővé teszi, hogy működik a metaadatfájlt, ellenőrizze az ellenőrző blokk méretét és a keret (maximum és minimum), a munka címkék Ogg Vorbis formátumban.

[Sergej @ csiszoló FLAC] $ metaflac -show-md5sum -show-min-képkocka -show-minta-ráta -show-teljes-minták test.flac

01762464f61bdf7ef35f268cf6f6e80a # MD5 összeg

12723732 # a minták teljes száma

Így másolhatod a címkét az ogg fájlból és beillesztheted a flacbe.

[sergej @ grinder flac] $ vorbiscomment -l -raw file.ogg | metaflac -import-vc-from = -nem-utf8-convert file.flac

Formátum Fogadott kimeneti fájlméret, Mb kódolási sebesség.

Mp3 (LAME 128 kb / s) 4,4 2 perc

Ogg cf. 112 kb / s 3,9 4,08 perc

FLAC 28,6 0,48 perc

Ráadásul megpróbáltam, hogyan tudtam összehasonlítani a kapott hangfájl minőségét. Persze, azt elismerik, hogy az ilyen vizsgálatok hordoz szubjektív elemet, és a szabályok szerint meg kell tenni a lehető legnagyobb számú résztvevő a „vak”, egyébként a vizsgálat már megtörtént „ismeri” a hiányosságokat. Tehát ez mind személyes véleményem, és nem érte el, ha őszintén kristálytiszta kísérlet. A célok teljesen más. Így bármilyen jó codec Lame, mp3 nyugszik képest is Ogg Vorbis, egy érzés, hogy nedodali erő és mélység, még a végső méret, hogy egy kicsit több ogg, de nyert a kódolási arány az utóbbi csaknem megduplázódott. By the way, van egy doboz 300 Celeron a fedélzeten és a Windows alatt a grafikus segédprogramok kódolásához ugyanazt a fájlt, hogy körülbelül 50 százalékkal több időt. A jó hangzású Ogg Vorbis még kiváló hangzást is mond, és még ilyen alacsony bitrátával is szinte nem hallható különbség van a vágó fülekben. De az FLAC és a wav is nem lehet megkülönböztetni az eredetitől, de az első, ahogy látod, a hangerő pontosan kétszer olyan kicsi (ismét, alapértelmezés szerint, ne felejtsd el). Így azok számára, akiknek eredeti hangzásra van szükségük, és ugyanakkor vágynak arra, hogy helyet takarítsanak meg az FLAC lemezen, és éppen az orvos rendelése lesz. Most mi van ott hallgatni? Mint mondtam, a plug-inek sok játékos számára elérhetők. a.

Ez minden. Viva OpenSource!