Adding Support for New Raw Formats/jp: Difference between revisions

From RawPedia
Jump to navigation Jump to search
(”新しいRaw形式のサポートを追加する”の書き直し)
Line 48: Line 48:
*RawTherapeeをインストールした際に貴方のシステムに保存されたcamconst.jsonファイルの中
*RawTherapeeをインストールした際に貴方のシステムに保存されたcamconst.jsonファイルの中


 これら3か所から情報を捜しますが、<code>canconst.json</code>からの情報が他に優先します。
 これら3か所から情報を捜しますが、<code>camconst.json</code>からの情報が他に優先します。

Revision as of 04:58, 20 November 2018

新しいRaw形式のサポートを追加する

イントロダクション

 raw形式をサポートするためには、一般的に2つの条件を満たす必要があります:

  • 一つはそのrawファイルのデコードが可能なこと。可能なことでプログラムがrawファイルに保持されている画像データとメタデータを読むことが出来ます。RawTherapeeに埋め込まれている“dcraw”によってそれが行われます。
  • もう一つはそのraw画像データの解釈が可能なこと。このことは更に複数の項目に分けられます:
    • デコードされた画像データからブラックレベルとホワイトレベルを測ることが出来る。カメラ機種によってブラックレベルとホワイトレベルが異なるからです。以下でこの点を更に説明します。
    • 画像として有効なデータの領域を決めることが出来る-rawデータの枠取りをするためです。
    • 色情報を正しく解釈することが出来る。これは、“DCPカラープロファイルの作り方”で説明されているように、入力カラープロファイル(DCP或いはICC)を作成することで行います。

 これらのことを知るために貴方に写真を撮ってもらう必要がありますが、データの計測原理の理解や、データ計測を実行してもらう必要はありません。それらは私たちが行います。

 ブラックレベルやホワイトレベルとは何でしょう?カメラの撮像センサーはフォトサイト或いはセンセルと呼ばれる何百万ものエレメントから成り立っています。各フォトサイトはそこに入射する光の量を計測し、数値でそれを記録します。光の量が多ければ数値は大きくなります。rawファイル全体がこれら数値の集まりです。しかし、光に対するフォトサイトの感度には限界があります。光が入射していても、それらが弱すぎると数値として記録できません。これをブラックレベルと呼びます。但し、常に0になるという訳ではありません。一方、ある一定量より多くの光が入射してもフォトサイトがその量の違いを記録できなくなるレベルをホワイトレベルと呼びます。フォトサイトが一定以上の明るさを記録出来なくなることを、完全な飽和状態と言い、後処理においてクリッピングと呼ばれる状態です。

 カメラ機種によっては他の設定に関わらず同じブラックレベルとホワイトレベルを使うものがありますが、通常、カメラのそれらレベルは他の要素、例えばISO感度次第で変化します。よってそのカメラの色認識を理解するためには各ISO値でそれらレベルがどうなるかを知るための画像が必要となります。

 また、カメラの中には、LENR(Long Exposure Noise Reduction)と呼ぶノイズ低減機能が備わっている機種がよくあります。これもブラックレベルやホワイトレベルに影響することがあります。機能を有効にすると、典型的には露光時間が1秒を超えた時に作動します。何時その機能を有効、無効にするのかについては、以下で更に説明します。

 ホワイトレベルが絞りの大きさで変化するカメラもあります。しかし、一般的に絞りを大きく開いた時だけ作動する機能なので、変化の問題を避けるため、断わりが無い限りは絞りf/5.6以上に絞って撮影を行うようにします。

何をどの様に撮るか

 raw形式の写真をマニュアルモードで撮影します。サイズの異なるraw形式写真を撮ることの出来るカメラであれば、最も大きいサイズで、切り抜きをせず、可能ならば圧縮せずに撮影します。

 各写真をフレーム内全ての部分で完全に露出過多になるように撮影します。この様な撮影を行うと画像全体が白一色になるので何を撮影しても同じですが、簡単な方法としてはカメラを空や白色バルブに向けて撮影します。空が晴れていても曇っていても構いませんが、太陽に向けて撮るのはセンサーが壊れる可能性があるので避けた方がいいでしょう。また、どのレンズで撮っても構いませんが、画像全体を露出過多にするのですから広角レンズを使わない方が簡単です。

必要な写真のセット

 先ほど撮影する画像の条件を3つ述べましたが、これは提供するサポートの質を高める目的からですが、貴方にとっても私たちにとっても手間がかかるものです。通常、多くの場合、次に示す最初の2セットの写真があれば十分です。

 写真のセット:

  1. 貴方のカメラにLENRが備わっている場合、初めにその機能をオフにします。絞りをf/5.6、或いはそれ以上に設定し、一連の写真撮影を行います。貴方のカメラが持つ各ISO値で一枚ずつ撮ります。但し、どの撮影でも露光時間が1秒を超えないようにします。例えば、貴方のカメラがISO値、100、200、400、800、1600、3200、6400、12800をサポートしていれば8枚の写真を撮影することになります。ただ、カメラの多くは中間的なISO値160、或いは320もサポートしているので、ホワイトレベルの計測値をより精密に求めたいのであれば、これらのISO値でも写真を撮ります。
  2. 貴方のカメラにLENRが備わっている場合、次にそれをオンにして上記同様に一連の写真撮影を行います。但し、今度は露光時間が最低2秒以上になるように撮影します。これで新たに8枚の写真を撮ることになります。以上、1と2の2セット写真があれば十分でしょう。
  3. カメラの中には絞りを大きく開いた際に、raw値を削る処理を行う機種があります。特にキャノンやニコンの機種に多いようです。カメラにその機能が備わっているかどうかを知るには、写真を撮って計測するしかありません。例えば、ISO値100でLENRをオフにし、レンズを開放値、f/1.7にして写真を撮り上記の写真と共に私たちに送ってもらいます。もしもraw値が削られていることが分かれば(或いは貴方自身が計測してそれを発見したら)、貴方に再び写真撮影を行ってもらうことになります。露光時間1秒以下、絞りを開放から1/3刻みで撮影し、raw値を削る処理が行われないポイントを探ります。従って、沢山の写真撮影が必要になります。しかし、絞りを大きく開いたときに起こるこの問題は差ほど重要ではありませんので、貴方のカメラにその機能が備わっていたとしても、無視することが出来ます。ただ、時間と余裕があれば調べてみるのもいいでしょう。

 必要最小限の条件を満たすためにも、上記1で約8枚の写真撮影が行われることになります。ポイント1と2の条件を満たす16枚以上の写真、更にraw値が削られてしまうかどうかを確認するためのポイント3の1枚の用意を奨めます。raw値が削られることが分かれば、ポイント3で説明したように更に写真を撮ることもできますが、それには多くの写真(50枚以上)を撮ることになるので無理は言えません。

 これら写真を全て圧縮してfilebin.netにアップロードし、そのリンク先をGitHub或いは当Forumを通じて私たちに送って下さい。

 完全に飽和した画像は驚くほど圧縮出来ます。アップロードする前に画像ファイルを圧縮(7-ZIP, ZIP, bzip2などで)することをお忘れなく。例えば、Sonyの7M2でLENRをオフにして撮影した完全に飽和したrawファイル10枚のサイズは234MBにもなりますが、ZIPで圧縮するだけで1MBのファイルになります。

更なる情報

 必要な写真の詳細やどの様に計測するかに関する詳細を知りたい場合は、camconst.jsonファイルの中のコメントを参照して下さい。 https://github.com/Beep6581/RawTherapee/blob/dev/rtengine/camconst.json

この情報の保存と読み込み

 RawTherapeeが起動すると、画像データ(ブラックレベルとホワイトレベル、その他の詳細情報の幾つか)をどの様に解釈するのか、以下の3か所から捜します:

  • RawTherapeeに埋め込まれているdcrawコードの中
  • rawファイルの中
  • RawTherapeeをインストールした際に貴方のシステムに保存されたcamconst.jsonファイルの中

 これら3か所から情報を捜しますが、camconst.jsonからの情報が他に優先します。