本発明は、ビデオ番組の表示に干渉することがありうるオブジェクト(たとえばオンスクリーンディスプレイで生成された(OSD)メニュー、テキスト、チャンネル・バナー、クローズドキャプション・データ、ユーザー選択可能オプションおよびテキスト・クロール)に鑑みて表示装置の表示領域を修正することに向けられている。本発明は、ハードウェア、ソフトウェア、ファームウェア、特殊目的プロセッサまたはそれらの組み合わせといったさまざまな形で実装されうることは理解される。好ましくは、本発明はハードウェアおよびソフトウェアの組合せとして実装される。さらに、ソフトウェアは好ましくは、プログラム記憶デバイス上に物理的に具現されたアプリケーションプログラムとして実装される。そのようなアプリケーションプログラムは、ウィンドウズCE(商標)、ユニックス・ベースのオペレーティングシステムなどのような、アプリケーションプログラムがビデオ信号からのビデオ情報を操作できるオペレーティングシステム上で走ることができてもよい。
アプリケーションプログラムは、いかなる好適なアーキテクチャを有する機械に読み込まれ、該機械によって実行されてもよい。好ましくは、前記機械は、一つまたは複数の中央処理装置(CPU)、ランダムアクセスメモリ(RAM)および入出力(I/O)インターフェースのようなハードウェアを有するコンピュータ・プラットフォーム上で実装される。コンピュータ・プラットフォームはまた、オペレーティングシステムおよびマイクロ命令コードを含む。ここで記載されるさまざまなプロセスおよび機能は、マイクロ命令コードの一部であってもよいし、アプリケーションプログラムの一部であってもよく(その組み合わせでもよい)、オペレーティングシステムを介して実行される。アプリケーションプログラムは主として、ビデオ信号の属性を認識し、ビデオ信号から提供されたビデオ情報をレンダリングするためにビデオ・データ・コントロールを提供する。
アプリケーションプログラムは、コンピュータ・プロセッサで走らされ、本出願で記載されるOSD実施形態の動作をも制御してもよい。プロセッサの型の一例としてはペンティアム(商標)IIIがある。アプリケーションプログラムは、通信プログラム(通信インターフェースを制御するための)およびビデオ・レンダリング・プログラム(表示プロセッサを制御するための)と一緒に動作してもよい。あるいはまた、これらの制御機能のすべてが、本発明のために記載される諸実施形態の動作のためのプロセッサに統合されてもよい。
さらに理解されるべきは、付属の図面に描かれている構成的なシステム要素および方法ステップのいくつかは好ましくはソフトウェアで実装され、システム要素(またはプロセス・ステップ)間の実際の接続は、本発明がプログラミングされる仕方に依存して異なりうるということである。ここでの教示を与えられれば、当業者は本発明のこれらおよび同様の実装または構成を考えることができるであろう。
メニューまたはテキスト情報を表示するOSDについての本発明の動作は、種々の表示フォーマットでビデオ信号を表示する表示プロセッサとともにはたらく。表示プロセッサによって処理されるビデオ信号は地上源、ケーブル、DSL、衛星、インターネットまたはビデオ信号を送信できる他の任意の手段によって受信される。好ましくは、ビデオ信号はDVB、ATSC、MPEG、NTSCまたは他の既知のビデオ信号規格といったビデオ規格に適合する。
同様に、表示OSDは、ケーブルモデム、DSLモデム、電話モデム、衛星インターフェースまたは双方向通信を扱う機能をもつその他の種類の通信インターフェースといった通信インターフェースに結合されたプロセッサとともに動作する。好ましくは、プロセッサは、通信インターフェースを介して通信されたデータを受信する機能をもつ。そうしたデータは、HTMLまたはその他の種類のフォーマット整形コマンドのようなフォーマット整形言語でエンコードされたウェブページデータを表す通信データなどである。さらに、プロセッサは、MPEGベースの送信などで送信されたデータ、グラフィック・データ、オーディオ・データまたはテキスト・データをデコードする機能をもつ。それらのデータは、表示プロセッサ、OSDまたはサウンドブラスター(商標)カードのようなオーディオ処理ユニットのいずれかを使ってレンダリングされることができる。そのような通信されたデータはプロセッサを介してデコードおよびレンダリングされる。HTMLデータの場合、ウェブページを表すHTMLデータを表示するためにフォーマット・パーサー(ウェブ・ブラウザのような)がグラフィック・プロセッサとともに使用される。ただし、他の種類のフォーマットされたデータもレンダリングされうる。
図4は、受信されたビデオ番組をデコードする機能をもつビデオ・デコーダ・システムの実施例である。この例示的なデコーダ・システムは、テレビまたはセットトップボックスにおいて見出されるシステムである。デコーダ・システム20は番組データおよび番組ガイド情報を、衛星、ケーブルおよび地上源から受信する。地上源はたとえばインターネット源から電話線を介するものも含む。図4のデコーダ・システム(システム20)では、放送番組コンテンツを表すオーディオ、ビデオおよび付随データを運ぶ信号で変調された地上放送搬送波がアンテナ10によって受信され、ユニット13によって処理される。結果として得られるデジタル出力信号を復調器15が復調する。ユニット15からの復調された出力は、デコーダ17によってトレリス・デコードされ、バイト長データ・セグメントにマッピングされ、インターリーブ解除され、リード・ソロモン誤り訂正される。ユニット17からの訂正された出力データは、多重化されたオーディオ、ビデオおよびデータ要素を表す番組を含んでいるMPEG互換のトランスポート・データストリームの形である。ユニット17からのトランスポート・ストリームは、ユニット22によってオーディオ、ビデオおよびデータ要素に多重化解除され、それがさらにデコーダ・システム100の他の諸要素によって処理される。これら他の諸要素に含まれるものとしては、ビデオ・デコーダ25、オーディオ・プロセッサ35、サブピクチャー・プロセッサ30、オンスクリーン・グラフィクス・ディスプレイ発生器(OSD)37、マルチプレクサ40、NTSCエンコーダ45および記憶インターフェース95がある。あるモードでは、デコーダ100は、ユニット50および55の上で、それぞれ表示およびオーディオ再生のためのMPEGデコードされたデータを与える。別のモードでは、ユニット17からのトランスポート・ストリームはデコーダ100によって処理されて、記憶装置90を介した記憶媒体98上での記憶のためにMPEG互換データストリームを与える。アナログビデオ信号処理モードでは、ユニット17からの受け取ったビデオ信号をユニット19が処理して、ユニット50および55の上でのそれぞれ表示およびオーディオ再生のためのNTSC互換信号を与える。
ビデオ・デコーダ25は、デコードされたビデオ信号の属性をスケーリングするよう整えられている。たとえば、ビデオ・デコーダ25はデコードされたビデオ信号の特定の領域にズームインし、あるいはビデオ・デコーダ25はデコードされたビデオ信号の大きさを該信号がレンダリングされる表示領域に対して縮小する。本発明の例示的な実施形態の必要性に依存して、他のスケーリング機能も利用可能である。
他の入力データモードでは、ユニット72、74および78がそれぞれ、電話線18からのインターネット・ストリーミングされたビデオおよびオーディオ・データ、フィード線11からの衛星データおよびケーブル線14からのケーブル・ビデオのためのインターフェースを提供する。ユニット72、74および78からの処理されたデータはユニット17によって適切にデコードされ、アンテナ10を介した地上波放送入力との関連で述べたのと同様の流儀でのさらなる処理のためにデコーダ100に与えられる。
ユーザーは、リモコン・ユニット70を使うことによって、テレビチャンネルまたは番組ガイドのようなオンスクリーン・メニューのいずれかを見る選択をする。プロセッサ60は、インターフェース65を介してリモコン・ユニット70から与えられる選択情報を使って、図4の諸要素を、所望の番組チャンネルを見るために受け取るよう適切に構成設定する。プロセッサ60は、プロセッサ62およびコントローラ64を有している。ユニット62は、番組ガイドおよびシステム情報を含む番組固有情報を処理し(すなわち、パース、照合および総合)、コントローラ64はデコーダ100を動作させるのに必要とされる残りの制御機能を実行する。ユニット60の機能は図4に描かれるように別個の要素62および64として実装されてもよいが、代替的に、単一のプロセッサ内に実装されてもよい。たとえば、ユニット62および64の機能は、マイクロプロセッサのプログラムされた命令内に組み込まれうる。プロセッサ60は、入力された信号フォーマットおよびコーディング種別を復調およびデコードするよう、処理器13、復調器15、デコーダ17およびデコーダ・システム100を構成設定する。ユニット13、15、17およびデコーダ100内のサブユニットは、これらの要素内の制御レジスタ値をプロセッサ60が双方向データおよび制御信号バスCを使って設定することによって、入力信号種別のために個々に構成設定される。
デコーダ100に与えられるトランスポート・ストリームは、番組チャンネル・データおよび番組固有情報を含むデータ・パケットを含む。ユニット22は、番組固有情報パケットをプロセッサ60に差し向け、プロセッサ60は該情報をパース、照合および総合して階層的に配列された表にする。ユーザー選択された番組チャンネルを有する個々のデータ・パケットは、総合された番組固有情報を使って同定および総合される。番組固有情報は限定受信、ネットワーク情報ならびに識別および接続(linking)データを含み、これらは図4のシステムが所望のチャンネルに同調して、データ・パケットを総合して完全な番組を形成できるようにする。番組固有情報は、放送される番組に関係した補助的な番組ガイド情報(たとえば、電子番組ガイド――EPG)および説明テキストならびにこの補助的情報の識別および総合をサポートするデータも含む。
プロセッサ60は、受け取った番組固有情報パケットを総合して、複数の階層的に配列され、相互リンクされたテーブルにする。階層的テーブルの配列は、マスター・ガイド・テーブル(MGT: Master Guide Table)、チャンネル情報テーブル(CIT: Channel Information Table)のほか諸イベント情報テーブル(EIT: Event Information Table)を、および諸拡張テキスト・テーブル(ETT: Extended Text Table)のような任意的なテーブルを含む。階層的テーブルの配列は、本発明に基づく新サービス情報(NSI: new service information)をも組み込んでいる。ユニット22を介してプロセッサ60によって形成される結果として得られる番組固有情報データ構造は、ユニット60の内部メモリ内に保存される。
図5は、受信したビデオ番組をデコードする機能をもつ表示装置およびセットトップボックスのシステム500の例示的な実施形態である。アンテナ510が地上で送信されたビデオ信号を受信するために使用される。そのようなビデオのいくつかのフォーマットは、NTSC、ATSC、PAL、DVB-Tなどを含む。表示装置530はテレビ、ディスプレイ・モニタなどのような、アンテナ510を介して受信されたビデオ信号を図4に見出されるようなデコーダを使って復調およびデコードする機能をもつ装置である。同様に、表示装置530に結合されたセットトップボックス520は、衛星アンテナ、ケーブルネットワーク、データ・ネットワークなどのような源からのビデオ信号を受信、復調およびデコードするために使われる。セットトップボックス520も図4に表されるようなデコーダを含む。表示装置530は、セットトップボックス520から受け取られたビデオ信号でも、あるいは表示装置530そのものにおいてデコードされたビデオ信号でも、レンダリングできることを注意しておく。
図6は、オンスクリーンディスプレイによって生成されたオブジェクトの位置を制御するための、ユーザー操作可能メニュー600のある実施形態である。そのようなオブジェクトは、テキスト、チャンネル・バナー、クローズドキャプション・データ、ユーザー選択可能オプション、メニューなどである。メニュー600に存在するオプションは、図4からのリモコン70のような制御装置を操作することによって開始される。メニュー600は、OSD生成されたオブジェクトが表示装置の表示領域内のどこに置かれるかを制御する。オプション610なら、図7に示されるように表示領域700の上部の位置にテキストをレンダリングする。逆に、オプション620なら、図1に示されるように表示領域100の下部の位置にテキストをレンダリングする。
ユーザーがオプション630を選択すると、表示装置は、OSD生成オブジェクトが、セットトップボックスのようなビデオ源からのOSDテキストの配置と干渉しない位置に置かれるようにするよう構成設定される。先に図3において示したように、セットトップボックスからのOSD生成オブジェクト(チャンネル情報のような)が表示装置から生成されたOSD生成オブジェクト(音量調節のような)に干渉することがありうる。この機能を達成する一つの方法は、ビデオ・デコーダ25を、光学式文字認識(OCR)ソフトウェアのようなテキスト文字を認識できるソフトウェア・プログラムをもつよう構成することである。
OSD生成オブジェクトが表示領域にすでに位置しているとビデオ・デコーダ25が認識すると、ビデオ・デコーダ25は自分が生成するOSDオブジェクトを表示領域中の第二の位置に移す。図8に示されるように、セットトップボックスによって生成されたOSDオブジェクトは表示領域800の下部に位置しており、表示装置から生成されたOSDオブジェクトは表示領域800の上部に位置している。
図9は、テキスト・クロールに鑑みて動作する、本発明のある実施形態を呈示している。典型的には、ニュース局のような源から来るビデオ番組は、ビデオ映像の下部をテキスト910(株式相場、ニュースワイヤー(news wires)からのニュース、学級閉鎖などを表す)が横に流れるテキストクロール(text crawl)と呼ばれる機能を使う。テキスト910のスクロールは通例、右から左の方向に動くが、言語によってはテキスト910が左から右の方向に動く。このテキスト910がテキスト・クロール領域を表す。ビデオ920は、非テキスト・クロール領域を占めるテレビ番組からのビデオを表す。通例、テキスト910およびビデオ920の領域を合わせたものが放送局のところで生成され、受信のところにおけるOSDの使用なしに、ビデオ信号の一部として一緒に送信される。
表示装置は、表示領域を横切るテキスト・クロールの存在を認識し、そのようなテキストを消去するよう構成されることができる。デコードされたビデオの一連のビデオ・フレームを解析することによって、表示装置は、表示領域のうち、放送局によって挿入されたビデオ・クロール・テキストによって占められる有界の領域を判別する。
本発明人らは、ビデオ・クロール・テキスト領域が典型的には表示領域の下端に位置していることを認識する。この領域は、表示領域からテキスト・クロールによって占められる諸水平線を削除することによる表示領域からのテキスト・クロールの除去に役に立つ。好ましくは、この操作は、ビデオ・デコーダ25(図4より)の使用により、サイズ変更または補間技術によって、ビデオ表示領域をスケーリングすることによって完遂される。そのような操作の結果が図10に、表示領域1000およびビデオ1020をもって示されている。ここで、前記テキスト・クロールの領域に対応する領域を埋めるために、前記テキスト・クロールによって占められていない領域からの代替的なビデオが使われている。
具体的には、テキスト・クロールは、動き検出技術および/またはOCRデバイスを使うことによって検出できる。クロール領域内の光学式文字またはブロック動きベクトルは、表示領域を横切って相対的な水平速度で動くテキストのテキスト・クロールの動きの大きさにおいて制限された水平方向の動きを示す。ひとたびそのような条件が検出されると、この活動によって記述される有界の領域が定義され、テキスト・クロールが占める水平線が同定される。次いで、テキスト・クロールのこの領域がレンダリングされる表示領域から削除される。
テキスト・クロールを検出するための動き検出を使う動作は、図11に示されるプロセスで開始される。ここで、表示領域1100はマクロブロックに分割されている。この分割は、表示装置上で表示のためにレンダリングされはせず、ビデオ・デコーダ25(図4)における内部的なものである。表示領域のマクロブロックへのこの分割は、先行フレームに対する新フレームの変化を決定するインターフレーム・エンコードと呼ばれるプロセスを考慮に入れる。該フレーム間に何の変化もなければ、現在のフレームを呈示するために必要とされるのはごく小さなデータ量のみとなる。インターフレーム・エンコードにおけるフレームからフレームへの変化は、ビデオ映像の先行フレームに対する動きを呈するものであり、そのような変化は動きベクトルとして表現される。先行ビデオ・フレームとともに動きベクトルを使うことは、動き補償または動き予測として知られている。よって、現在フレームは、直前を記述するデータを指す動きベクトルを使うことによって「予測される」のである。よって、フレーム間でのテキスト・クロールに対応する動きベクトルは、一定かつ同じ方向を向いているはずである。
テキスト・クロールに対応する動きベクトルを判別するために、ビデオ・デコーダ25は先行フレームに対する現在フレームの縦横の動きを検出する動き補償動作を実行する。ビデオ・フレームをなすブロックの垂直方向および水平方向の変化が検出され、現在フレームの対応するブロックを予測するために使用される。テキスト・クロールの水平方向の動きは、ビデオ領域のある特定の領域における水平動きベクトルを全ビデオ領域を通じた水平動きベクトルに対して解析および比較することによって検出される。各ブロック行についての結果として得られる水平動きベクトルは、図12の表示領域1200に示されるように、ベクトル加算を使って計算される。よって、表示領域のうちテキスト・クロールを含む領域は、表示領域の他の部分で生成されるものとは、一定して異なる大きさおよび方向をもつ合成水平動きベクトルをもつ。したがって、同定された合成動きベクトル(これらは同一またはほぼ同一である)によって境界が決まる領域1210は、表示領域のうちビデオクロールを含む領域を定義する。
図13は、マクロブロックおよび動き検出を使ってテキストクロールによって境される領域を判別するブロック図を呈示している。ステップ1305で、本方法は、デコードされたビデオ信号から、特定のビデオ・フレームによってフレーム動きベクトル・データが計算されることをもって開始される。好ましくは、この動作は、ビデオ・デコーダ25によって、図11で起こっているように示されているものである。次のステップ1310では、ビデオ・デコーダ25は、結果として得られるマクロブロックを行によってソートする。
プロセスは分岐されたプロセスに進む。ステップ1315では、特定のフレームについてのマクロブロックからなる各行が、前のフレームからのマクロブロックのある第二の行に対して比較される。この動作は、そのようなマクロブロック行の水平方向の動きに対応する一連のベクトルを判別するのを助ける。次いで、ステップ1325において、上に定義したようにいくつかの合成ベクトルがほぼ同じ大きさをもち、同じ方向を向く場合に、そのようなベクトルの合成ベクトルがテキスト・クロールに対応するものかどうかが判別される。
ステップ1320は、ステップ1315と同様の流儀で進むが、マクロブロックの行について少なくとも二つのフレームの間の合成動きベクトルを計算する代わりに、平均を表すマクロブロック行に対応する動きベクトルが計算される。次いで、ステップ1330において、結果として得られるベクトルがほぼ同じ大きさをもち、同じ方向を向く場合に、そのような平均ベクトルがテキスト・クロールに対応するかどうかが判別される。
ステップ1325および/または1330が、ある単数または複数の行に対応するマクロブロックがテキスト・クロールを表しているとの判定を生じれば、ステップ1335は、テキスト・クロールに対応していると同定されたマクロブロック行およびフレームに対応する情報を保存させる。ステップ1340では、ビデオ・デコーダ25は、マクロブロックのどの行が、テキスト・クロールに対応すると同定された合成ベクトルをもつかを判別する。ステップ1350では、ビデオ・デコーダ25は、クロールの境界を定義し、そのような領域に対応する行の除去またはビデオ・スケーリング機能の利用によって表示領域からそのような領域を削除する。
本発明は、コンピュータ実装されたプロセスおよびそれらのプロセスを実施するための装置の形で具現されうる。本発明は、物理的な媒体に具現されたコンピュータプログラムコードの形でも具現されうる。媒体とは、フロッピー・ディスケット、読み出し専用メモリ(ROM)、CD-ROM、ハードドライブ、高密度ディスクまたは他の任意のコンピュータ可読記憶媒体のようなものである。ここで、該コンピュータプログラムコードがコンピュータにロードされ、コンピュータによって実行されると、該コンピュータは本発明を実施するための装置となる。本発明は、コンピュータプログラムコードの形でも具現されうる。コンピュータプログラムコードは、たとえば、記憶媒体に記憶されていても、コンピュータにロードされ、および/またはコンピュータによって実行されても、あるいは何らかの伝送媒体を通じて電信されてもよい。伝送媒体を通じてとは、電気配線またはケーブルを通じて、光ファイバーを通じて、あるいは電磁放射を介してなどである。ここで、該コンピュータプログラムコードがコンピュータにロードされ、コンピュータによって実行されると、該コンピュータは本発明を実施するための装置となる。汎用プロセッサ上で実装されるときは、コンピュータプログラムコード・セグメントが該プロセッサを、特定の論理回路を生成するよう構成する。