From: Leandro Lucarella Date: Mon, 28 Jun 2004 10:59:47 +0000 (+0000) Subject: Cambios minimos, no se si entraran en la impresion :( X-Git-Tag: svn_import X-Git-Url: https://git.llucax.com/z.facultad/75.06/jacu.git/commitdiff_plain/c64d97e6f5f058648074b74ef4d8c3142826777f Cambios minimos, no se si entraran en la impresion :( --- diff --git a/doc/InformeTP3.lyx b/doc/InformeTP3.lyx index c1f65db..4a8d1de 100644 --- a/doc/InformeTP3.lyx +++ b/doc/InformeTP3.lyx @@ -412,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 @@ -487,7 +503,7 @@ Block Sorting La técnica de Block Sorting \begin_inset Foot -collapsed false +collapsed true \layout Standard @@ -519,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 @@ -664,7 +680,7 @@ Luego de inicializar el vector Desplazamiento (esta parte es \begin_inset Foot -collapsed false +collapsed true \layout Standard @@ -722,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 @@ -756,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. @@ -772,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 @@ -863,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 @@ -875,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 @@ -890,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 @@ -1028,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: @@ -1064,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