LZ78
記号列
をもとに、符号化の手順を説明する。
まず、単語を登録するための辞書を次のように初期化する。ここで、辞書番号0は、未出記号を意味する空列となる。
符号化は、対象となる記号列の prefix (先頭から見た部分列)に最長一致する辞書の単語を見つけることから始まる。 符号化対象の先頭は a... だが、a から始まる単語は辞書に登録されていない単語である。 そこで、未出を表す 0 がまず得られる。 符号語は、得られた辞書番号と次の記号列の先頭記号とを組み合わせて、 (0,a) として出力する。
続いて辞書の更新を行う。 得られた辞書番号 0 の単語の末尾に、次の記号列の先頭記号である a を加えたものを辞書番号 1 に登録する。 ここで、辞書の番号は現在までの最大値に +1 したものとなる。 上記の場合は 0 の単語が空列であるため、 a を辞書の 1 番に登録する。
次の b も未出なので、(0,b) を出力して、 b を登録する。
次の ab... は、a が辞書に登録されているため、その番号 1 と続く1記号 b を符号語として出力する。
辞書には、a と b を連接した ab を登録する。
同様に、次の aa... は、a が辞書に登録されているため、その番号 1 と続く1記号 a を符号語として出力する。
辞書には、a と a を連接した aa を登録する。
残りは、ba と aab がそれぞれ切り出されて、最終的に次のような符号語の列が得られる。
またこの時点での辞書は、次のようになる。
符号語の列を別の何らかの符号で符号化したものが、最終的な出力となる。 辞書は、符号語の列から再構成できるため、特に保存する必要はない。