Estrai file PAX

Lavori illimitati. Dimensioni dei file fino a 2,5 GB. Gratis, per sempre.

Privato e sicuro

Tutto accade nel tuo browser. I tuoi file non toccano mai i nostri server.

Velocissimo

Nessun caricamento, nessuna attesa. Converti nel momento in cui rilasci un file.

Realmente gratuito

Nessun account richiesto. Nessun costo nascosto. Nessun trucco sulle dimensioni dei file.

Qual è il formato PAX?

Portable Archive eXchange

Il formato di archivio LHA, noto anche come LZH, è un formato di file di archivio compresso utilizzato principalmente su sistemi MS-DOS e Microsoft Windows. È stato sviluppato da Haruyasu Yoshizaki alla fine degli anni '80 come miglioramento rispetto ai formati di compressione ARC e ZIP esistenti. Gli archivi LHA forniscono rapporti di compressione efficienti e velocità di decompressione elevate, rendendoli adatti per l'archiviazione e la distribuzione di software, documenti e altri tipi di file.

Il formato LHA utilizza una combinazione di algoritmi di codifica Lempel-Ziv-Welch (LZW) e Huffman per ottenere elevati rapporti di compressione. LZW è un algoritmo di compressione basato su dizionario che sostituisce le occorrenze ripetute di dati con riferimenti a un dizionario che viene costruito mentre i dati vengono compressi. La codifica Huffman, d'altra parte, è uno schema di codifica a lunghezza variabile che assegna sequenze di bit più brevi a simboli più frequenti, riducendo così la dimensione complessiva dei dati compressi.

Un archivio LHA è costituito da una serie di intestazioni e blocchi di dati compressi. L'archivio inizia con un'intestazione principale che contiene informazioni sull'archivio stesso, come la versione del formato di archivio, il metodo di compressione utilizzato e il numero totale di file archiviati nell'archivio. Dopo l'intestazione principale ci sono intestazioni di file individuali per ciascun file contenuto nell'archivio. Queste intestazioni di file memorizzano metadati come il nome file originale, la dimensione del file, la data di modifica e il checksum CRC-16.

Dopo ogni intestazione di file, i dati compressi per quel file vengono archiviati in uno o più blocchi di dati. La dimensione di ciascun blocco di dati è determinata dal metodo di compressione e dalle impostazioni utilizzate durante la creazione dell'archivio. LHA supporta diversi metodi di compressione, tra cui -lh0- (nessuna compressione), -lh1- (codifica RLE), -lh4- (compressione LZW), -lh5- (codifica LZW+Huffman) e -lh7- (compressione LZSS). La scelta del metodo di compressione influisce sia sul rapporto di compressione che sulla velocità di decompressione dell'archivio.

Una caratteristica degna di nota del formato LHA è il suo supporto per archivi solidi. In un archivio solido, i dati compressi per più file vengono concatenati insieme, consentendo all'algoritmo di compressione di sfruttare la ridondanza tra i confini dei file. Ciò può comportare rapporti di compressione significativamente più elevati rispetto agli archivi non solidi, in cui ciascun file viene compresso indipendentemente. Tuttavia, gli archivi solidi hanno anche lo svantaggio di richiedere la decompressione dell'intero archivio per estrarre un singolo file, il che può richiedere molto tempo per archivi di grandi dimensioni.

Per creare un archivio LHA, viene utilizzata un'utilità di compressione come LHA o LHarc. Queste utilità prendono uno o più file di input e li comprimono in un singolo file di archivio LHA con estensione .lha o .lzh. Il processo di compressione prevede l'analisi dei dati di input, la creazione di un dizionario di modelli ripetuti e la sostituzione di tali modelli con riferimenti più brevi nell'output compresso. I dati compressi vengono quindi suddivisi in blocchi e scritti nel file di archivio insieme alle intestazioni e ai metadati necessari.

L'estrazione di file da un archivio LHA comporta la lettura delle intestazioni dell'archivio per individuare il/i file desiderato/i e quindi la decompressione dei blocchi di dati corrispondenti. Il processo di decompressione inverte l'algoritmo di compressione, ricostruendo i dati originali dai riferimenti del dizionario e dai simboli codificati. La maggior parte delle utilità di compressione LHA supporta varie opzioni di estrazione, come l'estrazione di file specifici, la sovrascrittura di file esistenti o la conservazione della struttura originale della directory.

Un vantaggio del formato LHA è la sua compatibilità con un'ampia gamma di sistemi operativi e piattaforme. Oltre a MS-DOS e Microsoft Windows, gli archivi LHA possono essere creati ed estratti su sistemi Unix-like, macOS e altre piattaforme utilizzando gli strumenti software appropriati. Questa compatibilità multipiattaforma rende LHA una scelta conveniente per la distribuzione di software e dati in diversi ambienti.

Tuttavia, il formato LHA presenta anche alcune limitazioni rispetto ai formati di compressione più moderni. Un problema è la mancanza di supporto per la crittografia integrata, il che significa che gli archivi LHA non forniscono alcuna sicurezza intrinseca per i dati sensibili. Un'altra limitazione è la dimensione massima del file supportata dal formato, che in genere è di circa 2 GB a causa dell'uso di offset file a 32 bit. Inoltre, il formato LHA è stato ampiamente sostituito da formati più recenti come ZIP e RAR, che offrono rapporti di compressione migliorati, prestazioni migliori e funzionalità aggiuntive.

Nonostante queste limitazioni, il formato LHA rimane in uso oggi, in particolare per l'archiviazione e la distribuzione di software e dati meno recenti. Molti giochi classici MS-DOS, applicazioni e archivi di documenti sono ancora distribuiti in formato LHA, e sono disponibili numerosi strumenti e utilità per lavorare con archivi LHA su sistemi moderni. Alcune popolari utilità di compressione LHA includono LHA, LHarc e UNLHA, mentre molti moderni archiviatori di file come 7-Zip e WinRAR supportano anche la creazione e l'estrazione di archivi LHA.

In termini di prestazioni, il formato LHA offre un buon equilibrio tra rapporto di compressione e velocità di decompressione. Le caratteristiche esatte delle prestazioni dipendono dal metodo di compressione specifico e dalle impostazioni utilizzate, nonché dalla natura dei dati di input. In generale, gli archivi LHA creati con il metodo -lh5- (codifica LZW+Huffman) forniscono un buon compromesso tra rapporto di compressione e velocità di decompressione, mentre il metodo -lh7- (compressione LZSS) offre una decompressione più rapida a scapito di rapporti di compressione leggermente inferiori.

Quando si lavora con archivi LHA, è importante assicurarsi che gli strumenti software utilizzati siano compatibili con la versione e le funzionalità specifiche del formato di archivio. Le vecchie utilità di compressione LHA potrebbero non supportare i nuovi metodi di compressione o le funzionalità di archivio, mentre gli strumenti moderni potrebbero gestire gli archivi più vecchi in modo diverso rispetto al software originale. Si consiglia inoltre di verificare l'integrità degli archivi LHA utilizzando checksum CRC-16 o altri metodi di verifica per garantire che i dati compressi non siano stati danneggiati durante l'archiviazione o la trasmissione.

In conclusione, il formato di archivio LHA è un formato di compressione legacy che fornisce una compressione efficiente e una decompressione rapida per l'archiviazione e la distribuzione di file su sistemi MS-DOS e Microsoft Windows. Sebbene sia stato ampiamente sostituito da formati più recenti come ZIP e RAR, LHA rimane rilevante per l'archiviazione e la distribuzione di software e dati meno recenti. La sua compatibilità multipiattaforma e le buone caratteristiche prestazionali lo rendono uno strumento utile in determinati scenari, e sono ancora disponibili molte utilità software e strumenti per lavorare con archivi LHA su sistemi moderni. Comprendere la struttura e le funzionalità del formato LHA è prezioso per chiunque lavori con dati legacy o archivi software.

La compressione dei file riduce la ridondanza in modo che le stesse informazioni occupino meno bit. Il limite superiore di quanto si può andare è governato dalla teoria dell'informazione: per la compressione senza perdita, il limite è l'entropia della fonte (vedi il teorema della codifica di sorgente di Shannon e il suo articolo originale del 1948 “Una teoria matematica della comunicazione”). Per la compressione con perdita, il compromesso tra velocità e qualità è catturato dalla teoria tasso-distorsione.

Due pilastri: modellazione e codifica

La maggior parte dei compressori ha due fasi. In primo luogo, un modello predice o espone la struttura nei dati. In secondo luogo, un codificatore trasforma tali previsioni in modelli di bit quasi ottimali. Una famiglia di modellazione classica è Lempel-Ziv: LZ77 (1977) e LZ78 (1978) rilevano sottostringhe ripetute ed emettono riferimenti invece di byte grezzi. Sul lato della codifica, la codifica di Huffman (vedi l'articolo originale del 1952) assegna codici più brevi a simboli più probabili. La codifica aritmetica e la codifica a intervalli sono alternative a grana più fine che si avvicinano al limite dell'entropia, mentre i moderni Sistemi Numerici Asimmetrici (ANS) ottengono una compressione simile con implementazioni veloci basate su tabelle.

Cosa fanno effettivamente i formati comuni

DEFLATE (usato da gzip, zlib e ZIP) combina LZ77 con la codifica di Huffman. Le sue specifiche sono pubbliche: DEFLATE RFC 1951, wrapper zlib RFC 1950, e formato file gzip RFC 1952. Gzip è strutturato per lo streaming ed esplicitamente non tenta di fornire accesso casuale. Le immagini PNG standardizzano DEFLATE come unico metodo di compressione (con una finestra massima di 32 KiB), secondo le specifiche PNG “Metodo di compressione 0… deflate/inflate… al massimo 32768 byte” e W3C/ISO PNG 2a Edizione.

Zstandard (zstd): un compressore generico più recente progettato per rapporti elevati con decompressione molto veloce. Il formato è documentato in RFC 8878 (anche mirror HTML) e nelle specifiche di riferimento su GitHub. Come gzip, il frame di base non mira all'accesso casuale. Uno dei superpoteri di zstd sono i dizionari: piccoli campioni dal tuo corpus che migliorano drasticamente la compressione su molti file piccoli o simili (vedi documenti del dizionario python-zstandard e l'esempio funzionante di Nigel Tao). Le implementazioni accettano dizionari sia “non strutturati” che “strutturati” (discussione).

Brotli: ottimizzato per i contenuti web (ad es. font WOFF2, HTTP). Mescola un dizionario statico con un core di entropia LZ+ simile a DEFLATE. La specifica è RFC 7932, che nota anche una finestra scorrevole di 2WBITS−16 con WBITS in [10, 24] (da 1 KiB−16 B a 16 MiB−16 B) e che non tenta l'accesso casuale. Brotli spesso batte gzip sul testo web decodificando rapidamente.

Contenitore ZIP: ZIP è un archivio di file che può memorizzare voci con vari metodi di compressione (deflate, store, zstd, ecc.). Lo standard de facto è l'APPNOTE di PKWARE (vedi portale APPNOTE, una copia ospitata, e panoramiche LC Formato file ZIP (PKWARE) / ZIP 6.3.3).

Velocità vs. rapporto: dove si posizionano i formati

LZ4 punta alla velocità grezza con rapporti modesti. Vedi la sua pagina del progetto (“compressione estremamente veloce”) e il formato del frame. È ideale per cache in memoria, telemetria o percorsi caldi in cui la decompressione deve essere quasi alla velocità della RAM.

XZ / LZMA spingono per la densità (ottimi rapporti) con una compressione relativamente lenta. XZ è un contenitore; il lavoro pesante è tipicamente svolto da LZMA/LZMA2 (modellazione simile a LZ77 + codifica a intervalli). Vedi formato file .xz, la specifica LZMA (Pavlov), e le note del kernel Linux su XZ Embedded. XZ di solito comprime meglio di gzip e spesso compete con i moderni codec ad alto rapporto, ma con tempi di codifica più lenti.

bzip2 applica la Trasformata di Burrows-Wheeler (BWT), move-to-front, RLE e la codifica di Huffman. È tipicamente più piccolo di gzip ma più lento; vedi il manuale ufficiale e le pagine man (Linux).

Finestre, blocchi e accesso casuale

La “dimensione della finestra” è importante. I riferimenti DEFLATE possono guardare indietro solo di 32 KiB (RFC 1951 e il limite di 32 KiB di PNG notato qui). La finestra di Brotli varia da circa 1 KiB a 16 MiB (RFC 7932). Zstd regola la finestra e la profondità di ricerca per livello (RFC 8878). I flussi di base gzip/zstd/brotli sono progettati per la decodifica sequenziale; i formati di base non promettono l'accesso casuale, sebbene i contenitori (ad es. indici tar, framing a blocchi o indici specifici del formato) possano stratificarlo.

Senza perdita vs. con perdita

I formati di cui sopra sono senza perdita: è possibile ricostruire i byte esatti. I codec multimediali sono spesso con perdita: scartano dettagli impercettibili per raggiungere bitrate più bassi. Nelle immagini, il JPEG classico (DCT, quantizzazione, codifica entropica) è standardizzato in ITU-T T.81 / ISO/IEC 10918-1. Nell'audio, MP3 (MPEG-1 Layer III) e AAC (MPEG-2/4) si basano su modelli percettivi e trasformate MDCT (vedi ISO/IEC 11172-3, ISO/IEC 13818-7, e una panoramica MDCT qui). Con perdita e senza perdita possono coesistere (ad es. PNG per le risorse dell'interfaccia utente; codec Web per immagini/video/audio).

Consigli pratici

  • Scegli per il lavoro. Testo web e font: brotli. File generici e backup: zstd (ottima velocità di decompressione e livelli per scambiare tempo con rapporto). Pipe e telemetria ultraveloci: lz4. Massima densità per archivi a lungo termine in cui il tempo di codifica è accettabile: xz/LZMA.
  • File piccoli? Addestra e distribuisci dizionari con zstd (documenti) / (esempio). Possono ridurre drasticamente decine di oggetti piccoli e simili.
  • Interoperabilità. Quando si scambiano più file, preferire un contenitore (ZIP, tar) più un compressore. L'APPNOTE di ZIP definisce gli ID dei metodi e le funzionalità; vedi PKWARE APPNOTE e panoramiche LC qui.
  • Misura sui tuoi dati. I rapporti e le velocità variano a seconda del corpus. Molti repository pubblicano benchmark (ad es. il README di LZ4 cita il corpus Silesia qui), ma convalida sempre localmente.

Riferimenti chiave (approfondimenti)

Teoria: Shannon 1948 · Velocità-distorsione · Codifica: Huffman 1952 · Codifica aritmetica · Codifica a intervalli · ANS. Formati: DEFLATE · zlib · gzip · Zstandard · Brotli · LZ4 frame · Formato XZ. Stack BWT: Burrows–Wheeler (1994) · manuale bzip2. Media: JPEG T.81 · MP3 ISO/IEC 11172-3 · AAC ISO/IEC 13818-7 · MDCT.

In conclusione: scegli un compressore che si adatti ai tuoi dati e ai tuoi vincoli, misura su input reali e non dimenticare i vantaggi derivanti dai dizionari e dal framing intelligente. Con la giusta accoppiata, puoi ottenere file più piccoli, trasferimenti più veloci e app più scattanti, senza sacrificare la correttezza o la portabilità.

Domande Frequenti

Cos'è la compressione dei file?

La compressione dei file è un processo che riduce le dimensioni di un file o di più file, tipicamente per risparmiare spazio di archiviazione o accelerare la trasmissione su una rete.

Come funziona la compressione dei file?

La compressione dei file funziona identificando e rimuovendo la ridondanza nei dati. Utilizza algoritmi per codificare i dati originali in uno spazio minore.

Quali sono i diversi tipi di compressione dei file?

I due principali tipi di compressione dei file sono la compressione senza perdita e la compressione con perdita. La compressione senza perdita permette di ripristinare perfettamente il file originale, mentre la compressione con perdita consente una riduzione di dimensioni più significativa a costo di una certa perdita nella qualità dei dati.

Qual è un esempio di uno strumento di compressione dei file?

Un esempio popolare di uno strumento di compressione dei file è WinZip, che supporta più formati di compressione tra cui ZIP e RAR.

La compressione dei file influisce sulla qualità dei file?

Con la compressione senza perdita, la qualità rimane inalterata. Tuttavia, con la compressione con perdita, può esserci una diminuzione notevole della qualità perché elimina dati meno importanti per ridurre più significativamente la dimensione del file.

La compressione dei file è sicura?

Sì, la compressione dei file è sicura in termini di integrità dei dati, specialmente con la compressione senza perdita. Tuttavia, come qualsiasi file, i file compressi possono essere presi di mira da malware o virus, quindi è sempre importante avere in atto un software di sicurezza affidabile.

Quali tipi di file possono essere compressi?

Quasi tutti i tipi di file possono essere compressi, inclusi file di testo, immagini, audio, video e software. Tuttavia, il livello di compressione ottenibile può variare significativamente tra i tipi di file.

Cosa si intende per un file ZIP?

Un file ZIP è un tipo di formato di file che utilizza la compressione senza perdita per ridurre le dimensioni di uno o più file. Più file in un file ZIP sono effettivamente raggruppati insieme in un unico file, il che facilita anche la condivisione.

Posso comprimere un file già compresso?

Tecnicamente, sì, anche se la riduzione aggiuntiva delle dimensioni potrebbe essere minima o addirittura controproducente. Comprimere un file già compresso potrebbe a volte aumentare le sue dimensioni a causa dei metadati aggiunti dall'algoritmo di compressione.

Come posso decomprimere un file?

Per decomprimere un file, di solito ti serve uno strumento di decompressione o di estrazione, come WinZip o 7-Zip. Questi strumenti possono estrarre i file originali dal formato compresso.