PNG использует алгоритм deflate
-сжатия обычно со скользящим окном в 32 Кб. Deflate
является улучшенной версией алгоритма сжатия Lempel-Ziv (LZ77), который применяется в zip
- и gzip
-файлах. Созданный Phil Katz для второй версии PKZip, deflate
совмещает LZ77 с кодированием Huffman и является на 10-30% более эффективным, чем LZW, при сжатии без потери информации. Так же как и gzip
, некоторые инструменты по PNG-сжатию предполагают опциональный параметр «степень сжатия», который варьируется от 1 до 9. По умолчанию выставляется 6. Практически всегда лучшим выбором для максимального сжатия является 9.
Неудивительно, что изображения, сохраненные как PNG, обычно на 10-30% меньше по размеру, чем GIF, хотя в некоторых редких случаях они могут быть несколько больше (чаще всего это проявляется для небольших изображений). Обычно изображения с большими однотонными областями сжимаются лучше, чем градиентные с большим количеством переходов между цветами.