AviStack2の使い方
AviStack2は、ドイツのMichael Theusner氏を中心に開発されたソフトウェアで、Registaxと同じく動画ファイルのフレームをスタッキングし、ウェーブレット処理を行うことで高精細な画像を得るためのソフトです。
このソフトは月面写真を念頭に開発された経緯があり、惑星写真の処理にルーツを持つRegistaxと比べると、月面のクローズアップ写真のように画面全体に被写体が広がっているような画像の処理に長けています。また、その歪み補正機能は極めて強力で、数百~数千ポイントの参照点を見ながら処理を行うため、Registax6やAutostakkert!などと比べても高精度なスタッキング画像が得られます。
2010年以降、実質的な開発が止まっているようで、そのせいか新しい形式のファイルの読み込みや処理速度に難はありますが、それでも上記のような画像に対してはなお優位性があるかと思います。
ここでは、月面写真のように画面全体に被写体が広がっているような画像の処理に絞って、AviStack2の使い方を解説してみようと思います(惑星相手ならRegistax6やAutostakkert!の方が有利なので)。なお、最新版は2016年現在、2.0.0です。
画面の構成
AviStack2を起動すると、メインウィンドウ、処理の内容やパラメータを設定する「Parameters and Settings」ウィンドウ、処理した画像を表示する「Display」ウィンドウの3つが現れます。
メインウィンドウは主にファイルの入出力を行うだけで、実質的な操作のほとんどは「Parameters and Settings」ウィンドウで行うことになります。ここには一連の作業手順が上から下に向かってフォルダアイコンで表示されていて、作業中および作業済みのアイコンは緑色に表示が変わるようになっています。
ファイルの読み込み
メインウィンドウのメニューから、動画の場合「File」→「Load Movie」、静止画の場合「File」→「Load Images」からファイルを読み込みます。
実はAviStackを扱う上での最大の鬼門がここだったりします。
AviStack自体は動画としてAVIやSERを読み込めることになっているのですが、ここでいうAVIについて、AviStackがネイティブで対応しているのは無圧縮のY800(グレースケール), DIB(カラー), I420/IYUV(ウェブカムなどで使用)のコーデックに限られる上、他にも制限が色々とあるようで、FireCaptureなどのキャプチャソフトで記録された動画ファイルは、そのままではほとんど読み込めません。
そこで私の場合、フリーの動画編集ソフトである「VirtualDub」を用いてフォーマットを変換しています。動画ファイルをVirtualDubに読み込ませたのち、AVI形式で保存しなおせばOKです。
モザイク合成などのために処理するファイル数が多い場合は、同じくVirtualDubのバッチ処理を利用するのが簡単です。手順は以下の通り。
- 「File」→「Queue Batch Operation」→「Batch Wizard」を開く
- パネルが開くので「output location」でファイルを出力するフォルダを指定
- ファイルリストに変換したいファイルをドラッグ&ドロップ
- 「Add to Queue」をクリックし、出てきたドロップダウンリストから「Re-save as AVI」を選択
- 「OK」を押してパネルを閉じる
- 「File」→「Job control」を開く
- 1~5で設定した内容がリストになっているはずなので「Start」ボタンを押す
これでファイルが次々と読み込まれ、自動的に保存されていきます(コーデックが異なる場合などはこう単純にはいかないかもしれませんが、当方では未検証です)。ちなみに「Job control」パネルの「Options」から、作業が終了したらPCの電源を落とす、といった設定もできます。
なお、そのほかの動画ファイル形式については、こちらからダウンロードできるkrsgravi.zipを解凍して出てくるKRSgrAVI.dllとKRSgrAVI.dlmをAviStackと同じフォルダに入れたり、AviSynthをインストールしたりすることで対応を広げることができるようですが、どうもうまく働いている感じがしません。上記のVirtualDubなどを用いてAVIに変換するのが一番手っ取り早そうです。
また、静止画についてはPNG, JPG, BMP, TIFF, JP2, FITSの各フォーマットを読み込むことができます。ただ、AviStack2は大きい画像の処理はあまり得意ではないようで、数千万画素あるようなデジカメからの画像を複数読み込んで処理を始めると、平気で半日以上かかったり、メモリエラーで落ちたりといったことがしばしば発生します。静止画の処理については忍耐が求められます。
ファイルを読み込んだ直後は一見何も起こりませんが、ここでメインウィンドウの「Process file」を押すと、「Parameters and Settings」ウィンドウの「Frame selection」のアイコンが緑色になり、「Display」ウィンドウには読み込んだ画像が表示されます。
Frame selection
ここでは、処理に不適切なフレームを取り除くことができます。Registaxの「Limit」などと同じく、品質(Quality)でカットしたり、フレーム数でカットしたり、あるいは明るさでカットすることもできます(雲の通過などのケースを想定?)。分からない or 面倒なようなら、とりあえずOKを押して先に進んでしまって構いません。その場合はすべてのフレームが以降の処理に使われます。
Frame alignment
ここでフレームを品質順に並べ直します。
現れた縦長のパネル上で、まずは「Alignment type」を指定します。月面写真のように画面全体に被写体が広がっているなら「Surface」を選択します。
「Display」ウィンドウの画像上には白い四角が2つ見えますが、これは画像中の特徴ある点が抽出されたもので、この点が各フレームでどのように動くのかを解析して像の動きやゆがみを検出します。2つの特徴点は、画像上の希望の位置でマウスの左クリック、右クリックをそれぞれ行うことで指定することもできます。
四角の大きさ(Area radius)や、特徴点の検索範囲(Search radius)はパネル上で設定できますが、変更する必要はほとんどないでしょう。
OKを押すと解析が始まり、終わると結果がグラフで表示されます。
グラフは上から「フレームごとの、2つの特徴点間の距離」、「特徴点間距離変化のヒストグラム」、「フレーム間の位置のずれ」を表します。もしフレーム間の位置のずれが大きすぎて、特徴点の位置変化が特徴点の検索範囲(Search radius)を超えた場合、そのフレームはスタッキング不能と判断されて、この時点で取り除かれます。結果を確認してOKを押すと、アライメント後のムービーを確認する画面になりますが、これは念のための確認以上の意味はないのでOKを押して次に進みます。
ROI selection
ここは処理対象とする範囲を限定する操作で、背景が真っ黒な惑星写真において主に使われるものです。月面写真を処理する場合には基本的に関係ないので、そのままOKを押して次に進みます(処理範囲を限定すると処理が早く終わるので、様々な処理条件を検討する目的で使うことはできます)。
Set reference points
ここではシーイングによる像の歪みを補正するための参照点を設定します。画像上に描かれている白い×が参照点です。パネルでは参照点間の最小距離、参照点を置く位置の明るさの上限・下限などを設定することができますが、初期値がよくできているので特にこれらのパラメータを変更する必要はないでしょう。OKを押して次に進みます。
Quality analysis
画面を複数のエリアに分割し、各フレームの各エリアについてその品質(シャープなのかボケているのか)を分析します。エリアの大きさなどを変更することもできますが、ここも特にいじる必要はありません。OKを押して解析を行います。
解析が終わると結果がグラフで表示されます。上段は時間順に並べた各フレームの品質、下段はフレームを品質順に並べ直した場合のグラフです。この結果は次の段階で参考にするのでよく確認してください。OKを押すと、フレームを品質順に並べたムービーを確認する画面になりますが、これは念のための確認以上の意味はないのでOKを押して次に進みます。
Reference point alignment
ここでは、スタッキングを行う際の参照点のパラメータ(参照点の検索範囲など)と、スタッキングに回すフレームのパーセンテージまたは数を決定します。後者については、上記の「Quality analysis」の結果を参考にパラメータを決定するとよいでしょう。
OKを押すと解析が始まり、終わると参照点の揺らぎを具合を示すヒストグラムが表示されます。一応確認したうえでOKを押して次に進みます。
Frame stacking
ここまできたら、ようやくスタッキングです。ここまでの計測結果などを参考に、像の歪みを補正しながらフレームをスタッキングしていきます。前の段階とこの段階は非常に重く、特にデジカメ等で撮影した、ピクセル数の大きな動画、静止画を処理する場合には、軽く数時間かかることも珍しくありません。ゆっくり出来上がりを待ちましょう。
スタッキングが終了したら、画像を保存できます。保存したら「Close」を押します。
Post-processing
「Parameters and Settings」ウィンドウのツリーから「Post-processing」のフォルダを展開し、「Workflow Default」下の「Wavelets」をクリックすると、Registaxと同じようなウェーブレット処理のためのパネルが開きます。使い方はほとんどRegistaxと同じなので、詳細は省略します。そのほか、「Workflow Default」下の項目を有効にすれば、レベル補正なども行えます。
なお、ウェーブレット処理についてはRegistax6の方が細かいところまで設定できるので、強調処理はそちらに任せてしまってもいいでしょう。
自動処理とバッチ処理
以上のように何段階にも分かれているAviStack2の作業フローですが、これらを自動で流していくことも可能です。
方法は簡単で、「Parameters and Settings」ウィンドウに表示されている各プロセスにおいて、「Manual processing」や「Stop processing」となっているところを「Automatic processing」や「Continue processing」に変更するだけです(項目がフォルダの奥に隠れていることもあるので注意)。
また、AviStack2にはバッチ処理の機能もあります。最初に動画ファイルを読み込むところで複数のファイルを読み込んでおき、メインウィンドウの「Batch processing」のボタンを押せば、読み込んだファイルを順次処理していくことが可能です。
これを上記の自動処理と組み合わせれば、大量のファイルを同じ設定で一気に処理することが可能になります。月面のモザイク合成などで大量のファイルを処理しなければならない場合に大変便利な機能です。まずは代表的なファイルを選んで手動で処理し、パラメータを決定した後に残りのファイルを流せば、あとは何もしなくてもいいので非常に効率的です。