小学生でも分かるバイリニアとバイキューブの違い

はじめに

これは実は分かり易い。

それは下にありますキヤノンの作成したNeural network Upscaling Toolに関する資料です。

キヤノンのNeural network Upscaling Toolとは、その名の通りAIを使って画像の解像度を縦横2倍に変換するツールです。

この資料の中に、その比較用としてバイリニア(bilinear)バイキューブ(bicube)に関するリサイズのイラストがあります。

このイラストが実に分かり易い。

両者の説明はネットを検索すればいくらでも出てくるのですが、正直帯に短しタスキに長しで余り役に立ちません。

ですが、このイラストを見ると疑問が一気に解消します。

という訳で、このイラストを使って両者の違いを分かり易くご説明したいと思います。

バイリニア(bilinear)

先ずバイリニアとは、それこそ誰でも思い付く様なシンプルな解像度の変換方法です。

どうやって変換しているかと言えば、仮に解像度を2倍にするのならば、オリジナルの画素の間に周囲の画素のRGB値を平均した画素を追加するだけで良いのです。

それを縦方向と横方向に行なえば、写真の解像度は簡単に4倍になります。

ところがその場合、何となく画像のシャープ感が落ちるのです。

その理由が分からなかったのですが、下の図を見ると一目瞭然です。

この場合オリジナルの画素の間にその中間の濃度の画素を追加するため、本来の濃度の傾斜が破線なのに対して、変換後はその傾斜が緩くなるです。

そういう事だったのか。

それでバイリニアによる変換後はシャープ感が低下して見えたのです。

さすがキヤノンさん、分かり易いイラストを作るものです。

ちなみバイリニアのバイ(bi)とは2を表す接頭語で、縦と横の二方向にリサイズする事を表しています。

またバイリニアのリニア(linear)とは直線という意味で、単に両側二つの値を平均するだけの一次関数の変換方法という事を表しています。

バイキューブ(bicube)

次にバイキューブ(bicube)ですが、これは縦横の両方向にキューブ(立方)する変換方法です。

と言っても、立方体にして変換するという意味ではなく、三次関数の式を使って変換する事を意味します。

この場合は、バイリニアが縦横2×2の4画素を基にしていたのに対して、4×4の16画素を基に変換します。

その際追加する画素に近い画素と遠い画素で重み付けを行なうために、三次関数を使うという訳です。

このため急激に色が変化する所では、計算値がオーバーシュートして下の図にあります様にオリジナルの値より暗くなったり明るくなったりするのです。

バイキュービックの場合、色の変わり目でオーバーシュートする

すなわち、暗い色側のフチに黒線、明るい色側のフチに白線が発生してシャープになった様に見えるのです。

ちょうどシャープネス処理を掛けた様なものです。

いやはやこれで長年の疑問が解消しました。

まとめ

という訳で画像をリサイズする場合は、通常は輪郭がはっきりするバイキュービックを使用して、もし輪郭のエッジが気になる場合や、少し画像をまろやかにしたい場合はバイリニアがお勧めと言えます。

それともう一つ。

このキヤノンのNeural network Upscaling Toolは、両者の問題を解消して2400万画素の写真を9600万画素にしてくれますので、キヤノン機を使っている方は使ってみる価値は十分あります。

最後にもう一つ。

バイリニアバイキュービックとなると、その間にバイスクエアなるリサイズ方法がある様に思うのですが、どうなのでしょう?

コメントを残す