Ubuntu Weekly Recipe

第474回 UbuntuとdarktableではじめるRAW現像入門

この記事を読むのに必要な時間:およそ 7 分

写真を現像する

ライトテーブルで現像したい写真を選択したら,ダークルームで現像してみましょう。写真をダブルクリックすると,ダークルームでその写真を開いた状態となります。なおダークルームではウィンドウ下部のフィルムストリップビューに,現在のライトテーブルのビューと同じ写真の一覧が表示されます。フィルムストリップで別の写真をダブルクリックすることで,ダークルーム内で現像対象を切り替えることができます。

データベースとサイドカーファイル

darktableは編集時に,オリジナルの画像を上書きしません。オリジナルの画像は常にリードオンリーで開かれ,作業内容は差分データとして保存されています。この作業内容を含む,すべての画像関連の情報は「~/.config/darktable」以下のデータベースに保存されています。またそれとは別に,サイドカーファイルと呼ばれる拡張子「.xmp」のファイルが作成されます。

サイドカーファイルはオリジナルの画像ファイルと同じフォルダーに画像ごとに生成され,その画像に対して行われた作業内容が個別に保存されています。サイドカーファイルの内容はデータベースにも含まれているため,冗長だと感じるかもしれません。しかしサイドカーファイルとオリジナル画像を再インポートすることで編集内容を復元できるため,オリジナル画像と作業情報をセットで人に渡したいような場合や,データベースが破損してしまった場合のバックアップに役立ちます。

とはいえファイルごとに個別のサイドカーファイルが作られるのは鬱陶しいと感じるかもしれません。その場合は「darktableの設定」⁠⁠内部オプション」にある「各画像のサイドカーファイルを書き込みます」のチェックを外してください。

またdarktableはデータベースの内容を優先的に読み込むため,外部アプリでサイドカーファイルを編集しても,その内容が反映されません。サイドカーファイルの変更を再読み込みしたい場合は,⁠darktableの設定」⁠⁠内部オプション」にある「起動時に更新されたxmpファイルを探します」にチェックを入れてください。

スナップショットと履歴

現像時には様々なパラメーターの調整を何度も行うわけですが,その最中に「ちょっと前の状態と見比べたい」⁠やっぱり前の状態に戻りたい」と思うことが絶対にあるはずです。darktableにはスナップショットという機能があり,現在の状態をビットマップとして一時的に保存できます。

左側パネルにあるスナップショットパネルから「スナップショットを撮る」をクリックすると,現在の状態がスナップショットとして保存されます。さらになにか編集を行った状態で,先ほど取得したスナップショットをクリックすると,中央パネルが分割され,現在の状態とスナップショットの状態がそれぞれ表示されます。分割線をドラッグすることで分割範囲を変更できるほか,中央の矢印をクリックすると,上下左右の分割パターンを変更できます。

スナップショット名は,現在の履歴スタックの項目名がそのまま反映されています。もしもスナップショットの状態へ戻りたいのであれば,履歴パネルから該当の履歴をクリックします※5)⁠

※5
もちろんスナップショットの有無にかかわらず,履歴パネルを使えばいつでも任意の作業ポイントを行き来できます。

なおスナップショットはdarktableを終了すると破棄されてしまうため,注意してください。

図11 スナップショットをクリックすると,ビューが分割され,現在の状態とスナップショットの状態がそれぞれ表示される。もう一度スナップショットをクリックすると,分割が解除される。

画像

図12 このスナップショットはベースカーブを編集した直後(履歴の3番目)に取得したため,履歴パネルから「3 - ベースカーブ」をクリックすれば,スナップショット取得時の状態に復元できる。

画像

デモザイク

そもそもデジカメの撮像素子は色を区別できず,光の強さしか記録できません。つまりそのままではモノクロ画像しか撮影できないのです。そこで素子1ピクセルごとに,RGBのうち1色しか透過しないフィルターが置かれています。これで「受光した光の強さ=そのフィルタを透過した色の強さ」になるため,結果としてRGBのうち1色の情報が得られるわけです。

意外に思われるかもしれませんが,実はデジカメは各ピクセルがフルカラーの情報を持っているわけではないのです。1000万画素のデジカメであれば,半分の500万画素で緑,残りの250万画素ずつで青と赤の色を記録しています※6)⁠

※6
人間の目は赤や青よりも緑に反応しやすいため,RGBそれぞれの比率はあえて均等ではなくしてあります。詳しくは「ベイヤーフィルター」で検索してみてください。

しかし各ピクセルが単一のカラーチャネルしか持っていない状態では,モザイク状の画像になってしまいますよね。そこで各ピクセルは,別のカラーチャネルを持った近隣のピクセルから色情報を補完します。この処理を「デモザイク」と呼びます※7※8)⁠

※7
なめらかに色が変化している場合はおおむね良好に色が再現されますが,色が急激に変化するエッジにおいては補完結果が実際の色と異なり,いわゆる「偽色(モアレ)⁠が発生することがあります。
※8
最近のカメラの中には,センサーを1ピクセルずつ物理的に動かして4枚の写真を連続撮影し,各ピクセルがRGBすべての情報を持った画像をカメラ内で合成できるモデルが存在します。デモザイクが不要になるため,偽色が発生しません。

デモザイクモジュールでは,デモザイクのアルゴリズムを選択できます。現在darktableはPPG,AMaZE,VNG4の3つのアルゴリズムを実装しています。品質面で言えば,通常はAMaZEを選択しておくのが妥当です。しかしAMaZEは低速なため,darktableはデフォルトでPPGを使用します。品質が気になる場合は,アルゴリズムを変えて変化を確認してみるとよいでしょう※9)⁠

※9
ちなみにすべてのカメラがベイヤーフィルターを採用しているわけではないため,センサーの種類(RGBの配列)によって使われるデモザイクアルゴリズムも変化します。たとえばX-Transセンサーを搭載したカメラで撮影した写真では,Markesteijnと呼ばれる別のアルゴリズムセットが選択可能になります。しかし筆者はX-Transセンサーを実装したデジカメを所有していないため,検証はできていません。

図13 デモザイクモジュールのパネル。

画像

図14 310mmで撮影した小鳥の羽根を等倍に拡大したところ。デモザイクアルゴリズムにPPGを使用したが,羽根にモアレが出ている。

画像

図15 デモザイクアルゴリズムにAMaZEを使用したもの。羽根のモアレが軽減されているのがわかる。

画像

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。株式会社インフィニットループ所属。

コメント

コメントの記入