(57)【要約】【解決手段】本開示の態様は、映像キャプチャに関する。具体的には、本開示の態様は、映像フレームのキャプチャにおける待ち時間を短縮するシステム及び方法に関する。本開示の種々の実施形態は、各フレーム内の可視ピクセルが映像インターフェースを通じてより高速に転送されるように映像フレームに余分なピクセルを追加してもよい。具体的には、フレームに余分なピクセルを追加することによって、各フレーム内のピクセルの総数に基づいて生成されるピクセルクロックが増加し得る。それに応じて、各フレーム内の可視ピクセルを転送するのに必要な時間が減少した結果、映像キャプチャプロセスにおける遅延による待ち時間を短縮することができる。【選択図】図９Ａ
2017505035.tif 000002
【特許請求の範囲】
【請求項１】
第１のディスプレイ解像度で複数の可視画像ピクセルを有する第１の映像フレーム画像について、前記第１のディスプレイ解像度よりも大きい第２のディスプレイ解像度を有するソース映像フレームに、前記第１の映像フレーム画像を挿入することを含み、
前記第１の映像フレーム画像の前記挿入が、前記ソース映像フレームのアクティブディスプレイ領域に、前記複数の可視画像ピクセル及び複数の余分なピクセルを挿入することを含む、方法。
【請求項２】
前記ソース映像フレームに複数の同期信号を追加することによって、出力映像フレームを形成することをさらに含む、請求項１に記載の前記方法。
【請求項３】
前記ソース映像フレームに複数の同期信号を追加することによって、出力映像フレームを形成することと、
映像キャプチャデバイスに前記出力映像フレームを転送することと、
前記映像キャプチャデバイスで前記出力映像フレーム内の前記可視画像ピクセルをキャプチャしつつ、前記キャプチャから前記余分なピクセルを除外することと、をさらに含む、請求項１に記載の前記方法。
【請求項４】
前記ソース映像フレームに複数の同期信号を追加することによって、出力映像フレームを形成することと、
映像キャプチャデバイスに前記出力映像フレームを転送することと、
前記映像キャプチャデバイスで前記出力映像フレーム内の前記可視画像ピクセルをキャプチャしつつ、前記キャプチャから前記余分なピクセルを除外することと、
前記可視画像ピクセルがキャプチャされた後に前記第１の映像フレーム画像を圧縮することであって、前記出力映像フレームの前記アクティブディスプレイ領域全体が転送される前に前記圧縮を開始する、圧縮することと、をさらに含む、請求項１に記載の前記方法。
【請求項５】
前記ソース映像フレームが前記アクティブディスプレイ領域内に２つの画像領域を有するステレオ３Ｄ形式であり、前記２つの画像領域が左画像領域及び右画像領域に対応し、
前記第１の映像フレーム画像の前記挿入が、前記２つの画像領域の一方に前記複数の可視画像ピクセルを挿入することと、前記２つの画像領域の他方を前記余分なピクセルで満たすことと、を含む、請求項１に記載の前記方法。
【請求項６】
前記ソース映像フレームが前記アクティブディスプレイ領域内に２つの画像領域を有する上下ステレオ３Ｄ形式であり、前記２つの画像領域が前記アクティブディスプレイ領域の上部及び前記アクティブディスプレイ領域の下部にそれぞれ配置された左画像領域及び右画像領域に対応し、
前記第１の映像フレーム画像の前記挿入が、前記アクティブディスプレイ領域の前記上部画像に前記複数の可視画像ピクセルを挿入することと、前記アクティブディスプレイ領域の前記下部を前記余分なピクセルで満たすこととを含む、請求項１に記載の前記方法。
【請求項７】
前記ソース映像フレームが前記アクティブディスプレイ領域内に２つの画像領域を有するステレオ３Ｄ形式であり、前記２つの画像領域が左画像領域及び右画像領域に対応し、前記２つの画像領域のそれぞれが前記第１の映像フレーム画像の前記第１のディスプレイ解像度よりも大きいディスプレイ解像度を有し、
前記第１の映像フレーム画像の前記挿入が、前記２つの画像領域の一方に前記複数の可視画像ピクセルを挿入することと、前記２つの画像領域の前記一方の残りを前記余分なピクセルで満たすことと、前記２つの画像領域の他方を前記余分なピクセルで満たすことと、を含む、請求項１に記載の前記方法。
【請求項８】
前記第１の映像フレーム画像が複数の可視画像ラインを有し、前記可視画像ラインのそれぞれが複数の前記可視画像ピクセルを有し、
前記ソース映像フレームがモノ画像領域を画定する前記アクティブディスプレイ領域を有するモノ形式であり、
前記モノ画像領域が複数のアクティブラインを有し、前記アクティブラインのそれぞれが複数のアクティブピクセルを有し、
前記モノ画像領域内のアクティブラインの数が前記第１の映像フレーム画像内の可視画像ラインの数よりも多く、
前記アクティブラインのそれぞれの中のアクティブピクセルの数が前記可視画像ラインのそれぞれの中の可視画像ピクセルの数よりも多く、
前記第１の映像フレーム画像の前記挿入が、前記アクティブラインのうちの対応する１つに前記可視画像ラインのそれぞれを挿入することと、前記アクティブラインのうちの対応する１つのそれぞれの残りを前記余分なピクセルで満たすことと、を含む、請求項１に記載の前記方法。
【請求項９】
前記第１の映像フレーム画像が複数の可視画像ラインを有し、前記可視画像ラインのそれぞれが複数の前記可視画像ピクセルを有し、
前記ソース映像フレームがモノ画像領域を画定する前記アクティブディスプレイ領域を有するモノ形式であり、
前記モノ画像領域が複数のアクティブラインを有し、前記アクティブラインのそれぞれが複数のアクティブピクセルを有し、
前記モノ画像領域内のアクティブラインの数が前記第１の映像フレーム画像内の可視画像ラインの数よりも多く、
前記アクティブラインのそれぞれの中のアクティブピクセルの数が前記可視画像ラインのそれぞれの中の可視画像ピクセルの数よりも多く、
前記第１の映像フレーム画像の前記挿入が、前記アクティブラインの少なくとも一部がそれぞれ前記可視画像ラインのうちの２つ以上からの前記可視画像ピクセルを含むように、前記アクティブラインの少なくとも一部を前記可視画像ピクセルで満たすことを含む、請求項１に記載の前記方法。
【請求項１０】
前記ソース映像フレームが転送のために画定されたピクセルの列を有し、
前記第１の映像フレーム画像の前記挿入が、前記列内の前記複数の可視画像ピクセルの後の場所に前記複数の余分なピクセルの少なくとも一部を挿入することを含む、請求項１に記載の前記方法。
【請求項１１】
複数の可視画像ラインを有する第１の映像フレーム画像であって、前記可視画像ラインのそれぞれが複数の可視画像ピクセルを有する、第１の映像フレーム画像について、
出力映像フレームを形成することであって、前記出力映像フレームが前記第１の映像フレーム画像及び同期領域を有し、前記同期領域が前記可視画像ラインのそれぞれの間に前記可視画像ラインのそれぞれの間の遷移を示す複数の同期信号を有し、前記同期領域が前記複数の可視画像ラインの最後の後に前記フレームの終了を示す複数の同期ラインを有する、形成することを含み、
前記出力映像フレームの前記形成が、前記同期ラインの後に、前記同期領域に余分なピクセルの複数のダミーラインを追加することを含む、方法。
【請求項１２】
前記出力フレーム内のラインの総数に対する前記出力フレーム内の前記可視画像ラインの数の比率が０．２５〜０．７５である、請求項１１に記載の前記方法。
【請求項１３】
前記出力フレーム内のラインの総数に対する前記出力フレーム内の前記可視画像ラインの数の比率が約０．５である、請求項１１に記載の前記方法。
【請求項１４】
第１の処理装置と、
前記第１の処理装置に動作可能に連結された第１の記憶装置と、を備えるシステムであって、
前記システムが、方法を実行するように構成されており、前記方法が、
第１のディスプレイ解像度で複数の可視画像ピクセルを有する第１の映像フレーム画像について、前記第１のディスプレイ解像度よりも大きい第２のディスプレイ解像度を有するソース映像フレームに、前記第１の映像フレーム画像を挿入することを含み、
前記第１の映像フレーム画像の前記挿入が、前記ソース映像フレームのアクティブディスプレイ領域に、前記複数の可視画像ピクセル及び複数の余分なピクセルを挿入することを含む、前記システム。
【請求項１５】
前記方法が、
前記ソース映像フレームに複数の同期信号を追加することによって、出力映像フレームを形成することをさらに含む、請求項１４に記載の前記システム。
【請求項１６】
映像通信インターフェースを通じて前記第１の処理装置に動作可能に連結された映像キャプチャデバイスをさらに備え、前記方法が、
前記ソース映像フレームに複数の同期信号を追加することによって、出力映像フレームを形成することと、
前記映像キャプチャデバイスに前記出力映像フレームを転送することと、
前記映像キャプチャデバイスで前記出力映像フレーム内の前記可視画像ピクセルをキャプチャしつつ、前記キャプチャから前記余分なピクセルを除外することと、をさらに含む、請求項１４に記載の前記システム。
【請求項１７】
映像通信インターフェースを通じて前記第１の処理装置に動作可能に連結された映像キャプチャデバイスと、
前記映像キャプチャデバイスに動作可能に連結された第２の処理装置及び第２の記憶装置を有するコンピュータシステムと、をさらに備え、前記方法が、
前記ソース映像フレームに複数の同期信号を追加することによって、出力映像フレームを形成することと、
前記映像キャプチャデバイスに前記出力映像フレームを転送することと、
前記映像キャプチャデバイスで前記出力映像フレーム内の前記可視画像ピクセルをキャプチャすることと、
前記コンピュータシステムで、前記可視画像ピクセルがキャプチャされた後に前記第１の映像フレーム画像を圧縮することであって、前記出力映像フレームの前記アクティブディスプレイ領域全体が転送される前に前記圧縮を開始する、圧縮することと、をさらに含む、請求項１４に記載の前記システム。
【請求項１８】
前記第１の処理装置が前記第２のディスプレイ解像度で前記映像フレーム画像をレンダリングするように構成されたグラフィックス処理装置（ＧＰＵ）である、請求項１４に記載の前記システム。
【請求項１９】
第１の処理装置と、
前記第１の処理装置に動作可能に連結された第１の記憶装置と、を備えるシステムであって、
前記システムが、方法を実行するように構成されており、前記方法が、
複数の可視画像ラインを有する第１の映像フレーム画像であって、前記可視画像ラインのそれぞれが複数の可視画像ピクセルを有する第１の映像フレーム画像について、
出力映像フレームを形成することであって、前記出力映像フレームが前記第１の映像フレーム画像及び同期領域を有し、前記同期領域が前記可視画像ラインのそれぞれの間に前記可視画像ラインのそれぞれの間の遷移を示す複数の同期信号を有し、前記同期領域が前記複数の可視画像ラインの最後の後に前記フレームの終了を示す複数の同期ラインを有する、形成することを含み、
前記出力映像フレームの前記形成が、前記同期ラインの後に、前記同期領域に余分なピクセルの複数のダミーラインを追加することを含む、前記システム。
【請求項２０】
内部にプロセッサ実行可能命令が具現化された非一過性コンピュータ可読媒体であって、プロセッサによる前記命令の実行が、前記プロセッサに方法を実行させ、前記方法が、
第１のディスプレイ解像度で複数の可視画像ピクセルを有する第１の映像フレーム画像について、前記第１のディスプレイ解像度よりも大きい第２のディスプレイ解像度を有するソース映像フレームに、前記第１の映像フレーム画像を挿入することを含み、
前記第１の映像フレーム画像の前記挿入が、前記ソース映像フレームのアクティブディスプレイ領域に、前記複数の可視画像ピクセル及び複数の余分なピクセルを挿入することを含む、前記媒体。
【請求項２１】
内部にプロセッサ実行可能命令が具現化された非一過性コンピュータ可読媒体であって、プロセッサによる前記命令実行が、前記プロセッサに方法を実行させ、前記方法が、
複数の可視画像ラインを有する第１の映像フレーム画像であって、前記可視画像ラインのそれぞれが複数の可視画像ピクセルを有する、第１の映像フレーム画像を受信することと、
出力映像フレームを形成することであって、前記出力映像フレームが前記第１の映像フレーム画像及び同期領域を有し、前記同期領域が前記可視画像ラインのそれぞれの間に前記可視画像ラインのそれぞれの間の遷移を示す複数の同期信号を有し、前記同期領域が前記複数の可視画像ラインの最後の後に前記フレームの終了を示す複数の同期ラインを有する、形成することと、を含み、
前記出力映像フレームの前記形成が、前記同期ラインの後に、前記同期領域に余分なピクセルの複数のダミーラインを追加することを含む、前記媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権の主張］
本出願は、Ｒｏｅｌｏｆ  Ｒｏｄｅｒｉｃｋ  Ｃｏｌｅｎｂｒａｎｄｅｒに譲渡された、２０１３年１２月１９日出願の同時係属米国非仮特許出願第１４／１３５，３７４号、表題「ＶＩＤＥＯ  ＬＡＴＥＮＣＹ  ＲＥＤＵＣＴＩＯＮ」（米国代理人整理番号ＳＣＥＡ１３０３７ＵＳ００）に対する優先権の利益を主張するものであり、その内容全体が参照により本明細書に組み込まれる。
【０００２】
［関連出願の相互参照］
本出願は、Ｒｏｅｌｏｆ  Ｒｏｄｅｒｉｃｋ  Ｃｏｌｅｎｂｒａｎｄｅｒに譲渡された、２０１３年１２月１９日出願の同時係属米国特許出願第１４／１３５，２１３号、表題「ＭＡＳＳ  ＳＴＯＲＡＧＥ  ＶＩＲＴＵＡＬＩＺＡＴＩＯＮ  ＦＯＲ  ＣＬＯＵＤ  ＣＯＭＰＵＴＩＮＧ」（米国代理人整理番号ＳＣＥＡ１３０３１ＵＳ００）に関連し、その内容全体が参照により本明細書に組み込まれる。
【０００３】
［分野］
本開示の態様は、映像キャプチャに関する。具体的には、本開示の態様は、映像フレームのキャプチャにおける待ち時間を短縮するシステム及び方法に関する。
【背景技術】
【０００４】
通信システムの帯域幅及びデータ転送速度が増加し続けるとともに、今日のコンピューティングに対するニーズの多くが、一般に「クラウドコンピューティング」と呼ばれるネットワークベースの分散計算システムに移行している。一般的に、クラウドコンピューティングは、１つ以上のリモート計算資源に一定の計算作業を割り当てること、及びリモート計算資源を使用して、ローカルデバイスにサービスを提供することを伴う。クラウドコンピューティングは、クライアントサーバモデルとして実施されることが多く、リモートサーバが必要な計算機能をローカルクライアントデバイスに提供し、ローカルクライアントデバイスがそれ自体である特定の計算作業を実行する必要がなくなる。多くの場合、計算資源は、完全またはほぼ完全にサーバに割り当てることができ、クライアントは、クラウドコンピューティング作業に対して、ほとんど何も、またはユーザインターフェースを超えて何も提供せず、インターネットに接続されたいかなるデバイスも、特定の用途に対して潜在的にクライアントとして機能し得る。
【０００５】
クラウドコンピューティングは、リモートデータ記憶ソリューション、音楽及び映像ストリーミングサービス、及びその他種々の消費者及びビジネスソリューションなど、種々の計算サービスに採用されている。一般的には、クラウドコンピューティングは、共有資源の使用を通じた効率性の向上、特定のデバイスに限定されない、コンテンツへのアクセスの柔軟性の向上、ハードウェアのアップグレードが利用可能になった時の初期費用の削減、及びその他の利点など、いくつかのよく知られている恩恵をもたらす。
【０００６】
クラウドコンピューティングがいまだ幅広く採用されていない分野の１つが、依然として人気のあるビデオゲームの分野である。パーソナルコンピュータ（ＰＣ）ゲーム、家庭用ゲーム、携帯ゲームなどのビデオゲームは、消費者の間で今もなお人気のある娯楽源である。多くのビデオゲームのタイトルが発表され、今もその数は増え続けているが、クラウドゲーミングは、多くのビデオゲームに対する需要に対して特に魅力的なソリューションを提供する。理想的には、クラウドゲーミングフレームワーク内で、ユーザは、ゲームの物理的コピーが必要なく、タイトルのダウンロードを待つ必要がなく、かつゲームを実行するのに必要なハードウェアシステムまたは資源をローカルに処理することなく、リモートで記憶された膨大な数のビデオゲームのタイトルの内、任意のタイトルに瞬間的にアクセスできる。次に、グラフィックスのレンダリング、ユーザの入力に応答したゲーム状態の変化、及びその他のゲームに関連する計算は、「クラウド」でリモートに実行され、ユーザのローカルデバイスに送信され得る。残念ながら、従来のクラウドコンピューティングサーバ設計内でのこの種のサービスの実施は、いくつかの技術的な問題があり、それらがこれまでビデオゲームプラットフォームの多くに対して、クラウドゲーミングが幅広く採用されることを妨げている。
【０００７】
今日のビデオゲームの多くが、ペースが非常に速く、アクションが多く、レンダリングに非常に多くの計算資源が必要となるほどグラフィックスが高度であることが１つの問題である。特に、ゲームの計算及びグラフィックスのレンダリング計算のすべてがリモートで実行される、映像ストリーミングベースのサーバ設計においては、ゲームは、これらの作業のすべて実行し、かつ制御入力に応答して知覚できる待ち時間がないよう最小限に抑えつつ、クライアントデバイスへの圧縮された音声／映像ストリームを配信できる必要がある。それができなければ、これによって、プレイヤーのタイミングが妨害され、従来のローカルに実行されるゲーミングセッションの応答性が再現できなくなる。
【０００８】
もう１つの問題は、従来、一方でパーソナルコンピュータ、ラップトップ、及びその他の汎用計算システム上で実行されるよう設計されたＰＣゲームと、他方でビデオゲーム機として知られている専用のシステム上で実行されるよう設計されたゲーム機ゲーム間に差異があったという事実から生じている。ビデオゲーム機は通常、ビデオゲーム環境に特別に適応された固有の計算アーキテクチャを有する埋め込みプラットフォームとして設計される。専用のゲーム機ハードウェアをビデオゲームプラットフォームとして使用することで、特に、今日のビデオゲームの多くを製造するのに必要なグラフィックスのレンダリング及びゲームに関連する計算に対する高い計算資源需要に対して、ハードウェアを最適化するという形でいくつかの利点をもたらす。その結果、ＰＣゲームはある程度の人気を得たものの、ゲーム機ゲームは、これまでビデオゲーム市場を席巻し、これからも席巻し続け得るであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、クラウドストリーミングサービスにビデオゲーム機及びその他の埋め込みプラットフォームを適応させるには、いくつかの問題がある。専用プラットフォームのハードウェアまたはソフトウェアアーキテクチャの大幅な変更により、専用プラットフォーム用に設計されたアプリケーションとの互換性の問題が生じる可能性がある。その結果、ネットワーク上でのストリーム配信のために、必要なアプリケーションを実行するため、そのアプリケーションをサーバ側の別個の「端末システム」上で互換性のあるアーキテクチャで直接実行する必要があり得る。端末システムは、ゲーム機アーキテクチャまたは専用のアプリケーションを実行するよう設計されたその他の既存の埋め込みプラットフォームであり得る。
【００１０】
ネットワーク上でアプリケーションをストリーム配信するためには、伝送前に出力映像信号を圧縮するために、端末システムで実行されているアプリケーションから映像フレームをキャプチャするための技術が必要になる。従来の映像キャプチャカードは、映像フレームが圧縮され、離れた場所にあるディスプレイに送信されるよう、ＨＤＭＩ（登録商標）、ＤＶＩ、ＶＧＡなどの映像インターフェースリンクを通じて転送される映像フレームをキャプチャすることができる。しかしながら、キャプチャデバイスに各フレームを転送するのに要する時間の遅延は、フレームがアプリケーションコンテンツにより生成される時間とクライアント側のディスプレイ上に各フレームが示される時間の間の待ち時間の一因となる。映像キャプチャ遅延、圧縮遅延、ネットワーク遅延、及びその他の資源によって、知覚できる待ち時間が生じ得る。クラウドゲーミング及びその他のクラウドコンピューティング環境において、待ち時間を最小限に抑えることは、決定的に重要な課題であり、クライアント側のユーザに迅速な体験を提供する上で、１ミリ秒も無駄にすることはできない。
【００１１】
以上の背景で、本開示が生まれる。
【課題を解決するための手段】
【００１２】
本開示の実施形態は、第１のディスプレイ解像度で複数の可視画像ピクセルを有する第１の映像フレーム画像のための方法を含んでいてもよい。この方法は、第１のディスプレイ解像度よりも大きい第２のディスプレイ解像度を有するソース映像フレームに、第１の映像フレーム画像を挿入することを含んでいてもよい。第１の映像フレーム画像の挿入は、ソース映像フレームのアクティブディスプレイ領域に、複数の可視画像ピクセル及び複数の余分なピクセルを挿入することを含んでいてもよい。
【００１３】
いくつかの実施形態では、この方法は、ソース映像フレームに複数の同期ピクセルを追加することによって、出力映像フレームを形成することと、映像キャプチャデバイスに出力映像フレームを転送することと、映像キャプチャデバイスで出力映像フレーム内の可視画像ピクセルをキャプチャしつつ、該キャプチャから余分なピクセルを除外することと、可視画像ピクセルがキャプチャされた後であり、出力映像フレームのアクティブディスプレイ領域全体がキャプチャされる前に、第１の映像フレーム画像を圧縮することとをさらに含んでいてもよい。
【００１４】
いくつかの実施形態では、ソース映像フレームは、アクティブディスプレイ領域内に２つの画像領域を有するステレオ３Ｄ形式で、２つの画像領域は、左画像領域及び右画像領域に対応してもよい。第１の映像フレーム画像を挿入することは、２つの画像領域の一方に複数の可視画像ピクセルを挿入することと、２つの画像領域の他方を余分なピクセルで満たすこととを含んでいてもよい。
【００１５】
いくつかの実施形態では、第１の映像フレーム画像は、複数の可視画像ラインを有し、可視画像ラインのそれぞれが複数の可視画像ピクセルを有していてもよい。ソース映像フレームは、モノ画像領域を画定するアクティブディスプレイ領域を有するモノ形式であってもよい。モノ画像領域は、複数のアクティブラインを有し、アクティブラインのそれぞれが複数のアクティブピクセルを有していてもよい。モノ画像領域内のアクティブラインの数は、第１の映像フレーム画像内の可視画像ラインの数よりも大きく、各アクティブライン内のアクティブピクセルの数は、各可視画像ライン内の可視画像ピクセルの数よりも大きくてもよい。第１の映像フレーム画像を挿入することは、アクティブラインの一方に可視画像ラインのそれぞれを挿入することと、それぞれのアクティブラインの残りを前記余分なピクセルで満たすこととを含んでいてもよい。他の実施形態では、第１の映像フレーム画像を挿入することは、アクティブラインの少なくとも一部がそれぞれ複数の画像ラインからの可視画像ピクセルを含むよう、アクティブラインの少なくとも一部を可視画像ピクセルで満たすことを含んでいてもよい。
【００１６】
本開示のさらなる実施形態は、複数の可視画像ラインを有する第１の映像フレーム画像であって、該可視画像ラインのそれぞれが複数の可視画像ピクセルを有する第１の映像フレーム画像を含んでいてもよい。この方法は、出力映像フレームを形成することであって、出力映像フレームが第１の映像フレーム画像及び同期領域を有し、同期領域が可視画像ラインのそれぞれの間に可視画像ラインのそれぞれの間の遷移を示す複数の同期ピクセルを有し、同期領域が複数の可視画像ラインの最後の後にフレームの終了を示す複数の同期ラインを有する、形成することを含んでいてもよい。出力映像フレームを形成することは、同期ラインの後に、同期領域に余分なピクセルの複数のダミーラインを追加することを含んでいてもよい。
【００１７】
本開示のさらなる実施形態は、第１の処理装置と第１の処理装置に動作可能に連結された第１の記憶装置とを有するシステムを含んでいてもよい。このシステムは、第１のディスプレイ解像度で複数の可視画像ピクセルを有する第１の映像フレーム画像のための方法を実行するように構成されてもよい。この方法は、第１のディスプレイ解像度よりも大きい第２のディスプレイ解像度を有するソース映像フレームに、第１の映像フレーム画像を挿入することを含んでいてもよい。第１の映像フレーム画像の挿入は、ソース映像フレームのアクティブディスプレイ領域に、複数の可視画像ピクセル及び複数の余分なピクセルを挿入することを含んでいてもよい。
【００１８】
本開示のさらなる実施形態は、第１の処理装置と第１の処理装置に動作可能に連結された第１の記憶装置とを有するシステムを含んでいてもよい。このシステムは、複数の可視画像ラインを有す第１の映像フレーム画像であって、可視画像ラインのそれぞれが複数の可視画像ピクセルを有する第１の映像フレーム画像のための方法を実行するように構成されてもよい。この方法は、出力映像フレームを形成することであって、出力映像フレームが第１の映像フレーム画像及び同期領域を有する、出力映像フレームを形成することを含んでいてもよい。同期領域は、可視画像ラインのそれぞれの間に可視画像ラインのそれぞれの間の遷移を示す複数の同期ピクセルを有していてもよく、かつ同期領域は、複数の可視画像ラインの最後の後にフレームの終了を示す複数の同期ラインを有していてもよい。出力映像フレームを形成することは、同期ラインの後に、同期領域に余分なピクセルの複数のダミーラインを追加することを含んでいてもよい。
【００１９】
本開示の教示内容は、添付の図面に関連して、以下に述べる詳細な説明を考慮することで容易に理解できよう。
【図面の簡単な説明】
【００２０】
【図１】ネットワーク上での例示的なストリーム配信技術の概略図である。
【図２】ネットワーク上での別の例示的なストリーム配信技術の概略図である。
【図３Ａ】映像源からの映像データをキャプチャし、圧縮する映像キャプチャカードを有する例示的なストリーム配信システムの概略図である。
【図３Ｂ】例示的な映像出力フレームの概略図である。
【図４Ａ】映像源として機能する例示的な端末システムアーキテクチャの概略図である。
【図４Ｂ】映像源からの映像フレームをキャプチャし、圧縮できる例示的なホストシステム及びキャプチャカードアーキテクチャである。
【図５】専用の処理装置を有する例示的な映像キャプチャカード設計の概略図である。
【図６】余分なピクセルを有する例示的な拡大映像フレームの概略図である。
【図７Ａ】余分なピクセルを有するさらなる例示的な拡大映像フレームの概略図である。
【図７Ｂ】余分なピクセルを有するさらなる例示的な拡大映像フレームの概略図である。
【図８】余分なピクセルを有する拡大映像フレームのさらに別の例の概略図である。
【図９Ａ】拡大映像出力フレームをキャプチャリングする例示的な方法のフロー図である。
【図９Ｂ】拡大映像出力フレームをキャプチャリングする例示的な方法のフロー図である。
【発明を実施するための形態】
【００２１】
以下に述べる詳細な説明には、図示のための多くの具体的な詳細が含まれるが、当業者であれば、以下に述べる詳細に対する変形形態及び変更の多くが本発明の範囲に入ることが理解されよう。したがって、以下に示す本発明の例示的な実施形態は、特許請求された発明の一般性を失うことなく、かつ、特許請求された発明に制限を加えることなく説明される。
【００２２】
序文
本開示の態様は、ストリーム内の各映像フレームに余分なピクセルを追加することによって映像転送遅延を短縮する技術に関する。一般的に、映像フレームは、可視ピクセル及び不可視ピクセルの両方で構成されており、可視ピクセルが表示のためのフレームの画像を画定し、不可視ピクセルが例えば同期に使用され得る。本開示の実施形態は、各フレーム内の可視ピクセルが映像インターフェースを通じてより高速に転送されるように映像フレームに余分なピクセルを追加してもよい。具体的には、フレームに余分なピクセルを追加することによって、映像転送ハードウェアに各フレーム内のピクセルの総数に基づいてピクセルクロックを増加させ得る。それに応じて、各フレーム内の可視ピクセルを転送するのに必要な時間が減少した結果、映像キャプチャプロセスにおける遅延による待ち時間を短縮することができる。
【００２３】
実施形態の詳細
本開示の種々の態様をさらによく示すために、分散計算システム１００の第１の実施例を図１に示す。図１に示す分散システム１００は、インターネットなどのネットワーク１０６上に接続された複数の計算デバイス１０２、１０４を含む。
【００２４】
例示的な分散システムにおいて、ストリーミングサーバ１０２は、ネットワーク１０６を通じて、リモートで接続されたクライアントデバイス１０４へのプログラム出力のリアルタイムストリーム配信を提供するため、プログラム１０８を実行する。図１の例示の概略図において、プログラム１０４は、クライアントデバイス１０４から受信した制御入力を処理し、プログラム１０８の実行に従い、クライアントデバイス１０４に圧縮された音声及び映像ストリームを送信するビデオゲームプログラムであってもよい。クライアント側にいるユーザは、クライアントデバイス１０４のユーザインターフェースを通じて、例えば、制御入力を与え、クライアントデバイス１０４に接続されたディスプレイ及び／またはスピーカーで音声及び映像ゲーム出力を受け取ることによって、プログラムとのやり取りを行ってもよい。図１の例において、入力を処理し、ビデオゲームのグラフィックスをレンダリングする計算負荷は、リモート実行のために、ストリーミングサーバ１０２に完全に任されてもよい。
【００２５】
図１に示すシステム１００を使用して、クラウドゲーミングを実施するために、ストリーミングサーバ１０２は、ゲームプログラム１０８を実行するだけでなく、ネットワーク１０６上のクライアントデバイス１０４とストリーミングサーバ１０２間の通信のために、プログラム入力／出力を調整するための種々の機能を実行し得る、サーバ１０２内に埋め込まれた「ストリーミングサーバプロセス」１１０も実施するように構成されてもよい。例として、ストリーミングサーバプロセス１１０は、ゲームソフトウェア１０８と連携して、ストリーミングサーバ１０２上で実行される１つ以上のアプリケーション内に埋め込まれてもよい。ストリーミングサーバプロセス１１０と共にゲーム１０８のリモート実行は、クライアント側のユーザが、プログラム１０８がローカルに実行されていると感じるように、クライアントデバイス１０４での入力と出力間に待ち時間が最小限または一切なく実行され得る。さらに、実行のために、リモートに記憶された多様なプログラムにアクセスすることができる。例えば、クラウドゲーミングアプリケーションにおいては、ユーザは、関連するビデオゲームプラットフォームのために設計された任意のゲームを選択できればよいと思うであろう。リモートサーバは、ユーザから受信した入力に従って、受信した入力及び音声／映像出力間で知覚できる待ち時間なしで、ゲームをロードし、ゲームを実行し、その出力をクライアントデバイスにストリーム配信できるであろう。
【００２６】
図１に示す例において、これは、ストリーミングサーバ１０２などの同じ計算デバイスでストリーミングサーバプロセス１１０及びゲームコード１０８の両方を実行することによって達成されてもよい。ストリーミングサーバは、ストリーミングサーバアーキテクチャ内に実装された種々の構成要素を使用して、ネットワーク上でキャプチャ、圧縮、及び伝送を行うよう、アプリケーションの映像内容を処理してもよい。クラウドゲーミング及びその他のクラウドコンピューティングの実施のためには、クライアント１０４に対して、サーバ１０２で実行されるソフトウェアアプリケーション１０８がストリーミングサーバ１０２に類似したパーソナルコンピュータ（ＰＣ）アーキテクチャまたはその他のコンピュータアーキテクチャを実行するように設計されれば、これは、直ちに実施でき得るであろう。例として、またそれに制限されることなく、ＰＣクラウドゲーミングの実施形態の場合、サーバ１０２によってアクセスされたら、ストリーミングサーバプロセス１１０を実施するだけでなく、ＰＣゲームプログラム１０８も実行するために、すぐに利用できるｘ８６ベースのサーバを使用してもよい。
【００２７】
しかしながら、図１に示す例示的な技術１００は、プログラム１０８が埋め込みプラットフォーム及びその他の専用アーキテクチャ上で実行されるように設計された特定のアプリケーションには適さない場合がある。例えば、必要なプログラムが専用のゲーム機プラットフォーム用に設計されている場合、ゲームソフトウェアは、ある種のエミュレータなしでは、サーバアーキテクチャ上で実行できない場合がある。残念ながら、エミュレータは通常、開発が難しい上に、コストがかかるため、適切なエミュレータは利用できない可能性がある。さらに、多くの場合、クラウドサービスが望ましい各固有のアーキテクチャに対して専用のサーバを構築することは実現困難であり、埋め込みプラットフォームは、映像圧縮及びその他のサーバプロセスを支援するために用いることのできる計算資源（例えば、ＣＰＵ、メモリ）を十分に持たない場合がある。同様に、既存のプラットフォームとは異なる性能特性を有する追加の資源の使用との互換性の問題がある場合がある。
【００２８】
これらの課題に対処するため、サーバ側でプログラムを実行するために追加の計算デバイスを使用し、追加の計算デバイスが必要なプログラムを実行する一方で、この追加の計算デバイスに連結されたストリーミングサーバは、クライアントデバイスとのやり取りのために、通常の機能を実行することが望ましい場合がある。そのような技術を使用する分散システム２００の実施例を図２に示す。図では、「端末システム」２１２は、ストリーミングサーバ２０２に接続され、端末システムは、所望するアプリケーション２０８を実行する。ストリーミングサーバは、端末システムがそれ以外にこれらの機能に対して、十分な使用できる資源を有さない場合、ネットワーク記憶及び映像圧縮のための資源を提供できる。
【００２９】
ある特定の実施形態においては、端末システム２１２は、ビデオゲーム機などの専用のアーキテクチャを有する埋め込みシステムまたはその他の計算システムであってもよく、一方で、ストリーミングサーバ２０２は、ストリーミングサービスを提供するよう適合され、端末システム２１２と類似のアーキテクチャを必ずしも有する必要のない、ｘ８６命令セットアーキテクチャなどの任意の計算アーキテクチャに基づいてもよい。ストリーミングサーバ２０２は、ストリーミングサーバプロセス２０２を実行し、端末システムプログラム２０８に通常のクラウドサービスを提供するように構成され、ストリーミングサーバ２０２及び端末システム２１２などのサーバ側の計算デバイスは、クライアントデバイス２０４にビデオゲームストリーミングサービスを提供するように集合的に動作してもよい。
【００３０】
図２の単純化した模式図の構成は、種々の計算アーキテクチャのために設計された種々のソフトウェアプラットフォームに容易に適合され得る実用的かつ柔軟なサーバソリューションを提供し得る。例えば、可能性として、ストリーミングサーバ２０２は、ソフトウェアを実行する端末システムをローカルに接続することによって、種々の計算アーキテクチャのために設計されたソフトウェアアプリケーションをストリーム配信するよう適合され得る。
【００３１】
しかしながら、サーバ側の端末システム２１２上で必要なソフトウェアを実行することで、クラウドコンピューティングフレームワーク内にある特定の問題が生じ得、新しい技術が、端末システム２１２から映像出力をキャプチャし、圧縮するのに便利である場合がある。従来の映像キャプチャカードを使用して、ＨＤＭＩリンクなどの端末システムの映像Ｉ／Ｏインターフェースを通じてアプリケーションの映像内容をキャプチャすることができるが、インターフェースを通じて送信される映像データをキャプチャするプロセスは、従来の技術を使用する際に、大きな待ち時間を加える場合がある。
【００３２】
映像キャプチャデバイス３２０を使用した映像キャプチャ技術の実施例を図３Ａに示す。図３Ａの例となるキャプチャ技術において、端末システム３１２上で実行されるアプリケーション３０８から出力される映像データ、及び任意で音声データは、ストリーミングサーバ３０２に連結されたキャプチャデバイス３２０を使用してキャプチャされてもよい。キャプチャカード３２０は、端末システム３１２との映像インターフェースを通じて映像ストリームを受信してもよく、ストリーミングサーバ３１０によって実施されるストリーミングサーバプロセス３１０と共に、図２に示すようなネットワーク上でのストリーム配信に対して、映像データを圧縮してもよい。例として、またそれに制限されることなく、キャプチャデバイス３２０は、拡張インターフェースを通じてストリーミングサーバ３０２に接続されてもよいＰＣＩ−Ｅｘｐｒｅｓｓアドオンカードなどの拡張カードとして実施されてもよい。
【００３３】
本開示の種々の態様に従って、図３Ａに示す例示的な映像キャプチャシステムは、より少ない遅延で、各映像フレームが映像キャプチャデバイス３２０に到達するよう、可視画像各映像フレームに余分なピクセルを追加することによって、キャプチャプロセス内の待ち時間を短縮するように最適化され得る。
【００３４】
いくつかの実施形態では、キャプチャカード３２０はまた、端末システム３１２が関与するクラウドコンピューティングアプリケーションに統合手法を提供するために、端末システム３１２に記憶仮想化機能を提供し得る。キャプチャカード３２０及びストリーミングサーバ３０２によって実施され得る記憶仮想化技術のさらなる詳細は、Ｒｏｅｌｏｆ  Ｒｏｄｅｒｉｃｋ  Ｃｏｌｅｎｂｒａｎｄｅｒに譲渡された、２０１３年１２月１９日出願の同時係属米国特許出願第１４／１３５，２１３号、表題「ＭＡＳＳ  ＳＴＯＲＡＧＥ  ＶＩＲＴＵＡＬＩＺＡＴＩＯＮ  ＦＯＲ  ＣＬＯＵＤ  ＣＯＭＰＵＴＩＮＧ」（米国代理人整理番号ＳＣＥＡ１３０３１ＵＳ００）に記載されており、その内容全体が参照により本明細書に組み込まれる。
【００３５】
本開示の種々の態様をよりよく理解するために、まず映像フレームがＨＤＭＩ、ＤＶＩ、ＶＧＡ、ＤｉｓｐｌａｙＰｏｒｔなどの映像インターフェースを通じて映像ソースにどのように転送されるかについて考察することが有意義である。図３Ｂを参照すると、映像出力フレーム３００の実施例を示す。例となる出力フレーム３００は、映像ストリームを集合的に構成する同様の形式を有する一連のフレームのうちの１つのフレームであり得る。映像フレームシーケンスは、ビデオゲームアプリケーション、映像ファイル、ライブストリームなどの映像内容源からの出力であってもよい。
【００３６】
図３Ｂに示すように、出力フレーム３００は、ピクセルデータ値の対応する配列によって表され得る、ピクセルの配列で構成され得る。出力フレーム３００はまた、以下に示すように、ピクセルデータ値の外部の追加の信号で伝送されてもよい。
【００３７】
配列内の各ピクセルデータ値は、使用される特定の色モデルに応じて、複数の色空間構成要素を含んでいてもよい。例えば、ＹＣｒＣｂ（デジタル映像）またはＹＰｂＰｒ（アナログ映像）が使用される場合、配列内の各ピクセルデータ値は、対応するピクセルに対する２つの彩度（色）値及び輝度（明度）値を含んでいてもよい。あるいは、各ピクセルのピクセルデータに対して、ＲＧＢ色空間、またはその他の色空間要素のセットが使用されてもよい。さらに、各ピクセルの各色空間成分に対するピクセルデータ値は、複数のビットによってデジタルで表されてもよい。例えば、２４ビットの色深度は、ピクセルあたりの色空間成分あたり８ビットを使用してもよい。「ピクセル」という言葉は、本明細書において、ピクセルクロックの信号の単一ティックに対応する出力フレームの一部について言及する場合の表現として使用されることがある。
【００３８】
ピクセルデータ値に加え、出力フレームは、ピクセルデータ値の他に、外部信号をも含んでいてもよい。外部信号は、ピクセルが可視かどうかを示す情報を有する信号、例えばそのピクセルが表示されることを意図されているか、したがって、可視ピクセルがそのピクセルに対するピクセルデータ値内に含まれるかどうかを示すデータ有効信号を含んでいてもよい。図３の例示的な出力フレーム３００に見られるように、アレイ内のピクセルの総数は、可視ピクセル３０１（図では格子として示す）及び不可視ピクセル３０３（図では、空白及び線を引いた領域として示す）の両方を含む。図３Ｂの例示的なフレームにおいて、可視ピクセル３０１は、高データ有効値によって示され得る、出力フレームのアクティブ画像領域を構成し、不可視ピクセル３０３は、低データ値によって示され得る、出力フレームの同期領域を構成する。アクティブ画像領域内の可視ピクセル３０１は、表示されることが意図されるフレームの可視画像を集合的に構成し得る。図３Ｂの例示的な出力フレーム３００において、映像フレーム画像の可視ピクセルは、フレームのフォーマットのアクティブ領域と一致する。
【００３９】
ゲーム機、ＰＣ、及びその他の映像源などのデバイスの大半は、映像フレームを通常、少なくとも色成分あたり８ビット／１バイトでＲＧＢピクセル内に構成された「フレームバッファ」に画像フレームをレンダリングする。映像フレームをレンダリングするＧＰＵの一部であり得る、またはＧＰＵの外部であり得る、映像送信機によって発生する映像信号は、ＲＧＢでピクセルを輸送してもよいが、何か（送信機など）がＲＧＢをその他のフォーマットに変換する必要がある場合は、ＹＣｒＣｂ（デジタル映像）またはＹＰｂＰｒ（アナログ映像）などのその他の色空間モデルでもそれを行うことができる。
【００４０】
ＧＰＵがレンダリングを完了すると、ＧＰＵは、「フレームをスキャンアウト」してもよい。これは、シリアル接続（例えば、ＨＤＭＩ、ＤＶＩなど）上で、ピクセル単位でフレームを送信するプロセスである。スキャンアウトプロセスは、出力フレーム３００などの出力フレームの外部信号の発生を伴ってもよく、かつ、スキャンアウトプロセスは、「映像送信機」がＧＰＵの内部または外部のいずれかにあるかどうかの他、映像接続の種類に部分的に依存し得る。一般に、ＧＰＵは、フレームをスキャンアウトする際に、ピクセルデータ値の外部の信号を含む複数の信号を発生させてもよい。フレームをスキャンアウト時の信号は、以下の信号を含み得る。
・ピクセルクロック信号
・データ有効化信号
・水平同期（ｈｓｙｎｃ）信号
・垂直同期（ｖｓｙｎｃ）信号
・アクティブピクセルに対して色空間成分（例えば、ＲＧＢ、２４ビット幅、色空間成分あたり８ビットを有する）を伝達するデータバス信号
【００４１】
レンダリングされたフレームのスキャンアウト中、ＧＰＵは、完了したフレーム画像を保持するバッファ（例えば、フレームバッファ）からピクセルを読み出してもよい。例えば、ＧＰＵが現在、ラインの最初のピクセルにあるとする。所与のラインについて、ＧＰＵは、データバス信号上の新しいピクセルをピクセルクロック信号の各「ティック」に配置する。また、ＧＰＵは、そのピクセルに対応するデータ有効化信号上に「高レベル」を出力する。
【００４２】
ラインの最後に、水平ブランキング期間（ＨＴＯＴＡＬ−ＨＤＩＳＰＬＡＹピクセル、またはピクセルクロックパルス）がある。ブランキング期間中、いくつかの信号が変化する。最初に、次のラインに遷移を通知するために、ｈｓｙｎｃライン上でパルスが発生してもよい。「データ有効化」信号が低くなるが、これは、現在データバス信号にある任意のデータがピクセルとして解釈されるべきではないことを意味する（これらのピクセルは、ラインの最後では、不可視ピクセルである）。
【００４３】
このプロセスは、フレーム画像の最後までライン単位で続いてもよい。フレームの最後で、ｖｓｙｎｃライン上にパルスが発生する。フレームの最後にあるいずれの「不可視ライン」に対しても、データ有効化ラインも低い。
【００４４】
一般的に、データ有効化信号が低い場合は常に、ピクセルは、「不可視」であり、ピクセルデータ値は、画像のディスプレイ領域に対応する必要な色空間値を含まない。常にアクティブピクセルクロックがあるため、基本的に、「不可視ピクセル」が、データバス上に生成される。水平及び垂直同期信号は、ピクセルデータ外に記憶されることに留意したい。
【００４５】
シリアルインターフェース上で、出力フレーム３００で構成される、像信号などを伝送するプロセスは、映像技術に依存し得る。従来のＶＧＡの場合、ピクセルデータ信号及びフレームに関連付けられた外部信号を含む、記載した信号は、実際、モニターによって直接使用される。外部信号は、ＶＧＡに直接使用されるタイミング信号を含んでいてもよい。ピクセルデータ信号は、各色成分が、例えば、赤信号チャンネル、緑信号チャンネル、及び青信号チャンネルなど、自身のチャンネルを有するアナログ信号であってもよい。デジタル／アナログ変換器（ＤＡＣ）は、デジタルデータバス信号（記載したチャンネルあたり８ビットを有する２４ビットから）からアナログピクセル信号を発生させてもよい。ＤＶＩ、ＨＤＭＩ、またはＤｉｓｐｌａｙＰｏｒｔなどのその他の技術の場合、送信機は、上述の信号を受信し、その信号をその技術に適した信号に変換してもよい。ＨＤＭＩの場合、ＨＤＭＩ送信機は、３つのＴＭＤＳデータチャンネル（ＴＸ０〜ＴＸ２）及びＴＭＤＳクロックを有し、そこで、ＨＤＭＩ送信機は、すべての信号を（ｈｓｙｎｃ信号、ｖｓｙｎｃ信号、ピクセルデータ信号）を埋め込み、ＴＭＤＳクロックは、何らかの方法でピクセルクロック信号を含む。「シンク」内のケーブルの他端にあるＨＤＭＩ受信機は、入力としてこれらの信号を有するが、ｈｓｙｎｃ、ｖｓｙｎｃ、データ及びその他の信号を再変換する。これは、ＤＶＩまたはＤｉｓｐｌａｙＰｏｒｔなどのその他の映像規格の場合でも同様である。
【００４６】
映像送信機がＧＰＵの内部にある場合、スキャンアウトロジックは、記載した信号上で動作してもよいが、スキャンアウトロジックはまた、ＨＤＭＩなどを直接出力して、これらの他の信号に対する中間段階をバイパスしてもよい。
【００４７】
出力フレームについて、各ピクセルに関連付けられたピクセルデータ値及び他の信号は通常、ライン単位で出力され、各ラインは、複数のピクセルを含み、各フレームは、複数のラインを含む。通常、これらのラインは、水平に配向され、水平ライン内のピクセルは、シリアル転送などで、映像源からディスプレイデバイスまたは映像シンクデバイスに、映像通信インターフェースを通じて左から右に順に転送されてもよい。同様に、水平ラインは、フレームの最後に到達するまでに上から下に順に出力され得る。よって、可視ピクセル３０１及び不可視ピクセル３０３の両方を含む、フレーム３００内のすべてのピクセルは、転送のための定義された順序を有していてもよい。
【００４８】
図３Ｂの例示的な出力フレーム３００において、フレームの各ラインは、出力フレームの総水平解像度を画定し得るピクセルの総数ＨＴＯＴＡＬを有する水平ラインである。同様に、例示的な出力フレーム３００は、フレームの総垂直解像度を定義し得る、ラインの総数ＶＴＯＴＡＬを有する。したがって、総水平及び垂直解像度は、可視ピクセル及び不可視ピクセルの両方を含む。
【００４９】
フレームのアクティブディスプレイ領域３０１は、フレームの垂直ディスプレイ解像度を画定する複数のアクティブラインＶＤＩＳＰＬＡＹを含んでいてもよく、各アクティブラインは、フレームの水平ディスプレイ解像度を画定する複数のアクティブラインＨＤＩＳＰＬＡＹを含んでいてもよい。アクティブディスプレイ領域３０１は、上述のように、ＧＰＵによってレンダリングされ、フレームバッファに出力されるフレームに対応してもよい。
【００５０】
出力フレーム３００の総解像度（例えば、ＨＴＯＴＡＬ×ＶＴＯＴＡＬ）は、上述のように、例えば、フレームのアクティブディスプレイ領域がフレームバッファにレンダリングされた後に、フレームのスキャンアウト中に生成され得る、フレーム内の同期領域３０３の存在によって、出力フレームのディスプレイ解像度（例えば、ＨＤＩＳＰＬＡＹ×ＶＤＩＳＰＬＡＹ）よりも大きくてもよい。具体的には、アクティブディスプレイ領域は、フレームバッファから読み取られたピクセルに対応し、一方で、同期領域は、上述のように、例えば、フレームのスキャンアウトについて、外部信号の追加によって生成されたピクセルを指す。同期領域３０３は、水平ブランキング領域に対応する各ラインの最後にある複数の不可視ピクセルと、垂直ブランキング領域に対応する各フレームの最後にある複数の不可視ピクセルを含み得る。一般的に、ブランキング領域の同期信号は、映像源とディスプレイ間で映像ストリームを同期させるのに提供されてもよく、ＨＳＹＮＣ信号は一般に、フレーム内の各ライン間の遷移を示し、ＶＳＹＮＣ信号は一般に、映像ストリームを構成するフレームのシーケンス内の各フレーム間の遷移を示す。ＨＳＹＮＣ及びＶＳＹＮＣ信号は、「ピクセルデータ」の一部ではない外部信号であるが、ＧＰＵは常に、ピクセルクロック上でピクセルデータ及び同期信号を出力するので、ＨＳＹＮＣ及びＶＳＹＮＣライン状のパルスがアクティブである期間中、ピクセルデータ内の「不可視ピクセル」になる。ＨＤＭＩの場合、ＨＳＹＮＣ及びＶＳＹＮＣは、ピクセルデータ内で実際に輸送される。次に、ＨＤＭＩケーブル上での輸送の後、ＨＤＭＩ受信機は、信号を再度分ける。
【００５１】
図３Ｂの例に見られるように、フレーム３００内のピクセルを、例えばピクセルごとに順に転送すると、ＨＳＹＮＣ領域に対応するピクセル３０５が各ラインの最後で転送されるようになり、ＶＳＹＮＣ領域に対応するピクセル３０７がフレーム３００の最後で転送されるようになる。水平同期信号は、対応する水平前ポーチ及び水平後ポーチ（それぞれ、ＨＳＹＮＣパルス３０５の前後の空白の領域として、図に示す）を有する、ＨＳＹＮＣパルス３０５を含んでいてもよく、垂直同期信号は、対応する垂直前ポーチ及び垂直後ポーチ（それぞれ、ＶＳＹＮＣパルス３０７の前後の空白の領域として、図に示す）を有する、ＶＳＹＮＣパルス３０７を含んでいてもよく、かつ、これらのピクセルは、出力フレーム３００の同期領域３０３を集合的に構成してもよい。
【００５２】
図３Ｂの例を参照すると、映像信号は、出力フレーム３００に類似した複数の映像フレームで構成されてもよく、出力フレームは、ＨＤＭＩ、ＤＶＩ、ＶＧＡなどの映像インターフェースを通じて、映像源から映像デバイス、映像キャプチャデバイス、または他の映像シンクデバイスに転送されてもよい。一般的に、ディスプレイハードウェアのリフレッシュレート（例えば、ＶＲｅｆｒｅｓｈ）は、映像ストリームの出力のフレームレート（例えば、毎秒のフレーム数）に対応する必要がある。その結果、映像ストリーム内のピクセルの転送速度がディスプレイと同期し、ディスプレイのフレッシュレートに遅れないようにするために、映像源及びディスプレイデバイス間のインターフェースを通じたピクセルの転送のタイミングを同期させる必要がある。
【００５３】
通常、映像転送ハードウェアに埋め込まれた電子機器またはその他の構成要素によって発生する外部信号であり得る、かつ、上述のように、フレームのスキャンアウトに関連して発生する外部信号であり得る、ピクセルクロックは、映像源と映像シンク間の各ピクセルの転送のタイミングを決定する。一般的に、ピクセルクロックは、各フレーム内のピクセルの総数が、ディスプレイデバイスのリフレッシュレートと同期している速度で映像源から転送されるように、ピクセルの転送のタイミングを制御する。ピクセルが連続して順に転送されるシリアルインターフェースの場合、ピクセルクロックは、以下のように、各ライン内のピクセルの総数、各フレーム内のピクセルの総数、及び垂直リフレッシュレートとの積として数学的に表現され得る。
ピクセルクロック＝ＨＴＯＴＡＬ＊ＶＴＯＴＡＬ＊ＶＲｅｆｒｅｓｈ
【００５４】
標準的な映像インターフェースは通常、それぞれ各フレームに対するピクセルの総数が異なる、７２０ｐ（１２８０×７２０）、１０８０ｐ（１９２０×１０８０）などの種々のディスプレイ解像度（ＨＤＩＳＰＬＡＹ×ＶＤＩＳＰＬＡＹなど）に対応している。映像転送ハードウェアに埋め込まれたピクセルクロック発生器は、例えば、各フレームのリフレッシュレート及解像度に基づいて、上述の数式に類似した公式に基づいて、所与の映像解像度及び／またはフレームレートを発生させるように構成されてもよい。
【００５５】
ピクセルクロックの上限は、関連する電子機器及び構成要素の実用上の考慮すべき点及び技術的要件、ならびにピクセルクロックが正確に保守され得る周波数に対する実用限界によって制限され得る。例えば、ディスプレイ製造業者は通常、ピクセルクロックが高くなるほど、電子機器及び構成要素の設計及び費用がより複雑になるため、できる限りピクセルクロックを低く抑えたいと思っている。その結果、図３Ｂを参照すると、垂直同期信号には、わずかな数のラインだけが必要なため、フレーム内のアクティブラインの数（ＶＤＩＳＰＬＡＹ）及びラインの総数（ＶＴＯＴＡＬ）は通常、近い値になり、必要以上のラインを用いることは望ましくないということが一般通例になっている。
【００５６】
本開示の種々の実施形態は、各出力フレーム内の可視ピクセルデータ及び／または同期信号を包含する必要がある以上に、フレーム内の、ピクセル、つまりピクセルクロックのティックの総数を人為的に増やすことで、出力映像フレームを転送する時間を短縮する技術をとり入れることができる。その結果、ピクセルクロックレートが増え、より多いピクセルが出力されて、出力フレームのアクティブ領域内に可視映像フレーム画像を埋め込む必要な可視ピクセルがより少ない時間で転送されるようにし得る。いくつかの実施形態では、これは、各フレームの列の最後のライン数を増やすか、あるいは、別様にピクセルの総数がソースフレーム画像よりも大きいフレームフォーマット内で出力フレームを入れることによってなされてもよい。
【００５７】
例として、またそれに制限されることなく、例えば、図３Ｂに示す例となる出力映像フレーム３００について、リフレッシュレート（ＶＲｅｆｒｅｓｈ）を６０Ｈｚと仮定すると、例えば、フレーム内のラインの総数に対するアクティブディスプレイ領域の比率に基づいて、出力フレームの可視ピクセルはすべてＶＤＩＳＰＬＡＹ／ＶＴＯＴＡＬ＊１／６０Ｈｚ毎に出力されることとなる。ＶＤＩＳＰＬＡＹ及びＶＴＯＴＡＬの値が近いと、フレーム内に画像３０１を出力する時間は、おおよそ約１／６０Ｈｚとなり、これは、１６．７ｍｓに対応する。本開示の種々の実施形態に従って、フレームの可視映像ラインを出力するこの時間は、ＶＴＯＴＡＬをＶＤＩＳＰＬＡＹよりも大幅に大きくすることによって短縮され得る。したがって、上述の同じ６０Ｈｚ垂直リフレッシュレートの場合、ＶＴＯＴＡＬがＶＤＩＳＰＬＡＹの２倍であれば、フレーム内のラインの総数は、フレーム内の可視／アクティブラインの数の２倍になり、ＶＤＩＳＰＬＡＹ／ＶＴＯＴＡＬ＝０．５＊１６．７の後に、フレーム内の必要な画像が転送されるので、転送時間は、８．３ｍｓとなる。ＶＤＩＳＰＬＡＹ／ＶＴＯＴＡＬは、例えば、何らかの方法でフレームにラインを追加することによって小さくされ得る
【００５８】
図４Ａ及び４Ｂは、本開示の種々の実施形態に応じて映像フレームを生成及びキャプチャする例示的なハードウェア／ソフトウェアアーキテクチャの概要を示す。具体的には、図４Ａ及び４Ｂの例示的なシステムは、図３Ａに示すものに類似した、ストリーミングサーバ及び端末システム設定を使用したストリーミングビデオゲーム及びその他のアプリケーションのためのシステムであってもよい。図４Ａは、本開示の種々の実施形態に従った例示的な映像源のためのアーキテクチャを示し、図４Ｂは、本開示の種々の実施形態に従った映像源から映像をキャプチャするための例示的な映像キャプチャシステムのためのアーキテクチャを示す。いくつかの実施形態では、映像源４１２は、クラウドストリーミングのためのアプリケーションを実行するように構成される、図３Ａに類似した端末システムであってもよく、既存の埋め込みシステム、ビデオゲーム機、または専用アーキテクチャを有するその他の計算デバイスであってもよい。いくつかの実施形態では、映像キャプチャシステム４０２（映像シンク）は、例えば、図２に示すような、端末システムからクライアントデバイスに映像出力をキャプチャ及びストリーム配信するように構成されたストリーミングサーバであってもよい。しかしながら、図４Ａ及び４Ｂの例示されたアーキテクチャは、単に例として提供されており、本開示の種々の実施形態が、その他のアーキテクチャを使用して、かつ、クラウドゲーミング及びクラウドコンピューティングアプリケーションを越えた他の文脈で、映像転送時間を短縮することを伴ってもよいことが強調される。
【００５９】
図４Ａを参照すると、例示的な映像源は、映像キャプチャシステム４０２によってキャプチャされる映像出力を伴い得るアプリケーション４０８を実行するように構成された端末システム４１２であってもよい。例として、またそれに制限されることなく、アプリケーションは、ネットワーク上での送信のためにストリーミングサーバ４０２に転送され得る映像出力として、レンダリングされたグラフィックスを有するビデオゲームであってもよい。具体的には、端末システムは、グラフィックスメモリ４４９と共に、映像フレームに対する画像のシーケンスとして、アプリケーション出力４０８をレンダリングするように構成されてもよい、グラフィックス処理装置（ＧＰＵ）４５０を含んでいてもよい。この画像は、ディスプレイデバイス上での表示のために、各フレームの画像に対するピクセルデータを含む可視ピクセルを有する画像フレームのシーケンスとして出力されてもよく、映像フレーム画像は、可視ピクセル及び不可視ピクセルの両方を有する出力フレームとして、ＨＤＭＩなどの映像インターフェースを通じて映像キャプチャシステム４０２に送信されてもよい。しかしながら、映像キャプチャプロセスに起因する遅延を短縮するために、映像源は、拡大された出力フレームが映像インターフェースを通じて送信されるように、余分なピクセルを追加するように構成されてもよい。余分なピクセルが、どのように出力フレームに追加されるかのさらなる例を、以下に記載する。
【００６０】
映像信号の出力に対応するために、映像源４１２は、映像フレーム画像のシーケンスとしてアプリケーション映像信号をレンダリングするためにＧＰＵ４５０とやり取りするように構成されたグラフィックスドライバ４５２を含んでいてもよい。具体的には、ＧＰＵ４５０は、アプリケーション４０８に従って映像信号出力に対して映像フレーム画像を生成してもよく、グラフィックスドライバ４５２は、ＧＰＵ４５０と連携して、例えば、７２０ｐの特定のディスプレイ画像解像度に対応しているソース映像フォーマットで映像フレーム画像をレンダリングしてもよい。ＧＰＵ４５０は、グラフィックスドライバ４５２と共に、複数の可視画像ラインを有するフォーマットで映像フレーム画像をレンダリングしてもよく、各可視画像ラインは、複数の可視画像ピクセルを有する。ある特定の実施形態では、グラフィックスドライバ４５２は、例えば、映像フレーム画像内のピクセル数よりも解像度が大きい拡大されたフレーム内のフレームをレンダリングすることによって、ＧＰＵによってレンダリングされたフレーム画像ピクセルの他に、余分なピクセルを追加するように構成されてもよい。拡大されたフレーム内でレンダリングすることによってフレームを拡大するさらなる例を以下に示す。
【００６１】
より具体的には、映像源４１２は、ＧＰＵ４５０に動作可能に連結されてもよいフレームバッファ４５１及びスキャンアウト装置４５３を含んでいてもよく、ある特定の実施形態では、ＧＰＵ４５０に埋め込まれてもよい。ＧＰＵ４５０は、例えば、アプリケーション４０８の出力に基づいて、フレームバッファ４５１に映像画像をレンダリングするように構成されてもよく、スキャンアウト装置４５３は、例えば、上述のように、フレームバッファ４５１からフレーム画像を読み込み、インターフェース上で出力フレームとして画像を送信する追加の外部信号を発生させるように構成されてもよい。
【００６２】
具体的には、スキャンアウト装置４５３は、フレームからのスキャンアウトのピクセルクロック信号を発生させるピクセルクロック発生器４４１及び／または、例えば、それぞれ出力フレームを有するｈｓｙｎｃ及びｖｓｙｎｃ信号などの同期信号を発生させる同期信号発生器４３１を含んでいてもよい。例えば、同期信号発生器４３１は、フレームの各ラインの最後に水平ブランキング領域を有し、フレームの各ラインの最後の複数の不可視ピクセルに対応するｈｓｙｎｃ信号を追加してもよい。信号発生器４３１はまた、各フレームの最後に垂直ブランキング領域を有し、フレームの最後の複数の不可視ピクセルに対応するｖｓｙｎｃ信号も追加してもよい。ピクセルクロック発生器４４１は、フレームバッファ４５１から読み出されたアクティブピクセルの総数及びアクティブピクセル間に挿入された同期領域に対応するピクセルの総数を含む、映像インターフェース上での転送のために生成される出力フレーム内の各ピクセルに関連付けられたパルスを有するクロック信号を発生させてもよい。ピクセルクロック発生器４４１及び／または同期信号発生器４３１は、スキャンアウト装置４５３の一部として含まれてもよく、スキャンアウト装置４５３は、ＧＰＵ４５０の一部として含まれてもよいことに留意されたい。しかしながら、これは、例示的実施例に過ぎず、１つ以上の構成要素は、個々の構成要素として実施されてもよいことが強調される。
【００６３】
映像源は、映像通信インターフェースに連結された映像送信機４５６を含んでいてもよく、送信機は、例えば、ピクセル単位で順に、シリアル通信インターフェースを通じて映像キャプチャシステム４０２に映像信号を転送してもよく、同期信号は、それに応じて、ラインとフレーム間の遷移を示す。ピクセルクロック発生器４４１は、上述のように、例えば、ピクセルの総数及び映像内容のフレームレートに基づいて、各ピクセルのタイミングを同期させるためのクロック信号を発生させてもよい。ある特定の実施形態では、ピクセルクロック発生器４４１は、各画像内のアクティブディスプレイ領域内に含まれる余分なピクセル、同期領域に含まれる余分なピクセル、またはそれらの両方に基づいて、各ピクセル内での転送周波数を上げるピクセルクロックを発生させてもよい。任意で、映像ビデオインターフェースはまた、ＨＤＭＩインターフェースなどのように音声転送に対応してもよく、アプリケーションからの映像信号出力もまた、映像インターフェースを通じて送信されてもよい。代替の実施形態では、別個の音声インターフェースが使用されてもよい。
【００６４】
映像源は、計算システム４０２に連結された映像キャプチャデバイス４２０に出力映像信号を送信するように構成されてもよい。キャプチャデバイスは、デジタル形式でキャプチャされ、ストリーミングサーバ４０２によって圧縮されるように、転送された映像信号内に含まれる映像ピクセルデータを受信してもよい。ストリーミングサーバ４０２は、映像キャプチャプロセス４３４及び／または映像キャプチャデバイスから受信した各映像フレームを圧縮するように構成されてもよいエンコーダを含んでいてもよい。ストリーミングサーバプロセス４４６が、圧縮された映像ストリームがリモートディスプレイデバイス上で解凍され、表示されるように、離れた場所にあるデバイスに圧縮された映像ストリームを送信するように構成されてもよい。
【００６５】
ある特定の実施形態では、映像キャプチャデバイスは、本開示の種々の態様に従って、拡大されたフレーム内に含まれる映像フレーム画像の可視ピクセルのみをキャプチャするように特別に構成される映像キャプチャロジック４２８を含んでいてもよい。例えば、ある特定の実施形態では、映像源のグラフィックスレンダリング構成要素は、特定のフォーマットのアクティブディスプレイ領域の一部のみに可視画像ピクセルを挿入するように構成されてもよく、映像キャプチャデバイス４２０は、ディスプレイ画像のキャプチャが完了する時点を知るために受信される各フレーム内のライン及び／またはピクセルをカウントするように構成されてもよい。これは、フレームが映像源によってどのようにレンダリングされるかの所定の構成に基づいてもよい。あるいは、映像キャプチャデバイス４２０は、フレームが同期ラインを追加することによって拡大される実施形態において、例えば、ｖｓｙｎｃ信号などの同期信号の存在に基づいてキャプチャが完了したことを判定してもよい。ストリーミングサーバ４０２または他の計算デバイスは、各フレーム内の可視ディスプレイ画像のキャプチャの完了次第直ちに映像フレームの圧縮を開始するように構成されてもよい。
【００６６】
キャプチャデバイスは、映像源４１２からの映像信号出力と互換性のある通信インターフェースを通じて映像信号を受信してもよく、映像インターフェースは、映像受信機４３０に連結されてもよい。例として、またそれに制限されることなく、図５を参照して以下に説明されるように、映像キャプチャデバイスは、ＨＤＭＩポートまたはその他のポートとして、映像及び／または映像通信インターフェースの一部として１つ以上のポートを含んでいてもよい。
【００６７】
インターフェースデバイス４０２は、映像信号インターフェースに動作可能に連結されたロジック４２８を含む専用処理装置を含んでいてもよく、専用処理装置は、端末システム４０２からのコネクタを通じて受信した信号について、Ａ／Ｖキャプチャに関連付けられた機能、及び任意でクラウドストリーミングに関連付けられた他の機能を実行するためだけのロジック４２８を有する。ロジック４２８はまた、追加の通信インターフェースを通じてホストシステム４０２との通信に対応してもよく、追加の通信インターフェースは、ホストシステムに埋め込まれたＡ／Ｖプロセスとやり取りするために、ホストシステム４０２の周辺機器用バスと通信してもよい。例として、またそれに制限されることなく、インターフェースデバイス４２０は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）、ＰＣＩ−ｅＸｔｅｎｄｅｄ（ＰＣＩ−Ｘ）、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、または、例えば、周辺バスを介して、ホストシステム４０２との通信を促進する別のインターフェースなどの、拡張インターフェースを通じてホストシステム４０２のメモリ／ＣＰＵと通信するアドオンカードであってもよい。ホストシステムは、インターフェースデバイス４２０を介した信号の交換に対応するための、キャプチャデバイスドライバ４２６を含んでいてもよい。
【００６８】
ある特定の実施形態では、専用処理装置は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、または本明細書で説明される原理に従って構成されるロジックの専用装置を有する別の専用処理装置であってもよい。専用処理装置のロジック装置４２８は、記憶プロセス４３２と連携する記憶仮想化など、端末システム４０２上で動作する、アプリケーション４０８からの出力の音声／映像キャプチャに加え、クラウドストリーミングに対して、種々の機能に対応する専用のロジックも含んでいてもよい。
【００６９】
図４Ａ〜４Ｂに示す例では、専用処理装置のロジック４２８に埋め込まれたＡ／Ｖキャプチャデバイスは、ホストシステム４０２内のキャプチャデバイスドライバ４２６及び、例えば、中央処理装置４０４上で実施されるソフトウェアアプリケーションなど、ホストシステム４０２に埋め込まれたＡ／Ｖプロセス４３２と通信してもよい。例えば、端末システム４１２が映像キャプチャデバイスに映像ピクセルを送信する場合、この映像データは、グラフィックスドライバ４５２、ロジック４２８に含まれる映像キャプチャ装置、キャプチャデバイスドライバ４２６を通じて、ホストシステムに埋め込まれたＡ／Ｖプロセス４３２に到達し得る。Ａ／Ｖプロセス４３２は、次に、キャプチャされた映像フレームを圧縮してもよく、圧縮は、余分なピクセルによって生じるピクセルクロックの増加に従ってすぐに始まり得る。ある特定の実施形態では、映像シンク４０２は、任意に、端末システム４１２上で動作するアプリケーション４０８からの映像出力のストリームをネットワーク上で送信するよう適合されたストリーミングサーバであってもよい。例えば、ストリーミングサーバ４０２は、イーサネット（登録商標）アダプタまたはその他のネットワークアダプタ４３６、及びホスト４０２のオペレーティングシステムのための対応するイーサネットドライバまたはその他のネットワークドライバ４３８を、ネットワーク通信のプロトコルサポートを提供する互換性のあるネットワークライブラリ４３９と共に含んでいてもよい。ホストシステムはまた、対応するメモリドライバ４４２（例えば、ｔｍｐｆｓ）によって制御され、ファイルシステムライブラリ４４４が対応しているシステムメモリ４４０も含んでいてもよい。ストリーミングサーバプロセス４４６は、ネットワーク上で接続されたクライアントデバイス（図４Ａ〜４Ｂには図示せず）へのリアルタイムのストリーム配信に関連付けられた機能を実行するために、ホストシステム４０２上で実行されてもよい。
【００７０】
端末システム４１２は、例えば、既存の埋め込みプラットフォームのために設計されたビデオゲームソフトウェアなどであってもよい、アプリケーション４０８に対応する種々の他の構成要素を含んでいてもよい。端末システム４１２は、記憶装置、ならびにグラフィックス記憶装置アクセスに対応するための種々の構成要素にアクセスするファイルシステム層４２７を含んでいてもよい。いくつかの実施形態では、システム及びキャプチャデバイス４２０は、記憶仮想化技術を実施するように構成されてもよく、この詳細は、Ｒｏｅｌｏｆ  Ｒｏｄｅｒｉｃｋ  Ｃｏｌｅｎｂｒａｎｄｅｒに譲渡された、２０１３年１２月１９日出願の同時係属米国特許出願第１４／１３５，２１３号、表題「ＭＡＳＳ  ＳＴＯＲＡＧＥ  ＶＩＲＴＵＡＬＩＺＡＴＩＯＮ  ＦＯＲ  ＣＬＯＵＤ  ＣＯＭＰＵＴＩＮＧ」（米国代理人整理番号ＳＣＥＡ１３０３１ＵＳ００）に記載されており、その内容全体が参照により本明細書に組み込まれる。
【００７１】
図５を参照すると、インターフェースカード４２０上で実施され得る例示的なキャプチャデバイス５２０、その上の一部の構成要素、及び例示的な専用処理装置５６０の内部の概略図が、本開示の種々の実施形態に従って示される。例として、またそれに制限されることなく、キャプチャデバイス５２０は、プリント基板（ＰＣＢ）に取り付けられた構成要素を有するアドオンカードとして構成されてもよく、キャプチャカード５２０は、周辺拡張ポートまたは接続時にホストシステムの周辺バスとの通信を許可するその他の拡張通信インターフェースなどの、ホストハードウェアインターフェース５６２を通じて、ホストシステムの周辺バスとやり取りしてもよい。図５の例示的なキャプチャデバイス５２０は、映像キャプチャには必要はないが、クラウドコンピューティング及びその他の実施形態に対して、追加の機能を提供し得る、種々の任意の構成要素を含むことに留意されたい。
【００７２】
例示的な専用処理装置５６０は、本開示の種々の態様に応じた専用機能のためだけの種々のロジックブロックを含んでいてもよい。専用処理装置は、例えば、ＦＰＧＡ、ＡＳＩＣ、または類似の専用処理装置として実施されてもよい。専用処理装置５６０は、キャプチャデバイス５６０に対して（図５には図示せず）、インターフェースカード５２０とホストシステムの周辺バス間の通信インターフェースに対するプロトコルスタックの一部を実施するホストインターフェースブロック５６４を含んでいてもよい。
【００７３】
ＰＣＩ−Ｅｘｐｒｅｓｓなどの通信バスは、幾つかの層を有するプロトコルスタックとして考えられてもよい。通信プロトコルによって、層は異なる。通常、上部に「アプリケーション層」があり、その次に、中間に伝送関連層があり、下部に物理層がある。ホストインターフェースブロック５６４は、このようなプロトコルスタックのすべての層を実施する必要はない。代わりに、ホストインターフェースブロックは、例えば、電気的または光学的信号を通じて、通信リンク上にデジタル情報を与える物理層を担ってもよい。ホストインターフェースブロックはまた、プロトコルスタックの「伝送層」の一部またはおそらくはすべてに関与してもよいが、アプリケーション層に関与しなくてもよい。
【００７４】
例として、またそれに制限されることなく、ホストインターフェースブロック５６４は、ＰＣＩ−Ｅｘｐｒｅｓｓ接続を通じた通信のためのハードＰＣＩｅブロックであってもよく、ＰＣＩｅインターフェースまたはホストシステムのローカルバスにアクセスするための他のインターフェースを埋め込む。ホストインターフェースブロック５６４は、専用処理装置５６０のその他のロジック装置と共に、例えば、ホストシステムへの要求の割り込みを使用して、ホストハードウェアインターフェース５６２を通じて、ホストシステムのシステムメモリに直接アクセスしてもよい、メモリアクセスインターフェース装置５６６に統合されてもよい。
【００７５】
いくつかの実施形態では、メモリアクセスインターフェース５６６は、メモリアクセス及び割り込み機能を提供する構成要素を含んでいてもよい。具体的には、ホストインターフェースブロック５６４は、メモリにマッピングされた入出力（Ｉ／Ｏ）を使用して、ホストシステムから任意のオンチップデバイスをアクセス可能にするように、オンチップ相互接続５７２とホストハードウェアインターフェース５６２間の接続を提供するように構成されてもよい。この機能によって、ホストシステムは、大容量記憶装置コントローラ５７０、メモリコントローラ５７６、またはＧＰＩＯ５８２などのオンチップ相互接続５７２に接続された任意のデバイスをプログラムできる。
【００７６】
メモリアクセスインターフェース５６６はまた、例えば、例えば、Ａ／Ｖキャプチャ装置５７８などの任意の接続デバイスに、イベント時（例えば、キャプチャされた映像フレームの完了時）に割り込みを発生させるようにする、割り込み接続５６５も含んでいてもよい。ホストハードウェアインターフェースハードウェア５６２とやり取りをするデバイスが１つしかない場合に、メモリアクセスインターフェースがこの機能を提供することが望ましい。
【００７７】
メモリアクセスインターフェース５６６はまた（任意で）、直接メモリアクセス（ＤＭＡ）エンジン５６７も含んでいてもよい。本明細書で使用される場合、及び一般的に当業者に理解されるように、直接メモリアクセス（ＤＭＡ）という用語は、コンピュータの中央処理装置（ＣＰＵ）から独立して、コンピュータ内の特定のハードウェアサブシステムがシステムメモリにアクセスできるようにする機能を指す。ＤＭＡエンジン５６７は、ホストインターフェースブロック５６４及びホストハードウェアインターフェース５６２の間でのデータ移動動作を実施してもよい。いくつかの実施形態では、メモリアクセスインターフェース装置５６６は、ホストインターフェースブロック５６４をオンチップ相互接続５７２に接続することなど、ホストインターフェースブロック５６４によって提供されないプロトコルスタック（例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ）の一部を実施してもよい。
【００７８】
映像キャプチャのための機能のために、キャプチャデバイス５２０は、１つ以上の映像及び任意の音声／映像通信インターフェース５８０を含んでいてもよく、それらは、１つ以上のＨＤＭＩポート５７１及び／またはコネクタ、またはその他の映像信号通信インターフェースの形で実施されてもよく、キャプチャデバイス５２０の回路基板に取り付けられてもよい。例として、またそれに制限されることなく、インターフェースカード５２０は、２つの別個の映像源／端末システムへの接続を促進するために、２つのＨＤＭＩポートを含んでいてもよいが、信号キャプチャデバイス５２０が異なる数の映像源または端末システムを使用可能にするように、キャプチャデバイスが代わりに、異なる数の映像コネクタを含んでもよいことに留意されたい。映像信号コネクタ５８０それぞれに対して、特定の映像通信インターフェース（例えば、ＨＤＭＩ、ＤＶＩ、ＶＧＡなど）と互換性のある専用処理装置５６０に埋め込まれた対応する映像キャプチャ装置５７８があってもよい。
【００７９】
専用処理装置の１つ以上の映像キャプチャ装置５７８は、オンチップ相互接続５７２を通じて、映像キャプチャ装置５７８のそれぞれに、ホストシステムインターフェース構成要素（例えば、ＰＣＩ−Ｅｘｐｒｅｓｓ）へのアクセスを提供し得る、専用処理装置５６０のその他のロジック装置に接続されてもよい。オンチップ相互接続は、専用処理装置（例えば、ＦＰＧＡまたはＡＳＩＣ）上で機能ブロックを接続するように構成された標準のオンチップバスアーキテクチャに構成されてもよい。例えば、専用処理装置５６０がＦＰＧＡの場合、専用処理装置の構成要素は、例えば、ＡＸＩ４またはＡＸＩ−Ｌｉｔｅなどのアドバンスドマイクロコントローラバスアーキテクチャ（ＡＭＢＡ）などの、マスタースレーブアーキテクチャ、または別の適切なオンチップバスアーキテクチャを使用して、相互接続されてもよい。大きなデータの伝送にＡＸＩ４が使用されてもよく、低性能接続のために、または構成のために、ＡＸＩ−Ｌｉｔｅが使用されてもよい。専用処理装置ロジックブロックのオンチップ相互接続は、図５に示すように、マスタースレーブ構成に従って構成されてもよい。図示された概略図において、「Ｍ」及び対応する太線は、マスター接続を表し、「Ｓ」及び対応する点線は、スレーブ接続を表し、「Ｃｔｒｌ」は、制御を表す。
【００８０】
インターフェースデバイス５２０は、専用処理装置５６０のロジックに提供されたメモリコントローラ５７６によって制御され得る１つ以上の記憶装置５７４を含んでいてもよい。記憶装置は、例えば、大容量記憶仮想化などの端末システムによって発行されたデータ要求に従って、大容量記憶インターフェース５６８を通じて接続された端末システムとホストハードウェアインターフェース５６２を通じて接続されたホストシステム間でのデータ伝送に対応してもよい。例えば、記憶装置５７４は、本明細書に記載の原理に従って、ＤＤＲ３  ＲＡＭなどの一時ＲＡＭ装置または端末システムによって発行された読み取り要求によって要求されたデータを一時的に記憶するように構成されたその他の揮発性記憶装置であってもよい。メモリコントローラ５７６は、専用処理装置５６０のその他の論理装置から受信した信号に従って、記憶読み取り／書き込み動作を実行するオンチップバスアーキテクチャ５７２に接続されてもよい。
【００８１】
動作中、グラフィックスドライバ及び／または映像インターフェース５８０を通じて接続された映像源のスキャンアウト装置（図５には図示せず）は、キャプチャカード５２０によってキャプチャされる余分なピクセルを有する拡大された出力映像フレームを生成してもよい。出力映像フレーム受信時、映像キャプチャ装置５７８（複数可）は、各フレームの可視ディスプレイ画像がキャプチャされたタイミングを判定し、不要なデータを含むので、キャプチャから各フレーム内の余分なピクセルを除外して、これらの余分なピクセルを廃棄するように構成されてもよい。各フレームに対してキャプチャされた映像データは、さらなる処理、圧縮、及び／またはネットワーク上での伝送のために、ホストハードウェアインターフェース５６２を通じて割り込みを使用して、ホストシステム内の映像キャプチャプロセスに伝送されてもよい。圧縮は、フレーム内のすべての可視画像ピクセルを送信するために、各フレーム内のピクセルのより低い部分を送信する必要があるため、所定のフレームレートに対して、より速く始まってもよい。
【００８２】
１つ以上のＡ／Ｖキャプチャロジック装置５７８のそれぞれは、図５に示すように、対応するＡ／Ｖ受信機５３０に動作可能に連結され、Ａ／Ｖ受信機５３０それぞれは、次いでＨＤＭＩポート５７１または他のＡ／Ｖ接続ポートなどの、適切なＡ／Ｖハードウェアインターフェース５８０に接続されてもよいことに留意されたい。端末システムからのＡ／Ｖ出力は、互換性のあるＡ／Ｖコネクタを使用して、Ａ／Ｖインターフェース５８０を通じて、Ａ／Ｖ受信機５３０に接続されてもよい。Ａ／Ｖキャプチャ装置５７８は、ホストハードウェアインターフェース５６２を通じてホストシステム上のインターフェースデバイスドライバ及びＡ／Ｖプロセスと通信してもよく、ホストハードウェアインターフェース５６２は、ホストシステムバス（例えば、周辺バス）に接続されてもよく、ホストシステムは、次いでネットワーク上でクライアントデバイスにＡ／Ｖストリームを配信してもよい。
【００８３】
インターフェースデバイスは、任意で、クラウドゲーミングストリーミングなどの、端末システム上で実行されるストリーミングアプリケーションのための追加の機能を提供する、種々の他の構成要素を含んでいてもよい。例えば、専用処理装置５６０はまた、１つ以上の端末システムのための記憶デバイスをエミュレートするための１つ以上の大容量記憶デバイスコントローラ５７０も含んでいてもよい。インターフェースデバイス５８２はまた、追加の機能に対応するための１つ以上の汎用入出力（ＧＰＩＯ）ブロックも含んでいてもよい。例として、またそれに制限されることなく、ＧＰＩＯブロックはそれぞれ、端末システムの出力制御及び他の機能などの、追加の機能を提供する端末システムの対応する１つに接続されてもよい。
【００８４】
上述の通り、専用処理装置５６０は、本開示の種々の実施形態に従って、ＦＰＧＡ、ＡＳＩＣ、または、Ａ／Ｖキャプチャ、大容量記憶デバイスコントローラ、メモリコントローラ、ＤＭＡエンジンなどの特定の機能専用のブロックを有する他の集積回路などとして実施されてもよい。本開示のある特定の実施形態では、１つ以上のこれらの装置は、一般的に当技術分野においてＩＰブロックまたはＩＰコアと呼ばれる、再利用可能なロジック装置またはその他のチップ設計として提供されてもよい。
【００８５】
図６を参照すると、最初の図示された技術に従って、ソースフレームに余分なピクセルを追加する例が示される。具体的には、図６は、ソースフレームの最後に余分なライン６１１の形で追加された余分なピクセルを含む、例示的な拡大された映像フレーム６００を示す。余分なライン６１１は、実際、拡大され、修正された出力フレーム６００を作成するために、フレームの最後に追加されるダミーラインであってもよい。ダミーライン６１１は、フレームの最後を示す、１つ以上の同期信号６０７の組の後に追加されてもよい。図６の例において、ラインは、水平に配向され、かつ、フレームの下部は、一連のラインを構成するピクセルのシーケンスとして送信される際に、フレームの最後に対応する。
【００８６】
したがって、例示的な修正されたフレーム６００において、フレームの最後に追加される余分なピクセル６１１は、水平ラインの組としてフレームの下部に示され、アクティブ画像ライン６０１の後、及び通常、フレームの最後を示すＶＳＹＮＣ信号６０７の組の後に位置し得る。余分なピクセル６１１は、垂直同期に必要なものを越えて、修正フレーム６００の最後に垂直ブランキング領域を基本的に延長させることによって出力フレームに対して生成される同期領域に追加されてもよいことに留意されたい。
【００８７】
図６に示す最初の例示的な技術の１つの利点は、可視映像フレーム画像がフレームのアクティブ領域に一致し、垂直同期６０７の場所がフレーム内の画像の最後を示し続けるため、垂直同期６０７は、拡大されたフレーム６００内に含まれる可視画像６０１に対するカットオフを知るための、拡大されたフレーム６００を受信するデバイスによって依然として使用されてもよい。したがって、例えば、映像キャプチャデバイスがフレーム内で可視画像６０１をキャプチャするのに使用される場合、映像キャプチャデバイスは、ピクセルのシーケンス内の可視画像６０１の転送が、垂直同期信号６０７の存在に基づいて完了したかを容易に判定することができる。これは、例えば、フレーム内のピクセルの組全体が転送される前に、垂直同期領域６０７が転送中に到達するとすぐに、ディスプレイ画像６０１の圧縮を促進するのに有益であり得る。
【００８８】
図６の技術の別の利点は、広範なソフトウェアの変更または、元の映像ソースフレームをレンダリングする方法を変更することなく、それをなすことができ得るということである。例えば、図４に図示する端末システムを例として使用すると、ダミーラインは、フレームバッファからの可視画像ピクセルの読み込み後、同期領域内に余分なピクセルを生成し得る、通常、ハードウェア構成要素として埋め込まれる、スキャンアウト装置及び／または同期信号発生器によって生成されてもよい。これは、グラフィックスドライバへの変更、またはＧＰＵによってフレームバッファ内でピクセルデータがレンダリングされるディスプレイ解像度を変更することなくなされ得る。
【００８９】
フレームの最後の追加のラインの結果として、より高い水平周波数が、フレームの修正されていないバージョンと比較して、修正フレーム６００においてもたらされ得る。したがって、修正フレーム６００の同期転送を促進するため、より高い水平周波数を考慮し、互換性の問題を回避するために、ある特定の調整を行ってもよい。具体的には、より高い水平周波数に伴う１つの課題は、この周波数信号がソフトウェアから利用可能であり得ることである。ゲームの実施形態においてある種のゲームは、この水平周波数に基づき、内部ゲームタイミングのいくつかを決定し、したがって、タイミングに関して問題を有する可能性がある。ある特定の実施形態では、これらのゲームは、これらの問題に対応するよう修正されてもよく、または、オペレーティングシステムは、タイミングを偽るよう修正されてもよい。
【００９０】
図６の例示的な技術において、追加されたピクセル６１１は、アクティブ画像の圧縮のためにキャプチャする必要のある任意のデータを含まない不可視ピクセルであってもよいことに留意されたい。図６の修正されたフレーム６００と、類似しているが、修正されていない図３Ｂのソースフレーム３００間の比較から、フレーム内の総ラインに対するアクティブラインの比率（ＶＤＩＳＰＬＡＹ／ＶＴＯＴＡＬ）が、ダミーライン６１１を追加することによって大幅に減り、これによって、ピクセルクロックが増加し、フレーム内の可視ピクセル６０１を転送する時間が対応して減少し得ることが理解されよう。いくつかの実施形態では、出力フレーム内のラインの総数に対する出力フレーム内の可視画像ラインの数の比率は、０．２５〜０．７５の間である。さらなる実施形態では、出力フレーム内のラインの総数に対する出力フレーム内の可視画像ラインの数の比率は、０．４から０．６の間である。他のさらなる実施形態では、出力フレーム内のラインの総数に対する出力フレーム内の可視画像ラインの数の比率は、約０．５である。
【００９１】
具体的には、７２０ｐ（１２８０×７２０）解像度は通常、約１６５０の各ライン内のピクセルの総数（ＨＴＯＴＡＬ）及び約７５０の垂直ラインの総数（ＶＴＯＴＡＬ）を使用する。具体的には、この従来の例における可視ラインに対する総垂直ラインの比率は、７２０／７５０＝０．９６である。この数は、従来の例でそうであるように、１に近くなるべきであることが一般通例になっている。本開示の実施形態は、対照的に、フレーム内の可視ピクセルの転送を加速化させるため、１よりも遥かに低い比率を使用することができる。
【００９２】
この比率の下限、つまり、この例でのフレームに追加され得るダミーラインの最大数は、ハードウェアによって制限され得る。例えば、ＨＤＭＩ１．０に関して、制限は、１６５ＭＨｚであったが、１．３は、３４０ＭＨｚに移行した。本明細書の記載時における消費者ハードウェアの大半は、１６５ＭＨｚの制限を使用している。
【００９３】
したがって、例えば、１６５ＭＨｚの制限のあるハードウェアの場合、７２０ｐフレームをレンダリングするための総ラインの最大数は、１６５ＭＨｚ／（１６５０×６０）＝１６６６ラインとなり、７２０／１６６６＝０．４３の比率に対応する。使用される比率は、７２０が、７２０ｐフレームのこの例における可視ラインの数であるため、７５０ではなく、７２０であることに留意されたい。
【００９４】
さらなる例として、３４０ＭＨｚの制限を有するハードウェアの場合、出力フレーム内の総ラインに対する可視ラインの比率の下限は、約０．２であり得る。
【００９５】
ここで図７Ａ〜７Ｂを参照すると、映像出力フレームに余分なピクセルを追加するさらなる例を示す。図７Ａ〜７Ｂの実施例において、拡大されたフレーム７００ｂは、レンダリングされた映像フレーム画像内のピクセルの数よりも大きいディスプレイ解像度を有するフレームに映像フレーム画像をレンダリングし、例えば、不可視ピクセルなどの余分なピクセルでより大きい解像度の残りのピクセルを埋めることによって生成されてもよい。フレーム７００ａ、ｂのアクティブ画像領域のみが例示のためだけに図７Ａ〜７Ｂに示されていることに留意されたい。例えば、ＧＰＵ／グラフィックスドライバによって、これらのフレームがフレームバッファにレンダリングされた後、出力フレームは、図４Ａ〜４Ｂに示すように、例えば、スキャンアウト装置を使用して、本開示の種々の実施形態に従って、フレームバッファからフレームをスキャンアウトし、さらに、これらのフレームにピクセルクロック信号、及び／またはその他の外部信号を追加することによって形成されてもよい。
【００９６】
具体的には、図７Ａ〜７Ｂは、可視フレーム画像７００ａよりも高いディスプレイ解像度を有するより大きいフレームに元の映像フレーム画像７００ａを再度詰め込むことによって追加される、余分なピクセル７１３を有する拡大された映像フレーム７００ｂの例を示す。その結果、拡大された映像フレーム７００ｂ内のピクセルの総数は、可視映像フレーム画像内の可視画像ピクセル７０１の総数を超える。具体的には、フレーム７００ｂは、元の映像フレーム画像７００ａからの可視ピクセル７０１、ならびにより大きいフレームの残りを満たす、余分なピクセル７１３を含み得る。修正されたフレーム７００ｂ内の余分なピクセル７１３は基本的に、より高い解像度のフレームの未使用のピクセルであり得ることに留意されたい。
【００９７】
ソース映像フレームに余分なピクセルを追加するための、図７Ａ〜７Ｂの例示的なフレーム再詰め込み技術は、種々の方法で実施されてもよい。例えば、フレーム７００ａ及び７００ｂのそれぞれは、水平解像度及び垂直解像度の両方を有していてもよく、それらは各ライン内のアクティブピクセルの数及び各フレーム内のアクティブラインの数それぞれによって画定され得る。本開示の種々の実施形態に従って、より大きいフレーム７００ｂは、より大きい水平解像度、より大きい垂直解像度、またはそれらの両方を有し得る。
【００９８】
いくつかの実施形態では、ソースフレーム７００ａの各単一ラインは、図７Ａに示すように、より大きいフレーム７００ｂのラインのそれぞれに詰め込まれてもよい。例えば、拡大されたフレームが図７Ａに示すように、より大きい水平解像度を有する場合など、より大きいフレーム７００ｂがソース画像７００ａ内の各可視画像ライン内に可視画像ピクセル７０１がある場合よりも各ライン内に多くのアクティブピクセルを有する場合、この方法で、より大きいフレーム７００ｂの個々のラインにソースフレームのみを詰め込むと、基本的に、図７Ａに示すように、各ラインの最後でピクセルが無駄になる。具体的には、無駄になったピクセルは、映像フレームの可視映像ピクセル７０１ではない、各ラインの最後の余分なピクセル７１３が、ピクセルがライン単位で連続して転送される際に、フレーム内の可視画像７０１全体が転送される前に、フレームを出力する時に、各ラインの最後で転送される必要があることを意味する。しかしながら、この図７Ａの例示的な手法は、このような解決法を実施する実践的で、容易な方法であるために、各ラインの最後でピクセルが無駄になる可能性に関係なく、望ましい場合がある。さらに、可視画像ピクセル７０１のすべてが例えば、フレーム７００ｂ内の最後の可視ライン後にあるアクティブライン内の余分なピクセルなど、より大きいフレーム内の余分な、追加されたピクセル７１３の少なくとも一部の前にあり得るので、転送遅延が低減される。
【００９９】
図７Ａの例の代替として、より大きいフレーム７００ｂの各ラインは、図７Ｂに示すように、より高い解像度フレームの各ラインが納め得るピクセルの数に応じて、ソースフレーム７００ａの２つ以上のラインを含んでいてもよい。例として、またそれに制限されることなく、ソース映像フレーム７００ａが１２８０×７２０（７２０ｐ）の場合、より大きいフレーム７００ｂは、例えば、１９２０×１０８０（１０８０ｐ）であり得る。図７Ｂの手法を使用すると、１つの１０８０ｐラインは、７２０ｐライン１．５本（１０８０／７２０＝１．５）を納め得る。全体で、可視ピクセルがラインの最後に詰め込まれる際に、可視フレーム画像７０１を納めるのに、１０８０ｐフレームの７２０／１．５＝４８０ラインが必要になる。言い換えれば、例示的な６０Ｈｚリフレッシュレートを参照すると、ＨＤＭＩ転送時間は、４８０／１０８０＊１６．７ｍｓ＝７．４ｍｓであり得る。図７Ｂに示すような手法は、ある意味では、より高いディスプレイ解像度フレーム７００ｂの最初にある対応するラインにソースフレーム７００ａの各ラインを詰めるだけの、図７Ａの手法よりも実施がより複雑であり得るが、ピクセルをムダにすることなく、フレームの最初でラインを完全に利用できるという利点が加わり、それによって、修正されたフレーム７００ｂの最初で可視ピクセルをより効率的に詰める。その結果、可視ピクセル７０１を出力するための転送時間は、修正されたフレーム７００ｂ内の可視画像のより効率的な詰め込みにより、それでも、必要な拡大されたフレームのアクティブ領域のラインの数が少なくて済むため、よりよく最適化され得る。
【０１００】
ダミーラインが垂直同期領域の後に追加される、図６の例示的な拡大されたフレーム６００とは異なり、図７Ａ〜７Ｂのフレーム詰め込み方法におけるフレーム内の追加されたピクセル７１３は、余分だが、このより大きいフレームフォーマットのより高いディスプレイ解像度に従って、フレーム７００ｂの垂直同期領域（図示せず）の前にあり得る、未使用のピクセル７１３（つまり、フレームの可視画像データのいずれかを含む必要がない限りは使用されない）を有してもよい。その結果、フレームのアクティブ領域の最後のラインの後にあることとなる垂直同期信号は、フレームのアクティブ領域内の余分なピクセルライン７１３の存在によって、フレーム内の可視ライン７０１の最後を示さない。したがって、映像キャプチャデバイスは、ＶＳＹＮＣ信号の代わりに、他の技術によって可視フレーム映像のカットオフを決定するように構成され得る。例えば、映像キャプチャデバイスは、元の映像フレーム画像のディスプレイ解像度、拡大されたディスプレイ解像度、及び出力フレームに使用されるフレーム詰め込み技術に基づいて、ラインをカウントするように構成されてもよい。次に、可視画像７０１の圧縮が、ラインのカウントから決定されるカットオフポイントに基づいて、修正済みの余分なピクセル７１３が転送されるのを待つことなく、より早く始まり得る。図４Ｂ及び５のシステムを参照すると、例えば、専用処理装置に含まれる映像キャプチャ装置５７８は、映像インターフェースを通じて映像源４１２から受信された各出力フレーム内のピクセルまたはラインをカウントし、所定の数のラインが転送され、キャプチャされたら、（例えば、割り込みを使用して）映像キャプチャプロセス４３４に通知するように構成されてもよい。例えば、エンコーダによる圧縮が、映像出力フレームのアクティブ領域全体が転送されるのを待つことなく、より早く始まり得る。
【０１０１】
例示的な第２の技術の実施において、各フレーム内のより多くのピクセルデータ（不可視ピクセルにも関わらず）に対処するために、図４Ａの端末システム４１２など、映像源上の追加の映像メモリを含むことが有益であり得ることに留意されたい。元の内容から異なる、各レンダリングされた映像フレーム画像に追加された余分なピクセルを有するフォーマットのフレームをレンダリングするために、端末システムのグラフィックスドライバへの修正が必要であり得ることにさらに留意されたい。
【０１０２】
ここで図８を参照すると、さらに別の例示技術に従って、映像出力フレームに余分なピクセルを追加するさらなる例が示される。図７Ａ〜７Ｂの例において、可視フレーム画像の可視ピクセルは、映像フレーム画像よりも高いディスプレイ解像度を有するモノフレームフォーマットでレンダリングされる、つまり、フレームは、２次元フォーマットであることに留意されたい。例えば、図８に示すような、他の実施形態では、拡大されたフレームフォーマットは、出力映像フレームのより高いディスプレイ解像度が左画像及び右画像に対応する２つの個別の画像から構成されるアクティブディスプレイ領域によって画定される、ステレオ３Ｄフォーマットであってもよい。
【０１０３】
図８の例において、余分なピクセル８１５は、ステレオ３Ｄフォーマットの２つの画像の一方のみにソースフレームの可視画像を詰め込むことによって、ソースフレームに追加されてもよい。２つの画像の他方は、映像フレーム画像の可視ピクセルが３Ｄフォーマットのアクティブ領域内の２つの画像の一方に全体的にレンダリングされるように、余分なピクセル９１５で満たされてもよい。
【０１０４】
単一のステレオ３Ｄフレームに、例えば、左及び右画像などの、２つの画像を詰め込む、従来のステレオ３Ｄフォーマットが多くあることに留意されたい。図８の例示的な修正されたフレーム８００では、ステレオ３Ｄフレームは、左及び右画像が上下に配列される、上部及び下部（上下フォーマットとも呼ばれることがある）を有する。他のステレオ３Ｄフォーマットの例は、水平フォーマット、交互フォーマット、及び他のフォーマットを含む。一般的に、図８に示す例の上部及び下部フォーマット以外の、ステレオ３Ｄフォーマットが、本開示の態様に従って使用されてもよい。
【０１０５】
例えば、ステレオ３Ｄフレームは、フレーム内の２つの画像（左及び右画像）のそれぞれに対するピクセルを含む、伝送のための画定されたピクセルのシーケンスを有していてもよい。本開示の実施例は、例えば、左画像のピクセルが右画像内の一部またはすべてのピクセルの前に、シーケンスの中にある、２つの画像の一方のすべてまたは大部分が２つの画像の他方よりも後に列内に位置する、ステレオ３Ｄフォーマットを使用してもよい。図８の例示的な上下ステレオ３Ｄフレーム８００において、左上画像８０１は、「右」下画像８１５よりも早くフレーム８００の列内に位置する。したがって、フレームのピクセルが順に転送されると、上部画像内のピクセル８０１が、下部画像内のピクセル８１５の前に転送される。ソースフレームの可視ピクセルが上部画像内で全部レンダリングされ得、右画像ピクセルが実際の３Ｄディスプレイに使用されず、代わりに、出力フレーム内のピクセルの総数を人為的に増やすための余分なダミーピクセルとしてだけに使用されるので、フレームの可視画像全体が、ピクセルクロックの増加に従って、より早く転送され得る。具体的には、図８に示すように、元のソースフレームの内容と比較して、ラインの総数ＶＴＯＴＡＬが増加する。
【０１０６】
図６〜８の拡大されたフレームが本開示の種々の態様を図示するために、例示的な実施例としてのみ提供されることが強調される。さらに、図６〜８の技術は相互排他的ではなく、例示的な技術の種々の組み合わせが使用されてもよいことに留意されたい。例えば、図７Ａ／７Ｂ及び図８の例の組み合わせは、各フレームがより高い解像度を有するより大きいフレームに詰め込まれ得るだけでなく、３Ｄフレームの左及び右画像のそれぞれがソースフレームよりも高いディスプレイ解像度を有する、ステレオ３Ｄフレームの単一の画像にも詰め込まれ得る、本開示の実施形態に従って、使用される。したがって、例えばソース画像が４８０ｐの場合、７２０ｐのステレオ３Ｄフレームの左画像に詰め込まれてもよい。
【０１０７】
図９Ａを参照すると、余分なピクセルを有する拡大されたフレームを使用して、出力映像信号をキャプチャする例示的な方法９００ａが示される。具体的には、例示的な方法９００ａにおいて、余分なピクセルが、出力フレームのアクティブ画像の後に同期ラインの後に追加される余分なダミーラインの形で、フレームに追加される。方法９００ａは、図７の例示的なフレーム７００に類似した映像出力フレームの形成、キャプチャ、及び圧縮を含み得る。
【０１０８】
具体的には、方法９００ａは、映像フレーム９２１に対する可視画像を伴う。例として、またそれに制限されることなく、映像フレーム９２１は、プログラムの状態に基づいて、コンピュータプリケーションによって生成されてもよい。コンピュータグラフィックスは、画像内の可視ピクセルによって画定される第１の解像度によって生成され得、この方法は、根底にあるコンテンツ９２１の可視ピクセルの数に一致する数のピクセルを有するフレームに、映像画像９２３をレンダリングし、それによって、最終的な出力フレームのディスプレイ領域を画定するソース映像フレーム９２５を生成させることを伴ってもよい。例えば、ソース映像フレームは、ＧＰＵによって、フレームバッファにレンダリングされてもよい。
【０１０９】
この方法は、ソースフレーム９２５に同期信号９２７を追加することによって、出力フレームを形成することを伴ってもよい。フレームに同期領域を追加することは、フレームに通常の同期信号を追加することだけでなく、例えば、図４Ａに示すように、同期信号発生器を使用して、列内の同期ライン後にダミーラインの拡張された組を追加することも伴い得る。その結果生じる出力フレーム９２９は、通常のフレームに比べて、多くのラインを有し得る。例として、またそれに制限されることなく、可視画像ラインは、出力フレーム内のラインの総数のわずか半分を占め得、これにより対応する増加したピクセルクロックをもたらし得る。具体的には、同期領域にダミーラインを追加することは、例えば、上述のように、フレームバッファからソースフレーム画像をスキャンアウトすることによって実行されてもよい。
【０１１０】
次にピクセルは、出力フレーム９２９内のダミーラインの存在に起因して、より高いピクセル周波数で映像キャプチャデバイス９３３に転送され得る。したがって、可視フレーム画像９２１からの可視ピクセルは、可視ピクセルがより短い時間でキャプチャデバイスに到達し得るため、より速く映像キャプチャデバイスでキャプチャ９３５されてもよい。
【０１１１】
キャプチャデバイスは、例えば、この例において、可視フレーム画像の最後を示す、同期ラインの検出に基づいて、すべての可視ピクセルが転送されたかを判定することによって、可視ピクセルがキャプチャされるとすぐに、出力フレームのキャプチャ９３５を停止し、及び／またはフレーム画像の圧縮９３７（例えば、エンコーダで）開始するように構成されてもよい。次に、圧縮された映像フレームは、映像信号が復号９４１され、例えば、キャプチャシステムからのリモートデバイスなどで、ディスプレイ９４３上に可視画像として表され得るようにネットワーク９０６上で送信されてもよい。このプロセスは、映像内容のリアルタイムストリームを伝送するために、各映像フレームに対して繰り返されてもよい。
【０１１２】
図９Ｂを参照すると、映像フレームをキャプチャ、圧縮、及び伝送する類似の例示的な方法９００ｂが示される。しかしながら、図９Ａとは対照的に、方法９００ｂは、例えば、上記の７Ａ〜８に示すように、出力フレームを生成するためなどに、フレームのアクティブ領域に余分なピクセルを追加することを伴う。
【０１１３】
具体的には、第１のディスプレイ解像度に対する可視ピクセルの数で生成され得る、可視フレーム９２１は、図９Ｂに示すように、より高いディスプレイ解像度及び複数の余分なピクセルを有するより大きいフレーム９２３にレンダリングされてもよい。例として、またそれに制限されることなく、これは、より大きいモノ画像またはステレオ３Ｄフォーマットの単一のアクティブ画像領域（例えば、左または右）にフレーム画像を詰め込むことを伴ってもよい。ある特定の実施形態では、これは、例えば、上述のように、余分なピクセルを有するフレームバッファに、余分なピクセルを有するより大きい画像をレンダリングすることによってなされ得る。次に、拡大された画像は、例えば、上述のように、同期領域及び／またはその他の外部信号を有する出力フレームを生成するのに、スキャンアウトされてもよい。
【０１１４】
この例では、同期ラインは、例えば、可視ラインがアクティブ画像領域内の余分なピクセルの存在によって、出力フレーム９２９のアクティブラインの一部のみを占めるので、可視画像領域の最後をもはや示さない場合がある。画像が転送されたらすぐに圧縮を開始するために、映像キャプチャデバイスは、転送されるピクセルまたはラインをカウントすることによって、可視画像領域の最後を画定するように構成されてもよい。次に、映像信号は、出力フレームのアクティブ領域全体が転送される前に、すぐに圧縮９３７され得、符号化されたフレームは、上述のように、復号化９４１及びリモートディスプレイ９４３のために、ネットワーク９０６上で伝送されてもよい。
【０１１５】
結論
本開示の態様を、映像フレーム内の可視画像のより速い転送の必要性が望ましくあり得る、特定の例として、クラウドゲーミングを参照して説明したが、本開示の実施形態は、そのように制限されないことに留意されたい。本開示の実施形態は、クラウドコンピューティングまたはクラウドゲーミングを伴わない可能性のある、他の目的のために、任意の映像源から映像シンクに短縮した転送遅延を提供し得る。
【０１１６】
本開示の実施形態は、ＨＤＭＩ、Ｓ−Ｖｉｄｅｏ、コンポーネントビデオ、コンポジットビデオ、Ｄｉｓｐｌａｙ  Ｐｏｒｔ、及び他の映像またはＡ／Ｖ通信インターフェース規格を含む、種々の音声及び／または映像規格のいずれをも使用してもよいことに留意されたい。
【０１１７】
上記は本発明の好ましい実施形態の完全な説明であるが、種々の代替案、修正、及び同等物を使用することが可能である。したがって、本発明の範囲は、上記の説明を参照せずに判断されるべきであり、代わりに、添付された特許請求の範囲をその同等物の全範囲と共に参照して判断されるべきである。好ましいか、そうでないかは関係なく、本明細書に記載の特長はいずれも、好ましいか、そうでないかは関係なく、本明細書に記載の他のいずれの特性と組み合わせてもよい。以下の特許請求の範囲において、不定冠詞「ａ」または「ａｎ」は、別段の定めがない場合を除いて、冠詞の後の１つ以上の項目の数量を示す。添付された特許請求の範囲を、ミーンズプラスファンクションの限定を含むものとして解釈することは、そのような制限が、「ための手段」という表現を所定の特許請求の範囲で使用して明示的に具陳されない限り、行われるべきではない。
【図１】
2017505035.tif 000003
【図２】
2017505035.tif 000004
【図３Ａ】
2017505035.tif 000005
【図９Ａ】
2017505035.tif 000006
【図９Ｂ】
2017505035.tif 000007
【図３Ｂ】
2017505035.tif 000008
【図４Ａ】
2017505035.tif 000009
【図４Ｂ】
2017505035.tif 000010
【図５】
2017505035.tif 000011
【図６】
2017505035.tif 000012
【図７Ａ】
2017505035.tif 000013
【図７Ｂ】
2017505035.tif 000014
【図８】
2017505035.tif 000015
【国際調査報告】
2017505035.tif 000016