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