Komentar će ići na kraju, ali najpre nekoliko potpitanja u vezi objašnjenja (kako bi u sledećoj iteraciji bilo jasnije)
Citat:
markotasic:
1. velicina slike koju smatram optimalnu za nase uslove je 240x180
Zašto optimalna i za koje naše uslove? Optimalna znači najbolja, a ako je najbolja onda je izabrana kao najbolja u odnosu na neki kriterijum. Koji kriterijum? Koji su to naši uslovi?
Citat:
3. koliko imam bitova po jednoj 9x9 matrici:
COLOR_1 [Y]:[U]:[V]=[1] : [1/16] : [1/16]
COLOR_2 [Y]:[U]:[V]=[1/16] : [0] : [0]
Ovaj deo računa mi nije jasan. Šta je 1/16 i kako se od toga dobije 4? Očigledno množenjem sa 8, ali zašto baš sa 8? Čini mi se da ima veze sa normiranjem na 8-bitne vrednosti ali ako si tako mislio, onda si to morao i da napišeš.
Citat:
COLOR_1 je tacka (0,0) u matrici I nosi originalnu informaciju o luminentnoj vrednosti dok za hrominentne komponente ima upola manju gledano u bitovima.
U kojoj matrici? Koje matrice uopšte učestvuju u kompresiji? Ovo objašnjenje ti je dosta maglovito a veoma je bitno da bi se išta razumelo na dalje! Moraš da ovo razjasniš, na primer tako što ćeš uvesti definicije pojmova sa kojima radiš. To moraš uraditi kako bismo te razumeli.
Citat:
Komponente sam definisao kao:
Y=0.3R+0.59G+0.11B za COLOR_1
Šta su Y,U,V, šta su R,G,B. Moraš objasniti! Igrom slučaja znam o čemu govoriš ali to ne treba da se podrazumeva. U kom formatu se pamti slika, u kom formatu se pamti bilo šta drugo? Kvantizacija koju ćeš ovde primeniti je od suštinske važnosti za kvalitet kompresije tako da je jako bitno šta se pod svim ovim komponentama podrazumeva.
Citat:
cela matrica bila popunjena 0:
0-0-0
0-0-0
0-0-0
A ukoliko bi bi bila veca onda bi izgledala ovako:
1-0-1
0-1-0
1-0-1
Ovo kodiranje je vrlo neefikasno, ali se to može srediti (verovatno jesi sredio u implementaciji).
Citat:
Mesta na kojima se nalazi 1 iscrtava se prva vrednost luminentne komponente, a gde je 0 onda se iscrtava ona sredja vrednost sledecih.
Naglasavam da se iz podmatrica ne uzima nova vrednost za luminentne I hrominentne komponente, vec se koristi ona iz prve podmatrice u prvom redu (ili glavne matrice prva).
Pošto ne znamo koja je to prva podmatrica, ne znamo koja je glavna podmatrica, verovatno ne znamo ni o čemu govoriš. Ovo bi trebalo bolje objasniti.
Citat:
Kao sto vidite ovde nema nikakvih koeficijenata matrice kojima se obradjuje originalna.Evo I prakticnog primera jedne matrice (dodatak).
Opet isto, govori se o nekakvim jednim i originalnim matricama, a da te matrice nigde pre nisu definisane.
Ok, nadam se da ćeš primedbe uvažiti, pošto sam opisao šta mi u tvom obrazloženju nije bilo jasno.
E sad idemo dalje sa komentarom. Kao što u životu to obično biva, imam za tebe jednu dobru i jednu lošu vest. Dobra vest je da je očigledno da si dobro uradio domaći zadatak. U tvom kodiranju postoje skoro sve bitne komponente kodiranja 2D signala: perceptuelno kodiranje (YUV), kvantizacija (nejednak raspored bita), filtriranje (usrednjavanje susednih) i diferencijalno kodiranje (pamćenje samo razlika).
Loša vest je da je tvoje kodiranje verovatno daleko od najboljeg mogućeg i to iz više razloga. Najpre, perceptuelno kodiranje je uzeto proizvoljno -- kod, ajde da kažem profesionalnih sistema za obradu slike, tablice osetljivosti se definišu za različite rezolucije, posmatrače itd. Tvoja kvantizacija je takođe linearna, što verovatno nije pravi model za ljudsko opažanje. Dalje, ključ kompresije -- usrednjavanje i diferencijalno kodiranje koje si primenio rade ali imaju ozbiljne mane (zato ljudi i nisu batalili problem kompresije slika već se i dalje zezaju sa time): naime, usrednjavanje je neka vrsta NF filtra za sliku, ali problem sa njim je što su spektralne osobine takvog filtra prilično loše, jer se skidaju sve komponente spektra i gubitak informacija je veliki.
Da pojasnim: ako u celoj slici četvorke od po

piksela zameniš njihovom srednjom vrednošću (poznati pixelize efekat) količina informacije se smanji -- hoću da kažem da se time svaka slika može srezati na četvrtinu originalne veličine. Problem je što onda nisi odrezao samo deo spektra koji ti nije potreban, već i deo koji nosi informaciju. Činjenica da to nisi radio u prostoru RGB nego u YUV nema preterano puno značaja. Zato se upravo i istražuju načini da se nepotrebni spektar što bolje odreže a da potrebni deo ostane tu.
I napokon tu je diferencijalno kodiranje koje, zbog prirode operacije unosi šum (jer snaga šuma postaje dvaput veća dok se signal po intenzitetu smanjuje) i koje zato valja izbegavati koliko je god moguće. Zato se diferencijalno kodiranje kod JPEG-a recimo koristi samo za srednju vrednost celog bloka, s obzirom da su tu signali dovoljno jaki da šum nema preterano mnogo uticaja.
Tvojoj kompresiji vrlo fali obrada slike u frekventnom domenu. Ako te zanima nešto više o kompresiji slike (mislim da si na dobrom putu, uzgred budi rečeno!) možeš se javiti na mail, imam nešto materijala o tome (na srpskom!).
f