Google Project Starline の元となったであろう論文『Real-time Compression and Streaming of 4D Performances』を読んでいく
そもそも Project Starline とは?
まずはこちらをご覧ください。
YouTubeのvideoIDが不正ですGoogle I/O 2021 で発表された Google の新規プロジェクトで、3Dモデルのリアルタイムなスキャン&圧縮&伝送と裸眼立体視が可能なディスプレイを組み合わせて、HMDを使わずにリアルタイムで空間を共有できるシステムの研究開発を目指している。
Real-time Compression and Streaming of 4D Performances
このスクラップでは Project Starline の「3Dモデルのリアルタイムなスキャン&圧縮&伝送」の部分の元になったであろう、2018年にGoogleが発表した論文『Real-time Compression and Streaming of 4D Performances』(以下、論文)を読んでいく。
Starline ではカメラは前方1か所にしかないように見えるけど、論文では被写体を360度囲む形(panoptic configuration)でカメラが配置されている。
もしかしたら Starline は複数のカメラを前面に円弧状に設置しているのかもしれない。
圧縮時間短縮や圧縮率向上のポイントは、TSDF(Truncated Signed Distance Function)をSDFに効率的にマッピングするアルゴリズムにある。また、ただマッピングするだけではアーティファクトが発生するので、デコーダ側で量子化残差を補正する変分最適化も提案している。
論文のパイプライン。
多視点画像は動画として伝送するが、特別なアルゴリズムは使わず既存のGPUハードウェアエンコーダ(NVIDIA NVENC)を使う。
深度画像は、まず motion2fusion で 8x8x8 の TSDF に変換する。次に Dicer モジュールで TSDF とそのインデックスの組み合わせ(code book)を作るが、インデックスは差分符号化・エントロピー符号化して code book や Range Encoder モジュールで使用する CDF(Cummulative Distribution Function: 累積分布関数) をより圧縮できるようにする。TSDF 自体のエンコーディング・デコーディングは後ほど記述する。
4Dキャプチャで使うRGBDカメラは8台で被写体のまわりに配置する。RGBD カメラの型番等には触れられてないが、1つのRGBDカメラは1つのRGBカメラと2つのIRカメラで構成されているそう。IRパターンの投影方法は論文を参照のこと。
TSDF のエンコーディングプロセス
- 見えないボクセルを扱うように設計された変形KL変換によって
個のブロックを低次元潜在空間の係数ベクトルm=1...M にマッピングする。\{X^m\} -
個のブロックの係数のヒストグラムを計算し、それらをM に量子化する。\{Q^m\} - ビットレートのアロケーションを減らすために、ロスレスの Range Encoder モジュールによってビットストリームに圧縮する。
TSDF のデコーディングプロセス
デコーディングは基本的にエンコーディングの逆変換を行い係数列
SIGGRAPH Asia でテクニカルペーパーが公開されている。