リニアとストレッチ:スタックしたファイルが真っ黒に――あるいは緑に見える理由
スタックした天体写真を普通のビューアで開くと、真っ黒か緑に見えます。「リニア」とは何か、スタック画像が 32-bit 浮動小数点で保存される理由、そしてストレッチ済みのプレビューをスタックのように画像処理できない理由を解説します。
スタックした画像を保存し、プレビューや写真アプリで開くと真っ黒です――何もないところに白い点がいくつか。あるいは画像処理ソフトで開くと、のっぺりしたどぎつい緑。あるいは保存した画像を画像処理ソフトで開くと、ソフトはそれを完成品として扱い、直させてくれません。
三つとも、同じ一つの考え方から来ています。リニアなデータとストレッチされたデータの違いです。
リニア:数えたままの光
カメラのセンサーは光子を数えます。光が二倍なら数も二倍。その数を平均したスタックも、この性質を保ちます――ピクセル値は届いた光に比例します。これがリニアなデータです。
リニアなデータでは、空と淡い星雲は値の範囲の下から 1〜2 パーセントに収まっています。一番明るい星の中心は上端近くにあり、その間にはほとんど何もありません。そのまま表示すれば、リニアなスタックは白い点が散った黒い画像です。露出不足ではありません。星と比べれば、ディープスカイの対象はそれほど暗いというだけのことです。
ストレッチ:目のために作られたもの
見えるようにするため、画像はストレッチされます。カーブが暗い側を大きく持ち上げ、明るい側を圧縮するので、空は範囲の 1% から 10 分の 1 まで上がり、星雲が見えるようになります。ストレッチの後、値はもう光に比例しません。光を二倍にしても、ピクセル値は二倍になりません。
ほとんどの処理――カブリ補正、カラーバランス、ノイズの測定、星の除去――はリニアなデータを前提にしています。ストレッチの後にやると、空で起きていることとは別の問題を解いていることになります。
カラーのスタックが緑になる理由
カラーカメラ(ワンショットカラー)は赤や青の二倍の緑ピクセルを持ち、感度も緑が一番高いので、素のカラースタックは強く緑に傾きます。色を先にキャリブレーションせずにストレッチすると、緑もほかと一緒に持ち上げられます。スタックした画像が緑になる理由 で詳しく扱っていますが、要するに緑は本物で、それを取り除くのはリニアデータに対して行うべきキャリブレーションの一ステップです。
スタックが 32-bit 浮動小数点で保存される理由
16-bit 整数のファイルには 65,536 段階があります。リニアなスタックでは、空と淡い星雲はおおよそ下から千段階ほどに収まっています――画像の中で一番大切な部分にしては粗いはしごです。多くのフレームをスタックすると、どの一枚よりも細かい段階が生まれますが、16-bit 整数ではその精度が丸められてしまいます。
32-bit 浮動小数点のファイルは、スタックが生み出した端数をすべて保持します。スタックソフトが FITS や浮動小数点 TIFF で保存するのはそのためです。スタックを保持できるフォーマットなのです。
これは有用な目印にもなります。完成した画像はほぼ必ず 8-bit か 16-bit の整数で、浮動小数点のファイルはほぼ必ずスタックです。Akastroid の 未処理のスタック画像を保存 がスタックを 32-bit 浮動小数点 TIFF(または FITS)で書き出すのはまさにそのためで、浮動小数点の静止画を再び開くと、それはスタックとして扱われます。カブリ補正、カラーキャリブレーション、ストレッチが行われます。
ストレッチ済みのプレビューはスタックではない
ソフトは、スタックを見られるようにストレッチしたプレビューを表示します。そのプレビューを保存すると、保存したのはデータではなく画像です。空はすでに持ち上げられ、緑は焼き付けられ、カウント値は失われています。もう一度開いても、ストレッチを元に戻すことはできません。ソフトとして誠実なのは、それを完成した画像として扱うことです――保存したプレビューを「修正」しても、スタックを処理し直すほどうまくいかないのはこのためです。
バージョン 1.3.1 までの Akastroid の 未処理のスタック画像を保存 は、そのストレッチ済みプレビューを書き出していました――バグです。1.3.2 からはリニアなスタックを書き出します。以前のバージョンで保存したファイルはプレビューで、プレビューとして開かれます。元のフレームから処理し直すのが解決策です。
どちらを持っているか見分ける方法
- 普通のビューアで開くと黒に白い点: リニア。
- 開くと空と星雲が見える: ストレッチ済み。
- FITS、または 32-bit 浮動小数点サンプルの TIFF/XISF: ほぼ確実にリニア。
- JPEG または PNG: 必ずストレッチ済み。
まとめ
- リニアなデータは光に比例する。見た目は黒く、画像処理はこのデータに対して行う。
- ストレッチは画像を見えるようにし、リニア性を終わらせる。キャリブレーションはストレッチの前に。後では決してやらない。
- スタックは 32-bit 浮動小数点(FITS または浮動小数点 TIFF)で保存する。16-bit では淡い部分が失われる。
- 保存したプレビューはスタックではなく画像であり、スタックとして処理し直すことはできない。
英語の原文を読む · 他の言語 Deutsch · Español · Français · Italiano · Nederlands · Polski · Português (Brasil) · Türkçe · 繁體中文