PICO 4 Ultraのシースルーモードについて考察する機会があったので、加筆・修正を行って記事に起こしました。情報源が少なく、推測を多く含むので正確な情報ではないことを予めご了承ください。
※PICO 4 Ultraのディスプレイ解像度は2160pxですが、スクリーンショットは1920pxとなります。その為、掲載した画像は実解像度ではありません。また、JPEG圧縮も掛かるので品質が低下しています。雰囲気だけでも感じ取っていただければ幸いです。
シースルーモードの解像度は8MP
きっかけは、32MPでシースルーモードを使用することはできないのか?という話から始まりました。
というのも、PICO 4 Ultraのカメラは32MPですが、実際には8MPで動作しています。どこかで聞いたことがあるような話ですね。後述しますが、最近のスマホのカメラがそういう仕様だったりします。
公式の説明
公式サイトの記載を見ると、PICO 4 Ultraのシースルーモードについて以下のようにありました。
PICO 4 Ultraのカラースルーモードでの画質は8MPで、32MPカメラで撮影した、基となる画像を複数組み合わせて実現しています。頭部の動きに対応できるよう、カメラが視野に余裕を確保するので、画面に表示される実際のピクセル数は8MPよりも少なくなります。
カメラの長方形の画像は、シースルーモードの円形の視野に合わせてトリミングされます。22.5PPDという値は、画面の画素密度と中央部分の光学設計から算出しています。(光学レンズの表面はカーブしているため、PPDの値は位置によって異なります)
MR画像のフレームアライメントが72Hzであるということは、MRモードで画面のフレームレートとカラーシースルーカメラのフレームレートが72Hzで一致することを意味しており、MR体験がよりスムーズになります。この機能は、今後のOTAアップデートで更新される予定です。
PICO4 Ultra- ウルトラ VR-MR ヘッドセット | PICO JapanPICO4 Ultra は、高解像度、低歪み、よりスムーズなエクスペリエンスを備えた、新しく優れたミックス リアリティ VR ヘッドセットです。
念のためにアーカイブで確認しましたが、発売時から内容の変更はありません。
どういう処理をしているのかを考える
さて、順番に内容を見てみましょう。右目と左目用をそれぞれ8MPで撮影した映像を組み合わせることで、立体視可能なカラースルーを行っているという点は不明点はないかと思います。
余裕を設けて撮影している
「頭部の動きに対応できるように余裕を確保する」という部分については、Asynchronous Timewarp(ATW)のようにトラッキング情報を元にして補正を掛ける為に必要であると推測します。あるいは視界のゆがみを抑えるために十分な余裕を設けているという可能性も考えられますね。この点は情報がないので仕方ありませんが、理由はともかく8MPで撮影した映像全てが視界に入るわけではないようです。
仮に正方形で撮影しているのであれば、1辺辺り2828px程度になります。シースルーモード時はEyeBufferが片目2400pxとなっているので、少なくとも上下左右に200pxぐらいの余裕を設けてそうです。(※PICO 4 Ultraのディスプレイ解像度は片目2160pxです。)
レンズのゆがみに合わせて補正が必要
ここから更にパンケーキレンズのゆがみに合わせて補正を掛ける必要があるので、映像を大きく歪ませることになります。
通常のスクリーンショットでは補正前の正方形画像として写るのですが、レンズ越しに実際に見えている範囲は赤丸の範囲です。
こちらは右目のカメラに対してちょうど視界が隠れるよう、コースターをギリギリまで近づけてみたものです。レンズ越しに見える範囲よりも、かなり広範囲を撮っているようですね。
レンズのゆがみに合わせて補正をした後は、上の画像のようになります。
撮影した向きが少しズレているので背景が違いますが、端の方が圧縮されて歪んでいるのが分かるかと思います。引き伸ばされたり圧縮されたりするので、少し表示品質が落ちます。


余談ですが関連情報として、「Fixed Foveated Rendering」というものがあります。大雑把に言うと、中心の解像度を最優先して周辺は荒くレンダリングする事で負荷を下げる技術ですね。シースルーモード時は3Dレンダリングされた映像ではなく、カメラからの実際の映像となるので中心だけ解像度を上げるというのは難しそうに思えます。
VRヘッドセットで使われる指標 PPDについて
PPDとは視野角1度あたりの水平ピクセル数です。
公式サイトの記載によるとPICO 4 Ultraの場合は平均20.6PPD、中央部が22.5PPDとなります。レンズのゆがみを考慮しないで計算すると、「ディスプレイ解像度2160px/水平視野角105度=約20.57PPD」となりますので、平均20.6PPDというのは恐らくここから来ています。
参考までにQuest 3のPPDは中央部が最大25PPDで、パススルー時は18PPDです。ゆがみとディスプレイの比率を考慮しない場合、Quest 3は4MPのカメラなので、単純計算で「2000px/110度=約18.18PPD」といったところでしょうか。
PPDについては明確なデータがないことや、レンズの品質が異なるので比較が難しく、計算も正確ではないと思います。レンズに関してはQuest 3のレンズが高品質な事に定評がありますので、単純比較できる感じではなさそうですね。

32MPでは動かせない理由
長くなりましたが、ここからが本題です。何故32MPではなく8MPなのかについて考察します。
処理能力の都合
まず、Snapdragon XR2 Gen2のスペックシートでは、「2x IFE for 12 MP @ 90 FPS Bayer for video see-through」との記載があるので、シースルーカメラとして使う場合にピクセルベースの単純計算で「12MP*2台*90FPS=2160MP/秒」の処理能力があると考えることができます。
PICO 4 Ultraのシースルーモードは72FPSで動作しているので、そのまま32MPで動かそうと思うと「32MP*2*72=4608MP/秒」の処理能力が必要となってしまうため、Snapdragon XR2 Gen2の2.133倍の性能が必要という事になります。
無理やり動かすとしたら、「2160MP/(32MP*2)=約33.75FPS」となりますし、シースルーモードでのアプリの同時利用やバッテリー消費を考慮すると現実的ではありません。この考え方が正しいのかは分かりませんが、32MPで72FPSの立体視可能なシースルーは、Snapdragon XR2 Gen2では処理能力が足りなくて行えないだろうというのは想像はできますね。
流通している部品やコストの都合
32MPは無理だということが分かりました。では何故12MPや15MPではなく、8MPとなっているかについて推測します。
これは近頃のスマートフォン用カメラで主流となっている「クアッドベイヤー配列のイメージセンサー」を使用しているからではないかと考えています。細かいところは端折りますが、スマートフォンのカメラで使用する際は、明るい場所では32MP解像度優先・暗いところでは4画素を共有(ピクセルビニング)して8MPで高感度撮影をするという使われ方をします。32MPの他に48/50/64MPあたりのものがよく使用されているようです。

また、このタイプのセンサーはスマートフォンのメーカーによって使い方が異なります。例えば、過去にレビューした「Redmi Note 9S」や「AQUOS sense4 plus」はどちらも48MPのカメラを搭載していました。Redmi Note 9Sは標準12MPとなっていて、高解像度撮影モード時は48MPが使えるようになっていましたが、AQUOS sense4 plusは48MPは使えず12MPが上限でした。


VRヘッドセットは照明の暗い屋内で使うことがほとんどでしょうし、ノイズや白飛びなどを割けるために感度やダイナミックレンジを優先して8MPという設定になったのだと考えます。コスト面についてはちょっと分からなかったのですが、最初から8MPのイメージセンサーよりも、32MPや48MPの方が多く流通していて入手しやすかったのかなと思えます。
性能的には12MPや15MP程度に解像度を上げることは可能だと思うのですが、そうしなかった理由を考えてみるのも面白いかもしれませんね。自分たちのような一般ユーザーが思いつく内容というのは、開発者側も一度は考えているはずですので。
実際の品質をレビュー
で、実際のところはどう見えてるの?という部分に焦点を当ててみます。他人の意見を聞いてみると、肯定的な意見もあれば否定的な意見もありますし、部屋の光量もまちまちです。ソフトウェアのバージョンが古いときのレビューもあります。
現時点で最新版となる「PICO OS 5.13.3.U」の場合をレビューしますが、レンズ越しに見ていることやスクリーンショットの解像度が1920pxのJPEG画像に落とされてしまう制限もあるので、正確にお届けするのは難しいです。
バーチャル空間とシースルーを比較
スクリーンショットが1920pxなのでガビガビして見えないのですが、メトリクスHUDにはEyeBufferが2400pxである表示が出ているのが分かります。つまり、2400pxでレンダリングしたものをレンズに合わせて歪ませたうえで、2160pxのディスプレイに表示している形になります。
シースルーの方は前述したとおり、8MPより少し小さいぐらいの解像度になる事が予想されます。ホームスペースのパフォーマンス設定を下げると、解像度が落ちるのでシースルーの見た目も低下しますが、逆に2400px以上に上げたとしても見た目に変化が感じられません。(※シースルーモードになるALVRの解像度設定を開発者オプションから変更して確認)
約2828pxから上下左右を200px程度確保して、EyeBufferと同じ2400pxは保持されてそうな気はします。レンズのゆがみ補正分の劣化もあるでしょうから、中央部で8MP相当の解像度が維持できているかはちょっと分からないです。
ゆがむときもたまにある
結構しっかりとしていてゆがみはとても少ないですが、位置や角度によっては補正が上手く行かずにゆがんでしまうことはあります。散らかってるって?うん……。
とはいえ、常にゆがみがあってイライラするような事はないと思います。ディスプレイの文字も快適に読みやすいとは言いませんが、白飛びせずに見えるので読めないことはないという感じです。
距離感はちょっと違う感じがありますけれども、無印のPICO 4のような単眼カメラと違ってちゃんと立体視はできています。スマホを持って操作しようとすると、タップしにくいかなと。
以下の2枚はPICO 4 Ultra発売当初の比較ですので、PICO OS 5.12.0.Uの頃だったはずです。
シースルーモードの品質向上は何度かあったと記憶していますので、5.13.3.Uアップデート適用後である現在はなんとなく良くなってる気はします。でもちゃんと記録を残していないので比べられません。残念。
パッケージの文字は読める
スマートフォンの画面以外を見てみましょう。実際の見え方に合わせて大雑把に拡大して画像編集するとこういうイメージでしょうか。しっかり読めます。
レンズのゆがみ補正後の表示で動画にするとこんな感じですが、見えている範囲はもっと狭いです。画面端に見えるはずの「録画中の赤いアイコン」があまり端っこにないあたりから察していただけると助かります。
こういった平面的で文字の書かれているものを正面に持ってくると、補正される瞬間が分かるときがあります。
ちなみにスクリーンショットの設定を16:9モードにしておくと、16:9でキャプチャ可能です。あまり複雑な背景でなければ、補正によるゆがみはほぼ感じられないですね。
あえて暗所で使ってみる
ちょっと意地悪してみましょう。早朝5時前の暗さでシースルーモードを使用してみます。
真っ暗闇だとトラッキングすらできなくなりますので、辛うじて使えるようにするためにカーテンを開けています。存在をすっかり忘れてましたが、赤外線LEDライトがあれば暗闇でも動作します。
まぁ意外と見えなくもないというか、スマートフォンのカメラで動画撮影するときと大差ない暗さとノイズ感のように感じられます。
この暗さでスマートフォンを使用するとどう見えるかも試しました。スマートフォンのディスプレイの明るさを少し上げておく必要はありましたが、白飛びせずに文字が見えています。
使用しているのは「Pixel 8 Pro」です。実際の視界相当まで拡大してみると以下のような感じになります。
スクリーンショットが1920pxのJPEGに圧縮されてしまうので潰れ気味ですが、実際はもう少しだけ見やすいです。
やはり距離感が正確ではないのですが、その気になれば文字も打てそうです。
明るいときとの比較はこういう感じになります。
何度も言いますが、実際はもう少しだけ解像度が高いので小さい字も見えています。とはいえ、雰囲気は大きく変わりません。少しノイズがあってクッキリと鮮明に見えている感じではないんだなというのは伝わってくると思います。
また、シースルー用カメラにオートフォーカスはなく、近くに持ってくるとぼやけて見えます。30cm程度は離して見るのが良いと思いますよ。
Quest 3と比べるとどちらが綺麗かと言われると、Quest 3の方がレンズの品質が高くて鮮明に見えているように思えます。Quest 3は所持しておらず、家電量販店の明るい照明での比較しかできないので、自宅で使ったときにどう見えるのかは分からないのですが。
レビューはここまでとなります。今後のアップデートで改善があれば、また詳しく見ておきたいですね。