jp.gr.java_conf.dangan.util.lha

Class StaticHuffman


public class StaticHuffman
extends 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 int[]
FreqListToLenList(int[] FreqList)
頻度表から ハフマン符号のビット長の表を作成する。
static int[]
FreqListToLenListOriginal(int[] FreqList)
頻度表から ハフマン符号のビット長の表を作成する。 オリジナルのLHAと同じコードを出力する。
static int[]
LenListToCodeList(int[] LenList)
ハフマン符号長のリストから ハフマン符号表を作成する。
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] のように使用する。

Field Details

LimitLen

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

Method Details

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が不正なため、 ハフマン符号表が生成出来ない場合

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.