(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024056936
(43)【公開日】2024-04-23
(54)【発明の名称】動画符号化システム
(51)【国際特許分類】
H04N 19/63 20140101AFI20240416BHJP
【FI】
H04N19/63
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024022596
(22)【出願日】2024-02-19
(62)【分割の表示】P 2022176236の分割
【原出願日】2019-06-27
(31)【優先権主張番号】62/691,423
(32)【優先日】2018-06-28
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100121979
【弁理士】
【氏名又は名称】岩崎 吉信
(72)【発明者】
【氏名】チョウ ジム シー
(72)【発明者】
【氏名】シスマス ソリン シー
(57)【要約】
【課題】動画符号化システムの改良技術を提供する。
【解決手段】画素データが符号化前に周波数帯域(複数)に分解される動画符号化システム。周波数帯域はブロックに編成され、ブロックベースの符号化器に提供される。符号化された周波数データは、パケット化されて受信デバイスに送信される。受信デバイス上で、符号化されたデータは復号され、周波数帯域を復元する。次いで、周波数帯域上でウェーブレット合成を実行して、表示する画素データを再構成する。システムは、1つ以上の符号化器を使用してフレームの一部(タイル又はスライス)を符号化し、符号化された部分を準備でき次第送信してもよい。プレフィルタ構成要素は、ウェーブレット変換の前に画素データに対してレンズワープを実行することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサを備えるウェーブレット変換構成要素であって、前記1つ以上のプロセッサが、
レンダリングされた動画フレームからの画素ブロックにウェーブレット変換を適用して、前記画素ブロックを複数の周波数帯域に分解し、
前記画素ブロックからの前記周波数帯域を、前記周波数帯域のうちの1つの帯域の周波数データをそれぞれ含む複数の周波数ブロックに編成する、
ように構成されているウェーブレット変換構成要素と、
少なくとも1つのブロックベースの符号化器であって、
符号化技術を前記周波数ブロックに適用して前記周波数ブロック内の前記周波数データを圧縮し、
前記圧縮された周波数データを無線インタフェースに提供し無線接続を介して受信デバイスに伝達する、
ように構成されている少なくとも1つのブロックベースの符号化器と、
を備える、動画符号化システム。
【請求項2】
前記ウェーブレット変換の前に、前記動画フレームからの前記画素ブロックをプレフィルタリングするように構成された1つ以上のプロセッサを含むプレフィルタ構成要素を更に備える、請求項1に記載の動画符号化システム。
【請求項3】
前記画素ブロックをプレフィルタリングするために、前記プレフィルタ構成要素が前記動画フレームにレンズワープフィルタを適用して、前記受信デバイスのレンズによって導入された歪みを補正する、請求項2に記載の動画符号化システム。
【請求項4】
前記画素ブロックをプレフィルタリングするために、前記プレフィルタ構成要素が前記動画フレームの周辺領域に少なくとも1つのフィルタを適用して、前記動画フレームの中心窩領域内でより高い解像度を維持しつつ、前記周辺領域の解像度を低減させる、請求項2に記載の動画符号化システム。
【請求項5】
前記レンダリングされた映像フレームが複数のスライスに分割されて、各スライスは少なくとも1行の画素ブロックを含み、前記動画符号化システムは、反復的に、
前記レンダリングされた動画フレームのスライスを取得し、
前記ウェーブレット変換を前記スライス内の前記画素ブロックに適用して前記画素ブロックを複数の周波数帯域に分解し、前記周波数帯域のうちの1つの帯域の周波数データをそれぞれ含む複数の周波数ブロックに編成し、
前記符号化技術を前記スライスからの前記周波数ブロックに適用して前記周波数ブロック内の前記周波数データを圧縮し、
前記スライスからの前記圧縮された周波数データを前記無線接続を介して前記少なくとも1つの受信デバイスに伝達するために前記無線インタフェースに提供する、
ように実行するように構成されている、請求項1に記載の動画符号化システム。
【請求項6】
前記レンダリングされた動画フレームが複数のスライスに分割され、各スライスが2つ以上のタイルを含み、各タイルは2つ以上の画素ブロックを含み、前記動画符号化システムが、少なくとも2つのブロックベースの符号化器を含み、各符号化器は、各スライスからの前記タイルのサブセットからの前記周波数ブロックに前記符号化技術を適用して、前記タイルの前記それぞれのサブセットからの前記周波数ブロック内の前記周波数データを圧縮するように構成されている、請求項1に記載の動画符号化システム。
【請求項7】
各符号化器が、そのそれぞれのサブセット内の前記タイル間に前記周波数帯域の前記周波数ブロックの処理を多重化して、各周波数帯域の周波数ブロックの前記処理間に複数の時間単位を可能にするように構成されている、請求項6に記載の動画符号化システム。
【請求項8】
前記ウェーブレット変換が、前記動画フレームからの各画素ブロックに適用される2レベルのウェーブレット分解である、請求項1に記載の動画符号化システム。
【請求項9】
前記ウェーブレット変換が、前記動画フレームからの各画素ブロックに適用されるNレベルのウェーブレット分解であり、Nは調整可能である、請求項1に記載の動画符号化システム。
【請求項10】
前記ウェーブレット変換を適用することが、前記ウェーブレット分解の1つ以上のウェーブレット係数にコアリング関数を適用することを含む、請求項1に記載の動画符号化システム。
【請求項11】
前記画素ブロックが128x128の画素ブロックであり、前記ウェーブレット変換が、それぞれの画素ブロックを、7つの異なる周波数帯域を表す16個の32x32の周波数データブロックに分解する、請求項1に記載の動画符号化システム。
【請求項12】
1つ以上のプロセッサが、
レンダリングされた動画フレームからの画素ブロックにウェーブレット変換を適用して、前記画素ブロックを複数の周波数帯域に分解することと、
前記画素ブロックからの前記周波数帯域を、前記周波数帯域のうちの1つの帯域の周波数データをそれぞれ含む複数の周波数ブロックに編成することと、
符号化技術を前記周波数ブロックに適用して前記周波数ブロック内の前記周波数データを圧縮することと、
前記圧縮された周波数データを無線接続を介して受信デバイスに送信することと、
を実装するように構成されること、
を含む、方法。
【請求項13】
前記ウェーブレット変換を適用する前に、前記動画フレームからの前記画素ブロックをプレフィルタリングすることを更に含み、
プレフィルタリングすることが、
レンズワープフィルタを前記動画フレームに適用して前記受信デバイスのレンズによって導入される歪みを補正すること、又は、
前記動画フレームの周辺領域に少なくとも1つのフィルタを適用して前記動画フレームの中心窩領域内でより高い解像度を維持しつつ、前記周辺領域内の解像度を低減させること、
のうちの1つ以上を含む、請求項12に記載の方法。
【請求項14】
前記動画フレームが複数のスライスに分割され、各スライスは少なくとも1行の画素ブロックを含み、前記1つ以上のプロセッサが、前記動画フレームの各スライスに対して、ウェーブレット変換を前記適用することと、前記編成することと、符号化技術を前記適用することと、前記送信することと、を実行する、請求項12に記載の方法。
【請求項15】
前記動画フレームが複数のスライスに分割され、各スライスは2つ以上のタイルを含み、各タイルは2つ以上の画素ブロックを含み、前記1つ以上のプロセッサが、前記動画フレームの各タイルに対して、ウェーブレット変換を前記適用することと、前記編成することと、符号化技術を前記適用することと、前記送信することと、を実行する、請求項12に記載の方法。
【請求項16】
符号化技術を前記適用することが、少なくとも2つのブロックベースの符号化器によって実行され、各符号化器は、各スライスからの前記タイルのサブセットからの前記周波数ブロックに前記符号化技術を適用して、前記タイルの前記それぞれのサブセットからの前記周波数ブロック内の前記周波数データを圧縮し、前記方法は、各符号化器が前記周波数帯域の前記周波数ブロックの前記処理を前記タイルのそれぞれのサブセット間で多重化して、各周波数帯域の周波数ブロックの前記処理間に複数の時間単位を可能にすることを更に含む、請求項15に記載の方法。
【請求項17】
前記ウェーブレット変換が、前記動画フレームからの各画素ブロックに適用される2レベルウェーブレット分解である、請求項12に記載の方法。
【請求項18】
1つ以上のプロセッサ及びディスプレイサブシステムを備えるデバイスと、
レンダリングされた動画フレームからの画素データのブロックにウェーブレット変換を適用して、前記画素データを複数の周波数帯域に分解し、前記周波数帯域を複数の周波数ブロックに編成するように構成された1つ以上のプロセッサと、
前記周波数帯域を圧縮するために、符号化技術を前記周波数ブロックに適用するように構成された少なくとも1つのブロックベースの符号化器と、
前記圧縮された周波数帯域を、無線接続を介して前記デバイスに送信するように構成された無線インタフェースと、
を含む基地局と、を備え、
前記デバイスの前記1つ以上のプロセッサは、
前記基地局から受信した前記圧縮された周波数帯域を展開し、
前記展開した周波数帯域上でウェーブレット合成を実行して前記動画フレームの前記画素データを再構成し、
前記再構成された画素データを、前記ディスプレイサブシステムに提供して表示するように構成されている、
システム。
【請求項19】
前記基地局の前記1つ以上のプロセッサは、前記ウェーブレット変換の前に前記動画フレームの前記画素データをプレフィルタリングするように更に構成され、前記画素データをプレフィルタリングするために、前記1つ以上のプロセッサは、前記動画フレームにレンズワープフィルタを適用して、前記デバイスのレンズによって導入された歪みを補正する、請求項18に記載のシステム。
【請求項20】
前記デバイスが、ヘッドマウントディスプレイ(HMD)である、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画符号化システムに関する。
【背景技術】
【0002】
仮想現実(Virtual reality、VR)は、ユーザが没入型人工環境を体験及び/又はそれと相互作用して、それにより、ユーザが物理的にその環境内にいるかのように感じることを可能にする。例えば、仮想現実システムは、奥行きの錯覚を作り出すために、立体的シーンをユーザに表示してもよく、コンピュータは、シーンコンテンツをリアルタイムで調整して、ユーザがシーン内で移動する錯覚を提供することができる。ユーザが仮想現実システムを介して画像を見る場合、ユーザは、このように一人称の視点からシーン内で移動しているかのように感じることができる。同様に、複合現実(mixed reality、MR)は、コンピュータ生成情報(仮想コンテンツと呼ばれる)を実世界画像又は実世界視野と組み合わせてユーザの世界に対する視野を増強又はそのコンテンツを追加する。あるいは、複合現実は実世界のオブジェクトの仮想表現を3次元(3D)仮想世界のビューに組み合わせる。したがって、仮想現実のシミュレートされた環境及び/又は複合現実の複合環境を利用して、複数のアプリケーションの相互作用型ユーザエクスペリエンスを提供することができる。
【発明の概要】
【0003】
高解像度動画ソースを、通信リンク(例えば、無線リンク)を介してデバイスに送信して、復号し、表示するために、低レイテンシで符号化することができる動画符号化システムの各種実施形態が記載される。動画符号化システムの実施形態はまた、デバイスに送信される符号化動画のグレースフルデグラデーションを提供し、通信リンクのチャネル容量の変化などの変動する条件下で、所望のフレームレートを維持することができる。動画符号化システムの例示的な適用は、仮想コンテンツを含む動画フレームがレンダリングされ、符号化され、基地局によってデバイス(例えば、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、又はユーザによって装着され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのヘッドマウントディスプレイ(head-mounted display、HMD)に送信されて復号され表示される、仮想又は複合現実システムにおける。
【0004】
様々な方法及び装置が、無線リンクを介して目標フレームレートを維持し、フレームのレンダリング、伝送、及び表示におけるレイテンシを最小化するために、動画符号化システムによって実施され得る。加えて、方法及び装置は、通信リンクのチャネル容量の変化などの変動する条件下で所望のフレームレートを維持するために、デバイスに送信された符号化動画のグレースフルデグラデーションを提供することができる。
【0005】
いくつかの実施形態では、動画符号化システムは、符号化する前の画素データに対してウェーブレット変換を実行し、画素データを周波数帯域に分解することができる。次いで、周波数帯域は、ブロックベースの符号化器に提供されるブロックに編成され、符号化/圧縮される。符号化された周波数データは、次いで、無線インタフェースに送られ、符号化された周波数データはパケット化され、パケットは受信デバイスに送信される。受信デバイス上で、符号化されたデータは、パケット復号され、ブロックベースの復号器を通過して、周波数帯域を復元する。次いで、復元された周波数帯域でウェーブレット合成を実行して、表示する画素データを再構成する。
【0006】
いくつかの実施形態では、動画符号化システムは、スライスベースのレンダリング、符号化、及び伝達を実行することができる。フレーム全体を基地局内でレンダリングして符号化し、レンダリングされたフレームをデバイスに送信するのではなく、基地局は、フレームの一部又は部分(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを用意できた都度デバイスに送信してもよい。スライスベースのレンダリング及び符号化は、レイテンシを低減するのに役立ち得、バッファに必要とされるメモリの量もまた低減することができ、これにより、チップ(単数又は複数)又はプロセッサ(単数又は複数)上のメモリの接地面積、並びに必要電力を低減する。
【0007】
いくつかの実施形態では、動画符号化システムは、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスは、複数のタイル(例えば、4つのタイル)に分割されてもよく、基地局は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイスに送信してもよい。
【0008】
いくつかの実施形態では、動画符号化システムは、単一の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルを処理することができる。しかしながら、いくつかの実施形態では、動画符号化システムは、複数の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。例えば、いくつかの実施形態では、各スライスは4つのタイルに分割されてもよく、2つの符号化器は、各スライスからの2つのタイル上で動作してもよい。各符号化器は、異なる周波数帯域からのブロックの処理をタイルの間で多重化して、同じ周波数帯域からのブロックの処理の間に複数の時間単位を可能としてもよい。ブロックの処理をタイル間で多重化することにより、周波数帯域内のブロック間の依存関係に適切に対処することができる。
【0009】
いくつかの実施形態では、動画符号化システムは、ウェーブレット変換の前にフレーム内で画素データのプレフィルタリングを実行することができる。いくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープ機能を実行することを含んでもよい。レンズワープは、画像が閲覧されるデバイス(例えばHMD)のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイスで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、デバイス上でレンズワープフィルタリングを実行することと対照的である。
【0010】
いくつかの実施形態では、プレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングを含んでもよい。この方法では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。いくつかの実施形態では、周辺領域(すなわち、中心窩領域の外側のフレームの部分)は、周辺領域における解像度を低減するためにプレフィルタリングされてもよい。
【図面の簡単な説明】
【0011】
【
図1】少なくともいくつかの実施形態に係る、符号化前にウェーブレット変換を使用して画素データを周波数帯域に分解する動画符号化システムを示すブロック図である。
【
図2】少なくともいくつかの実施形態に係る、フレームからのタイルを並行して処理する複数の符号化器を含む動画符号化システムを示す。
【
図3A】少なくともいくつかの実施形態に係る、スライス及びタイルに分割された例示的なフレームを示す。
【
図3B】少なくともいくつかの実施形態に係る、ブロックに分割されたタイルの例を示す。
【
図3C】少なくともいくつかの実施形態に係る、符号化前に、画素データを記憶して周波数帯域データを生成する画素ブロックのウェーブレット変換を実行することを示す。
【
図4】少なくともいくつかの実施形態に係る、
図1及び
図2に示すような動画符号化システムを含むVR/MRシステムの動作方法の高レベルフローチャートである。
【
図5】少なくともいくつかの実施形態に係る、
図1に示すような動画符号化システムの動作方法のフローチャートである。
【
図6】少なくともいくつかの実施形態に係る、
図2に示すような動画符号化システムの動作方法のフローチャートである。
【
図7】少なくともいくつかの実施形態に係る、動画符号化システムを実装することができる例示的なVR/MRシステムを示す。
【
図8】少なくともいくつかの実施形態に係る、
図7に示すような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】
いくつかの実施形態では、動画符号化システムは、符号化する前の符号画素データに対してウェーブレット変換を実行し、画素データを周波数帯域に分解することができる。次いで、周波数帯域は、ブロックベースの符号化器に提供されるブロックに編成され、符号化/圧縮される。一例として、フレームは128x128のブロックに分割され、2レベルのウェーブレット分解を128x128のブロックのそれぞれに適用して、32x32の周波数データのブロックを16個生成することができる。16個の32x32の周波数データブロックは、7つの周波数帯域を表しており、次いで、符号化器(例えば、高効率動画符号化(High Efficiency Video Coding、HEVC)符号化器)に送信され、符号化されてもよい。符号化された周波数データは、次いで、無線インタフェースに送られ、符号化された周波数データはパケット化され、パケットは受信デバイス(例えば、HMD)に送信される。受信デバイス上で、符号化されたデータは、パケット復号され、ブロックベースの復号器を通過して、周波数帯域を復元する。次いで、復元された周波数帯域でウェーブレット合成を実行して、表示する画素データを再構成する。
【0024】
ウェーブレット変換は、動画フレームからの画素ブロックそれぞれに適用される2レベルのウェーブレット分解である実施形態が一般に記載されるが、様々な実施形態では、ウェーブレット分解は、任意の数Nのレベル(例えば、1つのレベル、2つのレベル、3つのレベル、4つのレベルなど)であってよく、レベルの数Nは、符号化された画像の品質と符号化されるブロックの複雑度とをトレードオフするように調整されてもよい。
【0025】
いくつかの実施形態では、ウェーブレット分解内のウェーブレット係数のそれぞれにコアリング(coring)関数を適用することができる。「Coring」は、係数のソフト閾値処理(soft-thresholding)を指し、ノイズを除去するのに有効である。これは、重要性の高い領域と、利用可能帯域幅との対比において、適応的に行うことができる。
【0026】
いくつかの実施形態では、動画符号化システムは、スライスベースのレンダリング、符号化、及び伝達を実行することができる。フレーム全体をレンダリング、符号化、及び送信することは、各フレームが完了し、記憶され、次いでVR/MRシステムの次のステージに送信される必要があるため、レイテンシ及びメモリへの影響を有し得る。スライスベースのレンダリングでは、フレーム全体を基地局内でレンダリングして符号化し、レンダリングされたフレームをデバイスに送信するのではなく、基地局は、フレームの一部(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを準備でき次第デバイスに送信してもよい。スライスは、例えば、128x128ブロック行、又は2つ以上のブロック行であってもよい。スライスベースのレンダリング及び符号化は、レイテンシを低減するのに役立ち得、バッファに必要とされるメモリの量もまた低減することができ、これにより、チップ(単数又は複数)又はプロセッサ(単数又は複数)上のメモリの接地面積、並びに必要電力を低減することができる。
【0027】
いくつかの実施形態では、動画符号化システムは、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスは、複数のタイル(例えば、4つのタイル)に分割されてもよく、基地局は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイスに送信してもよい。
【0028】
いくつかの実施形態では、動画符号化システムは、単一の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルを処理することができる。しかしながら、いくつかの実施形態では、動画符号化システムは、複数の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。例えば、いくつかの実施形態では、各スライスは4つのタイルに分割されてもよく、各タイルは複数の128x128ブロックを含み、2つの符号化器(e0及びe1)は、各スライスからの2つのタイルで動作してもよい(例えば、e0はt0及びt1で動作し、e1は、t2及びt3で動作する)。各符号化器は、16の時間単位を同じ周波数帯域からのブロックの処理の間で可能とするように、異なる周波数帯域からのブロックの処理を2つのタイルの間で多重化してもよい。ブロックの処理を2つのタイル間で多重化することにより、周波数帯域のブロック間の依存関係に適切に対処することができる。各スライスが4つのタイルに分割され、2つの符号化器が各スライスからのそれぞれのタイル上で動作する実施形態が記載されているが、いくつかの実施形態では、スライスをより多くのタイル(例えば、6つ又は8つのタイル)に分割することができ、いくつかの実施形態では、より多くの符号化器(例えば、3つ又は4つの符号化器)が使用されてもよい。
【0029】
いくつかの実施形態では、動画符号化システムは、ウェーブレット変換の前にフレーム内で画素データのプレフィルタリングを実行することができる。プレフィルタリングは、例えば、フレームのウェーブレット変換、符号化、及び無線リンクを介してデバイスへの送信を実行する前に、基地局によってレンダリングされるフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。
【0030】
デバイスがHMDであるいくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープ(lens warp)を実行することを含んでもよい。レンズワープは、画像が閲覧されるHMD上のレンズによって導入される画像の歪みを補正するために実施され、それによって画像の品質を改善する。いくつかの実施形態では、HMDは、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続を介してレンズワープデータを基地局に提供することができる。次いで、基地局は、そのHMDに関するレンズワープデータに基づいて、フレーム上でレンズワープを実行することができる。従来のVR/MRシステムでは、レンズワープは、復号後表示前にHMDで実行される。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にHMDで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、HMD上でレンズワープフィルタリングを実行することと対照的である。
【0031】
いくつかの実施形態では、プレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングを含んでもよい。この方法では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。人間の眼は、周辺領域よりも中心窩領域においてより高い解像度を知覚することができる。したがって、中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。いくつかの実施形態では、周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。いくつかの実施形態では、周辺領域に適用されるフィルタリングの量は、フレームの周辺に向かって伸びつつ増加してもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0032】
図1は、少なくともいくつかの実施形態に係る、符号化前のウェーブレット変換を使用して画素データを周波数帯域に分解する動画符号化システム120を示すブロック図である。VR/MRシステム10は、少なくとも1つのデバイス150(例えば、パッド若しくはタブレットデバイス、スマートフォン、又は、ユーザによって装着され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのHMD)及びコンピューティングデバイス100(本明細書では基地局と呼ばれる)を含んでもよい。基地局100は、仮想コンテンツを含むVR又はMRフレームをレンダリングし、フレームを符号化し、デバイス150によって復号され表示されるように、符号化されたフレームを無線接続180を介してデバイス150に送信する。
【0033】
いくつかの実施形態では、HMD150は、ユーザ190の環境に関する情報(例えば、動画、深度情報、照明情報など)、及びユーザ190に関する情報(例えば、ユーザの表情、眼の動き、視線の方向、手のジェスチャなど)を収集するセンサ160を含んでもよい。デバイス150は、センサ160によって収集された情報の少なくとも一部を、無線接続180を介して基地局100に送信してもよい。基地局100は、センサ160から取得された様々な情報に少なくとも部分的に基づいて、仮想コンテンツを含むデバイス150によって表示するためのフレームをレンダリングし、フレームを符号化し、符号化されたフレームを、復号しユーザに対し表示するために、無線接続180を介してデバイス150に送信することができる。
【0034】
基地局100及びデバイス150は、基地局100及びデバイス150が無線接続180を介してデータを通信し交換することを可能にする無線通信技術を実装してもよい。いくつかの実施形態では、無線接続180は、デバイス150と基地局100との間に高指向性無線リンクを提供する独自の無線通信技術に従って実装されてもよい。しかしながら、いくつかの実施形態では、他の商用の(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0035】
VR/MRシステム10内のデバイス150と基地局100との間の無線接続180に関して考慮される主要な制約は、帯域幅及びレイテンシを含む。例えば、いくつかの実施形態では、目標は、高解像度の広角視野(FOV)仮想表示を、高品質のVR/MR視野をユーザに提供するフレームレートでユーザに提供することである。別の目標は、動画フレームがデバイスによってキャプチャされた時間と、動画フレームに基づいてレンダリングされたVR/MRフレームがデバイスにより表示される時間との間のレイテンシを最小化することである。
【0036】
基地局100は、本明細書に記載されるような動画及び/又は画像をレンダリング、フィルタリング、符号化、並びに送信するための様々なハードウェア構成要素、例えば、様々なタイプのプロセッサ、集積回路(IC)、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、画像信号プロセッサ(ISP)、符号化器/復号器(コーデック)などを含んでもよい。基地局100は、GPUレンダリング110構成要素、無線インタフェース130構成要素、並びに無線接続180を介して目標フレームレートを維持し、フレームレンダリング、符号化、伝達、及び表示におけるレイテンシを最小化するのに役立ち得る様々な方法を実装する1つ以上のハードウェア構成要素を含み得る、動画符号化システム120を含み得るが、これらに限定されない。動画符号化システム120は、プレフィルタ122構成要素(例えば、Nチャネルのフィルタバンク)、ウェーブレット変換124構成要素、及び符号化器126構成要素を含み得るが、これらに限定されない。
【0037】
GPUレンダリング110は、センサ160から取得された様々な情報に少なくとも部分的に基づいて、仮想コンテンツを含むデバイス150によって表示するためのフレームをレンダリングすることができる1つ以上のハードウェア構成要素を含み得る。
【0038】
いくつかの実施形態では、動画符号化システム120は、ウェーブレット変換124を実行する前にレンダリングされたフレーム内の画素データをプレフィルタリング122する1つ以上のハードウェア構成要素を含んでもよい。プレフィルタ122は、例えば、フレームのウェーブレット変換124、符号化126、無線接続180を介してデバイス150への送信を実行する前に、基地局100上でレンダリングされたフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線接続180上でのレイテンシ及び帯域幅の使用を低減することができる。
【0039】
いくつかの実施形態では、プレフィルタ122は、ウェーブレット変換124の前に、基地局100上のフレームに対してレンズワープを実行してもよい。レンズワープは、画像が閲覧されるデバイス上のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。いくつかの実施形態では、デバイス150は、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続180を介してレンズワープデータを基地局100に提供することができる。次いで、動画符号化システム120のプレフィルタ122構成要素は、そのデバイス150のレンズワープデータに基づいてフレーム上でレンズワープを実行することができる。従来のVR/MRシステムでは、レンズワープは、復号後表示前にデバイス150上で実行される。プレフィルタ122ステージにおいて基地局100上でレンズワープを実行することによって、ウェーブレット変換124及び符号化126を実行する前にフレームの解像度を低減することができる。これにより圧縮の改善に役立ち得、無線接続180上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイス150で行うのではなく、プレフィルタ122ステージにおいて基地局100で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化126の前に解像度を低減するために基地局100でフィルタリングを実行し、次いで、デバイス150上でレンズワープフィルタリングを実行することと対照的である。
【0040】
いくつかの実施形態では、プレフィルタ122はまた、中心窩領域内ではより高い解像度を維持しつつ、周辺領域内の解像度を低減する、1つ以上のフィルタを適用してもよい。この方法では、デバイス150から取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。人間の眼は、周辺領域よりも中心窩領域においてより高い解像度を知覚することができる。したがって、中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。いくつかの実施形態では、周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。いくつかの実施形態では、周辺領域に適用されるフィルタリングの量は、フレームの周辺に向かって伸びつつ増加してもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0041】
いくつかの実施形態では、動画符号化システム120のウェーブレット変換124構成要素は、符号化する前の画素データに対してウェーブレット変換を実行し、画素データを周波数帯域に分解する、1つ以上のハードウェア構成要素(例えば、Nチャネルのフィルタバンク)を含んでもよい。次いで、周波数帯域は、ブロックベースの符号化器126に提供されるブロックに編成され、符号化/圧縮される。一例として、
図3A~3Cに示されるように、フレームは128x128のブロックに分割され、2レベルのウェーブレット分解を128x128のブロックのそれぞれに適用して、32x32のブロックを16個生成することができる。16個の32x32の周波数データブロックは、7つの周波数帯域を表しており、次いで、ブロックベースの符号化器(例えば、高効率動画符号化(HEVC)符号化器)126に送信され、符号化されてもよい。符号化された周波数データは、次いで、1つ以上のハードウェア構成要素を実装した無線インタフェース130に送信される。これにより、データはパケット化され、パケットは無線接続180を介してデバイス150に送信される。
【0042】
デバイス150は、本明細書に記載されるような動画及び/又は画像を復号し表示するための様々なハードウェア構成要素、例えば、様々なタイプのプロセッサ、集積回路(IC)、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、画像信号プロセッサ(ISP)、符号化器/復号器(コーデック)などを含んでもよい。デバイス150は、無線インタフェース152、復号器154構成要素(例えば、高効率動画符号化(HEVC)復号器)、ウェーブレット合成156構成要素、及びディスプレイ158構成要素を含み得るが、これらに限定されない。デバイス150上で、無線インタフェース152は、基地局100によって無線接続180を介して送信されたパケットを受信する。符号化されたデータは、パケット復号され、ブロックベースの復号器154(例えば、高効率動画符号化(HEVC)復号器)を通過して、周波数帯域を復元する。次いで、ウェーブレット合成156が復元された周波数データ上で実行されて、ディスプレイ158のための画素データを再構成する。
【0043】
いくつかの実施形態では、動画符号化システム120は、スライスベースのレンダリング、符号化、及び伝達を実行することができる。フレーム全体をレンダリング、符号化、及び送信することは、各フレームが完了し、記憶され、次いでVR/MRシステム10の次のステージに送信される必要があるため、レイテンシ及びメモリへの影響を有し得る。スライスベースのレンダリングでは、フレーム全体を基地局100内でレンダリングして符号化し、レンダリングされたフレームをデバイス150に送信するのではなく、基地局100は、フレームの一部(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを準備でき次第デバイス150に送信してもよい。スライスは、例えば、128x128のブロック行であってもよい。スライスベースのレンダリング及び符号化は、レイテンシを低減するのに役立ち得、バッファに必要とされるメモリの量もまた低減することができ、これにより、チップ(単数又は複数)又はプロセッサ(単数又は複数)上のメモリの接地面積、並びに必要電力を低減する。
【0044】
いくつかの実施形態では、動画符号化システム120は、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスは、複数のタイル(例えば、4つのタイル)に分割されてもよく、基地局100は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイス150に送信してもよい。
【0045】
いくつかの実施形態では、動画符号化システム120は、単一の符号器126を使用して、タイルベースのレンダリング、符号化、及び伝達を実行し、各スライスからのタイルを処理することができる。しかしながら、いくつかの実施形態では、動画符号化システム120は、複数の符号化器126を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。
図2は、少なくともいくつかの実施形態に係る、レンダリングされたフレームからのタイルを並行して処理する複数の符号化器(この例では2つの符号化器226A及び226B)を含む動画符号化システム220を示す。
【0046】
基地局200のGPUレンダリング210構成要素は、ディスプレイのためのフレーム(又はフレームのスライス)をレンダリングする1つ以上のGPU及び/又は他の構成要素を含み得る。フレームは、例えば
図3Aに示すように、スライスに分割されてもよい。
図3Aに示すように、各スライスは、複数のタイル(この例では4つ)に分割されてもよく、各タイルは複数のブロックを含む。
図3Bは、4個の128x128のブロックを含む例示的なタイルを示す。しかしながら、いくつかの実施形態では、他のサイズ(例えば、64x64、32x32など)のブロックが使用されてもよく、タイルは、より多い又は、より少ないブロックを含んでもよい。
【0047】
動画符号化システム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つの)タイルを処理する。
【0048】
2つの符号化器226A及び226Bは、各スライスからの2つのタイル上で動作してもよい(例えば、符号化器226Aはタイル0及びタイル1で動作し、符号化器226Bはタイル2及びタイル3上で動作する)。各符号化器226は、16の時間単位を同じ周波数帯域からのブロックの処理の間で可能とするように、異なる周波数帯域(すなわち、
図3Cに例示される32x32のブロック16個)からのブロックの処理を2つのタイルの間で多重化してもよい。ブロックの処理を2つのタイル間で多重化することにより、同じ周波数帯域におけるブロック間の依存関係に適切に対処することができる。
【0049】
各スライスが4つのタイルに分割され、2つの符号化器が各スライスからそれぞれのタイル上で動作する実施形態が記載されているが、いくつかの実施形態では、スライスをより多くのタイル(例えば、6つ又は8つのタイル)に分割することができ、いくつかの実施形態では、より多くの符号化器(例えば、3つ、4つ、又はそれ以上の符号化器)を使用することができる。
【0050】
図3Cは、少なくともいくつかの実施形態に係る、符号化前に、画素データを記憶して周波数帯域データを生成する画素ブロックのウェーブレット変換を実行することを示す。この実施例では、ウェーブレット変換324構成要素によって2レベルウェーブレット分解が128x128の画素ブロック300に適用されて、7つの周波数帯域を表す周波数データである16個の32x32のブロック302を生成する。次いで、周波数ブロック302は、符号化のために符号化器326に提供される。例えば、周波数ブロック302は、ウェーブレット変換324構成要素によってバッファに書き込まれ、符号化器326構成要素によってバッファから読み出されてもよい。
【0051】
周波数ブロック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)が生成されている)ことを示す。
【0052】
図3Cに示すように画素データを周波数帯域に分解することにより、周波数帯域は、符号化器326によって別個のストリームとしてバッファリングされ、処理されることが可能となる。周波数帯域を別個のストリームとして処理することにより、符号化器326の構成要素は、独立したストリームの処理を多重化することが可能となる。HEVC符号化などのブロックベースの符号化方法では、ブロック(符号化ツリーユニット(CTU)と呼ばれる)は、ブロック処理パイプラインにおいて複数のステージで処理される。2つ以上のブロックは、所与のクロックサイクルにおいてパイプラインの異なるステージにあってもよく、ブロックは、クロックのサイクルが進むにつれてパイプラインを通って移動する。所与のブロックの処理は、以前に処理された1つ以上の近隣ブロック、例えば、所与のブロックの上の行の1つ以上のブロック、及び/又は、所与のブロックの左側のブロックへの依存関係を有し得る。周波数帯域データのストリームの処理を多重化することによって、符号化器326は、所与のストリーム内のブロックの処理を間をあけて配置し、それにより、所与のブロックが依存関係を有する近隣ブロックを処理するために追加のクロックサイクルを提供する。例えば、所与のブロックが以前に処理された近隣ブロックに依存するステージに到達したときに、所与のブロックの左側のブロックは、パイプライン内で所与のブロックに数ステージ先行するブロックであってもよい。これにより、符号化器326は、以前に処理されたブロックに対する依存関係により適切に対処可能となり、隣接ブロックに依存するステージにおける所与のブロックの処理を行前に、パイプライン内の近隣ブロックの処理の完了を待つ必要性を低減又は排除することができる。
【0053】
加えて、
図3Cに示すように画素データを周波数帯域に分解することにより、符号化器326及び無線インタフェースによって周波数帯域の優先が可能となる。典型的に、画像及び動画送信では、より低い周波数がより重要である一方、より高い周波数の重要性は薄い。より高い周波数は、通常、画像の詳細に対応し、したがって、優先度は、より低いと見なすことができる。より高い周波数帯域には、画像内のエネルギーのより小さい割合が含まれる。エネルギーの大部分は、より低い周波数帯域に含まれる。このように、画素データを周波数帯域に分解することにより、データストリームを符号化及び送信するときに符号化器326及び無線インタフェースによって活用され得るデータストリームへの優先順位付けを提供する。例えば、いくつかの実施形態では、異なる圧縮技術を異なる周波数帯域に使用することができ、より低い優先度の帯域により積極的な圧縮を適用し、より高い優先度の帯域にはより控えめな圧縮を適用してもよい。別の例として、周波数帯域の優先順位付けは、VR/MRシステムのグレースフルデグラデーションを提供するのに役立ち得る。無線接続の性能を監視することができ、デバイスからのフィードバックを考慮して、システム全体のパフォーマンスを追跡することができる。何らかの理由でシステムの性能が低下した場合、例えば、無線接続の質が低下し、無線接続の帯域幅容量が閾値を下回る場合、符号化器326及び無線インタフェースは、より低い周波数帯域の1つ以上の符号化及び送信を優先することができ、より低い優先度レベルを割り当てられた1つ以上の周波数レベル、例えば、1つ以上のより高い周波数帯域の符号化及び/若しくは送信を低減又は低下させることができる。
【0054】
上述のように、ウェーブレット変換は、画像を周波数帯域に分解する。いくつかの実施形態では、これは、異なる解像度のディスプレイに同じ信号を送信するために活用されてもよい。一例として、2レベルウェーブレット分解を適用して、7つの周波数帯域に信号を分解することができる。4つの帯域(LLLL、LLLH、LLHL、及びLLHH)が表示パネルに送信される場合、帯域は、より低い視覚品質で元の意図された解像度に再構成されてもよい。代替として、より低い表示解像度を有する表示パネルに好適であり得る1/4の解像度(各寸法において1/2)で再構成されてもよい。
【0055】
図4は、少なくともいくつかの実施形態に係る、
図1及び
図2に示すような動画符号化システムを含むVR/MRシステムの動作方法の高レベルフローチャートである。400で示されるように、デバイスは、無線接続を介して基地局にデータを送信する。410で示されるように、基地局は、デバイスから受信したデータに少なくとも部分的に基づいて、仮想コンテンツを含むフレームをレンダリングする。420で示されるように、基地局は、レンダリングされたデータを圧縮し、圧縮されたデータを無線接続を介してデバイスに送信する。430で示されるように、デバイスは、仮想コンテンツを展開して表示して、ユーザによる閲覧のための3D仮想ビューを生成する。430から400に戻る矢印によって示されるように、この方法は、ユーザがVR/MRシステムを使用している限り継続する。
【0056】
いくつかの実施形態では、フレーム全体を基地局内でレンダリングして符号化し、レンダリングされたフレームをデバイスに送信するのではなく、基地局は、フレームの一部(スライスと呼ばれる)をレンダリングして符号化し、符号化されたスライスを準備でき次第デバイスに送信してもよい。スライスは、例えば、128x128のブロック行であってもよい。いくつかの実施形態では、動画符号化システムは、タイルベースのレンダリング、符号化、及び伝達を実行することができる。タイルベースのレンダリング、符号化、及び伝達において、各スライスはそれぞれ1つ以上のブロックを含む複数のタイル(例えば、それぞれ4個のブロックを含む4つのタイル)に分割されてもよく、基地局は、タイルをレンダリングして符号化し、符号化されたタイルを準備でき次第デバイスに送信してもよい。
【0057】
図5は、少なくともいくつかの実施形態に係る、
図1に示すような動画符号化システムの動作方法のフローチャートである。
図5の方法は、例えば、
図4の420において実行されてもよい。
図5の方法は、スライスベースの符号化及び送信が実行されていると仮定する。しかしながら、いくつかの実施形態では、タイルベースの符号化及び送信が実行されてもよい。
【0058】
510で示されるように、プレフィルタ構成要素は、フレームのスライス内の画素ブロックにレンズワープ及び/又は中心窩フィルタを適用する。いくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープを実行することを含んでもよい。レンズワープは、画像が閲覧されるデバイス上のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。いくつかの実施形態では、デバイスは、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続を介してレンズワープデータを基地局に提供することができる。次いで、基地局は、そのデバイスのレンズワープデータに基づいて、フレーム上でレンズワープを実行することができる。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイスで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、デバイス上でレンズワープフィルタリングを実行することと対照的である。
【0059】
いくつかの実施形態では、510でのプレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングもまた含んでもよい。いくつかの実施形態では、デバイスから取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0060】
520で示されるように、ウェーブレット変換構成要素は、画素ブロックにウェーブレット変換技術を適用して、画素データをN個の(例えば、7つの)周波数帯域に分解する。次いで、周波数帯域は、ブロックベースの符号化器に提供されるブロックに編成され、符号化/圧縮される。一例として、フレームを128x128のブロックに分割することができ、2レベルのウェーブレット分解を各128x128のブロックに適用して、例えば
図3Cに示すように、7つの周波数帯域を表す周波数データの32x32ブロックを16個生成することができる。
【0061】
530で示されるように、符号化器は、符号化技術をブロック内の周波数帯域に適用して、データを圧縮する。符号化器は、例えば、高効率動画符号化(HEVC)符号化器であってもよい。しかしながら、いくつかの実施形態では、他の符号化技術が使用されてもよい。要素520で示されるように画素データを周波数帯域に分解することにより、周波数帯域は、符号化器によって別個のストリームとしてバッファリングされ、処理されることが可能となる。別個のストリームとして周波数帯域を処理することにより、符号化器の構成要素は、独立したストリームの処理を多重化することが可となる。HEVC符号化などのブロックベースの符号化方法では、ブロック(符号化ツリーユニット(CTU)と呼ばれる)は、パイプラインにおいて複数のステージで処理される。2つ以上のブロックは、所与のクロックサイクルにおいてパイプラインの異なるステージにあってもよく、ブロックは、クロックのサイクルが進むにつれてパイプラインを通って移動する。所与のブロックの処理は、以前に処理された1つ以上の近隣ブロック、例えば、所与のブロックの上の行の1つ以上のブロック、及び/又は、所与のブロックの左側のブロックへの依存関係を有し得る。ストリームの処理を多重化することによって、符号化器は、所与のストリーム内のブロックの処理を間をあけて配置し、それにより、所与のブロックが依存関係を有する近隣ブロックを処理するために追加のクロックサイクルを提供する。例えば、所与のブロックが以前に処理された近隣ブロックに依存するステージに到達したときに、所与のブロックの左側のブロックは、パイプライン内で所与のブロックに数ステージ先行するブロックであってもよい。これにより、符号化器は、以前に処理されたブロックに対する依存関係により適切に対処可能となり、隣接ブロックに依存するステージにおける所与のブロックの処理を行う前に、パイプライン内の近隣ブロックの処理の完了を待つ必要性を低減又は排除することができる。
【0062】
540で示されるように、無線インタフェースは、圧縮されたデータをパケット化し、無線接続を介してパケットをデバイスに送信する。
【0063】
要素520で示されるように画素データを周波数帯域に分解することにより、要素530での符号化器及び要素540での無線インタフェースによって周波数帯域の優先が可能となる。典型的に、画像及び動画送信では、より低い周波数がより重要である一方、より高い周波数の重要性は薄い。より高い周波数は、通常、画像の詳細に対応し、したがって、優先度は、より低いと見なすことができる。より高い周波数帯域には、画像内のエネルギーのより小さい割合が含まれる。エネルギーの大部分は、より低い周波数帯域に含まれる。このように、画素データを周波数帯域に分解することにより、データストリームを符号化及び送信するときに符号化器及び無線インタフェースによって活用され得るデータストリームへの優先順位付けを提供する。例えば、いくつかの実施形態では、異なる圧縮技術を異なる周波数帯域に使用することができ、より低い優先度の帯域により積極的な圧縮を適用し、より高い優先度の帯域にはより控えめな圧縮を適用してもよい。別の例として、周波数帯域の優先順位付けは、VR/MRシステムのグレースフルデグラデーションを提供するのに役立ち得る。無線接続の性能を監視することができ、デバイスからのフィードバックを考慮して、システム全体のパフォーマンスを追跡することができる。何らかの理由でシステムの性能が低下した場合、例えば、無線接続の質が低下し、無線接続の帯域幅容量が閾値を下回る場合、符号化器及び無線インタフェースは、より低い周波数帯域の1つ以上の符号化及び送信を優先することができ、より低い優先度レベルを割り当てられた1つ以上の周波数レベル、例えば、1つ以上のより高い周波数帯域の符号化及び/若しくは送信を低減又は低下させることができる。
【0064】
550において、符号化及び送信されるスライスが更に存在する場合、方法は、要素510に戻り、次のスライスを処理する。さもなければ、560において、符号化及び送信されるフレームが更に存在する場合、方法は要素510に戻り、次のフレームの処理を開始する。
【0065】
図6は、少なくともいくつかの実施形態に係る、
図2に示すような動画符号化システムの動作方法のフローチャートである。
図6の方法は、例えば、
図4の420において実行されてもよい。
図6の方法では、動画符号化システムは、複数の符号化器を使用してタイルベースの符号化を実行して、各スライスからのタイルをそれぞれ処理することができる。
【0066】
600で示されるように、レンダリングエンジンは、複数のタイル(この例では4つのタイル)を含むスライスをレンダリングし、各タイルは、複数の画素ブロック(この例では、4個の128x128の画素ブロック)を含む。
【0067】
610で示されるように、プレフィルタ構成要素は、レンズワープ及び/又は中心窩フィルタをスライスに適用する。いくつかの実施形態では、プレフィルタリングは、ウェーブレット変換の前に、基地局上のフレームに対してレンズワープを実行することを含んでもよい。レンズワープは、画像が閲覧されるデバイス上のレンズによって導入される画像の歪みを補正するために実行され、それによって画像の品質が改善される。いくつかの実施形態では、デバイスは、例えば較正プロセスによって生成されたレンズのレンズワープデータを記憶することができ、無線接続を介してレンズワープデータを基地局に提供することができる。次いで、基地局は、そのデバイスのレンズワープデータに基づいて、フレーム上でレンズワープを実行することができる。プレフィルタステージにおいて基地局上でレンズワープを実行することによって、ウェーブレット変換及び符号化を実行する前にフレームの解像度を低減することができる。これにより、圧縮の改善に役立ち得、無線リンク上でのレイテンシ及び帯域幅の使用を低減することができる。加えて、レンズワープを、復号後にデバイスで行うのではなく、プレフィルタステージにおいて基地局で実行することにより、画像データのフィルタリングは一度実行するのみでよい。これは、符号化の前に解像度を低減するために基地局でフィルタリングを実行し、次いで、デバイス上でレンズワープフィルタリングを実行することと対照的である。
【0068】
いくつかの実施形態では、610でのプレフィルタリングは、中心窩領域内ではより高い解像度を維持しつつ、周辺領域での解像度を低減したフィルタリングもまた含んでもよい。いくつかの実施形態では、デバイスによって取得された視線追跡情報を使用して、ユーザが現在見ている方向を識別することができる。中心窩(中心窩領域と呼ばれる)に対応するフレームの領域は、決定された視線方向に少なくとも部分的に基づいて特定されてもよい。周辺領域(すなわち、フレームの中心窩領域の外側の部分)は、人間の視覚システムの知識に基づいて情報を減らすように、例えば、高周波数情報をフィルタリングし、かつ/又は、色圧縮を増加させることによって、プレフィルタリングされていてもよい。周辺領域のプレフィルタリングは、フレームの圧縮の改善を助けることができる。
【0069】
いくつかの実施形態では、動画符号化システムは、タイルを処理する単一のプレフィルタ構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、各タイルを処理するための別個のプレフィルタ構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、それぞれが複数の(例えば、2つの)タイルを処理する、複数の(例えば、2つの)プレフィルタ構成要素を含み得る。
【0070】
620で示されるように、ウェーブレット変換構成要素は、スライス内の画素ブロックにウェーブレット変換技術を適用して、画素データをN個の(例えば、7つの)周波数帯域に分解する。次いで、周波数帯域は、ブロックベースの符号化器に提供され得るブロック(例えば、CTU)に編成される、符号化/圧縮される。一例として、フレームを128x128のブロックに分割することができ、2レベルのウェーブレット分解を各128x128のブロックに適用して、例えば
図3Cに示すように、7つの周波数帯域を表す周波数データの32x32ブロックを16個生成することができる。
【0071】
いくつかの実施形態では、動画符号化システムは、タイルを処理する単一のウェーブレット変換構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、各タイルを処理するための別個のウェーブレット変換構成要素を含み得る。いくつかの実施形態では、動画符号化システムは、それぞれが複数の(例えば、2つの)タイルを処理する、複数の(例えば、2つの)ウェーブレット変換構成要素を含み得る。
【0072】
図6の方法では、例示的な動画符号化システムは、要素620において並行して生成されるスライスのうちの異なるものから周波数データのブロックを符号化するように構成された2つの符号化器を含む。例えば、第1の符号化器は、スライス0及び1からブロックを符号化するように構成されてもよく、第2の符号化器は、スライス2及び3からブロックを符号化するように構成されてもよい。630Aで示されるように、第1の符号化器は、符号化技術をタイル0及び1のブロック内の周波数帯域に適用し、2つの異なるタイル間で異なる周波数帯域からブロックの処理を多重化する。630Bで示されるように、第2の符号化器は、符号化技術をタイル2及び3のブロック内の周波数帯域に適用し、2つの異なるタイル間で異なる周波数帯域からブロックの処理を多重化する。
【0073】
符号化器は、例えば、高効率動画符号化(HEVC)符号化器であってもよい。しかしながら、いくつかの実施形態では、他の符号化技術が使用されてもよい。要素620で示されるように画素データを周波数帯域に分解することにより、周波数帯域は、要素630A及び630Bでの符号化器によって別個のストリームとしてバッファリングされ、処理されることが可能となる。別個のストリームとして周波数帯域を処理することにより、符号化器は、独立したストリームの処理を多重化することが可能となる。HEVC符号化などのブロックベースの符号化方法では、ブロック(符号化ツリーユニット(CTU)と呼ばれる)は、パイプラインにおいて複数のステージで処理される。2つ以上のブロックは、所与のクロックサイクルにおいてパイプラインの異なるステージにあってもよく、ブロックは、クロックのサイクルが進むにつれてパイプラインを通って移動する。所与のブロックの処理は、以前に処理された1つ以上の近隣ブロック、例えば、所与のブロックの上の行の1つ以上のブロック、及び/又は、所与のブロックの左側のブロックへの依存関係を有し得る。ストリームの処理を多重化することによって、符号化器は、所与のストリーム内のブロックの処理を間をあけて配置し、それにより、所与のブロックが依存関係を有する近隣ブロックを処理するために追加のクロックサイクルを提供する。例えば、所与のブロックが以前に処理された近隣ブロックに依存するステージに到達したときに、所与のブロックの左側のブロックは、パイプライン内で所与のブロックに数ステージ先行するブロックであってもよい。これにより、符号化器は、以前に処理されたブロックに対する依存関係により適切に対処可能となり、隣接ブロックに依存するステージにおける所与のブロックの処理を行う前に、パイプライン内の近隣ブロックの処理の完了を待つ必要性を低減又は排除することができる。
【0074】
640で示されるように、無線インタフェースは、要素530で符号化器によって生成された圧縮データをパケット化し、無線接続を介してパケットをデバイスに送信する。650から600に戻る矢印によって示されるように、この方法は、ユーザがVR/MRシステムを使用している限り継続する。
【0075】
要素620で示されるように画素データを周波数帯域に分解することにより、要素630A及び630Bでの符号化器並びに要素640での無線インタフェースによって周波数帯域の優先が可能となる。典型的に、画像及び動画送信では、より低い周波数がより重要である一方、より高い周波数の重要性は薄い。より高い周波数は、通常、画像の詳細に対応し、したがって、優先度は、より低いと見なすことができる。より高い周波数帯域には、画像内のエネルギーのより小さい割合が含まれる。エネルギーの大部分は、より低い周波数帯域に含まれる。このように、画素データを周波数帯域に分解することにより、データストリームを符号化及び送信するときに符号化器及び無線インタフェースによって活用され得るデータストリームへの優先順位付けを提供する。例えば、いくつかの実施形態では、異なる圧縮技術を異なる周波数帯域に使用することができ、より低い優先度の帯域により積極的な圧縮を適用し、より高い優先度の帯域にはより控えめな圧縮を適用してもよい。別の例として、周波数帯域の優先順位付けは、VR/MRシステムのグレースフルデグラデーションを提供するのに役立ち得る。無線接続の性能を監視することができ、デバイスからのフィードバックを考慮して、システム全体のパフォーマンスを追跡することができる。何らかの理由でシステムの性能が低下した場合、例えば、無線接続の質が低下し、無線接続の帯域幅容量が閾値を下回る場合、符号化器及び無線インタフェースは、より低い周波数帯域の1つ以上の符号化及び送信を優先することができ、より低い優先度レベルを割り当てられた1つ以上の周波数レベル、例えば、1つ以上のより高い周波数帯域の符号化及び/若しくは送信を低減又は低下させることができる。
【0076】
各スライスが4つのタイルに分割され、2つの符号化器が各スライスからのそれぞれのタイル上で動作する実施形態が記載されているが、いくつかの実施形態では、スライスをより多くのタイル(例えば、6つ又は8つのタイル)に分割することができ、いくつかの実施形態では、より多くの符号化器(例えば、3つ又は4つの符号化器)が使用されてもよい。
【0077】
(例示的なVR/MRシステム)
図7は、少なくともいくつかの実施形態に係る、動画符号化システムを実装することができる例示的なVR/MRシステム2000を示す。VR/MRシステム2000は、少なくとも1つのデバイス2150(例えば、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、ハンドヘルドコンピューティングデバイス、又はユーザによって装着され得るヘッドセット、ヘルメット、ゴーグル、若しくは眼鏡などのHMD)及びコンピューティングデバイス2100(本明細書では基地局と呼ばれる)を含んでもよい。基地局2100は、仮想コンテンツを含むVR又はMRフレームをレンダリングし、フレームを符号化し、デバイス2150によって復号され表示されるように、符号化されたフレームを無線接続2180を介してデバイス2150に送信する。
【0078】
基地局2100及びデバイス2150はそれぞれ、基地局2100及びデバイス2150が無線接続2180を介してデータを通信し交換することを可能にする無線通信技術を含み得る。いくつかの実施形態では、無線接続2180は、デバイス2150と基地局2100との間に高指向性無線リンクを提供する独自の無線通信技術に従って実装されてもよい。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0079】
いくつかの実施形態では、HMD2150は、ユーザの環境に関する情報(例えば、動画、深度情報、照明情報など)、及び/又はユーザに関する情報(例えば、ユーザの表情、眼の動き、視線の方向、手のジェスチャなど)を収集するセンサを含んでもよい。デバイス2150は、センサによって収集された情報の少なくとも一部を、無線接続2180を介して基地局2100に送信してもよい。基地局2100は、センサから取得された様々な情報に少なくとも部分的に基づいて、仮想コンテンツを含むデバイス2150によって表示するためのフレームをレンダリングし、フレームを符号化し、符号化されたフレームを、復号しユーザに対し表示するために、無線接続2180を介してデバイス2150に送信することができる。フレームを符号化し送信するために、基地局2100は、
図1~
図6に示すような動画符号化システムを実装してもよい。
【0080】
図8は、いくつかの実施形態に係る、
図7に示すような例示的な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つの画像内で左又は右にシフトされる。
【0081】
デバイス2150はまた、本明細書に記載されるようなVR/MRシステム2000のデバイス側機能を実装するように構成されたコントローラ2154を含んでもよい。いくつかの実施形態では、HMD2150はメモリ2170をまた含んでもよく、メモリ2170は、コントローラ2154によって実行可能なVR/MRシステム2000のデバイス構成要素のソフトウェア(コード2172)、並びにコントローラ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)を含んでもよい。
【0082】
メモリ2170は、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM(mDDR3などのモバイルバージョンのSDRAM又はLPDDR2などの低電力バージョンのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)などの、任意のタイプのメモリを含んでもよい。いくつかの実施形態では、1つ以上のメモリデバイスは、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などのメモリモジュールを形成するために回路基板に結合されてもよい。代替的に、デバイスは、システムをチップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成で実装する集積回路を搭載してもよい。
【0083】
いくつかの実施形態では、センサ2160は、ユーザの眼の位置及び動きを追跡するために使用され得る1つ以上の視線追跡センサ(例えば、赤外線照明光源を有する赤外線カメラ)を含んでもよいが、これらに限定されない。いくつかの実施形態では、各視線追跡センサがそれぞれの眼を追跡する、2つの視線追跡センサが存在してもよい。いくつかの実施形態では、視線追跡センサによって収集された情報は、基地局2100による画像のレンダリングを調整するため、かつ/又はユーザの眼が見ている方向及び角度に基づいて、デバイス2150の投影システムによる画像の投影を調節するために使用されてもよい。例えば、いくつかの実施形態では、ユーザの眼が現在見ている場所の周囲の領域内の画像のコンテンツは、ユーザが見ていない領域内のコンテンツよりも詳細かつより高い解像度でレンダリングされてもよい。これにより、画像データのための利用可能な処理時間が、眼の周辺領域によって見るコンテンツにではなく、眼の中心窩領域によって見るコンテンツに費やされることを可能にする。同様に、ユーザが見ていない領域内の画像のコンテンツは、ユーザが現在見ている地点の周囲の領域のコンテンツよりも多く圧縮されてもよい。いくつかの実施形態では、センサがユーザの眼のそれぞれの眼の眺めを有するような位置に、デバイス2150の内側表面上に位置する2つの視線追跡センサが存在してもよい。しかしながら、各種実施形態では、より多くの又はより少ない視線追跡センサが使用されてもよく、視線追跡センサは他の位置に位置してもよい。例示的な非限定的な実施形態では、各視線追跡センサは、赤外線光源及び赤外線カメラ、例えば、120FPS以上のフレームレート、70度の水平視野(HFOV)、及び10~80ミリメートル(mm)の作動距離を有する400x400画素数のカメラを含んでもよい。
【0084】
いくつかの実施形態では、デバイス2150は、デバイス2150の位置、向き、及び/又は動きを検出し、検出された位置、向き、及び/又は運動データをHMD2150のコントローラ2154及び/又は基地局2100に提供するように構成された、少なくとも1つの慣性測定ユニット(inertial-measurement unit、IMU)2162を含んでもよい。
【0085】
デバイス2150はまた、無線接続2180を介して外部基地局2100と通信して、基地局2100にセンサ入力を送信し、レンダリングされ圧縮されたフレーム、スライス、又はタイルを基地局2100から受信するように構成された無線インタフェース2152を含んでもよい。いくつかの実施形態では、無線インタフェース2152は、デバイス2150と基地局2100との間に高指向性無線リンクを提供する独自の無線通信技術を実装することができる。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0086】
基地局2100は、無線インタフェース2180を介してデバイス2150に通信可能に結合された外部デバイス(例えば、コンピューティングシステム、ゲームコンソールなど)であってもよい。基地局2100は、動画及び/又は画像をレンダリングし、フィルタリングし、符号化し、送信するための様々なタイプのプロセッサ(例えば、SOC、CPU、ISP、GPU、コーデック、及び/又は他の構成要素)のうちの1つ以上を含んでもよい。基地局2100は、無線接続2180を介してセンサ2160から取得した様々な入力に少なくとも部分的に基づく仮想コンテンツを含むフレーム(各フレームは左右画像を含む)をレンダリングし、レンダリングしたフレーム(又はフレームのスライス)を本明細書に記載されるような動画符号化システムを使用してフィルタリングかつ圧縮し、圧縮されたフレーム又はスライスをデバイス2150に送信して表示することができる。
【0087】
基地局2100は、デスクトップコンピュータ、ノートブック若しくはラップトップコンピュータ、パッド若しくはタブレットデバイス、スマートフォン、ハンドヘルドコンピュータデバイス、ゲームコントローラ、ゲームシステムなどの任意のタイプのコンピューティングシステム若しくはコンピューティングデバイスであってもよく、又はそれを含んでもよい。基地局2100は、本明細書に記載されるような動画符号化システムを含むVR/MRシステム2000の基地局側機能を実装する1つ以上のプロセッサを備えるコントローラ2110を含んでもよい。基地局2100はまた、基地局コントローラ2110によって実行可能なVR/MRシステム2000の基地局構成要素のソフトウェア(コード2122)を記憶するように構成されたメモリ2120、並びに、コントローラ2110上で実行するときにソフトウェアによって使用され得るデータ2124を含んでもよい。
【0088】
各種実施形態では、基地局コントローラ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)を含んでもよい。
【0089】
基地局メモリ2120は、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM(mDDR3などのモバイルバージョンのSDRAM又はLPDDR2などの低電力バージョンのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)などの、任意のタイプのメモリを含んでもよい。いくつかの実施形態では、1つ以上のメモリデバイスは、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などのメモリモジュールを形成するために回路基板に結合されてもよい。代替的に、デバイスは、システムをチップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成で実装する集積回路を搭載してもよい。
【0090】
基地局2100は、無線接続2180を介してデバイス2150と通信して、デバイス2150からセンサ入力を受信し、基地局2100からデバイス2150に圧縮フレーム、スライス、又はタイルを送信するように構成された1つ以上の無線技術インタフェース2130をまた含み得る。いくつかの実施形態では、無線技術インタフェース2130は、デバイス2150と基地局2100との間に高指向性無線リンクを提供する独自の無線通信技術を実装することができる。いくつかの実施形態では、無線通信技術の指向性及び帯域幅は、複数のデバイス2150が同時に基地局2100と通信することをサポートすることができ、それにより、複数のユーザが共同設置環境において同時にシステム2000を使用することを可能にし得る。しかしながら、いくつかの実施形態では、他の商用(例えば、Wi-Fi、Bluetoothなど)又は独自の無線通信技術が使用されてもよい。
【0091】
いくつかの実施形態では、基地局2100は、フレームをレンダリングしてデバイス2150に送信し、デバイス2150から受信したセンサ2160の入力に少なくとも部分的に基づいて、3D仮想ビューをユーザのために提供するように構成されていてもよい。いくつかの実施形態では、仮想ビューは、ユーザの環境の高画質、高解像度の動画をリアルタイムでキャプチャし表示する、1つ以上のシーンカメラ(例えば、RGB(可視光)動画カメラ)によってキャプチャされた動画に基づいて、ユーザの環境内の実際のオブジェクトのレンダリングを含む、ユーザの環境のレンダリングを含むことができる。いくつかの実施形態では、仮想ビューはまた、基地局2100によってレンダリングされ、ユーザの現実環境の投影された3Dビューと合成された仮想コンテンツ(例えば、仮想オブジェクト、現実オブジェクトの仮想タグ、ユーザのアバターなど)を含んでもよい。
【0092】
図7及び8には示されていないが、いくつかの実施形態では、VR/MRシステム2000は、1つ以上の他の構成要素を含んでもよい。例えば、システムは、仮想コンテンツと対話するために3D仮想ビュー内の仮想カーソルを移動させるためのカーソル制御デバイス(例えば、マウス)を含んでもよい。
図7及び
図8は、単一のデバイス2150を示すが、いくつかの実施形態では、VR/MRシステム2000は、複数のデバイス2150が同時に基地局2100と通信することをサポートすることができ、それにより、複数のユーザが共同設置環境において同時にシステムを使用することを可能にし得る。
【0093】
本明細書で説明される方法は、異なる実施形態では、ソフトウェア、ハードウェア、又はそれらの組み合わせの形態で実行されてもよい。加えて、方法のブロックの順序は変更されてもよく、様々な要素の追加、再順序付け、組み合わせ、省略、修正などが行われてもよい。本開示の利益を得る当業者にとって明白であるような、様々な修正及び変更が行われてもよい。本明細書に記載される各種実施形態は、例示的なものであり、限定的なものではない。多くの変形、修正、追加、及び改善が可能である。したがって、単一の事例として本明細書に記載される構成要素について、複数の事例を提供することができる。種々の構成要素、動作及びデータストアの間の境界は、ある程度任意のものであり、特定の動作は、特定の例示的な構成の文脈において示される。機能性の他の割り当てが想定され、以下に続く請求項の範囲内に含まれてもよい。最後に、例示的な構成における別個の構成要素として提示された構造及び機能性は、組み合わされた構造又は構成要素として実施されてもよい。それらの及び他の変形、修正、追加、及び改善は、以下に続く請求項で定義されるように、実施形態の範囲内に含まれてもよい。
【手続補正書】
【提出日】2024-02-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
動画符号化システムであって、
1つ以上のプロセッサと、
メモリと、を備え、前記メモリが、プログラム命令を記憶し、前記プログラム命令が、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
ウェーブレット変換構成要素であって、
複数の画素ブロックのそれぞれにウェーブレット変換を適用して、前記複数の画素ブロックの前記それぞれを複数の周波数帯に分解し、
前記複数の周波数帯を、複数の周波数ブロックであって、前記複数の周波数帯のそれぞれに対応する周波数データをそれぞれが含む、複数の周波数ブロックに編成し、
前記周波数ブロックのそれぞれを、別個のストリームであって、それぞれが前記周波数帯の個別のものに対応する、ストリームとして、2つ以上の符号化器に提供するように構成されている、ウェーブレット変換構成要素と、
前記2つ以上の符号化器と、を実現させる、動画符号化システムであって、前記2つ以上の符号化器のそれぞれが、
周波数ブロックの前記別個のストリームを処理するように構成されており、
前記周波数ブロックを所与のストリームにて処理するために、前記2つ以上の符号化器の前記個別のものが、前記周波数ブロックに符号化技術を適用して、前記周波数ブロック内の前記周波数データを圧縮するように更に構成されており、
前記所与のストリームにおける前記周波数ブロックの前記処理が多重化され、
無線接続を介して受信デバイスに送信するために、前記圧縮した周波数データを前記別個のストリームから無線インターフェースに提供するように構成されている、動画符号化システム。
【請求項2】
前記多重化された前記処理により、所与の周波数帯に対応するそれぞれの周波数ブロックの処理において複数の時間単位が符号化される、請求項1に記載の動画符号化システム。
【請求項3】
前記周波数ブロックの前記多重化された処理が、第1の周波数ブロックの先行する処理に対する第2の周波数ブロックの依存性に少なくとも部分的に基づく、請求項1に記載の動画符号化システム。
【請求項4】
前記プログラム命令が、前記1つ以上のプロセッサにプレフィルタ構成要素を更に実現させ、
前記プレフィルタ構成要素が、前記画素ブロックであって、レンダリングされた動画フレームからのものである、前記画素ブロックをプレフィルタリングするように構成されており、
前記画素ブロックをプレフィルタリングするために、前記プレフィルタ構成要素が、前記レンダリングされた動画フレームにフィルタを適用して、前記受信デバイスにて導入されることになる歪みを補正するように更に構成されている、
請求項1に記載の動画符号化システム。
【請求項5】
前記1つ以上のプロセッサが、
前記受信デバイスのレンズにより導入されることになる前記歪みを補正するために前記プレフィルタ構成要素によって用いられる、前記受信デバイスの前記レンズのためのレンズワープデータを、前記無線接続を介して受信するように更に構成されている、
請求項4に記載の動画符号化システム。
【請求項6】
前記画素ブロックをプレフィルタリングするために、前記プレフィルタ構成要素が、
前記レンダリングされた動画フレームの周辺領域にフィルタを適用して、前記レンダリングされた動画フレームの中心窩領域内でより高い解像度を維持しつつ、前記周辺領域の解像度を低減させるように更に構成されている、
請求項4に記載の動画符号化システム。
【請求項7】
前記適用したウェーブレット変換が、レンダリングされた動画フレームからの各画素ブロックに適用される2レベルのウェーブレット分解である、請求項1に記載の動画符号化システム。
【請求項8】
前記適用したウェーブレット変換が、レンダリングされた動画フレームからの各画素ブロックに適用されるNレベルのウェーブレット分解であり、Nは調整可能である、請求項1に記載の動画符号化システム。
【請求項9】
前記ウェーブレット変換を適用するために、前記ウェーブレット変換構成要素が、
ウェーブレット分解の1つ以上のウェーブレット係数にコアリング関数を適用するように更に構成されている、請求項1に記載の動画符号化システム。
【請求項10】
方法であって、
複数の画素ブロックのそれぞれにウェーブレット変換を適用して、前記複数の画素ブロックの前記それぞれを複数の周波数帯に分解することと、
前記複数の周波数帯を、複数の周波数ブロックであって、前記複数の周波数帯のそれぞれに対応する周波数データをそれぞれが含む、複数の周波数ブロックに編成することと、
前記周波数ブロックのそれぞれを、別個のストリームであって、それぞれが前記周波数帯の個別のものに対応する、ストリームとして、2つ以上の符号化器に提供することと、
周波数ブロックの前記別個のストリームを多重化により処理することであって、
前記周波数ブロックを所与のストリームにて処理することが、前記2つ以上の符号化器の個別のものにて、前記周波数ブロックに符号化技術を適用して、前記周波数ブロック内の前記周波数データを圧縮することを含み、
前記所与のストリームにおける前記周波数ブロックの前記処理が多重化される、処理することと、
前記圧縮した周波数データを前記別個のストリームから受信デバイスに無線接続を介して送信することと、
を含む、方法。
【請求項11】
前記多重化による前記処理により、所与の周波数帯に対応するそれぞれの周波数ブロックの前記処理において複数の時間単位が符号化される、請求項10に記載の方法。
【請求項12】
前記多重化による前記処理が、第1の周波数ブロックに対する第2の周波数ブロックの依存性に少なくとも部分的に基づく、請求項10に記載の方法。
【請求項13】
前記画素ブロックであって、レンダリングされた動画フレームからのものである、前記画素ブロックをプレフィルタリングすることを更に含み、
前記プレフィルタリングすることが、前記レンダリングされた動画フレームにフィルタを適用して、前記受信デバイスにて導入されることになる歪みを補正することを含む、
請求項10に記載の方法。
【請求項14】
前記受信デバイスのレンズのためのレンズワープデータを受信することを更に含み、
前記レンダリングされた動画フレームに前記フィルタを前記適用して、前記受信デバイスにて導入されることになる前記歪みを補正することが、前記受信したレンズワープデータに少なくとも部分的に基づく、
請求項13に記載の方法。
【請求項15】
システムであって、
1つ以上のプロセッサ及び表示サブシステムを含むデバイスと、
送信デバイスであって、
1つ以上のプロセッサであって、
画素データを含む複数の画素ブロックのそれぞれにウェーブレット変換を適用して、前記画素データを複数の周波数帯に分解し、
前記複数の周波数帯を、複数の周波数ブロックであって、前記複数の周波数帯のそれぞれに対応する周波数データをそれぞれが含む、複数の周波数ブロックに編成し、
前記周波数ブロックのそれぞれを、別個のストリームであって、それぞれが前記周波数帯の個別のものに対応する、ストリームとして、2つ以上の符号化器に提供するように構成されている、1つ以上のプロセッサと、
前記2つ以上の符号化器であって、前記2つ以上の符号化器のそれぞれが、周波数ブロックの前記別個のストリームを処理するように構成されており、
前記周波数ブロックを所与のストリームにて処理するために、前記2つ以上の符号化器の前記個別のものが、前記所与のストリームにおける前記周波数ブロックに符号化技術を適用して、前記周波数帯を圧縮するように更に構成されており、
前記所与のストリームにおける前記周波数ブロックの前記処理が多重化される、前記2つ以上の符号化器と、
前記圧縮した周波数帯を前記デバイスに無線接続を介して送信するように構成されている、無線インターフェースと、を含む、
送信デバイスと、を備え、
前記デバイスの前記1つ以上のプロセッサが、
前記送信デバイスから受信した、前記圧縮した周波数帯を復元し、
前記復元した周波数帯に対してウェーブレット合成をおこなって、動画フレーム用の前記画素データを再構成し、
表示のために、前記表示サブシステムに前記再構成した画素データを提供するように構成されている、システム。
【請求項16】
前記多重化された処理により、所与の周波数帯に対応するそれぞれの周波数ブロックの前記処理において複数の時間単位が符号化される、請求項15に記載のシステム。
【請求項17】
前記周波数ブロックの前記多重化された処理が、第1の周波数ブロックの処理に対する第2の周波数ブロックの依存性に少なくとも部分的に基づく、請求項15に記載のシステム。
【請求項18】
前記1つ以上のプロセッサが、
前記画素ブロックをプレフィルタリングするように更に構成されており、前記プレフィルタリングすることが、フィルタを適用して前記表示サブシステムにて導入されることになる歪みを補正することを含む、
請求項15に記載のシステム。
【請求項19】
前記1つ以上のプロセッサが、
前記デバイスのレンズにより導入されることになる前記歪みを補正するために、前記画素ブロックを前記プレフィルタリングすることにおいて用いられる、前記デバイスの前記レンズのためのレンズワープデータを、前記無線接続を介して受信するように更に構成されている、
請求項18に記載のシステム。
【請求項20】
前記デバイスが、ヘッドマウントディスプレイ(HMD)デバイスである、請求項15に記載のシステム。
【外国語明細書】