Mindennél hatékonyabb webes tömörítési algoritmus jelent meg
A Zopfli nevű új tömörítési algoritmussal 3-8 százalékkal nagyobb tömörítési sűrűség érhető el, ami nagy sávszélesség-igényű átvitelnél érezhető különbséget adhat. Az új eljárás kompatibilis a meglévő kliensoldali kitömörítő algoritmusokkal, így szerveroldalon, saját hatáskörben is bevezethető.
Új implementációt talált a DEFLATE tömörítő algoritmushoz a Google egyik mérnöke, Lode Vandevenne. A mellékprojektként kifejlesztett Zopfli algoritmus minden korábbinál magasabb tömörítési sűrűséget képes elérni, ami nagyobb effektív hálózati adatátviteli sebességet, vagy kisebb kapacitásigényt jelenthet. Az új algoritmus a korábbi vezető módszerekhez képest feladattól függően 3-8 százalékkal magasabb sűrítést képes előállítani, ami például mobilos adatátvitel esetében már érezhető megtakarítást hozhat.
A fejlesztő szerint az erősebb tömörítést a minden korábbinál kimerítőbb bejárással éri el az algoritmus. "A módszer iteratív entrópia-modellezésen alapszik és a legrövidebb utat kereső algoritmus választja ki a legalacsonyabb bit-költségű utat az összes létező deflate-kimenet között" - mondja Vandevenne. Ez a folyamatot nagyon lassúvá teszi, cserébe gyakorlatilag minden redundanciát kiküszöböl a végeredményből. A lassú tömörítés a kicsomagolást nem befolyásolja, a konténer és a kitömörítési eljárás szabványos marad.
A közzétett eredmények szerint a Zopfli algoritmus számottevően hatékonyabb, mint a többi, DEFLATE-kompatibilis eljárás, a legerősebb zlibre is százalékokat képes verni. A jó hordozhatóság jegyében a Zopfli implementációja C-ben készült, így szerveroldalon gyakorlatilag bármilyen korábbi DEFLATE-algoritmus kiváltására alkalmas. Az elterjedés érdekében az algoritmus nyílt forráskódú, Apache 2.0 licenc alatt szabadon terjeszthető, forráskódja itt érhető el.
CI/CD-vel folytatódik az AWS hazai online meetup-sorozata! A sorozat december 12-i, ötödik állomásán bemutatjuk az AWS CodeCatalyst platformot, és a nyílt forráskódú Daggert is.
A Zopfli hátránya, hogy a zblihez képest számottevően magasabb CPU-igénye van, a gzip -9 parancshoz képest például 81-szeres számítási kapacitást igényel, jellemzően 2-3 nagyságrenddel több CPU-ciklust igényel. Ennek megfelelően a Google is csak olyan tartalmak tömörítéséhez ajánlja a Zopflit, amelyet csupán ritkán kell újratömöríteni, de nagyon gyakran kell elküldeni. Jó példa erre egy statikus weboldal, amelynél a 3-8 százalékos csökkenés már érezhető sávszéligény-csökkenést hoz, miközben a ritka újratömörítést könnyedén elviseli a kiszolgáló.
A Zopfli előnye, hogy a kitömörítés tökéletesen kompatibilis a DEFLATE-alapú tömörítésekkel, vagyis a meglévő kliensek probléma nélkül tudják kezelni a szerveroldalon implementált új tömörítési algoritmust. A kitömörítésnél ráadásul nem jelentkezik a Zopfli nagyobb számításigénye sem, a művelet sebessége megegyezik a többi algoritmuséval. A Google közleménye szerint a hagyományos DEFLATE-algoritmusokkal tömörített tartalmak, gzip, Zip, PNG, HTTP esetében használható az új eljárás.