public class PreLh5Decoder extends java.lang.Object implements 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 からソースを取り込む。 ソース整備 タブ廃止 ライセンス文の修正
Constructor and Description |
---|
PreLh5Decoder(java.io.InputStream in)
-lh5- 解凍用 PreLzssDecoder を構築する。
テーブルサイズはデフォルト値を使用する。 |
PreLh5Decoder(java.io.InputStream in,
java.lang.String method)
-lh4-,-lh5-,-lh6-,-lh7- 解凍用 PreLzssDecoder を構築する。
テーブルサイズには デフォルト値を使用する。 |
PreLh5Decoder(java.io.InputStream in,
java.lang.String method,
int CodeTableBits,
int OffLenTableBits)
-lh4-,-lh5-,-lh6-,-lh7- 解凍用 PreLzssDecoder を構築する。
|
Modifier and Type | Method and Description |
---|---|
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() メソッドが呼び出されたときの位置に設定する。
|
public PreLh5Decoder(java.io.InputStream in)
in
- -lh5-形式の圧縮データを供給する入力ストリームpublic PreLh5Decoder(java.io.InputStream in, java.lang.String method)
in
- 圧縮データを供給する入力ストリームmethod
- 圧縮法識別子java.lang.IllegalArgumentException
- method が上記以外の場合public PreLh5Decoder(java.io.InputStream in, java.lang.String method, int CodeTableBits, int OffLenTableBits)
in
- 圧縮データを供給する入力ストリームmethod
- 圧縮法識別子CodeTableBits
- code 部を復号するために使用する
テーブルのサイズをビット長で指定する。
12 を指定すれば 4096 のルックアップテーブルを生成する。OffLenTableBits
- offLen 部を復号するために使用する
テーブルのサイズをビット長で指定する。
8 を指定すれば 256 のルックアップテーブルを生成する。java.lang.IllegalArgumentException
- public int readCode() throws java.io.IOException
readCode
in interface PreLzssDecoder
java.io.IOException
- 入出力エラーが発生した場合java.io.EOFException
- EndOfStreamに達した場合BadHuffmanTableException
- ハフマン木を構成するための
ハフマン符号長の表が不正である場合public int readOffset() throws java.io.IOException
readOffset
in interface PreLzssDecoder
java.io.IOException
- 入出力エラーが発生した場合public void mark(int readLimit)
mark
in interface PreLzssDecoder
readLimit
- マーク位置に戻れる限界のバイト数。
このバイト数を超えてデータを読み
込んだ場合 reset()できなくなる可
能性がある。PreLzssDecoder.mark(int)
public void reset() throws java.io.IOException
reset
in interface PreLzssDecoder
java.io.IOException
- public boolean markSupported()
markSupported
in interface PreLzssDecoder
public int available() throws java.io.IOException
available
in interface PreLzssDecoder
java.io.IOException
- 入出力エラーが発生した場合PreLzssDecoder.available()
public void close() throws java.io.IOException
close
in interface PreLzssDecoder
java.io.IOException
- 入出力エラーが発生した場合public int getDictionarySize()
getDictionarySize
in interface PreLzssDecoder
public int getMaxMatch()
getMaxMatch
in interface PreLzssDecoder
public int getThreshold()
getThreshold
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.