[Oculus]3D動画をストリーミング再生する方法 – 14 –

前回はボトルネック調査の観点から現状の処理に対して、各種時間計測を行い、画像の生成処理に時間を要している事、JNIを使うことで改善が図れる可能性がある事まで調査する事ができました。

今回は、制御処理の改善はもちろんですが、撮影された画像を、Oculusを利用する上で重要な3Dパノラマで表現する点に着目し、撮影される画像と、生成する素材の側面から改善策を探ってみます。

まず、初めに検討材料として上がったのは、Oculusに表示する画像の種類や品質についてです。
これまでは、スマートフォンのカメラで撮影した画像を表示しているため、Oculusを用いてVR空間を表現するには、最低でも前後左右天地の6枚の素材が必要になり、その6枚の素材が一定のフレーム単位で取得できる必要がありました。
更に、これらの画像は、1フレーム毎にUnity側で各面に対して素材を貼り、各面のつなぎ目を違和感をなく表現できる、合成加工処理も必要になります。

前回の記事でもあるように、画像を生成する処理は時間を要してしまうにも関わらず、最低6面×フレーム数分の画像を合成となると、プログラムサイドだけでの改善には限界があると感じます。
では、この画像合成処理をどうすれば、極力プログラム側に負荷をかけずに済むのかという事になりますが、撮影時点で6面全部撮れてれば、フレーム数分だけで済むと考えました。
そこで、登場するのが今回ご紹介する、RICOH THETA Sになります。

結構、前から発売されていて、ご存知の方も多く、今更な感もありますが、続きをご覧ください。

上記の公式ページをご覧頂くとわかりやすいですが、RECOH THETA Sは、一度のシャッターでカメラを中心とした、360°方向全てをパノラマ撮影できる、全天球カメラと呼ばれるものです。

#全天球カメラやTHETA S自体がどういったもので、何ができるかというお話を細かく書いてしまうと、
#2,3週かかってしまう為、割愛します。すみません。

なぜ、このTHETA Sを使用するかというと、先ほど書いている通り、1度のシャッターでカメラを中心とした全方向の映像が、画像や動画として撮影されるのですが、撮影された素材は複数ファイルになる事がないので、1フレームあたりの画像が1枚で済む事になるからです。
これまでの画像では、VR空間を1フレーム表現するのに使用する素材は最低でも6枚必要と考えていたので、1枚の画像で表現できることで、画像の合成、生成にかかるコストはかなり低減できるはずですし、THETA Sで撮影した全天球素材は、撮影している被写体が360°方向である事で、OculusなどのVR表現に最適な見た目となる(はずです。。)

更に、THETA Sは撮影中の動画をスマートフォンやPCからリアルタイムで取得する事もできるので、目標としていたOculusを利用したVR映像のリアルタイム再生にも使用できると期待しています。
THETA S自体は、RICOHからとても使いやすい、SDKが公開されているので、カメラを操作したり、撮影した映像、画像をカメラから取得するモバイルアプリなども作成しやすくなっています。
と、ここまでTHETA Sの宣伝のような形になってしまっていますが、もちろん導入した上で我々が実現したいストリーミング、リアルタイムそれぞれの形式での高速なVR映像の配信という観点から、課題の改善効果の検証と新たな課題の解決が必要になります。

改善効果の検証としては、全天球で撮影された映像や画像を使用する事で、物理的なファイルサイズが大きくなる為、
上記「はず。。。」の部分を実際に確認すると共に、本当に効果を得られるのか以下の点について具体的な検証や実験を進めていこうと思っています。

・画像のアップロードの時間(アップロード速度の改善)
・動画変換の処理時間(全天球画像を人間が認識できる表示形式に変換する)
・フレームレートの最適化(全天球素材時の最適レートの調整)
・全天球表現速度の検証(Unity側表示クライアントの画像表示速度の検証)

今週は、画像合成の改善にTHETA Sというデバイスを使用したアプローチと概要、導入した上での検証や実験の方向性を簡単にまとめてみましたが、これまでの課題に対する検証も、新たに生まれる課題の検討も、
まずは、スマートフォンとTHETA Sを連携した上で、撮影した映像、画像を取得しないことには何も始まらないので、来週以降は本格的にTHETA Sを導入した環境での検証や実験状況を公開していこうと思います。

最後までご覧頂きありがとうございます。 
来週も是非ご覧いただけると嬉しいです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*