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
 
Matrica i GOP

Prije enkodiranja videa u MPEG1 ili MPEG2 postavljaju se uvijek ista pitanja: Šta uzeti ? Dugi GOP ? Ili je bolje, kraći? Koja je najbolja matrica? Može li se koristiti za sve vrste filmova? I uopće, zbog čega se nerviram oko toga, zbog čega to uopće radim ?
Odgovori nisu baš uvijek onakvi koje očekujete.

Ovo poglavlje će se podijeliti na par djelova:

  • DCT & Matrix, šta je to?
  • Motion prediction i Estimation
  • GOP-veličine i šta se pri tome dešava
  • Praksa: kako predhodna tri dijela spojiti u vidljiv rezultat ?

 

Blok, DCT i Matrix

Za početak, najmanji dio MPEG slike nije pixel, već blok od 8x8 pixela. Na jednom bloku se izvode takozvane DCT (Discrete Cosinus Transformation). Postupak pri čemu se blokovi razbijaju u frekvencijske djelove. Šta pri tome nastane je, matrica sastavljena od Frekventne inteferencije, pri čemu svaka ćelija bloka, predstavlja frekvencijski spektar prijašnjega 8x8 bloka (hrvatski rečeno, slika je crno-bijela).

To vrijedi sa malim ograničenjem, jer je prva ćelija, de fakto, jednostavna siva boja koja daje prosječnu svijetloću kompletnog bloka. Ćeliji desno su pridodate vertikalne linije, tako da se osma ćelija sastoji od "rešetaka". Analogno tome, odozgo prema dolje radi se isto, samo sa vodoravnim linijama. Dijagonalno gledajući, spajaju vertikalne i vodoravne ćelije. 64-ta ćelija je u stanju, gledajući frekvencijski opseg, dati sliku bez gubitka na kvaliteti.

Ovako bi to trebalo izgledati.

Onaj tko misli, da je dovoljno sanimiti sadržaj zadnje ćelije da bi dobio savršenu sliku, u krivu je. Ne snima se samo jedan interferencijski podatak, tek više njih čine nešto šta bi se moglo nazvati, prava slika.

Da bi se to detaljno objasnilo, treba vam jako dobro znanje iz matematike (a nemam ga !!), ali evo jedna usporedba s "analogijom kamena":
Dobar matematičar je teoretski u stanju: izračunati interferencije valova (element blok-matrice, po DCT-u) na moru (blok), pri bacanju hrpe kamenja (pixel), različite težine (svijetloća slike), na određena mjesta (pozicije pixela).
Jednostavno! Na isti način se kasnije stvara slika.

Važno je da, ćelije sa većim brojevima snimaju kompleksniji spektar boja. Ako izostavimo pojedine ćelije ili linije iz obrade, sama orginalna slika gubi na kompleksnosti. Ona se gubi do nivoa kada ni ljudsko oko to više ne primjećuje. Komplicirano jest, ali nam nije donijelo ni bajta uštede na prostoru. Do toga dolazi tek u sljedećom koraku, kvantiziranju, sa matricom koji već koristimo.

Šta radimo sa matricom? 

Većini je poznat ovaj prozor u TMPGenc-u. Posao matrice je da sadržaje ćelija, što je moguće više, homogenizira, znači da usporedi jednu sa drugom. Ovo uspoređivanje je bitno, jer se u sljedećem koraku bira metoda kompresije - RLE ), koja je zadužena za to da što moguće više istih ili sličnih vrijednosti dolaze jedna za drugom.
Kao što sad znamo, za sada ćelije određuju kompleksnost cijelog bloka. Kvantizirana matrica sama sadrži brojeve koji se uspoređuju/izračunavaju sa sadržajem ćelija. Trik je u tome da se izaberu brojevi u matrici, koji će što više ćelija dovesti na istu vrijednost. Cilj nije dovesti što više ćelija na nultu vrijednost, iako je i to moguće.

Postigli smo to da RLE kodiranje bolje funkcionira, jer kodiranje pazi da li idu nekoliko istih vrijednosti, jedna za drugom. Ako su na kraju kvantiziranja primjer: u četiri ćelije zaredom (koje su u pitanju ovisi o redosljedu skeniranja, koji se traži iz samih ćelija) sa istim vrijednostima, recimo 8, onda se ne zapisuju četiri osmice nego količina i vrijednost. Znači umjesto 8,8,8,8 piše se samo 4,8. To je pozitivna stvar kvantiziranja (uštedimo dosta mjesta). Cijela stvar ima i malu kvaku: samim postupkom mjenjmo ranije frekvencijske informacije, koje se "omekšavaju" - primjetimo kod "pikselizacije" (moja oznaka) slike! Što brutalnije matrica omekšava, to je veća kompresija slike (iznimka: CG-Matrix), jer se gube podaci o slici, a to baš i nije cilj.

Tko je upoznat sa tematikom reći će: Što su više frekvencije, šum slike je jači, i samim time smo rješili problem pikselizacije. To je ono što dosta korisnika želi, ali to je samo donekle točno. Sjetite se, DCT pravi inteferencijski uzorak! I to za svaku ćeliju, gledajući cijeli blok, a ne samo za jednu frekvenciju ili frekventni opseg. I uopće ne za bilo koji piksel unutar bloka. Visoka kvantizacija ne uklanja šum, već samo povećava kompleksnost same slike. Samim time, šum slike nje tako vidljiv, ali je uvijek tu.

OK, nakon što smo sliku "pokvarili", pitamo se, kako dobiti opet gledljivu sliku, i u čemu je bila poanta priče o kamenu, moru i matematičaru ?

Matematičari pokušavaju, iz uzoraka valova (sadržaj ćelija), koje oni vide, izračunati, koja su kamenja (pikseli koje želimo natrag), bačena i gdje u vodu (pozicija pixela). Pri tome za tri kamena potrebne informacije od samo dva kamena, vrijednost trećega automatski se izračunavaju od predhodna dva. Hrvatski rečeno: računaju se pozicije (i ostali podaci) dvaju kamena, i vide se, valovi od trećeg kamena. Iz prijašnjih podataka, se izračuna, šta, kad i gdje je se to desilo. To isto radi iDCT (inverse Discrete Cosinus Transformation). Svaka ćelija bloka je jedan kamen (pixel) tj. informacija. Svaka ćelija je jedan interferencijski uzorak (val) više ćelija, koji su nastale padom jedog od kamena.

Sada se matricom okreće efekt kvantiziranja (radi se obratno), što bi bilo bez gubitka informacija, da nije malog problema: pri kvantiziranju nastaju "granične greške" i samom tim, nulte vrijednosti.

Za objašnjenje probat ću to objasnit zbrajanjem i oduzimanjem (matematički potpuno netočno). Recimo da su ranije vrijednosti ćelija, po DCT-u; 24, 16, 22, 23, 22, 11... koje će biti kvantizirane (zbrojit ćemo ih) sa istim (na koji se odnose) vrijednostima matrice 22, 22, 22, 24, 24, 24... Na kraju dobijemo rezultat: 2, 0, 0, 0, 0, 0. Sada matricu obrnemo postupkom kvantizacije i dobijemo: 24, 22, 22, 24, 24, 24, i to sa prvobitnom slikam nema neke velike veze (ali se dobro kompresira): "Jipiiii! Nema više blokova pri brzim pokretima, super-matrica", kaže (l)user. A svizac je na to rekao: "Za upišat se, slika je tako nejasna! A tek pumpe! Savršeno! Kako se zove umjetnik?"   interna šala: Je li netko razumio vic ?!?

Tako, sad bar znamo šta je najmanja jedinica slike kod MPEG-a, upoznali smo se sa DCT-om i kvantiziranjem (barem ugrubo). E, sad dolazi pitanje: šta treba dobra matrica uraditi?

Odgovor je jasan, složiti što je moguće više ćelija, u ispravnom rasporedu, sa istim vrijednostima, i pri tome izbjeći visok stupanj kvantizacije slike. Matrice sa vrijednostima 99 se daju jako dobro komprimirati, ali dovode do jakih efekata kvantizacije i nejasnim slikama. Zato je interlaced matrica mb1, dobar primjer: obraća pažnju na redosljed skeniranja, i stupanj kvantizacije nije visok.

I ovdje postoji jedan "ali", zbog niske kvantizacije slike, smanjuje se i vjerovatnost, da se pojavi više ćelija sa istim/sličnim vrijednostima.
Samim time, RLE kompresija ne djeluje tako dobro i potreban nam je veći bitrate.

Iz rečenoga se može izvući: nominalna vrijednost Q-levela kvantizacije, pri željenom bitrateru, je sa oprezom za upotrebu.

Viši stupanj nam donosi to da blok nakon kvantizacije sadrži puno istih vrijednosti, a to može biti rezultat savršene "igre" između kvantiziranja i RLE-kodiranja ! A to opet znači, da je u ovom slučaju čak i pri visokoj kvantizaciji kvalitet slike na najvišem nivou !
Iz dosta razloga neću objašnjavati kakve to ima veze sa Q-Levelom, pa ćemo to sljedeći put interpretirati. Pametne glave, koje su nešto razumile, od ovoga mogle bi doć na ideju:"Hmm, onda je optimalna matrica ona kod koje vrijednosti ćelija ravnomjerno rastu". Ako ste to pomislili razumili ste veliki dio ove teme, ali i to ne štima u potpunosti.

Ni jedna slika, pa tako i ni jedan blok, nema ravnomjeran rast kompleksnosti frekvencijskog spektra, to je manje-više kaotično. Kod crtanih filmova ovakva matrica stvarno funkcionira, ali SAMO kod crtanih filmova. Unatoč tome, ovakva matrica bi dala najbolju moguću sliku, da ne postoji granica dozvoljenog bitrate-a (važi za sve matrice). Ako nema dovoljno bitrate-a za obradu svih informacija, enkoder to rješava na brutalan način: kvantizira više nego matrica propisuje ! Dosta ljudi (uključujuči i mene) to naziva "podkvantizacija". Gdje i kad se to dešava, to je najčuvanija tajna programenra raznih enkodera, jer je to odlučujuće za kvalitet slike.

Usporedbom TMPGEnc i Cinemacraft-Encodera, kada dođu do djela kad se potriši bitrate, vidimo da TMPGenc odmah pokaže vidljive blokove (pojedini blokovi se jako kvantiziraju) ali i jako oštru sliku, dok kod CCE se blokovi javljaju kasnije, ali je slika zamućenija. Oba enkodera rade na različitim strategijama.

Onaj tko želi eksperimentirati sa matricama, treba imati na umu, da enkoderi imaju svoje "zahtjeve". Najbolja matrica nema efekta ako ne koristimo dovoljno bitrate-a.

Objašnjenje "Scanordera".
Ide se od teorije da, pri DCT-u i kvantizaciji dva susjedna elementa imaju slične/iste vrjednosti (gledajući dvodimenzionalno). Time se nije mislilo na susjedne vrijednosti u istom redu ili stupcu, već na frekvencijski spektar, jer se pri traženju sadržaja ćelija ide za "hopa-hala" uzorkom. Kod Interlaced-videa koristi se tkz. Alternate Scan. I on ide za "hopa-hala" uzorkom, mada na prvi pogled izgleda kaotično.

 

Ljevo: hopa-hala, desno: Alternate Scan

OK, nakon dosadne torije, malo prakse.

Na kvaliteti slike možemo jedva nešto promijeniti, bet obzira koju matricu koristili. Nakon kvantizacije slika nikad nije ista kao orginal. Uvijek će biti malo mutnija i bljeđa. Ono što možemo uraditi je, da odvijemo kompresijski vijak i minimiramo pojavljivanje blokova. Iz do sada rečenog, možemo zaključiti da, se orginalna slika može rekonstruirati i kada imamo jako malo informacija, znači kad su kompletni frekvencijski dijelovi izgubljeni. U prijevdu, što više informacija izbacimo pri kvantizaciji, to bolje se slika kompresira. To plaćamo gubljenjem oštrine slike.

Matrica za kvantizaciju nije ništa drugo nego filter određenih frekvencija, što nam je poznato iz MP3-a. Kod muzičkih CD-a maksimalna audio frekvencija 22 kHz. Više frekvencije čovjek jako slabi ili nikako razaznaje, što se koristi koa audio-kompresije, jer se frekvencije iznad 16 kHz jednostavno otkodaju. Isto se dešava sa matricom pri MPEG-kompresiji.
Matrica se sastoji od 8x8 polja. Sa ljeva na desno se koriste visoke vrijednosti vodoravne frekvencije, a odozgo prema dolje okomite frekvencije.

Jedan od filtera koji propušta niske frekvencije, a visoke odsjeca izgledao bi ovako (crvenom bojom su označena promjenjena polja. Osnova je standardna postavka TMPGEnc):

 
Slika 1.

Kod ove matrice su kompletne više frekvencije odbačene.


Slika 2.

Ovakav filter šalje niske frekvencije u Nirvanu (briše ih)...

Drugi filter, bi onda ovako izgledao:


Slika 3.

Svi frekventi djelovi su jednako obražšeni. Ima smisla kod slika koje, same po sebi, nisu kompleksne, crtani filmovi npr. (ne kompjuterski animirani crtani filmovi).
Dosta vas je vidilo matrice za jače kompresije koje drugačije izgledaju. Istina, a razlog je banalan: televizija
! Zato jer su kod telkaća jako vidljive linije, za razliku od monitora, koji je više pixel-orjentiran. Kod Cinemacraft Encodera (CCE) postoji Low-Bitrate-Matrix sa sljedećom strukturom ("xx" pokazuje šta se nije mjenjalo) :


Slika 4.

Ova matrica briše samo vodoravne frekvencije, dok okomite ne dira. Super stvar, gubi se jako malo na kvaliteti slike. Razlog tome je televizijska slika koja, digitalno gledajući, ima uvijek 576 linija.

CCE nudi mogućnost, transponiranja (rotiranja) matrice:

 
Slika 5.

To je razlog zašto je ovakva slika na monitoru jako dobra, ali na telkaću izgleda lošije.
Svi smo upoznati sa Angels matricom koja dijagonalne vrijednosti postavlja na 99. Šta ona radi ? Pogledajmo jednostavniju varijantu:


Slika 6.

Pogledajmo scanorder, i vidimo u čemu je trik: vrijednosti se jako kvantiziraju ali ispravnom redosljedu, što RLE-Kompresijom odlično funkcionira. Problematično je samo to da su vertikalne frekvencije uklonjene, što je za telkač loše (struktura linija).
Onaj tko želi eksperimentirati sa Scanorderom, nema drugi izbor.
Skoro optimalna stvar bi bila kada bi kombinirali dvije matrice
: CCE Low Bitrate i Angel-matricu:


Slika 7.

Nadam se da vam je sad malo jasnije, šta rade matrice pri kompresiranju. Trik pri istraživanju mogučnisti optimiranja je, pronaći ne samo ispravan redosljed, već i prikladne vrijednosti. Vrijednost 99 uništava frekvencije, što dovodi do mućenja slike. Ako uspijemo složiti vrijednosti tako da frekvencijske vrijednosti ostanu očuvane, i da RLE-Kompresija uredno odradi svoj posao, onda imamo optimum. ...  Moj prijedlog je izbjegavati vrijednosti 99 u matrici !

Ovo su bili primjeri Intra-Matrice, non-Intra nije obrađena jer za nju vrijede druga pravila. Jedno od njih je uopćeno: ne kvantizirati previše. Osim toga sve matrice, ovdje obrađene, su samo za progresivni video, ne za Interlaced-Video.

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
53 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