16.06.2013 Views

2 - Amiga Magazine Online

2 - Amiga Magazine Online

2 - Amiga Magazine Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Un complesso<br />

sistema PD per<br />

comprimere i dati<br />

li algoritmi di compressione dei<br />

dati hanno trovato, in campo<br />

informatico, un vasto utilizzo,<br />

soprattutto da quando la potenza dei<br />

processori ha consentito di impiegar-<br />

ne alcuni sofisticati, mantenendo co-<br />

munque relativamente bassi i tempi di<br />

elaborazione. Con il tempo, è apparso<br />

evidente che la compressione dei dati<br />

poteva trovare applicazioni nei campi<br />

più disparati, dai programmi di archi-<br />

viazione agli eseguibili. Da questa evi-<br />

denza e dall'inventiva di alcuni pro-<br />

grammatori tedeschi, è nato external<br />

PaKer. o XPK.<br />

La filosofia di XPK<br />

XPK è nato come strumento per per-<br />

mettere ai programmi di salvare e cari-<br />

care dati compressi senza doversi<br />

preoccupare di implementare un algo-<br />

ritmo particolare. In questo modo si è<br />

ottenuto un duplice risultato: l'aumento<br />

delle applicazioni che salvano e cari-<br />

cano dati compressi e la comparsa di<br />

molte librerie XPK che implementano<br />

algoritmi più o meno efficienti.<br />

XPK è costituito da comuni librerie, or-<br />

ganizzate su tre livelli distinti di funzio-<br />

namento. Il livello inferiore è rappre-<br />

sentato da una serie di piccole librerie<br />

contenute nella directory "compres-<br />

sors" in Libs:; il loro nome è costituito<br />

dal prefisso "xpk" seguito da quattro<br />

lettere. Queste librerie contengono il<br />

codice dell'algoritmo di compressione,<br />

e il loro compito consiste nell'eseguire<br />

tre operazioni: comprimere e decom-<br />

primere i dati in memoria utilizzando<br />

ALLA SCOPERTA DI XPK<br />

gli algoritmi che sono loro pro-<br />

pri e fornire informazioni su se<br />

stesse.<br />

Queste librerie non sono mai<br />

utilizzate direttamente dalle<br />

applicazioni, ma vengono<br />

chiamate secondo necessità<br />

dalla "xpkmaster.library", che<br />

rappresenta il livello superiore.<br />

L1xpkmaster.library si premura<br />

di fornire all'applicazione<br />

un'interfaccia flessibile verso<br />

le librerie inferiori: per esem-<br />

pio, può leggere i dati da un fi-<br />

le, comprimerli o decompri-<br />

merli attraverso le sotto-librerie<br />

citate e scriverli in un altro file.<br />

L'applicazione si limiterà in<br />

questo a caso a fornire solo i<br />

nomi dei file in questione e I'al-<br />

goritmo, prescelto tra quelli di-<br />

sponibili.<br />

In fase di decompressione,<br />

xpkmaster.library riconosce<br />

automaticamente quale sotto-<br />

libreria è stata utilizzata per<br />

comprimere i dati, sollevando<br />

l'applicazione che l'utilizza da<br />

qualsiasi responsabilità in me-<br />

rito. Il sistema è semplice, e al<br />

contempo enormemente fles-<br />

sibile: è possibile infatti espan-<br />

dere indefinitamente il set di<br />

sotto-librerie, ottenendo alla fi-<br />

ne una rosa di algoritmi vera-<br />

mente vasta.<br />

Il terzo livello è quello di<br />

xpkarchive.library, che, come<br />

il nome suggerisce, lavora su-<br />

gli archivi, ovvero su gruppi di<br />

file compressi raccolti in un u-<br />

nico file. In genere è poco uti-<br />

lizzata.<br />

Gli algoritmi<br />

di tompressione<br />

Il cuore di XPK sono le sotto-li-<br />

brerie. Ognuna di esse imple-<br />

menta un algoritmo di com-<br />

pressione, generalmente scrit-<br />

QII algorltml dl XPK testa21<br />

con an fllr blnarlo<br />

Algoritmi ordinati per percentuale di compressione (ratio)<br />

SHRI<br />

GZIP<br />

MASH<br />

NUKE<br />

R AKE<br />

IMPL<br />

PWPK<br />

RDCN<br />

FAST<br />

BLZW<br />

HFMN<br />

RLEN<br />

CBRO<br />

Algoritmi ordinati per velocità di compressione<br />

CBRO<br />

RLEN<br />

FAST<br />

HFMN<br />

RDCN<br />

RAKE<br />

BLZW<br />

MASH<br />

NUKE<br />

PWPK<br />

IMPL<br />

GZIP<br />

SHRI<br />

3.065 kbls<br />

3.065 kbls<br />

1.666 kbls<br />

1.630 kbls<br />

1.321 kbls<br />

584 kbls<br />

507 kbls<br />

381 kbls<br />

199 kbls<br />

186 kbls<br />

122 kbls<br />

91 kbls<br />

50 kbls<br />

Algoritmi ordinati per velocità di decompressione<br />

CBRO<br />

RLEN<br />

FAST<br />

RDCN<br />

NUKE<br />

RAKE<br />

MASH<br />

PWPK<br />

IMPL<br />

BLZW<br />

HFMN<br />

GZIP<br />

SHR<br />

8.513 kbls<br />

6.965 kbls<br />

5.894 kbls<br />

4.257 kb/s<br />

3.331 kbls<br />

3.193 kbls<br />

2.189 kbls<br />

1.782 kbls<br />

1.666 kbls<br />

1.666 kbls<br />

1.144 kbls<br />

1 .O95 kbls<br />

198 kbls

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!