Open9

Google Project Starline の元となったであろう論文『Real-time Compression and Streaming of 4D Performances』を読んでいく

Koya IWAMURAKoya IWAMURA

そもそも Project Starline とは?

まずはこちらをご覧ください。
YouTubeのvideoIDが不正ですhttps://youtu.be/Q13CishCKXY?t=35

Google I/O 2021 で発表された Google の新規プロジェクトで、3Dモデルのリアルタイムなスキャン&圧縮&伝送と裸眼立体視が可能なディスプレイを組み合わせて、HMDを使わずにリアルタイムで空間を共有できるシステムの研究開発を目指している。
https://blog.google/technology/research/project-starline/

Koya IWAMURAKoya IWAMURA

Real-time Compression and Streaming of 4D Performances

このスクラップでは Project Starline の「3Dモデルのリアルタイムなスキャン&圧縮&伝送」の部分の元になったであろう、2018年にGoogleが発表した論文『Real-time Compression and Streaming of 4D Performances』(以下、論文)を読んでいく。

https://research.google/pubs/pub47782/

Koya IWAMURAKoya IWAMURA

Starline ではカメラは前方1か所にしかないように見えるけど、論文では被写体を360度囲む形(panoptic configuration)でカメラが配置されている。

もしかしたら Starline は複数のカメラを前面に円弧状に設置しているのかもしれない。

Koya IWAMURAKoya IWAMURA

圧縮時間短縮や圧縮率向上のポイントは、TSDF(Truncated Signed Distance Function)をSDFに効率的にマッピングするアルゴリズムにある。また、ただマッピングするだけではアーティファクトが発生するので、デコーダ側で量子化残差を補正する変分最適化も提案している。

Koya IWAMURAKoya IWAMURA

論文のパイプライン。

多視点画像は動画として伝送するが、特別なアルゴリズムは使わず既存のGPUハードウェアエンコーダ(NVIDIA NVENC)を使う。

深度画像は、まず motion2fusion で 8x8x8 の TSDF に変換する。次に Dicer モジュールで TSDF とそのインデックスの組み合わせ(code book)を作るが、インデックスは差分符号化・エントロピー符号化して code book や Range Encoder モジュールで使用する CDF(Cummulative Distribution Function: 累積分布関数) をより圧縮できるようにする。TSDF 自体のエンコーディング・デコーディングは後ほど記述する。

Koya IWAMURAKoya IWAMURA

4Dキャプチャで使うRGBDカメラは8台で被写体のまわりに配置する。RGBD カメラの型番等には触れられてないが、1つのRGBDカメラは1つのRGBカメラと2つのIRカメラで構成されているそう。IRパターンの投影方法は論文を参照のこと。

Koya IWAMURAKoya IWAMURA

TSDF のエンコーディングプロセス

  1. 見えないボクセルを扱うように設計された変形KL変換によって m=1...M 個のブロックを低次元潜在空間の係数ベクトル \{X^m\} にマッピングする。
  2. M 個のブロックの係数のヒストグラムを計算し、それらを \{Q^m\} に量子化する。
  3. ビットレートのアロケーションを減らすために、ロスレスの Range Encoder モジュールによってビットストリームに圧縮する。
Koya IWAMURAKoya IWAMURA

TSDF のデコーディングプロセス

デコーディングは基本的にエンコーディングの逆変換を行い係数列 \{X^m\} を生成する。ただし、ビットレートが低い場合は JPEG のようなアーティファクトが見られるので、圧縮された信号の性質を利用してアーティファクトを除去する処理も施す。最後にゼロクロス(境界面)を抽出する既存のGPU向けアルゴリズムにより三角形のメッシュを生成し、テクスチャマッピングを行う。