96/11/30: セガSJ-1 DIGIOのファイルフォーマットは?
$Id: index.html,v 1.27 1996/12/16 03:31:23 itojun Exp $
NOTICE
The information provided here expresses personal opinion of Jun-ichiro Itoh
and ESD.
The page does NOT express opinion of employer and other related organizations.
Absolutely no warranty.
If you do something based on this document, result is on your back.
さて、買った日は物資不足で解析しきれませんでしたが、
今日はESDお食事会の前に
喫茶店でちょっとがんばりました。
購入記は11/24の日記参照。
DIGIOの製品情報は
このへんを
どうぞ。
SSFDCカードとPCカードアダプタ
まず、SSFDCカードとPCカードアダプタの相性というかなんというかの問題が
我々の前にたちはだかります。
とりあえず、SSFDCカードとしては
- Fujiの2M SSFDCカード(DS-7/8用)
- セガの0.5M SSFDCカード(DIGIO付属品)
の2種類を用意しました。
PCカードアダプタとしては、
- ハギワラシスコムのPCカードアダプタ(HPC-SSFDC)
- FujiのPCカードアダプタ
の2種類を用意しました。
まず、DIGIOとSSFDCカードの相性について。
Fuji 2M Sega 0.5M
--- ---
○ ○ DIGIO
DIGIOは、Fujiの2M SSFDCカードとセガの0.5M SSFDCカードのどちらも扱う
ことができます。
これは買った日にセガのおにいさんに聞いたとおりだな。
ただし!
DS-7/8でフォーマットしたFujiの2M SSFDCカードをDIGIOにつっこんで
使うと、
- 撮影は可能
- 再生しようとするとエラーになってなにもできない
という状況がおきます。
DIGIOのメニュー構成の場合、カードをフォーマットするには再生モードから
MODEキーを押し込んであげないといけません。
しかし、上記のとおり使いさしのカードをつっこむと「エラーが出て
なにもできない」ため、フォーマットすらできないのだ。
これはひじょーに困りましたね。
これを回避するためには、使いさしのカードが使いさしのカードに見えない程度に
ディレクトリエントリとかFATとかそのへんを破壊して、ブランクの
カードに見える状態にしてからつっこんであげないといけません。
そうするとDIGIOの電源投入時に
「フォーマットしてないカードだね。
フォーマットするかい?」と言われてめでたくカードのフォーマットができます。
フォーマットがどう違うのかはまた追って検証することにしましょう。
つぎ。
SSFDCカードとPCカードアダプタの相性について。
Fuji 2M Sega 0.5M
--- ---
○ × ハギワラシスコムのPCカードアダプタ
○ × FujiのPCカードアダプタ
FujiのPCカードアダプタ、ハギワラシスコムのPCカードアダプタとも
セガの0.5M SSFDCカードをつっこむと、cis tupleが一切読めないとか
IDE的な割り込みが一切来ないとかいう尋常でない状態になります。
Fujiの2M SSFDCカードを入れたPCカードアダプタは、
ちゃんとPC側からATAカードとして見ることができます。
ふるまいが一緒なので、2枚のPCカードアダプタは実は素性が
同じなのではないかと勘ぐるのですが...
ハギワラシスコムのPCカードアダプタについては
「セガの0.5Mは使えない」との回答を貰いました。
FujiのPCカードアダプタについては借りものだったので現在のところ
これ以上追試できません。
PCカードアダプタの相性までクリアすれば、SSFDCカード上には単なる
DOS filesystemが見えています。
あとはやりたい放題、とこういうわけですね。
というわけで。
SSFDCカードからPCへデータを吸いたいならば、現時点では
- Fujiの2M SSFDCカードをDIGIOでフォーマットして、
- そのカードの上に撮影し、
- PCカードアダプタにつっこんでDOS filesystemとしてmountする
という手順が必要です。
データを解析してみる
さて、SSFDCカード上のファイルは
sega_001.sj1とかsega_002.sj1とかいうファイル名になっています。
画像を削除したときは番号が詰まります。
このsj1ファイルですが、内容は
- 512バイトのヘッダ部
- 256バイトのよくわかんない部分その1
- 1536バイトのサムネイルと思われる部分
- 256バイトのよくわかんない部分その2
- 残りは全部320x240のJPEGデータ
となっています。
512バイトのヘッダ部
ここはどの画像ファイルでも一緒。
最初4バイトはマジックナンバですね。
なんとなく数値の意味ありそうな数値が入ってますな。
00000000: 53 4a 50 58 01 00 00 00 00 00 00 00 00 00 00 00 SJPX............
00000010: 53 45 47 41 20 4a 41 4e 55 53 20 50 48 4f 54 4f SEGA JANUS PHOTO
00000020: 53 45 47 41 20 45 4e 54 45 52 50 52 49 53 45 53 SEGA ENTERPRISES
00000030: 01 40 00 f0 00 00 02 00 00 00 0a 00 00 00 00 00 .@..............
^^^^^^^^^^^ ^^^^^^^^^^^
offset for thumbnail
offset for JPEG part
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
256バイトのよくわかんない部分その1
ひたすら0x80 0x00が続きます。
穴うめなのかサムネイルの一部なのか、ちょっとはっきりしません。
穴うめのような気がします。
でも、ヘッダに0x200って値があるのでサムネイルの一部と
考えた方がわかりやすい気も、します。
1536バイトのサムネイルと思われる部分
ここはサムネイルです。
1536バイトのうちオフセットが偶数の部分768バイトについては、
32x24ピクセル、8bppのデータ(32x24 = 768)で緑プレーンか輝度かどっちか
(あまり特徴的なデータを撮影してこなかったのでわからん)のような気がします。
残るオフセットが奇数の部分768バイトについてはよくわからないです。
32x24ピクセルで8bppのような気もするのですが、
カラー画像はやっぱり3プレーンないとはじまらないので、
- 32x24ピクセル、4bppが2枚
- 32x12ピクセル、8bppが2枚
とかなんじゃないかという気もします。
カラーバーみたいなのも撮影してみたんだけど、いまいちわかりにくいでーす。
32x24のサムネイルってのは異常にちいさく感じますが、
ここはプリクラIIでどのコマを印刷するか
決めるときに表示されます。
たしかにちっちゃくて荒いんですが、
プリクラIIはインターレース表示の普通TV解像度な上、
1画面にサムネイルたくさん表示するので
こんな解像度になっているのでしょう。
256バイトのよくわかんない部分その2
ひたすら0x80 0x00が続きます。
「よくわかんない部分その1」と同様、
穴うめなのかサムネイルの一部なのか、ちょっとはっきりしません。
残りは全部320x240のJPEGデータ
ここは単なる普通のJPEGフォーマットのデータです。
320x240で4:3になっているので、サイズをいじくったりする必要はありません。
先頭部分にちょっと怪しいCOMマーカがついてます。
文字列でいくと"V800 JPEG MIDDLE-WARE LIBRARY"ですね。
00000a00: ff d8 ff fe 00 1f 56 38 30 30 20 4a 50 45 47 20 ......V800 JPEG
^^ここから
00000a10: 4d 49 44 44 4c 45 2d 57 41 52 45 20 4c 49 42 52 MIDDLE-WARE LIBR
00000a20: 41 52 59 ff db 00 43 00 02 01 01 01 01 01 02 01 ARY...C.........
^^ここまで
00000a30: 01 01 02 02 02 02 02 04 03 02 02 02 02 05 04 04 ................
sj1ファイルから一般的なフォーマットのファイルを生成してみる
とりあえず、sj1ファイルから
JPEGパートを取り出すperl scriptを用意しました。
よーするに頭2560バイトひっぺがす、というだけのごく単純明解なスクリプトです。
これで吸った結果を貼っておきます。
サムネイルは80x60に縮めただけです。
- もとのファイル:
- sega_001.sj1
sega_002.sj1
sega_003.sj1
- sega_001.sj1
sega_002.sj1
sega_003.sj1
sega_004.sj1
sega_005.sj1
sega_006.sj1
sega_007.sj1
sega_008.sj1
sega_009.sj1
sega_010.sj1
sega_011.sj1
- 出力結果:
-
-
サムネイル部については待て次号。
一般的なフォーマットのファイルからsj1ファイルを生成するには?
一般的な画像ファイルからsj1ファイルを生成するには、
よーは320x240にサイズ調整したjpegファイルを用意して、
それに適当なsj1ファイルから持って来たヘッダをくっつければ
あがりなわけです。
で、sj1ファイルを生成するからにはDIGIOで他のカメラの画像をみたり、
プリント倶楽部IIで遊んだりしたいわけですね。
ということは、DIGIOやプリント倶楽部IIが「これはただしいsj1ファイルだ」と
思う程度にヘッダを作ってやる必要があります。
ここでひっかかりそうなのが、
- サムネイル部は提供しないといけないのか
- JPEG部のCOMマーカ以降は真似しなきゃいけないのか
ですね。
適宜実験していきましょう。
DIGIOで他のカメラの画像をみたい
以下の3種の実験を試みました。
- 適当なsj1ファイルの先頭2560と、320x240のjpegファイルをくっつけて
sj1ファイルをつくる。
% dd if=sega_001.sj1 of=header count=2560 size=1
% cat header hoge.jpg > sega_030.sj1
- サムネイル部のサイズはそのまんまで、嘘のsj1ヘッダをつくってみる。
つまり、sj1ファイル中でjpeg部は2560バイトめからはじまる。
% cat hoge.jpg | perl gensj1-1.pl > sega_030.sj1
- サムネイル部を空にして、嘘のsj1ヘッダをつくってみる。
つまり、sj1ファイル中でjpeg部は48バイトめからはじまる。
% cat hoge.jpg | perl gensj1-2.pl > sega_030.sj1
結果からいくと、全部成功です。
すばらしい。
この実験結果から、
- DIGIOはサムネイル部は見てないらしい。
- DIGIOはjpeg commentも見てないらしい。
- DIGIOの液晶で他のカメラの画像を見ると結構イケるぞ。
少なくともDIGIOで撮った画像よりは綺麗に見えるぞ。
ということがわかりました。
そういうことなので、コギャルのみなさんから
「あなたの写真をデジタルフィルムにちょうだい」と言われたら
(んなこと言われるかぁ?)、ばっちりキメた写真を高画質デジカメで撮影して、
sj1ファイルを生成して渡しましょう。
素直にDIGIOで撮るより、ずっとかっこいいぞ。
プリント倶楽部IIであそびたい
12/15の日記参照。
外で画質検証
画質検証用にお食事を撮りました。
このへんに
12/4に撮ったのがあります。
講評
やっとカメラ上からデータが吸えたので、NTSC出力とカメラ内のデータの画質の
比較検討ができます。
現時点での感想ですが、
- NTSC端子からでる信号は、カメラ内に入ってるデータよりも画質が
落ちる気がする。
NTSC出力を見て落胆するのはまだはやいです。
データを直接吸ってみるとちょっとしあわせな気分になりますね。
- カメラ内に入ってるデータは、この値段でこの画質なら全然許容範囲内。
ちょっとディザっぽい感触になっていること以外は問題なし。
もしかしてこっちで使ってるjpegデコーダのせい?
というかんじです。
画質以外については、以下が感想かな。
- 結構電池食いな気がする。
もう2セットめの電池でバッテリ警告が出つつあります。
買いたてで遊んでいるせいもあるかもしれないけど、LCDちっちゃいわりに
この子は電池eaterです。
- ファインダー内にほこりが入っちゃった!
レンズとLCDの間の空間にほこりが入っちゃいました。
ファインダー覗くたんびに目について邪魔っけです。
なのに、なのに。
分解しないと掃除できそうにありません。
どうしよう。
そもそもこのほこりはどこから入ったんだ?
- sj1ファイルのサムネイル部はいつ何に使うんだろう。
今後の予定としては、暗い/明るいところでの画質調査、
サムネイル部のフォーマット調査、プリクラII向けデータ作成ツール、
などがございます。
乞う御期待。
関連リンクは
このへんからたぐってください。
itojun
hack
ESD
Saturday meeting
Wednesday meeting
Yobichosa
bookshelf
comics
1995:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
1996:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
1997:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
1998:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
1999:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2000:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2001:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2002:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2003:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2004:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2005:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2006:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
2007:
Jan Feb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec
diary update scanner
1
2
3
4
places I frequently visit:
Altavista
PCWatch
comics
LPF
bookmarks
Free Mr.Kaneko! /
[六ヶ所村問題]
[software patent]
[共謀法反対]
Unauthorized reproduction is strictly prohibited unless specially noted.
If you have problem reading the text (KSC5601 with ctext/iso-2022-jp-2
encoding) use
w3m-m17n or mozilla.