Рождение нового алгоритма по имени Broo и сравнение с Brotli и остальными

в 10:25, , рубрики: C, c++, Алгоритмы, алгоритмы сжатия данных

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

Коротко об алгоритме

Основная идеология для алгоритма была составлена в нескольких характеристиках:

  • Не привязан к типам файлов
  • Хороший коэфициент сжатия
  • Быстрая скорость распаковки

Скорость упаковки (сжатия) сюда изначально не была включена, но постепенно будет улучшаться как и весь алгоритм в целом. Не используются энтропийное сжатие и словарные методы.

Подготовка

Для чистоты и простоты проведения измерений, алгоритм интегрировали в утилиту lzbench (cсылка на GitHub), так как в ней уже присутствует достаточное кол-во других алгоритмов и легко интегрировать свой.

Далее были выбраны файлы из уже готового пакета для тестирования алгоритмов с названием Silesia. Краткое описание файлов:

Имя файла Описание Тип Размер, Байт
dickens Коллекция работ Чарльза Диккенса txt (eng) 10 192 446
mozilla tar архив с исполняемыми файлами Mozilla 1.0 exe 51 220 480
mr Изображение МРТ image 9 970 564
nci База химических структур database 33 553 445
ooffice Dll файлы из Open Office.org 1.01 exe 6 152 192
osdb Пример базы данных MySQL формата из database 10 085 684
reymont Текст книги Polish, pdf 6 627 202
samba tar архив исходников src 21 606 400
sao Звездный каталог Смитсоновской астрофизической обсерватории bin data 7 251 944
webster Американский словарь английского языка Уэбстера html 41 458 703
xml Коллекция xml файлов xml 5 345 280
X-ray Рентген изображение image 8 474 240

Источник

Список алгоритмов которые учавствуют в сравнениях

  • Brotli
  • Broo
  • Csc
  • Gipfeli
  • Libdeflate
  • Lz4
  • Lz5
  • Lzlib
  • Lzma
  • Lzsse
  • Quicklz
  • Snappy
  • Xpack
  • Yalz77
  • Yappy
  • Zlib
  • Zstd

Список насыщен алгоритмами которые решают разные задачи, но все познается в сравнении.

Короткое описание некоторых из них

Brotli — основан на современном варианте алгоритма LZ77, энтропийном кодировании Хаффмана и моделировании контекста 2-го порядка.
Предназначен для ускорения загрузки веб-страниц, поддерживается в браузерах Chrome, основанных на Chromium и в Firefox.

Deflate — алгоритм сжатия без потерь, использующий комбинацию алгоритмов LZ77 и Хаффмана.

Zstandard (Zstd) — алгоритм сжатия данных без потерь, разрабатываемый с 2015 Yann Collet при поддержке Facebook. Cочетает словарный алгоритм сжатия данных типа LZ77 и эффективное энтропийное кодирование типа tANS (FSE — Finite State Entropy), модификацию кода Хаффмана, реализующую нецелое количество бит для хранения символов.

LZMA — используется в архиваторе 7-Zip для создания сжатых архивов в формате 7z. Алгоритм основан на схеме сжатия данных по словарю, сходной с использованной в LZ77, и обеспечивает высокий коэффициент сжатия (обычно превышающий коэффициент, получаемый при сжатии с использованием bzip2), а также позволяет использовать словари различного размера (до 4 Гб).

Snappy — еще один алгорим сжатия без потерь от google предназначен для достижения высоких скоростей без достижения максимальных степеней сжатия.

Характеристики ПК

Процессор DualCore Intel Core i3 550, 3200 MHz
Память GoodRam 8119 Mb DDR3-1333 DDR3 SDRAM
ОС Ubuntu 16.10 x64

Результаты

memcpy — функция которая копирует данные, взята как эталон по скорости упаковки и распаковки.

Таблицы отсортированы по коэфициенту сжатия (“% от оригинала” так выводит lzbench, не стал конвертировать) от мелкого к большему.

Тест 1. Коллекция работ Чарльза Диккенса, text

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4029 MB/s 4034 MB/s 10192446 100.00 dickens, txt
csc 2016-10-13 -1 18 MB/s 31 MB/s 4020916 39.45 dickens, txt
lzlib 1.7 -0 7.76 MB/s 34 MB/s 3815335 37.43 dickens, txt
lzma 9.38 -0 13 MB/s 38 MB/s 4044850 39.68 dickens, txt
libdeflate 0.6 -1 85 MB/s 435 MB/s 4231543 41.52 dickens, txt
zstd 1.1.3 -1 143 MB/s 486 MB/s 4279273 41.98 dickens, txt
xpack 2016-06-02 -1 83 MB/s 359 MB/s 4282245 42.01 dickens, txt
brotli 0.5.2 -0 168 MB/s 178 MB/s 4401269 43.18 dickens, txt
zlib 1.2.8 -1 50 MB/s 195 MB/s 4585618 44.99 dickens, txt
broo 1.0 6.03 MB/s 265 MB/s 4750936 46.61 dickens, txt
gipfeli 2016-07-13 178 MB/s 254 MB/s 4955632 48.62 dickens, txt
yalz77 2015-09-19 -1 62 MB/s 304 MB/s 5634109 55.28 dickens, txt
quicklz 1.5.0 -1 250 MB/s 326 MB/s 5831353 57.21 dickens, txt
lzsse2 2016-05-14 -0 18 MB/s 1481 MB/s 5865705 57.55 dickens, txt
yappy 2014-03-22 -0 91 MB/s 1122 MB/s 6141853 60.26 dickens, txt
snappy 1.1.3 179 MB/s 648 MB/s 6337834 62.18 dickens, txt
lz4 1.7.5 264 MB/s 1652 MB/s 6428742 63.07 dickens, txt
lz5 2.0 -10 216 MB/s 1855 MB/s 6431869 63.10 dickens, txt

Тест 2. Tar архив с исполняемыми файлами Mozilla 1.0, exe

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 3986 MB/s 4042 MB/s 51220480 100.00 mozilla, exe
csc 2016-10-13 -1 11 MB/s 41 MB/s 15331191 29.93 mozilla, exe
lzma 9.38 -0 17 MB/s 43 MB/s 16425272 32.07 mozilla, exe
lzlib 1.7 -0 18 MB/s 33 MB/s 16470484 32.16 mozilla, exe
xpack 2016-06-02 -1 76 MB/s 368 MB/s 18391874 35.91 mozilla, exe
libdeflate 0.6 -1 92 MB/s 396 MB/s 19780124 38.62 mozilla, exe
zstd 1.1.3 -1 209 MB/s 542 MB/s 20120459 39.28 mozilla, exe
zlib 1.2.8 -1 53 MB/s 209 MB/s 20577226 40.17 mozilla, exe
brotli 0.5.2 -0 217 MB/s 186 MB/s 21740128 42.44 mozilla, exe
broo 1.0 5.11 MB/s 350 MB/s 23177220 45.25 mozilla, exe
gipfeli 2016-07-13 236 MB/s 436 MB/s 24380558 47.60 mozilla, exe
quicklz 1.5.0 -1 315 MB/s 368 MB/s 24756819 48.33 mozilla, exe
yalz77 2015-09-19 -1 49 MB/s 436 MB/s 25454532 49.70 mozilla, exe
lzsse2 2016-05-14 -0 13 MB/s 1493 MB/s 25826648 50.42 mozilla, exe
lz4 1.7.5 437 MB/s 1876 MB/s 26435667 51.61 mozilla, exe
snappy 1.1.3 303 MB/s 1013 MB/s 26461924 51.66 mozilla, exe
lz5 2.0 -10 334 MB/s 2097 MB/s 27016242 52.74 mozilla, exe
yappy 2014-03-22 -0 107 MB/s 1749 MB/s 27728218 54.14 mozilla, exe

Тест 3. Изображение МРТ, image

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
lzlib 1.7 -0 20 MB/s 34 MB/s 3130897 31.40 mr, image
lzma 9.38 -0 16 MB/s 44 MB/s 3157626 31.67 mr, image
csc 2016-10-13 -1 12 MB/s 40 MB/s 3285805 32.96 mr, image
xpack 2016-06-02 -1 82 MB/s 323 MB/s 3526828 35.37 mr, image
libdeflate 0.6 -1 98 MB/s 428 MB/s 3750985 37.62 mr, image
zlib 1.2.8 -1 60 MB/s 227 MB/s 3828366 38.40 mr, image
zstd 1.1.3 -1 191 MB/s 637 MB/s 3829231 38.41 mr, image
brotli 0.5.2 -0 198 MB/s 185 MB/s 3975643 39.87 mr, image
gipfeli 2016-07-13 220 MB/s 395 MB/s 4702561 47.16 mr, image
broo 1.0 5.94 MB/s 305 MB/s 4741219 47.55 mr, image
quicklz 1.5.0 -1 410 MB/s 363 MB/s 4778194 47.92 mr, image
lzsse2 2016-05-14 -0 24 MB/s 1523 MB/s 5120289 51.35 mr, image
yalz77 2015-09-19 -1 58 MB/s 396 MB/s 5269368 52.85 mr, image
snappy 1.1.3 302 MB/s 912 MB/s 5419831 54.36 mr, image
lz4 1.7.5 422 MB/s 2024 MB/s 5440937 54.57 mr, image
yappy 2014-03-22 -0 108 MB/s 1609 MB/s 6454120 64.73 mr, image
lz5 2.0 -10 294 MB/s 2248 MB/s 6978486 69.99 mr, image

Тест 4. База химических структур, database

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4042 MB/s 4047 MB/s 33553445 100.00 nci, db
csc 2016-10-13 -1 39 MB/s 156 MB/s 2463773 7.34 nci, db
lzma 9.38 -0 43 MB/s 153 MB/s 2777997 8.28 nci, db
lzlib 1.7 -0 49 MB/s 103 MB/s 2868761 8.55 nci, db
zstd 1.1.3 -1 435 MB/s 915 MB/s 2884530 8.60 nci, db
broo 1.0 8.65 MB/s 1000 MB/s 2981970 8.89 nci, db
xpack 2016-06-02 -1 180 MB/s 807 MB/s 3838847 11.44 nci, db
brotli 0.5.2 -0 539 MB/s 575 MB/s 3984199 11.87 nci, db
libdeflate 0.6 -1 180 MB/s 1165 MB/s 4066913 12.12 nci, db
zlib 1.2.8 -1 122 MB/s 404 MB/s 4624597 13.78 nci, db
yalz77 2015-09-19 -1 197 MB/s 695 MB/s 5050596 15.05 nci, db
gipfeli 2016-07-13 529 MB/s 681 MB/s 5063829 15.09 nci, db
lz4 1.7.5 765 MB/s 2496 MB/s 5533040 16.49 nci, db
lz5 2.0 -10 657 MB/s 2644 MB/s 5545810 16.53 nci, db
snappy 1.1.3 560 MB/s 1452 MB/s 6146844 18.32 nci, db
quicklz 1.5.0 -1 512 MB/s 799 MB/s 6160636 18.36 nci, db
lzsse2 2016-05-14 -0 15 MB/s 2984 MB/s 6339807 18.89 nci, db
yappy 2014-03-22 -0 179 MB/s 1941 MB/s 8967562 26.73 nci, db

Тест 5. Dll файлы из Open Office.org 1.01, exe

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4054 MB/s 4102 MB/s 6152192 100.00 ooffice, exe
csc 2016-10-13 -1 9.91 MB/s 29 MB/s 2301523 37.41 ooffice, exe
lzma 9.38 -0 13 MB/s 31 MB/s 2841578 46.19 ooffice, exe
lzlib 1.7 -0 14 MB/s 24 MB/s 2879489 46.80 ooffice, exe
xpack 2016-06-02 -1 60 MB/s 342 MB/s 3137960 51.01 ooffice, exe
libdeflate 0.6 -1 69 MB/s 286 MB/s 3187434 51.81 ooffice, exe
zlib 1.2.8 -1 40 MB/s 151 MB/s 3290532 53.49 ooffice, exe
brotli 0.5.2 -0 154 MB/s 143 MB/s 3539615 57.53 ooffice, exe
zstd 1.1.3 -1 166 MB/s 487 MB/s 3579899 58.19 ooffice, exe
broo 1.0 4.93 MB/s 412 MB/s 3757206 61.07 ooffice, exe
gipfeli 2016-07-13 163 MB/s 354 MB/s 3922276 63.75 ooffice, exe
lzsse2 2016-05-14 -0 15 MB/s 1205 MB/s 3995091 64.94 ooffice, exe
quicklz 1.5.0 -1 234 MB/s 264 MB/s 4013859 65.24 ooffice, exe
yalz77 2015-09-19 -1 35 MB/s 398 MB/s 4125570 67.06 ooffice, exe
yappy 2014-03-22 -0 82 MB/s 1718 MB/s 4235687 68.85 ooffice, exe
snappy 1.1.3 222 MB/s 889 MB/s 4271150 69.42 ooffice, exe
lz4 1.7.5 337 MB/s 1671 MB/s 4338918 70.53 ooffice, exe
lz5 2.0 -10 251 MB/s 1997 MB/s 4370070 71.03 ooffice, exe

Тест 6. Пример базы данных MySQL формата из Open Source Database Benchmark, database

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4095 MB/s 4073 MB/s 10085684 100.00 osdb, db
csc 2016-10-13 -1 10 MB/s 38 MB/s 3317800 32.90 osdb, db
lzlib 1.7 -0 19 MB/s 33 MB/s 3345965 33.18 osdb, db
xpack 2016-06-02 -1 68 MB/s 475 MB/s 3752871 37.21 osdb, db
zstd 1.1.3 -1 194 MB/s 585 MB/s 3770566 37.39 osdb, db
libdeflate 0.6 -1 90 MB/s 470 MB/s 3896803 38.64 osdb, db
brotli 0.5.2 -0 214 MB/s 224 MB/s 3910502 38.77 osdb, db
lzma 9.38 -0 15 MB/s 38 MB/s 3988823 39.55 osdb, db
zlib 1.2.8 -1 56 MB/s 211 MB/s 4076391 40.42 osdb, db
broo 1.0 5.40 MB/s 474 MB/s 4147465 41.12 osdb, db
lzsse2 2016-05-14 -0 12 MB/s 1724 MB/s 4492551 44.54 osdb, db
gipfeli 2016-07-13 232 MB/s 530 MB/s 4517517 44.79 osdb, db
yalz77 2015-09-19 -1 51 MB/s 596 MB/s 4570193 45.31 osdb, db
lz4 1.7.5 359 MB/s 1629 MB/s 5256666 52.12 osdb, db
lz5 2.0 -10 278 MB/s 1842 MB/s 5286739 52.42 osdb, db
snappy 1.1.3 303 MB/s 1110 MB/s 5329321 52.84 osdb, db
quicklz 1.5.0 -1 277 MB/s 330 MB/s 5496443 54.50 osdb, db
yappy 2014-03-22 -0 70 MB/s 1794 MB/s 7515735 74.52 osdb, db

Тест 7. Текст книги Chłopi, польского писателя Радислава Реймонта, Polish, PDF

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4123 MB/s 4120 MB/s 6627202 100.00 reymont, pdf
csc 2016-10-13 -1 15 MB/s 47 MB/s 1872324 28.25 reymont, pdf
lzma 9.38 -0 15 MB/s 49 MB/s 1921954 29.00 reymont, pdf
lzlib 1.7 -0 22 MB/s 37 MB/s 2082297 31.42 reymont, pdf
zstd 1.1.3 -1 157 MB/s 486 MB/s 2167385 32.70 reymont, pdf
libdeflate 0.6 -1 100 MB/s 512 MB/s 2206932 33.30 reymont, pdf
xpack 2016-06-02 -1 97 MB/s 389 MB/s 2279716 34.40 reymont, pdf
broo 1.0 5.10 MB/s 423 MB/s 2289019 34.54 reymont, pdf
brotli 0.5.2 -0 212 MB/s 226 MB/s 2360732 35.62 reymont, pdf
zlib 1.2.8 -1 59 MB/s 213 MB/s 2376430 35.86 reymont, pdf
gipfeli 2016-07-13 222 MB/s 318 MB/s 2644916 39.91 reymont, pdf
quicklz 1.5.0 -1 284 MB/s 399 MB/s 3003825 45.33 reymont, pdf
yalz77 2015-09-19 -1 76 MB/s 347 MB/s 3017083 45.53 reymont, pdf
lzsse2 2016-05-14 -0 16 MB/s 1735 MB/s 3039392 45.86 reymont, pdf
yappy 2014-03-22 -0 119 MB/s 1252 MB/s 3161344 47.70 reymont, pdf
lz4 1.7.5 303 MB/s 1611 MB/s 3181387 48.00 reymont, pdf
lz5 2.0 -10 265 MB/s 1626 MB/s 3184901 48.06 reymont, pdf
snappy 1.1.3 208 MB/s 729 MB/s 3233787 48.80 reymont, pdf

Тест 8. Tar архив исходников Samba 2-2.3, src

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4048 MB/s 4033 MB/s 21606400 100.00 samba, src
csc 2016-10-13 -1 17 MB/s 60 MB/s 4407241 20.40 samba, src
lzlib 1.7 -0 26 MB/s 46 MB/s 5178819 23.97 samba, src
lzma 9.38 -0 21 MB/s 59 MB/s 5338935 24.71 samba, src
zstd 1.1.3 -1 257 MB/s 715 MB/s 5550637 25.69 samba, src
xpack 2016-06-02 -1 107 MB/s 568 MB/s 5669295 26.24 samba, src
libdeflate 0.6 -1 113 MB/s 615 MB/s 5922973 27.41 samba, src
brotli 0.5.2 -0 304 MB/s 285 MB/s 6084327 28.16 samba, src
broo 1.0 6.90 MB/s 650 MB/s 6186042 28.63 samba, src
zlib 1.2.8 -1 73 MB/s 276 MB/s 6329455 29.29 samba, src
gipfeli 2016-07-13 323 MB/s 426 MB/s 6810623 31.52 samba, src
yalz77 2015-09-19 -1 81 MB/s 512 MB/s 7098899 32.86 samba, src
quicklz 1.5.0 -1 366 MB/s 497 MB/s 7309452 33.83 samba, src
lzsse2 2016-05-14 -0 14 MB/s 2144 MB/s 7395737 34.23 samba, src
lz4 1.7.5 486 MB/s 2035 MB/s 7716839 35.72 samba, src
lz5 2.0 -10 398 MB/s 2246 MB/s 7927178 36.69 samba, src
snappy 1.1.3 353 MB/s 1089 MB/s 8008774 37.07 samba, src
yappy 2014-03-22 -0 123 MB/s 1769 MB/s 9183273 42.50 samba, src

Тест 9. Звездный каталог Смитсоновской астрофизической обсерватории, bin

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4096 MB/s 4114 MB/s 7251944 100.00 sao, bin
lzma 9.38 -0 9.47 MB/s 22 MB/s 4923529 67.89 sao, bin
lzlib 1.7 -0 10 MB/s 16 MB/s 5005573 69.02 sao, bin
csc 2016-10-13 -1 5.69 MB/s 17 MB/s 5082846 70.09 sao, bin
xpack 2016-06-02 -1 47 MB/s 312 MB/s 5259606 72.53 sao, bin
libdeflate 0.6 -1 60 MB/s 258 MB/s 5494268 75.76 sao, bin
zlib 1.2.8 -1 31 MB/s 158 MB/s 5567774 76.78 sao, bin
brotli 0.5.2 -0 130 MB/s 120 MB/s 6019841 83.01 sao, bin
gipfeli 2016-07-13 146 MB/s 422 MB/s 6043361 83.33 sao, bin
broo 1.0 3.55 MB/s 496 MB/s 6086118 83.92 sao, bin
yappy 2014-03-22 -0 68 MB/s 1709 MB/s 6201752 85.52 sao, bin
zstd 1.1.3 -1 145 MB/s 483 MB/s 6254282 86.24 sao, bin
yalz77 2015-09-19 -1 26 MB/s 576 MB/s 6299030 86.86 sao, bin
snappy 1.1.3 212 MB/s 969 MB/s 6435266 88.74 sao, bin
quicklz 1.5.0 -1 229 MB/s 222 MB/s 6498301 89.61 sao, bin
lzsse2 2016-05-14 -0 15 MB/s 941 MB/s 6710542 92.53 sao, bin
lz4 1.7.5 337 MB/s 2161 MB/s 6790273 93.63 sao, bin
lz5 2.0 -10 236 MB/s 2501 MB/s 6792720 93.67 sao, bin

Тест 10. Американский словарь английского языка Уэбстера, html

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 3970 MB/s 4008 MB/s 41458703 100.00 webster, html
csc 2016-10-13 -1 13 MB/s 44 MB/s 10360155 24.99 webster, html
lzma 9.38 -0 17 MB/s 47 MB/s 12704878 30.64 webster, html
lzlib 1.7 -0 22 MB/s 38 MB/s 12727596 30.70 webster, html
zstd 1.1.3 -1 169 MB/s 531 MB/s 13738284 33.14 webster, html
libdeflate 0.6 -1 99 MB/s 524 MB/s 13839192 33.38 webster, html
broo 1.0 5.42 MB/s 266 MB/s 13854195 33.42 webster, html
xpack 2016-06-02 -1 94 MB/s 441 MB/s 14006907 33.79 webster, html
brotli 0.5.2 -0 187 MB/s 207 MB/s 14559007 35.12 webster, html
zlib 1.2.8 -1 60 MB/s 211 MB/s 14991242 36.16 webster, html
gipfeli 2016-07-13 209 MB/s 281 MB/s 16152312 38.96 webster, html
lzsse2 2016-05-14 -0 14 MB/s 1897 MB/s 17459517 42.11 webster, html
quicklz 1.5.0 -1 276 MB/s 369 MB/s 18315816 44.18 webster, html
yalz77 2015-09-19 -1 62 MB/s 315 MB/s 18435248 44.47 webster, html
yappy 2014-03-22 -0 107 MB/s 1378 MB/s 19899610 48.00 webster, html
lz4 1.7.5 317 MB/s 1593 MB/s 20139988 48.58 webster, html
lz5 2.0 -10 260 MB/s 1790 MB/s 20153547 48.61 webster, html
snappy 1.1.3 214 MB/s 765 MB/s 20206466 48.74 webster, html

Тест 11. Коллекция xml файлов, xml

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4118 MB/s 4113 MB/s 5345280 100.00 xml
csc 2016-10-13 -1 27 MB/s 99 MB/s 606763 11.35 xml
lzma 9.38 -0 34 MB/s 108 MB/s 691236 12.93 xml
zstd 1.1.3 -1 363 MB/s 887 MB/s 703151 13.15 xml
lzlib 1.7 -0 39 MB/s 73 MB/s 741537 13.87 xml
broo 1.0 7.91 MB/s 1277 MB/s 800526 14.98 xml
brotli 0.5.2 -0 409 MB/s 451 MB/s 905757 16.94 xml
libdeflate 0.6 -1 143 MB/s 856 MB/s 940409 17.59 xml
zlib 1.2.8 -1 104 MB/s 344 MB/s 965248 18.06 xml
xpack 2016-06-02 -1 137 MB/s 634 MB/s 1000008 18.71 xml
yalz77 2015-09-19 -1 157 MB/s 666 MB/s 1067378 19.97 xml
gipfeli 2016-07-13 406 MB/s 527 MB/s 1100536 20.59 xml
quicklz 1.5.0 -1 452 MB/s 712 MB/s 1124708 21.04 xml
lzsse2 2016-05-14 -0 18 MB/s 2870 MB/s 1201125 22.47 xml
lz4 1.7.5 617 MB/s 1991 MB/s 1227495 22.96 xml
lz5 2.0 -10 524 MB/s 2231 MB/s 1240098 23.20 xml
snappy 1.1.3 414 MB/s 1196 MB/s 1308374 24.48 xml
yappy 2014-03-22 -0 155 MB/s 1915 MB/s 1605459 30.04 xml

Тест 12. Рентген изображение, image

Имя алгоритма Скорость упаковки Скорость распаковки Размер сжатого файла, Байт % от оригинала Имя файла, тип
memcpy 4023 MB/s 4106 MB/s 8474240 100.00 x-ray, image
csc 2016-10-13 -1 16 MB/s 21 MB/s 4049630 47.79 x-ray, image
lzlib 1.7 -0 9.85 MB/s 18 MB/s 5079274 59.94 x-ray, image
lzma 9.38 -0 10 MB/s 23 MB/s 5198894 61.35 x-ray, image
xpack 2016-06-02 -1 48 MB/s 243 MB/s 5863367 69.19 x-ray, image
libdeflate 0.6 -1 63 MB/s 267 MB/s 5999750 70.80 x-ray, image
zlib 1.2.8 -1 35 MB/s 145 MB/s 6033932 71.20 x-ray, image
brotli 0.5.2 -0 139 MB/s 121 MB/s 6600523 77.89 x-ray, image
zstd 1.1.3 -1 419 MB/s 569 MB/s 6772286 79.92 x-ray, image
lzsse2 2016-05-14 -0 17 MB/s 883 MB/s 7292876 86.06 x-ray, image
quicklz 1.5.0 -1 264 MB/s 219 MB/s 7440632 87.80 x-ray, image
gipfeli 2016-07-13 165 MB/s 486 MB/s 7641391 90.17 x-ray, image
broo 1.0 3.47 MB/s 487 MB/s 7702715 90.90 x-ray, image
yalz77 2015-09-19 -1 23 MB/s 491 MB/s 7933653 93.62 x-ray, image
snappy 1.1.3 446 MB/s 1869 MB/s 8209180 96.87 x-ray, image
yappy 2014-03-22 -0 59 MB/s 3200 MB/s 8328582 98.28 x-ray, image
lz4 1.7.5 852 MB/s 3457 MB/s 8390195 99.01 x-ray, image
lz5 2.0 -10 540 MB/s 4126 MB/s 8459685 99.83 x-ray, image

“Послесловие”

Следует заметить, что он все еще сыроват и еще есть достаточно работы для улучшения, но уже сейчас дает положительный эффект. Впереди еще часы генерирования и проверки гипотез, написание тестов и оптимизации кода.

Спасибо за внимание.

Автор: antoxa950

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js