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カードとしては

の2種類を用意しました。 PCカードアダプタとしては、 の2種類を用意しました。

まず、DIGIOとSSFDCカードの相性について。

Fuji 2M		Sega 0.5M
---		---
○		○		DIGIO
DIGIOは、Fujiの2M SSFDCカードとセガの0.5M SSFDCカードのどちらも扱う ことができます。 これは買った日にセガのおにいさんに聞いたとおりだな。

ただし! DS-7/8でフォーマットしたFujiの2M SSFDCカードをDIGIOにつっこんで 使うと、

  1. 撮影は可能
  2. 再生しようとするとエラーになってなにもできない
という状況がおきます。 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へデータを吸いたいならば、現時点では

  1. Fujiの2M SSFDCカードをDIGIOでフォーマットして、
  2. そのカードの上に撮影し、
  3. PCカードアダプタにつっこんでDOS filesystemとしてmountする
という手順が必要です。


データを解析してみる

さて、SSFDCカード上のファイルは sega_001.sj1とかsega_002.sj1とかいうファイル名になっています。 画像を削除したときは番号が詰まります。

このsj1ファイルですが、内容は

となっています。

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のサムネイルってのは異常にちいさく感じますが、 ここはプリクラ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ファイルだ」と 思う程度にヘッダを作ってやる必要があります。 ここでひっかかりそうなのが、

ですね。 適宜実験していきましょう。

DIGIOで他のカメラの画像をみたい

以下の3種の実験を試みました。
  1. 適当なsj1ファイルの先頭2560と、320x240のjpegファイルをくっつけて sj1ファイルをつくる。
    % dd if=sega_001.sj1 of=header count=2560 size=1
    % cat header hoge.jpg > sega_030.sj1
    
  2. サムネイル部のサイズはそのまんまで、嘘のsj1ヘッダをつくってみる。 つまり、sj1ファイル中でjpeg部は2560バイトめからはじまる。
    % cat hoge.jpg | perl gensj1-1.pl > sega_030.sj1
    
  3. サムネイル部を空にして、嘘のsj1ヘッダをつくってみる。 つまり、sj1ファイル中でjpeg部は48バイトめからはじまる。
    % cat hoge.jpg | perl gensj1-2.pl > sega_030.sj1
    
結果からいくと、全部成功です。 すばらしい。

この実験結果から、

ということがわかりました。

そういうことなので、コギャルのみなさんから 「あなたの写真をデジタルフィルムにちょうだい」と言われたら (んなこと言われるかぁ?)、ばっちりキメた写真を高画質デジカメで撮影して、 sj1ファイルを生成して渡しましょう。 素直にDIGIOで撮るより、ずっとかっこいいぞ。

プリント倶楽部IIであそびたい

12/15の日記参照

外で画質検証

画質検証用にお食事を撮りました。 このへんに 12/4に撮ったのがあります。

講評

やっとカメラ上からデータが吸えたので、NTSC出力とカメラ内のデータの画質の 比較検討ができます。 現時点での感想ですが、 というかんじです。

画質以外については、以下が感想かな。

今後の予定としては、暗い/明るいところでの画質調査、 サムネイル部のフォーマット調査、プリクラ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! / voice your concern on manga regulation! Amazon.co.jp associate PSE法反対! [六ヶ所村問題] [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.
Google