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

From RawPedia
Jump to navigation Jump to search
No edit summary
 
mNo edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span style="color: #000000; background: none; overflow: hidden; page-break-after: avoid; font-size: 2.0em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0.25em; line-height: 1.3; padding: 0; border-bottom: 1px solid #AAAAAA;">新しいRawフォーマットを追加する </span>
<div class="pagetitle">新しいRaw形式のサポートを追加する</div>


 RawTherapeeに新しい形式のrawファイルを正確にサポートするための情報を追加するのは簡単です。自分で行うことも出来ますし、新しい形式で撮影した画像を送ってもらい、私達が必要なデータを計測して、そのカメラのサポート情報を追加することも出来ます。
== イントロダクション ==
 新たなraw形式をサポートするためには、以下の条件を満たす必要があります:
*そのrawファイルのデコードが可能なこと。それによりrawファイルに保持されている画像データとメタデータを読解することが出来ます。RawTherapeeに埋め込まれている“dcraw”、或いはカスタムコードによってその処理が行われます。
*そのraw画像データの解釈が可能なこと。このことは更に複数の項目に分けられます:
**デコードされた画像データからホワイトレベル(場合によってはブラックレベルも)を計測します。カメラ機種によってホワイトレベル(場合によってはブラックレベルも)が異なるからです。ホワイトレベルは“ホワイトフレーム”と呼ばれる写真で計測します。
**Rawデータの中のどこが実際の画像なのか特定します-“rawクロップ”と呼ばれる処理です。
**実際の色を再現するための”入力プロファイル“を作成します。


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


 rawファイルを正しく読み込むためには、プログラムがそのファイルに関して何点か知っておく必要がありますが、RawTherapeeはそれらを以下3つの情報源から探します:
=== この情報の保存と読み込み ===
 
 RawTherapeeが起動すると、画像データ(ブラックレベルとホワイトレベル、カラーマトリクス、その他の詳細情報の幾つか)をどの様に解釈するのか、以下の3か所から捜します:
*埋め込まれているdcrawコードから
* RawTherapeeに埋め込まれているdcrawコードの中
*その新しいraw画像から
* rawファイルの中
*或いは、camconst.jsonと呼ばれるテキストファイルから
*RawTherapeeをインストールした際に貴方のシステムに保存されたcamconst.jsonファイルの中


 これら3つの情報源から集めた情報の中で最も重要なのがcamconst.jsonです。集めた情報の中で重複しているものがある場合は、camconst.jsonの情報を優先します。camconst.jsonは、メーカーと機種に関し、カラーチャンネル、ISO値、絞り値の組み合わせで、以下のデータを設定できるからです:
 情報はこれら3カ所すべてから集められますが、他の情報に比べ、<code>camconst.json</code>からの情報が優先されます。但し、[[Color_Management/jp#入力プロファイル|入力カラーマトリクス]]の情報は、次の条件を満たすExifタグからの情報が優先されます。そのrawファイルがDNG形式で、<code>Software</code>Exifタグ(<code>0x0131</code>)が“Adobe DNG Converter”という文字列から始まらず、<code>ColorMatrix2</code>タグを持っていない場合です。


*dcraw形式による、[https://ja.wikipedia.org/wiki/D65 D65光源]のカラーマトリクス
 RawTherapeeの実行中に、<code>camconst.json</code>に変更が行われた場合、それを実行するためにはプログラムの再起動が必要です。
*ホワイトレベルとブラックレベル
*偽の列と行を取り去るためのクロップマスク


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


=== 必要な画像 ===
 ホワイトレベルは、完全に露出過多な“ホワイトフレーム”と呼ばれる写真を使って計測します。


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


#画像のどの部分も完全に露出オーバーになっている写真を撮ります。カメラを明るい光源(例えば、空、ランプなど)に向けて撮影を行います。必要であれば、ズームを使い、画像の全ての部分が露出オーバーになるようにします。もちろん、撮影形式はrawで行います。貴方のカメラが、複数サイズのrawで撮影できる場合は、最も大きいサイズを選び、切り抜きはせず、可能ならば非圧縮を使います。
 また、カメラの中には、LENR(Long Exposure Noise Reduction)と呼ぶノイズ低減機能が備わっている機種がよくあります。これもブラックレベルやホワイトレベルに影響することがあります。機能を有効にすると、典型的には露光時間が1秒を超えた時に作動します。何時その機能を有効、無効にするのかについては、以下で更に説明します。
#貴方のカメラにノイズリダクション機能が付いている場合はそれをオフにして、上記の写真を撮ります。絞りf/8を使い、貴方のカメラが設定できる各ISO感度で、露出時間が0.5秒を越えないように撮ります。例えば、最近の一般的なカメラであれば、ISO100、ISO200、ISO400、ISO800、ISO1600、ISO3200、ISO6400、ISO12800の8枚が撮影できると思います。
#次にノイズリダクション機能をオンにして1と同様に8枚撮影します。但し、今度は絞りf/5.6を使い、最低2秒以上の露出時間で撮ります。
#カメラによっては、絞りが大きく開かれるとrawの値を補正する機構が付いているものがあります、特にキャノンやニコンのカメラに多いようです。貴方のカメラにそうした機構が備わっているかどうか正しく知るには、写真を撮って計測するしかありません。絞りを開放(例えばf/1.7)にしてISO100でノイズリダクションをオフにして写真を撮り、上記1,2の写真と共に送ってもらいます。もしrawの値が補正されていることが分れば(或いは、貴方自身が計測して、それが分かったのであれば)、更に各ISO値で、露出時間0.5秒以下、開放値から1/3刻みの絞りで撮影した写真を送ってもらい、どの絞りまで開かれると補正機構が働くかを確認します。これはその確認のためには多くの写真撮影が必要になるということを意味します。しかし、絞りが大きく開かれるとrawの補正が行われてしまうことは差して重要な問題ではないので、悩む必要はありません。補正機構が付いていることが分っても、この作業が必ず必要ということもありません。ただ、時間と余裕があれば確認するのがいいでしょう。


 最低限、1で説明した写真8枚が必要ですが、2で説明した写真8枚、計16枚の写真と3で説明したrawの補正が行われているかどうかを確認するための写真1枚を撮ることを奨めます。補正が行われていることが確認されれば、更に3で説明した一連の写真を追加的に揃えることになりますが、かなりの枚数(例、50枚以上)になるので、無理は言えません。そして、それら写真全てを圧縮し、[https://filebin.net/ filebin.net]にアップロードして、そのリンクを[https://github.co.jp/ Github]のページか、当フォーラムに送って下さい。
 ホワイトレベルが絞りの大きさで変化するカメラもあります。しかし、一般的に絞りを大きく開いた時だけ作動する機能なので、変化の問題を避けるため、断わりが無い限りは絞りf/5.6以上に絞って撮影を行うようにします。


 完全に飽和した画像は驚くほど高い圧縮が可能ですので、アップロードする前にファイルの圧縮(7‐Zip、ZIPなどで)をお忘れなく。例えば、Sony7M2で撮影した、完全に飽和した長時間露出、ノイズ低減機能オフの画像は10枚で234MBの大きさになりますが、ZIPを使えば1MBまで圧縮できます。
 必要な写真及びデータの計測方法に関する詳細情報は、<code>camconst.json</code>ファイルの中のコメントを読んで下さい:


=== 詳細 ===
 https://github.com/Beep6581/RawTherapee/blob/dev/rtengine/camconst.json


 正式なドキュメント、必要とされる写真の詳細、そして計測する方法に関しては、camconst.jsonの中のコメントを参照して下さい。
=== ホワイトフレームの撮影の仕方 ===
 raw形式の写真をマニュアルモードで撮影します。サイズの異なるraw形式写真を撮ることの出来るカメラであれば、最も大きいサイズで、切り抜きをせず、可能ならば圧縮せずに撮影します。


https://github.com/Beep6581/RawTherapee/blob/master/rtengine/camconst.json
 各写真をフレーム内全ての部分で完全に露出過多になるように撮影します。この様な撮影を行うと画像全体が白一色になるので何を撮影しても同じですが、簡単な方法としてはカメラを空や白色バルブに向けて撮影します。空が晴れていても曇っていても構いませんが、太陽に向けて撮るのはセンサーが壊れる可能性があるので避けた方がいいでしょう。また、どのレンズで撮っても構いませんが、画像全体を露出過多にするのですから広角レンズを使わない方が簡単です。
 
=== 必要な写真のセット ===
 先ほど撮影する画像の条件を3つ述べましたが、これは提供するサポートの質を高める目的からですが、貴方にとっても私たちにとっても手間がかかるものです。通常、多くの場合、次に示す最初の2セットの写真があれば十分ですが、全ての写真が完全に白くなるように露出過多に撮影します。
 
 写真のセット:
# 貴方のカメラにLENRが備わっている場合、初めにその機能をオフにします。絞りをf/5.6、或いはそれ以上に設定し、一連の写真撮影を行います。貴方のカメラが持つ各ISO値で一枚ずつ撮ります。但し、どの撮影でも露光時間が1秒を超えないようにします。例えば、貴方のカメラがISO値、100、200、400、800、1600、3200、6400、12800をサポートしていれば8枚の写真を撮影することになります。ただ、カメラの多くは中間的なISO値160、或いは320もサポートしているので、ホワイトレベルの計測値をより精密に求めたいのであれば、これらのISO値でも写真を撮ります。
# 貴方のカメラにLENRが備わっている場合、次にそれをオンにして上記同様に一連の写真撮影を行います。但し、今度は露光時間が最低2秒以上になるように撮影します。これで新たに8枚の写真を撮ることになります。以上、1と2の2セット写真があれば十分でしょう。
# カメラの中には絞りを大きく開いた際に、raw値を削る処理を行う機種があります。特にキャノンやニコンの機種に多いようです。カメラにその機能が備わっているかどうかを知るには、写真を撮って計測するしかありません。例えば、ISO値100でLENRをオフにし、レンズを開放値、f/1.7にして前述したように写真を撮り上記の写真と共に私たちに送ってもらいます。もしもraw値が削られていることが分かれば(或いは貴方自身が計測してそれを発見したら)、貴方に再び写真撮影を行ってもらうことになります。露光時間1秒以下、絞りを開放から1/3刻みで撮影し、raw値を削る処理が行われないポイントを探ります。従って、沢山の写真撮影が必要になります。しかし、絞りを大きく開いたときに起こるこの問題は差ほど重要ではありませんので、貴方のカメラにその機能が備わっていたとしても、無視することが出来ます。ただ、時間と余裕があれば調べてみるのもいいでしょう。
 
 必要最小限の条件を満たすためにも、上記1で約8枚の写真撮影が行われることになります。ポイント1と2の条件を満たす16枚以上の写真、更にraw値が削られてしまうかどうかを確認するためのポイント3の1枚の用意を奨めます。raw値が削られることが分かれば、ポイント3で説明したように更に写真を撮ることもできますが、それには多くの写真(50枚以上)を撮ることになるので無理は言えません。
 
 これら写真を全て圧縮して[http://filebin.net/ filebin.net]にアップロードし、そのリンク先を[https://github.com/Beep6581/RawTherapee/issues/new GitHub]或いは当[http://rawtherapee.com/forum Forum]を通じて私たちに送って下さい。
 
 完全に飽和した画像は驚くほど圧縮出来ます。アップロードする前に画像ファイルを圧縮(7-ZIP,
ZIP, bzip2などで)することをお忘れなく。例えば、Sonyの7M2でLENRをオフにして撮影した完全に飽和したrawファイル10枚のサイズは234MBにもなりますが、ZIPで圧縮するだけで1MBのファイルになります。
 
=== 名前の変更 ===
 これらホワイトフレームの写真に関する作業を単純化するために、それぞれLENR、絞り、及びISOの条件で撮影した画像ファイルの名前は分けて下さい:
 
 <code>exiftool '-FileName<${make}_${model}_${LongExposureNoiseReduction}_${aperture}_${iso}%-c.%le' dir</code>
 
==Rawクロップ==
 Rawクロップはどの写真を使っても特定できるので、更に別な写真を用意する必要はありません。
 
==入力プロファイル==
 色を正しく再現するためには入力プロファイルが必要です。カメラ機種ごとに一つの入力プロファイルが必要です。私たちが貴方のカメラ機種の入力プロファイルを作れるよう、"[[How_to_create_DCP_color_profiles/jp|DCPカラープロファイルの作り方]]"の項を読み、入力プロファイルのタイプ、カラーチャートの撮影の仕方を学んで下さい。

Latest revision as of 12:06, 11 December 2019

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

イントロダクション

 新たなraw形式をサポートするためには、以下の条件を満たす必要があります:

  • そのrawファイルのデコードが可能なこと。それによりrawファイルに保持されている画像データとメタデータを読解することが出来ます。RawTherapeeに埋め込まれている“dcraw”、或いはカスタムコードによってその処理が行われます。
  • そのraw画像データの解釈が可能なこと。このことは更に複数の項目に分けられます:
    • デコードされた画像データからホワイトレベル(場合によってはブラックレベルも)を計測します。カメラ機種によってホワイトレベル(場合によってはブラックレベルも)が異なるからです。ホワイトレベルは“ホワイトフレーム”と呼ばれる写真で計測します。
    • Rawデータの中のどこが実際の画像なのか特定します-“rawクロップ”と呼ばれる処理です。
    • 実際の色を再現するための”入力プロファイル“を作成します。

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

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

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

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

 情報はこれら3カ所すべてから集められますが、他の情報に比べ、camconst.jsonからの情報が優先されます。但し、入力カラーマトリクスの情報は、次の条件を満たすExifタグからの情報が優先されます。そのrawファイルがDNG形式で、SoftwareExifタグ(0x0131)が“Adobe DNG Converter”という文字列から始まらず、ColorMatrix2タグを持っていない場合です。

 RawTherapeeの実行中に、camconst.jsonに変更が行われた場合、それを実行するためにはプログラムの再起動が必要です。

ホワイトレベル

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

 ホワイトレベルは、完全に露出過多な“ホワイトフレーム”と呼ばれる写真を使って計測します。

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

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

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

 必要な写真及びデータの計測方法に関する詳細情報は、camconst.jsonファイルの中のコメントを読んで下さい:

 https://github.com/Beep6581/RawTherapee/blob/dev/rtengine/camconst.json

ホワイトフレームの撮影の仕方

 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のファイルになります。

名前の変更

 これらホワイトフレームの写真に関する作業を単純化するために、それぞれLENR、絞り、及びISOの条件で撮影した画像ファイルの名前は分けて下さい:

 exiftool '-FileName<${make}_${model}_${LongExposureNoiseReduction}_${aperture}_${iso}%-c.%le' dir

Rawクロップ

 Rawクロップはどの写真を使っても特定できるので、更に別な写真を用意する必要はありません。

入力プロファイル

 色を正しく再現するためには入力プロファイルが必要です。カメラ機種ごとに一つの入力プロファイルが必要です。私たちが貴方のカメラ機種の入力プロファイルを作れるよう、"DCPカラープロファイルの作り方"の項を読み、入力プロファイルのタイプ、カラーチャートの撮影の仕方を学んで下さい。