Компания Google анонсировала (http://google-opensource.blogspot.ru/2015/09/introducing-bro... алгоритм сжатия данных Brotl, который отнесён к алгоритмам сжатия общего назначения, но позиционируется как решение для минимизации объёма данных, передаваемых по сети. Спецификация Brotli передана (http://www.ietf.org/id/draft-alakuijala-brotli-05.txt) в комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры Интернет, в качестве претендента на получение звания интернет-стандарта. В настоящее время Brotli уже применяется в качестве алгоритма сжатия шрифров Web Open Font Format 2.0. Эталонная реализация Brotl написана на языке С++ и распространяется (https://github.com/google/zopfli) под лицензией Apache 2.0.
Brotli демонстрирует (http://www.gstatic.com/b/brotlidocs/brotli-2015-09-22.pdf) уровень сжатия, сопоставимый с лучшими современными методами сжатия общего назначения, но опережая их по скорости кодирования и декодирования. Например, в тесте Canterbury Corpus (http://corpus.canterbury.ac.nz/) алгоритм Brotli превосходит по уровню сжатия LZMA и bzip2 и при этом меньше потребляет ресурсов CPU.
Brotli близок по производительности к алгоритму Deflate (https://ru.wikipedia.org/wiki/Deflate), но превосходит его по степени сжатия. По сравнению с представленным (https://www.opennet.dev/opennews/art.shtml?num=36267) в 2013 году алгоритмом Zopfli, совместимым с Zlib и Deflate, Brotli позволяет сжимать данные на 20–26% эффективнее.
<center><a href="http://www.gstatic.com/b/brotlidocs/brotli-2015-09-22.pdf&qu... src="https://www.opennet.dev/opennews/pics_base/0_1442916096.png&q... style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></a></center>
Brotli является комбинацией современного варианта алгоритма LZ77 (https://ru.wikipedia.org/wiki/LZ77), адаптивного кодирования Хаффмана (https://ru.wikipedia.org/wiki/%D0%9A%D0%... и методов контекстного моделирования второго порядка (http://www.intuit.ru/studies/courses/1069/206/lecture/5328?p.... При сжатии разнородных данных. Высокий уровень сжатия достигается применением контекстного моделирования второго порядка, повторным использованием кодов энтропии, более крупным размером окна кодирования и использованием совместных кодов распределения (joint distribution code). Компания Google надеется, что в скором времени поддержка данного формата будет реализована во всех основных браузерах (в рамках поддержки Web Open Font Format 2.0), что позволит уменьшить размер передаваемых данных и, как следствие, приведёт к меньшему потреблению энергии при открытии контента на мобильных устройствах.
URL: http://google-opensource.blogspot.ru/2015/09/introducing-bro...
Новость: http://www.opennet.dev/opennews/art.shtml?num=43006