LHA Library for Java

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

java.lang.Object
  extended by jp.gr.java_conf.dangan.util.lha.StaticHuffman

public class StaticHuffman
extends java.lang.Object

静的ハフマン用ユーティリティ関数群を保持する。
ハフマン符号は最大16ビットに制限される。

 -- revision history --
 $Log: StaticHuffman.java,v $
 Revision 1.0  2002/07/24 00:00:00  dangan
 add to version control
 [maintenance]
     ソース整備
     タブ廃止
     ライセンス文の修正

 

Version:
$Revision: 1.0 $
Author:
$Author: dangan $

Field Summary
static int LimitLen
          LHAがDOSの16bitモードを使用して作られたことによる ハフマン符号長の制限。
 
Method Summary
static short[] createTable(int[] LenList)
          LenList から、ハフマン復号用のテーブルを生成する。
static short[][] createTableAndTree(int[] LenList, int TableBits)
          LenList から、ハフマン復号用のテーブルと木を生成する。 テーブルは TableBits の大きさを持ち、それ以上の部分は木に格納される。
戻り値は new short[][]{ Table, Tree[0], Tree[1] } となる。
テーブルを引いた結果もしくは木を走査した際、負の値を得た場合、 それは復号化されたコードを全ビット反転したものである。 正の値であればそれは 木を走査するための index であり、 Tree[bit][index] のように使用する。
static int[] FreqListToLenList(int[] FreqList)
          頻度表から ハフマン符号のビット長の表を作成する。
static int[] FreqListToLenListOriginal(int[] FreqList)
          頻度表から ハフマン符号のビット長の表を作成する。 オリジナルのLHAと同じコードを出力する。
static int[] LenListToCodeList(int[] LenList)
          ハフマン符号長のリストから ハフマン符号表を作成する。
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LimitLen

public static final int LimitLen
LHAがDOSの16bitモードを使用して作られたことによる ハフマン符号長の制限。

See Also:
Constant Field Values
Method Detail

FreqListToLenList

public static int[] FreqListToLenList(int[] FreqList)
頻度表から ハフマン符号のビット長の表を作成する。

Parameters:
FreqList - 頻度表
Returns:
ハフマン符号のビット長の表

FreqListToLenListOriginal

public static int[] FreqListToLenListOriginal(int[] FreqList)
頻度表から ハフマン符号のビット長の表を作成する。 オリジナルのLHAと同じコードを出力する。

Parameters:
FreqList - 頻度表
Returns:
ハフマン符号のビット長の表

LenListToCodeList

public static int[] LenListToCodeList(int[] LenList)
                               throws BadHuffmanTableException
ハフマン符号長のリストから ハフマン符号表を作成する。

Parameters:
LenList - ハフマン符号長のリスト
Returns:
ハフマン符号表
Throws:
BadHuffmanTableException - LenListが不正なため、 ハフマン符号表が生成出来ない場合

createTable

public static short[] createTable(int[] LenList)
                           throws BadHuffmanTableException
LenList から、ハフマン復号用のテーブルを生成する。

Parameters:
LenList - ハフマン符号長の表
Returns:
ハフマン復号用テーブル。
Throws:
BadHuffmanTableException - LenListが不正なため、 ハフマン符号表が生成出来ない場合

createTableAndTree

public static short[][] createTableAndTree(int[] LenList,
                                           int TableBits)
                                    throws BadHuffmanTableException
LenList から、ハフマン復号用のテーブルと木を生成する。 テーブルは TableBits の大きさを持ち、それ以上の部分は木に格納される。
戻り値は new short[][]{ Table, Tree[0], Tree[1] } となる。
テーブルを引いた結果もしくは木を走査した際、負の値を得た場合、 それは復号化されたコードを全ビット反転したものである。 正の値であればそれは 木を走査するための index であり、 Tree[bit][index] のように使用する。

Parameters:
LenList - ハフマン符号長の表
TableBits - ハフマン復号用テーブルの大きさ。
Returns:
ハフマン復号用テーブルと木。
Throws:
BadHuffmanTableException - LenListが不正なため、 ハフマン符号表が生成出来ない場合

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.