LHA Library for Java | |
Prev Package | Next Package | Frames | No Frames |
Interface Summary | |
HashMethod | ハッシュ関数を提供するインターフェイス。 コンストラクタの形式は HashMethod( byte[] TextBuffer ) パラメータ: TextBuffer - LZSS圧縮を施すデータの入ったバッファのような形式に則ること。 また、追加の引数をとりたい場合は HashMethod( byte[] TextBuffer, Object ExtraData1, Object ExtraData2 )のような形式を用いる。 なお、コンストラクタの引数チェックは追加の引数がある場合について行えばよい。 -- revision history -- $Log: HashMethod.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version cotrol [change] requiredSize() を hashRequires() に名前変更。 size() を tableSize() 名前変更。 [maintanance] ソース整備 タブ廃止 ライセンス文の修正 |
LzssSearchMethod | LzssOutputStream で使用される
最長一致検索を提供するインターフェイス。 コンストラクタの形式は LzssSearchMethod( int DictionarySize, int MaxMatch, int Threshold, byte[] TextBuffer ) パラメータ: DictionarySize - LZSSの辞書サイズ MaxMatch - LZSSの最大一致長 Threshold - LZSSの圧縮/非圧縮の閾値 TextBuffer - LZSS圧縮を施すデータの入ったバッファのような形式に則ること。 また、追加の引数をとりたい場合は LzssSearchMethod( int DictionarySize, int MaxMatch, int Threshold, byte[] TextBuffer, Object ExtraArgument1, Object ExtraArgument2 )のような形式を用いる。 なお、コンストラクタの引数チェックは追加の引数がある場合について行えばよい。 -- revision history -- $Log: LzssSearchMethod.java,v $ Revision 1.1 2002/12/04 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/07/24 00:00:00 dangan add to version control [change] slide() で引数を取らずに スライド幅を常に DictionarySize とするように変更。 putLength を putRequires に変更 [maintenance] タブ廃止 ライセンス文の修正 |
PostLzssEncoder | LZSS圧縮コードを処理する インターフェイス。
-- revision history -- $Log: PostLzssEncoder.java,v $ Revision 1.0 2002/07/25 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 |
PreLzssDecoder | LZSS圧縮コードを供給するインターフェイス。
-- revision history -- $Log: PreLzssDecoder.java,v $ Revision 1.0 2002/07/25 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 |
Class Summary | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BadHuffmanTableException | BlockHuffman.LenListToCodeList() 内で、
渡された LenList ( ハフマン符号長の表 )が不正なため、
ハフマン符号を生成できない事を示す。-- revision history -- $Log: BadHuffmanTableException.java,v $ Revision 1.0 2002/07/24 00:00:00 dangan add to version control [maintenance] タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BinaryTreeSearch | 二分木を使用した LzssSearchMethod の実装。データ圧縮ハンドブック[改定第二版] M.ネルソン/J.-L.ゲィリー 著 萩原剛志・山口英 訳 ISBN4-8101-8605-9 5728円(税抜き,当方の購入当時の価格)を参考にした。 二分木では、最長一致を見つけることはできるが、 最も近い一致を見つけられるとは限らないため、 LZSSで 一致位置が近い場所に偏る事を 利用するような -lh5- のような圧縮法では、 圧縮率はいくらか低下する。 -- revision history -- $Log: BinaryTreeSearch.java,v $ Revision 1.0 2002/08/06 00:00:00 dangan add to version control [change] LzssSearchMethod のインタフェイス変更にあわせてインタフェイス変更 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CompressMethod | LHAの各種定数を定義する。
-- revision history -- $Log: CompressMethod.java,v $ Revision 1.1 2002/12/08 00:00:00 dangan [change] クラス名を LhaConstants から CompressMethod へと変更。 Revision 1.0 2002/07/24 00:00:00 dangan add to version control [change] LhaUtil の connectExtractInputStream を connectDecoder として connectCompressOutputStream を connectEncoder として引き継ぐ。 LhaUtil の CompressMethodTo????????? を引き継ぐ。 [maintanance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CRC16 | CRC16値を算出するためのクラス。
クラス内の定数、処理、説明は
C言語によるアルゴリズム辞典 奥村晴彦著 技術評論社 ISBN4-87408-414-1 C3055 2400円(購入当時)によった。 -- revision history -- $Log: CRC16.java,v $ Revision 1.0 2002/07/24 00:00:00 dangan add to version control [maintanance] ソース整備 タブ廃止 ライセンス文の変更 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DynamicHuffman | 動的ハフマンを扱うクラス。
-- revision history -- $Log: DynamicHuffman.java,v $ Revision 1.0 2002/07/24 00:00:00 dangan add to version control [bug fix] addLeaf() で葉の数が 1 から 2へと増加するときに 最初からあった葉の重さが 1 だと決め付けていた。 [change] コンストラクタ DynamicHuffman( int, int ) で 開始時のハフマン木のサイズでなく 開始時の葉の数を渡すように変更。 [maintenance] ソース整備 タブ廃止 ライセンス文の変更 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HashAndBinaryTreeSearch | ハッシュと二分木を使った LzssSearchMethod の実装。データ圧縮ハンドブック[改定第二版] M.ネルソン/J.-L.ゲィリー 著 萩原剛志・山口英 訳 ISBN4-8101-8605-9 5728円(税抜き,当方の購入当時の価格)を参考にした。 二分木では、最長一致を見つけることはできるが、 最も近い一致を見つけられるとは限らないため、 LZSSで 一致位置が近い場所に偏る事を 利用するような -lh5- のような圧縮法では、 圧縮率はいくらか低下する。 -- revision history -- $Log: HashAndBinaryTreeSearch.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] LzssSearchMethod のインタフェイス変更にあわせてインタフェイス変更 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HashAndChainedListSearch | ハッシュと単方向連結リストを使って高速化された LzssSearchMethod。 検索を打ち切ることによる高速化も行っているため、 必ず最長一致を見つけることが出来るとは限らない。 -- revision history -- $Log: HashAndChainedListSearch.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] LzssSearchMethod のインタフェイス変更にあわせてインタフェイス変更 [improvement] ar940528 の TEST5相当 の実装に変更。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HashDefault | 試作プログラム ar940528 や LHa for Unix で使用されているハッシュ関数。 gzip で使用されているを参考にしたようだ。 -- revision history -- $Log: HashDefault.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] HashMethod のインタフェイス変更にあわせてインテフェイス変更。 コンストラクタで引数チェックを削除。 [maintanance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HashShort | データパタンの先頭2バイトから
0 〜 4095 のハッシュ値を生成するハッシュ関数。
-- revision history -- $Log: HashShort.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] HashMethod のインタフェイス変更にあわせてインテフェイス変更。 [maintanance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaChecksum | LHAで使用される 単純な 1バイトのチェックサム値を
算出するためのクラス。
-- revision history -- $Log: LhaChecksum.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version control [maintanance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaFile | LHA書庫ファイルからエントリデータを読み出す
InputStreamを得るためのユーティリティクラス。 java.util.zip.ZipFile と似た インターフェイスを持つように作った。 CRC16等によるチェックは行わない。 -- revision history -- $Log: LhaFile.java,v $ Revision 1.1 2002/12/08 00:00:00 dangan [maintenance] LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [improvement] エントリの管理に Hashtable を使用する事によって 大量のエントリを持つ書庫でエントリ開始位置を より速く見つけられるように改良。 [change] コンストラクタから 引数に String encode を取るものを廃止、 Properties を引数に取るものを追加。 [maintanance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaHeader | LHAヘッダを扱う。 このクラスは java.util.zip パッケージでは ZipEntry と近いが、 ヘッダの入出力のためのユーティリティ関数を持つ点が違う。 このクラスは set系メソッドで為された方が良いチェックを getBytes() 時に行うように書かれている。その点は注意すること。 -- revision history -- $Log: LhaHeader.java,v $ Revision 1.2.2.3 2005/05/03 07:50:30 dangan [bug fix] exportLevel1Header() で skip size のチェックがされていなかった。 Revision 1.2.2.2 2005/02/02 00:57:46 dangan [bug fix] importLevelXHeader(byte[], String) でファイルサイズを int で読み込んでいたため 31ビット値以上のサイズのファイルを正しく扱えていなかったのを修正。 Revision 1.2.2.1 2003/07/20 13:19:21 dangan [bug fix] exportDirNameExtHeader(String) で System.arraycopy の src と dest の配置が間違っていた。 Revision 1.2 2002/12/08 00:00:00 dangan [maintenance] LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。 Revision 1.1 2002/12/05 00:00:00 dangan [improvement] 64ビットファイルサイズヘッダに対応。 [change] LhaUtil.DefaultEncoding から LhaProperty.encoding を使用するように変更。 getNextHeaderData() を getFirstHeaderData() に名前変更。 新しい getNextHeaderData() は呼び出された位置で ヘッダを発見できない場合 null を返す。 LhaHeader を拡張したサブクラスを使用する人のための createInstance() を追加。 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [bug fix] setDate( null ) を許していた。 setCompressMethod( null ) を許していた。 exportLevel2,3Header で Date が 32bit の time_t の範囲外の値(負の値を含む)の場合を許していた。 [change] exportHeader で ヘッダレベルが 0,1,2,3 のいずれでもない場合 IllegalStateException を投げるように変更。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaImmediateOutputStream | 接続されたRandomAccessFileに 圧縮データを出力するためのユーティリティクラス。 java.util.zip.ZipOutputStream と似たインターフェイスを持つように作った。 圧縮失敗時( 圧縮後サイズが圧縮前サイズを上回った場合 )の処理を 手動で行わなければならない。 以下に そのようなコードを示す。 LhaCompressFiles( String arcfile, File[] files ){ LhaImmediateOutputStream lio = new LhaImmediateOutputStream( arcfile ); for( int i = 0 ; i < files.length ; i++ ){ RandomAccessFile raf = new RandomAccessFile( files[i] ); LhaHeader header = new LhaHeader( files[i].getName() ); header.setLastModified( new Date( files.lastModified() ) ); header.setOriginalSize( files.length() ); byte[] buffer = new byte[8192]; int length; while( 0 <= ( length = raf.read( buffer ) ) ){ lio.write( buffer, 0, length ); } if( !lio.closeEntry() ){ header.setCompressMethod( CompressMethod.LH0 ); lio.putNextEntry( lhaheader ); raf.seek( 0 ); while( 0 <= ( length = raf.read( buffer ) ) ){ lio.write( buffer, 0, length ); } lio.closeEntry(); } lio.close(); }進捗報告を実装する場合、このような処理をクラス内に隠蔽すると進捗報告は何秒間か 時によっては何十分も応答しなくなる。(例えばギガバイト級のデータを扱った場合) LhaRetainedOutputStream で発生する、このような事態を避けるために設計されている。 また、JDK 1.1 以前では RandomAccessFile が setLength を持たないため、 書庫データの後ろに他のデータがある場合でもファイルサイズを切り詰めることが出来ない。 この問題点は常にサイズ0の新しいファイルを開く事によって回避する事ができる。 -- revision history -- $Log: LhaImmediateOutputStream.java,v $ Revision 1.2 2002/12/11 02:25:06 dangan [bug fix] jdk1.2 でコンパイルできなかった箇所を修正。 Revision 1.1 2002/12/08 00:00:00 dangan [maintenance] LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] コンストラクタから 引数に String encode を取るものを廃止、 Properties を引数に取るものを追加。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaInputStream | 接続されたストリームからLHA書庫データを読みこみ、
エントリを解凍しつつ読み込むためのユーティリティクラス。 java.util.zip.ZipInputStream と似たインターフェイスを持つように作った。 壊れた書庫の処理に関しては壊れたエントリ以降の 壊れていないエントリも正常に読みこめない可能性がある。 -- revision history -- $Log: LhaInputStream.java,v $ Revision 1.1.2.1 2003/07/20 13:22:31 dangan [bug fix] getNextEntry() で CompressMethod.connectDecoder に this.limit を渡すべきところで this.in を渡していた。 Revision 1.1 2002/12/08 00:00:00 dangan [maintenance] LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] コンストラクタから 引数に String encode を取るものを廃止、 Properties を引数に取るものを追加。 書庫終端に達した場合はそれ以上読み込めないように修正。 available() の振る舞いを java.util.zip.ZipInputStream と同じように エントリの終端に達していない場合は 1 エントリの終端に達した場合は 0 を返すように変更。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaOutputStream | 接続されたストリームに 圧縮データを出力するためのユーティリティクラス。 java.util.zip.ZipOutputStream と似たインターフェイスを持つように作った。 Zipと違い、LHAの出力は本来 2パスであるため、1つのエントリを圧縮するまで、 エントリ全体のデータを持つ一時記憶領域が必要となる。 そのような記憶領域を使用したくない場合は LhaRetainedOutputStream か LhaImmediateOutputStream を使用する事。 -- revision history -- $Log: LhaOutputStream.java,v $ Revision 1.1.2.2 2005/05/03 07:48:40 dangan [bug fix] 圧縮法識別子 -lhd- を指定した時、圧縮後サイズがオリジナルサイズを下回らないため、 必ず -lh0- に再設定されていた。そのためディレクトリ情報を格納できなかった。 Revision 1.1.2.1 2005/04/29 02:14:28 dangan [bug fix] 圧縮法識別子 -lhd- を指定した時、圧縮後サイズがオリジナルサイズを下回らないため、 必ず -lh0- に再設定されていた。そのためディレクトリ情報を格納できなかった。 Revision 1.1 2002/12/08 00:00:00 dangan [maintenance] LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] コンストラクタから 引数に String encode を取るものを廃止、 Properties を引数に取るものを追加。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaProperty | LHA Library for Java の各種設定を扱う。 LhaProperty.getProperty() や LhaProperty.getProperties() で得られる値は システムプロパティ、設定ファイル、デフォルト値の何れかが用いられ、 その優先順位は以下のようになる。
キーの一覧は以下のとおり。
生成式は以下のように定義される。
クラス名は "lha.packages" に対応する値を使用して完全修飾名へと変換される。 置換文字列 はライブラリ内部でオブジェクトに置換される文字列で 現在以下の4種類が定義されている。
-- revision history -- $Log: LhaProperty.java,v $ Revision 1.0.2.2 2005/04/29 02:15:53 dangan [bug fix] createDefaultProperty() で圧縮法識別子 -lhd- 用のエンコーダどデコーダが設定されていなかった。 Revision 1.0.2.1 2004/06/27 12:09:49 dangan [bugfix] 生成式でカンマを使うべき部分でピリオドを使っていたのを修正。 Revision 1.0 2002/12/05 00:00:00 dangan first edition add to version control | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LhaRetainedOutputStream | 接続されたRandomAccessFileに 圧縮データを出力するためのユーティリティクラス。 java.util.zip.ZipOutputStream と似たインターフェイスを持つように作った。 圧縮失敗時( 圧縮後サイズが圧縮前サイズを上回った場合 )の処理を自動的に行う。 進捗報告を実装する場合、このような処理をクラス内に隠蔽すると進捗報告は何秒間か 時によっては何十分も応答しなくなる。(例えばギガバイト級のデータを扱った場合) このような事態を避けたい場合は LhaImmediateOutputStreamを使用すること。 また、JDK 1.1 以前では RandomAccessFile が setLength を持たないため、 書庫データの後ろに他のデータがある場合でもファイルサイズを切り詰めることが出来ない。 この問題点は常にサイズ0の新しいファイルを開く事によって回避する事ができる。 -- revision history -- $Log: LhaRetainedOutputStream.java,v $ Revision 1.2 2002/12/11 02:25:14 dangan [bug fix] jdk1.2 でコンパイルできなかった箇所を修正。 Revision 1.1 2002/12/08 00:00:00 dangan [maintenance] LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] コンストラクタから 引数に String encode を取るものを廃止、 Properties を引数に取るものを追加。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LzssInputStream | LZSS 圧縮されたデータを解凍しながら供給する入力ストリーム。-- revision history -- $Log: LzssInputStream.java,v $ Revision 1.1 2002/12/08 00:00:00 dangan [bug fix] mark() 内で接続された PreLzssDecoder の mark に与える readLimit の計算が甘かったのを修正。 Revision 1.0 2002/07/25 00:00:00 dangan add to version control [bug fix] available() のスペルミスを修正。 skip() において decode() を呼ぶ判定条件が間違っていたのを修正。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LzssOutputStream | データを LZSS圧縮しながら
指定された PostLzssEncoder に出力する圧縮用出力ストリーム。-- revision history -- $Log: LzssOutputStream.java,v $ Revision 1.2 2002/12/06 00:00:00 dangan [change] flush() で write() された全てのデータを 接続された PostLzssEncoder に出力するように修正。 [maintenance] slide幅が常に DictionarySize バイトになるように修正。 Revision 1.1 2002/10/20 00:00:00 dangan [bug fix] 初期状態で flush() したり 連続で flush() すると ( lastsearchret が NEEDSEARCH の時に encode() が呼ばれると ) 直後の 1バイトが化けていた。 flush() 時に putLength() を考慮していなかったため 検索機構を破壊するような searchAndPut を行っていたのを修正。 flush() 時に TextBuffer 最後尾のMaxMatchバイトのデータを出力していなかった。 Revision 1.0 2002/07/25 00:00:00 dangan add to version control [bug fix] getMatchLen() で searchret >> 22 とすべきところが searchret >>> 22 となっていたのを修正。 [maintenance] LhaUtil.createInstance() の使用をやめ 代わりに Factory.createInstance() を使用する。 ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PatriciaTrieSearch | PATRICIA Trie を使用した LzssSearchMethod の実装。
-- revision history -- $Log: PatriciaTrieSearch.java,v $ Revision 1.2 2002/12/10 22:28:55 dangan [bug fix] put( DictionarySize * 2 ) searchAndPut( DictionarySize * 2 ) に対応していなかったのを修正。 Revision 1.1 2002/12/04 00:00:00 dangan [change] LzssSearchMethod のインタフェイス変更に合わせてインタフェイス変更。 [maintenance] ソース整備 Revision 1.0 2002/08/15 00:00:00 dangan add to version control [bug fix] contractNode で hashtable からの連結リストに繋ぐのを忘れていた修正。 配列 に PatriciaTrieSearch.ROOT_NODE(-1) でアクセスしていたのを修正。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostLh1Encoder | -lh1- 圧縮用の PostLzssEncoder。 -- revision history -- $Log: PostLh1Encoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/07/31 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostLh2Encoder | -lh2- 圧縮用 PostLzssEncoder。 -- revision history -- $Log: PostLh2Encoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/07/31 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostLh3Encoder | -lh3- 圧縮用 PostLzssEncoder。$Log: PostLh3Encoder.java,v $ Revision 1.2 2002/12/06 00:00:00 dangan [maintenance] ソース整備 Revision 1.1 2002/12/01 00:00:00 dangan [change] flush() されないかぎり 接続された OutputStream をflush() しないように変更。 [maintenance] ソース整備。 Revision 1.0 2002/07/31 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostLh5Encoder | -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] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostLz5Encoder | -lz5- 圧縮用 PostLzssEncoder。
-- revision history -- $Log: PostLz5Encoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/07/31 00:00:00 dangan add to version control [bug fix] -lz5- の MaxMatch は 16 でなく 18 だった。 flush() で出力できるデータを出力していなかったのを修正。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostLzsEncoder | -lzs- 圧縮用 PostLzssEncoder。
-- revision history -- $Log: PostLzsEncoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/07/31 00:00:00 dangan add to version control [bug fix] -lzs- の MaxMatch は 16 でなく 17 だったのを修正。 [maintenance] ソース整備 タブの廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreLh1Decoder | -lh1- 解凍用の PreLzssDecoder。-- revision history -- $Log: PreLh1Decoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [bug fix] available の計算が甘かったのを修正。 [maintenance] ソース整備 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreLh2Decoder | -lh2- 解凍用 PreLzssDecoder。-- revision history -- $Log: PreLh2Decoder.java,v $ Revision 1.1 2002/12/06 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/08/05 00:00:00 dangan [bug fix] available() の計算が甘かったのを修正。 [maintenance] ソース整備 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreLh3Decoder | -lh3- 解凍用の PreLzssDecoder。
-- revision history -- $Log: PreLh3Decoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [bug fix] available の計算が甘かったのを修正。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreLh5Decoder | -lh4-, -lh5-, -lh6-, -lh7- 解凍用の 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 からソースを取り込む。 ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreLz5Decoder | -lz5- 解凍用 PreLzssDecoder。-- revision history -- $Log: PreLz5Decoder.java,v $ Revision 1.1 2002/12/01 00:00:00 dangan [maintenance] ソース整備 Revision 1.0 2002/08/05 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreLzsDecoder | -lzs- 解凍用 PreLzssDecoder。
-- revision history -- $Log: PreLzsDecoder.java,v $ 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 [bug fix] -lzs- の MaxMatch が 17 であるべきが 16 となっていたのを修正。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SimpleSearch | 特別な検索機構を用いない
LzssSearchMethod の最もシンプルな実装。 検索機構を用いないため、 他の検索機構を用いる実装と比べると遅いが、 メモリ消費量も非常に少ない。 -- revision history -- $Log: SimpleSearch.java,v $ Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] LzssSearchMethod のインタフェイス変更にあわせてインタフェイス変更。 [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
StaticHuffman | 静的ハフマン用ユーティリティ関数群を保持する。 ハフマン符号は最大16ビットに§限される。 -- revision history -- $Log: StaticHuffman.java,v $ Revision 1.0 2002/07/24 00:00:00 dangan add to version control [maintenance] ソース整備 タブ廃止 ライセンス文の修正 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TwoLevelHashSearch | 二段階ハッシュと単方向連結リストを使って高速化された LzssSearchMethod。 定兼氏の論文 を参考にした。 -- revision history -- $Log: TwoLevelHashSearch.java,v $ Revision 1.1 2002/12/10 22:06:40 dangan [bug fix] searchAndPut() で最近の最長一致を取れなかったバグを修正。 Revision 1.0 2002/12/03 00:00:00 dangan first edition add to version control |