author | viric@mandarina |
Mon, 01 Dec 2008 20:25:09 +0000 | |
changeset 248 | e07157da85c9 |
parent 247 | 20f497435c50 |
child 249 | 1edf85242c71 |
permissions | -rw-r--r-- |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1 |
\documentclass[catalan,a4paper,titlepage,12pt]{book} |
199 | 2 |
\usepackage{graphicx} |
3 |
\usepackage{ucs} |
|
4 |
\usepackage[utf8x]{inputenc} |
|
5 |
\usepackage{babel} |
|
6 |
\usepackage{units} |
|
7 |
\usepackage{amsmath} |
|
209 | 8 |
\usepackage{amssymb} |
199 | 9 |
\usepackage{subfigure} |
204 | 10 |
\usepackage{icomma} |
223 | 11 |
\usepackage{paralist} % compact enumerations |
206 | 12 |
\usepackage{url} |
223 | 13 |
%\usepackage{makeidx}%,showidx} % This latter shows the indexed in the margin |
203 | 14 |
\usepackage[margin=1cm,font=footnotesize]{caption} |
200 | 15 |
%\usepackage{a4wide} |
223 | 16 |
%\usepackage{natbib} No volem referències que no siguin números. |
17 |
\bibliographystyle{caplain} |
|
199 | 18 |
|
19 |
\title{Restauració d'imatges JPEG} |
|
20 |
\author{Lluís Batlle} |
|
21 |
\date{\today} |
|
22 |
||
230 | 23 |
\setcounter{tocdepth}{1} |
24 |
||
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
25 |
% For in-paragraph lists of a), b), c). |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
26 |
\newcommand{\subcite}[1]{\emph{#1)}} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
27 |
|
203 | 28 |
\newcommand{\decimal}[1]{\sepnum{,\!}{.}{}{#1}} |
29 |
||
245 | 30 |
%\newcommand{\revisar}[1]{\marginpar{\scriptsize #1}} |
31 |
\newcommand{\revisar}[1]{} |
|
207 | 32 |
|
203 | 33 |
\newcommand{\figura}[2]{ |
34 |
\begin{figure}[!htp] |
|
35 |
\centering |
|
36 |
\includegraphics[width=13cm]{#1} |
|
37 |
\caption{#2} |
|
38 |
\end{figure} |
|
39 |
} |
|
40 |
\newcommand{\figuraw}[3]{ |
|
41 |
\begin{figure}[!htp] |
|
42 |
\centering |
|
43 |
\includegraphics[width=#1]{#2} |
|
44 |
\caption{#3} |
|
45 |
\end{figure} |
|
46 |
} |
|
220 | 47 |
\newcommand{\reg}{$^\text{\textregistered}$} |
207 | 48 |
\makeindex |
49 |
||
199 | 50 |
\begin{document} |
51 |
||
52 |
\maketitle |
|
53 |
||
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
54 |
\tableofcontents |
223 | 55 |
% TODO: Remove subsections |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
56 |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
57 |
\chapter*{Introducció} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
58 |
|
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
59 |
La codificació d'imatges JPEG ofereix unes imatges bastant fidels amb molt pocs |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
60 |
bits per pícsel, reduint en bona mesura la mida dels fitxers d'imatge i els |
245 | 61 |
seus temps de transferència per xarxa. Per això ha estat molt popular en la publicació d'imatges |
230 | 62 |
per Internet, i ho continua sent en l'ambient domèstic degut a les càmeres |
245 | 63 |
\revisar{sent o essent?} |
64 |
digitals. Així doncs, creiem que qualsevol esforç a millorar la descodificació d'aquestes imatges té molt |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
65 |
valor. |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
66 |
|
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
67 |
Ens hem decidit a analitzar i recopilar les nombroses tècniques |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
68 |
de restauració de JPEG aparegudes a diferents publicacions científiques. Alhora, |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
69 |
hem creat una aplicació informàtica lliure que implementa alguns dels algorismes |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
70 |
més interessants de la nostra cerca, a més d'establir una base per al |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
71 |
desenvolupament d'aquest tipus de tècniques. |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
72 |
|
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
73 |
Mitjançant aquest informe i el programa informàtic desenvolupat en paral·lel |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
74 |
introduïm al lector al món de la pèrdua d'informació JPEG, donem a conèixer |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
75 |
l'estat de l'art de la seva restauració, i proveïm als |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
76 |
manipuladors d'imatges (de centres fotogràfics, d'impressió, etc.) amb |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
77 |
les tècniques més prometedores d'aquest camp. Portem les idees de les |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
78 |
publicacions científiques de laboratori als |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
79 |
ordinadors personals de cases i centres de fotografia. |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
80 |
|
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
81 |
Al llarg del document trobarem vàries imatges exemplificant soroll i |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
82 |
restauracions, algunes d'elles difícils d'apreciar amb una impressora làser |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
83 |
convencional. Per això us remetem a la versió electrònica d'aquest document per |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
84 |
a poder apreciar les diferències entre imatges en detall. |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
85 |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
86 |
\chapter{Plantejament del problema} |
199 | 87 |
|
216 | 88 |
\section{La codificació JPEG} |
207 | 89 |
|
223 | 90 |
\revisar{Això ve de la Viquipèdia. Cal trobar una font millor.} |
205 | 91 |
El 1986 es va crear un comitè per establir un estàndard de codificació |
199 | 92 |
d'imatges de to-continu (continous tone), per exemple, fotografies. Aquest |
230 | 93 |
comitè tenia el nom de Joint Photographic Experts Group, i el 1992 la ISO i el |
94 |
CCITT van aprovar |
|
95 |
l'estàndard conegut arreu amb el nom de JPEG (ISO/IEC IS 10918-1 - ITU-T |
|
96 |
Recommendation T.81)\footnote{\url{http://www.jpeg.org/jpeg/index.html}}. |
|
97 |
Van decidir tant la |
|
98 |
codificació de la imatge, efectivament amb les sigles del grup, i en paral·lel |
|
99 |
també es va decidir un |
|
100 |
format de fitxer que contindria la informació codificada |
|
101 |
(JFIF - JPEG File Interchange Format), ja que en informàtica sovint convé |
|
245 | 102 |
conservar informació en fitxers. Aquest format de fitxer permetia especificari |
230 | 103 |
diferents espais de |
245 | 104 |
color pel JPEG, i el delmat d'alguns dels plans. |
230 | 105 |
Amb les càmeres digitals que directament |
106 |
conservaven les fotografies en JPEG i en fitxers, es va creure que la informació |
|
107 |
que permetia conservar el JFIF no era suficient. Va aparèixer l'EXIF, que |
|
245 | 108 |
permet conservar en un fitxer molta més informació de les circumstàncies de la fotografia |
109 |
(estat de la càmera, sensors, etc.), a més de la codificació JPEG. Molta gent sol anomenar els |
|
230 | 110 |
contenidors JFIF i EXIF indistintament ``Fitxers JPEG'', |
111 |
o bé amb la reducció a tres lletres obligada sota sistemes MS-DOS, |
|
112 |
``Fitxers JPG''. |
|
199 | 113 |
|
114 |
Dins l'estàndard s'hi inclouen dues formes diferents de codificar la imatge: amb |
|
204 | 115 |
pèrdues (\emph{lossy}) o sense (\emph{lossless}). Aquesta última no ha |
116 |
esdevingut |
|
199 | 117 |
popular, i segurament qualsevol imatge JPEG que trobem haurà estat codificada |
118 |
amb pèrdues. D'ara en endavant parlarem exclusivament de la compressió amb |
|
119 |
pèrdues. |
|
120 |
||
205 | 121 |
La imatge original, prèvia a codificar, la trobem definida amb un mapa de |
199 | 122 |
bits. Això significa que tenim la imatge dividida en espai, amb una malla |
245 | 123 |
\revisar{exemple de mapa de bits?} |
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
124 |
quadriculada de punts de color. Cada punt (pícsel, píxel, \emph{pel}, de l'anglès |
245 | 125 |
\emph{picture |
199 | 126 |
element}) ens defineix el color en aquell lloc de la quadrícula. Si tenim una |
245 | 127 |
quadricula de punts suficientment densa, a ull nu no podrem distingir-la |
128 |
i el conjunt semblarà una imatge de color contínua o de to continu -- |
|
205 | 129 |
sobretot |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
130 |
en el cas de que la imatge sigui d'origen fotogràfic, en comptes de generada |
199 | 131 |
artificialment. |
132 |
||
133 |
La codificació JPEG, mitjançant les pèrdues i diversos sistemes de compressió de |
|
134 |
dades, permet convertir el mapa de bits a una representació més densa, tot i que |
|
135 |
no fidel, de la original. Si tenim la imatge codificada amb els plans de color |
|
205 | 136 |
Vermell-Verd-Blau (RGB), amb 8 bits per punt i component, tenim una densitat |
199 | 137 |
d'informació de 24 bits per punt (bpp). Amb la compressió JPEG podem arribar a |
245 | 138 |
relacions de 1,5 bpp sense escatimar gaire en qualitat d'imatge. En el cas de tenir el |
199 | 139 |
mapa de bits a partir d'una fotografia, almenys a una densitat de pícsels de 72 |
223 | 140 |
ppi (72 pícsels per polzada) en horitzontal i vertical, el nostre sistema |
141 |
de visió en prou |
|
199 | 142 |
feines pot distingir la pèrdua de definició del JPEG a 1,5 bpp. |
245 | 143 |
\revisar{exemple d'aquestes poques pèrdues} |
199 | 144 |
|
145 |
En el procés de codificació (o compressió) JPEG, es llença part de la informació |
|
202 | 146 |
del mapa de bits original. Això vol dir que en el procés de descodificació |
205 | 147 |
tindrem només part de la informació original, i que per construir una |
148 |
nova imatge sencera, el descodificador s'ha d'inventar la part que falta. A |
|
149 |
les implementacions populars de descodificadors JPEG que hem vist |
|
201 | 150 |
\cite{libjpeg}, la invenció d'informació és molt simple, i no sempre encertada, |
199 | 151 |
considerant que cal obtenir una imatge el més semblant possible a l'original |
223 | 152 |
d'acord amb els criteris del nostre sistema visual. |
153 |
En aquest treball analitzarem |
|
199 | 154 |
tècniques que pretenen aprofitar millor la informació del JPEG per a reconstruir |
155 |
una versió més agradable de la imatge original codificada. |
|
156 |
||
216 | 157 |
\section{Popularitat} |
199 | 158 |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
159 |
\revisar{Cal fer que es vegi més això de la Popularitat} |
199 | 160 |
Des de l'establiment de l'estàndard JPEG com a norma ISO (10918-1) el 1994, i de |
161 |
la donació al domini públic de la implementació coneguda amb el nom de |
|
201 | 162 |
\texttt{libjpeg} \cite{libjpeg}, en versió 5 el mateix any, aquesta codificació |
230 | 163 |
ha esdevingut molt popular. Als inicis d'Internet, JPEG oferia la major densitat |
199 | 164 |
d'informació per a transmetre fotografies. La publicació de l'estàndard va |
165 |
alliberar l'ús de qualsevol restricció per patents, i la velocitat de procés de |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
166 |
la \texttt{libjpeg} va permetre introduir suport pel format en moltes |
199 | 167 |
aplicacions dedicades al processament d'imatges, fins i tot en els ordinadors |
168 |
personals. |
|
169 |
||
170 |
L'alta densitat de la informació JPEG, junt amb les restriccions d'ample de |
|
230 | 171 |
banda dels primers anys de l'Internet popular, van fer que la gent publiqués les |
199 | 172 |
seves fotografies en aquest format. Els límits en espai d'emmagatzematge també |
173 |
van causar que la gent conservés les fotografies només en aquest format. Aquesta |
|
245 | 174 |
corrent continua fins ara. Tot i que els amples de banda i l'espai per |
199 | 175 |
emmagatzemar informació han augmentat, la quantitat de fotografies |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
176 |
intercanviades i conservades també ha augmentat. Amb l'arribada dels escànners i |
199 | 177 |
les càmeres digitals a l'ús domèstic, el públic adquireix cada vegada més |
178 |
imatges, i més grans (més punts al mapa de bits). Des de fa temps hi ha |
|
179 |
implementacions de la codificació JPEG en maquinari, i per exemple la majoria |
|
180 |
de càmeres digitals donen els seus resultats en format JPEG. Fins i tot, per |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
181 |
desconeixença, prou gent utilitza aquest format per a guardar imatges |
199 | 182 |
artificials, que no són de to continu, simplement pel costum de veure les |
183 |
sigles JPEG arreu associades a imatges i a alta densitat d'informació. |
|
184 |
||
245 | 185 |
El comitè de JPEG l'any 2000 va crear un nou format d'imatge que pretén oferir |
199 | 186 |
millor densitat d'informació que el JPEG, però malgrat que han passat set anys |
245 | 187 |
des de la seva definició, no ha guanyat prou popularitat com per substituir el |
188 |
JPEG de 1992. Parlant exclusivament de la |
|
189 |
codificació d'imatges de to continu, el comitè garanteix que el JPEG 2000 no està subjecte a |
|
190 |
patents, però la seva implementació lliure més popular, |
|
191 |
\texttt{jasper}\footnote{\url{http://www.ece.uvic.ca/~mdadams/jasper/}}, |
|
202 | 192 |
conté molt de càlcul i ús de memòria, fins i tot pels ordinadors |
199 | 193 |
personals actuals. Tampoc hi ha implementacions en maquinari per part dels |
194 |
fabricants de càmeres digitals. Tanmateix, per posar un exemple popular, el |
|
195 |
% ref http://lists.brouhaha.com/pipermail/tumble-devel/2004q4/000007.html |
|
220 | 196 |
programari Adobe Acrobat\reg des de la versió 6 suporta la |
197 |
codificació JPEG2000 dins |
|
199 | 198 |
el seu format PDF 1.5. La majoria d'aplicacions d'Adobe, en la seva versió |
245 | 199 |
actual, suporten el format. D'acord amb alguns experts en el camp de fotografia, |
200 |
per això, per a densitats d'informació similars, opinen que el JPEG original |
|
201 |
encara els dóna |
|
199 | 202 |
una versió de la imatge més agradable, especialment en zones de textures d'alta |
203 |
freqüència. |
|
204 |
||
205 |
Així doncs, ara per ara trobem arreu imatges codificades en JPEG. És probable |
|
206 |
que d'una fotografia digital que ens interessa, només tinguem accés a la seva |
|
245 | 207 |
codificació JPEG. Això és el que ha motivat aquest treball, i per això |
202 | 208 |
perseguim la millor descodificació JPEG possible. Ja des dels inicis de l'ús del |
209 |
JPEG que s'han proposat mètodes per a descodificar millor les imatges; mètodes |
|
245 | 210 |
complexes computacionalment, però que ofereixen resultats millors que la |
202 | 211 |
descodificació convencional. De tota manera, pràcticament cap d'aquests mètodes |
199 | 212 |
s'ha popularitzat, i en prou feines n'existeix alguna aplicació més enllà de |
213 |
l'article publicat en una revista científica. En aquest treball hem procurat |
|
202 | 214 |
donar una visió global sobre l'estat de l'art en el camp de la descodificació |
199 | 215 |
JPEG, així com implementar uns quants mètodes convincents, i fer-los públics en |
216 |
forma d'una aplicació informàtica. Amb això pretenem fer disponibles els millors |
|
217 |
resultats d'anys de recerca acadèmica als nombrosos usuaris de JPEG. Si bé |
|
218 |
aquesta aplicació ha estat pensada per a versats en el camp de la imatge, hem |
|
219 |
procurat que l'usuari no necessiti coneixements experts de JPEG o de programació |
|
202 | 220 |
per a dur a terme les descodificacions. |
199 | 221 |
|
216 | 222 |
\section{Les pèrdues al JPEG} |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
223 |
\label{sec:perdues} |
199 | 224 |
|
245 | 225 |
El procés de codificació segueix els següents passos, que més endavant expliquem amb més detall: |
223 | 226 |
\begin{compactenum} |
245 | 227 |
\item Dividim la imatge en plans de color. |
228 |
\item Delmem alguns plans, si d'ells acceptem menys detall. Aquí tenim la |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
229 |
primera pèrdua d'informació important. |
245 | 230 |
\item Dividim cada pla resultant en blocs de 8x8 pícsels. |
223 | 231 |
\item Fem la transformada DCT (Apèndix \ref{sec:dct}) de |
232 |
dues dimensions a cada bloc, i així n'obtenim |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
233 |
la seva representació freqüencial en 64 coeficients. |
199 | 234 |
\item Quantitzem els coeficients. Aquí hi ha la segona pèrdua d'informació |
235 |
important. |
|
236 |
\item Codifiquem els coeficients quantitzats mitjançant tècniques sense pèrdues, |
|
237 |
i els guardem en un sol paquet de dades. Aquest serà el resultat de la |
|
238 |
codificació JPEG. |
|
239 |
\item Col·loquem el paquet de dades en un fitxer a part (mitjançant JIF, JFIF, |
|
240 |
EXIF, etc.), o bé dins el contenidor que creiem convenient (Postscript, PDF, |
|
241 |
DJVU, etc.). |
|
223 | 242 |
\end{compactenum} |
199 | 243 |
|
245 | 244 |
\noindent La descodificació, anàlogament, podem dividir-la en aquests passos: |
223 | 245 |
\begin{compactenum} |
245 | 246 |
\item Obtenim el paquet de dades JPEG del seu contenidor. |
199 | 247 |
\item Recuperem els valors dels coeficients quantitzats del paquet (que havíem |
248 |
guardat sense pèrdues). |
|
249 |
\item Desquantitzem els coeficients, decidint-ne un valor concret dins de |
|
250 |
l'interval de quantització corresponent. (Aquí el descodificador ha de prendre |
|
251 |
decisions, inventar, el millor possible) |
|
252 |
\item Fem la transformada inversa DCT dels coeficients obtinguts, per |
|
253 |
arribar a la representació en blocs de mapa de bits de 8x8 pícsels. |
|
223 | 254 |
\item Els blocs constitueixen la informació espacial dels plans, i cal |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
255 |
interpolar els plans delmats a la seva dimensió original. |
223 | 256 |
(Aquí el descodificador també ha |
199 | 257 |
d'inventar els nous punts al escalar la imatge) |
245 | 258 |
\item Ja tenim una versió dels tres plans que determinaven la imatge, i podem entregar-la a qui l'hagi demanada. |
223 | 259 |
\end{compactenum} |
199 | 260 |
|
261 |
||
216 | 262 |
\subsection{Plans de color i delmat} |
199 | 263 |
|
209 | 264 |
\label{sec:plans-color} |
199 | 265 |
Les nostres pantalles solen utilitzar tres plans per a determinar la imatge a |
245 | 266 |
mostrar en color: vermell, verd i blau. No generen qualsevol color de l'espectre, sino només punts d'aquests tres colors, cadascun amb intensitat variable. |
267 |
Les freqüències de llum dels tres colors s'avenen amb les de |
|
268 |
màxima sensibilitat dels nostres tres cons més importants, |
|
269 |
de manera que la pantalla |
|
199 | 270 |
produeix, pràcticament, l'excitació independent dels nostres cons, donant la |
230 | 271 |
sensació d'un espai de color continu (\cite{eyeandbrain}). |
272 |
Un color groc, per exemple, degut a les |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
273 |
respostes freqüencials dels cons, excita parcialment el con vermell |
230 | 274 |
i el con verd. |
245 | 275 |
La pantalla enganya els cons, excitant concretament una mica els del vermell, |
276 |
i també una mica els del verd. Els colors de blanc a negre es produeixen amb igual intensitat de llum vermella, verda i blava. |
|
277 |
\revisar{Imatge de la resposta dels cons} |
|
199 | 278 |
|
245 | 279 |
En el cas d'imatges en blanc i negre, d'un únic pla, l'etapa dels plans de color no participa en la codificació. En canvi, les imatges en color consisteixen en múltiples plans, com els de les pantalles, que les següents etapes tractaran de manera indepedent. |
280 |
El JPEG consisteix en una compressió d'imatges amb pèrdues, que introduirà defectes a les imatges que codifiquem. Volem que el sistema nerviós humà distingeixi poc |
|
281 |
aquests defectes, i veurem com una reorganització de la informació dels plans ens pot ajudar a aquest efecte. |
|
282 |
El nostre sistema nerviós distingeix variacions d'intensitat de llum millor que variacions |
|
283 |
de color, i en els plans RGB cada un porta una mica d'informació de la intensitat de llum. Hauríem d'introduir pocs defectes a cada pla, per a que el cervell en prou feines els distingís. |
|
284 |
De tota manera, hi ha una transformació de color que ens ajuda a distribuir la informació de la imatge en plans més útils. Els plans RGB es poden convertir mitjançant unes regles matemàtiques a tres nous plans que defineixen igualment la imatge: intensitat de |
|
285 |
llum, blavor i vermellor (YCbCr)\index{YCbCr}. Així tenim la informació separada en plans que el nostre cervell considera de manera diferent. Ara podem llençar molta informació dels plans de color (Cb i Cr), més que no pas podríem llençar dels plans RGB originals, si ho comparem en termes de percepció visual. |
|
199 | 286 |
|
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
287 |
\figura{flors-rgb2ycc.pdf}{ |
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
288 |
\label{fig:cb-rgb2ycc} Plans RGB i YCbCr d'una imatge en color.} |
200 | 289 |
|
230 | 290 |
Quan parlem d'imatges amb formes reconeixedores, aquestes formes són molt |
245 | 291 |
importants a l'hora d'avaluar la percepció de la imatge. Sovint les formes |
292 |
venen molt determinades per la lluminositat general (pla Y), i segurament per això l'ull humà es comporta més sensible als defectes del pla Y que als dels plans Cb i Cr (\cite{eyeandbrain}). En |
|
293 |
la majoria de codificadors JPEG veurem que els plans de color Cb i Cr es delmen i |
|
294 |
les següents etapes els quantitzen a menys qualitat. La majoria |
|
200 | 295 |
de càmeres digitals delmen per maquinari a 2:1 només en horitzontal, mentre que |
296 |
molts codificadors per programari delmen a 2:1 tant en horitzontal com en |
|
199 | 297 |
vertical. |
298 |
||
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
299 |
\figura{flors-cb-rescale.pdf}{\label{fig:cb-rescale}Delmat |
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
300 |
2:1 en horitzontal i vertical del pla Cb, i posterior |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
301 |
interpolació lineal de la versió delmada.} |
200 | 302 |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
303 |
A la descodificació, cal interpolar els plans delmats a la seva mida original, |
199 | 304 |
mitjançant interpolacions o altres tècniques. Convencionalment (per defecte a |
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
305 |
la \texttt{libjpeg} \cite{libjpeg}) es fa una interpolació lineal. I per a |
202 | 306 |
suplir la imatge final a la pantalla, cal invertir el canvi de plans de YCbCr |
307 |
a RGB. |
|
199 | 308 |
|
204 | 309 |
El delmat dels plans de color provoca una incomoditat visual sovint detectable a |
206 | 310 |
les imatges JPEG descodificades: el \emph{vessament de color} (\emph{color |
204 | 311 |
bleeding}). A la Figura \ref{fig:house-bleeding} podem veure'l. |
312 |
||
313 |
\figura{house-bleeding.pdf}{ |
|
314 |
\label{fig:house-bleeding} A l'esquerra, l'original. Al mig, JPEG amb màxima |
|
315 |
qualitat al pla de lluminositat, i qualitat 40 de \texttt{libjpeg} als plans de |
|
316 |
color, amb delmat 2x2:1x1:1x1 (als dos plans de color la meitat de punts en |
|
317 |
horitzontal i vertical que al pla de lluminositat). Es pot apreciar el vessament |
|
318 |
de color sobre les finestres. A la dreta, JPEG amb la mateixa codificació per |
|
319 |
plans, però sense delmar els plans de color. Ja no s'hi aprecia tant el |
|
320 |
vessament.} |
|
321 |
||
216 | 322 |
\begin{table}[!htp] |
323 |
\centering |
|
324 |
\begin{tabular}{|c|c|p{9cm}|} |
|
325 |
%\hline |
|
326 |
%{\bfseries 4:x:y} & {\bfseries Y,Cb,Cr} & |
|
327 |
%{\bfseries Significat} \\ |
|
328 |
%\hline |
|
329 |
\hline |
|
330 |
4:4:4 & 1x1,1x1,1x1 & Igual resolució de lluminositat i color \\ |
|
331 |
\hline |
|
332 |
4:2:2 & 2x1,1x1,1x1 & La meitat de punts de color en horitzontal \\ |
|
333 |
\hline |
|
334 |
4:2:0 & 2x2,1x1,1x1 & La meitat de punts de color en horitzontal, i la meitat |
|
335 |
en vertical \\ |
|
336 |
\hline |
|
337 |
4:1:1 & 4x1,1x1,1x1 & Un quart de punts de color en horitzontal \\ |
|
338 |
\hline |
|
339 |
\end{tabular} |
|
340 |
\caption{\label{tab:notacions}Notacions pels delmats dels canals de color |
|
341 |
per a les components YCbCr. La segona és típica de les càmeres digitals, i la |
|
342 |
tercera, el delmat per defecte al guardar imatges a diversos programes |
|
343 |
informàtics.} |
|
344 |
\end{table} |
|
345 |
||
346 |
\subsection{Blocs i quantització dels coeficients} |
|
205 | 347 |
|
245 | 348 |
Cada pla de la imatge es parteix en blocs de 8x8 pícsels, i cada bloc es |
349 |
codifica de manera independent. La informació es llença per bloc, |
|
350 |
independentment de la informació dels blocs veïns. Degut a això, sovint podem |
|
351 |
distingir molèsties visuals precisament a les vores entre blocs, on la |
|
352 |
informació pertany a dos blocs que el codificador ha considerat |
|
353 |
independentment. |
|
199 | 354 |
|
355 |
Dels 64 punts d'intensitat de color que determinen cada bloc de 8x8 pícsels |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
356 |
obtenim 64 coeficients mitjançant la transformada DCT 2D (Apèndix \ref{sec:dct}). |
205 | 357 |
Aquests es solen ordenar en |
202 | 358 |
freqüències de menor a major, utilitzant l'ordre de Zig Zag |
204 | 359 |
(Figura \ref{fig:jpeg-coeficients}) definit a l'estàndard de JPEG. |
199 | 360 |
|
361 |
Les taules de quantització determinen la quantitat d'informació que es llença |
|
362 |
per cada un dels 64 coeficients. Es sol utilitzar una taula de quantització |
|
363 |
diferent per cada pla del JPEG. S'han dut a terme nombrosos experiments per a |
|
204 | 364 |
decidir quins coeficients són més importants per a degradar mínimament la |
245 | 365 |
imatge, establint un grau d'importància entre ells. En la majoria |
366 |
d'aplicacions que codifiquen imatges en JPEG l'usuari té l'opció d'escollir la |
|
367 |
densitat de la informació codificada, que consisteix en quantitzar els |
|
368 |
coeficients més o menys, mantenint el grau d'importància entre ells. No tots |
|
369 |
els codificadors utilitzen els mateixos patrons de taules de quantització. Les |
|
370 |
càmeres digitals tenen limitacions als algorismes en maquinari, els programes |
|
371 |
de manipulació fotogràfica professionals poden tenir els seus propis estudis de |
|
372 |
les taules de coeficients, i la \texttt{libjpeg} \cite{libjpeg} simplement |
|
373 |
segueix les taules recomanades a l'estàndard (\cite{jpegspec}). Podem veure un |
|
374 |
exemple de quantitzadors a la Taula \ref{tab:example-qtable}. |
|
199 | 375 |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
376 |
\figuraw{13cm}{jpeg-coeficients.pdf}{ |
203 | 377 |
\label{fig:jpeg-coeficients} A l'esquerra, funció base de cada |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
378 |
coeficient de la DCT 2D. Al mig, contribució parcial dels coeficients de la DCT; |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
379 |
cada bloc s'ha reconstruït considerant nuls els coeficients de més altes |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
380 |
freqüències. A la dreta, la serialització dels coeficients en Zig |
242 | 381 |
Zag (\cite{jpegspec}, 4.3). Les imatges primera i tercera les hem obtingut |
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
382 |
de la Viquipèdia \cite{wiki:jpeg}.} |
200 | 383 |
|
384 |
% Taula de quantització |
|
385 |
\begin{table}[!htp] |
|
386 |
\centering |
|
387 |
{ \footnotesize |
|
388 |
\begin{tabular}{ccccccccc} |
|
389 |
80 & 55 & 50 & 80 & 120 & 200 & 255 & 305 \\ |
|
390 |
60 & 60 & 70 & 95 & 130 & 290 & 300 & 275 \\ |
|
391 |
70 & 65 & 80 & 120 & 200 & 285 & 345 & 280 \\ |
|
392 |
70 & 85 & 110 & 145 & 255 & 435 & 400 & 310 \\ |
|
393 |
90 & 110 & 185 & 280 & 340 & 545 & 515 & 385 \\ |
|
394 |
120 & 175 & 275 & 320 & 405 & 520 & 565 & 460 \\ |
|
395 |
245 & 320 & 390 & 435 & 515 & 605 & 600 & 505 \\ |
|
396 |
360 & 460 & 475 & 490 & 560 & 500 & 515 & 495 |
|
397 |
\end{tabular} |
|
398 |
} |
|
207 | 399 |
\caption{\label{tab:example-qtable} Taula de quantització pel pla d'intensitat |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
400 |
de llum segons la \texttt{libjpeg} \cite{libjpeg} a qualitat 30}, |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
401 |
$Q_i , \, i = 1,2,\ldots,64$ segons l'ordre de Zig Zag. |
200 | 402 |
\end{table} |
403 |
||
202 | 404 |
La quantització dels coeficients consisteix en conservar només el valor enter |
223 | 405 |
resultat d'arrodonir la divisió pel quantitzador. El primer coeficient (la |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
406 |
component contínua DC) no es quantitza independentment com els altres, sinó que es |
223 | 407 |
quantitza la diferència amb el primer coeficient del bloc anterior. Per cada un dels 63 |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
408 |
coeficients AC provinents de la transformada DCT 2D ($y_i$, on $i = 2,3,\ldots,64$) i |
245 | 409 |
per la diferència amb la component DC anterior ($y_1$) obtenim un enter arrodonint: |
223 | 410 |
\[ \hat y_i = \left[ \frac{y_i}{Q_i}\right] , \, i = 1,2,\ldots,64 \] |
202 | 411 |
|
245 | 412 |
La recuperació convencional de cada coeficient, especificada a l'estàndard |
204 | 413 |
\cite{jpegspec}, consisteix en multiplicar pel |
202 | 414 |
quantitzador, $ z_i = \hat y_i Q_i $. Podem veure un exemple dels coeficients |
245 | 415 |
d'un bloc a la Figura \ref{fig:quant-intervals}. De tota manera, a la |
204 | 416 |
descodificació, del coeficient original només sabem que es troba dins |
202 | 417 |
l'\emph{interval de quantització}: |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
418 |
\begin{equation} |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
419 |
\label{eqn:quant-intervals} |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
420 |
y_i \in Q_i \left[ \hat y_i - 0,5 \, , \, |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
421 |
\hat y_i + 0,5 \right] |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
422 |
\end{equation} |
200 | 423 |
|
203 | 424 |
\figura{block16x16simple.pdf}{ |
425 |
\label{fig:quant-intervals} Coeficients del bloc situat a la fila 17, |
|
200 | 426 |
columna 17, del pla de lluminositat de la Lena de 256x256, |
427 |
amb una compressió a qualitat 30 |
|
202 | 428 |
segons la \texttt{libjpeg} \cite{libjpeg}. Estan ordenats de menor a |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
429 |
major freqüència, com |
202 | 430 |
marca l'ordre de Zig Zag de JPEG. Es poden apreciar els intervals de |
200 | 431 |
quantització, i la pèrdua d'informació sobretot a les freqüències més altes.} |
432 |
||
223 | 433 |
A la pèrdua d'informació deguda a la quantització dels coeficients, un cop se'ls |
434 |
ha aplicat la transformada DCT 2D inversa, se l'anomena |
|
204 | 435 |
\emph{soroll de quantització}. Té diverses conseqüències visibles a la imatge |
223 | 436 |
descodificada de manera convencional i en podem veure una classificació a |
204 | 437 |
la Figura \ref{fig:quant-problems}. |
438 |
||
439 |
\figura{lena-blocking.pdf}{ |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
440 |
\label{fig:quant-problems} A l'esquerra, pla de lluminositat de la Lena de 256x256 pícsels, a |
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
441 |
qualitat 40 segons la \texttt{libjpeg}. A la dreta, tall on podem veure els |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
442 |
efectes |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
443 |
\subcite{a}d'ones |
207 | 444 |
(\index{ringing}\emph{ringing}) |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
445 |
als blocs que tenen un canvi brusc d'intensitat pel mig, |
247
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
446 |
\subcite{b}de blocs (\index{blocking}\emph{blocking}), entre blocs a les |
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
447 |
superfícies de lluminositat similar, i |
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
448 |
\subcite{c}d'escala (\index{staircase}\emph{staircase}), quan apareixen graons a |
20f497435c50
Arreglant les fotos per explicar la descomposició en plans de color.
viric@mandarina
parents:
246
diff
changeset
|
449 |
una zona de canvi d'intensitat. Al mig, el mateix tall de la imatge original, per comparar.} |
206 | 450 |
|
216 | 451 |
\chapter{Qualitat de les imatges} |
206 | 452 |
|
453 |
En aquest treball ens proposem millorar la descompressió d'imatges JPEG. Per |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
454 |
tant, cal que considerem quantificar la qualitat de la imatge resultant. |
206 | 455 |
|
210 | 456 |
Una mesura molt utilitzada, |
457 |
simplement pel fet de ser purament de teoria del senyal, |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
458 |
és l'\emph{error quadràtic mitjà} |
207 | 459 |
(\index{MSE}~MSE - \emph{Mean Squared Error}, \cite{comphandbook_mse}). Aquesta mesura ens permet comparar imatges |
206 | 460 |
descodificades amb la versió original. |
461 |
Per cada pla de la imatge que ens interessi, considerem error la diferència |
|
210 | 462 |
entre cada punt de la imatge original i el punt equivalent de la versió |
206 | 463 |
descodificada. Així, per una imatge original de $M$ columnes i $N$ files, |
464 |
\[ MSE = E \left[ (x - \hat x)^2 \right] = \frac{1}{M\,N} \sum_{m=1}^M \sum_{n=1}^N (x_{m,n} - \hat x_{m,n})^2 |
|
465 |
\] |
|
466 |
on $x_{m,n}$ representa la intensitat d'un punt de la imatge original, i $\hat |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
467 |
x_{m,n}$ l'anàleg de la versió descodificada. |
206 | 468 |
|
210 | 469 |
Als articles que fan referència a comparació d'imatges amb l'objectiu de mesurar |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
470 |
la similitud encara es fa servir més una funció de l'MSE, la \emph{relació senyal |
221 | 471 |
soroll de pic} (PSNR \index{PNSR}\label{sec:psnr} |
472 |
-- \emph{Peak Signal-to-Noise Ratio}), |
|
210 | 473 |
que es sol expressar en decibels i es defineix així: |
206 | 474 |
\[ PSNR = 10 \log_{10} \frac{255^2}{MSE} \] |
475 |
||
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
476 |
A molts articles on proposen mètodes per millorar la descompressió JPEG |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
477 |
justifiquen les millores amb un augment de la PSNR respecte a la descodificació convencional. |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
478 |
A la pràctica, |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
479 |
la PSNR es considera una mesura adequada quan es comparen imatges |
206 | 480 |
codificades a alta qualitat. En general, la PSNR mesura bé l'error percebut |
481 |
quan no hi ha gaires diferències a zones d'altes freqüències. Concretament, |
|
482 |
nosaltres no distingim gaire els desfasaments a altes freqüències, i en canvi la |
|
483 |
PSNR és molt sensible a desfasaments. En podem veure un exemple a la Figura |
|
484 |
\ref{fig:psnr-highfreq}. |
|
485 |
||
486 |
\figuraw{5cm}{bwlines.pdf}{\label{fig:psnr-highfreq}Aquestes dues imatges |
|
487 |
artificials les veiem molt semblants, però una està en contrafase amb |
|
210 | 488 |
l'altra. En aquest cas, la mesura de PSNR ens donaria un valor molt baix.} |
206 | 489 |
|
490 |
Per altra banda, la mesura de PSNR no es basa en peculiaritats del nostre |
|
491 |
sistema de visió, i al cap i a la fi és aquest qui jutjarà les imatges. |
|
492 |
Tot i que els judicis depenen de cada individu observador, sí que hi |
|
207 | 493 |
ha uns patrons comuns al sistema de visió humà (\index{HVS}HVS |
206 | 494 |
-- \emph{Human Vision |
495 |
System}). Com que volem una mesura |
|
496 |
calculable de la qualitat de la imatge, podem aprofitar els resultats de |
|
497 |
diverses investigacions que s'han dut a terme sobre aquest tema. Hi ha |
|
498 |
un procediment comú a tots els que hem analitzat: |
|
499 |
trobar un model matemàtic que doni resultats correlats a |
|
207 | 500 |
mitjanes d'opinions d'individus (\index{MOS}MOS - |
206 | 501 |
\emph{Mean Opinion Score}). |
502 |
||
503 |
La literatura de processat d'imatge ens proposa molts mètodes per a determinar |
|
245 | 504 |
la fidelitat d'una imatge recodificada. |
206 | 505 |
A \cite{mse2006} podem trobar una bona explicació de |
506 |
perquè la PSNR encara s'utilitza tant en mesures de qualitat, i una discussió |
|
507 |
sobre perquè la PSNR no és adequada per a mesurar la \emph{fidelitat del senyal |
|
210 | 508 |
visual}. |
206 | 509 |
|
207 | 510 |
A \cite{imgq2006} fan una bona revisió de mesures referencials (\index{FR}FR - |
206 | 511 |
\emph{Full-reference}, que |
512 |
comparen imatges distorsionades amb la seva original) existents, |
|
513 |
i a més proposen un nou |
|
207 | 514 |
\revisar{Cal dir aquí que això no ho hem implementat?} |
515 |
mètode de mesura amb qualitats interessants sobre la PSNR: el \index{VIF}VIF |
|
516 |
(\emph{Visual |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
517 |
Information Measure}). Aquest es basa en jutjar elements rellevants, considerant |
206 | 518 |
estadístiques d'escenes naturals, mitjançant transformades Wavelet dels plans i |
519 |
l'anàlisi de les subbandes a la imatge de referència i la distorsionada. |
|
520 |
||
521 |
Per altra banda, el nostre sistema de visió pot distingir la influència d'una |
|
522 |
distorsió |
|
523 |
sovint sense haver de comparar amb la imatge original. En el cas concret de la |
|
524 |
descodificació JPEG, hi ha diversos mètodes |
|
210 | 525 |
No-Referencials (\index{NR}NR) proposats. Aquí en citem tres dels més |
526 |
utilitzats als articles que hem analitzat: |
|
206 | 527 |
\begin{itemize} |
207 | 528 |
\item \index{MSDS}\emph{MSDS -- Mean Squared Difference of Slope}: proposat a |
529 |
\cite{msds1995}, aquest mètode pretén mesurar l'efecte de blocs. |
|
530 |
Es basa en analitzar les |
|
210 | 531 |
pendents d'intensitat a les zones entre blocs i a la frontera dels |
207 | 532 |
blocs adjacents. A imatges JPEG d'alta qualitat, el pendent d'intensitat |
533 |
abans del |
|
210 | 534 |
límit de bloc, i el d'entre blocs, serà similar. En canvi als JPEG de poca |
207 | 535 |
qualitat, el pendent d'intensitat abans del canvi de bloc serà diferent al que |
536 |
hi ha entre blocs. Aquestes diferències es sumen, tant les mesurades en |
|
210 | 537 |
horitzontal com en vertical i en diagonal, per a donar un únic valor NR. |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
538 |
\item \index{GBIM}\emph{GBIM -- Generalized Block-edge Impairment Metric}: |
207 | 539 |
a \cite{gbim1997} proposen mesurar les diferències d'intensitat dels |
206 | 540 |
punts que estan al límit dels blocs consecutius, i comparar-los amb les |
207 | 541 |
diferències d'intensitat de punts que no estan a límits de blocs. Comparteix |
542 |
objectiu amb l'MSDS, |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
543 |
mesurar l'efecte de blocs, considerant que els canvis bruscs d'intensitat de la |
206 | 544 |
fotografia original en general no coincidiran amb els límits blocs. |
545 |
\item \emph{jpeg\_score}: |
|
207 | 546 |
a \cite{jpegscore2002} proposen una mesura similar al \emph{GBIM}, però |
206 | 547 |
que a més té en compte que la imatge ha de tenir \emph{detall} (altes |
548 |
freqüències). Així doncs, contempla els canvis d'intensitat als punts entre |
|
549 |
blocs $B$, els canvis d'intensitat als punts interiors dels blocs $A$, i els |
|
550 |
canvis de sentit de la derivada de la intensitat $Z$, independentment dels punts |
|
551 |
que tingui la imatge. Llavors, proposen la mesura $S$ amb la següent forma: |
|
552 |
\[ S = \alpha + \beta B^{\gamma_1} A^{\gamma_2} Z^{\gamma_3} \] |
|
553 |
on els paràmetres $\alpha = -245,9$, $\beta = 261,9$, $\gamma_1 = -0.0240$, |
|
554 |
$\gamma_2 = 0.0160$ i $\gamma_3 = 0.0064$ són estimats a partir d'una |
|
555 |
correlació entre $S$ i MOS sobre una estadística de 30 imatges originals, 90 |
|
556 |
versions comprimides i 53 individus. Les MOS estaven acotades entre 1 i 10, |
|
210 | 557 |
llavors en la majoria dels casos $1 < S < 10$. |
206 | 558 |
\end{itemize} |
559 |
||
245 | 560 |
El programari vinculat a aquest informe, tot i que ofereix algunes de les |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
561 |
mesures matemàtiques presentades (GBIM i PSNR), fonamentalment |
245 | 562 |
permet comparar còmodament imatges a ull nu. Hem vist que hi ha moltes mesures per |
563 |
avaluar les restauracions d'imatges JPEG, i per això no hem dedicat gaire temps |
|
564 |
a implementar-les, prioritzant que l'usuari pugui avaluar les imatges segons el |
|
565 |
seu criteri, que segurament serà el més adequat a les seves circumstàncies. |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
566 |
|
216 | 567 |
\chapter{Tècniques} |
206 | 568 |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
569 |
a\label{sec:tecniques} |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
570 |
A l'apartat \ref{sec:perdues} hem explicat quines pèrdues de senyal |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
571 |
trobem al JPEG, i |
206 | 572 |
quins són els marges de llibertat que tenim a l'hora d'intentar recuperar la |
573 |
imatge original. Des de l'aparició de l'estàndard JPEG que s'han proposat |
|
210 | 574 |
mètodes per a millorar la descodificació mitjançant algorismes més complexes que |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
575 |
el convencional. Hem procurat estudiar l'estat de l'art del JPEG, i classificar |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
576 |
els mètodes més interessants segons les tècniques en què es basen. |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
577 |
|
216 | 578 |
\section{Projecció sobre l'espai de quantització} |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
579 |
|
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
580 |
\label{sec:qcsproject} |
245 | 581 |
|
582 |
Aquesta tècnica no millora les imatges en si, però l'expliquem a part perquè |
|
583 |
forma part de molts dels mètodes analitzats. Podem diferenciar els mètodes en |
|
584 |
dos grans grups: els de \emph{dins la cadena de descodificació}, i els de |
|
585 |
{post-processat}. Els primers consideren tota la informació del JPEG, i els |
|
586 |
segons treballen exclusivament a partir de la imatge obtinguda després d'una |
|
587 |
descodificació convencional. Els primers tenen un avantatge clar sobre els |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
588 |
altres, ja que poden accedir als intervals de quantització, als plans abans |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
589 |
d'interpolar-los i a la codificació del color. |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
590 |
|
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
591 |
Considerem la descodificació d'un pla del JPEG, no necessàriament amb el mètode |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
592 |
convencional. Si al recodificar el pla amb |
210 | 593 |
les mateixes taules de quantització obtenim la mateixa versió codificada |
594 |
que de l'original, |
|
223 | 595 |
vol dir que hem aplicat una descodificació \emph{no destructiva}. Els |
596 |
coeficients que hem restaurat podrien ben ser de la imatge original, ja que són |
|
597 |
coherents amb la informació del JPEG. Ara bé, com podem veure a la Figura |
|
598 |
\ref{fig:qcs-margins} el marge pot ser bastant gran segons les taules de |
|
599 |
quantització. |
|
600 |
Els mètodes de \emph{post-processat} no poden garantir aquesta coherència amb el |
|
230 | 601 |
JPEG ja que desconeixen les taules de quantització. Per exemple, amb programes |
602 |
informàtics |
|
603 |
de retoc fotogràfic es sol utilitzar el filtrat |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
604 |
Gaussià selectiu per a eliminar |
230 | 605 |
soroll, entre d'altres, de la descodificació JPEG convencional. |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
606 |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
607 |
\begin{figure}[!htp] |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
608 |
\centering |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
609 |
\begin{tabular}{ccc} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
610 |
\includegraphics[width=4cm]{images/lena-40-jpg.png} & |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
611 |
\includegraphics[width=4cm]{images/lenag-40-lowfreq.png} & |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
612 |
\includegraphics[width=4cm]{images/lenag-40-highfreq.png} \\ |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
613 |
a) & b) & c) |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
614 |
\end{tabular} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
615 |
\caption{\label{fig:qcs-margins}\subcite{a}Imatge Lena |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
616 |
codificada a qualitat 40 amb |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
617 |
la \texttt{libqjpeg}, \subcite{b}Descodificació segons els valors absoluts més |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
618 |
baixos dins dels intervals de quantització, \subcite{c}Descodificació segons els |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
619 |
valors absoluts més alts. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
620 |
} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
621 |
\end{figure} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
622 |
|
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
623 |
Alguns mètodes de descodificació basen la seva estimació d'imatge en |
210 | 624 |
filtres espacials, a vegades fins i tot en |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
625 |
processos iteratius. Per assegurar-se que la seva imatge no divergeix de la |
210 | 626 |
informació del JPEG, duen a terme el que anomenem \emph{projeccions sobre |
627 |
l'espai de quantització}. |
|
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
628 |
Quan tenen el nou pla espacial estimat, li fan la transformada DCT per blocs de |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
629 |
8x8, com a la codificació JPEG. Els coeficients obtinguts $z_i$ els comparen |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
630 |
amb els |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
631 |
intervals de quantització (eq. \ref{eqn:quant-intervals}), i si se'n surten, |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
632 |
els consideren al límit de |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
633 |
l'interval. |
210 | 634 |
\begin{equation} |
635 |
z'_i = \begin{cases} |
|
220 | 636 |
(\hat y_i - 0.5) Q_i & \text{si} \, z_i < (\hat y_i - 0.5) Q_i \\ |
637 |
(\hat y_i + 0.5) Q_i & \text{si} \, z_i > (\hat y_i + 0.5) Q_i \\ |
|
638 |
z_i & \text{altrament} |
|
210 | 639 |
\end{cases} |
640 |
\end{equation} |
|
206 | 641 |
|
210 | 642 |
Aquest mètode també es coneix a la literatura amb el nom de |
209 | 643 |
\index{QCS}\emph{projection to QCS} |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
644 |
(Quantization Constraint Set)\revisar{Hauríem d'introduir QCS abans?} o |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
645 |
\emph{projection to the constraint space}, |
210 | 646 |
i s'utilitza als mètodes \cite{froment2005}, \cite{orourke1995}, |
647 |
\cite{robertson2004}, i en general a qualsevol mètode iteratiu dels que hem |
|
648 |
vist. \revisar{Per |
|
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
649 |
garantir convergència? Evitar divergència?} |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
650 |
|
209 | 651 |
Alguns articles proposen projectar sobre \index{NQCS}NQCS |
652 |
(\emph{Narrow Quantization |
|
653 |
Constraint Set}), que consisteix en agafar un marge més estret que el de $[-0,5, |
|
654 |
0,5]$ al voltant del centre de l'interval de quantització. A \cite{liew2004}, |
|
655 |
per exemple, consideren millors els resultats amb un marge de $[-0,3, 0,3]$. |
|
656 |
||
216 | 657 |
\section{Coeficients com a variables aleatòries} |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
658 |
|
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
659 |
La descodificació convencional d'agafar el punt mig de l'interval de |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
660 |
quantització per cada coeficient compleix la \emph{no destrucció}. Aquest cas |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
661 |
resulta de considerar l'interval com una variable aleatòria |
245 | 662 |
uniforme, on el punt mig és el millor estimador de |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
663 |
la variable. |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
664 |
|
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
665 |
Alguns articles suggereixen altres distribucions de probabilitat. Per exemple, |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
666 |
a \cite{trianta2003} proposen utilitzar una v.a. exponencial, de |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
667 |
mitjana a determinar segons la imatge (veieu la Figura \ref{fig:fexp}). |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
668 |
A \cite{robertson2004}, |
209 | 669 |
\cite{trianta2002} i a |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
670 |
\cite{queiroz1998} |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
671 |
mencionen utilitzar una v.a. Laplaciana. El primer, basant-la amb la imatge a |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
672 |
descodificar. El segon, basant-la amb estadístiques d'altres |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
673 |
imatges.\revisar{Com ho fa exactament el primer?} |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
674 |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
675 |
\begin{figure}[!htp] |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
676 |
\centering |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
677 |
\begin{tabular}{ccc} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
678 |
\includegraphics[width=4cm]{images/lena.png} & |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
679 |
\includegraphics[width=4cm]{images/lena-40-jpg.png} & |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
680 |
\includegraphics[width=4cm]{images/lenag-40-fexp-1.png} \\ |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
681 |
a) & b) & c) |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
682 |
\end{tabular} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
683 |
\caption{\label{fig:fexp}\subcite{a}Imatge Lena |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
684 |
original, \subcite{b}Descodificació convencional de qualitat 40 segons la |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
685 |
\texttt{libjpeg}, considerant els |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
686 |
intervals com v.a. uniformes, \subcite{c}descodificació de la mateixa imatge |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
687 |
considerant v.a. exponencials de mitjana $\mu = 1$. |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
688 |
} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
689 |
\end{figure} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
690 |
|
216 | 691 |
\section{Segmentació i suavitzat} |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
692 |
|
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
693 |
Un dels efectes que més es distingeixen a les imatges codificades amb una |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
694 |
relació de compressió alta (més denses) és el de blocs. A les zones de baixes |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
695 |
freqüències, on en prou feines s'haurien de distingir canvis de lluminositat, |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
696 |
apareixen discontinuïtats segons el patró de blocs del JPEG. El cas més extrem |
210 | 697 |
el trobem quan a zones amb freqüències baixes es conserva només el |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
698 |
coeficient de component contínua (el primer, en ordre Zig Zag). |
209 | 699 |
\revisar{Ho il·lustrem?} |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
700 |
|
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
701 |
Aquest tipus d'efecte de blocs es pot arreglar amb un simple suavitzat, per |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
702 |
exemple amb un filtre de Gauss. Així, el que fan alguns algorismes |
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
703 |
consisteix en distingir les zones de baixes freqüències, |
209 | 704 |
i aplicar-los el suavitzat. A \cite{chen2001}, |
705 |
\cite{alfahoum2001}, \cite{pham2005}, \cite{trianta2003}, |
|
706 |
utilitzen filtres 2D simples; a \cite{lee1998}, |
|
707 |
\cite{kim1999} i \cite{queiroz1998} fan servir filtres adaptatius 2D; |
|
708 |
a \cite{gao2002} i a \cite{liew2004} |
|
709 |
fan servir filtres 1D; i a \cite{liu2002} |
|
210 | 710 |
fan servir interpolació lineal sobre la component contínua. |
208
b73581e219fa
More on techniques: QCS and Probability of the coeficients.
viric@llimona
parents:
207
diff
changeset
|
711 |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
712 |
Alguns algorismes més complexos suggereixen distingir i processar també |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
713 |
les zones d'altes |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
714 |
freqüències. A \cite{chen2001} i |
209 | 715 |
\cite{liu2002} fan servir un filtre amb molt |
716 |
poc pes dels punts del voltant; i a \cite{alfahoum2001}, \cite{pham2005} i |
|
717 |
\cite{trianta2003} fan servir filtres direccionals. |
|
718 |
||
216 | 719 |
\section{\index{POCS}POCS - Projecció sobre conjunts convexos} |
209 | 720 |
|
721 |
Els mètodes basats en POCS solen donar molts bons resultats, i apareixen a la |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
722 |
literatura des dels inicis de l'ús del JPEG. Malauradament l'algorisme és |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
723 |
bastant més lent que altres, |
209 | 724 |
ja que consisteix en dur a terme passos iteratius. |
725 |
||
210 | 726 |
Referint-me a l'explicació de POCS de \cite{yang1993}, assumim que |
727 |
les imatges $f$, representades amb un vector, són elements d'un |
|
209 | 728 |
espai de Hilbert $H$. Llavors, per qualsevol $f \in H$, la seva projecció $Pf$ |
729 |
en un conjunt tancat convex $C \subset H$ es defineix com l'element més proper a |
|
730 |
$f$ dins $C$. Això és: |
|
731 |
\[ \| f - Pf \| = \min_{g \in C} \| f - g \| \] |
|
732 |
||
733 |
Considerem que la projecció $Pf$ ve determinada exclusivament per $f$ i $C$; o |
|
734 |
sigui, per a cada conjunt tancat convex, tenim el seu projector. |
|
735 |
||
736 |
Si tenim diversos $C_i \subset H$, $i = 1, 2, \cdots, m$, i igual nombre de |
|
737 |
projectors $P_i$ sobre $C_i$, podem veure que per qualsevol imatge inicial $f_0$ |
|
738 |
podem obtenir una seqüència d'imatges $\{f_k\}$, |
|
739 |
\[ f_{k+1} = T_m T_{m-1} \cdots T_1 f_k \] |
|
740 |
on $T_i = I + \lambda_i ( P_i - I ), 0 < \lambda_i < 2, i = 1, 2, \cdots, m$. |
|
741 |
Aquesta seqüència convergeix al punt |
|
742 |
\[ f^* \in C_0 \triangleq \bigcap_{i=1}^{m} C_i . \] |
|
743 |
||
744 |
Relacionant POCS amb la millora d'imatges, el que ens cal fer és tenir un |
|
745 |
conjunt tancat convex $C_i$ (i el seu projector $P_i$) per cada característica |
|
746 |
de la imatge. Llavors, per a $m$ característiques diferents, podem trobar la |
|
747 |
imatge $f^*$ que millor les compleix. Iterativament, apliquem tots els |
|
210 | 748 |
projectors, partint de la primera aproximació $f_0$ |
749 |
a la imatge desitjada. Sovint |
|
209 | 750 |
aquesta primera aproximació consisteix de la descodificació convencional |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
751 |
\revisar{fer referència a la dec. convencional?} de JPEG. |
209 | 752 |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
753 |
Els mètodes basats en POCS solen tenir el QCS \revisar{fer-hi referència?} com a |
209 | 754 |
conjunt tancat convex involucrat $C_1$, |
210 | 755 |
i solen presentar només un altre conjunt que els |
209 | 756 |
distingeix dels altres mètodes ($m=2$). A \cite{yang1993} intenten reduir les |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
757 |
discontinuïtats dels punts entre blocs amb $C_2$ i a \cite{weer2002} |
209 | 758 |
utilitzen un $C_2$ basat amb prèvia classificació dels punts en regions |
759 |
homogènies de la imatge. En canvi, \cite{yang1997} incorpora |
|
760 |
fins a sis conjunts per eliminar \emph{l'efecte de blocs} i amb especial |
|
761 |
incís \emph{l'efecte d'ones}. |
|
762 |
||
216 | 763 |
\section{\index{MAP}Maximum A Posteriori} |
206 | 764 |
|
246 | 765 |
Aquesta tècnica és similar a la de POCS en els aspectes de que és iterativa, i té projeccions |
209 | 766 |
sobre conjunts convexes. Estrictament, a POCS els mètodes venen |
767 |
definits pels conjunts convexes involucrats. Amb la tècnica de MAP el que es |
|
246 | 768 |
busca és la maximització d'una funció determinada, considerant la informació que sabem |
769 |
de la imatge. Aquesta funció avalua les imatges segons diferents mesures preses de la imatge, i hauria de donar un valor alt per mesures que considerem d'imatge més correcta, i un valor baix per mesures que considerem d'imatge incorrecta. Per exemple, podem establir una mesura de si hi ha poques o moltes diferències entre el color dels pícsels entre blocs. Com més diferències hi hagi entre aquests pícsels, més baix és el valor que retorna la funció. |
|
209 | 770 |
|
246 | 771 |
En el cas del JPEG, l'objectiu és maximitzar la funció sempre i quan mantenim els |
209 | 772 |
coeficients dins els intervals de quantització. Si $\hat z$ és la nostra imatge |
246 | 773 |
estimada a la descodificació, $Z$ és el conjunt d'imatges amb coeficients dins |
774 |
el QCS, i $P(z)$ una funció que mesura la imatge tal com hem explicat abans: |
|
775 |
\[ \hat z = \max_{z \in Z} P(z) \] |
|
209 | 776 |
|
246 | 777 |
Els mètodes que hem vist utilitzen funcions $P(z)$ dues vegades derivables, i |
778 |
minimitzen mitjançant el \emph{mètode del gradient}. A \cite{orourke1995} i a |
|
779 |
\cite{robertson2004} utilitzen com a funció un model de camp aleatori de Huber-Màrkov. A |
|
780 |
\cite{froment2005} utilitzen una versió adaptada de la norma de Variació Total |
|
781 |
(TV). |
|
209 | 782 |
|
216 | 783 |
\section{Altres mètodes de recuperació de plans} |
209 | 784 |
|
785 |
Alguns mètodes (\cite{jung1998}, \cite{kwon2002}) |
|
786 |
utilitzen transformacions d'ondetes, ja que aquestes aporten |
|
787 |
informació freqüencial i espacial. Amb la primera poden distingir zones de més i |
|
788 |
menys textures per aplicar \emph{segmentació}, i amb la segona poden tractar els |
|
789 |
efectes de bloc, que estan determinats en espai. |
|
790 |
||
791 |
A \cite{nosratinia2002} i \cite{hp2004} utilitzen la recompressió JPEG de |
|
792 |
versions desplaçades de la imatge descodificada de manera convencional, fent una |
|
793 |
mitjana de les múltiples versions de les imatges desplaçades descodificades. |
|
794 |
||
216 | 795 |
\section{Recuperació del color basada en lluminositat} |
209 | 796 |
|
797 |
Tal com hem vist a l'apartat \ref{sec:plans-color}, |
|
246 | 798 |
el JPEG aïlla tota la informació de tonalitat de color en dos |
216 | 799 |
plans que es codifiquen a menys qualitat que el de lluminositat. Totes les |
209 | 800 |
tècniques que hem presentat fins ara es poden utilitzar per recuperar qualsevol |
801 |
dels plans del JPEG, però a la literatura també trobem tècniques que utilitzen |
|
216 | 802 |
la correlació entre lluminositat i color per a recuperar millor els plans |
246 | 803 |
cromàtics, sovint delmats fins i tot. |
209 | 804 |
|
216 | 805 |
A \cite{coudoux2004} detecten les cantonades del pla de lluminositat, i les |
209 | 806 |
utilitzen amb un algorisme adaptatiu |
807 |
per corregir els vessaments de color deguts a l'escalat. A \cite{sugita2006} |
|
808 |
ponderen els canvis d'intensitat dels plans de color d'acord amb els canvis |
|
246 | 809 |
d'intensitat del pla de lluminositat, per a imatges YUV en general. Aquest l'últim l'hem adaptat |
810 |
al delmat del JPEG, explicat en detall a l'Apèndix \ref{sec:colorponderat}. |
|
209 | 811 |
|
216 | 812 |
\chapter{Programari} |
206 | 813 |
|
211 | 814 |
Com hem vist a l'apartat anterior, trobem nombrosos articles sobre la millora de |
815 |
la descompressió JPEG. Malauradament, no trobem els algorismes implementats en |
|
220 | 816 |
cap aplicació popular. GIMP i Adobe |
817 |
Photoshop\reg, possiblement els processadors de mapes de bits més populars, |
|
211 | 818 |
només suporten la descodificació convencional. A la última versió (6b) de la |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
819 |
\texttt{libjpeg} tampoc hi trobem res d'especial. A la seva documentació |
220 | 820 |
hi trobem una declaració d'intencions per incorporar mètodes de restauració a la |
211 | 821 |
versió 7, però sembla que el desenvolupament d'aquesta llibreria es va aturar |
822 |
precisament a la 6b el 1998. |
|
823 |
||
824 |
Així doncs hem trobat oportú construir una aplicació informàtica que ofereixi |
|
825 |
als professionals de la imatge accés relativament fàcil als algorismes de |
|
826 |
restauració més destacats. Com explicàvem al primer apartat d'aquest document, |
|
827 |
la codificació JPEG es continua utilitzant activament, i per tant molts usuaris |
|
828 |
es poden beneficiar d'una iniciativa com aquesta. |
|
829 |
||
220 | 830 |
Quan hem buscat implementacions dels algorismes de restauració analitzats, |
831 |
n'hem trobat molt poques, |
|
832 |
i la majoria d'aquestes poques estaven escrites en Matlab. Els intèrprets de |
|
211 | 833 |
Matlab els trobem pràcticament només a les universitats o dins departaments |
220 | 834 |
d'investigació d'empreses, però la majoria de professionals de la imatge ni els |
835 |
posseiran ni els sabran utilitzar. Nosaltres hem desenvolupat tota l'aplicació i |
|
211 | 836 |
els algorismes en C i C++, ja que ens semblen els llenguatges més populars i a |
837 |
l'abast de qualsevol gràcies a diversos compiladors i enllaçadors lliures |
|
838 |
disponibles. Aquí tenim un llistat de les principals característiques |
|
839 |
del programa: |
|
840 |
\begin{itemize} |
|
220 | 841 |
\item Només permet manipular una imatge JPEG alhora, junt amb versions |
246 | 842 |
restaurades o que teníem guardades a disc. |
211 | 843 |
\item Tot el procés i emmagatzematge intern de la informació de les imatges |
246 | 844 |
es realitza en coma flotant de 32 bits (\texttt{float} en C), per evitar masses |
845 |
pèrdues per arrodoniment als càlculs. |
|
211 | 846 |
\item El programa requereix que l'usuari entengui la part de descodificació JPEG |
246 | 847 |
que hem explicat al primer apartat, ja que és ell qui determinarà com es realitzaran diversos |
848 |
passos d'aquesta descodificació. |
|
211 | 849 |
\end{itemize} |
850 |
||
851 |
L'aplicació inclou implementacions dels algorismes de |
|
852 |
restauració que ens han semblat més prometedors, i també permet comparar |
|
853 |
còmodament diferents versions d'una imatge, bé a ull nu, bé amb mesures |
|
854 |
matemàtiques. A l'hora d'escollir els algorismes, ens hem regit pels següents |
|
855 |
criteris: |
|
856 |
\begin{itemize} |
|
857 |
\item No ens importa la complexitat de l'algorisme en temps de computació o |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
858 |
memòria. No tractarem vídeo, sinó imatges estàtiques. Alguns articles presenten |
211 | 859 |
novetats exclusivament en el camp de la restauració ràpida, tot i que no |
220 | 860 |
aconsegueixen recuperacions tan bones com alguns algorismes més lents. |
211 | 861 |
\item Hem considerat que els exemples d'imatge presentats al mateix article |
220 | 862 |
ofereixen una bona idea del millor resultat que l'algorisme permet assolir. |
863 |
Creiem que |
|
864 |
alguns articles presenten molt poca millora (valorant subjectivament a ull nu) |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
865 |
com per a tenir-los en compte a la nostra implementació. |
211 | 866 |
\item L'algorisme ha de permetre millorar imatges en general. Alguns només |
246 | 867 |
milloren determinades zones de molt baixes freqüències, o fins i tot només |
868 |
serveixen per a dibuixos artificials en comptes de fotografies. |
|
211 | 869 |
\item L'efecte de l'algorisme s'ha de caracteritzar per pocs paràmetres, i |
870 |
aquests han de tenir una relació monòtona amb els seus efectes. |
|
871 |
En la majoria de casos l'usuari no |
|
246 | 872 |
entendrà algorisme, i en variarà intuïtivament els paràmetres. Si |
211 | 873 |
l'usuari no pot entendre l'efecte que té cada paràmetre, segurament refusarà |
246 | 874 |
manipular-ne aquests paràmetres, o fins i tot no el tindrà en compte a l'hora de restaurar. |
211 | 875 |
\end{itemize} |
876 |
||
877 |
Podem classificar els algorismes segons la seva funció. A la nostra aplicació |
|
878 |
distingim: |
|
879 |
\begin{itemize} |
|
880 |
\item Mesures no-referencials. Per exemple, GBIM. |
|
881 |
\item Mesures referencials (comparació). Per exemple, la PSNR. |
|
882 |
\item Elements de la cadena de descodificació. |
|
883 |
\end{itemize} |
|
884 |
||
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
885 |
A qualsevol imatge que hàgim carregat dins de l'aplicació li podem aplicar els |
220 | 886 |
algorismes de mesura, i obtindrem els resultats en un nou quadre flotant de |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
887 |
text. Per a les mesures referencials haurem d'escollir les dues imatges a |
211 | 888 |
comparar, en comptes de només una. |
889 |
||
216 | 890 |
\section{La cadena de descodificació} |
211 | 891 |
|
892 |
Un cop l'usuari hagi determinat quina imatge JPEG vol recuperar, li caldrà |
|
893 |
decidir com es descodificarà. L'aplicació li donarà un esquema de la |
|
894 |
\emph{cadena de descodificació} amb les baules buides, similar al de la Figura |
|
895 |
\ref{fig:cadena}. Segons on es troben de la cadena, les baules fan referència |
|
896 |
a una part o altra del procés de descodificació. A cada tipus de baula li |
|
246 | 897 |
correspon un tipus d'algorisme. Considerem només aquests quatre tipus: |
211 | 898 |
\begin{itemize} |
899 |
\item Desquantització i transformada inversa de cada pla. |
|
900 |
\item Restaurador de pla |
|
901 |
\item Escalador dels plans |
|
902 |
\item Canvi de plans de color. Per exemple, de YCbCr a RGB. |
|
903 |
\end{itemize} |
|
904 |
||
905 |
\figura{cadena.pdf}{\label{fig:cadena}Cadena de descodificació d'un JPEG amb |
|
906 |
tres plans de color, amb les |
|
907 |
baules (amb el contorn més gruixut) on hi podem col·locar diversos |
|
908 |
algorismes. Les línies de punts separen els diferents tipus d'algorismes |
|
909 |
acceptats. D'esquerra a dreta: \emph{desquantitzador i IDCT2D}, |
|
220 | 910 |
\emph{restauradors de pla}, \emph{escalador}, \emph{canvis de plans de color}.} |
211 | 911 |
|
220 | 912 |
L'aplicació posarà a disposició de l'usuari uns quants algorismes de cada |
913 |
tipus, i aquest podrà col·locar els que cregui adients a la cadena, com si es |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
914 |
tractessin de baules. |
220 | 915 |
Alguns dels algorismes que col·locarem a les baules són configurables. |
211 | 916 |
Això vol dir que el resultat que donin dependrà tant de l'entrada de |
220 | 917 |
l'algorisme (provinent de la baula anterior) com de la configuració dels seus |
230 | 918 |
paràmetres interns. Podem veure l'aspecte de l'aplicació mentre intentem |
919 |
restaurar un JPEG de poca qualitat de la imatge Lena a la Figura |
|
920 |
\ref{fig:qjpeg-screenshot}. Per entendre els noms d'algorismes que s'hi |
|
921 |
distingeixen, podem consultar la Taula \ref{tab:algnames}, pàg. |
|
922 |
\pageref{tab:algnames}. |
|
211 | 923 |
|
230 | 924 |
\figura{images/projecteui.png}{\label{fig:qjpeg-screenshot}Mostra de les |
925 |
principals finestres del programa. La principal, amb versions de la imatge a |
|
246 | 926 |
restaurar. A sota, la cadena de descodificació. A dalt a la dreta, de fons, la |
230 | 927 |
configuració de la baula de Froment. A l'esquerra, configuració de la baula |
246 | 928 |
HContrast.} |
230 | 929 |
|
930 |
\section{Desquantització i IDCT 2D de cada pla} |
|
211 | 931 |
|
932 |
\begin{description} |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
933 |
\item[entrada] els intervals de quantització d'un pla de la imatge codificada |
211 | 934 |
\item[sortida] una imatge d'intensitat espacial del pla |
935 |
\end{description} |
|
936 |
||
937 |
Aquest element té una doble funció: escollir quins punts de l'interval de |
|
938 |
quantització determinaran els coeficients freqüencials concrets, i dur a terme |
|
939 |
la transformada DCT 2D inversa. |
|
940 |
||
941 |
A l'hora d'escriure aquest document, a l'aplicació hi ha dos algorismes |
|
942 |
disponibles d'aquest tipus. El primer coincideix amb la descodificació |
|
943 |
convencional de JPEG escollint el punt mig dels intervals. I el segon considera |
|
944 |
la informació dels coeficients AC (tots menys la component contínua DC, el |
|
945 |
primer coeficient de cada bloc) com variables aleatòries exponencials d'igual |
|
220 | 946 |
mitjana, com a \cite{trianta2003}. L'usuari pot configurar-ne la mitjana. |
211 | 947 |
|
230 | 948 |
\section{Restaurador de pla} |
211 | 949 |
|
950 |
\begin{description} |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
951 |
\item[entrada] els intervals de quantització d'un pla de la imatge codificada |
211 | 952 |
\item[entrada] una imatge d'intensitat espacial del pla (imatge de partida) |
953 |
\item[sortida] una imatge d'intensitat espacial del pla (imatge millorada) |
|
954 |
\end{description} |
|
955 |
||
956 |
La majoria d'algorismes de restauració de JPEGs que hem trobat encaixen dins |
|
957 |
aquesta categoria. Partint d'un pla inicial (als articles sol ser una |
|
220 | 958 |
descodificació convencional) utilitzen diverses tècniques per obtenir una versió |
211 | 959 |
millor del mateix pla. A l'apartat \ref{sec:tecniques} ja hem parlat d'aquest |
960 |
tipus d'algorismes. |
|
961 |
||
962 |
Cal destacar que als articles utilitzen imatges d'escala de grisos ja que |
|
963 |
exclusivament intenten millorar un pla de la imatge. A la nostra aplicació podem |
|
220 | 964 |
utilitzar aquests algorismes a qualsevol dels plans del JPEG. Igualment, podem |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
965 |
encadenar tants algorismes d'aquests tipus com vulguem, on cada un determinarà |
211 | 966 |
la imatge inicial del seu successor. |
967 |
||
968 |
Quan escrivim aquestes línies, l'aplicació dóna implementacions de |
|
969 |
\cite{orourke1995}, \cite{froment2005}, \cite{robertson2004}, |
|
970 |
\cite{trianta2003}, \cite{nosratinia2002} i \cite{hp2004}. No tots aquests |
|
971 |
algorismes utilitzen la \emph{projecció a l'espai de quantització} per assegurar |
|
972 |
el compliment de la informació del JPEG, així que també hem inclòs aquesta |
|
973 |
projecció com a algorisme independent. A part de les |
|
974 |
propostes d'articles, inclou un |
|
975 |
senzill algorisme de millora de les zones amb textura desenvolupat per nosaltres |
|
220 | 976 |
mateixos que aprofita la naturalesa del programa: combinar i encadenar |
246 | 977 |
tècniques. L'explicarem més endavant a l'Apèndix \ref{sec:hcontrast}. |
211 | 978 |
Finalment, la implementació actual també inclou uns mòduls especials |
979 |
que ens permeten alterar els |
|
980 |
plans mitjançant una altra aplicació informàtica. Són els següents: |
|
981 |
\begin{itemize} |
|
220 | 982 |
\item \emph{salvar pla a disc}. Si l'usuari col·loca aquesta funció dins |
246 | 983 |
d'una baula de |
211 | 984 |
restauració de pla, al aplicar la descodificació definida per la cadena, el pla |
985 |
d'entrada de la baula s'escriurà a disc. Llavors l'usuari pot utilitzar el seu |
|
220 | 986 |
programa preferit de manipulació fotogràfica aplicant les tècniques que cregui |
987 |
convenients al pla, i guardar els canvis per a reincorporar-los a la cadena amb |
|
988 |
la funció que descrivim a continuació. |
|
211 | 989 |
\item \emph{carregar pla de disc}. El pla d'entrada d'aquest algorisme |
990 |
s'ignorarà completament, i el pla de sortida vindrà determinat per un fitxer |
|
991 |
guardat a disc. |
|
992 |
\end{itemize} |
|
993 |
Aquestes dues funcions les hem utilitzat a la pràctica per millorar els plans |
|
994 |
amb un filtre del GIMP\footnote{GNU Image Manipulation Program |
|
220 | 995 |
\url{http://www.gimp.org/}}:, el suavitzat Gaussià sel·lectiu. |
211 | 996 |
Aquesta tècnica també la utilitzen |
997 |
combinada amb altres a \cite{queiroz1998} i \cite{kim1999}, i alguns manuals de |
|
220 | 998 |
GIMP la recomanen per eliminar part del soroll d'algunes imatges JPEG. |
211 | 999 |
Si utilitzem les funcions de \emph{salvar el |
1000 |
pla}, apliquem el filtre amb el GIMP, \emph{el carreguem a la cadena}, i després |
|
1001 |
hi apliquem una \emph{projecció sobre l'espai de quantització}, obtenim |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1002 |
resultats competitius amb altres algorismes, segons el tipus d'imatge i el |
211 | 1003 |
tipus de codificació JPEG. |
1004 |
||
230 | 1005 |
\section{Escalador dels plans} |
211 | 1006 |
|
1007 |
\begin{description} |
|
1008 |
\item[entrada] $n$ plans independents, possiblement alguns delmats |
|
220 | 1009 |
\item[sortida] $n$ plans, tots de la mateixa mida |
211 | 1010 |
\end{description} |
1011 |
||
220 | 1012 |
Tal com hem explicat a l'apartat \ref{sec:plans-color}, alguns dels plans de |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1013 |
color de la imatge poden haver estat delmats abans de codificar-los independentment |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1014 |
(DCT 2D i quantització). La imatge final descodificada ha de tenir |
246 | 1015 |
tots els plans de color de la mateixa mida. Per això al descodificar ens cal |
1016 |
interpolar dels punts dels plans delmats, de manera que obtinguem les seves |
|
1017 |
dimensions originals. Cal recordar que el codificador delmarà els plans |
|
1018 |
dividint les dimensions originals per un número enter, i els delmats més comuns |
|
1019 |
són 4:2:2 i 4:2:0. |
|
211 | 1020 |
|
216 | 1021 |
Al programa hem implementat tres tipus d'escaladors. El primer simplement |
220 | 1022 |
duplica els punts per aconseguir les dimensions desitjades. Per exemple, si |
216 | 1023 |
tenim els valors per punt en una fila $1,5,3,2,6$, i ens cal doblar la seva |
1024 |
mida horitzontal, l'algorisme ens donarà $1,1,5,5,3,3,2,2,6,6$. La |
|
1025 |
\texttt{libjpeg} també inclou una implementació d'aquest escalador. |
|
1026 |
||
220 | 1027 |
El segon escalador, provinent també de la \texttt{libjpeg} |
1028 |
(on l'anomenen \emph{fancy upsampler}), interpola |
|
1029 |
linealment els punts del pla final a partir de la versió delmada |
|
1030 |
descodificada, tot i que |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1031 |
només funciona pels delmats 4:2:2 i 4:2:0. \revisar{Cal citar on explico la |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1032 |
notació 4:x:y?} |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1033 |
En el cas de 4:2:2, interpola cada punt final amb els dos punts |
216 | 1034 |
més propers del pla delmat. Hem de recordar que segons l'especificació JFIF |
1035 |
\cite{jfif}, els plans |
|
220 | 1036 |
delmats a la meitat en horitzontal, no tindran punts coincidents amb els del pla |
216 | 1037 |
final. Així doncs, obtenim els punts de color per les posicions dels punts de |
1038 |
lluminositat de la següent manera: |
|
1039 |
\[ \hat p_o = \frac{3}{4} p_1 + \frac{1}{4} p_2 \] |
|
220 | 1040 |
on $\hat p_o$ és el valor d'un punt d'una fila final, |
1041 |
$p_1$ és el del punt de la fila delmada més proper a |
|
1042 |
$\hat p_o$, i $p_2$ el del segon punt més proper. La Figura |
|
216 | 1043 |
\ref{fig:fancy422} representa visualment el procés. |
1044 |
||
220 | 1045 |
\figuraw{10cm}{escalat422fancy.pdf}{\label{fig:fancy422}Reescalat d'una fila |
216 | 1046 |
de la component de color de delmat 4:2:2 (a dalt) |
1047 |
a la mida final determinada per la lluminositat (a baix), mitjançant |
|
1048 |
interpolació dels dos punts més propers.} |
|
1049 |
||
220 | 1050 |
En el cas 4:2:0 el segon escalador interpola cada punt final mitjançant |
219 | 1051 |
els quatre punts més propers: |
1052 |
\[ \hat p_o = \frac{9}{16} p_1 + \frac{3}{16} (p_2 + p_3) + \frac{1}{16} p_4 \] |
|
1053 |
on $\hat p_o$ és el valor d'un punt del pla final, $p_2$ i $p_3$ |
|
1054 |
són els dels altres dos punts més propers, i finalment $p_4$ el valor del punt |
|
1055 |
menys proper dels quatre. Podem veure-ho gràficament a la Figura |
|
1056 |
\ref{fig:fancy420}. |
|
1057 |
||
1058 |
\figuraw{10cm}{escalat420fancy.pdf}{\label{fig:fancy420}Reescalat d'una porció |
|
1059 |
de la component de color de delmat 4:2:0 (en forma de creu dreta) |
|
1060 |
a la mida final determinada per la lluminositat (en forma de cercles), |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1061 |
mitjançant interpolació lineal entre els quatre punts més propers.} |
220 | 1062 |
|
1063 |
Finalment, hem implementat un tercer escalador, basat en \cite{sugita2006}, |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1064 |
on utilitzem una tècnica similar a la interpolació lineal, |
220 | 1065 |
però a més d'obtenir el |
1066 |
color de cada punt final basant-nos amb els quatre punts de color més propers, |
|
1067 |
ho ponderem segons les variacions de llum del pla de lluminositat (quan no ha |
|
1068 |
estat delmat). A |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1069 |
l'Apèndix \ref{sec:colorponderat} expliquem l'algorisme en detall. |
220 | 1070 |
|
1071 |
Tot i que fins ara hem parlat del cas general de que les imatges JPEG tenen |
|
1072 |
unes mides múltiples de la mida de bloc (8 pícsels), en realitat aquesta |
|
1073 |
condició no s'exigeix a les imatges a codificar. La mida original de la imatge |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1074 |
està escrita al contenidor del JPEG, i l'escalador del descodificador és |
220 | 1075 |
l'encarregat de retallar |
1076 |
els últims blocs en horitzontal i vertical per a aconseguir la imatge final de |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1077 |
la mida que toca. Així, si una imatge mesura 124 pícsels d'amplada, |
246 | 1078 |
s'haurà codificat amb 16 blocs de 8 columnes, però de l'últim |
220 | 1079 |
bloc de cada fila (codificada d'esquerra a dreta) |
1080 |
només tindrem en compte la meitat esquerra descodificada |
|
246 | 1081 |
de 4 columnes d'amplada. |
216 | 1082 |
|
230 | 1083 |
\section{Canvi de plans de color} |
211 | 1084 |
|
1085 |
\begin{description} |
|
219 | 1086 |
\item[entrada] $n>1$ plans de color |
1087 |
\item[sortida] $n>1$ plans de color |
|
211 | 1088 |
\end{description} |
1089 |
||
1090 |
Aquests algorismes transformen els plans de color codificats del JPEG als plans |
|
219 | 1091 |
exigits pel sistema gràfic del nostre ordinador. La nostra aplicació ara mateix |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1092 |
necessita que les imatges finals tinguin \subcite{a}un |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1093 |
pla de lluminositat o \subcite{b}tres plans vermell-verd-blau. |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1094 |
Segurament la majoria dels |
211 | 1095 |
nostres JPEG a color estaran codificats amb lluminositat-blavor-vermellor, i per |
219 | 1096 |
tant, per a mostrar-los correctament a l'aplicació, |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1097 |
necessitarem un algorisme convertidor de YCbCr a RGB. |
219 | 1098 |
|
220 | 1099 |
Les extensions JFIF permeten anotar en quins plans de color s'ha codificat la |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1100 |
imatge. A la \texttt{libjpeg} per defecte es codifica amb YCbCr, |
220 | 1101 |
però també s'hi poden indicar codificacions RGB o CMYK. Nosaltres només hem |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1102 |
implementat el convertidor YCbCr a RGB, ja que no ens hem trobat imatges que |
220 | 1103 |
utilitzessin altres configuracions de color. |
1104 |
||
1105 |
\chapter{Anàlisi dels mètodes implementats} |
|
223 | 1106 |
% TODO: one or two draws (logos), taken from webs. Real cases. |
220 | 1107 |
|
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1108 |
Al programa hem donat uns noms als algorismes que hem implementat. A la Taula |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1109 |
\ref{tab:algnames} els teniu tots llistats, i permetran seguir millor els |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1110 |
comentaris dels seus resultats. |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1111 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1112 |
\begin{table}[!htp] |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1113 |
\centering |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1114 |
\begin{tabular}{|ll|} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1115 |
\hline |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1116 |
IDCTFloat & Descodificació convencional per a un pla \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1117 |
IDCTFExp & Coeficients com v.a. exponencials, de \cite{trianta2003} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1118 |
Froment & \cite{froment2005} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1119 |
O'Rourke & \cite{orourke1995} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1120 |
Robertson & \cite{robertson2004} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1121 |
Trianta & \cite{trianta2003} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1122 |
Nosratinia & \cite{nosratinia2002} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1123 |
HP & \cite{hp2004} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1124 |
QCS Projection & Apartat \ref{sec:qcsproject} \\ |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1125 |
HContrast & Apèndix \ref{sec:hcontrast} \\ |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1126 |
% QCSKeepHF & XXXXXXXXXXXXXX \\ % Val més que no fem cas d'aquest mètode |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1127 |
LoadPlane & Carregar el pla de disc \\ |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1128 |
SavePlane & Salvar el pla a disc \\ |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1129 |
IntScaler & Escalador que duplica el valor dels punts delmats \\ |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1130 |
FancyScaler & Escalador interpolador lineal \\ |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1131 |
LumScaler & \cite{sugita2006}, Apèndix \ref{sec:colorponderat} \\ |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1132 |
\hline |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1133 |
\end{tabular} |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1134 |
\caption{\label{tab:algnames}Noms curts dels mètodes |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1135 |
implementats al programa amb l'algorisme corresponent.} |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1136 |
\end{table} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1137 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1138 |
En aquest anàlisi no ens hem basat gaire amb mesures matemàtiques, ja que |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1139 |
precisament un dels objectius que ens havíem proposat a l'hora de fer aquest |
246 | 1140 |
programari consisteix en permetre a l'usuari comparar resultats a ull nu, variant |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1141 |
paràmetres manualment. L'usuari dels algorismes, en aquest cas, provarà |
246 | 1142 |
d'aplicar diversos mètodes i a anar variant els seus paràmetres, fins a obtenir |
1143 |
una imatge que l'acontenti pel seu objectiu. |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1144 |
Els articles ofereixen mesures objectives dels |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1145 |
resultats de diversos algorismes, i no sempre hi ha una correspondència clara |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1146 |
entre aquestes mesures i l'opinió d'individuals. A l'avaluació hi |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1147 |
prenen part almenys: el contingut de la imatge (persones, dibuixos, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1148 |
paisatges), la |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1149 |
resolució (de quina distància es miraran els punts de la imatge), i |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1150 |
l'objectiu de la restauració (impressió, postprocessat). Les mesures objectives |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1151 |
que hem vist no tenen en consideració tots aquests paràmetres, i per tant no ens |
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1152 |
semblen suficients per avaluar prou útilment els resultats dels algorismes. En |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1153 |
aquest apartat, quan comparem algorismes, ens referirem a les opinions |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1154 |
d'uns pocs individus després d'haver escollit manualment tant els algorismes com |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1155 |
els paràmetres de la cadena de descodificació. |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1156 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1157 |
\section{Plans a molt poca qualitat} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1158 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1159 |
Aquest tipus d'imatges (qualitat$<40$ a \texttt{libjpeg}) |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1160 |
es caracteritzen per efectes de bloc molt importants |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1161 |
i poc detall de textures. |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1162 |
Partint d'una descodificació convencional, els algorismes iteratius |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1163 |
no-adaptatius de \emph{Froment}, \emph{O'Rourke}, |
246 | 1164 |
i \emph{Robertson} són els que ens han donat millors resultats. |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1165 |
El de Trianta, com que funciona de manera |
246 | 1166 |
adaptativa segons informació espacial, no distingeix bé els blocs del JPEG |
1167 |
de blocs de cantonades reals de la imatge. Els de \emph{Nosratinia} i |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1168 |
\emph{HP} suavitzen excessivament la |
246 | 1169 |
imatge, comparant amb els tres primers que hem mencionat. Podeu veure un exemple |
1170 |
d'aquestes imatges a baixa qualitat a la Figura \ref{fig:lena40g}. |
|
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1171 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1172 |
\begin{figure}[!htp] |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1173 |
\centering |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1174 |
\begin{tabular}{cc} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1175 |
\includegraphics[width=6cm]{images/lena.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1176 |
\includegraphics[width=6cm]{images/lena-40-jpg.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1177 |
a) & b) \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1178 |
\includegraphics[width=6cm]{images/lena-40-froment-8-1-f-sharp30.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1179 |
\includegraphics[width=6cm]{images/lena-40-jp2.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1180 |
c) & d) |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1181 |
\end{tabular} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1182 |
\caption{\label{fig:lena40g}Codificació/descodificació de la imatge Lena de 256x256 |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1183 |
pícsels: |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1184 |
\subcite{a}original, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1185 |
\subcite{b}JPEG qualitat 40 - PSNR 44,09 dB, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1186 |
\subcite{c}descodificació amb |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1187 |
\emph{Froment} \cite{froment2005} (pesos de Froment, 8 iteracions, |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1188 |
mida inicial de pas 1) i posterior esmolat amb GIMP |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1189 |
(Filtre ``afila'', amb afilament 30) - PSNR 44,99 dB, i |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1190 |
\subcite{d}versió JPEG2000 (amb \texttt{jasper} versió 1.701.0) amb la mateixa |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1191 |
relació de compressió que la JPEG - PSNR 68,89 dB.} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1192 |
\end{figure} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1193 |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1194 |
L'algorisme de \emph{Trianta}, però, si l'encadenem després d'algun dels altres |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1195 |
algorismes que suavitzen la imatge, permet recuperar bé moltes cantonades |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1196 |
accentuant-les. Cal mencionar que aquest algorisme no manté els coeficients dins |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1197 |
l'espai de quantització, i per això després d'aplicar-lo, recomanem una |
246 | 1198 |
\emph{projecció sobre el QCS}. Podeu veure un exemple del seu ús en compressió a molt baixa |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1199 |
qualitat a la Figura \ref{fig:lena10g}. |
220 | 1200 |
|
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1201 |
\begin{figure}[!htp] |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1202 |
\centering |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1203 |
\begin{tabular}{cc} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1204 |
\includegraphics[width=6cm]{images/lena.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1205 |
\includegraphics[width=6cm]{images/lena-10-jpg.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1206 |
a) & b) \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1207 |
\includegraphics[width=6cm]{images/lena-10-froment-12-1-f.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1208 |
\includegraphics[width=6cm]{images/lena-10-froment-12-1-f-trianta-2-2,5-1-5-500-qcs.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1209 |
c) & d) |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1210 |
\end{tabular} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1211 |
\caption{\label{fig:lena10g}Codificació/descodificació de la imatge Lena de |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1212 |
256x256 pícsels a molt baixa qualitat: |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1213 |
\subcite{a}original, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1214 |
\subcite{b}JPEG qualitat 10 - PSNR 26,04 dB, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1215 |
\subcite{c}descodificació amb |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1216 |
\emph{Froment} \cite{froment2005} (pesos de Froment, 12 iteracions, |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1217 |
mida inicial de pas 1) - PSNR 28,92 dB, i |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1218 |
\subcite{d}descodificació amb \emph{Froment} (com abans) seguit de |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1219 |
\emph{Trianta} \cite{trianta2002} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1220 |
($\sigma_{lf}=2, \sigma_{hf}=2,5, \sigma_{\text{WSMM}}=1, \mu = 5, T=500$) i |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1221 |
\emph{projecció sobre QCS} - PSNR 27,90 dB} |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1222 |
\end{figure} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1223 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1224 |
Respecte als plans de color, que en el cas de poca qualitat segurament hauran |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1225 |
estat delmats i codificats amb unes taules de quantització de valors molt alts, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1226 |
donaran grans blocs diferenciats de color a la imatge. El que ens ha semblat més |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1227 |
correcte ha estat utilitzar algorismes que suavitzin molt, com els de |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1228 |
\emph{Nosratinia} i \emph{HP}. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1229 |
Utilitzant l'escalador ponderat per lluminositat ens disminuirà |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1230 |
els vessaments de color importants que podem trobar en un cas com aquest. |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1231 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1232 |
Si l'ús excessiu d'algorismes suavitzants ens ha reduït el contrast de la |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1233 |
imatge, podem arreglar-ho a la imatge final mitjançant un programa de retoc |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1234 |
fotogràfic. |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1235 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1236 |
\section{Efecte d'ones superior al de blocs} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1237 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1238 |
Quan els plans es codifiquen a la qualitat sovint oferta per defecte als |
246 | 1239 |
programes de manipulació gràfica ($75$ a la \texttt{libjpeg}), els |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1240 |
efectes d'ones sovint superen els de blocs. En aquests casos, |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1241 |
\emph{Nosratinia} i \emph{HP} no |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1242 |
els eliminen del tot, i els algorismes iteratius de \emph{Froment}, |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1243 |
\emph{O'Rourke} i |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1244 |
\emph{Robertson} ofereixen bons resultats, tot i que amb masses iteracions o passos |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1245 |
per iteració massa grans (més de |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1246 |
10) suavitzarem la imatge més del compte. Per exemple, quan apliquem |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1247 |
excessivament \emph{O'Rourke} o \emph{Robertson} (molt similars), els gradients d'intensitat |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1248 |
de la imatge sofriran una mena de reducció de color. Les petites diferències de |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1249 |
tonalitat desapareixeran, deixant només les cantonades més marcades. |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1250 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1251 |
També hem comprovat l'efectivitat de restaurar el pla de lluminositat amb el |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1252 |
\emph{filtre Gaussià selectiu} del GIMP, i involucrar el resultat al mig de la |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1253 |
cadena de descodificació. Si es tracta d'una codificació d'alta qualitat (amb |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1254 |
intervals de quantització prou petits), aquest algorisme no ens suavitzarà zones |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1255 |
d'altes freqüències. Això sí, caldrà aplicar una projecció sobre el QCS abans de |
246 | 1256 |
l'escalador per a obtenir una versió més fidel a la codificació |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1257 |
original. |
220 | 1258 |
|
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1259 |
Respecte als plans de color, l'escalador de color que pondera segons la |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1260 |
lluminositat ens dóna els millors resultats dels tres que hi ha implementats en |
246 | 1261 |
totes les imatges que hem provat, també en el cas de JPEG d'alta qualitat si és que hi |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1262 |
ha delmat de color. Podem veure un exemple a la Figura \ref{fig:nenufar75} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1263 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1264 |
\begin{figure}[!htp] |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1265 |
\centering |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1266 |
\begin{tabular}{cc} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1267 |
\includegraphics[width=6cm]{images/nenufar.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1268 |
\includegraphics[width=6cm]{images/nenufar-75.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1269 |
a) & b) \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1270 |
\includegraphics[width=6cm]{images/nenufar-75-froment-6-fancy.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1271 |
\includegraphics[width=6cm]{images/nenufar-75-froment-6-lumscaler.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1272 |
c) & d) |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1273 |
\end{tabular} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1274 |
\caption{\label{fig:nenufar75}Codificació/descodificació d'una fotografia d'un |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1275 |
nenúfar de 256x256 pícsels, amb la qualitat per defecte de la \texttt{libjpeg}. |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1276 |
\subcite{a}original, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1277 |
\subcite{b}JPEG qualitat 75, delmat 4:2:0 - PSNR R/G/B 38,47/47,33/33,87 dB, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1278 |
\subcite{c}descodificació amb |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1279 |
\emph{Froment} \cite{froment2005} (pesos de Froment, 6 iteracions, |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1280 |
mida inicial de pas 1) i escalador \emph{Fancy} - PSNR R/G/B 41,26/46,43/37,52 dB, i |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1281 |
\subcite{d}descodificació amb \emph{Froment} (com abans) seguit de |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1282 |
l'escalador \emph{LumScale} - PSNR R/G/B 42,12/47,92/39,82 dB} |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1283 |
\end{figure} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1284 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1285 |
En el cas de que algunes textures es perdin massa pel suavitzat d'alguns |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1286 |
algorismes, podem utilitzar l'algorisme \emph{HContrast} (Apèndix \ref{sec:hcontrast}) |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1287 |
per a intentar recuperar-les. Podem veure un exemple del seu ús a la Figura |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1288 |
\ref{fig:masxa}. A la mateixa figura també hi podem distingir clarament les |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1289 |
millores de color gràcies a l'algorisme \emph{O'Rourke} i el \emph{LumScaler}. |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1290 |
|
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1291 |
\begin{figure}[!htp] |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1292 |
\centering |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1293 |
\begin{tabular}{cc} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1294 |
\includegraphics[width=6cm]{images/masxa-crop-jpg.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1295 |
\includegraphics[width=6cm]{images/masxa-crop-froment-5.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1296 |
a) & b) \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1297 |
\includegraphics[width=6cm]{images/masxa-crop-froment-5-orourke-lum.png} & |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1298 |
\includegraphics[width=6cm]{images/masxa-crop-froment-5-orourke-lum-hcontrast-0,5.png} \\ |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1299 |
c) & d) |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1300 |
\end{tabular} |
246 | 1301 |
\caption{\label{fig:masxa}Descodificació d'una fotografia |
230 | 1302 |
publicada a Internet, de 256x256 pícsels. |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1303 |
\subcite{a}publicació original, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1304 |
\subcite{b}descodificació amb Froment \cite{froment2005} (pesos de Froment, 5 iteracions, mida |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1305 |
inicial de pas 1), |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1306 |
\subcite{c}descodificació amb Froment com abans, més O'Rourke \cite{orourke1995} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1307 |
(10 iteracions, $T=0,1$, mida inical de pas 1) als canals de color, i |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1308 |
l'escalador LumScaler ($\sigma_h = \sigma_v = 0,25$, |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1309 |
Apèndix \ref{sec:colorponderat}). |
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1310 |
\subcite{d}descodificació amb Froment i O'Rourke com abans, amb HContrast |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1311 |
(Llindar 0,05 i finestra de 7x7), i LumScaler també com abans.} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1312 |
\end{figure} |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1313 |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1314 |
\section{Dibuixos} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1315 |
|
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1316 |
Tot i que la codificació JPEG va ser pensada per a fotografies, hi ha gent que |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1317 |
l'ha utilitzat per a conservar i distribuir imatges artificials com dibuixos o |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1318 |
logotips. En aquests casos el soroll ocasionat per la pèrdua d'informació pot |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1319 |
ser més molest que en una fotografia codificada amb els mateixos paràmetres. |
230 | 1320 |
Fins el 1996 els dibuixos artificials a través d'Internet estaven dominats pel |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1321 |
format GIF, ja que fins el 1995 aquest format va ser de lliure ús. Des de |
246 | 1322 |
llavors, l'empresa Unisys va decidir fer respectar la patent inherent en el GIF. A |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1323 |
més, el format GIF limitava la imatge a 256 colors d'una paleta de 24 bits, amb |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1324 |
un dels colors representant la transparència (útil en la composició d'imatges |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1325 |
en una web). Quan Internet es va popularitzar, poc programari suportava el |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1326 |
format PNG, sobretot els navegadors web\footnote{Per exemple, |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1327 |
el Microsoft Internet Explorer |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1328 |
suporta PNGs només des de la versió 5, i el canal alfa de transparència del PNG |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1329 |
des de la versió 7.}. Llavors, bé pel límit de colors, bé per costum, molta gent |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1330 |
ha conservat imatges artificials en JPEG. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1331 |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1332 |
Els algorismes de recuperació analitzats donen resultats especialment bons en |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1333 |
aquest tipus d'imatges. Ens referim a imatges amb un contrast molt alt, |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1334 |
amb pocs colors i les cantonades molt ben marcades. Precisament això fa que ens |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1335 |
trobem més vessaments de color, i un acusat efecte d'ones. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1336 |
Els mètodes iteratius, |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1337 |
especialment \emph{O'Rourke} i \emph{Robertson}, combinats amb l'escalador |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1338 |
ponderat per lluminositat, ofereixen recuperacions |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1339 |
excel·lents en aquestes condicions. En podem veure un exemple a les Figures |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1340 |
\ref{fig:dibuix-logo} i \ref{fig:dibuix-stimpy}. |
220 | 1341 |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1342 |
\urldef{\logocopamon}\url{http://www.futsalcat.com/seleccioabsoluta/copamon/LOGO%20COPA%20DEL%20MON%202007.jpg} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1343 |
\urldef{\stimpy}\url{http://www.tvacres.com/images/stimpy.jpg} |
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1344 |
|
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1345 |
\begin{figure}[!htp] |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1346 |
\centering |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1347 |
\begin{tabular}{ccc} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1348 |
\includegraphics[width=6cm]{images/logo-copa-mon-jpg.png} & |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1349 |
\includegraphics[width=6cm]{images/logo-copa-mon-3orourke-7s-lum.png} \\ |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1350 |
a) & b) |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1351 |
\end{tabular} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1352 |
\caption{\label{fig:dibuix-logo}\subcite{a}Logotip d'un campionat del món |
230 | 1353 |
codificat amb JPEG, agafat d'Internet |
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1354 |
(\logocopamon). \subcite{b}Recuperació segons una baula |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1355 |
d'\emph{O'Rourke} (7 passos, mida de pas de 1, $T=0,1$) per canal, i |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1356 |
\emph{LumScaler}. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1357 |
} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1358 |
\end{figure} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1359 |
|
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1360 |
\begin{figure}[!htp] |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1361 |
\centering |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1362 |
\begin{tabular}{ccc} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1363 |
\includegraphics[width=4cm]{images/stimpy-jpg.png} & |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1364 |
\includegraphics[width=4cm]{images/stimpy-3orourke-5steps.png} \\ |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1365 |
a) & b) |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1366 |
\end{tabular} |
230 | 1367 |
\caption{\label{fig:dibuix-stimpy}\subcite{a}Personatge dibuixat |
1368 |
(Stimpy, de John Kricfalusi) |
|
1369 |
codificat amb JPEG, agafat d'Internet |
|
229
c3814dedd423
Added intro. Now the bibliography appears in the toc (I changed caplain.bst in the latex site programs.)
viric@llimona
parents:
228
diff
changeset
|
1370 |
(\stimpy). \subcite{b}Recuperació segons una baula |
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1371 |
d'\emph{O'Rourke} (5 passos, mida de pas de 1, $T=0,1$) per canal, i |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1372 |
\emph{LumScaler}. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1373 |
} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1374 |
\end{figure} |
220 | 1375 |
|
1376 |
\chapter{Conclusions i treball futur} |
|
241 | 1377 |
|
1378 |
La popularitat de la codificació JPEG va ser el principal |
|
1379 |
motiu per a preocupar-nos per la seva descodificació. Moltes fotografies |
|
1380 |
ens són accessibles únicament en aquest format. L'evidència de que el procés de |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1381 |
descodificació es podia millorar, i que en prou feines existissin eines |
241 | 1382 |
informàtiques a aquest efecte, ens semblen motius suficients per a dedicar |
1383 |
aquest projecte al desenvolupament d'un descodificador JPEG interactiu com el |
|
1384 |
que hem presentat. En el procés d'investigació de les tècniques disponibles, hem |
|
1385 |
recopilat prou informació com per oferir un resum prou complet del camp de la |
|
1386 |
restauració d'imatges JPEG, i hem implementat alguns dels algorismes més |
|
1387 |
interessants dins aquest descodificador interactiu. |
|
1388 |
||
1389 |
En aquest document presentem tant els problemes de la codificació JPEG com |
|
1390 |
l'estat de l'art de la seva descodificació, convertint-se en el document ideal |
|
246 | 1391 |
pels catalano-parlants que vulguin introduir-se en aquest camp. |
241 | 1392 |
El programa informàtic representa una |
246 | 1393 |
plataforma còmoda per acostar les investigacions en aquest camp a |
1394 |
públic més profà. Nosaltres hem decidit aturar el desenvolupament de |
|
241 | 1395 |
l'aplicació de manera que ens permetés elaborar aquesta investigació, i alhora |
1396 |
usuaris ja se'n poguessin beneficiar. A partir d'aquest punt hem considerat |
|
1397 |
aquest projecte acabat, i hem publicat l'aplicació a Internet. Això no vol dir |
|
1398 |
que el programa no es pugui millorar, ni que deixem de treballar en ell; |
|
1399 |
ara altres programadors poden afegir-hi els seus algorismes, i a més podem |
|
1400 |
considerar la resposta dels usuaris. |
|
1401 |
||
1402 |
Hem publicat l'aplicació amb C++ sota la llicència GPL versió |
|
246 | 1403 |
2\footnote{\url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html}}; en part |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1404 |
perquè volem que la seva evolució continuï lliure i pública, i en part perquè |
241 | 1405 |
utilitzem |
246 | 1406 |
la llibreria Qt\footnote{\url{http://trolltech.com/}, que ens exigeix seguir |
1407 |
la llicència GPLv2.} |
|
241 | 1408 |
per a la interfície |
1409 |
gràfica. Aquesta tecnologia ens permet publicar una base de codi única per a |
|
1410 |
Linux/X-Windows, Macintosh OS X i Microsoft Windows. A més el programa està |
|
1411 |
preparat per a ser traduït a diferents idiomes, havent publicat de moment |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1412 |
la interfície en català, esperanto i anglès. |
241 | 1413 |
|
246 | 1414 |
Abans de la publicació del programa, l'hem mostrat a un petit nombre |
1415 |
d'individus que ens han corroborat consideracions del seu disseny: els |
|
1416 |
interessava més comparar les diferents restauracions a cop d'ull, independent |
|
1417 |
de qualsevol mesura matemàtica. I diferents usuaris (amb les seves |
|
1418 |
circumstàncies) solen arribar a diferents restauracions, cadascú preferint la |
|
1419 |
seva. Entre els comentaris dels usuaris i alguns investigadors hi preval el de |
|
1420 |
sorpresa i alegria de que per fi existeixi un programa com aquest. Per tant, |
|
1421 |
considerem que hem assolit els objectius de fer arribar tecnologia de |
|
1422 |
restauració JPEG recent dels laboratoris als usuaris, i hem recopilat l'estat |
|
1423 |
de l'art d'aquest camp amb la plusvàlua de resultats pràctics gràcies a les |
|
1424 |
pròpies implementacions d'algorismes. |
|
241 | 1425 |
|
223 | 1426 |
% Parlar amb els dels articles |
1427 |
% Acompliment d'objectius |
|
1428 |
% Usuaris contents |
|
1429 |
% Futures millores al programa |
|
1430 |
% - Publicació, Linux, Mac, Windows |
|
1431 |
% - Traducció |
|
1432 |
% - Manteniment |
|
1433 |
% - Vincles de col·laboració |
|
1434 |
% - Atendre recomanacions d'usuaris |
|
220 | 1435 |
|
1436 |
\appendix |
|
1437 |
||
230 | 1438 |
\chapter{Transformada DCT} |
223 | 1439 |
|
1440 |
\label{sec:dct} |
|
1441 |
||
1442 |
Al codificar els blocs de 8x8 pícsels de cada pla de la imatge, els apliquem una |
|
1443 |
transformada que es coneix amb el nom de FDCT (\emph{Forward Discrete Cosine |
|
1444 |
Transform}). Donats els 64 valors d'intensitat de cada pícsel, obtenim 64 nous |
|
1445 |
valors del domini DCT. El primer d'aquests nous 64 valors l'anomenem el |
|
1446 |
coeficient DC (de freqüència zero, component contínua), i els 63 restants |
|
1447 |
coeficients AC (de freqüència diferent de zero). Mitjançant la transformada |
|
1448 |
IDCT (\emph{Inverse DCT}) podem tornar a recuperar els valors dels pícsels, |
|
1449 |
donats els 64 valors del domini DCT. Per a un bloc de pícsels $s_{xy}$ |
|
230 | 1450 |
($x,y=0,1,\ldots,7$), la FDCT està establerta com (\cite{kou1995}): |
223 | 1451 |
\[ |
1452 |
S_{uv} = \frac{1}{4} C_u C_v \sum_{x=0}^7 \sum_{y=0}^7 s_{xy} |
|
1453 |
\cos \frac{(2x+1)u\pi}{16} |
|
1454 |
\cos \frac{(2y+1)v\pi}{16} |
|
1455 |
\] |
|
1456 |
donant els 64 valors del domini freqüencial $S_{uv}$ |
|
1457 |
($u,v=0,1,\ldots,7$) i la IDCT com: |
|
1458 |
\[ |
|
1459 |
s_{xy} = \frac{1}{4} C_u C_v S_{uv} \sum_{x=0}^7 \sum_{y=0}^7 |
|
1460 |
\cos \frac{(2x+1)u\pi}{16} |
|
1461 |
\cos \frac{(2y+1)v\pi}{16} |
|
1462 |
\] |
|
1463 |
on |
|
1464 |
\[ |
|
1465 |
C_m = \begin{cases} |
|
1466 |
\frac{1}{\sqrt{2}} & \text{si} \, m = 0 \\ |
|
1467 |
1 & \text{altrament} |
|
1468 |
\end{cases} |
|
1469 |
\] |
|
1470 |
||
228
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1471 |
Podem veure gràficament les bases de la transformada per coeficient, i la |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1472 |
influència gradual de les freqüències més altes a la Figura |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1473 |
\ref{fig:jpeg-coeficients}, pàg. \pageref{fig:jpeg-coeficients}. |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1474 |
|
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1475 |
\chapter{Algorismes en detall} |
9013bb932186
Added some images, and a section regarding jpeg-coded pictures.
viric@llimona
parents:
223
diff
changeset
|
1476 |
|
221 | 1477 |
\section{Manteniment de textures} |
1478 |
||
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1479 |
\label{sec:hcontrast} La majoria dels mètodes de millora de pla estudiats |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1480 |
utilitzen alguna mena de suavitzat per eliminar, entre altres, els efectes de |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1481 |
bloc. Si aquest suavitzat s'aplica a zones on hi ha textures d'alta freqüència, |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1482 |
el resultat pot empitjorar respecte a una descodificació convencional. En la |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1483 |
majoria de casos això es traduirà en un augment de la PSNR, però ja hem explicat |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1484 |
a l'apartat \ref{sec:psnr} com la PSNR no ens serveix com a mesura de qualitat |
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1485 |
en zones d'altes freqüències. |
221 | 1486 |
|
1487 |
És per això que hem proposat un mètode adaptatiu per a no empitjorar |
|
1488 |
aquest tipus de zones. Ens basem en que si suavitzem una |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1489 |
zona d'altes freqüències, el seu contrast es veurà reduït. Per cada punt de la |
221 | 1490 |
imatge, considerem que si hem |
246 | 1491 |
reduït molt el contrast local respecte la descodificació convencional, |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1492 |
val més utilitzar el valor del pícsel d'aquesta última. |
246 | 1493 |
Avaluem tota la imatge segons el contrast local per cada punt $i,j$ de la imatge. |
1494 |
El contrast el valorem segons |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1495 |
Michelson: \revisar{Ho he tret de la Viquipèdia. Crec que és prou conegut com per |
230 | 1496 |
no citar-ne cap font.} |
221 | 1497 |
\newcommand{\Itext}[1]{I_{\text{#1}}} |
1498 |
\[ C(i,j) = \frac{\Itext{max}(i,j) - \Itext{min}(i,j)}{\Itext{max}(i,j) |
|
1499 |
+ \Itext{min}(i,j)} \] |
|
1500 |
||
1501 |
A l'entorn local: |
|
1502 |
\begin{align} |
|
1503 |
\Itext{max}(i,j) &= \max_{k,l \in S} y(k,l) \\ |
|
1504 |
\Itext{min}(i,j) &= \min_{k,l \in S} y(k,l) \\ |
|
1505 |
\end{align} |
|
1506 |
on $y(k,l)$ és el valor associat al punt $k,l$ de la imatge, i $S$ el conjunt |
|
1507 |
de punts d'una finestra quadrada de 3x3, 5x5, 7x7, \ldots a l'entorn de $i,j$. |
|
1508 |
||
1509 |
Calculem doncs el contrast local al pla restaurat $C(i,j)$, i |
|
1510 |
al pla descodificat de manera convencional $C'(i,j)$ per cada $i,j$ de la |
|
1511 |
imatge. Llavors, si $y_1(i,j)$ fa referència a un punt del pla restaurat, i |
|
1512 |
$y_c(i,j)$ a un del pla convencional, el nou punt restaurat $y_2(i,j)$ |
|
1513 |
ve determinat per: |
|
1514 |
\[ y_2(i,j) = \begin{cases} |
|
1515 |
y_1(i,j) & \text{si} \, C'(i,j) - C(i,j) > \epsilon \\ |
|
1516 |
y_c(i,j) & \text{altrament} |
|
1517 |
\end{cases} |
|
1518 |
\] |
|
1519 |
||
1520 |
L'usuari pot escollir tant el llindar $\epsilon$ com la mida de la finestra de |
|
1521 |
$S$. |
|
1522 |
||
1523 |
\section{Escalat dels plans de color ponderats amb la lluminositat} |
|
220 | 1524 |
|
1525 |
\label{sec:colorponderat}A l'article \cite{sugita2006} proposen el ponderat |
|
1526 |
per a imatges que tenen els |
|
1527 |
plans de color delmats co-situats (\emph{cosited}). Això vol dir que els punts |
|
1528 |
del pla de color delmat coincideixen amb la posició de punts del pla sense |
|
1529 |
delmar. A les imatges JPEG, tal com diu l'especificació del JFIF \cite{jfif}, |
|
1530 |
els plans delmats tenen els |
|
1531 |
punts inter-situats (\emph{intersited}) respecte al pla més gran (vegeu la |
|
1532 |
Figura \ref{fig:co-inter-situats422}. Això fa una |
|
1533 |
mica més complexes els algorismes. |
|
1534 |
||
1535 |
\figuraw{7cm}{co-inter-situats422.pdf}{\label{fig:co-inter-situats422}Diferència entre |
|
1536 |
un pla de color delmat co-situat i un d'inter-situat pel cas 4:2:2.} |
|
1537 |
||
221 | 1538 |
\subsection{Delmat 4:2:2} |
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1539 |
En el cas 4:2:2 el valor de croma del pla delmat, a la |
220 | 1540 |
codificació, ha estat calculat segons la mitjana aritmètica dels dos punts |
1541 |
originals més propers. |
|
1542 |
Aquest algorisme proposa fer el mateix amb el pla de |
|
1543 |
lluminositat, com si el delméssim. |
|
1544 |
Del pla delmat anomenem $Y_1$ al punt més proper al nostre punt d'interès, |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1545 |
i $Y_2$ al segon més proper. Com que el pla de lluminositat el tenim també |
220 | 1546 |
sense delmar, sabem el valor del punt d'interès $Y_o$. Llavors, podem utilitzar |
1547 |
la relació |
|
1548 |
$\tfrac{Y_o-Y_1}{Y_2-Y_1}$ per a ponderar el pla de color. Podem veure-ho |
|
1549 |
gràficament a la Figura \ref{fig:lumscaler422} |
|
1550 |
||
1551 |
\figura{lumscaler422.pdf}{\label{fig:lumscaler422}Escalat de color de 4:2:2 a |
|
1552 |
4:4:4 amb ponderació per lluminositat. Calculem la versió delmada de la |
|
1553 |
lluminositat, i obtenim $Y_1$ i $Y_2$, on $Y_1$ és el punt delmat més proper a |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1554 |
$Y_o$, i $Y_2$ el segon més proper. Veiem que la interpolació lineal entre $Y_1$ |
220 | 1555 |
i $Y_2$ ens donaria un punt inferior a $Y_o$ - i aquesta és la correcció que es |
1556 |
fa palesa al pla de color. Les creus dretes ens mostren la versió delmada, i |
|
1557 |
ponderant el pla de color amb $\tfrac{Y_o-Y_1}{Y_2-Y_1}$ aconseguim també |
|
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1558 |
l'anàleg a $Y_o$ més alt que si utilitzéssim interpolació lineal.} |
220 | 1559 |
|
1560 |
Ara podem reescriure l'algorisme en funció de cada punt de la imatge (delmat i |
|
1561 |
sense delmar), i limitar la ponderació segons un paràmetre $\epsilon_h$. |
|
1562 |
En general, per cada fila tenim $1..N$ columnes de pla de color |
|
1563 |
i $1..2N$ columnes de pla |
|
1564 |
de lluminositat. Llavors, per cada punt $i$ del pla de color obtenim: |
|
1565 |
\begin{align} |
|
222
72fe718f2846
Adding some images exemplifying the restorations.
viric@llimona
parents:
221
diff
changeset
|
1566 |
Y(2i) &= C(i) + (C(i+1) - C(i)) \, w(Y(2i), Y_m(2i-1), Y_m(2i+1) \\ |
220 | 1567 |
Y(2i+1) &= C(i+1) + (C(i) - C(i+1)) \, w(Y(2i+1), Y_m(2i+1), Y_m(2i-1)) |
1568 |
\end{align} |
|
1569 |
on el pes $w(p,n,f)$ i el delmat de lluminositat $Y_m(j)$ els definim així: |
|
1570 |
\begin{align} |
|
1571 |
w(p,n,f) &= \begin{cases} |
|
1572 |
0,25 + \epsilon_h & \text{si} \, w'(p,n,f) > 0,25 + \epsilon_h \\ |
|
1573 |
0,25 - \epsilon_h & \text{si} \, w'(p,n,f) < 0,25 - \epsilon_h \\ |
|
1574 |
w'(p,n,f) & \text{altrament} |
|
1575 |
\end{cases} \\ |
|
1576 |
w'(p,n,f) &= \frac{p - n}{f-n} \\ |
|
1577 |
Y_m(j) &= \frac{Y(j) + Y(j+1)}{2} |
|
1578 |
\end{align} |
|
1579 |
on l'usuari pot escollir $\epsilon_h$. |
|
1580 |
||
221 | 1581 |
\subsection{Delmat 4:2:0} |
220 | 1582 |
|
1583 |
L'algorisme de 4:2:2 involucra dos punts $Y_1$ i $Y_2$ per cada punt de la |
|
1584 |
imatge final. En canvi, en el cas 4:2:0 tenim quatre punts involucrats, i ens |
|
1585 |
cal adaptar l'algorisme a aquests quatre punts. Com bé sabem, tenim tant delmat |
|
1586 |
horitzontal com vertical. Així, la nostra adaptació consisteix en primer |
|
1587 |
considerar el cas horitzontal i després el vertical, per cada punt de la imatge. |
|
1588 |
||
1589 |
\figuraw{8cm}{lumscaler420.pdf}{\label{fig:lumscaler420}Escalat de color 4:2:0 a |
|
1590 |
4:4:4 ponderant segons la lluminositat.} |
|
1591 |
||
1592 |
Seguint l'esquema de la Figura \ref{fig:lumscaler420}, i amb l'objectiu de |
|
1593 |
determinar el color al punt $Y_o$, considerem els punts |
|
1594 |
$Y_{1\ldots4}$ com els punts ordenats segons el més proper, |
|
1595 |
el segon més proper en |
|
1596 |
horitzontal, el tercer més proper en vertical, i el quart més proper. Utilitzant |
|
1597 |
la tècnica del cas de 4:2:2, considerem el punt temporal $Y_{o1}$ |
|
1598 |
i en calculem la |
|
1599 |
croma ponderada segons $Y_1$ i $Y_2$ (amb els càlculs pertinents de la |
|
1600 |
lluminositat) i $\epsilon_h$. |
|
1601 |
Fem el mateix amb el punt $Y_{o2}$, $Y_3$, $Y_4$, i la mateixa $\epsilon_h$. |
|
248
e07157da85c9
Corregits alguns errors, després d'una nova revisió. Completa.
viric@mandarina
parents:
247
diff
changeset
|
1602 |
Finalment, a partir d'aquestes noves cromes dels punts $Y_{o1}$ i $Y_{o2}$, i d'unes |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1603 |
versions de la lluminositat de $Y_{o1}$ |
220 | 1604 |
i $Y_{o2}$ (segons la mitjana dels seus punts |
244
375fe7532b37
He corregit moltes faltes amb el vim:spell.
viric@mandarina
parents:
242
diff
changeset
|
1605 |
de lluminositat més propers), fem la ponderació per aconseguir $Y_o$, aquest cop segons un |
220 | 1606 |
paràmetre $\epsilon_v$ també configurable per l'usuari. |
211 | 1607 |
|
223 | 1608 |
%\printindex |
204 | 1609 |
|
201 | 1610 |
\bibliography{cited} |
1611 |
||
199 | 1612 |
\end{document} |