(57)【要約】  四角錐台の形状に360度のビデオデータをマッピングするための、技法およびシステムが説明される。360度のビデオフレームは、360度に相当する画素データを含み得るので、球面の形状であり得る。球面のビデオデータを四角錐台によって提供される平面にマッピングすることによって、360度のビデオフレームの全体のサイズを減らすことができる。四角錐台の平面は、四角錐台の下底が前方の視界を表現し、四角錐台の上底が後ろの視界を表現するように方向付けられ得る。このようにして、前方の視界を完全な解像度でキャプチャすることができ、後ろの視界を低減された解像度でキャプチャすることができ、左、右、上、および下の視界を低下する解像度でキャプチャすることができる。フレームパッキング構造は、四角錐台の形状にマッピングされた360度のビデオデータに対しても定義され得る。
2019509690.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化するための方法であって、
仮想現実ビデオデータを取得するステップであって、前記仮想現実ビデオデータが仮想環境の360度の視界を表現し、前記仮想現実ビデオデータが複数のフレームを含み、前記複数のフレームからの各フレームが対応する球面ビデオデータを含む、ステップと、
前記複数のフレームからのあるフレームのための前記球面ビデオデータを四角錐台の平面へとマッピングするステップであって、前記四角錐台の前記平面が、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含み、前記上底平面のサイズが前記下底平面のサイズより小さい、ステップとを備え、前記球面ビデオデータをマッピングするステップが、
前記球面ビデオデータの第1の部分を前記下底平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第2の部分を前記上底平面へと低減された解像度でマッピングするステップと、
前記球面ビデオデータの第3の部分を前記左側平面へと低下する解像度でマッピングするステップと、
前記球面ビデオデータの第4の部分を前記右側平面へと低下する解像度でマッピングするステップと、
前記球面ビデオデータの第5の部分を前記上側平面へと低下する解像度でマッピングするステップと、
前記球面ビデオデータの第6の部分を前記下側平面へと低下する解像度でマッピングするステップと
を備える、方法。
【請求項２】
前記球面ビデオデータを長方形のフォーマットへと詰めるステップをさらに備える、請求項1に記載の方法。
【請求項３】
前記球面ビデオデータをパッキング構造へと詰めるステップをさらに備え、前記詰めるステップが、
第1のデータブロックの中の前記第2の部分の周りに、前記球面ビデオデータの前記第3の部分、前記第4の部分、前記第5の部分、および前記第6の部分を詰めるステップと、
第1の部分を第2のデータブロックへと詰めるステップと、
前記第1のデータブロックおよび前記第2のデータブロックを前記パッキング構造へと詰めるステップであって、前記第1のデータブロックが前記パッキング構造において前記第2のデータブロックの隣に配置される、ステップと
を含む、請求項1に記載の方法。
【請求項４】
前記球面ビデオデータをパッキング構造へと詰めるステップをさらに備え、前記詰めるステップが、
第1のデータブロックの中の前記第2の部分の第1の半分の周りに、前記球面ビデオデータの前記第5の部分の第1の半分、前記第6の部分の第1の半分、および前記第3の部分を詰めるステップと、
第2のデータブロックの中の前記第2の部分の第2の半分の周りに、前記球面ビデオデータの前記第5の部分の第2の半分、前記第6の部分の第2の半分、および前記第4の部分を詰めるステップと、
前記球面ビデオデータの前記第1の部分を第3のデータブロックへと詰めるステップと、
前記第1のデータブロック、前記第2のデータブロック、および前記第3のデータブロックを前記パッキング構造へと詰めるステップであって、前記第1のデータブロックおよび前記第2のデータブロックが前記パッキング構造において前記第3のデータブロックの隣に配置される、ステップと
を含む、請求項1に記載の方法。
【請求項５】
前記複数のフレームからの第1のフレームを送信するステップであって、前記第1のフレームのためのビデオデータが第1の四角錐台の平面にマッピングされる、ステップと、
前記複数のフレームからの第2のフレームを送信するステップであって、前記第2のフレームのためのビデオデータが第2の四角錐台の平面にマッピングされ、前記第2の四角錐台が前記第1の四角錐台に対して回転されている、ステップとをさらに備える、請求項1に記載の方法。
【請求項６】
前記四角錐台がさらに、前記左側平面に隣接した長方形の左側平面、前記右側平面に隣接した長方形の右側平面、前記上側平面に隣接した長方形の上側平面、および前記下底平面に隣接した長方形の下底平面を含み、前記球面ビデオデータをマッピングするステップがさらに、
前記球面ビデオデータの第7の部分を前記長方形の左側平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第8の部分を前記長方形の右側平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第9の部分を前記長方形の上側平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第10の部分を前記長方形の下側平面へと完全な解像度でマッピングするステップと
を含む、請求項1に記載の方法。
【請求項７】
前記四角錐台の幾何学的形状タイプを定義するステップであって、前記幾何学的形状タイプが、前記球面ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、ステップと、
前記四角錐台の高さを定義するステップと、
前記四角錐台の背幅を定義するステップであって、前記背幅が前記上底平面と関連付けられる、ステップと、
前記四角錐台の背高を定義するステップであって、前記背高が前記上底平面と関連付けられる、ステップとをさらに備える、請求項1に記載の方法。
【請求項８】
前記四角錐台の仮想現実(VR)マッピングタイプを定義するステップをさらに備え、前記VRマッピングタイプが前記球面ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記四角錐台の前記VRマッピングタイプがビデオ情報ボックスと関連付けられる、請求項1に記載の方法。
【請求項９】
ビデオデータを符号化するためのデバイスであって、
ビデオデータを記憶するように構成されるメモリと、
前記メモリと通信しているビデオ符号化デバイスとを備え、前記ビデオ符号化デバイスが、
仮想現実ビデオデータを取得することであって、前記仮想現実ビデオデータが仮想環境の360度の視界を表現し、前記仮想現実ビデオデータが複数のフレームを含み、前記複数のフレームからの各フレームが対応する球面ビデオデータを含む、取得することと、
前記複数のフレームからのあるフレームのための前記球面ビデオデータを四角錐台の平面へとマッピングすることであって、前記四角錐台の前記平面が、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含み、前記上底平面のサイズが前記下底平面のサイズより小さい、マッピングすることと
を行うように構成され、前記球面ビデオデータをマッピングすることが、
前記球面ビデオデータの第1の部分を前記下底平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第2の部分を前記上底平面へと低減された解像度でマッピングすることと、
前記球面ビデオデータの第3の部分を前記左側平面へと低下する解像度でマッピングすることと、
前記球面ビデオデータの第4の部分を前記右側平面へと低下する解像度でマッピングすることと、
前記球面ビデオデータの第5の部分を前記上側平面へと低下する解像度でマッピングすることと、
前記球面ビデオデータの第6の部分を前記下側平面へと低下する解像度でマッピングすることと
を含む、デバイス。
【請求項１０】
前記ビデオ符号化デバイスがさらに、
前記球面ビデオデータを長方形のフォーマットへと詰めるように構成される、請求項9に記載のデバイス。
【請求項１１】
前記ビデオ符号化デバイスがさらに、前記球面ビデオデータをパッキング構造へと詰めるように構成され、前記詰めることが、
第1のデータブロックの中の前記第2の部分の周りに、前記球面ビデオデータの前記第3の部分、前記第4の部分、前記第5の部分、および前記第6の部分を詰めることと、
第1の部分を第2のデータブロックへと詰めることと、
前記第1のデータブロックおよび前記第2のデータブロックを前記パッキング構造へと詰めることであって、前記第1のデータブロックが前記パッキング構造において前記第2のデータブロックの隣に配置される、詰めることと
を含む、請求項9に記載のデバイス。
【請求項１２】
前記ビデオ符号化デバイスがさらに、前記球面ビデオデータをパッキング構造へと詰めるように構成され、前記詰めることが、
第1のデータブロックの中の前記第2の部分の第1の半分の周りに、前記球面ビデオデータの前記第5の部分の第1の半分、前記第6の部分の第1の半分、および前記第3の部分を詰めることと、
第2のデータブロックの中の前記第2の部分の第2の半分の周りに、前記球面ビデオデータの前記第5の部分の第2の半分、前記第6の部分の第2の半分、および前記第4の部分を詰めることと、
前記球面ビデオデータの前記第1の部分を第3のデータブロックへと詰めることと、
前記第1のデータブロック、前記第2のデータブロック、および前記第3のデータブロックを前記パッキング構造へと詰めることであって、前記第1のデータブロックおよび前記第2のデータブロックが前記パッキング構造において前記第3のデータブロックの隣に配置される、詰めることと
を含む、請求項9に記載のデバイス。
【請求項１３】
前記ビデオ符号化デバイスがさらに、
前記複数のフレームから第1のフレームを送信することであって、前記第1のフレームのためのビデオデータが第1の四角錐台の平面にマッピングされる、送信することと、
前記複数のフレームから第2のフレームを送信することであって、前記第2のフレームのためのビデオデータが第2の四角錐台の平面にマッピングされ、前記第2の四角錐台が前記第1の四角錐台に対して回転されている、送信することと
を行うように構成される、請求項9に記載のデバイス。
【請求項１４】
前記四角錐台がさらに、前記左側平面に隣接した長方形の左側平面、前記右側平面に隣接した長方形の右側平面、前記上側平面に隣接した長方形の上側平面、および前記下底平面に隣接した長方形の下底平面を含み、前記球面ビデオデータをマッピングすることが、
前記球面ビデオデータの第7の部分を前記長方形の左側平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第8の部分を前記長方形の右側平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第9の部分を前記長方形の上側平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第10の部分を前記長方形の下側平面へと完全な解像度でマッピングすることと
を含む、請求項9に記載のデバイス。
【請求項１５】
前記フレームのための前記球面ビデオデータを前記四角錐台の前記平面へとマッピングすることが、
前記球面ビデオデータからビデオデータを選択することと、
前記四角錐台の前記平面からの対応する平面上での前記選択されたビデオデータの場所を特定することとを含む、請求項9に記載のデバイス。
【請求項１６】
前記フレームのための前記球面ビデオデータを前記四角錐台の前記平面へとマッピングすることが、
前記球面ビデオデータからビデオデータを選択することと、
前記選択されたビデオデータをダウンサンプリングすることと、
前記四角錐台の前記平面からの対応する平面上での前記ダウンサンプリングされたビデオデータの場所を特定することとを含む、請求項9に記載のデバイス。
【請求項１７】
前記ビデオ符号化デバイスがさらに、
前記四角錐台の幾何学的形状タイプを定義することであって、前記幾何学的形状タイプが、前記球面ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、定義することと、
前記四角錐台の高さを定義することと、
前記四角錐台の背幅を定義することであって、前記背幅が前記上底平面と関連付けられる、定義することと、
前記四角錐台の背高を定義することであって、前記背高が前記上底平面と関連付けられる、定義することと、
を行うように構成される、請求項9に記載のデバイス。
【請求項１８】
前記ビデオ符号化デバイスがさらに、
表面識別子を定義することであって、前記表面識別子が前記四角錐台の平面を識別する、定義することと、
前記四角錐台の平面の各々の左上水平座標を定義するであって、前記左上水平座標がパッキング構造内での前記平面の左上の角の水平位置を示し、前記パッキング構造が前記球面ビデオデータを前記ファイルフォーマットにマッピングするために使用される、定義することと、
前記四角錐台の各平面の左上垂直座標を定義することであって、前記左上垂直座標が前記パッキング構造内での前記平面の前記左上の角の垂直座標を示す、定義することと、
前記四角錐台の各平面のエリア幅を定義することであって、前記エリア幅が前記平面の幅と関連付けられる、定義することと、
前記四角錐台の各平面のエリア高さを定義することであって、前記エリア高さが前記平面の高さと関連付けられる、定義することと
を行うように構成される、請求項17に記載のデバイス。
【請求項１９】
前記ビデオ符号化デバイスがさらに、
前記四角錐台の仮想現実(VR)マッピングタイプを定義するように構成され、前記VRマッピングタイプが前記球面ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記四角錐台の前記VRマッピングタイプがビデオ情報ボックスと関連付けられる、請求項9に記載のデバイス。
【請求項２０】
前記ビデオ情報ボックスが、
前記四角錐台の深さを示す深さと、
前記上底平面の幅を示す背幅と、
前記上底平面の高さを示す背高と、
前記四角錐台の前記平面からのある平面を識別する領域識別子と、
前記球面ビデオデータの中心画素がレンダリングされる点の座標のピッチ角を示す中心ピッチと、
前記球面ビデオデータの前記中心画素がレンダリングされる前記点の前記座標のヨー角を示す中心ヨーと、
前記球面ビデオデータの前記中心画素がレンダリングされる前記点の前記座標の前記ピッチ角のオフセット値を示す中心ピッチオフセットと、
前記球面ビデオデータの前記中心画素がレンダリングされる前記点の前記座標の前記ヨー角のオフセット値を示す中心ヨーオフセットと、
前記平面の左上の角の水平座標を示す左上水平座標と、
前記平面の前記左上の角の垂直座標を示す左上垂直座標と、
前記平面の幅を示す領域幅と、
前記平面の高さを示す領域高とを含む、請求項19に記載のデバイス。
【請求項２１】
ビデオデータを復号するための方法であって、
仮想現実ビデオデータのフレームを取得するステップであって、前記仮想現実ビデオデータが仮想環境の360度の視界を表現し、前記フレームが長方形のフォーマットを有する、ステップと、
前記フレームのフレームパッキング構造を特定するステップであって、前記フレームパッキング構造が前記フレームの中でのビデオデータの場所を与え、前記フレームパッキング構造が四角錐台の平面を含み、前記四角錐台の前記平面が、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含み、前記上底平面のサイズが前記下底平面のサイズより小さい、ステップと、
前記フレームパッキング構造を使用して前記フレームを表示するステップとを備える、方法。
【請求項２２】
前記フレームパッキング構造がさらに、前記左側平面に隣接した長方形の左側平面、前記右側平面に隣接した長方形の右側平面、前記上側平面に隣接した長方形の上側平面、および前記下底平面に隣接した長方形の下底平面を含む、請求項21に記載の方法。
【請求項２３】
前記フレームの幾何学的形状タイプを決定するステップであって、前記幾何学的形状タイプが、前記仮想現実ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、ステップと、
前記幾何学的形状タイプに基づいて、前記四角錐台から高さを決定するステップと、
前記幾何学的形状タイプを使用して前記四角錐台の背幅を決定するステップであって、前記背幅が前記上底平面と関連付けられる、ステップと、
前記幾何学的形状タイプを使用して前記四角錐台の背高を決定するステップであって、前記背高が前記上底平面と関連付けられる、ステップとをさらに備える、請求項21に記載の方法。
【請求項２４】
仮想現実(VR)マッピングタイプを特定するステップをさらに備え、前記VRマッピングタイプが前記仮想現実ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記VRマッピングタイプが前記四角錐台を特定し、前記VRマッピングタイプがビデオ情報ボックスと関連付けられる、請求項21に記載の方法。
【請求項２５】
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリと通信しているビデオ復号デバイスとを備え、前記ビデオ復号デバイスが、
仮想現実ビデオデータのフレームを取得することであって、前記仮想現実ビデオデータが仮想環境の360度の視界を表現し、前記フレームが長方形のフォーマットを有する、取得することと、
前記フレームのフレームパッキング構造を特定することであって、前記フレームパッキング構造が前記フレームの中でのビデオデータの場所を与え、前記フレームパッキング構造が四角錐台の平面を含み、前記四角錐台の前記平面が、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含み、前記上底平面のサイズが前記下底平面のサイズより小さい、特定することと、
前記フレームパッキング構造を使用して前記フレームを表示することと
を行うように構成される、デバイス。
【請求項２６】
前記フレームを表示することが、
前記フレームの中の前記ビデオデータの第1の部分を前の視界として提供することであって、前記ビデオデータの前記第1の部分が前記下底平面に対応し、前記ビデオデータの前記第1の部分が完全な解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第2の部分を後ろの視界として提供することであって、前記ビデオデータの前記第2の部分が前記上底平面に対応し、前記ビデオデータの前記第2の部分が低減された解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第3の部分を左の視界として提供することであって、前記ビデオデータの前記第3の部分が前記左側平面に対応し、前記ビデオデータの前記第3の部分が低下する解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第4の部分を右の視界として提供することであって、前記ビデオデータの前記第4の部分が前記右側平面に対応し、前記ビデオデータの前記第4の部分が低下する解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第5の部分を上の視界として提供することであって、前記ビデオデータの前記第5の部分が前記上側平面に対応し、前記ビデオデータの前記第5の部分が低下する解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第6の部分を下の視界として提供することであって、前記ビデオデータの前記第6の部分が前記下側平面に対応し、前記ビデオデータの前記第6の部分が低下する解像度にある、提供することと含む、請求項25に記載のデバイス。
【請求項２７】
前記ビデオ復号デバイスがさらに、
仮想現実データの第2のフレームを受信することであって、前記第2のフレームが前記フレームに対して回転されている、受信することと、
前記フレームパッキング構造を使用して前記第2のフレームを表示することとを行うように構成される、請求項25に記載のデバイス。
【請求項２８】
前記フレームパッキング構造がさらに、前記左側平面に隣接した長方形の左側平面、前記右側平面に隣接した長方形の右側平面、前記上側平面に隣接した長方形の上側平面、および前記下底平面に隣接した長方形の下底平面を含む、請求項25に記載のデバイス。
【請求項２９】
前記復号デバイスがさらに、
前記フレームの幾何学的形状タイプを決定することであって、前記幾何学的形状タイプが、前記仮想現実ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、決定することと、
前記幾何学的形状タイプに基づいて、前記四角錐台から高さを決定することと、
前記幾何学的形状タイプを使用して前記四角錐台の背幅を決定することであって、前記背幅が前記上底平面と関連付けられる、決定することと、
前記幾何学的形状タイプを使用して前記四角錐台の背高を決定することであって、前記背高が前記上底平面と関連付けられる、決定することと
を行うように構成される、請求項25に記載のデバイス。
【請求項３０】
前記復号デバイスがさらに、
仮想現実(VR)マッピングタイプを特定するように構成され、前記VRマッピングタイプが前記仮想現実ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記VRマッピングタイプが前記四角錐台を特定し、前記VRマッピングタイプがビデオ情報ボックスと関連付けられる、請求項25に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
仮想現実ビデオコンテンツを表現するための四角錐台の幾何学的形状およびフレームパッキング構造に関する。
【背景技術】
【０００２】
仮想現実(VR)は、現実のものまたは物理的なものに見えるような方法で相互作用することができる3次元のコンピュータで生成された環境を描く。一般に、仮想現実環境を体験するユーザは、左もしくは右を向き、上もしくは下を見て、かつ/または、前および後に動くことができるので、仮想環境の視点を変えることができる。ユーザに提示される360度のビデオはそれに従って変化することができるので、ユーザの体験は現実世界と同じくらいシームレスである。仮想現実ビデオは、非常に高い品質でキャプチャされレンダリングされることがあり、場合によっては、真に没入感のある仮想現実体験を提供する。
【０００３】
シームレスな360度のビューを提供するために、360度ビデオキャプチャシステムによってキャプチャされるビデオは通常、画像のスティッチングを受けている。360度のビデオ生成の場合の画像のスティッチングは、ビデオフレームが重複する、または別様につながるエリアにおいて隣り合うカメラからのビデオフレームを結合または統合することを伴う。この結果は、概ね球面のフレームである。しかしながら、メルカトル図法と同様に、統合されたデータは通常、平面的に表現される。たとえば、統合されたビデオフレームの中の画素は、立方体の形状の平面へと、または何らかの他の3次元の平面形状(たとえば、三角錐、八面体、十面体など)へとマッピングされ得る。ビデオキャプチャデバイスおよびビデオ表示デバイスは一般にラスター原理で動作し、これは、ビデオフレームが画素の格子として扱われるので、正方形または長方形の平面が通常は球面の環境を表現するために使用されることを意味する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ISO/IEC JTC1/SC29/WG11/M37837、「Proposed text for omnidirectional media application format」、MPEG 114、2016年2月
【非特許文献２】ISO/IEC JTC1/SC29/WG11 N16189、「WD on ISO/IEC 23000-20 Omnidirectional Media Application Format」、MPEG 115、2016年6月
【発明の概要】
【課題を解決するための手段】
【０００５】
様々な実装形態では、四角錐台の形状に360度のビデオデータをマッピングするための、技法およびシステムが説明される。四角錐台は、頂部が切り取られた四角錐である。したがって、四角錐台は、正方形の下底、正方形の上底、および4つの台形の側面を有する。360度のビデオフレームは、360度に相当する画素データを含み得るので、球面の形状であり得る。球面ビデオデータを四角錐台によって与えられる平面にマッピングすることによって、視聴者の視野の端でいくらかの忠実度を犠牲にするだけで、360度のビデオフレームの全体のサイズを減らすことができる。四角錐台の平面は、四角錐台の下底が前の視界を表現し、四角錐台の上底が後ろの視界を表現するように方向付けられ得る。このようにして、前の視界を完全な解像度でキャプチャすることができ、後ろの視界を低減された解像度でキャプチャすることができ、左、右、上、および下の視界を低下する解像度でキャプチャすることができる。
【０００６】
様々な実装形態では、四角錐台の形状にマッピングされたビデオデータのために、フレームパッキング構造を定義することができる。フレームパッキング構造は、形状が長方形であるデータのブロックを産生することができ、これは、非長方形のデータブロックより記憶および輸送が簡単であり得る。フレームパッキング構造は、四角錐台の形状によって与えられる前の視界を完全な解像度で記憶し、後ろの視界の周りの左、右、上、および下の視界をコンパクトな構成で詰めることができる。様々な実装形態では、立方体の形状の表現からフレームパッキング構造へと直接ビデオデータをマッピングするために、ビデオデータがどこに記憶されるかを定義する比率を使用することができる。様々な実装形態では、これらの比率を調整して、後、左、右、上、および下の視界の解像度を変更することができ、かつ/または、前の視界によってキャプチャされた視野を変更することができる。
【０００７】
少なくとも一例によれば、ビデオデータを符号化するための方法が提供される。様々な実装形態では、方法は、仮想現実ビデオデータを取得するステップを含む。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。仮想現実ビデオデータは複数のフレームを含み得る。複数のフレームからの各フレームは、対応する球面ビデオデータを含み得る。方法はさらに、複数のフレームからのあるフレームのための球面ビデオデータを四角錐台の平面へとマッピングするステップを含む。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。球面ビデオデータをマッピングすることは、球面ビデオデータの第1の部分を下底平面へと完全な解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第2の部分を上底平面へと低減された解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第3の部分を左側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第4の部分を右側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第5の部分を上側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第6の部分を下側平面へと低下する解像度でマッピングすることを含み得る。
【０００８】
別の例では、ビデオデータを記憶するように構成されたメモリとプロセッサとを含む装置が提供される。プロセッサは、仮想現実ビデオデータを取得するように構成され、取得することができる。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。仮想現実ビデオデータは複数のフレームを含み得る。複数のフレームからの各フレームは、対応する球面ビデオデータを含み得る。プロセッサは、複数のフレームからのあるフレームのための球面ビデオデータを四角錐台の平面へとマッピングするように構成され、マッピングすることができる。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。球面ビデオデータをマッピングすることは、球面ビデオデータの第1の部分を下底平面へと完全な解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第2の部分を上底平面へと低減された解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第3の部分を左側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第4の部分を右側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第5の部分を上側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第6の部分を下側平面へと低下する解像度でマッピングすることを含み得る。
【０００９】
別の例では、プロセッサによって実行されると、仮想現実ビデオデータを取得するステップを含む方法を実行する命令を記憶した、コンピュータ可読媒体が提供される。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。仮想現実ビデオデータは複数のフレームを含み得る。複数のフレームからの各フレームは、対応する球面ビデオデータを含み得る。方法はさらに、複数のフレームからのあるフレームのための球面ビデオデータを四角錐台の平面へとマッピングするステップを含む。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。球面ビデオデータをマッピングすることは、球面ビデオデータの第1の部分を下底平面へと完全な解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第2の部分を上底平面へと低減された解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第3の部分を左側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第4の部分を右側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第5の部分を上側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第6の部分を下側平面へと低下する解像度でマッピングすることを含み得る。
【００１０】
別の例では、ビデオデータを符号化するための手段を含む装置が提供される。装置はさらに、仮想現実ビデオデータを取得するための手段を備える。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。仮想現実ビデオデータは複数のフレームを含み得る。複数のフレームからの各フレームは、対応する球面ビデオデータを含み得る。装置はさらに、複数のフレームからのあるフレームのための球面ビデオデータを四角錐台の平面へとマッピングするための手段を備える。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。球面ビデオデータをマッピングすることは、球面ビデオデータの第1の部分を下底平面へと完全な解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第2の部分を上底平面へと低減された解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第3の部分を左側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第4の部分を右側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第5の部分を上側平面へと低下する解像度でマッピングすることを含み得る。球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第6の部分を下側平面へと低下する解像度でマッピングすることを含み得る。
【００１１】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、球面ビデオデータを長方形のフォーマットへと詰めることを備える。
【００１２】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、球面ビデオデータをパッキング構造へと詰めることを備える。様々な態様では、球面ビデオデータを詰めることは、第1のデータブロックの中の第2の部分の周りに、球面ビデオデータの第3の部分、第4の部分、第5の部分、および第6の部分を詰めることを含み得る。球面ビデオデータを詰めることは、第1の部分を第2のデータブロックへと詰めることを含み得る。球面ビデオデータを詰めることはさらに、第1のデータブロックおよび第2のデータブロックをパッキング構造へと詰めることを含み得る。第1のデータブロックは、パッキング構造において第2のデータブロックの隣に配置され得る。
【００１３】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、フレームのためのビデオデータをパッキング構造へと詰めることを備える。様々な態様では、球面ビデオデータを詰めることは、上底平面にマッピングされたビデオデータの第1の半分の周りに、左側平面にマッピングされたビデオデータの第1の半分、右側平面にマッピングされたビデオの第1の半分、上側平面にマッピングされたビデオデータの第1の半分、および下側平面にマッピングされたビデオデータの第1の半分の各々を、第1のデータブロックへと詰めることを含み得る。球面ビデオデータを詰めることは、上底平面にマッピングされたビデオデータの第2の半分の周りに、左側平面にマッピングされたビデオデータの第2の半分、右側平面にマッピングされたビデオの第2の半分、上側平面にマッピングされたビデオデータの第2の半分、および下側平面にマッピングされたビデオデータの第2の半分の各々を、第2のデータブロックへと詰めることを含み得る。球面ビデオデータを詰めることはさらに、下底平面にマッピングされたビデオデータを第3のデータブロックへと詰めることを含み得る。球面ビデオデータを詰めることはさらに、第1のデータブロック、第2のデータブロック、および第3のデータブロックをパッキング構造へと詰めることを含み得る。第1のデータブロックおよび第2のデータブロックは、パッキング構造において第3のデータブロックの隣に配置され得る。
【００１４】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、複数のフレームからの第1のフレームを送信することを備える。第1のフレームのためのビデオデータは、第1の四角錐台の平面にマッピングされ得る。様々な態様はさらに、複数のフレームからの第2のフレームを送信することを含む。第2のフレームのためのビデオデータは、第2の四角錐台の平面にマッピングされ得る。第2の四角錐台は、第1の四角錐台に対して回転され得る。
【００１５】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、フレームのための球面ビデオデータを立方体の面へとマッピングすることを備える。立方体の面は、前面、左面、右面、後面、上面、および下面を含む。これらの態様では、球面ビデオデータをマッピングすることはさらに、立方体の面から四角錐台の平面にビデオデータをマッピングすることを含み得る。
【００１６】
いくつかの態様では、四角錐台はさらに、左側平面に隣接した長方形の左側平面、右側平面に隣接した長方形の右側平面、上側平面に隣接した長方形の上側平面、および下底平面に隣接した長方形の下底平面を含む。これらの態様では、球面ビデオデータをマッピングすることはさらに、球面ビデオデータの第7の部分を長方形の左側平面へと完全な解像度でマッピングすることと、球面ビデオデータの第8の部分を長方形の右側平面へと完全な解像度でマッピングすることと、球面ビデオデータの第9の部分を長方形の上側平面へと完全な解像度でマッピングすることと、球面ビデオデータの第10の部分を長方形の下側平面へと完全な解像度でマッピングすることとを含む。
【００１７】
いくつかの態様では、球面ビデオデータをマッピングすることは、球面ビデオデータからビデオデータを選択することと、四角錐台の平面からの対応する平面上での選択されたビデオデータの場所を特定することとを含み得る。
【００１８】
いくつかの態様では、球面ビデオデータをマッピングすることは、球面ビデオデータからビデオデータを選択することと、選択されたビデオデータをダウンサンプリングすることと、四角錐台の平面からの対応する平面上でのダウンサンプリングされたビデオデータの場所を特定することとを含み得る。
【００１９】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、四角錐台の幾何学的形状タイプを定義することを備える。幾何学的形状タイプは、球面ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定することができる。様々な態様はさらに、四角錐台の高さを定義することと、四角錐台の背幅を定義することとを含む。背幅は上底平面と関連付けられ得る。様々な態様はさらに、四角錐台の背高を定義することを含む。背高は上底平面と関連付けられ得る。
【００２０】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、表面識別子を定義することを備える。表面識別子は、四角錐台の平面を識別することができる。様々な態様はさらに、四角錐台の各平面の左上水平座標を定義することを含む。左上水平座標は、パッキング構造内での平面の左上の角の水平位置を示し得る。パッキング構造は、球面ビデオデータをファイルフォーマットへとマッピングするために使用され得る。様々な態様はさらに、四角錐台の各平面の左上垂直座標を定義することを含む。左上垂直座標は、パッキング構造内での平面の左上の角の垂直座標を示し得る。様々な態様はさらに、四角錐台の各平面のエリア幅を定義することを含む。エリア幅は平面の幅と関連付けられ得る。様々な態様はさらに、四角錐台の各平面のエリア高を定義することを含む。エリア高は平面の高さと関連付けられ得る。
【００２１】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、四角錐台の仮想現実(VR)マッピングタイプを定義することを備える。VRマッピングタイプは、球面ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示すことができる。四角錐台のVRマッピングタイプは、ビデオ情報ボックスと関連付けられ得る。
【００２２】
様々な態様では、ビデオ情報ボックスは、四角錐台の深さを示す深さと、上底の幅を示す背幅と、上底の高さを示す背高と、四角錐台の平面からのある平面を識別する領域識別子と、球面ビデオデータの中心画素がレンダリングされる点の座標のピッチ角を示す中心ピッチと、球面ビデオデータの中心画素がレンダリングされる点の座標のヨー角を示す中心ヨーと、球面ビデオデータの中心画素がレンダリングされる点の座標のピッチ角のオフセット値を示す中心ピッチオフセットと、球面ビデオデータの中心画素がレンダリングされる点の座標のヨー角のオフセット値を示す中心ヨーオフセットと、平面の左上の角の水平座標を示す左上水平座標と、平面の左上の角の垂直座標を示す左上垂直座標と、平面の幅を示す領域幅と、平面の高さを示す領域高とを含む。
【００２３】
少なくとも一例によれば、ビデオデータを復号するための方法が提供される。様々な実装形態では、方法は、仮想現実ビデオデータのフレームを取得するステップを含む。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。フレームは長方形のフォーマットを有し得る。方法はさらに、フレームのフレームパッキング構造を特定するステップを含む。フレームパッキング構造は、フレームにおけるビデオデータの場所を提供し得る。フレームパッキング構造は、四角錐台の平面を含み得る。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。方法はさらに、フレームパッキング構造を使用してフレームを表示するステップを含み得る。
【００２４】
別の例では、ビデオデータを記憶するように構成されたメモリとプロセッサとを含む装置が提供される。プロセッサは、仮想現実ビデオデータのフレームを取得するように構成され、取得することができる。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。フレームは長方形のフォーマットを有し得る。プロセッサは、フレームのフレームパッキング構造を特定するように構成され、特定することができる。フレームパッキング構造は、フレームにおけるビデオデータの場所を提供し得る。フレームパッキング構造は、四角錐台の平面を含み得る。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。プロセスは、フレームパッキング構造を使用してフレームを表示するように構成され、表示することができる。
【００２５】
別の例では、プロセッサによって実行されると、仮想現実ビデオデータのフレームを取得するステップを含む方法を実行する命令を記憶した、コンピュータ可読媒体が提供される。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。フレームは長方形のフォーマットを有し得る。方法はさらに、フレームのフレームパッキング構造を特定するステップを含む。フレームパッキング構造は、フレームにおけるビデオデータの場所を提供し得る。フレームパッキング構造は、四角錐台の平面を含み得る。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。方法はさらに、フレームパッキング構造を使用してフレームを表示するステップを含み得る。
【００２６】
別の例では、ビデオデータを復号するための手段を含む装置が提供される。装置はさらに、仮想現実ビデオデータのフレームを取得するための手段を備える。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。フレームは長方形のフォーマットを有し得る。装置はさらに、フレームのフレームパッキング構造を特定するための手段を備える。フレームパッキング構造は、フレームにおけるビデオデータの場所を提供し得る。フレームパッキング構造は、四角錐台の平面を含み得る。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。装置はさらに、フレームパッキング構造を使用してフレームを表示するための手段を備える。
【００２７】
いくつかの態様では、フレームを表示することは、フレームの中のビデオデータの第1の部分を前の視界として提供することを含む。ビデオデータの第1の部分は下底平面に相当し得る。ビデオデータの第1の部分は解像度が完全であり得る。様々な態様はさらに、フレームの中のビデオデータの第2の部分を後ろの視界として提供することを含む。ビデオデータの第2の部分は上底平面に相当し得る。ビデオデータの第2の部分は解像度が低減され得る。様々な態様はさらに、フレームの中のビデオデータの第3の部分を左の視界として提供することを含む。ビデオデータの第3の部分は左側平面に相当し得る。ビデオデータの第3の部分は解像度が低下し得る。様々な態様はさらに、フレームの中のビデオデータの第4の部分を右の視界として提供することを含む。ビデオデータの第4の部分は右側平面に相当し得る。ビデオデータの第4の部分は解像度が低下し得る。様々な態様はさらに、フレームの中のビデオデータの第5の部分を上の視界として提供することを含む。ビデオデータの第5の部分は上側平面に相当し得る。ビデオデータの第5の部分は解像度が低下し得る。様々な態様はさらに、フレームの中のビデオデータの第6の部分を下の視界として提供することを含む。ビデオデータの第6の部分は下側平面に相当し得る。ビデオデータの第6の部分は解像度が低下し得る。
【００２８】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、仮想現実データの第2のフレームを受信することを備える。第2のフレームはフレームに対して回転され得る。様々な態様はさらに、フレームパッキング構造を使用して第2のフレームを表示するステップを含む。
【００２９】
いくつかの態様では、フレームパッキング構造はさらに、左側平面に隣接した長方形の左側平面、右側平面に隣接した長方形の右側平面、上側平面に隣接した長方形の上側平面、および下側平面に隣接した長方形の下側平面を含む。
【００３０】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、フレームの幾何学的形状タイプを決定することを備える。幾何学的形状タイプは、仮想現実ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する。様々な態様はさらに、幾何学的形状タイプに基づいて、四角錐台から高さを決定することを含む。様々な態様はさらに、幾何学的形状タイプを使用して、四角錐台の背幅を決定することを含む。背幅は上底平面と関連付けられ得る。様々な態様はさらに、幾何学的形状タイプを使用して、四角錐台の背高を決定することを含む。背高は上底平面と関連付けられ得る。
【００３１】
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、仮想現実(VR)マッピングタイプを特定することを備える。VRマッピングタイプは、仮想現実ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示すことができる。VRマッピングタイプは四角錐台を特定することができる。VRマッピングタイプはビデオ情報ボックスと関連付けられ得る。
【００３２】
本概要は、特許請求される主題の主要または不可欠な特徴を識別するものでなく、特許請求される主題の範囲を決定するために独立して使用されるものでもない。主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分への参照によって理解されるべきである。
【００３３】
上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付図面を参照するとより明らかになろう。
【００３４】
本発明の例示的な実施形態が、以下の図面を参照して以下で詳細に説明される。
【図面の簡単な説明】
【００３５】
【図１】仮想現実ビデオキャプチャデバイスによってキャプチャされる画素を含む球面によって表現される仮想環境の例を示す図である。
【図２Ａ】仮想現実環境の球面表現における画素をエクイレクタングラー平面表現にマッピングするために使用され得る基準座標系を示す図である。
【図２Ｂ】エクイレクタングラー平面にマッピングされたビデオフレームの例を示す図である。
【図３】四角錐台の形状にマッピングされたビデオデータのフレームのためのフレームパッキング構造の例を示す図である。
【図４】記憶して輸送することができるデータのブロックへとビデオデータを記憶するために使用され得るフレームパッキング構造の別の例を示す図である。
【図５】図3に示される例示的なフレームパッキング構造に従って詰められたフレームの例を示す図である。
【図６】図4に示される例示的なフレームパッキング構造に従って詰められたビデオフレームの例を示す図である。
【図７】四角錐台の幾何学的形状に従ってビデオフレームが詰められたときに見られる品質の尺度の例を与えるグラフを示す図である。
【図８】ビデオデータの四角錐台表現のためのフレームパッキング構造へと360度ビデオデータの立方体の形状の表現の面をマッピングするために使用され得る比率の例を示す図である。
【図９Ａ】360度ビデオフレームのための様々な異なるマッピングから得られるフレームサイズの比較を示す図である。
【図９Ｂ】360度ビデオフレームのための様々な異なるマッピングから得られるフレームサイズの比較を示す図である。
【図９Ｃ】360度ビデオフレームのための様々な異なるマッピングから得られるフレームサイズの比較を示す図である。
【図９Ｄ】360度ビデオフレームのための様々な異なるマッピングから得られるフレームサイズの比較を示す図である。
【図１０Ａ】テクスチャ領域と四角錐台の幾何学的形状の面との間の対応付けを示す図である。
【図１０Ｂ】テクスチャ領域と四角錐台の幾何学的形状の面との間の対応付けを示す図である。
【図１１Ａ】四角錐台の幾何学的形状の各領域の位置、幅、および高さを示す図である。
【図１１Ｂ】四角錐台の幾何学的形状の各領域の位置、幅、および高さを示す図である。
【図１１Ｃ】四角錐台の幾何学的形状の各領域の位置、幅、および高さを示す図である。
【図１１Ｄ】四角錐台の幾何学的形状の各領域の位置、幅、および高さを示す図である。
【図１１Ｅ】四角錐台の幾何学的形状の各領域の位置、幅、および高さを示す図である。
【図１１Ｆ】四角錐台の幾何学的形状の各領域の位置、幅、および高さを示す図である。
【図１２】立方体の平面を四角錐台の平面にマッピングする別の例を示す図である。
【図１３】修正された四角錐台のマッピングのためのフレームパッキング構造の例を示す図である。
【図１４】修正された四角錐台のマッピングのためのフレームパッキング構造の別の例を示す図である。
【図１５】視野を広げるために、後ろの視界の解像度を保つより大きなフレームパッキング構造が使用されている例を示す図である。
【図１６】360度ビデオフレームを本明細書で説明される四角錐台の平面にマッピングするためのプロセスの例を示す図である。
【図１７】フレームのためのビデオデータが四角錐台の形状を使用してフレームへと詰められたような、仮想現実ビデオのフレームを復号するためのプロセスの例を示す図である。
【図１８】360度仮想環境において画素をマッピングするための別の例示的な形状を示す図である。
【図１９】図18に示される角錐の形状のためのフレームパッキング構造の例を示す図である。
【図２０】例示的な符号化デバイスを示すブロック図である。
【図２１】例示的な復号デバイスを示すブロック図である。
【発明を実施するための形態】
【００３６】
本開示のいくつかの態様および実施形態が以下で提供される。当業者に明らかになるように、これらの態様および実施形態のうちのいくつかは独立して適用可能であり、それらのうちのいくつかは組み合わせて適用可能である。以下の説明では、説明の目的で、本発明の実施形態の完全な理解をもたらすように具体的な詳細が説明される。しかしながら、様々な実施形態は、これらの具体的詳細がなくても実施され得ることは明らかであろう。図面および説明は限定的であることを目的としない。
【００３７】
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載したような本発明の趣旨および範囲から逸脱することなく、様々な変更が要素の機能および構成に加えられ得ることを理解されたい。
【００３８】
本実施形態の十分な理解をもたらすために、以下の説明において具体的な詳細が与えられる。しかしながら、本実施形態がこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。たとえば、不必要な詳細で本実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、および他の構成要素はブロック図の形態で構成要素として示されることがある。他の事例では、本実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示されることがある。
【００３９】
また、個々の実施形態がフローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは逐次プロセスとして動作を説明することがあるが、動作の多くは並列または同時に実行され得る。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了するときに終了するが、図に含まれない追加のステップを有することがある。プロセスは、方法、機能、プロシージャ、サブルーチン、サブプログラムなどに相当し得る。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当し得る。
【００４０】
「コンピュータ可読媒体」という用語は、限定はされないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを、記憶、包含、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得るとともに、ワイヤレスに、または有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的媒体を含み得る。非一時的媒体の例は、限定はされないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得る、その上に記憶されたコードおよび/または機械実行可能命令を有し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてよく、転送されてよく、または送信されてよい。
【００４１】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装されてよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実行し得る。
【００４２】
仮想現実(VR)は、現実のものまたは物理的なものに見えるような方法で相互作用することができる3次元のコンピュータで生成された環境を表現する。一般に、仮想現実環境を体験するユーザは、ヘッドマウントディスプレイ(HMD)などの電子機器を、また任意選択で、仮想環境と対話するためにセンサを装備した手袋を使用する。ユーザが現実世界の中で動くにつれて、仮想環境においてレンダリングされる画像も変化し、仮想環境の中で動いているという印象をユーザに与える。いくつかの場合、仮想環境は、ユーザの動きと相関する音を含み、その音が特定の方向または発生源に由来するという印象をユーザに与える。仮想現実ビデオは、非常に高い品質でキャプチャされレンダリングされることがあり、場合によっては、真に没入感のある仮想現実体験を提供する。仮想現実の適用例にはとりわけ、ゲーム、訓練、教育、スポーツビデオ、およびオンラインショッピングがある。
【００４３】
仮想現実システムは通常、ビデオキャプチャデバイスおよびビデオ表示デバイスを含み、場合によっては、サーバ、データストレージ、およびデータ送信機器などの他の仲介デバイスも含む。ビデオキャプチャデバイスは、カメラセット、すなわち複数のカメラのセットを含むことがあり、それらの各々が、異なる方向に向けられ、異なる視界をキャプチャする。わずか6個のカメラを使用して、カメラセットの位置を中心とする完全な360度の視界をキャプチャすることができる。たとえば、主に左右の視界をキャプチャするビデオキャプチャデバイスなどの、一部のビデオキャプチャデバイスは、より少ないカメラを使用することがある。ビデオは一般にフレームを含み、フレームは電気的にコーディングされたシーンの静止画像である。カメラは、毎秒ある数のフレームをキャプチャし、この数は通常カメラのフレームレートと呼ばれる。
【００４４】
シームレスな360度のビューを提供するために、カメラセットの中のカメラの各々によってキャプチャされるビデオは通常、画像のスティッチングを受けている。360度のビデオ生成の場合の画像のスティッチングは、ビデオフレームが重複する、または別様につながるエリアにおいて隣り合うカメラからのビデオフレームを結合または統合することを伴う。この結果は、概ね球面のフレームであるが、メルカトル図法に類似しており、統合されたデータは通常、平面で表現される。たとえば、統合されたビデオフレームの中の画素は、立方体の形状の平面へと、または何らかの他の3次元の平面形状(たとえば、三角錐、八面体、十面体など)へとマッピングされ得る。ビデオキャプチャデバイスおよびビデオ表示デバイスは一般にラスター原理で動作し、これは、ビデオフレームが画素の格子として扱われるので、正方形または長方形の平面が通常は球面の環境を表現するために使用されることを意味する。
【００４５】
平面表現にマッピングされた仮想現実ビデオフレームは、記憶および/または送信のために符号化および/または圧縮され得る。符号化および/または圧縮は、ビデオコーデック(たとえば、MPEGコーデック、H.265/HEVCコーデック、H.264/AVCコーデック、または他の適切なコーデック)を使用して達成することが可能であり、圧縮されたビデオビットストリームまたはビットストリームのグループをもたらす。ビデオコーデックを使用したビデオデータの符号化は、以下でさらに詳細に説明される。
【００４６】
符号化されたビデオビットストリームは、メディアフォーマットで記憶および/またはカプセル化され得る。記憶されたビットストリームは、たとえば、ネットワークを通じてビデオ表示デバイスに送信され得る。たとえば、仮想現実システムは、符号化されたビデオデータからカプセル化されたファイルを生成することができる(たとえば、国際標準化機構(ISO)ベースのメディアファイルフォーマットおよび/または派生ファイルフォーマットを使用して)。たとえば、ビデオコーデックはビデオデータを符号化することができ、カプセル化エンジンはビデオデータを1つまたは複数のISOフォーマットメディアファイルにカプセル化することによってメディアファイルを生成することができる。加えて、または代わりに、記憶されたビットストリームは、記憶媒体から受信機デバイスに直接提供され得る。
【００４７】
受信機デバイスはまた、符号化されたビデオビットストリームを復号および/または解凍するためのコーデックを実装することができる。いくつかの事例では、受信機デバイスは、カプセル化されたビデオデータを伴うメディアファイルを構文解析して、符号化されたビデオデータを生成することができる。たとえば、受信機デバイスは、カプセル化されたビデオデータを伴うメディアファイルを構文解析して符号化されたビデオデータを生成することができ、受信機デバイスの中のコーデックは符号化されたビデオデータを復号することができる。
【００４８】
受信機デバイスは次いで、復号されたビデオ信号をレンダリングデバイス(たとえば、ビデオ表示デバイス)に送信することができる。レンダリングデバイスは、たとえば、ヘッドマウントディスプレイ、仮想現実テレビジョン、および他の180度または360度ディスプレイデバイスを含む。一般に、ヘッドマウントディスプレイは、装着者の頭の動きおよび/または装着者の目の動きを追跡することが可能である。ヘッドマウントディスプレイは、追跡情報を使用して、装着者が見ている方向に相当する360度ビデオの部分をレンダリングすることができるので、装着者は現実世界を体験するのと同じように仮想環境を体験する。レンダリングデバイスは、ビデオがキャプチャされたのと同じフレームレートで、または異なるフレームレートでレンダリングし得る。
【００４９】
没入感のある体験を視聴者に提供するために、仮想現実ビデオコンテンツ(360度ビデオコンテンツとも呼ばれる)は、高品質の解像度および高いフレームレートで生成される。しかしながら、高い解像度および高いフレームレートでキャプチャされたビデオは、大量のデータを必要とし得る。人間の視覚は視野(FOV:field of view)1度当たり最高で60ピクセルを区別することができ、平均的な人物はすべての方向のほぼ180度を見ることができる。Table 1(表1)は、いくつかの表示デバイス、各デバイスが提供する概略的な視野、各デバイスの例示的な解像度、および各デバイスが360度のビデオ体験を提供するために必要な等価解像度の例を与える。
【００５０】
【表１】
2019509690.tif 000003
【００５１】
Table 1(表1)に記載されるように、幅1920ピクセル×高さ1080ピクセルの解像度を有し48ピクセル/インチ(ppi)を使用し得る、現代の40インチのテレビジョンは、平均的な視聴者に対して十分に現実的なピクチャを提供できるが、視野は約30度に限られる。48ppiのテレビジョンを360度のビデオ解像度に拡大することは、解像度のサイズを7680×2160ピクセルの幅および高さに拡大することを必要とする(テレビジョンに90度の視野で表示されるビデオを仮定した場合)。このピクチャは8倍大きいので、各ビデオフレームを表現するためのデータも8倍必要である。対照的に、ヘッドマウントディスプレイは、片目当たり2.5インチ×2.5インチの画面を有し得るが、画面当たり5400×5400の解像度を2160ppiにおいて有し得る。このヘッドマウントディスプレイの解像度を360度のビデオ解像度に拡大することは、21600×10800ピクセルの高さおよび幅の解像度を必要とし、それに対応して、フレーム当たりの大量のビットを必要とする。
【００５２】
ビデオコンテンツはしばしば、家庭のテレビジョン受信機、コンピュータ、タブレットコンピュータ、ハンドヘルドデバイス、または他の表示デバイスに送信される。ビデオコンテンツはまた、通常はサーバまたはデータセンターに記憶され、そこから表示デバイスに送信され得る。仮想現実ビデオコンテンツの高い解像度および高いフレームレートにより、仮想現実ビデオの記憶および送信には、ビデオコンテンツが効率的に表現されることが必要である。加えて、一部の復号デバイスは、ビデオフレームが特定のサイズに限定されることを要求し得る。たとえば、一部のデコーダは、1つのビデオフレームの解像度が1920×1080または3840×2160ピクセルよりも大きくないサイズであることを要求する。
【００５３】
1つの解決法は、完全な360度のコンテンツを視聴者に送信することである。この場合、視聴者が特定の方向を向いているときであっても、すべての潜在的なビューポートが視聴者に対して同時に利用可能である。視聴者が向いている方向が通常はビューポートと呼ばれ、視聴者がこのビューポートから見ることができるコンテンツが通常は視野と呼ばれる。しかしながら、視聴者に完全な360度のビデオコンテンツを提供することは、デコーダデバイスにより効率的に送信または復号され得るものよりも場合によっては多い、大量のデータを必要とし得る。加えて、完全な360度のビデオは、視聴者が任意の所与の瞬間に見ることができるものよりも多くのものを視聴者に提供することがある。
【００５４】
別の解決法は、視聴者の現在のビューポートのコンテンツに送信されるコンテンツを制限することである。視聴者の頭の場所が変化すると、異なるビューポートのコンテンツが送信され得る。ビューポート間の隙間を避けるために、1つまたは複数の追加のビューポートのコンテンツが視聴者に同時に送信され得る。この代替形態は送信の帯域幅を減らし得るが、隙間を埋めるビューポートは、品質、解像度、および/またはフレームレートがより低いことがあり、これは一部の視聴者が気付き得るものであることがある。
【００５５】
別の解決法が図1に示されている。図1は、仮想現実ビデオキャプチャデバイスによってキャプチャされる画素を含む球面100によって表現される仮想環境の例を示す。この例では、球面100の中の画素は、立方体の形状110の6つの面によって与えられる6つの面へとマッピングされており、ここでこの6つの面は、前112、左114、右116、後ろ118、上120、および下122と指定されている。この指定は、ある特定のビデオフレームを視聴するときに視聴者が見ている方向を記述する。様々な実装形態では、他の3次元の形状が、球面フレームデータを表現するために使用され得る。この例では、6つの面はフルフレームのビデオを表現する。すなわち、360度の視界すべてが表現され、立方体110の端において最小限の忠実度の低下がある。
【００５６】
上で論じられたように、かつ下でさらに詳細に論じられるように、フルフレームのビデオは大量のデータを含み得る。加えて、ビデオのフルフレームは、視聴者が任意の所与の瞬間に見ることができるものよりも多くのものを含み得る。したがって、様々な実装形態では、図1の立方体110により与えられる6つの面を、四角錐台の形状130によって与えられる6つの面にマッピングすることができる。四角錐台は、正方形の下底を有し頂部が下底と垂直に切り取られた角錐である。数学的には、四角錐台は四角錐の錐切頭体として記述される。
【００５７】
この例では、四角錐台130の下底132は、前112として指定されている立方体110の側面と揃うような向きであるので、立方体110の前112を表現する平面は、四角錐台130の下底132により表現される平面へとマッピングされ得る。さらに、立方体の後ろ118を表現する平面を、四角錐台130の上底138を表現する平面へとマッピングすることができ、立方体110の左114、右116、上120、および下122の平面の各々を、四角錐台130の側部を表現する対応する平面へとマッピングすることができる。
【００５８】
四角錐台130の下底132の平面は立方体110の前112の平面と同じだけのデータを含み得るが、四角錐台130の上底138の平面は、立方体110の後ろ118の平面よりもはるかに少ないデータを含む可能性がある。前112の視界は視聴者が見ている方向であるので、フルフレームのデータが保たれるべきであるが、視聴者は後ろ118の視界を見られない可能性が高いので、後ろ118の視界のためにより少量のデータが記憶され得る。しかしながら、下でさらに論じられるように、たとえば視界の遷移がより滑らかになり得るように、後ろ118の視界は完全には削除されない。
【００５９】
四角錐台130の左側134、右側136、上側140、および下側142の平面の各々も、それらの台形の形状により、立方体の形状110により与えられる対応する平面よりも少量のデータを含む可能性が高い。前112の視界の方向においてはより多くのデータが保たれるが、後ろ118の視界の方向においてはより少ないデータが保たれる。したがって、四角錐台130の形状を球面フレームデータをマッピングするための基礎として使用することは、フルフレームの表現よりもビデオフレームのサイズを低減する可能性がある。一般に、サイズの低減は、たとえば四角錐台130の上底138の平面のサイズを増やすことまたは減らすことによって、四角錐台130の寸法を変更することによって調整され得る。
【００６０】
立方体110の形状からの正方形の平面データを四角錐台130により与えられる平面へとマッピングすることは、圧縮、フィルタリング、および/またはダウンサンプリングの方法を使用して達成され得る。たとえば、四角錐台130の上底138の平面は、立方体110の後ろ118の平面と同じ視界を、しかしより低い解像度または品質で含み得る。同様に、四角錐台130の左134、右136、上140、および下142の平面はまた、立方体110の対応する平面と同じ視界を、しかし低下する解像度で含む。具体的には、解像度または品質が低下することがあり、最高の解像度は四角錐台の下底132の方向にあり、最低の解像度は四角錐台130の上底138を向いている。たとえば、左134、右136、上140、および下142の平面の台形の形状の下底から上底に向かって減少するように、ダウンサンプリングを段階的に適用することができる。
【００６１】
いくつかの実装形態では、1つの四角錐台のマッピングは、仮想環境の立方体の形状の表現により与えられる6つの視界の各々のために行われ得る。たとえば、図1の例では、四角錐台130は、四角錐台の下底132が立方体110の前112の面の方を向くように配向されている。この配向は、視聴者がこの例では前112として指定されている方向を見ていることを仮定する。上で論じられたように、ビデオフレームデータのマッピングは、四角錐台130の面によって与えられる平面を使用して決定され得る。この配向では、四角錐台130は、前112が最高の品質を有し、後ろ118の視界が最低の品質を有するようなマッピングを与える。
【００６２】
四角錐台130はまた、下底132が立方体110の左114の面の方を向くように配向され得る。この配向は、視聴者がこの例では左114として指定されている方向を見ていることを仮定する。同じビデオフレームデータのマッピングをこの配向において決定することができ、左114の視界が最高の品質を有し右116の視界が最低の品質を有するようなマッピングを与える。
【００６３】
下底132が右116の視界、後ろ118の視界、上120の視界、および下122の視界の方を向くように、四角錐台130について同様のマッピングを得ることができるので、全体で6つのマッピングが360度のビデオデータの同じフレームに対して得られる。6つのマッピングがあることで、ビデオデータは、どの方向を視聴者が見ていても、所与のビデオフレームに対して最高の達成可能な品質を提供することが可能になる。
【００６４】
様々な実装形態では、6つよりも多数または少数のマッピングが使用され得る。たとえば、いくつかの実装形態では、1つのビデオフレームが、前112の視界だけ、または前112、左114、および右116の視界だけにマッピングされ得る。いくつかの実装形態では、所与のビデオフレームに使用されるマッピングの数は、ビデオフレームのコンテンツに合わされ得る。たとえば、いくつかの場合、視聴者は決して上または下を見ることができないと仮定され得る。別の例として、いくつかの実装形態では、重複マッピングが使用され得る。たとえば、前112の視界と左114の視界との間に45度の角度で配向された四角錐台130の下底132について、マッピングが決定され得る。これらの実装形態では、球面データのより良好な表現を得ることができる。
【００６５】
四角錐台のマッピングはまた、任意の所与の瞬間に視聴者に提供される必要のあるデータの量を最小限にするために使用され得る。たとえば、送信デバイスが1つの四角錐台のマッピングを視聴者に提供することができ、ここでこの四角錐台のマッピングは視聴者が現在見ている方向に対応する。視聴者が頭を左に向けると、送信デバイスは第2の四角錐台のマッピング(たとえば、左の視界の方を向いているマッピング)に切り替えることができる。第2の四角錐台のマッピングの送信が遅れる(たとえば、ネットワーク遅延、フレーム内期間により、または何らかの他の理由で)場合、第2の四角錐台が利用可能になるまで、第1の四角錐台のマッピングを視聴者に提示することができる。視聴者の頭の場所および四角錐台のマップによっては、第2の四角錐台のマップが受信されるまで、視聴者はより低い品質を体験することがある。
【００６６】
図2Aは、仮想現実環境の球面表現における画素をエクイレクタングラー平面表現にマッピングするために使用され得る基準座標系を示す。いくつかの実装形態では、球面データのエクイレクタングラー表現は、四角錐台の面によって与えられる平面にデータをマッピングするために使用され得る。
【００６７】
この例では、ビデオ画素を提供する球面200が、球面200の表面上の3次元座標を表現するために使用され得るx軸、y軸、およびz軸とともに与えられる。この例では、平面210は、x軸が球面200の表面と交差する点(円202でマークされている)が中心であり、x軸と垂直の向きである。この構成を仮定すると、図2Aの球面200からの画素は、次の式を使用して平面210にマッピングされ得る。
【００６８】
【数１】
2019509690.tif 000004
【００６９】
上記において、θ204の式は、球面200の中心と平面210の表面との間の線208(たとえば、図2Aの点線208)として視覚化することができ、ここで線208はθ=-πからπまで(たとえば、約-3.1415から3.1415まで)回転し、x軸はθ=0である。θ204の任意の所与の値において、線208が球面200と交差する点における画素を選択し、(θ204の同じ値に対する)対応する点にマッピングすることができ、ここで線208は平面210に触れる。同様に、φ206の式は、球面200の中心から平面210の表面への線210として視覚化することができ、ここで線210は-π/2からπ/2まで(たとえば、約-1.57から1.57まで)回転し、この平面はφ=0であるx軸およびy軸によって形成される。φ206の任意の所与の値において、線210が球面200と交差する点における画素を選択し、(φの同じ値に対する)対応する点にマッピングすることができ、ここで線210は平面210に触れる。θおよびφを同時に回転させることによって、球面200の中のすべての画素を平面210にマッピングすることができる。
【００７０】
図2Bは、上で説明された式および方法を使用して、エクイレクタングラー平面にマッピングされたビデオフレームの例を示す。結果は、たとえばメルカトル図法または正距円筒図法に類似している。この例において示されるように、θ204の上記の式は球面から平面へと水平な変換を与え、φ206の式は垂直な変換を与える。図2Bはまた、完全なビデオフレームの例を示し、世界の球面表現からの各画素が平面表現としてキャプチャされている。
【００７１】
上で述べられたように、高解像度でキャプチャされた仮想現実ビデオの完全なフレームは、ある所与の瞬間においてそのすべてが必要ではないことがある、大量のデータを含み得る。また上で述べられたように、四角錐台の形状へとビデオデータの立方体の形状の表現をマッピングすることで、記憶および輸送がより簡単であり得る量へとデータの量を減らすことができる。図3は、四角錐台の形状にマッピングされたビデオデータのフレームのためのフレームパッキング構造300の例を示す。フレームパッキング構造は、ビデオデコーダにより記憶され、輸送され、処理され得るデータの単一のブロックへと、ビデオフレームのデータを詰めるためのフォーマットを定義することができる。すなわち、フレームパッキング構造は、どのデータがデータブロックの中のどの点に位置すべきかを示すことができる。様々な実装形態では、図3に示されるものなどのフレームパッキング構造に従って詰められるフレームは、フレームにおいて使用されるパッキング構造を示す情報(たとえば、フラグ、フィールド、および/またはコード)を含み得る。復号デバイスは、フレームを表現するデータブロックの中のある特定の点に位置するビデオデータを特定するために、示されたパッキング構造を使用することができる。
【００７２】
上で論じられたように、四角錐台は、下底平面、上底平面、左平面、右平面、上平面、および下平面を有する。また上で論じられたように、四角錐台の平面の各々は、仮想現実ビデオフレームのある特定の視界と関連付けられ得る。具体的には、下底平面を前312の視界として指定することができ、上底平面を後ろ338の視界として指定することができ、左平面を左334の視界として指定することができ、右平面を右336の視界として指定することができ、上平面を上340の視界として指定することができ、下平面を下342の平面として指定することができる。これらの指定を使用して、前312の視界は「前」であると見なされ、それは、その視界が視聴者が面していると想定される方向であるからであり、左344の視界は視聴者の左にあり、右348の視界は視聴者の右にある。
【００７３】
図3の例では、左334、右336、上340、および下342の視界のデータは、後ろ338の視界のデータの周りに詰められている。具体的には、左334の視界は、後ろ338の視界の左端(後ろ338はここでは鏡像として現れるので、後ろ338の視界の右端であるように見える)に隣接して配置されている。具体的には、右336の視界は後ろ338の視界の右端に隣接して配置されている。上340の視界は後ろ338の視界の上に詰められており、下342の視界は後ろ338の視界の下に詰められている。いくつかの場合、左334、右336、上340、および下342のデータは、正方形または長方形のデータブロックに収まるように歪められ得る。様々な実装形態では、後ろ338の視界のサイズも調整され得る。たとえば、後ろ338の視界は、前312の視界のサイズの1/4または1/16であり得る。合成された左334、右336、上340、下342、および後ろ338のデータを、フレームパッキング構造300へと前312のデータの隣に詰めることができ、前312のデータは完全な解像度が保たれている。この例示的なフレームパッキング構造300を使用すると、フレームのデータをデータの長方形の形状のブロックに詰めることができる。
【００７４】
左334、右336、上340、および下342の視界を、後ろ338に対するそれらの配向に従って詰めることで、各ビュー間の(たとえば、左から後、後から右、右から上、上から左など)滑らかな遷移を提供することができる。たとえば、この例示的なフレームパッキング構造300に従って詰められたフレームが符号化されるとき、符号化処理で生じるビュー間の遷移におけるひずみがより少なくなり得る。起こり得るひずみをさらに減らすために、追加の場合によっては重複するビデオデータをフレームパッキング構造300の外側の端部の周りに詰めることができるように、フレームパッキング構造300を端部の周りに拡張することができる。フレームパッキング構造300に対するこの拡張が破線により図3において示されている。
【００７５】
上で説明されたように詰められると、ビデオデータのフレームは記憶および/または送信のために処理され得る。たとえば、フレームを、符号化し、圧縮し、かつ/またはカプセル化することができる。仮想現実ビデオデータの各フレームを同様の方式で詰めることができ、詰められたフレームをビットストリームのシーケンスに詰めることができる。ビットストリームは記憶および/または送信され得る。
【００７６】
図4は、記憶して輸送することができるデータのブロックへとビデオデータを記憶するために使用され得るフレームパッキング構造400の別の例を示す。この例では、上440および下442の視界の各々の半分が、左444の視界または右446の視界のいずれかとともに、(場合によってはデータを歪めることによって)後ろ448の視界の半分の周りに詰められている。より具体的には、上440の視界の左半分(UpL)および下442の視界の左半分(BottomL)が、後ろ448の視界の左半分(BackL)の周りに左444の視界とともに詰められており、後ろ448の視界に対するそれらの相対的な場所に従って配向されている。同様に、上440の視界の右半分(UpR)および下442の視界の右半分(BottomR)が、後ろ448の視界の右半分(BackR)の周りに右446の視界とともに詰められている。そのように詰められると、左444の視界は、フレーム400において、前の視界412に隣接して、かつその左に詰められる。同様に、右446の視界は、前の視界412に隣接して、かつその右に詰められる。前412の視界は完全な解像度が保たれている。
【００７７】
他のパッキング方法が可能であるが、この例では、左444および右446の視界は、連続性を改善するために、前412のそれぞれ左および右に配置されている。この例では、例示的なフレームパッキング構造400を使用してフレームパッキングを符号化することで、左444および右446の視界と前412の視界との間の境界にコーディング処理がまたがる際に、生じる境界のひずみがより少なくなり得る。境界のアーティファクトはまた、フレームの端部がより多くのビデオデータを含むように、フレームパッキング構造400の端部を拡張することによって減らすことができる。図4では、拡張された端部は破線で示されている。
【００７８】
図3および図4は、四角錐台の形状にマッピングされたビデオデータのフレームが記憶および/または送信のためにフレームへと詰められ得る方法の2つの例だけを与える。様々な視界が、様々な需要または優先順位を満たすために、様々な方法で歪められ、分割され、かつ/または詰められ得る。たとえば、いくつかの場合、左から右への遷移がより重要であるが、他の場合には上から下への遷移がより重要である。様々な実装形態では、同じビデオストリームからの異なるフレームを異なる方法で詰めることができる。これらの実装形態では、これらのフレームから生成されたビットストリームは、フレームがどのように詰められたかを示すための識別子を含み得る。
【００７９】
図5は、図3に示される例示的なフレームパッキング構造に従って詰められたビデオフレーム500の例を示す。図5の例では、360度のビデオのフレーム500は、四角錐台の平面にマッピングされている。前532、左534、右536、後ろ538、上540、および下542の視界の各々のデータが次いで、図3に示されているパッキング構造に従って詰められている。具体的には、図5において、左534、右536、上540、および下542の視界が、後ろ538の視界に関するそれらの位置に従って、後ろ538の視界の周りに詰められている。すなわち、左534の視界は後ろ538の視界の左端に隣接して配置されており、右536の視界は後ろの視界538の右端に隣接して配置されている。同様に、上540の視界は後ろ538の視界の上端に隣接して配置されており、下の視界542は後ろ538の視界の下端に隣接して配置されている。合成された左534、右536、後ろ538、上540、および下542の視界は前532の視界の隣のフレームへと詰められ、前532の視界は完全な解像度でフレーム500へと詰められる。
【００８０】
図6は、図4に示される例示的なフレームパッキング構造に従って詰められたビデオフレーム600の例を示す。図6の例では、360度のビデオのフレーム600は、四角錐台の平面にマッピングされている。この例では、左634、右636、上640、および下642の視界のデータは後ろ638の視界の周りに詰められており、得られたデータは半分に分割されている。これらの半分はさらに、前612の視界に隣接してフレーム600へと詰められている。具体的には、上640の視界の左半分および下642の視界の左半分が、後ろ638の視界の左半分の周りに左634の視界とともに詰められている。合成された「左」の視界が次いで、完全な解像度で詰められる前612の視界の左端にその左634の視界が隣接するように、フレーム600へと詰められる。同様に、上640の視界の右半分および下640の視界の右半分が、後ろ638の視界の右半分の周りに右636の視界とともに詰められている。合成された「右」の視界が次いで、前612の視界にその右636の視界が隣接するように、フレーム600へと詰められる。得られる詰められたデータフレーム600は、ビューポートが水平に動くにつれてより良好な水平方向の遷移を提供し得る。
【００８１】
使用されるフレームパッキング構造とは無関係に、四角錐台のマッピングは、前の視界から後ろの視界への品質のより滑らかな遷移を提供し得る。図7は、四角錐台の幾何学的形状に従ってビデオフレーム700が詰められたときに見られる品質750の尺度の例を与えるグラフを示す。この例では、グラフは、フレーム700が前712の視界から右716の視界さらに後ろ718の視界へと視聴される際に検出可能な品質750を示す。前712から右716さらに後ろ718への遷移は例として与えられ、品質750の変化は、前から左さらに後、前から上さらに後、前から下さらに後への遷移にも当てはまる。
【００８２】
図7に示されるグラフでは、品質750は、たとえば画像の解像度の変化が原因であり得る、画像の知覚可能な変化として測定される。グラフの水平軸は、視界が更新される際の品質750の変化を示す。グラフの線754は、フレーム700が四角錐台に従ってマッピングされるときの、検出可能な品質750を示す。示されるように、線752は、視界が前712から右716へと遷移するにつれて、品質750の段階的な変化が知覚され得ることを示している。さらに、後ろ718の視界においては、一貫して、しかしより低い品質750が知覚され得る。したがって、四角錐台のマッピングは、よりシームレスでリアルな視覚体験を提供することができる。
【００８３】
グラフ750は、ビデオフレームが本明細書で論じられるようにマッピングされ詰められるときに見られることがある、品質の遷移の一例を示す。他の例では、線754の遷移は、ビデオフレームが四角錐台の形状を使用してマッピングされたか、立方体の形状を使用してマッピングされたか、または他の形状を使用してマッピングされたかに応じて、ならびに、ビデオフレームの中の画素を選択された形状へと詰めるために使用される方法に応じて、変わり得る。
【００８４】
図8は、ビデオデータの四角錐台表現のためのフレームパッキング構造800へと360度ビデオデータの立方体の形状の表現の面をマッピングするために使用され得る比率の例を示す。立方体の面へと詰められるビデオデータは、下の例示的な式を使用して、四角錐台の台形の形状の平面へと直接歪められ得る。後ろの面のビデオデータは、下の例示的な式に従って、より小さい正方形へと歪められ得る。
【００８５】
図8の例では、左下の角860が、フレームパッキング構造800の座標(0,0)として指定されている。様々な実装形態では、フレームパッキング構造800の中の別の点(たとえば、左上の角862、下端の水平方向の中点870など)が座標(0,0)として指定され得る。フレームパッキング構造800の左側の角862は、座標(0,1)として指定されている。この例における「1」の値は、フレームパッキング構造800に従って詰められたフレームのサイズを示さず、むしろ、座標(0,0)に関するフレームパッキング構造800内の比率を示す。フレームの実際のサイズは、たとえば高さ1024ピクセル×幅2048ピクセルであり得るので、フレームパッキング構造の左上の角862は画素位置(0,1023)であり得る。フレームパッキング構造800の右下の角864は同様に座標(1,0)として指定され、右下の角864がフレームパッキング構造864の一番左の端を含むことを示す。
【００８６】
この例では、フレームパッキング構造800の水平軸の中点870は、x=0.5として指定されている。「0.5」という比率は、中点870がフレームパッキング構造800の厳密に中央にあるので、フレームパッキング構造800の左半分が右半分と同じだけのデータを記憶することを示す。加えて、第1の水平点872がx=0.6875(すなわち、x=0.5+0.3875)として指定されており、第2の水平点874がx=0.875(すなわち、x=0.5+0.625)として指定されている。第1の水平点872および第2の水平点874は、この例では、後ろ838の視界のデータの幅を示す。後ろの視界838のデータは形状が正方形であるので、第1の垂直点876はy=0.385およびy=0.625として指定されている。
【００８７】
図8において与えられる比率は、フレームパッキング構造へのビデオデータのパッキングを定義するために使用され得る比率の一例を示す。様々な実装形態では、他の比率が使用され得る。たとえば、いくつかの場合、後ろ838の視界のサイズを減らすこと、または増やすことが望ましいことがある。そのような例が図13に関して論じられている。
【００８８】
図8に示される例示的な比率を使用すると、右の立方体の面の中の点をフレームパッキング構造800の中の右836の視界へとマッピングする座標(x',y')が次の式を使用して決定され得る。
【００８９】
【数２】
2019509690.tif 000005
【００９０】
同様に、左の立方体の面の中の点をフレームパッキング構造800の中の左834の視界へとマッピングする座標(x',y')が次の式を使用して決定され得る。
【００９１】
【数３】
2019509690.tif 000006
【００９２】
下の立方体の面の中の点をフレームパッキング構造800の中の下842の視界へとマッピングする座標(x',y')が次の式を使用して決定され得る。
【００９３】
【数４】
2019509690.tif 000007
【００９４】
上の立方体の面の中の点をフレームパッキング構造800の中の上840の視界へとマッピングする座標(x',y')が次の式を使用して決定され得る。
【００９５】
【数５】
2019509690.tif 000008
【００９６】
フレームパッキング構造から立方体の平面への逆のマッピングも発生し得る。たとえば、フレームパッキング構造に従って詰められたフレームを受信する復号デバイスが、データを処理する前にフレームの中のビデオデータを取り出すことがある。右の立方体の面の中の座標(x,y)は、次の式を使用して取得することができる。
x=0.1875x'+0.5
y=0.375x'-0.75x'y'+y'
【００９７】
左の立方体の面の中の座標(x,y)は、次の式を使用して取得することができる。
x=0.1875x'+0.8125
y=0.25y'+0.75x'y'-0.375x'+0.375
【００９８】
下の立方体の面の中の座標(x,y)は、次の式を使用して取得することができる。
x=0.1875y'-0.375x'y'-0.125x'+0.8125
y=0.375-0.375y'
【００９９】
上の立方体の面の中の座標(x,y)は、次の式を使用して取得することができる。
x=1.0-0.1875y'-0.5x'+0.375x'y'
y=1.0-0.375y'
【０１００】
図9A〜図9Dは、360度ビデオフレームのための様々な異なるマッピングから得られるフレームサイズの比較を示す。この比較を行うために、図9A〜図9Dの例示的なマッピングが、互いに対して縮尺通りに描かれている。各々の例示的なマッピングは、それぞれのマッピング方法を使用して、同じビデオフレーム(すなわち、同じ数の画素)をマッピングする。図9A〜図9Dに示される例示的なマッピングは、エクイレクタングラーマッピング902(図9A)、立方体マッピング904(図9B)、および四角錐台マッピングの2つの例906、908(図9Cおよび図9D)を含む。
【０１０１】
上で論じられたように、エクイレクタングラーマッピング902は、ある特定のフレームの中の画素のすべてを含み得るので、完全なフレームであると見なされ得る。この例では、エクイレクタングラーマッピング902は、幅が4000ピクセルおよび高さが2000ピクセルであり、全体で800万個の画素を含む。さらに、フレームの中のすべての画素が完全な分解能で利用可能であるので、1つの表現しか1つのフレームに対して必要とされない。
【０１０２】
立方体マッピング904は、エクイレクタングラーマッピング902よりわずかに小さい。しかしながら、立方体の形状は、上および下の視界におけるひずみがより小さい。この例では、立方体マッピング904は、幅が3000ピクセルおよび高さが2000ピクセルであるので600万個の画素を含む。この例では、左、前、および右の立方体の面が、フレームにおいて互いに隣に詰められている。上、下、および後ろの面も、左、前、および右の視界の下に、互いに隣り合って詰められている。エクイレクタングラーマッピング902のように、フレームの中の画素のすべてが完全な解像度で利用可能であるので、1つの表現しかフレームに対して必要とされない。立方体マッピング904はエクイレクタングラーマッピング902より小さいが、デコーダデバイスは、フレームの部分をそれらのそれぞれの場所へと一緒にスティッチングするために、より多くの作業を行わなければならないことがある。
【０１０３】
第1の四角錐台マッピング906は、図3および図5に示されるフレームパッキング構造に基づく。図9の例示的な四角錐台マッピング906は、幅が2000ピクセルおよび高さが1000ピクセルであり、200万個の画素を含む。四角錐台マッピング906は、1つの視界またはビューポートに対して完全な解像度を提供し、すべての他の視界に対して低減された解像度を提供する。したがって、いくつかの場合、1つのフレームに対して6つの表現を符号化することができ、6つの表現の各々は互いに対して90度の角度で符号化される。しかしながら、6つすべての表現が必要とされるかどうかは、フレームの内容、および/または視聴者が任意の所与の瞬間にどのビューポートを見ているかに依存し得る。
【０１０４】
第2の四角錐台マッピング908は、図4および図6に示されるフレームパッキング構造に基づく。図9のこの例示的な四角錐台マッピング908も、幅が2000画素および高さが1000画素であるので、200万個の画素を含む。例示的な四角錐台908も、1つの視界に対して完全な解像度を提供し、すべての他の視界に対して低減された解像度を提供する。
【０１０５】
様々な実装形態では、ファイルフォーマットが360度のビデオフレームを記述することができる。図4および図6は、四角錐台の形状にマッピングされた360度のビデオフレームを長方形の表現へと詰めるために使用され得るフレームパッキング構造を示す。様々な実装形態では、ファイルフォーマットは、360度のビデオを四角錐台の幾何学的形状にマッピングするためのパラメータを含み得る。ファイルフォーマットはさらに、そのようにマッピングされた、ビデオデータを記述するためのパラメータを、テキストおよび/またはバイナリファイルに格納することができる。このファイルは記憶および/または輸送され得る。
【０１０６】
第1の例示的な実施形態
いくつかの実装形態では、本明細書において説明される技法は、四角錐台(tspyr)の幾何学的形状について、ISO/IEC JTC1/SC29/WG11/M37837、「Proposed text for omnidirectional media application format」、MPEG 114、2016年2月、または、ISO/IEC JTC1/SC29/WG11 N16189、「WD on ISO/IEC 23000-20 Omnidirectional Media Application Format」、MPEG 115、2016年6月(以後集合的に「Omnidirectional Media Application Format Standard」)において提案された、全方位メディアアプリケーションフォーマットを拡張することができる。下で説明される実装形態は、シンタックスおよびセマンティクスへの提案される追加を含み、Omnidirectional Media Application Format Standardに関して詳述される。
【０１０７】
下で論じられる第1の例示的な実施形態では、Omnidirectional Media Application Format Standardからのテキストが引用され、テキストへの追加は下線付きのテキストで示される(追加のテキストの例)。
【０１０８】
いくつかの実装形態では、Omnidirectional Media Application Format Standardへの変更は、omnidirectional media texture mapping metadata sample entriesを含む。1つの例が次のように与えられる。
【０１０９】
シンタックス
以下の変更は、Omnidirectional Media Application Format Standardのセクション3.2.2への提案される追加である。
aligned(8) class OmnidirectionalMediaTextureMappingSampleEntry
extends MetadataSampleEntry ('omtm'){
unsigned int(1)      is_stereoscopic;
unsigned int(1)      is_default_front;
unsigned int(6)      reserve
if ( is_sterescopic )
unsigned  int(8)      stereoscopic_type;
unsigned  int(8)      geometry_type;
if ( geometry_type == tspyr ) {
unsigned  int(8) tspyr_height;
unsigned  int(8) tspyr_back_width;
unsigned  int(8) tspyr_back_height;
}
if ( !is_default_front ) {
unsigned  int(16)center_pitch;
unsigned  int(16)center_yaw;
}
}
【０１１０】
セマンティクス
下の表における変更および表に続くセマンティクスの定義は、Omnidirectional Media Application Format Standardのセクション3.2.3のTable 3への提案される追加を含む。
【０１１１】
【表２】
2019509690.tif 000009
【０１１２】
tspyr_heightは四角錐台の高さまたは深さを示す。たとえば、高さまたは深さは、四角錐台の前のサイズに関して規定され得る。
【０１１３】
tspyr_back_widthおよびtspyr_back_heightは後ろの面の幅および高さを示す。たとえば、四角錐台の幅および高さは、四角錐台の前のサイズに関して規定され得る。
【０１１４】
いくつかの実装形態では、omnidirectional media texture mapping metadata sample entriesを含む、Omnidirectional Media Application Format Standardへの変更の別の例が、次のように与えられる。
【０１１５】
シンタックス
以下の変更は、Omnidirectional Media Application Format Standardのセクション3.3.1への提案される更新である。
aligned(8) class OmniMediaTextureMappingMetadataSample(){
unsigned int(16) center_pitch_offset;
unsigned int(16) center_yaw_offset;
if (geometry_type != sphere){
unsigned int(1) is_multiple_regions;
unsigned int(8) num_of_regions;
for(i=0; i < number_regions ; i++){
unsigned int(16) region_top_left_x;
unsigned int(16) region_top_left_y;
unsigned int(16) region_width;
unsigned int(16)      region_height;
if (geometry_type ==…){
…
} else if (geometry_type == tspyr){
unsigned int(16) tspyr_surface_id;
if (tspyr_surface_id == tspyr_surface_id) {
unsigned int(16) area_top_left_x;
unsigned int(16) area_top_left_y;
unsigned int(16) area_width;
unsigned int(16) area_height;
}
}
}
}
}
【０１１６】
セマンティクス
以下の変更は、Omnidirectional Media Application Format Standardのセクション3.3.2におけるセマンティクスへの提案された更新を含む。
【０１１７】
tspyr_surface_idは、本文書の「定義」セクションにおいて定義されるような四角錐台の表面の識別子を示す。
【０１１８】
【表３】
2019509690.tif 000010
【０１１９】
定義
幾何学的形状タイプ、テクスチャマッピング、および投影の様々な定義がここで説明される。
【０１２０】
四角錐台(TSP)に関して、TSPの3次元幾何学的形状の各表面にマッピングされるべきテクスチャの領域が、図10Aおよび図10Bに示されるように構成される。具体的には、図10Aおよび図10Bは、テクスチャ領域とtspyrの幾何学的形状の面(前1012、後ろ1038、左1034、右1036、上1040、および下1042)との間の対応付けを示す。各領域の位置およびサイズは、OmniMediaTextureMappingMetadataSampleボックスによって示される。各領域の位置(たとえば、(region_top_left_x, region_top_left_y) 1150)、幅(たとえば、region_width 1152)、および高さ(たとえば、region_height 1154)が図11A〜図11Fに示されている。
【０１２１】
図11Aにより与えられるように、tspyr_surface_idが前1112に等しい場合、前1112の表面エリアはテクスチャの長方形の左半分である。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の高さまたは深さに関して定義され得る。
【０１２２】
図11Bにより与えられるように、tspyr_surface_idが後ろ1138に等しい場合、後の表面エリアはテクスチャの長方形の右半分に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、後ろの面の幅および高さに関して定義され得る。
【０１２３】
図11Cにより与えられるように、tspyr_surface_idが上1140に等しい場合、表面エリアはテクスチャの長方形の右半分の上側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の高さまたは深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１２４】
図11Dにより与えられるように、tspyr_surface_idが下1142に等しい場合、表面エリアはテクスチャの長方形の右半分の下側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の高さまたは深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１２５】
図11Eにより与えられるように、tspyr_surface_idが右1136に等しい場合、表面エリアはテクスチャの長方形の右半分の左側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の高さまたは深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１２６】
図11Fにより与えられるように、tspyr_surface_idが左1134に等しい場合、表面エリアはテクスチャの長方形の右半分の右側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の高さまたは深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１２７】
第2の例示的な実施形態
いくつかの実装形態では、本明細書で説明される技法は、四角錐台の幾何学的形状についてN15946において提案されるomnidirectional media application formatに拡張される。以下のテキストでは、MPEG N15946への追加は下線付きのテキストで示されている(追加のテキストの例)。
【０１２８】
四角錐台(tspyr)の幾何学的形状は、VR/360度ビデオの方向性ビューポートレンダリングのために提案される。tspyrの前の面は完全な解像度を有するが、解像度は、より小さな後ろの面に向かって徐々に低下する。上で述べられたように、図10Aおよび図10Bは、テクスチャ領域とtspyrの幾何学的形状の面(前1012、後ろ1038、左1034、右1036、上1040、および下1042)との間の対応付けを示す。図10Aは四角錐台の幾何学的形状を示し、図10Bは対応するテクスチャ領域を示す。
【０１２９】
tspyrビデオ情報をTspyrビデオ情報ボックスにおいてシグナリングすることができ、Tspyrビデオ情報ボックスは、ISO/IEC JTC1/SC29/WG11/N15946、「Technologies under Consideration for Omnidirectional Media Application Format」、MPEG 114、2016年2月に記載されるようなVRビデオ情報ボックスに格納される。Tspyrビデオ情報ボックスのシンタックスおよびセマンティクスは、次のように記述される。
【０１３０】
シンタックス
aligned(8) class VrVideoBox extends FullBox(‘vrvd', version = 0, 0) {
template unsigned int(28) reserved = 0;
unsigned int(4)      vr_mapping_type;
if (vr_mapping_type == 3)
TspyrVideoInfoBox tspyr_video_info_box;
Box[] any_box; //任意選択
}
【０１３１】
セマンティクス
vr_mapping_typeは、球面ビデオから長方形フォーマットへのマッピングタイプを示す整数である。0の値はエクイレクタングラーマッピングを示す。値1は立方体マッピングを示す。値3は四角錐台マッピングを示し、フォーマットはTspyrVideInfoBoxによって記述される。他の値は予備である。
【０１３２】
Tspyrビデオ情報ボックス(TspyrVideoInfoBox)のシンタックスおよびセマンティクスは、次の通りである。
【０１３３】
ボックスタイプ:      'tspyr'
【０１３４】
コンテナ:      スキーム情報ボックス(‘vrvd')
【０１３５】
必須性:      あり(vr_mapping_typeが3に等しいとき)
【０１３６】
品質:      1
【０１３７】
Tspyrビデオ情報ボックスは、トラックに格納されるtspyr VR/360ビデオのフォーマットを示すために使用される。この情報は、tspyr VR/360ビデオのレンダリングのために使用されることになる。
aligned(8) class TspyrVideoInfoBox extends FullBox(‘tspyr', version = 0, 0) {
bit(8) reserved = 0;
unsigned int(8) tspyr_depth;
unsigned int(8) tspyr_back_width;
unsigned int(8) tspyr_back_height;
unsigned int(16) center_pitch;
unsigned int(16) center_yaw;
unsigned int(16) center_pitch_offset;
unsigned int(16) center_yaw_offset;
unsigned int(16) area_width;
unsigned int(16) area_height;
for (tspyr_region_id = 0; tspyr_region_id < 6; tspyr_region_id++) {
unsigned int(32) region_top_left_x;
unsigned int(32) region_top_left_y;
unsigned int(32) region_width;
unsigned int(32)      region_height;
}
}
【０１３８】
tspyr_depthは四角錐台の深さを示す。
【０１３９】
tspyr_back_widthおよびtspyr_back_heightは後ろの面の幅および高さを示す。
【０１４０】
tspyr_region_idはtspyrテクスチャの領域の識別子を示す(Table 1(表4))
【０１４１】
【表４】
2019509690.tif 000011
【０１４２】
center_pitchおよびcenter_yawはそれぞれ、ビデオの中心画素がレンダリングされる点の座標のピッチ角およびヨー角を示す。中心画素は、四角錐台の前の面の中心である。ピッチおよびヨーは、四角錐台の向きを意味する、ビューポートを決定することができる。存在しないとき、center_pitchおよびcenter_yawの値は、0に等しいものと推測される。
【０１４３】
center_pitch_offsetおよびcenter_yaw_offsetはそれぞれ、ビデオの中心画素がレンダリングされる点の座標のピッチ角およびヨー角からのオフセット値を示す。center_pitch_offset + center_pitchおよびcenter_yaw_offset + center_yawはそれぞれ、現在のサンプルの中心点を示す。
【０１４４】
region_top_left_xおよびregion_top_left_yはそれぞれ、長方形の形状の中での参照されるトラックにおけるビデオの領域の左上の角の水平座標および垂直座標を示す。
【０１４５】
region_widthおよびregion_heightはそれぞれ、長方形の形状の中での参照されるトラックにおけるビデオの領域の幅および高さを示す。
【０１４６】
3次元幾何学的形状の各表面にマッピングされるべきテクスチャの領域が、図11A〜図11Dのように並べられる。各領域の位置1150(たとえば、(region_top_left_x, region_top_left_y))、幅1152(たとえば、region_width)、および高さ1154(たとえば、region_height)が示されている。
【０１４７】
図11Aにより与えられるように、tspyr_region_idが前1112に等しい場合、前1112の表面エリアはテクスチャの長方形の左半分である。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の深さに関して定義され得る。
【０１４８】
図11Bにより与えられるように、tspyr_region_idが後ろ1138に等しい場合、後ろ1138の表面エリアはテクスチャの長方形の右半分に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、後ろの面の幅および高さに関して定義され得る。
【０１４９】
図11Cにより与えられるように、tspyr_region_idが上1140に等しい場合、表面エリアはテクスチャの長方形の右半分の上側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１５０】
図11Dにより与えられるように、tspyr_region_idが下1142に等しい場合、表面エリアはテクスチャの長方形の右半分の下側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１５１】
図11Eにより与えられるように、tspyr_region_idが右1136に等しい場合、表面エリアはテクスチャの長方形の右半分の左側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１５２】
図11Fにより与えられるように、tspyr_region_idが左1134に等しい場合、表面エリアはテクスチャの長方形の右半分の右側に位置する。表面エリアは、region_width 1152およびregion_height 1154によって与えられる。様々な実装形態では、region_width 1152およびregion_height 1154は、四角錐台の深さ、ならびに後ろの面の幅および高さに関して定義され得る。
【０１５３】
図12は、立方体1210の平面を四角錐台1230の平面にマッピングする別の例を示す。上で論じられたように、仮想環境の球面表現は、立方体1210の面によって与えられる6つの平面にマッピングされ得る。立方体1210の1つの面を前1212の視界として、前1212の左の面を左1214の視界として、前1212の右の面を右1216の視界として、対応する面を上1220の視界として、別の面を下1222の視界として、最後の面を後ろ1218の視界として指定することができる。立方体1210の面への球面データセットのマッピングはビデオデータの完全なフレームを提供し、それは、6つのあり得る視界の各々が完全な解像度に保たれるからである。また、上で論じられたように、四角錐台により与えられる平面へと立方体1210により与えられる平面をマッピングすることで、完全な360度の視界を表現するために必要なデータの量を減らすことができる。
【０１５４】
図12の例では、修正された四角錐台1230は、立方体1210の面の中のデータをマッピングすべき平面を提供するために使用される。この例では、四角錐台1230は、四角錐台の下底に下底または持ち上げられた台を追加するように修正されている。言い換えると、この例では、四角錐台1230の下底は、立方体の前1212の面の方を向いているが、立方体の後ろ1218の面の方向にいくらかの量だけオフセットしている。したがって、たとえば、四角錐台1230の左側は、長方形の左前1234a平面および台形の左後1234b平面を含む。左前1234a平面は左1214の立方体の面の対応する領域に直接対応するので、左前1234a平面の中の画素は完全な解像度に保たれる。左後1234b平面の中の画素は、平面の台形の形状に収まるように、完全な解像度から低下させられ得る。
【０１５５】
立方体の右1216、上1220、および下1222の面の各々は、修正された四角錐台により与えられる平面に同様にマッピングされ得る。具体的には、四角錐台1230は、完全な解像度で画素を保つ右前1236a平面、および解像度を低下させた右後1236b平面を含む。同様に、四角錐台1230は、上前1240a平面および上後1240b平面、ならびに下前1242a平面および下後1242b平面を含む。四角錐台1230の後ろ1238の平面は修正されておらず、立方体1210の後ろ1218の面のすべての、解像度が低減された表現を提供する。立方体の前1212の面がさらに、完全な解像度で、四角錐台1230の修正された下底1232にマッピングされる。
【０１５６】
上で説明された修正された四角錐台1230マッピングは、立方体1210の前1212の面の方を見ている視聴者に、より良い90度の視野を提供し得る。前1212の視界が完全な解像度で保たれることに加えて、左1214、右1216、上1220、および下1222の視界の量も完全な解像度に保たれる。完全な解像度に保たれる左1214、右1216、上1220、および下1222の視界の量は、視聴者の周辺視野の中に十分に入っていることがあり、または視聴者の視野のちょうど端にあることがある。様々な実装形態では、視聴者に提供される視野は、左前1234a、右前1236b、上前1240a、および下前1240bの領域のサイズを修正することによって調整され得る。この調整は、たとえば、四角錐台1230の上1238の平面のサイズを修正することによって達成され得る。
【０１５７】
図13は、修正された四角錐台のマッピングのためのフレームパッキング構造1300の例を示す。この例では、左前1334aの視界は前1312の視界の左のフレーム1300へと詰められており、右前1336aの視界は前1312の視界の右に詰められている。左前1334aおよび右前1336aを、フレーム1300において前1312の隣のそれぞれの場所に置くことで、フレーム1300が符号化される際の、上から左または上から右へのより滑らかな遷移を実現することができる。
【０１５８】
この例においてさらに示されるように、左後1334b、右後1336b、上後1340b、および下後1342bの視界は、フレーム1300において後ろ1338の視界の周りに詰められている。左後1334b、右後1336b、上後1340b、下後1342b、および後ろ1338の組合せが次いで、フレーム1300において右前1336の隣に詰められるので、右後1336bは右前1336aの視界に隣接している。上前1340aの視界は回転されており、左後1334bの視界の隣に詰められている。下前1342aも回転されており、上前の視界1340aの隣に配置されている。最終結果は、この例では、フレーム1300が長方形になるというものである。
【０１５９】
図14は、修正された四角錐台のマッピングのためのフレームパッキング構造1400の別の例を示す。この例では、上後、下、および後ろの視界が半分に分割されており、これらの半分が、それらのそれぞれの左後1434bおよび右後1436bの視界とともに詰められている。具体的には、上後1440bの視界の左半分および下後1442の視界の左半分が、後ろ1438の視界の左半分の周りに、左後1434bの視界とともに詰められている。合成された「左」の視界が次いで左前1434aの視界の隣に詰められ、左後1434bの視界は左前1434aの視界の隣に配置される。左前1434aの視界自体が、前1432の視界の左端の隣に詰められる。
【０１６０】
同様に、上後1440bの視界の右半分および下後1442bの視界の左半分が、後ろ1438の視界の右半分の周りに、右後1436bの視界とともに詰められている。合成された「右」の視界が次いで右前1436aの視界の隣に詰められ、右後1436bの視界は右前1436aの視界の隣に配置される。右前1436aの視界自体が、前1432の視界の隣に詰められる。最終的に、下前1442aの視界は回転されて、合成された左の視界の左に詰められ、上前1440aの視界は回転されて、合成された右の視界の右に詰められる。
【０１６１】
図13および図14は、図9に示される修正された四角錐台のマッピングが長方形のフレーム構造へと詰められ得るような、様々な方法の2つだけの例を与える。各々が異なる利点をもたらす可能性のある、他の変形が可能である。たとえば、図14の例示的なフォーマットは、フレームが符号化されるときに左から右への遷移においてよりひずみを少なくし得るが、それは上から下への遷移におけるある程度のひずみと引き換えである。別の例として、図13の例示的なフォーマットは、生成するのがより簡単であり得る。
【０１６２】
様々な実装形態では、上で論じられたフレームパッキング構造における前の視界は、90度の視野を表現することができる。たとえば、ビデオフレームの360度の球面表現が立方体の面にマッピングされるとき、立方体の1つの面が90度の視野を表現することができる。したがって、四角錐台の形状の下底平面(これは上で述べられたように前の視界として指定され得る)が立方体の1つの面をマッピングするとき、この下底平面は90度の視野をマッピングすることができる。上で論じられた様々なフレームパッキング構造において、90度の視野の外側のエリアは、前の視界とサイズおよび/または形状が等価であるフレームパッキング構造の中のあるエリアへと詰められ得る。そのようなフレームパッキング構造では、完全な解像度が保たれる見ることができるエリアは90度の視界にすぎないことがあり、それは、90度の外側のあらゆるエリアが、左、右、上、および下の視界へと圧縮され得るからである。
【０１６３】
様々な実装形態では、完全な解像度のデータを含む視野は、四角錐台の形状の下底平面のサイズを増やすことによって増やされ得る。すなわち、より大きなエリアで完全な解像度を保つことができ、このエリアは前述の立方体の面より大きいことがある。結果として、後ろの面の解像度を下げることができ、またはフレームパッキング構造のサイズを増やすことができ、またはこれらの両方を行うことができる。
【０１６４】
図15は、視野を広げるために、後ろの視界1588の解像度を保つより大きなフレームパッキング構造1550が使用されている例を示す。図15は第1のフレームパッキング構造1500の例を示し、前1512の視界は90度の視野を表現する。この第1のフレームパッキング構造1500では、左1534、右1536、上1540、および下1542の視界は、前1512の視界とサイズが等価なエリアに、後ろ1538とともに詰められる。
【０１６５】
図15は第2のフレームパッキング構造1550の例も示し、前1552の視界は30%広いので、117度の視野を表現する。この117度の視野を作り出すために、本来は左1584、右1586、上1590、および下1592の視界の中にある画素が、代わりに前1552の視界の中にある。したがって、左1584、右1586、上1590、および下1592の視界のための、第2のフレームパッキング構造1550の中のエリアは、第1のフレームパッキング構造1500の中でこれらの視界によって占有されるエリアと比較して、前の視界1552のサイズに対して相対的に小さくなり得る。この第2のフレームパッキング構造1550において、後ろ1588の視界のサイズは第1のフレームパッキング構造1500の中の後ろ1538の視界のサイズと同じであるので、後ろ1588の視界の解像度を維持することができる。したがって、第2のフレームパッキング構造1550の全体的なサイズはより大きく、たとえば、第1のフレームパッキング構造は幅が2000ピクセルで高さが1000ピクセルであり得るが、第2のフレームパッキング構造は幅が2600ピクセルで高さが1300ピクセルであり得る。
【０１６６】
図15は、完全な解像度が保たれる視野が90度を超えて拡大されるような一例を示す。様々な実装形態では、視野をさらに広げることができる。様々な実装形態では、後ろの視界の解像度を下げることもできるので、フレームパッキング構造のサイズを大きく増やす必要はない。
【０１６７】
図16は、本明細書で説明されるような、360度ビデオフレームを四角錐台の平面にマッピングするためのプロセス1600の例を示す。1602において、プロセス1600は、仮想現実ビデオデータを取得することを含む。仮想現実ビデオデータは、仮想環境の360度の視界を表現する。たとえば、仮想現実ビデオデータは視聴者にリアルな体験を提供することができ、視聴者は仮想環境のシームレスな表現を見ている間、左もしくは右を向き、上もしくは下を見て、かつ/または動き回ることができる。仮想現実ビデオデータは複数のフレームを含み得る。複数のフレームからの各フレームは、対応する球面ビデオデータ、またはフレームのためのビデオデータの球面表現を含み得る。
【０１６８】
1604において、プロセス1600は、複数のフレームからのあるフレームのための球面ビデオデータを四角錐台の平面へとマッピングすることを含む。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは下底平面のサイズより小さいことがある。いくつかの実装形態では、上底平面のサイズは下底平面のサイズ以下であることがある。様々な実装形態では、球面ビデオデータをマッピングすることは、次のように追加のステップを含み得る。
【０１６９】
1606において、プロセス1600は、球面ビデオデータの第1の部分を下底平面へと完全な解像度でマッピングすることを含む。様々な実装形態では、下底平面は球面ビデオデータの前の視界を表現することができる。
【０１７０】
1608において、プロセス1600は、球面ビデオデータの第2の部分を上底平面へと低減された解像度でマッピングすることを含む。低減された解像度は、完全な解像度より低くてよい。様々な実装形態では、低減された解像度は完全な解像度のある百分率であり得る。様々な実装形態では、低減された解像度を生み出すために、球面ビデオデータの第2の部分をダウンサンプリングまたはダウンスケーリングすることができる。様々な実装形態では、上底平面は球面ビデオデータの後ろの視界を表現することができる。
【０１７１】
1610において、プロセス1600は、球面ビデオデータの第3の部分を左側平面へと低下する解像度でマッピングすることを含む。低下する解像度は、完全なまたはほぼ完全な解像度から低減された解像度までの、ある範囲の解像度を含み得る。完全なまたはほぼ完全な解像度は、下底平面に隣接する左側平面の端において使用され得る。低減された解像度は、上底平面に隣接する左側平面の端において使用され得る。様々な実装形態では、低減された解像度は、上底平面の低減された解像度と同じであり、またはほぼ同じである。様々な実装形態では、左側平面は球面ビデオデータの左の視界を表現することができる。
【０１７２】
1612において、プロセス1600は、球面ビデオデータの第4の部分を右側平面へと低下する解像度でマッピングすることを含む。完全なまたはほぼ完全な解像度は、下底平面に隣接する右側平面の端において使用され得る。低減された解像度は、上底平面に隣接する右側平面の端において使用され得る。様々な実装形態では、右側平面において使用される解像度は、下底平面に隣接する右側平面の端から、上底平面に隣接する右側平面の端に向かって低下し得る。様々な実装形態では、低減された解像度は、上底平面の低減された解像度と同じであり、またはほぼ同じである。様々な実装形態では、右側平面は球面ビデオデータの右の視界を表現することができる。
【０１７３】
1614において、プロセス1600は、球面ビデオデータの第5の部分を上側平面へと低下する解像度でマッピングすることを含む。様々な実装形態では、上側平面は、球面ビデオデータの上の視界(すなわち、見上げたときに見られる視界)を表現することができる。
【０１７４】
1616において、プロセスは、球面ビデオデータの第6の部分を下側平面へと低下する解像度でマッピングすることを含む。様々な実装形態では、下側平面は、球面ビデオデータの下(bottom)または下方(down)の視界(すなわち、見下ろしたときに見られる視界)を表現することができる。
【０１７５】
図17は、フレームのためのビデオデータが四角錐台の形状を使用してフレームへと詰められたような、仮想現実ビデオのフレームを復号するためのプロセス1700の例を示す。1720において、プロセス1700は、仮想現実ビデオデータのフレームを取得することを含む。仮想現実ビデオデータは、仮想環境の360度の視界を表現し得る。フレームは長方形のフォーマットを有し得る。いくつかの実装形態では、仮想現実ビデオデータのフレームは符号化デバイスから受信され得る。代わりに、または加えて、いくつかの実装形態では、仮想現実ビデオデータのフレームは記憶デバイスまたは記憶媒体から読み取られ得る。様々な実装形態では、仮想現実ビデオデータのフレームは、復号デバイスによって受信されるとき、ビデオ符号化フォーマットを使用して符号化および/または圧縮される。様々な実装形態では、仮想現実ビデオデータのフレームはビデオデータのストリームの一部であることがあり、ストリームは仮想環境のためのフレームの連続的なシーケンスを含む。
【０１７６】
1704において、プロセス1700は、フレームのフレームパッキング構造を特定することを含む。フレームパッキング構造は、フレームにおけるビデオデータの場所を提供し得る。フレームパッキング構造は、四角錐台の平面を含み得る。四角錐台の平面は、下底平面、上底平面、左側平面、右側平面、上側平面、および下側平面を含む。上底平面のサイズは通常、下底平面のサイズより小さい。いくつかの実装形態では、上底平面のサイズは下底平面のサイズ以下である。様々な実装形態では、フレームパッキング構造は、平面の各々のためのフレーム内での位置、ならびに各平面の寸法を、復号デバイスに対して特定することができる。
【０１７７】
1706において、プロセス1700は、フレームパッキング構造を使用してフレームを表示することを含み得る。様々な実装形態では、フレームを表示することは、下底平面に対応するビデオデータを前の視界として提供することを含むことができ、前の視界は完全な解像度で表示される。フレームを表示することはさらに、上底平面に対応するビデオデータを後ろの視界として提供することを含むことができ、後ろの視界は低減された解像度で表示される。フレームを表示することはさらに、左側平面に対応するビデオデータを左の視界として提供することと、右側平面に対応するビデオデータを右の視界として提供することと、上側平面に対応するビデオデータを上の視界として提供することと、下側平面に対応するビデオデータを下の視界として提供することとを含み得る。左、右、上、および下の視界は解像度が低下することがあり、これは、各視界が前の視界に向かって完全なまたはほぼ完全な解像度を有し、後ろの視界に向かってより低い解像度へと徐々に低下することを意味する。様々な実装形態では、フレームを表示することは、フレームを表示する前にフレームを復号することを含み得る。
【０１７８】
いくつかの例では、プロセス1600、1700は、ビデオ符号化デバイスなどのコンピューティングデバイスまたは装置によって実行され得る。いくつかの場合、コンピューティングデバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはプロセス1600、1700のステップを行うように構成されるデバイスの他の構成要素を含み得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(たとえば、ビデオシーケンス)をキャプチャするように構成されたカメラを含み得る。たとえば、コンピューティングデバイスは、ビデオコーデックを含み得るカメラデバイス(たとえば、IPカメラまたは他のタイプのカメラデバイス)を含み得る。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータを通信するように構成され得る。
【０１７９】
プロセス1600、1700は、論理フロー図として示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実施され得る動作のシーケンスを表す。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されると記載される動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行し、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明される任意の数の動作は、プロセスを実施するために任意の順序で、かつ/または並列に組み合わせられてよい。
【０１８０】
加えて、プロセス1600、1700は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行することができ、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、まとめて実行するコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装することができる。上で述べられたように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶され得る。コンピュータ可読記憶媒体または機械可読記憶媒体は非一時的であってよい。
【０１８１】
図18は、画素の球面1800によって表現される、360度仮想環境において画素をマッピングするための別の例示的な形状を示す。この例では、データの球面1800は立方体1810の平面にマッピングされ得る。立法体1800の平面は、前1812の平面、後ろ1818の平面、左1814の平面、右1816の平面、上1820の平面、および下1822の平面として指定され得る。
【０１８２】
上で論じられたように、立方体1810の6つの平面は、球面1800からのビデオデータを完全な解像度で表現することができる。ビデオデータのサイズを減らすために、立方体1810の6つの面を四角錐の形状1830にマッピングすることができ、角錐1830の正方形の下底1832は、立方体の前1812の面の方を向いており、立方体1810の前1812の面に関して45度回転している。角錐の形状1830の頂点はさらに、後ろ1818の視界の中心と揃っている。角錐の形状1830の4つの側面の各々はさらに、P1 1834、P2 1836、P3 1838、およびP4 1840と指定され得る。立方体の左1814、右1816、上1820、および下1822の面からの画素は、様々な方法でP1 1834、P2 1836、P3 1838、およびP4 1840に割り振られ得る。たとえば、1つの面は角錐の形状1830の1つの側面にマッピングされ得る(たとえば、P1 1834は右1816の面にマッピングし、P2 1836は上1820の面にマッピングし、P3は左1814の面にマッピングし、P4は下1822の面にマッピングする)。代わりに、角錐の形状1830の1つの側面はいくつかの面の部分をマッピングすることができる。たとえば、P1 1834は右1816および上1820の面の一部をマッピングすることができ、P2 1836は上1820および左1814の面の一部をマッピングすることができ、P3は左1814および下1822の面の一部をマッピングすることができ、P4 1840は下1822および右1816の面の一部をマッピングすることができる。これらの例の各々において、後ろ1818の面が除外される。
【０１８３】
図19は、図18に示される角錐の形状のためのフレームパッキング構造1900の例を示す。図19では、前の視界1932(すなわち、角錐の形状の下底)がフレームパッキング構造1900の中央に配置されており、角錐の正方形の下底の辺はフレームパッキング構造1900の辺に対して45度の角度である。角錐の形状の辺、P1 1934、P2 1936、P3 1938、およびP4 1940は、フレームパッキング構造1900の角に配置され得る。上で論じられたように、P1 1934、P2 1936、P3 1938、およびP4 1940は、左、右、上、および下の視界のすべてまたは一部を記憶することができる。様々な実装形態では、フレームパッキング構造1900は、P1 1934、P2 1936、P3 1938、およびP4 1940の各々がさらなる、場合によっては重複するデータをキャプチャするように、拡張され得る。フレームパッキング構造1900を拡張することは、P1 1934、P2 1936、P3 1938、およびP4 1940の境界における解像度を改善することができる。拡張されたエリアは、破線によって図19に示されている。
【０１８４】
本明細書で論じられたコーディング技法は、例示的なビデオ符号化および復号システムにおいて実施され得る。いくつかの例では、システムは、宛先デバイスによって後で復号されるべき符号化されたビデオデータを提供するソースデバイスを含む。具体的には、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを含み得る。場合によっては、ソースデバイスおよび宛先デバイスは、ワイヤレス通信に対応し得る。
【０１８５】
宛先デバイスは、復号されるべき符号化されたビデオデータを、コンピュータ可読媒体を介して受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスへ符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスが符号化されたビデオデータをリアルタイムで宛先デバイスに直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスへ送信され得る。通信媒体は、高周波(RF)スペクトルまたは1つまたは複数の物理伝送線路などの、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするために有用であり得る任意の他の機器を含み得る。
【０１８６】
いくつかの例では、符号化されたデータは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、分散されるかまたは局所的にアクセスされる様々なデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイスによって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイスに送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む任意の標準的なデータ接続を通じて符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【０１８７】
本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、dynamic adaptive streaming over HTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【０１８８】
一例では、ソースデバイスは、ビデオソース、ビデオエンコーダ、および出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオデコーダ、およびディスプレイデバイスを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示される技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、一体型ディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースし得る。
【０１８９】
上の例示的なシステムは一例にすぎない。ビデオデータを並行して処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実施されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実施され得る。その上、本開示の技法はまた、ビデオプロセッサによって実行され得る。ソースデバイスおよび宛先デバイスはそのようなコーディングデバイスの例にすぎず、ソースデバイスは、宛先デバイスへの送信のためにコーディングされたビデオデータを生成する。いくつかの例では、ソースおよび宛先デバイスは、デバイスの各々がビデオ符号化および復号構成要素を含むように、実質的に対称的な方式で動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス間での一方向または双方向のビデオ送信をサポートし得る。
【０１９０】
ビデオソースは、ビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成し得る。場合によっては、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、上述のように、本開示で説明される技法は、一般に、ビデオコーディングに適用可能であることがあり、ワイヤレスおよび/または有線の用途に適用されることがある。各事例において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダによって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
【０１９１】
述べられたように、コンピュータ可読媒体は、ワイヤレスブロードキャスト送信もしくは有線ネットワーク送信などの一時的媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、ソースデバイスから符号化されたビデオデータを受信し、符号化されたビデオデータを、たとえばネットワーク送信を介して宛先デバイスに提供することができる。同様に、ディスクスタンピング施設のような、媒体生産施設のコンピューティングデバイスは、ソースデバイスから符号化されたビデオデータを受信し、符号化されたビデオデータを含むディスクを生産することができる。したがって、コンピュータ可読媒体は、様々な例において、様々な形式の1つまたは複数のコンピュータ可読媒体を含むものと理解され得る。
【０１９２】
宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックの特性および/または処理ならびに他のコーディングされたユニット、たとえばピクチャグループ(GOP)を記述するシンタックス要素を含む、ビデオデコーダによっても使用される、ビデオエンコーダによって定義されるシンタックス情報を含み得る。ディスプレイデバイスは、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備え得る。本発明の様々な実施形態が説明された。
【０１９３】
符号化デバイス2004および復号デバイス2112の具体的な詳細が、それぞれ、図20および図21に示される。図20は、本開示で説明される技法のうちの1つまたは複数を実施し得る例示的な符号化デバイス2004を示すブロック図である。符号化デバイス2004は、たとえば、本明細書で説明されるシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス2004は、ビデオスライス内のビデオブロックのイントラ予測コーディングおよびインター予測コーディングを実行し得る。前に説明されたように、イントラコーディングは、所与のビデオフレーム内またはピクチャ内の空間的冗長性を低減または除去するために、空間予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接するまたは取り囲むフレーム内の時間的冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指し得る。
【０１９４】
符号化デバイス2004は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャメモリ64と、加算器50、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構築のために、符号化デバイス2004はまた、逆量子化ユニット58、逆変換処理ユニット60、および加算器62を含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことが意図されている。図20では、フィルタユニット63はループフィルタとして示されるが、他の構成では、フィルタユニット63はポストループフィルタとして実装され得る。後処理デバイス57は、符号化デバイス2004によって生成された符号化されたビデオデータに、さらなる処理を実行し得る。本開示の技法は、いくつかの事例では、符号化デバイス2004によって実施され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実施され得る。
【０１９５】
図20に示されるように、符号化デバイス2004はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。区分することはまた、スライス、スライスセグメント、タイル、または他のもっと大きいユニットに区分すること、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分を含み得る。符号化デバイス2004は一般に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよびひずみのレベルなど)に基づいて、現在のビデオブロックのための、複数のイントラ予測コーディングモードのうちの1つまたは複数のインター予測コーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に、得られたイントラまたはインターコーディングされたブロックを提供し得る。
【０１９６】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間的圧縮を提供するために、コーディングされるべき現在のブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する、現在のビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を提供するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する、現在のビデオブロックのインター予測コーディングを実行する。
【０１９７】
動き推定ユニット42は、ビデオシーケンスの所定のパターンに従って、ビデオスライスのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンスの中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は高度に集積され得るが、概念的な目的のために別々に図示される。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示し得る。
【０１９８】
予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、符号化デバイス2004は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置に対する値を計算し得る。たとえば、符号化デバイス2004は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０１９９】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、その各々はピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【０２００】
動き補償ユニット44によって実行される動き補償は、場合によっては、サブピクセル精度への補間を実行する動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリスト内で動きベクトルが指す予測ブロックの位置を特定し得る。符号化デバイス2004は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際の復号デバイス2112による使用のために、ビデオブロックおよびビデオスライスと関連付けられたシンタックス要素を生成し得る。
【０２０１】
イントラ予測処理ユニット46は、上で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。具体的には、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用すべき適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、テストされた様々なイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算することができ、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された、符号化されていない元のブロックとの間のひずみ(すなわち、エラー)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を示すかを決定するために、様々な符号化されたブロックに対するひずみおよびレートから比を計算し得る。
【０２０２】
いずれの場合も、ブロックのためのイントラ予測モードを選択した後、イントラ予測処理ユニット46は、エントロピー符号化ユニット56にブロックのための選択されたイントラ予測モードを示す情報を提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス2004は、様々なブロックのための符号化コンテキストの構成データ定義、ならびに最確イントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストの各々に対して使用すべき修正されたイントラ予測モードインデックステーブルの指示を、送信されるビットストリームの中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルおよび修正された複数のイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る。
【０２０３】
予測処理ユニット41がインター予測またはイントラ予測のいずれかを介して現在のビデオブロックの予測ブロックを生成した後、符号化デバイス2004は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUの中に含められてよく、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、画素領域から周波数領域などの変換領域に、残差ビデオデータを変換し得る。
【０２０４】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
【０２０５】
量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化されたビットストリームは、復号デバイス2112へ送信されてよく、または復号デバイス2112によって後で送信もしくは取出しができるようにアーカイブされてもよい。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスの動きベクトルおよび他のシンタックス要素をエントロピー符号化し得る。
【０２０６】
逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構築残差ブロックに適用し得る。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを生成するために、動き補償ユニット44によって生成された動き補償された予測ブロックに再構築残差ブロックを加算する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【０２０７】
このようにして、図20の符号化デバイス2004は、符号化されたビデオビットストリームのためのシンタックスを生成するように構成されたビデオエンコーダの一例を表す。符号化デバイス2004は、たとえば、上で説明されたように、VPS、SPS、およびPPSパラメータセットを生成し得る。符号化デバイス2004は、上記のプロセスを含む本明細書で説明される技法のうちのいずれをも実行することができる。本開示の技法は全般に、符号化デバイス2004に関して説明されたが、上述のように、本開示の技法のいくつかはまた、後処理デバイス57によって実施されてよい。
【０２０８】
図21は、例示的な復号デバイス2112を示すブロック図である。復号デバイス2112は、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット91、およびピクチャメモリ92を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測処理ユニット84を含む。復号デバイス2112は、いくつかの例では、図20からの符号化デバイス2004に関連して説明された符号化パスとは全般に逆の復号パスを実行し得る。
【０２０９】
復号プロセスの間、復号デバイス2112は、符号化デバイス2004によって送られた符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化されたビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス2112は、符号化されたデバイス2004から符号化されたビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス2112は、サーバ、メディア認識ネットワーク要素(MANE:media-aware network element)、ビデオエディタ/スプライサ、または上で説明された技法のうちの1つもしくは複数を実施するように構成されたそのような他のデバイスなどのネットワークエンティティ79から、符号化されたビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス2004を含んでよく、または含まなくてもよい。本開示で説明される技法のうちのいくつかは、ネットワークエンティティ79が符号化されたビデオビットストリームを復号デバイス2112へ送信する前に、ネットワークエンティティ79によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス2112は、別個のデバイスの一部であってよく、他の事例では、ネットワークエンティティ79に関して説明される機能は、復号デバイス2112を備える同じデバイスによって実行されてよい。
【０２１０】
復号デバイス2112のエントロピー復号ユニット80は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。復号デバイス2112は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSなどの1つまたは複数のパラメータセットの中の、固定長シンタックス要素と可変長シンタックス要素の両方を処理および構文解析し得る。
【０２１１】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、通知されたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックの予測データを生成し得る。ビデオフレームがインターコーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成され得る。復号デバイス2112は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。
【０２１２】
動き補償ユニット82は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックの予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、パラメータセットの中の1つまたは複数のシンタックス要素を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための1つまたは複数の参照ピクチャリストに対する構築情報、スライスのインター符号化されたビデオブロックごとの動きベクトル、スライスのインターコーディングされたビデオブロックごとのインター予測ステータス、および現在のビデオスライスの中のビデオブロックを復号するための他の情報を決定し得る。
【０２１３】
動き補償ユニット82は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット82は、参照ブロックのサブ整数ピクセルに対する補間値を計算するために、ビデオブロックの符号化の間に符号化デバイス2004によって使用されるような補間フィルタを使用し得る。この場合、動き補償ユニット82は、符号化デバイス2004によって使用される補間フィルタを、受信されたシンタックス要素から決定することができ、予測ブロックを生成するためにその補間フィルタを使用することができる。
【０２１４】
逆量子化ユニット86は、ビットストリームの中で提供されるとともにエントロピー復号ユニット80によって復号された量子化された変換係数を逆量子化(inverse quantize)または逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスの中のビデオブロックごとに符号化デバイス2004によって計算された量子化パラメータを使用することを含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換(たとえば、逆DCTまたは他の適切な逆変換)、逆整数変換、または概念的に類似の逆変換プロセスを適用する。
【０２１５】
動き補償ユニット82が動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後、復号デバイス2112は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、(コーディングループ中またはコーディングループ後のいずれかの)ループフィルタも、ピクセル遷移を平滑化するために、または別の方法でビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことを意図している。フィルタユニット91がループフィルタの中にあるものとして図21に示されるが、他の構成では、フィルタユニット91は、ポストループフィルタとして実装されてもよい。所与のフレームまたはピクチャの中の復号されたビデオブロックは、次いで、ピクチャメモリ92に記憶され、ピクチャメモリ92は、後続の動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ92はまた、図1に示されるビデオ宛先デバイス122などのディスプレイデバイス上で後で提示するために、復号されたビデオを記憶する。
【０２１６】
上記の説明では、本出願の態様は、その特定の実施形態を参照して説明されたが、本発明がそれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されたが、本発明の概念が別の方法で様々に具現化または採用されてよく、従来技術による限定を除いて、添付の特許請求の範囲がそのような変形形態を含むものと解釈されることを意図することを理解されたい。上で説明された発明の様々な特徴および態様は、個別または一緒に使用され得る。さらに、実施形態は、本明細書の広い趣旨および範囲から逸脱することなく、本明細書で説明されたものを越えた任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定ではなく例示であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、説明された順序とは異なる順序で方法が実行され得ることを諒解されたい。
【０２１７】
構成要素がいくつかの動作を実行する「ように構成」されているものとして説明される場合、そのような構成は、たとえば、動作を実行するための電子回路もしくはハードウェアを設計することによって、動作を実行するためのプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成され得る。
【０２１８】
本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、全般にそれらの機能に関して上で説明された。そのような機能が、ハードウェアとして実現されるか、ソフトウェアとして実現されるかは、具体的な適用例と、システム全体に課される設計制約とによって決まる。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装できるが、そのような実装形態の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【０２１９】
本明細書で説明された技術はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明された任意の特徴が、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別個に実装され得る。ソフトウェアで実装される場合、技法は、実行されると上で説明された方法の1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【０２２０】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくは個別論理回路などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のうちのいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に好適な任意の他の構造もしくは装置のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に設けられるか、または組み合わせられたビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。
【符号の説明】
【０２２１】
35  区分ユニット
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測処理ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
57  後処理デバイス
58  逆量子化ユニット
60  逆変換処理ユニット
62  加算器
63  フィルタユニット
64  ピクチャメモリ
79  ネットワークエンティティ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測処理ユニット
86  逆量子化ユニット
88  逆変換処理ユニット
90  加算器
91  フィルタユニット
92  ピクチャメモリ
100  球面
110  立方体
112  前
114  左
116  右
118  後ろ
120  上
122  下
130  四角錐台
132  下底
134  左側
136  右側
138  上底
140  上側
142  下側
200  球面
202  円
204  θ
206  φ
208  線
210  平面
300  フレームパッキング構造
312  前
334  左
336  右
338  後ろ
340  上
342  下
400  フレームパッキング構造
412  前
440  上
442  下
444  左
446  右
448  後ろ
500  ビデオフレーム
532  前
534  左
536  右
538  後ろ
540  上
542  下
600  ビデオフレーム
612  前
634  左
636  右
638  後ろ
640  上
642  下
700  ビデオフレーム
712  前
716  右
718  後ろ
750  品質
754  線
800  フレームパッキング構造
812  前
834  左
836  右
838  後ろ
840  上
842  下
862  左上の角
864  右下の角
870  中点
872  第1の水平点
874  第2の水平点
876  第1の垂直点
902  エクイレクタングラーマッピング
904  立方体マッピング
906  四角錐台マッピング
908  四角錐台マッピング
1012  前
1034  左
1036  右
1038  後ろ
1040  上
1042  下
1112  前
1134  左
1136  右
1138  後ろ
1140  上
1142  下
1150  位置
1152  幅
1154  高さ
1210  立方体
1212  前
1214  左
1216  右
1218  後ろ
1220  上
1222  下
1230  四角錐台
1234a  左前
1234b  左後
1236a  右前
1236b  右後
1238  後ろ
1240a  上前
1240b  上後
1242a  下前
1242b  下後
1300  フレームパッキング構造
1312  前
1334a  左前
1334b  左後
1336a  右前
1336b  右後
1338  後ろ
1340a  上前
1340b  上後
1342a  下前
1342b  下後
1400  フレームパッキング構造
1432  前
1434a  左前
1434b  左後
1436a  右前
1436b  右後
1438  後ろ
1440a  上前
1440b  上後
1442a  下前
1442b  下後
1500  フレームパッキング構造
1512  前
1534  左
1536  右
1538  後ろ
1540  上
1542  下
1550  フレームパッキング構造
1552  前
1584  左
1586  右
1588  後ろ
1590  上
1592  下
1600  プロセス
1700  プロセス
1800  球面
1810  立方体
1812  前
1814  左
1816  右
1818  後ろ
1820  上
1822  下
1830  四角錐の形状
1832  下底
1834  側面
1836  側面
1838  側面
1840  側面
1900  フレームパッキング構造
1932  前の視界
1934  辺
1936  辺
1938  辺
1940  辺
2004  符号化デバイス
2112  復号デバイス
【図１】
2019509690.tif 000012
【図２Ａ】
2019509690.tif 000013
【図２Ｂ】
2019509690.tif 000014
【図３】
2019509690.tif 000015
【図４】
2019509690.tif 000016
【図５】
2019509690.tif 000017
【図６】
2019509690.tif 000018
【図７】
2019509690.tif 000019
【図８】
2019509690.tif 000020
【図９Ａ】
2019509690.tif 000021
【図９Ｂ】
2019509690.tif 000022
【図９Ｃ】
2019509690.tif 000023
【図９Ｄ】
2019509690.tif 000024
【図１０Ａ】
2019509690.tif 000025
【図１０Ｂ】
2019509690.tif 000026
【図１１Ａ】
2019509690.tif 000027
【図１１Ｂ】
2019509690.tif 000028
【図１１Ｃ】
2019509690.tif 000029
【図１１Ｄ】
2019509690.tif 000030
【図１１Ｅ】
2019509690.tif 000031
【図１１Ｆ】
2019509690.tif 000032
【図１２】
2019509690.tif 000033
【図１３】
2019509690.tif 000034
【図１４】
2019509690.tif 000035
【図１５】
2019509690.tif 000036
【図１６】
2019509690.tif 000037
【図１７】
2019509690.tif 000038
【図１８】
2019509690.tif 000039
【図１９】
2019509690.tif 000040
【図２０】
2019509690.tif 000041
【図２１】
2019509690.tif 000042
【手続補正書】
【提出日】平成30年9月26日(2018.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
360度のビデオデータをマッピングするための方法であって、
仮想環境の360度の視界を表現する360度のビデオデータを取得するステップであって、前記360度のビデオデータが複数のフレームを含み、前記複数のフレームからの各フレームが対応する球面ビデオデータを含む、ステップと、
前記複数のフレームからのあるフレームのための前記球面ビデオデータを四角錐台の平面へとマッピングするステップであって、前記四角錐台の前記平面が、前平面、後平面、左側平面、右側平面、上側平面、および下側平面を含み、前記後平面のサイズが前記前平面のサイズより小さく、前記左側平面、前記右側平面、前記上側平面、および前記下側平面が台形の形状を有する、ステップとを備え、前記球面ビデオデータをマッピングするステップが、
前記球面ビデオデータの第1の部分を前記前平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第2の部分を前記後平面へと低減された解像度でマッピングするステップであって、前記低減された解像度が前記完全な解像度より低い解像度である、ステップと、
前記球面ビデオデータの第3の部分を前記左側平面へと低下する解像度でマッピングするステップであって、前記低下する解像度が前記台形の形状に基づいて前記完全な解像度から前記低減された解像度へと低下する、ステップと、
前記球面ビデオデータの第4の部分を前記右側平面へと前記低下する解像度でマッピングするステップと、
前記球面ビデオデータの第5の部分を前記上側平面へと前記低下する解像度でマッピングするステップと、
前記球面ビデオデータの第6の部分を前記下側平面へと前記低下する解像度でマッピングするステップと
を備える、方法。
【請求項２】
前記球面ビデオデータをパッキング構造へと詰めるステップをさらに備え、前記詰めるステップが、
第1のデータブロックの中の前記第2の部分の周りに、前記球面ビデオデータの前記第3の部分、前記第4の部分、前記第5の部分、および前記第6の部分を詰めるステップと、
前記第1の部分を第2のデータブロックへと詰めるステップと、
前記第1のデータブロックおよび前記第2のデータブロックを前記パッキング構造へと詰めるステップであって、前記第1のデータブロックが前記パッキング構造において前記第2のデータブロックの隣に配置される、ステップとを含む、請求項1に記載の方法。
【請求項３】
前記球面ビデオデータをパッキング構造へと詰めるステップをさらに備え、前記詰めるステップが、
第1のデータブロックの中の前記第2の部分の第1の半分の周りに、前記球面ビデオデータの前記第5の部分の第1の半分、前記第6の部分の第1の半分、および前記第3の部分を詰めるステップと、
第2のデータブロックの中の前記第2の部分の第2の半分の周りに、前記球面ビデオデータの前記第5の部分の第2の半分、前記第6の部分の第2の半分、および前記第4の部分を詰めるステップと、
前記球面ビデオデータの前記第1の部分を第3のデータブロックへと詰めるステップと、
前記第1のデータブロック、前記第2のデータブロック、および前記第3のデータブロックを前記パッキング構造へと詰めるステップであって、前記第1のデータブロックおよび前記第2のデータブロックが前記パッキング構造において前記第3のデータブロックの隣に配置される、ステップと
を含む、請求項1に記載の方法。
【請求項４】
前記複数のフレームからの第1のフレームを送信するステップであって、前記第1のフレームのためのビデオデータが第1の四角錐台の平面にマッピングされる、ステップと、
前記複数のフレームからの第2のフレームを送信するステップであって、前記第2のフレームのためのビデオデータが第2の四角錐台の平面にマッピングされ、前記第2の四角錐台が前記第1の四角錐台に対して回転されている、ステップとをさらに備える、請求項1に記載の方法。
【請求項５】
前記四角錐台がさらに、前記台形の左側平面に隣接した長方形の左側平面、前記台形の右側平面に隣接した長方形の右側平面、前記台形の上側平面に隣接した長方形の上側平面、および前記台形の下底平面に隣接した長方形の下底平面を含み、前記球面ビデオデータをマッピングするステップがさらに、
前記球面ビデオデータの第7の部分を前記長方形の左側平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第8の部分を前記長方形の右側平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第9の部分を前記長方形の上側平面へと完全な解像度でマッピングするステップと、
前記球面ビデオデータの第10の部分を前記長方形の下側平面へと完全な解像度でマッピングするステップと
を含む、請求項1に記載の方法。
【請求項６】
前記四角錐台の幾何学的形状タイプを定義するステップであって、前記幾何学的形状タイプが、前記球面ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、ステップと、
前記四角錐台の高さを定義するステップと、
前記四角錐台の背幅を定義するステップであって、前記背幅が前記後平面と関連付けられる、ステップと、
前記四角錐台の背高を定義するステップであって、前記背高が前記後平面と関連付けられる、ステップとをさらに備える、請求項1に記載の方法。
【請求項７】
前記四角錐台のマッピングタイプを定義するステップをさらに備え、前記マッピングタイプが前記球面ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記四角錐台の前記マッピングタイプがビデオ情報ボックスと関連付けられる、請求項1に記載の方法。
【請求項８】
360度のビデオデータをマッピングするためのデバイスであって、
ビデオデータを記憶するように構成されるメモリと、
前記メモリと通信しているビデオ符号化デバイスとを備え、前記ビデオ符号化デバイスが、
仮想環境の360度の視界を表現する360度のビデオデータを取得することであって、前記360度のビデオデータが複数のフレームを含み、前記複数のフレームからの各フレームが対応する球面ビデオデータを含む、取得することと、
前記複数のフレームからのあるフレームのための前記球面ビデオデータを四角錐台の平面へとマッピングすることであって、前記四角錐台の前記平面が、前平面、後平面、左側平面、右側平面、上側平面、および下側平面を含み、前記後平面のサイズが前記前平面のサイズより小さく、前記左側平面、前記右側平面、前記上側平面、および前記下側平面が台形の形状を有する、マッピングすることと
を行うように構成され、前記球面ビデオデータをマッピングすることが、
前記球面ビデオデータの第1の部分を前記前平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第2の部分を前記後平面へと低減された解像度でマッピングすることであって、前記低減された解像度が前記完全な解像度より低い解像度である、マッピングすることと、
前記球面ビデオデータの第3の部分を前記左側平面へと低下する解像度でマッピングすることであって、前記低下する解像度が前記台形の形状に基づいて前記完全な解像度から前記低減された解像度へと低下する、マッピングすることと、
前記球面ビデオデータの第4の部分を前記右側平面へと前記低下する解像度でマッピングすることと、
前記球面ビデオデータの第5の部分を前記上側平面へと前記低下する解像度でマッピングすることと、
前記球面ビデオデータの第6の部分を前記下側平面へと前記低下する解像度でマッピングすることと
を含む、デバイス。
【請求項９】
前記ビデオ符号化デバイスがさらに、前記球面ビデオデータをパッキング構造へと詰めるように構成され、前記詰めることが、
第1のデータブロックの中の前記第2の部分の周りに、前記球面ビデオデータの前記第3の部分、前記第4の部分、前記第5の部分、および前記第6の部分を詰めることと、
前記第1の部分を第2のデータブロックへと詰めることと、
前記第1のデータブロックおよび前記第2のデータブロックを前記パッキング構造へと詰めることであって、前記第1のデータブロックが前記パッキング構造において前記第2のデータブロックの隣に配置される、詰めることとを含む、請求項8に記載のデバイス。
【請求項１０】
前記ビデオ符号化デバイスがさらに、前記球面ビデオデータをパッキング構造へと詰めるように構成され、前記詰めることが、
第1のデータブロックの中の前記第2の部分の第1の半分の周りに、前記球面ビデオデータの前記第5の部分の第1の半分、前記第6の部分の第1の半分、および前記第3の部分を詰めることと、
第2のデータブロックの中の前記第2の部分の第2の半分の周りに、前記球面ビデオデータの前記第5の部分の第2の半分、前記第6の部分の第2の半分、および前記第4の部分を詰めることと、
前記球面ビデオデータの前記第1の部分を第3のデータブロックへと詰めることと、
前記第1のデータブロック、前記第2のデータブロック、および前記第3のデータブロックを前記パッキング構造へと詰めることであって、前記第1のデータブロックおよび前記第2のデータブロックが前記パッキング構造において前記第3のデータブロックの隣に配置される、詰めることと
を含む、請求項8に記載のデバイス。
【請求項１１】
前記ビデオ符号化デバイスがさらに、
前記複数のフレームから第1のフレームを送信することであって、前記第1のフレームのためのビデオデータが第1の四角錐台の平面にマッピングされる、送信することと、
前記複数のフレームから第2のフレームを送信することであって、前記第2のフレームのためのビデオデータが第2の四角錐台の平面にマッピングされ、前記第2の四角錐台が前記第1の四角錐台に対して回転されている、送信することと
を行うように構成される、請求項8に記載のデバイス。
【請求項１２】
前記四角錐台がさらに、前記台形の左側平面に隣接した長方形の左側平面、前記台形の右側平面に隣接した長方形の右側平面、前記台形の上側平面に隣接した長方形の上側平面、および前記台形の下底平面に隣接した長方形の下底平面を含み、前記球面ビデオデータをマッピングすることが、
前記球面ビデオデータの第7の部分を前記長方形の左側平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第8の部分を前記長方形の右側平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第9の部分を前記長方形の上側平面へと完全な解像度でマッピングすることと、
前記球面ビデオデータの第10の部分を前記長方形の下側平面へと完全な解像度でマッピングすることと
を含む、請求項8に記載のデバイス。
【請求項１３】
前記フレームのための前記球面ビデオデータを前記四角錐台の前記平面へとマッピングすることが、
前記球面ビデオデータからビデオデータを選択することと、
前記四角錐台の前記平面からの対応する平面上での前記選択されたビデオデータの場所を特定することとを含む、請求項8に記載のデバイス。
【請求項１４】
前記フレームのための前記球面ビデオデータを前記四角錐台の前記平面へとマッピングすることが、
前記球面ビデオデータからビデオデータを選択することと、
前記選択されたビデオデータをダウンサンプリングすることと、
前記四角錐台の前記平面からの対応する平面上での前記ダウンサンプリングされたビデオデータの場所を特定することとを含む、請求項8に記載のデバイス。
【請求項１５】
前記ビデオ符号化デバイスがさらに、
前記四角錐台の幾何学的形状タイプを定義することであって、前記幾何学的形状タイプが、前記球面ビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、定義することと、
前記四角錐台の高さを定義することと、
前記四角錐台の背幅を定義することであって、前記背幅が前記後平面と関連付けられる、定義することと、
前記四角錐台の背高を定義することであって、前記背高が前記後平面と関連付けられる、定義することと
を行うように構成される、請求項8に記載のデバイス。
【請求項１６】
前記ビデオ符号化デバイスがさらに、
表面識別子を定義することであって、前記表面識別子が前記四角錐台の平面を識別する、定義することと、
前記四角錐台の平面の各々の左上水平座標を定義するであって、前記左上水平座標がパッキング構造内での前記平面の左上の角の水平位置を示し、前記パッキング構造が前記球面ビデオデータを前記ファイルフォーマットにマッピングするために使用される、定義することと、
前記四角錐台の各平面の左上垂直座標を定義することであって、前記左上垂直座標が前記パッキング構造内での前記平面の前記左上の角の垂直座標を示す、定義することと、
前記四角錐台の各平面のエリア幅を定義することであって、前記エリア幅が前記平面の幅と関連付けられる、定義することと、
前記四角錐台の各平面のエリア高さを定義することであって、前記エリア高さが前記平面の高さと関連付けられる、定義することと
を行うように構成される、請求項15に記載のデバイス。
【請求項１７】
前記ビデオ符号化デバイスがさらに、
前記四角錐台のマッピングタイプを定義するように構成され、前記マッピングタイプが前記球面ビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記四角錐台の前記マッピングタイプがビデオ情報ボックスと関連付けられる、請求項8に記載のデバイス。
【請求項１８】
前記ビデオ情報ボックスが、
前記四角錐台の深さを示す深さと、
前記後平面の幅を示す背幅と、
前記後平面の高さを示す背高と、
前記四角錐台の前記平面からのある平面を識別する領域識別子と、
前記球面ビデオデータの中心画素がレンダリングされる点の座標のピッチ角を示す中心ピッチと、
前記球面ビデオデータの前記中心画素がレンダリングされる前記点の前記座標のヨー角を示す中心ヨーと、
前記球面ビデオデータの前記中心画素がレンダリングされる前記点の前記座標の前記ピッチ角のオフセット値を示す中心ピッチオフセットと、
前記球面ビデオデータの前記中心画素がレンダリングされる前記点の前記座標の前記ヨー角のオフセット値を示す中心ヨーオフセットと、
前記平面の左上の角の水平座標を示す左上水平座標と、
前記平面の前記左上の角の垂直座標を示す左上垂直座標と、
前記平面の幅を示す領域幅と、
前記平面の高さを示す領域高とを含む、請求項17に記載のデバイス。
【請求項１９】
ビデオデータのフレームを生成するための方法であって、
仮想環境の360度の視界を表現する360度のビデオデータのフレームを取得するステップであって、前記フレームが長方形のフォーマットを有する、ステップと、
前記フレームのフレームパッキング構造を特定するステップであって、前記フレームパッキング構造が四角錐台の平面の前記フレームにおける場所を定義し、球面ビデオデータが前記四角錐台の前記平面にマッピングされ、前記四角錐台の前記平面が、前平面、後平面、左側平面、右側平面、上側平面、および下側平面を含み、前記後平面のサイズが前記前平面のサイズより小さく、前記左側平面、前記右側平面、前記上側平面、および前記下側平面が台形の形状を有する、ステップと、
前記フレームパッキング構造を使用して前記フレームを生成するステップとを備える、方法。
【請求項２０】
前記フレームパッキング構造がさらに、前記台形の左側平面に隣接した長方形の左側平面、前記台形の右側平面に隣接した長方形の右側平面、前記台形の上側平面に隣接した長方形の上側平面、および前記台形の下底平面に隣接した長方形の下底平面を含む、請求項19に記載の方法。
【請求項２１】
前記フレームの幾何学的形状タイプを決定するステップであって、前記幾何学的形状タイプが、前記360度のビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、ステップと、
前記幾何学的形状タイプに基づいて、前記四角錐台から高さを決定するステップと、
前記幾何学的形状タイプを使用して前記四角錐台の背幅を決定するステップであって、前記背幅が前記後平面と関連付けられる、ステップと、
前記幾何学的形状タイプを使用して前記四角錐台の背高を決定するステップであって、前記背高が前記後平面と関連付けられる、ステップとをさらに備える、請求項19に記載の方法。
【請求項２２】
マッピングタイプを特定するステップをさらに備え、前記マッピングタイプが前記360度のビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記マッピングタイプが前記四角錐台を特定し、前記マッピングタイプがビデオ情報ボックスと関連付けられる、請求項19に記載の方法。
【請求項２３】
ビデオデータのフレームを生成するためのデバイスであって、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリと通信しているビデオ復号デバイスとを備え、前記ビデオ復号デバイスが、
仮想環境の360度の視界を表現する360度のビデオデータのフレームを取得することであって、前記フレームが長方形のフォーマットを有する、取得することと、
前記フレームのフレームパッキング構造を特定することであって、前記フレームパッキング構造が四角錐台の平面の前記フレームにおける場所を定義し、球面ビデオデータが前記四角錐台の前記平面にマッピングされ、前記四角錐台の前記平面が、前平面、後平面、左側平面、右側平面、上側平面、および下側平面を含み、前記後平面のサイズが前記前平面のサイズより小さく、前記左側平面、前記右側平面、前記上側平面、および前記下側平面が台形の形状を有する、特定することと、
前記フレームパッキング構造を使用して前記フレームを生成することと
を行うように構成される、デバイス。
【請求項２４】
前記フレームを表示することが、
前記フレームの中の前記ビデオデータの第1の部分を前の視界として提供することであって、前記ビデオデータの前記第1の部分が前記前平面に対応し、前記ビデオデータの前記第1の部分が完全な解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第2の部分を後ろの視界として提供することであって、前記ビデオデータの前記第2の部分が前記後平面に対応し、前記ビデオデータの前記第2の部分が低減された解像度にあり、前記低減された解像度が前記完全な解像度より低い解像度である、提供することと、
前記フレームの中の前記ビデオデータの第3の部分を左の視界として提供することであって、前記ビデオデータの前記第3の部分が前記左側平面に対応し、前記ビデオデータの前記第3の部分が低下する解像度にあり、前記低下する解像度が前記台形の形状に基づいて前記完全な解像度から前記低減された解像度へと低下する、提供することと、
前記フレームの中の前記ビデオデータの第4の部分を右の視界として提供することであって、前記ビデオデータの前記第4の部分が前記右側平面に対応し、前記ビデオデータの前記第4の部分が前記低下する解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第5の部分を上の視界として提供することであって、前記ビデオデータの前記第5の部分が前記上側平面に対応し、前記ビデオデータの前記第5の部分が前記低下する解像度にある、提供することと、
前記フレームの中の前記ビデオデータの第6の部分を下の視界として提供することであって、前記ビデオデータの前記第6の部分が前記下側平面に対応し、前記ビデオデータの前記第6の部分が前記低下する解像度にある、提供することと含む、請求項23に記載のデバイス。
【請求項２５】
前記ビデオ復号デバイスがさらに、
360度のビデオデータの第2のフレームを受信することであって、前記第2のフレームが前記フレームに対して回転されている、受信することと、
前記フレームパッキング構造を使用して前記第2のフレームを表示することとを行うように構成される、請求項23に記載のデバイス。
【請求項２６】
前記フレームパッキング構造がさらに、前記台形の左側平面に隣接した長方形の左側平面、前記台形の右側平面に隣接した長方形の右側平面、前記台形の上側平面に隣接した長方形の上側平面、および前記台形の下底平面に隣接した長方形の下底平面を含む、請求項23に記載のデバイス。
【請求項２７】
前記復号デバイスがさらに、
前記フレームの幾何学的形状タイプを決定することであって、前記幾何学的形状タイプが、前記360度のビデオデータをファイルフォーマットにマッピングするための幾何学的形状を特定する、決定することと、
前記幾何学的形状タイプに基づいて、前記四角錐台から高さを決定することと、
前記幾何学的形状タイプを使用して前記四角錐台の背幅を決定することであって、前記背幅が前記上底平面と関連付けられる、決定することと、
前記幾何学的形状タイプを使用して前記四角錐台の背高を決定することであって、前記背高が前記上底平面と関連付けられる、決定することと
を行うように構成される、請求項23に記載のデバイス。
【請求項２８】
前記復号デバイスがさらに、
マッピングタイプを特定するように構成され、前記マッピングタイプが前記360度のビデオデータを長方形のフォーマットにマッピングするためのマッピングタイプを示し、前記マッピングタイプが前記四角錐台を特定し、前記マッピングタイプがビデオ情報ボックスと関連付けられる、請求項23に記載のデバイス。
【国際調査報告】
2019509690.tif 000043
2019509690.tif 000044
2019509690.tif 000045