省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

Windows 11 において ImageJ / 黄変ネガ補正 B チャンネル再建法を使う場合、ご注意!

まず、結論から述べます。

 Windows 11 において最新バージョンの ImageJ / Fiji を使おうとすると、起動するまでに 30 秒 ~ 1分以上近くかかる上に、起動アイコンをクリックしても、20 ~ 50 秒程度何のロゴも出ず何の反応もないままなので、使えないものと錯覚する可能性があります。

 しかし、クリック後、20 〜 50 秒程度待つと、ロゴが出てようやく起動できていることが確認できますので、クリックした後、じっとお待ちください。

--------------------

 先日、私の B チャンネル再建法のマニュアルページに、ご相談を寄せられた方がいらっしゃいました。Windows 11 上の ImageJ / Fiji で私の作成したプラグインを実行すると、ページコード絡みのエラーメッセージが出て起動しない、というご相談でした。

 

 話を伺ってみると、Fiji の 2017年5月30日バージョンという古いバージョンを使おうとされていることがわかりました。私がツールの開発を始めたのが 2020年の春先頃ですので、それよりも古いバージョンです。当然動かないわけですが...

 

 で、なぜそんなに古いバージョンを使おうとされるのかと伺うと、最新バージョンをダウンロードしたところ、動作しないようなので、古いバージョンを使ってみたとおっしゃるのです。

 

 そこで、改めて、Windows 11, 10 および Kubuntu 24.02 で ImageJ の起動状況を調べてみました。

 まず、そもそも ImageJ のアイコンをクリックすると、起動中は、以下のようなロゴが表示されます。そしてしばらくして実際に ImageJ が起動しメニュー等が表示されます。

Fiji のロゴ (Kubuntu)

同 (Windows 10)

メニューが表示されたところ

 で、このアイコンをクリックして、メニューが表示されるまでの起動時間を計測してみました。マシンは Core i5 14400 BOX (Pass Mark 約 25000 程度)でメモリは 24G、SATA の交換トレーを使った SSD に OS を入れ、この交換トレーを使って OS を入れ替えて同一のマシンで時間を測ってみました。

 すると起動時間自体は、

 Windows 11:  25秒弱

 Windows 10:  20秒弱

 Kubuntu 24.02: 5秒程度

 

 なんと圧倒的に Kubuntu の起動時間が早いです (SATASSD を使っているのは同じです)。Windows 11 と 10 は大差ないですが、それでも Windows 11 は 5秒ほどのろくなっています。

 

 しかしそれ以上に問題が...

 Windows 10 の場合、アイコンをクリックして2, 3秒以内に、先程の Fiji のロゴが表示されます。使えるようになるまでに 20秒程かかりますが、しかし起動中ということがわかります。ところが、Windows 11 は... なぜかロゴが表示されるまでなんと 20秒以上かかります。その間、全くうんともすんとも言いません。ロゴが表示されると、そこからメニューが表示されるまではそれほど時間がかかりません。Windows 10 では比較的すぐにロゴが表示されますので、動かないと誤解されることはほぼないと思いますが、11 では、なぜロゴ表示までこんなに長く時間がかかるのか、訳が分かりません。

 さらに、Pass Mark が 5900 ぐらいのより性能が低いノートパソコンを使うと、ロゴが表示されるまで、50秒以上、メニューが表示されるまで、1分以上かかりました。ただ、パソコン起動後、2回目の ImaegeJ 起動では、そこまで長くかかりません。パソコン起動後初回のImageJ 起動で非常に長い時間がかかります。

 Java のバイナリーファイルは OS プラットフォームにかかわらず共通なはずで、OS のプラットフォームの違いを Java のランタイムが吸収しているはずですが、Windows 11 では、バイナリーをさらにランタイムが、Windows 11 に適した再バイナリー化みたいなことを行っているのかもしれません。それで、OS 起動後2回目以降の ImaegJ の起動が早くなっているのではと推測されます。

Windows 11 での Fiji のロゴ

 おそらくご相談を頂いた方は、最新バージョンをダウンロードしてクリックしてもしばらくは何の反応もないので、使えないものと誤解をされて、古いバージョンに行き着いてしまわれたのではないかと思われました。とはいえ、これではこのような誤解をされるのも無理はありません。

 

 おそらく同様な誤解をされる方が続出するもの (すでに続出?) と思われますので、こちらに記しておきます。

 

 ちなみに私のプログラムの実行時間ですが、同じマシンで、ピクセルサイズが 7600 x 5000 程度の画像を処理したところ、ファイルを開くところから処理終了まで以下の時間がかかりました。

 

Windows 11: 約 3 分 20秒

Windows 10: 約 3 分

Kubuntu 24.02: 約  3分 5 秒

 

 起動時間には OS によって大きな差が見られましたが、処理時間にはそれ程差がありません。Windows 10 と Kubuntu は誤差程度の差です。Windows 11 はやや時間がかかりますが、それでもそんなに大きな差ではありません。

 ちなみに別の Pass Mark 5400 程度の Intel Core i7 第2世代の CPU を使ったマシンで試したところ、4 分 40 秒程度でした (メモリは同じく 24G)。Pass Mark 的には 5/1 〜 4/1 程度の性能ですが、さほどさが開きません。Java はマルチコアの効果があまりなく単体コアの性能が効いてくるのかもしれません。

 あるいは ImageJ のどこかの設定をいじるとマルチコアが使えるようになるのかもしれませんが... 一応、[Edit] > [Options] > [Memory & Threads] という項目があり、Pararelle Threads of Stacks というパラメータがあるのですが、どうやら複数スタックのある画像では、一つ一つの画像をそれぞれスレッドに割り当てられるのではないかと思います。しかし、単一の画像に関しては単一のコアもしくはスレッドにしか割り当てないようなので、単一画像に対するピクセル処理などの処理速度はあまり早まらないのではないかと思われます。