(57)【特許請求の範囲】
【請求項１】
表示領域と表示コンテンツとを含む表示コマンドを用いて画像フレームを表示するレンダラであって、
先行の画像フレームを表示するための第１表示コマンド組、及び／又は、後続の画像フレームを表示するための第２表示コマンド組を処理して、該処理済み表示コマンド組が同一組のどの表示領域とも交わらない表示領域のみから成るようにし、且つ、該処理済み表示コマンド組の表示領域が画像フレームの表示領域を構成するようにする処理手段と、
処理済み第１表示コマンド組に含まれていない処理済み第２表示コマンド組の表示コマンドを特定する特定手段と、
を備え、特定された表示コマンドを実行するように構成され、
前記処理手段が、
各々が前記処理済み第１表示コマンド組の表示矩形のサブ領域と前記処理済み第２表示コマンド組の表示矩形のサブ領域である表示矩形の補助組を形成し、
前記補助組に含まれていない表示矩形に対する前記処理済み第２表示コマンド組の表示コマンドの各々を、前記補助組の表示矩形に対する１組の表示コマンドに分解し、及び、
前記補助組に含まれていない表示矩形に対する前記処理済み第１表示コマンド組の表示コマンドの各々を、前記補助組の表示矩形に対する１組の表示コマンドに分解することによって、
前記処理済み第１表示コマンド組と前記処理済み第２表示コマンド組とを再処理することに適しており、
分解済み表示コマンドの再処理済み第２表示コマンド組の表示コマンドの各々について、前記特定手段が、同一の表示矩形に対する再処理済み第１表示コマンド組の表示コマンドが同じ表示コンテンツを含んでいるか否かのみを特定する、前記レンダラ。
【請求項２】
前記表示領域の各々が矩形であり、
前記特定手段が、
前記処理済み第２表示コマンド組の表示コマンドについて、同一の表示矩形に対する表示コマンドが前記処理済み第１表示コマンド組にも含まれているか否かを特定し、
若し含まれていれば、前記同一の表示矩形に対する前記処理済み第１表示コマンド組の前記表示コマンドが同一の表示コンテンツを含んでいるか否かを特定するように構成されている、請求項１記載のレンダラ。
【請求項３】
表示コンテンツが一定数のレイヤ・オブジェクトを含み、該レイヤ・オブジェクトの各々がグラフィカル・オブジェクト、位置情報、及び、該グラフィカル・オブジェクトに関するアルファ・コンポジション情報を含み、
前記特定手段が、前記再処理済み第１表示コマンド組の表示コマンドが前記再処理済み第２表示コマンド組の表示コマンドと同数のレイヤ・オブジェクトを含み、更にこのレイヤ・オブジェクトの各々について同じグラフィカル・オブジェクト、同じ位置情報及び同じアルファ・コンポジション情報を含むか否かを特定することによって、前記同一の表示矩形に対する前記再処理済み第１表示コマンド組の表示コマンドが同じ表示コンテンツを含んでいるか否かを特定する、請求項１記載のレンダラ。
【請求項４】
前記先行の画像フレーム専用のセクションと前記後続の画像フレーム専用の別のセクションとを有し、数組の表示コマンドを記憶するように構成されたデータベースと、
データベース・セクションを消去する手段と、
各データベース・セクションの専用を交換する手段と、
を更に備えた、請求項２又は請求項３記載のレンダラ。
【請求項５】
表示領域と表示コンテンツとを含む１組の表示コマンドを用いて、レンダラが画像フレームを表示する方法であって、
前記レンダラが、先行の画像フレームを表示するための第１表示コマンド組、及び／又は、後続の画像フレームを表示するための第２表示コマンド組を処理して、該処理済み表示コマンド組が同一組のどの表示領域とも交わらない表示領域のみから成るようにし、且つ、該処理済み表示コマンド組の表示領域が画像フレームの表示領域を構成するようにする処理ステップと、
前記レンダラが、処理済み第１表示コマンド組に含まれていない処理済み第２表示コマンド組の表示コマンドを特定する特定ステップと、
前記レンダラが、特定された表示コマンドを実行する実行ステップと、
を備え、
前記処理ステップが、
各々が前記処理済み第１表示コマンド組の表示矩形のサブ領域と前記処理済み第２表示コマンド組の表示矩形のサブ領域である表示矩形の補助組を形成し、
前記補助組に含まれていない表示矩形に対する前記処理済み第２表示コマンド組の表示コマンドの各々を、前記補助組の表示矩形に対する１組の表示コマンドに分解し、及び、
前記補助組に含まれていない表示矩形に対する前記処理済み第１表示コマンド組の表示コマンドの各々を、前記補助組の表示矩形に対する１組の表示コマンドに分解することによって、
前記処理済み第１表示コマンド組と前記処理済み第２表示コマンド組とを再処理するステップを含み、
前記特定ステップが、分解済み表示コマンドの再処理済み第２表示コマンド組の表示コマンドの各々について、同一の表示矩形に対する再処理済み第１表示コマンド組の表示コマンドが同じ表示コンテンツを含んでいるか否かのみを特定するステップを含む、前記方法。
【請求項６】
前記表示領域の各々が矩形であり、
前記特定ステップが、
前記処理済み第２表示コマンド組の表示コマンドについて、同一の表示矩形に対する表示コマンドが前記処理済み第１表示コマンド組にも含まれているか否かを特定するステップと、
若し含まれていれば、前記同一の表示矩形に対する前記処理済み第１表示コマンド組の前記表示コマンドが同じ表示コンテンツを含んでいるか否かを特定するステップと、を含む、請求項５記載の方法。
【請求項７】
表示コンテンツが一定数のレイヤ・オブジェクトを含み、該レイヤ・オブジェクトの各々がグラフィカル・オブジェクト、位置情報、及び、該グラフィカル・オブジェクトに関するアルファ・コンポジション情報を含み、
前記特定ステップが、前記再処理済み第１表示コマンド組の表示コマンドが前記再処理済み第２表示コマンド組の表示コマンドと同数のレイヤ・オブジェクトを含み、更にこのレイヤ・オブジェクトの各々について同じグラフィカル・オブジェクト、同じ位置情報及び同じアルファ・コンポジション情報を含むか否かを特定するステップを含む、請求項５記載の方法。
【請求項８】
前記レンダラが、前記先行の画像フレーム専用のデータベース・セクションに前記再処理済み第１表示コマンド組の表示コマンドを記憶するステップと、
前記レンダラが、前記後続の画像フレーム専用の別のデータベース・セクションに前記再処理済み第２表示コマンド組の表示コマンドを記憶するステップと、
前記特定された表示コマンドを実行した後に、前記後続の画像フレーム専用の前記データベース・セクションを消去し、各データベース・セクションの専用を交換するステップと、
を更に備えた、請求項５又は請求項７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示コマンド組を用いて画像フレームを表示するレンダラ（Ｒｅｎｄｅｒｅｒ）とその方法に関する。
【背景技術】
【０００２】
レンダラは、その入力に於いて表示コマンドを受信して、基本プラットフォームのグラフィックス・システム上でそれを実行する。レンダラを用いて、映画の画像フレーム・シーケンス、コンピュータ・アニメーションの画像フレーム・シーケンス、或いは、静止画または動画とアニメーションとを組み合わせたものの画像フレーム・シーケンスが、ディスプレイ上に表示できる。例えば、任意の映画に関するインタラクティブ・メニューをその映画と共にディスプレイ上に表示できる。
【０００３】
アーティファクトやフリッカの発生を防止するために、レンダラは、画面がフロント・バッファからの画面リフレッシュ・レートに従ってリフレッシュされる間に、バック・バッファに於いて表示コマンドを実行する。バック・バッファに於いて次の画像フレームに関連する全ての表示コマンドが実行された後、バック・バッファの全てのピクセル値がフロント・バッファにブリット（ｂｌｉｔ：ビットマップ・ブロック転送）される。即ち、バック・バッファ内のピクセル値がフロント・バッファに（望ましくは一挙に）コピーされる。次に、レンダラによって、バック・バッファがクリア（ｃｌｅａｒ、データ消去）されて、次の画像フレームに続く画像フレームに関連する表示コマンドが実行される。
【０００４】
表示コマンドの実行、ブリッティング（ｂｌｉｔｔｉｎｇ：ブリットすること、即ち、ビットマップ・ブロック転送すること）及びクリアリング（ｃｌｅａｒｉｎｇ：クリアすること、データ消去すること）は、大量の計算を必要とする作業である。従って、画像フレーム・シーケンスを高画像フレーム・レート及び／又は高解像度で表示することについては、現在でも例えばＢＤプレーヤ或いは携帯電話のようなプロセッサ内蔵機器の計算処理能力とグラフィックス・システムとが問題になる。従って、表示コマンドの実行、ブリッティング及びクリアリングから無変化ピクセルを除外するために、フロント・バッファ内の現在表示されている画像フレームとバック・バッファ内の次の画像フレームとの間でピクセル毎の比較を行うことが端的な解決法であると考えられる。しかし、この比較は、計算処理能力自体の点で非常にコスト高になるので殆ど利点がない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、計算処理能力が限られていても画像フレーム・シーケンスを高画像フレーム・レート及び／又は高解像度でレンダリングして表示できるレンダラとその方法が必要である。
【課題を解決するための手段】
【０００６】
上述の課題は、表示領域とその表示領域に表示すべき表示コンテンツとを含む１組の表示コマンドを用いて画像フレームを表示するレンダラによって解決される。このレンダラは、本願の特許請求の範囲の請求項１に記載された各特徴を備えている。
【０００７】
このレンダラは、先行の画像フレームを表示するための第１表示コマンド組、及び／又は、後続の画像フレームを表示するための第２表示コマンド組を適応処理して、該適応処理済み表示コマンド組が同一組のどの表示領域とも交わらない表示領域のみから成るようにし、且つ、該適応処理済み表示コマンド組の表示領域が画像フレームの表示領域を構成するようにする適応処理手段を備えている。更に、このレンダラは、適応処理済み第１表示コマンド組に含まれていない適応処理済み第２表示コマンド組の表示コマンドを特定する特定手段を備えている。また、このレンダラは、特定された表示コマンドを実行するように構成されている。
【発明の効果】
【０００８】
表示コマンド組は、適応処理することによって、比較可能になる。表示コマンドを比較することによって、比較量を低減でき、更に、表示コマンドの実行、ブリッティング及びクリアリングからバック・バッファの大きな領域を除外できる。
【０００９】
レンダラの好ましい一実施形態では、表示領域は矩形である。更に、特定手段が、適応処理済み第２表示コマンド組の表示コマンドについて、同一の表示矩形に対する表示コマンドが適応処理済み第１表示コマンド組にも含まれているか否かを特定し、若し含まれていれば、上記同一の表示矩形に対する適応処理済み第１表示コマンド組の上記表示コマンドが同じ表示コンテンツを含んでいるか否かを特定するように構成されている。従って、表示コマンドの比較が速く行える。
【００１０】
好ましい別の一実施形態では、適応処理手段が、適応処理済み第１表示コマンド組と適応処理済み第２表示コマンド組とを再適応処理できるように構成されている。この再適応処理は、表示矩形の補助組を形成することによって、実行される。この好ましい別の一実施形態では、補助組の表示矩形の各々は、適応処理済み第１表示コマンド組の表示矩形のサブ領域と適応処理済み第２表示コマンド組の表示矩形のサブ領域である。また、この好ましい別の一実施形態では、適応処理手段は、適応処理済み第１表示コマンド組及び／又は適応処理済み第２表示コマンド組の表示コマンドを分解するのに適している。即ち、ある表示コマンドが、補助組に含まれていない表示矩形に対するものである場合、その表示コマンドは、補助組の表示矩形に対する１組の表示コマンドに分解される。更に、この好ましい別の一実施形態では、分解済み表示コマンドの再適応処理済み第２表示コマンド組の表示コマンドの各々について、同一の表示矩形に対する再適応処理済み第１表示コマンド組の表示コマンドが同じ表示コンテンツを含んでいるか否かのみが特定される。これにより、再表示（ｒｅｄｉｓｐｌａｙ）すべき領域のサイズと数が低減される。
【００１１】
更に好ましい一実施形態では、表示コンテンツが一定数のレイヤ・オブジェクトを含み、該レイヤ・オブジェクトの各々がグラフィカル・オブジェクト、位置情報、及び、該グラフィカル・オブジェクトに関するアルファ・コンポジション情報を含んでいる。そして、再適応処理済み第１表示コマンド組の表示コマンドが再適応処理済み第２表示コマンド組の表示コマンドと同じ表示コンテンツを含んでいるか否かを特定することは、再適応処理済み第１表示コマンド組の上記表示コマンドが再適応処理済み第２表示コマンド組の表示コマンドと同数のレイヤ・オブジェクトを含み、更にこのレイヤ・オブジェクトの各々について同じグラフィカル・オブジェクト、同じ位置情報及び同じアルファ・コンポジション情報を含むか否かを特定することを含んでいる。これにより、比較が更に速く行える。
【００１２】
更に別の好ましい一実施形態では、レンダラは、数組の表示コマンドを記憶するように構成されたデータベースも備えている。このデータベース内では、１つのセクションが先行の画像フレーム専用であり、適応処理済み第１表示コマンド組の表示コマンド、或いは、再適応処理済み第１表示コマンド組の表示コマンドを記憶する。更に、このデータベースのもう１つのセクションが、後続の画像フレーム専用であり、適応処理済み第２表示コマンド組の表示コマンド、或いは、再適応処理済み第２表示コマンド組の表示コマンドを記憶する。この更に別の好ましい一実施形態では、レンダラは、データベース・セクションの１つを消去する手段と、各データベース・セクションの専用を交換する手段とを更に備えている。
【００１３】
本発明は、更に、表示領域と表示コンテンツとを含む１組の表示コマンドを用いて画像フレームを表示する方法に関し、本願の特許請求の範囲の請求項６の特徴を備えている。
【００１４】
この画像フレーム表示方法は、先行の画像フレームを表示するための第１表示コマンド組、及び／又は、後続の画像フレームを表示するための第２表示コマンド組を適応処理して、該適応処理済み表示コマンド組が同一組のどの表示領域とも交わらない表示領域のみから成るようにし、且つ、該適応処理済み表示コマンド組の表示領域が画像フレームの表示領域をカバーする、即ち、構成するようにする適応処理ステップを備えている。この方法は、更に、適応処理済み第２表示コマンド組の表示コマンドの各々について、適応処理済み第１表示コマンド組が同じ表示コマンドを含んでいるか否かを特定するステップと、若し、含んでいなければ、それぞれの表示コマンドを実行するステップとを更に備えている。この発明の方法の好ましい各実施形態は、本願の特許請求の範囲の請求項６に従属する各請求項に記載された各特徴を備えている。
【００１５】
以下、添付の各図面を用いて、本発明の各実施例を更に詳しく説明する。
【発明を実施するための最良の形態】
【００１６】
アニメーション、映画、或いは、両者を合成したものは、技術的には、一連の画像フレーム、即ち、画像フレーム・シーケンスを比較的短時間で表示することによって、表示される。画像フレーム・シーケンスの各々の画像フレームは、付属領域とその領域内の確定ピクセル値とを有する。コンピュータ・アニメーションやある種のデジタル映画は、一定数のグラフィカル・オブジェクトで構成されている。これは「コンポジション（ＣＯＭＰＯＳＩＴＩＯＮ）」と呼ばれることも多い。
【００１７】
一実施例では、コンポジション（ＣＯＭＰＯＳＩＴＩＯＮ）は、１組のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトであるｓＲＥＮＤＥＲ＿ＲＥＣＴによって規定される。このｓＲＥＮＤＥＲ＿ＲＥＣＴは、以下の性質を有する。
１．ｓＲＥＮＤＥＲ＿ＲＥＣＴは１つの或いは複数のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトで構成されている。
２．ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの各々は表示領域内で１つの矩形サブ領域を規定する。
３．ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは互いにオーバーラップしない（部分的に重なることはない）。
４．一般に、ｓＲＥＮＤＥＲ＿ＲＥＣＴは表示領域を完全にカバーする（表示領域全体に及ぶ）。若しそうでない場合、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトによってカバーされない領域は、「空（ｅｍｐｔｙ：エンプティ）」即ち「クリア（ｃｌｅａｒ）」として暗黙的に定義される。
【００１８】
ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの各々は、ＬＡＹＥＲ（レイヤ、層）オブジェクトの順序集合で構成されている。ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクト内のＺオーダはレイヤによって決まる。この一実施例では、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトのレイヤの各々の範囲は、親ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの範囲であり、そのレイヤをレンダリングする際のクリッピング範囲となる。ＬＡＹＥＲオブジェクトは、以下のプロパティを有する。
１．関連付けられたグラフィカル・オブジェクト（ａｓｓｏｃｉａｔｅｄ＿ｇｒａｐｈｉｃａｌ＿ｏｂｊｅｃｔ）（例えば、これは、コンピュータ・アニメーション又はテキストの一部、或いは、その他のあらゆるグラフィカル・オブジェクトとなり得る）
２．関連付けられたグラフィカル・オブジェクトに関する位置情報
３．関連付けられたグラフィカル・オブジェクトに関するアルファ・コンポジション（Ａｌｐｈａ  Ｃｏｍｐｏｓｉｔｉｏｎ）情報
４．関連付けられたグラフィカル・オブジェクトによっては、ＬＡＹＥＲオブジェクトは色、及び／又は、フォントのプロパティ（例えばテキスト用）を有することがある。
【００１９】
ＬＡＹＥＲオブジェクトの変形として、テキストＬＡＹＥＲオブジェクトがある。テキストＬＡＹＥＲオブジェクトは、１つ又は複数のフォントの性質を備えている。
【００２０】
以下の場合、２つのＬＡＹＥＲオブジェクトは同一である。
・関連付けられたグラフィカル・オブジェクトが同じ
・関連付けられたグラフィカル・オブジェクトに関する位置情報が同じ
・関連付けられたグラフィカル・オブジェクトに関するアルファ・コンポジション情報が同じ
・関連付けられた色が（若し有れば）同じ
・関連付けられたフォントが（若し有れば）同じ
【００２１】
更に、以下の場合、２つのＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは同一である。
・矩形サブ領域のサイズと位置が同じ
・ＬＡＹＥＲオブジェクト数が同じ
・両者間で互いに対応するＬＡＹＥＲオブジェクトをペアにして比較すると、それらのＬＡＹＥＲオブジェクトが同一（このペア比較は、２つのＬＡＹＥＲオブジェクトを同じスタッキング深度（ｓｔａｃｋｉｎｇ＿ｄｅｐｔｈ）で比較する。）
【００２２】
これらの概念を用いて、この一例のレンダラは、現在表示している画像フレームに基づいて、次の画像フレームの差分レンダリングを行うことができる。この一例のレンダラの状態モデルには、２つの主要な状態、即ち、「ＣＯＭＰＯＳＩＴＩＮＧ（合成）」状態と「ＤＩＳＰＬＡＹＩＮＧ（表示）」状態とがある。常に、この一例のレンダラは、これらの状態の一方の状態にある。
【００２３】
合成（ＣＯＭＰＯＳＩＴＩＮＧ）状態では、この一例のレンダラは、アプリケーションから表示コマンドを受信して、次のコンポジション（ｃｏｍｐｏｓｉｔｉｏｎ）を構成する。
【００２４】
表示（ＤＩＳＰＬＡＹＩＮＧ）状態では、とりわけ、この一例のレンダラは、現在のコンポジションと次のコンポジションとを比較する。この比較によって、変化した領域が特定される。この一例のレンダラは、これらの変化した領域に対応するＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトのみを実行する。実行対象のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは、２組に区分される。第１の組は、各々が２つ以上のＬＡＹＥＲオブジェクトを有するＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの組であり、第２の組は、各々がただ１つのＬＡＹＥＲオブジェクトを有するＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの組である。第１の組のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは、バック・バッファに於いて実行される。次に、それぞれの領域は、バック・バッファからフロント・バッファにブリットされる。第２の組のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは、直接、フロント・バッファに於いて実行される。フロント・バッファの以前からの残りの領域は、無変化のまま維持される。
【００２５】
画面は、画面リフレッシュ・レートに従って、フロント・バッファから全面的にリフレッシュされる。このように、画面のリフレッシュ自体は、レンダリングとは無関係に行える。
【００２６】
以下、各々の状態に於けるこの一例のレンダラの動作例を詳しく説明する。
【００２７】
一推奨実施例に於いて、データベースが、この一例のレンダラによって作成され管理される。このデータベースは、２つの主要な部分即ちセクションから成る。第１のセクションは、現在の画像フレーム専用であり、コンポジション（ＣＯＭＰＯＳＩＴＩＯＮ）の一例である現在表示中のコンポジションＣ＿ＣＵＲＲＥＮＴを含んでいる。第２のセクションは、次の画像フレーム専用であり、ＣＯＭＰＯＳＩＴＩＯＮの別の一例である「次の」コンポジションＣ＿ＮＥＸＴを含んでいる。
【００２８】
合成（ＣＯＭＰＯＳＩＴＩＮＧ）状態：
レンダラが受信した如何なる表示コマンドも次のコンポジションＣ＿ＮＥＸＴの１つ又は複数のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトに変換される。先ず、Ｃ＿ＮＥＸＴは、一般的に、１つの単独のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ１を含んでいる。コンポジション情報は、全てのピクセル値がクリアＣＬＲであることを規定している。図１には、Ｃ＿ＮＥＸＴが示されている。１つのコマンドが、レンダラに対して、表示領域内のある場所にグラフィカル・オブジェクトＯ１を表示するように命令する。この一例のレンダラは、図２に示されているように、Ｃ＿ＮＥＸＴをそのように修正する。コンポジション（ＣＯＭＰＯＳＩＴＩＯＮ）の定義に従ってＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは互いにオーバーラップしてはいけないため、前のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ１は、分解（ｄｅｃｏｍｐｏｓｅ）しなければならない。図３に示されているように、この一例のレンダラは、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ１を修正して、水平方向分解（ｈｏｒｉｚｏｎｔａｌ＿ｄｅｃｏｍｐｏｓｉｔｉｏｎ）に従ってＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ２、Ｒ３、Ｒ４及び最大幅を有するＲ５を作成する。図３に示した以外の分解も可能であるが、図３に示すものが望ましい。別のコマンドが、この一例のレンダラに対して、もう一つのグラフィカル・オブジェクトＯ２を表示するように命令する。図４に示されているように、この一例のレンダラはＣ＿ＮＥＸＴをそのように修正する。前のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ３と前のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ４は、分解しなければならない。即ち、この一例のレンダラは、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ３とＲ４を修正して、新たなＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ６、Ｒ７、Ｒ８及びＲ９を作成する。その後、図５に示されているように、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ７は、２つのＬＡＹＥＲオブジェクト、即ち、グラフィカル・オブジェクトＯ１から成る第１のＬＡＹＥＲオブジェクトとグラフィカル・オブジェクトＯ２から成る第２のＬＡＹＥＲオブジェクトとから成る。
【００２９】
上記第１のＬＡＹＥＲオブジェクトは、次の情報を保持している。
・グラフィカル・オブジェクトＯ１に対するリファレンス
・グラフィカル・オブジェクトＯ１の位置
・アルファ・コンポジションについての情報
・表示色（グラフィカル・オブジェクトＯ１のタイプに依存）
・表示フォント（グラフィカル・オブジェクトＯ１のタイプに依存）
【００３０】
また、上記第２のＬＡＹＥＲオブジェクトは、次の情報を保持している。
・グラフィカル・オブジェクトＯ２に対するリファレンス
・グラフィカル・オブジェクトＯ２の位置
・アルファ・コンポジションについての情報
・表示色（グラフィカル・オブジェクトＯ２のタイプに依存）
・表示フォント（グラフィカル・オブジェクトＯ２のタイプに依存）
【００３１】
この一例のレンダラは、クリア・コマンドＣＬＲをサポートしてもよい。このようなコマンドは、通常、完全なトランスペアレンシー（透明）を含む既定色に従って、概念上、１つの範囲を各ピクセル値で満たす。このコマンドは、非常に効率良くサポートされる。
【００３２】
クリア・コマンドＣＬＲの適用についての一例として、コンポジションは、１つの単独のオブジェクトＯ１を図６の如くに描く。ＣＬＲコマンドが受信されて、範囲ＲＥＤがクリアされる。
【００３３】
この一例のレンダラはＣ＿ＮＥＸＴを修正して、その結果、図７に示されているように、前のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ３が修正され、２つの新たなＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ６とＲ７が形成される。
【００３４】
表示（ＤＩＳＰＬＡＹＩＮＧ）状態：
表示（ＤＩＳＰＬＡＹＩＮＧ）状態の期間中、この一例のレンダラは、フロント・バッファを次のコンポジションＣ＿ＮＥＸＴに即したものにする。そのために、この一例のレンダラは、現在のコンポジションＣ＿ＣＵＲＲＥＮＴと次のコンポジションＣ＿ＮＥＸＴとを比較して両者間の違いを特定する。この両者間の「違い」は、画像コンテンツが現在表示されている画像フレームと次の画像フレームとの間で変化している領域、即ち、分離性矩形（ｄｉｓｊｕｎｃｔｉｖｅ＿ｒｅｃｔａｎｇｌｅ）を表している。従って、これらの領域、即ち、分離性矩形は、再表示（ｒｅｄｉｓｐｌａｙ）する必要がある。
【００３５】
図８から図１１に示す例では、偶数番号の図面がＣ＿ＣＵＲＲＥＮＴ（現在のコンポジション）を示し、奇数番号の図面がＣ＿ＮＥＸＴ（次のコンポジション）を示している。
【００３６】
図８から図１１内のコンポジションの各々は、２つのグラフィカル・オブジェクトＯ１とＯ２を示している。その他の領域は、全て、「空」即ち「クリア」である。現在のコンポジションから次のコンポジションにかけて、グラフィカル・オブジェクトＯ１の位置は変わらないが、グラフィカル・オブジェクトＯ２は上方に移動する。両コンポジションＣ＿ＣＵＲＲＥＮＴ及びＣ＿ＮＥＸＴは、９つの異なるＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５、Ｒ６、Ｒ７、Ｒ８及びＲ９に分解されている。両コンポジションに於いて、Ｒ３はグラフィカル・オブジェクトＯ１を保持し、Ｒ７はグラフィカル・オブジェクトＯ２を保持している。しかし、Ｒ７の位置は、両コンポジション間で異なっている。また、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ５、Ｒ６、Ｒ８及びＲ９のサイズ及び／又は位置も両コンポジション間で異なっている。
【００３７】
表示（ＤＩＳＰＬＡＹＩＮＧ）状態の期間中、この一例のレンダラは、以下に説明する４つの段階を経る。
【００３８】
段階１：
この一例のレンダラは、各ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトを比較することによって、両コンポジションを比較する。即ち、
・Ｒ１について、それらが同一であることを検知する。
・Ｒ２について、それらが同一であることを検知する。
・Ｒ３について、それらが同一であることを検知する。
・Ｒ４について、それらが同一であることを検知する。
・Ｒ５について、それらが同一で「ない」ことを検知する。
・Ｒ６について、それらが同一で「ない」ことを検知する。
・Ｒ７について、それらが同一で「ない」ことを検知する。
・Ｒ８について、それらが同一で「ない」ことを検知する。
・Ｒ９について、それらが同一で「ない」ことを検知する。
尚、この一例のレンダラは、仮に全てのＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトが同一であることを検知すると、即座に段階４に進む。
【００３９】
レンダラの更に別の一実施例では、同一でない１組のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトはｓＤＩＦＦとして定義され、この一例のレンダラは即座に段階２に進む。この実施例では、レンダラは、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトＲ５、Ｒ６、Ｒ７、Ｒ８及びＲ９の実行を決定する。
【００４０】
レンダラの更に別の一実施例では、レンダラは、図８及び図９の２つのコンポジション例にＤＥＣ機能を適用する。このＤＥＣ機能は、図８及び図９の２つのコンポジションＣ＿ＣＵＲＲＥＮＴ及びＣ＿ＮＥＸＴを、図１０及び図１１にそれぞれ示された入出力修正バージョンのＣ＿ＣＵＲＲＥＮＴ’及びＣ＿ＮＥＸＴ’とする。ここで、
・Ｃ＿ＣＵＲＲＥＮＴ’は、Ｃ＿ＣＵＲＲＥＮＴとグラフィック的に等価であり、
・Ｃ＿ＮＥＸＴ’は、Ｃ＿ＮＥＸＴとグラフィック的に等価であり、
・Ｃ＿ＣＵＲＲＥＮＴ’内のどのＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトに対しても、Ｃ＿ＮＥＸＴ’内の対応するＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは、同じ位置とサイズの矩形領域で存在する。
【００４１】
次に、この一例のレンダラは、以下の如く、それぞれの修正済みＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトを比較することによって、修正済みコンポジションＣ＿ＣＵＲＲＥＮＴ’及びＣ＿ＮＥＸＴ’を比較する。
・Ｒ１からＲ４について、既に、それらが同一であることを検知している。
・Ｒ５について、それらが同一であることを検知する。
・Ｒ６について、それらが同一であることを検知する。
・Ｒ７について、それらが同一で「ない」ことを検知する。
・Ｒ８について、それらが同一であることを検知する。
・Ｒ９について、それらが同一であることを検知する。
・Ｒ１０について、それらが同一で「ない」ことを検知する。
・Ｒ１１について、それらが同一であることを検知する。
・Ｒ１２について、それらが同一であることを検知する。
・Ｒ１３について、それらが同一で「ない」ことを検知する。
・Ｒ１４について、それらが同一であることを検知する。
・Ｒ１５について、それらが同一であることを検知する。
【００４２】
この一例のレンダラがＣ＿ＣＵＲＲＥＮＴ’内の対応するＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトと同一でないと検知したＣ＿ＮＥＸＴ’内のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの組は、ｓＤＩＦＦとして定義される。このｓＤＩＦＦは、所望の出力を生成するために実行されるべきＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの組を表している。この例では、ｓＤＩＦＦは、Ｒ７、Ｒ１０及びＲ１３で構成されている。
【００４３】
図１０及び図１１は、更新される領域Ｒ７、Ｒ１０及びＲ１３、即ち、両者コンポジション間の比較結果の「違い」を例示している。
【００４４】
段階２：
次の段階では、２つ以上のレイヤ（ＬＡＹＥＲ）オブジェクト或いは１つのテキストＬＡＹＥＲオブジェクトを含むｓＤＩＦＦ内のＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトの各々について、この一例のレンダラは、レイヤ・オブジェクト・コンポジション（ｌａｙｅｒ＿ｏｂｊｅｃｔ＿ｃｏｍｐｏｓｉｔｉｏｎ）を行う。これは、各バック・バッファ領域をクリアした後に、バック・バッファに於いてそれぞれのＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトを実行することによって、行われる。テキストＬＡＹＥＲオブジェクトについて、各バック・バッファ領域は、テキストを表示するのに実際に使用される各ピクセルで形成される。このレイヤ・オブジェクト・コンポジションの結果、１組のバック・バッファ領域が、バック・バッファからフロント・バッファにブリットすべき合成コンテンツを有することになる。
【００４５】
或いは、別の実施形態では、この一例のレンダラは、ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトに含まれているＬＡＹＥＲオブジェクトの数に関係なく、それぞれのバック・バッファ領域をクリアした後に、バック・バッファに於いてｓＤＩＦＦ内の全てのＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトを実行する。この場合、ブリットすべき合成コンテンツを有するバック・バッファ領域の組は、多分大きくなる。
【００４６】
この段階を終えると、この一例のレンダラは、フロント・バッファを更新する準備が整う。
【００４７】
段階３：
次の段階３では、この一例のレンダラは、合成コンテンツを有するバック・バッファ領域の組をバック・バッファからフロント・バッファにブリットすることによって、フロント・バッファを更新する。ブリットされた各バック・バッファ領域は、テキストＬＡＹＥＲオブジェクトから導出されることもあるため、必ずしも矩形とは限らない。若し段階２に於いて上記別の実施形態が取られた場合は、フロント・バッファは、ブリッティング後に最新状態になる。その他の場合、ただ１つのＬＡＹＥＲオブジェクトから構成されているｓＤＩＦＦ内の各ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクトは、直接フロント・バッファに於いて実行されることによって、フロント・バッファの更新が完了する。本発明の一実施例に於いて、ブリッティングと実行処理とは、左から右へ上から下へそれぞれの矩形領域の位置に従って、一緒に行われる。これにより、フロント・バッファの更新期間中に画面のリフレッシュが生じた場合の引裂きアーティファクトが低減する。
【００４８】
段階４：
表示（ＤＩＳＰＬＡＹＩＮＧ）状態の最終段階に於いて、データベースのハウスキーピングが行われる。これは、Ｃ＿ＮＥＸＴ後のデータベースがＣ＿ＣＵＲＲＥＮＴになり、Ｃ＿ＣＵＲＲＥＮＴ後のデータベースがクリアされてＣ＿ＮＥＸＴにリネーム（ｒｅｎａｍｅ）されることを意味する。その後、この一例のレンダラは、ＣＯＭＰＯＳＩＴＩＮＧ状態に移り、再び表示コマンドを受信する準備が整う。
【図面の簡単な説明】
【００４９】
【図１】次のコンポジションＣ＿ＮＥＸＴについての一例を示す図である。
【図２】第１の修正後の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図３】第２の修正後の図２の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図４】第３の修正後の図３の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図５】第４の修正後の図４の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図６】別の第３の修正後の図３の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図７】別の第４の修正後の図６の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図８】現在表示されているコンポジションＣ＿ＣＵＲＲＥＮＴの一例を示す図である。
【図９】別の次のコンポジションＣ＿ＮＥＸＴの一例を示す図である。
【図１０】図８の現在表示されているコンポジションＣ＿ＣＵＲＲＥＮＴの一例の修正バージョンＣ＿ＣＵＲＲＥＮＴ’ を示す図である。
【図１１】図９の別の次のコンポジションＣ＿ＮＥＸＴの一例の修正バージョンＣ＿ＮＥＸＴ’ を示す図である。
【符号の説明】
【００５０】
Ｒ１、・・・、Ｒ１５  ＲＥＮＤＥＲ＿ＲＥＣＴオブジェクト
ＣＬＲ  クリア（空）
Ｏ１、Ｏ２  グラフィカル・オブジェクト
Ｃ＿ＣＵＲＲＥＮＴ  現在のコンポジション
Ｃ＿ＮＥＸＴ  次のコンポジション
Ｃ＿ＣＵＲＲＥＮＴ’  現在のコンポジションの修正バージョン
Ｃ＿ＮＥＸＴ’  次のコンポジションの修正バージョン
【図１】
0005179247.tif 000002
【図２】
0005179247.tif 000003
【図３】
0005179247.tif 000004
【図４】
0005179247.tif 000005
【図５】
0005179247.tif 000006
【図６】
0005179247.tif 000007
【図７】
0005179247.tif 000008
【図８】
0005179247.tif 000009
【図９】
0005179247.tif 000010
【図１０】
0005179247.tif 000011
【図１１】
0005179247.tif 000012