From: Leandro Lucarella Date: Mon, 28 Jun 2004 02:48:49 +0000 (+0000) Subject: Se mejora un poco la explicación y justificación del Zero Grouping. X-Git-Tag: svn_import~29 X-Git-Url: https://git.llucax.com/z.facultad/75.06/jacu.git/commitdiff_plain/5aecfd5dac0f0f1b38e38ac4b39df5c232ca959e Se mejora un poco la explicación y justificación del Zero Grouping. --- diff --git a/doc/InformeTP3.lyx b/doc/InformeTP3.lyx index c8fd5fa..f7f5d1d 100644 --- a/doc/InformeTP3.lyx +++ b/doc/InformeTP3.lyx @@ -535,20 +535,77 @@ BS \series default que aumenta la localidad, genera estadísticamente muchas secuencias de ceros repetidos. - El algoritmo es muy simple, cada secuencia de ceros se codifica con 2 bytes, - el primero es siempre 0 (0x00) y el segundo indica la cantidad de ceros - que le siguen. + Como el Huffman Estático no aprovecha esta característica (comprime igual + +\family typewriter +000001234 +\family default + que +\family typewriter +010203040 +\family default +), se buscó un método que sí la explote para optimizar el compresor y se + llegó a un algoritmo muy simple que bautizamos +\series bold +Zero Grouping +\series default +. +\layout Standard + +Cada secuencia de ceros se codifica con 2 bytes, el primero es siempre 0 + ( +\family typewriter +0x00 +\family default +) y el segundo indica la cantidad de ceros que le siguen. En el caso de haber un byte de valor cero aislado, también se codifica - con 2 bytes (0x00 0x00, que indica que viene un cero y luego de ese cero - no viene ningún cero más), expandiendo la salida, pero estos son casos - aislados que estadísticamente se ven superados por la cantidad de secuencias - largas de ceros que son comprimidas a sólo 2 bytes. + con 2 bytes ( +\family typewriter +0x00 0x00 +\family default +, que indica que viene un cero y luego de ese cero no viene ningún cero + más), expandiendo la salida, pero estos son casos aislados que estadísticamente + se ven superados por la cantidad de secuencias largas de ceros que son + comprimidas a sólo 2 bytes. Además, la salida del \series bold ZG \series default (Zero Grouping) es comprimida con Huffman por lo que en casos extremos la expansión no se manifiesta en forma notoria. +\layout Standard + +Como la cantidad de ceros que le siguen al primero en una secuencia es expresada + con un byte, sólo se pueden comprimir a 2 bytes secuencias de hasta 256 + ceros (el primer cero más los 0-255 siguientes). + De haber secuencias con mayor cantidad de ceros, simplemente se generan + +\family typewriter +N +\family default + +\emph on +grupos +\emph default + (siendo +\family typewriter +N +\family default + la cantidad de ceros en la secuencia dividido 256, redondeando hacia arriba) + de 2 bytes cada uno. + Por ejemplo, una secuencia de 257 ceros será expresada como +\family typewriter +0x00 0xFF 0x00 0x00 +\family default + (2 grupos) y una de 525 como +\family typewriter +0x00 0xFF 0x00 0xFF 0x00 0x0B +\family default + (3 grupos). + Nuevamente, se comprobó estadísticamente que las secuencias de ceros rara + 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 Subsubsection* Ejemplo: