A bit more.
authorviric@llimona
Wed, 24 Oct 2007 16:42:23 +0200
changeset 202 10715deee188
parent 201 5f855bc5a236
child 203 ca3267f08a9d
A bit more.
doc/Makefile
doc/block16x16simple.eps
doc/memoria.tex
mesures/blocks/script.gnuplot
--- a/doc/Makefile	Wed Oct 24 13:20:25 2007 +0200
+++ b/doc/Makefile	Wed Oct 24 16:42:23 2007 +0200
@@ -1,9 +1,14 @@
 
-memoria.pdf: memoria.tex
-	pdflatex $^
+INCLUDES=block16x16simple.pdf \
+	jpeg-coeficients.pdf \
+	rapids-nens-cb-rescale.pdf \
+	rapids-nens-rgb2ycc.pdf
+
+memoria.pdf: memoria.tex $(INCLUDES)
+	pdflatex $<
 	bibtex memoria.aux
-	pdflatex $^
-	pdflatex $^
+	pdflatex $<
+	pdflatex $<
 
 clean:
 	rm -f memoria.bbl memoria.blg memoria.aux memoria.pdf
--- a/doc/block16x16simple.eps	Wed Oct 24 13:20:25 2007 +0200
+++ b/doc/block16x16simple.eps	Wed Oct 24 16:42:23 2007 +0200
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-2.0
-%%Title: block16x16simple.ps
+%%Title: block16x16simple.eps
 %%Creator: gnuplot 4.0 patchlevel 0
-%%CreationDate: Tue Oct 23 23:52:24 2007
+%%CreationDate: Wed Oct 24 16:39:02 2007
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 410 302
 %%Orientation: Portrait
@@ -1122,7 +1122,7 @@
 LTb
 6311 4459 M
 gsave 0 setgray
-(JPEG) Rshow
+(Descodificació convencional) Rshow
 grestore
 LT2
 6395 4459 M
--- a/doc/memoria.tex	Wed Oct 24 13:20:25 2007 +0200
+++ b/doc/memoria.tex	Wed Oct 24 16:42:23 2007 +0200
@@ -59,10 +59,10 @@
 feines pot distingir la pèrdua de definició del JPEG a 1,5 bpp.
 
 En el procés de codificació (o compressió) JPEG, es llença part de la informació
-del mapa de bits original. Això vol dir que en el procés de decodificació
+del mapa de bits original. Això vol dir que en el procés de descodificació
 tindrem només part de la informació de la original, i que per a construir una
-nova imatge sencera, el decodificador s'ha d'inventar la part que falta. En
-totes les implementacions populars de decodificadors JPEG que hem vist
+nova imatge sencera, el descodificador s'ha d'inventar la part que falta. En
+totes les implementacions populars de descodificadors JPEG que hem vist
 \cite{libjpeg}, la invenció d'informació és molt simple, i no sempre encertada,
 considerant que cal obtenir una imatge el més semblant possible a l'original
 d'acord amb els criteris de l'ull humà. En aquest treball analitzarem
@@ -100,8 +100,9 @@
 millor densitat d'informació que el JPEG, però malgrat que han passat set anys
 des de la seva definició, no ha guanyat popularitat. Parlant exclusivament de la
 codificació d'imatges de to continu, el comitè garanteix que no està subjecte a
-patents. Però la seva implementació lliure més popular, \texttt{jasper} (ref
-jasper) conté molt de càlcul i ús de memòria, fins i tot pels ordinadors
+patents. Però la seva implementació lliure més popular, \texttt{jasper} 
+% TODO ref?
+conté molt de càlcul i ús de memòria, fins i tot pels ordinadors
 personals actuals. Tampoc hi ha implementacions en maquinari per part dels
 fabricants de càmeres digitals. Tanmateix, per posar un exemple popular, el
 % ref http://lists.brouhaha.com/pipermail/tumble-devel/2004q4/000007.html
@@ -115,19 +116,19 @@
 Així doncs, ara per ara trobem arreu imatges codificades en JPEG. És probable
 que d'una fotografia digital que ens interessa, només tinguem accés a la seva
 codificació JPEG. Això els el que ha motivat aquest treball, i per això
-perseguim la millor decodificació JPEG possible. Ja des dels inicis de l'ús del
-JPEG que s'han proposat mètodes per a decodificar millor les imatges; mètodes
+perseguim la millor descodificació JPEG possible. Ja des dels inicis de l'ús del
+JPEG que s'han proposat mètodes per a descodificar millor les imatges; mètodes
 complexes computacionalment, però que oferien resultats millors que la
-decodificació convencional. De tota manera, pràcticament cap d'aquests mètodes
+descodificació convencional. De tota manera, pràcticament cap d'aquests mètodes
 s'ha popularitzat, i en prou feines n'existeix alguna aplicació més enllà de
 l'article publicat en una revista científica. En aquest treball hem procurat
-donar una visió global sobre l'estat de l'art en el camp de la decodificació
+donar una visió global sobre l'estat de l'art en el camp de la descodificació
 JPEG, així com implementar uns quants mètodes convincents, i fer-los públics en
 forma d'una aplicació informàtica. Amb això pretenem fer disponibles els millors
 resultats d'anys de recerca acadèmica als nombrosos usuaris de JPEG. Si bé
 aquesta aplicació ha estat pensada per a versats en el camp de la imatge, hem
 procurat que l'usuari no necessiti coneixements experts de JPEG o de programació
-per a dur a terme les decodificacions.
+per a dur a terme les descodificacions.
 
 \subsection{Les pèrdues al JPEG}
 
@@ -150,7 +151,7 @@
 DJVU, etc.).
 \end{enumerate}
 
-La decodificació, anàlogament:
+La descodificació, anàlogament:
 \begin{enumerate}
 \item S'obté el paquet de dades JPEG del seu contenidor.
 \item Recuperem els valors dels coeficients quantitzats del paquet (que havíem
@@ -173,15 +174,18 @@
 mostrar en color: vermell, verd i blau. El nostre ull és bastant sensible a
 qualsevol variació en aquests plans - precisament són els colors que els nostres
 cons distingeixen millor. Les freqüències de llum concretes s'avenen amb les de
-màxima sensibilitat pels nostres tres cons, de manera que a la pantalla es
+màxima sensibilitat pels nostres tres cons, de manera que amb la pantalla es
 produeix, pràcticament, l'excitació independent dels nostres cons, donant la
 sensació d'un espai de color continu. Un color groc, per exemple, degut a les
 responstes freqüencials dels cons, excita parcialment el con blau i el con verd.
 La pantalla enganya els cons, excitant concretament una mica el blau, i també
-una mica el verd. (ref ?)
+una mica el verd.
+% TODO (ref ?)
 
 El nostre ull distingeix variacions d'intensitat de llum millor que variacions
-de color (ref ?). Defectes en els plans RGB portarien a variacions d'intensitat
+de color.
+% TODO (ref ?)
+Defectes en els plans RGB portarien a variacions d'intensitat
 de llum fàcilment distingibles, ja que el nostre cervell considera, amb
 suficient il·luminació, la intensitat de llum un promig de l'excitació de cons.
 En canvi, el cervell no distingeix gaire bé variacions de color en espai. Per
@@ -208,17 +212,18 @@
 reescalat de la versió delmada.}
 \end{figure}
 
-En la decodificació, cal reescalar els plans delmats a la seva mida original,
+A la descodificació, cal reescalar els plans delmats a la seva mida original,
 mitjançant interpolacions o altres tècniques. Convencionalment (per defecte a
-la \texttt{libjpeg} \cite{libjpeg}) es fa una interpolació lineal.  I per a suplir la imatge final a la pantalla, cal invertir el canvi de plans de YCbCr a RGB.
+la \texttt{libjpeg} \cite{libjpeg}) es fa una interpolació lineal.  I per a
+suplir la imatge final a la pantalla, cal invertir el canvi de plans de YCbCr
+a RGB.
 
 \subsubsection{Quantització dels coeficients}
 
 Dels 64 punts d'intensitat de color que determinen cada bloc de 8x8 pícsels
 obtenim 64 coeficients. Aquests es solen ordenar en
-freqüències de menor a major, utilitzant l'ordre de Zig Zag (\cite{jpegspec},
-4.3) definit a
-l'estàndard de JPEG.
+freqüències de menor a major, utilitzant l'ordre de Zig Zag
+(\ref{fig:jpeg-coeficients}) definit a l'estàndard de JPEG.
 
 Les taules de quantització determinen la quantitat d'informació que es llença
 per cada un dels 64 coeficients. Es sol utilitzar una taula de quantització
@@ -233,7 +238,8 @@
 \centering
 \includegraphics[width=10cm]{jpeg-coeficients.pdf}
 \caption{\label{fig:jpeg-coeficients} A l'esquerra, funció base de cada
-coeficient de la DCT 2D. A la dreta, la serialització dels coeficients en Zig Zag.}
+coeficient de la DCT 2D. A la dreta, la serialització dels coeficients en Zig
+Zag (\cite{jpegspec}, 4.3).}
 \end{figure}
 
 % Taula de quantització
@@ -257,6 +263,18 @@
 de llum segons la \texttt{libjpeg} \cite{libjpeg} a qualitat 30}
 \end{table}
 
+La quantització dels coeficients consisteix en conservar només el valor enter
+resultat d'arrodonir la divisió pel quantitzador:
+\[ \hat y_i = \left[ \frac{y_i}{Q_i}\right] , \, i \in 1..64 \] 
+
+La recuperació convencional del coeficient consisteix en multiplicar pel
+quantitzador, $ z_i = \hat y_i Q_i $. Podem veure un exemple dels coeficients
+d'un bloc a la figura \ref{fig:quant-intervals}. En realitat, a la
+descodificació,
+del coeficient original només sabem que es troba dins
+l'\emph{interval de quantització}:
+\[ y_i \in Q_i \left[ \hat y_i - 0,5 \, , \, \hat y_i + 0,5 \right] \]
+% TODO comma numbers
 
 \begin{figure}[!htp]
 \centering
@@ -264,14 +282,13 @@
 \caption{\label{fig:quant-intervals} Coeficients del bloc situat a la fila 17,
 columna 17, del pla de lluminositat de la Lena de 256x256,
 amb una compressió a qualitat 30
-segons la \texttt{libjpeg} \cite{libjpeg}. Estan ordenats de menor a major frequència, com
-marca l'ordre de ZigZag de JPEG. Es poden apreciar els intervals de
+segons la \texttt{libjpeg} \cite{libjpeg}. Estan ordenats de menor a
+major frequència, com
+marca l'ordre de Zig Zag de JPEG. Es poden apreciar els intervals de
 quantització, i la pèrdua d'informació sobretot a les freqüències més altes.}
+% TODO posar a lloc
 \end{figure}
 
-% TODO posar a lloc
-\[ \hat y_i = \left[ \frac{y_i}{Q_i}\right] \]
-
 \bibliography{cited}
 
 \end{document}
--- a/mesures/blocks/script.gnuplot	Wed Oct 24 13:20:25 2007 +0200
+++ b/mesures/blocks/script.gnuplot	Wed Oct 24 16:42:23 2007 +0200
@@ -5,8 +5,8 @@
 plot "block16x16-cutre.txt" with errorbars, "block16x16-original.txt" with linespoints ps 0.5, "block16x16-cutre.txt" with lines, "block16x16-from-trianta.txt" with linespoints ps 0.5
 
 set terminal postscript eps
-set output "block16x16simple.ps"
-plot "block16x16-cutre.txt" title "Intervals de quantització" with errorbars, "block16x16-original.txt" title "Original" with linespoints ps 0.5, "block16x16-cutre.txt" title "JPEG" with lines
+set output "block16x16simple.eps"
+plot "block16x16-cutre.txt" title "Intervals de quantització" with errorbars, "block16x16-original.txt" title "Original" with linespoints ps 0.5, "block16x16-cutre.txt" title "Descodificació convencional" with lines
 
 set output "compara16x16.ps"
 plot "block16x16-original.txt" with linespoints ps 0.5, "block16x16-cutre.txt" with linespoints ps 0.5, "block16x16-from-trianta.txt" with linespoints ps 0.5