(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-08
(45)【発行日】2023-08-17
(54)【発明の名称】点群属性コーディング用のチャネル間予測と変換のための技術および装置
(51)【国際特許分類】
G06T 9/40 20060101AFI20230809BHJP
【FI】
G06T9/40
(21)【出願番号】P 2021556273
(86)(22)【出願日】2020-10-02
(86)【国際出願番号】 US2020053977
(87)【国際公開番号】W WO2021071752
(87)【国際公開日】2021-04-15
【審査請求日】2021-10-13
(32)【優先日】2019-10-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イエア,セフーン
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】橘 高志
(56)【参考文献】
【文献】米国特許出願公開第2019/0087978(US,A1)
【文献】米国特許出願公開第2015/0264374(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/40
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される、点群の属性情報をコード化するための方法であって、
3次元空間内の点のセットを含む前記点群を取得するステップと、
予測残差のロスレスインループ変換としてYCoCg-R変換を使用して前記点群の
少なくとも1つの点の前記属性情報をコード化するステップ
であって、前記ステップは、前記少なくとも1つの点の前記予測残差のロスレスインループ変換を使用することを:
前記少なくとも1つの点の隣接点の数が、前記隣接点の1つ1つへの前記予測残差のロスレスインループ変換としての前記YCoCg-R変換の適用によって残差の大きさの減少及び残差の分散の減少のいずれかを経験したかどうかを決定すること、
前記隣接点のチャネル値の最大絶対差を決定すること、および
前記隣接点からチャネル間相関を決定すること、
のうちの少なくとも1つを含む条件付きチェックによって決定することに基づく、ステップと、を含む方法。
【請求項2】
前記YCoCg-R変換を使用して前記属性情報をコード化することに基づいて前記点群を送信することをさらに含む、請求項1に記載の方法。
【請求項3】
前記YCoCg-R変換は、グラフベースの点群圧縮(G-PCC)に使用される、請求項1または2に記載の方法。
【請求項4】
Co=R-Bで
あり、
t=B+(Co>>1)であり、
Cg=G-tであり、
Y=t+(Cg>>1)である、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
点群の属性情報をコード化するための装置であって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードの指示に従って動作するように構成された少なくとも1つのプロセッサと、を含み、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、請求項1乃至
4のいずれか1項に記載の方法を実行させる、装置。
【請求項6】
点群の属性情報をコード化するための装置の1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、請求項1乃至
4のいずれか1項に記載の方法を実行させる1つ以上の命令を含む、プログラム。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願の相互参照)
本出願は、2019年10月6日に出願された米国仮特許出願第62/911,327号および2020年9月24日に出願された米国特許出願第17/030,779号からの優先権を主張し、その全ての内容は参照により本出願に組み込まれるものとする。
【0002】
世界における高度な3次元(3D)表現により、より没入型の対話とコミュニケーションが可能になり、機械が私たちの世界を理解、解釈、ナビゲートできるようになる。3D点群は、そのような情報の表現を可能にするものとして登場した。点群データに関連する多くの使用例が特定されており、点群の表現と圧縮に対応する要件が開発されている。
【0003】
点群は、3D空間内の点のセットであり、それぞれ色、材料特性などの属性が関連するものである。点群は、そのような点の合成としてオブジェクトまたはシーンを再構築するために使用できる。それらは、様々な設定で複数のカメラと深度センサを使用してキャプチャされることができ、再構築されたシーンをリアルに表現するために、数千から数十億の点で構成され得る。
【0004】
点群を表すために必要なデータの量を低減するには、圧縮技術が必要である。そのため、リアルタイム通信と6自由度(6 DoF)の仮想現実で使用するための点群の非可逆圧縮には技術が必要である。さらに、自動運転および文化遺産の用途などの動的マッピングのコンテキストで、ロスレス点群圧縮の技術が求められる。MPEGは、ジオメトリと色や反射率などの属性の圧縮、スケーラブル/プログレッションコーディング、時間の経過とともにキャプチャされた点群のシーケンスのコーディング、点群のサブセットへのランダムアクセスに対処するための標準に取り組み始めている。
【発明の概要】
【0005】
本開示は、点群コーディング技術に関する。開示される主題は、ビデオのコーディングおよびデコーディング、ビデオのコーディングおよびデコーディングを実行するビデオエンコーディングおよびデコーディングに関し、より具体的には、点群サンプルの属性情報のコーディングに関する。
【0006】
本開示の一態様によれば、点群の属性情報をコード化するための方法は、少なくとも1つのプロセッサによって実行され、3次元空間内の点のセットを含む点群を取得するステップと、YCoCg-R変換を使用して点群の属性情報をコード化するステップを含み得る。
【0007】
本開示の一態様によれば、点群の属性情報をコード化するための装置は、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードの指示に従って動作するように構成された少なくとも1つのプロセッサとを含み、プログラムコードは、少なくとも1つのプロセッサに、3次元空間内の点のセットを含む点群を取得させるように構成された取得コードと、少なくとも1つのプロセッサに、YCoCg-R変換を使用して点群の属性情報をコード化させるように構成された符号化コードとを含む。
【0008】
本開示の一態様によれば、非一時的なコンピュータ可読媒体は、命令を記憶し、命令は、点群の属性情報をコード化するための装置の1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、3次元空間内の点のセットを含む点群を取得するステップと、YCoCG-R変換を使用して点群の属性情報をコード化するステップとを実行させる1つ以上の命令を含む。
【図面の簡単な説明】
【0009】
【
図1】点群の属性情報をコード化するための例示的なプロセスのフローチャートである。
【0010】
【
図2】本明細書で説明されるシステムおよび/または方法が実装され得る例示的な環境の図である。
【0011】
【
図3】
図2の1つ以上の装置の例示的なコンポーネントの図である。
【発明を実施するための形態】
【0012】
グラフベースの点群圧縮(G-PCC)モデルは、ジオメトリ情報と、色または反射率などの関連する属性を個別に圧縮する。点群の3D座標であるジオメトリ情報は、その占有情報の八分木分解によってコード化される。一方、属性情報は、異なるレベル間の詳細レベル(LOD)データの閉ループ予測を実行する差分パルス符号変調(DPCM)のような技法によってエンコードされる。LOD情報は、デコードされたジオメトリ情報に基づいて、エンコーディングとデコーディングで同じ方法で作成される。基本的に、LODは、より多くのLODが提供されるにつれて、指定された点群のより詳細な情報が連続的に取得されるように作成される。属性コーディングのためにサンプルベースの予測が実行されると、最近傍ベースのツリー探索を利用して、加重予測を行うための隣接サンプルを見つける。重みを、隣接サンプルのそれぞれの幾何学的距離の逆数として計算する。
【0013】
G-PCC属性コーディングでは、各3D点のLODは、各点の距離に基づいて生成され、次に各LODの3D点の属性値は、LODベースの順序で予測を適用することによってエンコードされる。
【0014】
G-PCCのアンカー方法は次のように進行する。第1に、近傍のばらつきを算出し、その隣接値がどのように変化しているかを確認し、ばらつきが閾値より小さい場合には、距離ベースの加重平均予測を次のように実行する。属性値
【数1】
を、点iの最近傍の距離に基づく線形補間プロセスを使用して予測する。
【数2】
を現在点Iのk最近傍の集合とし、
【数3】
をそれらのデコード/再構築属性値とし、
【数4】
をそれらの現在点への距離とする。予測された属性値
【数5】
は、
【数6】
によって与えられる。
【0015】
属性がコード化されると、全ての点群の幾何学的位置がすでに利用可能である。また、KDツリー構造を使用して各点の最近傍探索を同じ方法で容易にするため、隣接点とそれらの再構築された属性値をエンコーディングとデコーディングの両方で使用できる。
【0016】
次に、ばらつきが閾値より高い場合には、レート歪み最適化予測子の選択が実行される。LODを生成する際の隣接点探索の結果に基づいて、複数の予測子候補が作成される。例えば、P2の属性値が予測を使用してエンコードされる場合、距離ベースの加重平均値P0、P5およびP4は、0に等しい予測子インデックスに設定される。次に、最近傍点P4の値が1に等しい予測子インデックスに設定される。さらに、次に最近傍点P5とP0の値は、それぞれ2と3に等しい予測子インデックスに設定される(表1)。予測子候補を作成した後、レート歪み最適化手順を適用して最適な予測子を選択し、次に、選択した予測子インデックスを算術的にエンコードする。
【表1】
【0017】
予測子候補の最大数(MaxNumCand)が定義され、属性ヘッダにエンコードされる。現在の実装では、MaxNumCandは、numberOfNearestNeighborsInPrediction+1に等しく設定され、切り捨てられた単項2値化を使用した予測子インデックスのエンコードとデコードに使用される。
【0018】
リフティング変換は、前のセクションで説明した予測変換の上に構築される。予測スキームとリフティングスキームの主な違いは、更新演算子の導入である。
【0019】
リフティングの予測と更新のステップを容易にするために、分解の各段階で信号を2セットの高相関に分割する必要がある。G-PCCのリフティングスキームでは、レベル間でこのような高相関が期待されるLOD構造を利用して分割を実行し、各レベルを最近傍探索によって構築して、不均一な点群を構造化データに編成する。レベルNでの予測/更新(P/U)分解ステップでは、詳細信号D(N-1)と、近似信号A(N-1)とが、さらにD(N-2)とA(N-2)に分解される。このステップを、ベース層近似信号A(1)が取得されるまで繰り返し適用する。
【0020】
したがって、LOD(N)、…、LOD(1)で構成される入力属性信号自体をコード化する代わりに、リフティングスキームでの1つの端部アップコーディングD(N-1)、D(N-2)、…、D(1)、A(1)をコード化することになる。効率的なP/Uステップを適用すると、D(N-1)、…、D(1)でのサブバンド「係数」がまばらになり、それにより、変換コーディングゲインの利点を提供する。
【0021】
予測変換のための上記距離ベースの加重平均予測は、G-PCCのアンカー方法として、リフティングの予測ステップに使用される。
【0022】
色などの点群属性の場合、チャネル間には十分な冗長性がある。
【0023】
コーディング効率を向上させるために、色空間変換を前処理/後処理ステップとして実行することが多い。前処理/後処理ステップとしての色空間変換の問題の1つは、正規直交性が不足していることが多く、変換された色空間でコーデックのパフォーマンスを最適化しても、必ずしも元の空間で高品質になるとは限らないことである。さらに、ロスレス色変換は、特に非整数カラー変換を高精度で近似しようとすると、ビット深度が拡張される傾向がある。これは、多くの実際のシステムの実装上の制約に応じた問題であり得る。
【0024】
本開示では、圧縮効率のためにチャネル間の非相関を効率的に実行するための方法が提案される。
【0025】
提案された方法は、別々に使用することも、任意の順序で組み合わせることができる。さらに、方法(または実施形態)、エンコーディングおよびデコーディングのそれぞれは、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装され得る。一例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されるプログラムを実行する。
【0026】
本開示は、上記のG-PCC予測子の設計に関する。これらの方法を、点群のために設計された同様のコーデックに適用できる。
【0027】
本開示では、コーディング効率のための変換ツールとして色空間変換を使用するという前述の問題を回避することができる技法が開示される。
【0028】
一実施形態によれば、技法は、G-PCCのDPCM(aka予測変換)における予測残差のロスレスインループ変換としてYCoCg-Rを使用して、ほぼロスレスおよびロスレスの再構築を維持しながら、チャネル間の依存性を非相関化する。別の実施形態によれば、技法は、予測の別のステップを使用して、G-PCCのDPCMにおける他のチャネルの残差値を予測する。
【0029】
【0030】
YCoCgから得られたロスレス変換として、順方向YCoCg-Rは次のように与えられる。
Co=R-B
t=B+(Co>>1)
Cg=G-t
Y=t+(Cg>>1)
【0031】
逆方向YCoCg-Rは、上記のプロセスを次のように逆にする。
t=Y-(Cg>>1)
G=Cg+t;
B=t-(Co>>1)
R=B+Co
【0032】
これを残差変換として適用する場合、信号R、GおよびBは、G-PCCにおけるチャネルごとの予測から得られる各チャネルの予測残差である。
【0033】
マルチチャネル信号を非相関化する別の方法は、予測子を使用することである。本開示では、技法は、予測子を使用してチャネルの残差信号を予測することにより、元の残差の代わりに2次残差が量子化され、エントロピーコード化される。
【0034】
G-PCC予測設計の場合、最も単純なバージョンは、次のように説明である。太字の部分は、現在のTMC3仕様に加えて必要な変更である。この最も単純な予測を向上させるために、線形または非線形の予測子関数の一般的な形式を導入できる。
【0035】
以下で使用するように、「X」は、チャネルX信号を表し、「X_pred」は、予測されたチャネルX信号(G-PCCで再構築された隣接サンプルから取得)を表し、「X_delta_index」は、チャネルXの予測残差の量子化インデックスを表し、「X_delta_recon」は、チャネルXの再構築された残差を表し、「X_recon」は、再構築されたチャネルX信号を表し、「X_delta_residual_index」は、残差予測からの残差の量子化インデックスを表す。
【0036】
エンコーディングについて
G-Channel:
G_delta_index <- Quantize(G- G_pred)
G_delta_recon <- InverseQuantize(G_delta_index)
G_recon <- G_pred + G_delta_recon
EntopyEncode(G_delta_index)
C-Channels ('C' can be either R or B):
C_delta_index <- Quantize(C- C_pred)
C_delta_recon <- InverseQuantize(C_delta_index)
C_delta_residual_index <- Quantize (C_delta_recon - G_delta_recon)
C_delta_recon <- InverseQuantize(C_delta_residual_index) + G_delta_recon
C_recon <- C_pred + C_delta_recon
EntopyEncode(C_delta_residual_index)
【0037】
デコーディングについて
G-Channel:
G_delta_index < - EntropyDecode()
G_delta_recon <- InverseQuantize(G_delta_index)
G_recon <- G_pred + G_delta_recon
// C-Channels ('C' can be either R or B)
C_delta_residual_index < - EntropyDecode()
C_delta_recon < - InverseQuantize(C_delta_residual_index) + G_delta_recon
C_recon <- C_pred + C_delta_recon
【0038】
G-PCCおよび同様の点群コーデックのチャネル間の残差予測子の利点は次のとおりである。デコードプロセスでの変更はごくわずかである。複雑なマルチチャネル信号モデルを必要とせず、インループ残差変換を含むチャネル間の非相関のための他のロスレス色変換ベースのアプローチとは異なり、提案された方法は、ハウスドルフ距離の観点から、元のドメインの信号の忠実度を制御できる。これは、量子化が元の(RGB色-)空間で実行されるためである。
【0039】
以下は、G-PCC作業草案仕様におけるチャネル間の残差予測子の実施例を提供する。
【0040】
属性パラメータセットの構文では、提案されたチャネル間の残差予測子を適応的に有効/無効にするフラグを追加できる。
【0041】
【0042】
属性パラメータセットのセマンティクス
【0043】
1に等しい「lifting_residual_prediction_enabled_flag」は、属性デコードプロセスが残差予測を実行することを指定する。
【0044】
逆量子化プロセス
endIndex = pointCountPerLevelOfDetail[ 0 ];
for (i=0, d = 0; i< PointNum; i++) {
if ( i == endlndex ) {
endIndex = pointCountPerLevelOfDetail[ ++d ];
Q step Y = ( d < numlayer ) ? SliceQstepY[ d ] :SliceQstepY[ num_layer - 1 ];
QstepC = ( d < num layer ) ? SliceQstepC[ d ] :SliceQstepC[ num_layer - 1 ];
}
for (a=0; a< attrCnt; a++)
{
if (a==0 || lifting_residual_prediction_enabled_flag==0)
unquantAttributeCoefficients [ i ][ a ] = quantAttributeCoefficients[ i ][ a ] x(a == 0 ?QstepY :QstepC);
eise
unquant AttributeCoeffi ci ents [ i ][ a ] = quantAttributeCoefficients[ i ][ a ] x(a == 0 ?QstepY :QstepC) + unquantAttributeCoefficients[i][0];
}
}
【0045】
この開示は、G-PCCにおけるDPCM予測(aka予測変換)のコンテキスト下でのインループ色残差変換および色残差予測の両方に等しく適用される。これらの2つの手法は、チャネル間ツールと呼ばれる。
【0046】
この開示では、条件付きチェックのいくつかの方法が、チャネル間ツールを現在点に適用するか否かを決定するために使用されることが提案される。
【0047】
一実施形態では、3つのチャネルの再構築された残差値の最大差が、最近傍のそれぞれについて計算される。より具体的には、デコーディングは、チャネル間ツールを設定された閾値で適用した後に、残差の大きさ/分散の減少を経験した隣接の数を追跡できる。特に、再構築された3つの残差値が比較的均一である場合、非相関が成功しなかった可能性がある。これには、デコード時に各点ごとにそのようなテストの結果を示すために、1つのフラグの簿記が必要である。また、決定を下す場合に多数決を行うことができる。
【0048】
別の実施形態では、隣接点からの3つのチャネルの最大絶対差値が比較される。色チャネル間で値のばらつきに大きなばらつきがある場合、相互に予測するのが難しい可能性がある。
【0049】
隣接サンプルからチャネル間相関を識別できる任意の測定を組み込んで、チャネル間ツールの使用を決定することができる。
【0050】
別の実施形態では、タイル/スライスレベル(例えば、タイル/スライスヘッダー内)またはビデオ/画像レベル(例えば、SPS/PPS内)フラグをシグナリングして、提案された残差変換または予測を有効/無効にすることができる。シグナリングは、コーディングユニットを構成する点群ピクセルの任意のグループに適用できる。
【0051】
詳細なサブバンド係数はリフティングの予測ステップからの出力に他ならないため、これらは、本質的に予測残差信号であり、同じ予測戦略が与えられた場合、異なる色チャネル間で同様である可能性がある。
【0052】
G-PCCリフティング設計の場合、最も単純なバージョンは、次のように説明できる。太字の部分は、現在のTMC3仕様に加えて必要な変更である。この最も単純な予測を向上させるために、線形または非線形の予測子関数の一般的な形式を導入できる。
【0053】
以下で使用するように、「X」はチャネルX信号を表し、「X_coeff_index」は、チャネルXのリフティング係数の量子化インデックスを表し、「X_coeff_recon」は、チャネルXの再構築されたリフティング係数を表し、「X_recon」は、再構築されたチャネルX信号を表し、「X_coeff_residual_index」は、残差予測からの残差の量子化インデックスを表し、「quantWeight」は、エンコーディングでの量子化の前とデコーディングでの逆量子化の後にリフティング係数に適用される、G-PCCで使用される重み係数である。
【0054】
エンコーディングについて
G-Channel
G_coeff_index <- Quantize(G)
G_coeff_recon <- InverseQuantize(G_coeff_index)
G_recon <- G_coeff_recon/quantWeight
EntopyEncode(G_coeff_index)
// C-Channels ('C' can be either R or B)
C_coeff_index <- Quantize(C)
C_coeff_recon <- InverseQuantize(C_coeff_index)
C_coeff_residual_index <- Quantize (C_coeff_recon - G_coeff_recon)
C_ceoff_recon <- InverseQuantize(C_coeff_residual_index) + G_coeff_recon
C_recon <- C_coeff_recon/quantWeight
EntopyEncode(C_coeff_residual_index)
デコーディングについて
/G-Channel
G_coeff_index < - EntropyDecode()
G_coeff_recon <- InverseQuantize(G_coeff_index)
Grecon <- G_coeff_recon/quantW eight
// C-Channels ('C' can be either R or B)
C_coeff_residual_index < - EntropyDecode()
C_coeff_recon < - InverseQuantize(C_coeff_residual_index) + G_coeff_recon
C_recon <- C_coeff_recon/quantWeight
【0055】
図1は、点群の属性情報をコード化するための例示的なプロセス100のフローチャートである。実施形態では、
図1の1つ以上のプロセスブロックは、ユーザ装置210によって実行され得る。実施形態では、
図1の1つ以上のプロセスブロックは、プラットフォーム220など、ユーザ装置210とは別の、またはユーザ装置210を含む別の装置または装置のグループによって実行され得る。
【0056】
図1に示すように、プロセス100は、3次元空間内の点のセットを含む点群を取得することを含み得る(ブロック110)。
【0057】
点群は、3D空間内の点のセットであり得、それぞれは、色、材料特性などの属性が関連する。
【0058】
図1にさらに示されるように、プロセス100は、YCoCg-R変換を使用して点群の属性情報をコード化することを含み得る(ブロック120)。
【0059】
YCoCg色モデルは、関連する赤、緑、青(RGB)の色空間を輝度値(Yと表記)およびクロミナンスグリーン(Cg)とクロミナンスオレンジ(Co)と呼ばれる2つの彩度値に単純に変換した色空間である。YCoCg-Rは、YCoCg色モデルの可逆的にスケーリングされたバージョンである。
【0060】
YCoCg-R変換は、グラフベースの点群圧縮(G-PCC)に使用され得る。YCoCg-Rでは、Co=R-Bである。さらに、t=B+(Co>>1)である。さらに、Cg=G-1である。さらに、Y=t+(Cg>>1)である。
【0061】
【0062】
YCoCgから得られたロスレス変換として、順方向YCoCg-Rは次のように与えられる。
Co = R - B
t = B + (Co >> 1)
Cg = G - t
Y = t + (Cg >> 1)
【0063】
逆方向YCoCg-Rは、上記のプロセスを次のように逆にする。
t = Y - (Cg >> 1)
G = Cg + t;
B = t - (Co >> 1)
R = B + Co
【0064】
実装形態では、プロセスは、YCoCg-R変換を使用して属性情報をコード化することに基づいて点群を送信することを含み得る。
【0065】
図1は、プロセス100の例示的なブロックを示すが、実施形態では、プロセス100は、
図1に示されるものと比べて、追加のブロック、より少ないブロック、異なるブロック、または別様に配置されたブロックを含み得る。さらに、または代わりに、プロセス100の2つ以上のブロックを並行して実行することができる。
【0066】
図2は、本明細書で説明されるシステムおよび/または方法が実装され得る例示的な通信システム200の図である。
図2に示されるように、通信システム200は、ユーザ装置210、プラットフォーム220およびネットワーク230を含み得る。通信システム200の装置は、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して相互接続することができる。
【0067】
通信システム200は、データの単方向送信をサポートすることができる。例えば、第1のユーザ装置210は、ネットワーク230を介して第2のユーザ装置210に送信するために、ローカル位置でビデオデータをコード化することができる。第2のユーザ装置210は、ネットワーク230から第1のユーザ装置210のコード化されたビデオデータを受信し、コーディングデータをデコードし、復元されたビデオデータを表示することができる。単方向のデータ送信は、メディア供給アプリケーションなどで一般的である。
【0068】
通信システム200は、データの双方向送信をサポートすることができる。例えば、通信システム200は、例えば、ビデオ会議中に発生し得るコーディングビデオの双方向送信をサポートすることができる。データの双方向送信の場合、各ユーザ装置210は、ネットワーク230を介して他のユーザ装置に送信するためにローカル位置でキャプチャされたビデオデータをコード化し得る。各ユーザ装置210はまた、他のユーザ装置によって送信されたコーディングビデオデータを受信することができ、コーディングデータをデコードすることができ、復元されたビデオデータをローカル表示装置に表示することができる。
【0069】
ユーザ装置210は、プラットフォーム220に関連する情報を受信、生成、記憶、処理および/または提供することができる1つ以上の装置を含む。例えば、ユーザ装置210は、コンピューティング装置(デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブル装置(例えば、スマートグラスまたはスマートウォッチ)、または同様の装置を含み得る。実装形態では、ユーザ装置210は、プラットフォーム220から情報を受信し、および/またはプラットフォーム220に情報を送信することができる。
【0070】
プラットフォーム220は、本明細書の他の場所で説明されるように、ユーザ装置210に情報を提供することができる1つ以上の装置を含む。実装形態では、プラットフォーム220は、クラウドサーバまたはクラウドサーバのグループを含み得る。実装形態では、プラットフォーム220は、特定の必要性に応じて特定のソフトウェアコンポーネントがスワップインまたはスワップアウトされ得るようにモジュール式に設計することができる。そのため、プラットフォーム220は、様々な用途に合わせて簡単および/または迅速に再構成できる。
【0071】
実施形態では、示されるように、プラットフォーム220は、クラウドコンピューティング環境222でホストされ得る。特に、本願明細書に記載される実施形態は、プラットフォーム220がクラウドコンピューティング環境222でホストされるものとして記載するが、一部の実施形態では、プラットフォーム220は、クラウドベースでなく(すなわち、クラウドコンピューティング環境の外部で実装され得る)でなくてもよく、または部分的にクラウドベースであってもよい。
【0072】
クラウドコンピューティング環境222は、プラットフォーム220をホストする環境を含む。クラウドコンピューティング環境222は、プラットフォーム220をホストするシステムおよび/または装置の物理的な位置および構成についてエンドユーザ(例えば、ユーザ装置210)の知識を要求しない演算、ソフトウェア、データアクセス、ストレージおよび/またはその他サービスを提供し得る。図のように、クラウドコンピューティング環境222は、コンピューティングリソース224(まとめて「コンピューティングリソース224」と呼ばれ、個別に「コンピューティングリソース224」と呼ばれる)を含み得る。
【0073】
コンピューティングリソース224は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバ装置または別のタイプの演算および/または通信装置を含む。実施形態において、コンピューティングリソース224は、プラットフォーム220をホストし得る。クラウドリソースは、コンピューティングリソース224において実行する演算インスタンス、コンピューティングリソース224内に設けられるストレージ装置、コンピューティングリソース224により提供されるデータ転送装置などを含み得る。実施形態において、コンピューティングリソース224は、有線接続、無線接続または有線接続と無線接続との組み合わせを介して他のコンピューティングリソース224と通信してもよい。
【0074】
図2にさらに示されているように、コンピューティングリソース224は、1つ以上のアプリケーション(「APP」)224-1、1つ以上の仮想マシン(「VM」)224-2、仮想化ストレージ(「VS」)224-3、1つ以上のハイパーバイザ(「HYP」)224-4または同様のものなどのクラウドリソースのグループを含み得る。
【0075】
アプリケーション224-1は、ユーザ装置210に提供されても、またはユーザ装置210によりアクセスされてもよい1つ以上のソフトウェアアプリケーションを含む。アプリケーション224-1は、ユーザ装置210上でソフトウェアアプリケーションをインストールして実行する必要性をなくしてもよい。例えば、アプリケーション224-1は、プラットフォーム220に関連したソフトウェア、および/またはクラウドコンピューティング環境222を介して提供できる他の任意のソフトウェアを含み得る。実施形態において、1つのアプリケーション224-1は、仮想マシン224-2を介して他の1つ以上のアプリケーション224-1との間で情報を送受信し得る。
【0076】
仮想マシン224-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン224-2は、用途、および仮想マシン224-2の任意の実マシンとの類似の程度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供してもよい。プロセス仮想マシンは、単一のプログラムを実行してもよく、単一のプロセスをサポートしてもよい。実施形態において、仮想マシン224-2は、ユーザ(例えば、ユーザ装置210)の代わりに実行してもよく、さらにデータ管理、同期化または長期データ転送など、クラウドコンピューティング環境222のインフラストラクチャの管理をしてもよい。
【0077】
仮想化ストレージ224-3は、コンピューティングリソース224のストレージシステムまたはデバイスの中で仮想化技法を使用する1つ以上のストレージシステムおよび/または1つ以上の装置を含む。実施形態において、ストレージシステムのコンテキストの中で、仮想化のタイプはブロック仮想化およびファイル仮想化を含み得る。ブロック仮想化は、物理ストレージからの論理ストレージの抽象化(または分離)を指してもよく、その結果、物理ストレージまたは異種構造と無関係にストレージシステムがアクセスされ得る。この分離は、ストレージシステムの管理者がエンドユーザに対しどのようにストレージを管理するかの点で、柔軟性を管理者に認めてもよい。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶される場所との間の依存関係をなくしてもよい。これは、ストレージ使用の最適化、サーバコンソリデーションおよび/または無停止ファイルマイグレーションの実行を可能にしてもよい。
【0078】
ハイパーバイザ224-4は、複数のオペレーティングシステム(例えば「ゲストオペレーティングシステム」)がコンピューティングリソース224などのホストコンピュータ上で同時に実行できるようにするハードウェア仮想化技法を提供する。ハイパーバイザ224-4は、ゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提示してもよく、ゲストオペレーティングシステムの実行を管理してもよい。様々なオペレーティングシステムの複数のインスタンスが、仮想化ハードウェアリソースを共有し得る。
【0079】
ネットワーク230は、1つ以上の有線および/または無線ネットワークを含む。例えば、ネットワーク230は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体ネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらまたは他のタイプのネットワークの組み合わせである。
【0080】
図2に示される装置およびネットワークの数および配置は、例として提供される。実際には、
図2に示されるものと比べて、追加の装置および/またはネットワーク、より少ない装置および/またはネットワーク、異なる装置および/またはネットワーク、または別様に配置された装置および/またはネットワークがあり得る。さらに、
図2に示されている2つ以上の装置が単一の装置内に実装されてもよく、または、
図2に示されている単一の装置が複数の分散型装置として実装されてもよい。さらに、または代わりに、環境200の装置のセット(例えば、1つ以上の装置)が、環境200の装置の別のセットにより実行されるものとして記載されている1つ以上の機能を実行し得る。
【0081】
図3は、装置300の例示的なコンポーネントの図である。装置300は、ユーザ装置210および/またはプラットフォーム220に対応し得る。
図3に示されているように、装置300は、バス310、プロセッサ320、メモリ330、ストレージコンポーネント340、入力コンポーネント350、出力コンポーネント360および通信インタフェース370を含み得る。
【0082】
バス310は、装置300のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ320は、ハードウェア、ファームウェアまたはハードウェアとソフトウェアとの組み合わせにおいて実装される。プロセッサ320は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、アクセラレーテッド処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)または別のタイプの処理コンポーネントである。実施形態において、プロセッサ320は、機能を実行するようにプログラムできる1つ以上のプロセッサを含む。メモリ330は、プロセッサ320により使用される情報および/または命令を記憶するランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)および/または別のタイプの動的もしくは静的ストレージ装置(例えば、フラッシュメモリ、磁気メモリおよび/もしくは光学メモリ)を含む。
【0083】
ストレージコンポーネント340は、装置300の動作および使用に関係する情報および/またはソフトウェアを記憶する。例えば、ストレージコンポーネント340は、ハードディスク(例えば、磁気ディスク、光学ディスク、光磁気ディスクおよび/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープおよび/または別のタイプの非一時的なコンピュータ可読媒体を、対応するドライブとともに含み得る。
【0084】
入力コンポーネント350は、装置300が、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチおよび/またはマイクロフォン)などを介して情報を受信することを可能にするコンポーネントを含む。さらに、または代わりに、入力コンポーネント350は、情報を感知するセンサ(例えば、グローバルポジショニングシステム(GPS)コンポーネント、加速度計、ジャイロスコープおよび/またはアクチュエータ)を含んでもよい。出力コンポーネント360は、装置300からの出力情報を提供するコンポーネントを含む(例えば、ディスプレイ、スピーカおよび/または1つ以上の発光ダイオード(LED))。
【0085】
通信インタフェース370は、装置300が有線接続、無線接続または有線接続と無線接続との組み合わせなどを介して他の装置と通信することを可能にする、トランシーバのようなコンポーネント(例えば、トランシーバおよび/または別々の受信機および送信機)を含む。通信インタフェース370は、装置300が、別の装置から情報を受信し、および/または別の装置に情報を提供することを可能にしてもよい。例えば、通信インタフェース370は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラネットワークインタフェースまたは同様のものを含み得る。
【0086】
装置300は、本願明細書に記載された1つ以上のプロセスを実行してもよい。装置300は、メモリ330および/またはストレージコンポーネント340などの非一時的なコンピュータ可読媒体により記憶されたソフトウェア命令をプロセッサ320が実行するのに基づいてこれらのプロセスを実行し得る。本願明細書において、コンピュータ可読媒体は非一時的なメモリ装置と定義される。メモリ装置は、単一の物理ストレージ装置内のメモリ空間または複数の物理ストレージ装置にまたがったメモリ空間を含む。
【0087】
ソフトウェア命令は、メモリ330および/またはストレージコンポーネント340に別のコンピュータ可読媒体から、または通信インタフェース370を介して別の装置から読み込まれてもよい。メモリ330および/またはストレージコンポーネント340に記憶されたソフトウェア命令は、実行されると本願明細書に記載された1つ以上のプロセスをプロセッサ320に実行させてもよい。さらに、または代わりに、本願明細書に記載の1つ以上のプロセスを実行するために、配線による回路構成がソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用されてもよい。したがって、本願明細書に記載された実施形態は、ハードウェア回路とソフトウェアとのいかなる特定の組み合わせにも限定されない。
【0088】
図3に示されたコンポーネントの数および配置は、例として示されている。実際には、装置300は、
図3に示されたものと比べて、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネントまたは別様に配置されたコンポーネントを含み得る。さらに、または代わりに、装置300のコンポーネントのセット(例えば、1つ以上のコンポーネント)が、装置300のコンポーネントの別のセットにより実行されるものとして記載されている1つ以上の機能を実行し得る。
【0089】
前述の開示は、例示および説明を提供するが、網羅的であることも、実装を開示された厳密な形態に限定することも意図していない。上記の開示を考慮して変更および変形を考え得るし、または実装の実践から変更および変形が習得されるかもしれない。
【0090】
本願明細書で使用されるとき、コンポーネントという用語は、ハードウェア、ファームウェアおよび/またはハードウェアとソフトウェアとの組み合わせとして広く解釈されるよう意図される。
【0091】
当然のことながら、本願明細書に記載されたシステムおよび/または方法は、異なる形態のハードウェア、ファームウェアまたはハードウェアとソフトウェアとの組み合わせに実装されてもよい。これらのシステムおよび/または方法を実装するために使用される実際の専用制御ハードウェアまたはソフトウェアコードは、実装を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本願明細書に記載されたが、当然のことながら、ソフトウェアおよびハードウェアを、本願明細書の記載に基づきシステムおよび/または方法を実装するよう設計できる。
【0092】
特徴の特定の組み合わせが特許請求の範囲に記載されおよび/または明細書で開示されるが、これらの組み合わせは可能な実装の開示を限定することを意図されたものではない。実際には、これらの特徴の多くが、具体的に特許請求の範囲に記載および/または明細書に開示されなかった形で組み合わされてもよい。下記に列挙される各従属請求項は、1つのみの請求項に直接従属するかもしれないが、可能な実装の開示は、請求項のセットの中の他のすべての請求項と組み合わせた各従属請求項を含む。
【0093】
本願明細書で使用されるいずれの構成要素、動作または命令も、重要または必須とは、そのように明示的に記載されない限りは、解釈されてはならない。さらに、本願明細書で使用されるとき、冠詞「a」および「an」は、1つ以上の項目を含むよう意図され、「1つ以上」と交換可能なように使用され得る。さらに、本願明細書で使用されるとき、「セット」という用語は、1つ以上の項目(例えば、関係する項目、無関係の項目、関係する項目と無関係の項目との組み合わせなど)を含むよう意図され、「1つ以上」と交換可能なように使用され得る。1つのみの項目が意図される場合、「1つの」という用語または同様の文言が使用される。さらに、本願明細書で使用されるとき、「有する、有している」という用語または同様のものは、非限定的な用語であるものと意図される。さらに、「に基づき」という語句は、別段の記載が明示的にされない限り「少なくとも一部に基づき」を意味するよう意図される。