WBMP画像形式の概要。

携帯電話向けウェブ規格・WAPで用いられている画像形式・WBMP画像形式について解説します。

WBMP画像形式とは。

WBMPとは「ワイヤレス・ビットマップ」の略で、携帯電話向けのウェブ規格・WAPにおいて利用されるべき画像形式として策定されました。

WAP 1.1の仕様が固まるまでは、画像としてはウィンドウズ形式のビットマップが用いられてきましたが、WAP 1.1からはこのWBMPが推奨されるようになりました。

  • 日本国内のWAP 1端末は、WAP 1.1策定前のものなので、WBMP画像には対応しておりません。
    • 正確に言えば、日本のWAP 1端末は、WAP 1.0が策定される前の独自規格に準じたもの(プレWAP)です。しかしながら、WML 1.1などのWAP 1.0の仕様は端末側のサーヴァでフォローするようになっているため、事実上WAP 1.0準拠と言う事になっております。
  • 現在のWAP 2.0でもWBMP画像に対応しておりますが、WAP 2.0ではGIF画像形式なども利用可能になったため、余り用いられる事は無くなったようです。

拡張が可能な画像形式でしたが、実際にはタイプ 0と呼ばれるフォーマットのみが採用されております。

このタイプ 0とは、以下の条件を満たすビットマップ画像です。

  • ピクセル値の 0を黒、1を白とする、圧縮を一切していない白黒画像

WBMPの長所。

WBMPはウィンドウズ形式のビットマップに較べて、ファイルサイズが小さいのが特徴です。

  • ウィンドウズ形式のビットマップの場合、ピクセルデータの最小単位は 4オクテットですが、WBMPでは 1オクテットとなり、その分無駄なオクテットが生じ難くなっております。

WBMP タイプ 0のフォーマット。

WBMP タイプ 0のフォーマットは以下のようになります。

タイプ識別( 1オクテット)
[00]固定です。
ヘッダ( 1オクテット以上ですが、タイプ 0では 1オクテットとなります)
[00]固定です。
横幅(128ピクセルズ未満なら 1オクテットとなります)
高さ(128ピクセルズ未満なら 1オクテットとなります)
画像データ
上から一行毎に、左端ピクセルから順に上位ビットに流し込みます。

右端まで行って残りの下位ビットが空く場合は空きビットは全部 0にして、次の行にはオクテットも改めます。

尚、横幅か高さが128ピクセルズ以上になった場合、ピクセル数を下から 7ビットごとに分割したものを上から順に並べます。

この場合、最後のオクテット以外は最上位ビットを1にします。

例えば、130ピクセルズの場合、二進数で130は1000 0010となりますが、これを 7ビットごとに分割して「1」と「000 0010」の二つ、最後の一つ以外は最上位ビットを 1にするので「1000 0001」「0000 0010」つまり[81][02]の 2オクテットとなります。

  • しかしながら、実際には端末の容量制限が厳しいため(初期の端末は大抵1.4キロバイトくらいしか入れられない)、縦横とも128ピクセルズ以上になる事はまずありません。

参考文献。

WAP WAE Specification (英語PDFファイル)
WAPフォーラム(WAPの仕様を策定する団体で、現在はOMA(オープン・モバイル・アライアンス)の一部門)が発行したWAP 1.1の仕様書で、第六章と巻末にWBMP画像形式の仕様が載っております。