(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-17
(45)【発行日】2024-05-27
(54)【発明の名称】低レイテンシ動画符号化及び送信のレート制御
(51)【国際特許分類】
H04N 19/126 20140101AFI20240520BHJP
H04N 19/14 20140101ALI20240520BHJP
H04N 19/162 20140101ALI20240520BHJP
H04N 19/169 20140101ALI20240520BHJP
H04N 19/63 20140101ALI20240520BHJP
【FI】
H04N19/126
H04N19/14
H04N19/162
H04N19/169 300
H04N19/63
【外国語出願】
(21)【出願番号】P 2022151361
(22)【出願日】2022-09-22
(62)【分割の表示】P 2020570017の分割
【原出願日】2019-06-27
【審査請求日】2022-10-07
(32)【優先日】2018-06-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100210239
【氏名又は名称】富永 真太郎
(72)【発明者】
【氏名】パン ハオ
(72)【発明者】
【氏名】チョウ ジム シー
(72)【発明者】
【氏名】フェルナンデス フィリックス シー
【審査官】鉢呂 健
(56)【参考文献】
【文献】特許第7249364(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
動画符号化システムであって、
現在の動画フレームからの画素ブロックにウェーブレット変換を適用して、前記画素ブロックを複数の周波数帯域に分解し、
前記複数の周波数帯域に関する周波数データを含む周波数ブロックを出力する
ように構成された1以上のプロセッサを含むウェーブレット変換構成要素と、
前記周波数ブロック内の前記周波数データを分析し、前記現在の動画フレームの前記複数の周波数帯域にわたる複雑度統計値を計算し、
前記現在の動画フレームの前記複数の周波数帯域の前記複雑度統計値を出力する
ように構成された1以上のプロセッサを含む複雑度分析構成要素と、
(a)前記現在の動画フレームの前記複数の周波数帯域の前記複雑度統計値、
(b)前の動画フレームからの他の複雑度統計値、及び
、
(c)前記前の動画フレームの中心窩領域に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての量子化パラメータを決定し、
前記現在の動画フレームの前記複数の周波数帯域についての前記決定された量子化パラメータを使用して前記周波数ブロック内の前記周波数データを圧縮する符号化技術を前記現在の動画フレームの前記周波数ブロックに適用する
ように構成されたブロックベースの符号化器と、
前記圧縮された周波数データを受信デバイスに無線接続を介して送信するように構成された無線インタフェースと、
を備えた動画符号化システム。
【請求項2】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定するために、
前記ブロックベースの符号化器は、
前記前の動画フレームの前記中心窩領域に基づいて、前記現在の動画フレームの領域を決定し、
前記現在の動画フレームの前記決定された領域が前記決定された領域の外側の前記現在の動画フレームの周辺領域よりも高い解像度を提供するように符号化されるように、前記現在の動画フレームの前記決定された領域に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定する
ように更に構成されている、
請求項1に記載の動画符号化システム。
【請求項3】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定するために、
前記ブロックベースの符号化器は、
前記前の動画フレームの前記中心窩領域に従って、前記前の動画フレームからの前記他の複雑度統計値を調節し、
前記現在の動画フレームの前記複雑度統計値と組み合わせた前記前の動画フレームからの前記調節された他の複雑度統計値に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定する
ように更に構成されている、
請求項1に記載の動画符号化システム。
【請求項4】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定するために、
前記ブロックベースの符号化器は、
前記前の動画フレームの追加の統計値を検査し、前記前の動画フレームの同一場所の周波数ブロックを符号化するために使用されたビットの実際の数を決定し、
前記現在の動画フレームの前記複雑度統計値と組み合わせた、前記前の動画フレームの前記同一場所の周波数ブロックを符号化するために使用された前記決定されたビットの実際の数に少なくとも部分的に基づいて、前記現在の動画フレームについての前記量子化パラメータを決定する
ように更に構成されている、
請求項1に記載の動画符号化システム。
【請求項5】
前記複雑度統計値は、1以上の画素勾配情報と別の前記周波数ブロックに関する少なくとも1つの前記周波数ブロックのサイズの分散を含む、
請求項1に記載の動画符号化システム。
【請求項6】
前記無線インタフェースは、前記無線接続のために現在利用可能なビットレートを前記ブロックベースの符号化器へのフィードバックとして提供するように更に構成され、
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定すると、前記ブロックベースの符号化器は、前記現在利用可能なビットレートを、前記現在の動画フレームの前記複数の周波数帯域のそれぞれのものの間で割り当てるように更に構成されている、
請求項1に記載の動画符号化システム。
【請求項7】
前記無線インタフェースは、前記無線接続のために現在利用可能なビットレート及び前記無線接続上の現在のパケット廃棄率を前記ブロックベースの符号化器へのフィードバックとして提供するように更に構成され、
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定すると、前記ブロックベースの符号化器は、前記複数の周波数帯域のそれぞれのものについての前記量子化パラメータを調整し、前記現在利用可能なビットレートにおいて利用可能な帯域幅使用量を最大化しながら前記廃棄率を最小化するように更に構成されている、
請求項1に記載の動画符号化システム。
【請求項8】
前記ウェーブレット変換が、前記現在の動画フレームからの各画素ブロックに適用される2レベルのウェーブレット展開である、
請求項1に記載の動画符号化システム。
【請求項9】
前記ブロックベースの符号化器は、ブロック処理パイプラインとレート制御構成要素とを備え、
前記レート制御構成要素は、前記周波数帯域のそれぞれについての前記量子化パラメータの決定を実行するように構成され、前記ブロック処理パイプラインに前記量子化パラメータを提供するように更に構成され、
前記ブロック処理パイプラインは、前記符号化技術を前記現在の動画フレームの前記周波数ブロックに適用するように構成されている、
請求項1に記載の動画符号化システム。
【請求項10】
方法であって、
1以上のプロセッサが、
ウェーブレット変換を現在の動画フレームからの画素ブロックに適用し、前記画素ブロックを複数の周波数帯域に分解することと、
前記複数の周波数帯域についての周波数データを周波数ブロックに記憶することと、
前記周波数ブロック内の前記周波数データを分析し、前記現在の動画フレームの前記複数の周波数帯域にわたる複雑度統計値を計算することと、
(a)前記現在の動画フレームの前記複数の周波数帯域の前記複雑度統計値、
(b)前の動画フレームからの他の複雑度統計値、及び
、
(c)前記前の動画フレームの中心窩領域に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての量子化パラメータを決定することと、
前記複数の周波数帯域についての前記決定された量子化パラメータを使用して、前記周波数ブロック内の前記周波数データを圧縮する符号化技術を前記周波数ブロックに適用することと、
前記圧縮された周波数データを受信デバイスに無線接続を介して送信することと、
を実装するように構成されていること、
を含む、方法。
【請求項11】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての量子化パラメータを決定することは、
前記前の動画フレームの前記中心窩領域に基づいて前記現在の動画フレームの領域を決定することと、
前記現在の動画フレームの前記決定された領域が、前記決定された領域の外側の前記現在の動画フレームの周辺領域よりも高い解像度を提供するように符号化されるように、前記現在の動画フレームの前記決定された領域に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定することと、
を含む、
請求項10に記載の方法。
【請求項12】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての量子化パラメータを決定することは、
前記前の動画フレームの前記中心窩領域に従って、前記前の動画フレームからの前記他の複雑度統計値を調節することと、
前記現在の動画フレームの前記複雑度統計値と組み合わせた前記前の動画フレームからの前記調節された他の複雑度統計値に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定することと、
を含む、
請求項10に記載の方法。
【請求項13】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての量子化パラメータを決定することは、
前記前の動画フレームの統計値を検査し、前記前の動画フレームの同一場所のブロックを符号化するために使用されたビットの実際の数を決定することと、
前記現在の動画フレームの前記複雑度統計値と組み合わせた、前記前の動画フレームの前記同一場所のブロックを符号化するために使用された前記決定されたビットの実際の数に少なくとも部分的に基づいて、前記現在の動画フレームについての前記量子化パラメータを決定することと、
を含む、
請求項10に記載の方法。
【請求項14】
前記複雑度統計値は、1以上の画素勾配情報と別の前記周波数ブロックに関する少なくとも1つの前記周波数ブロックのサイズの分散を含む、
請求項10に記載の方法。
【請求項15】
前記無線接続のために現在利用可能なビットレートを追跡することを更に含み、前記周波数帯域の前記量子化パラメータを決定することは、前記複数の周波数帯域のそれぞれのものの間で前記現在利用可能なビットレートを割り当てることを含む、
請求項10に記載の方法。
【請求項16】
前記無線接続のために現在利用可能なビットレート及び前記無線接続上の現在のパケット廃棄率を追跡することを更に含み、前記複数の周波数帯域の前記量子化パラメータを決定することは、前記複数の周波数帯域のそれぞれのものの前記量子化パラメータを調整し、前記現在利用可能なビットレートにおいて利用可能な帯域幅使用量を最大化しながら前記廃棄率を最小化することを更に含む、
請求項10に記載の方法。
【請求項17】
システムであって、
1以上のプロセッサ及びディスプレイサブシステムを含むデバイスと、
ウェーブレット変換を現在の動画フレームからの画素ブロックに適用し、前記画素ブロックを複数の周波数帯域に分解し、
前記複数の周波数帯域の周波数データを周波数ブロックに記憶し、
前記周波数ブロック内の前記周波数データを分析し、前記現在の動画フレームの前記複数の周波数帯域にわたる複雑度統計値を計算し、
(a)前記現在の動画フレームの前記複数の周波数帯域の前記複雑度統計値、
(b)前の動画フレームからの他の複雑度統計値、及び
、
(c)前記前の動画フレームの中心窩領域に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての量子化パラメータを決定し、
前記現在の動画フレームの前記複数の周波数帯域の前記決定された量子化パラメータを使用して、前記周波数ブロック内の前記周波数データを圧縮する符号化技術を前記周波数ブロックに適用し、
前記圧縮された周波数データを前記デバイスに無線接続を介して送信する
ように構成された1以上のプロセッサを含む基地局と、
を備え、
前記デバイスの前記1以上のプロセッサは、
前記基地局から受信した前記圧縮された周波数データを展開し、
前記展開された周波数データ上でウェーブレット合成を実行して前記
現在の動画フレーム
の画素データを再構成し、
前記再構成された画素データを前記ディスプレイサブシステムに提供して表示する
ように構成されている、システム。
【請求項18】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定するために、前記基地局の前記1つ以上のプロセッサは、
前記前の動画フレームの前記中心窩領域に従って、前記前の動画フレームからの前記他の複雑度統計値を調節し、
前記現在の動画フレームの前記複雑度統計値と組み合わせた前記前の動画フレームからの前記調節された他の複雑度統計値に少なくとも部分的に基づいて、前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定する
ように更に構成されている、
請求項17に記載のシステム。
【請求項19】
前記現在の動画フレームの前記複数の周波数帯域のうちの前記周波数帯域のそれぞれについての前記量子化パラメータを決定するために、前記基地局の前記1つ以上のプロセッサは、
前記前の動画フレームの追加の統計値を検査し、前記前の動画フレームの同一場所のブロックを符号化するために使用されたビットの実際の数を決定し、
前記現在の動画フレームの前記複雑度統計値と組み合わせた、前記前の動画フレームの前記同一場所のブロックを符号化するために使用された前記決定されたビットの実際の数に少なくとも部分的に基づいて、前記現在の動画フレームについての前記量子化パラメータを決定する
ように更に構成されている、
請求項17に記載のシステム。
【請求項20】
前記デバイスは、ヘッドマウントディスプレイ(HMD)である、
請求項17に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
仮想現実(Virtual reality、VR)は、ユーザが没入型人工環境を体験及び/又はそれと相互作用して、それにより、ユーザが物理的にその環境内にいるかのように感じることを可能にする。例えば、仮想現実システムは、奥行きの錯覚を作り出すために、立体的シーンをユーザに表示してもよく、コンピュータは、シーンコンテンツをリアルタイムで調整して、ユーザがシーン内で移動する錯覚を提供することができる。ユーザが仮想現実システムを介して画像を見る場合、ユーザは、このように一人称の視点からシーン内で移動しているかのように感じることができる。同様に、複合現実(mixed reality、MR)は、コンピュータ生成情報(仮想コンテンツと呼ばれる)を実世界画像又は実世界視野と組み合わせてユーザの世界に対する視野を増強又はそのコンテンツを追加する。あるいは、複合現実は実世界のオブジェクトの仮想表現を3次元(3D)仮想世界のビューに組み合わせる。したがって、仮想現実のシミュレートされた環境及び/又は複合現実の複合環境を利用して、複数のアプリケーションの相互作用型ユーザエクスペリエンスを提供することができる。
【発明の概要】
【0002】
高解像度動画ソースを、通信リンク(例えば、無線リンク)を介してデバイスに送信して、復号し、表示するために、低レイテンシで符号化することができる動画符号化システムの各種実施形態が記載される。動画符号化システムの実施形態はまた、デバイスに送信される符号化動画のグレースフルデグラデーションを提供し、通信リンクのチャネル容量の変化などの変動する条件下で、所望のフレームレートを維持することができる。動画符号化システムの例示的な適用は、仮想コンテンツを含む動画フレームがレンダリングされ、符号化され、基地局によってデバイス(例えば、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、又はユーザによって装着され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのヘッドマウントディスプレイ(head-mounted display、HMD)に送信されて復号され表示される、仮想又は複合現実システムにおける。
【0003】
いくつかの実施形態では、動画符号化システムは、符号化する前の画素データに対してウェーブレット変換を実行し、画素データを周波数帯域に分解することができる。次いで、周波数帯域は、ブロックベースの符号化器に提供されるブロックに編成され、符号化/圧縮される。符号化された周波数データは、次いで、無線インタフェースに送られ、符号化された周波数データはパケット化され、パケットは受信デバイスに送信される。受信デバイス上で、符号化されたデータは、パケット復号され、ブロックベースの復号器を通過して、周波数帯域を復元する。次いで、復元された周波数帯域でウェーブレット合成を実行して、表示する画素データを再構成する。
【0004】
動画符号化システムによって、様々な方法及び装置が実装されてもよく、それによって、無線リンクを介しての目標フレームレートを維持し、フレームのレンダリング、伝達、及び表示のレイテンシを最小化し、デバイスに送信された符号化動画のグレースフルデグラデーションを提供して、無線接続のチャネル容量変化などの変動する条件下で所望のフレームレートを維持することができる。
【0005】
動画符号化システムの実施形態を実装するシステムの目標は、エラー(例えば、パケット廃棄)を最小限に抑え、無線接続を介する帯域幅の使用を最大化しつつ、仮想コンテンツが基地局上にレンダリングされる時間と、仮想コンテンツがデバイス上に表示される時間との間の、非常に低いレイテンシ(例えば、4~5ミリ秒)を提供することであってもよい。動画符号化システムの実施形態は、無線接続を介してデバイスに送信されるデータを符号化するときに、システムの目標とする低レイテンシを達成するのに役立つレート制御方法を実装することができる。
【0006】
いくつかの実施形態では、動画符号化システムは、画素のブロックをフレームのスライスから複数の異なる周波数帯域に分解する2層ウェーブレット分解を実行するウェーブレット変換構成要素と、続いて、周波数帯域を符号化するHEVCなどのブロックベースの符号化器とを含む。いくつかの実施形態では、レート制御構成要素は、VR/MRシステムの厳密なレイテンシ要件下でレート制御を実行するために、1フレーム又は2フレームの時定数にわたって動作する代わりに、各スライスの符号化器パラメータ(例えば、周波数帯域の量子化パラメータ)を調整することができる。いくつかの実施形態では、スライスの周波数帯域は、ウェーブレット変換後にローカルメモリ内にバッファリングされてもよく、それにより、複雑度統計値は、例えば、動画符号化システムの複雑度分析構成要素によって、符号化の前に、周波数帯域にわたって計算され得る。いくつかの実施形態では、複雑度統計値は、CTUブロックの画素勾配及びサイズの分散のうちの1つ以上を含んでもよいが、これらに限定されない。複雑度統計値は、次に、現在のスライスの符号化器内のレートを調節するための周波数帯域の量子化パラメータを決定する際に、レート制御構成要素によって使用されてもよい。バッファリングされた周波数帯域上の複雑度統計値を計算することにより、動画符号化システムは、スライスを符号化する前にスライスにおける複雑さの量を推定することができる。
【0007】
いくつかの実施形態では、レート制御構成要素は、1つ以上の以前に処理されたフレームに関する統計値を検査して、フレームの同一場所の(co-sited)ブロック又はスライスを符号化するために使用されたビットの実際の数を決定することができる。次に、この情報は、現在のスライスの量子化パラメータを決定する際に、現在のスライスの複雑度統計値と組み合わせて使用され得る。
【0008】
いくつかの実施形態では、周波数帯域の量子化パラメータは、復号器による再構成及びウェーブレット合成がデバイス上で実行された後のフレームの全体的な表示品質を最適化するために、合同して計算されてもよい。周波数帯域間のレート割り当てのための方法は、動作レート歪み曲線上で等しい勾配をもたらす周波数帯域のそれぞれにおける動作点を見つけることである。いくつかの実施形態では、動作レート歪み曲線は、係数のレートが6ステップの量子化パラメータによく近似し得るという事実により、符号化器パイプラインのエントロピー符号化ステージからの統計値の組み合わせを使用して推定されてもよい。
【0009】
いくつかの実施形態では、同一画像内において周囲の領域(例えば、周辺領域)よりも高い解像度を有するべき関心領域(例えば、中心窩領域)が画像内に存在してもよい。いくつかの実施形態では、前のフレームからの複雑度統計値は、前のフレームからの中心窩領域と共に記憶され、現在のフレームのスライスにおける周波数帯域の量子化パラメータを計算する際に使用され得る。一例として、符号化される各ブロックについて、前のフレームの中心窩領域を使用して、前のフレームについて計算された複雑度統計値を調節することができる。これにより得られた複雑度統計値は、次いで、量子化パラメータを決定する際に、現在のフレームのスライスについて計算された複雑度統計値に加えて使用され得る。
【0010】
いくつかの実施形態では、レート制御構成要素は、スライスレベルではなくブロックレベルで符号化器パラメータ(例えば、周波数帯域又は優先順位レベルの量子化パラメータ)を調整してもよい。いくつかの実施形態では、スライスの各ブロックについて複雑度統計値を計算することができ、ブロックについて量子化パラメータを決定することができる。
【図面の簡単な説明】
【0011】
【
図1】少なくともいくつかの実施形態に係る、符号化前にウェーブレット変換を使用して画素データを周波数帯域に分解する動画符号化システムを示すブロック図である。
【
図2】少なくともいくつかの実施形態に係る、フレームからのタイルを並行して処理する複数の符号化器を含む動画符号化システムを示す。
【
図3A】少なくともいくつかの実施形態に係る、スライス及びタイルに分割された例示的なフレームを示す。
【
図3B】少なくともいくつかの実施形態に係る、ブロックに分割されたタイルの例を示す。
【
図3C】少なくともいくつかの実施形態に係る、符号化前に、画素データを記憶して周波数帯域データを生成する画素ブロックのウェーブレット変換を実行することを示す。
【
図4】少なくともいくつかの実施形態に係る、
図1及び
図2に示すような動画符号化システムを含むVR/MRシステムの動作方法の高レベルフローチャートである。
【
図5】少なくともいくつかの実施形態に係る、
図1に示すような動画符号化システムの動作方法のフローチャートである。
【
図6】少なくともいくつかの実施形態に係る、
図2に示すような動画符号化システムの動作方法のフローチャートである。
【
図7】少なくともいくつかの実施形態に係る、周波数帯域の複雑度統計値が計算され、符号化のための量子化パラメータを生成する際に使用される、
図1又は2に示すような動画符号化システムを示すブロック図である。
【
図8】少なくともいくつかの実施形態に係る、
図7に示すような動画符号化システムの動作方法のフローチャートである。
【
図9】少なくともいくつかの実施形態に係る、動画符号化システムを実装することができる例示的なVR/MRシステムを示す。
【
図10】少なくともいくつかの実施形態に係る、
図9に示すようなVR/MRシステムの構成要素を示すブロック図である。
【0012】
本明細書は、「one embodiment(一実施形態)」又は「an embodiment(実施形態)」に対する参照を含む。「in one embodiment(一実施形態において)」又は「in an embodiment(ある実施形態において)」という語句表現は、必ずしも同一の実施形態を指すわけではない。特定の特徴、構造、又は特性は、本開示と一貫性を有するいずれかの好適な方式で組み合わされてもよい。
【0013】
「comprising(備える、含む)」。この用語はオープンエンドである。特許請求の範囲で使用されるとき、この用語は、追加の構造又はステップを除外しない。「1つ以上のプロセッサユニット...を備えた装置」と記載される請求項を検討する。このような請求項は、装置が追加の構成要素(例えば、ネットワークインタフェースユニット、グラフィック回路など)を含むことを除外しない。
【0014】
「configured to(ように構成されている)」。様々なユニット、回路、又は他の構成要素は、タスク又はタスク(複数)を実行する「ように構成されている」と説明又は請求されてもよい。このような文脈では、「構成されている」は、ユニット/回路/構成要素が、動作の間にそれらのタスク又はタスク(複数)を実行する構造(例えば、回路)を含むことを示すことによって構造を暗示するときに使用される。そのように、ユニット/回路/構成要素は、指定されたユニット/回路/構成要素が現在動作可能でない(例えば、オンの状態でない)ときでさえ、タスクを実行するように構成されていると言うことができる。「構成されている」という言葉と共に使用されるユニット/回路/構成要素は、ハードウェア、例えば、演算を実施するように実行可能なプログラム命令を記憶した回路、メモリなどを含む。ユニット/回路/構成要素が1つ以上のタスクを実行するように「構成されている」と記述することは、そのユニット/回路/構成要素に対して米国特許法第112条、段落(f)が適用されないことが明示的に意図されている。加えて、「構成されている」は、ソフトウェア及び/又はファームウェア(例えば、FPGA又はソフトウェアを実行する汎用プロセッサ)によって操作され、対象のタスク(単数又は複数)を実行可能な方式で動作する一般的な構造体(例えば、一般的な回路)を含むことができる。「構成されている」はまた、1つ以上のタスクを実施又は実行するように適合されたデバイス(例えば、集積回路)を組み立てるように製造工程(例えば、半導体組み立て設備)を適合させることを含んでもよい。
【0015】
「第1」、「第2」など。本明細書で使用されるように、これらの用語は、続く名詞の標識として使用され、いかなるタイプの順序付け(例えば、空間的、時間的、論理的など)も意味しない。例えば、バッファ回路は、「第1」及び「第2」の値に対する書き込み演算を実行するものとして本明細書で説明されてもよい。用語「第1」及び「第2」は、必ずしも第1の値が第2の値の前に書き込まれなければならないことを含意していない。
【0016】
「基づいて」又は「従って」。本明細書で使用されるように、それらの用語は、判定に影響を及ぼす1つ以上の要因を説明するために使用される。それらの用語は、判定に影響を及ぼすことがある追加の要因を排除しない。すなわち、判定はそれらの要因のみに基づいているか、又は少なくとも部分的にそれらの要因に基づいていることがある。「Bに基づいてAを判定する」というフレーズを検討する。このケースでは、BはAの判定に影響を及ぼす要因であるが、このようなフレーズはAの判定がCにも基づいていることを除外しない。他の例では、AはBのみに基づいて判定されてもよい。
【0017】
「又は」。特許請求の範囲で使用されるとき、用語「又は」は、包括的論理和として使用され、排他的論理和として使用されない。例えば、語句「x、y、又はzのうちの少なくとも1つ」は、x、y、及びzのいずれか1つ、並びにこれらの任意の組み合わせを意味する。
【発明を実施するための形態】
【0018】
動画符号化システムの各種実施形態を説明する。動画符号化システムの実施形態は、高解像度動画ソースを、通信リンク(例えば、無線リンク)を介してデバイスに送信して、復号し、表示するために、低レイテンシで符号化することができる。動画符号化システムの実施形態はまた、デバイスに送信される符号化動画のグレースフルデグラデーションを提供し、通信リンクのチャネル容量の変化などの変動する条件下で、所望のフレームレートを維持することができる。
【0019】
動画符号化システムの例示的な適用は、仮想コンテンツを含む動画フレームがレンダリングされ、符号化され、デバイスに送信されて復号され表示される、仮想又は複合現実システムにおける。仮想又は複合現実システム(本明細書ではVR/MRシステムと呼ばれる)の実施形態が記載され、動画符号化システムの実施形態が実装され得る。いくつかの実施形態では、VR/MRシステムは、デバイス(例えば、パッド若しくはタブレットデバイス、スマートフォン、又はユーザにより着用され、本明細書ではヘッドマウントディスプレイ(HMD)と呼ばれる、ヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡)と、本明細書では基地局と称する別個のコンピューティングデバイスとを含んでもよい。いくつかの実施形態では、デバイス及び基地局は、無線接続を介してデバイス及び基地局がデータを通信し交換することを可能にする無線通信技術をそれぞれ含み得る。いくつかの実施形態では、デバイスは、ユーザの環境に関する情報(例えば、動画、深度情報、照明情報など)、及びユーザに関する情報(例えば、ユーザの表情、眼の動き、手のジェスチャなど)を収集するセンサを含んでもよい。センサによって収集された情報は、無線接続を介して基地局に送信されてもよい。基地局は、無線接続を介してデバイスから受信したセンサ情報に少なくとも部分的に基づいて仮想コンテンツを含むフレームを生成しレンダリングするように構成されたソフトウェア及びハードウェア(例えば、プロセッサ(システムオンチップ(system on a chip、SOC)、CPU、画像信号プロセッサ(image signal processor、ISP)、グラフィック処理ユニット(graphics processing unit、GPU)、符号化器/復号器(コーデック)など)、メモリなど)を含み得る。基地局はまた、レンダリングされたフレームを予めフィルタリングし、圧縮し、無線接続を介してデバイスに送信して、表示することができる、本明細書に記載されるような動画符号化システムの実施形態を含んでもよい。
【0020】
いくつかの実施形態では、VR/MRシステムは、デバイスと基地局との間に高指向性の無線リンクを提供する独自の無線通信技術を実装することができる。いくつかの実施形態では、無線通信技術の指向性及び帯域幅は、複数のデバイスが同時に基地局と通信することをサポートすることができ、それにより、複数のユーザが共同設置環境において同時にシステムを使用することを可能にし得る。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetooth(登録商標)など)又は独自の無線通信技術がサポートされてもよい。
【0021】
無線リンクに関して考慮される主要な制約は、帯域幅及びレイテンシを含む。VR/MRシステムの目標は、高解像度の広視野(field of view、FOV)な仮想表示を、高品質のVR/MR視野をユーザに提供するフレームレートで提供することである。別の目標は、フレームが基地局によってレンダリングされる時間と、フレームがデバイスによって表示される時間との間のレイテンシを最小化することである。しかしながら、無線リンクのチャネル容量は時間と共に変化することがあり、したがって、無線リンクは、任意の所与の時間に送信される情報のうち一定量のみをサポートする場合がある。
【0022】
無線リンクを介して目標フレームレートを維持し、フレームのレンダリング、伝達、及び表示におけるレイテンシを最小化するために、動画符号化システムによって実施され得る様々な方法及び装置が本明細書に記載される。加えて、方法及び装置は、通信リンクのチャネル容量の変化などの変動する条件下で所望のフレームレートを維持するために、デバイスに送信された符号化動画のグレースフルデグラデーションを提供することができる。
【0023】
いくつかの実施形態では、動画符号化システムは、符号化する前の符号画素データに対してウェーブレット変換を実行し、画素データを周波数帯域に分解することができる。次いで、周波数帯域は、ブロックベースの符号化器に提供されるブロックに編成され、符号化/圧縮される。一例として、フレームは128×128のブロックに分割され、2レベルのウェーブレット分解を128×128のブロックのそれぞれに適用して、32×32の周波数データのブロックを16個生成することができる。16個の32×32の周波数データブロックは、7つの周波数帯域を表しており、次いで、符号化器(例えば、高効率動画符号化(High Efficiency Video Coding、HEVC)符号化器)に送信され、符号化されてもよい。符号化された周波数データは、次いで、符号化された周波数データをパケット化する無線インタフェースに送られ、無線インタフェースはパケットを受信デバイス(例えば、HMD、パッド又はタブレットデバイス、スマートフォンなど)に送信する。受信デバイス上で、符号化されたデータは、パケット復号され、ブロックベースの復号器を通過して、周波数帯域を復元する。次いで、復元された周波数帯域でウェーブレット合成を実行して、表示する画素データを再構成する。
【0024】
ウェーブレット変換は、動画フレームからの画素ブロックそれぞれに適用される2レベルのウェーブレット分解が一般に記載されるが、各種実施形態では、ウェーブレット分解は、任意の数のレベル(例えば、1レベル、2レベル、3レベル、4レベルなど)であってよく、符号化された画像の品質と符号化されるブロックの複雑度とをトレードオフするように調整されてもよい。
【0025】
いくつかの実施形態では、動画符号化システムは、スライスベースのレンダリング、符号化、及び伝達を実行することができる。フレーム全体をレンダリング、符号化、及び送信することは、各フレームが完了し、記憶され、次いでVR/MRシステムの次のステージに送信される必要があるため、レイテンシ及びメモリへの影響を有し得る。スライスベースのレンダリングでは、フレーム全体を基地局内でレンダリングして符号化し、レンダリングされたフレームをデバイスに送信するのではなく、基地局は、フレームの一部(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを準備でき次第デバイスに送信してもよい。スライスは、例えば、128×128ブロック行、又は2つ以上のブロック行であってもよい。スライスベースのレンダリング及び符号化は、レイテンシを低減するのに役立ち得、バッファに必要とされるメモリの量もまた低減することができ、これにより、チップ(単数又は複数)又はプロセッサ(単数又は複数)上のメモリの接地面積、並びに必要電力を低減することができる。
【0026】
いくつかの実施形態では、動画符号化システムは、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスは、複数のタイル(例えば、4つのタイル)に分割されてもよく、基地局は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイスに送信してもよい。
【0027】
いくつかの実施形態では、動画符号化システムは、単一の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルを処理することができる。しかしながら、いくつかの実施形態では、動画符号化システムは、複数の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。例えば、いくつかの実施形態では、各スライスは4つのタイルに分割されてもよく、各タイルは複数の128×128ブロックを含み、2つの符号化器(e0及びe1)は、各スライスからの2つのタイルで動作してもよい(例えば、e0はt0及びt1で動作し、e1は、t2及びt3で動作する)。各符号化器は、16の時間単位を同じ周波数帯域からのブロックの処理の間で可能とするように、異なる周波数帯域からのブロックの処理を2つのタイルの間で多重化してもよい。ブロックの処理を2つのタイル間で多重化することにより、周波数帯域のブロック間の依存関係に適切に対処することができる。各スライスが4つのタイルに分割され、2つの符号化器が各スライスからのそれぞれのタイル上で動作する実施形態が記載されているが、いくつかの実施形態では、スライスをより多くのタイル(例えば、6つ又は8つのタイル)に分割することができ、いくつかの実施形態では、より多くの符号化器(例えば、3つ又は4つの符号化器)が使用されてもよい。
【0028】
いくつかの実施形態では、動画符号化システムは、ウェーブレット変換の前にフレーム内で画素データのプレフィルタリングを実行することができる。プレフィルタリングは、例えば、フレームのウェーブレット変換、符号化、及び無線リンクを介してデバイスへの送信を実行する前に、基地局によってレンダリングされるフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。
【0029】
デバイスがHMDであるいくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープ(lens warp)を実行することを含んでもよい。レンズワープは、画像が閲覧されるHMD上のレンズによって導入される画像の歪みを補正するために実施され、それによって画像の品質を改善する。いくつかの実施形態では、HMDは、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続を介してレンズワープデータを基地局に提供することができる。次いで、基地局は、そのHMDに関するレンズワープデータに基づいて、フレーム上でレンズワープを実行することができる。従来のVR/MRシステムでは、レンズワープは、復号後表示前にHMDで実行される。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にHMDで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、HMD上でレンズワープフィルタリングを実行することと対照的である。
【0030】
いくつかの実施形態では、プレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングを含んでもよい。この方法では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。人間の眼は、周辺領域よりも中心窩領域においてより高い解像度を知覚することができる。したがって、中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。いくつかの実施形態では、周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。いくつかの実施形態では、周辺領域に適用されるフィルタリングの量は、フレームの周辺に向かって伸びつつ増加してもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0031】
図1は、少なくともいくつかの実施形態に係る、符号化前のウェーブレット変換を使用して画素データを周波数帯域に分解する動画符号化システム120を示すブロック図である。VR/MRシステム10は、少なくとも1つのデバイス150(例えば、パッド若しくはタブレットデバイス、スマートフォン、又は、ユーザによって装着され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのHMD)及びコンピューティングデバイス100(本明細書では基地局と呼ばれる)を含んでもよい。基地局100は、仮想コンテンツを含むVR又はMRフレームをレンダリングし、フレームを符号化し、デバイス150によって復号され表示されるように、符号化されたフレームを無線接続180を介してデバイス150に送信する。
【0032】
いくつかの実施形態では、HMD150は、ユーザ190の環境に関する情報(例えば、動画、深度情報、照明情報など)、及びユーザ190に関する情報(例えば、ユーザの表情、眼の動き、視線の方向、手のジェスチャなど)を収集するセンサ160を含んでもよい。デバイス150は、センサ160によって収集された情報の少なくとも一部を、無線接続180を介して基地局100に送信してもよい。基地局100は、センサ160から取得された様々な情報に少なくとも部分的に基づいて、仮想コンテンツを含むデバイス150によって表示するためのフレームをレンダリングし、フレームを符号化し、符号化されたフレームを、復号しユーザに対し表示するために、無線接続180を介してデバイス150に送信することができる。
【0033】
基地局100及びデバイス150は、基地局100及びデバイス150が無線接続180を介してデータを通信し交換することを可能にする無線通信技術を実装してもよい。いくつかの実施形態では、無線接続180は、デバイス150と基地局100との間に高指向性無線リンクを提供する独自の無線通信技術に従って実装されてもよい。しかしながら、いくつかの実施形態では、他の商用の(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0034】
VR/MRシステム10内のデバイス150と基地局100との間の無線接続180に関して考慮される主要な制約は、帯域幅及びレイテンシを含む。例えば、いくつかの実施形態では、目標は、高解像度の広角視野(FOV)仮想表示を、高品質のVR/MR視野をユーザに提供するフレームレートでユーザに提供することである。別の目標は、動画フレームがデバイスによってキャプチャされた時間と、動画フレームに基づいてレンダリングされたVR/MRフレームがデバイスにより表示される時間との間のレイテンシを最小化することである。
【0035】
基地局100は、本明細書に記載されるような動画及び/又は画像をレンダリング、フィルタリング、符号化、並びに送信するための様々なハードウェア構成要素、例えば、様々なタイプのプロセッサ、集積回路(IC)、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、画像信号プロセッサ(ISP)、符号化器/復号器(コーデック)などを含んでもよい。基地局100は、GPUレンダリング110構成要素、無線インタフェース130構成要素、並びに無線接続180を介して目標フレームレートを維持し、フレームレンダリング、符号化、伝達、及び表示におけるレイテンシを最小化するのに役立ち得る様々な方法を実装する1つ以上のハードウェア構成要素を含み得る、動画符号化システム120を含み得るが、これらに限定されない。動画符号化システム120は、プレフィルタ122構成要素(例えば、Nチャネルのフィルタバンク)、ウェーブレット変換124構成要素、及び符号化器126構成要素を含み得るが、これらに限定されない。
【0036】
GPUレンダリング110は、センサ160から取得された様々な情報に少なくとも部分的に基づいて、仮想コンテンツを含むデバイス150によって表示するためのフレームをレンダリングすることができる1つ以上のハードウェア構成要素を含み得る。
【0037】
いくつかの実施形態では、動画符号化システム120は、ウェーブレット変換124を実行する前にレンダリングされたフレーム内の画素データをプレフィルタリング122する1つ以上のハードウェア構成要素を含んでもよい。プレフィルタ122は、例えば、フレームのウェーブレット変換124、符号化126、無線接続180を介してデバイス150への送信を実行する前に、基地局100上でレンダリングされたフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線接続180上でのレイテンシ及び帯域幅の使用を低減することができる。
【0038】
いくつかの実施形態では、プレフィルタ122は、ウェーブレット変換124の前に、基地局100上のフレームに対してレンズワープを実行してもよい。レンズワープは、画像が閲覧されるデバイス上のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。いくつかの実施形態では、デバイス150は、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続180を介してレンズワープデータを基地局100に提供することができる。次いで、動画符号化システム120のプレフィルタ122構成要素は、そのデバイス150のレンズワープデータに基づいてフレーム上でレンズワープを実行することができる。従来のVR/MRシステムでは、レンズワープは、復号後表示前にデバイス150上で実行される。プレフィルタ122ステージにおいて基地局100上でレンズワープを実行することによって、ウェーブレット変換124及び符号化126を実行する前にフレームの解像度を低減することができる。これにより圧縮の改善に役立ち得、無線接続180上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイス150で行うのではなく、プレフィルタ122ステージにおいて基地局100で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化126の前に解像度を低減するために基地局100でフィルタリングを実行し、次いで、デバイス150上でレンズワープフィルタリングを実行することと対照的である。
【0039】
いくつかの実施形態では、プレフィルタ122はまた、中心窩領域内ではより高い解像度を維持しつつ、周辺領域内の解像度を低減する、1つ以上のフィルタを適用してもよい。この方法では、デバイス150から取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。人間の眼は、周辺領域よりも中心窩領域においてより高い解像度を知覚することができる。したがって、中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。いくつかの実施形態では、周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。いくつかの実施形態では、周辺領域に適用されるフィルタリングの量は、フレームの周辺に向かって伸びつつ増加してもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0040】
いくつかの実施形態では、動画符号化システム120のウェーブレット変換124構成要素は、符号化する前の画素データに対してウェーブレット変換を実行し、画素データを周波数帯域に分解する、1つ以上のハードウェア構成要素(例えば、Nチャネルのフィルタバンク)を含んでもよい。次いで、周波数帯域は、ブロックベースの符号化器126に提供されるブロックに編成され、符号化/圧縮される。一例として、
図3A~3Cに示されるように、フレームは128×128のブロックに分割され、2レベルのウェーブレット分解を128×128のブロックのそれぞれに適用して、32×32のブロックを16個生成することができる。16個の32×32の周波数データブロックは、7つの周波数帯域を表しており、次いで、ブロックベースの符号化器(例えば、高効率動画符号化(HEVC)符号化器)126に送信され、符号化されてもよい。符号化された周波数データは、次いで、1つ以上のハードウェア構成要素を実装した無線インタフェース130に送信される。これにより、データはパケット化され、パケットは無線接続180を介してデバイス150に送信される。
【0041】
デバイス150は、本明細書に記載されるような動画及び/又は画像を復号し表示するための様々なハードウェア構成要素、例えば、様々なタイプのプロセッサ、集積回路(IC)、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、画像信号プロセッサ(ISP)、符号化器/復号器(コーデック)などを含んでもよい。デバイス150は、無線インタフェース152、復号器154構成要素(例えば、高効率動画符号化(HEVC)復号器)、ウェーブレット合成156構成要素、及びディスプレイ158構成要素を含み得るが、これらに限定されない。デバイス150上で、無線インタフェース152は、基地局100によって無線接続180を介して送信されたパケットを受信する。符号化されたデータは、パケット復号され、ブロックベースの復号器154(例えば、高効率動画符号化(HEVC)復号器)を通過して、周波数帯域を復元する。次いで、ウェーブレット合成156が復元された周波数データ上で実行されて、ディスプレイ158のための画素データを再構成する。
【0042】
いくつかの実施形態では、動画符号化システム120は、スライスベースのレンダリング、符号化、及び伝達を実行することができる。フレーム全体をレンダリング、符号化、及び送信することは、各フレームが完了し、記憶され、次いでVR/MRシステム10の次のステージに送信される必要があるため、レイテンシ及びメモリへの影響を有し得る。スライスベースのレンダリングでは、フレーム全体を基地局100内でレンダリングして符号化し、レンダリングされたフレームをデバイス150に送信するのではなく、基地局100は、フレームの一部(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを準備でき次第デバイス150に送信してもよい。スライスは、例えば、128×128のブロック行であってもよい。スライスベースのレンダリング及び符号化は、レイテンシを低減するのに役立ち得、バッファに必要とされるメモリの量もまた低減することができ、これにより、チップ(単数又は複数)又はプロセッサ(単数又は複数)上のメモリの接地面積、並びに必要電力を低減する。
【0043】
いくつかの実施形態では、動画符号化システム120は、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスは、複数のタイル(例えば、4つのタイル)に分割されてもよく、基地局100は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイス150に送信してもよい。
【0044】
いくつかの実施形態では、動画符号化システム120は、単一の符号器126を使用して、タイルベースのレンダリング、符号化、及び伝達を実行し、各スライスからのタイルを処理することができる。しかしながら、いくつかの実施形態では、動画符号化システム120は、複数の符号化器126を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。
図2は、少なくともいくつかの実施形態に係る、レンダリングされたフレームからのタイルを並行して処理する複数の符号化器(この例では2つの符号化器226A及び226B)を含む動画符号化システム220を示す。
【0045】
基地局200のGPUレンダリング210構成要素は、ディスプレイのためのフレーム(又はフレームのスライス)をレンダリングする1つ以上のGPU及び/又は他の構成要素を含み得る。フレームは、例えば
図3Aに示すように、スライスに分割されてもよい。
図3Aに示すように、各スライスは、複数のタイル(この例では4つ)に分割されてもよく、各タイルは複数のブロックを含む。
図3Bは、4個の128×128のブロックを含む例示的なタイルを示す。しかしながら、いくつかの実施形態では、他のサイズ(例えば、64×64、32×32など)のブロックが使用されてもよく、タイルは、より多い又は、より少ないブロックを含んでもよい。
【0046】
動画符号化システム220のプレフィルタ222及びウェーブレット変換224構成要素は、次いで、符号化226の前に各タイルを処理することができる。いくつかの実施形態では、動画符号化システム220は、各タイルを処理するための別個のプレフィルタ222構成要素及びウェーブレット変換224構成要素を含むことができる。この例では、プレフィルタ222A構成要素及びウェーブレット変換224A構成要素がタイル0を処理し、プレフィルタ222B構成要素及びウェーブレット変換224B構成要素がタイル1を処理し、プレフィルタ222C構成要素及びウェーブレット変換224C構成要素がタイル2を処理し、プレフィルタ222D構成要素及びウェーブレット変換224D構成要素がタイル3を処理する。プレフィルタ222構成要素は、本明細書に記載されるようなタイルのプレフィルタリングを実行し、ウェーブレット変換224構成要素は、本明細書に記載されるように、タイルを周波数帯域に分解する。しかしながら、いくつかの実施形態では、動画符号化システム220は、タイルを処理する単一のプレフィルタ222構成要素及び単一のウェーブレット変換224構成要素を含むことができる。いくつかの実施形態では、動画符号化システム220は、複数の(例えば、2つの)プレフィルタ222構成要素及び複数の(例えば、2つの)ウェーブレット変換224構成要素を含むことができ、それぞれが複数の(例えば、2つの)タイルを処理する。
【0047】
2つの符号化器226A及び226Bは、各スライスからの2つのタイル上で動作してもよい(例えば、符号化器226Aはタイル0及びタイル1で動作し、符号化器226Bはタイル2及びタイル3上で動作する)。各符号化器226は、16の時間単位を同じ周波数帯域からのブロックの処理の間で可能とするように、異なる周波数帯域(すなわち、
図3Cに例示される32×32のブロック16個)からのブロックの処理を2つのタイルの間で多重化してもよい。ブロックの処理を2つのタイル間で多重化することにより、同じ周波数帯域におけるブロック間の依存関係に適切に対処することができる。
【0048】
各スライスが4つのタイルに分割され、2つの符号化器が各スライスからそれぞれのタイル上で動作する実施形態が記載されているが、いくつかの実施形態では、スライスをより多くのタイル(例えば、6つ又は8つのタイル)に分割することができ、いくつかの実施形態では、より多くの符号化器(例えば、3つ、4つ、又はそれ以上の符号化器)を使用することができる。
【0049】
図3Cは、少なくともいくつかの実施形態に係る、符号化前に、画素データを記憶して周波数帯域データを生成する画素ブロックのウェーブレット変換を実行することを示す。この実施例では、ウェーブレット変換324構成要素によって2レベルウェーブレット分解が128×128の画素ブロック300に適用されて、7つの周波数帯域を表す周波数データである16個の32×32のブロック302を生成する。次いで、周波数ブロック302は、符号化のために符号化器326に提供される。例えば、周波数ブロック302は、ウェーブレット変換324構成要素によってバッファに書き込まれ、符号化器326構成要素によってバッファから読み出されてもよい。
【0050】
周波数ブロック302のラベルにおいて、文字Lはローパスフィルタを表し、文字Hはハイパスフィルタを表す。ラベルが2文字のブロック302は、1レベル(2D)のウェーブレット変換又は分解を表す。ラベルが2文字のブロック302(7つの周波数帯域のうちの3つであるLH、HL、及びHHを表す)において、第1の文字は、1番目に実行される垂直フィルタ(高又は低のいずれか)を表し、第2の文字は、2番目に実行される水平フィルタ(高又は低のいずれか)を表す。ラベルが4文字のブロック302は、2レベルのウェーブレット変換又は分解を表す。ラベルが4文字のブロック302において、第1の2文字(LL)は、最初に垂直ローパスフィルタが存在し、水平ローパスフィルタが続くことを示す。第2の2文字は、その結果生じたLLブロックがLL、LH、HL、及びHHの4通りにフィルタリングされた(したがって、7つの周波数帯域のうちの4つ(LLLL、LLLH、LLHL、及びLLHH)が生成されている)ことを示す。
【0051】
図3Cに示すように画素データを周波数帯域に分解することにより、周波数帯域は、符号化器326によって別個のストリームとしてバッファリングされ、処理されることが可能となる。周波数帯域を別個のストリームとして処理することにより、符号化器326の構成要素は、独立したストリームの処理を多重化することが可能となる。HEVC符号化などのブロックベースの符号化方法では、ブロック(符号化ツリーユニット(CTU)と呼ばれる)は、ブロック処理パイプラインにおいて複数のステージで処理される。2つ以上のブロックは、所与のクロックサイクルにおいてパイプラインの異なるステージにあってもよく、ブロックは、クロックのサイクルが進むにつれてパイプラインを通って移動する。所与のブロックの処理は、以前に処理された1つ以上の近隣ブロック、例えば、所与のブロックの上の行の1つ以上のブロック、及び/又は、所与のブロックの左側のブロックへの依存関係を有し得る。周波数帯域データのストリームの処理を多重化することによって、符号化器326は、所与のストリーム内のブロックの処理を間をあけて配置し、それにより、所与のブロックが依存関係を有する近隣ブロックを処理するために追加のクロックサイクルを提供する。例えば、所与のブロックが以前に処理された近隣ブロックに依存するステージに到達したときに、所与のブロックの左側のブロックは、パイプライン内で所与のブロックに数ステージ先行するブロックであってもよい。これにより、符号化器326は、以前に処理されたブロックに対する依存関係により適切に対処可能となり、隣接ブロックに依存するステージにおける所与のブロックの処理を行前に、パイプライン内の近隣ブロックの処理の完了を待つ必要性を低減又は排除することができる。
【0052】
加えて、
図3Cに示すように画素データを周波数帯域に分解することにより、符号化器326及び無線インタフェースによって周波数帯域の優先が可能となる。典型的に、画像及び動画送信では、より低い周波数がより重要である一方、より高い周波数の重要性は薄い。より高い周波数は、通常、画像の詳細に対応し、したがって、優先度は、より低いと見なすことができる。より高い周波数帯域には、画像内のエネルギーのより小さい割合が含まれる。エネルギーの大部分は、より低い周波数帯域に含まれる。このように、画素データを周波数帯域に分解することにより、データストリームを符号化及び送信するときに符号化器326及び無線インタフェースによって活用され得るデータストリームへの優先順位付けを提供する。例えば、いくつかの実施形態では、異なる圧縮技術を異なる周波数帯域に使用することができ、より低い優先度の帯域により積極的な圧縮を適用し、より高い優先度の帯域にはより控えめな圧縮を適用してもよい。別の例として、周波数帯域の優先順位付けは、VR/MRシステムのグレースフルデグラデーションを提供するのに役立ち得る。無線接続の性能を監視することができ、デバイスからのフィードバックを考慮して、システム全体のパフォーマンスを追跡することができる。何らかの理由でシステムの性能が低下した場合、例えば、無線接続の質が低下し、無線接続の帯域幅容量が閾値を下回る場合、符号化器326及び無線インタフェースは、より低い周波数帯域の1つ以上の符号化及び送信を優先することができ、より低い優先度レベルを割り当てられた1つ以上の周波数レベル、例えば、1つ以上のより高い周波数帯域の符号化及び/若しくは送信を低減又は低下させることができる。
【0053】
上述のように、ウェーブレット変換は、画像を周波数帯域に分解する。いくつかの実施形態では、これは、異なる解像度のディスプレイに同じ信号を送信するために活用されてもよい。一例として、2レベルのウェーブレット分解が適用されて、7つの帯域に信号を分解すると仮定する。4つのバンドが送信される場合(LLLL、LLLH、LLHL及びLLHH)、帯域は、元の意図された解像度に、より低い視覚品質で再構成されてもよい。代替的に、帯域はまた、より低い表示解像度を有するディスプレイパネルに好適であり得る1/4解像度(各寸法において1/2)で再構成されてもよい。
【0054】
図4は、少なくともいくつかの実施形態に係る、
図1及び
図2に示すような動画符号化システムを含むVR/MRシステムの動作方法の高レベルフローチャートである。400で示されるように、デバイスは、無線接続を介して基地局にデータを送信する。410で示されるように、基地局は、デバイスのデータに少なくとも部分的に基づいて仮想コンテンツを含むフレームをレンダリングする。420で示されるように、基地局は、レンダリングされたデータを圧縮し、圧縮されたデータを無線接続を介してデバイスに送信する。430で示されるように、デバイスは、仮想コンテンツを展開して表示して、ユーザによる閲覧のための3D仮想ビューを生成する。430から400に戻る矢印によって示されるように、この方法は、ユーザがVR/MRシステムを使用している限り継続する。
【0055】
いくつかの実施形態では、フレーム全体を基地局内でレンダリングして符号化し、レンダリングされたフレームをデバイスに送信するのではなく、基地局は、フレームの一部(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを準備でき次第デバイスに送信してもよい。スライスは、例えば、128×128のブロック行であってもよい。いくつかの実施形態では、動画符号化システムは、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスはそれぞれ1つ以上のブロックを含む複数のタイル(例えば、それぞれ4個のブロックを含む4つのタイル)に分割されてもよく、基地局は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイスに送信してもよい。
【0056】
図5は、少なくともいくつかの実施形態に係る、
図1に示すような動画符号化システムの動作方法のフローチャートである。
図5の方法は、例えば、
図4の420において実行されてもよい。
図5の方法は、スライスベースの符号化及び送信が実行されていると仮定する。しかしながら、いくつかの実施形態では、タイルベースの符号化及び送信が実行されてもよい。
【0057】
510で示されるように、プレフィルタ構成要素は、フレームのスライス内の画素ブロックにレンズワープ及び/又は中心窩フィルタを適用する。いくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープを実行することを含んでもよい。レンズワープは、画像が閲覧されるデバイス上のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。いくつかの実施形態では、デバイスは、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続を介してレンズワープデータを基地局に提供することができる。次いで、基地局は、そのデバイスのレンズワープデータに基づいて、フレーム上でレンズワープを実行することができる。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイスで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、デバイス上でレンズワープフィルタリングを実行することと対照的である。
【0058】
いくつかの実施形態では、510でのプレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングもまた含んでもよい。いくつかの実施形態では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0059】
520で示されるように、ウェーブレット変換構成要素は、画素ブロックにウェーブレット変換技術を適用して、画素データをN個の(例えば、7つの)周波数帯域に分解する。次いで、周波数帯域は、ブロックベースの符号化器に提供されるブロックに編成され、符号化/圧縮される。一例として、フレームを128×128のブロックに分割することができ、2レベルのウェーブレット分解を各128×128のブロックに適用して、例えば
図3Cに示すように、7つの周波数帯域を表す周波数データの32×32ブロックを16個生成することができる。
【0060】
530で示されるように、符号化器は、符号化技術をブロック内の周波数帯域に適用して、データを圧縮する。符号化器は、例えば、高効率動画符号化(HEVC)符号化器であってもよい。しかしながら、いくつかの実施形態では、他の符号化技術が使用されてもよい。要素520で示されるように画素データを周波数帯域に分解することにより、周波数帯域は、符号化器によって別個のストリームとしてバッファリングされ、処理されることが可能となる。別個のストリームとして周波数帯域を処理することにより、符号化器の構成要素は、独立したストリームの処理を多重化することが可となる。HEVC符号化などのブロックベースの符号化方法では、ブロック(符号化ツリーユニット(CTU)と呼ばれる)は、パイプラインにおいて複数のステージで処理される。2つ以上のブロックは、所与のクロックサイクルにおいてパイプラインの異なるステージにあってもよく、ブロックは、クロックのサイクルが進むにつれてパイプラインを通って移動する。所与のブロックの処理は、以前に処理された1つ以上の近隣ブロック、例えば、所与のブロックの上の行の1つ以上のブロック、及び/又は、所与のブロックの左側のブロックへの依存関係を有し得る。ストリームの処理を多重化することによって、符号化器は、所与のストリーム内のブロックの処理を間をあけて配置し、それにより、所与のブロックが依存関係を有する近隣ブロックを処理するために追加のクロックサイクルを提供する。例えば、所与のブロックが以前に処理された近隣ブロックに依存するステージに到達したときに、所与のブロックの左側のブロックは、パイプライン内で所与のブロックに数ステージ先行するブロックであってもよい。これにより、符号化器は、以前に処理されたブロックに対する依存関係により適切に対処可能となり、隣接ブロックに依存するステージにおける所与のブロックの処理を行う前に、パイプライン内の近隣ブロックの処理の完了を待つ必要性を低減又は排除することができる。
【0061】
540で示されるように、無線インタフェースは、圧縮されたデータをパケット化し、無線接続を介してパケットをデバイスに送信する。
【0062】
要素520で示されるように画素データを周波数帯域に分解することにより、要素530での符号化器及び要素540での無線インタフェースによって周波数帯域の優先が可能となる。典型的に、画像及び動画送信では、より低い周波数がより重要である一方、より高い周波数の重要性は薄い。より高い周波数は、通常、画像の詳細に対応し、したがって、優先度は、より低いと見なすことができる。より高い周波数帯域には、画像内のエネルギーのより小さい割合が含まれる。エネルギーの大部分は、より低い周波数帯域に含まれる。このように、画素データを周波数帯域に分解することにより、データストリームを符号化及び送信するときに符号化器及び無線インタフェースによって活用され得るデータストリームへの優先順位付けを提供する。例えば、いくつかの実施形態では、異なる圧縮技術を異なる周波数帯域に使用することができ、より低い優先度の帯域により積極的な圧縮を適用し、より高い優先度の帯域にはより控えめな圧縮を適用してもよい。別の例として、周波数帯域の優先順位付けは、VR/MRシステムのグレースフルデグラデーションを提供するのに役立ち得る。無線接続の性能を監視することができ、デバイスからのフィードバックを考慮して、システム全体のパフォーマンスを追跡することができる。何らかの理由でシステムの性能が低下した場合、例えば、無線接続の質が低下し、無線接続の帯域幅容量が閾値を下回る場合、符号化器及び無線インタフェースは、より低い周波数帯域の1つ以上の符号化及び送信を優先することができ、より低い優先度レベルを割り当てられた1つ以上の周波数レベル、例えば、1つ以上のより高い周波数帯域の符号化及び/若しくは送信を低減又は低下させることができる。
【0063】
550において、符号化及び送信されるスライスが更に存在する場合、方法は、要素510に戻り、次のスライスを処理する。さもなければ、560において、符号化及び送信されるフレームが更に存在する場合、方法は要素510に戻り、次のフレームの処理を開始する。
【0064】
図6は、少なくともいくつかの実施形態に係る、
図2に示すような動画符号化システムの動作方法のフローチャートである。
図6の方法は、例えば、
図4の420において実行されてもよい。
図6の方法では、動画符号化システムは、複数の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。
【0065】
600で示されるように、レンダリングエンジンは、複数のタイル(この例では4つのタイル)を含むスライスをレンダリングし、各タイルは、複数の画素ブロック(この例では、4個の128×128の画素ブロック)を含む。
【0066】
610で示されるように、プレフィルタ構成要素は、レンズワープ及び/又は中心窩フィルタをスライスに適用する。いくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープを実行することを含んでもよい。レンズワープは、画像が閲覧されるデバイス上のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。いくつかの実施形態では、デバイスは、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続を介してレンズワープデータを基地局に提供することができる。次いで、基地局は、そのデバイスのレンズワープデータに基づいて、フレーム上でレンズワープを実行することができる。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイスで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、デバイス上でレンズワープフィルタリングを実行することと対照的である。
【0067】
いくつかの実施形態では、610でのプレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングもまた含んでもよい。いくつかの実施形態では、デバイスによって取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0068】
いくつかの実施形態では、動画符号化システムは、タイルを処理する単一のプレフィルタ構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、各タイルを処理するための別個のプレフィルタ構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、それぞれが複数の(例えば、2つの)タイルを処理する、複数の(例えば、2つの)プレフィルタ構成要素を含み得る。
【0069】
620で示されるように、ウェーブレット変換構成要素は、スライス内の画素ブロックにウェーブレット変換技術を適用して、画素データをN個の(例えば、7つの)周波数帯域に分解する。次いで、周波数帯域は、ブロックベースの符号化器に提供され得るブロック(例えば、CTU)に編成される、符号化/圧縮される。一例として、フレームを128×128のブロックに分割することができ、2レベルのウェーブレット分解を各128×128のブロックに適用して、例えば
図3Cに示すように、7つの周波数帯域を表す周波数データの32×32ブロックを16個生成することができる。
【0070】
いくつかの実施形態では、動画符号化システムは、タイルを処理する単一のウェーブレット変換構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、各タイルを処理するための別個のウェーブレット変換構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、それぞれが複数の(例えば、2つの)タイルを処理する、複数の(例えば、2つの)ウェーブレット変換構成要素を含み得る。
【0071】
図6の方法では、例示的な動画符号化システムは、要素620において並行して生成されるスライスのうちの異なるものから周波数データのブロックを符号化するように構成された2つの符号化器を含む。例えば、第1の符号化器は、スライス0及び1からブロックを符号化するように構成されてもよく、第2の符号化器は、スライス2及び3からブロックを符号化するように構成されてもよい。630Aで示されるように、第1の符号化器は、符号化技術をタイル0及び1のブロック内の周波数帯域に適用し、2つの異なるタイル間で異なる周波数帯域からブロックの処理を多重化する。630Bで示されるように、第2の符号化器は、符号化技術をタイル2及び3のブロック内の周波数帯域に適用し、2つの異なるタイル間で異なる周波数帯域からブロックの処理を多重化する。
【0072】
符号化器は、例えば、高効率動画符号化(HEVC)符号化器であってもよい。しかしながら、いくつかの実施形態では、他の符号化技術が使用されてもよい。要素620で示されるように画素データを周波数帯域に分解することにより、周波数帯域は、要素630A及び630Bでの符号化器によって別個のストリームとしてバッファリングされ、処理されることが可能となる。別個のストリームとして周波数帯域を処理することにより、符号化器は、独立したストリームの処理を多重化することが可能となる。HEVC符号化などのブロックベースの符号化方法では、ブロック(符号化ツリーユニット(CTU)と呼ばれる)は、パイプラインにおいて複数のステージで処理される。2つ以上のブロックは、所与のクロックサイクルにおいてパイプラインの異なるステージにあってもよく、ブロックは、クロックのサイクルが進むにつれてパイプラインを通って移動する。所与のブロックの処理は、以前に処理された1つ以上の近隣ブロック、例えば、所与のブロックの上の行の1つ以上のブロック、及び/又は、所与のブロックの左側のブロックへの依存関係を有し得る。ストリームの処理を多重化することによって、符号化器は、所与のストリーム内のブロックの処理を間をあけて配置し、それにより、所与のブロックが依存関係を有する近隣ブロックを処理するために追加のクロックサイクルを提供する。例えば、所与のブロックが以前に処理された近隣ブロックに依存するステージに到達したときに、所与のブロックの左側のブロックは、パイプライン内で所与のブロックに数ステージ先行するブロックであってもよい。これにより、符号化器は、以前に処理されたブロックに対する依存関係により適切に対処可能となり、隣接ブロックに依存するステージにおける所与のブロックの処理を行う前に、パイプライン内の近隣ブロックの処理の完了を待つ必要性を低減又は排除することができる。
【0073】
640で示されるように、無線インタフェースは、要素530で符号化器によって生成された圧縮データをパケット化し、無線接続を介してパケットをデバイスに送信する。650から600に戻る矢印によって示されるように、この方法は、ユーザがVR/MRシステムを使用している限り継続する。
【0074】
要素620で示されるように画素データを周波数帯域に分解することにより、要素630A及び630Bでの符号化器並びに要素640での無線インタフェースによって周波数帯域の優先が可能となる。典型的に、画像及び動画送信では、より低い周波数がより重要である一方、より高い周波数の重要性は薄い。より高い周波数は、通常、画像の詳細に対応し、したがって、優先度は、より低いと見なすことができる。より高い周波数帯域には、画像内のエネルギーのより小さい割合が含まれる。エネルギーの大部分は、より低い周波数帯域に含まれる。このように、画素データを周波数帯域に分解することにより、データストリームを符号化及び送信するときに符号化器及び無線インタフェースによって活用され得るデータストリームへの優先順位付けを提供する。例えば、いくつかの実施形態では、異なる圧縮技術を異なる周波数帯域に使用することができ、より低い優先度の帯域により積極的な圧縮を適用し、より高い優先度の帯域にはより控えめな圧縮を適用してもよい。別の例として、周波数帯域の優先順位付けは、VR/MRシステムのグレースフルデグラデーションを提供するのに役立ち得る。無線接続の性能を監視することができ、デバイスからのフィードバックを考慮して、システム全体のパフォーマンスを追跡することができる。何らかの理由でシステムの性能が低下した場合、例えば、無線接続の質が低下し、無線接続の帯域幅容量が閾値を下回る場合、符号化器及び無線インタフェースは、より低い周波数帯域の1つ以上の符号化及び送信を優先することができ、より低い優先度レベルを割り当てられた1つ以上の周波数レベル、例えば、1つ以上のより高い周波数帯域の符号化及び/若しくは送信を低減又は低下させることができる。
【0075】
各スライスが4つのタイルに分割され、2つの符号化器が各スライスからのそれぞれのタイル上で動作する実施形態が記載されているが、いくつかの実施形態では、スライスをより多くのタイル(例えば、6つ又は8つのタイル)に分割することができ、いくつかの実施形態では、より多くの符号化器(例えば、3つ又は4つの符号化器)が使用されてもよい。
レート制御
【0076】
符号化器は、目標ビットレートを達成するために符号化器パラメータを動的に調整するレート制御方法又はアルゴリズムを採用することができる。レート制御方法は、無線接続の利用可能な帯域幅に基づいて、動画ビットレートを推定することができる。推定ビットレートは、符号化ビットストリームが利用可能な帯域幅の使用を最適化しながら首尾よく送信され得ることを確実にするために、符号化器パラメータを調整するために使用され得る。典型的には、動画ストリーミングシステムのレート制御方法は、動画ビットレートを推定し、それに応じて符号化器パラメータを調整するために、フレーム又は2フレームの時間定数にわたって機能する。
【0077】
本明細書に記載されるような動画符号化システムの実施形態を実装するVR/MRシステムの目標は、エラー(例えば、パケット廃棄)を最小限に抑え、無線接続を介する帯域幅の使用を最大化しつつ、仮想コンテンツが基地局上にレンダリングされる時間と、仮想コンテンツがデバイス上に表示される時間との間の、非常に低いレイテンシ(例えば、4~5ミリ秒)を提供することであってもよい。システムの目標とする低レイテンシは、デバイスへの無線接続を介して送信されるデータを符号化する際の符号化器におけるレート制御のための課題である。
【0078】
いくつかの実施形態では、動画符号化システムは、フレームのスライスからの画素のブロック(例えば、64×64の又は128×128のブロック)を、複数の(例えば、7つの)異なる周波数帯域に分解する2層ウェーブレット分解を実行するウェーブレット変換構成要素と、続いて、周波数帯域を符号化するHEVCなどのブロックベースの符号化器とを含む。いくつかの実施形態では、レート制御構成要素は、VR/MRシステムの厳密なレイテンシ要件下でレート制御を実行するために、1フレーム又は2フレームの時定数にわたって動作する代わりに、各スライスの符号化器パラメータ(例えば、周波数帯域の量子化パラメータ)を調整することができる。いくつかの実施形態では、スライスの周波数帯域は、ウェーブレット変換後にローカルメモリ内にバッファリングされてもよく、それにより、複雑度統計値は、例えば、動画符号化システムの複雑性分析構成要素によって、符号化の前に、周波数帯域にわたって計算され得る。いくつかの実施形態では、複雑度統計値は、CTUブロックの画素勾配及びサイズの分散のうちの1つ以上を含んでもよいが、これらに限定されない。複雑度統計値は、次に、現在のスライスの符号化器内のレートを調節するための周波数帯域の量子化パラメータを決定する際に、レート制御構成要素によって使用されてもよい。バッファリングされた周波数帯域上の複雑度統計値を計算することにより、動画符号化システムは、スライスを符号化する前にスライスにおける複雑さの量を推定することができる。
【0079】
いくつかの実施形態では、レート制御構成要素は、1つ以上の以前に処理されたフレームに関する統計値を検査して、フレームの同一場所のブロック又はスライスを符号化するために使用されたビットの実際の数を決定することができる。次に、この情報は、現在のスライスの量子化パラメータを決定する際に、現在のスライスの複雑性統計値と組み合わせて使用され得る。
【0080】
いくつかの実施形態では、周波数帯域の量子化パラメータは、復号器による再構成及びウェーブレット合成がデバイス上で実行された後のフレームの全体的な表示品質を最適化するために、合同して計算されてもよい。周波数帯域間のレート割り当てのための方法は、動作レート歪み曲線上で等しい勾配をもたらす周波数帯域のそれぞれにおける動作点を見つけることである。いくつかの実施形態では、動作レート歪み曲線は、係数のレートが6ステップの量子化パラメータによく近似し得るという事実により、符号化器パイプラインのエントロピー符号化ステージからの統計値の組み合わせを使用して推定されてもよい。
【0081】
いくつかの実施形態では、同一画像内において周囲の領域(例えば、周辺領域)よりも高い解像度を有するべき関心領域(例えば、中心窩領域)が画像内に存在してもよい。いくつかの実施形態では、前のフレームからの複雑度統計値は、前のフレームからの中心窩領域と共に記憶され、現在のフレームのスライスにおける周波数帯域の量子化パラメータを計算する際に使用され得る。一例として、符号化される各ブロックについて、前のフレームの中心窩領域を使用して、前のフレームについて計算された複雑度統計値を調節することができる。これにより得られた複雑度統計値は、次いで、量子化パラメータを決定する際に、現在のフレームのスライスについて計算された複雑度統計値に加えて使用され得る。
【0082】
いくつかの実施形態では、レート制御構成要素は、スライスレベルではなくブロックレベルで符号化器パラメータ(例えば、周波数帯域又は優先順位レベルの量子化パラメータ)を調整してもよい。いくつかの実施形態では、スライスの各ブロックについて複雑度統計値を計算することができ、ブロックについて量子化パラメータを決定することができる。
【0083】
図7は、少なくともいくつかの実施形態に係る、周波数帯域の複雑度統計値が符号化の前に計算され、符号化のための量子化パラメータを生成する際に使用される、
図1又は2に示すような動画符号化システムを示すブロック図である。
【0084】
いくつかの実施形態では、画素データを含むフレームのレンダリングされたスライスは、最初に、プレフィルタ1004構成要素、例えば、Nチャネルのフィルタバンクによって処理される。いくつかの実施形態では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。
【0085】
プレフィルタ1004の出力は、ウェーブレット変換1006構成要素によって処理される。いくつかの実施形態では、ウェーブレット変換1006構成要素は、フレームのスライスからの画素のブロック(例えば、64×64又は128×128のブロック)を複数の(例えば、7つの)異なる周波数帯域に分解する、2層ウェーブレット分解を実行する。スライスの周波数帯域は、ウェーブレット変換1005の後にバッファ1007されてもよく、それにより、複雑度統計値は、符号化の前に動画符号化システムの複雑度分析1050構成要素によって、スライスの周波数帯域にわたって計算され得る。いくつかの実施形態では、複雑度統計値は、CTUブロックの画素勾配及びサイズの分散のうちの1つ以上を含んでもよいが、これらに限定されない。複雑度分析1050構成要素は、スライス内の周波数帯域の複雑度統計値を符号化器1008のレート制御1018構成要素に提供する。次いで、レート制御1018構成要素は、複雑度統計値に少なくとも部分的に基づいて、スライス内の周波数帯域のそれぞれについて量子化パラメータを計算する。
【0086】
いくつかの実施形態では、周波数帯域の量子化パラメータは、復号器による再構成及びウェーブレット合成がデバイス上で実行された後のフレームの全体的な表示品質を最適化しながら、周波数帯域間のレートを割り当てるために、レート制御1018構成要素によって合同して計算されてもよい。周波数帯域間のレート割り当てのための方法は、動作レート歪み曲線上で等しい勾配をもたらす周波数帯域のそれぞれにおける動作点を見つけることである。いくつかの実施形態では、動作レート歪み曲線は、係数のレートが6ステップの量子化パラメータによく近似し得るという事実により、符号化器パイプライン1020のエントロピー符号化ステージからの統計値の組み合わせを使用して推定されてもよい。
【0087】
いくつかの実施形態では、レート制御1018構成要素は、1つ以上の以前に処理されたフレームに関する統計値を検査して、フレームの同一場所のブロック又はスライスを符号化するために使用されたビットの実際の数を決定することができる。次に、この情報は、現在のスライスの量子化パラメータを決定する際に、現在のスライスの複雑度統計値と組み合わせて使用され得る。
【0088】
いくつかの実施形態では、同一画像内において周囲の領域(例えば、周辺領域)よりも高い解像度を有するべき関心領域(例えば、中心窩領域)が画像内に存在してもよい。いくつかの実施形態では、前のフレームからの複雑度統計値は、前のフレームからの中心窩領域と共に記憶され、現在のフレームのスライスにおける周波数帯域の量子化パラメータを計算する際にレート制御1018構成要素によって使用され得る。一例として、符号化される各ブロックについて、前のフレームの中心窩領域を使用して、前のフレームについて計算された複雑度統計値を調節することができる。これにより得られた複雑度統計値は、次いで、量子化パラメータを決定する際に、現在のフレームのスライスについて計算された複雑度統計値に加えて使用され得る。
【0089】
レート制御1018構成要素は、現在のスライスの周波数帯域を符号化するために量子化パラメータを使用するブロック処理パイプライン1020に、スライス内の周波数帯域の量子化パラメータを提供する。符号化された周波数帯域は、無線インタフェース1010に提供され、無線インタフェース1010は、符号化された周波数帯域をパケット化し無線接続1080を介してデバイスに送信する。
【0090】
動画符号化システムの目標は、帯域幅使用を最大化し、デバイスへの無線接続1080のレイテンシを最小化する一方で、デバイスに対する動画ストリームの品質を最適化することである。いくつかの実施形態では、この目標を達成するのを助けるために、無線インタフェース1010は、現在の無線接続情報を、符号化器1008のレート制御1018構成要素にフィードバックとして提供してもよい。レート制御構成要素1018は、周波数帯域の量子化パラメータを決定する際にこの情報を使用してもよい。いくつかの実施形態では、無線インタフェース1010は、無線接続1080の瞬時総ビットレートを追跡することができ、また、接続1080上のパケット廃棄率を追跡してもよい。いくつかの実施形態では、無線インタフェース1010は、無線接続1080の現在のビットレートをレート制御1018構成要素にフィードバックする。レート制御1018構成要素は、この情報を使用して、利用可能なビットレートを異なる周波数帯域の間で割り当てることができる。例えば、無線接続1080のビットレートが現在低い場合、レート制御1018構成要素は、より高い周波数帯域の1つ以上に、より少ないビットをこれらの帯域に割り当てるように、量子化パラメータを調整することができる。いくつかの実施形態では、無線インタフェース1010はまた、無線接続1080の現在のパケット廃棄率をレート制御1018構成要素にフィードバックする。レート制御1018構成要素は、動画ストリームの品質を最適化するために、現在のビットレートでの帯域幅使用を最大化しながら、パケット廃棄率を低減又は最小化するように周波数帯域の量子化パラメータの調整をバランスさせるため、現在のパケット廃棄率及び現在のビットレートを使用してもよい。
【0091】
いくつかの実施形態では、レート制御1018構成要素は、スライスレベルではなくブロックレベルで周波数帯域の量子化パラメータを調整することができる。
【0092】
図8は、少なくともいくつかの実施形態に係る、
図7に示すような動画符号化システムの動作方法のフローチャートである。1100で示されるように、プレフィルタ構成要素は、フレーム(単数又は複数)の中心窩領域を判定し、スライス内の画素データをプレフィルタリングする。いくつかの実施形態では、画素データを含むフレームのレンダリングされたスライスは、最初に、プレフィルタ構成要素、例えば、Nチャネルのフィルタバンクによって処理される。いくつかの実施形態では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。
【0093】
1110で示されるように、ウェーブレット変換構成要素は、プレフィルタリングされた画素データをN個の(例えば、7つの)周波数帯域に分解する。いくつかの実施形態では、ウェーブレット変換構成要素は、フレームのスライスからの画素のブロック(例えば、64×64又は128×128のブロック)を、複数の(例えば、7つの)異なる周波数帯域に分解する、2層ウェーブレット分解を実行する。スライスの周波数帯域は、符号化前に動画符号化システムの複雑度分析構成要素によって、スライスの周波数帯域にわたって複雑度統計値を計算することができるように、ウェーブレット変換後にバッファリングされてもよい。
【0094】
1120で示されるように、複雑度分析構成要素は、周波数帯域にわたる複雑度統計値を計算する。いくつかの実施形態では、複雑度統計値は、CTUブロックの画素勾配及びサイズの分散のうちの1つ以上を含んでもよいが、これらに限定されない。複雑度分析構成要素は、スライス内の周波数帯域の複雑度統計値を符号化器のレート制御構成要素に提供する。
【0095】
1130で示されるように、符号化器レート制御構成要素は、複雑度統計値に少なくとも部分的に基づいて、スライス内の周波数帯域のそれぞれについて量子化パラメータを決定する。いくつかの実施形態では、周波数帯域の量子化パラメータは、復号器による再構成及びウェーブレット合成がデバイス上で実行された後のフレームの全体的な表示品質を最適化しながら、周波数帯域間のレートを割り当てるために、レート制御構成要素によって合同して計算されてもよい。周波数帯域間のレート割り当てのための方法は、動作レート歪み曲線上で等しい勾配をもたらす周波数帯域のそれぞれにおける動作点を見つけることである。いくつかの実施形態では、動作レート歪み曲線は、係数のレートが6ステップの量子化パラメータによく近似し得るという事実により、符号化器パイプライン1020のエントロピー符号化ステージからの統計値の組み合わせを使用して推定されてもよい。
【0096】
いくつかの実施形態では、レート制御構成要素は、1つ以上の以前に処理されたフレームに関する統計値を検査して、フレームの同一場所のブロック又はスライスを符号化するために使用されたビットの実際の数を決定することができる。次に、この情報は、現在のスライスの量子化パラメータを決定する際に、現在のスライスの複雑度統計値と組み合わせて使用され得る。
【0097】
いくつかの実施形態では、同一画像内において周囲の領域(例えば、周辺領域)よりも高い解像度を有するべき関心領域(例えば、中心窩領域)が画像内に存在してもよい。いくつかの実施形態では、前のフレームからの複雑度統計値は、前のフレームからの中心窩領域と共に記憶され、現在のフレームのスライスにおける周波数帯域の量子化パラメータを計算する際にレート制御構成要素によって使用され得る。一例として、符号化される各ブロックについて、前のフレームの中心窩領域を使用して、前のフレームについて計算された複雑度統計値を調節することができる。これにより得られた複雑度統計値は、次いで、量子化パラメータを決定する際に、現在のフレームのスライスについて計算された複雑度統計値に加えて使用され得る。
【0098】
1140で示されるように、符号化器(例えば、HEVC符号化器)は、量子化パラメータを使用して符号化技術を周波数帯域に適用して、データを圧縮する。レート制御構成要素は、現在のスライスの周波数帯域を符号化するために量子化パラメータを使用する符号化器のブロック処理パイプラインに、スライス内の周波数帯域の量子化パラメータを提供する。符号化された周波数帯域は、基地局の無線インタフェースに提供される。
【0099】
1150で示されるように、無線インタフェースは圧縮されたデータをパケット化し、無線接続を介してデバイスに送信する。いくつかの実施形態では、無線インタフェースは、現在の無線接続情報を、符号化器のレート制御構成要素にフィードバックとして提供してもよい。レート制御構成要素は、周波数帯域の量子化パラメータを決定する際に、この情報を使用してもよい。いくつかの実施形態では、無線インタフェースは、無線接続の瞬時総ビットレートを追跡することができ、また、接続上のパケット廃棄率を追跡してもよい。いくつかの実施形態では、レート制御構成要素は、異なる周波数帯域の間で利用可能なビットレートを割り当てるために、無線接続の現在のビットレートを使用することができる。いくつかの実施形態では、レート制御構成要素は、現在のビットレートでの動画ストリームの品質を最適化するために、パケット廃棄率を低減又は最小化するように周波数帯域の量子化パラメータの調整をバランスさせるため、現在のパケット廃棄率及び現在のビットレートを使用してもよい。
【0100】
要素1160から要素1100に戻る矢印によって示されるように、方法は、デバイスに送信されるデータが存在する限り継続してもよい。
例示的なVR/MRシステム
【0101】
図9は、少なくともいくつかの実施形態に係る、動画符号化システムを実装することができる例示的なVR/MRシステム2000を示す。VR/MRシステム2000は、少なくとも1つのデバイス2150(例えば、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、ハンドヘルドコンピューティングデバイス、又はユーザによって装着され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのHMD)及びコンピューティングデバイス2100(本明細書では基地局と呼ばれる)を含んでもよい。基地局2100は、仮想コンテンツを含むVR又はMRフレームをレンダリングし、フレームを符号化し、デバイス2150によって復号され表示されるように、符号化されたフレームを無線接続2180を介してデバイス2150に送信する。
【0102】
基地局2100及びデバイス2150はそれぞれ、基地局2100及びデバイス2150が無線接続2180を介してデータを通信し交換することを可能にする無線通信技術を含み得る。いくつかの実施形態では、無線接続2180は、デバイス2150と基地局2100との間に高指向性無線リンクを提供する独自の無線通信技術に従って実装されてもよい。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0103】
いくつかの実施形態では、HMD2150は、ユーザの環境に関する情報(例えば、動画、深度情報、照明情報など)、及び/又はユーザに関する情報(例えば、ユーザの表情、眼の動き、視線の方向、手のジェスチャなど)を収集するセンサを含んでもよい。デバイス2150は、センサによって収集された情報の少なくとも一部を、無線接続2180を介して基地局2100に送信してもよい。基地局2100は、センサから取得された様々な情報に少なくとも部分的に基づいて、仮想コンテンツを含むデバイス2150によって表示するためのフレームをレンダリングし、フレームを符号化し、符号化されたフレームを、復号しユーザに対し表示するために、無線接続2180を介してデバイス2150に送信することができる。フレームを符号化し送信するために、基地局2100は、
図1~
図8に示すような動画符号化システムを実装してもよい。
【0104】
図10は、いくつかの実施形態に係る、
図9に示すような例示的なVR/MRシステムの機能部品及び処理を示すブロック図である。デバイス2150は、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、ハンドヘルドコンピューティングデバイス、又はユーザによって着用され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのHMDであってもよいが、これらに限定されない。デバイス2150は、様々なタイプの仮想又は拡張現実ディスプレイ技術のいずれかを実装することができるディスプレイ2156構成要素又はサブシステムを含み得る。例えば、HMDデバイス2150は、DLP(digital light processing、デジタル光処理)、LCD(liquid crystal display、液晶表示)、及びLCoS(liquid crystal on silicon、反射型液晶素子)技術によるVRシステムなどの、ユーザの眼の前のスクリーン上にユーザが見る左右の画像を表示する、ニアアイシステムであってもよい。別の実施例として、HMDデバイス2150は、左右の画像を画素ごとにユーザの眼に走査する直接網膜投射システムであってもよい。画像を走査するために、左右のプロジェクタは、ユーザの眼の前に位置する左右の反射性構成要素(例えば、楕円面鏡)に向けられたビームを生成し、反射性構成要素は、ビームをユーザの眼に反射させる。3次元(3D)効果を生み出すために、3D仮想ビュー内で異なる奥行き又は距離にある仮想コンテンツは、三角測量による距離に応じて、より近いオブジェクトは、より遠くのオブジェクト以上にシフトされるように、2つの画像内で左又は右にシフトされる。
【0105】
デバイス2150はまた、本明細書に記載されるようなVR/MRシステム2000のデバイス側機能を実装するように構成されたコントローラ2154を含んでもよい。いくつかの実施形態では、デバイス2150はまた、コントローラ2154によって実行可能なVR/MRシステム2000のデバイス構成要素のソフトウェア(コード2172)を記憶するように構成されたメモリ2170、並びに、コントローラ2154上で実行するときにソフトウェアによって使用され得るデータ2174を含んでもよい。各種実施形態では、コントローラ2154は、1つのプロセッサを含むユニプロセッサシステム、又はいくつかのプロセッサ(例えば、2つ、4つ、8つ、若しくは他の好適な数)を含むマルチプロセッサシステムであってもよい。コントローラ2154は、任意の好適な命令セットアーキテクチャを実装するように構成された中央処理装置(CPU)を含んでもよく、その命令セットアーキテクチャで定義された命令を実行するように構成されてもよい。例えば、各種実施形態では、コントローラ2154は、x86、PowerPC、SPARC、RISC、若しくはMIPS命令セットアーキテクチャ(instruction set architecture、ISA)、又は任意の他の好適なISAなどの、様々なISAのいずれかを実装する汎用プロセッサ又は組み込みプロセッサを含んでもよい。マルチプロセッサシステムでは、プロセッサの各々は、必ずしもではないが、同一のISAを共通して実装してもよい。コントローラ2154は、スカラ方式、スーパースカラ方式、パイプライン方式、スーパーパイプライン方式、アウトオブオーダ方式、インオーダ方式、スペキュレーティブ方式、非スペキュレーティブ方式など、又はそれらの組み合わせを含む、任意のマイクロアーキテクチャを採用してもよい。コントローラ2154は、マイクロコーディング技術を実装するための回路を含んでもよい。コントローラ2154は、各々が命令を実行するように構成された1つ以上の処理コアを含んでもよい。コントローラ2154は、任意のサイズ及び任意の構成(セットアソシエイティブ方式、ダイレクトマップ方式など)を用いることができる、1つ以上のレベルのキャッシュを含んでもよい。いくつかの実施形態では、コントローラ2154は、任意の好適なグラフィック処理回路を含むことができる、少なくとも1つのグラフィック処理ユニット(GPU)を含むことができる。概して、GPUは、フレームバッファに表示されることになるオブジェクト(例えば、フレーム全体に対するピクセルデータを含むもの)をレンダリングするように構成されてもよい。GPUは、グラフィック演算の一部若しくは全て、又は特定のグラフィック演算のハードウェア高速化を実行するグラフィックソフトウェアを実行することができる、1つ以上のグラフィックプロセッサを含んでもよい。いくつかの実施形態では、コントローラ2154は、動画及び/又は画像を処理してレンダリングするための1つ以上の他の構成要素、例えば、画像信号プロセッサ(ISP)、符号化器/復号器(コーデック)などを含んでもよい。いくつかの実施形態では、コントローラ2154は、少なくとも1つのシステムオンチップ(SOC)を含んでもよい。
【0106】
メモリ2170は、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM(mDDR3などのモバイルバージョンのSDRAM又はLPDDR2などの低電力バージョンのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)などの、任意のタイプのメモリを含んでもよい。いくつかの実施形態では、1つ以上のメモリデバイスは、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などのメモリモジュールを形成するために回路基板に結合されてもよい。代替的に、デバイスは、システムをチップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成で実装する集積回路を搭載してもよい。
【0107】
いくつかの実施形態では、センサ2160は、ユーザの眼の位置及び動きを追跡するために使用され得る1つ以上の視線追跡センサ(例えば、赤外線照明光源を有する赤外線カメラ)を含んでもよいが、これらに限定されない。いくつかの実施形態では、各視線追跡センサがそれぞれの眼を追跡する、2つの視線追跡センサが存在してもよい。いくつかの実施形態では、視線追跡センサによって収集された情報は、基地局2100による画像のレンダリングを調整するため、かつ/又はユーザの眼が見ている方向及び角度に基づいて、デバイス2150の投影システムによる画像の投影を調節するために使用されてもよい。例えば、いくつかの実施形態では、ユーザの眼が現在見ている場所の周囲の領域内の画像のコンテンツは、ユーザが見ていない領域内のコンテンツよりも詳細かつより高い解像度でレンダリングされてもよい。これにより、画像データのための利用可能な処理時間が、眼の周辺領域によって見るコンテンツにではなく、眼の中心窩領域によって見るコンテンツに費やされることを可能にする。同様に、ユーザが見ていない領域内の画像のコンテンツは、ユーザが現在見ている地点の周囲の領域のコンテンツよりも多く圧縮されてもよい。いくつかの実施形態では、センサがユーザの眼のそれぞれの眼の眺めを有するような位置に、デバイス2150の内側表面上に位置する2つの視線追跡センサが存在してもよい。しかしながら、各種実施形態では、より多くの又はより少ない視線追跡センサが使用されてもよく、視線追跡センサは他の位置に位置してもよい。例示的な非限定的な実施形態では、各視線追跡センサは、赤外線光源及び赤外線カメラ、例えば、120FPS以上のフレームレート、70度の水平視野(HFOV)、及び10~80ミリメートル(mm)の作動距離を有する400x400画素数のカメラを含んでもよい。
【0108】
いくつかの実施形態では、デバイス2150は、デバイス2150の位置、向き、及び/又は動きを検出し、検出した位置、向き、及び/又は動きデータをデバイス2150のコントローラ2154及び/又は基地局2100に提供するように構成された、少なくとも1つの慣性測定ユニット(inertial-measurement unit、IMU)2162を含み得る。
【0109】
デバイス2150はまた、無線接続2180を介して外部基地局2100と通信して、基地局2100にセンサ入力を送信し、レンダリングされ圧縮されたフレーム、スライス、又はタイルを基地局2100から受信するように構成された無線インタフェース2152を含んでもよい。いくつかの実施形態では、無線インタフェース2152は、デバイス2150と基地局2100との間に高指向性無線リンクを提供する独自の無線通信技術を実装することができる。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0110】
基地局2100は、無線インタフェース2180を介してデバイス2150に通信可能に結合された外部デバイス(例えば、コンピューティングシステム、ゲームコンソールなど)であってもよい。基地局2100は、動画及び/又は画像をレンダリングし、フィルタリングし、符号化し、送信するための様々なタイプのプロセッサ(例えば、SOC、CPU、ISP、GPU、コーデック、及び/又は他の構成要素)のうちの1つ以上を含んでもよい。基地局2100は、無線接続2180を介してセンサ2160から取得した様々な入力に少なくとも部分的に基づく仮想コンテンツを含むフレーム(各フレームは左右画像を含む)をレンダリングし、レンダリングしたフレーム(又はフレームのスライス)を本明細書に記載されるような動画符号化システムを使用してフィルタリングかつ圧縮し、圧縮されたフレーム又はスライスをデバイス2150に送信して表示することができる。
【0111】
基地局2100は、デスクトップコンピュータ、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、ハンドヘルドコンピュータデバイス、ゲームコントローラ、ゲームシステムなどの任意のタイプのコンピューティングシステム若しくはコンピューティングデバイスであってもよく、又はそれを含んでもよい。基地局2100は、本明細書に記載されるような動画符号化システムを含むVR/MRシステム2000の基地局側機能を実装する1つ以上のプロセッサを備えるコントローラ2110を含んでもよい。基地局2100はまた、基地局コントローラ2110によって実行可能なVR/MRシステム2000の基地局構成要素のソフトウェア(コード2122)を記憶するように構成されたメモリ2120、並びに、コントローラ2110上で実行するときにソフトウェアによって使用され得るデータ2124を含んでもよい。
【0112】
各種実施形態では、基地局コントローラ2110は、1つのプロセッサを含むユニプロセッサシステム、又はいくつかのプロセッサ(例えば、2つ、4つ、8つ、若しくは他の好適な数)を含むマルチプロセッサシステムであってもよい。コントローラ2110は、任意の好適な命令セットアーキテクチャを実装するように構成された中央処理装置(CPU)を含んでもよく、その命令セットアーキテクチャで定義された命令を実行するように構成されてもよい。例えば、各種実施形態では、コントローラ2110は、x86、PowerPC、SPARC、RISC、若しくはMIPS命令セットアーキテクチャ(ISA)、又は任意の他の好適なISAなどの、様々なISAのいずれかを実装する汎用プロセッサ又は組み込みプロセッサを含んでもよい。マルチプロセッサシステムでは、プロセッサの各々は、必ずしもではないが、同一のISAを共通して実装してもよい。コントローラ2110は、スカラ方式、スーパースカラ方式、パイプライン方式、スーパーパイプライン方式、アウトオブオーダ方式、インオーダ方式、スペキュレーティブ方式、非スペキュレーティブ方式など、又はそれらの組み合わせを含む、任意のマイクロアーキテクチャを採用してもよい。コントローラ2110は、マイクロコーディング技術を実装するための回路を含んでもよい。コントローラ2110は、各々が命令を実行するように構成された1つ以上の処理コアを含んでもよい。コントローラ2110は、任意のサイズ及び任意の構成(セットアソシエイティブ方式、ダイレクトマップ方式など)を用いることができる、1つ以上のレベルのキャッシュを含んでもよい。いくつかの実施形態では、コントローラ2110は、任意の好適なグラフィック処理回路を含むことができる、少なくとも1つのグラフィック処理ユニット(GPU)を含むことができる。概して、GPUは、フレームバッファに表示されることになるオブジェクト(例えば、フレーム全体に対するピクセルデータを含むもの)をレンダリングするように構成されてもよい。GPUは、グラフィック演算の一部若しくは全て、又は特定のグラフィック演算のハードウェア高速化を実行するグラフィックソフトウェアを実行することができる、1つ以上のグラフィックプロセッサを含んでもよい。いくつかの実施形態では、コントローラ2110は、本明細書に記載されるような動画及び/又は画像を処理し、レンダリングし、フィルタリングし、符号化するための1つ以上の他の構成要素、例えば、様々なタイプの集積回路(IC)、画像信号プロセッサ(ISP)、符号化器/復号器(コーデック)などのうちの1つ以上を含んでもよい。いくつかの実施形態では、コントローラ2110は、少なくとも1つのシステムオンチップ(SOC)を含んでもよい。
【0113】
基地局メモリ2120は、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM(mDDR3などのモバイルバージョンのSDRAM又はLPDDR2などの低電力バージョンのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)などの、任意のタイプのメモリを含んでもよい。いくつかの実施形態では、1つ以上のメモリデバイスは、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などのメモリモジュールを形成するために回路基板に結合されてもよい。代替的に、デバイスは、システムをチップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成で実装する集積回路を搭載してもよい。
【0114】
基地局2100は、無線接続2180を介してデバイス2150と通信して、デバイス2150からセンサ入力を受信し、基地局2100からデバイス2150に圧縮フレーム、スライス、又はタイルを送信するように構成された1つ以上の無線技術インタフェース2130をまた含み得る。いくつかの実施形態では、無線技術インタフェース2130は、デバイス2150と基地局2100との間に高指向性無線リンクを提供する独自の無線通信技術を実装することができる。いくつかの実施形態では、無線通信技術の指向性及び帯域幅は、複数のデバイス2150が同時に基地局2100と通信することをサポートすることができ、それにより、複数のユーザが共同設置環境において同時にシステム2000を使用することを可能にし得る。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0115】
いくつかの実施形態では、基地局2100は、フレームをレンダリングしてデバイス2150に送信し、デバイス2150から受信したセンサ2160の入力に少なくとも部分的に基づいて、3D仮想ビューをユーザのために提供するように構成されていてもよい。いくつかの実施形態では、仮想ビューは、ユーザの環境の高画質、高解像度の動画をリアルタイムでキャプチャし表示する、1つ以上のシーンカメラ(例えば、RGB(可視光)動画カメラ)によってキャプチャされた動画に基づいて、ユーザの環境内の実際のオブジェクトのレンダリングを含む、ユーザの環境のレンダリングを含むことができる。いくつかの実施形態では、仮想ビューはまた、基地局2100によってレンダリングされ、ユーザの現実環境の投影された3Dビューと合成された仮想コンテンツ(例えば、仮想オブジェクト、現実オブジェクトの仮想タグ、ユーザのアバターなど)を含んでもよい。
【0116】
図9及び10には示されていないが、いくつかの実施形態では、VR/MRシステム2000は、1つ以上の他の構成要素を含んでいてもよい。例えば、システムは、仮想コンテンツと対話するために3D仮想ビュー内の仮想カーソルを移動させるためのカーソル制御デバイス(例えば、マウス)を含んでもよい。
図9及び
図10は、単一のデバイス2150を示すが、いくつかの実施形態では、VR/MRシステム2000は、複数のデバイス2150が同時に基地局2100と通信することをサポートすることができ、それにより、複数のユーザが共同設置環境において同時にシステムを使用することを可能にし得る。
【0117】
本明細書で説明される方法は、異なる実施形態では、ソフトウェア、ハードウェア、又はそれらの組み合わせの形態で実行されてもよい。加えて、方法のブロックの順序は変更されてもよく、様々な要素の追加、再順序付け、組み合わせ、省略、修正などが行われてもよい。本開示の利益を得る当業者にとって明白であるような、様々な修正及び変更が行われてもよい。本明細書に記載される各種実施形態は、例示的なものであり、限定的なものではない。多くの変形、修正、追加、及び改善が可能である。したがって、単一の事例として本明細書に記載される構成要素について、複数の事例を提供することができる。種々の構成要素、動作及びデータストアの間の境界は、ある程度任意のものであり、特定の動作は、特定の例示的な構成の文脈において示される。機能性の他の割り当てが想定され、以下に続く請求項の範囲内に含まれてもよい。最後に、例示的な構成における別個の構成要素として提示された構造及び機能性は、組み合わされた構造又は構成要素として実施されてもよい。それらの及び他の変形、修正、追加、及び改善は、以下に続く請求項で定義されるように、実施形態の範囲内に含まれてもよい。