Commenti ai file da comprimere

 

Book1 (.txt)   785393 byte
Romanzo in inglese in ASCII puro, con a capo ad ogni riga. Lungo file a entropia medio - bassa, con lunghe catene di byte correlati. I buoni compressori comprimono testo con maiuscole e punteggiatura a circa 1.5bit/carattere, ma in un esperimento basato su volontari, Shannon ha misurato l'entropia di un testo inglese senza punteggiatura (ma ciò fa poca differenza) in circa 0.6 - 1.3 bit/cararttere. Vedi La teoria dell'informazione di John R. Pierce, EST Mondadori, pag. 109. (Titolo originale Symbols, signals and noise, edited James Newman)
I file testuali sono piuttosto diffusi, anche sotto forma di sorgenti, file prodotti automaticamente, log, ecc. I byte diversi sono solo una frazione dei 256 possibili, come si vede nell'istogramma di frequenza, (86 in totale in questo file), ma le correlazioni sono estremamente lunghe, oltre 15 - 30 byte, per cui metodi basati sulla trasformata Bwt (Acb in primis) risultano molto adatti.
Reperibilità: é tratto dalla diffusa suite di file Calgary corpus, usata per test di compressione testuale.
 

 
Caso150   192000 byte
Caso50     192000 byte
Questi due file sono ottenuti sinteticamente generando, con un piccolo programma T. Pascal, una serie di 192000 byte contenenti numeri compresi fra 0 e 49 o 0 e 149. Lo scopo di questi test è quello di fornire un file con entropia nota a priori, per vedere quanto i compressori aritmetici riescono ad avvicinarcisi. Da notare che non dovrebbero esserci ridondanze di ordine superiore al primo. Questi numeri sono ottenuti da un generatore a congruenze lineari, che è ben lungi dall'essere perfetto, per cui la ridondanza reale potrebbe essere anche minore di quella ipotetica.
L'occupazione teorica minima di questi file risulta:
Primo caso      (ln(150)/ln(2)) / 8 * 192000  =  7.228/8 * 192000 = 173491 byte
Secondo caso   (ln( 50)/ln(2)) / 8 * 192000  =  5.64/8 * 192000 = 135452 byte
Ho avuto una sorpresa, nel Caso150 il vincitore è stato WinZip, battendo probabili ottimi codificatori aritmetici come quello del 777. Non idea di come sia stato possibile, qualcuno ne ha idea?
I risultati per i vincitori sono stati rispettivamente 175008 e 137391 byte, per WinZip e Rkive, con un margine di 1517 e 1939 byte, pari al 0.87% e 1.43%. Non male.
Reperibilità: sono disponibili eseguibili per Pc, il sorgente Pascal o i file prodotti.

 

Dreams.xm    524149 byte
Questo è un modulo musicale, cioè un file contenente l'elenco delle note, seguite dagli strumenti campionati necessari. Composto da Solid Energy (Bj rn Karlsson,Andreas Viklund, John Johansson, mail: energy@jokkmokk.se). Le note hanno entropia bassa, simile a quella di un file di testo, ma occupano solo una frazione del file. Il resto è composto da campioni audio a varie frequenze di campionamento e a 8 o 16 bit. Qusto file non può essere compresso da WaveArc perchè contiene audio in vari formati, per lui ignoti. Con questo file permette di mostrare la capacità con cui i compressori multimediali si adattano al variare della struttura del file.
Reperibilità: sito Mod Archive.

 
 
EnyaS16.wav   860560 byte 
Frammento campionato da Cd dell'inizio di una musica di Enya, "Book of Days". Intensità bassa, complessità audio medio-bassa, stereo, Pcm 44.1Khz di capionam., 16 bit/camp., 9.75s. Rumore inudibile, Massima correlazione fra canali.
 
 
 
Gard.ppm   767275 byte 
Dettaglio di un disegno a matita di Bucky, dal titolo Gard, di 576*444 pixel, truecolor, 133339 colori usati. Colori forti, bordi scuri delle figure, elevato microdettaglio, parecchio "rumore" dovuto al tratto della matita. Il jpeg lo comprime senza perdita di qualità apparente a circa 70KB. 
 
 
 
Istogra.bmp   116598 byte 
Istogramma generato con Excel7 e poi rielaborato per portarlo a 8 colori, 558*416 pixel * 8 colori. (Bmp con palette lunga 16, senza Rle). E' composto da zone perfettamente uniformi di forma rettangolare, perfetta per i compressori lossless d'immagine. Bmf l'ha portata a 948 byte, mentre il Gif a 10915 byte! (Png a 1576 byte).
 
 

 
 
Lena.pgm    262189 byte 
Gran cavallo da battaglia degli studiosi di codifica lossy. Originariamente era una immagine tratta da Playboy, ma nel corso degli anni è diventata di pubblico dominio. Questa immagine è stata rovinata e rielaborata un'infinità di volte. 512 * 512, 1byte a pixel, a scala di grigi, 236 usati, fotografia di ritratto. Figura dal microcontrasto medio, rumore medio-alto. In certi punti l'immagine è sfuocata, in altri presenta molti piccoli dettagli, in altri punti una situazione intermedia, con vaste aree sfumate e un poco rumorose. 
Su questa immagine sono stati provati i più potenti compressori mai ideati: 
Grezzo:    262144 Byte 
BMF:       147236  " 
CALIC:    ~146800  " 
TMW:       140917  " 
TMW+ACB:   140767  " 

Per altre indformazioni sul TMW 
Reperibilità: ovunque! 
 

 

Midi (mid)   409232 byte totali
Raccolta di 15 file musicali midi di pubblico dominio:  06twelv&, 12days, 12sleig&, 12th_rag, 2_somewh, 3_ridewd, 558-tanz, 5thsymp, 670-bail, alf, alle, beet27m1, beet27m2, brahms1, bridalch.
Sono stati scelti in maniera da rispettare le proporzioni normali di una grande raccolta: molti piccoli, qualcuno medio, e molto pochi grandi. L'entropia di questi file è molto bassa, e simile a quella del testo.

 
 
Mozart16.wav  1036366 byte 
Musica di intensità media, mono 44.1kHz, Pcm 16b/camp, 11.75s. Consiste nell'attacco del primo movimento (allegro) della Salzburger Sinfonien N.1 KV 136 di A. Mozart, tratto da CD. Il segnale stereo 16b/camp. è stato ridotto in vari modi per ottenere questo Mozart16, Mozart8 e MozartS8. Lo scopo è confrontare i compressori in vari formati, ad esempio per vedere come riescono a sfruttare le correlazioni fra canali. 
 
 
Mozart8.wav   1918394 byte
Segnale audio 8 b/canale, intensità alta, mono, 43.5s. Vedi Mozart16.wav.
 
 
MozartS8.wav   561810 byte
Segnale audio Pcm, intensità media, stereo, 6.37s. Vedi Mozart16.wav.
 

Nrecipes (pas lzh)   609132 byte impacchettati con Lha
Raccolta del Numerical Recipes di 415 file, quasi tutti sorgenti Pascal. Copyright (C) 1986 by Numerical Recipes Software. Hanno una struttura entropica simile a quella di file di testo inglese, ma ancora più comprimibile, a causa del ridotto numero di parole chiave del Pascal. Dato che sono di tipo molto uniforme li ho compressi tutti insieme. Per i compressori che non hanno la compressione solida li ho impacchettati con un archiviatore, con compressione disattivata. WinZip produce un overhead atroce, così ho usato Lha. Ecco un confronto fra vari compressori in storing:
Tot. Originali   593894
 LZH             609132
 RAR             611226
 ZIP             633430
 
 
 
Oldfield.mp3   163944 byte
Spezzone audio iniziale di 40s di Sentinel, tratto dal Cd Tubular Bells II di M. Oldfield. totale 1576 frames codificati in Mpeg 2.0 Layer III a 32kbps, freq. di campionamento usata 22kHz, banda passante reale 7kHz, niente Crc nè enfasi. Volume basso, complessità audio medio-bassa. Il codificatori Mp3 hanno anche compressione entropica di tipo Huffman statico, come stadio finale, per cui questo file ha un'entropia estremamente elevata. Questo tipo di file è difficilmente comprimibile, ma talvolta si trova in directory da comprimere, per cui l'ho incluso in quedsto test. Si vede quanto sono adatti i vari compressori con file ad entropia quasi massima. Il compressore del 777 ha vinto, portandolo a 156 mila byte circa, mostrando che gli Mp3 potrebbero essere compressi meglio, entropicamente.
 

 
 
Ouch.pgm    259843 byte 
Disegno a lapis su pagina bianca, quasi solo i bordi della figura. 640*420 a scala di grigi, 1 byte/pixel, 16 usati. Pochissimo rumore. Autore Boos, '96.
 
 
 
Pagina.pbm    190736 byte 
Pagina di testo con una piccola semplice figura. 968*1576 pixel, binaria. E' stata ottenuta riducendo in binario una pagina postscript del documento sul Jbig, mostrato a 256 toni di grigio. Rumore inesistente, ma i caratteri sono tutti diversi a causa della binarizzazione. Moderatamente difficile da comprimere.
 
 

Paper.ps   3485900 byte
Ariticolo in postscript di 41 pagine, dal titolo Computation in Cellular Automata: A Selected Review, di
Melanie Mitchell. Contiene poche figure e nessuna immagine a tono continuo. File ad entropia molto bassa, inferiore a quella del file di testo, dalle lunghe correlazioni.
 

 
Snowolf.ppm   783043 byte 
Immagine ottenuta da un fotoritocco. Basso microcontrasto, rumore medio, colori tenui. 552*500 truecolor, 23247 colori usati. L'autore si chiama X, ed esegue quasi solo fotoelaborazioni furry di alta qualità simili a questa. 
Reperibilità: WW in Suburbia
 
 
Spring.pbm    196649 byte 
Fotografia di una volpe a primavera, 1526*1024, binaria. Questo file è stato ricavato da una immagine a toni di grigio, portata in binario con dithering Floyd-St. Piuttosto difficile da comprimere.
 
 
 
Tigre.ppm    919723 byte 
Immagine fotografica 640*479 truecolor, rumore e microdettaglio medii. L'immagine è composta in gran parte da cielo sfumato, quasi del tutto privo di rumore. 
 
 
 
 
Volpe.bmp    308278 byte 
Immagine fotografica di una volpe in inverno, 640*480 * 1 byte/pixel, 241 colori usati, rumore basso, microcontrasto medio-alto, colori tenui e equilibrio fra aree ad alto contrasto locale e aree sfumate. Dithering medio. Facilmemnte comprimibile.
 
 

WinZip32.exe   866304 byte
Eseguibile della versione 6.3. Contiene poca grafica e molto codice compilato, molto facilmente comprimibile.