]> git.llucax.com Git - z.facultad/75.06/jacu.git/blobdiff - doc/InformeTP3.lyx
Cambios minimos, no se si entraran en la impresion :(
[z.facultad/75.06/jacu.git] / doc / InformeTP3.lyx
index 799614543d904c0980a5c4381a1c7203da9662f9..4a8d1de347b2c4b3225205df57fc2b66e150bd6a 100644 (file)
@@ -142,6 +142,66 @@ Word-Scaping
  (Optimización para textos detallada posteriormente)
 \layout Section
 
+Compilación
+\layout Standard
+
+Para compilar es necesario el programa 
+\family typewriter 
+make
+\family default 
+ (además de un compilador, por supuesto, para desarrollar utilizamos 
+\family typewriter 
+gcc
+\family default 
+ 3.3.x).
+ Sólo hay que correr en el directorio 
+\family typewriter 
+src/
+\family default 
+:
+\layout LyX-Code
+
+make depend
+\layout LyX-Code
+
+make
+\layout Standard
+
+El 
+\family typewriter 
+make depend
+\family default 
+ utiliza la herramienta 
+\family typewriter 
+makedepend
+\family default 
+ que analiza los archivos fuentes 
+\family typewriter 
+.c
+\family default 
+ y busca sus dependencias con archivos 
+\family typewriter 
+.h
+\family default 
+ observando la directiva 
+\family typewriter 
+#include
+\family default 
+.
+ De esta manera se simplifica el mantenimiento del 
+\family typewriter 
+Makefile
+\family default 
+.
+\layout Standard
+
+El 
+\family typewriter 
+make
+\family default 
+ se encarga de la compilación en sí.
+\layout Section
+
 Modo de uso
 \layout Standard
 
@@ -297,6 +357,19 @@ Zero Grouping
 \labelwidthstring 00.00.0000
 
 
+\family typewriter 
+-r
+\family default 
+ Puede ser utilizado únicamente en una compresión y activa el característica
+ de 
+\series bold 
+Word Scaping
+\series default 
+, que realizar un reemplazo de palabras frecuentes antes del BlockSorting.
+\layout List
+\labelwidthstring 00.00.0000
+
+
 \family typewriter 
 -s
 \family default 
@@ -339,7 +412,23 @@ Huffman
  Especifica la calidad (nivel) de compresión.
  Puede ser un valor entre 0 y 9, siendo 0 el menor nivel de compresión (más
  rápido) y 9 el máximo (más lento).
- Por omisión se utiliza un nivel de compresión 5.
+ Por omisión se utiliza un nivel de compresión 5
+\begin_inset Foot
+collapsed true
+
+\layout Standard
+
+Cada valor de este parámetro está asociado a un tamaño de página usado para
+ el algoritmo de 
+\series bold 
+Block Sorting
+\series default 
+.
+ Los tamaños de página en bytes son, de 0 a 9 respectivamente: 1K, 2K, 4K,
+ 8K, 16K, 32K, 64K, 128K, 256K y 512K.
+\end_inset 
+
+.
 \layout Subsubsection*
 
 Ejemplos
@@ -414,7 +503,7 @@ Block Sorting
 
 La técnica de Block Sorting
 \begin_inset Foot
-collapsed false
+collapsed true
 
 \layout Standard
 
@@ -446,7 +535,7 @@ El otro problema es el tiempo de ordenamiento de los desplazamientos, que
  Una posibilidad es utilizar un método de ordenamiento de bajo orden, como
  el Quick Sort
 \begin_inset Foot
-collapsed false
+collapsed true
 
 \layout Standard
 
@@ -591,7 +680,7 @@ Luego de inicializar el vector Desplazamiento (esta parte es
 
 
 \begin_inset Foot
-collapsed false
+collapsed true
 
 \layout Standard
 
@@ -649,7 +738,7 @@ abcd
 
 \layout LyX-Code
 
-Salida: 00001011001000200020101000300010004
+Salida:    000010110010000200020101000300001000
 \layout Standard
 
 Un símbolo es codificado como el índice (ó posición) en la lista de símbolos
@@ -683,9 +772,9 @@ Si bien no ahondaremos en detalles de implementaci
  compresor.
  Antes, es necesario comentar que el estado del compresor, se mantiene a
  través de una estructura definida como 
-\series bold 
+\family typewriter 
 HUFF_STATE
-\series default 
+\family default 
 , en la cual se especificarán cosas tales como si el compresor actúa sobre
  archivos o chunks de datos, si es un huffman canónico o estándar, archivo
  a comprimir, archivo destino, etc.
@@ -699,32 +788,27 @@ ado utilizando las rutinas:
 
 
 \family typewriter 
-\noun on 
 HUFF_STATE *shuff_init_encoder_byfile(char *inputfile, char *outputfile,
  long volsize);
 \layout Itemize
 
 
 \family typewriter 
-\noun on 
 HUFF_STATE *shuff_init_encoder_bychunk(char *outputfile, long volsize);
 \layout Itemize
 
 
 \family typewriter 
-\noun on 
 HUFF_STATE *shuff_init_decoder(char *inputfile, char *outputfile);
 \layout Itemize
 
 
 \family typewriter 
-\noun on 
 void shuff_deinit_encoder(HUFF_STATE *shuff);
 \layout Itemize
 
 
 \family typewriter 
-\noun on 
 void shuff_deinit_decoder(HUFF_STATE *shuff);
 \layout Standard
 
@@ -790,8 +874,12 @@ Uno de los problemas que ten
 \layout Standard
 
 Obviamente como eso resultaba muy molesto planteamos un modelo más abstracto
- al que llamamos Virtual File, que es una API escrita sobre la API ANSI-C
- de Input/Output que maneja de manera transparente este tema.
+ al que llamamos 
+\emph on 
+Virtual File
+\emph default 
+, que es una API escrita sobre la API ANSI-C de Input/Output que maneja
+ de manera transparente este tema.
 \layout Standard
 
 Utilizar la API esta tan simple como agregar una 
@@ -802,8 +890,27 @@ v
 \begin_inset Quotes erd
 \end_inset 
 
- delante de las funciones fopen, fclose, fread, etc y reemplazar la estructura
- FILE por VFILE.
+ delante de las funciones 
+\family typewriter 
+fopen
+\family default 
+, 
+\family typewriter 
+fclose
+\family default 
+, 
+\family typewriter 
+fread
+\family default 
+, etc y reemplazar la estructura 
+\family typewriter 
+FILE
+\family default 
+ por 
+\family typewriter 
+VFILE
+\family default 
+.
 \layout Standard
 
 Cuando se abre un archivo para escritura a medida que se van escribiendo
@@ -817,6 +924,14 @@ La lectura es similar.
  Cada vez que se llega al EOF de un archivo, si éste no es el último volumen,
  se cierra el archivo actual y se abre el siguiente hasta llegar al EOF
  del último volumen.
+\layout Standard
+
+Esta API sólo agrega un byte de información de control delante de cada volumen,
+ que indica si es el último volumen del archivo virtual.
+ De esta manera se pueden abrir y leer archivos virtuales sin saber a priori
+ el tamaño de los volúmenes (hasta se podría ampliar la API de escritura
+ para que cada volumen tenga un tamaño distinto y la API de lectura seguiría
+ funcionando sin cambios).
 \layout Section
 
 
@@ -955,6 +1070,30 @@ N
  vez superan los 50 ceros seguidos, por lo que de utilizar más de un byte
  para expresar la cantidad de ceros que siguen al primero se obtendrían
  peores resultados.
+\layout Standard
+
+Con respecto a los tiempos, como se puede observar en el capítulo 
+\begin_inset LatexCommand \ref{cha:Benchmarks}
+
+\end_inset 
+
+, en muchos casos es incluso más rápido usar el 
+\series bold 
+ZG
+\series default 
+ ya que el 
+\series bold 
+Huffman
+\series default 
+ tiene que comprimir menos y el proceso del 
+\series bold 
+ZG
+\series default 
+ es mucho menor que el del 
+\series bold 
+Huffman
+\series default 
+.
 \layout Subsubsection*
 
 Ejemplo:
@@ -991,7 +1130,7 @@ ZG
 \series default 
  es de 22 (incluso cuando hubieron expansiones).
  Como se podrá ver en las pruebas del capítulo 
-\begin_inset LatexCommand \vref{cha:Benchmarks}
+\begin_inset LatexCommand \ref{cha:Benchmarks}
 
 \end_inset