Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Kompresné a dekompresné algoritmy

Veľké počítačové programy a súbory často obsahujú príliš veľké množstvo dát ľahko prenášať alebo uložiť . Ak chcete tento problém vyriešiť , programátori prišli s geniálny algoritmy a systémy pre kompresiu a dekompresiu súborov . Sú používané zmenšiť veľkosť obrazu , videa , softvér a ďalšie súbory , takže budú ľahšie použiteľné . Kompresia

kompresný algoritmus konkrétne potrebuje slovník kódu a výstupné vyrovnávaciu pamäť , ktorá je o 50 percent väčšia ako dáta . Dáta sú uzavreté , a potom klesol až na svojej zjednodušenej forme. Napríklad , ak máte 32 bajt kus kódu , ktorý môže zodpovedať 16 byte , potom ste schopní znížiť pamäte na polovicu . A kompresia súborov testy zjednodušiť celý kód základne .
Dekompresie

dekompresie je trochu jednoduchšie , než kompresia , pretože to nevyžaduje konkrétne miesto v pamäti . Keď sa rozbalí jednoducho zistiť , či sú údaje zápas alebo doslovný . Ak je to zápas , potom dekompresie je zbytočné a dáta skopírujú z posledného vyrovnávacej pamäti . Pokiaľ sa jedná o doslovný , potom zakódovať rozdiel do výstupného zásobníka .
Kompresia kód

algoritmus pre kompresiu dát využíva ukazovateľov na identifikáciu pamäti umiestnenie , zodpovedajú údaje a potom odpočítať ďalší kód , akonáhle je skomprimovaný . Takže " ak - else " sa môže algoritmické funkcie vyzerať takto :

if ( valid_pointer ( zápas ) && * zápasu == * vstup && * ( zápas + 1 ) == * ( vstup + 1 ) ) { if ( doslovný < input ) OutputLiteral ( doslovný , vstup - doslovný ) ; } else + + vstup ;
dekompresia kód

dekompresie kód na druhej strane obyčajné kópie doslovný kód tak , že to môže byť reprodukovaná v výstupné vyrovnávacej pamäte vo vhodnom čase . To potom odpočíta ďalšie pamäť z programu . Funkcia " if - čas " by mohla vyzerať takto :

while ( vstup < koniec ) { if ( * vstup & 0x80 ) { //matchlength = DecodeLength ( & vstup ) ; offset = DecodeOffset ( a vstup ) ; //rovnaký algoritmus ako DecodeLengthwhile ( dĺžka - > 0 ) { * výstup = * ( výstup - offset ) ; + + výstup ;

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené