※追記 最新バージョン9.0bでは、下記の手法を用いなくても、バッチ→コンポジットでメモリ消費が抑えられる仕様になっていることを確認しています。
※追記2 2021年3月23日現在、上記現象は再現されなくなりました。よって、本記事で述べているメトカーフコンポジットを利用する手法をオススメします。
※追記3 星ナビ2022年6月号の拙記事内でも触れたように、9.0f以降のバージョンではメトカーフコンポジットを流用しなくても「バッチ・コンポジット」でメモリ使用量が劇的に押さえられ、高速に処理できる仕様に改善されています。
★今回は、結論から先に・・・いきなりででん!!
Twitter上で、
すぷーん@緡抜千匁さん に教えていただいた情報により、
バッチ処理のメトカーフコンポジットを利用することで、前回の記事で述べたステライメージ9の
位置合わせコンポジット法よりもさらに高速化できる可能性が出てきたので、3種類のPCおよび3バージョンのステライメージを用いて検証してみました。
その結果、CPUコアやメモリの多寡を問わず、SI9+メトカーフが最速であることが示唆されました。
★前回の記事で・・・
待望のステライメージ9が届いたので、6.5でできていた爆速コンポジットが7以降不可能になっていた件が改善されたかどうかを検証ごっこしてみました。
その結果、コンポジットの操作画面はSI7と全く同じに見えるものの、その動作は全く異なっており、かなり高速化されたことが確かめられました。
ただし、個人的に残念だったのは、SI6.5のアルゴリズムを踏襲している(ように見える)高速位置合わせコンポジット機能が「比較明」(と比較暗)でしか効かないまま(SI7と同様)であることでした。SI9の位置合わせコンポジットはかなり高速化されていますが、それでもSI6.5と比べるとメモリの消費量が(SI7よりはかなり少ないものの)桁外れに大きいため、メモリが少ないPCだとスワップの発生で動作が重くなります。
本当は、下記のように
比較明コンポジットバッチメニューの中に「加算平均」を復活させて欲しかったのです。
ところが、驚愕の情報が・・・・・
★驚愕のツイートが・・・・
すぷーん@緡抜千匁さん による下記のツイートを見たとき、衝撃を受けました。
なんと、SI9はもちろんのことSI7の中にもSI6.5の高速位置合わせ加算平均コンポジットの機能が隠されており、その場所は「比較明」ではなく「メトカーフ」の中だというのです。
ああ、なんということ。
必死で探し求めていたシンデレラは『メトカーフ村』に住んでいたのかッ!!
このツイートを見た瞬間、2年ほど前にスカイメモのピリオディックモーションを測定するための便法を模索していた事がフラッシュバックのように蘇りました。
この記事の中で、ピリオディックモーションの測定を邪魔する極軸誤差に伴う東西方向への移動を補正するため、メトカーフコンポジットを利用することを考案したのですが、残念なことにSI7では比較明コンポジット時にメトカーフ法が使えないために、SI6.5を用いる必要性があると述べました。
そうです。ここまでの情報を総合すると、SI6.5の位置合わせコンポジットの機能はSI7以降「比較明バッチ」と「メトカーフバッチ」の2系統に分散されて格納されたのではないかと推理できます。
さて、実際にメトカーフバッチを利用することにより、SI6.5のような高速コンポジットが可能となるか、試してみましょう。
★メトカーフバッチを利用した位置合わせコンポジットの手順
それでは、まずはやり方の紹介です。
ここではSI9の画面を用いますが、SI7でも全く同じ操作です。大ざっぱに言えば、彗星などの固有運動を「ゼロ」であると指定することによってメトカーフコンポジットを通常の位置合わせコンポジットに変身させてしまうという手法です。
①対象画像を1コマだけ開きます
②基準星指定ツールを用いて好きな恒星を1つ指定して位置合わせの基準点にします
③バッチメニューからメトカーフを選択します
④各種パラメータを設定します
⑤残りの対象画像をロードします
⑥コンポジットを実行します※④で「アクティブ画像から指定」のチェックを入れ忘れると、たとえ基準星にアンカーを打っていても無視されますので気をつけてください。
また、ここでは純粋な位置合わせコンポジット処理速度を検証するために、シグマクリップはオフにしています。
★速度テストの共通事項
カメラ:ASI1600MM-Cool (1600万画素モノクロ)
画像枚数:256コマ
画像データの配置:全て同じ外付けSSD(下記参照)
SI用スワップファイル:システムドライブ(内蔵SSD)中に32GB分を確保
★標準的なPCでの比較結果
Core i5 6600(4コア4スレッド) + メモリ16GB の自作デスクトップPCでの測定結果は下記のとおりです
SI6.5で位置合わせコンポジット
所要時間:1分23秒
消費メモリ:0.36GB
SI7で位置合わせコンポジット
所要時間:17分33秒
消費メモリ:10GB
SI7でメトカーフ
所要時間:11分01秒
消費メモリ:0.36GB
SI9で位置合わせコンポジット
所要時間:3分06秒
消費メモリ:10GB
SI9でメトカーフ
所要時間:1分04秒
消費メモリ:0.33GB
★パワフルなPCでの比較結果
Ryzen7 3700X(8コア16スレッド) + メモリ96GB の自作デスクトップPCでの測定結果は下記のとおりです
SI6.5で位置合わせコンポジット
所要時間:1分16秒
消費メモリ:0.36GB
SI7で位置合わせコンポジット
所要時間:2分40秒
消費メモリ:29GB
SI7でメトカーフ
所要時間:8分25秒
消費メモリ:0.37GB
SI9で位置合わせコンポジット
所要時間:44秒
消費メモリ:16.5GB
SI9でメトカーフ
所要時間:27秒
消費メモリ:0.35GB
★やや非力なノートPCでの比較結果
Core i5 7200U(2コア4スレッド) + メモリ8GB の15インチノートPCでの測定結果は下記のとおりです
SI6.5で位置合わせコンポジット
所要時間:2分03秒
消費メモリ:0.35GB
SI7で位置合わせコンポジット
所要時間:25分05秒
消費メモリ:2.65GB
SI7でメトカーフ
所要時間:14分12秒
消費メモリ:0.37GB
SI9で位置合わせコンポジット
所要時間:4分07秒
消費メモリ:3.7GB
SI9でメトカーフ
所要時間:1分36秒
消費メモリ:0.35GB
★メモリ消費についての補足
実際のコンポジット処理では、CPU性能やソフト側のロジックはもちろんですが、メモリが枯渇しないことが重要です。上当然、HDDはもちろんSSDでもメインメモリに比べると低速ですので、スワップが生じてしまうと突然ガクンと処理速度が落ちます。記のテストでは、一見メモリ消費が少なそうに見えて、実は膨大なスワップが生じているケースがありますので注意してください。
なお、ステライメージのスワップファイルは、環境設定で指定したドライブ中に随時生成される「~SI.○○○」というフォルダ中に「~SI○○○○.tmp」という名前で存在します。このTMPファイルの大きさ(処理中に変動する)を観察するとメモリが不足した量が推測できます。なお、指定したスワップファイルの上限値自体が必要量を満たしていない場合はエラーとなって処理が止まります。目安としてモノクロ1600万画素の画像256コマをSI7で位置合わせコンポジットする際には、メモリとスワップファイルを合わせて約32GB程度、SI9で位置合わせコンポジットする際には、約17GB程度がそれぞれ必要です。SI6.5で位置合わせコンポジットする場合、およびSI7やSI9でメトカーフを利用する際には約0.4GB程度しか消費しませんので、事実上スワップは発生しません。
たとえば、ノートPCでSI7の位置合わせを行う際にはメモリ消費が2.65GBでしたが、その時には29.7GBもの巨大なスワップファイルが生成されていました。
反面、Ryzen7機ではメモリ消費が29GBでしたがスワップファイルはゼロでした。
したがって、必要なメモリ量は上記のテストデータのうち、Ryzen7機のメモリ消費量を見るとおおよそ見当が付くと思います。
★まとめ
①CPUの性能・メモリの多寡を問わず、SI9でメトカーフコンポジットバッチを利用して位置合わせ加算平均コンポジットが最速
②メモリが潤沢に使える場合(スワップが発生しない程度)はSI7のメトカーフよりも画像を全て開いて普通に位置合わせコンポジットした方が高速
③ほとんどのケースにおいてSI6.5の位置合わせコンポジットは高速であるが、SI9のメトカーフはCPUの性能も影響する
④SI9の位置合わせコンポジットは、SI7のそれよりも4~6倍高速
⑤SI9のメトカーフは、SI7のそれよりも9~18倍高速
⑥各PC別にどのコンポジットが速いかを示すグラフは下記の通り
※各PCにおけるSI6.5を100%とした際の速度比
⑦各処理別にどのPCが速いかを示すグラフは下記の通り
※各処理におけるCorei5 6600+16GB機の性能を100%とした際の速度比
貴重な情報を教えていただいた すぷーん@緡抜千匁さん、ありがとうございました!
★★★お約束★★★①本結果はあくまで検証『ごっこ』のため、その正確性は保証できません
②基本的な処理速度をテストするため、ホットクール除去やシグマクリップなどの処理は一切用いていません
③SIの環境設定パラメータは全て揃えるよう心がけましたが、設定ミスが無いことは保証できません
<追記>本記事で用いたステライメージ9は、「9.0a」です。
(バッチ処理後の画像書き出し先を指定できないバグがあったので、即アップデートしました。)
なお、先行配信されている「9.0a1」のアップデータはまだ適用していません。