Wireless Bitmap (WBMP) フォーマットの概要
Wireless Bitmap(WBMP)は、携帯電話などのモバイル機器向けに設計されたモノクロ画像ファイルフォーマットです。ファイル
拡張子は`.wbmp`で、非常にコンパクトなファイルサイズを実現することで知られています。WBMPは、黒と白の2色のみで画像を表現するため、カラー画像フォーマットであるGIF、
JPEG、PNGと比較してデータ量が大幅に削減されます。このため、通信速度が遅い環境やメモリ容量が限られた機器において、効率的な画像表示を実現できます。
WBMPファイルは、ピクセルの情報をビット列として格納します。黒のピクセルは0、白のピクセルは1で表され、これらのビット列がバイト列に変換されてファイルに保存されます。データの効率化のため、可変長整数表現であるunitvarが用いられる場合もあります。unitvarは、ビット列を7ビットずつに分割し、
最上位ビットを制御することで可変長の整数を表現する手法です。
WBMP ファイルの構造
WBMPファイルは、ヘッダー部と画像データ部から構成されます。
ヘッダー部: ファイルの種類や画像のサイズ(幅と高さ)などの基本情報を記述します。
画像データ部: 画像のピクセル情報をビット列として格納します。各行のピクセルデータは、必要に応じてパディング(0を追加)することで、バイト境界に揃えられます。
ヘッダー部の具体的な内容は、仕様書によって規定されていますが、一般的に画像の幅と高さを示す情報が含まれます。画像データ部は、各行のピクセルデータをビット列として格納し、それをバイト列に変換することで、ファイルに保存されます。
WBMP の具体的なデータ表現
WBMPで画像を表現する具体的な方法を、例を用いて説明します。以下の例では、3x3ピクセルの画像を考えます。
画像データ
行1: bwb
行2: wbw
行3: bwb
ここで、bは黒(0)、wは白(1)を表します。
この画像データをWBMP形式で表現すると、以下のようになります。
オクテット1: 00000000 (WBMP type)
オクテット2: 00000000 (Fixed header)
オクテット3: 00000011 (Width = 3)
オクテット4: 00000011 (Height = 3)
画像データ部の各行は3ビットで表現できますが、バイト単位で処理されるため、パディングが必要です。
オクテット5: 01000000 (行1: bwb + 5ビットのパディング)
オクテット6: 10100000 (行2: wbw + 5ビットのパディング)
*
オクテット7: 01000000 (行3: bwb + 5ビットのパディング)
このように、WBMPはシンプルな構造を持ちながら、効率的にモノクロ画像を表現できるフォーマットです。
WBMPとWAP
WBMPは、
Wireless Application Protocol (WAP)においてモノクロ画像の表示に用いられていました。WAPは、携帯電話などのモバイル機器でインターネットを利用するための通信プロトコルです。WAPは、WBMP以外にもGIF、
JPEG、PNGなどのカラー画像フォーマットをサポートしていましたが、WBMPは低帯域幅環境における画像表示に適していました。
しかし、現在ではモバイル機器の性能向上に伴い、WBMPはあまり使用されなくなっています。より高画質で多様な表現が可能なカラー画像フォーマットが主流となっています。しかし、WBMPのシンプルな構造と効率的なデータ表現方法は、画像データの圧縮技術やモバイル機器におけるデータ処理の基礎として、今もなお参考となる技術です。