LHA Library for Java

jp.gr.java_conf.dangan.util.lha
Class PostLh5Encoder

java.lang.Object
  extended by jp.gr.java_conf.dangan.util.lha.PostLh5Encoder
All Implemented Interfaces:
PostLzssEncoder

public class PostLh5Encoder
extends java.lang.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(java.io.OutputStream out)
          -lh5- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。
PostLh5Encoder(java.io.OutputStream out, java.lang.String method)
          -lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。
PostLh5Encoder(java.io.OutputStream out, java.lang.String method, int BufferSize)
          -lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
PostLh5Encoder(java.io.OutputStream out, java.lang.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 で圧縮された圧縮コードのうち一致位置を書きこむ。
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PostLh5Encoder

public PostLh5Encoder(java.io.OutputStream out)
-lh5- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。

Parameters:
out - 圧縮データを受け取る OutputStream

PostLh5Encoder

public PostLh5Encoder(java.io.OutputStream out,
                      java.lang.String method)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。
バッファサイズにはデフォルト値が使用される。

Parameters:
out - 圧縮データを受け取る OutputStream
method - 圧縮法を示す文字列
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。
Throws:
java.lang.IllegalArgumentException - method が上記以外の場合

PostLh5Encoder

public PostLh5Encoder(java.io.OutputStream out,
                      java.lang.String method,
                      int BufferSize)
-lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder を構築する。

Parameters:
out - 圧縮データを受け取る OutputStream
method - 圧縮法を示す文字列
   CompressMethod.LH4
   CompressMethod.LH5
   CompressMethod.LH6
   CompressMethod.LH7
   の何れかを指定する。
BufferSize - LZSS圧縮データを退避しておく バッファのサイズ
Throws:
java.lang.IllegalArgumentException -
   (1) method が上記以外の場合
   (2) BufferSize が小さすぎる場合
   の何れか

PostLh5Encoder

public PostLh5Encoder(java.io.OutputStream out,
                      java.lang.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 - 最大分割数
Throws:
java.lang.IllegalArgumentException -
   (1) CompressMethod が上記以外の場合
   (2) BlockNum が 0以下の場合
   (3) BlockSize が小さすぎる場合
   (4) DivideNum が 0未満であるか、BlockNum以上の場合
   のいずれか。
Method Detail

writeCode

public void writeCode(int code)
               throws java.io.IOException
1byte の LZSS未圧縮のデータもしくは、 LZSS で圧縮された圧縮コードのうち一致長を書きこむ。

Specified by:
writeCode in interface PostLzssEncoder
Parameters:
code - 1byte の LZSS未圧縮のデータもしくは、 LZSS で圧縮された圧縮コードのうち一致長
Throws:
java.io.IOException - 入出力エラーが発生した場合

writeOffset

public void writeOffset(int offset)
LZSS で圧縮された圧縮コードのうち一致位置を書きこむ。

Specified by:
writeOffset in interface PostLzssEncoder
Parameters:
offset - LZSS で圧縮された圧縮コードのうち一致位置

flush

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

Specified by:
flush in interface PostLzssEncoder
Throws:
java.io.IOException - 入出力エラーが発生した場合
See Also:
PostLzssEncoder.flush(), BitOutputStream.flush()

close

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

Specified by:
close in interface PostLzssEncoder
Throws:
java.io.IOException - 入出力エラーが発生した場合

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の圧縮、非圧縮の閾値

LHA Library for Java

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.