先日のことになりますがついにOPPO Find 7の発表がされ、あの50MPの写真がどのように作られているかが明らかになりました。CMOSイメージセンサーはソニーのIMX214で、やはりカメラ自体の画素数は13MPとのことでした。そして、SuperZoomと名付けられた50MPの写真を作る技術は「10枚の写真を取って最も良い画像を合成して一枚の50MPの写真にする」ものだそうです。いやー見事に予想が外れました……。画像の合成というと私はパノラマのようにカメラを動かして画角を広げることしか頭になく、まさか同じ位置で撮った写真のピクセルを再配置するとは……。その行為にあまり意味がないと思っていたので初めから除外していました。
4枚のイメージを合成するパターンで考えてみます。
連続した4枚の写真を、ただ貼り合わせるのではなくピクセル単位で分解して再配列させる……と。これなら確かに一枚の写真として不自然ではありませんね。
さて、連続した写真を合成すると技術と言は、以前にこちらで触れましたが、これは連続写真の対応する各ピクセル値の平均を取った絵を出力するというものでした。考えてみればこのSuperZoomと似たようなものです。というわけで、ImageJでSuperZoomを簡易的にエミュレートするプラグインを作ってみました。
利用するのは前回と同じくねんどろいど式さんの連続写真。写真はiPhone5のSnappyCamで撮った8MPのもので、無加工の画像と4つの画像を合成した写真を比較しました。その図がこちら。
左側が無加工の1枚写真を200%に拡大したもので、右側が32MP合成写真の等倍図です。 一見して、画像合成写真はノイズが押さえられていることがわかります。ディティールも合成写真のほうが良いように見受けられます。これは画素を並べることで情報が増えているからなのでしょうか? それぞれの元の写真のS/N比は同じはずなので隣に並べてもS/N比は変わらないだろうと私は思っていたのですが……。
次に合成写真の特性を見るために4枚合成の32MPと9枚合成の72MPの写真を拡大して見てみます。
縦縞や横縞の模様が確認できます。今回は各ピクセルを左上から右下にかけて順番に、単純に再配列させてるため、4枚合成であれば2*2、9枚合成であれば3*3でリピートする模様があることも分かります。また、斜め線のコントラストの高い部分、この例で言うと黒目と白目の間に注目するとややギザギザ感も感じられます。
ここで改めて以前アップロードされていたFind 7の画像を検証してみます。
確かにギザギザ感と同じような模様が見える……気がします! しかし写真全体を見渡すとFind 7のほうが上手く合成しているように見えます。その理由として10枚連写の中から特に良い写真をピックアップするアルゴリズムの違いが考えられ、今回私が行ったピクセルの再配列のような単純なものではないのかもしれません。
SuperZoomの機能は果たして意味があるのかと思わた方もいらっしゃると思いますが、これらの結果から私は「SuperZoomの機能は写真の画質に良い影響をもたらす」と結論します。ただ、本機をまだ所持していないため、どれだけ実践的であるかという面はまだ結論が言えないところです。
最後におまけとして、今回合成写真を作るために作成したプラグインと合成写真をここに公開します。当たり前のことではありますが、再現性が取れないと問題に取り上げられますからね……。
使い方としては平方数枚(4、9、16枚など)の画像スタックを開いたところでPluginsにあるEmulateSuperZoomを選択すれば合成写真が作成されます。なにか分からないことがあればTwitterより@argos_M1111までお問い合わせ頂ければと思います。
(編集・校閲: 高橋ノゾム)