# HG changeset patch # User viric@mandarina # Date 1228163109 0 # Node ID e07157da85c9033357b327bebfc9de3bde7fc582 # Parent 20f497435c502ea0248f4c349c8d0bf7bab9f02f Corregits alguns errors, després d'una nova revisió. Completa. diff -r 20f497435c50 -r e07157da85c9 doc/memoria.pdf Binary file doc/memoria.pdf has changed diff -r 20f497435c50 -r e07157da85c9 doc/memoria.tex --- a/doc/memoria.tex Fri Nov 28 16:51:20 2008 +0000 +++ b/doc/memoria.tex Mon Dec 01 20:25:09 2008 +0000 @@ -252,7 +252,7 @@ \item Fem la transformada inversa DCT dels coeficients obtinguts, per arribar a la representació en blocs de mapa de bits de 8x8 pícsels. \item Els blocs constitueixen la informació espacial dels plans, i cal -reescalar els plans delmats a la seva dimensió original. +interpolar els plans delmats a la seva dimensió original. (Aquí el descodificador també ha d'inventar els nous punts al escalar la imatge) \item Ja tenim una versió dels tres plans que determinaven la imatge, i podem entregar-la a qui l'hagi demanada. @@ -298,9 +298,9 @@ \figura{flors-cb-rescale.pdf}{\label{fig:cb-rescale}Delmat 2:1 en horitzontal i vertical del pla Cb, i posterior -reescalat de la versió delmada, mitjançant interpolació lineal.} +interpolació lineal de la versió delmada.} -A la descodificació, cal reescalar els plans delmats a la seva mida original, +A la descodificació, cal interpolar els plans delmats a la seva mida original, mitjançant interpolacions o altres tècniques. Convencionalment (per defecte a la \texttt{libjpeg} \cite{libjpeg}) es fa una interpolació lineal. I per a suplir la imatge final a la pantalla, cal invertir el canvi de plans de YCbCr @@ -353,7 +353,7 @@ independentment. Dels 64 punts d'intensitat de color que determinen cada bloc de 8x8 pícsels -obtenim 64 coeficients mitjançant la transformada DCT 2D (\ref{sec:dct}). +obtenim 64 coeficients mitjançant la transformada DCT 2D (Apèndix \ref{sec:dct}). Aquests es solen ordenar en freqüències de menor a major, utilitzant l'ordre de Zig Zag (Figura \ref{fig:jpeg-coeficients}) definit a l'estàndard de JPEG. @@ -397,14 +397,15 @@ \end{tabular} } \caption{\label{tab:example-qtable} Taula de quantització pel pla d'intensitat -de llum segons la \texttt{libjpeg} \cite{libjpeg} a qualitat 30} +de llum segons la \texttt{libjpeg} \cite{libjpeg} a qualitat 30}, +$Q_i , \, i = 1,2,\ldots,64$ segons l'ordre de Zig Zag. \end{table} La quantització dels coeficients consisteix en conservar només el valor enter resultat d'arrodonir la divisió pel quantitzador. El primer coeficient (la -component DC) no es quantitza independentment com els altres, sinó que es +component contínua DC) no es quantitza independentment com els altres, sinó que es quantitza la diferència amb el primer coeficient del bloc anterior. Per cada un dels 63 -coeficients reals provinents de la transformada DCT 2D ($y_i$, on $i = 2,3,\ldots,64$) i +coeficients AC provinents de la transformada DCT 2D ($y_i$, on $i = 2,3,\ldots,64$) i per la diferència amb la component DC anterior ($y_1$) obtenim un enter arrodonint: \[ \hat y_i = \left[ \frac{y_i}{Q_i}\right] , \, i = 1,2,\ldots,64 \] @@ -450,7 +451,7 @@ \chapter{Qualitat de les imatges} En aquest treball ens proposem millorar la descompressió d'imatges JPEG. Per -tant, cal que definim la qualitat de la imatge resultant d'una manera mesurable. +tant, cal que considerem quantificar la qualitat de la imatge resultant. Una mesura molt utilitzada, simplement pel fet de ser purament de teoria del senyal, @@ -466,14 +467,15 @@ x_{m,n}$ l'anàleg de la versió descodificada. Als articles que fan referència a comparació d'imatges amb l'objectiu de mesurar -la similitud encara es fa servir més una funció del MSE, la \emph{relació senyal +la similitud encara es fa servir més una funció de l'MSE, la \emph{relació senyal soroll de pic} (PSNR \index{PNSR}\label{sec:psnr} -- \emph{Peak Signal-to-Noise Ratio}), que es sol expressar en decibels i es defineix així: \[ PSNR = 10 \log_{10} \frac{255^2}{MSE} \] A molts articles on proposen mètodes per millorar la descompressió JPEG -justifiquen les millores amb un augment de la PSNR. A la pràctica, +justifiquen les millores amb un augment de la PSNR respecte a la descodificació convencional. +A la pràctica, la PSNR es considera una mesura adequada quan es comparen imatges codificades a alta qualitat. En general, la PSNR mesura bé l'error percebut quan no hi ha gaires diferències a zones d'altes freqüències. Concretament, @@ -556,7 +558,7 @@ \end{itemize} El programari vinculat a aquest informe, tot i que ofereix algunes de les -esures matemàtiques presentades (GBIM i PSNR), fonamentalment +mesures matemàtiques presentades (GBIM i PSNR), fonamentalment permet comparar còmodament imatges a ull nu. Hem vist que hi ha moltes mesures per avaluar les restauracions d'imatges JPEG, i per això no hem dedicat gaire temps a implementar-les, prioritzant que l'usuari pugui avaluar les imatges segons el @@ -564,8 +566,8 @@ \chapter{Tècniques} -\label{sec:tecniques} -A la l'apartat \ref{sec:perdues} hem explicat quines pèrdues de senyal +a\label{sec:tecniques} +A l'apartat \ref{sec:perdues} hem explicat quines pèrdues de senyal trobem al JPEG, i quins són els marges de llibertat que tenim a l'hora d'intentar recuperar la imatge original. Des de l'aparició de l'estàndard JPEG que s'han proposat @@ -583,8 +585,8 @@ {post-processat}. Els primers consideren tota la informació del JPEG, i els segons treballen exclusivament a partir de la imatge obtinguda després d'una descodificació convencional. Els primers tenen un avantatge clar sobre els -altres, ja que poden accedir als intervals de quantització, als plans abans de -reescalar-los i a la codificació del color. +altres, ja que poden accedir als intervals de quantització, als plans abans +d'interpolar-los i a la codificació del color. Considerem la descodificació d'un pla del JPEG, no necessàriament amb el mètode convencional. Si al recodificar el pla amb @@ -808,15 +810,13 @@ al delmat del JPEG, explicat en detall a l'Apèndix \ref{sec:colorponderat}. \chapter{Programari} -% TODO: Add program captures: cadena de descodificació, algunes imatges -% analitzades Com hem vist a l'apartat anterior, trobem nombrosos articles sobre la millora de la descompressió JPEG. Malauradament, no trobem els algorismes implementats en cap aplicació popular. GIMP i Adobe Photoshop\reg, possiblement els processadors de mapes de bits més populars, només suporten la descodificació convencional. A la última versió (6b) de la -\texttt{libjpeg} tampoc hi trobem res d'especial, tot i que a la documentació +\texttt{libjpeg} tampoc hi trobem res d'especial. A la seva documentació hi trobem una declaració d'intencions per incorporar mètodes de restauració a la versió 7, però sembla que el desenvolupament d'aquesta llibreria es va aturar precisament a la 6b el 1998. @@ -862,7 +862,7 @@ ofereixen una bona idea del millor resultat que l'algorisme permet assolir. Creiem que alguns articles presenten molt poca millora (valorant subjectivament a ull nu) -com per a tenir-los en compte en una implementació. +com per a tenir-los en compte a la nostra implementació. \item L'algorisme ha de permetre millorar imatges en general. Alguns només milloren determinades zones de molt baixes freqüències, o fins i tot només serveixen per a dibuixos artificials en comptes de fotografies. @@ -999,7 +999,7 @@ Si utilitzem les funcions de \emph{salvar el pla}, apliquem el filtre amb el GIMP, \emph{el carreguem a la cadena}, i després hi apliquem una \emph{projecció sobre l'espai de quantització}, obtenim -resultats competitius amb altres algorismes, segons el tipus de imatge i el +resultats competitius amb altres algorismes, segons el tipus d'imatge i el tipus de codificació JPEG. \section{Escalador dels plans} @@ -1010,8 +1010,8 @@ \end{description} Tal com hem explicat a l'apartat \ref{sec:plans-color}, alguns dels plans de -color de la imatge poden haver estat delmats abans de codificar independentment -els plans (DCT 2D i quantització). La imatge final descodificada ha de tenir +color de la imatge poden haver estat delmats abans de codificar-los independentment +(DCT 2D i quantització). La imatge final descodificada ha de tenir tots els plans de color de la mateixa mida. Per això al descodificar ens cal interpolar dels punts dels plans delmats, de manera que obtinguem les seves dimensions originals. Cal recordar que el codificador delmarà els plans @@ -1029,7 +1029,8 @@ linealment els punts del pla final a partir de la versió delmada descodificada, tot i que només funciona pels delmats 4:2:2 i 4:2:0. \revisar{Cal citar on explico la -notació 4:x:y?}. En el cas de 4:2:2, interpola cada punt final amb els dos punts +notació 4:x:y?} +En el cas de 4:2:2, interpola cada punt final amb els dos punts més propers del pla delmat. Hem de recordar que segons l'especificació JFIF \cite{jfif}, els plans delmats a la meitat en horitzontal, no tindran punts coincidents amb els del pla @@ -1096,7 +1097,7 @@ necessitarem un algorisme convertidor de YCbCr a RGB. Les extensions JFIF permeten anotar en quins plans de color s'ha codificat la -imatge. Per defecte es codifica amb YCbCr, +imatge. A la \texttt{libjpeg} per defecte es codifica amb YCbCr, però també s'hi poden indicar codificacions RGB o CMYK. Nosaltres només hem implementat el convertidor YCbCr a RGB, ja que no ens hem trobat imatges que utilitzessin altres configuracions de color. @@ -1147,9 +1148,8 @@ paisatges), la resolució (de quina distància es miraran els punts de la imatge), i l'objectiu de la restauració (impressió, postprocessat). Les mesures objectives -que hem vist no tenen en consideració tots paràmetres, i per tant no ens -semblen suficients per avaluar útilment els resultats dels algorismes. I en part així -justifiquem l'existència d'una aplicació informàtica com la que presentem. En +que hem vist no tenen en consideració tots aquests paràmetres, i per tant no ens +semblen suficients per avaluar prou útilment els resultats dels algorismes. En aquest apartat, quan comparem algorismes, ens referirem a les opinions d'uns pocs individus després d'haver escollit manualment tant els algorismes com els paràmetres de la cadena de descodificació. @@ -1409,7 +1409,7 @@ gràfica. Aquesta tecnologia ens permet publicar una base de codi única per a Linux/X-Windows, Macintosh OS X i Microsoft Windows. A més el programa està preparat per a ser traduït a diferents idiomes, havent publicat de moment -l'interfície en català, esperanto i anglès. +la interfície en català, esperanto i anglès. Abans de la publicació del programa, l'hem mostrat a un petit nombre d'individus que ens han corroborat consideracions del seu disseny: els @@ -1489,7 +1489,7 @@ zona d'altes freqüències, el seu contrast es veurà reduït. Per cada punt de la imatge, considerem que si hem reduït molt el contrast local respecte la descodificació convencional, -val més utilitzar el valor del pícsel d'aquesta descodificació simple. +val més utilitzar el valor del pícsel d'aquesta última. Avaluem tota la imatge segons el contrast local per cada punt $i,j$ de la imatge. El contrast el valorem segons Michelson: \revisar{Ho he tret de la Viquipèdia. Crec que és prou conegut com per @@ -1536,7 +1536,7 @@ un pla de color delmat co-situat i un d'inter-situat pel cas 4:2:2.} \subsection{Delmat 4:2:2} -Comencem pel cas 4:2:2. El valor de croma del pla delmat, a la +En el cas 4:2:2 el valor de croma del pla delmat, a la codificació, ha estat calculat segons la mitjana aritmètica dels dos punts originals més propers. Aquest algorisme proposa fer el mateix amb el pla de @@ -1599,7 +1599,7 @@ croma ponderada segons $Y_1$ i $Y_2$ (amb els càlculs pertinents de la lluminositat) i $\epsilon_h$. Fem el mateix amb el punt $Y_{o2}$, $Y_3$, $Y_4$, i la mateixa $\epsilon_h$. -Finalment, a partir d'aquestes noves cromes dels punts $Y_o1$ i $Y_o2$, i d'unes +Finalment, a partir d'aquestes noves cromes dels punts $Y_{o1}$ i $Y_{o2}$, i d'unes versions de la lluminositat de $Y_{o1}$ i $Y_{o2}$ (segons la mitjana dels seus punts de lluminositat més propers), fem la ponderació per aconseguir $Y_o$, aquest cop segons un