Light-industry-up.ru

Экосистема промышленности

Calgary Corpus

29-07-2023

Перейти к: навигация, поиск

Calgary corpus - набор текстовых и двоичных файлов, часто использовавшийся в качестве стандартного теста алгоритмов сжатия данных и сравнения их эффективности. Набор был собран в Университете Калгари в 1987 году и широко применялся в 1990-х. В 1997 был предложен новый тестовый набор Canterbury corpus[1], в котором были учтены некоторые замечания к репрезентативности корпуса Калгари[2].

Состав корпуса

В наиболее часто используемой форме корпус Калгари состоит из 14 файлов общим объёмом 3141622 байт:

Размер (байт) Имя файла Описание
111,261 BIB Текст ASCII в формате утилиты UNIX "refer" с 725 библиографическими записями.
768,771 BOOK1 Неформатированный текст ASCII новеллы Томаса Харди Far from the Madding Crowd.
610,856 BOOK2 Текст ASCII в формате "troff" – Ian H. Witten: Principles of Computer Speech.
102,400 GEO Сейсмические данные в виде 32 битных чисел с плавающей запятой в формате IBM.
377,109 NEWS Текст ASCII – набор сообщений из групп USENET.
21,504 OBJ1 Исполняемый файл для VAX, полученный компиляцией PROGP.
246,814 OBJ2 Исполняемый файл для Macintosh, программа "Knowledge Support System".
53,161 PAPER1 Статья в формате "troff" – Witten, Neal, Cleary: Arithmetic Coding for Data Compression.
82,199 PAPER2 Статья в формате "troff" – Witten: Computer (in)security.
513,216 PIC Изображение размером 1728 x 2376: текст на французском и линейные диаграммы.
39,611 PROGC Исходный код на языке C – программа UNIX compress v4.0.
71,646 PROGL Исходный код на языке Lisp – системное приложение.
49,379 PROGP Исходный код на языке Pascal – программа для оценки сжатия PPM.
93,695 TRANS Текст ASCII и управляющие последовательности - запись терминальной сессии.

Реже используется набор из 18 файлов, в который дополнительно включены 4 текстовых файла в формате "troff" - PAPER3-PAPER6.

Тестирование

Корпус Calgary часто использовался для сравнения эффективности сжатия в 1990-е годы. Результаты часто указывались в виде коэффициента бит на байт (среднее количество бит в сжатом файле, требуемое для кодирования 1 байта исходного файла) для каждого файла из набора, затем они усреднялись. Затем чаще стали указывать суммарный размер всех сжатых файлов[3].

Некоторые архиваторы допускали более эффективное сжатие при одновременной обработке всего корпуса (например, при их помещении в несжатый контейнер тира tar), за счет использования взаимной информации. Другие архиваторы, наоборот, хуже сжимали такой вариант из-за медленной реакции компрессора на изменение характеристик данных. Одновременное сжатие всего корпуса использовалось Matt Mahoney в его книге Data Compression Explained[4].

В таблице указаны размеры сжатого корпуса для нескольких популярных архиваторов.

Архиватор Опции Сжатие 14 отдельных файлов Объединенный tar архив
Без сжатия 3,141,622 3,152,896
compress 1,272,772 1,319,521
Info-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
7-zip 9.12b 848,687 824,573
ppmd Jr1 -m256 -o16 740,737 754,243
ppmonstr J 675,485 669,497

Конкурсы сжатия

21 мая 1996 года Leonid A. Broukhis начал конкурс "Calgary corpus Compression and SHA-1 crack Challenge"[5], в котором проводилось соревнование по сжатию корпуса Calgary с небольшими денежными призами. После 2010-го приз составляет 1 доллар США за каждое дополнительное уменьшение сжатого файла на 111 байт.

По условиям конкурса, сжиматься должны не только входные файлы корпуса, но и программа для их распаковки. Для этого сначала сжимаются файлы корпуса, затем полученные файлы и распаковщик сжимаются одним из широко распространенных архиваторов. Ограничения на время сжатия и количество используемой памяти постепенно изменяются, и после 2010 допустимо работа в течение 24 часов на компьютере с производительностью в 2000 MIPS (ОС Windows или Linux) и использование до 800 МБ ОЗУ. Позже было добавлено соревнование с SHA-1: распаковщик может создать не оригинальный файл из корпуса, а какой-то другой, но имеющий ту же криптографическую хеш-сумму по алгоритму SHA-1 (таким образом, требуется совершить атаку нахождения коллизии для заданного файла).

Первым приз получил Malcolm Taylor, автор архиваторов RK и WinRK, сжав набор до 759881 байт (сентябрь 1997). Последним приз получил 2 июля 2010 года Alexander Ratushnyak, сжав набор до 572465 байт и используя распаковщик на C++, сжимаемый до 7700 байт при помощи "PPMd var. I". Полный список рекордов в рамках конкурса:

Размер (байт) Месяц и год Автор
759,881 09/1997 Malcolm Taylor
692,154 08/2001 Maxim Smirnov
680,558 09/2001 Maxim Smirnov
653,720 11/2002 Serge Voskoboynikov
645,667 01/2004 Matt Mahoney
637,116 04/2004 Alexander Ratushnyak
608,980 12/2004 Alexander Ratushnyak
603,416 04/2005 Przemysław Skibiński
596,314 10/2005 Alexander Ratushnyak
593,620 12/2005 Alexander Ratushnyak
589,863 05/2006 Alexander Ratushnyak
580,170 07/2010 Alexander Ratushnyak

Начиная с 2004 года рекордное сжатие достигалось различными вариантами архиватора PAQ, имеющими открытый исходный код (лицензия GPL).


Примечания

  1. Managing Gigabytes: Compressing and Indexing Documents and Images. — Morgan Kaufmann, 1999. — P. 92.
  2. Data Compression: The Complete Reference. — Fourth. — Springer, 2007. — P. 12. — ISBN 9781846286032.
  3. http://uclc.info/calgary_corpus_compression_test.htm
  4. Data Compression Explained
  5. The Compression/SHA-1 Challenge

См. также


Calgary Corpus.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06