Introduceți și lucrați cu lzma sdk

Să facem o scurtă pauză în examinarea protecției produselor software din utilizarea neautorizată și programarea pentru sistemele de operare mobile și să vorbim puțin despre compresia datelor. Mai degrabă, o bibliotecă foarte reușită, care vă va permite să adăugați suport pentru această foarte mare comprimare în produsele software.







Nu există nicio îndoială că, odată ce a inventat comprimarea datelor, omenirea nu se va mai despărți de această tehnologie (sau mai corect, poate că ar fi vorba despre întregul spectru de tehnologii, deoarece compresia este diferită). În ciuda faptului că în compresia fără pierderi, care este folosită atunci când se stochează majoritatea tipurilor de date, este foarte dificil să se facă ceva nou, periodic la orizont există produse software și algoritmi de compresie care încearcă să ofere utilizatorilor un grad de compresie și mai mare. Dar se pare că trebuie să spun, deloc. Algoritmul de compresie LZMA, care stă la baza modelului foarte popular de arhivă 7z în ultimii ani, este o excepție fericită față de această regulă. Este comprimat foarte bine și, în același timp, este complet deschis, ca într-adevăr, formatul în sine, și chiar folosind arhivatorul său popular 7Zip.

Cred că marea majoritate a cititorilor noștri sunt mai mult sau mai puțin familiarizați cu modul în care funcționează algoritmii moderni de compresie a datelor. Cele mai obișnuite și eficiente (și LZMA la acea confirmare luminată) sunt algoritmi de comprimare a dicționarului. Ce înseamnă asta? Acestea sunt algoritmi care înlocuiesc secvența lungă de octeți care au loc într-un fișier sau într-un flux de date printr-unul mai scurt. Cea mai lungă este adăugată la "dicționar", iar atunci când se despachetează, versiunea scurtă este înlocuită cu versiunea originală. De exemplu, în general, pentru a merge departe, nu trebuie să, deoarece chiar și comprimarea text care conține, de exemplu, sunt adesea găsite în ea expresia „calculator personal“, cu ajutorul înlocuirii sale printr-o abreviere mai scurt „PC“, este în măsură să dea nici un rezultat .

LZMA se referă la algoritmii de dicționare pe baza algoritmului Lempel-Ziv dovedit vechi și în timp. În general, numele LZMA este algoritmul lanțului Lempel-Ziv-Markov. Acest algoritm utilizează nu numai dicționare, ci și teoria probabilității. Inovația majoră este utilizarea în LZMA în loc de modelul convențional bazat pe biti, modelul câmpurilor de biți specifice contextului în fiecare intrare de dicționar. Un grad mai ridicat de compresie este asigurata de lipsa de amestecare de biți care nu au legătură într-un context, dar, în general, algoritm simplu este menținut aproximativ la același nivel ca și pentru algoritmii convenționali bytes dicționarului orientate. LZMA vă permite, de asemenea, să lucrați cu un dicționar foarte mare (până la 4 GB), care, de fapt, oferă o încărcătură pentru "RAM".







Pe pagina oficială a site-ului vedem că în prezent acest SDK conține următoarele lucruri:

  • Codul sursă C ++ pentru decodarea și codarea LZMA
  • Compatibil cu codul sursă ANSI-C pentru decodorul LZMA
  • Codul sursă C # pentru decodarea și codarea LZMA
  • Codul sursă Java pentru decodificarea și codarea LZMA
  • Fișierul compilat fișier-> fișier LZMA pentru compresie / decompresie în Windows

Pentru cei care scriu în C, este posibil ca orice sistem încorporat, va fi cu siguranță încântați să știe că implementat în LZMA LZMA decodor SDK-ul utilizează numai instrucțiuni de numere întregi și pot fi utilizate în orice procesor modern, pe 32 de biți (sau, în anumite condiții, , Un procesor pe 16 biți).

Să vedem ce vom obține când descărcăm acest SDK. Din moment ce nu vom lua în considerare toate limbile dintr-o dată, vom considera Java drept cea mai populară.

De fapt, în cele mai multe Java dosar în dosarul principal pe care îl primim, despachetați arhiva cu SDK-ul, sunt exemple de arhivator consola bazate pe LZMA, - clase LzmaAlone, LzmaBench și CRC. Prima dintre ele - aceasta este, strict vorbind, arhivator consola, datele de testare pune în aplicare doua ambalate (care, de asemenea, trebuie să spun, nu este prea mult la despachetarea, pentru că, așa cum se spune, cazurile sunt diferite), iar al treilea este un auxiliar pentru a contoriza de control cantitatea de date ambalate de care aveți nevoie atunci când verificați integritatea acestora. Codul acestor fișiere este destul de simplu, și în ciuda o grămadă de diferite argumente în linia de comandă, verificări pentru a înțelege cum să lucreze cu membrii claselor SDK, este într-o clipă.

Cred că o mică ilustrare a lucrului cu datele din SDK-ul LZMA nu va face rău. Acesta, din nou, pentru Java, este dat în lista care însoțește această recenzie. Am luat acest cod din clasa LzmaAlone și l-am tăiat pentru o mai bună citire. Fragment ilustrează pur și simplu principiile generale ale SDK-ul, așa că mai ales nu va explica nimic în ea, pentru că explicațiile amenință să mănânce spațiu ziar solid - convins că cel care chiar și superficial familiarizat cu Java, va fi capabil de a afla în codul propus.

Ei bine, acum ramane doar sa-ti doresc succes in lucrul cu SDK-ul LZMA. Cred că dacă munca este persistentă, atunci succesul nu te va face să aștepți.

Versiune imprimabilă







Articole similare

Trimiteți-le prietenilor: