Banneri
Dogaíanja u Trogiru
  » NetEkipa Wireless
  » Forum
  » Chat
  » Tri volta
  
  » Knjiga gostiju
  
  » Galerija
  » Novogodisnji Party
  » Knight OnLine Klan
  » Wow Guild *NOVO*
Galerija slika

     Galerija slika:
  » Netmedia akcija 1
  » Netmedia akcija 2
  » Netmedia akcija 3
  » GRU rođendan
  » Drvenik
  » Drvenik II
  » Drvenik III
  » Rostiljada - Kanica
  » Ekipa u Tri volta
  » Stipe rođendan
  » Mirkec pizzerija
  » Rostiljade
  » Spider rođendan
  » Lan party
  » Maja-Bee rođendan

  » WiFi Vipko
  » WiFi Spider Gru
  » WiFi Akcija 3
  » WiFi Stipe
  » WiFi Vipko zamjene
  » WiFi kantena
  » WiFi Slim
  » Battlefield turnir
  » Vipko rodjendan
  » Scream rodjendan
  » 2004 Kupanje 1
  » 2004 Kupanje 2
  » Spider rodjendan
  » Upgrade WiFi-a

DivX blagodati
     DivX tutorijali:
  » DivX i AC3
  » Formati i kompresije
  » Virtual Dub trikovi

     SVCD tutorijali:
  » DCT
  » Dual MPEG
  » DVD na XVCD
  » Matrica i GOP
  » Matrix u TMPG
  » MPEG pauze
  » Multikanalni MPEG
  » SVCD datarate
  » SVCD FAQ
  » SVCD i subtitle
  » TMPG encoding
  » Kreiranje SVCD-a
  » X(S)VCD
 
     DVD tutorijali:   » DVD authoring I
  » DVD na DVD
  » SVCD na DVD
  » SVCD2DVDMPG+
   
  » DVD i AC3
  » DVD authoring II
  » DVD authoring III
  » Skidanje Copyrighta
  » Mini DVD
  » Novi IFO
  » DVD protiv SVCDa
 

     Razno:
  » Digitalizacija
  » Kapacitet CD-a
  » Rezolucije
  » Signali
  » Video Buffer Verify


Sigurnost
     Računala:
  » Sigurnost
  » Windows2003 install
     WiFi:
  » Uvod
(u pripremi)
Formula 1 fans
  » Poredak
  » Ferrari
  » Wiliams
  » McLaren
  » Wallpaperi
Kontakti
 
Discrete Cosinus Transformation - DCT


Sada ćemo se malo pozabaviti konkretnim stvarima kod SVCD kodiranja, tj. kada, kako, zašto i zbog čega se to radi. Pokušat ću to objasniti, na najjednostavnije moguće način. Ako vam šta ne bude jasno, pročitajte opet i opet, te na kraju potražite savjet na mreži ili kod psihijatra... :)) Ako niste već zdimili, vrime vam je....


Zamislite da se slika na ljevoj strani (sive vrijednosti kodirane vrijednostima od 0 do 255)
multuplicira sa matricom, koja izgleda kao slika na desnoj strani (sa vrijednostima od -1 do +1)

 

 

Iz toga "mješanja" proizlazi jako smješna slika, koja za ljudsko oko nema nikakvo značenje ispočetka! Prije svega upada u oči, da nova slika, gore ljevo, ima visoke vrijednosti (crveno), a u ostalom djelu slike manje-više ima niske vrijednosti (plavo).

 

Šale radi, isječemo desno dolje jedan kvadrat ...

te ga mutipliciramo sa slikom i vidimo.......

kao rezultat prvobitni motiv. Pitanje glasi :
Kolika može biti plava kocka koju smo isjekli, a da se motiv još uvijek prepoznaje ??

Time se bavi DCT.

korištenoi algoritam u kompresiji

Prije nego se izvrši DCT, podaci se moraju još malo preraditi. Jer samo 8x8 pixela liki blokovi se mogu obraditi, orginalna slika se mora, ako se ne može točno podijeliti u blokove 8x8, povećati na desnoj, odnosno donjoj strani. Pri tome se nadodaju pixeli, desno ili dolje, dok rezolucija ne bude djeljiva sa 8. Tek tada može početi prava kompresija.
 

Diskrete Cosinus Transformation

Kao prvo, blok se pretvara u 8x8 koeficijentnu matricu. DCT je jako sličan jednoj drugoj matematičkoj funkciji - Fourier-transformaciji (FFT). Obe transformacije služe, prevođenju signala. Kao primjer, možemo audiosignal, pomoću FFT-a razdvojiti u brojne, različite, osnovne frekvencije.

Slika 1 pokazuje prekrivanje tri sinusna vala.Nakon transformacije pomoću FFT-a se ova komplicirana valna forma prikazuje samo kroz tri točke (Slika 2), X-os je pri tome frekvencija, a Y-os amplituda frekvencije.

   Slika 1

     Slika 2

DCT funkcionira slično, samo što on radi sa trodimenzionalnim signalom. X- i Y-osi su pri tome koordinate na motitoru/TV-u, a Z-os daje vrijednost određenog piksela. Tako se prostorne informacije transformiraju u frekventne informacije.

Transformacija se vrši sljedećom formulom:


Slika 3

Prva formula vrši transformaciju podataka iz slike u DCT-matricu, a druga ponovno transformiranje DCT-vrijednosti u sliku.
I i J su pri tome offset unutar DCT-matrice, x i y su offset unutar bloka slike. N je korištena veličina bloka (u našem slučaju, 8).


 Dodatak: moguće je koristiti i veće blokove npr. 16x16. To bi omogućilo jače kompresije, ali bi se procesorsko vrijeme obrade enormno povećalo, a i kvalitet  kompresirane slike rapidno opada. Tako da se sa velikim blokovima (64 x 64, 256 x 256, ...) ne bi dobila nikakva prednost.

Samo kroz ovu transformaciju se nije dobila nikakva kompresija, nasuprot: iz 8-bitnih sivih vrijednosti (0 - 256) mogu nastati vrijednosti između -1024 i 1024. Čisti DCT je u principu, do malih grečkica pri zaobljavanju, kompresija bez gubitaka.

Kvantizacija koeficijenata

Ako pogledamo nastalu 8x8 matricu, vidimo da su u gornjem ljevom kutu zastupljene visoke vrijednosti, takozvani DC-Koeficijent. Tek u pravcu desno dolje nastaju niskofrekventni AC-Koeficijent i nakon njega visokofrekventni. Jer ljudsko oko slabije prepoznaje visokofrekventne dijelove (visokofrekventno - više informacija), ovi dijelovi se mogu izostaviti u korist manje datoteke, bez da oko to prepozna.

Nakon toga se svi koeficijenti dijele sa određenim faktorom i zaokružuju na integralnu vrijednost. (pri povratnoj transformaciji - čitaj reprodukciji - ovi se koeficijenti množe.)

Moguća matrica kvantizacije :

Vrijednost na svakoj poziciji se izračunava:
    Kvantizacija[ x ] [ y ] = 1 + ( ( 1 + x + y ) * Kvalitet )

Moguće je koristiti i druge matrice, mada mi se čini da je se ova dokazala u dosta testova.
 

Kodiranje koeficijenata

Pogledajmo tipičnu DCT-matricu, nakon kvantizacije:

Vidljivo je, da je zbog kvantizacije veliki dio dobio vrijednost 0, naročito dolje desno.

Da bi se podaci dobili u prihvatljivoj formi za kompresiju, snimaju se "hopa-hala" metodom.

Time se najprije snimaji niskofrekventne vrijednosti, a tek nakon njih visokofrekventne (koje su postale nule - nadamo se).
 

Kompresija podataka

Nastalu koeficijentnu matricu moramo snimiti, u moguće boljem formatu. Zbog toga se, pored ostaloga, koriste Variable Length Integers - VLI (integri varijabilne duljine). Ovdje se brojevi ne snimaju na osnovi duljine bitova, već se snimaju mali brojevi - malom duljinom bitova, a veći - većom. To bi ovako izgledalo:

Bitovi Broj bitova (određena duljina, u našem slučaju 4 bita, je dovoljno za brojeve do 15 bitova duljine
Predznak 1 ako je broj < 0, inače 0
Kod Oznaka broja

Primjeri :

Decimalni broj VLI 8-bitni binarni broj
0 000. 00000000
-1 001.1 11111111
4 011.0.00 00000010
-21 101.1.0101 11101011
124 111.0.111100 01111100

Kompletan 8x8 blok se snima u sljedećem formatu: najprije se snima DC-Koeficijent kao VLI, nakon toga se ponavlja: 4 Bita, koji označavaju broj nula prije sljedeće ne-nula vrijednosti i onda ne-nula vrijednost kao VLI.

Poseban slučaj je ako je broj nula = 15, što znači da se do kraja bloka nalaze same nule.

Dekompresija

Dekompreija se izvršava obrnutim redosljedom:
  • učitavanje kvantizirane DCT-matrice
  • množenje kvantizirane matrice sa faktorom kvantizacije
  • izvršiti obrnuti DCT (iDCT)
Logiranje
- Registrirajte se

Vi ste logirani kao:
Gost

- Login
Hosting provider
NetEkipa search
Tražilica služi samo za pretragu ovog sitea.
Hosting provider
Naš hosting pokrovitelj
www.sistemi.hr

Anketa
Statistika posjeta
 
usera na chatu
91 usera online


Autorizirani useri:
Vipko
MegaS
raven
krakicic
vrubinjo
benko
dedek
stakopo
Aztek
krakicic
denis88
ccfly
omron

posjeta od
29.05.2002.

Linkovi
 
  Opći:
- Apartments   Family-Curic
- Apartments   Kanica
- Netplugged
- Radio Trogir
- Pastar NET
- Refill toner   shop
- Diving Center   RESNIK


  WiFi Friends:
- NETmedia
- ST Airnet
- Dugave WiFi
- ELMA Kurtalj