Cuerpo de Calgary

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 20 de junio de 2015; las comprobaciones requieren 8 ediciones .

El corpus de Calgary es un conjunto de archivos de texto y binarios que a menudo se utiliza como prueba estándar de algoritmos de compresión de datos y para comparar su rendimiento. El conjunto se ensambló en la Universidad de Calgary en 1987 y fue ampliamente utilizado en la década de 1990. En 1997, se propuso un nuevo conjunto de pruebas , el corpus de Canterbury [1] , que tuvo en cuenta algunas preocupaciones sobre la representatividad del corpus de Calgary [2] .

Composición del cuerpo

En su forma más utilizada, el corpus de Calgary consta de 14 archivos con un total de 3.141.622 bytes:

Tamaño (byte) Nombre del archivo Descripción
111.261 BABERO Texto ASCII en formato UNIX " ref " con 725 entradas bibliográficas.
768.771 LIBRO 1 Texto ASCII sin formato de la novela de Thomas Hardy Lejos del mundanal ruido .
610.856 LIBRO2 Texto ASCII en formato " troff " - Ian H. Witten: Principios del habla informática.
102.400 GEO Datos sísmicos como números de punto flotante de 32 bits en formato IBM .
377.109 NOTICIAS Texto ASCII: un conjunto de mensajes de grupos USENET .
21.504 OBJ1 Un archivo ejecutable para VAX obtenido al compilar PROGP.
246.814 OBJ2 Archivo ejecutable para Macintosh, programa "Knowledge Support System".
53.161 PAPEL1 Artículo en formato "troff" - Witten, Neal, Cleary: Codificación aritmética para compresión de datos.
82.199 PAPEL2 Artículo en formato "troff" - Witten: (in)seguridad informática.
513.216 FOTO Imagen de 1728 x 2376 con texto en francés y gráficos de líneas.
39.611 PROGC El código fuente C es el programa UNIX compress v4.0.
71.646 PROG El código fuente de Lisp es una aplicación del sistema.
49.379 PROGP El código fuente de Pascal es un programa para evaluar la compresión PPM.
93.695 TRANS Texto ASCII y secuencias de escape: registro de sesión de terminal.

Menos comúnmente utilizado es un conjunto de 18 archivos, que además incluye 4 archivos de texto en el formato "troff" - PAPER3-PAPER6.

Pruebas

El caso de Calgary se utilizó a menudo para comparar la eficiencia de compresión en la década de 1990. Los resultados a menudo se informaron como bits por byte (la cantidad promedio de bits en un archivo comprimido necesarios para codificar 1 byte del archivo fuente) para cada archivo en el conjunto, luego se promediaron. Luego, con más frecuencia, comenzaron a indicar el tamaño total de todos los archivos comprimidos.

Algunos archivadores permitieron una compresión más eficiente al procesar todo el cuerpo a la vez (por ejemplo, colocándolos en un contenedor de alquitrán sin comprimir ), mediante el uso de información mutua . Otros archivadores, por el contrario, comprimen peor esta opción debido a la lenta respuesta del compresor a los cambios en las características de los datos. Matt Mahoney utilizó la compresión simultánea de todo el corpus en su libro Explicación de la compresión de datos [3] .

La tabla muestra las dimensiones de la caja comprimida para varios archivadores populares.

archivador Opciones Comprime 14 archivos separados Archivo tar consolidado
Sin compresión 3.141.622 3,152,896
comprimir 1,272,772 1,319,521
Información-zip 2.32 -9 1,020,781 1,023,042
gzip 1.3.5 -9 1,017,624 1,022,810
bzip2 1.0.3 -9 828.347 860.097
7zip 9.12b 848.687 824.573
ppmd jr1 -m256 -o16 740.737 754.243
ppmonstr J 675.485 669.497

Concursos de compresión

El 21 de mayo de 1996, Leonid A. Broukhis inició el " Desafío de compresión de corpus de Calgary y grietas SHA-1 " [4] , que contó con una competencia de compresión de casco de Calgary con pequeños premios en efectivo. Después de 2010, el premio es de $1 por cada reducción adicional de 111 bytes en el archivo comprimido.

Según las bases del concurso, no sólo se deben comprimir los archivos de entrada del corpus, sino también el programa para su descompresión. Para hacer esto, primero se comprimen los archivos del cuerpo, luego los archivos resultantes y el desempaquetador se comprimen con uno de los archivadores ampliamente utilizados. Los límites en el tiempo de compresión y la cantidad de memoria utilizada están cambiando gradualmente, y después de 2010 es aceptable trabajar durante 24 horas en una computadora con un rendimiento de 2000 MIPS ( sistema operativo Windows o Linux ) y usar hasta 800 MB de RAM. Más tarde, se agregó una competencia con SHA-1 : el desempaquetador puede crear no el archivo original del corpus, sino otro, pero que tenga la misma suma criptográfica de hash según el algoritmo SHA-1 (por lo tanto, se requiere para realizar un ataque de detección de colisiones para un archivo dado).

Malcolm Taylor, autor de los archivadores RK y WinRK, ganó el primer premio al comprimir el conjunto a 759881 bytes (septiembre de 1997). El último premio fue otorgado el 2 de julio de 2010 por Alexander Ratushnyak , habiendo comprimido el conjunto a 572465 bytes y usando un descompresor C++ comprimido a 7700 bytes usando "PPMd var. I". Lista completa de récords dentro de la competencia:

Tamaño (byte) mes y año Autor
759.881 09/1997 malcolm taylor
692.154 08/2001 Máximo Smirnov
680.558 09/2001 Máximo Smirnov
653.720 11/2002 Serge Voskoboynikov
645.667 01/2004 Matt Mahoney
637.116 04/2004 Aleksandr Ratushnyak
608.980 12/2004 Aleksandr Ratushnyak
603.416 04/2005 Przemyslaw Skibinski
596.314 10/2005 Aleksandr Ratushnyak
593.620 12/2005 Aleksandr Ratushnyak
589.863 05/2006 Aleksandr Ratushnyak
580.170 07/2010 Aleksandr Ratushnyak

Notas

  1. Ian H. Witten, Alistair Moffat, Timothy C. Bell. Gestión de gigabytes: compresión e indexación de documentos e  imágenes . - Morgan Kaufmann , 1999. - Pág. 92.
  2. Salomón, David. Compresión de datos: la referencia completa  (neopr.) . - Cuatro. - Springer, 2007. - Pág. 12. - ISBN 9781846286032 .
  3. Explicación de la compresión de datos
  4. El desafío Compresión/SHA-1

Véase también