/////////////////////////////////////////////////////////////////////////////// Pi 16色 グラフィック・ローダ/セーバ 解説版 (2nd Edition) '91-3-24 copyright 1990,91 (c) やなぎさわ PC-VAN : LVB06263 UNCLE : UNC10103 IIDAあっぷる : IAN00159 Niftyサーブ : NCD01745 /////////////////////////////////////////////////////////////////////////////// この資料は、私が作成した16色グラフィック圧縮「Pi」のフォーマット資料です。 ============================== はじめに ======================================= ・画像圧縮は圧縮方法の解説がなされないケースが多く、これは大変残念に思っていま す。やはり進歩すべきです、その為にPiの詳細なフォーマットをここに示します。 この資料が移植者の助け及び画像圧縮に興味がある人の参考になれば幸いです。 ================================ 呼称 ========================================= Piは「パイ」と読みます。これはPICよりC(olor)が少ないからです。 ============================== ヘッダー =======================================  ファイルのヘッダ-は次のようになっています。若干冗長さも感じますが別に問題と 言うほどでもないでしょう。始めはPICに揃えようかとも思いましたがなんとなく 変えてみました。 ファイルの先頭から (特にことわりが無い限り数値は10進表記でBigEndianです) 'P' 1byte Piであることの印です。 'i' 1byte 26以外 任意byte コメント部 (展開時に表示されます) 26(EOF) 1byte コメントの終わりを示します。 0以外 任意byte ダミー 0 1byte 真のコメントの終わり。 (上のEOFを読んだ後 0まで読み飛ばす) これはコメントをDOSのコピーコマンドで結合し た時EOF付き/無しに関わらず動作するためです。 0 1byte モード bit7(msb)が1の場合はパレットデータが省略されて いることを示します。この時はデフォルトパレット が使用されます。これはVAの256色データの時 パレットデータが大きくなり過ぎないために導入し ました。 bit0~6は今のところ0です。 n 1byte 画面比率データです。 m 1byte 縦方向に対して n / m 倍するとドットが ほぼ正方形になることを示します。 どちらかが0の場合は n/m=1とします。 普通は両方とも0です。 4 1byte プレーン数です。 現在4(16色)と8(VA・256色)が有ります。 なお8色は16色で対応します。 'X68K' 4byte セーバの機種を埋め込みます。例えば 'PC98' 等 とします。またこれは次の機種ユニークな情報の 内容がこの機種用である事を示します。 s 2byte 次の機種予約エリアのバイトサイズです。 x s byte 上の予約エリアサイズだけ付加情報が入ります。 内容はセーバの作者の自由ですが画像が展開が 出来なくなるような情報を入れてはいけません。 640 2byte X方向のサイズです。(1ドット単位可変) 400 2byte Y方向のサイズです。(1ドット単位可変) p 1*3*16byte モードでデフォルトパレット使用の場合はパレット データはありません。 パレット情報でパレット番号0より15まで順に さらに各々はRGB順に各1バイトで示します。 (0:rgb) -> (1:rgb) -> (2:rgb) ... 1バイト内は上位に詰めるようにします。 X68Kの場合は輝度を含め各6ビットですので。 (msb) 76543210 (lsb) xxxxxx00 4096色の機種の場合は各4ビットですので。 (msb) 76543210 (lsb) xxxx0000 となり。これで1600万色中16色となります。 (プレーンが8の場合は256色分あります) (本当は余りのビットを0にしない方が良いかも知れ ません。0の時は0だけどmaxの場合に余りを0 で埋めると、よりパレットのビットが多い機種だと maxになりません。例えばセーブする機種のパ レットがnビットの場合は。パレットPは ( P * (1<<8 -1) / (1<|< r >|| 3 3 2 g/r/b はそれぞれ緑・赤・青を示しています。 ○デフォルトパレットを使用しない場合 ・16色と同じでRGB各1バイトで256個パレットテーブルが有ります。 ============================== 資料の転載 ===================================== ・この資料の著作件は主張しますが、転載はPiと同様に完全に自由とします。 =========================== 移植希望者へお願い ================================ ・出来れば始めに私に一言下さい。 (同一機種に複数の移植者は出来れば避けたい) ・私がダウンロード出来るところへUPお願いします。(UPした事の連絡も下さい) ・私に転載許可を下さい。(連絡はします) ・フォーマットを勝手に変更するのは、やめて下さい。 ・機種予約エリアの使用内容を私に公開して下さい。 ・移植情報を公開する事の許可を下さい。 ・オリジナルの作者として私の事を一言どこかに書いて下さい。 ・その他は自由とします。(著作件はもちろん移植者にあります) ・以上の条件を満たした者を正式移植者とします。 ・VAの256色/サイズ可変はオプショナル仕様とします。最低640x400/16色のサポート をすればPiとして成立します。 ・あと希望として使用転載条件は出来るだけ緩くして下さい。 上記に反して移植をされても別に問題にするつもりは有りませんが,原作者の希望です ので尊重しましょう(^^) ================== 現時点のPiの動作機種及び著作者 =========================== ・X68000版  (c) やなぎさわ ・PC98シリーズ版 (c) JUNTA氏/LOCKE氏 ・PC88VA版 (c) LOCKE氏  他にX-WINDOW版も(手抜きだし・機種依存もしてるけど :-)有ります。 (会社のHP9000/300で動いています :-) ================================= 最後に ====================================== ・当資料は間違いが無いように注意して書きましたが、間違いが無いとは言えません。  その場合の責はご容赦下さい。 ・フォーマットに関する質問には可能な限り答えたいと思います。不明点などありまし  たら連絡お願いします。 以上 [EOF]