jp.gr.java_conf.dangan.util.lha

Class PreLh5Decoder

Implemented Interfaces:
PreLzssDecoder

public class PreLh5Decoder
extends Object
implements PreLzssDecoder

-lh4-, -lh5-, -lh6-, -lh7- 解凍用の PreLzssDecoder。
 -- revision history --
 $Log: PreLh5Decoder.java,v $
 Revision 1.3  2002/12/08 00:00:00  dangan
 [bug fix]
     readCode でハフマン符号読み込み途中で
     EndOfStream に達した場合に EOFException を投げていなかった。

 Revision 1.2  2002/12/08 00:00:00  dangan
 [change]
     クラス名 を PreLh5DecoderFast から PreLh5Decoder に変更。

 Revision 1.1  2002/12/06 00:00:00  dangan
 [maintenance]
     ソース整備

 Revision 1.0  2002/08/05 00:00:00  dangan
 add to version control
 [maintenance]
     最新の BitInputStream と PreLh5Decoder からソースを取り込む。
     ソース整備
     タブ廃止
     ライセンス文の修正

 
Version:
$Revision: 1.3 $
Author:
$Author: dangan $

Constructor Summary

PreLh5Decoder(InputStream in)
-lh5- 解凍用 PreLzssDecoder を構築する。
テーブルサイズはデフォルト値を使用する。
PreLh5Decoder(InputStream in, String method)
-lh4-,-lh5-,-lh6-,-lh7- 解凍用 PreLzssDecoder を構築する。
テーブルサイズには デフォルト値を使用する。
PreLh5Decoder(InputStream in, String method, int CodeTableBits, int OffLenTableBits)
-lh4-,-lh5-,-lh6-,-lh7- 解凍用 PreLzssDecoder を構築する。

Method Summary

int
available()
ブロックせずに読み出すことの出来る最低バイト数を得る。
InputStream の available() と違い、 この最低バイト数は必ずしも保障されていない事に注意すること。
void
close()
このストリームを閉じ、使用していた全ての資源を解放する。
int
getDictionarySize()
この PreLh5Decoder が扱うLZSS辞書のサイズを得る。
int
getMaxMatch()
この PreLh5Decoder が扱うLZSSの最大一致長を得る。
int
getThreshold()
この PreLh5Decoder が扱う圧縮、非圧縮の閾値を得る。
void
mark(int readLimit)
接続された入力ストリームの現在位置にマークを設定し、 reset() メソッドでマークした時点の 読み込み位置に 戻れるようにする。
InputStream の mark() と違い、readLimit で設定した 限界バイト数より前にマーク位置が無効になる可能性が ある事に注意すること。
boolean
markSupported()
接続された入力ストリームが mark() と reset() を サポートするかを得る。
int
readCode()
-lh5- 系の圧縮法で圧縮された 1byte のLZSS未圧縮のデータ、 もしくは圧縮コードのうち一致長を読み込む。
int
readOffset()
-lh5- 系の圧縮法で圧縮された LZSS圧縮コードのうち一致位置を読み込む。
void
reset()
接続された入力ストリームの読み込み位置を最後に mark() メソッドが呼び出されたときの位置に設定する。

Constructor Details

PreLh5Decoder

public PreLh5Decoder(InputStream in)
-lh5- 解凍用 PreLzssDecoder を構築する。
テーブルサイズはデフォルト値を使用する。
Parameters:
in - -lh5-形式の圧縮データを供給する入力ストリーム

PreLh5Decoder

public PreLh5Decoder(InputStream in,
                     String method)
-lh4-,-lh5-,-lh6-,-lh7- 解凍用 PreLzssDecoder を構築する。
テーブルサイズには デフォルト値を使用する。
Parameters:
in - 圧縮データを供給する入力ストリーム
method - 圧縮法識別子
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。

PreLh5Decoder

public PreLh5Decoder(InputStream in,
                     String method,
                     int CodeTableBits,
                     int OffLenTableBits)
-lh4-,-lh5-,-lh6-,-lh7- 解凍用 PreLzssDecoder を構築する。
Parameters:
in - 圧縮データを供給する入力ストリーム
method - 圧縮法識別子
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。
CodeTableBits - code 部を復号するために使用する テーブルのサイズをビット長で指定する。 12 を指定すれば 4096 のルックアップテーブルを生成する。
OffLenTableBits - offLen 部を復号するために使用する テーブルのサイズをビット長で指定する。 8 を指定すれば 256 のルックアップテーブルを生成する。

Method Details

available

public int available()
            throws IOException
ブロックせずに読み出すことの出来る最低バイト数を得る。
InputStream の available() と違い、 この最低バイト数は必ずしも保障されていない事に注意すること。
Specified by:
available in interface PreLzssDecoder
Returns:
ブロックしないで読み出せる最低バイト数。

close

public void close()
            throws IOException
このストリームを閉じ、使用していた全ての資源を解放する。
Specified by:
close in interface PreLzssDecoder

getDictionarySize

public int getDictionarySize()
この PreLh5Decoder が扱うLZSS辞書のサイズを得る。
Specified by:
getDictionarySize in interface PreLzssDecoder
Returns:
この PreLh5Decoder が扱うLZSS辞書のサイズ

getMaxMatch

public int getMaxMatch()
この PreLh5Decoder が扱うLZSSの最大一致長を得る。
Specified by:
getMaxMatch in interface PreLzssDecoder
Returns:
この PreLh5Decoder が扱うLZSSの最大一致長

getThreshold

public int getThreshold()
この PreLh5Decoder が扱う圧縮、非圧縮の閾値を得る。
Specified by:
getThreshold in interface PreLzssDecoder
Returns:
この PreLh5Decoder が扱う圧縮、非圧縮の閾値

mark

public void mark(int readLimit)
接続された入力ストリームの現在位置にマークを設定し、 reset() メソッドでマークした時点の 読み込み位置に 戻れるようにする。
InputStream の mark() と違い、readLimit で設定した 限界バイト数より前にマーク位置が無効になる可能性が ある事に注意すること。
Specified by:
mark in interface PreLzssDecoder
Parameters:
readLimit - マーク位置に戻れる限界のバイト数。 このバイト数を超えてデータを読み 込んだ場合 reset()できなくなる可 能性がある。

markSupported

public boolean markSupported()
接続された入力ストリームが mark() と reset() を サポートするかを得る。
Specified by:
markSupported in interface PreLzssDecoder
Returns:
ストリームが mark() と reset() を サポートする場合は true。
サポートしない場合は false。

readCode

public int readCode()
            throws IOException
-lh5- 系の圧縮法で圧縮された 1byte のLZSS未圧縮のデータ、 もしくは圧縮コードのうち一致長を読み込む。
Specified by:
readCode in interface PreLzssDecoder
Returns:
1byte の 未圧縮のデータ、 もしくは圧縮された圧縮コードのうち一致長

readOffset

public int readOffset()
            throws IOException
-lh5- 系の圧縮法で圧縮された LZSS圧縮コードのうち一致位置を読み込む。
Specified by:
readOffset in interface PreLzssDecoder
Returns:
-lh5- 系で圧縮された圧縮コードのうち一致位置

reset

public void reset()
            throws IOException
接続された入力ストリームの読み込み位置を最後に mark() メソッドが呼び出されたときの位置に設定する。
Specified by:
reset in interface PreLzssDecoder

When you found typographical errors or omissions, Please mail to cqw10305@nifty.com
The company name and product name which are used in this document, it is the trademark or registered trademark of each company generally.
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.