JP6275146B2 - 選択的な表示更新のための方法および装置 - Google Patents

選択的な表示更新のための方法および装置 Download PDF

Info

Publication number
JP6275146B2
JP6275146B2 JP2015530251A JP2015530251A JP6275146B2 JP 6275146 B2 JP6275146 B2 JP 6275146B2 JP 2015530251 A JP2015530251 A JP 2015530251A JP 2015530251 A JP2015530251 A JP 2015530251A JP 6275146 B2 JP6275146 B2 JP 6275146B2
Authority
JP
Japan
Prior art keywords
buffer
frame
changed
current
rendering engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015530251A
Other languages
English (en)
Other versions
JP2016500163A (ja
Inventor
アバーカ ガブリエル
アバーカ ガブリエル
アイ.ジェイ. グレン デイビッド
アイ.ジェイ. グレン デイビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2016500163A publication Critical patent/JP2016500163A/ja
Application granted granted Critical
Publication of JP6275146B2 publication Critical patent/JP6275146B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1415Digital output to display device ; Cooperation and interconnection of the display device with other functional units with means for detecting differences between the image stored in the host and the images displayed on the displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/04Partial updating of the display screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)
  • Television Systems (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Description

(優先権)
本願は、2012年9月5日に出願された「METHOD AND DEVICE FOR SELECTIVE DISPLAY REFRESH」という名称の米国仮特許出願第61/697,261号と、2013年9月5日に出願された「METHOD AND DEVICE FOR SELECTIVE DISPLAY REFRESH」という名称の米国特許出願第14/018,869号との優先権を主張し、これらの開示が参照により本明細書に組み込まれる。
本開示は、表示用の視覚データのフレーム(例えば、グラフィックス(ビデオを含む)データのフレーム)の処理中に効率性を提供するための方法および装置に関する。本開示は、より詳細には、更新されるフレームのピースを選択的に更新するための方法および装置に関する。
ダブルバッファまたはスワップチェーンベースのOSグラフィックスインタフェースは、表示される最終的なフレームバッファを生成するために、ソフトウェアおよび/またはハードウェア加速合成と、フレームバッファスワップチェーンとの組合せを使用する。スワップチェーンは、ユーザーに対してフレームを表示するために使用されるバッファの集合である。アプリケーションが表示用の新たなフレームを提示するごとに、スワップチェーン内の次のバッファは、現在表示されているバッファ(画面/フロントバッファ)に取って代わる。このプロセスは、スワッピングまたはフリッピングと呼ばれる。バックバッファをフロントバッファに移動するプロセスは、表面フリッピング(surface flipping)と呼ばれる。グラフィックスプロセッサは、フロントバッファを表すために表面へのポインタを単に使用するので、バックバッファをフロントバッファとして設定するために必要な全ては、単純なポインタ変更である。各バッファフリップに対して、バッファ全体が出力または表示のためにディスプレイ制御装置に渡される。
しかし、多くの場合、画面の大部分は連続するフレーム間で変わらない。従って、この大部分に対して、フレームの読み取り、処理、および、公開/出力は、ディスプレイ装置(パネル)上で提示されるものにおいて変更のない結果となる。従って、ディスプレイ装置へのフレームの提供において費やされる処理能力およびエネルギー(電力)の一部は、そのエフォート(effort)に対して認知できる恩恵をもたらさない。
2004年に公表されたビデオエレクトロニクススタンダーズアソシエーション(VESA)デジタルパケットビデオリンク(DVPL)規格は、変更のない部分が更新されないという部分的な画面更新を有する可能性について言及しているが、この規格では、この部分的な画面更新がどのようにして実現され得るかに関して、詳細または説明を提供していない。
このため、完全なフレームの伝送を必要とすることなく、ディスプレイ装置への新たなフレームデータの伝送を提供する改善された方法および装置に対する必要性が存在する。
本発明の一態様の実施形態におけるスワップチェーンベースのグラフィックインタフェースのアーキテクチャを示す図である。 本発明の一態様の実施形態において、グリッドシステムおよび書込み検出機能を採用するスワップチェーンベースのグラフィックインタフェースを示す図である。 本発明の一態様の実施形態における例示的なバッファおよびそれによって保持されるフレーム、ならびに、グラフィックインタフェースによるこれらの処理を示す図である。 本発明の一態様の実施形態における図1のアーキテクチャによって実行されるプロセスを示すフロー図である。
例示的且つ限定されない実施形態では、本態様は、画像フレームを提供する方法で実現される。方法は、第1のフレームのうち1つ以上の他のフレームに対して変化した部分を、前記第1のフレームのうち前記1つ以上の他のフレームに対して変化していない部分を出力することなく、出力することを含む。各部分は、レンダリングエンジンが当該部分の境界内の位置についてフレームバッファに書き込んだ場合に、変化したと判断される。この出力は、第1のフレームのうち1つ以上の他のフレームに対して変化している1つ以上の部分に応じて行われる。
簡単に言えば、別の例示的な実施形態では、表示更新装置が提供される。表示更新装置は、1つ以上のメモリバッファに画像情報を書き込む動作をするレンダリングエンジンと、複数の部分をそれぞれ有する複数のメモリバッファと、複数のメモリバッファの各々の複数の部分ごとの状態の変化のインジケータであって、各部分は、レンダリングエンジンが当該部分の境界内の位置についてフレームメモリバッファに書き込んだ場合に、変化したと判断される、インジケータと、インジケータを解釈して、複数のメモリバッファのうち第1のメモリバッファから部分を選択的に読み出す動作をするディスプレイ制御装置と、を含む。
別の例示的な実施形態では、持続性(non-transitory)命令を有するコンピュータ可読媒体が提供される。命令がプロセッサによって解釈される場合に、命令は、プロセッサに対して、第1のフレームのうち1つ以上の部分が1つ以上の他のフレームに対して変化しているかを判断することと、第1のフレームの1つ以上の部分が1つ以上の他のフレームに対して変化していないかを判断することであって、各部分は、レンダリングエンジンが当該部分の境界内の位置についてフレームメモリバッファに書き込んだ場合に、変化したと判断される、ことと、第1のフレームのうち1つ以上の他のフレームに対して変化している部分を、第1のフレームのうち1つ以上の他のフレームに対して変化していない部分を出力することなく、出力することと、を行わせる。
さらに別の例示的な実施形態では、コンテンツを表示する方法が提供される。本方法は、部分フレームを含むビデオ信号データを、インタフェースから受信することであって、部分フレームは、レンダリングエンジンが当該部分の境界内の位置について書き込んだフレームバッファ内のフレームの部分である、ことと、部分フレームを別のフレームの部分に追加して、組み立てられたフレームを生成することと、を含む。
図1は、ビデオ情報をディスプレイ(パネル18)に提供するためのアーキテクチャを示す図である。このアーキテクチャは、スワップチェーンベースのグラフィックインタフェースを示している。インタフェースは、変化判定器(change determiner)10と、レンダリングエンジン12と、メモリ14と、ディスプレイ制御装置16と、パネル18と、を含む。
レンダリングエンジン12は、画像の仕様を、画素を表すデータに変換するソフトウェアまたはハードウェアである。一例では、レンダリングエンジン12は、メモリコントローラとは異なる。別の実施形態では、レンダリングエンジン12は、メモリコントローラを含む集積回路のサブシステムである。ディスプレイ制御装置16は、コンピューティングシステムまたはゲームシステム内でビデオ信号の生成を担当する集積回路である。「ディスプレイ制御装置」という用語の使用は、ディスプレイプロセッサおよびグラフィック処理装置を除外することを意図していない。実際、ディスプレイ制御装置16は、画像情報をバッファ20から読み取り、画像情報をパネル18上に表示させるように命令することの可能な任意のソフトウェアおよび/またはハードウェアを包含することを意図している。パネル18は、ユーザによる画像の画素の認知を可能にする任意のディスプレイ装置である。
スワップチェーンは、メモリ14内に配置された複数の仮想フレームバッファ20を指す。一連の仮想フレームバッファ20は、フレームレートの安定化およびいくつかの他の機能のために利用される。スワップチェーンは、グラフィックスメモリ内に存在するものとして示されているが、システムメモリ内に存在し得る。スワップチェーンがなければ、スタッタリング(stuttering)および/または不完全な画像更新レンダリングが生じ得る。スワップチェーンの存在および利用は、多くのグラフィックスアプリケーションプログラミングインタフェース(API)によって必要とされる。
フレームバッファ20の1つは、画面バッファと呼ばれ、パネル18に出力するためにディスプレイ制御装置16によって読み取られるバッファ20である。新たなフレームが表示されるごとに、スワップチェーン内の第1のバックバッファが画面バッファに取って代わる。これは、提示またはスワッピングと呼ばれる。画面バッファは、一旦提示されると、さらなる処理のためにスワップチェーンの後ろに戻される。バッファ20のこの移動は、空間的な移動ではなく、概念的な移動であって指定による移動である。フレームバッファ20の画面バッファとしての指定は、ディスプレイ制御装置16内での参照によって達成される。どのバッファ20が画面バッファとして指定されているかにおける変更は、ディスプレイ制御装置16内でのプログラミングによって達成される。ディスプレイ制御装置16は、画面バッファとして指定するフレームバッファ20を変更し、そのバッファ20を、パネル18に提示される次のフレームにしようとする。一旦、フレームが画面バッファ20から取得されて、レンダリングエンジン12が、スワップチェーン内の次のバッファ20が準備できていることを示すと、画面バッファの内部指定がスワップチェーン内の次のバッファ20に切り替えられる。図3は、3つのバッファチェーン内でのバッファ20の概念的移動を示す図である。図3の各行の右端のバッファは、指定された画面バッファである。
本開示の実施形態では、各フレーム、したがって各バッファは、「マスク」によって有限の小区分に(仮想的に)分割されている。本開示では、マスク部分要素は矩形である。図2は、バッファ20上のフレームの概念的な下位区分を示す図である。一例として、図2は、24個の小区分22に分割された各フレームを示している。マスクは、各バッファ20が同一のサイズで配置された小区分22を有するように規定する。
3バッファシステムでは、各バッファは3フレームごとにフレームを処理する。データソース11は、レンダリングエンジンに対して、画素をバッファ20に書き込むように指示する。変化判定器10は、ソフトウェアを実行するプロセッサであってもよいし、専用ハードウェアであってもよい。変化判定器10は、メモリバッファ20が最後に使用されたときに対してレンダリングされる現在のフレームに、どの画素(または、以下で説明するように、メモリバッファ20のどの部分)が書き込まれたかを判断する。(3バッファシステムでは、これは、現在のフレームの前の3つのフレームであろう)。別の実施形態では、変化判定器10は、レンダリングされる現在のフレームと、既にレンダリングされた3つのフレームとの間でどの画素(または部分)が変化しているかを判断する。
一実施形態では、データソース11は、レンダリングエンジン12が、現在のフレームのうち、バッファ20への以前の書込みに対して変化している(または最新の3つのフレーム内で変化している)画素のみを書き込むと規定する。バッファ20への書込みは、必ずしも変化を示しているとは限らないが、どの書込みも変化を示すと考えられる。
画素が、レンダリングエンジン12を介して現在のバックバッファ20にレンダリングされる場合には、変化判定器10は、現在のバックバッファ20のどの部分(小区分22)(図2)がレンダリングエンジン12によって書き込まれるかを判断する。この情報は、メモリ14内に格納される。本例では、情報は、複数の状態ビット(SB)24としてメモリ14内に格納される。各小区分22には、状態ビット24が割り当てられている。図1では、各バッファ20が、自身に関連付けられた単一の状態ビット24を有するように示されているが、バッファ20の各部分(または小区分22)に対して状態ビット24が存在するように、複数の状態ビットが、実際には各バッファ20に関連付けられていることが理解されよう。レンダリングエンジン12が現在のバックバッファ20に書き込みを行う(または、現在のバックバッファ20への最後の書き込み後に、他のバッファ20内に同様に位置付けられた小区分22に書き込みを行った)場合には、小区分22に対応する状態ビット24をオンにして、当該小区分22を「ダーティ(dirty)」としてマークする。「ダーティ」としての表示は、小区分22内の値が変化した、または、変化したと考えられるであろうことを示すために使用される。同様に、小区分に対する状態ビットがオフにされる場合には、「クリーン(clean)」または変化していないと示される。
別の言い方をすれば、レンダリングエンジン12による書き込みは、変化を示すと考えられる。レンダリングエンジン12による書き込みは、どの小区分22が書き込まれているかを判断するために小区分22のマスクと比較され、それにより、どの小区分22が変化したかを判断する。変化の判断は状態ビット24を介して格納される。現在のバッファ20に対して変化した小区分22は、現在のバッファ20の最後の表示後に変化した小区分22のリストを取得するために、他のバッファ20に対して変化した小区分22(関連付けられた状態ビット24で表される)と組み合わされる。
ディスプレイ制御装置16は、状態ビット24を読み取って、バッファ20のうちどの小区分22が、読み取られ、および、(パネル18につながる)出力に対して公開される必要があるか、を認識する。
ここでの例では、状態ビット24は、レンダリングエンジン12がどこに書き込むかに関する関数として設定されている。しかし、状態ビット24を設定する他の方法およびディスプレイ制御装置に指示する他の方法が想定されることが理解されよう。このような追加の方法の1つは、状態ビットを設定するために、マスクへの直接のインタフェースを変化測定器10に持たせることである。
一例では、ディスプレイ制御装置は、ダーティと表されている全ての小区分22を包含するのに十分大きいフレームの連続する区分を読み取る。別の例では、ディスプレイ制御装置は、ダーティと表されている小区分22のみを読み取る。この例では、ディスプレイ制御装置は、個々の非連続の小区分22を選択的に読み取ることが可能である。
また、小区分22のクリーン/ダーティ状態は、更新された小区分22を認識し、且つ、ディスプレイ制御装置16にクリーン/ダーティの小区分22状態をどのように更新するかを指示する、明示的なオペレーティングシステムからディスプレイドライバへの呼出し、および/または、既存のオペレーティングシステムからディスプレイドライバへの呼出しにおけるディスプレドライバベースのインターセプトの組み合せによって実現できる。
画面全体に満たない情報をパネル18に伝送することにより、フレーム全体を処理して伝送することに比べて省電力が達成される。画面全体に満たない情報が伝送されるという点において、パネル18は、フルフレームに満たない情報の受信を行うことが可能である。パネル18は、表示され、または、表示される予定のフレームを、バッファ内に保持する。次いで、受信した小区分22は、以前のフレームの部分のうち新たな小区分22を受信していいない部分が保持されるように、パネル18のバッファに上書きされる。次いで、フレームは、バッファからパネル18の画面に公開される。
ここで、図3および図4を参照してプロセスを説明する。図3は、スワップチェーンの3つのバッファ20(バッファ0、バッファ1およびバッファ2)を示す図である。各行において右端のバッファ20は、ディスプレイ制御装置によって画面バッファとして指定されている。列の左および中央のバッファ20は、バックバッファである。各フレームは、小区分または部分に細分されている(ブロック100)。陰影のある(白色以外の色が付された)小区分22は、状態ビットまたは別の方法でダーティとして表される/更新されているものである。
行1のバッファ0と、行2のバッファ1との間に変化はない。その結果、どの小区分22もダーティとして表されていない。ディスプレイ制御装置16は、バッファ1の状態ビットを読み取ると、全ての小区分22がクリーンであると認識する(ブロック120)。従って、ディスプレイ制御装置16は、パネル18に対して更新を提供しない(ブロック130)。その結果、バッファ1が表示される予定のタイムスロットにおいて、行1のバッファ0が実際には表示される。このことは、2つのフレームが同一であって、ディスプレイ制御装置16がバッファ1をパネル18に出力することなく、パネル18上で所望の表示が実現されるので、望ましい。
しかし、行2のバッファ1と、行3のバッファ2との間では、左上隅の小区分22が変化している。したがって、レンダリングエンジンは、左上隅の小区分22に書き込みを行う。この書込みでは、この小区分に対応する状態ビット24にダーティが記述される(ブロック110)。ディスプレイ制御装置16は、状態ビットを読み取って、左上の小区分22がダーティな小区分22を表していることを認識する。ディスプレイ制御装置16は、左上の小区分22がフレーム内で唯一のダーティな小区分22であることをさらに認識する。従って、ディスプレイ制御装置16は、左上の小区分22のみを読み取って、パネル18に出力する(ブロック130)。再度、完全な画像がその表示の直前にパネルに伝送される必要なく、所望の画像がパネル18上に表示される。一旦、左上の小区分22がディスプレイ制御装置16によって読み出されると、状態ビット24(または複数の状態ビット24)がクリーンにリセットされる(ブロック140)。
同様に、行4のバッファ0は、変化を表す2つの小区分22を示している。従って、ディスプレイ制御装置16は、ダーティな小区分22のみを読み取って、パネル18に出力する。再度、完全な画像がその表示の直前にパネルに伝送される必要なく、所望の画像がパネル18上に表示される。
ここで、図3の左側を見ると、バッファ20に書き込み、小区分22をダーティとしてマークするプロセスが示されている。レンダリングエンジン12によって、画素を小区分22内に書き込むことで、その小区分22をダーティとしてマークし、状態ビット24がその書き込みを反映するように設定される。画素は2つの理由で書き込まれる。第1の理由は、1)現在のバッファが最後に使用されたときと、2)現在のバッファより前のバッファとの間のフレームで、画素が変化していること(「一時的変化」)である。第2の理由は、1)現在のバッファより前のバッファと、2)現在のバッファとの間で、画素が変化していること(「現在の変化」)である。
状態ビット24の設定に加えて、レンダリングエンジン12は、どの小区分22が、「現在の変化」に起因して状態ビットを介してダーティとマークされているかを(一時的変化に起因してダーティとマークされているものとは対照的に)別々に追跡する。レンダリングエンジン12は、現在の変化に起因してどの領域がダーティであるかを追跡するのをサポートするために、状態ビット24を使用してもよいし、使用しなくてもよい。さらに、当該技術分野において周知の任意の方法が、かかる目的のために採用され得る。本実施形態では、レンダリングエンジン12は、過去のバッファのどの小区分22が、状態ビット24自体とは別の現在の変化に起因して、ダーティとマークされているかを追跡する。
パネル18に出力されて状態ビット24をリセットさせた後、以前の画面バッファ20(図3で右端の位置)は、左端の位置に回されてバックバッファ20となる。レンダリングエンジン12は、左端のバックバッファ20に書き込む。まず、レンダリングエンジン12は、最も古いバッファ(最も早く作成された、おそらく画面バッファ)のうちどの小区分22が、当該バッファがレンダリングされたときに、それに対する「現在の変化」を有していたかに関する記録を参照する。これらの小区分22は、現在のバッファに対する「一時的変化」とみなされる。次いで、レンダリングエンジン12は、示された小区分22をチェーン内の最も古いバッファから現在のバッファにコピーする(「コピーされた小区分」)。どの小区分22が現在のバッファにコピーされるかという判断は、状態ビット24自体ではなく、レンダリングエンジンの追跡から判断されることが理解されよう。
一時的変化を判断する場合には、過去のバッファに対する現在の変化のみが考慮される。従って、状態ビット24の使用は、状態ビットが、過去のバッファに対する一時的変化と現在の変化との両方を示すという点において、過度に包括的であろう。画面バッファの現在の変化を現在のバッファにコピーすることで、現在のバッファを画面バッファと一致するように更新する。次いで、レンダリングエンジン12は、(レンダリングエンジンの追跡によって示されるように)現在の変化を有する小区分22の全てを、次に古いバッファから現在のバッファにコピーする。このコピーによって、現在のバッファを、最も古いバッファおよび2番目に古いバッファの両方に対して更新されるように更新する。このコピーは、現在のバッファが、スワップチェーン内でその直前のバッファに更新されるように、チェーン内の全てのバッファに対して実行される。各コピーは、現在のバッファへの書き込みを生じさせ、且つ、現在のバッファ20の関連付けられた小区分22ごとに状態ビット24をダーティに設定する。
次いで、レンダリングエンジン12は、次のフレームに対する現在のバッファ20へのデータの書き込みに進む。書き込みは、データソース11によって変化が示されている画素に対してのみ行われる。これは、現在のバッファ20に対して現在の変化を提供する。書き込みは、書き込まれた画素を含む小区分22をダーティとしてレンダリングし、状態ビット24が(一時的変化に起因してダーティとして設定されたものに加えて)そのように設定される。その結果、ダーティとしてマークされた小区分22は、一時的変化、現在の変化またはそれら両方を有するものである。
「ダーティ」との記録は、画面バッファのうちどの小区分が読み取られてパネル18に提供されるかを判断するために、後にディスプレイ制御装置16によって使用される。従って、パネル18に提供される区分は、一時的変化、現在の変化またはそれら両方を経験した小区分22である。それらの変化した小区分22は、以前のバッファからコピーすることによる(一時的変化)か、または、データソース11の指示でレンダリングエンジン12によって書き込むことによる(現在の変化)かの何れかによって、バッファに置かれる。一旦、適切な小区分22がパネル18に出力されると、状態ビット24がリセットされる。しかし、レンダリングエンジン12は、どの領域が、関連した現在の変化に起因してダーティな状態ビット24を有していたかという指標を保持する。この保持は、(前述のように)どの小区分24が後続のバッファにコピーされる必要があるかを判断するために使用される。
上記のソリューションは、画像のスケーリングを提供する際に省電力を提供するように修正することも可能である。このように修正された1つのソリューションは、「ダーティに隣接した」第3の小区分状態の使用を含む。クリーン/ダーティアルゴリズムは、スケーリングの程度と、どの特定の小区分22がダーティであるかと、を認識する。クリーン/ダーティアルゴリズムは、スケーリングの程度に対して適切になるように、どの小区分22がダーティな小区分22に十分に近いかをさらに判断する。クリーンであるが、ダーティな画素に近い小区分22に対して、クリーン/ダーティアルゴリズムは、「ダーティに隣接した」状態を割り当てる。次いで、ディスプレイ制御装置16は、実際に「ダーティ」な小区分22、縦および横のスケーリング比率、ならびに、スケーリングに起因してエンベロープされた任意の隣接した小区分、に基づいてパネル18への実際の出力を計算する際に使用される「ダーティに隣接した」小区分22を読み取ることを認識する。理解され得るように、スケーリングは、当業者に周知のグラフィックス後処理技術の一種にすぎない。後処理の他の形式は、異なる数および位置の隣接した小区分を使用することが知られている。例えば、いくつかの非ブロック化技術(別のタイプの後処理)は、空間的に直接隣接した小区分のみを参照する。他の非ブロック化技術は、2つ以上の隣接した小区分(焦点となる小区分(例えば、ダーティな小区分)に直接隣接した小区分、および、直接隣接した小区分よりもさらに空間的に離れている1つ以上の小区分)を使用する。
小区分22のサイズは、様々な程度の粒度を与えるために変更できることが理解されよう。より小さい小区分22は、より多くの小区分22を生成して、小区分22が「クリーン」であると分かる可能性を高める。それに応じて、より小さい小区分は、より多くの事前処理作業を生成して、より多くのメモリ記憶を必要とするが、ディスプレイ制御装置16での電力および処理の節約の可能性を高める。小区分のサイズに関わらず、各小区分22は、変化した部分または変化していない部分としてのマークに関して、単一のエンティティとして扱われる。
前述の詳細な説明およびその中で説明される例は、例示および説明目的のみで提示されており、制限することを意図していない。例えば、説明した操作は、任意の適切な方法で行われ得る。方法は、説明した操作および結果を依然として提供する任意の適切な順序で行われ得る。従って、本実施形態は、上述したように開示し、本明細書で主張する基本的な基礎となる原理の精神および範囲に含まれる、あらゆる修正、変形または均等物を包含すると考えられる。さらに、前述の説明は、コードを実行するプロセッサの形態でのハードウェアを記述しているが、状態機械の形態でのハードウェア、または、同様の効果をもたらすことが可能な専用論理も考えられる。
本明細書で説明するソフトウェア動作は、状態機械、フィールドプログラマブルゲートアレイ、特定用途向け回路または他の適切なハードウェアを含むがそれらに限定されない、個別論理固定機能回路などのハードウェアで実装できる。ハードウェアは、例えば、RTLおよびVHDLまたは任意の他の適切なフォーマットなどであるがそれらに限定されないハードウェア記述子言語で、RAM、ROMまたは他の適切なメモリなどの持続性メモリ内に格納された実行可能なコードで表され得る。実行可能なコードは、実行時に、統合製造システムに、本明細書で説明する動作を有するICを製造させ得る。
また、集積回路設計システム/統合製造システム(例えば、当該技術分野で周知のように、1つ以上のプロセッサ、1つ以上のバスまたは他の適切な相互接続を介して通信する関連メモリおよび他の既知の周辺機器を含む、ワークステーション)が知られており、例えば、CDROM、RAM、他の形式のROM、ハードドライブ、分散メモリなどであるが、それらに限定されないコンピュータ可読媒体上に格納された実行可能命令に基づき、集積回路を有するウェハーを製造する。命令は、ハードウェア記述子言語(HDL)、Verilogまたは他の適切な言語などであるがそれらに限定されず、任意の適切な言語によって表され得る。そのため、本明細書で説明する論理および回路も、命令が格納されたコンピュータ可読媒体を使用して、かかるシステムにより集積回路として製造され得る。例えば、前述の論理および構造を備えた集積回路は、かかる集積回路製造システムを使用して製造され得る。かかるシステムでは、コンピュータ可読媒体は、1つ以上の集積回路設計システムに集積回路を製造させる1つ以上の集積回路設計システムによって実行可能な命令を格納する。

Claims (14)

  1. 現在のバッファと、第1のバックバッファと、第2のバックバッファとを含む少なくとも3つのバッファを備えるスワップバッファチェーンを有するメモリを用いることと、
    前記現在のバッファがディスプレイ制御装置によって最後に読み出されてから、レンダリングエンジンが前記第1のバックバッファの第1のフレームの第1の部分にいつ書き込みを行ったのか判断することと、
    前記現在のバッファが前記ディスプレイ制御装置によって最後に読み出されてから、前記レンダリングエンジンが前記第2のバックバッファの第2のフレームの第1の部分にいつ書き込みを行ったのか判断することと、
    前記現在のバッファが前記ディスプレイ制御装置によって最後に読み出されてから、前記現在のバッファの現在のフレーム、前記第1のバックバッファの前記第1のフレーム及び前記第2のバックバッファの前記第2のフレームのうちどの部分が変化したのかを追跡することによって、前記現在のバッファの前記現在のフレームの第1の部分が変化したのを判断することと、
    前記現在のバッファの前記現在のフレームの第1の部分が変化したのを判断したことに応じて、変化した前記現在のフレームの第1の部分を、前記第1のフレーム及び前記第2のフレームに対して変化した前記現在のフレームの他の部分とともに、変化していない前記第1のフレーム及び前記第2のフレームの部分を出力することなく、出力することと、を含み、
    前記追跡することは、前記第1のバックバッファ及び前記第2のバックバッファの少なくとも1つからのコピー動作によって生じる一時的変化を検出することと、前記レンダリングエンジンが実行する前記現在のバッファへの書き込み動作によって生じた前記現在のバッファにおける現在の変化を検出することと、を含む、
    画像フレームを提供する方法。
  2. 前記第1のフレームは、複数の部分に細分されている、請求項1に記載の方法。
  3. 各部分は、隣接する多角形である、請求項に記載の方法。
  4. 前記レンダリングエンジンは、フレームバッファへの最後の書込み後に変化した部分についての前記フレームバッファの部分の書き込みのみ行う、請求項1に記載の方法。
  5. 前記第1のフレームは、スワップバッファチェーンのバックバッファである前記第1のバックバッファに少なくとも一部書き込まれ、出力することは、前記第1のバックバッファがスワップバッファチェーンの画面バッファである場合に、前記第1のバックバッファから部分を読み取る、請求項1に記載の方法。
  6. 第1のフレームのうち1つ以上の他のフレームに対して変化した1つ以上の部分を、前記第1のフレームのうち前記1つ以上の他のフレームに対して変化していない部分を出力することなく、出力することであって、各部分は、レンダリングエンジンが当該部分の境界内の位置についてフレームバッファに書き込んだ場合に、変化したと判断される、ことと、
    前記部分を出力する前に、前記変化した部分に後処理を適用することをさらに含み、前記後処理は、前記変化した部分に隣接した部分を読み取ることと、受信した復号画像に従う処理と、前記変化した部分に隣接した読み取り部分に基づいて画質を改良する処理と、を含む、
    画像フレームを提供する方法。
  7. 前記後処理はスケーリングである、請求項に記載の方法。
  8. 前記変化した部分に隣接した読み取り部分は、選択された後処理技術を実施するのに必要なものである、請求項に記載の方法。
  9. 画像情報を1つ以上のメモリバッファに書き込む動作をするレンダリングエンジンと、
    複数の部分をそれぞれ有する複数のメモリバッファと、
    前記複数のメモリバッファの各々の前記複数の部分ごとの状態の変化のインジケータであって、各部分は、レンダリングエンジンが前記メモリバッファの前記部分内の画素に書き込んだ場合に、変化したと判断される、インジケータと、
    復号画像の部分を受信し、前記部分を出力する前に、変化した部分に後処理を適用する動作をする後処理装置であって、前記後処理は、画質の改良を提供するものであって、前記変化した部分に隣接した部分を読み取ることを含み、前記画質の改良は、前記変化した部分に隣接した読み取り部分に基づいて実行される、後処理装置と、
    前記インジケータを解釈して、前記複数のメモリバッファのうち第1のバッファから選択的に部分を読み出す動作をするディスプレイ制御装置と、
    を含む、表示更新装置。
  10. 前記ディスプレイ制御装置は、前記部分が変化したことを示す関連したインジケータを有する部分のみを読み取る動作をする、請求項に記載の表示更新装置。
  11. 前記ディスプレイ制御装置は、前記メモリバッファが最後に使用された後に、前記部分が変化したことを示す関連したインジケータを有する部分のみを読み取る動作をする、請求項10に記載の表示更新装置。
  12. 前記複数のメモリバッファは、スワップバッファチェーンの一部である、請求項に記載の表示更新装置。
  13. メモリバッファは、同様に配置された同一のサイズの対応する部分を有する、請求項に記載の表示更新装置。
  14. 前記複数のメモリバッファの各々に対して変化の前記インジケータを設定する動作をする変化判定器をさらに含む、請求項に記載の表示更新装置。
JP2015530251A 2012-09-05 2013-09-05 選択的な表示更新のための方法および装置 Active JP6275146B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261697261P 2012-09-05 2012-09-05
US61/697,261 2012-09-05
PCT/CA2013/050682 WO2014036652A1 (en) 2012-09-05 2013-09-05 Method and device for selective display refresh
US14/018,869 2013-09-05
US14/018,869 US10134106B2 (en) 2012-09-05 2013-09-05 Method and device for selective display refresh

Publications (2)

Publication Number Publication Date
JP2016500163A JP2016500163A (ja) 2016-01-07
JP6275146B2 true JP6275146B2 (ja) 2018-02-07

Family

ID=50186917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015530251A Active JP6275146B2 (ja) 2012-09-05 2013-09-05 選択的な表示更新のための方法および装置

Country Status (7)

Country Link
US (1) US10134106B2 (ja)
EP (1) EP2893529B1 (ja)
JP (1) JP6275146B2 (ja)
KR (1) KR102065564B1 (ja)
CN (1) CN104641412B (ja)
IN (1) IN2015DN02499A (ja)
WO (1) WO2014036652A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640148B2 (en) * 2013-06-03 2017-05-02 Arm Limited Method of and apparatus for controlling frame buffer operations
GB2525223B (en) 2014-04-16 2020-07-15 Advanced Risc Mach Ltd Graphics processing systems
DE112014007242T5 (de) * 2014-12-12 2017-09-28 Mitsubishi Electric Corporation Informationsverarbeitungsvorrichtung; wiedergabeverfahren für bewegte bilder und wiedergabeprogramm für bewegte bilder
US10446118B2 (en) * 2015-06-02 2019-10-15 Intel Corporation Apparatus and method using subdivided swapchains for improved virtual reality implementations
US10078883B2 (en) * 2015-12-03 2018-09-18 Qualcomm Incorporated Writing graphics data from local memory to system memory
US10283078B2 (en) * 2016-01-20 2019-05-07 Mediatek Inc. Adaptive display partial update methods and apparatus thereof for power saving in pixel processing
CN107316270A (zh) * 2016-04-25 2017-11-03 联发科技股份有限公司 为由多个帧组成的图像数据生成脏信息的方法及图形系统
US9997141B2 (en) * 2016-09-13 2018-06-12 Omnivision Technologies, Inc. Display system and method supporting variable input rate and resolution
US10545242B2 (en) 2016-09-14 2020-01-28 Apple Inc. Systems and methods for in-frame sensing and adaptive sensing control
CN106997561A (zh) * 2017-04-18 2017-08-01 湖南福米信息科技有限责任公司 股票行情数据的显示方法、系统及终端设备
US10672367B2 (en) * 2017-07-03 2020-06-02 Arm Limited Providing data to a display in data processing systems
US10504452B2 (en) 2018-03-12 2019-12-10 Apple Inc. Pixel contrast control systems and methods
US10516812B2 (en) 2018-04-02 2019-12-24 Intel Corporation Devices and methods for selective display frame fetch
CN111611031A (zh) * 2019-02-26 2020-09-01 华为技术有限公司 一种图形绘制方法和电子设备
US11295660B2 (en) 2019-06-10 2022-04-05 Ati Technologies Ulc Frame replay for variable rate refresh display
US11605366B2 (en) * 2020-09-10 2023-03-14 Microchip Technology Incorporated LCC (low cost controllerless) graphics processing
TWI772933B (zh) * 2020-10-23 2022-08-01 宏正自動科技股份有限公司 影像處理裝置及多畫面顯示的影像處理方法
US11935149B2 (en) * 2020-11-13 2024-03-19 Samsung Electronics Co., Ltd Electronic device and image rendering method thereof for adjusting frame rate

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5801717A (en) * 1996-04-25 1998-09-01 Microsoft Corporation Method and system in display device interface for managing surface memory
US6128026A (en) * 1998-05-04 2000-10-03 S3 Incorporated Double buffered graphics and video accelerator having a write blocking memory interface and method of doing the same
US6847358B1 (en) * 1999-08-06 2005-01-25 Microsoft Corporation Workstation for processing and producing a video signal
US6943801B2 (en) * 2000-03-31 2005-09-13 Scott A. Rosenberg System and method for refreshing imaging devices or displays on a page-level basis
US6888551B2 (en) * 2001-12-07 2005-05-03 Intel Corporation Sparse refresh of display
US7038689B2 (en) * 2002-02-19 2006-05-02 Intel Corporation Sparse refresh double-buffering
US6911983B2 (en) * 2003-03-12 2005-06-28 Nvidia Corporation Double-buffering of pixel data using copy-on-write semantics
US7394465B2 (en) * 2005-04-20 2008-07-01 Nokia Corporation Displaying an image using memory control unit
US20070139445A1 (en) * 2005-12-16 2007-06-21 Intel Corporation Method and apparatus for displaying rotated images
JP4622865B2 (ja) * 2006-01-13 2011-02-02 ヤマハ株式会社 画像処理装置
FR2948770B1 (fr) * 2009-07-31 2011-10-07 Airbus Operations Sas Procede de caracterisation electrique d'un materiau composite pour la fabrication d'un aeronef
US8803898B2 (en) * 2009-12-17 2014-08-12 Arm Limited Forming a windowing display in a frame buffer
WO2011127941A1 (de) 2010-04-14 2011-10-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum deblocking-filtern
US8824560B2 (en) 2010-07-07 2014-09-02 Netzyn, Inc. Virtual frame buffer system and method
JP5613249B2 (ja) 2010-09-16 2014-10-22 株式会社東芝 画像生成装置およびその方法
US20120218277A1 (en) 2011-02-25 2012-08-30 ST-Ericcson SA Display list mechanism and scalable display engine structures
US8862906B2 (en) * 2011-04-01 2014-10-14 Intel Corporation Control of platform power consumption using coordination of platform power management and display power management
US9472018B2 (en) 2011-05-19 2016-10-18 Arm Limited Graphics processing systems

Also Published As

Publication number Publication date
US20140063034A1 (en) 2014-03-06
EP2893529A4 (en) 2016-05-04
CN104641412B (zh) 2018-05-25
WO2014036652A1 (en) 2014-03-13
EP2893529B1 (en) 2020-01-15
CN104641412A (zh) 2015-05-20
US10134106B2 (en) 2018-11-20
EP2893529A1 (en) 2015-07-15
KR102065564B1 (ko) 2020-03-02
IN2015DN02499A (ja) 2015-09-11
JP2016500163A (ja) 2016-01-07
KR20150047612A (ko) 2015-05-04

Similar Documents

Publication Publication Date Title
JP6275146B2 (ja) 選択的な表示更新のための方法および装置
US9996363B2 (en) Methods of and apparatus for displaying windows on a display
CN112655025B (zh) 处理中自适应中央窝渲染
US7394465B2 (en) Displaying an image using memory control unit
JP4234217B2 (ja) サイズ変更ビットブロック転送処理の一部として透過イネーブルビットの埋込みを行うシステム、装置および方法
KR101121595B1 (ko) 하이브리드 시스템 구성을 이용한 화상 처리
US9640148B2 (en) Method of and apparatus for controlling frame buffer operations
US11164496B2 (en) Interrupt-free multiple buffering methods and systems
US8665282B2 (en) Image generating apparatus and image generating method and reading of image by using plural buffers to generate computer readable medium
US9811873B2 (en) Scaler circuit for generating various resolution images from single image and devices including the same
KR20070112735A (ko) 프레임 버퍼 병합
US20160371808A1 (en) Method and apparatus for controlling display operations
US11004427B2 (en) Method of and data processing system for providing an output surface
TW201608520A (zh) 具有遮罩直接記憶體存取之圖形遠端系統與圖形處理方法
US10332489B2 (en) Data processing system for display underrun recovery
US10565966B2 (en) Display controllers
CN115380325B (zh) Lcc(低成本无控制器)图形处理
CN110223369B (zh) Tbr架构的帧缓存写回方法、装置及计算机存储介质
JP2008192066A (ja) メモリ制御回路およびメモリ制御回路を用いた表示装置
WO2020140145A1 (en) Interrupt-free multiple buffering methods and systems
JP2001092982A (ja) 画像描画装置および画像描画方法ならびに情報記録媒体
JP2005202218A (ja) 画像データ処理装置
JP2014010520A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170808

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180109

R150 Certificate of patent or registration of utility model

Ref document number: 6275146

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250