基本仕様
- 圧縮/伸張ライブラリともに Java で記述します。
- 着メロ用にチューニングした圧縮アルゴリズムを用いて、着メロの圧縮率は最高 85%、平均 66% です。
- DoJa 用の伸張ライブラリは、Jar 圧縮後のコードサイズで 1.5Kbytes です。
制限事項
- 圧縮対象ファイルのサイズは、2GBytes 以下です。
- CRC やチェックサムによる圧縮ファイルの破損チェックは行われない。誤りが発生しやすい通信路で使用する場合は、別途エラーチェックが必要です (HTTP で伝送する場合、TCP/IP プロトコルがエラーチェックを行っているので、エラーチェックは不要です。)
製品内容
本製品では、以下の内容で構成されます。
- J2SE で記述された、着メロ用圧縮/伸張ライブラリ(scalelib.jar)
- 上記ライブラリを使用したファイル圧縮/伸張プログラム(ScaleCompress)
- 組込みのための DoJa 用省スペース伸張ライブラリ(scalelib_cldc.jar)
- ライブラリ、圧縮/伸張ツールのリファレンスマニュアル
圧縮/伸張ライブラリのインタフェース
伸張ライブラリのインタフェース (DoJa 用省スペース伸張ライブラリも同じインターフェース)
Java のInputStream に対するデコレータクラスとして実装します。
例: InputStream input = new MinipressInputStream( new BufferedInputStream( new FileInputStream("圧縮ファイル.sz"))); int c = input.read(); // 伸張後のデータを読み出せます。
圧縮ライブラリのインタフェース
Java の OutputStream に対するデコレータクラスとして実装します。
使用している圧縮アルゴリズムの特性より、OutputStream.close() を呼び出すまでは、圧縮データは出力されません。
例: OutputStream output = new MinipressOutputStream( new BufferedOutputStream( new FileOutputStream("圧縮ファイル.sz"))); output.write(3); // データを圧縮して、"圧縮ファイル.sz" に書き込みます。 output.close(); // 実際のファイルには、close() 呼び出し時に書き込まれます。
圧縮/伸張ツールのコマンドラインインタフェース
ファイルの圧縮
書式1: 一つのファイルを圧縮する場合
C:> ScaleCompress c [-o 圧縮後ファイル名] ファイル名
ファイル名のファイルを圧縮して、圧縮後ファイル名という名前で保存します。圧縮後ファイル名が省略された場合は、元のファイル名に ".sz" を付けた名前で圧縮ファイルを出力します。
例: ScaleCompress c melody.mld 圧縮ファイル "melody.mld.sz" が作成されます。 ScaleCompress c -o test.xxx test.mld 圧縮ファイル "test.xxx" が作成されます。
書式2: ディレクトリ内のファイルを一括で圧縮する場合
C:> ScaleCompress c [-o 出力ディレクトリ] [-e 圧縮対象拡張子] [-R] ディレクトリ名
ディレクトリ名の中にある、圧縮対象拡張子を拡張子にもつファイルを圧縮し、出力ディレクトリ内に保存する。圧縮後のファイル名は、圧縮前のファイル名に ".sz" を付けた物になる。圧縮対象拡張子を省略すると、"mld"を拡張子にもつファイルを圧縮する。拡張子によらず、ディレクトリ内にある全てのファイルを圧縮したい時は、圧縮対象拡張子に "." を指定します。出力ディレクトリを省略した場合は、カレントディレクトリに出力します。
オプション-Rを付けると、入れ子になったディレクトリ内のファイルも圧縮対象になります。
ファイルの伸張
圧縮する場合と同様の書式です。
書式1: 一つのファイルを伸張する場合
C:> ScaleCompress d [-o 伸張後ファイル名] ファイル名
書式2: ディレクトリ内のファイルを一括で伸張する場合
C:> ScaleCompress d [-o 出力ディレクトリ] [-e 伸張対象拡張子] [-R] ディレクトリ名