ПредишенСледващото

Да вземем кратка пауза при решаването на защитата на софтуера срещу неразрешено използване и програмиране на мобилни операционни системи, както и поговорим малко за компресиране на данни. По-скоро, един много успешен библиотека, която ще ви позволи да добавите поддръжка за същата тази компресия във вашия софтуер.

Няма съмнение, че след като изобретил компресиране на данни, човечеството вече не е част от тази технология (или по-точно, може би, би било да се говори за цяла гама от технологии, защото компресия компресия раздор). Въпреки факта, че в компресия без загуби, която се използва при съхранение на повечето типове данни, за да се направи нещо ново, е много трудно, от време на време се появяват на хоризонта и софтуер за компресиране алгоритми, които се опитват да предложат на потребителите по-голяма степен на компресия. Но се оказва, тя трябва да се каже, че не е най-малко. LZMA компресия алгоритъм, който е в основата на който стана много популярен през последните години 7z формат на архива, е щастлив изключение от това правило. Тя компресира това наистина е много добър и това е напълно отворена, тъй като, наистина, и самия формат, а дори и използва своя популярен архиватор 7Zip.

Мисля, че по-голямата част от нашите читатели са повече или по-малко запознати с това как съвременната компресия на данни алгоритми работа. Най-често срещаните и ефективните в същото време (и LZMA поразително потвърждение) са алгоритми за компресия речник. Какво означава това? Той алгоритми, които да заменят дълга последователност от байтове, се намират в даден файл или поток от данни за по-кратък. Най-много дълго, когато се добавя към "речник", а когато Разпакетирането вече направена подмяна на кратката версия на оригинала. За примери, като цяло, за да отиде далеч не е нужно да, защото дори и компресиране на текст, съдържащ, например, често се намери в него фразата "персонален компютър", с помощта на замяната му с по-кратък съкращението "PC", е в състояние да даде някакъв резултат ,

LZMA отнася до лексика алгоритми, базирани на стар и изпитан Lempel-Зив. Като цяло LZMA име означава Lempel-Ziv-Марков верига-алгоритъм. Този алгоритъм се използва не само речници, но също така и теорията на вероятностите. Основното нововъведение е използването на LZMA вместо конвенционалния модел на базата на байта, модел от специфичния контекст битови полета във всяка речникова статия. По-висока степен на компресия се осигурява от липсата на смесване на несвързаните битове в един контекст, но като цяло, прост алгоритъм се поддържа приблизително на същото ниво, както при конвенционалните ориентирани байта речник алгоритми. LZMA също така ви позволява да работите с речника е много голям (до 4GB), което, строго погледнато, прави тежестта върху "оперативна памет".

Официалната страница на сайта може да се види, че сега SDK съдържа следните елементи:

  • C ++ код за кодиране и декодиране LZMA
  • Съвместим с ANSI-C изходния код за LZMA декодер
  • C # код за кодиране и декодиране LZMA
  • Java код за кодиране и декодиране LZMA
  • Компилирания програма файл-> файл LZMA компресия / декомпресия в Windows

За тези, които пишат на C, е възможно за всяка вградена система, със сигурност ще се радваме да се знае, че изпълнява в LZMA LZMA на SDK декодер използва само инструкции число и може да се използва във всеки модерен 32-битов процесор (или, при определени условия, , CPU 16-битова).

Е, нека да разгледаме това, което получаваме, когато свалите този SDK. Тъй като всички езици едновременно, не смятаме, че във фокуса на Java като най-популярните от предложенията.

В действителност, в повечето Java папка в главната папка, която получаваме, разопаковате архива с SDK, са примери за конзолата архиватор, основани на LZMA, - LzmaAlone класове, LzmaBench и КРС. Първият от тях - това е, строго погледнато, на конзолата архиватор, втората оръдия тестване опаковани данни (това също трябва да кажа, че не е твърде много, когато разопаковате, защото, както се казва, случаите са различни), а третият е спомагателен да брои контрол размер на сгъстен данни, което е необходимо, когато се проверява тяхната цялост. Кодът на тези файлове е съвсем проста и въпреки куп различни аргументите проверки команда, за да се разбере как да се работи с членове на SDK класове, е модула.

Мисля, че това няма да попречи на една малка илюстрация на работата с данните в LZMA SDK. Това, отново, за Java, е дадена в списъка, който придружава този преглед. Взех този код от клас LzmaAlone и съкратен за по-добра четливост. Фрагмент просто илюстрира общите принципи на SDK, така че аз вече няма да се обясни нещо в нея, защото обясненията заплашват да яде як пространство вестник - убеден, че този, който дори повърхностно запознати с Java, ще може да разберете в предложения код.

Е, сега остава само да ви пожелая успех в работата си с LZMA SDK. Мисля, че ако работата е трудно, след успех няма да ви кара да чакате.

версия за печат

Свързани статии

Подкрепете проекта - споделете линка, благодаря!