(57)【要約】  本デバイスは、カメラによってキャプチャされたシーンのビデオ画像を表現しているビデオ信号をエンコーディングするためのエンコーダと、コントローラを含む。エンコーダは、エンコーディングの一部としてビデオ信号について量子化を実行するための量子化器を含む。コントローラは、シーンの中に存在するユーザに係る一つまたはそれ以上の骨格特徴に関して骨格トラッキングアルゴリズムから骨格トラッキング情報を受け取り、そして、情報に基づいて、ビデオ画像の中でユーザに係る一つまたはそれ以上の身体領域に対応している一つまたはそれ以上の興味領域を定め、かつ、一つまたはそれ以上の興味領域の内側においては一つまたはそれ以上の興味領域の外側よりも細かい量子化粒度を使用するように量子化を適合させるように構成されている。
2017531946.tif 000002
【特許請求の範囲】
【請求項１】
カメラによってキャプチャされたシーンのビデオ画像を表現しているビデオ信号をエンコーディングするためのエンコーダであり、前記エンコーディングの一部として前記ビデオ信号について量子化を実行するための量子化器を含む、エンコーダと、
前記シーンの中に存在するユーザに係る一つまたはそれ以上の骨格特徴に関して、骨格トラッキングアルゴリズムから骨格トラッキング情報を受け取るように構成されているコントローラであり、情報に基づいて、
前記ビデオ画像の中で、前記ユーザに係る一つまたはそれ以上の身体領域に対応している一つまたはそれ以上の興味領域を定め、かつ、
前記一つまたはそれ以上の興味領域の内側においては、前記一つまたはそれ以上の興味領域の外側よりも細かい量子化粒度を使用するように前記量子化を適合させる、
コントローラと、
を含む、デバイス。
【請求項２】
前記コントローラは、
それぞれが前記ユーザに係るそれぞれの身体領域に対応している複数の異なる興味領域を定め、かつ、
前記複数の興味領域それぞれの内側においては、前記複数の興味領域の外側よりも細かい量子化粒度を使用するように前記量子化を適合させる、
請求項１に記載のデバイス。
【請求項３】
一つまたはそれ以上の異なる興味領域は、ある時だけ、より細かい量子化粒度を用いて量子化される、
請求項２に記載のデバイス。
【請求項４】
前記コントローラは、現在のビットレートの制約に基づいて、前記異なる興味領域のうちどの領域がより細かい量子化粒度を用いて現在に量子化されるかを適応的に選択する、ように構成されている、
請求項３に記載のデバイス。
【請求項５】
前記身体領域には、優先度の順序が割り当てられ、かつ、
前記コントローラは、異なる興味領域に対応する前記身体領域に係る優先度の前記順序に応じて前記選択を実行する、ように構成されている、
請求項４に記載のデバイス。
【請求項６】
前記コントローラは、前記複数の興味領域のうち異なる興味領域の内側においては、異なるレベルの量子化粒度を使用するように前記量子化を適合させる、ように構成されており、それぞれの量子化粒度は、前記複数の興味領域の外側よりも細かい、
請求項２乃至５いずれか一項に記載のデバイス。
【請求項７】
前記身体領域には、優先度の順序が割り当てられ、かつ、
前記コントローラは、異なる興味領域に対応する前記身体領域に係る優先度の前記順序に応じて前記異なるレベルを設定する、ように構成されている、
請求項６に記載のデバイス。
【請求項８】
それぞれの前記身体領域は、
（ａ）前記ユーザの身体全体、
（ｂ）前記ユーザの頭、胴体、および、腕、
（ｃ）前記ユーザの頭、胸郭、および、腕、
（ｄ）前記ユーザの頭、および、肩、
（ｅ）前記ユーザの頭、
（ｆ）前記ユーザの胴体、
（ｇ）前記ユーザの胸郭、
（ｈ）前記ユーザの腹部、
（ｉ）前記ユーザの腕、および、手、
（ｊ）前記ユーザの肩、
（ｋ）前記ユーザの手、
のうち一つである、
請求項１乃至７いずれか一項に記載のデバイス。
【請求項９】
優先度の前記順序は、
（ｉ）頭
（ｉｉ）「頭、および、肩」、または、「頭、胸郭、および、腕」、または、「頭、胸郭、および、腕」
（ｉｉｉ）身体全体
の順序であり、
ビットレートの制約で許容される場合には、（ｉｉｉ）が、より細かい量子化を用いて量子化され、
そうでない場合、ビットレートの制約で許容さる場合には、（ｉｉ）だけが、より細かい量子化を用いて量子化され、そして、
そうでない場合、（ｉｉｉ）だけが、より細かい量子化を用いて量子化される、
請求項５または７に記載のデバイス。
【請求項１０】
優先度の前記順序は、
（ｉ）頭
（ｉｉ）頭、腕、肩、胸郭、及び／又は、腹部
（ｉｉｉ）残りの身体全体
の順序であり、
（ｉ）は、第１レベルの量子化粒度を用いて量子化され、
（ｉｉ）は、一つまたはそれ以上の第２レベルの量子化粒度を用いて量子化され、かつ、
（ｉｉｉ）は、第３レベルの量子化粒度を用いて量子化されており、
前記第１レベルは、前記一つまたはそれ以上の第２レベルのそれぞれよりも細かく、かつ、
前記第３レベルは、前記興味領域の外側よりも細かい、
請求項７に記載のデバイス。
【請求項１１】
前記デバイスは、
前記エンコーディングされたビデオ信号を少なくとも一つの他のデバイスに対してチャンネルにわたり送信するように構成されている、送信器を含み、
前記コントローラは、前記チャンネルの利用可能なバンド幅を決定するように構成されており、かつ、
前記ビットレートの制約は、前記利用可能なバンド幅に等しいか、そうでなければ、前記利用可能なバンド幅によって限定されている、
請求項４または５に記載のデバイス。
【請求項１２】
前記骨格トラッキングアルゴリズムは、前記デバイスにおいて実施され、かつ、前記カメラ以外の一つまたはそれ以上の分離したセンサに基づいて、前記骨格トラッキング情報を決定するように構成されている、
請求項１乃至１１いずれか一項に記載のデバイス。
【請求項１３】
前記デバイスは、専用グラフィクス処理装置および汎用処理装置を含み、
前記骨格トラッキングアルゴリズムは、前記専用グラフィクス処理装置において実施され、かつ、前記エンコーダは、前記汎用処理装置において実施される、
請求項１乃至１２いずれか一項に記載のデバイス。
【請求項１４】
前記汎用処理装置は、汎用プロセッサを含み、かつ、前記専用グラフィクス処理装置は、分離したグラフィクスプロセッサを含み、
前記エンコーダは、前記汎用プロセッサ上で実行するように構成されたコードの形式において実施されており、かつ、
前記骨格トラッキングアルゴリズムは、前記グラフィクスプロセッサ上で実行するように構成されたコードの形式において実施されている、
請求項１３に記載のデバイス。
【請求項１５】
コンピュータプログラムであり、一つまたはそれ以上のプロセッサによって実行されると、
カメラによってキャプチャされたシーンのビデオ画像を表現しているビデオ信号をエンコーディングするステップであり、前記ビデオ信号について量子化を実行する、ステップと、
前記シーンの中に存在するユーザに係る一つまたはそれ以上の骨格特徴に関して、骨格トラッキングアルゴリズムから骨格トラッキング情報を受け取るステップと、
前記骨格トラッキング情報に基づいて、前記ビデオ画像の中で、前記ユーザに係る一つまたはそれ以上の身体領域に対応している一つまたはそれ以上の興味領域を定めるステップと、
前記一つまたはそれ以上の興味領域の内側においては、前記一つまたはそれ以上の興味領域の外側よりも細かい量子化粒度を使用するように前記量子化を適合させるステップ、
を実施するように構成されている、コンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
ビデオコーディングにおいて、量子化（ｑｕａｎｔｉｚａｔｉｏｎ）は、ビデオ信号のサンプル（典型的には、変換された残余（ｒｅｓｉｄｕａｌ）サンプル）を、より細かな粒度（ｇｒａｎｕｌａｒｉｔｙ）スケールにおける表現から、より粗い粒度スケールにおける表現へ変換するプロセスである。多くの事例において、量子化は、有効に連続的な値から、実質的な離散スケール（ｄｉｓｃｒｅｔｅ  ｓｃａｌｅ）における値への変換として考えられてよい。例えば、入力信号における変換された残余ＹＵＶまたはＲＧＢサンプルが、それぞれ０から２５５（８ビット）のスケールにおける値によって表現される場合に、量子化器は、これらを０から１５（４ビット）のスケールにおける値によって表現されるものへ変換し得る。量子化されたスケールにおいて可能な最小値と最大値である０と１５は、なおも、量子化されていない入力スケールにおいて可能な最小値と最大値と同一（または概ね同じ）最小と最大のサンプルアンプリチュード（ａｍｐｌｉｔｕｄｅ）を表現しているが、今や、両者の間には、より少ないレベルの段階（ｇｒａｄａｔｉｏｎ）が存在している。つまり、ステップサイズが削減されているのである。こうして、ビデオの各フレームからいくらかの詳細が失われるが、フレーム毎により少ないビットを発生するという点で、信号はより小さいものである。量子化は、ときどき、量子化パラメータ（ＱＰ）を単位として表現される。より低いＱＰは、より細かな粒度を表わし、かつ、より高いＱＰは、より粗い粒度を表わしている。
【０００２】
注意：量子化は、より細かな粒度スケールにおける表現から、より粗い粒度スケールにおける表現へ、所与のサンプルそれぞれを表現している値を変換するプロセスを特定的に参照するものである。典型的に、このことは、変換ドメインにおける残余信号の係数それぞれに係る一つまたはそれ以上のカラーチャンネルを量子化することを意味する。例えば、各ＲＧＢ（赤、緑、青）係数、または、より通常にはＹＵＶ（輝度（ｌｕｍｉｎａｎｃｅ）と２つの色度（ｃｈｒｏｍｉｎａｎｃｅ）チャンネルそれぞれ）である。例えば、０から２５５までのスケールにおいて入力されたＹ値が、０から１５までのスケールへ量子化されてよく、そして、ＵとＶ、または、代替的な色空間におけるＲＧＢについても同様である（しかし、一般的には、それぞれのカラーチャンネルに対して提供された量子化が、同一のものである必要はない）。単位領域毎のサンプルの数量は、解像度（ｒｅｓｏｌｕｔｉｏｎ）として参照されるものであって、別個のコンセプトである。用語である量子化は、解像度における変化を参照するためには使用されない、むしろ、サンプル毎の粒度における変化を参照するものである。
【０００３】
ビデオエンコーディング（ｅｎｃｏｄｉｎｇ）は、エンコードされる信号のサイズが考慮される数多くのアプリケーションにおいて使用される。例えば、インターネットといったパケットベースのネットワークにわたりライブビデオコール（ｌｉｖｅ  ｖｉｄｅｏ  ｃａｌｌ）のストリームといった、リアルタイムビデオストリームを送信するときである。より細かな粒度の量子化を使用することは、各フレームにおいて、より少ない歪みを結果として生じる（より少ない情報が捨てられる）が、エンコードされた信号においてより高いビットレートを招いてしまう。反対に、より粗い粒度の量子化を使用することは、より低いビットレートを招くが、フレーム毎により多くの歪みが導入されてしまう。
【０００４】
いくつかのコードにより、フレーム領域の中で一つまたはそれ以上のサブ領域を定めることができ、そこでは量子化パラメータが、フレームの残りの領域よりも低い値（より細かな量子化粒度）に設定され得る。そうしたサブ領域は、しばしば、「興味領域（”ｒｅｇｉｏｎ−ｏｆ−ｉｎｔｅｒｅｓｔ”）（ＲＯＩ）」として参照され、一方で、ＲＯＩの外側の残りの領域は、しばしば、「背景（”ｂａｃｋｇｒｏｕｎｄ”）」として参照される。本技術により、知覚的により重要であり、及び／又は、より多くのアクティビティが生じることが期待される、各フレームの領域において、より多くのビットを費やすことができ、一方で、より重要ではないフレームの部分においては、より少ないビットが浪費されている。このように、より粗い量子化において節約されるビットレートと、より細かな量子化によって得られる品質との間の、よりインテリジェントなバランスを提供している。例えば、ビデオコールにおいて、ビデオは、たいてい、「トーキング・ヘッド（”ｔａｌｋｉｎｇ  ｈｅａｄ”）」の形式であり、静止した背景に対してユーザの頭、顔、および両肩を含んでいる。従って、ＶｏＩＰといったビデオコールの一部として送信されるビデオをエンコードする場合に、ＲＯＩは、ユーザの頭、または、頭と両肩の周りの領域に対応してよい。
【０００５】
いくつかの事例において、ＲＯＩは、フレーム領域の中で固定の形状、サイズ、および位置として単純に定められる。例えば、主要なアクティビティ（例えば、ビデオコールにおける顔）は、おおよそフレームの中心の矩形の中で発生する傾向があると仮定したものである。他の事例においては、ユーザが、手動でＲＯＩを選択することができる。より最近では、ターゲットビデオに対して適用される顔面認識アルゴリズムに基づいて、ビデオの中に現れている人の顔面の周りの領域として、ＲＯＩを自動的に定める技術が提案されてきている。
【発明の概要】
【０００６】
しかしながら、既存の技術の範囲は限定的である。より細かな量子化が適用される一つまたはそれ以上の興味領域を自動的に定めるための代替的な技術を見い出すことが望ましいであろう。単なる「ト−キング・ヘッド」以外の知覚的に関連し得る他のタイプのアクティビティを考慮することができ、それによって、シナリオのより広い範囲にわたり、品質とビットレートとの間のより適切なバランスを創り出している。
【０００７】
最近では、骨格トラッキング（ｓｋｅｌｅｔａｌ  ｔｒａｃｋｉｎｇ）システムが利用可能になってきている。骨格トラッキングアルゴリズム、および、ユーザに係る一つまたはそれ以上の骨格特徴をトラッキングするための、赤外線深度センサといった一つまたはそれ以上の骨格トラッキングセンサ、を使用するものである。典型的に、これらは、ジェスチャコントロールのため、例えば、コンピュータゲームをコントロールするために使用されている。しかしながら、そうしたシステムは、量子化の目的のために、ビデオの中で一つまたはそれ以上の興味領域を自動的に定めることについてアプリケーションを有し得ることが、ここにおいて認識される。
【０００８】
ここにおいて開示される一つの態様に従って、カメラによってキャプチャされたシーンのビデオ画像を表現しているビデオ信号をエンコーディングするためのエンコーダと、エンコーダをコントロールするためのコントローラとを含むデバイスが提供される。エンコーダは、エンコーディングの一部としてビデオ信号について量子化を実行するための量子化器を含む。コントローラは、シーンの中に存在するユーザに係る一つまたはそれ以上の骨格特徴に関して、骨格トラッキングアルゴリズムから骨格トラッキング情報を受け取るように構成されている。情報に基づいて、コントローラは、ビデオ画像の中でユーザに係る一つまたはそれ以上の身体領域に対応している一つまたはそれ以上の興味領域を定め、かつ、一つまたはそれ以上の興味領域の内側においては、一つまたはそれ以上の興味領域の外側よりも細かい量子化粒度を使用するように量子化を適合させる。
【０００９】
興味領域は、相互に空間的に排他的なものであってよく、または、オーバーラップしてよい。例えば、問題とするスキームの一部として定められるそれぞれの身体領域は、（ａ）ユーザの身体全体、（ｂ）ユーザの頭、胴体、および、腕、（ｃ）ユーザの頭、胸郭、および、腕、（ｄ）ユーザの頭、および、肩、（ｅ）ユーザの頭、（ｆ）ユーザの胴体、（ｇ）ユーザの胸郭、（ｈ）ユーザの腹部、（ｉ）ユーザの腕、および、手、（ｊ）ユーザの肩、または、（ｋ）ユーザの手、のうち一つであってよい。
【００１０】
複数の異なる興味領域に係る事例においては、より細かい量子化粒度が、いくつか又は全ての興味領域において、同時に適用されてよく、かつ／あるいは、いくつか又は全ての興味領域において、所定の時間においてだけに適用されてよい（異なる時間においてより細かい量子化粒度を用いて興味領域のうち異なるものを量子化する可能性を含んでいる）。より細かい量子化のためにどの興味領域が現在選択されているかは、ビットレートの制約に基づいて動的に適合されてよい。例えば、エンコードされたビデオがそれにわたり送信されるチャンネルの現在のバンド幅によって限定される。実施例において、身体領域には優先度の順序が割り当てられ、かつ、選択が、異なる興味領域に対応する身体領域に係る優先度の順序に応じて実行される。例えば、利用可能なバンド幅が高い場合には、（ａ）ユーザの身体全体、に対応するＲＯＩが、より細かい粒度で量子化されてよい。一方、利用可能なバンド幅がより低い場合に、コントローラは、例えば、（ｂ）ユーザの頭、胴体、および、腕、または（ｃ）ユーザの頭、胸郭、および、腕、または（ｄ）ユーザの頭、および、肩、または（ｅ）ユーザの頭、だけにでも、対応するＲＯＩにおいて、より細かい粒度を適用するように選択してよい。
【００１１】
代替的または追加的な実施例において、コントローラは、異なる興味領域の内側において異なるレベルの量子化粒度を使用するよう量子化を適合させるように構成されてよく、それぞれは興味領域の外側より細かいものである。異なるレベルは、異なる興味領域が対応する身体部分に係る優先度の順序に応じて設定されてよい。例えば、頭は、第１の、最高の量子化粒度を用いてエンコードされてよく、一方で、手、腕、肩、胸郭、及び／又は、胴部が、一つまたはそれ以上の第２の、いくらかはより粗い量子化粒度を用いてエンコードされてよく、そして、残りの身体が、第２の量子化粒度よりは粗いが、ＲＯＩの外側よりはまだ細かい第３の量子化粒度を用いてエンコードされてよい。
【００１２】
この概要は、簡素化された形式において、コンセプトのセレクションを紹介するために提供されている。コンセプトは、以下の詳細な説明においてさらに説明される。この概要は、請求される技術的事項の重要な機能または本質的な機能を特定するように意図されたものではなく、また、請求される技術的事項の範囲を限定するために使用されることを意図するものでもない。請求される技術的事項は、背景のセクションにおいて言及された不利益のいくつか又は全てを解決する実施に限定されるものでもない。
【図面の簡単な説明】
【００１３】
本開示の理解を支援するため、そして、実施例がどのように実行されるかを示すために、例として、添付の図面について、参照がなされる。
【図１】図１は、通信システムの模式的なブロックダイヤグラムである。
【図２】図２は、エンコーダの模式的なブロックダイヤグラムである。
【図３】図３は、デコーダの模式的なブロックダイヤグラムである。
【図４】図４は、異なる量子化パラメータ値を模式的に図示するものである。
【図５ａ】図５ａは、キャプチャされたビデオイメージにおいて複数のＲＯＩを定めることを模式的に表している。
【図５ｂ】図５ｂは、キャプチャされたビデオイメージにおけるＲＯＩの別の模式的な表現である。
【図５ｃ】図５ｃは、キャプチャされたビデオイメージにおけるＲＯＩの別の模式的な表現である。
【図５ｄ】図５ｄは、キャプチャされたビデオイメージにおけるＲＯＩの別の模式的な表現である。
【図６】図６は、ユーザデバイスの模式的なブロックダイヤグラムである。
【図７】図７は、ユーザデバイスとインタラクションしているユーザを模式的に示している。
【図８ａ】図８ａは、放射パターンを模式的に示している。
【図８ｂ】図８ｂは、放射パターンによって照射されているユーザの模式的な正面図である。
【図９】図９は、ユーザの検出された骨格ポイントを模式的に示している。
【発明を実施するための形態】
【００１４】
図１は、ネットワーク１０１、第１ユーザターミナル１０２の形式における第１デバイス、および、第２ユーザターミナル１０８の形式における第２デバイスを含んでいる、通信システム１１４を図示している。実施例において、第１および第２ユーザターミナル１０２、１０８は、それぞれ、スマートフォン、タブレット、ラップトップまたはデスクトップコンピュータ、もしくは、テレビスクリーンに接続されているゲームコンソールまたはセットトップボックス、の形式をとってよい。ネットワーク１０１は、例えば、インターネットといったワイドエリアインターネットワーク、及び／又は、会社または大学といった組織の中のワイドエリアイントラネット、及び／又は、モバイルセルラーネットワークといった他のアラートタイプのネットワーク、を含んでよい。ネットワーク１０１は、インターネットプロトコル（ＩＰ）ネットワークといった、パケットベースのネットワークを含んでよい。
【００１５】
第１ユーザターミナル１０２は、シーン１１３のライブビデオ画像をキャプチャし、リアルタイムにエンコードし、そして、ネットワーク１０１にわたり確立された接続を介して、エンコードされたビデオをリアルタイムに第２ユーザターミナルに対して送信する、ように構成されている。シーン１１３は、少なくともたまには、シーン１１３の中に居る（人間の）ユーザ１００を含んでいる（実施例においては、ユーザ１００の少なくとも一部がシーン１１３の中に現れることを意味している）。例えば、シーン１１３は、ライブビデオコール、または、複数の送付先のユーザターミナルに係る事例におけるビデオコンファレンスの一部として、エンコードされ、かつ、第２ユーザターミナルに対して送信されるべき「トーキング・ヘッド（前向きの頭と両肩）」を含んでよい。ここでは「リアルタイム」によって、キャプチャされているイベントが未だに続いている間に、エンコードと送信が生じることを意味する。ビデオの後半部分が未だにエンコードされている間に、前半部分が送信されているようにであり、そして、エンコードおよび送信されるべき、さらに後の部分は、連続的なストリームにおいて、シーン１１３の中で未だに続いている。従って、「リアルタイム」は、小さな遅延を排除しないことに留意する。
【００１６】
第１（送信）ユーザターミナル１０２は、カメラ１０３、カメラ１０３に対して動作可能に接続されたエンコーダ１０４、および、ネットワーク１０１に対して接続するためのネットワークインターフェイス１０７を含んでおり、ネットワークインターフェイス１０７は、エンコーダ１０４に対して動作可能に接続された少なくとも一つの送信器を含んでいる。エンコーダ１０４は、カメラ１０３から入力ビデオ信号を受け取るように構成されており、入力ビデオ信号は、カメラ１０３によってキャプチャされるようにシーン１１３のビデオ画像を表しているサンプルを含んでいる。エンコーダ１０４は、この信号をエンコードするように構成されている。より詳細に間もなく説明されるように、送信のために圧縮するためである。送信器１０７は、エンコーダ１０４からエンコードされたビデオを受け取り、かつ、ネットワーク１０１にわたり確立されたチャンネルを介して、第２ターミナル１０２に対して送信する、ように構成されている。実施例において、この送信は、例えば、ライブビデオコールの出て行く部分（ｏｕｔｇｏｉｎｇ  ｐａｒｔ）として、エンコードされたビデオのリアルタイムなストリーミングを含んでいる。
【００１７】
本開示の実施例に従って、ユーザターミナル１０２は、また、エンコーダ１０４に対して動作可能に接続され、そして、キャプチャされたビデオ画像の領域の中に一つまたはそれ以上の興味領域（ＲＯＩ）をそれによって設定し、かつ、ＲＯＩの内側と外側の両方で量子化パラメータ（ＱＰ）をコントロールするように構成されている、コントローラ１１２も含んでいる。特に、コントローラ１１２は、背景におけるよりも、一つまたはそれ以上のＲＯＩの内側において異なるＱＰを使用するようにエンコーダ１０４をコントロールすることができる。
【００１８】
さらに、ユーザターミナル１０２は、一つまたはそれ以上の専用骨格トラッキングセンサ１０５と、骨格トラッキングセンサ１０５に対して動作可能に接続された骨格トラッキングアルゴリズム１０６を含んでいる。例えば、一つまたはそれ以上の骨格トラッキングセンサ１０５は、図７−９に関して後で説明されるように、赤外線（ＩＲ）深度センサといった深度センサを含んでよく、及び／又は、別の形式の専用骨格トラッキングカメラ（エンコードされているビデオをキャプチャするために使用されるカメラ１０３から分離したカメラ）を含んでよい。例えば、可視光、または、ＩＲといった非可視光をキャプチャすることに基づいて動作し、そして、ステレオカメラ、または、完全な深度意識（ｄｅｐｔｈ−ａｗａｒｅ）（測距（ｒａｎｇｉｎｇ））カメラといった、２次元カメラまたは３次元カメラであってよい。
【００１９】
エンコーダ１０４、コントローラ１１２、および、骨格トラッキングアルゴリズム１０６それぞれは、ユーザターミナル１０２の一つまたはそれ以上のストレージメディア（例えば、ハードディスクといった磁気メディア、または、ＥＥＰＲＯＭまたは「フラッシュ（”ｆｌａｓｈ”）」メモリといった電子メディア）において具現されたソフトウェアコードの形式において実装され、かつ、ユーザターミナル１０２の一つまたはそれ以上のプロセッサにおける実行のために構成されてよい。代替的には、これらのコンポーネント１０４、１１２、１０６が専用ハードウェア、または、ソフトウェアと専用ハードウェアとの組み合せにおいて実装され得ることを排除しない。ユーザターミナル１０２の一部として説明されてきた一方で、カメラ１０３の実施例においては、骨格トラッキングセンサ１０５及び／又は骨格トラッキングアルゴリズム１０６は、有線または無線接続を介してユーザターミナル１０３と通信する一つまたはそれ以上の分離したペリフェラルデバイスにおいて実装され得ることにも、また、留意する。
【００２０】
骨格トラッキングアルゴリズム１０６は、骨格トラッキングセンサ１０５から受け取ったセンサ入力を使用するように構成されており、ユーザ１００の一つまたはそれ以上の骨格特徴をトラッキングしている骨格トラッキング情報を生成する。例えば、骨格トラッキング情報は、ユーザの肩、肘、手首、首、股関節、膝、及び／又は、足首といった、ユーザ１００の一つまたはそれ以上の関節の位置をトラッキングすることができ、及び／又は、ユーザの前腕、上腕、首、大腿、下肢、首−腰（胸郭）、及び／又は、腰−骨盤（腹部）の一つまたはそれ以上によって形成されるベクトルといった、人間の体の一つまたはそれ以上の骨によって形成される直線またはベクトルをトラッキングすることができる。いくつかの可能性のある実施例において、骨格トラッキングアルゴリズム１０６は、エンコードされている画像をキャプチャするために使用されるのと同一のカメラ１０３からの、エンコードされている同一のビデオ画像に対して適用される画像認識に基づいて、この骨格トラッキング情報の判断を増強するように、任意的に、構成されてよい。代替的に、骨格トラッキングは、骨格トラッキングセンサ１０５からの入力だけに基づいている。いずれのやり方でも、骨格トラッキングは、少なくとも部分的に、分離した骨格トラッキングセンサ１０５に基づいてよい。
【００２１】
骨格トラッキングアルゴリズムそれ自体は、従来技術において利用可能である。例えば、Ｘｂｏｘ（登録商標）  Ｏｎｅソフトウェア開発キット（ＳＤＫ）は、Ｋｉｎｅｃｔ（登録商標）ペリフェラルからのセンサ入力に基づいて、アプリケーション開発者が骨格トラッキング情報の受け取りにアクセスすることができる、骨格トラッキングアルゴリズムを含んでいる。実施例において、ユーザターミナル１０２は、Ｘｂｏｘ  Ｏｎｅゲームコンソールであり、骨格トラッキングセンサ１０５は、Ｋｉｎｅｃｔセンサペリフェラルの中に実装されているものであり、そして、骨格トラッキングアルゴリズムは、Ｘｂｏｘ  Ｏｎｅ  ＳＤＫに係るものである。しかしながら、これは単に一つの例であり、そして、他の骨格トラッキングアルゴリズム及び／又はセンサが可能である。
【００２２】
コントローラ１１２は、骨格トラッキングアルゴリズム１０６から骨格トラッキング情報を受け取るように、そして、それによって、キャプチャされたビデオ画像の中で一つまたはそれ以上の対応するユーザの身体領域を特定するように構成されている。身体領域は、他のものよりも知覚的に顕著であり、かつ、従って、エンコーディングにおいて、より多くのビットが使用されていることを保証する領域である。すなわち、これらの身体領域をカバーする（または、概ねカバーする）キャプチャされたビデオ画像の中で一つまたはそれ以上の対応する興味領域（ＲＯＩ）を定めるコントローラ１１２は、次に、ＲＯＩの外側よりも内側において、より細かな量子化が適用されるように、エンコーダ１０４によって実行されているエンコーディングの量子化パラメータ（ＱＰ）を適合させる。このことは、間もなく、より詳細に説明される。
【００２３】
実施例において、骨格トラッキングセンサ１０５とアルゴリズム１０６が、明確なジェスチャベースのユーザ入力を受け取る目的のための「ナチュラルユーザインターフェイス（”ｎａｔｕｒａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ”）（ＮＵＩ）」として、既に備えられており、それによって、ユーザは、意識的かつ意図的にユーザターミナル１０２をコントロールしようと決める。例えば、コンピュータゲームをコントロールするためである。しかしながら、本開示の実施例に従って、ＮＵＩは別の目的のために開発され、ビデオをエンコードするときに黙示的に量子化を適合させる。ユーザは、シーン１１３において発生しているイベントの最中にもかかわらず、彼または彼女がそうであろうように単に自然に活動する。例えば、ビデオコールの最中の一般的な会話およびジェスチャである。そして、ユーザは、彼または彼女の活動が量子化に影響していることを意識する必要はない。
【００２４】
受け取る側において、第２（受信）ユーザターミナル１０８は、スクリーン１１１、スクリーン１１１に対して動作可能に接続されたデコーダ１１０、および、ネットワーク１０１に対して接続するためのネットワークインターフェイス１０１を含み、ネットワークインターフェイス１０９は、デコーダ１１０に対して動作可能に接続されている少なくとも一つの受信器を含んでいる。エンコードされたビデオ信号は、第１ユーザターミナル１０２の送信器１０７と第２ユーザターミナル１０８の受信器１０９との間に確立されたチャンネルを介して、ネットワーク１０１にわたり送信される。受信器１０９は、エンコードされた信号を受け取り、そして、デコーダ１１０に対して供給する。デコーダ１１０は、エンコードされたビデオ信号をデコードし、そして、スクリーン１１１に対してデコードされた信号が再生されるように供給する。実施例において、ビデオは、リアルタイムストリームとして受信され、かつ、再生される。例えば、ライブのビデオコールに係る入ってくる（ｉｎｃｏｍｉｎｇ）部分としてである。
【００２５】
注意：説明目的のために、第１ターミナル１０２は、送信側のコンポーネント１０３、１０４、１０５、１０６、１０７、１１２を含む送信ターミナルとして記述されており、そして、第２ターミナル１０８は、受信側のコンポーネント１０９、１１０、１１１を含む受信ターミナルとして記述されている。しかし、実施例において、第２ターミナル１０８は、また、送信側のコンポーネントを含んでもよく（骨格トラッキングを伴って、または、伴わずに）、そして、また、エンコードして、第１ターミナル１０２に対してビデオを送信してよい。かつ、第１ターミナル１０２は、また、第２ターミナル１０９からのビデオをデコードし、受信し、そして、再生するための受信側のコンポーネントを含んでもよい。説明目的のために、ここにおける開示は、また、所与の受信ターミナル１０８に対するビデオの送信に関して記述されてきたことにも留意する。しかし、実施例においては、第１ターミナル１０２は、実際には、一つまたは複数の第２、受信ユーザターミナル１０８に対して、例えば、ビデオ会議の一部として、エンコードされたビデオを送信してよい。
【００２６】
図２は、エンコーダ１０４の実施例を説明している。エンコーダ１０４は、カメラ１０３から生の（エンコードされていない）ビデオ信号のサンプルを受け取るように構成された第１入力部を有する減算ステージ２０１と、減算ステージ２０１の第２入力部に対して接続された出力部を有する予測コーディングモジュール２０７と、減算ステージ２０１の出力部に対して動作可能に接続された入力部を有する変換ステージ２０２（例えば、ＤＣＴ変換）と、変換ステージ２０２の出力部に対して動作可能に接続された入力部を有する量子化器２０３と、量子化器２０３の出力部に対して接続された入力部を有するロスレス（ｌｏｓｓｌｅｓｓ）圧縮モジュール２０４（例えば、エントロピーエンコーダ）と、量子化器２０３の出力部に対してもまた動作可能に接続された入力部を有する逆量子化器２０５と、逆量子化器２０５の出力部に対して動作可能に接続された入力部および予測コーディングモジュール２０７の入力部に対して動作可能に接続された出力部を有する逆変換ステージ２０６（例えば、逆ＤＣＴ）、を含む。
【００２７】
動作中には、カメラ１０３からの入力信号の各フレームが複数のブロック（またはマクロブロック、等−「ブロック（”ｂｌｏｃｋ”）」は、ここにおいて一般的な用語として使用され、あらゆる所与の標準（ｓｔａｎｄａｒｄ）に係るブロックまたはマクロブロックを参照し得るもの）へと分割される。減算ステージ２０１の入力部は、入力信号（ターゲットブロック）からエンコードされるべきブロックを受け取り、そして、これと、別のブロックサイズ部分（基準部分）の変換され、量子化され、逆量子化され、かつ、逆変換されたバージョンとの間で減算を実行する。予測コーディングモジュール２０７から入力部を介して受信したものと同一のフレーム（イントラフレームエンコーディング（ｉｎｔｒａ−ｆｒａｍｅ  ｅｎｃｏｄｉｎｇ））または異なるフレーム（インターフレームエンコーディング（ｉｎｔｅｒ−ｆｒａｍｅ  ｅｎｃｏｄｉｎｇ））のいずれであってもであり、デコード側においてデコードされたときにこの基準部分がどのように現れるかを表現している。基準部分は、典型的には別のものであり、イントラフレームエンコーディングの場合は、しばしば、隣接ブロックである。一方、インターフレームエンコーディング（動作予測（ｍｏｔｉｏｎ  ｐｒｅｄｉｃｔｉｏｎ））の場合、基準部分は、ブロックの整数倍でオフセットされていることに必ずしも制約されない。そして、一般的に、動作ベクトル（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ）（基準部分とターゲットブロックとの間の空間的オフセット、例えば、ｘおよびｙ座標におけるもの）は、各方向におけるピクセルのあらゆる数量、または、ピクセルの整数の小数（ｆｒａｃｔｉｏｎａｌ  ｉｎｔｅｇｅｒ  ｎｕｍｂｅｒ  ｏｆ  ｐｉｘｅｌｓ）であってさえもよい。
【００２８】
ターゲットブロックからの基準部分の減算は、残余信号を生じる。つまり、ターゲットブロックと、同一フレームまたはデコーダ１１０において予測されるターゲットトラックとは異なるフレームの基準部分との間の差異である。アイデアは、ターゲットブロックが絶対項（ａｂｓｏｌｕｔｅ  ｔｅｒｍ）においてエンコードされないが、ターゲットブロックと、同一または異なるフレームの別の部分のピクセルとの間の差異に関してエンコードされるということである。差異は、ターゲットブロックの絶対的表現より小さい傾向があり、そして、従って、エンコードされた信号において、より少ないビットを使ってエンコードする。
【００２９】
各ターゲットブロックの残余サンプルは、変換ステージ２０２の入力部に対する減算ステージ２０１の出力部からの出力であり、対応する変換された残余サンプルを生成するように変換されるものである。変換の役割は、空間領域表現、典型的にはデカルト座標のｘとｙ軸、から、変換領域表現、典型的には空間−周波数領域表現（ときどき単に周波数領域と呼ばれるもの）へ変換することである。つまり、空間領域においては、各カラーチャンネル（例えば、ＲＧＢに係るそれぞれ又はＹＵＶに係るそれぞれのもの）が、異なる座標におけるそれぞれのピクセルのアンプリチュードを表している各サンプルを用いて、ｘとｙ座標といった、空間座標の関数として表現されている。一方で、周波数領域においては、各カラーチャンネルは、それぞれの空間周波数項（ｓｐａｔｉａｌ  ｆｒｅｑｕｅｎｃｙ  ｔｅｒｍ）の係数を表している各サンプルを用いて、距離の逆数（１／ｄｉｓｔａｎｃｅ）の次元を有する空間周波数の関数として表現されている。例えば、変換は、離散コサイン変換（ＤＣＴ）であってよい。
【００３０】
変換された残余サンプルは、変換ステージ２０２の出力部から量子化器２０３の入力部へと出力されて、量子化され、変換された残余サンプルへと量子化される。上述のように、量子化は、より高い粒度スケールにおける表現から、より低い粒度スケールにおける表現へと変換するプロセスであり、つまり、入力チップの大きなセットをより小さいセットへマッピングする。量子化は、圧縮に係る損失ある（ｌｏｓｓｙ）形式であり、つまり、詳細部分が「捨てられ（”ｔｈｒｏｗｎ  ａｗａｙ”）」ている。しかしながら、量子化は、また、各サンプルを表すために必要とされるビットの数量も低減する。
【００３１】
量子化され、変換された残余サンプルは、量子化器２０３の出力部からロスレス圧縮ステージ２０４の入力部へ出力される。ロスレス圧縮ステージは、エントロピーエンコーディングといった、さらなる、ロスレスエンコーディングを信号について実行するように構成されている。エントロピーエンコーディングは、より一般的に発生するサンプル値をより少ない数量のビットからなるコードワードを用いてエンコードし、そして、よりまれにしか発生しないサンプル値をより多い数量のビットからなるコードワードを用いてエンコードすることによって機能する。そうすることにおいて、全ての起こり得るサンプル値について一式の固定長のコードワードが使用される場合よりも、平均でより少ない数量のビットを用いてデータをエンコードすることが可能である。変換２０２の目的は、変換領域（例えば、周波数領域）においては、より多くのサンプルが、典型的に、空間領域におけるよりも、ゼロまたは小さい値へ量子化される傾向があることである。量子化されたサンプルにおいて生じている、より多くのゼロまたは多くの同じ小さい数が存在する場合には、ロスレス圧縮ステージ２０４によって、これらが効率的にエンコードされ得る。
【００３２】
ロスレス圧縮ステージ２０４は、エンコードされたサンプルを送信器１０７に対して出力するように構成されている。ネットワーク１０１にわたる（第２ターミナル１０８の受信器１１０を介した）第２（受信）ターゲット１０８におけるデコーダ１１０への送信のためである。
【００３３】
量子化器２０３の出力は、また、量子化されたサンプルを逆量子化する逆量子化器２０５に対してもフィードバックされる。そして、逆量子化器２０５の出力は、逆変換ステージ２０６の入力部に対して供給される。逆変換ステージは、各ブロックの逆量子化され、逆変換されたバージョンを生成するための変換２０２の逆（例えば、逆ＤＣＴ）を実行する。量子化は損失あるプロセスなので、逆量子化され、逆変換されたブロックのそれぞれは、入力信号において対応するオリジナルブロックと比較していくらかの歪み（ｄｉｓｔｏｒｔｉｏｎ）を含んでいる。これは、デコード１１０が見るものを表している。予測コーディングモジュール２０７は、次に、入力ビデオ信号におけるさらなるターゲットブロックについて残余を生成するように、これを使用し得る（つまり、予測コーディングは、次のターゲットブロックと、予測されたものからデコーダ１１０が対応する基準部分をどのように見るかとの間の残余に関してエンコードする）。
【００３４】
図３は、デコード１１０の実施例を示している。デコーダ１１０は、受信器１０９からエンコードされたビデオ信号のサンプルを受け取るように構成された入力部を有するロスレス解凍（ｄｅｃｏｍｐｒｅｓｓｉｏｎ）ステージ３０１と、ロスレス解凍ステージ３０１の出力部に対して動作可能に接続された入力部を有する逆量子化器３０２と、逆量子化器３０２の出力部に対して動作可能に接続された入力部を有する逆変換ステージ３０３（例えば、逆ＤＣＴ）と、逆変換ステージ３０３の出力部に対して動作可能に接続された入力部を有する予測モジュール３０４、を含む。
【００３５】
動作中に、逆量子化器３０２は、受信した（エンコードされた残余）サンプルを逆量子化し、そして、これらの逆量子化された（ｄｅ−ｑｕａｎｔｉｚｅｄ）サンプルを逆変換ステージ３０３の入力部に対して供給する。逆変換ステージ３０３は、逆量子化されたサンプルについて変換２０２の逆（例えば、逆ＤＣＴ）を実行し、各ブロックの逆量子化され、逆変換されたバージョンを生成する。つまり、各ブロックを空間領域へ戻すように変換する。このステージにおいて、これらのブロックは、いまだに残余信号に係るブロックであることに留意する。これらの残余、空間領域ブロックは、逆変換ステージ３０３の出力部から予測モジュール３０４の入力部に対して供給される。予測モジュール３０４は、逆量子化され、逆変換された残余ブロックを使用して、空間領域において、残余と、同一フレームから（イントラフレーム予測）又は異なるフレームから（インターフレーム予測）の基準部分に対応している既にデコードされたバージョンとの加算（ｐｌｕｓ）から、各ターゲットブロックを予測する。インターフレームエンコーディング（動作予測）の場合、ターゲットブロックと基準部分との間のオフセットは、それぞれの動作ベクトルによって特定される。動作ベクトルは、また、エンコードされた信号にも含まれている。イントラフレームエンコーディング、基準ブロックとしてどのブロックを使用するかは既定のパターンに応じて典型的に決定されるが、代替的に、エンコードされた信号において信号化（ｓｉｇｎａｌｌｅｄ）されてもよいだろう。
【００３６】
エンコード側におけるコントローラ１１２のコントロールの下での量子化器２０３の動作について、これから、より詳細に説明される。
【００３７】
量子化器２０３は、コントローラ１１２から一つまたはそれ以上の興味領域（ＲＯＩ）の指標（ｉｎｄｉｃａｔｉｏｎ）を受け取るように、そして、ＲＯＩにおいて外側とは異なる量子化パラメータ（ＱＰ）を適用するように動作可能である。実施例において、量子化器２０３は、異なるＱＰ値を複数のＲＯのうち異なるものにおいて適用するように動作可能である。ＲＯＩの指標および対応するＱＰ値は、また、デコーダ１１０に対しても信号化され、そして、逆量子化器３０２によって対応する逆量子化が実行され得る。
【００３８】
図４は、量子化の概念を示している。量子化パラメータ（ＱＰ）は、量子化において使用されるステップサイズの指標である。低いＱＰは、量子化されたサンプルがより細かい段階（ｇｒａｄａｔｉｏｎ）を用いたスケールで表現されていることを意味する。つまり、サンプルがとり得る可能な値においてより近い間隔のステップである（そのため、入力信号と比較してより少ない量子化である）。一方で、高いＱＰは、サンプルがより粗い段階を用いたスケールで表現されていることを意味する。つまり、サンプルがとり得る可能な値においてより幅広い間隔のステップである（そのため、入力信号と比較してより多くの量子化である）。低ＱＰ信号は、低ＱＰ信号よりも多くのビットを招いてしまう。なぜなら各値を表現するためにより多くの数量のビットが必要とされるからである。ステップサイズは、たいてい、全体のスケールにわたり規則的（均等に間隔がおかれている）であるが、全ての可能な実施例においてそうであることを必ずしも要しないことに留意する。ステップサイズにおける不均一な変化の場合に、増加／減少は、例えば、ステップサイズの平均（例えば、中央値）における増加／減少、または、そのスケールの所定の領域だけにおけるステップサイズの増加／減少を意味する。
【００３９】
エンコーダに応じて、ＲＯＩは、数多くのやり方で特定されてよい。いくつかのエンコーダにおいては、一つまたはそれ以上のＲＯＩそれぞれが、長方形として定められることに限定されてよい（例えば、水平および垂直の境界に関してだけ）。もしくは、他のエンコーダにおいては、個々のブロック（またはマクロブロック）がＲＯＩの一部分を形成する、ブロック毎（ｂｌｏｃｋ−ｂｙ−ｂｌｏｃｋ  ｂａｓｉｓ）（または、マクロブロック毎、など）に定めることが可能である。いくつかの実施例において、量子化器２０３は、それぞれ個々のブロック（またはマクロブロック）に対して特定されているそれぞれのＱＰ値をサポートしている。この場合に、各ブロック（またはマクロブロック、等）に対するＱＰ値は、エンコードされた信号の一部としてデコーダに対して信号化される。
【００４０】
上述のように、エンコード側におけるコントローラ１１２は、骨格トラッキングアルゴリズム１０６から骨格トラッキング情報を受け取り、そして、これに基づいて、エンコーディング目的のために最も知覚的に顕著な一つまたはそれ以上のそれぞれの身体的特徴（ｂｏｄｉｌｙ  ｆｅａｔｕｒｅｓ）に対応するように動的にＲＯＩを定義し、そして、ＲＯＩに対するＱＰ値をそれに応じて設定する、ように構成されている。実施例において、コントローラ１１２は、ＲＯＩの内側で使用されているＱＰの固定値および外側で使用されている別の（より高い）固定値を用いて、サイズ、形状、及び／又は、配置またはＲＯＩを適合するだけでよい。この場合に、量子化は、より低いＱＰ（より細かい量子化）が適用されているところ及びそうでないところに関してだけ適合されている。代替的に、コントローラ１１２は、ＲＯＩとＱＰ値の両方を適合するように構成されてよい。つまり、そうして、ＲＯＩの内側で適用されるＱＰは、また、動的に適合される変数でもある（そして、潜在的に外側では、そのＱＰである）。
【００４１】
動的な適応（ｄｙｎａｍｉｃａｌｌｙ  ａｄａｐｔ）によって「オンザフライ（”ｏｎ  ｔｈｅ  ｆｌｙ”）」が意味される。つまり、進行中の状況に応じたものであり、そうして、ユーザ１００がシーン１１３の中で、または、シーン１１３の中と外で移動すると、現在のエンコーディング状態は、それに応じて適応する。このように、ビデオのエンコーディングは、記録されているユーザ１００が行っていること、及び／又は、ビデオがキャプチャされている時間に彼または彼女が居る場所に従って適応する。
【００４２】
このように、ここにおいては、骨格トラッキングを実行し、かつ、興味領域（ＲＯＩ）を計算するためにＮＵＩセンサからの情報を使用し、次に、興味領域が、残りのフレームよりも良い品質でエンコードされるように、エンコーダにおいてＱＰを適応する技術が説明されている。このことは、ＲＯＩがフレームに係る小さい割合である場合に、バンド幅を節約することができる。
【００４３】
実施例において、コントローラ１１２は、エンコーダ１０４のビットレート（ｂｉｔｒａｔｅ）コントローラである（エンコーダ１０４とコントローラ１１２に係る図示は単に模式的なものであり、そして、コントローラ１１２は、エンコーダ１０４の一部として平等に考えられ得ることに留意する）。ビットレートコントローラ１１２は、所定のビットレートの制約を満足するために、エンコードされたビデオ信号のビットレートに影響するエンコーディングに係る一つまたはそれ以上の特性をコントロールすることを担当する。量子化のそうした特性の一つは、より低いＱＰ（より細かい量子化）はビデオの単位時間毎により多くのビットを招き、一方で、より高いＱＰ（より粗い量子化）はビデオの単位時間毎により少ないビットを招く、ことである。
【００４４】
例えば、ビットレートコントローラ１１２は、送信ターミナル１０２と受信ターミナル１０８との間のチャンネルにわたり利用可能なバンド幅の手段を動的に決定するように構成されてよく、そして、ビットレート制約は、これによって制限される最大ビットレートバジェットである−最大利用可能なバンド幅と等しく設定されているか、または、その関数として決定されているか、いずれか。代替的に、単純な最大値より、むしろ、ビットレート制約は、より複雑なレート−ディストーション最適化（ＲＤＯ）プロセスの結果であってよい。様々なＲＤＯプロセスの詳細は、当業者に良く知られているだろう。どちらにしても、実施例において、コントローラ１１２は、ＲＯＩ及び／又はそれぞれのＱＰ値を適応するときに、そうしたビットレートにおける制約を考慮にいれるように構成されている。
【００４５】
例えば、コントローラ１１２は、バンド幅の状況が貧弱であるとき、かつ／あるいは、ＲＯＩの量子化において費やされている現在のビットレートがほとんど利益が無いことをＲＤＯアルゴリズムが示している場合に、より小さいＲＯＩを選択し、または、ＲＯＩに割り当てられる身体部分の数量を制限してよい。しかし、そうでなければ、バンド幅の状況が良好であるとき、かつ／あるいは、有益であろうことをＲＤＯアルゴリズムが示している場合に、コントローラ１１２は、より大きなＲＯＩを選択し、または、より多くの身体部分に対してＲＯＩを割り当ててよい。代替的または追加的に、バンド幅の状況が貧弱であり、かつ／あるいは、量子化においてより多くを費やすことが現在は有益でないだろうとＲＤＯアルゴリズムが示す場合に、コントローラ１１２は、ＲＯＩに対してより小さいＱＰ値を選択してよい。しかし、そうでなければ、バンド幅の状況が良好であるとき、かつ／あるいは、有益であろうことをＲＤＯアルゴリズムが示す場合に、コントローラ１１２は、ＲＯＩに対してより大きいＱＰ値を選択してよい。
【００４６】
例えば、ＶｏＩＰコーリング（ＶｏＩＰ−ｃａｌｌｉｎｇ）ビデオ通信においては、しばしば、画像の品質と、ネットワークの使用されるバンド幅との間のトレードオフが存在する必要がある。本開示の実施例は、送信されているビデオの知覚される品質を最大化するように努めており、一方で、バンド幅を実行可能なレベルに保持している。
【００４７】
さらに、実施例においては、骨格トラッキングの使用が、他の可能性あるアプローチと比較してより効率的であり得る。シーンにおいてユーザが行っていることを解析するための試みは、非常に計算的に高価であり得る。しかしながら、いくつかのデバイスは、骨格トラッキングといった、所定のグラフィクス機能のためにリザーブしてある処理装置を用意している。例えば、専用ハードウェアまたはリザーブされているプロセッササイクルである。これらが、骨格トラッキングに基づくユーザ動作の解析のために使用される場合に、これは、次に、エンコーダを実行するために使用されている汎用処理装置における処理の重荷を軽減し得る。例えば、ＶｏＩＰクライアント、または、ビデオコールを行っている他のそうした通信クライアントアプリケーション、の一部としてである。
【００４８】
例えば、図６に示されるように、送信ユーザターミナル１０２は、専用グラフィクスプロセッサ（ＧＰＵ）６０２と汎用プロセッサ（例えば、ＣＰＵ）を含んでよい。骨格トラッキングを含む所定のグラフィクス処理オペレーションのためにリザーブされているグラフィクスプロセッサ６０２を伴うものである。実施例において、骨格トラッキングアルゴリズム１０６は、グラフィクスプロセッサ６０２上で実行するように構成されてよく、一方で、エンコーダ１０４は、汎用プロセッサ６０１上で実行するように構成されてよい（例えば、汎用プロセッサ上で実行しているＶｏＩＰクライアントまたは他のそうしたビデオコーリング（ｖｉｄｅｏ  ｃａｌｌｉｎｇ）クライアントの一部として）。さらに、実施例において、ユーザターミナル１０２は、「システム空間（”ｓｙｓｔｅｍ  ｓｐａｃｅ”）」と、別個の「アプリケーション空間（”ａｐｐｌｉｃａｔｉｏｎ  ｓｐａｃｅ”）」を含んでよく、これらの空間は、別個のＧＰＵとＣＰＵコア、および、異なるメモリリソース上にマップされる。そうした事例において、通信アプリケーション（例えば、ＶｏＩＰクライアント）は、アプリケーション空間において実行するエンコーダ１０４を含んでいる。そうしたユーザターミナルの一つの例は、Ｘｂｏｘ  Ｏｎｅであるが、他のあり得るデバイスも、また、同様な構成を使用し得るものである。
【００４９】
骨格トラッキングおよび対応するＲＯＩの選択に係るいくつかの実施が、これからより詳細に説明される。
【００５０】
図７は、骨格トラッキング情報を検出するために骨格トラッキングセンサ１０５が使用される構成の一つの例を示している。この例において、骨格トラッキングセンサ１０５と、エンコードされている出て行く（ｏｕｔｇｏｉｎｇ）ビデオをキャプチャするカメラ１０３は、両方がユーザターミナル１０２に対して接続された同一のペリフェラルデバイス７０３の中に組み込まれている。例えば、ＶｏＩＰクライアントアプリケーションの一部として、エンコーダ１０４を含んでいるユーザターミナル１０２を伴うものである。例えば、ユーザターミナル１０２は、テレビジョンセット７０２に対して接続されたゲームコンソールの形式であってよく、ユーザ１００は、ＶｏＩＰコールの入ってくる（ｉｎｃｏｍｉｎｇ）ビデオを、それを通じて視聴する。しかしながら、この例は、限定的なものではないことが正しく理解されよう。
【００５１】
実施例において、骨格トラッキングセンサ１０５は、非可視（例えば、ＩＲ）放射を発するためのプロジェクタ７０４と、反射された同一タイプの非可視放射を検出するための対応する検出エレメント７０６を含むアクティブセンサである。プロジェクタ７０４は、検出エレメント７０６の前方に非可視放射を投射するように構成されており、シーン１１３において（ユーザ１００といった）オブジェクトから非可視放射が反射されたときに、検出エレメント７０６によって検出することができる。
【００５２】
検出エレメント７０６は、２次元にわたり非可視放射を検出するように、１次元（１Ｄ）検出エレメント成分の２次元（２Ｄ）アレイを含む。さらに、プロジェクタ７０４は、既定の放射パターンにおいて非可視放射を投射するように構成されている。ユーザ１００といった３次元（３Ｄ）オブジェクトから反射されたときに、このパターンの歪み（ｄｉｓｔｏｒｔｉｏｎ）によって、検出エレメント７０６は、センサのアレイに係る平面において２次元にわたりユーザ１００を検知するために使用されるだけでなく、検出エレメント７０６に関してユーザの身体上の様々なポイントに係る深さを検知するために使用され得る。
【００５３】
図８ａは、プロジェクタ７０６によって発せられる放射パターンの一つの例を示している。図８ａに示されるように、放射パターンは、少なくとも２次元において拡がり、かつ、体系的に不均一であって、交替する強度（ｉｎｔｅｎｓｉｔｙ）に係る複数の定型的に配置された領域を含んでいる。例として、図８ａの放射パターンは、実質的に均一な放射ドットのアレイを含む。放射パターンは、この実施例においては赤外線（ＩＲ）放射であり、そして、検出エレメント７０６によって検出可能である。図８ａの放射パターンは、典型的なものであり、他の代替的なパターンも、また、想定されることに留意する。
【００５４】
この放射パターン８００は、プロジェクタ７０４によってセンサ７０６の前方に投射される。センサの視野の中に投射されると、センサ７０６は、非可視放射パターンの画像をキャプチャする。これらの画像は、センサ７０６の視野におけるユーザの身体の深さ（ｄｅｐｔｈ）を計算するために、骨格トラッキングアルゴリズム１０６によって処理され、効果的にユーザ１００の３次元表現を構築しており、そして、実施例においては、それによって、異なるユーザ及びそれらユーザの異なるそれぞれの骨格ポイントを認識することもできる。
【００５５】
図８ｂは、カメラ１０３および骨格トラッキングセンサ１０５の検出エレメント７０６によって見えるように、ユーザ１００の正面図を示している。示されるように、ユーザ１００は、骨格トラッキングセンサ１０５に向けて延ばされた彼または彼女の左手を用いてポーズしている。ユーザの頭は、彼または彼女の胴体を越えて前方に突き出しており、そして、胴体は、右上での前方にある。放射パターン８００が、プロジェクタ７０４によってユーザの上に投射される。もちろん、ユーザは、他のやり方でポーズをとってよい。
【００５６】
図８ｂに示されるように、ユーザ１００は、骨格トラッキングセンサ１０５の検出エレメント７０６によって検出される際に、投射される放射パターン８００を歪ませるように動作する形を伴って、このようにポーズしている。プロジェクタ７０４からさらに離れたユーザの一部の上に投射された放射パターン８００の一部は、効果的に引き伸ばされており（つまり、この事例では、放射パターンのドットがより大きく離れている）。プロジェクタ７０４に対してより近い、離れたユーザの一部の上に投射された放射パターン一部（つまり、この事例では、放射パターンのドットがより少なく離れているもの）と比較したものである。引き伸ばし量は、プロジェクタ７０４から離れた距離と対応しており、そして、ユーザの著しく後方にあるオブジェクトの上に投射された放射パターン８００の一部は、検出エレメント７０６に対しては事実上見えないものである。放射パターン８００が体系的に不均一なので、ユーザの形によるその歪みは、骨格トラッキングセンサ１０５の検出エレメント７０６によってキャプチャされる際に歪んだ放射パターンの画像を処理する骨格トラッキングアルゴリズム１０６によって、ユーザ１００の骨格特徴を特定するための形を識別するために使用され得る。例えば、検出エレメント７０６からのユーザの身体１００の一領域の離れ（ｓｅｐａｒａｔｉｏｎ）は、ユーザの領域の中で検出された放射パターン８００のドットの離れを測定することによって判断され得る。
【００５７】
図８ａと８ｂにおいては、放射パターン８００が目に見えるように示されているが、これは、純粋に理解を支援するものであって、実際には、実施例において、ユーザ１００の上に投射される際に放射パターン８００は、人間の目に見えないものであることに留意する。
【００５８】
図９を参照すると、骨格トラッキングセンサ１０５の検出エレメント７０６から検知されたセンサデータが、ユーザ１００に係る一つまたはそれ以上の骨格特徴を検出するために、骨格トラッキングアルゴリズム１０６によって処理されている。結果は、ソフトウェア開発者による使用のためのアプリケーションプログラミングインターフェイス（ＡＰＩ）として、骨格トラッキングアルゴリズム１０６からエンコーダ１０４のコントローラ１１２に対して利用可能にされる。
【００５９】
骨格トラッキングアルゴリズム１０６は、骨格トラッキングセンサ１０５の検出エレメント７０６からセンサデータを受け取り、そして、それを処理して、骨格トラッキングセンサ１０５の視野の中のユーザの人数を判断して、かつ、従来技術において知られている骨格検出技術を使用して、各ユーザについて骨格ポイントのそれぞれのセットを特定する。各骨格ポイントは、カメラ１０３によって別個にキャプチャされているビデオに関して対応する人間の関節のおおよその位置を表している。
【００６０】
一つの実施例において、骨格トラッキングアルゴリズム１０６は、骨格トラッキングセンサ１０５の視野において各ユーザに対して２０個までそれぞれの骨格ポイントを検出することができる（視野の中にユーザの身体がどれだけ多く現れるかに応じたものである）。各骨格ポイントは、２０個の認識された人の関節のうち一つに対応しており、センサの視野の中でユーザ（または複数のユーザ）が移動する際に、空間と時間がそれぞれ変動している。時間におけるあらゆる瞬間でのこれらの関節の位置は、骨格トラッキングセンサ１０５によって検出される際に、ユーザの３次元の形に基づいて計算される。これら２０個の骨格ポイントが、図９に示されている。左足首９２２ｂ、右足首９２２ａ、左肘９０６ｂ、右肘９０６ａ、左足９２４ｂ、右足９２４ａ、左手９０２ｂ、右手９０２ａ、頭９１０、臀部中央９１６、左臀部９１８ｂ、右臀部９１８ａ、左膝９２０ｂ、右膝９２０ａ、肩中央９１２、左型９０８ｂ、右型９０８ａ、脊椎中央９１４、左手首９０４ｂ、右手首９０４ａ、である。
【００６１】
いくつかの実施例において、骨格ポイントは、また、トラッキング状態も有してよい。明確に目に見える関節については明示的にトラックされ得るが、関節が明確には目に見えないときでも骨格トラッキングアルゴリズムがその位置を推測し、かつ／あるいは、トラックされない。さらなる実施例において、検出された骨格ポイントは、対応する関節が正しく検出されていることの確からしさを示すそれぞれの信頼値を備えてよい。所定の閾値以下の信頼値を伴うポインタは、あらゆるＲＯＩを決定するためのコントローラ１１２によるさらなる使用から排除され得る。
【００６２】
骨格ポイントとカメラ１０３からのビデオは、特定の時間において骨格トラッキングアルゴリズム１０６によってレポートされた骨格ポイントの位置が、その時間におけるビデオのフレーム（画像）の中の対応する人間の関節の位置と対応するように、関連付けられる。骨格トラッキングアルゴリズム１０６は、これらの検出された骨格ポイントを、骨格トラッキング情報として、使用のためにコントローラ１１２に対して供給する。ビデオデータの各フレームについて、骨格トラッキング情報によって提供された骨格ポイントデータは、フレームの中の骨格ポイントの位置を含んでいる。例えば、ビデオフレームサイズに関して境界のある（ｂｏｕｎｄｅｄ）座標系のデカルト座標（ｘ、ｙ）として表わされる。コントローラ１１２は、ユーザ１１０について検出された骨格ポイントを受け取り、そして、そこからユーザに係る複数の目に見える身体的な特性を決定する。このように、身体部分または身体領域は、骨格トラッキング情報に基づいてコントローラ１１２によって検出される。それぞれが、骨格トラッキングアルゴリズム１０６によって提供される一つまたはそれ以上の骨格ポイントからの外挿（ｅｘｔｒａｐｏｌａｔｉｏｎ）として検出されており、そして、カメラ１０３からのビデオの対応するビデオフレームの中の領域に対応している（つまり、上記の座標系の中の領域として定められる）。
【００６３】
これらの目に見える身体的な特性は、実際に見ることができ、かつ、キャプチャされたビデオにおいて識別され得るユーザの身体の特徴を表すといった意味において目に見えるものである、ことに留意すべきである。しかしながら、実施例において、それらはカメラ１０３によってキャプチャされたビデオデータにおいて「見える（”ｓｅｅｎ”）」ものではなく、むしろ、コントローラ１１２は、骨格トラッキングアルゴリズム１０６とセンサ１０５によって提供されるように骨格ポイントの構成に基づいて（かつ、例えば、そのフレームの画像処理には基づかないで）、カメラ１０３からのビデオのフレームの中におけるこれらの特徴の（概ねの）相対的位置、形状、およびサイズを外挿法によって推定（ｅｘｔｒａｐｏｌａｔｅ）する。例えば、コントローラ１１２は、身体部分について密接な関係がある骨格ポイントの検出された構成から計算された位置とサイズ（および、任意的には方向）を有する長方形（または、類似のもの）として各身体部分を近似することによって、これを行ってよい。
【００６４】
ここにおいて開示される技術は、一つまたはそれ以上の興味領域（ＲＯＩ）を計算するための上記のデバイス（標準のビデオカメラ１０３とは対照的に）といった、アドバンストアクティブ骨格トラッキングビデオキャプチャデバイスの機能を使用する。従って、実施例において、骨格トラッキングは、少なくとも２つのやり方において、通常の顔面または画像認識とは異なることに留意する。骨格トラッキングアルゴリズム１０６は、２次元ではなく、３次元空間において機能すること、および、骨格トラッキングアルゴリズムは１０６は、目に見える色空間（ＲＧＢ、ＹＵＶ、等）ではなく、赤外線空間において機能することである。説明したように、実施例において、アドバンスト骨格トラッキングデバイス１０５（例えば、Ｋｉｎｅｃｔ）は、通常の色フレームと一緒に、深さフレームと身体フレームを生成するために、赤外線センサを使用する。この身体フレームは、ＲＯＩを計算するために使用され得る。ＲＯＩに係る座標は、カメラ１０３からの色フレームに係る座標空間においてマップされ、そして、色フレームと共に、エンコーダに対して渡される。エンコーダは、次に、フレームの異なる領域において使用するＱＰを決定するためのアルゴリズムにおいてこれらの座標を使用する。所望の出力ビットレートを適合するためである。
【００６５】
ＲＯＩは、長方形の集合であってよく、または、例えば、頭、胴体上部、等の特定の身体部分の周りの領域であってよい。説明したように、開示される技術は、入力フレームに係る異なる領域において異なるＱＰを生成するためにエンコーダ（ソフトウェアまたはハードウェア）を使用する。外側よりも内側においてＲＯＩがより鮮明であるエンコードされた出力フレームを伴うものである。実施例において、コントローラ１１２は、異なるＲＯＩに対して異なる優先度を割り当てるように構成されてよく、それにより、背景よりも低いＱＰを用いて量子化されている状態は、ビットレートについて増加する制約が置かれるにつれて、例えば、利用可能なバンド幅が低下するにつれて、優先度とは逆の順番で降下する（ｄｒｏｐｐｅｄ）。代替的または追加的に、数個の異なるレベルのＲＯＩが存在してよい。つまり、一つの領域が他よりも多くの興味がある。例えば、より多くの人々がフレームのなかに居る場合、彼ら全員が背景より興味があるが、現在話しをしている人は他の人よりも興味がある。
【００６６】
いくつかの例が、図５ａ−５ｄに関して説明される。これらの図面それぞれは、シーン１１３に係るキャプチャされた画像のフレーム５００を示しており、ユーザ１００（または、ユーザ１００の少なくとも一部）の画像を含んでいる。フレーム領域の中で、コントローラ１１２は、骨格トラッキング情報に基づいて一つまたはそれ以上のＲＯＩ５０１を定め、各ＲＯＩがそれぞれの身体領域に対応している（つまり、キャプチャされた画像において現れるそれぞれの身体領域をカバーまたは概ねカバーしている）。
【００６７】
図５ａは、一つの例を示しており、そこでは、ＲＯＩそれぞれが、水平および垂直境界だけによって定められている（水平および垂直エッジだけを有している）。所与の例においては、３つのそれぞれの身体領域に応じて定められた３つのＲＯＩが存在している。ユーザ１００の頭に対応している第１ＲＯＩ  ５０１ａ、ユーザ１００の頭、胴体、および腕（手を含んでいる）に対応している第２ＲＯＩ  ５０１ｂ、および、ユーザ１００の身体全体に対応している第３ＲＯＩ  ５０１ｃ、である。従って、例において図示されるように、ＲＯＩと、対応する身体領域はオーバーラップしてよい。身体領域は、ここにおいて参照されるように、単独の骨に対応すること、または、互いに排他的な身体部分に対応する必要もないが、骨格トラッキング情報に基づいて特定された身体のあらゆる領域をより一般的に参照し得るものである。実際に、実施例において、異なる身体領域は、階層的であって、興味であり得る最も幅広い身体領域（例えば、身体全体）から、興味であり得る最も特定的な身体領域（例えば、頭、顔面を含んでいるもの）まで狭くなっている。
【００６８】
図５ｂは、同様な例を示しているが、そこでは、ＲＯＩが長方形であることに制約されず、そして、（ブロック毎による、例えば、マクロブロック毎に）あらゆる任意の形状として定められてよい。
【００６９】
図５ａと５ｂそれぞれの例において、第１ＲＯＩ  ５０１ａは最高の優先度のＲＯＩである頭に対応しており、第２ＲＯＩ  ５０１ｂは次に高い優先度のＲＯＩである頭、胴体、および腕に対応しており、そして、第３ＲＯＩ  ５０１ｃは最低の優先度のＲＯＩである身体全体に対応している。これは、以下のように、２つの物事のうち一つまたは両方を意味し得る。
【００７０】
第１に、ビットレート制約がより厳しくなるので（例えば、チャンネル上で利用可能なネットワークのバンド幅が減少する）、優先度が順序を定めてよく、そこではＲＯＩが低いＱＰ（背景より低いもの）を用いて量子化されることから退けられる。例えば、厳しいビットレートの制約の下では、頭の領域５０１ａだけに低いＱＰが与えられ、そして、他のＲＯＩ５０１ｂ、５０１ｃは、背景（つまり、非ＲＯＩ）領域と同一の高いＱＰを用いて量子化される。一方で、中間のビットレート制約の下では、頭、胴体、および腕の領域５０１ｂ（頭の領域５０１ａを包含しているもの）に低いＱＰが与えられ、そして、残りの身体全体のＲＯＩ５０１ｃは、背景と同一の高いＱＰを用いて量子化される。そして、最も厳しくないビットレートの制約の下では、身体全体のＲＯＩ５０１ｃ（頭、胴体、および腕の領域５０１ａ、５０１ｂを包含しているもの）に低いＱＰが与えられる。いくつかの実施例においては、最も厳しいビットレートの制約の下で、頭の領域５０１ａでさえ、高い、背景のＱＰを用いて量子化され得る。従って、この例において示されるように、より細かい量子化がＲＯＩにおいて使用されていると言われるところで、これは、単に時たま（ａｔ  ｔｉｍｅｓ）を意味し得るものであることに留意する。それにもかかわらず、本アプリケーションの目的のためのＲＯＩの意味は、画像において最も高いＱＰ（または、より一般的には最も粗い量子化）が使用される領域よりも低いＱＰ（または、より一般的にはより細かい量子化）が（少なくとも時として）与えられる領域であることにも、また、留意する。量子化をコントロールすること以外の目的のためだけに定められる領域は、本開示のコンテクストにおいて、ＲＯＩとは考えられない。
【００７１】
５０１ａ、５０１ｂ、および５０１ｃといった異なる優先度のＲＯＩに係る第２のアプリケーションとして、それぞれの領域には異なるＱＰが割り当てられてよく、それにより、異なる領域が、異なるレベルの粒度を用いて量子化される（それぞれがＲＯＩの外側で使用される最も粗いレベルより細かいが、全てが最も細かいものとは限らない）。例えば、頭の領域５０１ａが、第１の、最も低いＱＰを用いて量子化されてよく、身体と腕の領域（５０１ｂの残り）が、第２の、中間の低いＱＰを用いて量子化されてよく、そして、身体の領域の残り（５０１ｃの残り）が、第３の、いくらか低いＱＰを用いて量子化されてよい。第３のＱＰは、第２のＱＰよりは高いが、外側で使用されるものよりはまだ低いものである。従って、この例において示されるように、ＲＯＩはオーバーラップしてよい。この事例において、オーバーラップしているＲＯＩは、また、それらに関連する異なる量子化レベルも有しおり、ルールが、どのＱＰが先立つかを定めてよい。例えば、ここでの事例においては、最高優先度の領域５０１ａに係るＱＰ（最も低いＱＰ）が、オーバーラップするところも含めて全ての最高優先度の領域５０１ａにわたり適用される。そして、次に高いＱＰが、下位の領域５０１ｂの残りだけにわたり適用される、といったものである。
【００７２】
図５ｃは、より多くのＲＯＩが定められた別の例を示している。ここでは、頭に対応している第１ＲＯＩ  ５０１ａ、胸郭に対応している第２ＲＯＩ  ５０１ｄ、右腕（手を含んでいる）に対応している第３ＲＯＩ  ５０１ｅ、左腕（手を含んでいる）に対応している第４ＲＯＩ  ５０１ｆ、腹部に対応している第５ＲＯＩ  ５０１ｇ、右脚（足を含んでいる）に対応している第６ＲＯＩ  ５０１ｈ、左脚（足を含んでいる）に対応している第７ＲＯＩ  ５０１ｉ、が定められている。図５ｃにおいて示される例において、各ＲＯＩ  ５０１は、例えば図５ｂのように、より自由に定められ得るものである。
【００７３】
再び、実施例においては、異なるＲＯＩ  ５０１ａと５０１ｄ−ｉには、上述したものと同様なやり方で、お互いに関する所定の特性が割り当てられてよい（しかし、異なる身体の領域に対して適用される）。例えば、頭の領域５０１ａには、最高優先度が与えられてよく、腕の領域５０１ｅ−ｆには、次に高い優先度が与えられてよく、胸郭の領域５０１ｄには、その後で次に高い優先度が与えられてよい。そして、脚及び/又は腹部である。実施例において、このことが順序を定めてよく、そこでは、低いＱＰ状態のＲＯＩが、ビットレートの制約がより限定的になるとき、例えば、利用可能なバンド幅が減少するときに、落とされる（ｄｒｏｐｐｅｄ）。代替的または追加的に、このことは、相対的な知覚上の重要性に応じて、異なるＲＯＩに対して割り当てられた異なるＱＰレベルが存在することを意味し得る。
【００７４】
図５ｄは、さらに別の例を示している。この事例においては、頭に対応している第１ＲＯＩ  ５０１ａ、胸郭に対応している第２ＲＯＩ  ５０１ｄ、腹部に対応している第３ＲＯＩ、右上腕に対応している第４ＲＯＩ  ５０１ｊ、左上腕に対応している第５ＲＯＩ  ５０１ｋ、右下腕に対応している第６ＲＯＩ  ５０１ｌ、左下腕に対応している第７ＲＯＩ  ５０１ｍ、右手に対応している第８ＲＯＩ  ５０１ｎ、左手に対応している第９ＲＯＩ  ５０１ｏ、右上脚に対応している第１０ＲＯＩ  ５０１ｐ、左上脚に対応している第１１ＲＯＩ  ５０１ｑ、右下脚に対応している第１２ＲＯＩ  ５０１ｒ、左下脚に対応している第１３ＲＯＩ  ５０１ｓ、右足に対応している第１４ＲＯＩ  ５０１ｔ、左足に対応している第１５ＲＯＩ  ５０１ｕ、を定めている。図５ｄにおいて示される例において、各ＲＯＩ  ５０１は、４つの境界によって定められる長方形であるが、図５ｃのように、必ずしも水平および垂直境界に限定されるものではない。代替的に、各ＲＯＩ  ５０１は、あらゆる４つのポイントを接続しているあらゆる４つの境界エッジによって定められるあらゆる四辺形として、または、あらゆる３つ以上の任意のポイントを接続しているあらゆる３つ以上の境界エッジによって定められるあらゆる多角形として定義され得るだろう。もしくは、各ＲＯＩ  ５０１は、図５ａにおけるように、水平および垂直境界エッジを伴う長方形に限定され得るか、反対に、各ＲＯＩ  ５０１が、図５ｂにおけるように、自由に定義可能であり得るだろう。さらに、それ以前の例のように、実施例において、ＲＯＩ  ５０１ａ、５０１ｄ、５０１ｇ、５０１ｊ−ｕそれぞれには、それぞれの優先度が割り当てられてよい。例えば、頭の領域５０１ａは最高の優先度であってよく、手の領域５０１ｎ、５０１ｏは次に高い優先度、下腕の領域５０１ｌ、５０１ｍはその後で次に高い優先度、等であってよい。
【００７５】
しかしながら、複数のＲＯＩが使用されるところでは、全てのあり得る実施例において、異なる優先度の割り当てが、必ずしもこれに沿って実施されることを要しないことに留意する。例えば、問題とするコーデック（ｃｏｄｅｃ）が、図５ｂにおけるようなあらゆる自由に定義可能なＲＯＩ形状をサポートしない場合には、図５ｃおよび５ｄにおけるＲＯＩの定義が、図５ａにおけるようなユーザ１００の周りの一つのＲＯＩを描くことよりもビットレートが効率的な実施をいまだに表しているだろう。つまり、図５ｃおよび５ｄのような例により、ユーザ１００の画像をより選択的にカバーすることができ、ＲＯＩがブロック毎に任意に定められない事例（例えば、マクロブロック毎に定められない）においては、近くの背景を量子化しているそれほど多くのビットを浪費しない。
【００７６】
さらなる実施例においては、ＲＯＩからさらに離れた領域において品質が減少し得る。つまり、コントローラは、一つまたはそれ以上の興味領域のうち少なくとも一つから外側に向かって、量子化の粒度の粗さにおける連続的な増加を適用するように構成されている。粗さにおけるこの増加（品質の低下）は、段階的またはステップ毎のものである。このことの一つのあり得る実施においては、ＲＯＩが定められたときに、ＲＯＩと背景との間でＱＰが消えていく（ｆａｄｅ）ことが量子化器２０３によって暗黙のうちに理解されるように、コーデックがデザインされる。代替的に、同様な効果が、最高優先度のＲＯＩと背景との間で一連の中間の優先度を定義することにより、コントローラ１１２によって明示的に強制され得る。例えば、中心から外に向かって広がる一式の同心円状のＲＯＩであり、最初のＲＯＩ（ｐｒｉｍａｒｙ  ＲＯＩ）が画像のエッジにおける背景に向かって所定の身体領域をカバーしている。
【００７７】
さらに、なお実施例において、コントローラ１１２は、一つまたはそれ以上の興味領域が、骨格トラッキング情報に基づいて、一つまたはそれ以上の対応する身体的な領域に従う際に、一つまたはそれ以上の興味領域の動きを滑らかにするために、ばねモデル（ｓｐｒｉｎｇ  ｍｏｄｅｌ）を適用するように構成されている。つまり、各フレームについて個別にＲＯＩを単純に決定するより、むしろ、一つのフレームから次へのＲＯＩの動きは弾性のあるばねモデルに基づいて制限される。実施例において、弾性のあるばねモデルは、以下のように定義され得る。
【数１】
2017531946.tif 000003
ここで、ｍ（「質量（”ｍａｓｓ”）」）、ｋ（「剛性（”ｓｔｉｆｆｎｅｓｓ”）」）、および、Ｄ（「減衰（”ｄａｍｐｉｎｇ”）」）は、設定可能な定数であり、そして、ｘ（変位）とｔ（時間）は、変数である。つまり、モデルは、それにより、転移（ｔｒａｎｓｉｔｉｏｎ）の加速度が、変位と、転移の速度との加重合計に比例する。
【００７８】
例えば、ＲＯＩは、フレームの中で一つまたはそれ以上のポイントによってパラメータ化される。つまり、ＲＯＩの位置または境界の一つまたはそれ以上のポイントである。そうしたポイントの位置は、ＲＯＩが移動するときに移動する。対応する身体部分に追従するからである。従って、問題とするポイントは、後のフレームにおいて身体部分をカバーしているＲＯＩのパラメータである時間ｔ２における第２位置（「所望の位置（”ｄｅｓｉｒｅｄＰｏｓｉｔｉｏｎ”）」）と、より初期のフレームにおいて同一の身体部分をカバーしているＲＯＩのパラメータである時間ｔ１における第１位置（「現在の位置（”ｃｕｒｒｅｎｔＰｏｓｉｔｉｏｎ”）」）とを有するものとして記述され得る。滑らかな動きを伴う現在のＲＯＩは、以下のように「現在の位置」をアップデートすることによって生成され得る。現在のＲＯＩのパラメータであるアップデートされた「現在の位置」を用いるものである。
velocity=0
previousTime=0
currentPosition=<some_constant_initial  value>
UpdatePosition(desiredPosition,time)
{
x=currentPosition-desiredPosition;
force=-stiffness*x-damping*m_velocity;
acceleration=force/mass;
dt=time-previousTime;
velocity+=acceleration*dt;
currentPosition+=velocity*dt;
previousTime=time;
}
【００７９】
上記の実施例は、単に例として説明されてきたことが正しく理解されよう。
【００８０】
例えば、上記は、変換２０２、量子化２０３、予測コーディング２０７、２０１、およびロスレスエンコーディング２０４を含む所定のエンコーダの実施に関して説明されてきた。しかし、代替的な実施例においては、ここにおいて開示された内容は、また、必ずしもこれらのステージの全てを含んでいない他のエンコーダに対しても適用され得るものである。例えば、ＱＰ適合（ａｄａｐｔｉｎｇ  ＱＰ）に係る技術は、変換、予測、及び／又は、ロスレス圧縮がなく、かつ、おそらく量子化器だけを含んでいるエンコーダに対して適用されてよい。さらに、ＱＰは、量子化の粒度を表現するために唯一のあり得るパラメータではないことに留意する。
【００８１】
さらに、適合が動的（ｄｙｎａｍｉｃ）である一方で、ビデオが必ずリアルタイムにエンコードされ、送信され、かつ／あるいは、再生されなければならないことは（確かに一つのアプリケーションではあるが）、全てのあり得る実施例においては、必ずしも必要とされるものではない。例えば、代替的に、ユーザターミナル１０２は、ビデオを記録し、そして、また、ビデオと同期して骨格トラッキングを記録することもできる。かつ、そうして、例えば、ペリフェラルメモリーキーまたはドングル（ｄｏｎｇｌｅ）といったメモリデバイス上に保管するため、または、ｅメールに添付するために、後日にエンコーディングを実行するように、使用することができる。
【００８２】
さらに、上記の身体領域とＲＯＩは、単なる例であり、そして、異なる形状のＲＯＩとして、異なる広さを有する他の身体領域に対応するＲＯＩが可能であることが、正しく理解されよう。また、所定の身体領域の異なる定義が可能であり得る。例えば、腕に対応しているＲＯＩが参照される場合、実施例において、ＲＯＩは、頭及び／又は肩といった、付随的な特徴を含んでも、含まなくてもよい。同様に、脚に対応しているＲＯＩについて、ここにおいて参照される場合、ＲＯＩは、足といった、付随的な特徴を含んでも、含まなくてもよい。
【００８３】
さらに、上記の説明において、骨格トラッキングアルゴリズム１０６は、カメラ１０３から離れた、一つまたはそれ以上の分離した、専用の骨格トラッキングセンサ１０５からのセンサ入力に基づいて、骨格トラッキングを実行することに留意する（つまり、エンコーダ１０４によってエンコードされているカメラ１０３からのビデオデータより、むしろ、骨格トラッキングセンサ１０５からのセンサデータを使用している）。それにもかかわらず、他の実施が可能である。例えば、骨格トラッキングアルゴリズム１０６は、実際に、エンコードされているビデオをキャプチャするために使用されているのと同一のカメラ１０３からのビデオデータに基づいて動作するように構成されてよい。しかし、この場合に、骨格トラッキングアルゴリズム１０６は、いまだに、エンコーダ１０４が実施されている、汎用処理装置と離れた少なくともいくつかの専用または指定のグラフィクス処理装置を使用して実施される。例えば、骨格トラッキングアルゴリズム１０６がグラフィクスプロセッサ６０２において実施されており、一方でエンコーダ１０４が汎用プロセッサ６０１において実施されるか、もしくは、骨格トラッキングアルゴリズム１０６がシステム空間において実施されており、一方でエンコーダ１０４がアプリケーション空間において実施される。このように、上記において説明されたものより一般的に、骨格トラッキングアルゴリズム１０６は、カメラ１０３及び／又はエンコーダ１０４とは離れた少なくともいくつかのハードウェアを使用するように構成されてよい。エンコードされているビデオをキャプチャするために使用されるカメラ１０３以外の分離した骨格トラッキングセンサ、及び／又は、エンコーダ１０４以外の分離した処理装置、のいずれでもよい。
【００８４】
技術的事項が構造的特徴及び／又は方法論的アクトに特有の言葉で説明されてきたが、添付の請求項において定められる技術的事項は、上述された特定の特徴またはアクトに必ずしも限定される必要はないことが理解されるべきである。むしろ、上述の特定の特徴およびアクトは、請求項に係る発明の実施例として開示されたものである。
【図１】
2017531946.tif 000004
【図２】
2017531946.tif 000005
【図３】
2017531946.tif 000006
【図４】
2017531946.tif 000007
【図５ａ】
2017531946.tif 000008
【図５ｂ】
2017531946.tif 000009
【図５ｃ】
2017531946.tif 000010
【図５ｄ】
2017531946.tif 000011
【図６】
2017531946.tif 000012
【図７】
2017531946.tif 000013
【図８ａ】
2017531946.tif 000014
【図８ｂ】
2017531946.tif 000015
【図９】
2017531946.tif 000016
【国際調査報告】
2017531946.tif 000017
2017531946.tif 000018
2017531946.tif 000019