Ahozko kodegailu-deskodegailu

Ahozko kodegailu-deskodegailu edo ahozko kodek deritzona, ahotsa kodetzeko tresna bat da. Ahotsa duten audio digitaleko seinaleen datuak konprimitzeko erabiltzen da. Ahots-kodifikazioak ahots-parametro espezifikoen zenbatespena erabiltzen du ahots-seinalea modelatzeko, audio-seinalea prozesatzeko teknikak erabiliz. Datu generikoen konpresio-algoritmoekin konbinatuta, bit-fluxu (bit-puskazko arkitektura) trinko baten ondoriozko parametro modelatuak irudikatzeko balio du. 

Ahotsa kodetzeko aplikazio batzuk telefonia mugikorra eta IP gaineko ahotsa (VoIP) dira. Telefonia mugikorrean gehien erabiltzen den ahots-kodetze teknika prediktibo lineala (LPC) da; aldiz, VoIP aplikazioetan gehien erabiltzen dena LPC teknikak eta kosinu aldatuaren eraldaketa (MDCT) dira.

Hau guztia hobeto ulertzeko eta nola lan egiten duten jakiteko, seinale motak zeintzuk diren eta soinu-kalitatearen zenbait ezaugarri ulertu behar dira.

Seinale motak: analogiko vs digital

Seinale analogikoa 

Mundu analogiko batean bizi gara. Zerbait analogiko egiten duena da balio biren arteko balio kopurua amaigabea izatea. Adibidez, soinua erabiliz, bolumena atribututzat hartuta: soinu batek bolumen 1 edota 10 bolumen izan ditzake, eta bi balio horien artean, balio kopuru amaigabea izan dezake.

Hurrengo grafikoan horren froga ikus daiteke: 

Ikusten denez ΔT tartean, nahiz eta ΔT tarte infinitesimal txikia izan, bolumena kopuru infinitesimal batean handituko litzateke.

Seinale digitala 

Fenomeno digitalak aztertzen direnean, bi balioren arteko balio kopuru amaigaberik ez duen zerbaiti egiten zaio erreferentzia; hau da, zenbaki diskretu eta mugatu bati. Aurreko adibide bera erabiliz, soinu baten bolumenean denboran zehar izandako aldaketaren irudikapen digitala honela ikusiko da:

Ikusten denez, kurba ez da leuna; balio desberdinak ditu denborak aurrera egin ahala, eta ezin du izan bitarteko baliorik. Balio posibleen kopuru finko bat baino ez dagoenez, tartea (ΔT) behar bezain txikia bihurtzen bada, bolumenean ez da aldaketarik izango ΔT denboran.

Soinu-kalitatearen ezaugarriak 

Zenbat eta pauso gehiago hartu soinu irudikapen digitalizatuan, orduan eta zehaztasun handiagoz irudikatuko da jatorrizko soinua. Hau eginez, handiagoa izango da erreprodukzioaren kalitatea. "Urrats" kopurua, batez ere, bi faktoreren araberakoa da: laginketa-maiztasuna eta bit-sakonera.

Laginketa-maiztasuna 

Laginketa-maiztasuna soinu bat lagintzeko edo "entzuteko" eta kodifikatzeko maiztasunari dagokio. Grabatzen den lagin bakoitza balio digital espezifiko batek adierazten du. Eskuineko irudiak erakusten du laginketak nola funtzionatzen duen. 

Uhin gorriaren forma soinua da eta puntu urdinek laginak adierazten dituzte. X ardatza denbora da eta Y ardatzak lagin bakoitzari 0tik 15era esleitutako balioak erakusten ditu. Lagin bakoitzerako balio digitala lortzean, bat eta zero gisa adierazteko behar den guztia kode bitarrera bihurtzea da.

Laginketa-maiztasuna handitzen bada (puntu urdinen kantitatea), informazio gehiago kodetuko du eta, ondorioz, erreproduzitzen denean irudikapen zehatzagoa izango du eta soinu-kalitate hobea ere bai. Laginketa-tasa hertz unitatez neurtzen da, maiztasun-unitate bat baita. Adibidez, 1 kHz-eko laginketa-maiztasun batek esan nahi du soinua 1000 aldiz mugitzen dela segundoero.

Soinua digitalizatzean, digitalizatu nahi den soinuaren maiztasun altuenaren bikoitza den laginketa-maiztasuna erabili behar dela ikusi zen, soinua doitasunez erreproduzitzeko. Honi Nyquisten teorema deritzo. Giza ahotsak 4000 Hz-eko maiztasunak izan ohi ditu; beraz, 8000 Hz-eko laginketa-maiztasuna nahikoa da laginketa kalitate onargarriz egiteko. Horregatik, askotan, 8 kHz-eko laginketa-maiztasuna aurkitzen da ahotserako erabiltzen diren kodeketan.

Laginketa-maiztasun nahiko altua izanez gero, erreproduzitutako soinua hain zehatza izan daiteke, ezen giza belarriak ezin baitu bereizi haren eta jatorrizkoaren arteko aldea. CD kalitatea duen musika da digitalizazio horren adibide. Giza entzumenak, normalean, 22 kHz-erainoko frekuentziak dituzten soinuak entzun ditzake. Horregatik, CD kalitatedun musikak 44 kHz-eko laginketa-maiztasunak gainditzen ditu, maiztasun entzungarri altuenaren bikoitza.

Bit-sakonera 

Bit-sakontasuna azaltzeko hurrengo grafikoa aztertuko da:

Puntu urdinak ez datoz bat zehazki uhin gorriaren formarekin. Lagin bakoitzak 0tik 15era bitarteko balio osoak baino ezin ditu izan. Grafikoaren zenbait eremutan, puntuak 12,7an edo 14,6an jarri behar dira. Halabaina, hori ezinezkoa denez, puntuak gertuen dagoen zenbaki osoan jartzen dira.

Lagin bakoitzaren zehaztasuna handitzeko, hura irudikatzeko 16 balio bakarrik izan beharrean, 32, 64,128 edo gehiago izan daitezke. Zenbat eta handiagoa izan lagineko balioen kopurua, orduan eta zehatzagoa izango da soinuaren irudikapena. Ezaugarri horri bit-sakonera deritzo. Grafiko hauek erakusten dute bit-sakontasun handiagoak irudikapen digital zehatzagoa sor dezakeela:

4 biteko bit-sakontasun batek, lagin bakoitzerako, 2^4 = 16 balio emango ditu, eta 16 biteko bit-sakontasun batek, berriz, lagineko 2^16 = 65536 balio, banako-lagin bakoitzaren hurbilketaren zehaztasuna izugarri handituz.

Kuantifikazio digitala 

Kuantifikazio digitaleko prozesua seinale analogiko jakin baten anplitude-balioak hartzen diren laginketa-etaparen ondorengoa da. Prozesu honen helburua balio horiek bitekin kuantifikatzea da, mailak esleituz. 

Etapa honetan laginari balio bat ematen zaio, baina ez da digitala. Puntu honetan erabakitzen da laginaren balioa, hurbilketaren bidez, aurrez finkatutako mailen tartearen barruan dagoen eta kodifikazioan erabilitako kodearen arabera aurrez ezarritako balio bat esleitzen zaio.

Kuantifikazio motak 
Hainbat kuantifikazio teknika daude:

Kuantifikazio uniformea 
Zenbatzaile uniformeetan (kuantifikazio lineala), berreraikitze-mailen arteko distantzia beti bera da. Ez dute inolako usterik egiten kuantifikatu beharreko seinalearen izaerari buruz, eta horregatik ez dituzte emaitza onenak eskaintzen. Hala ere, abantailatzat dute errazenak direla inplementatzerako orduan.

Kuantifikazio ez-uniformea 
Kuantifikazio ez-uniformea (kuantifikazio ez-lineala), frekuentzia-banda jakin batean sentikorragoak izango diren zenbait seinale ez-homogeneoak prozesatzen direnean aplikatzen da.

Kasu honetan, seinalearen entropia bera aztertu eta kuantifikazio-mailak modu ez-uniformean esleitu behar dira (bit rate aldakor bat erabiliz), zabalera azkarrago aldatzen den hertzei maila gehiago esleitzeko (informazio-dentsitate handiagoa dute).

Digitalizazioan zehar kuantifikazio ez-uniforme bat erabili denean, zirkuitu ez-lineal bera erabili behar da deskodetzean, seinalea behar bezala berregin ahal izateko.

Kuantifikazio logaritmikoa 
Kuantifikazio logaritmikoa (kuantifikazio eskalarra) kuantifikazio digital mota bat da. Bertan datu-tasa aldagaitz bat erabiltzen da, baina kuantifikazio uniformetik bereizten da kuantifikazioaren aurreko urrats gisa seinalea konpresore logaritmiko batetik pasarazten delako.

Seinalea konpresore logaritmiko batetik pasarazten da kuantifikazioa egin aurretik. Ondoriozko seinalean tentsioaren anplitudeak aldaketa hain maldatsuak ez dituenez, kuantifikazio-zarata handia sortzeko aukerak behera egiten du. Seinale digitala erreproduzitu aurretik, hedagailu batetik igaro beharko du. Kuantifikazio honetan kuantifikazio-urrats txikiak izango ditugu zabaltasun-balio txikietarako eta kuantifikazio-urrats handiak anplitude-balio handietarako. Horrek bereizmen handiagoa ematen du seinale ahuletan, bit rate berdineko kuantifikazio uniformearekin alderatuta, baina bereizmen txikiagoa zabalera handiko seinaleetan. Sistemaren irteeran, seinale digitalak hedagailu batetik igaro behar du, eta horrek konpresore logaritmikoaren alderantzizko funtzioa betetzen du. Konpresio eta espantsio prozedura bateratuari companding esaten zaio ingelesez.

Mu Lege (µ-law) eta A Lege (A-law) algoritmoek kuantifikatzaile logaritmikoen adibide gisa balio dute.

Kuantifikazio bektoriala 
Kuantifikazio bektoriala kuantifikazio digital mota bat da. Prozesua berdina izan daiteke, kuantifikazio uniformea (CBRa (ingelesetik dator CBR: constant bit rate, erabiltzen du) edo kuantifikazio ez-uniformea (VBRa, variable bit rate erabiltzen du) erabiliz. Berezitasuna da, banaka atxikitako laginak kuantifikatu beharrean, lagin-blokeen arabera kuantifikatzen direla. Horrela, kuantifikazio eraginkorragoa lortzen da.

Lagin-bloke bakoitza bektore bat balitz bezala tratatuko da; hortik dator kuantifikazio mota honen izena.

Kuantifikazio bektoriala kuantifikazio-modalitate guztietatik eraginkorrena da kuantifikazio-erroreari dagokionez. Hala ere, eragozpen bat da kodetze hori lortzeko prozesu informatikoak oso konplexuak direla.

Ahots-kodifikatzaileak 
Giza ahotsaren gainerako alderdi guztien antzeko irudikapen digitala egin daiteke; hala nola, tonuarena (neurtzeko hertz unitatea, ziklo/segundo, erabiltzen da) eta tinbrearena (altuera eta intentsitate bereko bi soinu desberdintzea ahalbidetzen duen ezaugarria da).

Kategoriak 
Ahots-kodifikatzaileak bi motatakoak dira:

 Uhin-formako kodifikatzaileak
 Denbora-domeinua: PCM, ADPCM
 Maiztasun-domeinua: azpibandaren kodifikazioa, ATRAC
 Vocoder-ak
 Aurresate linealeko kodeketa (LPC)
 Hizketaren sintesia

Zenbait kodifikatzaile

G.711 
G.711 kodifikatzailea ITU-T definituriko estandar bat da audioaren kodifikaziorako. Estandar hau telefonian gehien erabiltzen da. G.711 estandarrak giza ahotsa digitalki kodetzen du, 8 biteko bereizmena duten hitzak erabiltzen ditu eta 8000 lagin segundoko hartzen ditu eta 64 Kbit/s-ko datu-fluxua du.

G.729 
G.729 giza ahotsa konprimitzeko algoritmo bat da. Giza ahotsa 10 milisegundoko zatietan konprimatzen du.

G.729 VoIP-ren gaineko ahots-aplikazioetan erabiltzen da gehienbat, banda zabalean eskakizun txikiak dituelako. G.729 estandarrak 8 kbit/s-ko bit-tasari eragiten dio, baina luzapenak daude, eta horiek ere 6.4 kbit/s-ko eta 11.8 kbit/s-ko tasak ematen dituzte elkarrizketan kalitate txarragoa edo hobea izateko, hurrenez hurren.

Erreferentziak

Ikus, gainera 
 Sistema digital
 Uhin
 G.711
 G.729

Kanpo estekak 
 ITU-T Recommendation G.711 - (STD.ITU-T RECMN G.711-ENGL 1989)
 ITU-T G.711 page
 ITU-T G.191 software tools for speech and audio coding, including G.711 C code
 Code Project C# implementation of G.711 with source code
 https://web.archive.org/web/20061021181803/http://ceres.ugr.es/~alumnos/luis/mycuan.htm Muestreo y cuantificación
 https://web.archive.org/web/20060716101322/http://prof.usb.ve/tperez/docencia/2422/contenido/Cuantifico/CUANTIFICO.htm

Telekomunikazioak
Audio kodekak
Audio digitala