jp.gr.java_conf.dangan.util.lha

Class PostLh5Encoder

Implemented Interfaces:
PostLzssEncoder

public class PostLh5Encoder
extends Object
implements PostLzssEncoder

-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder。
 -- revision history --
 $Log: PostLh5Encoder.java,v $
 Revision 1.4  2002/12/08 00:00:00  dangan
 [change]
     クラス名 を PostLh5EncoderCombo から PostLh5Encoder に変更。

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

 Revision 1.2  2002/12/01 00:00:00  dangan
 [change]
     flush() されないかぎり 
     接続された OutputStream をflush() しないように変更。

 Revision 1.1  2002/12/01 00:00:00  dangan
 [bug fix] 
     writeOutGroup でローカル変数 offLenFreq を使用しなければ
     ならない部分で this.offLenFreq を使用していた。
 [maintenance]
     PostLh5Encoder から受け継いだインスタンスフィールド
     buffer, codeFreq, offLenFreq 廃止
     ソース整備

 Revision 1.0  2002/07/31 00:00:00  dangan
 add to version control
 [improvement]
     DivideNum を導入する事によって処理するパターン数の減少を図る。
 [maintenance]
     ソース整備
     タブ廃止
     ライセンス文の修正

 
Version:
$Revision: 1.4 $
Author:
$Author: dangan $

Constructor Summary

PostLh5Encoder(OutputStream out)
-lh5- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。
PostLh5Encoder(OutputStream out, String method)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。
PostLh5Encoder(OutputStream out, String method, int BufferSize)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
PostLh5Encoder(OutputStream out, String method, int BlockNum, int BlockSize, int DivideNum)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
1つが BlockSizeバイト の BlockNum 個のブロックを組み合わせて 最も出力ビット数の少ない構成で出力する。 組み合わせは 全ブロックを DivideNum + 1 個に分割して得られる 全パターンが試される。

Method Summary

void
close()
この出力ストリームと、接続された出力ストリームを閉じ、 使用していたリソースを開放する。
void
flush()
この PostLzssEncoder にバッファリングされている全ての 8ビット単位のデータを出力先の OutputStream に出力し、 出力先の OutputStream を flush() する。
このメソッドは圧縮率を変化させる。
int
getDictionarySize()
この PostLh5Encoder が扱うLZSS辞書のサイズを得る。
int
getMaxMatch()
この PostLh5Encoder が扱うLZSSの最長一致長を得る。
int
getThreshold()
この PostLh5Encoder が扱うLZSSの圧縮、非圧縮の閾値を得る。
void
writeCode(int code)
1byte の LZSS未圧縮のデータもしくは、 LZSS で圧縮された圧縮コードのうち一致長を書きこむ。
void
writeOffset(int offset)
LZSS で圧縮された圧縮コードのうち一致位置を書きこむ。

Constructor Details

PostLh5Encoder

public PostLh5Encoder(OutputStream out)
-lh5- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。
Parameters:
out - 圧縮データを受け取る OutputStream

PostLh5Encoder

public PostLh5Encoder(OutputStream out,
                      String method)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。
Parameters:
out - 圧縮データを受け取る OutputStream
method - 圧縮法を示す文字列
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。

PostLh5Encoder

public PostLh5Encoder(OutputStream out,
                      String method,
                      int BufferSize)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
Parameters:
out - 圧縮データを受け取る OutputStream
method - 圧縮法を示す文字列
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。
BufferSize - LZSS圧縮データを退避しておく バッファのサイズ

PostLh5Encoder

public PostLh5Encoder(OutputStream out,
                      String method,
                      int BlockNum,
                      int BlockSize,
                      int DivideNum)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
1つが BlockSizeバイト の BlockNum 個のブロックを組み合わせて 最も出力ビット数の少ない構成で出力する。 組み合わせは 全ブロックを DivideNum + 1 個に分割して得られる 全パターンが試される。
Parameters:
out - 圧縮データを受け取る OutputStream
method - 圧縮法を示す文字列
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。
BlockNum - ブロック数
BlockSize - 1ブロックのバイト数
DivideNum - 最大分割数

Method Details

close

public void close()
            throws IOException
この出力ストリームと、接続された出力ストリームを閉じ、 使用していたリソースを開放する。
Specified by:
close in interface PostLzssEncoder

flush

public void flush()
            throws IOException
この PostLzssEncoder にバッファリングされている全ての 8ビット単位のデータを出力先の OutputStream に出力し、 出力先の OutputStream を flush() する。
このメソッドは圧縮率を変化させる。
Specified by:
flush in interface PostLzssEncoder

getDictionarySize

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

getMaxMatch

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

getThreshold

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

writeCode

public void writeCode(int code)
            throws IOException
1byte の LZSS未圧縮のデータもしくは、 LZSS で圧縮された圧縮コードのうち一致長を書きこむ。
Specified by:
writeCode in interface PostLzssEncoder
Parameters:
code - 1byte の LZSS未圧縮のデータもしくは、 LZSS で圧縮された圧縮コードのうち一致長

writeOffset

public void writeOffset(int offset)
LZSS で圧縮された圧縮コードのうち一致位置を書きこむ。
Specified by:
writeOffset in interface PostLzssEncoder
Parameters:
offset - LZSS で圧縮された圧縮コードのうち一致位置

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.