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] .
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.
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 |
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 |
Objetos de prueba estándar | |
---|---|
gráficos 2D | |
gráficos 3D |
|
sonido MP3 | |
Programación | |
Compresión de datos |
|
Elementos de texto | |
Lucha contra los virus | |
Dominio | |
Mejoramiento |
|
de compresión | métodos|||||||
---|---|---|---|---|---|---|---|
Teoría |
| ||||||
sin pérdidas |
| ||||||
Audio |
| ||||||
Imágenes |
| ||||||
Video |
|