Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> Compressione dei dati >> .

Compressione e Decompressione Algoritmi

programmi per computer e file di grandi dimensioni spesso contengono troppi dati da trasmettere o salvarli facilmente . Per risolvere questo problema , i programmatori hanno creato algoritmi o sistemi ingegnosi per comprimere e decomprimere i file . Essi sono utilizzati per ridurre le dimensioni della foto , video, software e altri file in modo che possano essere più facilmente utilizzabile. Compressione

Un algoritmo di compressione deve specificamente un dizionario di codice e un buffer di uscita , che è del 50 per cento più grandi dei dati . Dati è abbinato e poi compattato alla sua forma semplificata . Ad esempio , se si dispone di un pezzo di 32 byte di codice che può corrispondere a 16 byte , allora si è in grado di ridurre la memoria della metà. Un test di compressione dei file per semplificare la vostra intera base di codice .
Decompressione

decompressione è un po ' più semplice di compressione , perché non richiede una locazione di memoria specifica. Quando si decomprime semplicemente determinare se i dati è una partita o letterale . Se si tratta di una partita , poi la decompressione è inutile e vengono copiati i dati dall'ultimo tampone . Se è un letterale , allora si codifica il differenziale nel buffer di output .
Compressione Codice

Un algoritmo per comprimere i dati usa puntatori per identificare la memoria posizione, match i dati e quindi sottrarre il codice aggiuntivo una volta che è compresso . Così il " if - else" funzione algoritmica potrebbe essere il seguente :

se ( valid_pointer ( partita) && * partita == * && ingresso * ( partita + 1 ) == * ( ingresso + 1) ) {if ( letterale < input) OutputLiteral ( letterale , ingresso - letterale) ; } else + + ingresso ;
decompressione Codice

codice di decompressione invece copia semplicemente letterale di codice in modo che possa essere riprodotto in un buffer di uscita al momento opportuno . E poi sottrae la memoria aggiuntiva dal programma . Il " caso - mentre " la funzione potrebbe apparire come segue :

mentre ( ingresso < end ) {if ( * Ingresso & 0x80 ) { //matchlength = DecodeLength ( e ingresso) ; offset = DecodeOffset ( e ingresso) ; //stesso algoritmo DecodeLengthwhile ( lunghezza - > 0 ) { * output = * (uscita - offset) ; + + uscita ;

 

software © www.354353.com