(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-05
(45)【発行日】2023-04-13
(54)【発明の名称】損失のある無線リンクのためのビデオコーデックデータ復元技術
(51)【国際特許分類】
H04N 19/53 20140101AFI20230406BHJP
H04N 19/46 20140101ALI20230406BHJP
H04N 19/59 20140101ALI20230406BHJP
【FI】
H04N19/53
H04N19/46
H04N19/59
(21)【出願番号】P 2020533707
(86)(22)【出願日】2018-09-24
(86)【国際出願番号】 US2018052373
(87)【国際公開番号】W WO2019125567
(87)【国際公開日】2019-06-27
【審査請求日】2021-09-24
【審判番号】
【審判請求日】2022-11-14
(32)【優先日】2017-12-22
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ゴク ヴィン ヴー
【合議体】
【審判長】畑中 高行
【審判官】川崎 優
【審判官】國分 直樹
(56)【参考文献】
【文献】特開平8-251596(JP,A)
【文献】特開2016-25531(JP,A)
【文献】特開平8-172630(JP,A)
【文献】特表2019-537393(JP,A)
【文献】国際公開第2017/077685(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
システムであって、
送信機と、
受信機と、
を備え、
前記送信機は、
ビデオストリームを複数のサブストリーム成分に分割することであって、前記複数のサブストリーム成分の各々は、前記ビデオストリームの異なる周波数範囲に対応しており、前記複数のサブストリーム成分のうち高周波数サブストリーム成分の各々は、前記複数のサブストリーム成分のうち正常に復号される低周波数サブストリーム成分の各々に依存する、ことと、
前記ビデオストリームの前記複数のサブストリーム成分のうち最低周波数のサブストリーム成分について動きベクトルパラメータを計算することと、
ビームフォーミングトランザクション及び肯定応答トランザクションのうち何れかに埋め込まれた前記動きベクトルパラメータを、第1変調符号化方式(MCS)レベルで前記受信機に送信することであって、前記第1MCSレベルは第1閾値未満である、ことと、
を行うように構成されている、
システム。
【請求項2】
前記受信機は、ビデオフレームの所定のチャンクについて所定の最低周波数のサブストリーム成分を受信していないことに応じて、受信した動きベクトルパラメータに基づいて、前のビデオフレームの対応するチャンクの最低周波数のサブストリーム成分から外挿することによって、前記所定のチャンクの前記所定の最低周波数のサブストリーム成分を再構成するように構成されている、
請求項1のシステム。
【請求項3】
前記送信機は、
前記最低周波数のサブストリーム成分を第2MCSレベルで送信することと、
前記第1M
CSレベルを、前記第2MCSレベルよりも低くなるように選択することと、
を行うように構成されている、
請求項1のシステム。
【請求項4】
前記受信機は、所定の動きベクトルパラメータセットを受信しないことに応じて、1つ以上の前の動きベクトルパラメータセットから外挿することによって、前記所定の動きベクトルパラメータセットを再生成するように構成されている、
請求項1のシステム。
【請求項5】
前記送信機は、前記ビデオストリームの前記複数のサブストリーム成分のうち前記最低周波数のサブストリーム成分のみについて前記動きベクトルパラメータを計算するように構成されている、
請求項1のシステム。
【請求項6】
前記高周波
数サブストリーム成分は、前記低周波
数サブストリーム成分の品質に対するインクリメンタル品質拡張を表す、
請求項1のシステム。
【請求項7】
ビデオストリームを複数のサブストリーム成分に分割することであって、前記複数のサブストリーム成分の各々は、前記ビデオストリームの異なる周波数範囲に対応しており、前記複数のサブストリーム成分のうち高周波数サブストリーム成分の各々は、前記複数のサブストリーム成分のうち正常に復号される低周波数サブストリーム成分の各々に依存する、ことと、
前記ビデオストリームの前記複数のサブストリーム成分のうち最低周波数のサブストリーム成分について動きベクトルパラメータを計算することと、
ビームフォーミングトランザクション及び肯定応答トランザクションのうち何れかに埋め込まれた前記動きベクトルパラメータを、第1変調符号化方式(MCS)レベル
で受信機に送信することであって、前記第1MCSレベルは第1閾値未満である、ことと、を含む、
方法。
【請求項8】
前記方法は、ビデオフレームの所定のチャンクについて所定の最低周波数のサブストリーム成分を受信していないことに応じて、受信した動きベクトルパラメータに基づいて、前のビデオフレームの対応するチャンクの最低周波数のサブストリーム成分から外挿することによって、前記所定のチャンクの前記所定の最低周波数のサブストリーム成分を再構成することをさらに含む、
請求項7の方法。
【請求項9】
前記最低周波数のサブストリーム成分を第2MCSレベルで送信することと、
前記第1M
CSレベルを、前記第2MCSレベルよりも低くなるように選択することと、をさらに含む、
請求項7の方法。
【請求項10】
前記方法は、所定の動きベクトルパラメータセットを受信しないことに応じて、1つ以上の前の動きベクトルパラメータセットから外挿することによって、前記所定の動きベクトルパラメータセットを再生成することをさらに含む、
請求項7の方法。
【請求項11】
前記ビデオストリームの前記複数のサブストリーム成分のうち前記最低周波数のサブストリーム成分のみについて前記動きベクトルパラメータを計算することをさらに含む、
請求項7の方法。
【請求項12】
前記高周波
数サブストリーム成分は、前記低周波
数サブストリーム成分の品質に対するインクリメンタル品質拡張を表す、
請求項7の方法。
【請求項13】
処理ユニットと、
メモリと、
を備える送信機であって、
前記送信機は、
ビデオストリームを複数のサブストリーム成分に分割することであって、前記複数のサブストリーム成分の各々は、前記ビデオストリームの異なる周波数範囲に対応しており、前記複数のサブストリーム成分のうち高周波数サブストリーム成分の各々は、前記複数のサブストリーム成分のうち正常に復号される低周波数サブストリーム成分の各々に依存する、ことと、
前記ビデオストリームの前記複数のサブストリーム成分のうち最低周波数のサブストリーム成分について動きベクトルパラメータを計算することと、
ビームフォーミングトランザクション及び肯定応答トランザクションのうち何れかに埋め込まれた前記動きベクトルパラメータを、第1変調符号化方式(MCS)レベル
で受信機に送信することであって、前記第1MCSレベルは第1閾値未満である、ことと、
を行うように構成されている、
送信機。
【請求項14】
前記送信機は、
前記最低周波数のサブストリーム成分を第2MCSレベルで送信することと、
前記第1M
CSレベルを、前記第2MCSレベルよりも低くなるように選択することと、
を行うように構成されている、
請求項13の送信機。
【請求項15】
前記第1MCSレベルは0である、
請求項14の送信機。
【請求項16】
前記送信機は、前記ビデオストリームの前記複数のサブストリーム成分のうち前記最低周波数のサブストリーム成分のみについて前記動きベクトルパラメータを計算するように構成されている、
請求項13の送信機。
【請求項17】
前記高周波
数サブストリーム成分は、前記低周波
数サブストリーム成分の品質に対するインクリメンタル品質拡張を表す、
請求項13の送信機。
【発明の詳細な説明】
【背景技術】
【0001】
(関連技術の説明)
無線通信リンクを使用して、コンピュータ(又は他のデバイス)からバーチャルリアリティ(VR)ヘッドセット(又はヘッドマウントディスプレイ(HMD))にビデオストリームを送信することができる。VRビデオストリームを無線送信することにより、コンピュータとHMDを装着しているユーザとの間のケーブル接続が不要になるので、ユーザによる自由な移動が可能になる。コンピュータとHMDとの間の従来のケーブル接続には、通常、1つ以上のデータケーブルと、1つ以上の電源ケーブルと、が含まれる。ユーザが、ケーブルテザー無しに、ケーブルを避けることを意識せずに動き回るのを可能にすることによって、より没入感のあるVRシステムが実現する。また、VRビデオストリームを無線で送信することによって、従来よりも幅広い用途でVRシステムを利用することができる。
【0002】
しかしながら、VRアプリケーションは、通常、ビデオデータをバッファリングしない低レイテンシのアプリケーションである。例えば、ユーザが頭を動かすと、これがHMD又はコンソールによって検出され、その後にレンダリングされるビデオフレームが、ユーザの新たな視聴位置を反映するように更新される。また、リンクの状態を変更すると、ビデオの品質に影響を与える可能性がある。リンクの品質が低下し、ビデオデータが失われたり破損した場合、ユーザエクスペリエンスが粗末なものになる可能性がある。したがって、データの無線ストリーミングのための改良された技術が望まれている。
【0003】
本明細書で説明する方法及びメカニズムの利点は、添付の図面と併せて以下の説明を参照することによって、より良く理解することができる。
【図面の簡単な説明】
【0004】
【
図2】無線バーチャルリアリティ(VR)システムの一実施形態のブロック図である。
【
図3】ビデオフレームのシーケンスについての動きベクトルのセットの一実施形態のブロック図である。
【
図4】ビデオフレームの損失部分の高解像度バージョンを隣接する部分から外挿する一実施形態のブロック図である。
【
図5】ビデオストリームの低周波数のサブストリーム成分から動きベクトル成分を生成するロジックの一実施形態のブロック図である。
【
図6】ビデオストリームの低周波数成分についての動きベクトルパラメータを計算して送信する方法の一実施形態を示す一般化されたフロー図である。
【
図7】ビデオフレームの低周波数のサブストリーム成分の動きベクトルパラメータを使用して、ビデオフレームの損失チャンクを再構成する方法の一実施形態を示す一般化されたフロー図である。
【
図8】ビデオフレームの低周波数のサブストリーム成分の動きベクトルパラメータをビームフォーミング又はACKトランザクションに埋め込む方法の一実施形態を示す一般化されたフロー図である。
【
図9】ビデオフレームのブロックの高周波数成分を隣接するブロックから再構成する方法の一実施形態を示す一般化されたフロー図である。
【
図10】ビデオストリームを送信するためのMCSレベルを選択する方法の一実施形態を示す一般化されたフロー図である。
【発明を実施するための形態】
【0005】
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解を提供するために、多くの具体的な詳細が述べられている。しかしながら、当業者は、これらの具体的な詳細無しに様々な実施形態が実施され得ることを認識すべきである。いくつかの例では、本明細書で説明するアプローチを曖昧にすることを避けるために、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術を詳細に示していない。説明を簡単且つ明確にするために、図に示された要素が必ずしも縮尺通りに描かれていないことを理解されたい。例えば、いくつかの要素の寸法が、他の要素に対して誇張されている場合がある。
【0006】
損失のある無線リンクのためのデータ復元技術を実装するための様々なシステム、装置、方法及びコンピュータ可読媒体を本明細書に開示する。一実施形態では、無線通信システムは、無線リンクを介して通信する送信機及び受信機(例えば、ヘッドマウントディスプレイ(HMD))を含む。一実施形態では、送信機は、ビデオストリームを符号化し、符号化されたビデオストリームを受信機に無線送信するように構成されている。一実施形態では、ビデオストリームは、バーチャルリアリティ(VR)レンダリング環境を表す。
【0007】
一実施形態では、ビデオデータを無線送信する場合、送信機は、低解像度成分のみを受信機に送信する。低解像度成分は、低周波数成分又はDC成分とも呼ばれる。この低解像度成分をロバストな低変調符号化方式(MCS)レベルで送信する。したがって、低解像度成分を、難しいリンク(challenging link)を介して受信する確率が高い。また、DC成分のみについて動き推定データ(例えば、動きベクトルパラメータ)を計算する。これにより、動き推定データが、元のビデオフレーム全体について計算する場合よりもはるかに小さくなる。一実施形態では、動き推定データは、低解像度成分に使用されたMCSレベルよりもさらに低いMCSレベル(例えば、MCSレベル0)を使用して受信機に転送される。ビームフォーミング中等のようにMCS 0を使用して受信機と通信する場合には、常に、DC成分の動き推定データが信号に埋め込まれる。HMDが動き推定データを受信するがDC成分を受信しない場合、HMDは、動き推定データを使用して、前のビデオフレームから現在のDC成分を外挿によって推定(extrapolate)する。これにより、HMDが、損失したデータチャンクを詳細にではないが大まかに再構成することを可能にするため、ユーザは、損失したチャンクに気付かない。
【0008】
動き推定データのサイズを縮小する低解像度成分から動き推定データを生成するので、この動き推定データを、ビームフォーミングトランザクション又は肯定応答(ACK)トランザクションに埋め込むことができる。これらのトランザクションは、通常、MCS 0を使用して転送され、リンク状態に対してロバストである。ビームフォーミングトランザクション及びACKトランザクションは、HMDによって受信される可能性が最も高いため、MCS 0で送信される。また、動き推定データがこれらのトランザクションに埋め込まれている場合、動き推定データは、HMDによって受信される可能性が高くなる。或いは、動き推定データを、独自のMCS 0トランザクションで送信することができる。一実施形態では、動き推定データが十分に小さい(すなわち、閾値未満)場合、動き推定データは、他のトランザクションによって送信される。
【0009】
一実施形態では、動き推定データを損失した場合、HMDは、動き推定データフロー外挿(motion estimation data flow extrapolation)を行うことができる。例えば、HMDが前の2つのフレームの動き推定データを受信し、フローがある方向に移動する場合に、HMDは、検出された方向に沿って外挿(extrapolates)し、現在のフレームの損失した動き推定データを再生成する。この例では、HMDは、次の動きベクトルが前の動きベクトルと同じ方向にあることを予測する。次に、HMDは、再生成された動き推定データから低周波数成分を復元することができる。
【0010】
別の実施形態では、1つの無線パケットを損失した場合に、これは、通常、ビデオフレームの小さな部分に相当する。例えば、ビデオフレーム全体で1000パケットが送信される場合、1つのパケットは、フレーム全体の0.1%を含む。フレームの損失したチャンクを再構成する場合、その部分を、必ずしも高解像度で再構成する必要がない。損失したチャンクの低解像度での再構成は、典型的に、ユーザに対して目立った欠陥又はアーティファクトを生成しない。しかし、チャンクが失われ、ブラックボックスを使用して表示する場合、ユーザは、ビデオフレーム内のこの欠陥に気付くであろう。さらなる実施形態では、これらの技術を利用して、ビデオフレームの小さな部分のみの高解像度成分を損失する場合のシナリオを緩和する。その小さい部分の低周波数成分を受信して、その小さい部分を囲む高解像度成分を受信する場合に、HMDは、損失した高解像度成分を再生成するために、隣接する高解像度成分と、損失したチャンクの低解像度成分と、を使用して外挿することができる。
【0011】
図1を参照すると、システム100の一実施形態のブロック図が示されている。システム100は、互いに無線通信するように動作可能な第1通信装置(例えば、送信機105)と、第2通信装置(例えば、受信機110)と、を少なくとも含む。なお、受信機110は、データ及び/又は肯定応答を送信機105に送信することができることに留意されたい。したがって、送信機105及び受信機110は、トランシーバと呼ばれる場合もあることに留意されたい。一実施形態では、送信機105及び受信機110は、無認可の60ギガヘルツ(GHz)の周波数帯域を介して無線通信する。例えば、送信機105及び受信機110は、電気電子学会(IEEE)802.11ad規格(すなわち、WiGig)に従って通信することができる。他の実施形態では、送信機105及び受信機110は、他の周波数帯を介して、及び/又は、他の無線通信規格に準拠することによって、無線通信することができる。
【0012】
例えば60GHzの周波数帯等の極めて高い周波数(EHF)帯域内で動作する無線通信デバイスは、比較的小さいアンテナを用いて信号を送受信することが可能である。しかしながら、このような信号は、低周波数帯域を介した送信に比べて高い大気減衰を受けることになる。このような減衰の影響を低減し、通信範囲を拡大するために、EHFデバイスは、通常、ビームフォーミング技術を組み込む。例えば、IEEE802.11ad仕様は、無線局がリモート局と最適な送信及び/又は受信アンテナの組み合わせをテストし交渉する、セクタレベルスイープ(SLS)とも呼ばれるビームフォーミングトレーニング手順を詳述している。様々な実施形態では、送信機105及び受信機110は、ビームフォーミングトレーニング手順を定期的に実行して、無線データ送信のための最適な送信及び/又は受信アンテナの組み合わせを決定するように構成されている。
【0013】
送信機105及び受信機110は、任意のタイプの通信デバイス及び/又はコンピューティングデバイスを表す。例えば、様々な実施形態では、送信機105及び/又は受信機110は、携帯電話、タブレット、コンピュータ、サーバ、テレビ、ゲーム機、ヘッドマウントディスプレイ(HMD)、別のタイプのディスプレイ、ルータ、又は、他のタイプのコンピューティングデバイス若しくは通信デバイスであってもよい。様々な実施形態では、システム100は、レイテンシセンシティブアプリケーション(latency sensitive applications)を実行するように構成されている。例えば、一実施形態では、システム100は、レンダリングされた仮想環境のフレームを送信機105から受信機110に無線送信するためのバーチャルリアリティ(VR)アプリケーションを実行する。他の実施形態では、他のタイプのレイテンシセンシティブアプリケーションを、本明細書で説明する方法及びメカニズムを利用するシステム100によって実行することができる。
【0014】
一実施形態では、送信機105は、無線周波数(RF)トランシーバモジュール125と、プロセッサ130と、メモリ135と、アンテナ140と、を少なくとも含む。RFトランシーバモジュール125は、RF信号を送信及び受信するように構成されている。一実施形態では、RFトランシーバモジュール125は、60GHz帯域の1つ以上のチャネルを介して信号を無線で送信及び受信するように動作可能なミリ波トランシーバモジュールである。RFトランシーバモジュール125は、ベースバンド信号を無線送信用のRF信号に変換し、RF信号を、送信機105によるデータ抽出のためにベースバンド信号に変換する。RFトランシーバモジュール125は、説明のために単一のユニットとして示されていることに留意されたい。RFトランシーバモジュール125は、実施形態に応じて、任意の数の異なるユニット(例えば、チップ)で実装可能であることを理解されたい。同様に、プロセッサ130及びメモリ135の各々は、送信機105の一部として実装可能な任意の数及びタイプのプロセッサ及びメモリデバイスを表す。
【0015】
また、送信機105は、RF信号を送信及び受信するためのアンテナ140を含む。アンテナ140は、無線信号の送信及び受信の指向性を変更するように構成可能な、フェーズドアレイ、単一の素子アンテナ、切り替えビームアンテナのセット等の1つ以上のアンテナを表す。一例として、アンテナ140は、1つ以上のアンテナアレイを含み、アンテナアレイ内の各アンテナの振幅又は位相は、このアレイ内の他のアンテナから独立して構成することができる。アンテナ140は、送信機105の外部にあるように示されているが、様々な実施形態では、アンテナ140は、送信機105の内部に含まれてもよいことを理解されたい。さらに、送信機105は、図を不明瞭にしないように図示されていない任意の数の他のコンポーネントを含むことができることを理解されたい。送信機105と同様に、受信機110内に実装されるコンポーネントは、RFトランシーバモジュール145と、プロセッサ150と、メモリ155と、アンテナ160と、を少なくとも含み、これらは送信機105について上述したコンポーネントに類似している。受信機110は、他のコンポーネント(例えば、ディスプレイ)を含んでもよいし、他のコンポーネントに接続されてもよいことを理解されたい。
【0016】
送信機105と受信機110との間のリンクは、環境の変化によって変動する容量特性を有する。様々な実施形態では、送信機105は、ビデオストリームを複数のサブストリーム成分に分割するように構成されており、各サブストリーム成分は、ビデオストリームの別々の周波数範囲に対応する。ビデオストリームを複数の成分に分割するために送信機によって利用される技術は、実施形態によって変えることができる。一実施形態では、送信機は、連続圧縮を利用して、ビデオストリームを、低品質のサブストリームと、1つ以上の連続する高品質のサブストリームと、に分割する。高品質のサブストリームの数は、実施形態によって変えることができる。高品質のサブストリームの各々は、正常に復号されるために、低品質のサブストリームの全ての受信が成功することを必要とする。高品質のサブストリームは、低品質のサブストリームに対して効果的なインクリメンタル拡張(incremental enhancements)である。「低品質」のサブストリームは、「低周波数」のサブストリームとも呼ばれることに留意されたい。同様に、「高品質」のサブストリームは、「高周波数」のサブストリームとも呼ばれる。また、上記の用語に関連して、「サブストリーム」という用語は、「成分」、「ストリーム」、「要素」又は「サブセットビットストリーム」と互換的に使用することができることに留意されたい。
【0017】
送信機105は、サブストリーム成分を別々に受信機110に送信し、異なるサブストリーム成分に対して異なる変調符号化方式(MCS)レベルを利用することができる。一実施形態では、送信機105は、ビデオストリームの最低周波数のサブストリーム成分を送信するために比較的低いMCSレベルを利用して、この比較的低いMCSレベルが、この最低周波数のサブストリーム成分が受信機110によって受信される確率を高めるのに役立つ。
【0018】
しかしながら、場合によっては、ビデオストリームの最低周波数のサブストリーム成分でさえも、チャネル状態が悪いために伝送中に失われる可能性がある。したがって、このシナリオを緩和するために、送信機105は、最低周波数のサブストリーム成分のみから動き推定データ(例えば、動きベクトルパラメータ)を計算し、この動き推定データを、低いロバストなMCSレベルを使用して受信機110に送信するように構成されている。一実施形態では、送信機105は、最低周波数のサブストリーム成分に利用されるMCSレベルよりも低いMCSレベルを、動き推定データに使用する。動き推定データを最低周波数のサブストリーム成分のみから計算するので、動き推定データが小さくなる傾向がある。一実施形態では、動き推定データのサイズが閾値を下回る場合には、動き推定データは、ビームフォーミング又は肯定応答(ACK)トランザクションに埋め込まれる。ビームフォーミングトランザクションは、通常、MCSレベル0を使用して送信され、トランザクションが正常に受信される確率を上げる。
【0019】
様々な技術のうち何れかを、最低周波数のサブストリーム成分のみについて動き推定データを生成するために利用することができる。例えば、一実施形態では、動き推定データは、ビデオフレームについてのグローバル動きベクトルと、ビデオフレームの一部についてのローカル動きベクトルと、を含むことができる。グローバルモーションは、一般に、カメラのパンニング(panning)、タイリング(tiling)、ズームイン又はズームアウト、回転、他のアクションによって発生する動き等のビデオフレーム全体の動きを表す。本明細書で使用する場合、「動きベクトル」という用語は、所定のビデオフレームの少なくとも一部の座標から参照フレーム内の当該一部の座標へのオフセットを指定する二次元ベクトルとして定義される。例えば、一実施形態では、ローカル動きベクトルは、2つのビデオフレーム間のブロック(例えば、マクロブロック)の水平方向及び垂直方向の動きを示すx座標及びy座標のセットとして表される。
【0020】
一実施形態では、受信機110が、所定のビデオフレームの所定のチャンクについての最低周波数のサブストリーム成分を受信せず、この最低周波数のサブストリーム成分の動き推定データを受信する場合には、受信機110は、動き推定データを利用して、前のビデオフレーム内の対応するチャンクから外挿することによって、所定のチャンクを再構成する。これにより、受信機110は、低品質ではあるが、所定のチャンクを再構成することができる。しかしながら、新たなフレームが現在のフレームのすぐ後に表示されることから、ユーザは、低品質のチャンクによるアーティファクトに気付くことが殆どない。所定のチャンクを再構成することは、所定のチャンクを空白のままして、ユーザに表示されるビデオフレームにより顕著な欠陥が発生するよりも優れた解決策である。本明細書で使用する場合、「外挿」という用語は、既知のデータの傾向から未知の値を推測することによって値の範囲を拡張することとして定義される。
【0021】
一実施形態では、動き推定データを損失した場合、受信機110は、動きベクトルフロー外挿を実行する。例えば、受信機110が前の2つのフレームの動き推定データを受信する場合であって、フローがある方向に移動する場合に、受信機110は、検出した方向沿に沿って外挿し、現在のフレームの損失した動き推定データを再生成する。この例では、受信機110は、次の動きベクトルが前の動きベクトルと同じ方向になることを予測する。次に、受信機110は、再生成された動き推定データから低周波数のサブストリーム成分を復元することができる。
【0022】
別の実施形態では、1つの無線パケットを損失した場合、これは、通常、ビデオフレームの小さな部分に相当する。本実施形態では、ビデオフレームの小さな部分を損失した場合に、受信機110は、ビデオフレームのこの部分を再構成する。フレームの損失したチャンクを再構成する場合、その部分を必ずしも高解像度で再構成する必要がない。この低解像度の再構成は、通常、ユーザに対して目立った欠陥又はアーティファクトを生成しない。しかし、チャンクを損失し、ブラックボックスを使用して表示する場合には、ユーザは、ビデオフレームのこの欠陥に気付く可能性が高い。ビデオフレームのチャンクの低周波数成分を受信して、その小さな部分を囲む高解像度成分を受信した場合に、受信機110は、隣接する高解像度成分と、損失したチャンクの低解像度成分とを使用して外挿し、損失した高解像度成分を再生成することができる。
【0023】
図2を参照すると、無線バーチャルリアリティ(VR)システム200の一実施形態のブロック図が示されている。システム200は、コンピュータ210と、ヘッドマウントディスプレイ(HMD)220と、を少なくとも含む。コンピュータ210は、1つ以上のプロセッサと、メモリデバイスと、入出力(I/O)デバイスと、RFコンポーネントと、アンテナと、パーソナルコンピュータ又は他のコンピューティングデバイスを示す他のコンポーネントと、を含む任意のタイプのコンピューティングデバイスを表す。他の実施形態では、パーソナルコンピュータの他に、他のコンピューティングデバイスを用いて、ビデオデータを無線でヘッドマウントディスプレイ(HMD)220に送信することができる。例えば、コンピュータ210は、ゲーム機、スマートフォン、セットトップボックス、テレビ、ビデオストリーミングデバイス、ウェアラブルデバイス、テーマパークのアミューズメントライドのコンポーネント、又は、他のものであってもよい。
【0024】
コンピュータ210及びHMD220の各々は、無線通信するための回路及び/又はコンポーネントを含む。なお、コンピュータ210は、外部アンテナを有するように示されているが、これは単にビデオデータが無線送信されていることを表すために示されていることを理解されたい。また、コンピュータ210は、コンピュータ210の外部ケースの内側にアンテナを含むことができることを理解されたい。さらに、コンピュータ210は、有線電源接続を使用して電力を供給され得るが、HMD 220は、通常、バッテリによって電力供給される。或いは、コンピュータ210は、バッテリによって電力供給されるラップトップコンピュータであってもよい。
【0025】
一実施形態では、コンピュータ210は、HMD220を装着したユーザに提示されるVR環境の表現を動的にレンダリングするように構成された回路を含む。例えば、一実施形態では、コンピュータ210は、VR環境をレンダリングするための1つ以上のグラフィックス処理ユニット(GPU)を含む。他の実施形態では、コンピュータ210は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)又は他のプロセッサタイプを含む、他のタイプのプロセッサを含むことができる。HMD220は、レンダリングされたVR環境のフレームを生成するために、コンピュータ210によって送信された圧縮ビットストリームを受信し、復号化する回路を含む。次に、HMD220は、生成されたフレームを、HMD220内に統合されたディスプレイに送る。
【0026】
仮想環境のビデオストリームのフレームをレンダリングした後に、コンピュータ210のビデオエンコーダは、レンダリングされたフレームをN個の成分に分割する。次に、N個の成分の各々を別々にHMD220に送信することができる。N個の成分の各々は、異なる周波数、ビットレート、品質、及び/又は、解像度でビデオを表す。一実施形態では、レンダリングされた各フレームを複数回処理して、別々の低品質/ビットレート及び高品質/ビットレートのストリームを生成し、高品質のストリームは、低品質のストリームの派生である。このプロセスは、低品質/高品質の2つのストリームに限定されず、異なる品質/ビットレートのN個のストリームを生成するために使用することもできる逐次近似である。一実施形態では、レンダリングされたフレームを、低いビットレートのストリームを生成するために第1圧縮率で処理する。本実施形態では、高いビットレートのストリームは、より低い第2圧縮率で、低いビットレートのストリーム及び元のストリームのデルタから生成される。
【0027】
一実施形態では、ビデオエンコーダは、周波数に基づいて、レンダリングされたビデオフレームを複数の成分に分割する。次に、ビデオエンコーダは、ビデオフレームの最低周波数成分から動き推定データ(例えば、動きベクトルフィールド)を生成する。次いで、メディアアクセス制御(MAC)レイヤユニットは、動き推定データを変調し、無線リンクを介してHMD220に送信するためのロバストな変調符号化方式(MCS)レベルを選択する。「MCSレベル」は、「MCSインデックス」とも呼ばれることに留意されたい。
【0028】
例えば、一実施形態では、MCSレベル0を使用して、動き推定データを変調し、HMD220に送信する。MCSレベル0は、バイナリ位相シフトキーイング(BPSK)を用いて1シンボル当たり1ビットを符号化し、信頼性の低いMCSと比較して、復調器を誤った決定に至らせるのにより多くのノイズ又は歪みを必要とすることから、ロバストな変調である。MCSレベル0は、低い伝送速度を犠牲にして、チャネルエラーに対する保護を提供する。他のMCSレベルは、他のタイプの変調を利用する。例えば、MCSレベル2は、直交位相シフトキーイング(QPSK)変調を使用し、MCSレベル4は、16直交振幅変調(QAM)を使用し、MCSレベル7は、64QAMを使用する。概して、MCSレベルが増加すると、ビットレートが増加するが、信号のレジリエンシ(復元力)が低下する。換言すれば、より高いレジリエンス及びより低いデータレートは、比較的低いMCSレベルによって達成され、より低いレジリエンス及びより高いデータレートは、比較的高いMCSレベルによって達成される。
【0029】
一実施形態では、HMD220が所定のビデオフレームの所定のチャンクについて最低周波数のサブストリーム成分を受信せず、この最低周波数のサブストリーム成分の動き推定データを受信する場合に、HMD220は、動き推定データを利用して、前のビデオフレーム内の対応するチャンクから外挿することによって、所定のチャンクを再構成する。これにより、HMD220は、低い品質ではあるが、所定のチャンクを再構成することができる。しかしながら、新たなフレームがその後すぐに表示されることから、ユーザは、低品質のチャンクによるアーティファクトに気付くことが殆どない。所定のチャンクを再構成することは、所定のチャンクを空白のままにして、ユーザに表示されるビデオフレームにより顕著な欠陥が発生するよりも優れた解決策である。
【0030】
図3を参照すると、ビデオフレーム305A~305Dのシーケンスについての動きベクトル315A~315Cのセットの一実施形態のブロック図が示されている。フレーム305A~305Dは、ビデオシーケンスの連続するフレームを表す。ボックス310Aは、フレーム305A内の画素の個々のブロックを表す。ボックス310Aは、マクロブロックとも呼ばれる。矢印315Aは、ビデオシーケンスがフレーム305Aから305Bに移動するときのボックス310A内のイメージの既知の動きを表す。矢印315Aによって示される既知の動きは、動きベクトルによって定義されてもよい。動きベクトル315A~315Cは、後続のフレームにおけるボックス310の動きの方向を指すが、別の実施形態では、動きベクトルは、イメージの動きに対向する方向を指すように定義されてもよいことに留意されたい。例えば、いくつかの圧縮規格では、マクロブロックに関連する動きベクトルは、参照フレーム内のそのブロックのソースを指す。
【0031】
一実施形態では、ボックス310B~310Dを、動きベクトル315A~315Cを用いて後続のフレームで追跡することができる。例えば、動きベクトル315Aは、フレーム305A内のボックス310Aと比較して、フレーム305B内のボックス310Bの位置の変化を示す。同様に、動きベクトル315Bは、フレーム305B内のボックス310Bと比較して、フレーム310C内のボックス310Cの位置の変化を示す。また、動きベクトル315Cは、フレーム305C内のボックス310Cと比較して、フレーム310D内のボックス310Dの位置の変化を示す。別の実施形態では、動きベクトルを、所定のフレームから前のフレームまでのブロックの逆方向の動きを追跡するように定義することができる。
【0032】
受信機(例えば、
図2のHMD220)が所定の動きベクトル成分(例えば、動きベクトル315C)を受信しない場合、受信機は、損失した動きベクトル成分を再生成するために、動きベクトルフロー外挿を実行するように構成されている。例えば、受信機が動きベクトル315A~315Bを受信し、フローがある方向に移動する場合に、受信機は、検出した方向に沿って外挿し、損失した動きベクトル成分315Cを再生成する。したがって、受信機は、動きベクトル成分315Cが前の動きベクトル成分315A~315Bと同じ方向になることを予測する。次に、受信機は、再生成された動きベクトル成分315Cから、フレーム305Dの低周波数のサブストリーム成分を復元することができる。
【0033】
図4を参照すると、ビデオフレーム405の損失した部分の高解像度バージョンを、隣接する部分から外挿する一実施形態のブロック図が示されている。一実施形態では、ビデオフレーム405は、送信機から受信機(例えば、HMD)への無線リンクを介して無線送信されるビデオフレームを表す。一実施形態では、ビデオフレーム405は、送信機から受信機に一度に一部が送信される。ビデオフレーム405の小さな領域を
図4に示し、小さな領域を部分415A~415Iで構成し、これらの各部分を送信機から受信機に別々に送信する。一実施形態では、受信したビデオフレーム405の各部分415A~415Iを複数のサブストリーム成分に分割し、各サブストリーム成分を受信機に別々に送信する。例えば、一実施形態では、各部分415A~415Iを高解像度(HR)成分及び低解像度(LR)成分に分割し、HR成分及びLR成分を受信機に別々に送信する。なお、HR成分は高周波数成分とも呼ばれ、LR成分は低周波数成分とも呼ばれることに留意されたい。他の実施形態では、各部分415A~415Iを、元の部分の異なる周波数範囲を表す他の数のサブストリーム成分に分割することができる。所定の部分のHR成分が受信されない場合、受信機は、隣接する部分のHR成分から外挿することによって、所定の部分のHR成分を再構成するように構成されている。
【0034】
部分415A~415D及び部分415F~415IのHRラベルは、高解像度成分がビデオフレーム405のこれらの部分について受信されたことを示す。部分415EのラベルLRは、低解像度成分のみがビデオフレーム405のこの部分について受信されたことを示す。したがって、部分415Eについて受信されていない高解像度成分に基づいて、受信機は、隣接する部分415A~415D及び415F~415IのHR成分から外挿することによって、部分415EのHR成分を再構成するように構成されている。
【0035】
図5を参照すると、ビデオストリームの低周波数のサブストリーム成分から動きベクトル成分を生成するためのロジック500の一実施形態のブロック図が示されている。一実施形態では、送信機(例えば、
図2のコンピュータ210)のビデオエンコーダ(すなわち、コーデック)は、ソースビデオデータ505を受信し、抽出ユニット510は、ソースビデオデータ505を複数のサブセットビットストリーム515A~515Nに分割する。サブセットビットストリーム515A~515Nの数は、実施形態によって変えることができる。異なるサブセットビットストリーム515A~515Nは、送信機から受信機に別々に送信される。第1サブセットビットストリーム515Aは、ビデオフレームの低周波数成分を含む。ビデオフレームの低周波数成分は、ビデオフレームの低解像度成分とも呼ばれることに留意されたい。
【0036】
一実施形態では、連続するビデオフレームの第1サブセットビットストリーム515A及び第1サブセットビットストリーム525Aが分析される。例えば、前のフレームの第1サブセットビットストリーム525A及び現在のフレームの第1サブセットビットストリーム515Aは、比較ユニット530に提供される。他の実施形態では、複数の前のフレームの第1サブセットビットストリームを比較ユニット530に提供することができる。比較ユニット530は、連続的な(back-to-back)第1サブセットビットストリーム525A,515Aの比較に基づいて、動きベクトル成分535を生成するように構成されている。次に、この動きベクトル成分535は、低くロバストなMCSレベル(例えば、MCSレベル0)を使用して受信機に送信される。低くロバストなMCSレベルで動きベクトル成分535を送信することによって、送信機は、困難なリンク状態の間でさえも、動きベクトル成分535が受信機によって受信される確率を増加させている。受信機が所定のフレームについて何れのサブセットビットストリーム515A~515Nも受信しないが、所定のフレームの低周波数成分の動きベクトル成分535を受信する場合には、受信機は、動きベクトル成分535から所定のフレームの低周波数成分を再構成する。
【0037】
図6を参照すると、ビデオストリームの低周波数成分について動きベクトルパラメータを計算して送信する方法600の一実施形態が示されている。説明のために、本実施形態のステップ及び
図7~
図10のステップを順番に示す。しかしながら、説明する方法の様々な実施形態では、説明する要素のうち1つ以上を同時に実行してもよいし、図示した順序と異なる順序で実行してもよいし、完全に省略してもよいことに留意されたい。必要に応じて、他の追加の要素も実行される。本明細書で説明する様々なシステム又は装置の何れも、方法600を実施するように構成されている。
【0038】
送信機は、ビデオストリームを複数のサブストリーム成分に分割する(ブロック605)。例えば、送信機は、ビデオストリームをN個のサブストリーム成分に分割し、第1サブストリーム成分は、ビデオストリームの最高周波数成分を含み、第2サブストリーム成分は、次に高い範囲の周波数成分を含み、第Nサブストリーム成分は、ビデオストリームの最低周波数成分を含む等である。次に、送信機は、ビデオストリームの最低周波数のサブストリーム成分のみについて動きベクトルパラメータを計算する(ブロック610)。動きベクトルパラメータは、最低周波数のサブストリーム成分の部分に関連するグローバル動きベクトル及び/又はローカル動きベクトルを含むことができる。次いで、送信機は、第1変調符号化方式(MCS)レベルを使用して動きベクトルパラメータを受信機に送信し、第1MCSレベルは、閾値を下回る(ブロック615)。一実施形態では、閾値は1であり、送信機は、MCSレベル0を使用して動きベクトルを送信する。他の実施形態では、閾値は他の値であってもよい。低いMCSレベルを使用して動きベクトルを送信することによって、送信機は、動きベクトルが受信機によって受信される尤度(likelihood)を増加させている。ブロック615の後に、方法600は終了する。
【0039】
図7を参照すると、ビデオフレームの低周波数のサブストリーム成分の動きベクトルパラメータを使用して、ビデオフレームの損失したチャンクを再構成する方法700の一実施形態が示されている。受信機は、ビデオフレームの所定のチャンクの低周波数のサブストリーム成分を受信することなく、ビデオフレームの低周波数のサブストリーム成分の動きベクトルパラメータを受信する(ブロック705)。所定のチャンクの低周波数成分を再送信することを要求するのではなく、受信機は、受信した動きベクトルパラメータに基づいて、前のビデオフレームの対応するチャンクから外挿することによってビデオストリームの所定のチャンクを再構成する(ブロック710)。受信機が所定のチャンクの再送信を要求する場合、この要求を送信して所定のチャンクの受信を待機するまでのレイテンシによって、その時間内に新たなフレームが表示される可能性が高いことから、特定のチャンクが使用できなくなる場合がある。次に、受信機は、再構成された所定のチャンクを含むビデオフレームをディスプレイに送る(ブロック715)。ブロック715の後に、方法700は終了する。動きベクトルパラメータを使用して所定のチャンクを再構成することによって、受信機は、レイテンシ要件を満たしながら、ビデオフレームの所定のチャンクの再構成されたバージョンを表示することができる。
【0040】
図8を参照すると、ビデオフレームの低周波数のサブストリーム成分の動きベクトルパラメータをビームフォーミング又はACKトランザクションに埋め込む方法800の一実施形態が示されている。送信機は、周波数に基づいてビデオフレームを複数の成分に分割する(ブロック805)。次に、送信機は、現在のビデオフレームの低周波数成分を、前の1つ以上のビデオフレームの低周波数成分と比較することに基づいて、低周波数成分から動きベクトルパラメータを生成する(ブロック810)。次いで、動きベクトルパラメータのデータ量が閾値を下回る場合(条件ブロック815:Yes)、送信機は、ビームフォーミング又は肯定応答(ACK)トランザクションに動きベクトルパラメータを埋め込む(ブロック820)。動きベクトルパラメータのデータ量が閾値以上の場合(条件ブロック815:No)、送信機は、動きベクトルパラメータを別のトランザクションに送信する(ブロック825)。ブロック820,825の後に、方法800は終了する。方法800は、ビデオシーケンスのフレーム毎に繰り返すことができることに留意されたい。
【0041】
図9を参照すると、ビデオフレームのブロックの高周波数成分を隣接するブロックから再構成する方法900の一実施形態が示されている。受信機は、ビデオフレームの所定のブロックの低周波数成分のみを、所定のブロックの他の周波数成分を受信することなく受信する(ブロック905)。受信機は、ビデオフレームの隣接するブロックの高周波数成分から外挿することによって、所定のブロックの失われた高周波数成分を再構成する(ブロック910)。ブロック910の後に、方法900は終了する。
【0042】
図10を参照すると、ビデオストリームを送信するためのMCSレベルを選択する方法1000の一実施形態が示されている。ビデオエンコーダは、ビデオストリームを、少なくとも低周波数のサブストリーム成分を含む複数のサブストリーム成分に分割する(ブロック1005)。ビデオエンコーダは、低周波数のサブストリーム成分のみから動きベクトルパラメータを生成する(ブロック1010)。送信機は、第1MCSレベルを使用して、低周波数のサブストリーム成分の動きベクトルパラメータを送信する(ブロック1015)。一実施形態では、第1MCSレベルは、MCSレベル0である。送信機は、低くロバストなMCSレベルを用いて動きベクトルを送信することによって、低周波数のサブストリーム成分の動きベクトルパラメータが受信機によって受信される尤度を増加させる。また、送信機は、第2MCSレベルを使用して低周波数のサブストリーム成分を送信し、第1MCSレベルは、第2MCSレベルよりも低い(ブロック1020)。ブロック1020の後に、方法1000は終了する。また、送信機は、所望のレベルのロバスト性に基づいてサブストリーム成分を適切なMCSレベルにマッピングするために、任意の適切なスキームを用いて、異なるMCSレベルで他のサブストリーム成分を送信することができることに留意されたい。
【0043】
様々な実施形態では、本明細書で説明した方法及び/又はメカニズムを実施するために、ソフトウェアアプリケーションのプログラム命令が使用される。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態では、このようなプログラム命令は、高水準プログラミング言語で表すことができる。他の実施形態では、プログラム命令は、高水準プログラミング言語からバイナリ、中間表現又は他の形式にコンパイルすることができる。或いは、ハードウェアの動作や設計を記述するプログラム命令が書き込まれてもよい。このようなプログラム命令は、例えばC等の高水準プログラミング言語によって表すことができる。或いは、例えばVerilog等のハードウェア設計言語(HDL)を使用することができる。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、使用中にコンピューティングシステムによってアクセス可能であり、プログラム実行のためにコンピューティングシステムにプログラム命令を提供する。一般的に、このようなコンピューティングシステムは、少なくとも1つのメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
【0044】
上述した実施形態は、実装の単なる非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に理解されると、当業者には多くの変形及び修正が明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含すると解釈されることが意図されている。