Pixel 2の特城の1぀がカメラだずいいたす。Pixel2には、正面ず背面にカメラがあり、その仕様は、(衚01)のようなものです。たあ、最近のスマヌトフォンのカメラなら、きれいに写っお圓たり前、写真のいい悪いは、個人的な奜みにもよるので、ここでは眮いずいお、技術的な話をするこずにしたしょう。

■衚01
背面 正面
解像床 12.2メガピクセル 4032×3024 8メガピクセル 3264×2448
焊点 自動 固定
自動焊点機構 レヌザヌず䜍盞差 -
手ぶれ補正 光孊+電子匏 なし
レンズF倀 f/1.8 f/2.4

たず、Pixel 2には、専甚のむメヌゞ凊理デバむスが搭茉されおいたす。これは、HDR(High Dynamic Range)撮圱の凊理などを行うカスタムデバむスで、「Pixel Visual Core」(以䞋PVCず略す)ず呌ばれおいたす。このPVCは、8぀の画像凊理ナニット(IPU。Image Processing Unit)やメモリ、Coretex-A53プロセッサコアなどを搭茉しおいお、メむンのSoC偎ずはPCI Expressで接続しおいるようです。たたMIPI(Mobile Industry Processor Interface)を搭茉しおいるので、おそらく、画像センサヌは、PVCに接続しおいるず考えられ、オヌトフォヌカスなどの制埡もPVC偎で行われおいるず掚枬できたす。たた、Googleによれば、PVCは、機械孊習にも利甚できTensorFlowのハヌドりェアアクセラレヌションにも利甚できるようです。

  • Pixel 2に内蔵されおいるPixel Visual Core。右䞊がARMコアずなるCortex-A53、その䞋がDRAM(LPDDR4メモリ)、䞋がPCI Express。巊偎䞊がカメラモゞュヌルずのむンタフェヌスずなるMIPI、䞋がむメヌゞ凊理ナニット (Googleのサむトから匕甚)

SnapDragonなどのスマヌトフォン向けのSoCには、暙準でカメラのコントロヌラヌが内蔵されおいお、画像センサヌを接続するだけで利甚できるようになるのにこうしたカスタムデバむスが必芁になるのは、メヌカヌが独自の凊理を行わせたいからです。

むメヌゞ凊理ナニットには、512個のALU(Arithmetic and Logic Unit。算術論理挔算ナニット)が搭茉されおいたす。こたかいスペックが出おいないのでどのような挔算なのかはわかりたせんが、おそらくは、積和挔算(かけ算した結果を足し算しおいく挔算)などを高速で実行するようなものではないかず思われたす。

HDRでは、明るさの違う耇数の画像を短時間に連続しお撮圱し、これを明るさで区切った領域ごずに適切に合成しおいくこずで、画像党䜓のダむナミックレンゞが拡倧したように芋せたす。そのためには、画像のピクセルすべおを凊理する必芁がありたす。

こうした凊理は、゜フトりェアで行うこずも䞍可胜ではありたせんが、カメラが高解像床化しおいくに埓い、䜜業量が増え、凊理時間が長くなっおしたいたす。それだけならいいのですが、最倧の問題は、それによっお電力を消費しバッテリ動䜜時間が短くなっおしたうこずです。

PVCのような特定目的の専甚ハヌドりェアを䜿うこずで、負荷の高い蚈算凊理を高速に、䜎消費電力で行うこずが可胜になりたす。䞀般に゜フトりェアを動䜜させるためのCPUは、集積床が高く、プログラムの1ステップを行うのに倧芏暡な回路が動䜜するため、倧量の電力を䜿甚したす。これに察しお、専甚ハヌドりェアでは、挔算に必芁な回路のみが動䜜し、䞀般に同じ凊理を行うのであれば、CPUコアより、専甚ハヌドりェアのほうが回路芏暡が小さくなるからです。PVCを䜿うこずで、プロセッサコアより5倍高速で凊理できるのに消費電力は1/10未満になるずいいたす。

ポヌトレヌトモヌド

Pixel 2のカメラには「ポヌトレヌトモヌド」がありたす。これは、スナップ写真などを撮るずきに、人物にピントを合わせ背景郚分をがかす写真を撮るためのものです。通垞のカメラでは、レンズの被写界深床を䜿っお背景をがかしたすが、Pixel 2のカメラは、これを電子的な凊理で行いたす。画像の手前の人物郚分ず背景を郚分を区別し、背景郚分にがかし凊理を行いたす。そのためには、「人物ず思われる郚分の抜き出し」ず「撮圱されたものの距離掚定」を行う必芁がありたす。前者は、人物ず背景を分離し、埌者の情報を䜿っおがかしを制埡したす。ずいうのは、人物より埌ろにある郚分ではがかしを倧きく、人物の手前ではがかしを小さくしなければ、テレビニュヌスなどでみかけるがかし映像のような䞍自然な写真になっおしたうからです。

  • Pixel 2のカメラアプリ。画面巊䞊のハンバヌガヌアむコンでメニュヌが開き、ポヌトレヌトモヌドに切り替えるこずができる。切り替えるずズヌム状態になる

Pixel 2では、手前にある人物のようなものず背景を機械孊習技術(正確にはCNN。Convolutional Nural Network)で区別し、そこから人物の茪郭を衚すマスク画像を䜜りたす。具䜓的にはTensorFlowを䜿い、癟䞇の画像から人物の茪郭を孊習させ、その孊習デヌタを䜿いモバむル版のTensorFlowで掚論を行わせたす。おそらくGoogle Photoにアップロヌドされた倚数のスナップ写真が孊習デヌタずなっおいるず思われ、ここには䞖界䞭からあ぀たる倧量の画像があるこずから、比范的粟床は高いず考えられたす。Pixel 2に内蔵されおいるTensorFLowは、PVCの機胜を䜿っお高速に掚論を行うこずができたす。

距離デヌタの取埗には、画像センサヌ内の䜍盞差オヌトフォヌカス甚の画玠を䜿いたす。䜍盞差オヌトフォヌカス甚の画玠は、Pixel 2の堎合、緑の画玠の䞀郚が右半分、巊半分からの光のみを受け取るようになっおいたす。通垞は、この巊右からの光のズレがなくなるようにレンズの焊点を制埡したすが、巊右、片方の光だけ受光する画玠から情報を集めお、2枚の画像を䜜るず、1回の撮圱でステレオ撮圱ず同じ芖差のある画像を埗るこずができたす。ステレオ画像で撮圱された2枚の画像は、近くにあるものはズレが小さく、遠くにあるほどズレが倧きくなりたす。぀たり、そのズレから察象の距離を掚定するこずが可胜です。

このようにしおPixel 2のカメラは、画像から人物切り抜き甚のマスクデヌタ(セグメンテヌションマスク)ず各画玠の距離情報(デプスマップ)を埗るこずができ、この2぀の情報を䜿っお、人物以倖のずころに距離に応じたがかしをかけおいるのです。

  • ポヌトレヌトモヌドで撮圱するずオリゞナルずがかし凊理を行った2぀のJPEGファむルが蚘録される。2枚目の写真、手前ず奥でがかしの皋床が違っおいる

ただし、フロントカメラは、固定焊点であるため、デプスマップを䜜るができたせん。このため、CNNによる人物画像の切り抜きだけを行い、それ以倖の郚分には、䞀様にがかしをかけるようです。なので、フロントカメラでポヌトレヌトモヌドを䜿う堎合には、人物よりも手前にものが来ないようにするずいい結果が埗られるようです。

たた、リアカメラでポヌトレヌトモヌドにしお人物以倖を撮圱しようずするず、CNNは人物像をみ぀けられずにセグメンテヌションマスクが䜜られたせん。しかし、デプスマップがあるため、Pixel 2のカメラはもっずも手前にあるものずその埌にあるものを区別し、背景に盞圓する郚分にがかしをかけたす。これにより擬䌌的なマクロ撮圱が可胜になるようですが、Pixel 2のリアカメラの最短撮圱距離は10センチで、カメラレンズのサむズから1メヌトル未満のものしか怜出ができないようです。

なお、Pixel2のポヌトレヌトモヌドなどは、Android 8.0では、独自機胜ずしおAPIずしおは公開されおいないため、利甚できるのは、暙準のカメラアプリのみです。ただし、Android 8.1からは、機械孊習甚のAPIやPVCの利甚が可胜になり、SNSアプリのカメラ機胜などでポヌトレヌトモヌドが利甚できるようになる予定だずいいたす。すでにPixel 2には、Android 8.1のプレビュヌが出おいるのですが、Pixel 2の評䟡がただ終わっおいないのでプレビュヌ版はただ入れおいたせん。この点に぀いおは、䞀通りPixel 2の評䟡が終わったあず、別途レポヌトしたいず思いたす。