+--------------------------------------------------------------------+
|   	TEO Image Format Version 1                       T.Kato      |
|                                                        Y.Mukaigaw  |
|                                                        1997.7.28   |
+--------------------------------------------------------------------+

######################################################################
0. TEO Image Format $B$H$O!D(B

TEO $B%U%)!<%^%C%H$O!"2a5n$N2hA|%U%)!<%^%C%H!"%i%$%V%i%j$NH?>J$+$i!"(B
  1. $B%W%i%C%H%[!<%`$K0l@Z0MB8$7$J$$(B
  2. $BI=<($9$k$?$a$N2hA|$@$1$G$J$/!"2hA|$r07$&8&5f$r9T$&?M$,;H$&$3$H$r(B
     $BA0Ds$K!"MM!9$J7A<0$N2hA|%G!<%?$r07$&$3$H$N$G$-$k%U%)!<%^%C%H$H$9$k(B
  3. $B==J,$K3HD%@-$N$"$k%U%)!<%^%C%H$K$9$k!#(B
$B$H$$$&$3$H$rL\E*$H$7$?$b$N$G$9!#(B

TEO $B$NL>A0$O!"3+H/%a%s%P!<$N=jB0$G$"$k(B, Tsukuba, ETL, Okayama $B$NF,J8;z(B
$B$+$i$H$C$F$$$^$9!#(B

TEO$B%U%!%$%k$O!"B>$N%U%!%$%k%U%)!<%^%C%H$H$N6hJL$rMF0W$K$9$k$?$a!"%5%U%#%C(B
$B%/%9$r(B *.teo$B$K$9$k$3$H$r?d>)$7$^$9!#$?$@$7!"$3$l$O6/@)$G$O$"$j$^$;$s$N(B
$B$G!":.Mp$N$J$$$h$&$KCm0U$7$J$,$i<+M3$KL>A0$r$D$1$k$3$H$,$G$-$^$9!#(B

$B$^$?!"(BTEO $B%U%)!<%^%C%H$K4p$E$/%"%/%;%9%i%$%V%i%j$d%S%e!<%"$J$I$N<~JU%D!<(B
$B%k$O!"JLES3+H/$7$F$$$/$3$H$K$J$j$^$9!#(B


######################################################################
1. TEO Image Format Version 1

TEO $B%U%)!<%^%C%H$O=g$K%X%C%@It!"%G!<%?It!"%U%C%?It$N#3$D$N%Q!<%H$G9=@.(B
$B$5$l$^$9!#$?$@$7!"%U%C%?It$O>JN,$9$k$3$H$,$G$-$^$9!#(B

--------------------------
$B%X%C%@It(B($B%F%-%9%H%G!<%?(B)
--------------------------
$B%G!<%?It(B($B%P%$%J%j%G!<%?(B)
--------------------------
$B%U%C%?It(B
--------------------------

1.1. $B%X%C%@It(B

$B%X%C%@It$O<!$N$h$&$KDj5A$7$^$9!#(B
-----
$B%^%8%C%/%J%s%P!<(B<D>$B%P!<%8%g%s%J%s%P!<(B[<D>#$B%3%a%s%H(B]<CR>
[#$B%3%a%s%H(B<CR>[#$B%3%a%s%H(B<CR> ...]]
$B2#%5%$%:(B<D>$B=D%5%$%:(B[<D>$B%*%U%;%C%H(Bx<D>$B%*%U%;%C%H(By][<D>#$B%3%a%s%H(B]<CR>
[#$B%3%a%s%H(B<CR>[#$B%3%a%s%H(B<CR> ...]]
$B2hAGCM$N7?(B<D>$B2hAGCM$N%S%C%H?t(B[<D>#$B%3%a%s%H(B]<CR>
[#$B%3%a%s%H(B<CR>[#$B%3%a%s%H(B<CR> ...]]
$B%W%l!<%s?t(B<D>$B%U%l!<%`?t(B[<D>#$B%3%a%s%H(B]<CR>
-----

$B"((B<D>:	$B%G%j%_%?!"(B1$B8D0J>e$N%9%Z!<%9(B(0x20)$B$b$7$/$O%?%V(B(0x09)
$B"((B<CR>:	$B2~9T(B(0x0a)



$BNc!'(B5$B!_(B5$B$N%+%i!<2hA|(B
-----
TEO 0 # This is TEO sample.
5 5
# pixel type is unsigned integer.
# pixel size is 8bit.
U 8
# 3 planes [reb green blue], 1 frame.
3 1
(Un~jwtC#93m]7&gV@=$9fJK9
-----

1.1.1. $B%^%8%C%/%J%s%P!<!"%P!<%8%g%s%J%s%P!<(B

$B%^%8%C%/%J%s%P!<$O!"(B0x54 0x45 0x4f $B$N(B 3byte $B$N%G!<%?!#(B

$B"($=$l$>$l%"%9%-!<%3!<%I$G(B 'T', 'E', 'O' $B$K$"$?$j$^$9!#(B

$B%P!<%8%g%s%J%s%P!<$O!"(BTEO $B$N%P!<%8%g%s$rI=$9?t;z$G!"8=;~E@$G$O(B '0'$B$H(B'1'
$B$N$$$:$l$+$,9M$($i$l$^$9$,!"FC$KM}M3$N$J$$8B$j(B '1' $B$rF~$l$^$9!#(B


1.1.2. $B=D%5%$%:!"2#%5%$%:(B
$B=D%5%$%:!"2#%5%$%:$O2hA|$N%5%$%:$G<+A3?t!#(B


1.1.3. $B%*%U%;%C%H(B (Version 1 $B0J9_(B)
$B2hA|$N:8>e$N:BI8$r@0?tCM$GM?$($k!#>JN,;~$O(B 0 0 $B$H2r<a$5$l$^$9!#(B

version 1 $B0J9_$N%U%)!<%^%C%H$G$O!"2hA|$N%*%U%;%C%H$rM?$($k$3$H$,$G$-$^(B
$B$9!#%*%U%;%C%H$O>JN,2DG=$J$?$a!"(Bversion 0 $B$KBP$7$F>e0L8_49@-$,$"$j$^$9!#(B


1.1.4. $B2hAGCM$N7?!"2hAGCM$N%S%C%H?t(B
$B2hAGCM$N7?$O(B U/S/F $B$N$$$:$l$+$NJ8;z$G!"$=$l$>$l(B
U:	Unsigned($BId9g$J$7@0?t(B)
S:	Signed($BId9g$"$j@0?t(B)
F:	Float($BIbF0>.?tE@?t(B)
$B$rI=$7$^$9!#(B

$B$^$?2hAGCM$N%S%C%H?t$O!"3F2hAG$N%G!<%?D9$r%S%C%H?t$GI=$7$^$9!#$?$@$7!"(B
$B%S%C%H?t$O(B 1/8/16/32/64 $B$N$$$:$l$+$H$J$j$^$9!#(B

$BNc$($P!"(B
S 8
$B$J$i$P!"(B8bit $B$NId9g$D$-@0?t$rI=$7!"(B
F 64
$B$J$i$P!"(B64bit $B$NIbF0>.?tE@?t$rI=$7$^$9!#(B

$B%S%C%H?t$,(B 1 $B$N>l9g$OFCJL$G!"7?$K4X78$J$/#2CM%G!<%?$rI=$7$^$9!#(B


1.1.5. $B%W%l!<%s?t!"%U%l!<%`?t(B
$B$=$l$>$l!"<+A3?t$GI=$7$^$9!#(B

TEO $B$O%^%k%A%W%l!<%s!&%^%k%A%U%l!<%`$r%5%]!<%H$7$^$9$,!"$=$l$>$l$N%W%l!<(B
$B%s!"%U%l!<%`$,2?$rI=$9$+$K$D$$$F$OFC$KDj5A$7$^$;$s!#(B

$B$^$?!"3F%W%l!<%s!"%U%l!<%`$N2hA|%5%$%:!"2hAGCM$N7?!"%S%C%H?t$OF1$8$b$N(B
$B$G$J$1$l$P$J$j$^$;$s!#(B


1.1.6. $B%3%a%s%H(B
$B%F%-%9%H%G!<%?!#(B

TEO $B$G$O!"%X%C%@It$K%3%a%s%H$r4^$`$3$H$r5v$7$^$9$,!"3F<o%D!<%k!"%i%$%V(B
$B%i%j$G$O4pK\E*$K$3$l$rL5;k$9$k!#(B

$B%3%a%s%H$H$7$F07$&$N$O0J2<$NFsDL$j!#(B
 1) $B9TF,$,(B # $B$G;O$^$k9T!#$?$@$7!"%X%C%@$N:G=i$N9T$H!":G8e$N9T$K$O%3%a(B
    $B%s%H$rF~$l$F$O$$$1$^$;$s!#(B
 2) $B9TKv$N(B # $B0J9_!#$?$@$7B>$N%X%C%@$H(B # $B$N4V$K$OI,$:(B <D>($B%G%j%_%?(B) $B$r(B
    $BF~$l$^$9!#(B

$B$J$*!"9TF,$,!V(B#%$B!W$G;O$^$k%3%a%s%H9T$OFC<l$J0UL#$r;}$A!"%f!<%63HD%$H$7(B
$B$F;H$&$3$H$,$G$-$^$9!#(B


1.2. $B%G!<%?It(B

$B%G!<%?It$K$O!"3F2hAGCM$r%P%$%J%j%G!<%?$H$7$FF~$l$^$9!#(B
$B%G!<%?$O!"%X%C%@!<It$N%U%l!<%`?t$N$"$H!"2~9T(B(0x0a)$B$N<!$+$i;O$^$j$^$9!#(B

$B%G!<%?It$NBg$-$5$O!"%X%C%@$+$i7W;;$G$-!"(B
-----
$B2#%5%$%:(B $B!_(B $B=D%5%$%:(B $B!_(B ($B%S%C%H?t(B/8) $B!_(B $B%W%l!<%s?t(B $B!_(B $B%U%l!<%`?t(B [byte]
-----
$B$H$J$j$^$9!#(B

$B"(%S%C%H?t$,(B 1 $B$N>l9g$K$D$$$F$ONc30$G!"(B1.2.3 $B$G=R$Y$^$9!#(B


1.2.1. $B%W%l!<%s$H%U%l!<%`$N<h$j07$$$K$D$$$F(B

$BA0$K$b=R$Y$?$h$&$K!"(B TEO $B$G$O3F%W%l!<%s!&%U%l!<%`$,2?$rI=$9$+$K$D$$$F(B
$B$OFC$KDj5A$7$^$;$s!#(B

$B$?$@$7!"(BRGB $B%+%i!<2hA|$N$h$&$K3F2hAG$r%Y%/%H%k$GI=8=$9$k>l9g$O3F%W%l!<(B
$B%s$G%Y%/%H%k$N3FMWAG$rI=$7!"F02h$r07$&>l9g$O3F%U%l!<%`$G;~9o$N0c$&2hA|(B
$B$rI=$9$3$H$r?d>)$9$k!#(B

$B"(%9%F%l%*2hA|$N$h$&$K!"0[$J$k%+%a%i$GF1;~$K;#1F$7$?2hA|$K$D$$$F$OL$Dj(B.

$B"(HFMQ%S%e!<%o$G$O!"FC$K;XDj$,$J$$>l9g!"(B3$B%W%l!<%s$J$i(B RGB $B%+%i!<2hA|!"(B
$BJ#?t%U%l!<%`$J$iF02h$H$7$F2r<a$9$k$3$H$r?d>)$9$k!#(B

$B$^$?!"%G!<%?$r<}$a$k=g=x$,%W%l!<%s$H%U%l!<%`$G0[$J$j$^$9!#%W%l!<%s$K$D(B
$B$$$F$OF1$8:BI8$N%G!<%?$rO"B3$7$F=q$-!"%U%l!<%`$K$D$$$F$O(B1$B%U%l!<%`L\$N(B
$B%G!<%?$rA4$F=q$-=*$C$F$+$i(B2$B%U%l!<%`L\$N%G!<%?$H$$$&=g=x$K$J$j$^$9!#(B


1.2.2. $BJ#?t%P%$%H$N%G!<%?$N<h$j07$$$K$D$$$F(B

$B2hAGCM$N%S%C%H?t$,(B 16/24/32/64 $B$N$H$-!"$D$^$jJ#?t%P%$%H$N%G!<%?$r%U%!(B
$B%$%k$K=q$/>l9g!">e0L%P%$%H$+$i=q$-9~$`J}K!$H2<0L%P%$%H$+$i=q$-9~$`J}K!(B
$B$,$"$j$^$9$,!"(BTEO $B$G$OI,$:>e0L%P%$%H$+$i%U%!%$%k$K=q$-9~$_$^$9!#(B


1.2.3. 1bit $B%G!<%?$N<h$j07$$$K$D$$$F(B

$B2hAGCM$N%S%C%H?t$,(B 1 $B$N>l9g!"3F2hAG$r>e0L%S%C%H$+$i=g$K$D$a$F(B8$B2hAG$G(B 1
$B%P%$%H$H$7$F07$$$^$9!#(B

$BJ#?t%W%l!<%s$N>l9g$O!"%W%l!<%sKh$K(B8$B2hAG$:$D$^$H$a$FJB$Y$^$9!#(B

$B2#%5%$%:$,(B 8 $B$NG\?t$G$J$$>l9g$O!"H>C<$J%S%C%H$rL5;k$7$F07$$$^$9!#(B

$BNc$($P!"2#%5%$%:$,(B 9 $B$N(B1$B%W%l!<%s$N2hA|$N>l9g(B
-----
 1byte $BL\(B    2byte $BL\(B
| 10110101 | 0******* |
* $B$NItJ,$OL5;k(B
-----
$B$N$h$&$K07$$$^$9!#(B

1bit $B$N>l9g$N%G!<%?It$NBg$-$5$O(B
-----
([($B2#%5%$%:(B-1)/8] + 1) $B!_(B $B=D%5%$%:(B $B!_(B $B%W%l!<%s?t(B $B!_(B $B%U%l!<%`?t(B [byte]
$B!&$?$@$7(B [x] $B$O(B floor $B4X?t!#(B
-----
$B$H$J$j$^$9(B

1.3. $B%U%C%?It(B

$B%U%C%?It$K$O!"4pK\E*$K$I$s$J%G!<%?$r=q$$$F$b<+M3$G$9$,!"HFMQ%D!<%k$O$3(B
$B$NNN0h$rL5;k$7$^$9!#(B

$B"($?$@$7(B TEO $B$+$i(B TEO $B$XJQ49$9$k%3%s%P!<%?$G$O!"$3$NNN0h$rJ]B8$9$k$+(B
$B$I$&$+$OJ]>Z$7$J$$!#(B


######################################################################
2. Compressed image

TEO$B%U%!%$%k$r(B gzip$B$K$h$C$F05=L$7$?%U%!%$%k$b!"(BTEO$B%U%!%$%k$H8+$J$7$^$9!#(B
TEO$B%U%!%$%k$O%^%8%C%/%J%s%P!<$K$h$C$FH=JL$5$l$^$9$N$G!"%5%U%#%C%/%9$O(B
*.teo.gz$B$K$J$C$F$$$kI,MW$O$"$j$^$;$s!#$`$7$m!"05=L!?Hs05=L$N$$$:$l$N7A(B
$B<0$b!"(B*.teo$B$H$9$k$3$H$r?d>)$7$^$9!#(B

$B$J$*!"#2=E05=L$J$I$N:.Mp$rKI$0$?$a!"(BTEO$B%U%!%$%k$N05=L!&?-D9$O$=$l$>$l(B
$B%3%^%s%I(B teogzip / teoungzip $B$r;H$&$h$&$K$7$F2<$5$$!#(B

######################################################################
