Sakaru Pasaule - Žurnāls par
modernām komunikācijām

  
  


Atpakaļ Jaunais numurs Arhīvs Par mums Meklēšana

Audiosignāla ciparu kodēšana un kompresija V

   

Turpinot aizsākto tematu, analizējam mūsdienu platjoslas audio kodēšanu sistēmās izmantotās tehnoloģijas. Platjoslas audiokodera ieejā tiek pievadīta nekompresēta PCM bitu plūsma (mono variantam 768 kbit/s), kas jau izgājusi analogi digitālo pārveidošanas un kvantēšanas procesu. Kāpēc šo ciparu signālu secību tūlīt nevar pārraidīt pa sakaru kanālu uztvērējam?
   

Pirmkārt, t.s. avota kodētais PCM signāls nav sagatavots pārraides kanālam, kas var radīt traucējumus un kļūdas. To var pārraidīt netālu (50Ö100 m), piemēram, studijas robežās. Lielākos attālumos PCM signāla pārraidei būtu nepieciešams veidot dārgas un sarežģītas aparatūras infrastruktūru. Otrkārt, PCM stereovariantam jau nepieciešama 768 x 2 = 1536 kbit/s plūsma, kas, tāpat kā CD stereo tīro audiobitu plūsma 1411kbit/s, skaņas pārraidēm būtu pārāk strauja. Šādu (1,4Ö1,6 Mbit/s) bitu plūsmu pārraide aizņemtu frekvenču joslu aptuveni 700 kHz platumā. Kāpēc aptuveni? Tāpēc, ka nav precīzas formulas, kas saista bitu plūsmas ātrumu ar tai nepieciešamo frekvenču joslu. Pievienojot vēl papildu bitus, kas nepieciešami pārraidei pa sakaru kanālu, sinhronizācijai un kļūdu labošanai, aizņemtās frekvenču joslas platums sasniegtu apmēram 1,5 MHz. Salīdzinājumam — tas ir vairāk nekā viss AM vidējo viļņu diapazons (0,5Ö1,5 MHz). Šāda elektromagnētiskā spektra izšķērdība mūsdienās nebūtu attaisnojama. Tas nebūtu pieņemami: ne digitālajā radiofonijā; ne multimedijos, kur pieaug tendence datu, video, runas, audio, kā arī audiovizuālo objektu signālus pārraidīt ar lēnākām datu plūsmām; ne arī digitālajā TV, kur augstas izšķirtspējas TV attēla skaņas pavadījumu paredzēts pārraidīt ne tikai stereovariantā (divi skaņas kanāli), bet atsevišķai skaņas programmai atvēlēt vairāk nekā piecus atsevišķus kanālus (piemēram, Dolby Surround Sound) telpiskās skaņas pārraides vajadzībām.
   

Ar zināmu frekvenču joslas paplašināšanos (salīdzinājumā ar analogā signāla apstrādes procesā nepieciešamo) jāsamierinās. CD kvalitāte un ciparu pārraide prasa upurus! Vienīgā izeja — izmantot datu saspiešanu, lietojot lēnākas bitu plūsmas, t. i., šaurākas frekvenču joslas. Platjoslas audio gadījumā sarežģījumus rada cilvēka auss pārāk lielā jutība, kas spēj konstatēt minimālas neatbilstības salīdzinājumā ar oriģinālo skaņu jau tad, ja kompresija ir apmēram 10:1. Tāpēc ITU iesaka minimālus bitu plūsmu ātrumus: 128 (mono) kbit/s; 256 (stereo) kbit/s — ja signāla apstrādes traktā iespējama pakāpe, kas izraisa datu kompresiju; 192 (mono) kbit/s; 384 (stereo) kbit/s — pirmajai pakāpei, kas kompresē datus sarežģītā audiosignālu apstrādes traktā. Iepriekšējā rakstā (SP 2000, 1(17), 28. lpp.) noskaidrojām platjoslas audio ciparu signālu saspiešanas principiālās iespējas, kas galvenokārt balstās uz cilvēka dzirdes aparāta īpatnībām. Tātad platjoslas audiokompresēšanas koderam jāveic divi sarežģīti un savstarpēji pretrunīgi uzdevumi: jāsaspiež audiodati, samazinot PCM bitu plūsmas ātrumu, bet tā, lai uztvērējā (dekoderā) atpakaļatgūtais un pēc digitāli analogās pārveidošanas rekonstruētais skaņas atskaņojums būtu subjektīvi gandrīz identisks vai, kas tomēr sliktāk, ļoti līdzīgs un tuvs oriģinālajai skaņai. Dažādos risinājumos rezultāti var būt nedaudz atšķirīgi, jo kodēšanas sistēmu projektētājiemjāsaskaņo sistēmas komplicētība un izmaksas ar atskaņojuma kvalitāti. Izmaksas un ekonomiski apsvērumi noteic, ka mērķtiecīgi izmantot sistēmu, kurā dekoders būtu ievērojami vienkāršāks par koderu. Šī iemesla dēļ cilvēka dzirdes aparāta psihoakustisko modeli iebūvē tikai koderā. Pirms pāriet pie platjoslas audio kodēšanas galvenajām tehnoloģijām, jāatzīmē, ka dažreiz digitālajā audiotehnikā izmanto nevis platjoslas, bet vidusjoslas audio jeb vidējas atskaņojuma kvalitātes audio ar šādiem raksturlielumiem:
   

atskaņojamo frekvenču josla 20Ö11000 Hz; diskretizācijas frekvence 24 kHz; PCM biti uz nolasi — 16; PCM bitu plūsmas ātrums 384 kbit/s, Mūsdienu platjoslas audio kodēšanas sistēmās lietotie algoritmi izmanto šādus paņēmienus un metodes: 1. cilvēka dzirdes aparāta psihoakustisko modeli; 2. APCM — adaptīvo impulsu diferences koda modulāciju; 3. ATC (Adaptive Transform Coding) — adaptīvo transformācijas kodēšanu; 4. SBC (Subband Coding) — apakšjoslu kodēšanu; 5. WS (Window Switching) — logu pārslēgšanu; 6. DBA (Dynamic Bit Allocation) — dinamisko bitu piešķiršanu jeb izvietošanu. Pirmo paņēmienu aplūkojām SP 1999, 4(16), 32. lpp. un 2000, 1(17), 28. lpp., otro — arī iepriekš norādītajā rakstā, aplūkojot platjoslas runas kodēšanu, tāpēc sāksim ar trešo metodi.

ATC — adaptīvā transformācijas kodēšana

Šo matemātisko aparātu mūsdienās plaši izmanto ne tikai ciparu videosignālu kodēšanā (sk. SP 1998, 4(12), 18. lpp.), bet arī audiotehnikā. ATC koderos ieejas PCM impulsu laika secību (nolases kopu) lineāri pārveido ar diskrētās transformācijas palīdzību gandrīz nekorelētu frekvenču apgabala transformācijas koeficientu kopā. Šie koeficienti faktiskiir atbilstošās skaņas frekvenču spektra līnijas jeb Furjē komponentes. Tālāk šie koeficienti tiek kvantēti un tos parasti kodē, izmantojot binārā peldošā punkta apzīmējumu sistēmu. Lietojot pakāpes rādītājus (exponent or scale factor) un mantisas, izdodas ērti reģistrēt ļoti plašu signālu dinamisko diapazonu, kaut arī transformācijas koeficientiem vērtības nepārsniedz vieninieku. Svarīgi arī tas, ka signālu apstrāde frekvenču apgabalā dod iespēju katras apakšjoslas (sk. tālāk) dominējošam signālam vienkāršāk atrast tam atbilstošos maskēšanas efektus. Pēc kvantēšanas transformācijas koeficientus pārraida pa kanālu uz uztvērēju (dekoderu). Dekoderā ar inversu transformāciju signāli tiek kartēti atpakaļ uz laika apgabalu. Transformācijas procesā izmanto diskrētās Furjē transformācijas paveidus, atsevišķi diskrēto sin vai cos transformāciju (DST vai DCT). Visplašāk izmanto DCT matemātisko aparātu, bet DST izmanto DOLBY AC-2 koderā. Lai koders ātrāk izskaitļotu maskēšanas efektus, tajā iekļauj arī ātrās Furjētransformācijas mezglu (FFT — FastFourier Transform). Ja koderā iekļauts šāds mezgls (pakāpe), DCT metodi dēvē par modificētu (MDCT).

SBC — apakšjoslu kodēšana

Visi platjoslas audiokodēšanas algoritmi apstrādā PCM ciparu signālus, sadalot kopējo cilvēkaausij dzirdamo frekvenču joslu apakšjoslās. Piemēram, Sony minidiskam ATRAC algoritms paredz trīs apakšjoslas: 0Ö5,5 kHz, 5,5Ö11,0 kHz un 11,0Ö22,0 kHz. Apakšjoslu skaits var būt dažāds: no divām (G.722 koders) līdz 1024 (APT-Q koders). Koderu projektētāji nosaka sakarību starp apakšjoslu daudzumu, izmantoto filtru parametriem un apakšjoslu radīto uzlabojumu. Uzlabojums, ko dod PCM signāla kodēšana apakšjoslās, salīdzinot ar kodēšanu vienā nepārtrauktā joslā, ar nemainīgiem ieejas un izejas bitu plūsmas ātrumiem, parādīts 1. zīm. Uzlabojums tiek definēts kā ģenerēto kvantēšanas kļūdu attiecība abos gadījumos [1]. Līdz aptuveni 10 apakšjoslām visiem skaņas avotiem uzlabojums aug strauji. Apakšjoslu daudzumu vēl palielinot, uzlabojums jūtami pieaug tikai dažiem no tiem.

Decimācija un interpolācija

Kā apakšjoslas iegūst? Sadali apakšjoslās panāk, PCM signālus laižot cauri joslu filtriem — analīzes filtrkopām. Šis paņēmiens ļauj apakšjoslās realizēt t. s. decimācijas procesu, samazinot diskretizācijas frekvenci (down sampling). Tas nozīmē, ka, piemēram, 0Ö1 kHz apakšjoslā var lietot tikai 2 kHz nolases frekvenci. Dekoderā atbilstošās sintēzes filtrkopās izmantojot t. s. interpolācijas procesu, diskretizācijas frekvenci savukārt palielina (up sampling), līdztā atbilst signāla avota nolases frekvencei. Rezultātā parādās t. s. nulles nolasījumi. Šī — multirate signal processing — metode kopā ar ATC nodrošina efektīvu un racionālu datu saspiešanu. Filtriem jābūt kvalitatīviem, ar mazu pārklāšanos (piemēram, kvadratūras spoguļfiltri vai polifāzes filtri), lai signāla apstrāde neienestu specifiskus kropļojumus (aliasing distortion).

WS — logu pārslēgšana

Vislabākajai metodei var būt savi trūkumi. Tiesa, ATC metodei trūkumu nav daudz un tos var sekmīgi novērst. Viena no nepatīkamākajām parādībām ir t. s. priekšatbalss rašanās, ko minēju jau iepriekšējā rakstā. Tā rodas, ja klusumā pēkšņi atskan spalga skaņa. Dekoderā inversā transformācija kvantēšanas troksni izplata visā signāla apstrādes blokā (kadrā, freimā). Vācu inženieris B. Edlers ieteica šos trokšņus samazināt, izmantojot īsākus apstrādes blokus [2]. Diemžēl jo īsāki bloki, jo sliktāka frekvenču izšķiršana un nevajadzīgo datu atsijāšana. Īsiem blokiem vajag arī vairāk bitu, lai pārraidītu blakus informāc iju (side information). Aplūkojot GSM koderu (SP 1999, 4(16), 32. lpp.), šādu informāciju saucām par parametriem. Tad, lūk, blakus informācija jeb parametri papildbitu veidā koderam (dekoderam) ir nepieciešami, apstrādājot audiobitus. Pie šādiem papildbitiem pieder: apakšjoslu kodu vārdi, joslu filtru mēroga faktori (scale factors), dinamiskā bitu piešķiršanas informācija (sk. tālāk). Problēmas risinājumu ieteica B. Edlers — pārslēgt, izmainīt bloku ilgumu (tātad atbilstoši nolašu skaitu blokā) pēc vajadzības! Tas arī ir logu pārslēgšanas paņēmiens. Lai ierobežotu priekšatbalss radītos kvantēšanas trokšņus, izmanto īsus blokus, turpretī stacionāra skaņas spektra gadījumā pārslēdzas atpakaļ uz gariem signālu apstrādes blokiem. MPEG–1 III slānī šim procesam izmanto t. s. starta logu un stoplogu. Koderos, izmantojot šo metodi (2. zīm.), nolašu daudzums blokā tiek mainīts caurmērā no 64 nolasēm īsā blokā līdz 1024 nolasēm garā blokā.

DBA — dinamiskā bitu piešķiršana

Platjoslas audiokodēšanu, kas izmantoATC/SBC metodes, var tālāk uzlabot, lietojot R. Zelinska un P. Nolla izmainīto algoritmu, kas paredz dinamisku bitu piešķiršanu ATC transformācijas koeficientiem [4]. Algoritma būtība: apakšjoslās kvantētiem transformācijas koeficientiem paredzēto bitu skaitu dinamiski pielāgo (pēc vajadzības izmainot), izejot no momentānā, īstermiņa signālu frekvenču spektra, kas parādījies signāla apstrādes bloka laikā (apmēram 10Ö20 ms). Koderam it kā paveras pieeja pilnam ieejas signālam. Tas spēj optimizēt bitu pi ešķiršanu, izmantojot cilvēka dzirdes aparāta psihoakustisko modeli, atsijājot nevajadzīgus datus un maskējot kvantēšanas trokšņus. (Turpmāk vēl)
   

Arnolds VĪTOLS
 
Design and programming by Anton Alexandrov - 2001