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 VI

   

Tagad, kad esam iepazinušies ar platjoslas audiokodēšanas galvenajām metodēm vispārīgā veidā, aplūkosim praktiskās kodēšanas sistēmas, sākot ar izplatītāko standartu MPEG-1, kura pamatā liktas MUSICAM [1] un ASPEC (Adaptive Spectral Perceptual Entropy Coding) [2] kodēšanas algoritmu labākās īpašības.
   

Astoņdesmito gadu beigās izstrādātais MPEG-1 ISO/IEC 11172 (Part 3, Audio) platjoslas audiokodēšanas standarts [3] pasaulē guvis plašu atzinību. To izmanto sadzīves elektronikas, profesionālās audio ciparu apstrādes, telekomunikāciju, radiofonisko un TV pārraižu un multimediju jomā, bet galvenokārt tomēr ciparu audiosignālu izplatīšanai zemes un satelītu bāzētās pārraides un translāciju sistēmās. MPEG-1 platjoslas audiokodēšanas standarts paredz I, II un III slāņa hierarhiju – augstākie slāņi ietver zemāko slāņu programmatūru un aparatūru blokus (mezglus). Slāņi jeb MPEG-1 standarta paveidi ir ar augošu: · sarežģītības pakāpi, · datu kompresiju, · aizturi un · taupību bitu plūsmās.
   

Tāpēc, ja nepieciešams, var projektēt pilno MPEG-1 X audiodekoderu, kas dekodē bitu plūsmas visiem trim standarta slāņiem (X = 1, 2 vai 3). MPEG-1 standarts nosaka tikai kodera radītās bitu plūsmas un dekoderu. Pats koders netiek standartizēts, atstājot vaļu projektētāju radošajai izdomai un pieļaujot tā pakāpenisku uzlabošanu līdz ar jaunākajiem sasniegumiem digitālo signālu apstrādes tehnoloģijā un cilvēka dzirdes aparāta (CDzA) fizioloģisko procesu izpētē.
   

Jau 1998. gadā kompānijas Hughes DirecTV satelītu un Astra satelītu ADR (Astra Digital Radio) sistēmās sāka izmantot MPEG-1 standarta II slāni, bet Eutelsat sistēma tika bāzēta uz III slāņa kodēšanas principiem. Pēdējā laikā MPEG-1 III slānis kļuvis populārs skaņu ierakstu pārraidē internetā, iegūstot saīsinātu nosaukumu MP3 (sk. arī SP 2000/1 (17), 104. lpp.). Noteiktos (skat. tabulu) bitu plūsmu ātrumos standarts nodrošina CD kvalitātei atbilstošu subjektīvo audioatskaņojuma kvalitāti (t. s. transparento skaņu) visos trijos slāņos. MPEG-1 paredz četrus sistēmas darbības veidus: · mono, · stereo, · duālo ar pilnīgi atsevišķiem pārraides kanāliem (piemēram, divvalodu programmām) un · t. s. apvienoto (joint) stereo.

MPEG-1 II slānis (MUSICAM)

Ar MPEG-1 kodēšanas sistēmu visērtāk iepazīties, par pamatu ņemot II, t. i. vidējo slāni, atgādinot un uzsverot galveno raksturlielumu un izmantoto principu līdzības un atšķirības ar abiem pārējiem slāņiem (skat. tabulu). MPEG-1 II slāņa blokshēma parādīta 1. zīm. Ievērojot tabulas datus, tā izmantojama arī I slānim.
   

PCM ieejas signālu (1152 nolases, kas 48 kHz diskretizācijas frekvencē atbilst 24 ms signāla laika apstrādes blokam) ar polifāzes analīzes filtrkopu sadala 32 apakšjoslās. Pēc Naikvista (Koteļņikova) kritērija diskretizācijas frekvencei ir jābūt vismaz divas reizes augstākai par augstāko atskaņojamo frekvenci. Tātad nepārtrauktās atskaņojamās frekvenču joslas augšējā teorētiskā robeža ir 24 000 Hz, bet katra apakšjosla ir 24000/32 = 750 Hz plata. Svarīgi atzīmēt, ka katra filtra izejā signāls ir izgājis t. s. decimēšanas (down sampling) procesu, t. i. izdarītas nolases ar divreiz augstāku diskretizācijas frekvenci par atbilstošās apakšjoslas augšējo robežu. Blokshēmas apakšējā zarā PCM ieejas signāls tiek pievadīts 1024 punktu FFT (Fast Fourier Transform) mezglam, kas pārvērš ieejas signālu laika secību transformācijas koeficientu secībā, kas nu jau izvietota frekvenču apgabalā.

CDzA modelis

Viens no svarīgākiem blokshēmas mezgliem ir CDzA psihoakustiskais modelis, kas rada gan principiālās akustisko datu kompresijas iespējas, gan arī kontrolē un pārvalda adaptīvo bitu piešķiršanas algoritmu. Šajā mezglā tiek izskaitļotas atšķirības starp nozīmīgām, vajadzīgām un nebūtiskām, nomaskētām skaņas frekvenču komponentēm, kuras var atmest. Tāpat tiek noteikti kvantēšanas trokšņi, kas mezglā jau ienākuši kopā ar pārveidoto PCM signālu. Ar CDzA modeļa iekšējo, aptuveni iespējamo saturu iepazināmies SP 2000/1 (17), 29. lpp. 3. zīm. Modelis pēc izpildījuma var būt vienkāršāks vai sarežģītāks, tikai tam jābūt pilnībā savietojamam ar atbilstošiem slāņa dekoderiem.

CDzA 1. un 2. modelis

MPEG-1 I un II slānim paredzēts tā sauktais CDzA modelis Nr. 1. Tajā katram spēcīgam signālam - maskētājam – izskaitļo individuālo maskēšanas slieksni, ņemot vērā no FFT mezgla pienākušo informāciju par tā frekvenci, amplitūdu un tonalitāti, kā arī dažādu lielumu sliekšņu vērtības (sk. tālāk iedaļu Audiobiti). CDzA modelis Nr. 2 paredzēts III slānim, bet to sekmīgi var izmantot arī I un II slānī. Tas ir sarežģītāks, bet darbības efektivitāte ir lielāka: skaņas tonalitāte tiek prognozēta ar lielāku varbūtību, maskēšanas sliekšņi tiek izskaitļoti atbilstošā cilvēka auss gliemežnīcas pamatmembrānas maskēšanas kritiskajā joslā (SP 1999/4 (16), 32. lpp.), potenciāli iespējamo priekšatbalsi novērš logu pārslēgšanas tehnoloģija (SP 2000/2 (18), 33. lpp.). Abos modeļos tiek noteikts arī relatīvais trokšņu atskaites līmenis – tik tikko dzirdamais (just noticable) kodēšanas troksnis katrai apakšjoslai.

Audiobiti

CDzA modeļa mezgla sadarbību (skat. 1. zīm.) ar pārējiem kodera mezgliem var rezumēt vairākos etapos. I etaps Koders iegūst informāciju par pārraidāmā audiosignāla faktisko, ikreizējo skaņas spiediena līmeni ikvienā no 750 Hz platuma 32 apakšjoslām 24 ms signālu apstrādes laika blokā. II etaps Izmantojot šo skaņas spiedienu sadalījumu, absolūto dzirdamības slieksni, kā arī signāla - maskēšanas trokšņu - kodēšanas trokšņu attiecības, koders izskaitļo globālo maskēšanas slieksni visās 32 apakšjoslās. III etaps Katrā apakšjoslā, identificējot spēcīgāko signālu - maskētāju – un zinot globālo maskēšanas slieksni, kā diference tiek izskaitļota signāla - minimālā maskēšanas sliekšņa (SMR = Signal-to-Mask) attiecība (sk. SP 1999/4 (16), 32. lpp.). Audiosignāla struktūra bieži ir tāda, ka signāla amplitūdas līmenis augšējās apakšjoslās, jau sākot ar 20.-25. apakšjoslu, ir zemāks (par 10÷20 dB) vai ievērojami zemāks (30÷50 dB) par globālo maskēšanas līmeni (2. zīm.). Tādā gadījumā informācija par šo apakšjoslu signālu skaņas spiediena līmeni uz dekoderu (uztvērēju) netiek pārraidīta. IV etaps Tālāk notiek dinamiskā bitu piešķiršanas un izvietošanas procedūra kvantēšanas mezgliem. Algoritms izvēlas vienu no 15 kvantētājmezgliem, ievērojot bitu plūsmas ātrumu un kvantēšanas trokšņu maskēšanas noteikumus. Ja kodējamais audiosignāls (PCM impulsu veidā) ir tik sarežģīts, ka pietrūkst bitu, lai to atbilstoši kodētu, kvantētājmezgli tiek pielāgoti mazākam bitu patēriņam ar cerīgu mērķi minimāli degradēt (sabojāt) reproducējamo audiosignālu dekodera izejā. Bitu izvietošanas procedūrā koders uzmana, lai kvantēšanas trokšņi būtu ievērojami zemāki par globālā maskēšanas sliekšņa līmeni. Tāpēc bitu izvietošana pārraidāmām apakšjoslām aptuveni seko trešajā etapā noteiktajai SMR attiecībai. Tipveida stacionārajam audiosignālam zemākajās apakšjoslās tiek tērēti 5÷10, vidējās - 2÷6, bet augstākajās - tikai daži biti uz pārraidāmo apakšjoslu. Šie dati atbilst MPEG-1 II slāņa darbībai ar pazeminātu bitu plūsmas ātrumu – 128 kbit/s.

Kvantēšanas uzlabojumi

Audiobitu kvantēšanas procesā tiek uzlabota kvantēšanas efektivitāte. To panāk, kvantētājmezglu veidotiem apakšējiem līmeņiem (līdz 9. līmenim ieskaitot) trīs secīgu apakšjoslu nolašu laika blokus grupējot t. s. granulās, tās apzīmējot tikai ar vienu koda vārdu. Tas ir sevišķi izdevīgi augšējās frekvenču apakšjoslās, kurās kvantēšanai izmanto tikai dažus apakšējos līmeņus. Piemēram, no 24. līdz 27. apakšjoslai kvantētājmezgli izmanto tikai trīs līmeņus: trešo, piekto un 65535.! Visaugstāko frekvenču apakšjoslas (no 28. līdz 32. ieskaitot, kas atbilst 20250 - 24000 Hz) netiek pārraidītas, jo augšējā pārraidāmā un dekoderā rekonstruējamā audiofrekvence noteikta ar 20000 Hz.

Papildbiti

Lai koders un dekoders precīzi veiktu audiobitu apstrādi, MPEG-1 II slāņa standarts paredz, ka, formējot audiobitu plūsmu, tiek izmantota arī relatīvi apjomīga blakus informācija (side information), ko sauksim par papildbitiem. Ar tiem tiek pārraidīti mēroga faktori (scale factors), to izvēles informācija jeb SCFSI (Scale Factor Select Information) un audiobitu izvietošanas kodi (apakšjoslu kodu vārdi).

Mēroga faktori un to izvēle

Tie palīdz formēt decimēto nolašu laika blokus. Decimētās nolases dalot ar mēroga faktoriem, panāk, ka nolases, kas atbilst audiosignālam ar lielāko amplitūdu, nepārsniedz vieninieku. MPEG-1 II slāņa datu freimā (3. zīm.) ietilpst 36 audiodatu nolases, turklāt atsevišķs mēroga faktors tiek noteikts 12 decimētiem nolašu blokiem. Maksimālā no šīm nolasēm ģenerē mēroga faktora koda vārdu, kas sastāv no 6 bitiem (apgabals ar 63 līmeņiem!). Tātad freima laikā var tikt ģenerēti trīs mēroga faktori. Vai, pārraidot blakus informāciju, var ietaupīt bitus? Var. Trim secīgām apakšjoslām analizē mēroga faktorus un nosaka to imitācijas modeli. Pēc audiosignāla rakstura koders pieņem lēmumu, cik mēroga faktoru (viens, divi vai visi trīs) būs nepieciešami signāla apstrādei. Lēmums tiek nodots tālāk kā SCFSI datu vārds, kas sastāv tikai no diviem bitiem. Stacionāras tonālas skaņas gadījumā mēroga faktori maz mainās un tiek izmantots tikai lielākais no tiem. Tātad mēroga faktora atbilstošais bitu budžets ir 6+2 = 8 biti viena freima laikā. Taču, ja pārraidāmā skaņa ir sarežģīta, vairāk atgādinot troksni, nepieciešams izmantot divus vai pat visus trīs mēroga faktorus, nākošajam mezglam nosūtot daudz vairāk bitu. Viena freima laikā nosūtīto bitu skaits tad var pieaugt līdz 2+6+6+6 = 20 bitu. Šāda papildbitu kodēšanas metode, salīdzinot ar MPEG-1 I slāni, samazina šim nolūkam atvēlēto bitu budžetu divas reizes!

Apakšjoslu kodu vārdi

Ja apstrādājamā signālu kopa atrodas 32 frekvenču apakšjoslu zemākajā trešdaļā, tiek ģenerēts 4 bitu kodu vārds, lai varētu identificēt izvēlēto kvantētājmezglu. Tie ir signālu apstrādei nepieciešamie papildbiti, kuri tiek iestrādāti pārraidāmajā freimā. Līdzīgas darbības tiek veiktas, izmantojot vidējo frekvenču apakšjoslas (tiek ģenerēts 3 bitu vārds) un augšējo frekvenču apakšjoslas (tiek ģenerēts 2 bitu vārds). Parasti minētās apakšjoslu grupās izmanto atbilstoši 15, 7 un 3 kvantēšanas līmeņus, taču, ja nepieciešams, katrs kvantētājs var nosegt no 3 līdz 65535 līmeņiem!

Nosūtāmais freims

Kanāla koders, kura funkcijas ietvertas multipleksora mezglā MUX (1. zīm.), formē secīgo bitu plūsmu, pievienojot freima galveni (header), kas satur 20 sistēmas un 12 sinhronizācijas bitus, kā arī 16 CRC (Cyclic Redundancy Check) bitus. Šis t. s. paritātes pārbaudes koda vārds dod iespēju konstatēt līdz pat trijām atsevišķām bitu kļūdām vai šo kļūdu grupu līdz pat 16 bitu garumam. Bitu kļūdu noslēpšanas režīmā traucējumos sabojātās signāla daļas var tikt vai nu atmestas, vai arī atvietotas ar iepriekšējā freima traucējumos necietušiem signāliem. Šāds MPEG-1 II slāņa pārraides kanālam sagatavotais freims, kas pilnībā tiek konstruēts MUX mezglā, parādīts 3. zīm.

Freima īpašības

Šādi freimi ir autonomi. Katrs freims satur visu nepieciešamo dekodēšanas informāciju. To var dekodēt neatkarīgi no iepriekšējā freima. Audio ierakstes vai rediģēšanas gadījumā tiek definēts tā sākuma punkts. Freima ilgums ir aptuveni 24 ms, bet nav stingri fiksēts, jo: · tā ilgumu nosaka pamatinformācijas – audiobitu pārraidāmā kopa, ko savukārt nosaka bitu plūsmas ātrums un izmantotā diskretizācijas frekvence; · arī papildbitu daudzums var būt mainīgs lielums; · klātpieliktās citas informācijas datu apjoms nav limitēts.

Dekodēšana

MPEG-1 II slāņa dekoders parādīts 4. zīm. Pēc signāla demultipleksēšanas, kas iekļauj arī kļūdu korekciju, apakšjoslu secības tiek atjaunotas, izmantojot laika blokus granulu veidā, ievērojot dekodētos mēroga faktorus un dekodēto bitu izvietojuma informāciju. Tiek izskaitļotas nolases no visām apakšjoslām. Ja apakšjoslā biti nav izvietoti, nolases atbilstošā apakšjoslā tiek uzskatītas par nullēm. Katrā apakšjoslā dekoders diskretizācijas frekvenci atkal paaugstina (up sampling), līdz tā atbilst avota diskretizācijas frekvencei. Šādi interpolētie apakšjoslu nolašu signāli parādās sintēzes filtrkopas izejās jau kā PCM atbilstošā signāla laika secība.

Apvienotais stereo

Šī tehnika izmanto atziņu, ka virs 2 kHz un katrā CDzA iekšauss pamatmembrānas maskēšanas kritiskajā joslā cilvēka stereofoniskā efekta uztvere vairāk balstās uz audiosignāla laika apliecēju, nekā uz temporālo komponenšu sīkstruktūru. Tādēļ MPEG-1 platjoslas audiokompresijas algoritms izmanto stereofonisko redundances kodēšanas metodi (intensity stereo coding), kas samazina pilno bitu plūsmu, nesabojājot cilvēka uztvertā stereosignāla izpausmi. Koders augšējo apakšjoslu signālus kodē kā labā un kreisā stereokanāla summu, nevis pārraida tos atsevišķi. Dekoders savukārt rekonstruē labo un kreiso stereokanālu, izmantojot tikai abu signālu summu un atšķirīgos amplitūdu mēroga faktorus. Tātad uz augstām frekvencēm rekonstruēto signālu frekvenču spektrs ir vienāds abos kanālos, atšķirīgas ir tikai signāla amplitūdas. Apvienotā stereometode ir efektīva tikai tad, ja vajadzīgais bitu plūsmas ātrums pārsniedz nominālo atbilstošam slānim un ja to realizē apakšjoslās, kas pārsniedz 2 kHz. Tad stereopārraidei izdodas ietaupīt 25 procentus no bitu plūsmas. Piemēram, 256 kbit/s izmantotās plūsmas vietā var iztikt ar 192 kbit/s plūsmas ātrumu. BBC inženieri Lielbritānijā gan atzinuši, ka apvienotā stereo metode zaudē pārāk daudz stereoefekta, tādēļ neiesaka to izmantot.

MPEG-1 III slānis

Raugoties uz blokshēmu (1. zīm.), III slāņa svarīgākās atšķirības no II slāņa ir šādas: · aiz analīzes filtrkopas seko MDCT mezgls, bet · aiz kvantētājmezgla – Hafmana kodēšanas bloks ar bitu rezervuāru, kam ir atgriezeniskā saite ar kvantētājiem (bitu plūsmas ātruma un kropļojumu kontroles cilpa).

Hibrīdfiltrs

Sadali apakšjoslās III slānī iegūst ar filtrkopu un MDCT transformācijas mezglu. Šāds no diviem mezgliem sastāvošs hibrīdfiltrs katrā apakšjoslā veic 6 (labāka laika izšķiršana) vai 18 (labāka frekvenču izšķiršana) punktu MDCT transformāciju. Tādējādi apakšjoslu maksimālais skaits palielinās līdz 32 x 18 = 576, turklāt katra apakšjosla var būt tikai 24000/576 = 41,67 Hz plata, bet to var paplašināt līdz 125 Hz. Tiek realizētas arī priekšrocības, ko nodrošina CDzA modelis Nr. 2 (skat. iepriekš).

Kvantēšana un kodēšana

Signāli no MDCT mezgla nonāk kvantētājos, kur tiek nevienmērīgi (nonuniform) kvantēti, panākot zemāku kvantēšanas trokšņu līmeni. I un II slānis izmanto pārraidīto datu redundances samazināšanu, ko pieļauj CDzA īpatnības. III slānī šai ziņā meklēti papildu ceļi, redundance tiek samazināta arī pašā kodu struktūrā. Tā ir Hafmana jeb entropijas beztrokšņu kodēšana [5] jeb kodu pārveidošana. Jau 1838. gadā telegrāfa izgudrotājs Semjuels Morze, izstrādājot kodus – t. s. Morzes ābeci, dažus burtus ar lielāku parādīšanās varbūtību apzīmēja ar īsāku kodu – punktsvītru kopu. Šī ideja likta arī Hafmana algoritma pamatā. Tikai koderam jāprot atšķirt varbūtējāko signālu līmeņus no mazāk varbūtējiem. Šim nolūkam koders izmanto 32 kodu tabulas. Šo metodi lieto arī videosignāla kodēšanai (SP 1998/4 (12), 17. lpp.).

Bitu rezervuārs

Koders kartē Hafmana kodu tabulas mainīga garuma kodu vārdus īpašā buferī - rezervuārā. Kontrolējot, lai rezervuārs nepārplūstu un arī pārmērīgi netukšotos, uz dekoderu izdodas pārsūtīt nemainīga ātruma bitu plūsmu. Rezervuāra dēļ III slānis var darboties ar mainīga ātruma bitu plūsmām.
   

(Turpmāk vēl.)
   

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