Adaptive Differential Pulse Code Modulation

ADPCM - tehnički izvještaj

Vedran Višnjić
Zagreb, 2000.
 
(Ova stranica najbolje izgleda u rezoluciji 800x600, WIN-1250 i ako koristite NETSCAPE!)


 

Sadržaj

 
 

1. Uvod

ADPCM (Adaptive Differential Pulse Code Modulation) je tehnika komprimiranja digitalnih signala bez gubitka kvalitete. Standardizirani algoritmi ADPCM odnose se uglavnom na komprimiranje govornog signala, no ADPCM tehnika je neovisna o vrsti signala, tako da je upotrebljiva u komprimiranju digitalnog zapisa glazbe, slike ili bilo kojeg drugog digitalnog signala. Kako se ADPCM osniva na tehnici PCM (Pulse Code Modulation - eng. pulsno-kodna modulacija) u nastavku slijedi kratki pregled PCM.
 

2. PCM

Termin PCM (Pulse Code Modulation) zapravo opisuje postupak A/D konverzije. Analogni signal se otipkava frekvencijom najmanje dva puta većom od najveće frekvencije zastupljene u signalu (Shannonov teorem). Tako dobiveni signal se naziva pulsno amplitudno modulirani (PAM) signal. Tako dobiveni signal je vremenski diskretan, no amplituda takvog signala može poprimiti bilo koju vrijednost. Budući da zbog ograničene veličine riječi (registara, memorije...) u digitalnim sustavima nije moguće prikazati vrijednosti beskonačne točnosti (beskonačno decimala), PAM signal treba kvantizirati (zaokružiti). Kvantiziranje se provodi tako da se stvarne amplitude uzorka zaokružuju na srednju vrijednost intervala u kojem se taj uzorak nalazi (interval kvantizacije).

[pcm1.gif]


Budući da se postupkom kvantizacije nepovratno gubi dio informacije o amplitudi, javlja se pogreška kvantizacije (šum kvantizacije, e(n)). Očito je da će pogreška biti najveća, ako je amplituda uzorka blizu granica intervala kvantizacije. Kako ne postoji predvidljiva veza između grešaka kvantizacije u susjednim intervalima, pogreška kvantizacije se može predstaviti kao slučajni signal jednolike distribucije. Snaga šuma kvantizacije može se izračunati kao srednja vrijednost kvadrata šuma kvantizacije.
[S_sum.gif]

Uz pretpostavku sinusnog signala amplitude Ux, na sličan način se može izračunati snaga signala:
 
[S_sig.gif]
 
U najjednostavnijem slučaju funkcija kvantizacije Q[n] je linearna, odnosno korak kvantizacije ne ovisi o signalu.

[pcm2.gif]


Ako je kvantizacija linearna, korak kvantizacije se može izračunati kao:
 
[q.gif]

gdje je n broj bitova kvantizacije. Sada se može izračunati omjer SIGNAL/ŠUM (SNR) koji je bitan parametar kvalitete diskretiziranja.
[snr.gif]
Odnosno izraženo u decibelima:
[snrdb.gif]
Očito je da SNR ovisi o amplitudi otipkavanog signala.
 
SNR se može povećati na dva bitno različita načina:
  • povećanjem broja bitova (n) što vodi na veće memorijske zahtjeve i veću cijenu,
  • pojačanjem malih signala prije otipkavanja (adaptivno skaliranje), o čemu treba voditi računa prilikom vraćanja signala u analogni oblik

  • 2.1 Nelinearna kvantizacija

Iskustva u istraživanju ljudskog sluha pokazuju da je uho puno osjetljivije na pogreške kod malih amplituda, a upravo su velike pogreške kod malih amplituda (mali SNR) izražene kod linearne kvantizacije.
 
Slike prikazuju signale različitih amplituda (0.03 i 0.9), frekvencije 500Hz, diskretizirane frekvencijom 44100Hz i kvantizirane na 8 bita. Kod signala manje amplitude vidi se značajno odstupanje od valnog oblika sinusoide, što je posebno uočljivo u spektru malog signala kao prisustvo viših harmonika (spektralno smeće :)).
 
    [mala8.gif] Plava krivulja: kontinuirani signal
Crvena krivulja: kvantiziran signal

 
[velika8.gif]
    [m_spec.gif] Plava krivulja: 8-bitna kvantizacija
Crvena krivulja: 16-bitna kvantizacija

 
[v_spec.gif]
   


  Empirijski se došlo do zaključka da je za zadovoljavajuću kvalitetu govornog signala potrebno male amplitude kvantizirati korakom kvantizacije koji odgovara minimalno 12-bitnoj riječi. Finija kvantizacija linearnim kvantizatorom vodi na velik broj bitova potrebnih za pohranu signala jer se tada i velike amplitude kvantiziraju malim korakom kvantizacije, a velik broj bitova povlači probleme s propusnom moći prijenosnih medija (bandwith). Nelinearnom kvantizacijom može se postići da se male amplitude kvantiziraju s više nivoa kvantizacije (finije), a velike s manje nivoa kvantizacije (grublje), čime se postiže manja kvantizacijska pogreška za male amplitude uz manje zahtijeve za propusnom moći.
 
Nelinearna kvantizacija može se izvesti:
  • A/D pretvornikom s nelinearnom kvantizacijskom krivuljom, ili
  • Adaptivnim skaliranjem ulaznog signala (APCM)

U telekomunikacijskim sustavima standardiziran je logaritamski kvantizator, a logaritamska krivulja je odabrana zbog logaritamske karakteristike osjetljivosti ljudskog uha. Standardizirana su dva načina logaritamske kvantizacije. To su:
  • A-law kvantizacija, koristi se u Evropi
  • µ-law kvantizacija, koristi se u Japanu i Sjevernoj Americi.
Oba sistema su detaljno opisana u ITU-IT G.711 preporuci. Sistemi su vrlo slični, a imena su dobili po definicijskim parametrima (Američka maštovitost?).
 
   

A-law

µ-law

    [alaw.gif]

A = 86.7

[ulaw.gif]

µ = 255

   
[aslika.gif]

Obje krivulje su vrlo slične, a slika lijevo prikazuje A-law krivulju. Po preporuci ITU-IT G.711 oba kvadranta se aproksimiraju pomoću 8 linearnih segmenata sa po 16 kvantizacijskih razina po segmentu. Budući da je širina prvog segmenta 1/128 pune ulazne dinamike, a širina posljednjeg segmenta je 1/2 pune ulazne dinamike, očito je da se male amplitude puno gušće kvantiziraju.
   
Osam segmenata po kvadrantu, sa šesnaest kvantizacijskih razina po segmentu rezultiraju sa 256 razina za punu dinamiku signala što se može prikazati s osam bita. Međutim, za dobivanje jednakog SNR A-law kvantizatoru je potrebno 8 bita, a linearnom kvantizatoru 12 bita.
   
Sljedeća slika prikazuje primjer prvih 12ms sinusoidnog signala f=50Hz, kodiranog A-law postupkom.
 
[50_A.gif]

 

    Kodna riječ po G.711 [arijec.gif]
  • bit 7: lijevi ili desni kvadrant
             (predznak)
  • bitovi 6,5,4: segment
  • bitovi 3,2,1,0: kvantizacijski nivo po segmentu
   
ITU-IT G.711 propisuje širinu pojasa govornog signala od 4000Hz (300Hz - 3400Hz). Frekvencija uzorkovanja je određena kao dvostruka vrijednost širine pojasa, pa iznosi 8000Hz (dodani su pojasevi koji olakšavaju izvedbu antialiasing filtara). Množenjem 8000Hz s 8-bita po uzorku (A-law ili µ-law), dobije se zahtjevana propusna moć kanala za prijenos govora od 64 kbit/s.