96/11/13: 現時点では世界一詳しい! Kodak DC25レポート

$Id: index.html,v 1.31 1996/11/15 14:33:06 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.
English version
はい、こちらがDC25(テスト機)です。 タベルナで半ばの会のときに受け取りました。 受け取った喜びを表現するため、とりあえずぐるぐる撮影してみました:-)

QV-10と並んで記念撮影。 本体のサイズはほとんどQV-10と変わりません。

実験用にコンパクトフラッシュを買ってきました。 10Mbytesカードが30000yen、カードアダプタが2000yenでした。 「また無駄な買物して」と怒られそうですが、 もし実験が不成功に終っても単なるATAフラッシュメモリカードとして 使えるので問題ありません(貧乏に一歩近付くのはかわらないけど)。 結局成功しましたけどね。
ところで、EPSON FlashPacker miniの外箱には、どこにも 「コンパクトフラッシュ規格」という単語がありません。 書いてあるのは「スマートピコフラッシュ」という単語ばかりです。 結局IBM PT110の書籍を立ち読みして、やっとこさスマートピコフラッシュと コンパクトフラッシュは同じだ、ということがわかりました。 わかりにくいぞ。


操作系

撮影する

上面のPOWERスイッチを押すと電源が入り、撮影モードに入ります。 単に撮影モードにしただけだと、LCDモニタは点灯しません。 電池の持ち時間を長くしたいんでしょうね。

画質選択、およびフラッシュモード選択の切替えスイッチは機械式なので とてもわかりやすいです。 これならモードをいちいち忘れられちゃったりする心配はありません。

撮影を行う場合、画像は

格納されます。 結構わかりやすいか。

電源を入れてから撮影readyになるまでの時間はおよそ2.2秒です。 2枚の画像を連続撮影する場合、1枚目のシャッターボタンを押してから 2枚目のシャッターボタンを受け付けるまでの時間はおよそ2.7秒 (フラッシュは当然off、本体メモリへ記録、モニタもoff)でした。

再生する

背面のDISPLAYスイッチを押すと再生モードに移ります。

再生モードでは、ふたつの矢印キー(△と▽)で画像を選択します。 画像の番号づけは非常に特徴的で、 本体メモリとメモリカードを別々にナンバリングし、 両者を連続して表示します。 たとえば、本体メモリとメモリカードに3枚づつ画像が入っていた場合、

<-> メモリ3 <-> メモリ2 <-> メモリ1 <-> 本体3 <-> 本体2 <-> 本体1 <->
のようにまわります。 再生モードにした瞬間はメモリカードの3枚目が表示され、▽を押すと 矢印右方向(メモリカードの2枚目へ)、△を押すと矢印左方向(本体メモリの1枚目へ) の画像が表示されます。 画像の番号は本体メモリかメモリカードかを示すアイコンとともに表示されます。 画像をめくるのに要する時間はだいたい2秒か3秒といったところ。

背面の「□/田」というボタンを押すと(たんぼじゃないんだけどさ)、 画面上に1枚表示するモードと4枚表示するモードを選択できます。

背面のSTATUSボタンを押すと、本体メモリの画像をメモリカードに転送する ことができます。 転送は全てcpじゃなくてmvです。 つまり、転送すると本体メモリの画像は消えちゃいます。 1枚転送または全て転送のどっちかを選べます。

上面のERASEボタンを押すと画像消去ができます。 1枚消去、本体メモリ内全部消去、メモリカード内全部消去の3つが選べます。

転送と消去のメニューの操作がちょっとわかりにくいです。 これは店頭ででも試してみてください。

再生モードに入った状態で上面のシャッターボタンを押すと、 いきなり画像を撮影できます。 撮影が完了すると、いま撮影した画像を再生します。 なんか、モードの概念がよくわからない。

また、再生モードに入った状態でふたつの矢印キー(△と▽)を同時押しすると、 QV-10のようにLCDでプレビューしながら撮影ができます。 画像の書き換えは秒4枚か5枚程度。 プレビュー中は実際撮影される画像よりも荒い画像が出ます。 きっと電池がどんどんなくなるんだろうなあ。

全体に、スイッチの反応はあまりきびきびとはしていません。 でも、ユーザを長いこと待たせるときには、ファインダ脇のBUSYランプがつくので イライラは少ないです。 長いことっていったってたかだか3秒なのですが、BUSYランプがあるとないとで 気分的な違いはひじょーに大きい。


ファイルフォーマット

我々UNIX屋にとって気になるのは、コンパクトフラッシュ上に格納される ファイルのフォーマットです。 ファイルフォーマットが一般的なデジタルカメラ、 または一般的な形式にほいほい変換できるようなデジタルカメラであれば 我々にとって買う意味があるわけ。

DC25の場合、ファイルはルートディレクトリのひとつ下、 dc25imgというディレクトリに格納されています。 たとえばこんなかんじです。

% ls -lg /memdisk
total 4
drwxr-xr-x  1 root  wheel  4096 Nov 13 23:16 dc25img/
% ls -lg /memdisk/dc25img
total 2140
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0001h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0002h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0003h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0004h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0005h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0006h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0007h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0008h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0009h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0010h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0011h.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0012h.k25*
-rwxr-xr-x  1 root  wheel   77888 Dec 31  1979 dc0013s.k25*
-rwxr-xr-x  1 root  wheel  140352 Dec 31  1979 dc0014h.k25*
-rwxr-xr-x  1 root  wheel   77888 Dec 31  1979 dc0015s.k25*
-rwxr-xr-x  1 root  wheel   77888 Dec 31  1979 dc0016s.k25*
-rwxr-xr-x  1 root  wheel   77888 Dec 31  1979 dc0017s.k25*
どうもディレクトリエントリの処理をさぼっているようで、 日付フィールドにはinvalidな値 (日付フィールド0x0000、時刻フィールド0x0000)が 格納されています。 これ、DOSのディレクトリエントリのデコード方式に従ってデコードすると 1980年0月0日、0時0分0秒になります (あれ? 0x0000/0x0000にすると日付ナシだっけ? 忘れちゃったよ)。 どうもBSD/OSのDOSファイルシステムは1日戻して表示したようですね。

ファイル名はHIGHモード(純正ツールだと493x373の画像)だとdc0001h.k25、 STANDARDモード(純正ツールだと320x240の画像)だとdc0001s.k25となります。 途中の画像を削除した場合、番号は詰めません。つまり、途中に抜けができます (本体で見るときには番号飛ばないけどファイル名は番号飛ぶ)。 ファイルサイズとディスク容量から単純計算すると、 10MbytesのコンパクトフラッシュにはHIGHモードで74枚、 STANDARDモードで133枚の画像が入ります。 撮影可能枚数の表示はこれに近いので、 本体はちゃんと10Mbytesのカードだということを認識しています。

ファイルフォーマットは以下のようになっています。

最初から1023byteめまで
ヘッダです。 例えばこんなかんじ:
00000000:  4d 4d 00 2a 00 00 00 08 00 1c 00 fe 00 04 00 00  MM.*............
00000010:  00 01 00 00 00 01 01 00 00 03 00 00 00 01 00 50  ...............P
00000020:  00 00 01 01 00 03 00 00 00 01 00 3c 00 00 01 02  ...........<....
00000030:  00 03 00 00 00 03 00 00 01 5e 01 03 00 03 00 00  .........^......
00000040:  00 01 00 01 00 00 01 06 00 03 00 00 00 01 00 02  ................
00000050:  00 00 01 0e 00 02 00 00 00 08 00 00 01 64 01 0f  .............d..
00000060:  00 02 00 00 00 16 00 00 01 6c 01 10 00 02 00 00  .........l......
00000070:  00 1a 00 00 01 82 01 11 00 04 00 00 00 01 00 00  ................
00000080:  04 00 01 12 00 03 00 00 00 01 00 01 00 00 01 15  ................
00000090:  00 03 00 00 00 01 00 03 00 00 01 16 00 03 00 00  ................
000000a0:  00 01 00 3c 00 00 01 17 00 04 00 00 00 01 00 00  ...<............
000000b0:  38 40 01 1a 00 05 00 00 00 01 00 00 01 9c 01 1b  8@..............
000000c0:  00 05 00 00 00 01 00 00 01 a4 01 1c 00 03 00 00  ................
000000d0:  00 01 00 01 00 00 01 28 00 03 00 00 00 01 00 02  .......(........
000000e0:  00 00 01 31 00 02 00 00 00 12 00 00 01 ac 01 32  ...1...........2
000000f0:  00 02 00 00 00 14 00 00 01 be 01 4a 00 04 00 00  ...........J....
00000100:  00 01 00 00 02 10 82 98 00 02 00 00 00 21 00 00  .............!..
00000110:  01 d2 82 9d 00 05 00 00 00 01 00 00 01 f4 90 03  ................
00000120:  00 02 00 00 00 14 00 00 01 fc 92 09 00 03 00 00  ................
00000130:  00 01 00 10 00 00 92 11 00 03 00 00 00 01 00 01  ................
						     ^^^^^picture#
00000140:  00 00 92 16 00 01 00 00 00 04 01 00 00 00 92 17  ................
00000150:  00 03 00 00 00 01 00 02 00 00 00 00 00 00 00 08  ................
00000160:  00 08 00 08 44 43 30 30 30 31 48 00 45 61 73 74  ....DC0001H.East
00000170:  6d 61 6e 20 4b 6f 64 61 6b 20 43 6f 6d 70 61 6e  man Kodak Compan
00000180:  79 00 4b 4f 44 41 4b 20 44 43 32 35 20 44 49 47  y.KODAK DC25 DIG
00000190:  49 54 41 4c 20 43 41 4d 45 52 41 00 00 00 00 48  ITAL CAMERA....H
000001a0:  00 00 00 01 00 00 00 48 00 00 00 01 44 43 32 35  .......H....DC25
000001b0:  20 43 61 6d 65 72 61 20 56 31 2e 31 00 00 30 30   Camera V1.1..00
000001c0:  30 30 3a 30 30 3a 30 30 20 30 30 3a 30 30 3a 30  00:00:00 00:00:0
000001d0:  30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  0...............
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 28 00 00 00 0a 30 30 30 30  .......(....0000
00000200:  3a 30 30 3a 30 30 20 30 30 3a 30 30 3a 30 30 00  :00:00 00:00:00.
00000210:  00 11 00 fe 00 04 00 00 00 01 00 00 00 00 01 00  ................
00000220:  00 03 00 00 00 01 01 ed 00 00 01 01 00 03 00 00  ................
			     ^^^^^x axis size (493)
00000230:  00 01 01 75 00 00 01 02 00 03 00 00 00 01 00 08  ...u............
		 ^^^^^y axis size(373)
00000240:  00 00 01 03 00 03 00 00 00 01 00 01 00 00 01 06  ................
00000250:  00 03 00 00 00 01 80 23 00 00 01 11 00 04 00 00  .......#........
00000260:  00 01 00 00 3c 40 01 12 00 03 00 00 00 01 00 01  ....<@..........
00000270:  00 00 01 15 00 03 00 00 00 01 00 01 00 00 01 16  ................
00000280:  00 03 00 00 00 01 01 75 00 00 01 17 00 04 00 00  .......u........
			     ^^^^^y axis size(373)
00000290:  00 01 00 01 e8 00 01 1a 00 05 00 00 00 01 00 00  ................
		       ^^unknown, differs by mode
000002a0:  02 e2 01 1b 00 05 00 00 00 01 00 00 02 ea 01 1c  ................
000002b0:  00 03 00 00 00 01 00 01 00 00 01 28 00 03 00 00  ...........(....
000002c0:  00 01 00 02 00 00 82 8d 00 03 00 00 00 02 00 02  ................
000002d0:  00 04 82 8e 00 01 00 00 00 08 00 00 02 f2 00 00  ................
000002e0:  00 00 00 00 00 48 00 00 00 01 00 00 00 48 00 00  .....H.......H..
000002f0:  00 01 01 04 05 03 04 01 03 05 00 00 00 00 00 00  ................
00000300:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000310:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000320:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000330:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000340:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000350:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000003a0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000003b0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000003c0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000003d0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000003e0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000003f0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
なんか日付のつもりのようなものとか、いろいろ見えますね。 意味のわかってるところだけはコメントいれときました。
1024byteめからa-1 byteめまで
80x60x3 bytesのサムネイルが入っています。 各バイトは赤緑青、すなわちR G Bの意味になっています。 この部分を取り出すのははっきり言って簡単です。 とりだすためのperl scriptをつけときます。 なにもエラーチェックないので気をつけてね。
a byteめからファイルのしっぽまで
aの値はHIGHモードだと15936、STANDARDモードだと15680です (aの値は推測です。 ほんとはもうちょっと手前だったりもうちょっと先だったりするかもしれない。 けど、検証する手段がないのです...) ここから先は、CCDを読み出したデータがそのまま格納されています。 このへんの事情についてはDC20/ES1000と同様なので、 このへんとか このへんを参照。 Ye/Cy/Mg/G形式になっています。 HIGHモードのファイルの場合512x243(2x2ピクセルのユニットが256x121)、 STANDARDモードの場合256x243(2x2ピクセルのユニットが128x121)かな。 これを変換するために、Cソースを用意してあります。 HIGHモードとSTANDARDモード、どっちのファイルも処理できます。 当然ながら、アスペクト比の調整(x:y = 4:3にする)は必須です。
変換のための手順を以下に示します。
サムネイルを生成する
perl k25getthumb.pl < dc0001h.k25 | cjpeg > dc0001h.thumb.jpg
perl k25getthumb.pl < dc0001s.k25 | cjpeg > dc0001s.thumb.jpg
画像を得る
k25toppm < dc0001h.k25 | pnmscale -xsize 500 -ysize 375 | cjpeg > dc0001h.jpg
k25toppm < dc0001s.k25 | pnmscale -xsize 321 -ysize 241 | cjpeg > dc0001s.jpg
結果としてこんなふうになります。 ちなみに、これらを撮影するときにはフラッシュは一度も焚いていません。 後述しますが、テスト機での撮影、かつ 純正ツールを使ったわけではないし、 k25toppmのアルゴリズムの問題もあるような気がするので、 画質については言及しません (k25getthumb.plで取りだしたサムネイルの方が色が綺麗。 k25toppmの出力は黄ばんでいる気がする)。
もとのファイル(HIGHモード)
dc0001h.k25 dc0002h.k25 dc0003h.k25 dc0004h.k25 dc0005h.k25 dc0006h.k25 dc0007h.k25 dc0008h.k25 dc0009h.k25 dc0010h.k25 dc0011h.k25 dc0012h.k25 dc0014h.k25
もとのファイル(STANDARDモード)
dc0013s.k25 dc0017s.k25
結果(HIGHモード)
結果(STANDARDモード)

画質

今日もいろいろ画像を撮ったのですが、 その画質については現在てもとに純正吸い上げキットを使える環境がない、 またこれはテスト機だ、ということで特に講評しません。 k25toppm.cで変換したのを評価されるのはKodakにとって理不尽だろうから。 宗教上windowsは使えないのに、このテスト機にはwindows用TWAINドライバしか ついてこなかったのであった。

純正吸い上げツールで吸った画像は 11/9のお食事会スナップでみてください。 ただし、これも同じテスト機なので商品版とは違う可能性があります。 STANDARDモードの画像が結構荒れているように見えますが、きっとこれは CCDから吸ったデータ(2x2ピクセルのユニットが128x121)を 伸ばして使っているからでしょう。 HIGHモードなら問題ないですね。


まとめ

DC25、結構かわいいです。 気に入りました。
純正ツールを使わず綺麗な画像ファイルを得るには後処理が ちょっとむずかしそうですが、 とりあえずメモリカード経由で画像を吸い出せますし、 ボディはコンパクトで気軽に持ち歩けます。 連続撮影のときの時間とか、電源投入時の待ちとかが短いのもいいですね。

僕とESDメンバの 用途の場合(註: レストランでのお食事撮影)、 もうすこしフラッシュなしの暗いところでの撮影に強いといいかな? と思いました。 結構いいセンいってますが、QV-100とかQV-10には勝てるけど、 DC-2とかDS-7には負けている気がします(DC-2が異常?)。 あと、50cmより近いところにはピントがあわないので(ってどっかで読んだ)、 お料理どアップは辛いですね。 実際撮影してみてもピントがあうのはせいぜい皿全景(?)までになっちゃいます。

関連リンクは このへんからたぐってください。


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