<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=LZW_%28Lempel-Ziv-Welch%29</id>
	<title>LZW (Lempel-Ziv-Welch) - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=LZW_%28Lempel-Ziv-Welch%29"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=LZW_(Lempel-Ziv-Welch)&amp;action=history"/>
	<updated>2026-05-12T05:03:25Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=LZW_(Lempel-Ziv-Welch)&amp;diff=137527&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoalap|LZW}}  A pszeudókódok forrása: http://www.dogma.net/markn/articles/lzw/lzw.htm (&amp;#169; miatt :))  ==LZW betömörítés== ===Informálisan=…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=LZW_(Lempel-Ziv-Welch)&amp;diff=137527&amp;oldid=prev"/>
		<updated>2012-10-21T20:02:17Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoalap|LZW}}  A pszeudókódok forrása: http://www.dogma.net/markn/articles/lzw/lzw.htm (© miatt :))  ==LZW betömörítés== ===Informálisan=…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoalap|LZW}}&lt;br /&gt;
&lt;br /&gt;
A pszeudókódok forrása: http://www.dogma.net/markn/articles/lzw/lzw.htm (&amp;amp;#169; miatt :))&lt;br /&gt;
&lt;br /&gt;
==LZW betömörítés==&lt;br /&gt;
===Informálisan===&lt;br /&gt;
Adott a kezdeti nehany kod. Elkezded olvasni azt amt kodolni akarsz. Ha&lt;br /&gt;
latod,hogy olyan van amit ismersz akkor annak atkuldod a jelet, majd&lt;br /&gt;
hozzaveszed a kov karaktert es a ket betunek egy uj kodot adsz, majd mesz&lt;br /&gt;
tovabb. Ha latod ezt a ket betut akkor hazsnalod az uj hozzarednelt kodot es&lt;br /&gt;
a kovetkezot veszed hozza.&lt;br /&gt;
Nagyon egyszeru pelda: a-1,b-2,c-3&lt;br /&gt;
Szo: abbcbbbabb&lt;br /&gt;
Elso betu: &amp;quot;a&amp;quot; , kiadjuk az 1et. Megnezzuk mi a kov betu : &amp;quot;b&amp;quot; ok akkor&lt;br /&gt;
kiadjuk a &amp;quot;b&amp;quot;-t es az &amp;quot;ab&amp;quot;-t felvesszuk mint 4es kod. Utana &amp;quot;b&amp;quot; jon, es&lt;br /&gt;
kiadjuk a &amp;quot;b&amp;quot; kodjat a 2-t,de mivel ismerjuk az elozo b-t igy a bb-t&lt;br /&gt;
felveszuk mint 5. utana &amp;quot;c&amp;quot; jon, kiadjuk a 3-t, felvesszuk a &amp;quot;bc&amp;quot;-t mint&lt;br /&gt;
6-os kod. Utana lass csodat &amp;quot;bb&amp;quot; jon, ami mar szerepel, ezert kiadjuk a 5-t&lt;br /&gt;
es hozzaveszsuk a kov karaktert ami nem mas mint &amp;quot;bbb&amp;quot; ez legyen 7es kod. A&lt;br /&gt;
2 &amp;quot;b&amp;quot; utan jon egy harmadik, ezt kiadjuk mint 2, utana jon egy &amp;quot;a&amp;quot; ezert&lt;br /&gt;
felvesszuk mint &amp;quot;ba&amp;quot; 8as koddal. Azutan jon az &amp;quot;a&amp;quot; de mogotte b van ezert&lt;br /&gt;
kiadjuk &amp;quot;ab&amp;quot; kodjat ami 4, majd felvesszuk az &amp;quot;abb&amp;quot;-t mint 9es kod. Majd&lt;br /&gt;
kiadjuk az utolso karaktert ami &amp;quot;b&amp;quot;, kettes koddal.&lt;br /&gt;
Nekem igy kijottek az eddigi peldak, remelem most sem rontottam el es&lt;br /&gt;
ertheto is volt... Szoval figyelni kell hogy mit kodolunk es ha mar ismert&lt;br /&gt;
szo van akkor hozzaveszsuk a kov betut es ezzel uj szabalyt alkot.&lt;br /&gt;
===Formálisan: Routine LZW_COMPRESS===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	 STRING = get input character&lt;br /&gt;
	 WHILE there are still input characters DO&lt;br /&gt;
		  CHARACTER = get input character&lt;br /&gt;
		  IF STRING+CHARACTER is in the string table then&lt;br /&gt;
				STRING = STRING+character&lt;br /&gt;
		  ELSE&lt;br /&gt;
				output the code for STRING&lt;br /&gt;
				add STRING+CHARACTER to the string table&lt;br /&gt;
				STRING = CHARACTER&lt;br /&gt;
		  END of IF&lt;br /&gt;
	 END of WHILE&lt;br /&gt;
	 output the code for STRING&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LZW kitömörítés==&lt;br /&gt;
===Informálisan===&lt;br /&gt;
Alapelv: kicsit az enkóder fejével kell gondolkodni. Tehát a dekódolásnál is építeni kell a szótárat.&lt;br /&gt;
&lt;br /&gt;
Szóval: &lt;br /&gt;
# beolvasod az első indexet (vagyis sorszámot a szótárban), és a szótár annyiadik elemét (ez kezdetben csak egybetűs lehet, mert az abc betűivel rajtol a szótár) kiadod a kimenetre.&lt;br /&gt;
# utána minden egyes beolvasott újabb indexre: kinézed, mi van a szótárban annál az indexnél, és azt a szót írod a kimenetre, valamint&lt;br /&gt;
# az előző szót (amelyiket e most kiírt szó előtt írtál ki)  összeolvasztod az éppen most kiírt szó első karakterével, és az így kapott új szót felveszed a szótárba, a következő bejegyzésként.&lt;br /&gt;
# ha még nincs vége az inputnak, 2-re ugrunk.&lt;br /&gt;
&lt;br /&gt;
Tehát:&lt;br /&gt;
a-1, b-2, c-3 a szótár, és a tömörítvény 12235242.&lt;br /&gt;
Nahát, 1. lépés: 1-&amp;gt;a.&lt;br /&gt;
2. lépés: 2-&amp;gt; b, így már ab-t fejtettünk meg.&lt;br /&gt;
3. lépés: ab -&amp;gt; 4-es elem a szótárba.&lt;br /&gt;
2. lépés: 2-&amp;gt; b, így már abb-t fejtettünk meg.&lt;br /&gt;
3. lépés: bb -&amp;gt; 5-ös elem a szótárba.&lt;br /&gt;
2. lépés: 3-&amp;gt; c, így már abbc-t fejtettünk meg.&lt;br /&gt;
3. lépés: bc -&amp;gt; 6. elem a szótárba.&lt;br /&gt;
2. lépés: 5-&amp;gt; bb, így már abbcbb-t fejtettünk meg.&lt;br /&gt;
3. lépés: cb -&amp;gt; 7. elem a szótárba.&lt;br /&gt;
2. lépés: 2-&amp;gt; b, így már abbcbbb-t fejtettünk meg.&lt;br /&gt;
3. lépés: bbb -&amp;gt; 8. elem a szótárba.&lt;br /&gt;
2. lépés: 4-&amp;gt; ab, így már abbcbbbab-t fejtettünk meg.&lt;br /&gt;
3. lépés: ba -&amp;gt; 9. elem a szótárba.&lt;br /&gt;
2. lépés: 2-&amp;gt; b, így már abbcbbbabb-t fejtettünk meg.&lt;br /&gt;
3. lépés: abb -&amp;gt; 10. elem a szótárba.&lt;br /&gt;
és 4. lépésben kilépünk, mert EOF.&lt;br /&gt;
&lt;br /&gt;
Aki kiváncsi, nézze meg fent, hogy a feladó vajon az &amp;#039;abbcbbbabb&amp;#039; sztringet akarta-e elküldeni.&lt;br /&gt;
Kihagytam az egyetlen csalit, ami a dologban van. Ugyanis az enkóder 2-t és 3-t fordítva csinálja.&lt;br /&gt;
Ha a 2-nél olyan indexet olvasunk, ami a szótár épp rákövetkező eleme lenne, de még nincs meg, akkor ez azt az elemet jelenti, amelyiket a következő 3. lépésnél alkotnánk csak meg, de előre gondolkodva ki lehet találni az első betűjét (hiszen egy kódszóhoz egy betűt fűzve jön létre), és csak az hiányzik. Tehát az előző kódszóhoz hozzáfűzzük a saját első betűjét, és így jön létre az új bejegyzés. Ez is le van írva mindkét szürke könyvben.&lt;br /&gt;
&lt;br /&gt;
===Formálisan: Routine LZW_DECOMPRESS ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Read OLD_CODE&lt;br /&gt;
output OLD_CODE&lt;br /&gt;
CHARACTER = OLD_CODE&lt;br /&gt;
WHILE there are still input characters DO&lt;br /&gt;
	 Read NEW_CODE&lt;br /&gt;
	 IF NEW_CODE is not in the translation table THEN&lt;br /&gt;
		  STRING = get translation of OLD_CODE&lt;br /&gt;
		  STRING = STRING+CHARACTER&lt;br /&gt;
	 ELSE&lt;br /&gt;
		  STRING = get translation of NEW_CODE&lt;br /&gt;
	 END of IF&lt;br /&gt;
	 output STRING&lt;br /&gt;
	 CHARACTER = first character in STRING&lt;br /&gt;
	 add OLD_CODE + CHARACTER to the translation table&lt;br /&gt;
	 OLD_CODE = NEW_CODE&lt;br /&gt;
END of WHILE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- [[BrezinaP|Brez]] - 2005.12.01.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>