L.A.M.E. kodek

Na LAME som natrafil poΦas m⌠jho h╛adania po Internete. Zaujφmali ma kompresnΘ programy pre mp3 a mojimi kritΘriami bola kvalita skomprimovanΘho zvuku a bezplatnΘ pou₧φvanie; plati¥ $500 a viac za profesionßlne programy, to je na moje archφvne ·Φely prive╛a. Doposia╛ som pou₧φval Bladeenc, ktor² je sφce zadarmo, ale v²sledn² zvuk bol zlej kvality, a to aj pri ve╛mi vysok²ch bitrate. PoΦas h╛adania som r²chlo objavil LAME, a ke∩₧e som sa chcel dozvedie¥ viac, preΦφtal som si o ≥om zaujφmavΘ informßcie.

MPEG layer 3 kompresn² engine LAME asi poznß mnoho z vßs kv⌠li jeho r²chlosti, vysokej kvalite v²slednΘho zvuku a najmΣ v∩aka dostupnosti -je celkom zadarmo, a to dokonca legßlne zadarmo :o) Ve╛a u₧φvate╛ov ho pou₧φva celkom samozrejme i bez toho, aby o ≥om v⌠bec vedeli. PreΦo vÜak ob╛·benß hackerskß sluΦka v jeho nßzve tvrdφ, ₧e L.AM.E. nie je mp3 enkodΘr? ╚o a kto sa skr²va za t²mto kvalitn²m kusom k≤du?

╚o je LAME?

LAME zaΦφnalo ako GPL patch voΦi demonÜtraΦnΘmu zdrojßku ISO dist10, aby sa vyhlo prßvnym problΘmom voΦi dr₧ite╛ovi patentu, Fraunhoffer Gesselschaft. Nebol to ani z∩aleka pou₧ite╛n² mp3 kompresor, nemalo zmysel ho ani kompilova¥. V mßji 2000 boli odstrßnenΘ poslednΘ zvyÜky p⌠vodnΘho ISO k≤du a LAME sa stal plne LGPL zdrojov²m k≤dom pre mp3 kompresor. LAME vÜak naozaj nie je mp3 kompresor. Mo₧no vßs to prekvapφ, ale LAME je v skutoΦnosti v²ukovß pom⌠cka sl·₧iaca ako ukß₧ka mp3 k≤dovania. Je to open-source projekt s cie╛om vytvori¥ lepÜφ model na bßze opensource, zahα≥aj·ci vylepÜen· psychoakustiku, noise shaping i r²chlos¥. Je to sk⌠r intelektußlny a programßtorsk² projekt, ktor² nie je urΦen² komuko╛vek a pre masovΘ Üφrenie; distribuuje sa iba ako zdrojov² k≤d, Φi₧e potrebujete ovlßda¥ C kompiler, ak z neho chcete zφska¥ spustite╛n² program. Napriek tomu sa vÜak jeho skompilovanß podoba vyskytuje u mno₧stva programov a teÜφ sa ve╛kej ob╛ube.

╚o pon·ka?

Prvotn²m zßkladom ·spechu LAME, polo₧en²m v roku 1999, je psychoakustick² model gpsycho, vyvinut² ako dokonalejÜia nßhrada p⌠vodnΘho ISO modelu. Nesk⌠r bol implementovan² eÜte vyspelejÜφ model od chlapφka menom Naoki Shibata (dostupn² parametrom -nspsytune). Prßve v dobre navrhnutom modeli je nutn² predpoklad ·speÜnΘho zvlßdnutia pokroΦil²ch technφk, ako VBR, ABR a joint stereo (JS). Po vyrieÜenφ modelu sa zaΦali snahy o vylepÜenie programovej Φasti demonÜtraΦnΘho enkodΘra. V prvom rade snahy a vysok· kvalitu zvuku, v druhom rade o optimßlnu r²chlos¥ kompresie. Boli vyvinutΘ novΘ postupy zaobchßdzania s variabiln²m tokom (VBR), ktor²ch implementßcia v LAME priniesla asi prv² pou₧ite╛n² VBR -ve╛a predt²m dostupn²ch enkodΘrov produkovala pri variabilnom toku takmer nepou₧ite╛nΘ v²sledky (napr.Xing). Implementßcia VBR v LAME je na vynikaj·cej ·rovni a je je to jedna z najsilnejÜφch strßnok LAME, preto₧e umo₧≥uje ve╛mi kvalitn² zvuk pri priemerne asi 170kbps. Aj pri ni₧Üφch tokoch funguje VBR korektne a v∩aka optimßlnym psychoakustick²m krivkßm jeho prφtomnos¥ ani nepostrehnete. LAME rozliÜuje dva parametre kvality. Prv²m je absol·tny parameter Q, ktor² mß vplyv na zlo₧itos¥ algoritmov a teda na r²chlos¥ kompresie, ale nie na ve╛kos¥ s·boru. Ak mßte na kompresiu dos¥ Φasu, oplatφ sa pou₧i¥ najvyÜÜiu kvalitu -LAME je i tak dos¥ r²chly. Q zahα≥a hodnoty 0 a₧ 9 kde 0 znamenß najvyÜÜiu kvalitu. Pri VBR poznß LAME eÜte osobitn² parameter VBR kvality, oznaΦovan² V, ktor² zase rozhoduje len o prφpustnej hladine skreslenia pri zvolenej psychoakustickej krivke, Φi₧e udßva nßroΦnos¥ a ovplyv≥uje v prvom rade toky, ktorΘ si LAME bude vybera¥. Mß teda zßsadn² vplyv na ve╛kos¥ s·boru. VBR kvalita mß takisto stupne 0 a₧ 9, priΦom 9 znamenß najvΣΦÜie prφpustnΘ skreslenie, Φi₧e najni₧Üφ tok a opΣ¥ najni₧Üiu kvalitu (ako pri Q). V=0 udßva najvyÜÜiu kvalitu, kedy sa priemern² tok m⌠₧e vyÜplha¥ i na 256kbps a vyÜÜie, tvorcovia vÜak udßvaj·, ₧e VBR s priemerom 256kbps neznamenß kvalitnejÜφ zvuk ne₧ konÜtantn² tok (CBR) 256kbps. Svoju ·lohu tu zohrßva tzv.bit reservoir a z tohto d⌠vodu nemß zmysel dßva¥ V=0, nanajv²Ü V=1. Tvorcovia to myslia vß₧ne a nastavenie High Quality (-h) znamenß to istΘ ako V=2.

Pri VBR je samozrejme mo₧nΘ eÜte ohraniΦi¥ najni₧Üφ a najvyÜÜφ prφpustn² tok. V t²chto dvoch parametroch je vhodnΘ necha¥ LAME Φo najvΣΦÜiu vo╛nos¥, preto₧e tieto okrajovΘ hodnoty bud· volenΘ len vo chvφ╛ach, ke∩ to LAME bude pova₧ova¥ za skutoΦne potrebnΘ (aby splnil nßroky danΘ parametrom V). Ak chceme dosiahnu¥ menÜφ s·bor, radÜej treba ovplyv≥ova¥ VBR kvalitu a inΘ parametre, ne₧ ohraniΦenia prφpustn²ch tokov. Pri v²bere tokov treba dba¥ aj na to, aby stanovenß spodnß a hornß hranica VBR spolu so vzorkovacou frekvenciou nahrßvky spadali do prφpustn²ch hodn⌠t aspo≥ jednej verzie MPEG -v opaΦnom prφpade LAME vyhlßsi chybu a skonΦφ. PrφpustnΘ hodnoty s· uvedenΘ v tabulce:

 

Verze

MPEG-1 Layer 3

MPEG-2 Layer 3

MPEG-2.5 Layer 3

Frekvence (kHz)

32, 48, 44.1

16, 24, 22.05

8, 12, 11.025

Nitrßte (kbps)

32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320

8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160

RozÜφrenφm funkΦnosti VBR je ABR (average bitrate). K²m u VBR rozhoduj· Φisto parametre kvality VBR a ∩alÜie doplnkovΘ parametre, ak² bude v²sledn² tok, u ABR je mo₧nΘ napevno stanovi¥ ₧iadan² priemern² tok a LAME musφ poΦas k≤dovania odhadn·¥, ako mß s pridelenou kapacitou zaobchßdza¥ tak, aby sa pokia╛ mo₧no voÜiel do stanovenΘho priemeru. Dosiahnut² tok sa sφce mßlokedy presne zhoduje so zadan²m, ale vΣΦÜinou je aspo≥ blφzko. Ak nevyhovuje, pom⌠₧e zada¥ extrΘmnejÜφ tok. Naprφklad ak sme chceli 128kbps a v²sledok mß ABR 136kbps, tak zadßme tentoraz 120 kbps a uvidφme, ako si s t²m LAME poradφ. ABR je sk⌠r vo╛ba pre ve╛mi nφzke toky (okolo 100 kbps a ni₧Üie), kedy u₧ ani V hodnoty 9 nedßva dostatoΦne nφzky tok. Kompresia je pomalÜia ne₧ pri kvalitou riadenom VBR, preto₧e LAME sa musφ zaobera¥ aj odhadovanφm toku. Pri ve╛mi nφzkych tokoch (pod 80kbps) sa u₧ Φasto oplatφ necha¥ nahrßvku aj prevzorkova¥ na ni₧Üiu vzorkovaciu frekvenciu, napr.32 alebo 22.05kHz prφpadne previes¥ ju zo stereo na mono re₧im. Dosiahnutß (ne)kvalita bude Φasto lepÜia ne₧ pri vysokej vzorkovacej frekvencii. Zßle₧φ na konkrΘtnej nahrßvke a experimentßtori si to iste radi vysk·Üaj· :o)

╧alÜφm ve╛mi dobre implementovan²m parametrom je joint stereo. Tßto vo╛ba je Ütandardnß a znamenß, ₧e pri stereo nahrßvke bude LAME osobitne k≤dova¥ len tie Φasti spektra, ktorΘ s· pre jednotlivΘ kanßly odliÜnΘ. SpoloΦnΘ frekvencie sa k≤duj· len raz, Φo Üetrφ tok Φi₧e zlepÜuje kompresn² pomer. K²m u niektor²ch in²ch kodekov (Fraunhoffer a najmΣ Xing) bola implementßcia joint sterea Φasto ve╛mi zlß a na zvuku sa nepriaznivo odrß₧ala predovÜetk²m problΘmami v stereo separßcii, pri LAME rozdiel medzi joint stereom a skutoΦn²m stereom naozaj len ¥a₧ko rozoznßte. NavyÜe ak LAME pri k≤dovanφ zistφ, ₧e pou₧φvanie joint sterea je momentßlne nev²hodnΘ, automaticky k≤duje dan· nßroΦn· Φas¥ v normßlnom stereu, a ke∩ po₧iadavky opΣ¥ poklesn·, vrßti sa k ·spornejÜiemu joint stereu.

CRC k≤d sa do mp3 pridßva kv⌠li detekcii a ΦiastoΦnej oprave ch²b, vzniknut²ch napr.pri prenose Internetom. Takto upraven· mp3 by mal by¥ prehrßvacφ program schopn² prehra¥ korektne aj pri miernom poÜkodenφ, alebo aspo≥ poÜkodenie zisti¥ a ohlßsi¥. Ak ste pri niektorom inom kompresore sk·Üali pou₧i¥ CRC a skonΦili ste pri prehrßvanφ s podstatne horÜφm zvukom ne₧ bez CRC checking, tak pri LAME vßm to nehrozφ. LAME koneΦne sprßvne implementuje vytvßranie CRC k≤du a pri prehrßvanφ takto oÜetrenß mp3 nestrßca na kvalite, resp.iba do tej miery, o ko╛ko je znφ₧en² u₧itoΦn² tok kv⌠li pridanΘmu CRC k≤du.

LAME poznß nieko╛ko typov ATH kriviek. ATH znamenß Audible Treshold of Hearing a krivka znßzor≥uje, ak² citliv² je ╛udsk² sluch na skreslenia pri jednotliv²ch frekvancißch. Pod╛a tejto ätoleranΦnejô krivky sa enkodΘr riadi a pri zle navrhnutej krivke by mohol kompresor pova₧ova¥ za nepoΦute╛nΘ takΘ skreslenie, ktorΘ v skutoΦnosti poΦute╛nΘ je a mß nepriazniv² vplyv na posluchßΦovo vnφmanie nahrßvky. Z p⌠vodnej krivky oznaΦovanej ako ätyp 0ô boli po mnoh²ch posluchov²ch testoch odvodenΘ novΘ krivky typu 1 a 2 a r3mix.net pridal vlastn· odvoden· krivku typu 3 (dostupn· cez parameter -athtype3), ktorß je asi najnßroΦnejÜia a navyÜe zara∩uje filter pre frekvencie nad 19kHz. To je ∩alÜia vec, ktor· LAME dokß₧e -je tu mo₧nos¥ äodreza¥ô frekvencie od stanovenΘho prahu. Jeden interval stanovuje filter vynechßvaj·ci nφzke frekvencie po stanoven² prah, druh² zase vysokΘ od stanovenΘho pravu. Zßmer je jasn² -ak vieme, ₧e v nahrßvke sa danΘ frekvencie vyskytuj· len minimßlne, alebo nebude podstatn² rozdiel po ich odrezanφ, tak m⌠₧eme uÜetri¥ nieko╛ko kb priestoru, najmΣ u vyÜÜφch frekvenciφ, ktorΘ s· na kapacitu nßroΦnejÜie. Prakticky neÜkodnΘ by malo by¥ odrezanie 18.5 kHz a vyÜÜie, preto₧e len mßlo ╛udφ dokß₧e zachyti¥ takΘto vysokΘ zvuky. Ak patrφte medzi nßroΦn²ch, tak povedzme od 19kHz. Ani Φist² CD signßl nevyu₧φva rozsah a₧ do 22.05kHz a v aparat·rach sa be₧ne nachßdza dolnopriepustn² filter s prahom 20kHz. NepoΦute╛nΘ frekvencie sa neoplatφ k≤dova¥, lebo zaberaj· ve╛a miesta a m⌠₧u sp⌠sobi¥ zbytoΦnΘ vyplytvanie toku a ni₧Üiu v²sledn· kvalitu ne₧ by bola bez nich.

Zaujφmavou schopnos¥ou LAME je aj pou₧φvanie krßtkych blokov, ktorΘ umo₧≥uje lepÜie vyu₧φva¥ vysokΘ toky pri nßroΦn²ch pasß₧ach. Krßtke bloky vÜak nie s· v s·lade s p⌠vodnou ISO Üpecifikßciou a prehrßvaΦe to nemusia korektne prehrßva¥. Pri s·kromnom pou₧itφ a sprßvnom prehrßvaΦi to sφce nemusφ vadi¥, ale ak uva₧ujete o Üφrenφ svojich mp3 nahrßvok, tak radÜej vyu₧ite vo╛bu n·tenej kompatibility s ISO. S·bor bude trochu vΣΦÜφ, ale p⌠jde prehra¥ ka₧dΘmu. A o to predsa ide. Podobnou mo₧nos¥ou je nezßvislß ve╛kos¥ blokov pre ╛av² a prav² kanßl. Platφ pre ≥u to istΘ.

LAME v praxi

Ako to vyzerß s kvalitou zvuku? Aj pri zßkladnom nastavenφ je ve╛mi dobrß. Po zoznßmenφ sa s parametrami a urΦitom experimentovanφ som si naÜiel svoje ob╛·benΘ nastavenia a m⌠₧em pod╛a svojich subjektφvnych sk·senostφ poveda¥, ₧e LAME hrß lepÜie ako Fraunhoffer, priΦom Bladeenc s Xingom nechßva ∩aleko vzadu. Pod╛a niektor²ch nßzorov je dokonca lepÜφ ne₧ Ogg Vorbis. Ide o subjektφvne nßzory na kvalitu zvuku a ka₧d² Φitate╛ s nßroΦn²m sluchom a dostatoΦne kvalitn²m vybavenφm si asi svojho favorita vyberie sßm.

LAME sa ovlßda ako program pre prφkazov² riadok, Φi₧e pomocou parametrov. VΣΦÜina pou₧φvate╛ov LAME sa vÜak s prφkazov²m riadkom nikdy nestretne, preto₧e s enkodΘrom komunikuj· prostrednφctvom front-end aplikßciφ, kde si ₧iadanΘ parametre pohodlne änaklikaj·ô pomocou myÜi, zvolia cie╛ovΘ s·bory a stlaΦia äzßzraΦnΘô tlaΦidlo ENCODE. Front-end sa postarß o prevod stlaΦen²ch virtußlnych prepφnaΦov do podoby parametrov prφkazovΘho riadku a prenechß vÜetku prßcu enkodΘru. Front-end aplikßcie s· vynikaj·ci vynßlez, preto₧e mno₧stvo ╛udφ by nedokßzalo zada¥ svoje po₧iadavky pomocou prφkazovΘho riadku, a aj pre t²ch, ktorφ schopnφ s·, je to pomocou myÜi pohodlnejÜie. TienistΘ strßnky s· dve. Prvou je, ₧e front-end Φasto sprφstup≥uje iba nieko╛ko parametrov a z∩aleka nepokr²va skutoΦn² potencißl LAME. Jeden z mßla front-endov, ktor² bol skutoΦne d⌠sledn², je Razor, ktor² sa pre svoju komplexnos¥ stal mojφm najob╛·benejÜφm. Dokß₧e napr.zobrazova¥ histogram zast·penia tokov pri VBR, ktor² m⌠₧e pom⌠c¥ pri optimalizovanφ nastavenφ -ak sa to ätlaΦφô na niektor· stranu, je to znamenie, ₧e treba zmeni¥ kvalitu alebo posun·¥ hraniΦnΘ toky.

Utajovanie parametrov pred u₧φvate╛mi je vo front-endoch mo₧no motivovanΘ jednoduchos¥ou ovlßdania, ale myslφm, ₧e prφstup k nim by u₧φvate╛ mal ma¥ v₧dy, aspo≥ v nejakom od╛ahlom zapadnutom sub-menu. Druhou tienistou strßnkou je, ₧e nie ka₧d² si pri pou₧φvanφ uvedomφ, ₧e skutoΦnß sila nespoΦφva vo front-end aplikßcii, ale v motore, ktor²m je k≤dovacφ engine. U₧φvate╛ si be₧ne pamΣtß nßzov front-endu, ale o kompresore, ktor² vytvorφ z wav vyt·₧en· empΘtrojku, Φasto ani netuÜφ.

In², eÜte jednoduchÜφ sp⌠sob pou₧itia LAME, spoΦφva v jednoduchom drag-and-drop ·kone: äuchopi¥ô ₧elanΘ s·bory a äpusti¥ô ich do ikony programu lame.exe

Je takisto mo₧nΘ prepoji¥ LAME s CD utilitami, naprφklad so skvel²m Exact Audio Copy. Jednoducho nßjdete cestu na disku, kam ste LAME stiahli, zadßte kompresnΘ parametre a prevod CDDA do mp3 m⌠₧e zaΦa¥.

NiektorΘ programy vyu₧φvaj·ce LAME:
 

Linux: andromeda, cd2mp3, rip, avifile, Grip, jbm2, Krabber, Mp3Maker, dekagenc, ripperX, T.E.A.R., xtunes

Mac: DropMP3, RaviLAME

Windows: CDex, Lamedrop, LAMEX, m3w, outlame, RazorLame, WinLama, WinLAME

╧alej napr.: ALF, dBpowerAMP, EnLAMEr, EAC, LameBatch, LAMEr, RipTrax, SecondSpin, vbLamer, WORM MP3 Encoder, ZLURP

Na zßver

PreΦo ma LAME nato╛ko zaujal, ke∩ existuje viacero kodekov pre kompresiu mp3? Iste aj preto, ₧e je najlepÜφ spomedzi bezplatne dostupn²ch, dokonca v mnoh²ch oh╛adoch predΦφ aj profesionßlne komerΦnΘ kodeky, ako napr. Fraunhoffer. NajzaujφmavejÜia je vÜak jeho OpenSource podstata -LAME je ukß₧kou, ₧e nezßvislß OpenSource komunita je schopnß nielen dobre programova¥, ale omnoho viac -dokß₧e uskutoΦni¥ samostatn² vedeck² v²skum a na jeho ·speÜn²ch v²sledkoch postavi¥ mimoriadne vydaren² produkt. Prßve tßto okolnos¥ robφ z LAME omnoho viac ne₧ len mp3 enkodΘr. Hoci bud·cnos¥ formßtu mp3 je kv⌠li patentov²m problΘmom neistß, LAME ostane eÜte nadlho d⌠kazom ₧ivotaschopnosti OpenSource filozofie.

Odkazy:

www.lame.org a lame.sourceforge.net û domovskß strßnka
www.r3mix.net a www.mp3-converter.com - ╧alÜie informßcie o mp3 a linky
home.wanadoo.nl/~w.speek û posluhov² test pre nßroΦn² sluch