画像圧縮ソフト Bit Map Compressor ver3.02 (2002年5月、nuyakimo作)の説明 Bit Map Compressor は、BMP画像を高密度に圧縮するプログラムです。 非可逆圧縮の一種で独自のファイル形式です。 高画質領域から低画質領域までのあらゆる領域で良好な圧縮率で圧縮できます。 どちらかというとアニメ調の画像よりも自然画像を得意とします。 JPEGと比較すると、高画質領域で6割程度、低画質領域で半分以下にまで縮みます。 大きくて美しい画像を大量に保存したり、ネットワークで送信したりする目的に 適しています。 -------------------------------------------------------------------------------- プログラムの説明 ・ec bmp 画像を圧縮し、独自形式のファイル(拡張子hpc、HPC3形式画像と呼ぶ)を 生成するプログラムです。 ・dc HPC3形式画像を展開して、24bitフルカラーのbmp 画像ファイルを 生成するプログラムです。 -------------------------------------------------------------------------------- ソースの構成とコンパイル方法 圧縮プログラムと展開プログラムのソースは、ecとdcの二つのディレクトリに それぞれ入っています。内容は、C言語のソースとMakefile、および、 圧縮プログラムの設定ファイルconf.txtです。 makeとgccがインストールされている環境で、それぞれのディレクトリで makeを実行すれば、実行ファイルecとdcが生成されます。 -------------------------------------------------------------------------------- 実行ファイルの実行方法 ・ec の使い方 ec [入力ファイル1] [入力ファイル2] ... 入力ファイルはbmp画像です。読み込めるのはwindows用のbmpファイルで 圧縮されていないもののみで、圧縮されているものや、os2用のbmpファイルは 読めません。また、αチャンネルは扱いません。次の種類のbmp画像が読めます。 1bit(モノクロ) 4bit(16色) 8bit (256色) 15bit(3万色) 24bit(フルカラー) 32bit(32bitフルカラー)   複数のbmpファイルを処理させることができます。 h.bmp という名前のファイルを処理した場合、 h.hpc という名前のHPC3形式画像が生成されます。 設定ファイル オプションは設定ファイル(conf または conf.txt)によって指定します。 confとconf.txtが両方あった場合は、confファイルが優先されます。 設定ファイルは、ecと同じディレクトリに存在する必要があります。 設定できるオプションは圧縮強度のみです。 grade 圧縮強度を1から1024までの数字で指定します。 数字が小さいほど、高圧縮&低画質になります。 (例)grade=8 grade値は64分の1単位で指定することができます。 ドット"."の後に添えられた数字の64分の1がgrade値に加算されます。 (例1)grade=16.1 (例2)grade=16.24 例1のgrade値は「16+1/64」、例2のgrade値は「16+24/64」になります。 grade値は0.1から1024.0までの65536段階で指定できます。 その範囲外の値は無効になります。 数字の代わりに、f、h、m、l、あるいは、fine、high、medium、lowと 指定することができます。 f、fine は数字の32 h、high は数字の16 m、medium は数字の8 l、low は数字の4 に相当します。 (例)grade=medium それぞれの画質を直感的に表現すると次のようになります。 fine 原画との差がわからない high 原画との差が目立たない medium 美しさを保っている low 原形を保っている grade値が指定されない場合や無効な場合、grade値は「medium」となります。 ・dc の使い方 dc [入力ファイル1] [入力ファイル2] ... 入力ファイルはHPC3形式画像です。   複数のHPC3形式画像を処理させることができます。 h.hpc という名前のファイルを処理した場合、 h+.bmp という名前のフルカラーbmpファイルが生成されます。 -------------------------------------------------------------------------------- メモリの使用量 ecとdcが作業用として使用するメモリはいづれも、 (画像のピクセル数) * 8 Bytes です。1024*1024 ピクセルの場合、8MB になります。 (実際には、プログラムを実行するために、さらにメモリを数MB使います。) 複数のファイルを処理する場合、ピクセル数が最大のファイルを 処理するのに必要なメモリが、実際のメモリ使用量となります。 仮想メモリでも一応動作しますが、非常に遅くなります。 -------------------------------------------------------------------------------- Bit Map Compressor の過去 現在のバージョン3.02が最終版となる見込みです。 3.01 から3.02 への変更点 (2002年5月) ・圧縮プログラムを改良して圧縮率を少し向上させた。 3.00 から3.01 への変更点 (2001年12月) ・プログラムを改良して性能を少し向上させた。 ・圧縮強度を細かく設定できるようにした。 2.02 から3.00 への変更点 (2001年11月) ・ファイル形式に改良を加えて圧縮率と画質を数%向上させ、  圧縮速度も向上させた。 2.01 から2.02 への変更点 (2001年8月) ・展開プログラムの改良で低画質領域の性能を数%向上させた。 2.00 から2.01 への変更点 (2001年5月) ・展開プログラムの改良で、展開速度を1、2割ほど向上させた。 ・圧縮性能を少し向上させた。 1.02 から2.00 への変更点 (2001年3月) ・ファイル形式の抜本的見直しにより、高画質領域の画質を大きく向上させた。 1.01 から1.02 への変更点 (2000年11月) ・アルゴリズムの改良で高画質領域の性能を数%向上させた。 1.00 から1.01 への変更点 (2000年5月) ・計算精度を上げて画質を3割ほど向上させた。 圧縮ファイルのサイズは1割ほど増えた。 ・おまけプログラムを外した。 0.01 から1.00 への変更点 (2000年4月) ・ファイル形式の抜本的見直しにより、圧縮率を1、2割ほど向上させた。 0.00 から0.01 への変更点 (1999年10月) ・複数のファイルを処理できるようにした。 ・オプションを廃止し、confファイルで圧縮率を指定するようにした。 ・圧縮時にディザつぶし処理をしていたのをやめた。 ・ディザつぶしプログラムを同梱した。 ・実行時の表示を見やすくした。 ・マニュアルをhtml化した。 0.00 公開 (1999年7月) ・とりあえず圧縮、解凍ができるものを試作品として公開。 ・おまけプログラムとして1/2縮小プログラムを同梱。 -------------------------------------------------------------------------------- 今後の予定 バージョン3.xxのファイル形式が最終的なファイル形式になる見込みです。 現在のバージョン3.02がバージョン3.xx形式の最終版となる見込みです。 画像圧縮の極限に達したと判断して、開発は終了しています。 (修正点が見つかれば修正版を出す可能性はあります。) -------------------------------------------------------------------------------- ソースの扱いについて   ・ソースおよびコンパイル生成物を使用するために必要な義務は一切ありません。   ・ソースおよびコンパイル生成物の再配布は自由です。作者に事前にも事後にも    報告する必要はありません。   ・ソースを修正したり、ソースの一部または全部を他のプログラムに組み込んだ    ものを使用したり、配布したりすることに制限はありません。 ・ソースおよびコンパイル生成物の所有や使用によって生じる結果に対して    作者は、一切責任を負いません。   ・作者は、バグフィックス、バージョンアップ等の義務を持ちません。   ・配布されるソースに対して、作者はサポートを行いません。 -------------------------------------------------------------------------------- 問い合わせ nuyakimo@freezone.co.uk ホームページ http://hp.vector.co.jp/authors/VA018074/