Portál AbcLinuxu, 30. dubna 2025 09:09

FastPAQ8 pre Linux

9.6.2012 16:33 | Přečteno: 1403× | Linux | Výběrový blog | poslední úprava: 9.6.2012 17:08

V oblasti bezstratovej kompresie dat dosahuju najlepsich vysledkov algoritmy PAQ. V poslednych rokoch vyhravaju tieto algoritmy v sutaziach Hutter Prize. Nevyhodou PAQ algoritmov je velka pametova a hlavne casova narocnost.

Pre pomalost kompresie vznikol projekt FastPAQ8 (FP8) ktory vychadza z projektu paq8px.FastPAQ8 obsahuje vylepsene algoritmy pre zvysenie rychlosti kompresie a zaroven sa snazi zachovat maximalny kompresny pomer aky dosahuje paq8px.Autor FP8 vydal poslednu verziu pre windows a hlavne zdrojaky z ktorych si mozme skompilovat aj binarku pre linux

Co potrebujeme

  1. stiahneme si zdrojove kody pre FastPAQ8
  2. pre asm modul FP8 treba nainstalovat nasm. Ak nasm nemame tak zadame:
  3. sudo apt-get install nasm

Vytvorenie binarky pre Linux

Pre kompilaciu potrebujeme tieto subory: fp8.cpp a paq7asm.asm Najprv budeme vytvarat modul paq7asm.o pomocou nasm a potom samotny FP8.Do konzoly zadame tieto prikazy:

nasm paq7asm.asm -f elf
g++ fp8.cpp -m32 -DUNIX -O2 -Os -s -march=pentiumpro -fomit-frame-pointer -o fp8 paq7asm.o

Pre dalsie zvysenie rychlosti kompresie FP8 mozme pouzit SSE optimalizovane instrukcie:

nasm ./paq7asmsse.asm -f elf -O3
g++ fp8.cpp -m32 -O3 -s -fomit-frame-pointer -march=k8 -ffast-math -msse2 -msseregparm -mfpmath=sse -DUNIX -o fp8_sse paq7asmsse.o

Pouzivanie FastPAQ8 a statistiky kompresie

Predchadzajuce prikazy pre kompilaciu nam vytvorily tieto subory:
fp8 - toto je standardna binarka aj s asm modulom
fp8_sse - tato binarka bude navyse pri pakovani vyuzivat SSE instrukcie cize ziskame este vacsiu rychlost kompresie.

Na zaver uvadzam pouzitie fp8 a vysledky kompresie.Binarke fp8 pridame priznak na spustenie a po zadani do konzoly sa objavi info pouzivania fp8.

rychlost:
- paq8px_v69 = 50.8s
- fp8 = 6.6s
kompresny pomer (SFC -7):
- paq8px_v68 = 8764929 bytes
- fp8 = 9167064 bytes

Priklad pre kompresiu suboru z excelu
./fp8_sse -7 subor.xls
subor.xls - 2445kB
subor.rar - 458kB
subor.fp8 - 263kB

Najnovsia verzia rar4 s maximalnou urovnou kompresie -m5 spakuje 2445kB subor.xls na 458kB a FastPAQ8 s parametrom -7 az na 263kB

       

Hodnocení: 89 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

9.6.2012 21:54 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: FastPAQ8 pre Linux
Odpovědět | Sbalit | Link | Blokovat | Admin
A jak to vypadá třeba se zdrojáky kernelu? Jak velký to je archiv? Je vysoká paměťová a časová náročnost pouze u komprese, nebo i u dekomprese?
mirec avatar 9.6.2012 22:06 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: FastPAQ8 pre Linux
Beží ... ale dochádza RAM.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 9.6.2012 22:35 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: FastPAQ8 pre Linux
Takže zatiaľ mám údaje pre XZ.

Peak RES673MB
RýchlosťZhruba 10x rýchlejšie než fp8_sse
Čas900,48s user 3,91s system 92% cpu 16:21,61 total*
Kompresný pomer63MB / 445MB (13,984147%)
Voľby-9e
* pozor, poces chvíľu swapoval, odporúčam pozerať len user

fp8_sse bude bežať dlho, idem dať notebook spať a zajtra pokračujem ak to prežije hibernáciu.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 10.6.2012 11:42 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: FastPAQ8 pre Linux
Údaje pre fp8_sse

Peak RES556 MB
Čas10045,54s user 11,42s system 21% cpu 12:55:32,65 total
Kompresný pomer43M / 445M (9,5370084%)
Voľby-7

Dekompresia:
xz - 10,84s user 0,14s system 97% cpu 11,233 total, 66436kB RES
fp8_sse - okolo 10 000s user (odhad podľa rýchlosti), > 500 MB RES
Takže vzhľadom na rýchlosť dekompresie si viem zatiaľ ťažko predstaviť tento algoritmus ako reálne použiteľný pri distribúcii softvéru.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
9.6.2012 23:18 karel1910
Rozbalit Rozbalit vše Re: FastPAQ8 pre Linux
Odpovědět | Sbalit | Link | Blokovat | Admin
xz pouziva LZMA2 algoritmus ten je slabsi ako PAQ8
File      Size (bytes)  
------    -------------
enwik8    100,000,000  

Version    Options  enwik8     
--------   -------  ----------   
xv 5.0.1   -9 -e    24,831,648
fp8 v3       -8     18,438,169   
Tabulka je z : Large Text Compression Benchmark

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.