Chapter Sixty one

第61話


 相変わらず暑い夏が残っている。3週間経ってしまったら、次に何を書こうとしていたのかすっかり忘れてしまったのだが、たぶん全体の構成を説明しようと考えていたのだろう。ダイナミックハフマンコードのデコードVIのサブVIの階層は下のようになっている。

 

一番上がデコードVIになっている。これも将来はサブVIになる予定だが、今のところ下のようなダイアグラムになっている。前回書いたように仕様を理解する過程でずいぶん大変だったが、出来上がったものは固定ハフマンコードでの伸長プログラムと大きな違いはない。

"Block Head"はブロックヘッダーの3ビットを読み取って圧縮方式を調べている。本来はここで固定圧縮、ダイナミック圧縮、無圧縮の場合わけが行われるのだが、今回は単に表示されるだけだ。

"Block Head"の次のDynamicCode.viはダイナミックコードを読み取ってハフマンコードを作り出すVIだ。

ホワイルループの中のDynamicDecorder.viはダイナミックコードを使って伸長を行なっている。

この中で使っている距離・長さのデコードは固定コードの場合と基本的には違いはないが、距離コードもハフマンコードを使うため、少し込み入ってきている。固定でもダイナミックでも共通に使えるように改造した。(commonLenDist_Decorder.vi)

今日はこれを書きながら、これまでのVIを整理してZIPの読み取りプログラムにまとめることができた。次回はそれを紹介してみよう。

See you!


Nigel Yamaguchi

戻る