(57)【要約】一例において、ビデオデータを送信するための方法は、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込むことと、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、ソースデバイスによって、シンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力することとを含む。【選択図】図７Ａ
2018500854.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを送信するための方法であって、
それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込むことと、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前記複数のセットの前のセットの長さと同一であるとの決定に応答して、ソースデバイスによって、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力することと
を備える、方法。
【請求項２】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、請求項１に記載の方法。
【請求項３】
前記リストは、指数ゴロムコーディングを使用して符号化される、請求項２に記載の方法。
【請求項４】
グラフィカルコマンドトークンの前記現在のセットの長さが、グラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力すること
をさらに備える、請求項１に記載の方法。
【請求項５】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、前記方法は、
グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの前記長さとは異なるとの決定に応答して、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することと
をさらに備える、請求項１に記載の方法。
【請求項６】
グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
を備える、請求項５に記載の方法。
【請求項７】
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項５に記載の方法。
【請求項８】
グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することをさらに備える、請求項４に記載の方法。
【請求項９】
前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することをさらに備える、請求項１に記載の方法。
【請求項１０】
メモリと、
１つまたは複数のプロセッサと、
それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込み、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前記複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力する
ために、前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるソースデバイス。
【請求項１１】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、請求項１０に記載のソースデバイス。
【請求項１２】
前記リストは、指数ゴロムコーディングを使用して符号化される、請求項１１に記載のソースデバイス。
【請求項１３】
グラフィカルコマンドトークンの前記現在のセットの長さが、グラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１４】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１５】
前記少なくとも１つのモジュールは、少なくとも、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
によってグラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することを前記１つまたは複数のプロセッサによって実行可能である、請求項１４に記載のソースデバイス。
【請求項１６】
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項１４に記載のソースデバイス。
【請求項１７】
前記少なくとも１つのモジュールは、グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１３に記載のソースデバイス。
【請求項１８】
前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１９】
ビデオデータを受信するための方法であって、
シンクデバイスによって、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信することと、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成することと、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることと
を備える、方法。
【請求項２０】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さと同一である場合に、フレームベースの圧縮を使用して圧縮される、請求項１９に記載の方法。
【請求項２１】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さとは異なる場合に圧縮されない、請求項１９に記載の方法。
【請求項２２】
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することは、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することを備える
請求項１９に記載の方法。
【請求項２３】
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定することと、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成することと
をさらに備える、請求項１９に記載の方法。
【請求項２４】
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項２３に記載の方法。
【請求項２５】
グラフィカルコマンドトークンの前記現在のセットは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分に類似する場合に、トークンベースの圧縮を使用して圧縮される、請求項２３に記載の方法。
【請求項２６】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分には類似しない場合に、圧縮されない、請求項２５に記載の方法。
【請求項２７】
メモリと、
１つまたは複数のプロセッサと、
ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信し、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成し、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることを
前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるシンクデバイス。
【請求項２８】
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
前記少なくとも１つのモジュールは、少なくとも、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することによって、グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することを前記１つまたは複数のプロセッサによって実行可能である
請求項２７に記載のシンクデバイス。
【請求項２９】
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、前記少なくとも１つのモジュールは、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定し、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、請求項２７に記載のシンクデバイス。
【請求項３０】
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む
請求項２９に記載のシンクデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、ソースデバイスからシンクデバイスへビデオをストリーミングするための技法に関する。
【背景技術】
【０００２】
[0002]  ワイヤレスディスプレイ（ＷＤ）システムは、ソースデバイスと１つまたは複数のシンクデバイスとを含む。ソースデバイスとシンクデバイスの各々とは、ワイヤレス通信機能を有する有線デバイスまたはモバイルデバイスのいずれかであり得る。例えば、モバイルデバイスとして、ソースデバイスおよびシンクデバイスのうちの１つまたは複数は、携帯電話機、タブレットコンピュータ、ラップトップコンピュータ、ワイヤレス通信カード付きポータブルコンピュータ、携帯情報端末（ＰＤＡ）、ワイヤレスゲームデバイス、ポータブルメディアプレーヤ、またはワイヤレス通信機能を有する他のフラッシュメモリデバイスを備え得る。モバイルデバイスはまた、いわゆる「スマート」フォンと「スマート」パッドもしくはタブレットと、または他のタイプのワイヤレス通信デバイスを含み得る。例えば
、有線デバイスとして、ソースデバイスおよびシンクデバイスのうちの１つまたは複数は、ワイヤレス通信機能を含む、テレビジョン、デスクトップコンピュータ、モニタ、プロジェクタ、および類似物を備え得る。
【０００３】
[0003]  ソースデバイスは、特定の通信セッションに参加するシンクデバイスのうちの１つまたは複数に、オーディオデータおよび／またはビデオデータなどのメディアデータを送る。メディアデータは、ソースデバイスのローカルディスプレイとシンクデバイスのディスプレイの各々との両方で再生され得る。より具体的には、参加するシンクデバイスの各々は、受信されたメディアデータをそのディスプレイ機器とオーディオ機器とにレンダリングする。
【発明の概要】
【０００４】
[0004]  全般的に、本開示は、圧縮されたグラフィカルコマンドトークン(compressed graphical command tokens)を使用してソースデバイス(source device)からシンクデバイス(sink device)にビデオデータを送信するための技法について説明する。
【０００５】
[0005]  一例において、ビデオデータを送信するための方法は、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込む(capturing)ことと、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、ソースデバイスによって、シンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力することとを含む。
【０００６】
[0006]  別の例において、ソースデバイスは、メモリと、１つまたは複数のプロセッサと、１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールとを含む。この例において、少なくとも１つのモジュールは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込み、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力することを、１つまたは複数のプロセッサによって実行可能である。
【０００７】
[0007]  別の例において、ソースデバイスは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込むための手段と、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力するための手段とを含む。
【０００８】
[0008]  別の例において、非一時的コンピュータ可読記憶媒体は、実行されたときに、ソースデバイスの１つまたは複数のプロセッサに、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込ませる命令と、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力させる命令とを記憶する。
【０００９】
[0009]  別の例において、ビデオデータを受信するための方法は、シンクデバイスによって、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況(compression status)の指示(indication)とを受信することと、ここにおいて、グラフィカルコマンドトークンの現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの現在のセットの再構成されたバージョン(reconstructed version)を生成することと、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることとを含む。
【００１０】
[0010]  別の例において、シンクデバイスは、メモリと、１つまたは複数のプロセッサと、１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールとを含む。この例において、少なくとも１つのモジュールは、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況の指示とを受信し、ここにおいて、グラフィカルコマンドトークンの現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタ(received delta)に基づいて、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成し、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることを１つまたは複数のプロセッサによって実行可能である。
【００１１】
[0011]  別の例において、シンクデバイスは、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況の指示とを受信するための手段と、ここにおいて、グラフィカルコマンドトークンの現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成するための手段と、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングするための手段とを含む。
【００１２】
[0012]  別の例において、非一時的コンピュータ可読記憶媒体は、実行されたときに、シンクデバイスの１つまたは複数のプロセッサに、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況の指示とを受信させる命令と、ここにおいて、グラフィカルコマンドトークンの現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成させる命令と、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングさせる命令とを記憶する。
【００１３】
[0013]  １つまたは複数の例の詳細は、添付図面と下の説明とに示されている。他の特徴、目的、および利点は、この説明と図面と特許請求の範囲とから明白になる。
【図面の簡単な説明】
【００１４】
【図１】本開示の１つまたは複数の技法による、シンクデバイスにビデオフレームをストリーミングするためにソースデバイスによって出力され得る例のコマンドフレーム１００を示す概念図。
【図２】本開示の１つまたは複数の技法による、グラフィカルコマンドトークンの一例のさらなる詳細を示す概念図。
【図３】本開示の１つまたは複数の技法による、ソースデバイスが、通信チャネルを介してシンクデバイスに圧縮されたグラフィカルコマンドを送信するように構成される、例のワイヤレスディスプレイ（ＷＤ： wireless display）システムを示す概念図。
【図４】本開示の１つまたは複数の技法による、ソースデバイス４が通信チャネル８を介してシンクデバイス６にビデオデータをストリーミングするように構成される、図３のソースデバイス４とシンクデバイス６との一例のさらなる詳細を示すブロック図。
【図５Ａ】本開示の１つまたは複数の技法による、トークンベースの圧縮を行うためにソースデバイスによって分析され得るトークンの例のセットを示す概念図。
【図５Ｂ】本開示の１つまたは複数の技法による、トークンベースの圧縮を行うためにソースデバイスによって分析され得るトークンの例のセットを示す概念図。
【図５Ｃ】本開示の１つまたは複数の技法による、トークンベースの圧縮を行うためにソースデバイスによって分析され得るトークンの例のセットを示す概念図。
【図６Ａ】本開示の１つまたは複数の技法による、シンクデバイスにビデオフレームをストリーミングするためにソースデバイスによって出力され得る例のコマンドフレームを示す概念図。
【図６Ｂ】本開示の１つまたは複数の技法による、シンクデバイスにビデオフレームをストリーミングするためにソースデバイスによって出力され得る例のコマンドフレームを示す概念図。
【図７Ａ】本開示の１つまたは複数の技法による、シンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図。
【図７Ｂ】本開示の１つまたは複数の技法による、シンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図。
【図８】本開示の１つまたは複数の技法による、フレームベースの圧縮を使用してシンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図。
【図９】本開示の１つまたは複数の技法による、トークンベースの圧縮を使用してシンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図。
【図１０】本開示の１つまたは複数の技法による、ソースデバイスからストリーミングビデオデータを受信するためのシンクデバイスの例の動作を示す流れ図。
【図１１】本開示の１つまたは複数の技法による、ソースデバイスから受信されたストリーミングビデオデータに対してフレームベースの再構成を行うためのシンクデバイスの例の動作を示す流れ図。
【図１２】本開示の１つまたは複数の技法による、ソースデバイスから受信されたストリーミングビデオデータに対してトークンベースの再構成を行うためのシンクデバイスの例の動作を示す流れ図。
【図１３】本開示の１つまたは複数の技法による、ソースデバイスが、通信チャネルを介してシンクデバイスに圧縮されたグラフィカルコマンドを送信するように構成される、ＷＤシステム内の例のデータフローを示す概念図。
【図１４】本開示のもう１つの技法による、フレーム番号の関数としてデータレートを示すグラフ。
【図１５】本開示のもう１つの技法による、変化する圧縮技法を使用して、複数のアプリケーションのビデオデータをストリーミングするのに使用されるデータの量を示すグラフ。
【図１６】本開示のもう１つの技法による、変化する圧縮技法を使用して、複数のアプリケーションのビデオデータをストリーミングするのに使用されるデータの量を示すグラフ。
【発明を実施するための形態】
【００１５】
[0030]  本開示は、ソースデバイスからシンクデバイスへビデオをストリーミングするための技法について説明する。いくつかの例において、ソースデバイスは、ソースデバイスのフレームバッファから複数の構成されたフレームを取り込むことと、取り込まれたフレームをシンクデバイスに送信することとによってシンクデバイスにビデオをストリーミングでき、このシンクデバイスは、次いで、シンクデバイスのディスプレイに複数のイメージを表示し得る。この方法は、「画素領域(pixel domain)」送信法と呼ばれ得る。しかしながら、いくつかの例では、取り込まれたイメージの送信に要求される高い平均データレートに起因して、画素領域法を使用することが望ましくないことがある。
【００１６】
[0031]  その代わりに、いくつかの例では、「グラフィックス領域(graphics domain)」送信法が、シンクデバイスに複数の分解されたビデオフレームをストリーミングするためにソースデバイスによって使用され得る。グラフィックス領域送信は、複数のグラフィックスコマンドトークン（例えば、ＯｐｅｎＧＬ（登録商標）コマンドのトークン）および複数のテクスチャ要素の形式にあるディスプレイデータをソースデバイスのＧＰＵの入力で取り込み、シンクデバイスにこれらコマンドトークンおよびテクスチャ要素を送信することによって達成され得る。シンクデバイスのＧＰＵは、これらコマンドトークンおよびテクスチャ要素を表示可能な複数のフレームにレンダリングし、シンクデバイスのディスプレイにこれらレンダリングされたフレームを出力し得る。
【００１７】
[0032]  いくつかの例では、連続するフレームをレンダリングするのに使用されるグラフィカルコマンドトークンが、類似することがある。例えば、フレームｎをレンダリングするのに使用されるグラフィカルコマンドトークンが、フレームｎ＋１をレンダリングするのに使用されるグラフィカルコマンドトークンに類似することがある。本開示の１つまたは複数の技法によれば、フレームごとに完全なグラフィカルコマンドトークンを送信するのではなく、ソースデバイスは、１つまたは複数のフレームのグラフィカルコマンドトークンを圧縮するのにこの冗長性を活用し得る。いくつかの例において、ソースデバイスは、予測フレームベースのコーディングとトークンベースのコーディングとの一方または両方を使用してグラフィカルコマンドトークンを圧縮し得る。このように、ソースデバイスは、グラフィカルコマンドトークンの送信のために要求されるデータレートを低下させ得る。
【００１８】
[0033]  図１は、本開示の１つまたは複数の技法による、シンクデバイスにビデオフレームをストリーミングするためにソースデバイスによって出力され得る例のコマンドフレーム１００を示す概念図である。図１に示されているように、コマンドフレーム１００は、フレーム開始フィールド１０２と、フレームデータフィールド１０４と、フレーム終了フィールド１０６とを含む。
【００１９】
[0034]  いくつかの例において、フレーム開始フィールド１０２は、開始フラグ１０８とフレーム番号フィールド１１２とを含み得る。いくつかの例において、フレーム開始フィールド１０２は、コマンドフレーム１００の始め（すなわち、データストリーム内の）を示し得る。いくつかの例において、フレーム番号フィールド１１２は、コマンドフレーム１００のシーケンス番号を示し得る。いくつかの例において、フレーム番号フィールド１１２の値は、後続フレームに関して増分し得る。例えば、フレーム番号フィールド１１２の値は、現在のフレームについてｎ、次のフレームについてｎ＋１とされ得る。
【００２０】
[0035]  いくつかの例において、フレームデータフィールド１０２は、複数のグラフィカルコマンドトークン１１４Ａ〜１１４Ｎ（集合的に「トークン１１４」）を含み得る。トークン１１４の各々は、グラフィカルコマンドの特定のトークンに対応し得る。トークン１１４のトークンの一例のさらなる詳細は、下で図２を参照して提供される。
【００２１】
[0036]  いくつかの例において、フレーム終了フィールド１０６は、終了フラグ１１６とフレーム番号フィールド１２０とを含み得る。いくつかの例において、フレーム終了フィールド１１６は、フレーム終了フィールド１０６の始め（すなわち、データストリーム内の）を示し得る。いくつかの例において、フレーム番号フィールド１２０は、コマンドフレーム１００のシーケンス番号を示し得る。
【００２２】
[0037]  図２は、本開示の１つまたは複数の技法による、グラフィカルコマンドトークンの一例のさらなる詳細を示す概念図である。図２に示されているように、トークン１１４Ａは、トークンヘッダフィールド１２２とトークンデータフィールド１２４とを含み得る。
【００２３】
[0038]  いくつかの例において、トークンヘッダフィールド１１２は、トークン１１４Ａの１つまたは複数の特性を示し得る。いくつかの例において、トークンヘッダフィールド１１２は、１２バイトなどの固定長とされ得る。図２に示されているように、トークンヘッダフィールド１１２は、トークンタイプ１２６とトークンデータサイズ１３０とを含み得る。トークンタイプ１２６は、グラフィカルコマンドのセットのどのグラフィカルコマンドがトークン１１４Ａに対応するのか（すなわち、トークン１１４Ａがどのグラフィカルコマンドのトークンであるのか）を示し得る。トークンデータサイズ１３０は、トークンデータフィールド１２４のサイズ（例えば、バイト単位）を示し得る。
【００２４】
[0039]  トークンデータフィールド１２４は、トークン１１４Ａの１つまたは複数の引数を示し得る。例えば、トークンタイプ１２６によって示されるグラフィカルコマンドタイプが、２つの引数をとる場合に、トークンデータフィールド１２４は、その２つの引数のデータを含み得る。
【００２５】
[0040]  図３は、本開示の１つまたは複数の技法による、ソースデバイスが、通信チャネルを介してシンクデバイスに圧縮されたグラフィカルコマンドを送信するように構成される、例のワイヤレスディスプレイ（ＷＤ）システムの概念図である。図３に示されているように、ＷＤシステム２は、ソースデバイス４と、シンクデバイス６と、通信チャネル８とを含む。
【００２６】
[0041]  通信チャネル８は、ソースデバイス４とシンクデバイス６との間で伝達信号を伝搬可能な任意のチャネルとされ得る。いくつかの例において、通信チャネル８は、ワイヤレス通信チャネルとされ得る。例えば、通信チャネル８は、２．４ギガヘルツ（ＧＨｚ）帯、５ＧＨｚ帯、６０ＧＨｚ帯、または他の周波数帯などの周波数帯での無線周波数通信で実施され得る。いくつかの例において、通信チャネル８は、ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）（ＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍによって奨励される）、Ｗｉ−Ｆｉ（登録商標）（Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅ（登録商標）によって奨励される）、ＷｉＧｉｇ（Ｗｉｒｅｌｅｓｓ  Ｇｉｇａｂｉｔ  Ａｌｌｉａｎｃｅによって奨励される）、および／または標準規格の米国電気電子技術者協会（ＩＥＥＥ）８０２．１１セット（例えば、８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、８０２．１１ａｃ、８０２．１１ａｄ、その他）、あるいは他の標準規格、プロトコル、または技術など、標準規格、プロトコル、または技術の１つまたは複数のセットに従い得る。２．４ＧＨｚ帯、５ＧＨｚ帯、６０ＧＨｚ帯などの使用される周波数帯は、Ｗｉ−Ｆｉの標準規格、ＷｉＧｉｇの標準規格、任意の１つもしくは複数のＩＥＥＥ  ８０２．１１プロトコル、または他の適用可能な標準規格もしくはプロトコルに照らして理解されるので、本開示のために定義され得る。
【００２７】
[0042]  ＷＤ  ２は、通信チャネル８などの通信チャネルを介して、シンクデバイス６などのシンクデバイスに圧縮されたグラフィカルコマンドトークンの形でビデオデータを送信するように構成され得るソースデバイス４を含み得る。ソースデバイス４の例は、スマートフォンもしくは他のモバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス（例えば、スマートウォッチ、バイザ、および類似物）、１つもしくは複数の処理ユニットもしくは他の集積回路もしくはチップセット、または他の電子デバイスなどのモバイルデバイスを含み得るが、これに限定はされない。図３の例に示されているように、ソースデバイス４は、通信モジュール１０と、グラフィックス処理ユニット（ＧＰＵ）１２と、ストリーミングモジュール１４と、テクスチャ要素１６と、アプリケーションモジュール１８Ａ〜１８Ｎとを含み得る。
【００２８】
[0043]  ソースデバイス４は、ソースデバイス４と、シンクデバイス６などの１つまたは複数の外部デバイスとの間の通信を管理し得る通信モジュール１０を含み得る。例えば、通信モジュール１０は、通信チャネル８を介してシンクデバイス６とデータを交換し得る。一例として、通信モジュール１０は、通信チャネル８を介してシンクデバイス６に圧縮されたグラフィカルコマンドトークンをストリーミングし得る。いくつかの例において、通信モジュール１０は、ソースデバイス４の他の構成要素から送信された情報を受信し得る。例えば、通信モジュール１０は、ストリーミングモジュール１４から圧縮されたグラフィカルコマンドトークンを受信し得る。
【００２９】
[0044]  ソースデバイス４は、１つまたは複数のテクスチャ要素とグラフィカルコマンドトークンとに基づいて、ビデオデータのフレームをレンダリングし得るＧＰＵ  １２を含み得る。ＧＰＵ  １２によって行われ得るグラフィカルコマンドのいくつかの例は、Ｍｉｃｒｏｓｏｆｔ（登録商標）によるＤｉｒｅｃｔＸ（登録商標）ＡＰＩ、Ｋｈｒｏｎｏｓ  ｇｒｏｕｐによるＯｐｅｎＧＬ（登録商標）ＡＰＩ、およびＯｐｅｎＣＬ（登録商標）ＡＰＩを含むが、これに限定はされない。いくつかの例において、ＧＰＵ  １２は、アプリケーションモジュール１８のうちの１つまたは複数に関連付けられたグラフィカルコマンドトークンとテクスチャ要素とに基づいてビデオデータのフレームをレンダリングし得る。例えば、ＧＰＵ  １２は、ソースデバイス４に動作可能に結合されまたはソースデバイス４内に含まれるディスプレイでの出力のために、アプリケーションモジュール１８の１つのアプリケーションモジュールに関連付けられたグラフィカルコマンドトークンとテクスチャ要素とに基づいてビデオデータのフレームをレンダリングし得る。
【００３０】
[0045]  ソースデバイス４は、１つまたは複数の外部デバイスにビデオデータをストリーミングするように構成され得るストリーミングモジュール１４を含み得る。例えば、ストリーミングモジュール１４は、シンクデバイス６にグラフィカルコマンドトークンとテクスチャ要素との形のビデオデータをストリーミングし得る。いくつかの例において、ストリーミングモジュール１４は、図１のコマンドフレーム１００などのコマンドフレーム内にグラフィカルコマンドトークンをカプセル化し得る。いくつかの例において、ストリーミングモジュール１４は、ＧＰＵ  １２の入力でグラフィカルコマンドトークンおよび／またはテクスチャ要素１６を取り込み得る。いくつかの例において、完全なグラフィカルコマンドトークンを出力するのではなく、ストリーミングモジュール１４は、グラフィカルコマンドトークンの圧縮されたバージョンを出力し得る。いくつかの例において、ストリーミングモジュール１４は、予測フレームベースのコーディングとトークンベースのコーディングとの一方または両方を使用してグラフィカルコマンドトークンの圧縮されたバージョンを生成し得る。
【００３１】
[0046]  いくつかの例において、グラフィカルコマンドトークンの圧縮されたバージョンに加えて、ストリーミングモジュール１４は、グラフィカルコマンドトークンの圧縮状況の指示を出力し得る。例えば、ストリーミングモジュール１４は、グラフィカルコマンドトークンのバージョンと、グラフィカルコマンドトークンのそのバージョンが、圧縮されていない、予測フレームベースのコーディングを使用して圧縮されている、またはトークンベースのコーディングを使用して圧縮されているのどれであるのかの指示とを含むコマンドフレームを出力し得る。
【００３２】
[0047]  ソースデバイス４は、それぞれがソースデバイス４を製造するエンティティによって提供されたアプリケーション、ソースデバイス４上で動作するソフトウェア、またはソースデバイス４と共に使用するためにサードパーティによって開発されたアプリケーションを表し得るアプリケーションモジュール１８を含み得る。アプリケーションモジュール１８の例は、ゲーム、買物、旅行ルーティング、地図、オーディオおよび／またはビデオプレゼンテーション、ワードプロセッシング、スプレッドシート、音声および／または電話、天気、その他のためのアプリケーションを含み得る。
【００３３】
[0048]  ソースデバイス４は、ビデオデータのフレームをレンダリングするためにＧＰＵによって利用され得るテクスチャ要素１６を含み得る。いくつかの例では、テクスチャ要素１６のうちの１つまたは複数が、アプリケーションモジュール１８の特定のアプリケーションモジュールに関連付けられ得る。例えば、アプリケーションモジュール１８のゲーミングアプリケーションが、落下する果物（例えば、西瓜、アボカド、パイナップルなど）のスライシングを伴う場合に、そのゲーミングアプリケーションに関連付けられ得るテクスチャ要素１６の例のテクスチャ要素は、果物のタイプの各々のグラフィカル表現(graphical representation)を含む。いくつかの例において、テクスチャ要素１６は、複数のフォーマットで記憶され得る。いくつかの例のフォーマットは、ＲＧＢα  ８８８８、ＲＧＢα  ４４４４、ＲＧＢα  ５５５１、ＲＧＢ  ５６５、Ｙα  ８８、およびα  ８を含むが、これに限定はされない。
【００３４】
[0049]  ＷＤ  ２は、通信チャネル８などの通信チャネルを介してソースデバイス４などのソースデバイスから圧縮されたグラフィカルコマンドトークンの形のビデオデータを受信するように構成され得るシンクデバイス６を含み得る。シンクデバイス６の例は、スマートフォンまたは他のモバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス（例えば、スマートウォッチ、バイザ、および類似物）、テレビジョン、モニタ、１つもしくは複数の処理ユニットもしくは他の集積回路もしくはチップセット、または他の電子デバイスなどのモバイルデバイスを含み得るが、これに限定はされない。図３の例に示されているように、シンクデバイス６は、通信モジュール１９と、グラフィックス処理ユニット（ＧＰＵ）２０と、ストリーミングモジュール２２と、テクスチャ要素２４とを含み得る。
【００３５】
[0050]  シンクデバイス６は、シンクデバイス６とソースデバイス４などの１つまたは複数の外部デバイスとの間の通信を管理し得る通信モジュール１９を含み得る。いくつかの例において、通信モジュール１９は、ソースデバイス４の通信モジュール１０に類似する動作を行い得る。例えば、通信モジュール１９は、通信チャネル８を介してソースデバイス４とデータを交換し得る。一例として、通信モジュール１９は、直接Ｗｉ−Ｆｉ接続を介してソースデバイス４からグラフィカルコマンドトークンとテクスチャ要素とを受信し得る。いくつかの例において、通信モジュール１９は、シンクデバイス６の他の構成要素に受信された情報を提供し得る。例えば、通信モジュール１９は、ストリーミングモジュール２２に受信されたグラフィカルコマンドトークンとテクスチャ要素とを提供し得る。
【００３６】
[0051]  シンクデバイス６は、ソースデバイス４のＧＰＵ  １２に類似する動作を行い得るＧＰＵ  ２０を含み得る。例えば、ＧＰＵ  ２０は、１つまたは複数のテクスチャ要素とグラフィカルコマンドトークンとに基づいてビデオデータのフレームをレンダリングし得る。いくつかの例において、ＧＰＵ  ２０は、ＧＰＵ  １２と同一のグラフィカルコマンドを実行可能であり得る。ＧＰＵ  ２０によって実行され得るグラフィカルコマンドのいくつかの例は、Ｍｉｃｒｏｓｏｆｔ（登録商標）によるＤｉｒｅｃｔＸ（登録商標）ＡＰＩ、Ｋｈｒｏｎｏｓ  ｇｒｏｕｐによるＯｐｅｎＧＬ（登録商標）ＡＰＩ、およびＯｐｅｎＣＬ（登録商標）ＡＰＩを含むが、これに限定はされない。いくつかの例において、ＧＰＵ  ２０は、ストリーミングモジュール２２など、シンクデバイス６の１つまたは複数の他の構成要素から受信されたグラフィカルコマンドトークンとテクスチャ要素とに基づいてビデオデータのフレームをレンダリングし得る。例えば、ＧＰＵ  ２０は、シンクデバイス６に動作可能に結合されまたはシンクデバイス６内に含まれるディスプレイでの出力のために、ストリーミングモジュール２２から受信された関連付られたグラフィカルコマンドトークンとテクスチャ要素とに基づいてビデオデータのフレームをレンダリングし得る。
【００３７】
[0052]  シンクデバイス６は、１つまたは複数の外部デバイスからストリーミングビデオデータを受信するように構成され得るストリーミングモジュール２２を含み得る。例えば、ストリーミングモジュール２２は、ソースデバイス４からグラフィカルコマンドトークンとテクスチャ要素との形のストリーミングビデオデータを受信し得る。いくつかの例において、ストリーミングモジュール２２によって受信されたグラフィカルコマンドトークンは、図１のコマンドフレーム１００などのコマンドフレーム内にカプセル化され得る。そのような例において、ストリーミングモジュール２２は、グラフィカルコマンドトークンをカプセル化解除するように構成され得る。いくつかの例において、完全なグラフィカルコマンドトークンを受信するのではなく、ストリーミングモジュール２２は、圧縮されたグラフィカルコマンドトークンを受信することがある。そのような例において、ストリーミングモジュール２２は、受信された圧縮されたグラフィカルコマンドトークンに基づいて、グラフィカルコマンドトークンを再構成するように構成され得る。
【００３８】
[0053]  いくつかの例において、圧縮されたグラフィカルコマンドトークンに加えて、ストリーミングモジュール２２は、圧縮されたグラフィカルコマンドトークンの圧縮状況の指示を受信し得る。例えば、ストリーミングモジュール２２は、グラフィカルコマンドトークンのバージョンと、グラフィカルコマンドトークンの受信されたバージョンが、圧縮されていない、予測フレームベースのコーディングを使用して圧縮されている、またはトークンベースのコーディングを使用して圧縮されているのどれであるのかの指示とを含むコマンドフレームを受信し得る。
【００３９】
[0054]  シンクデバイス６は、ビデオデータのフレームをレンダリングするためにＧＰＵによって利用され得るテクスチャ要素２４を含み得る。いくつかの例において、ストリーミングモジュール２２は、ソースデバイス４から受信されたテクスチャ要素をテクスチャ要素２４に記憶し得る。
【００４０】
[0055]  ソースデバイス４のユーザが、ソースデバイス４からシンクデバイス６にビデオをストリーミングすることを望むことがある。例えば、ソースデバイス４のディスプレイのサイズが、シンクデバイス６のディスプレイのサイズより小さい場合に、ソースデバイス４のユーザが、ビデオを出力するのにシンクデバイス６のより大きいディスプレイを利用することを望むことがある。しかしながら、例えば帯域幅制限、処理能力、および類似物に起因して、ソースデバイス４からシンクデバイス６にビデオデータの構成されたフレームを送信することが、望ましくないことがある。本開示の１つまたは複数の技法によれば、ストリーミングモジュール１４ソースデバイス４は、シンクデバイス６のＧＰＵ  ２０にビデオデータのフレームをレンダリングさせるために、通信チャネル８を介してシンクデバイス６のストリーミングモジュール２２にグラフィカルコマンドトークンと１つまたは複数のテクスチャ要素とを出力し得る。このように、画素領域でビデオデータをストリーミングするのではなく、ソースデバイス４は、例えばグラフィカルコマンドとテクスチャ要素とをストリーミングすることによって、グラフィックス領域でシンクデバイス６にビデオデータをストリーミングし得る。
【００４１】
[0056]  いくつかの例では、連続するフレームをレンダリングするのに使用されるグラフィカルコマンドトークンが、類似することがある。例えば、フレームｎをレンダリングするのに使用されるグラフィカルコマンドトークンが、フレームｎ＋１をレンダリングするのに使用されるグラフィカルコマンドトークンに類似することがある。本開示の１つまたは複数の技法によれば、フレームごとに完全なグラフィカルコマンドトークンを送信するのではなく、ソースデバイス４は、１つまたは複数のフレームのグラフィカルコマンドトークンを圧縮するのにこの冗長性を活用し得る。例えば、シンクデバイス６に現在のフレームｎをレンダリングさせるために、ソースデバイス４は、現在のフレームｎのグラフィカルコマンドトークンの圧縮されたバージョンをシンクデバイス６に送信し得る。いくつかの例において、現在のフレームｎのグラフィカルコマンドトークンの圧縮されたバージョンは、フレームｎのグラフィカルコマンドトークンと前のフレームｎ−１のグラフィカルコマンドトークンとの間の差を定義し得る。このように、ソースデバイス４は、現在のフレームｎのグラフィカルコマンドトークンの送信のために要求されるデータレートを低下させ得る。
【００４２】
[0057]  図４は、本開示の１つまたは複数の技法による、ソースデバイス４が通信チャネル８を介してシンクデバイス６にビデオデータをストリーミングするように構成される、図３のソースデバイス４とシンクデバイス６との一例のさらなる詳細を示すブロック図である。
【００４３】
[0058]  図４に示されているように、ソースデバイス４は、１つまたは複数のプロセッサ３０と、１つまたは複数の通信ユニット３２と、１つまたは複数のユーザインターフェース（ＵＩ）デバイス３４と、１つまたは複数のストレージデバイス３６とを含み得る。構成要素３０、３２、３４、および３６の各々は、構成要素間通信のために通信チャネル３８を介して相互接続され得る（物理的に、通信的に、および／または動作可能に）。いくつかの例において、通信チャネル３８は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他のチャネルを含み得る。いくつかの例において、ストレージデバイス３６のうちの１つまたは複数は、通信モジュール１０と、ストリーミングモジュール１４と、テクスチャ要素１６と、１つまたは複数のアプリケーションモジュール１８Ａ〜１８Ｎ（集合的に「アプリケーションモジュール１８」）と、ＵＩモジュール４０とを含み得る。
【００４４】
[0059]  一例において、プロセッサ３０は、機能を実施し、および／またはソースデバイス４内において実行のための命令を処理するように構成される。例えば、プロセッサ３０は、ストレージデバイス３６のうちの１つまたは複数に記憶された命令を処理可能であり得る。プロセッサ３０の例は、任意の１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または任意の他の同等の集積回路もしくはディスクリート論理回路、並びにそのような構成要素の任意の組合せを含み得る。
【００４５】
[0060]  いくつかの例において、ソースデバイス４はまた、複数の１つまたは複数の通信ユニット３２を含む。一例において、ソースデバイス４は、１つまたは複数のワイヤレスネットワークなど、１つまたは複数のネットワークを介して外部デバイスと通信するのに通信ユニット３２のうちの１つまたは複数を利用する。通信ユニット３２のうちの１つまたは複数は、イーサネット（登録商標）カード、光トランシーバ、無線周波数トランシーバ、または情報を送信および受信できる任意の他のタイプのデバイスなど、ネットワークインターフェースカードとされ得る。そのようなネットワークインターフェースの他の例は、Ｂｌｕｅｔｏｏｔｈ（登録商標）、３Ｇ、およびＷｉ−Ｆｉラジオを含み得る。いくつかの例において、ソースデバイス４は、外部デバイスとワイヤレスに通信するのに通信ユニット３２を利用する。例えば、ソースデバイス４は、通信チャネル８を介してシンクデバイス６の通信ユニット５２とワイヤレスに通信するのに通信ユニット３２を利用し得る。いくつかの例において、通信ユニット３２は、通信ユニット３２に外部デバイスと通信させる、通信モジュール１０などのソースデバイス４の他の構成要素から入力を受信し得る。
【００４６】
[0061]  ソースデバイス４はまた、いくつかの例で、１つまたは複数のＵＩデバイス３４を含み得る。いくつかの例において、ＵＩデバイス３４のうちの１つまたは複数は、ビデオデータなどのコンテンツを出力するように構成できる。例えば、ＵＩデバイス３４のディスプレイは、ＧＰＵ  １２によってレンダリングされたビデオデータのフレームを表示するように構成され得る。コンテンツの出力に加えて、ＵＩデバイス３４のうちの１つまたは複数は、触覚入力、オーディオ入力、または視覚入力を受信するように構成され得る。ＵＩデバイス３４のいくつかの例は、ビデオディスプレイ、スピーカ、キーボード、タッチスクリーン、マウス、カメラ、および類似物を含む。
【００４７】
[0062]  ソースデバイス４はまた、いくつかの例で、ＵＩモジュール４０を含み得る。ＵＩモジュール４０は、ソースデバイス４に関連付けられた他の構成要素からのＵＩデータなどのコンテンツを受信して、コンテンツを出力することをＵＩデバイス３４のうちの１つまたは複数にさせる１つまたは複数の機能を行うことができる。いくつかの例において、ＵＩモジュール４０は、ユーザ入力などの入力の指示を受信し、ストリーミングモジュール１４など、ソースデバイス４に関連付けられた他の構成要素に入力の指示を送るように構成され得る。
【００４８】
[0063]  １つまたは複数のストレージデバイス３６は、動作中にソースデバイス４内に情報を記憶するように構成され得る。ストレージデバイス３６のうちの１つまたは複数は、いくつかの例で、コンピュータ可読記憶媒体を備え得る。いくつかの例において、ストレージデバイス３６のうちの１つまたは複数は、一時メモリを備え得るもので、これは、ストレージデバイス３６のうちの１つまたは複数の主な目的が長期記憶ではないことを意味する。ストレージデバイス３６のうちの１つまたは複数は、いくつかの例において揮発性メモリを備え得るもので、これは、システムがオフにされたときに、ストレージデバイス３６のうちの１つまたは複数が、記憶されたコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、および当技術分野で知られている他の形の揮発性メモリを含む。いくつかの例において、ストレージデバイス３６のうちの１つまたは複数は、プロセッサ３０による実行のためのプログラム命令を記憶するのに使用される。ストレージデバイス３６のうちの１つまたは複数は、一例で、プログラム実行中に情報を一時的に記憶するのに、ソースデバイス４上で走行するソフトウェアまたはモジュール（例えば、通信モジュール１０、ストリーミングモジュール１４、アプリケーションモジュール１８、およびＵＩモジュール４０）によって使用され得る。
【００４９】
[0064]  ストレージデバイス３６のうちの１つまたは複数はまた、いくつかの例で、１つまたは複数のコンピュータ可読記憶媒体を含み得る。ストレージデバイス３６のうちの１つまたは複数は、情報の長期記憶のためにさらに構成され得る。いくつかの例において、ストレージデバイス３６のうちの１つまたは複数は、不揮発性ストレージ要素を含み得る。そのような不揮発性ストレージ要素の例は、磁気ハードディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、フロッピー（登録商標）ディスク（ｄｉｓｃ）、フラッシュメモリ、または、電気的プログラム可能メモリ（ＥＰＲＯＭ）もしくは電気的消去可能プログラム可能（ＥＥＰＲＯＭ（登録商標））メモリの諸形態を含む。
【００５０】
[0065]  上で議論されるように、ソースデバイス４は、１つまたは複数の外部デバイスにビデオデータをストリーミングするように構成され得るストリーミングモジュール１４を含み得る。いくつかの例において、ストリーミングモジュール１４は、圧縮タイプモジュール４１と、フレームベースの圧縮モジュール４２と、トークンベースの圧縮モジュール４４とを含み得る。
【００５１】
[0066]  圧縮タイプモジュール４１は、いくつかの例で、圧縮を伴ってまたは圧縮を伴わずにのどちらでグラフィカルコマンドトークンのセットを出力すべきかを決定するように構成され得る。いくつかの例で、圧縮タイプモジュール４１が、圧縮を伴ってグラフィカルコマンドトークンのセットを出力すべきであると決定する場合に、圧縮タイプモジュール４１は、フレームベースの圧縮またはトークンベースの圧縮のどちらを使用してグラフィカルコマンドトークンのセットを圧縮すべきかを決定するようにさらに構成され得る。いくつかの例で、圧縮タイプモジュール４１は、フレームベースの圧縮を使用してグラフィカルコマンドトークンのセットを圧縮するためにフレームベースの圧縮モジュール４２を呼び出し得る。いくつかの例で、圧縮タイプモジュール４１は、トークンベースの圧縮を使用してグラフィカルコマンドトークンのセットを圧縮するためにトークンベースの圧縮モジュール４４を呼び出し得る。いくつかの例で、圧縮タイプモジュール４１は、図６Ａまたは図６Ｂの技法に従って、圧縮を伴ってまたは圧縮を伴わずにのどちらでグラフィカルコマンドトークンのセットを出力すべきかを決定し得る。
【００５２】
[0067]  フレームベースの圧縮モジュール４２は、いくつかの例で、フレームレベルでグラフィカルコマンドトークンのセットを圧縮するように構成され得る。本開示の１つまたは複数の技法によれば、フレームベースの圧縮モジュール４２は、グラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの前のセットとの間のデルタに対応する情報を出力することによって、フレームレベルでグラフィカルコマンドトークンの現在のセットを圧縮し得る。例えば、フレームベースの圧縮モジュール４２は、前のフレームのセットトークン内のデータのチャンクとは異なる現在のフレームのセットトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、そのリストおよび前のフレームのセットトークン内のデータのチャンクとは異なる現在のフレームのセットトークン内のデータの１つまたは複数のチャンクとを出力することとを決定し得る。いくつかの例において、フレームベースの圧縮モジュール４２は、図７の技法に従ってフレームレベルでグラフィカルコマンドトークンのセットを圧縮し得る。
【００５３】
[0068]  トークンベースの圧縮モジュール４４は、いくつかの例で、トークンレベルでグラフィカルコマンドトークンのセットを圧縮するように構成され得る。トークンベースの圧縮モジュール４４は、グラフィカルコマンドトークンの２つのセットの間の類似性を決定するように構成され得る。例えば、トークンベースの圧縮モジュール４４は、現在のフレームのトークンが前のフレームのトークンに類似するかどうかを決定するためにトークン探索を行い得る。トークン探索を行うために、トークンベースの圧縮モジュール４４は、現在のフレームのトークンごとに、前のフレームが類似するトークンを含むかどうかを決定するために前のフレームを探索し得る。いくつかの例において、トークンベースの圧縮モジュール４４は、現在のフレームのトークンが前のフレームのトークンと同一のトークンタイプを有し、同一のトークンデータサイズを有する場合に、現在のフレームのトークンが前のフレームのトークンに類似すると決定し得る。図１を参照して上で議論されるように、トークンのタイプ（例えば、トークンタイプ１２６）は、トークンがグラフィカルコマンドのセットのどのグラフィカルコマンドに対応するのかを指示でき、トークンのデータサイズ（例えば、トークンデータサイズ１３０）は、トークンに関連付けられた１つまたは複数の引数のサイズを指示し得る。
【００５４】
[0069]  いくつかの例において、トークンベースの圧縮モジュール４４は、トークン探索の結果を指示するトークン予測マップを生成し得る。例えば、トークン予測マップは、現在のフレームのトークンごとに、類似するトークンが前のフレーム内で突き止められ(located)得るかどうかを指示し得る。一例として、類似するトークンが、現在のフレームの特定のトークンについて突き止められ得ない場合には、トークン予測マップは、その特定のトークンに関する０を含み得る。別の例として、類似するトークンが、現在のフレームの特定のトークンについて突き止められ得る場合には、トークン予測マップは、前のフレームのどのトークンが現在のフレームのその特定のトークンに類似するのかを識別し得る。
【００５５】
[0070]  図５Ａ〜図５Ｃは、本開示の１つまたは複数の技法による、トークンベースの圧縮を行うためにソースデバイスによって分析され得るトークンの例のセットを示す概念図である。図５Ａ〜図５Ｃの各々は、前のフレームのそれぞれの前のフレーム５０２Ａ〜５０２Ｃ（集合的に「前のフレーム５０２」）と、現在のフレームのそれぞれの現在のフレーム５０４Ａ〜５０４Ｃ（集合的に「現在のフレーム５０４」）とを示す。前のフレーム５０２および現在のフレーム５０４の各々は、トークン５０６Ａ〜５０６Ｉのある組合せを含む。
【００５６】
[0071]  上で議論されるように、トークンベースの圧縮モジュール４４は、現在のフレームのトークンが前のフレームのトークンに類似するかどうかを決定するためにトークン探索を行い得る。いくつかの例では、現在のフレームのトークンが、前のフレームのトークンとはまったく異なる場合があり、トークンベースの圧縮モジュール４４は、現在のフレームのどのトークンに関しても、前のフレーム内で類似するトークンを見出せないことがある。例えば、図５Ａの例に示されているように、トークンベースの圧縮モジュール４４は、トークン５０６Ａ〜５０６Ｄがトークン５０６Ｅ〜５０６Ｈと完全に異なるので、現在のフレーム５０４Ａのトークンが、前のフレーム５０２Ａのトークンと完全に異なると決定し得る。
【００５７】
[0072]  いくつかの例では、現在のフレームの少なくとも１つのトークンが、前のフレームのトークンに類似することがある。一例として、前のフレームが、現在のフレームに含まれるトークンに類似しない１つまたは複数のトークンを含み得る。例えば、図５Ｂの例に示されているように、トークンベースの圧縮モジュール４４が、トークン５０６Ｃが現在のフレーム５０４Ｂに含まれないので、前のフレーム５０２Ｂが現在のフレーム５０４Ｂに含まれないトークンを含むと決定し得る。別の例として、現在のフレームが、前のフレームに含まれるトークンに類似しない１つまたは複数のトークンを含み得る。例えば、図５Ｃの例に示されているように、トークンベースの圧縮モジュール４４が、トークン５０６Ｈおよび５０６Ｉが前のフレーム５０２Ｃに含まれるトークンに類似しないので、現在のフレーム５０４Ｃが前のフレーム５０２Ｃに含まれないトークンを含むと決定し得る。
【００５８】
[0073]  上で議論されるように、トークンベースの圧縮モジュール４４は、トークン探索の結果を示すトークン予測マップを生成し得る。図５Ａの例では、前のフレーム５０２Ａのトークン（すなわち、５０６Ａ〜５０６Ｄ）のどれもが、現在のフレーム５０４Ａのトークン（すなわち、５０６Ｅ〜５０６Ｈ）に類似しない場合に、トークンベースの圧縮モジュール４４は、現在のフレーム５０４Ａ内のトークンの全てが新しいトークンであることを指示するトークン予測マップ［０，０，０，０]を生成し得る。
【００５９】
[0074]  図５Ｂの例では、現在のフレーム５０４Ｂのトークン（すなわち、５０６Ａと５０６Ｂと５０６Ｄ）ごとに、類似するトークンが、前のフレーム５０２Ｂ内で見出され得る（すなわち、５０６Ａと５０６Ｂと５０６Ｄ）場合に、トークンベースの圧縮モジュール４４は、現在のフレーム５０４Ｂの第１のトークンの類似するトークンが、前のフレーム５０２Ｂの第１のトークンであり、現在のフレーム５０４Ｂの第２のトークンの類似するトークンが、前のフレーム５０２Ｂの第２のトークンであり、現在のフレーム５０４Ｂの第３のトークンの類似するトークンが、前のフレーム５０２Ｂの第４のトークンであることを指示するために、［１，２，４]というトークン予測マップを生成し得る。
【００６０】
[0075]  図５Ｃの例では、現在のフレーム５０４Ｃのいくつかのトークン（すなわち、５０６Ａと５０６Ｂと５０６Ｃと５０６Ｄ）に関して、類似するトークンが前のフレーム５０２Ｂ内で見出され得る（すなわち、５０６Ａと５０６Ｂと５０６Ｃと５０６Ｄ）場合に、トークンベースの圧縮モジュール４４は、現在のフレーム５０４Ｃの第１のトークンの類似するトークンが、前のフレーム５０２Ｃの第１のトークンであり、現在のフレーム５０４Ｃの第２のトークンの類似するトークンが、前のフレーム５０２Ｃの第２のトークンであり、現在のフレーム５０４Ｃの第３および第４のトークンが、新しいトークンであり、現在のフレーム５０４Ｃの第５のトークンの類似するトークンが、前のフレーム５０２Ｃの第３のトークンであり、現在のフレーム５０４Ｃの第６のトークンの類似するトークンが、前のフレーム５０２Ｃの第４のトークンであることを指示するために、［１，２，０，０，３，４］というトークン予測マップを生成し得る。
【００６１】
[0076]  どの場合でも、トークン予測マップに基づいて、トークンベースの圧縮モジュール４４は、現在のフレームのトークンのセットが、前のフレームのトークンのセットに十分に類似するかどうかを決定し得る。いくつかの例において、トークンベースの圧縮モジュール４４は、類似するトークンが前のフレームのトークンのセット内で突き止められ得る現在のフレームのトークンのセットのトークンのパーセンテージを決定し得る。例えば、トークンベースの圧縮モジュール４４は、トークン予測マップ内に含まれる非０値のパーセンテージを決定し得る。
【００６２】
[0077]  いくつかの例において、パーセンテージがしきいパーセンテージ（例えば、１０％、２０％、３０％）を満たすとの決定に応答して、トークンベースの圧縮モジュール４４は、現在のフレームのトークンのセットが、前のフレームのトークンのセットに十分に類似すると決定し得る。いくつかの例において、パーセンテージがしきいパーセンテージを満たさないとの決定に応答して、トークンベースの圧縮モジュール４４は、現在のフレームのグラフィカルコマンドトークンのセットが、前のフレームのグラフィカルコマンドトークンのセットに十分には類似しないと決定し得る。いくつかの例において、パーセンテージがしきいパーセンテージより大きい場合に、パーセンテージは、しきいパーセンテージを満たし得る。
【００６３】
[0078]  現在のフレームのトークンのセットが、前のフレームのトークンのセットに十分には類似しない場合に、トークンベースの圧縮モジュール４４は、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを出力し得る。現在のフレームのトークンのセットが、前のフレームのトークンのセットに十分に類似する場合に、トークンベースの圧縮モジュール４４は、トークン予測マップと各トークンの表現とを出力し得る。一例として、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得ない、グラフィカルコマンドトークンの現在のセットのそれぞれのトークンごとに、トークンベースの圧縮モジュール４４は、それぞれのグラフィカルコマンドトークンを出力し得る。例えば、図５Ｃの例において、トークンベースの圧縮モジュール４４は、現在のフレーム５０４Ｃのトークン５０６Ｈと５０６Ｉとを出力し得る。
【００６４】
[0079]  別の例として、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得る、グラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンごとに、トークンベースの圧縮モジュール４４は、グラフィカルコマンドトークンの前のセットの突き止められた類似するグラフィカルコマンドトークン内のデータのチャンクとは異なる、それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、類似するグラフィカルコマンドトークン内のデータのチャンクとは異なるそれぞれのトークン内のデータの１つまたは複数のチャンクとを出力し得る。例えば、図５Ｃの例において、トークンベースの圧縮モジュール４４は、現在のフレーム５０４Ｃのトークン５０６Ａについて、前のフレーム５０２Ｃのトークン５０６Ａ内のデータのチャンクとは異なる現在のフレーム５０４Ｃのトークン５０６Ａ内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、前のフレーム５０２Ｃのトークン５０６Ａ内のデータのチャンクとは異なる現在のフレーム５０４Ｃのトークン５０６Ａ内のデータの１つまたは複数のチャンクとを出力し得る。トークンベースの圧縮モジュール４４は、現在のフレーム５０４Ｃのトークン５０６Ｂと５０６Ｄとに関して類似のリストとチャンクとを決定し出力し得る。
【００６５】
[0080]  戻って図４を参照すると、シンクデバイス６は、１つまたは複数のプロセッサ５０と、１つまたは複数の通信ユニット５２と、１つまたは複数のユーザインターフェース（ＵＩ）デバイス５４と、１つまたは複数のストレージデバイス５６とを含み得る。構成要素５０、５２、５４、および５６の各々は、構成要素間通信のために通信チャネル５８を介して相互接続され得る（物理的に、通信的に、および／または動作可能に）。いくつかの例において、通信チャネル５８は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他のチャネルを含み得る。いくつかの例において、ストレージデバイス５６のうちの１つまたは複数は、通信モジュール１９と、ストリーミングモジュール２２と、テクスチャ要素２４と、ＵＩモジュール６０とを含み得る。
【００６６】
[0081]  プロセッサ５０は、いくつかの例で、機能を実施し、および／またはシンクデバイス６内において実行のための命令を処理するように構成され得る。例えば、プロセッサ５０は、ストレージデバイス５６のうちの１つまたは複数に記憶された命令を処理可能であり得る。プロセッサ５０の例は、任意の１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または任意の他の同等の集積回路もしくはディスクリート論理回路、並びにそのような構成要素の任意の組合せを含み得る。
【００６７】
[0082]  シンクデバイス６はまた、いくつかの例で、複数の１つまたは複数の通信ユニット５２を含む。シンクデバイス６は、一例で、１つまたは複数のワイヤレスネットワークなど、１つまたは複数のネットワークを介して外部デバイスと通信するのに通信ユニット５２のうちの１つまたは複数を利用する。通信ユニット５２のうちの１つまたは複数は、ＵＳＢトランシーバ、イーサネットカード、光トランシーバ、無線周波数トランシーバ、または情報を送信および受信できる任意の他のタイプのデバイスなど、ネットワークインターフェースカードとされ得る。そのようなネットワークインターフェースの他の例は、Ｂｌｕｅｔｏｏｔｈ、３Ｇ、およびＷｉ−Ｆｉラジオを含み得る。いくつかの例において、シンクデバイス６は、外部デバイスとワイヤレスに通信するのに通信ユニット５２を利用する。例えば、シンクデバイス６は、通信チャネル８を介してソースデバイス４の通信ユニット３２とワイヤレスに通信するのに通信ユニット５２を利用し得る。いくつかの例において、通信ユニット５２は、通信モジュール１９などのシンクデバイス６の他の構成要素に受信されたデータを供給し得る。
【００６８】
[0083]  シンクデバイス６はまた、いくつかの例で、１つまたは複数のＵＩデバイス５４を含み得る。いくつかの例において、ＵＩデバイス５４のうちの１つまたは複数は、ビデオデータなどのコンテンツを出力するように構成され得る。例えば、ＵＩデバイス５４のディスプレイは、ＧＰＵ  ２０によってレンダリングされたビデオデータのフレームを表示するように構成され得る。コンテンツの出力に加えて、ＵＩデバイス５４のうちの１つまたは複数は、触覚入力、オーディオ入力、または視覚入力を受信するように構成され得る。ＵＩデバイス５４のいくつかの例は、ビデオディスプレイ、スピーカ、キーボード、タッチスクリーン、マウス、カメラ、および類似物を含む。
【００６９】
[0084]  シンクデバイス６はまた、いくつかの例で、ＵＩモジュール６０を含み得る。ＵＩモジュール６０は、シンクデバイス６に関連付けられた他の構成要素からのＵＩデータなどのコンテンツを受信して、コンテンツを出力することをＵＩデバイス５４のうちの１つまたは複数にさせる１つまたは複数の機能を行うことができる。いくつかの例において、ＵＩモジュール６０は、ユーザ入力などの入力の指示を受信し、ストリーミングモジュール１４など、シンクデバイス６に関連付けられた他の構成要素に入力の指示を送るように構成され得る。
【００７０】
[0085]  ストレージデバイス５６のうちの１つまたは複数は、動作中にシンクデバイス６内に情報を記憶するように構成され得る。ストレージデバイス５６のうちの１つまたは複数は、いくつかの例で、コンピュータ可読記憶媒体を備え得る。いくつかの例において、ストレージデバイス５６のうちの１つまたは複数は、一時メモリを備え得るもので、これは、ストレージデバイス５６のうちの１つまたは複数の主な目的が長期記憶ではないことを意味する。ストレージデバイス５６のうちの１つまたは複数は、いくつかの例において、揮発性メモリを備え得るもので、これは、システムがオフにされたときに、ストレージデバイス５６のうちの１つまたは複数が、記憶されたコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、および当技術分野で知られている他の形の揮発性メモリを含む。いくつかの例において、ストレージデバイス５６のうちの１つまたは複数は、プロセッサ５０による実行のためのプログラム命令を記憶するのに使用される。ストレージデバイス５６のうちの１つまたは複数は、一例で、プログラム実行中に情報を一時的に記憶するのに、シンクデバイス６上で走行するソフトウェアまたはモジュール（例えば、通信モジュール１９、ストリーミングモジュール２２、およびＵＩモジュール６０）によって使用され得る。
【００７１】
[0086]  ストレージデバイス５６のうちの１つまたは複数はまた、いくつかの例で、１つまたは複数のコンピュータ可読記憶媒体を含み得る。ストレージデバイス５６のうちの１つまたは複数は、情報の長期記憶のためにさらに構成され得る。いくつかの例において、ストレージデバイス５６のうちの１つまたは複数は、不揮発性ストレージ要素を含み得る。そのような不揮発性ストレージ要素の例は、磁気ハードディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、フロッピディスク（ｄｉｓｃ）、フラッシュメモリ、または、電気的プログラム可能メモリ（ＥＰＲＯＭ）もしくは電気的消去可能プログラム可能（ＥＥＰＲＯＭ）メモリの諸形態を含む。
【００７２】
[0087]  上で議論されるように、シンクデバイス６は、１つまたは複数の外部デバイスからストリーミングビデオデータを受信するように構成され得るストリーミングモジュール２２を含み得る。いくつかの例において、ストリーミングモジュール２２は、圧縮タイプモジュール６１と、フレームベースの再構成モジュール４２と、トークンベースの再構成モジュール６４とを含み得る。
【００７３】
[0088]  圧縮タイプモジュール６１は、いくつかの例で、グラフィカルコマンドトークンの現在のセットが圧縮されているのか否かを決定するように構成され得る。グラフィカルコマンドトークンの現在のセットがフレームベースの圧縮を使用して圧縮されている場合など、いくつかの例において、圧縮タイプモジュール６１は、グラフィカルコマンドトークンの現在のセットを再構成するためにフレームベースの再構成モジュール６２を呼び出し得る。グラフィカルコマンドトークンの現在のセットがトークンベースの圧縮を使用して圧縮されている場合など、いくつかの例において、圧縮タイプモジュール６１は、グラフィカルコマンドトークンの現在のセットを再構成するためにトークンベースの再構成モジュール６４を呼び出し得る。
【００７４】
[0089]  フレームベースの再構成モジュール６２は、いくつかの例で、フレームレベルでグラフィカルコマンドトークンのセットを再構成するように構成され得る。本開示の１つまたは複数の技法によれば、フレームベースの再構成モジュール６２は、グラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの前のセットとの間のデルタに対応する情報に基づいて、フレームレベルでグラフィカルコマンドトークンの現在のセットを再構成し得る。例えば、トークンの前のセット内のデータのチャンクとは異なる、トークンの現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの１つまたは複数のチャンクとに基づいて、フレームベースの再構成モジュール６２は、グラフィカルコマンドトークンの前のセットのそれぞれの位置にあるデータをデータの１つまたは複数の受信されたチャンクに置換することによって、フレームレベルでグラフィカルコマンドトークンの現在のセットを再構成し得る。
【００７５】
[0090]  図６Ａおよび図６Ｂは、本開示の１つまたは複数の技法による、シンクデバイスにビデオフレームをストリーミングするためにソースデバイスによって出力され得る例のコマンドフレームを示す概念図である。図６Ａに示されているように、コマンドフレーム６０２は、予測フラグ６０６と、フレームサイズフィールド６０８と、フレームコピーフィールド６１０とを含む。図６Ｂに示されているように、コマンドフレーム６０４は、予測フラグ６０６と、リストサイズフィールド６１２と、新規データサイズフィールド６１４と、リストフィールド６１６と、新規データフィールド６１８とを含む。
【００７６】
[0091]  図７Ａおよび図７Ｂは、本開示の１つまたは複数の技法による、シンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図である。図７Ａおよび図７Ｂの技法は、図３と図４とに示されたソースデバイス４などのコンピューティングデバイスの１つまたは複数のプロセッサによって行われ得る。例示のために、図７Ａおよび図７Ｂの技法は、図３と図４とに示されたソースデバイス４の文脈で説明されるが、ソースデバイス４の構成とは異なる構成を有するコンピューティングデバイスが、図７Ａと図７Ｂとの技法を行い得る。
【００７７】
[0092]  本開示の１つまたは複数の技法によれば、ソースデバイス４のストリーミングモジュール１４は、第１のフレームのグラフィカルコマンドトークンのセットを取り込み得る（７０２）。例えば、ストリーミングモジュール１４は、ソースデバイス４内に含まれるＧＰＵの入力で第１のフレームのグラフィカルコマンドトークンのセットを取り込み得る。
【００７８】
[0093]  ストリーミングモジュール１４は、シンクデバイス６に第１のフレームのグラフィカルコマンドトークンのセットを出力し得る（７０４）。例えば、ストリーミングモジュール１４は、ソースデバイス４とシンクデバイス６との間のワイヤレス通信リンクを介して第１のフレームのグラフィカルコマンドトークンのセットを送信し得る。いくつかの例において、第１のフレームのグラフィカルコマンドトークンのセットに加えて、ストリーミングモジュール１４はまた、１つまたは複数のテクスチャ要素をシンクデバイス６に出力し得る。
【００７９】
[0094]  いくつかの例において、ストリーミングモジュール１４は、圧縮なしで第１のフレームのグラフィカルコマンドトークンのセットを出力し得る。例えば、ストリーミングモジュール１４は、第１のフレームのコマンドトークンのセットを含む、図１のコマンドフレーム１００などのコマンドフレームを生成し得る（すなわち、第１のフレームのコマンドトークンのセットは、図１のトークン１１４とされ得る）。
【００８０】
[0095]  上で議論されたように、本開示の１つまたは複数の技法に従って、ストリーミングモジュール１４は、圧縮を伴って後続フレームのグラフィカルコマンドトークンのセットを出力し得る。例えば、ストリーミングモジュール１４は、第ｎのフレームのグラフィカルコマンドトークンのセットを取り込み得る（７０６）。第１のフレームと同様に、ストリーミングモジュール１４は、ソースデバイス４内に含まれるＧＰＵの入力で第ｎのフレームのグラフィカルコマンドトークンのセットを取り込み得る。
【００８１】
[0096]  圧縮タイプモジュール４１は、第ｎのフレームのグラフィカルコマンドトークンのセットを圧縮ありまたは圧縮なしのどちらで出力すべきかを決定し得る。例えば、圧縮タイプモジュール４１は、第ｎのフレームのグラフィカルコマンドトークンのセットの長さが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの長さと同一であるかどうかを決定し得る（７０８）。
【００８２】
[0097]  第ｎのフレームのグラフィカルコマンドトークンのセットの長さが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの長さと同一であるとの決定に応答して（７０８の「Ｙｅｓ」分岐）、圧縮タイプモジュール４１は、フレームベースのコーディングを使用して第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンを生成する（７１０）ために、フレームベースの圧縮モジュール４２を呼び出し、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンをシンクデバイス６に出力し得る（７１２）。いくつかの例では、フレームベースの圧縮モジュール４２が、図７の技法に従ってフレームベースの圧縮を行い得る。
【００８３】
[0098]  図６Ａの例など、いくつかの例において、第ｎのフレームのグラフィカルコマンドトークンのセットの長さが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの長さとは異なるとの決定に応答して（７０８の「Ｎｏ」分岐）、ストリーミングモジュール１４は、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されていないバージョンをシンクデバイス６に出力し得る（７１４Ａ）。いくつかの例において、ストリーミングモジュール１４は、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されていないバージョンを１つのコマンドフレーム内にカプセル化し得る。例えば、ストリーミングモジュール１４は、図１のコマンドフレーム１００など、第１のコマンドフレームを生成でき、ここで、フレームデータフィールド１０４は、第ｎのフレームのグラフィカルコマンドトークンのセットを含む（すなわち、トークン１１４は、第ｎのフレームのグラフィカルコマンドトークンのセットを含む）。いくつかの例において、ストリーミングモジュール１４は、図６Ａのコマンドフレーム６０２などの第２のコマンドフレーム内に第１のコマンドフレームをさらにカプセル化でき、ここで、予測フラグ６０６は、第ｎのフレームのグラフィカルコマンドトークンのセットが圧縮されていないことを指示し、フレームサイズフィールド６０８は、第２のコマンドフレームのサイズを指示し、フレームコピーフィールド６１０は、第１のコマンドフレームである。
【００８４】
[0099]  図７Ｂの例など、いくつかの例において、第ｎのフレームのグラフィカルコマンドトークンのセットの長さが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの長さとは異なるとの決定に応答して（７０８の「Ｎｏ」分岐）、フレームベースの圧縮モジュール４２は、トークンベースのコーディングを使用して第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンを生成する（７１４Ｂ）ために、トークンベースの圧縮モジュール４４を呼び出し、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンをシンクデバイス６に出力し得る（７１２）。いくつかの例において、トークンベースの圧縮モジュール４４は、図９の技法に従ってトークンベースの圧縮を行い得る。
【００８５】
[0100]  図８は、本開示の１つまたは複数の技法による、フレームベースの圧縮を使用してシンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図である。図８の技法は、図３と図４とに示されたソースデバイス４など、コンピューティングデバイスの１つまたは複数のプロセッサによって行われ得る。例示のために、図８の技法は、図３と図４とに示されたソースデバイス４の文脈で説明されるが、ソースデバイス４の構成とは異なる構成を有するコンピューティングデバイスが、図８の技法を行い得る。
【００８６】
[0101]  上で議論されるように、いくつかの例において、フレームベースの圧縮モジュール４２は、図８の技法に従ってフレームベースの圧縮を行い得る。例えば、フレームベースの圧縮モジュール４２は、第ｎ−１のフレームのグラフィカルコマンドトークンのセットとは異なる第ｎのフレームのグラフィカルコマンドトークンのセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストを決定し得る（８０２）。いくつかの例において、データのチャンクは、データのバイトとされ得る。一例として、第ｎのフレームのグラフィカルコマンドトークンのセット内の位置７０と７１と７２と８０と１１３と１１４と１５８と１５９と１６０と１６１と１８８とにあるバイトが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの位置７０と７１と７２と８０と１１３と１１４と１５８と１５９と１６０と１６１と１８８とにあるデータの異なるバイトである場合には、フレームベースの圧縮モジュール４２は、位置７０と７１と７２と８０と１１３と１１４と１５８と１５９と１６０と１６１と１８８とを指示するリストを生成し得る。いくつかの例において、フレームベースの圧縮モジュール４２は、位置を差分的に符号化することによってリストを生成し得る。例えば、フレームベースの圧縮モジュール４２は、位置７０と７１と７２と８０と１１３と１１４と１５８と１５９と１６０と１６１と１８８とを７０と１と１と８と３３と１と４４と１と１と１と２７として差分的に符号化し得る。いくつかの例において、フレームベースの圧縮モジュール４２は、指数ゴロムコーディングを使用して差分位置を符号化し得る。例えば、フレームベースの圧縮モジュール４２は、「００００００１０００１１０」、「１」、「１」、「０００１０００」、「０００００１００００１」、「１」などとして指数ゴロムコーディングを使用して上の差分位置を符号化し得る。このように、フレームベースの圧縮モジュール４２は、位置のリストを表すのに必要なデータの量を低減させ得る。
【００８７】
[0102]  どの場合でも、フレームベースの圧縮モジュール４２は、リストと、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内のデータのチャンクとは異なる第ｎのフレームのグラフィカルコマンドトークンのセット内のデータの１つまたは複数のチャンクとを出力することによって、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンを出力し得る（８０４）。いくつかの例において、フレームベースの圧縮モジュール４２は、図６Ｂのコマンドフレーム６０４などのコマンドフレーム内に、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンをカプセル化し得る。例えば、フレームベースの圧縮モジュール４２は、予測フラグ６０６が、第ｎのフレームのグラフィカルコマンドトークンのセットがフレームベースの圧縮を使用して圧縮されていることを指示し、リストサイズフィールド６１２が、位置のリストのサイズを指示し、新規データサイズ６１４が、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内のデータのチャンクとは異なる第ｎのフレームのグラフィカルコマンドトークンのセット内のデータの１つまたは複数のチャンクのサイズを指示し、リスト６１６が、位置のリストの符号化されたバージョンを含み、新規データフィールド６１８が、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内のデータのチャンクとは異なる第ｎのフレームのグラフィカルコマンドトークンのセット内のデータの１つまたは複数のチャンクを含む、コマンドフレーム６０４を生成し得る。このように、フレームベースの圧縮モジュール４２は、フレームベースの圧縮を使用してグラフィカルコマンドトークンを圧縮し得る。
【００８８】
[0103]  図９は、本開示の１つまたは複数の技法による、トークンベースの圧縮を使用してシンクデバイスにビデオデータをストリーミングするためのソースデバイスの例の動作を示す流れ図である。図９の技法は、図３と図４とに示されたソースデバイス４など、コンピューティングデバイスの１つまたは複数のプロセッサによって行われ得る。例示のために、図９の技法は、図３と図４とに示されたソースデバイス４の文脈で説明されるが、ソースデバイス４の構成とは異なる構成を有するコンピューティングデバイスが、図９の技法を行い得る。
【００８９】
[0104]  上で議論されるように、いくつかの例において、トークンベースの圧縮モジュール４４は、図９の技法に従ってトークンベースの圧縮を行い得る。例えば、トークンベースの圧縮モジュール４４は、類似するグラフィカルコマンドトークンが第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得るかどうかを第ｎのフレームのグラフィカルコマンドトークンのセットのグラフィカルコマンドトークンＭごとに指示するトークン予測マップを決定し得る（９０２）。いくつかの例において、トークンベースの圧縮モジュール４４は、第ｎのフレームのグラフィカルコマンドトークンのセットの特定のグラフィカルコマンドトークンについて、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの特定のグラフィカルコマンドトークンが、第ｎのフレームのグラフィカルコマンドトークンのセットの特定のグラフィカルコマンドトークンと同一のトークンタイプ（例えば、図１のトークンタイプ１２６）と、第ｎのフレームのグラフィカルコマンドトークンのセットの特定のグラフィカルコマンドトークンと同一のトークンデータサイズ（例えば、図１のトークンデータサイズ１３０）とを有する場合に、類似するグラフィカルコマンドトークンが、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得ると決定し得る。いくつかの例において、第ｎ−１のフレームのグラフィカルコマンドトークンの完全なセットを探索するのではなく、トークンベースの圧縮モジュール４４は、第ｎ−１のフレームのグラフィカルコマンドトークンのセットの探索のサブセット（すなわち、探索範囲）を探索し得る。いくつかの例において、探索範囲は、ある量のトークン（例えば、１０個、２０個、３０個、１００個など）を含み得る。
【００９０】
[0105]  トークンベースの圧縮モジュール４４は、トークン予測マップが、第ｎのフレームのグラフィカルコマンドトークンのセットが第ｎ−１のフレームのグラフィカルコマンドトークンのセットに十分に類似することを指示するかどうかを決定し得る（９０４）。例えば、トークンベースの圧縮モジュール４４は、類似するグラフィカルコマンドトークンが第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得る、第ｎのフレームのグラフィカルコマンドトークンのセットのグラフィカルコマンドトークンのパーセンテージを決定し得る。いくつかの例において、パーセンテージがしきいパーセンテージ（例えば、１０％、２０％、３０％）を満たすとの決定に応答して、トークンベースの圧縮モジュール４４は、第ｎのフレームのグラフィカルコマンドトークンのセットが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットに十分に類似すると決定し得る。いくつかの例において、パーセンテージがしきいパーセンテージを満たさないとの決定に応答して、トークンベースの圧縮モジュール４４は、第ｎのフレームのグラフィカルコマンドトークンのセットが、第ｎ−１のフレームのグラフィカルコマンドトークンのセットに十分には類似しないと決定し得る。いくつかの例において、パーセンテージがしきいパーセンテージより大きい場合に、パーセンテージは、しきいパーセンテージを満たし得る。
【００９１】
[0106]  トークン予測マップが、第ｎのフレームのグラフィカルコマンドトークンのセットが第ｎ−１のフレームのグラフィカルコマンドトークンのセットに十分に類似することを指示しないとの決定に応答して（９０４の「Ｎｏ」分岐）、トークンベースの圧縮モジュール４４は、シンクデバイス６に第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されていないバージョンを出力し得る。例えば、トークンベースの圧縮モジュール４４は、図７Ａの動作７１４Ａに類似する第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されていないバージョンを出力し得る。
【００９２】
[0107]  トークン予測マップが、第ｎのフレームのグラフィカルコマンドトークンのセットが第ｎ−１のフレームのグラフィカルコマンドトークンのセットに十分に類似することを指示するとの決定に応答して（９０４の「Ｙｅｓ」分岐）、トークンベースの圧縮モジュール４４は、トークンベースの圧縮を使用して第ｎのフレームのグラフィカルコマンドトークンのセットを符号化し得る。トークンベースの圧縮モジュール４４は、インデックス値ｍに０をセットすることによって、第１のグラフィカルコマンドトークンｍを処理し得る（９０８）。例えば、第ｎのフレームのグラフィカルコマンドトークンのセットのグラフィカルコマンドトークンｍごとに、トークンベースの圧縮モジュール４４は、グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンが、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得るかどうかを決定し得る（９１０）。
【００９３】
[0108]  グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンが、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得ない場合には（９１０の「Ｎｏ」分岐）、トークンベースの圧縮モジュール４４は、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョン内で、グラフィカルコマンドトークンｍを符号化し（９１２）、グラフィカルコマンドトークンｍが、第ｎのフレームのグラフィカルコマンドトークンのセット内の最後のトークンであるかどうかを決定し得る（９１４）。
【００９４】
[0109]  グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンが、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得る場合には（９１０の「Ｙｅｓ」分岐）、トークンベースの圧縮モジュール４４は、グラフィカルコマンドトークンｍと第ｎ−１のフレームのグラフィカルコマンドトークンのセット内の類似するグラフィカルコマンドトークンとの間のデルタを符号化し、グラフィカルコマンドトークンｍが第ｎのフレームのグラフィカルコマンドトークンのセット内の最後のトークンであるかどうかを決定し得る（９１４）。いくつかの例において、トークンベースの圧縮モジュール４４は、図８のフレームベースの圧縮技法に類似した技法を使用してデルタを符号化し得る。例えば、トークンベースの圧縮モジュール４４は、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内の類似するグラフィカルコマンドトークン内に突き止められたデータのチャンクとは異なるグラフィカルコマンドトークンｍ内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストを決定し（９１６）、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョン内で、リストと、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内の類似するグラフィカルコマンドトークン内に突き止められたデータのチャンクとは異なるグラフィカルコマンドトークンｍ内のデータの１つまたは複数のチャンクとを符号化し得る（９１８）。
【００９５】
[0110]  どの場合でも、グラフィカルコマンドトークンｍが、第ｎのフレームのグラフィカルコマンドトークンのセット内の最後のトークンではない場合には（９１４の「Ｎｏ」分岐）、トークンベースの圧縮モジュール４４は、第ｎのフレームのグラフィカルコマンドトークンのセット内の次のグラフィカルコマンドトークンに進み（９２０）、グラフィカルコマンドトークンｍ＋１に類似するグラフィカルコマンドトークンが、第ｎ−１のフレームのグラフィカルコマンドトークンのセット内で突き止められ得るかどうかを決定し得る（９１０）。グラフィカルコマンドトークンｍが、第ｎのフレームのグラフィカルコマンドトークンセット内の最後のトークンである場合には（９１４の「Ｙｅｓ」分岐）、トークンベースの圧縮モジュール４４は、第ｎのフレームのグラフィカルコマンドトークンのセットの圧縮されたバージョンをシンクデバイス６に出力し得る（９２２）。このように、トークンベースの圧縮モジュール４４は、トークンベースの圧縮を使用してグラフィカルコマンドトークンを圧縮し得る。
【００９６】
[0111]  図１０は、本開示の１つまたは複数の技法による、ソースデバイスからストリーミングビデオデータを受信するためのシンクデバイスの例の動作を示す流れ図である。図１０の技法は、図３と図４とに示されたシンクデバイス６など、コンピューティングデバイスの１つまたは複数のプロセッサによって行われ得る。例示のために、図１０の技法は、図３と図４とに示されたシンクデバイス６の文脈で説明されるが、シンクデバイス６の構成とは異なる構成を有するコンピューティングデバイスが、図１０の技法を行い得る。
【００９７】
[0112]  本開示の１つまたは複数の技法によれば、シンクデバイス６のストリーミングモジュール２２は、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況の指示とをソースデバイスから受信し得る（１００２）。いくつかの例において、グラフィカルコマンドトークンの現在のセットは、ビデオデータの複数のフレームにそれぞれレンダリング可能とされ得るグラフィカルコマンドトークンの複数のセットからのものとされ得る。いくつかの例において、グラフィカルコマンドトークンの現在のセットの受信されたバージョンは、図１のコマンドフレーム１００、図６Ａのコマンドフレーム６０２、または図６Ｂのコマンドフレーム６０４などのコマンドフレーム内にカプセル化され得る。いくつかの例において、圧縮状況の指示は、図６Ａおよび図６Ｂの予測フラグ６０６などの予測フラグとされ得る。
【００９８】
[0113]  ストリーミングモジュール２２の圧縮タイプモジュール６１は、圧縮状況が、グラフィカルコマンドトークンの現在のセットの受信されたバージョンがフレームベースの圧縮を使用して圧縮されているか（１００４）、トークンベースの圧縮を使用して圧縮されているか（１００８）、または圧縮されていないか（１０１２）ということを指示するのかどうかを決定し得る。一例として、グラフィカルコマンドトークンの現在のセットの受信されたバージョンと共に受信された予測フラグが、フレームベースの圧縮を指示する値を有する（すなわち、２５５と等しい）場合には、圧縮タイプモジュール６１は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、フレームベースの圧縮を使用して圧縮されていると決定し得る。別の例として、グラフィカルコマンドトークンの現在のセットの受信されたバージョンと共に受信された予測フラグが、トークンベースの圧縮を指示する値（すなわち、２５５とは異なる値と等しい）を有する場合には、圧縮タイプモジュール６１は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、トークンベースの圧縮を使用して圧縮されていると決定し得る。別の例として、予測フラグが、グラフィカルコマンドトークンの現在のセットの受信されたバージョンと共に受信されない場合には、圧縮タイプモジュール６１は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、圧縮されていないと決定し得る。別の例として、グラフィカルコマンドトークンの現在のセットの受信されたバージョンと共に受信された予測フラグが、０と等しい場合には、圧縮タイプモジュール６１は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、圧縮されていないと決定し得る。
【００９９】
[0114]  グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、フレームベースの圧縮を使用して圧縮されている場合には（１００４の「Ｙｅｓ」分岐）、ストリーミングモジュール２２は、フレームベースの再構成を使用して、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを生成し得る（１００６）。例えば、圧縮タイプモジュール６１は、図１１の技法に従ってフレームベースの再構成を使用してグラフィカルコマンドトークンの前のセットに基づいてグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを生成するために、フレームベースの再構成モジュール６２を呼び出し得る。
【０１００】
[0115]  グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、トークンベースの圧縮を使用して圧縮されている場合には（１００８の「Ｙｅｓ」分岐）、ストリーミングモジュール２２は、トークンベースの再構成を使用して、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを生成し得る（１０１０）。例えば、圧縮タイプモジュール６１は、図１２の技法に従ってトークンベースの再構成を使用してグラフィカルコマンドトークンの前のセットに基づいてグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを生成するために、トークンベースの再構成モジュール６４を呼び出し得る。
【０１０１】
[0116]  グラフィカルコマンドトークンの現在のセットの受信されたバージョンが圧縮されていない場合（１００８の「Ｎｏ」分岐）、フレームベースの再構成の後、またはトークンベースの再構成の後に、ストリーミングモジュール２２は、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンに基づいてビデオデータのフレームをレンダリングし得る（１０１４）。例えば、ストリーミングモジュール２２は、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンに基づいてビデオデータのフレームをレンダリングすることをシンクデバイス６のＧＰＵ  ２０にさせ得る。いくつかの例において、ＧＰＵ  ２０は、シンクデバイス６のＵＩデバイス５４のディスプレイでの出力のためにビデオデータのフレームをレンダリングし得る。
【０１０２】
[0117]  図１１は、本開示の１つまたは複数の技法による、ソースデバイスから受信されたストリーミングビデオデータに対してフレームベースの再構成を行うためのシンクデバイスの例の動作を示す流れ図である。図１１の技法は、図３と図４とに示されたシンクデバイス６など、コンピューティングデバイスの１つまたは複数のプロセッサによって行われ得る。例示のために、図１１の技法は、図３と図４とに示されたシンクデバイス６の文脈で説明されるが、シンクデバイス６の構成とは異なる構成を有するコンピューティングデバイスが、図１１の技法を行い得る。
【０１０３】
[0118]  上で議論されるように、いくつかの例において、圧縮タイプモジュール６１は、図１１の技法に従ってフレームベースの再構成を使用してグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを生成するために、フレームベースの再構成モジュール６２を呼び出し得る。フレームベースの再構成を行うために呼び出されたときに、フレームベースの再構成モジュール６２は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、グラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの前のセットとの間のデルタを指示すると決定し得る。例えば、フレームベースの再構成モジュール６２は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、グラフィカルコマンドトークンの前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの１つまたは複数のチャンクとを含むと決定し得る（１１０２）。
【０１０４】
[0119]  フレームベースの再構成モジュール６２は、デルタとグラフィカルコマンドトークンの前のセットとに基づいてグラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成し得る。例えば、フレームベースの再構成モジュール６２は、グラフィカルコマンドトークンの前のセットのそれぞれの位置にあるデータを、グラフィカルコマンドトークンの現在のセットの受信されたバージョン内に含まれるデータの１つまたは複数のチャンクに置換することによって、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成し得る（１１０４）。フレームベースの再構成モジュール６２は、ＧＰＵ  ２０にグラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングさせるために、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンをシンクデバイス６のＧＰＵ  ２０に出力し得る。このように、フレームベースの再構成モジュール６２は、フレームベースの圧縮を使用するグラフィカルコマンドトークンのセットを再構成し得る。
【０１０５】
[0120]  図１２は、本開示の１つまたは複数の技法による、ソースデバイスから受信されたストリーミングビデオデータに対してトークンベースの再構成を行うためのシンクデバイスの例の動作を示す流れ図である。図１２の技法は、図３と図４とに示されたシンクデバイス６など、コンピューティングデバイスの１つまたは複数のプロセッサによって行われ得る。例示のために、図１２の技法は、図３と図４とに示されたシンクデバイス６の文脈で説明されるが、シンクデバイス６の構成とは異なる構成を有するコンピューティングデバイスが、図１２の技法を行い得る。
【０１０６】
[0121]  上で議論されるように、いくつかの例において、圧縮タイプモジュール６１は、図１２の技法に従ってトークンベースの再構成を使用してグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを生成するために、トークンベースの再構成モジュール６４を呼び出し得る。トークンベースの再構成を行うために呼び出されたときに、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを含むと決定し得る（１２０２）。いくつかの例において、トークン予測マップは、符号化され得る。例えば、トークン予測マップ［１，２，０，０，３，７，８，１０]は、グラフィカルコマンドトークンの現在のセットのどのグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内に類似するグラフィカルコマンドトークンを有するのかを指示する非０値のベクトル［１，１，０，０，１，１，１，１］と、トークン予測マップを再構成するために非０値のベクトルと組み合わされ得る差分非０値のベクトル［１，１，１，４，１，２］として符号化され得る。いくつかの例において、差分非０値のベクトルは、指数ゴロムコーディングを使用して符号化され得る（例えば、差分非０値のベクトル［１，１，１，４，１，２］は、「１」、「１」、「１」、「００１００」、「１」、「０１０」として符号化され得る）。
【０１０７】
[0122]  トークンベースの再構成モジュール６４は、インデックス値ｍに０をセットすることによって、第１のグラフィカルコマンドトークンｍを処理し得る（１２０４）。トークンベースの再構成モジュール６４は、トークン予測マップに基づいて、グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得るかどうかを決定し得る（１２０６）。一例として、トークン予測マップ内のエントリが非０である場合に、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得ると決定し得る。別の例として、トークン予測マップ内のエントリが０である場合に、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得ないと決定し得る。
【０１０８】
[0123]  グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前のセット内で突き止められ得ない場合には（１２０６の「Ｎｏ」分岐）、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンがグラフィカルコマンドトークンｍを含むと決定し得る（１２０８）。例えば、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、グラフィカルコマンドトークンｍの圧縮されていないバージョンを含むと決定し得る。
トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョン内にトークンｍを含め（１２１０）、トークンｍがグラフィカルコマンドトークンの現在のセット内の最後のグラフィカルコマンドトークンであるかどうかを決定し得る（１２１２）。
【０１０９】
[0124]  グラフィカルコマンドトークンｍに類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前のセット内で突き止められ得る場合には（１２０６の「Ｙｅｓ」分岐）、トークンベースの再構成モジュール６４は、上で議論されたフレームベースの再構成技法に類似する技法を使用してグラフィカルコマンドトークンｍを再構成し得る。例えば、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの受信されたバージョンが、グラフィカルコマンドトークンの前のセットの突き止められた類似するトークン内のデータのチャンクとは異なるトークンｍ内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、グラフィカルコマンドトークンの前のセットの突き止められた類似するトークン内のデータのチャンクとは異なるトークンｍ内のデータの１つまたは複数のチャンクとを含むと決定し得る（１２１６）。そのリストとデータの１つまたは複数のチャンクとに基づいて、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの前のセットの突き止められた類似するグラフィカルコマンドトークンのそれぞれの位置にあるデータを、突き止められた類似するグラフィカルコマンドトークンとは異なるトークンｍ内のデータの１つまたは複数のチャンクに置換することによって、トークンｍの再構成されたバージョンを生成し得る（１２１８）。トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョン内にグラフィカルコマンドトークンｍの再構成されたバージョンを含め（１２２０）、トークンｍがグラフィカルコマンドトークンの現在のセット内の最後のグラフィカルコマンドトークンであるかどうかを決定し得る（１２１２）。
【０１１０】
[0125]  どの場合でも、グラフィカルコマンドトークンｍがグラフィカルコマンドトークンの現在のセット内の最後のトークンではない場合には（１２１２の「Ｎｏ」分岐）、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセット内の次のグラフィカルコマンドトークンに進み（１２１２）、グラフィカルコマンドトークンｍ＋１に類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前のセット内で突き止められ得るかどうかを決定し得る（１２０６）。グラフィカルコマンドトークンｍがグラフィカルコマンドトークンの現在のセット内の最後のトークンである場合には（９１４の「Ｙｅｓ」分岐）、トークンベースの再構成モジュール６４は、グラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを出力し得る（１２２２）。例えば、トークンベースの再構成モジュール６４は、ＧＰＵ  ２０にグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンに基づいてビデオデータのフレームをレンダリングさせるために、シンクデバイス６のＧＰＵ  ２０にグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを出力し得る。このように、トークンベースの再構成モジュール６４は、トークンベースの圧縮を使用するグラフィカルコマンドトークンのセットを再構成し得る。
【０１１１】
[0126]  図１３は、本開示の１つまたは複数の技法による、ソースデバイスが、通信チャネルを介してシンクデバイスに圧縮されたグラフィカルコマンドを送信するように構成される、ＷＤシステム内の例のデータフローを示す概念図である。いくつかの例において、図１３によって示されるデータフローは、図３と図４とのＷＤシステム２内のデータフローに対応し得る。
【０１１２】
[0127]  図１３に示されているように、ソースデバイス４のアプリケーションモジュール１８のうちの１つまたは複数は、例えばＧＰＵ  １２に、グラフィカルコマンドトークンを出力し得る。いくつかの例において、ＧＰＵ  １２は、グラフィカルコマンドトークンをビデオデータにレンダリングし、レンダリングされたビデオをＵＩデバイス３４のディスプレイに出力し得る。いくつかの例において、ＧＰＵ  １２は、グラフィカルコマンドトークンをレンダリングしないものとされ得る。本開示の１つまたは複数の技法によれば、ストリーミングモジュール１４は、ＧＰＵ  １２の入力でグラフィカルコマンドトークンを取り込み得る。ストリーミングモジュール１４は、グラフィカルコマンドトークンを処理し、圧縮されたグラフィカルコマンドトークンを通信ユニット３２に出力し得る。例えば、ストリーミングモジュール１４は、フレームベースの符号化またはトークンベースの符号化の一方または両方を使用して、圧縮されたグラフィカルコマンドトークンを生成し得る。通信ユニット３２は、圧縮されたグラフィカルコマンドトークンをシンクデバイス６の通信ユニット５２に出力し得る。
【０１１３】
[0128]  通信ユニット５２は、受信された圧縮されたグラフィカルコマンドトークンをストリーミングモジュール２２に出力し得る。本開示の１つまたは複数の技法によれば、ストリーミングモジュール２２は、グラフィカルコマンドトークンを生成するために圧縮されたグラフィカルコマンドトークンを圧縮解除し、生成されたグラフィカルコマンドトークンをＧＰＵ  ２０に出力し得る。ＧＰＵ  ２０は、ストリーミングモジュール２２から受信されたグラフィカルコマンドトークンをレンダリングされたビデオにレンダリングし、レンダリングされたビデオを表示のために出力し得る。例えば、ＧＰＵ  ２０は、ＵＩデバイス５４のディスプレイでの表示のためにレンダリングされたビデオを出力し得る。
【０１１４】
[0129]  図１４は、本開示のもう１つの技法による、フレーム番号の関数としてデータレートを示すグラフである。いくつかの例において、図１４のグラフ１４００によって示されるデータレートは、図３と図４とのソースデバイス４などのソースデバイスが、グラフィカルコマンドトークンとテクスチャ要素としてビデオデータを送信するときに、図３と図４とのシンクデバイス６などのシンクデバイスへの転送のためにデータを生成し得るレートに対応し得る。
【０１１５】
[0130]  いくつかの例において、ピーク１４０２Ａ〜１４０２Ｃ（集合的に「ピーク１４０２」）は、テクスチャ要素を含むフレームに対応し得る。例えば、フレーム番号１、２５、および５０は、テクスチャ要素を含み得る。図１４の例において、テクスチャ要素を送信するのに使用されるデータの総量は、約７７ＭＢとされ得る。
【０１１６】
[0131]  上で議論されるように、テクスチャ要素の送信に加えて、ソースデバイスはまた、グラフィカルコマンドトークンを送信する。例えば、フレーム番号５１から１０００は、グラフィカルコマンドトークンのセットを含み得る。図１４の例において、グラフィカルコマンドトークンのセットを送信するのに使用されるデータの総量は、約２４２ＭＢとされ得る。従って、テクスチャ要素の送信は、データレート内のスパイクを引き起こすことがあるが、グラフィカルコマンドトークンの送信は、送信されるデータの全体的な量に大きく寄与する可能性がある。
【０１１７】
[0132]  本開示の１つまたは複数の技法によれば、ソースデバイスは、グラフィカルコマンドトークンを送信するために必要なデータの量を低減させるために１つまたは複数の圧縮技法を実施し得る。例えば、ソースデバイスは、図７〜図９の技法に従う１つまたは複数の圧縮技法を実施し得る。同様に、シンクデバイスは、図１０〜図１２の技法に従う１つまたは複数の称賛の圧縮解除技法を実施し得る。このように、ソースデバイスおよびシンクデバイスは、グラフィカルコマンドトークンを送信するために必要なデータの量を低減させ得る。
【０１１８】
[0133]  図１５は、本開示のもう１つの技法による、変化する圧縮技法を使用して、複数のアプリケーションのビデオデータをストリーミングするのに使用されるデータの量を示すグラフである。いくつかの例において、図１５のグラフ１５００によって示されるオリジナルサイズ１５０２データは、グラフィカルコマンドトークンを圧縮せずに、複数のアプリケーション（すなわち、「Ａｎｇｒｙ  Ｂｉｒｄｓ」と「Ｆｒｕｉｔ  Ｎｉｎｊａ  １」と「Ｆｒｕｉｔ  Ｎｉｎｊａ  ２」と「Ｇｏｏｇｌｅ  Ｍａｐｓ  １」と「Ｇｏｏｇｌｅ  Ｍａｐｓ  ２」と「Ｂｒｉｄｇｅｓ」と「Ｂｕｓ  Ｓｉｍｕｌａｔｏｒ」）のビデオデータをストリーミングするためにソースデバイスによって使用されるデータの量に対応し得る。いくつかの例において、図１５のグラフ１５００によって示されるフレームベース１５０４のデータは、グラフィカルコマンドトークンを圧縮するのにフレームベースの圧縮技法を使用して、複数のアプリケーションのビデオデータをストリーミングするためにソースデバイスによって使用されるデータの量に対応し得る。いくつかの例において、図１５のグラフ１５００によって示されるトークンベース１５０６のデータは、グラフィカルコマンドトークンを圧縮するのにフレームベースとトークンベースの圧縮技法を使用して、複数のアプリケーションのビデオデータをストリーミングするためにソースデバイスによって使用されるデータの量に対応し得る。図１５によって示されるように、フレームベースの技法とトークンベースの技法との一方または両方を用いてグラフィカルコマンドトークンを圧縮することによって、ソースデバイスは、シンクデバイスにビデオデータをストリーミングするために使用されるデータの量を低減させ得る。
【０１１９】
[0134]  図１６は、本開示のもう１つの技法による、変化する圧縮技法を使用して、複数のアプリケーションのビデオデータをストリーミングするのに使用されるデータの量を示すグラフである。図１６のグラフ１６００Ａは、複数のアプリケーション（すなわち、「Ａｎｇｒｙ  Ｂｉｒｄｓ」と「Ｆｒｕｉｔ  Ｎｉｎｊａ  １」と「Ｆｒｕｉｔ  Ｎｉｎｊａ  ２」と「Ｇｏｏｇｌｅ  Ｍａｐｓ  １」と「Ｇｏｏｇｌｅ  Ｍａｐｓ  ２」と「Ｂｒｉｄｇｅｓ」と「Ｂｕｓ  Ｓｉｍｕｌａｔｏｒ」）のビデオデータのフレームの第１のサブセットを送信するためにソースデバイスによって使用されるデータの異なる量を示す。例えば、オリジナルサイズ１６０２Ａは、グラフィカルコマンドトークンを圧縮せずにフレームの第１のサブセットをストリーミングするためにソースデバイスによって使用されるデータの量を示し、圧縮されたデータ１６０４Ａは、フレームベースのグラフィカルコマンドトークン圧縮を用いてフレームの第１のサブセットをストリーミングするためにソースデバイスによって使用されるデータの量を示す。
【０１２０】
[0135]  図１６のグラフ１６００Ｂは、複数のアプリケーションのビデオデータのフレームの第２のサブセットをストリーミングするためにソースデバイスによって使用されるデータの異なる量を示す。例えば、オリジナルサイズ１６０２Ｂは、グラフィカルコマンドトークンを圧縮せずにフレームの第２のサブセットを送信するためにソースデバイスによって使用されるデータの量を示し、圧縮されたデータ１６０４Ｂは、トークンベースのグラフィカルコマンドトークン圧縮を用いてフレームの第２のサブセットをストリーミングするためにソースデバイスによって使用されるデータの量を示す。
【０１２１】
[0136]  ビデオデータはまた、圧縮なしで送信されるフレームの第３のサブセットを含み得る。例えば、フレームの第３のサブセットは、トークンベースの圧縮を行うために、ビデオデータの第１のフレームと、ビデオデータの前のフレームに十分には類似しないビデオデータのフレームとを含み得る。グラフ１６００Ａによって示されるデータの第１のサブセットと、グラフ１６００Ｂによって示されるデータの第２のサブセットと、データの第３のサブセットとを一緒に送信するのに使用されるデータの量は、図１５によって示されるデータの量と等しいことがある。
【０１２２】
[0137]  以下の例は、本開示の１つまたは複数の技法を示し得る。
【０１２３】
[0138]  例１  それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込むことと、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、ソースデバイスによってシンクデバイスに、グラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力することとを備える、ビデオデータを送信するための方法。
【０１２４】
[0139]  例２  グラフィカルコマンドトークンの現在のセットの圧縮されたバージョンは、グラフィカルコマンドトークンの前のセットとは異なる、グラフィカルコマンドトークンの現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの１つまたは複数のチャンクとを含む、例１の方法。
【０１２５】
[0140]  例３  リストは、指数ゴロムコーディングを使用して符号化される、例１〜例２の任意の組合せの方法。
【０１２６】
[0141]  例４  グラフィカルコマンドトークンの現在のセットの長さが、グラフィカルコマンドトークンの前のセットの長さとは異なるとの決定に応答して、ソースデバイスによってシンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを出力することをさらに備える、例１〜例３の任意の組合せの方法。
【０１２７】
[0142]  例５  グラフィカルコマンドトークンの現在のセットの圧縮されたバージョンは、第１の圧縮されたバージョンであり、方法は、グラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前のセットの長さとは異なるとの決定に応答して、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定することと、トークン予測マップに基づく、グラフィカルコマンドトークンの現在のセットがグラフィカルコマンドトークンの前のセットに十分に類似するとの決定に応答して、ソースデバイスによってシンクデバイスにグラフィカルコマンドトークンの現在のセットの第２の圧縮されたバージョンを出力することと、トークン予測マップに基づく、グラフィカルコマンドトークンの現在のセットがグラフィカルコマンドトークンの前のセットに十分には類似しないとの決定に応答して、ソースデバイスによってシンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されていないバージョンを出力することとを備える、例１〜例４の任意の組合せの方法。
【０１２８】
[0143]  例６  グラフィカルコマンドトークンの現在のセットがグラフィカルコマンドトークンの前のセットに十分に類似するかどうかを決定することは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得るグラフィカルコマンドトークンの現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの現在のセットがグラフィカルコマンドトークンの前のセットに十分に類似すると決定することとを備える、例１〜例５の任意の組合せの方法。
【０１２９】
[0144]  例７  グラフィカルコマンドトークンの現在のセットの第２の圧縮されたバージョンは、トークン予測マップと、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得ないグラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンごとの、それぞれのグラフィカルコマンドトークンと、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得るグラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンごとの、グラフィカルコマンドトークンの前のセットの突き止められた類似するグラフィカルコマンドトークンとは異なるそれぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび突き止められた類似するグラフィカルコマンドトークンとは異なるそれぞれのトークン内のデータの１つまたは複数のチャンクとを含む、例１〜例６の任意の組合せの方法。
【０１３０】
[0145]  例８  グラフィカルコマンドトークンの現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前のセットの特定のグラフィカルコマンドトークンが、グラフィカルコマンドトークンの現在のセットの特定のグラフィカルコマンドトークンと同一のトークンタイプと、グラフィカルコマンドトークンの現在のセットの特定のグラフィカルコマンドトークンと同一のトークンデータサイズとを有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前のセット内で突き止められ得ると決定することをさらに備える、例１〜例７の任意の組合せの方法。
【０１３１】
[0146]  例９  ソースデバイスによってシンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮状況の指示を出力することをさらに備える、例１〜例８の任意の組合せの方法。
【０１３２】
[0147]  例１０  メモリと、１つまたは複数のプロセッサと、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込み、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンを出力するために、１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールとを備えるソースデバイス。
【０１３３】
[0148]  例１１  少なくとも１つのモジュールは、例１〜例９の方法の任意の組合せを行うために少なくとも１つのプロセッサによってさらに実行可能である、例１０のソースデバイス。
【０１３４】
[0149]  例１２  例１〜例９の方法の任意の組合せを行うための手段を備えるソースデバイス。
【０１３５】
[0150]  例１３  実行されたときに、例１〜例９の方法の任意の組合せをソースデバイスの１つまたは複数のプロセッサに行わせる命令を記憶するコンピュータ可読記憶媒体。
【０１３６】
[0151]  例１４  シンクデバイスによって、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況の指示とを受信することと、ここにおいて、グラフィカルコマンドトークンの現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成することと、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることとを備える、ビデオデータを受信するための方法。
【０１３７】
[0152]  例１５  グラフィカルコマンドトークンの現在のセットの受信されたバージョンは、グラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前のセットの長さと同一である場合に、フレームベースの圧縮を使用して圧縮される、例１４の方法。
【０１３８】
[0153]  例１６  グラフィカルコマンドトークンの現在のセットの受信されたバージョンは、グラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前のセットの長さとは異なる場合に圧縮されない、例１４〜例１５の任意の組合せの方法。
【０１３９】
[0154]  例１７  グラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの前のセットとの間のデルタは、グラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの１つまたは複数のチャンクとを含み、グラフィカルコマンドの現在のセットの再構成されたバージョンを生成することは、グラフィカルコマンドトークンの前のセットのそれぞれの位置にあるデータをグラフィカルコマンドトークンの現在のセットの圧縮されたバージョンに含まれるデータの１つまたは複数のチャンクに置換することを備える例１４〜例１６の任意の組合せの方法。
【０１４０】
[0155]  例１８  圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの現在のセットのバージョンが、グラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定することと、グラフィカルコマンドトークンの前のセットとそれぞれのデルタとに基づいて、グラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成することとをさらに備える、例１４〜例１７の任意の組合せの方法。
【０１４１】
[0156]  例１９  グラフィカルコマンドトークンの現在のセットのバージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの現在のセットのバージョンは、それぞれのグラフィカルコマンドトークンをさらに含み、トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの現在のセットのそれぞれのグラフィカルコマンドトークンごとに、それぞれのグラフィカルコマンドトークンのデルタは、グラフィカルコマンドトークンの前のセットの突き止められた類似するグラフィカルコマンドトークンとは異なるそれぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、突き止められた類似するグラフィカルコマンドトークンとは異なるそれぞれのトークン内のデータの１つまたは複数のチャンクとを含む、例１４〜例１８の任意の組合せの方法。
【０１４２】
[0157]  例２０  グラフィカルコマンドトークンの現在のセットは、グラフィカルコマンドトークンの現在のセットが、グラフィカルコマンドトークンの前のセットに十分に類似する場合に、トークンベースの圧縮を使用して圧縮される、例１４〜例１９の任意の組合せの方法。
【０１４３】
[0158]  例２１  グラフィカルコマンドトークンの現在のセットの受信されたバージョンは、グラフィカルコマンドトークンの現在のセットが、グラフィカルコマンドトークンの前のセットに十分には類似しない場合に、圧縮されない、例１４〜例２０の任意の組合せの方法。
【０１４４】
[0159]  例２２  メモリと、１つまたは複数のプロセッサと、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの現在のセットの圧縮状況の指示とを受信し、ここにおいて、グラフィカルコマンドトークンの現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、圧縮状況の指示に基づいて、グラフィカルコマンドトークンの現在のセットのバージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの現在のセットとグラフィカルコマンドトークンの複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンを生成し、グラフィカルコマンドトークンの現在のセットの再構成されたバージョンに基づいてビデオデータのフレームをレンダリングするために１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールとを備えるシンクデバイス。
【０１４５】
[0160]  例２３  少なくとも１つのモジュールは、例１２〜例１９の方法の任意の組合せを行うために１つまたは複数のプロセッサによってさらに実行可能である、例２２のシンクデバイス。
【０１４６】
[0161]  例２４  例１２〜例１９の方法の任意の組合せを行うための手段を備えるシンクデバイス。
【０１４７】
[0162]  例２５  実行されたときに、例１２〜例１９の方法の任意の組合せをシンクデバイスの１つまたは複数のプロセッサに行わせる命令を記憶するコンピュータ可読記憶媒体。
【０１４８】
[0163]  例に依存して、本明細書で説明される技法のいずれかのある種の行為または事象が、異なるシーケンスで行われることができ、追加され、合併され、または完全に除外され得る（例えば、説明される行為または事象の全てが、本技法の実践に必要とは限らない）ことが認められなければならない。その上、ある種の例では、行為または事象が、順次にではなく同時に、例えばマルチスレッド式処理、割込み処理、または複数のプロセッサを介して、行われ得る。
【０１４９】
[0164]  １つまたは複数の例では、説明される機能が、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実施され得る。ソフトウェアで実施される場合に、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体または、例えば通信プロトコルに従う、ある場所から別の場所へのコンピュータプログラムの転送を容易にする全ての媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実施のための命令、コード、および／またはデータ構造を取り出すために１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセス可能である全ての使用可能な媒体とされ得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１５０】
[0165]  限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク（ｄｉｓｋ）ストレージ、磁気ディスク（ｄｉｓｋ）ストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形で所望のプログラムコードを記憶するのに使用でき、コンピュータによってアクセス可能である任意の他の媒体を備え得る。また、全ての接続は、当然、コンピュータ可読媒体と呼ばれる。例えば、命令が、ウェブサイト、サーバ、または他のリモートソースから同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合に、同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、その代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。ディスク（ｄｉｓｋおよびｄｉｓｃ）は、本明細書で使用されたときに、コンパクトディスク（ｄｉｓｃ）（ＣＤ）とレーザディスク（登録商標）（ｄｉｓｃ）と光ディスク（ｄｉｓｃ）とデジタル多用途ディスク（ｄｉｓｃ）（ＤＶＤ）とフロッピディスク（ｄｉｓｋ）とブルーレイ（登録商標）ディスク（ｄｉｓｃ）とを含み、ｄｉｓｋは、通常はデータを磁気的に再生し、ｄｉｓｃは、レーザを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれなければならない。
【０１５１】
[0166]  命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積回路もしくはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。従って、「プロセッサ」という用語は、本明細書で使用されたときに、本明細書で説明される技法の実施に適する前述の構造または任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明される機能が、符号化と復号とのために構成された専用のハードウェアモジュールおよび／またはソフトウェアモジュール内において提供され、または組み合わされたコーデック内に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素内において完全に実施され得る。
【０１５２】
[0167]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（例えば、チップセット）を含む非常に様々なデバイスまたは装置内において実施され得る。様々な構成要素、モジュール、またはユニットは、本開示で、開示される技法を行うように構成されたデバイスの機能的態様を強調するために説明されるが、必ずしも異なるハードウェアユニットによる実現が必要とは限らない。そうではなく、上で説明されるように、様々なユニットは、コーデックハードウェア内において組み合わされ、または、適切なソフトウェアおよび／もしくはファームウェアに関連して、上で説明される１つまたは複数のプロセッサを含む相互動作するハードウェアユニットの集合によって提供され得る。
【０１５３】
[0168]  様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲の範疇にある。
【図１】
2018500854.tif 000003
【図２】
2018500854.tif 000004
【図３】
2018500854.tif 000005
【図４】
2018500854.tif 000006
【図５Ａ】
2018500854.tif 000007
【図５Ｂ】
2018500854.tif 000008
【図５Ｃ】
2018500854.tif 000009
【図６Ａ】
2018500854.tif 000010
【図６Ｂ】
2018500854.tif 000011
【図７Ａ】
2018500854.tif 000012
【図７Ｂ】
2018500854.tif 000013
【図８】
2018500854.tif 000014
【図９】
2018500854.tif 000015
【図１０】
2018500854.tif 000016
【図１１】
2018500854.tif 000017
【図１２】
2018500854.tif 000018
【図１３】
2018500854.tif 000019
【図１４】
2018500854.tif 000020
【図１５】
2018500854.tif 000021
【図１６】
2018500854.tif 000022
【手続補正書】
【提出日】平成29年7月19日(2017.7.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを送信するための方法であって、
前記グラフィックス領域におけるグラフィカルコマンドトークンの複数のセットを取り込むことと、ここにおいて、グラフィカルコマンドトークンの前記複数のセットは、それぞれビデオデータの複数のフレームにレンダリング可能である、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの全長がグラフィカルコマンドトークンの前記複数のセットの前のセットの全長と同一であるとの決定に応答して、ソースデバイスによって、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力することと
を備える、方法。
【請求項２】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、請求項１に記載の方法。
【請求項３】
前記リストは、指数ゴロムコーディングを使用して符号化される、請求項２に記載の方法。
【請求項４】
グラフィカルコマンドトークンの前記現在のセットの全長が、グラフィカルコマンドトークンの前記前のセットの全長とは異なるとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力すること
をさらに備える、請求項１に記載の方法。
【請求項５】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、前記方法は、
グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの前記長さとは異なるとの決定に応答して、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することと
をさらに備える、請求項１に記載の方法。
【請求項６】
グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
を備える、請求項５に記載の方法。
【請求項７】
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項５に記載の方法。
【請求項８】
グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することをさらに備える、請求項４に記載の方法。
【請求項９】
前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することをさらに備える、請求項１に記載の方法。
【請求項１０】
メモリと、
１つまたは複数のプロセッサと、
前記グラフィックス領域におけるグラフィカルコマンドトークンの複数のセットを取り込み、ここにおいて、グラフィカルコマンドトークンの前記複数のセットは、それぞれビデオデータの複数のフレームにレンダリング可能である、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの全長がグラフィカルコマンドトークンの前記複数のセットの前のセットの全長と同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力する
ために、前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるソースデバイス。
【請求項１１】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、請求項１０に記載のソースデバイス。
【請求項１２】
前記リストは、指数ゴロムコーディングを使用して符号化される、請求項１１に記載のソースデバイス。
【請求項１３】
グラフィカルコマンドトークンの前記現在のセットの全長が、グラフィカルコマンドトークンの前記前のセットの全長とは異なるとの決定に応答して、前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１４】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの前記長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１５】
前記少なくとも１つのモジュールは、少なくとも、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
によってグラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することを前記１つまたは複数のプロセッサによって実行可能である、請求項１４に記載のソースデバイス。
【請求項１６】
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項１４に記載のソースデバイス。
【請求項１７】
前記少なくとも１つのモジュールは、グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１３に記載のソースデバイス。
【請求項１８】
前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１９】
ビデオデータを受信するための方法であって、
シンクデバイスによって、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信することと、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、前記グラフィックス領域におけるグラフィカルコマンドトークンの複数のセットからのものであり、グラフィカルコマンドトークンの前記複数のセットは、それぞれビデオデータの複数のフレームにレンダリング可能である、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前記前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成することと、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることと
を備える、方法。
【請求項２０】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの全長がグラフィカルコマンドトークンの前記前のセットの全長と同一である場合に、フレームベースの圧縮を使用して圧縮される、請求項１９に記載の方法。
【請求項２１】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの全長がグラフィカルコマンドトークンの前記前のセットの全長とは異なる場合に圧縮されない、請求項１９に記載の方法。
【請求項２２】
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することは、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することを備える
請求項１９に記載の方法。
【請求項２３】
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定することと、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成することと
をさらに備える、請求項１９に記載の方法。
【請求項２４】
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項２３に記載の方法。
【請求項２５】
グラフィカルコマンドトークンの前記現在のセットは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分に類似する場合に、トークンベースの圧縮を使用して圧縮される、請求項２３に記載の方法。
【請求項２６】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分には類似しない場合に、圧縮されない、請求項２５に記載の方法。
【請求項２７】
メモリと、
１つまたは複数のプロセッサと、
ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信し、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、前記グラフィックス領域におけるグラフィカルコマンドトークンの複数のセットからのものであり、グラフィカルコマンドトークンの前記複数のセットは、それぞれビデオデータの複数のフレームにレンダリング可能である、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前記前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成し、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることを
前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるシンクデバイス。
【請求項２８】
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
前記少なくとも１つのモジュールは、少なくとも、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することによって、グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することを前記１つまたは複数のプロセッサによって実行可能である、
請求項２７に記載のシンクデバイス。
【請求項２９】
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、前記少なくとも１つのモジュールは、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定し、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、請求項２７に記載のシンクデバイス。
【請求項３０】
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、
請求項２９に記載のシンクデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１５３
【補正方法】変更
【補正の内容】
【０１５３】
[0168]  様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲の範疇にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを送信するための方法であって、
それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込むことと、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前記複数のセットの前のセットの長さと同一であるとの決定に応答して、ソースデバイスによって、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力することと
を備える、方法。
［Ｃ２］
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、Ｃ１に記載の方法。
［Ｃ３］
前記リストは、指数ゴロムコーディングを使用して符号化される、Ｃ２に記載の方法。
［Ｃ４］
グラフィカルコマンドトークンの前記現在のセットの長さが、グラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力すること
をさらに備える、Ｃ１に記載の方法。
［Ｃ５］
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、前記方法は、
グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの前記長さとは異なるとの決定に応答して、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ６］
グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
を備える、Ｃ５に記載の方法。
［Ｃ７］
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、Ｃ５に記載の方法。
［Ｃ８］
グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することをさらに備える、Ｃ４に記載の方法。
［Ｃ９］
前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
メモリと、
１つまたは複数のプロセッサと、
それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットを取り込み、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前記複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力する
ために、前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるソースデバイス。
［Ｃ１１］
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、Ｃ１０に記載のソースデバイス。
［Ｃ１２］
前記リストは、指数ゴロムコーディングを使用して符号化される、Ｃ１１に記載のソースデバイス。
［Ｃ１３］
グラフィカルコマンドトークンの前記現在のセットの長さが、グラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、Ｃ１０に記載のソースデバイス。
［Ｃ１４］
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、Ｃ１０に記載のソースデバイス。
［Ｃ１５］
前記少なくとも１つのモジュールは、少なくとも、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
によってグラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することを前記１つまたは複数のプロセッサによって実行可能である、Ｃ１４に記載のソースデバイス。
［Ｃ１６］
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、Ｃ１４に記載のソースデバイス。
［Ｃ１７］
前記少なくとも１つのモジュールは、グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することを前記１つまたは複数のプロセッサによってさらに実行可能である、Ｃ１３に記載のソースデバイス。
［Ｃ１８］
前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、Ｃ１０に記載のソースデバイス。
［Ｃ１９］
ビデオデータを受信するための方法であって、
シンクデバイスによって、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信することと、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成することと、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることと
を備える、方法。
［Ｃ２０］
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さと同一である場合に、フレームベースの圧縮を使用して圧縮される、Ｃ１９に記載の方法。
［Ｃ２１］
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さとは異なる場合に圧縮されない、Ｃ１９に記載の方法。
［Ｃ２２］
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することは、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することを備える
Ｃ１９に記載の方法。
［Ｃ２３］
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定することと、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成することと
をさらに備える、Ｃ１９に記載の方法。
［Ｃ２４］
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、Ｃ２３に記載の方法。
［Ｃ２５］
グラフィカルコマンドトークンの前記現在のセットは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分に類似する場合に、トークンベースの圧縮を使用して圧縮される、Ｃ２３に記載の方法。
［Ｃ２６］
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分には類似しない場合に、圧縮されない、Ｃ２５に記載の方法。
［Ｃ２７］
メモリと、
１つまたは複数のプロセッサと、
ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信し、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、それぞれビデオデータの複数のフレームにレンダリング可能なグラフィカルコマンドトークンの複数のセットからのものである、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成し、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることを
前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるシンクデバイス。
［Ｃ２８］
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
前記少なくとも１つのモジュールは、少なくとも、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することによって、グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することを前記１つまたは複数のプロセッサによって実行可能である
Ｃ２７に記載のシンクデバイス。
［Ｃ２９］
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、前記少なくとも１つのモジュールは、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定し、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、Ｃ２７に記載のシンクデバイス。
［Ｃ３０］
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む
Ｃ２９に記載のシンクデバイス。
【手続補正書】
【提出日】平成29年7月20日(2017.7.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを送信するための方法であって、
グラフィカルコマンドトークンの複数のセットを取り込むことと、ここにおいて、前記グラフィカルコマンドトークンの各々は、前記グラフィックス領域におけるグラフィカルコマンドに対応し、グラフィカルコマンドトークンの前記複数のセットのうちのグラフィカルコマンドトークンのそれぞれのセットごとに対応する前記グラフィカルコマンドは、ビデオデータの複数のフレームのそれぞれのフレームにレンダリング可能である、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの全長がグラフィカルコマンドトークンの前記複数のセットの前のセットの全長と同一であるとの決定に応答して、ソースデバイスによって、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力することと
を備える、方法。
【請求項２】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、請求項１に記載の方法。
【請求項３】
前記リストは、指数ゴロムコーディングを使用して符号化される、請求項２に記載の方法。
【請求項４】
グラフィカルコマンドトークンの前記現在のセットの全長が、グラフィカルコマンドトークンの前記前のセットの全長とは異なるとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力すること
をさらに備える、請求項１に記載の方法。
【請求項５】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、前記方法は、
グラフィカルコマンドトークンの前記現在のセットの全長がグラフィカルコマンドトークンの前記前のセットの全長とは異なるとの決定に応答して、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力することと、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することと
をさらに備える、請求項１に記載の方法。
【請求項６】
グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
を備える、請求項５に記載の方法。
【請求項７】
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項５に記載の方法。
【請求項８】
グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することをさらに備える、請求項４に記載の方法。
【請求項９】
前記ソースデバイスによって前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することをさらに備える、請求項１に記載の方法。
【請求項１０】
メモリと、
１つまたは複数のプロセッサと、
グラフィカルコマンドトークンの複数のセットを取り込み、ここにおいて、前記グラフィカルコマンドトークンの各々は、前記グラフィックス領域におけるグラフィカルコマンドに対応し、グラフィカルコマンドトークンの前記複数のセットのうちのグラフィカルコマンドトークンのそれぞれのセットごとに対応する前記グラフィカルコマンドは、ビデオデータの複数のフレームのそれぞれのフレームにレンダリング可能である、
グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの現在のセットの長さがグラフィカルコマンドトークンの前記複数のセットの前のセットの長さと同一であるとの決定に応答して、シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されたバージョンを出力する
ために、前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるソースデバイス。
【請求項１１】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、
グラフィカルコマンドトークンの前記前のセットとは異なる、グラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
データの前記１つまたは複数のチャンクと
を含む、請求項１０に記載のソースデバイス。
【請求項１２】
前記リストは、指数ゴロムコーディングを使用して符号化される、請求項１１に記載のソースデバイス。
【請求項１３】
グラフィカルコマンドトークンの前記現在のセットの長さが、グラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１４】
グラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンは、第１の圧縮されたバージョンであり、グラフィカルコマンドトークンの前記現在のセットの長さがグラフィカルコマンドトークンの前記前のセットの長さとは異なるとの決定に応答して、前記少なくとも１つのモジュールは、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップを決定し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの第２の圧縮されたバージョンを出力し、
前記トークン予測マップに基づく、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分には類似しないとの決定に応答して、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮されていないバージョンを出力する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１５】
前記少なくとも１つのモジュールは、少なくとも、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンのパーセンテージを決定することと、
前記パーセンテージがしきいパーセンテージを満たすとの決定に応答して、グラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似すると決定することと
によってグラフィカルコマンドトークンの前記現在のセットがグラフィカルコマンドトークンの前記前のセットに十分に類似するかどうかを決定することを前記１つまたは複数のプロセッサによって実行可能である、請求項１４に記載のソースデバイス。
【請求項１６】
グラフィカルコマンドトークンの前記現在のセットの前記第２の圧縮されたバージョンは、
前記トークン予測マップと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、前記それぞれのグラフィカルコマンドトークンと、
類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るグラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとの、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストおよび
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項１４に記載のソースデバイス。
【請求項１７】
前記少なくとも１つのモジュールは、グラフィカルコマンドトークンの前記現在のセットの特定のグラフィカルコマンドトークンについて、グラフィカルコマンドトークンの前記前のセットの特定のグラフィカルコマンドトークンが、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンタイプと、
グラフィカルコマンドトークンの前記現在のセットの前記特定のグラフィカルコマンドトークンと同一のトークンデータサイズと
を有する場合に、類似するグラフィカルコマンドトークンが、グラフィカルコマンドトークンの前記前のセット内で突き止められ得ると決定することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１３に記載のソースデバイス。
【請求項１８】
前記少なくとも１つのモジュールは、前記シンクデバイスにグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示を出力することを前記１つまたは複数のプロセッサによってさらに実行可能である、請求項１０に記載のソースデバイス。
【請求項１９】
ビデオデータを受信するための方法であって、
シンクデバイスによって、ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信することと、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、グラフィカルコマンドトークンの複数のセットからのものであり、前記グラフィカルコマンドトークンの各々は、前記グラフィックス領域におけるグラフィカルコマンドに対応し、グラフィカルコマンドトークンの前記複数のセットのうちのグラフィカルコマンドトークンのそれぞれのセットごとに対応する前記グラフィカルコマンドは、ビデオデータの複数のフレームのそれぞれのフレームにレンダリング可能である、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前記前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成することと、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることと
を備える、方法。
【請求項２０】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの全長がグラフィカルコマンドトークンの前記前のセットの全長と同一である場合に、フレームベースの圧縮を使用して圧縮される、請求項１９に記載の方法。
【請求項２１】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットの全長がグラフィカルコマンドトークンの前記前のセットの全長とは異なる場合に圧縮されない、請求項１９に記載の方法。
【請求項２２】
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することは、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することを備える
請求項１９に記載の方法。
【請求項２３】
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定することと、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成することと
をさらに備える、請求項１９に記載の方法。
【請求項２４】
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、請求項２３に記載の方法。
【請求項２５】
グラフィカルコマンドトークンの前記現在のセットは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分に類似する場合に、トークンベースの圧縮を使用して圧縮される、請求項２３に記載の方法。
【請求項２６】
グラフィカルコマンドトークンの前記現在のセットの前記受信されたバージョンは、グラフィカルコマンドトークンの前記現在のセットが、グラフィカルコマンドトークンの前記前のセットに十分には類似しない場合に、圧縮されない、請求項２５に記載の方法。
【請求項２７】
メモリと、
１つまたは複数のプロセッサと、
ソースデバイスから、グラフィカルコマンドトークンの現在のセットのバージョンとグラフィカルコマンドトークンの前記現在のセットの圧縮状況の指示とを受信し、ここにおいて、グラフィカルコマンドトークンの前記現在のセットは、グラフィカルコマンドトークンの複数のセットからのものであり、前記グラフィカルコマンドトークンの各々は、前記グラフィックス領域におけるグラフィカルコマンドに対応し、グラフィカルコマンドトークンの前記複数のセットのうちのグラフィカルコマンドトークンのそれぞれのセットごとに対応する前記グラフィカルコマンドは、ビデオデータの複数のフレームのそれぞれのフレームにレンダリング可能である、
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、フレームベースの圧縮を使用して圧縮されているとの決定に応答して、グラフィカルコマンドトークンの前記前のセット並びにグラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前のセットとの間の受信されたデルタに基づいて、グラフィカルコマンドトークンの前記現在のセットの再構成されたバージョンを生成し、
グラフィカルコマンドトークンの前記現在のセットの前記再構成されたバージョンに基づいてビデオデータのフレームをレンダリングすることを
前記１つまたは複数のプロセッサによって実行可能な少なくとも１つのモジュールと
を備えるシンクデバイス。
【請求項２８】
グラフィカルコマンドトークンの前記現在のセットとグラフィカルコマンドトークンの前記前のセットとの間の前記デルタは、グラフィカルコマンドトークンの前記複数のセットのグラフィカルコマンドトークンの前記前のセット内のデータのチャンクとは異なるグラフィカルコマンドトークンの前記現在のセット内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、データの前記１つまたは複数のチャンクとを含み、
前記少なくとも１つのモジュールは、少なくとも、グラフィカルコマンドトークンの前記前のセットの前記それぞれの位置にあるデータをグラフィカルコマンドトークンの前記現在のセットの前記圧縮されたバージョンに含まれるデータの前記１つまたは複数のチャンクに置換することによって、グラフィカルコマンドの前記現在のセットの前記再構成されたバージョンを生成することを前記１つまたは複数のプロセッサによって実行可能である、
請求項２７に記載のシンクデバイス。
【請求項２９】
前記圧縮状況の前記指示に基づいて、グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、トークンベースの圧縮を使用して圧縮されているとの決定に応答して、前記少なくとも１つのモジュールは、
グラフィカルコマンドトークンの前記現在のセットの前記バージョンが、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンとグラフィカルコマンドトークンの前のセットの類似するグラフィカルコマンドトークンとの間のそれぞれのデルタを示すと決定し、
グラフィカルコマンドトークンの前記前のセットと前記それぞれのデルタとに基づいて、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンの再構成されたバージョンを生成する
ために前記１つまたは複数のプロセッサによってさらに実行可能である、請求項２７に記載のシンクデバイス。
【請求項３０】
グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得るかどうかをグラフィカルコマンドトークンの前記現在のセットのグラフィカルコマンドトークンごとに指示するトークン予測マップをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ないことを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、グラフィカルコマンドトークンの前記現在のセットの前記バージョンは、前記それぞれのグラフィカルコマンドトークンをさらに含み、
前記トークン予測マップが、類似するグラフィカルコマンドトークンがグラフィカルコマンドトークンの前記前のセット内で突き止められ得ることを指示する、グラフィカルコマンドトークンの前記現在のセットのそれぞれのグラフィカルコマンドトークンごとに、前記それぞれのグラフィカルコマンドトークンの前記デルタは、
グラフィカルコマンドトークンの前記前のセットの前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのグラフィカルコマンドトークン内のデータの１つまたは複数のチャンクのそれぞれの位置を指示するリストと、
前記突き止められた類似するグラフィカルコマンドトークンとは異なる前記それぞれのトークン内のデータの前記１つまたは複数のチャンクと
を含む、
請求項２９に記載のシンクデバイス。
【国際調査報告】
2018500854.tif 000023
2018500854.tif 000024
2018500854.tif 000025