diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2008-09-26 09:17:26 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2008-09-26 09:17:26 +0000 |
commit | 69cdb80977fc59e47c24a680fc0c61a3eac0c097 (patch) | |
tree | ca111e9049a1785bf8507161dce88a2233268760 /Master/tlpkg/dviout/GRAPHIC/bmc | |
parent | d3a140feea19858912cc2de406e176ae8ce6c392 (diff) |
dviout moved to tlpkg/dviout; dviout.vbs changed accordingly.
git-svn-id: svn://tug.org/texlive/trunk@10733 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/dviout/GRAPHIC/bmc')
-rw-r--r-- | Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt | 141 | ||||
-rw-r--r-- | Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf | bin | 0 -> 16620 bytes | |||
-rw-r--r-- | Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi | bin | 0 -> 53248 bytes | |||
-rw-r--r-- | Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi | bin | 0 -> 49152 bytes | |||
-rw-r--r-- | Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt | 26 |
5 files changed, 167 insertions, 0 deletions
diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt b/Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt new file mode 100644 index 00000000000..d0319f404d3 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt @@ -0,0 +1,141 @@ + BMC format の仕様 + +BMC は、BMP formatの画像データを、簡単な変換により圧縮したものである。 + +dviout for Windows でのPostScript画像の中間ファイルとして用いるため、 +圧縮や復元の高速性と容易さに主眼が置かれている。 + +もとの画像データは、<width> byte のデータが <height>組、順に並んでいる +とする(たとえば、フルカラー(24bit)BMPファイルの場合、<width> は、画像 +のPIXEL単位での幅の3倍を4の倍数になるように切り上げたものである)。これ +を以下の 1. 2. 3. と変換したものが、BMCにおける画像データである。 + +1. 元の画像データ + +unsigned char image[<height>*<width>]; + +を XOR の演算により + +unsigned char trans[<height>*<width>]; + +に変換する。ただし + +trans[i] = image[i] if i == 0 + = image[i] ^ image[i-1] if 0 < i < <width> + = image[i] ^ image[i - <width>] if <width> <= i < <height>*<width> + +trans[] には、0 というデータが多数含まれていると期待される。 + +2. trans[] の各 byte の上位 4 bit (0 から 15)の頻度を調べ、1 から 15 +のうちで、もっとも現れる頻度の少ないもの K を決定する(簡単化のため、K=5 な +どとあらかじめ決めてしまってもよい)。 + +3. trans[] を、同じデータが何 byte 続くか、という情報でデータ化する。 + +<M N> が、L byte 続くとする。ただし、M, N は 0 から 15 までの数で、 +1 byte(unsigned char) が表す数の上位4bitが M, 下位4bitが N に対応する +ものとする。 + +なお、L >= 0x100000000 のときは、0xffffffff(約 42.9G)以下のブロック +に分割することにより、L < 0x100000000 とする。 + +3.1. L == 1 のとき + M != K ならば <M N> + M == K ならば <K 0><0 N> + +3.2. L == 2 のとき + <M N> == 0 ならば <K 1> + M != K かつ <M N> != 0 ならば <M N><M N> + M == K ならば <K 0><0 N><K 0><0 N> + +3.3. L > 2 のとき + <M N> == 0 ならば <K L-1> if L-1 < 0x10 + <K 0><L-1> if 0x10 <= L-1 <= 0xe0 + <K 0><0xff>S(L-1,2) if 0xe0 < L-1 < 0x10000 + <K 0><0xfe>S(L-1,3) if 0x10000 <= L-1 < 0x1000000 + <K 0><0xfd>S(L-1,4) if 0x1000000 <= L-1 + + <M N> != 0 ならば + M != K かどうかに応じて、<M N> または <K 0><0 N> の後(cf. 3.1) + <K 0><0xde + L> if L < 0x1b + <K 0><0xfc>S(L-1,1) if 0x19 <= L-2 < 0x100 + <K 0><0xfb>S(L-1,2) if 0x100 <= L-2 < 0x10000 + <K 0><0xfa>S(L-1,3) if 0x10000 <= L-2 < 0x1000000 + <K 0><0xf9>S(L-1,4) if 0x1000000 <= L-2 + +ただし、S(X,K) は、X を K byte の整数で表示したもので、上位バイト -> +下位バイトの順。 + +BMC データの全体は、先頭から + +id[2]; // 'B', 'C' ID for BMC +flag[1]; // flag & 1: Not compressed? +key[1]; // <K 0> +bmc_head_size[4]; // address of bmp_head[0] "BM..." +bmp_head_size[4]; // size of BMP header +byte_width[4]; // <width> + +height[4]; // <height> +bit_width[4]; // width by bit +bmc_data_size[4]; // size after "BM..." +f_mode[1]; // used by dviout +bmp_rev[1]; // used by dviout +bmp_on[1]; // used by dviout +bmp_off[1]; // used by dviout + +-- The following top is 0x20 byte from the head -- +name[]; // original filename (zero terminated) +bmp_head[]; // original BITMAPFILEHEADEF + BITMAPINFOHEADER +bmc_data[]; // compressed or original image data + +となる。 + +f_mode[1] & 0xf = 2: 1 PIXEL = 1 bit + 3: 4 bit + 4: 8 bit + 5: 24 bit + 6: 16 bit + 7: 32 bit + +f_mode[1] & 0x10 : Use only Black & White (not gray, no color) +f_mode[1] & 0x20 : Only Black & White but the number of pallets > 2 +f_mode[1] & 0x40 : the number of pallets <= 0x10 ? in 256 color mode + +bmp_rev[1] 0: 0 is white for 2 color mode + 1: 1 is white for 2 color mode +bmp_on[1] : pallet index of white for B & W +bmp_off[1] : pallet index of black for B & W + +--------------------------- 付属資料 ---------------------------------- +epsfdoc(1) : the first page of epsfdoc.dvi A4 size 600dpi B/W +epsfdoc(16) : the first page A4 epsfdoc.dvi size 600dpi/6 gray scale(16 colors) + +\includegraphics*[height=10cm]{golfer} in 300dpi +\includegraphics*[height=6cm]{tiger} in 300dpi + +golfer(256) : 16 colors +tiger(256) : 16 colors +golfer(full) : full colors(24 bit) +tiger(full) : full colors(24 bit) + + + Size of image data files + + BMP BMP+LZH BMP+GZIP BMC BMC+LZH PNG PNG+LZH GIF GIF+LZH +epsfdoc(1) 4378046 189330 190107 204831 148307 204643 197189 291454 291454 +epsfdoc(16) 486838 46648 46976 57062 48486 48208 47451 52497 52407 +golfer(256) 1144286 15458 15294 23932 12369 21401 21294 22643 22643 +tiger(256) 485350 25447 25249 46858 25807 29415 29160 31884 31884 +golfer(full) 3429678 23054 22028 40337 16038 28167 27432 +tiger(full) 1447206 30958 31766 95170 31639 44921 44628 + + + Ratio of compression (%) + + BMP BMP+LZH BMP+GZIP BMC BMC+LZH PNG PNG+LZH GIF GIF+LZH +epsfdoc(1) 100.00 4.378 4.325 4.679 3.388 4.674 4.504 6.657 6.657 +epsfdoc(16) 100.00 9.582 9.649 11.720 9.960 9.902 9.747 10.783 10.765 +golfer(256) 100.00 1.351 1.337 2.091 1.081 1.870 1.861 1.979 1.979 +tiger(256) 100.00 5.243 5.202 9.654 5.317 6.061 6.008 6.569 6.569 +golfer(full) 100.00 0.672 0.642 1.176 0.468 0.858 0.771 +tiger(full) 100.00 2.139 2.196 6.576 2.186 3.104 3.084 diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf b/Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf Binary files differnew file mode 100644 index 00000000000..d0e4dcdad97 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi b/Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi Binary files differnew file mode 100644 index 00000000000..b179324188f --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi Binary files differnew file mode 100644 index 00000000000..9a6a21c3ae4 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt new file mode 100644 index 00000000000..91f2cd2cc2c --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt @@ -0,0 +1,26 @@ + ifbmc.spi + + BMC 対応 Susie プラグイン ver.0.1 + March 18, 1998 (c) Toshio OSHIMA + +竹村嘉人(たけちん)氏製作のSusie32用のプラグインです。 + +dviout for Windows Ver.3.06 は、PostScript画像表示で、Disk Spaceの節約と +dviout での表示の高速化のため、独自のBMC画像フォーマットをサポートしました。 + +ifbmc.spi は、この BMC フォーマットに対応しています。 + +BMC フォーマットについては、付属の bmc.txt をご覧ください。 + +BMP と BMC の相互変換の Win32 用のコマンド版プログラム bmc.exe も付属して +います。 + + + + exbmc.xpi + + BMC 対応 ABC 出力プラグイン + July 8, 2001 (c) Toshio OSHIMA + +ABC Converter(43T氏制作)などに使用可能な BMC フォーマット出力プラグイン +です。bmc.exe も対応しています。 |