惑星撮影動画をPIPPでクロップしてファイルサイズを低減

概要

以前は惑星を撮影した動画を全てNASやBD-Rに保存していたが、最近はカメラやPCの性能向上で解像度や量子化ビット数、フレームレートが上がり、ファイルサイズが巨大になってきて保存が難しくなってきた。そのため、一通りの処理が終わった後は思い切って削除するようにした。しかしそれでも「火星最接近」や「神シーイングによるその年のベスト動画」など貴重な動画だけは保存しておきたい。

そこで、FireCaptureで撮影・作成した元動画をPIPP(Planetary Imaging PreProcessor)でクロップしてファイルサイズを低減するようにしている。こうすることで、保存時のファイルサイズが小さくなるだけでなく、AutoStackkert!3によるスタック処理も速くなる。基本的には動画撮影後すぐにPIPPによるクロップ処理を行い、クロップ済みのファイルから画像処理を行うようにした。具体的手順は下記の通り。

元動画ファイル

まず下の画像は、ASI462MCでROIにより640×640の解像度・16ビットで約32400フレームで火星を撮影した動画ファイル2つ。これはFireCaptureによる撮影で、デベイヤーしないでベイヤー形式(白黒)のままser形式で記録されている。ファイルサイズは一つあたり約25GBと巨大になっている。

FireCaptureによる元動画ファイル
FireCaptureによる元動画ファイル

今の火星(視直径16秒角)ならもっとROIの解像度を狭められるが、様々な要因によるブレがあり、失敗をしないためにかなり余裕のある余白を設定している。また、量子化ビットは惑星なら8ビット記録で良さそうなものだが、やはりカメラオリジナルの出力ビット数(462MCなら12ビット)を削りたくないのが人情。FireCaptureでは8ビットの上に12ビットや14ビットが無く、16ビットまで倍増してしまうが仕方ない。

それから、元動画やクロップ後の動画の確認には「SER Player」を使っている。

PIPP立ち上げと元動画ファイル読み込み

下はPIPPを起動した画面。

PIPP起動画面
PIPP起動画面

Source Filesのタブを選び、エクスプローラーから元動画ファイルを複数まとめてドラッグ&ドロップする(今回は上述の2ファイル)。すると、下のようなメッセージが出るが、「いいえ」を選択する。

これは、デベイヤーしてファイルサイズが増大するのを避けるためと、なるべく元動画のフォーマットを保つため。デベイヤーは後工程のAutoStackkert!で行うものとする。

Input Options設定

Input Optionsのタブの設定は下の通り。

Input Optionsの設定
Input Optionsの設定
  1. Debayer Raw Image Files のチェックを外す。
  2. Protect Bayer Pattern When Centering/Cropping (Do Not Debayer)にチェックを入れる。

1.はベイヤー状態を継続するため。

2.はベイヤー構造の整合性を保持したままセンタリング&クロップ処理するため。

Processing Options設定

Processing Optionsのタブの設定は下の通り。

Processing Optionsの設定
Processing Optionsの設定
  1. Frame Stabilisation ModeをObject/Planetaryにする。
  2. Enable Object Detactionにチェックを入れる。
  3. Auto Object Detection Thresholdにチェックを入れ、Test Detect Thresholdボタンを押して、別ウィンドウ(下の画像)で表示される画像で、惑星の領域のみが赤く選択されるか確認する。
    • 正しく選択されていないようならこのチェックを外し、Object Detection Thresholdを手動で調整する
  4. Centre Object In Each Frameにチェックを入れる。
  5. Enable Croppingにチェックを入れ、クロップ後の解像度を指定する。
    • 今回は300×300とした。
Object Detection Threshold確認
Object Detection Threshold確認

Quality Options設定

Quality Optionsのタブでは、各フレームの品質を判定して不要なフレームを削除したり、品質の良い順に並べ替える設定ができる。しかし私は現在この設定を使っておらず、全フレームを保存している(動画としてみた時の連続性を保つのと、品質による取捨選択は後工程のAutoStackkert!に任せるため)。

一応、品質上位75%を採用して下位25%を切り捨て、品質順に並べ替える設定は下のとおり。

Quality Optionsの設定(75%通過・品質順)
Quality Optionsの設定(75%通過・品質順)

Output Options設定

Animation Optionsタブは今回使わないので省略し、Output Optionsタブの設定は下のとおり。

Output Options設定
Output Options設定
  1. Output FormatでSERを選択(SER形式を継続)。
  2. Generate WinJUPOS Compatible Filenamesにチェックを入れ、その下の枠で「Output Frames Mid-Point Time」を選択。

2.については、この後AutoStackkert!でのスタック後にWinJUPOSでDe-Rotationや各種情報の取得を行う際に役立つ(後述)。

ファイル出力

最後にDo Processingタブで「Start Processing」ボタンを押すと、指定した複数ファイル全ての処理が順に行われる。「PROCESSING COMPLETE」のメッセージが出たら完了。

PIPPで出力したファイル
PIPPで出力したファイル

WinJUPOSで認識できるファイル名の形式で、後ろに「_pipp」の文字が付加されたファイルが出来ている。ファイルサイズは25GBから5.7GB程度まで小さくなった。さらにこれをzip形式で圧縮すると3.6GBまで縮小できた。これでもまだかなりの大きさだが、年に数個~数十個程度のベスト動画を保存するぐらいなら何とかできる大きさだろう。

なお、さらにファイルサイズを小さくするために、動画自体を何らかのコーデックで圧縮することも考えられるが、設定次第では劣化の可能性があるし、この先の環境変化で再生できなくなる危険もあるため、それは考えていない。

設定の保存

ここまでの処理内容設定は、メニューから「Options」-「Save Options」で保存でき、「Load Options」で読み込める。拡張子は「pof」。また処理後のフォルダに「log」のサブフォルダが出来ていて、その中にも処理時の設定がpofで書き出されているようだ。


クロップ動画作成後の工程について

クロップされた動画については、これまで同様にAutoStackkert!3でスタック処理を行う。出力ファイル名の設定を「Stack(name) Options」で下のようにした。

AutoStackkert!3の出力ファイル名設定
AutoStackkert!3の出力ファイル名設定

今回処理したファイルのうちの一つ

  • 「2020-11-25-0914_1-Mars_181404_pipp.ser」

をスタックする際のフレームを採用する割合を30%として処理して、tifファイルで出力したファイル名が

  • 「2020-11-25-0914_1-Mars_181404_pipp_P30.tif」

となった。つまりPIPPで出力したファイル名の後ろに、stack countを%で付け加えるだけ。私の場合、スタックする割合を複数変えて処理するのでこの情報だけを加えたが、この後ろに様々な情報の文字を付け加えても、この後のWinJUPOSはちゃんと認識してくれるようだ。

画像を確認すると、ちゃんとクロップされたサイズでスタックされている。

引き続き、この「2020-11-25-0914_1-Mars_181404_pipp_P30.tif」をWinJUPOSの「Recording」-「Image measurement」で読み込むと、日付時刻(UT)が自動で設定される。これを基にした中央経度や視直径、光度、衛星の位置などの各種情報も自動計算される。De-rotation処理で複数の画像の中央時刻を計算するときにも用いられる。

さらに、EphemeridesのImage Captionでは画像に挿入するためのキャプションデータも自動生成され、ボタン一つでクリップボードにコピーできる。下の画像は、私が自分用にカスタマイズした内容。

WinJUPOSでのキャプション作成
WinJUPOSでのキャプション作成

撮影時のパソコンの時刻さえ合っていれば、ここまでUTの情報は自動で持ってくることが出来て、中央経度・視直径・光度も自動計算なので間違えようがない。方位・高度は観測地の経度と緯度を正しく入力する必要がある(ときどきここが初期化されたまま気づかず、ヨーロッパ付近の設定になっていて、とんでもない値になることがあった)。

日付時刻については、惑星観測の観点から重要なのはUTでJSTは不要だが、自分的には後になって「●月×日の何時何分にどのように見えた」という情報は要るので、JSTを併記した。ただこれは自動で行えず9時間を足して手打ちする必要があるので、打ち間違えの可能性がある。空の状態や撮影情報なども手打ちだが、このテンプレートを保存しておけば楽に書き換えられる。

さらにこの後のRegiStax6によるウェーブレット処理、ステライメージ8によるマルチバンドシャープ処理、Photoshopでの最終調整(最近はDenoise AIも使っている)、キャプションの合成を経て完成する(このサンプルは、品質的にはあまり良くなかった)。

火星 2020/11/25 18:14 (JST)
火星 2020/11/25 18:14 (JST)

私は処理の最後の方に有料ソフトを使っているが、RegiStaxまではフリーソフトで行える。WinJUPOSまでのUT時刻情報の流れも良く出来ていて便利だと思う。

コメント

タイトルとURLをコピーしました