Array ( [0] => 15502298 [id] => 15502298 [1] => cswiki [site] => cswiki [2] => LZW [uri] => LZW [3] => [img] => [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 0 [has_content] => 0 [12] => [oai_cs_optimisticky] => ) Array ( [0] => '''LZW84''' ('''Lempel-Ziv-Welch 84''') je [[Bezeztrátová komprese|bezeztrátový]] kompresní [[algoritmus]] vyvinutý [[Abraham Lempel|Abrahamem Lempelem]], [[Jacob Ziv|Jacobem Zivem]] a [[Terry Welch]]em. Byl publikován v roce [[1984]] jako vylepšení algoritmů [[LZ77]] a [[LZ78]] publikovaných v letech [[1977]] a [[1978]]. Je relativně jednoduchý a rychlý, ale nedosahuje zdaleka tak dobré komprese jako náročnější algoritmy jako [[LZMA]], je většinou horší než [[Deflate]] a neprovádí analýzu dat. Data prošlá algoritmem LZW84 jsou dále nekomprimovatelná, toto je rozdíl oproti algoritmu [[LZ77]], po kterém lze data dále komprimovat pomocí algoritmu [[Huffmanovo kódování|Huffman]] nebo podobného. Algoritmus byl až do roku 2004 zatížený [[patent]]em, dnes je patent prošlý, ale algoritmus byl mezitím překonán. Byl využíván (a je částečně dodnes) v archívech ARC a ZOO, starých verzích ZIPu (PKZIP 0.x a 1.x), unixovém komprimačním programu compress (soubory s příponou „Z“), grafickém formátu [[GIF]] a dokumentech [[Portable Document Format|PDF]]. [1] => [2] => == Popis algoritmu == [3] => Algoritmus nepotřebuje žádný slovník. Při kompresi a dekompresi si pouze vytváří pomocný seznam frází. Jedinou další informaci, kterou potřebuje znát, je seznam znaků, ze kterých si má vytvořit jednoznakový seznam frází (typicky 256 znaků [[ASCII]]). Algoritmus se tak hodí především pro síťové účely, kde ještě není znám konec přijímaných dat, ale jejich začátek už se může dekomprimovat. [4] => [5] => === Komprese === [6] => Nejdříve se do nalezených frází zapíší všechny znaky abecedy. Pro demonstraci budeme předpokládat, že má abeceda pouze znaky '''a''', '''b''', '''c''' a '''d'''. Poté se opakují následující kroky, dokud je na vstupu text. [7] => [8] => # Na vstupu se najde nejdelší fráze, která je už zapsaná v nových frázích, a její index se zapíše na výstup. [9] => # Nalezená fráze se pak ze vstupu odstraní. [10] => # Jako nová fráze se pak zapíše nalezená fráze + první znak ze vstupu. [11] => [12] => {|class="wikitable" [13] => |+ Řetězec abacdacacadaad [14] => ! krok [15] => ! text vstupu [16] => ! nalezená fráze [17] => ! výstup [18] => ! nová fráze [19] => ! index nové fráze [20] => |- [21] => | [22] => | [23] => | [24] => | [25] => |a [26] => |0 [27] => |- [28] => | [29] => | [30] => | [31] => | [32] => |b [33] => |1 [34] => |- [35] => | [36] => | [37] => | [38] => | [39] => |c [40] => |2 [41] => |- [42] => | [43] => | [44] => | [45] => | [46] => |d [47] => |3 [48] => |- [49] => |+ [50] => |1 [51] => |abacdacacadaad [52] => |a [53] => |0 [54] => |ab [55] => |4 [56] => |- [57] => |2 [58] => |bacdacacadaad [59] => |b [60] => |1 [61] => |ba [62] => |5 [63] => |- [64] => |3 [65] => |acdacacadaad [66] => |a [67] => |0 [68] => |ac [69] => |6 [70] => |- [71] => |4 [72] => |cdacacadaad [73] => |c [74] => |2 [75] => |cd [76] => |7 [77] => |- [78] => |5 [79] => |dacacadaad [80] => |d [81] => |3 [82] => |da [83] => |8 [84] => |- [85] => |6 [86] => |acacadaad [87] => |ac [88] => |6 [89] => |aca [90] => |9 [91] => |- [92] => |7 [93] => |acadaad [94] => |aca [95] => |9 [96] => |acad [97] => |10 [98] => |- [99] => |8 [100] => |daad [101] => |da [102] => |8 [103] => |daa [104] => |11 [105] => |- [106] => |9 [107] => |ad [108] => |a [109] => |0 [110] => |ad [111] => |12 [112] => |- [113] => |10 [114] => |d [115] => |d [116] => |3 [117] => | [118] => | [119] => |} [120] => Výstupem je pak řetězec '''0102369803'''. [121] => [122] => === Dekomprese === [123] => Opět je nejprve potřeba zapsat do nových frází všechny znaky abecedy. My budeme vycházet opět z abecedy obsahující znaky '''a''', '''b''', '''c''' a '''d'''. Poté se opakují následující kroky, dokud je na vstupu číslo. [124] => [125] => # Ze vstupu se odstraní číslo a na výstup se přidá odpovídající fráze (podle seznamu frází, které už jsou). [126] => # Jako nová fráze se doplní ta z minulého kroku + první znak fráze z tohoto kroku. [127] => [128] => {|class="wikitable" [129] => |+ Vstup 0102369803 [130] => ! krok [131] => ! vstup [132] => ! výstup [133] => ! nová fráze [134] => ! index nové fráze [135] => |- [136] => | [137] => | [138] => | [139] => |a [140] => |0 [141] => |- [142] => | [143] => | [144] => | [145] => |b [146] => |1 [147] => |- [148] => | [149] => | [150] => | [151] => |c [152] => |2 [153] => |- [154] => | [155] => | [156] => | [157] => |d [158] => |3 [159] => |- [160] => |1 [161] => |0 [162] => |a [163] => | [164] => | [165] => |- [166] => |2 [167] => |1 [168] => |b [169] => |ab [170] => |4 [171] => |- [172] => |3 [173] => |0 [174] => |a [175] => |ba [176] => |5 [177] => |- [178] => |4 [179] => |2 [180] => |c [181] => |ac [182] => |6 [183] => |- [184] => |5 [185] => |3 [186] => |d [187] => |cd [188] => |7 [189] => |- [190] => |6 [191] => |6 [192] => |ac [193] => |da [194] => |8 [195] => |- [196] => |7 [197] => |9 [198] => |aca [199] => |aca [200] => |9 [201] => |- [202] => |8 [203] => |8 [204] => |da [205] => |acad [206] => |10 [207] => |- [208] => |9 [209] => |0 [210] => |a [211] => |daa [212] => |11 [213] => |- [214] => |10 [215] => |3 [216] => |d [217] => |ad [218] => |12 [219] => |} [220] => Výstupem je pak řetězec '''abacdacacadaad'''. [221] => [222] => ''Tento postup má však jednu výjimku. Pokud je na vstupu větší číslo, než je index poslední nalezené fráze, vloží se znovu na výstup poslední výstup + jeho první znak. To samé se přidá také do nových frází...'' [223] => [224] => == Odkazy == [225] => [226] => === Reference === [227] => * SOBOTA, Branislav, MILIÁN, Ján: ''Grafické formáty'', nakl. Kopp, {{ISBN|80-85828-58-8}}, zejm. str. 37 a 75. [228] => * {{Cs}} [http://phoenix.inf.upol.cz/~outrata/download/programs/lzw.txt Kompresni metoda LZW - navrh implementace] [229] => {{Překlad|en|Lempel–Ziv–Welch|442380018}} [230] => [231] => === Související články === [232] => * [[LZ77]] [233] => * [[LZ78]] [234] => * [[Deflate]] [235] => * [[LZMA]] [236] => * [[Huffmanovo kódování]] [237] => * [[GIF]] [238] => [239] => === Externí odkazy === [240] => * {{Commonscat}} [241] => [242] => {{Autoritní data}} [243] => [244] => [[Kategorie:Kompresní algoritmy]] [245] => [[Kategorie:Zkratky]] [] => )
good wiki

LZW

LZW84 (Lempel-Ziv-Welch 84) je bezeztrátový kompresní algoritmus vyvinutý Abrahamem Lempelem, Jacobem Zivem a Terry Welchem. Byl publikován v roce 1984 jako vylepšení algoritmů LZ77 a LZ78 publikovaných v letech 1977 a 1978.

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'LZ77','LZMA','GIF','LZ78','Huffmanovo kódování','Deflate','patent','Kategorie:Kompresní algoritmy','Jacob Ziv','Bezeztrátová komprese','algoritmus','Portable Document Format'