« SUPER YASHINONで500系を撮る@田園調布 | トップページ | Micro Nikkor 55mmを刷新 »

2009年12月29日 (火)

続・RawShooterを延命する方法

*10/12/08追記:D7000のRAWをRawshooterで開く方法をアップしております。
あわせてご参照ください。


以前、って、もう2年近く前の事ですが、
このブログで、「RawShooterを延命する方法」と題して、
新しいデジカメのRAWファイルを、
古いRAW展開ソフト「RawShooter」で開く方法を採り上げました。

以来、今でも、RawShooterを検索値とするアクセスが多く、
「軽くて品質が良い」と評判だったこのソフトを、
今でも使いたいと思っている人が多い事が伺えます。

で、そのエントリを自分で読みながら、非常に今更なんですが
書き足りないかな、あるいは書き足した方がいいかな、
と思う事がいくつかあったので、改めて取り上げてみたいと思います。

■「Adobe DNG Converter」最新版に対応させる

僕が前回のエントリをあげたのは2008年3月の事。
当時、Adobe DNG Converterのヴァージョンは4.3.1でした。

その後、新しいデジカメが発売されると共に、
何度もヴァージョンアップを繰り返し、
今では5.6になっていたようです。

しかし、その5.6をダウンロードしてファイルを変換してみたところ、
それまでの方法でファイルを開く事が出来ませんでした。

なんでだろ、と思って、同じRAW(D80なのでNEF)ファイルを、
Ver4.3.1とVer5.6、両方でDNG変換してみたところ、
明らかにファイルサイズが異なり
(あるNEFファイルでは、4.3.1では20MB、5.6では8MBでした)、
はき出されるDNGの仕様が異なっている事が分かりました。

そこで、改めて双方のDNGを、
バイナリエディタで開いて見比べてみます。

※ここでは、定番バイナリエディタ「Stirling」を使ってみる事にします。

まず、4.3.1で変換したDNGのバイナリを覗いてみると、
この辺り↓に「D80」という文字を見ることが出来ます。

Dngpatch_091229_1

一方、5.6で変換した方だと、ここ↓にあります。

Dngpatch_091229_2

DNGPatchでは、ここに書いてある機種名を、
RawShooterで読み込める古いデジイチの機種名に書き換える事で、
「機種偽装」して読み込ませる、というのが根本的な考え方です。
Nikon D80の場合、「D80」の真ん中の数字を「7」に、
すなわち「D70」に見せかけるようにしています。

※D80は1000万画素機種ですから、
ほぼ同じスペックのD200の方が良さそうなもんですが、
機種名と画素数は関連性がない事、
また、文字数が違う事からちと面倒である事もあり、
D70への偽装、となっています。

DNGPatchで、「その文字を、こう書き換えろ」という指示をするには、
「dngpatch.exe」が入っているフォルダの中にある
「settings.xml」をテキストエディタで開き、
書き換える、ないしは書き足す事で編集が可能です。

以下、実例です。

Dngpatch_091229_3

青で囲ったのは、4.3.1で読み込むための設定。
赤で囲ったのは、5.6で読み込むための設定。

文字にするとこうなります。

<body>
<Description>Kennzeichne als Nikon D70</Description>
<Name>Nikon D80(4.3.1)</Name>
<NewString>7</NewString>
<Offset>513</Offset>
<WriteTailingNull>No</WriteTailingNull>
</body>

<body>
<Description>Kennzeichne als Nikon D70</Description>
<Name>Nikon D80(5.6)</Name>
<NewString>7</NewString>
<Offset>669</Offset>
<WriteTailingNull>No</WriteTailingNull>
</body>

Descriptionは、特に動作上の意味はなさそうなんですが、
「何の機種に偽装しようとしています」という宣言みたいなもんです。

Nameは、プルダウンで機種名を選ぶときに表示されるものですから、
自分が分かりやすいように記入しておきます
(この場合、同じD80でも、DNG Converterのヴァージョンが違うよ、
という事を書き記してあります)

NewStringが、先ほど説明した「8を7に書き換える」の部分で、
何に書き換えるかを書くので「7」としています。

そして、これを間違えてはいけないのが、
Offsetの部分で、これは、バイナリのアドレスが、
10進数で何番目になるか、を指定する部分です。

バイナリエディタで、「D80」の中の「8」の数字の部分にカーソルをあわせ、
「検索・移動」メニューから「指定アドレスへ移動」を開きます。

最初は16進数となっているので、それを10進数にしてやると、
「現在のアドレス」として513(4.3.1)や、669(5.6)と表示されます。

Ver4.3.1で変換したDNGの「8」があるアドレス
Dngpatch_091229_4

Ver5.6で変換したDNGの「8」があるアドレス
Dngpatch_091229_5

この、513や669というのがアドレスになるので、
これをOffsetに指定してやるわけです。

今後、DNG Converterのアップデートにより、
更に仕様が変わる可能性もありますので、
その度毎に、こうしてsettings.xmlを書き換えるようにしましょう。

※書き換える時に、元々のxmlのバックアップを、念のために取っておく習慣をつけておきましょう。

■最新機種をRawShooterに適用させる

この論理で、最新のデジイチ(じゃなくてもいいけど)のRAWファイルを、
DNGPatchで書き換えるためのセッティングを用意してみましょう。

例えば、「Olympus PEN E-P1」のRAW(ORF)ファイルを、
RawShooterで読み込むための、DNGPatchの設定をしようとすると、
以下のようになります。

<body>
<Description>Kennzeichne als Olympus E-500</Description>
<Name>Olympus PEN E-P1</Name>
<NewString>500</NewString>
<Offset>752</Offset>
<WriteTailingNull>No</WriteTailingNull>
</body>

この場合、RawShooterに対しては、
「これはE-500で撮ったRAWです」と偽装させる必要があるので、
10進数アドレスの752からの文字列を「500」に書き換えろ、
という意味になります。

他の機種でも方法論は同じなので、
最新のデジイチをRawShooterで読み込めるようになる可能性があります。

■偽装する機種を変える

これはちょっと応用編なのですが、
そもそも、DNGPatchをダウンロードした時点では、
上記のsettings.xmlファイルでは、
「K10DはEOS 350D(日本名「kiss Digital N」)に偽装」、
となっています。

でも、この方法でRawShooterで読み込ませた画像って、
なんかPENTAXらしくない印象がありました。
なので、いまいちK10Dの写りに馴染めませんでした。

ところが、ちょっと試しに、偽装する機種を*ist Dsにするよう、
構文を書き換えてみました。

するとどうでしょう、RawShooterで読み込んだ時に表示される画像が、
PENTAXっぽい感じの色合いに変わるではないですか!

どうも、RawShooter側で、メーカーや機種によって、
異なるアルゴリズムでデフォルトの色、明るさなどが変わってくるようです。

この理屈を逆に適用すると、
Nikonで撮った写真を、あえてCanonの機種名に書き換える事で
RawShooterに、いつもと異なる挙動をさせる、
なんて事も可能かもしれません。
僕は試したことがないですが、興味のある方はどうぞ(他力本願)

■リンクを直しました

前回のエントリの際、
DNGPatchへ貼っていたリンクが正常に繋がっていなかったので、
書き換えました。
英語版のページへの直リンは向こうだったので、
ドイツ語版か英語版かを選択するページへのリンクです。

DNGPatchのアップデート自体は終了している(休止している?)ようなので、
もし、最新のデジイチでRawShooterを使いたい、
あるいはAdobe DNG Converterのアップデートに適応させたい、
と思った場合は、このエントリに書いた方法で各自工夫してみて下さい。

ごっさんは、目下は*ist DsとD80を
(デジイチの)メインカメラとして使っていますが、
ゆくゆくは、K-7ないしK-x、PEN E-P1あたりを導入したいなぁ、と思っています。
今のところ、まだこれらの方法でRawShooterに対応させる事は可能なようです
(今回、E-P1のRAWで試しにやってみたら大丈夫だったんで、正直驚き)。

ただ、例えばK-7の場合、
本体自身でRAW→JPEGへの書き出しができる
(しかも、いろいろ設定を変えたり、その設定を複数のRAWに適応させる事もできる)事から、
やがては、RawShooterに頼らなくてもいい時代がくるのかもしれないな、
と思っています。
その頃までは、しばらくこんな感じで対応させていくことにしましょう。

※素直にLightroomを導入しろ、って声が聞こえてきそう(汗

|

« SUPER YASHINONで500系を撮る@田園調布 | トップページ | Micro Nikkor 55mmを刷新 »

カメラ」カテゴリの記事

コメント

> K10D

あぁ、それはこっちでも把握済み。
「書こうかどうか」と迷ったけど省略してしまった次第。

正確には「絞りAポジションで撮ったorそれ以外」
の違いかな?と。

こちらでは、両パターンのパッチを用意。
2回に分けてパッチかけなきゃいかんけど、
まぁそう大した労力じゃなかろう。

4.3.1の場合の構文はこう。

<body>
<Description>Kennzeichne als PENTAX *ist DS</Description>
<Name>Pentax K10D(A)</Name>
<NewString>*ist DS</NewString>
<Offset>503</Offset>
<WriteTailingNull>Yes</WriteTailingNull>
</body>

<body>
<Description>Kennzeichne als PENTAX *ist DS</Description>
<Name>Pentax K10D(M)</Name>
<NewString>*ist DS</NewString>
<Offset>484</Offset>
<WriteTailingNull>Yes</WriteTailingNull>
</body>

投稿: ごっさん | 2010年1月 1日 (金) 01時10分

おっと肝心なことを忘れていた。

>偽装する機種を*ist Dsに
これには落とし穴があるんだ。

じつはK10DなんかのRAWをDNGに変換した物、
『AFレンズ・AレンズとMFレンズ(レンズ連動ナシ)で構文の構成が違う』のだ。

従って、AFレンズ・Aレンズで撮影したものを基準にした書き換えだと、MFレンズで撮影したDNGが読み込めない。
逆も同様。

何故か、この差分を吸収して「ヘンな機種名」で強引に読めてしまってるのが、EOS350Dでの構文だったりする。
ので、ペンタ仕上げは事実上諦めた。

このへん研究はしてみるが、ずっとこの仕様みたいなんで、K-xも同様だろうなぁ・・・。

投稿: gochi-zoh | 2009年12月31日 (木) 23時04分

RawShooter を使い込んだ身には、Lightroomは色々な意味で耐えられない。
(重い、操作が直感的でなく煩雑、ファイル管理がソフト依存に近いetc...)

K-xへの対応は、現在の撮影行の帰宅後(1/4)に行ってしまう予定。
やっとK-xが本当の意味で第一線で使えるようになる・・・

K-xにA☆85/1.4、破竹の大進撃。向かうところ敵無し!w

投稿: gochi-zoh | 2009年12月31日 (木) 22時58分

コメントを書く



(ウェブ上には掲載しません)




« SUPER YASHINONで500系を撮る@田園調布 | トップページ | Micro Nikkor 55mmを刷新 »