(57)【要約】  情報を表示するシステムには、波形及び映像データの中の少なくとも１つから構成されるリアルタイム画像データ及びウェブ入力データを受けて、ウェブ・データの第１グラフィック・レイヤ、グラティクル・データの第２グラフィック・レイヤ及びリアルタイム・データの第３グラフィック・レイヤを生成する中央演算ユニットと、この中央演算ユニットに接続されて、第１、第２及び第３グラフィック・レイヤを記憶するメモリと、メモリから第１、第２及び第３グラフィック・レイヤを読み出して、表示ウィンドウを生成するグラフィック・プロセッサと、表示ウィンドウを表示する表示装置とがある。
2019532319.tif 000002
【特許請求の範囲】
【請求項１】
波形及び映像データの中の少なくとも１つから構成されるリアルタイム画像データと、ウェブ入力データとを受けて、ウェブ・データの第１グラフィック・レイヤ、グラティクル・データの第２グラフィック・レイヤ及びリアルタイム・データの第３グラフィック・レイヤを生成する中央演算ユニットと、
上記中央演算ユニットに接続されて、上記第１、第２及び第３グラフィック・レイヤを記憶するメモリと、
該メモリから上記第１、第２及び第３グラフィック・レイヤを読み出して、表示ウィンドウを生成するグラフィック・プロセッサと、
上記表示ウィンドウを表示する表示装置と
を具える情報表示システム。
【請求項２】
上記グラフィック・プロセッサが、テクスチャ処理要素から成る配列を含む請求項１のシステム。
【請求項３】
上記中央演算ユニットが、フレーム・データ信号を受ける請求項１のシステム。
【請求項４】
上記フレーム・データ信号が、フレーム・レート、フレーム番号及びスキャン形式のすくなとも１つから構成される請求項３のシステム。
【請求項５】
上記中央演算ユニットに接続されたウェブ・ディベロッパー・フロント・エンドを更に具える請求項１のシステム。
【請求項６】
上記グラフィック・プロセッシング・ユニットが、フラグメント・シェーダを更に含む請求項１のシステム。
【請求項７】
上記グラフィック・プロセッシング・ユニットが、ラスタライザを更に含む請求項１のシステム。
【請求項８】
中央演算ユニットにおいて、ウェブ・データと、波形及び映像データの少なくとも１つから構成されるリアルタイム画像データとを受ける処理と、
上記中央演算ユニットによって、上記ウェブ・データからウェブ・データの第１グラフィック・レイヤと、グラティクル・データの第２グラフィック・レイヤと、リアルタイム・データの第３グラフィック・レイヤを生成する処理と、
上記第１、第２及び第３グラフィック・レイヤをメモリに記憶する処理と、
グラフィック・プロセッシング・ユニットを用いて、メモリから上記第１、第２及び第３グラフィック・レイヤを読み出す処理と、
上記グラフィック・プロセッシング・ユニットを用いて、上記第１、第２及び第３グラフィック・レイヤの合成表示ウィンドウを生成する処理と
を具える異なる形式の表示データを合成する方法。
【請求項９】
上記ウェブ・ベース・ユーザ・インタフェース・データを受ける処理が、ウェブ・ベース・ユーザ・インタフェースからユーザ・インタフェース・データを受ける処理を含む請求項８の方法。
【請求項１０】
上記リアルタイム画像データを受ける処理が、モニタリング装置の１つからリアルタイム画像データを受ける処理を含む請求項８の方法。
【請求項１１】
上記合成表示ウィンドウを生成する処理が、フレーム・レート変換を実行する処理を含む請求項８の方法。
【請求項１２】
上記合成表示ウィンドウを生成する処理が、その表示ウィンドウをラスタライズする処理を含む請求項８の方法。
【請求項１３】
上記中央演算ユニットで上記リアルタイム・データを受ける処理と、
上記中央演算ユニットでフレーム・データ信号を受ける処理と、
上記グラフィック・プロセッシング・ユニットに、上記映像データと共に２次元テクスチャ配列の要素をロードする処理と、
上記グラフィック・プロセッシング・ユニットで利用できる上記要素を特定するインデックスを生成する処理と、
上記グラフィック・プロセッシング・ユニットを用いて、上記インデックスで特定された上記要素をサンプルし、ラスタライズ処理へと渡す処理と
を更に具える請求項８の方法。
【請求項１４】
上記フレーム・データ信号で、上記リアルタイム・データをプログレッシブ・スキャン・データとして特定する請求項１３の方法。
【請求項１５】
サンプルする処理が、フラグメント・シェーダを用いて上記データをサンプルする処理を含む請求項１４の方法。
【請求項１６】
上記フレーム・データ信号で、上記リアルタイム・データをインタレース・スキャン・データとして特定する請求項１３の方法。
【請求項１７】
利用可能な上記要素を特定するインデックスを生成する処理が、上記インデックスが偶数か奇数かを決定する処理を更に含む請求項１６の方法。
【請求項１８】
もし上記インデックスが奇数なら、上記サンプルする処理が、要素のサンプル処理を繰り返す請求項１７の方法。
【請求項１９】
もし上記インデックスが偶数なら、上記サンプルする処理が、次に続く要素をサンプルする請求項１７の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオ・モニタリング装置に関し、特に、合成ユーザ・インタフェースを生成するビデオ・モニタリング装置に関する。
【背景技術】
【０００２】
ビデオ・モニタリング装置は、ユーザ・インタフェース上又はユーザ・モニタ上に、ラスタライズされた波形及び映像（Picture：ピクチャ）表示のようなリアルタイム・データを提供する。これら装置としては、オシロスコープやその他の波形生成装置がある。また、ビデオ・セッション及びステイタス・データのようなテキスト・データについても表示されることがある。こうした装置に関するユーザ・インタフェースを生成する典型的な手法としては、低級（low level：低水準）ソフトウェアを用いるカスタム・メニューがある。ゲーム産業の製品では、プレーヤのスコア（player scores）のような、いくつかのJavascript/HTMLコンポーネントを、ゲームの景観のような生成されたデータと組み合わせることができるが、波形及び映像表示のようなリアルタイム・データを、Javascript/HTMLと組み合わせる既知の方法はない。
【０００３】
以下で述べる実施形態は、現在のシステムの制約を解決しようとするものである。
【図面の簡単な説明】
【０００４】
【図１】図１は、ビデオ処理システムの実施形態を示す。
【図２】図２は、画像データの様々なコンポーネントを１つの画像に合成する方法の実施形態のフローチャートを示す。
【図３】図３は、複数のテクスチャ配列プロセッサから成る配列（アレイ）を用いてビデオを処理するシステムの実施形態を示す。
【図４】図４は、ビデオ・フレームを処理する方法の実施形態のフローチャートを示す。
【発明を実施するための形態】
【０００５】
最新のデスクトップ・プロセッサには、典型的には、オンボードＧＰＵがあり、これは、高価な追加のＧＰＵカードを必要とせずに、演算とレンダリングの速度を速める機会を提供する。こうしたオンボードＧＰＵは、Javascript/HTMLベースのユーザ・インタフェース・データと組み合わせて、映像データ及びリアルタイム波形を組み合わせたユーザ・インタフェースを生成するのに利用できる。
【０００６】
加えて、ＧＰＵは、フレーム・レート変換のような、異なるビデオ処理方式を実現する優れた方法を提供する。２Ｄテクスチャ配列は、ＧＰＵ内の循環バッファを実現する優れた方法であり、これは、複数の映像フレームを保持でき、様々なフレーム・レート変換アルゴリズムの実現を可能にする。本願で開示される実施形態は、セグメント化手法をフォローしており、ここでは、ＧＰＵの２Ｄテクスチャ配列を循環バッファとして利用しながら、処理をＣＰＵと１つ以上のＧＰＵの間で分配する。もし使用するＧＰＵが循環バッファを提供しないなら、ＧＰＵの外部にある循環バッファを使うことも可能である。
【０００７】
HTML及びJavascriptベースのユーザ・インタフェースは、現代的で柔軟ではあるが、残念なことに、ラスタライズ波形及び映像データを作り出すアクイジション（取込み）データにアクセスする簡単な方法を提供しない。Awesomium や Chromium Embedded Framework (CEF) のようなエンベッディング（Embedding：埋め込み）ツールは、ユーザが生成したテクスチャに、Javascript/HTMLコンポーネントを重ねる（オーバーレイする）方法を提供する。テクスチャは、ＧＰＵにおいて表される画像（例えば、ビデオ・ゲームにおける景観シーン）と考えても良い。
【０００８】
本願の実施形態は、Javascript/HTMLコンポーネントをラスタライズ波形及び映像データに重ねて、Javascript/HTMLで動くユーザ・インタフェースを生成するという、シンプルかつ柔軟で拡張性のある方法を生み出すもので、これは、また、Javascriptレイヤに「ウィンドウ」を生じさせ、これによって、合成ユーザ・インタフェースをユーザに提示する前に、リアルタイムのデータを取り込んで処理できる。
【０００９】
図１及び２に示されるように、アプリケーション２２は、少なくとも１つの波形と映像（ピクチャ）データから構成されるリアルタイム画像データを、例えば、カスタムの（custom：特別注文の）ＰＣＩｅベースのカードによって取込み、ＰＣＩｅバスを通じて、システム・メモリ１４中の大きなリング・バッファへと送る。このリング・バッファは、共有メモリ・モード（shared memory mode）に設定されるので、別の外部アプリケーションは、波形、映像、複数のフレーム又は１フレームを同時に読み出すことができ、これらをＧＰＵメモリにテクスチャとしてアップロードできる。本説明における「テクスチャ」とは、画像を生成するグラフィック処理において利用される表面（surface）のグリップ又はマッピングである。この外部アプリケーションは、次いで、ＧＰＵを用いて、適切な順番でこれらをレイヤ（重ねる処理）し、ユーザ・インタフェースの外観（Look：外見、見た目）を実現する。
【００１０】
ウェブ技術ベースのユーザ・インタフェース１８によって、メニューやボタンのような典型的なユーザ・インタフェース画像コンポーネントが生成でき、これは、最終的に波形及び映像上へと重ねられる（オーバーレイされる）ことになる。このユーザ・インタフェースは、システム・メモリ１４中の「オフ・スクリーン」空間にレンダリングされる。
【００１１】
このメモリ１４は、ＣＰＵによって利用されるシステム・メモリから構成されていても良く、また、上述のように、共有メモリとして設定できる。これにより、ＧＰＵが取り込む前に、波形及び映像データをコピーする必要を回避している。しかしながら、本願の実施形態では、１例のメモリ・アーキテクチャのみ提示するが、特定の１つの実施形態に限定することを意図しておらず、また、必然的にこれであるということでもない。
【００１２】
別のアプリケーション２４は、グラティクル（graticule：方眼の目盛り又は方眼区画表示、グラット（grat）とも呼ばれる）も生成するが、これは、単純にモニタリング装置の表示上の複数ラインから成る網目である。例えば、オシロスコープの表示装置上で、グラティクルは、ある測定値に対する別の測定値の寸法を伴う軸から構成されても良い。これらは、第３のレイヤとして、表示で使用される要素に加えられることになる。
【００１３】
ＧＰＵ１６は、メモリにアクセスして、個々のレイヤ３２、３４及び３６を処理し、３８に示される画像を生成する。画像３８には、ユーザから見て「トップ（一番上）」にメニュー情報を有するＨＴＭＬレイヤがあり、これに、表示装置用のグラティクル（graticule）が続き、次いで、オシロスコープに由来するトレースであっても良いリアルタイム波形データや映像データが、その後ろに続く。この合成画像は、次いで、表示ウィンドウ４０を発生される。
【００１４】
図２は、この処理の１つの実施形態のフローチャートを示す。ＣＰＵは、上述の如く、４２において、波形及び映像データを取込み、４４において、これらデータをシステム・バッファに記憶する。ＧＰＵは、次いで、波形又は映像フレームを読み出し（４６）、次いで、これらをレイヤ（重ねる処理）してユーザ・インタフェースにする（４８）。このシステム内には、この処理のために、多くのオプションがある。
【００１５】
例えば、入力されるビデオ信号のフレーム・レートによって、映像データのフレーム・レートは、２３.９７、３０、５０、５９.９４又は６０Ｈｚのように、任意のレートにできる。これらフレームは、プログレッシブ又はインタレースであっても良い。ユーザ・インタフェースを表示するのに利用されるモニタの表示レートは、例えば、６０Ｈｚで固定であるが、別のレートに調整可能であっても良い。これは、表示のために、ＧＰＵで合成される前に、映像データ・ストリームは、フレーム・レートを変換する必要があるかもしれないことを意味する。
【００１６】
図３は、ＣＰＵ及び１つ以上のＧＰＵの両方を用いて、フレーム・レート変換処理を分割する例示的な実施形態を示す。図３に示されるように、ＣＰＵ処理ブロック１２への入力信号には、フレーム・データ信号があり、これは、実際の映像フレーム・データに加えて、入力ビデオ・フレーム・レート、表示フレーム番号、スキャン形式の中の少なくとも１つを含んでいても良い。フレーム・レート信号によって、フレーム・データが、インタレースであるか又はプログレッシブであるかをシステムが決定できる。映像フレーム・データは、ＧＰＵの中で、５４において、ＣＰＵによってロードされるテクスチャ・ユニットを単位として表される。本願のＧＰＵに関する実施形態では、複数のテクスチャ・ユニットから成る配列を利用する方法（５６）も提供し、その各要素を独立にアップデートできる。ＧＰＵの２Ｄテクスチャ配列機能は、映像フレームの小さな循環バッファを構築するのに利用される。
【００１７】
図４は、２Ｄテクスチャ配列を用いてビデオ・フレームを処理する方法の実施形態を示す。映像データは、７０において、バッファから読み出される。ＣＰＵは、映像データを有する２Ｄテクスチャ配列の複数の要素をロードする。各要素は、ＧＰＵやＧＰＵプロセッサの一部分などにおいて処理する要素でも良い。２Ｄテクスチャ配列は、循環バッファとして設定される。ＧＰＵは、循環バッファに入る１つ以上のテクスチャに由来するデータを用いて表示フレームを生成しても良い。次いで、ラスタライザは、７６において、計算された表示フレームを表示装置へ出力する。
【００１８】
ＣＰＵ処理ブロックは、ＧＰＵ中の２Ｄテクスチャ配列の個々の要素をアップデートする。入力されるビデオ・フレーム・レート、スキャン形式、プログレッシブかインタレースか、そして、出力表示フレーム番号によって、配列中のインデックスを新しい映像データでアップデートするか否かが定まる。ＧＰＵレンダリング・ループは、典型的には、６０Ｈｚのような出力表示スキャン・レートで動作しながら、表示されている現在のフレーム番号（数）を表すフレーム番号（Frame number）カウンタを維持する。
【００１９】
例えば、入力されるビデオのフレーム・レートは６０ｐであり、これは、６０Ｈｚプログレッシブ・スキャンである。この場合、ＰＣＩｅを通じたアクイジション・ハードウェアから供給されるような全ての映像フレームは、ＣＰＵ側の先入れ先出し（ＦＩＦＯ）５０のバッファへ押し込まれる。このバッファのサイズは、設定で変更可能としても良い。ＧＰＵレンダリング・ループの繰り返し毎に、上述のＣＰＵ処理ブロックは、ソフトウェアＦＩＦＯから１フレームを放出し、これを循環バッファとして構成されている２Ｄテクスチャ配列６０の次に続くインデックス（a successive index：連続するインデックスの１つ）に入れ、そして、ＧＰＵシェーダ・コードで利用するために、循環バッファへインデックスを戻す（return：返答する）。ＧＰＵシェーダ（shader）６２は、フラグメント・シェーダとも呼ばれ、適正な出力フレーム・レートへとフレーム・レート変換を行う。
【００２０】
循環バッファへのインデックスは、ＧＰＵ１６に渡される。ＧＰＵ１６の中では、フラグメント・シェーダ・コード（これは、画素の色を処理するＧＰＵ処理ブロックでも良い）が、上記のインデックスにおいて、データをサンプルし、これをＧＰＵのラスタライザ６４に渡す。次いで、ＧＰＵは、これを表示モニタ６６へと出力する。もしＧＰＵがフラグメント・シェーダを備えていない場合には、ＧＰＵの外部のフレーム・インタレーサ（frame interlacer）を利用することもできて、これは同様の結果を実現する。
【００２１】
別の実施例では、入力されるビデオのフレーム・レートは、３０Ｈｚプログレッシブ・スキャンを意味する３０ｐである。アクイジション・ハードウェアから供給される映像フレームの全ては、ＣＰＵ側の、サイズを変更可能なソフトウェアＦＩＦＯへと押し込まれる。ＧＰＵレンダリング・ループの繰り返し毎に、上述のＣＰＵ処理ブロックは、現在のフレーム番号が偶数か奇数かを確認するために調査する。もし偶数なら、ソフトウェアＦＩＦＯから１フレームを放出し、これを循環バッファとして構成されている２Ｄテクスチャ配列の次に続くインデックス（a successive index）に入れ、そして、ＧＰＵシェーダ・コードで利用するために、循環バッファへインデックスを戻す（return：返答する）。もし奇数なら、以前に決めたインデックスを繰り返す。これは、基本となるメカニズムであり、これによって、２Ｄテクスチャ配列−循環バッファに既に存在しているフレームを繰り返すか、即ち、フレーム・レート変換が実現されていないかをＣＰＵ側で決定できる。
【００２２】
循環バッファへのインデックスは、ＧＰＵに渡される。ＧＰＵ内では、フラグメント・シェーダが、上記のインデックスにおいて、インタレースされたフレーム中の偶数又は奇数フィールドを表す適切な半分の映像からデータをサンプルし、これをＧＰＵのラスタライザに渡す。
【００２３】
２Ｄテクスチャ配列を循環バッファとして実現し、その現在のインデックスをＣＰＵ上で実行しているソフトウェアによって決めるというような、上述のやり方でＧＰＵの２Ｄテクスチャ配列を使うことによって、ストレートなやり方でフレーム・レート変換がうまく実現される。６０ｉ、５０ｐなどのような他のフレーム・レートに関する変換を実現するのにも、同様なステップに従うことができる。
【００２４】
上述のような実施形態は、特別に作成されたハードウェア、ファームウェア、デジタル・シグナル・プロセッサ又はプログラムされた命令に従って動作するプロセッサを含む特別にプログラムされた汎用コンピュータ上で動作できる。本願で使用された「コントローラ」又は「プロセッサ」という用語は、マイクロプロセッサ、マイクロコンピュータ、ＡＳＩＣ及び専用ハードウェア・コントローラ等を意図する。実施形態の１つ以上の態様は、１つ又は複数のコンピュータ（モニタリング・モジュールを含む）その他のデバイスによって実行される、１つ又は複数のプログラム・モジュールなどのコンピュータ利用可能なデータ及びコンピュータ実行可能な命令で実現できる。概して、プログラム・モジュールとしては、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、これらは、コンピュータその他のデバイス内のプロセッサによって実行されると、特定のタスクを実行するか、又は、特定の抽象データ形式を実現する。コンピュータ実行可能命令は、ハードディスク、光ディスク、リムーバブル記憶媒体、ソリッド・ステート・メモリ、ＲＡＭなどの非一時的コンピュータ可読記憶媒体に記憶しても良い。当業者には理解されるように、プログラム・モジュールの機能は、様々な実施形態において必要に応じて組み合わせられるか又は分散されても良い。更に、こうした機能は、集積回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのようなファームウェア又はハードウェア同等物において全体又は一部を具体化できる。特定のデータ構造を使用して、実施形態の１つ以上の態様をより効果的に実施することができ、そのようなデータ構造は、本願に記載されたコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内と考えられる。
【００２５】
開示された主題の上述のバージョンは、記述したか又は当業者には明らかであろう多くの効果を有する。それでも、開示された装置、システム又は方法のすべてのバージョンにおいて、これらの効果又は特徴のすべてが要求されるわけではない。
【００２６】
加えて、本願の記述は、特定の特徴に言及している。本明細書における開示には、これらの特定の特徴の全ての可能な組み合わせが含まれると理解すべきである。例えば、ある特定の特徴が特定の態様又は実施形態の状況において開示される場合、その特徴は、可能である限り、他の態様及び実施例の状況においても利用できる。
【００２７】
また、本願において、２つ以上の定義されたステップ又は工程を有する方法に言及する場合、これら定義されたステップ又は工程は、状況的にそれらの可能性を排除しない限り、任意の順序で又は同時に実行しても良い。
【００２８】
説明の都合上、本発明の具体的な実施形態を図示し、説明してきたが、本発明の要旨と範囲から離れることなく、種々の変更が可能なことが理解できよう。
【図１】
2019532319.tif 000003
【図２】
2019532319.tif 000004
【図３】
2019532319.tif 000005
【図４】
2019532319.tif 000006
【国際調査報告】
2019532319.tif 000007
2019532319.tif 000008