Come Funziona La Compressione Di File Di Lavoro?

0
516

Gli ingegneri del Software hanno sempre sviluppato nuovi modi di montaggio di un sacco di dati in un piccolo spazio. Era vero quando il nostro hard disk erano piccoli, e che l’avvento di internet ha solo reso più critico. La compressione dei File gioca un ruolo importante nel collegamento con noi, permettendoci di inviare meno di dati lungo la linea in modo che possiamo avere download più veloci e di avere più connessioni su reti occupate.

Quindi Come Funziona?

Per rispondere a questa domanda sarebbe necessario spiegare alcuni calcoli matematici complessi, certamente più di quanto siamo in grado di coprire in questo articolo, ma non è necessario capire esattamente come funziona matematicamente per capire le basi.

La maggior parte delle biblioteche popolari per la compressione di testo contare su due algoritmi di compressione, utilizzando sia, allo stesso tempo, per ottenere elevati rapporti di compressione. Questi due algoritmi sono “LZ77” e “la codifica di Huffman.” La codifica di Huffman è abbastanza complicata e non andando in dettaglio su questo qui. Principalmente, si usa un po di fantasia matematica per assegnare più breve codici binari a singole lettere, restringendo le dimensioni dei file nel processo. Se volete saperne di più su di esso, check out questo articolo su come funziona il codice, o questo spiegatore da Computerphile.

LZ77, invece, è relativamente semplice e di che cosa parleremo qui. Cerca di rimuovere duplicati parola e sostituirla con una più piccola “chiave” che rappresenta la parola.

Prendere questo breve pezzo di testo, per esempio:

L’algoritmo LZ77 sarebbe occhiata a questo testo, rendersi conto che si ripete “howtogeek” per tre volte, e modificarlo in questo modo:

Quindi, quando si vuole leggere il testo, che andrebbe a sostituire ogni istanza di (h) con “howtogeek,” e ci riporta alla frase originale.

Abbiamo chiamata di compressione di questo tipo “lossless”—i dati che hai messo è lo stesso come i dati che si ottiene. Nulla è perduto.

In realtà, LZ77 non uso un elenco dei tasti, ma invece sostituire il secondo e il terzo occorrenza con un link in memoria:

Così ora, quando si arriva a (h), cercherà di tornare a “howtogeek” e leggere che invece.

Se siete interessati in una spiegazione più dettagliata, questo video da Computerphile è piuttosto utile.

Ora, questo è un idealizzato esempio. In realtà, la maggior parte del testo è compresso con tasti piccoli come pochi caratteri. Per esempio, la parola “che” sarebbe compresso anche quando sembra in parole come “di là”, “loro”, e “allora”. Con il ripetersi di testo, è possibile ottenere qualche pazzo rapporti di compressione. Prendete questo file di testo con la parola “howtogeek” ripetuto 100 volte. Il file di testo originale è di tre kilobyte. Quando viene compresso, però, dura solo fino 158 byte. Che è quasi il 95% di compressione.

Ora, ovviamente, questo è un bel esempio estremo, dal momento che abbiamo appena avuto la stessa parola ripetuta più e più volte. Nella pratica generale, probabilmente otterrete circa il 30-40% di compressione utilizzando un formato di compressione come ZIP su un file che è principalmente di testo.

Questo algoritmo LZ77 si applica a tutti i dati binari, e non solo di testo, se il testo è generalmente più facile da comprimere, a causa delle molte parole ripetute più uso di lingue. Una lingua come il Cinese potrebbe essere un po ‘ più difficile per la compressione che in inglese, per esempio.

Come Funziona la Compressione di Immagini e Video del Lavoro?

La compressione Video e audio funziona in modo molto diverso. A differenza con il testo dove si può avere una compressione senza perdita e senza perdite di dati, con le immagini che abbiamo quello che chiamiamo “Compressione Lossy” dove si fa la perdita di alcuni dati. E quanto più si comprime, più dati si perdono.

Questo è ciò che porta a quelle orribili-cerca i file Jpeg che sono stati caricati, condiviso, e screenshotted più volte. Ogni volta che l’immagine viene compressa, perde alcuni dati.

Ecco un esempio. Questo è uno screenshot che ho preso non è stato compresso.

Poi ho preso l’immagine e corse attraverso Photoshop più volte, ogni volta che l’esportazione come di bassa qualità JPEG. Ecco il risultato.

Sembra piuttosto male, giusto?

Beh, questo è solo uno scenario peggiore, l’esportazione a 0% JPEG di qualità ogni volta. Per confronto, ecco un 50% di qualità JPEG, il che è quasi indistinguibile dalla fonte immagine PNG a meno che non si saltare in aria e prendere uno sguardo da vicino.

Il PNG per questa immagine era di 200 KB di dimensione, ma questo 50% di qualità JPEG è solo il 28 KB.

In che modo si può risparmiare tanto spazio? Beh, l’algoritmo JPEG è un capolavoro di ingegneria. La maggior parte delle immagini di memorizzare un elenco di numeri, ogni numero che rappresenta un singolo pixel.

JPEG fa niente di tutto questo. Invece, memorizza le immagini usando una cosa chiamata Discrete Cosine Transform), che è un insieme di onde sinusoidali aggiunto insieme a varie intensità. Utilizza 64 equazioni diverse, ma la maggior parte di questi non ci si abitua. Questo è ciò che il cursore di qualità per il formato JPEG in Photoshop e altre immagini le applicazioni non—scegliere il numero di equazioni da utilizzare. L’app quindi utilizzare la codifica di Huffman per ridurre la dimensione del file, anche ulteriore.

Questo dà un file Jpeg follemente alto rapporto di compressione, che può ridurre un file che potrebbe essere più megabyte giù per un paio di kb, a seconda della qualità. Naturalmente, se si usa troppo, si finisce con questo:

Che immagine orribile. Ma in quantità minori di compressione JPEG che possono avere un impatto significativo sulla dimensione del file, e questo rende JPEG molto utile per la compressione delle immagini su siti web. La maggior parte delle foto online sono compressi per risparmiare sui tempi di download, soprattutto per gli utenti mobili con scarse connessioni dati. Infatti, tutte le immagini su How-To Geek sono stati compressi per rendere il caricamento della pagina più veloce, e probabilmente mai notato.

Compressione Video

Video funziona un po ‘ diversamente da immagini. Si potrebbe pensare che sarebbe solo comprimere ogni fotogramma del video in formato JPEG, e certamente farlo, ma c’è un metodo migliore per il video.

Si utilizza qualcosa chiamato “compressione interframe,” che calcola le variazioni tra ogni fotogramma e memorizza solo quelli. Così, per esempio, se si dispone di un relativamente ancora colpo che richiede diversi secondi in un video, un sacco di spazio viene salvato perché l’algoritmo di compressione non è necessario memorizzare tutte le cose nella scena che non cambia. Compressione Interframe è il principale motivo per cui abbiamo la TV digitale e i video sul web. Senza di essa, video sarebbe di centinaia di gigabyte, di più rispetto alla media dimensione del disco rigido nel 2005, quando YouTube ha lanciato.

Inoltre, poiché la compressione interframe funziona meglio con prevalenza stazionarie video, questo è il motivo per cui confetti rovine qualità video.

Nota: GIF non fare questo, che è il motivo per cui le Gif animate sono spesso molto brevi e piccole, ma hanno ancora un bel file di grandi dimensioni.

Un’altra cosa da tenere a mente su video è la sua bitrate è la quantità di dati, in ogni secondo. Se il bitrate è di 200 kb/s, per esempio, il video ha un aspetto piuttosto male. La qualità va come il bitrate, ma dopo un paio di megabyte al secondo, si ottengono rendimenti decrescenti.

Questo è un ingrandimento del fotogramma tratto da un video di una medusa. Quello sulla sinistra è a 3Mb/s, e quello a destra è di 100 mb/s.

30x aumento di dimensioni del file, ma non di molto aumentare la qualità. Generalmente, i video di YouTube si siedono intorno a 2-10Mb/s a seconda della tua connessione, come qualcosa di più sarebbe probabilmente non essere notato.

Questa demo funziona meglio con il video vero e proprio, quindi se si desidera controllare fuori per lei, è possibile scaricare lo stesso bitrate video del test utilizzato qui.

Compressione Audio

Compressione Audio funziona in modo molto simile al testo e di compressione dell’immagine. Dove JPEG rimuove dettaglio di un’immagine che non si vedrà, la compressione audio fa la stessa cosa per i suoni. Non si potrebbe aver bisogno di sentire lo scricchiolio del plettro sulla corda se la chitarra è molto, molto di più.

MP3 utilizza anche il bitrate, che vanno dalla fascia bassa di 48 e 96 kbps (fascia bassa) a 128 e 240kbps (abbastanza buono) a 320 kbps (audio high-end), e si sarà probabilmente solo a sentire la differenza con eccezionale buon paio di cuffie (e le orecchie).

Ci sono anche lossless codec di compressione per l’audio—il principale dei quali è il FLAC—che utilizza LZ77 codifica per consegnare interamente lossless audio. Alcune persone giurano da FLAC qualità audio perfetta, ma con la prevalenza di MP3, sembra che la maggior parte delle persone non possono dire o non mente la differenza.