www.wikidata.uk-ua.nina.az
LZ77 i LZ78 algori tm Le mpelya Zi va angl Lempel Ziv algorithm universalnij algoritm stiskuvannya danih bez vtrat stvorenij u 1977 1978 rokah Avraamom Lempelem i Yakovom Zivom Algoritm rozroblenij tak shob jogo mozhna bulo shvidko realizuvati ale vin ne obov yazkovo ye optimalnim oskilki ne provodit zhodnogo analizu vhidnih danih 1984 roku Terri Velchem opublikovana pokrashena realizaciya algoritmu LZ78 algoritm Lempelya Ziva Velcha angl Lempel Ziv Welch algorithm LZW Zmist 1 Istoriya viniknennya 2 Metod stisnennya 3 Koduvannya metodom Lempelya Ziva 4 Deshifruvannya 5 Varianti vdoskonalennya 6 PosilannyaIstoriya viniknennya RedaguvatiBilshe tridcyati rokiv algoritm stisnennya Haffmana i jogo varianti zalishalisya najpopulyarnishimi metodami Prote 1977 roku izrayilski doslidniki Avraam Lempel i Yakiv Ziv zaproponuvali absolyutno inshij pidhid do ciyeyi problemi visunuvshi ideyu formuvannya slovnika zagalnih poslidovnostej danih Pri comu stisnennya danih zdijsnyuyetsya za rahunok zamini zapisiv vidpovidnimi kodami iz slovnika Isnuyut dva algoritmi stisnennya danih LZ77 i LZ78 Voni vzhe ne vimagayut vklyuchennya slovnika danih v arhiv oskilki yaksho vi formuyete vash slovnik viznachenim sposobom programa dekoduvannya mozhe jogo vidnovlyuvati bezposeredno z vashih danih Na zhal LZ77 i LZ78 vitrachayut bagato chasu na stvorennya efektivnogo slovnika Lempel buv zaproshenij firmoyu Sperry dlya dopomogi v rozrobci sposobu najefektivnishoyi upakovki danih na komp yuternih strichkah U cij zhe firmi Teri Velch rozshiriv algoritm LZ78 stvorivshi novij variant shiroko vidomij yak LZW Na robotu Velcha zvernula uvagu grupa programistiv UNIX yaki vikoristali jogo algoritm v yih dodatku LZW sho otrimav nazvu compress Voni dodali dekilka udoskonalen i opublikuvali zagalnodostupnu versiyu ciyeyi programi v telekonferenciyi Internet zavdyaki chomu bagato koristuvachiv zmogli pochati z neyu pracyuvati Populyarnist algoritmu LZW v znachnij miri pov yazana z uspihom programi compress Pochatkovij tekst ostannoyi versiyi programi sho zdijsnyuye yak stisnennya tak i dekompresiyu zajmaye vsogo 1200 ryadkiv Yadro kodu stisnennya zajmaye ne bilshe sotni ryadkiv a kodu dekompresiyi ne nabagato bilshe Programisti vvazhayut sho ce polegshuye chitannya i rozuminnya algoritmu a takozh dozvolyaye adaptuvati jogo dlya najriznomanitnishih cilej Metod stisnennya RedaguvatiIsnuye bagato praktichnih algoritmiv stisnennya danih ale vsi voni bazuyutsya na troh teoretichnih sposobah zmenshennya nadlishkovosti danih Pershij sposib polyagaye v zmini vmistu danih drugij u zmini strukturi danih a tretij v odnochasnij zmini yak strukturi tak i vmistu danih Yaksho pri stisnenni danih vidbuvayetsya zmina yih vmistu to metod stisnennya ye nezvorotnim tobto pri vidnovlenni rozarhivuvanni danih z arhivu ne vidbuvayetsya povne vidnovlennya informaciyi Taki metodi chasto nazivayutsya metodami stisnennya z regulovanimi vtratami informaciyi Zrozumilo sho ci metodi mozhna zastosovuvati tilki dlya takih tipiv danih dlya yakih vtrata chastini vmistu ne privodit do suttyevogo spotvorennya informaciyi Do takih tipiv danih vidnosyatsya video ta audiodani a takozh grafichni dani Metodi stisnennya z regulovanimi vtratami informaciyi zabezpechuyut znachno bilshij stupin stisnennya ale yih ne mozhna zastosovuvati do tekstovih danih Prikladami formativ stisnennya z vtratami informaciyi mozhut buti JPEG Joint Photographic Experts Group dlya grafichnih danih MPG dlya videodanih MP3 dlya audiodanih Yaksho pri stisnenni danih vidbuvayetsya tilki zmina strukturi danih to metod stisnennya ye zvorotnim U comu vipadku z arhivu mozhna vidnoviti informaciyu povnistyu Zvorotni metodi stisnennya mozhna zastosovuvati do bud yakih tipiv danih ale voni dayut menshij stupin stisnennya u porivnyanni z nezvorotnimi metodami stisnennya Prikladi formativ stisnennya bez vtrati informaciyi GIF Graphics Interchange Format ta TIFF Tagged Image File Format dlya grafichnih danih AVI dlya videodanih ZIP ARJ RAR CAB LH dlya dovilnih tipiv danih Isnuye bagato riznih praktichnih metodiv stisnennya bez vtrati informaciyi yaki yak pravilo mayut riznu efektivnist dlya riznih tipiv danih ta riznih obsyagiv danih Koduvannya metodom Lempelya Ziva RedaguvatiVizmemo nabir simvoliv ABVABVYaYaYaYaYaYa U nomu dvichi zustrichayetsya poyednannya ABV tomu jogo mozhna zapisati v tak zvanomu slovniku a v pochatkovomu teksti tilki zalishiti posilannya na slovnik Todi pochatkovij tekst mozhna peretvoriti napriklad na 11YaYaYaYaYaYai okremo zapam yatati sho za simvolom 1 naspravdi hovayetsya trijcya ABV Yasno sho yaksho v teksti poyednannya ABV zustrilosya ne 2 a 100 abo she krashe 1000 raziv to stisnennya bulo b velmi vidchutnim Prote v realnih situaciyah na take vezinnya rozrahovuvati ne slid Treba vse vichavlyuvati navit z nebagatoh povtoren v pochatkovomu teksti Podivimosya chi bagato mi vigadali v rozglyanutomu prikladi Tekst stiskuvavsya na 4 simvoli ale i yak minimum 4 simvoli opinilisya u slovniku Krim togo pobudova slovnika zazhadaye vvedennya rozdilnikiv i in Ale i ce she ne vse A yaksho v teksti vzhe ye simvoli 1 Yak zrozumiti sho ce same 1 a ne posilannya na slovnik Yak zhe postupiti najbilsh gramotno Os tut vidpovid daleko neodnoznachna Vona i ne mozhe buti odnoznachna tomu sho stisnennya ce ne tablicya mnozhennya Odin tekst krashe stiskayetsya odnim metodom inshij absolyutno inshim sposobom Spershu mi rozglyanemo duzhe sproshenij variant shob mati vid chogo vidshtovhuvatisya nadali Dlya viznachenosti vvazhatimemo sho kozhen simvol v teksti ce vporyadkovanij nabir z 8 bitiv tobto bajt abo sho te zh same cile chislo vid 0 do 255 Poslidovno chitayemo pochatkovij tekst i odnochasno formuyemo vihidnij fajl Yaksho chergova bukva zustrilasya vpershe abo vona viyavilasya ostannoyu v teksti to na vihid posilayemo bit 1 i 8 bitiv vid samoyi ciyeyi bukvi Tak samo treba zrobiti yaksho simvol ne novij ale v pari z nastupnim she ne zustrichavsya Otzhe v nashomu prikladi pershi tri simvoli dadut na vihodi 27 bitiv Todi pri zvorotnij operaciyi yak tilki toj sho rozshifrovuye pobachiv chergovij bit 1 vin vidrazu znatime sho nastupni za nim 8 bitiv treba vivesti tak bi moviti vidkritim tekstom Yaksho chergovij simvol v pari z nastupnim za nim vzhe zustrichavsya to v principi vid ciyeyi pari mozhna vivesti dva bita 01 i vkazivku na isnuyuchu analogichnu paru Todi dekoduvalnik pobachivshi 01 po cij vkazivci podivitsya na vzhe rozshifrovanu chastinu tekstu vizme potribnu paru i pripishe taku samu v kinec rozshifrovanoyi chastini V nashomu prikladi dostatno dvohbajtnih posilan Otzhe na vihid poshlemo 001 11 Dali vid bukvi Ya po vidomih pravilah pide 9 bitiv Zalishok tekstu shifruyetsya simoma bitami 00001 01 Persha grupa z nuliv sho zakinchuyetsya odiniceyu oznachaye sho ranishe v teksti vzhe bula analogichna p yatirka simvoliv Druga grupa predstavlyaye chislo odinicyu vkazuyuche na yakij vidstani treba shukati prototip Prototip dobudovuvatimetsya po hodu budivnictva kopiyi z nogo ale viperedzhayuchimi tempami dostatnimi dlya togo shob kopiyuvannya ne prostoyuvalo Takim chinom pochatkovij tekst v stislomu viglyadi pri dekilka vilnomu zobrazhenni z yavitsya u viglyadi 1 A 1 Bi 1 V 001 11 00001 01 Pravilnishe ale mensh naochno bulo b vpisati zamist A Bi i V yih vosmibitovi uyavlennya Derevo Lempelya Ziva viglyadaye tak nbsp Derevo Lempelya Ziva Shob programa rozshifrovki godilasya ne tilki dlya rozglyanutogo prikladu she do stislogo tekstu treba priklasti deyaki parametri dovzhinu stislogo abo rozgornenogo tekstu a takozh dovzhinu posilan Samo derevo prikladati ne treba yaksho vono pidkoryayetsya prostim shirokospozhivanim pravilam Otzhe derevo Lempelya Ziva mozhe buti dostatnye skladnim i rozlogim Deshifruvannya RedaguvatiDali privoditsya algoritm rozarhivuvannya zi vsima neobhidnimi tehnichnimi podrobicyami i retelno pidibranimi znachennyami parametriv Rich u tomu sho navit duzhe neveliki variaciyi parametriv rizko minyayut stupin stisnennya i yak pravilo v girshu storonu A borotba vedetsya za doli vidsotka Zavdannya uskladnyuyetsya tim sho nemaye ob yektivnih kriteriyiv po yakih mozhna bulo vidrazu skazati sho ta abo insha zmina algoritmu pishla jomu na korist Yak mi znayemo dlya bud yakogo arhivatora znajdetsya sila silenna tekstiv vzagali nepiddatlivih stisnennyu Yaksho brati tilki taki teksti to robotu mozhna ne pochinati Ocinyuvati arhivator treba po hodovih tekstah ale hodovi ce ne naukove ponyattya Zchituyetsya chergova seriya bitiv do pershogo odinichnogo bita Nehaj N kilkist lichenih bitiv Napriklad yaksho v cherzi 001000 to zchituyutsya 3 biti i vidpovidno N 3 A yaksho pershij bit dorivnyuye odinici to zchituyetsya tilki vin i N 1 Vvodimo chislo M dlya formuvannya kilkosti simvoliv yaki piznishe budut uzyati iz vzhe rozshifrovanogo tekstu Spochatku M N M i N cili dvohbajtni chisla Yaksho N bilshe abo dorivnyuye 17 to zchituyutsya chergovi 8 bitiv i rozmishuyutsya v molodshih bitah chisla M Yaksho N gt 17 to zchituyutsya chergovi 8 bitiv i rozmishuyutsya v starshih bajtah chisla M Vono vvazhayetsya bezznakovim Yaksho M 1 to zchituyutsya chergovi 8 bitiv i nadsilayutsya na vihid tobto u vidnovlenij tekst i todi robitsya perehid na p 1 Zchituyutsya chergovi 2 biti z yakih formuyetsya cile chislo Z vid 0 do 3 Vvodyatsya K i R Yaksho M 2 Z 0 to K 5 R 0 Yaksho M 2 Z 1 to K 7 R 32 Yaksho M 2 Z 2 to K 9 R 160 Yaksho M 2 Z 3 to K 11 R 672 Yaksho M gt 2 Z 0 to K 6 R 0 Yaksho M gt 2 Z 1 to K 9 R 64 Yaksho M gt 2 Z 2 to K 12 R 576 Yaksho M gt 2 Z 3 to K 14 R 4672 Zchituyutsya chergovi K bitiv i rozmishuyutsya v molodshih K bitah dopomizhnogo cilogo dvohbajtnogo chisla S Reshta bitiv cogo chisla zapovnyuyutsya odinicyami Otzhe S lt 0 oskilki u starshomu biti sho vidpovidaye za znak znahoditsya odinicya Viznachayetsya adresa v teksti zvidki bude uzyatij potribnij fragment Adresa ce prosto nomer bajta v poslidovnosti Dlya cogo do adresi na yakij poki zaversheno formuvannya rozshifrovanogo tekstu treba dodati R i S Z otrimanoyi takim chinom adresi beremo M simvoliv i dodayemo v kinec sformovanogo tekstu Perehodimo do p 1 yaksho dani she ne vicherpani Nastupna realizaciya algoritmu priznachena dlya COM program sho samorozarhivuyutsya Tomu pershij desyatok komand v osnovnomu sluguye dlya peremishennya programi v kinec segmentu kodu A vzhe zvidti rozshifrovani operatori perenosyatsya na pochatok cogo segmentu Varianti vdoskonalennya RedaguvatiPrivedeni vishe detali algoritmu i znachennya parametriv ne mozhut buti vivedeni bud yakimi racionalnimi strogimi metodami U yakijs miri v nih vidbiti osoblivosti suchasnogo programuvannya i lyudskoyi movi Ale avtori kozhnogo arhivatora znahodyat svij optimum i sho krashe mozhe pidkazati tilki praktika kriterij zagalnij ale desho rozplivchatij Mogutni arhivatori zazvichaj roblyat poperednyu ocinku pochatkovogo fajlu i do kozhnogo fajlu abo do velikih chastin odnogo fajlu zdijsnyuyut individualnij pidhid Napriklad pered kozhnim velikim fragmentom stislogo kodu vkazuyetsya jogo obsyag i tip stiskuvannya Dlya cogo dosit 3 bajti yaki ne psuyut zagalnoyi yakosti kompresiyi Yaksho fajl korotkij to ce oznachaye sho vzagali dezarhivatoru ne znadobitsya zaglyadati daleko nazad Todi ne potribnij skazhimo vipadok K 14 i biti sho zvilnilisya mozhna vikoristovuvati z bilshoyu koristyu Prote efekt porivnyano nevelikij A oskilki vin viyavlyayetsya tilki na malih fajlah to na zagalnih zazvichaj gigantskih obsyagah informaciyi vin i zovsim vtrachayetsya Mozhlivi bagato inshih variantiv udoskonalen ne pov yazanih bezposeredno z harakternimi dlya Lempelya Ziva ideyami Vazhlivij vipadok koli chiselna informaciya nabita ciframi Napriklad 132 44 8 555 Zrozumilo sho cifri mozhut buti tak peretasovani sho navit odnakovi pari budut vkraj ridkisnimi Zgadani metodi ne dayut stisnennya Prote yaksho u fragmenti tekstu vikoristovuyutsya vsogo 16 riznih znakiv kozhen z nih reprezentuyetsya chotirma bitami sho daye vzhe dvokratne stisnennya Dodatkovi rezervi mozhut buti rozkriti yaksho tekst tilki ukrayinskoyu movoyu de vikoristovuyetsya ne bilshe 66 znakiv Mozhna vidilyati u pochatkovomu fajli ne stikovani dilyanki Todi zbitok vid kozhnogo z nih mozhna poniziti do troh bajtiv A v predstavlenomu varianti kozhen perenesenij bez zmin simvol tyagne za soboyu odnobajtovu oznaku tobto zbitok 12 5 Prote vikladenij vishe algoritm ne vrahovuye taki detali tomu sho voni vidnosno ridkisni a efekt vid nih dosit skromnij Posilannya RedaguvatiLempel Ziv v plane minimizacii programmy nedostupne posilannya z chervnya 2019 Arhivaciya dannyh v MS DOS nedostupne posilannya z serpnya 2019 Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno gruden 2015 Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno gruden 2015 nbsp Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title LZ77 i LZ78 amp oldid 40187634