(57)【要約】【課題】複数画像ウインドウを表示する電子装置のディスプレイで、ユーザに見えない部分に対するデータをメモリからフェッチしないようにして、メモリ帯域幅と電力消費を改善する方法を開示する。【解決手段】この方法は、複数の画像ウインドウの重なった部分を決定し、複数のＤＭＡチャネルと、重ならない部分のピクセルデータをメモリからディスプレイにフェッチするためのアドレス指定とを備えたディスプレイ・コントローラを利用する。背景図形ウインドウにビデオウインドウが重なっている場合、ビデオウインドウが重ならない図形ウインドウの領域を決定し、これらの領域をビデオウインドウの各側部と隣接する複数の部分に分割する。背景図形のピクセルデータは、該部分ごとに適切なアドレス指定方式を使用し、重なる部分に対するデータを読み出さずに、メモリからフェッチする。【選択図】図１ｂ
2006048042.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイ画面で第２のウインドウの前面に重なる第１のウインドウと、前記第２のウインドウのパラメータを決定し、
前記第１のウインドウが、前記第２のウインドウのどの領域に重なっていないかを決定し、
各部分が前記第１のウインドウの個々の側部と境を接する複数の部分に前記領域を分割し、
前記部分ごとに、前記部分に適したアドレス指定モードを使用して、メモリからピクセルデータをフェッチし、
前記ディスプレイ画面上に前記ピクセルデータを表示する、
ことを含む方法。
【請求項２】
請求項１に記載の方法において、前記部分に適したアドレス指定モードを使用してメモリからピクセルデータをフェッチすることが、リニア・アドレス指定モード、シングル・インデクシング・モードおよびダブル・インデクシング・モードから成るグループから選択されたアドレス指定モードを使用して、前記メモリからピクセルデータをフェッチすることを含む前記方法。
【請求項３】
請求項１または請求項２に記載の方法において、アドレス指定モードを使用することが、前記第１のウインドウが重なる前記第２のウインドウのセクションに対応するメモリアドレスをスキップするためにオフセットを使用することを含む前記方法。
【請求項４】
請求項１から請求項３のいずれかに記載の方法において、前記部分に適したアドレス指定モードを使用してメモリからピクセルデータをフェッチすることが、前記部分の高さと幅を計算することを含む前記方法。
【請求項５】
請求項１から請求項４のいずれかに記載の方法であって、ダイレクト・メモリ・アクセス・チャネルのクロックを停止して電力を節約することを更に含む前記方法。
【請求項６】
第２のウインドウに重なる第１のウインドウを含むディスプレイと、
前記ディスプレイに結合され、複数のダイレクト・メモリ・アクセス（「ＤＭＡ」）チャネルを含むディスプレイ・コントローラと、
前記ディスプレイ・コントローラに結合され、前記第１のウインドウが重ならない前記第２のウインドウの領域を検出するように適合されたソフトウエアを格納するメモリと、
を含むシステムにおいて、
前記領域は、各部分が前記第１のウインドウの個々の部分と隣接する複数の部分に分割され、
前記ＤＭＡチャネルは、前記部分のそれぞれに適切なアドレス指定モードを使用して、前記部分に対応するピクセルデータを前記メモリからフェッチし、
前記ディスプレイは、前記部分ごとに前記ピクセルデータを表示する、
前記システム。
【請求項７】
請求項６に記載のシステムにおいて、前記ソフトウエアは、第１のウインドウと第２のウインドウの位置の変化に関するエンドユーザの入力を監視するとともに、前記変化に基づいてウインドウのパラメータを再計算する前記システム。
【請求項８】
請求項６または請求項７に記載のシステムにおいて、前記ＤＭＡチャネルは、電力を節約するために停止する内部クロックを含む前記システム。
【請求項９】
第２のウインドウに重なる第１のウインドウを含む表示する手段と、
前記表示する手段に結合される制御する手段と、
前記制御する手段に結合されるとともに、前記第１のウインドウが重ならない前記第２のウインドウの領域を検出するように適合されたソフトウエアを含む格納する手段と、
を含むコンピュータシステムにおいて、
前記第２のウインドウの前記領域は、複数の部分に分割され、
前記制御する手段は、前記格納する手段にアクセスする複数の手段を含み、
前記アクセスする手段は、前記部分のそれぞれに適切なアドレス指定モードを使用して、前記格納する手段から前記部分に対応するピクセルデータをフェッチし、
前記表示する手段は、前記部分ごとに前記ピクセルデータを表示する前記コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数ウインドウを表示する電子装置のディスプレイにおいてデータをメモリからフェッチする方法に関する。
【背景技術】
【０００２】
（背景）
多くの電子装置（例えば、パーソナル・コンピュータ、移動電話機、携帯情報端末など）は、エンドユーザが１つのディスプレイで同時に複数の図形／ビデオ画像を見ることを可能にする図形／ビデオ・ディスプレイ・システムを含む。図形／ビデオ・ディスプレイ・システムは、ハードウエアによるオーバーレイ・サポート（hardware overlay support）を使用してそのような複数図形機能を提供しており、この中では、各種メモリ位置から図形ピクセルデータをフェッチするために、複数のダイレクト・メモリ・アクセス（ＤＭＡ）チャネルが使用されている。
【０００３】
図１ａを参照すると、パーソナル・コンピュータ（ＰＣ）９８は、例えば、インターネットのウエブサイトから取得した静止図形画像（グラフィカルイメージ）１０２をディスプレイパネル１００に表示することができる。この図形画像（グラフィカルイメージ）１０２の前面に（つまり、この図形画像に重ねて）ＰＣ９８は、マイクロソフト（登録商標）のWindows（登録商標）Media PlayerやRealPlayer（登録商標）のメディアプレイヤのような適切なメディアプレイヤを使って、ビデオウインドウ１０４の中でビデオをプレイすることができる。図形画像１０２とビデオウインドウ１０４の位置づけは、キーボード９４やマウス９６のような入力装置を使用するエンドユーザによって変更される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
場合によっては、図形画像ウインドウ１０２の前面にビデオウインドウ１０４がかなり長時間表示される（例えば、ビデオのクリップや長いフィルムを表示するビデオウインドウは、全部ではないが、ビデオの時間の殆どの間、背景画像（バックグランドイメージ）の前面に存在することもありうる）。ビデオウインドウ１０４が重なる図形画像（グラフィカルイメージ）ウインドウ１０２の一部はエンドユーザに見えない。したがって、ディスプレイ１００上でユーザに示されない背景図形画像１０２の一部を生成するために使用されるピクセルデータをメモリからフェッチすることは、メモリ帯域幅の浪費である。さらにＤＭＡチャネルのクロック（図示されず）は、これら不必要なピクセルデータを取り出すために使用される。したがって、これらクロックは、本来節約される電力を不必要に消費している。
【課題を解決するための手段】
【０００５】
（要約）
上に注意した問題点は、ディスプレイに表示されるピクセルデータだけをメモリから取り出す方法によって、大部分が解決される。１つの典型的な実施例は、ディスプレイ画面の第１のウインドウと第２のウインドウのパラメータを決定することを含み、前記第１のウインドウは第２のウインドウの前面に重ねられる。この方法は、第２のウインドウのどの領域に第１のウインドウが重ならないかを決定することと、前記領域を、各部分が第１のウインドウの個々の側部と境を接する複数の部分に分割することとを含む。その部分ごとにこの方法は、前記部分に適当なアドレス指定モードを使用してメモリからピクセルデータをフェッチすることと、前記ピクセルデータをディスプレイ画面に表示することを更に含む。
【実施例】
【０００６】
（詳細な説明）
以下の考察は本発明の各種実施例に対して向けられている。どの実施例に関する考察も、その実施例についてのみ典型的であることを意味しており、本発明の範囲をその実施例の詳細に限定することは意図されていない。「含む（include,comprise）」という用語は、限度が決められていない方法で用いられており、含むがそれだけに限定されないこと意味している。「結合する（couple）」という用語は、直接的または間接的電気接続を意味するように考えられている。したがって、第１の装置が第２の装置に結合する場合、その接続は直接的電気接続を介しての接続でもあり、他の装置や他の接続を介した間接的電気接続でもありうる。
【０００７】
本明細書に呈示されている主題は、ディスプレイパネルに表示されるピクセルデータだけを取り出すことによってシステムの帯域幅と電力を保護するオーバーレイ・ブロック・アドレス指定方法論（Overlay Addressing Block Methodology）を使用している。明快にするためと理解を容易にするため、オーバーレイ・ブロック・アドレス指定方法論を説明する前に、ハードウエアによるオーバーレイ・サポートと３種類のＤＭＡアドレス指定モードを説明する。これら３種類のＤＭＡアドレス指定モードは、ポスト・インクレメント・モード（Post Increment Mode）、シングル・インデクシング・モード（Single Indexing Mode）およびダブル・インデクシング・モード（Double Indexing Mode）である。
【０００８】
図１ｂは、ビデオデータ部２０２と図形（グラフィック）データ部２０４を含むメモリ２００を示している。ビデオデータ部２０２は、ビデオ画像（ビデオイメージ）をレンダリングするために使用されるピクセルデータを含み、図形データ部２０４は、静止図形画像をレンダリングするために使用されるピクセルデータを含む。メモリ２００は、シングルＤＭＡチャネル２０８、２１４とマルチプレクサ２１８を含むディスプレイ・コントローラ２１６に結合される。ＤＭＡチャネル２０８は、ビデオデータメモリ部２０２とマルチプレクサ２１８との間でデータを転送する。同様に、ＤＭＡチャネル２１４は、図形データメモリ部２０４とマルチプレクサ２１８との間でデータを転送する。ディスプレイ・コントローラ２１６は、背景画像（バックグランドイメージ）ウインドウ１０２の前面にビデオウインドウ１０４を示すディスプレイ１００に結合される。背景画像ウインドウ１０２の中に示される画像を形成するために使用されるピクセルデータは、メモリ２００の図形部２０４（つまり、アドレス0x80000000）から取得される。これらのピクセルデータは、シングルＤＭＡチャネル２１４を介してディスプレイ１００に転送され、（背景画像１０２として）ディスプレイ１００に表示される。ビデオウインドウ１０４を形成するピクセルデータは、メモリ２００のビデオデータ部２０２（つまり、アドレス0x40000000）から取得される。ビデオデータ部２０２からのピクセルデータは、シングルＤＭＡチャネル２０８を介してディスプレイ１００に転送され、（ビデオウインドウ１０４として）ディスプレイ１００に表示される。
【０００９】
マルチプレクサ２１８は、画像（イメージ）がディスプレイ１００に正確に表示されるようにＤＭＡチャネル２０８、２１４からのピクセルを選択する。例えば、ビデオウインドウ１０４が背景図形画像１０２の一部と重なっているので、マルチプレクサ２１８はディスプレイ１００のこの部分を満たすように選択されたピクセルが、図形データ部２０４ではなくメモリ２００のビデオデータ部２０２からフェッチされることを保証しなければならない。同様に、マルチプレクサ２１８は、ディスプレイ１００の他の領域のすべてがビデオデータ部２０２ではなく図形データ部２０４からのピクセルで満たされることを保証しなければならない。
【００１０】
図２ａは、メモリ２００にピクセルデータが格納される方法を示している。メモリ２００は、複数の行２０１、高さ２０３、幅２０５、予備オフセット２０７およびピッチ２０９を有し、ピッチ２０９は、幅２０５と予備オフセット２０７の和である。ポスト・インクレメント・モード（リニア・アドレス指定モードとしても知られている）は、ピクセルデータが連続してメモリに格納されている場合に使用されるＤＭＡアドレス指定モードである。例えば、図２ｂを参照すると、３ピクセルの幅と４ピクセルの高さを有するディスプレイ２２０が示されている。ディスプレイ２２０内の各行は３ピクセルを有し、各ピクセルは、ピクセル１、ピクセル２、...ピクセル１２とラベル表示されている。ピクセルはこの順番でディスプレイ２２０に配置されているので、ピクセルデータも、これと同じ順番でメモリ２２２からフェッチされる。したがって、ピクセルデータは、ピクセルデータがフェッチされる順番でメモリ２２２の中に配置されているので、ここではポスト・インクレメント・モードが使用される。
【００１１】
この例では、ピクセルのサイズは２バイトである。基準アドレスは0x00004000であり、それぞれ２バイトのピクセルを読み出すために0x00000002だけ増分（インクリメント）される。連続する各ピクセル１、２、....、１２はメモリ２２２の中に連続して格納されるので、各種メモリアドレスに飛び越すためのオフセットは不要である。しかし、多くの場合、連続するピクセルデータは、メモリ内で連続して格納されない。そのような場合、ディスプレイ１００に表示されるべき連続したピクセルデータを含むメモリ位置にジャンプするためにオフセットが必要である（つまり、予備オフセット２０７が存在する）。したがって、シングル・インデクシング・モードまたはダブル・インデクシング・モードが使用される。
【００１２】
シングル・インデクシング・モードは、１つのディスプレイ行内のピクセルデータが連続して格納されている場合に使用されるが、ピクセルの次の行を表示するためにはオフセットを適用しなければならない。図２ｃを参照すると、ディスプレイ２３０は図２ｂのディスプレイ２２０と同じであるが、ピクセル１、２、....、１２がディスプレイの行によってメモリ２３２に格納されている（つまり、ピクセル１、２および３が一緒に格納され、ピクセル４、５および６が一緒に格納されている）ので、各連続行のピクセルを取り出すためにオフセットが適用される。したがって、メモリ２３２の基準アドレスの先頭は0x00004000であり、行１の終わり（ピクセル３）に達するまで、アドレスは0x00000002（２バイトピクセル）だけ増分される。次にディスプレイ２３０の行２を満たすため0x00000006のオフセットが適用されるので、次のメモリアドレス読み出しは、ピクセル４を含む0x0000400Cである。このアルゴリズムは、行１〜４が読み出され、ディスプレイ２３０に表示されるまで繰り返される。しかし、ある場合には、シングル・インデクシング・モードは不十分である。例えば、ディスプレイ２３０で画像が回転している場合、もはやメモリ２３２からピクセルを取り出せない。そのような場合、ダブル・インデクシング・モードが使用される。
【００１３】
ダブル・インデクシング・モードでは、シングル・インデクシング・モードで使用されるオフセットは、隣接するピクセル間に適用される付加的オフセットと結合される。このため、ダブル・インデクシング・モードは、３つのアドレス指定モードの内、最も汎用性があり使用されることが多い。特に図２ｄは、図２ｃのディスプレイ２３０とほぼ同じであるディスプレイ２４０を示しているが、この場合は、ディスプレイ２４０が時計方向に９０度回転している。したがって、ディスプレイ２３０の中のように各行に４行３列があるのではなく、ディスプレイ２４０は、３行各行に４列を有する。このため、もはやピクセルデータは、ディスプレイ２３０のように、次に示す連続した順番で、つまりピクセル１、２、....、１２の順番でメモリから取り出されない。そのかわり、ピクセル１０、ピクセル７、ピクセル４、ピクセル１、ピクセル１１、ピクセル８、ピクセル５、ピクセル２、ピクセル１２、ピクセル９、ピクセル６、ピクセル３の順番でピクセルがメモリ２４２から取り出される。何故ならば、この順番は、ピクセルがディスプレイ２４０で表示される順番だからである。行１を参照すると、ピクセル１０のデータは、メモリアドレス0x00004024に配置され、次のピクセル７のデータは、メモリアドレス0x00004018に配置されているので、メモリ２４２からピクセル１０を読み出した後にオフセットＡが適用されなければならない。同様に、ピクセル１は、メモリアドレス0x00004000に配置され、続くピクセル１１は、メモリアドレス0x00004026に配置されているので、メモリ２４２からピクセル１を読み出した後にオフセットＢが適用されなければならない。このようにオフセットＡは、同じ行内のピクセルを取り出すために使用されるオフセットであり、オフセットＢは、後続の行でピクセルの取り出しを始めるために使用される。したがって、ディスプレイ２４０は、ピクセル１０のデータを読み出してオフセットＡを適用し、ピクセル７のデータを読み出してオフセットＡを適用し、ピクセル４のデータを読み出してオフセットＡを適用し、ピクセル１のデータを読み出してオフセットＢを適用し、ピクセル１１のデータを読み出してオフセットＡを適用し、以下同様にすることによってレンダリングされる。ピクセルデータは、ディスプレイ２４０が、ピクセル１〜１２を表示するために必要なピクセルデータを受信してしまうまでこの方法で読み出される。
【００１４】
前に説明したように、システム帯域幅を改善し電力を節約するためには、ディスプレイ画面に実際に表示されるピクセルデータだけをメモリからフェッチしなければならない。図３ａは、背景図形ウインドウ３０２ａに重なるビデオウインドウ３００ａを含む典型的なディスプレイ画像２９８を示している。この例における背景図形ウインドウ３０２ａの幅Ｇｗは６０ピクセルで、高さＧｈは５０ピクセルである。ビデオウインドウ３００ａの幅Ｖｗは３０ピクセルである。ｘ軸とｙ軸の方向は図示の通りである。図形ウインドウ３０２の上方左ｘ座標はＧｘとラベル表示され、上方左ｙ座標はＧｙとラベル表示されている。同様に、ビデオウインドウ３００の上方左ｘ座標はＶｘとラベル表示され、ビデオウインドウ３００の上方左ｙ座標はＶｙとラベル表示されている。座標（Ｇｘ、Ｇｙ）は（０、０）である。図３ｂに示すように、図形ウインドウ３０２ａは図形メモリ３２５から取り出されたピクセルデータで満たされる。Ｇｘ、Ｇｙ、Ｇｈ、Ｇｗ、Ｖｘ、Ｖｙ、ＶｈおよびＶｗのパラメータ値は、オペレーティングシステム（ＯＳ）ソフトウエアによって絶えず監視されている。ビデオウインドウ３００ａの位置を変えるためにエンドユーザが何らかのコンピュータ入力装置（例えば、マウス９６またはキーボード９４）を使用すると、例えば、ＯＳソフトウエアは、エンドユーザの行動を認識し、ビデオウインドウ３００ａと図形ウインドウ３０２ａのパラメータ値のいくつかまたはすべてを再決定する。
【００１５】
図３ｂは、図３ａのディスプレイ画像２９８のコンテクスト（context）で図形メモリ３２５が構成される仕方を示している。図３ａの図形ウインドウ３０２ａを表示するために使用されるピクセルデータは、この図形メモリ３２５からフェッチされる。図形メモリ３２５の影を付けた部分３００ｂは、表示されない図形ウインドウ３０２ａの部分を表す（つまり、ビデオウインドウ３００はこの領域の前面にあるから）。したがって、影を付けた部分３００ｂのピクセルデータは、取り出されない。反対に、影を付けない部分３０２ｂのピクセルデータは、ディスプレイのために取り出される。例えば、図形ウインドウ３０２ａの幅Ｇｗは６０ピクセルなので、図形メモリ３２５の行１と行２から６０個のピクセルデータが取り出される。影を付けた部分３００ｂは行３〜８の一部を占有するので、１０個のピクセルデータだけが影を付けた部分３００ｂの左側からフェッチされ、２０個のピクセルデータは影を付けた部分３００ｂの右側からフェッチされる。最終的に、６０個のピクセルデータが行９から取り出される。
【００１６】
ビデオウインドウ３００ａの位置（または図形メモリ３２５のコンテクストでは影を付けた部分３００ｂの位置）は可変であり、内側のどこかにあってもよく、部分的に外側にあってもよく、または図形ウインドウ３０２ａのエッジの上に乗っていてもよい。しかし、上に説明した３つのアドレス指定モードは、メモリに格納されたピクセルデータ間の間隔が規則正しく決定されていることを必要とするので、図３ｂに示すように、図形メモリ３２５を正確にアドレス指定することができるように、３つのアドレス指定モードを使用してＤＭＡチャネルをプログラムすることはできない。このため、図３ｃに示すように、「ブロック」方法論が使用される。このブロック方法論は、影を付けない部分３０２ｂを４つの個別部分又はブロックに分割する。配置に依存して、各ブロックは、３つのアドレス指定モードのうち最適のモードを使用してアドレス指定されるが、他のアドレス指定モードを使用しても良い。これらのブロックは、ブロック１、ブロック２、ブロック３およびブロック４とラベル付けされる。ブロック１は、影を付けた部分３００ｂの上部に配置される（つまり、部分３００ｂより低いｙ座標のところにある）図形ウインドウ３０２ａの一部として定義される。ブロック２は、影を付けた部分３００ｂの左に配置される（つまり、部分３００ｂより低いｘ座標のところにある）図形ウインドウ３０２ａの一部として定義される。ブロック３は、影を付けた部分３００ｂの右に配置される（つまり、部分３００ｂより大きいｘ座標のところにある）図形ウインドウ３０２ａの一部として定義される。ブロック４は、影を付けた部分３００ｂの下に配置される（つまり、部分３００ｂより大きいｙ座標のところにある）図形ウインドウ３０２ａの一部として定義される。ビデオウインドウ３００ａは、ディスプレイ画像２９８のどの位置に配置されても良いので、対応する影を付けた部分３００ｂも図形メモリ３２５のどの位置に配置されてもよい。したがって、ある場合には、４ブロックの１つまたはそれ以上が存在しないこともある。例えば、図４は、影を付けない部分３０２ｂ内部の影を付けた部分３００ｂの複数の可能な位置を示している。図４（６）に示すように、影を付けた部分３００ｂがディスプレイ画像２９８の最上部に配置されると、ブロック１は存在しない。同様に、影を付けた部分３００ｂが図４（１０）に示すように配置されると、ブロック２もブロック３も存在しない。
【００１７】
ブロック方法論を実施するために、有限状態マシン（「ＦＳＭ」）が使用される。図１ｂと図５を参照すると、ＦＳＭのステップは、図１ｂに示すハードウエアに結合された回路論理（図示されず）によって遂行される。特に図５に示すＦＳＭ４９８は、ディスプレイ２９８でブロック１〜４の存在をチェックする。存在するブロックごとに、ＦＳＭは、ＤＭＡチャネル２１４が適当なアドレス指定モードを使用してメモリ２００から適切なピクセルデータをフェッチすることを可能にする。図５を参照すると、ＦＳＭ４９８は、ＦＳＭ４９８がメモリ２００からピクセルデータを活動的に取り出していないアイドル状態（ステップ５００）で（つまり、ディスプレイ画面１００のフレームシフトまたはラインシフト中に）開始することができる。ディスプレイ画面１００のフレームシフトまたはラインシフトが進行中でなければ、ＦＳＭ４９８は、図３ａ〜３ｃに示すＶｙとＧｙの値を比較することによってブロック１が存在するか否かの決定を開始する（ステップ５０２）。Ｖｙの値がＧｙの値より大きければブロック１が存在する。ブロック１が存在しない場合、ＦＳＭはブロック２が存在するか否かの決定を開始する（ステップ５０６）。ブロック１が存在すれば、ＤＭＡチャネル２１４はダブル・インデクシング・アドレッシング・モード（又は他の適切なアドレッシングモード）を使用し、ブロック１に対応するピクセルデータをフェッチする（ステップ５０４）。フェッチされるピクセルデータの量は、ブロック１のサイズを計算することによって決定される。特にブロック１の高さと幅は、
ブロック１の高さ＝Ｖｙ−Ｇｙ                          （１）
ブロック１の幅＝Ｇｗ                                 （２）
として計算される。ブロック１の高さと幅を決定することによって、ＤＭＡチャネル２１４は、図２ｄのコンテクストで上に説明したように、メモリ２００からピクセルデータを取り出すことができる。前に説明したように、ブロック１で示す画像が回転されていない限りオフセットは不要なので、ダブル・インデクシング・モードのオフセットＡはゼロに設定される。
【００１８】
ＦＳＭは、ブロック２が存在するか否かを決定することによって進行する（ステップ５０６）。Ｖｘの値がＧｘの値より大きく、さらに（Ｇｙ＋Ｇｈ）の値がＶｙの値より大きければブロック２が存在する。ブロック２が存在すれば、ブロック２の高さと幅は次のように計算される。
ブロック２の高さ＝Ｖｙ−Ｇｙ                          （３）
ブロック２の幅＝Ｖｘ−Ｇｘ                            （４）
式３は、ブロック２の高さを決定する。しかし、ビデオウインドウ３００は必ずしも図形ウインドウ３０２の中に完全に取り囲まれていないので（例えば、図４（１３）のように）、ブロック２の高さは必ずしも式３を使用して決定されるとはかぎらない。式３は、ビデオウインドウ３００が図形ウインドウ３０２の中に完全に取り囲まれている場合（つまりブロック４が存在する場合）にのみ使用される。したがって、ブロック２の高さを計算する前に、ブロック４の存在を検出することが必要である（ステップ５１８）。ブロック４の存在は、後で示す式９を使用して決定される。
【００１９】
図１ｂと図３ｃを参照すると、ＤＭＡチャネル２１４は、ブロック１で使用された方法とは異なる方法でブロック２とブロック３からピクセルデータをフェッチする。より明確に説明すると、上に説明したように、ピクセルデータは、メモリ２００から行によってフェッチされる。したがって、行１を表すすべてのピクセルデータがフェッチされ、続いて行２のピクセルデータがフェッチされ、以下同様にフェッチされる。しかし、ブロック２とブロック３に間に影を付けた部分３００ｂが存在するので、ＤＭＡチャネル２１４は、ブロック２とブロック３のピクセルデータを交互に（つまりピンポンのように）取得しなければならない。例えば、行３のピクセルデータを読み出す場合、ＤＭＡチャネル２１４は、ブロック２の幅に対応する（つまり、上式４で計算したように）いくつかのピクセルデータを読み出す。これらデータを読み出した後、ＤＭＡチャネル２１４は、影を付けた部分３００ｂの行３に対応するメモリ位置をスキップし、（ブロック３が存在すれば）ブロック３のために、ブロック３の幅に対応するいくつかのピクセルデータの読み出しを開始する。ダブル・インデクシング・モードが使用されているので、ＤＭＡチャネル２１４は、影を付けた部分３００ｂの幅に従ってオフセットＢを設定することにより、影を付けた部分３００ｂに対応するメモリアドレスをスキップすることができる。このように、所定の行３〜８に対して、ＤＭＡチャネル２１４がブロック２のためのメモリの読み出しを終了すると、オフセットＢは影を付けた部分（つまり、ビデオウインドウ）３００ｂに対応するメモリアドレスをスキップして、ブロック３が存在していれば、ブロック３の同じ行のメモリの読み出しを再開する。
【００２０】
ブロック３の存在は、ＦＳＭのステップ５１０で決定される。より詳細には、以下の２式がともに真であれば、ブロック３が存在する。
（（Ｇｘ＋Ｇｗ）＞（Ｖｘ＋Ｖｗ））                       （５）
（（Ｇｙ＋Ｇｈ）＞Ｖｙ）                                （６）
【００２１】
ブロック３が存在すれば、ＦＳＭは、ブロック３の高さと幅を次のように計算する。
ブロック３の幅＝（Ｇｗ＋Ｇｘ−（Ｖｘ＋Ｖｗ））          （７）
ブロック３の高さ＝Ｖｙ−Ｇｙ                          （８）
ＤＭＡチャネル２１４はダブル・インデクシング・モードを使用して、ブロック３に対するピクセルデータをメモリ２００から取り出す。ＤＭＡチャネル２１４はオフセットＡを使用して、同じ行内の連続するピクセルデータを読み出す。ＤＭＡチャネル２１４は、予備オフセット３２８をスキップすることによって、ピッチ調整のためのオフセットＢを使用し、次の行のデータの読み出しを再開する。ＤＭＡチャネル２１４は、ブロック２とブロック３が完全に読み出されるまでこの交互読み出しの方法でブロック２とブロック３の読み出しを続ける。
【００２２】
ブロック３を読み出した後、ＦＳＭはブロック４が存在していることを再確認することができる（ステップ５１４）。しかし、これは不要である。何故ならば、ブロック４の存在はステップ５１８で以前に検証されていたからである。次式が真であればブロック４が存在する。
（Ｇｙ＋Ｇｈ）＞（Ｖｙ＋Ｖｈ）                          （９）
ブロック４が存在すれば、ＦＳＭは次のようにブロック４の幅と高さを計算する。
ブロック４の幅＝Ｇｗ                                （１０）
ブロック４の高さ＝Ｇｈ−Ｖｈ−Ｖｙ−Ｇｙ              （１１）
【００２３】
ＤＭＡチャネル２１４は、ダブル・インデクシング・モード（または他の適切なアドレス指定モード）と、ブロック４の高さと幅の計算結果を使用して、ブロック４に対するピクセルデータをフェッチする。ブロック４のピクセルデータを読み出す場合、オフセットＢは予備のオフセット３２８をスキップするために使用される。ブロック４のピクセルデータがメモリ２００から読み出されてディスプレイ１００で表示されてしまうと、ＦＳＭ４９８の処理は完了する。
【００２４】
図３ｃの影を付けた部分３００ｂの中で見付けられたメモリ位置のピクセルデータは読み出されないので、メモリ帯域幅が節約され従来の技術よりもシステムの性能が向上する。更にこれらのメモリ位置が読み出されないので、ディスプレイ全体のレンダリング処理はより速い速度で完了し、時間も同様に節約される。更に時間も節約されるので、ＤＭＡチャネル２１４を制御するシステムクロックは、再び必要になるまで一時的に停止され、電力を節約することになる。
【００２５】
開示の範囲は、図５に示すＦＳＭ４９８に限定されない。ＦＳＭのいかなる変形も、上に説明したオーバーレイ・ブロック・アドレス指定方法論を実施するために使用されうる。更に図形画像ウインドウに重なるビデオウインドウのコンテクストでオーバーレイ・ブロック・アドレス指定方法論が説明されているが、開示範囲は、この組み合わせに限定されない。他の該当する重ね合わせの組み合わせは、他の図形画像の前面の図形画像、ビデオウインドウの前面の図形画像、ビデオウインドウの前面のビデオウインドウなどを含む。いくつかのシステムは一度に３，４またはそれ以上の画像を表示することさえ可能である。
【００２６】
上記考察は、本発明の原理と各種実施例を例示するものである。上記開示が完全に理解されると、多数の変更や改造が当業者に明瞭になるであろう。本開示は、そのような変更や改造をすべて包含すると解釈されるものと意図する。
【００２７】
複数の重ね合わされた図形／ビデオ画像を表示する方法は、画像ウインドウ１０２、１０４の重なった部分を決定するとともに、複数のダイレクト・メモリ・アクセス（ＤＭＡ）チャネル２０８、２１４と、重なっていない部分のピクセルデータ２０２、２０４をメモリ２００からディスプレイ１００にフェッチするためのアドレス指定とを備えたディスプレイ・コントローラ２１６を利用する。背景図形ウインドウ１０２にビデオウインドウ１０４が重なっていると説明した実施例では、ビデオウインドウ１０４が重ならない図形ウインドウ１０２の領域が決定されると、これらの領域は、ビデオウインドウ１０４の個々の側部と境を接する複数の部分にそれぞれ分割される。背景図形のピクセルデータは、それぞれの部分に対するアドレス指定を使用し、重なる部分に対するデータを読み出さずに、メモリからフェッチされる。
【図面の簡単な説明】
【００２８】
【図１ａ】図形画像ウインドウの前面にビデオウインドウを表示するパーソナル・コンピュータのディスプレイパネルを示す図である。
【図１ｂ】複数のＤＭＡチャネルを含む典型的なハードウエアによるオーバーレイ・サポート・システムを示す図である。
【図２ａ】ピクセルデータメモリの構成方法を示す図である。
【図２ｂ】ポスト・インクリメント・モードの例を示す図である。
【図２ｃ】シングル・インデクシング・モードの例を示す図である。
【図２ｄ】ダブル・インデクシング・モードの例を示す図である。
【図３ａ】図１ｂのディスプレイに関する座標系を示す図である。
【図３ｂ】メモリの典型的な図形部がアドレス指定される方法を示す図である。
【図３ｃ】本発明の実施例によるオーバーレイ・ブロック・アドレス指定方法論におけるメモリの図形部を示す図である。
【図４】本発明の実施例によるオーバーレイ・ブロック・アドレス指定方法論によって処理される各種ディスプレイの可能性を示す図である。
【図５】本発明の好適実施例によるオーバーレイ・アドレス指定・ブロック方法を実施するために使用される典型的な有限状態マシンを示す図である。
【符号の説明】
【００２９】
１００、２００、２２０、２３０、２４０  ディスプレイ
１０２  背景図形画像ウインドウ
１０４  ビデオウインドウ
２００、２２２、２３２、２４２  メモリ
２０１  行
２０２  ビデオデータ
２０３  高さ
２０４  Ｏ／Ｓと図形データ
２０５  幅
２０７  予備オフセット
２０８、２１４  １チャネルＤＭＡ
２０９  ピッチ
２１６  ディスプレイ・コントローラ
２１８  マルチプレクサ
【図１ａ】
2006048042.tif 000003
【図１ｂ】
2006048042.tif 000004
【図２ａ】
2006048042.tif 000005
【図２ｂ】
2006048042.tif 000006
【図２ｃ】
2006048042.tif 000007
【図２ｄ】
2006048042.tif 000008
【図３ａ】
2006048042.tif 000009
【図３ｂ】
2006048042.tif 000010
【図３ｃ】
2006048042.tif 000011
【図４】
2006048042.tif 000012
【図５】
2006048042.tif 000013