JP6652937B2 - 分割ディスプレイを駆動する多重ディスプレイパイプライン - Google Patents

分割ディスプレイを駆動する多重ディスプレイパイプライン Download PDF

Info

Publication number
JP6652937B2
JP6652937B2 JP2016570260A JP2016570260A JP6652937B2 JP 6652937 B2 JP6652937 B2 JP 6652937B2 JP 2016570260 A JP2016570260 A JP 2016570260A JP 2016570260 A JP2016570260 A JP 2016570260A JP 6652937 B2 JP6652937 B2 JP 6652937B2
Authority
JP
Japan
Prior art keywords
display
frame
display pipeline
pipeline
vertical blanking
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
JP2016570260A
Other languages
English (en)
Other versions
JP2017519244A (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2017519244A publication Critical patent/JP2017519244A/ja
Application granted granted Critical
Publication of JP6652937B2 publication Critical patent/JP6652937B2/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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0202Addressing of scan or signal lines
    • G09G2310/0221Addressing of scan or signal lines with use of split matrices
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2352/00Parallel handling of streams of display data
    • 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/06Use of more than one graphics processor to process data before displaying to one or more screens

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)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Multimedia (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)

Description

(技術分野)
本明細書に記述する実施形態は、グラフィカル情報処理の分野に関し、特に、画像フレームの別々の部分を分割ディスプレイに対して駆動するために多重ディスプレイパイプラインを利用することに関する。
(従来技術)
携帯電話、ノートブックコンピュータなどの携帯型デジタルデバイスを含む多くのコンピュータシステムの動作の一部分は、画像、映像情報/ストリーム、及びデータを表示するために液晶ディスプレイ(LCD)などのディスプレイ装置を利用するようになっている。したがって、これらのシステムは、一般的に、後にディスプレイ装置に出力される、映像情報を含む、画像及びデータを生成するための機能を内蔵する。このようなデバイスは、一般的に、後の表示のための画像及び映像情報を処理するための映像グラフィック回路(すなわちディスプレイパイプライン)を含む。
デジタル画像形成では、画像中の最小情報要素が「画素」、より一般的に「ピクセル」と呼ばれる。便宜上、ピクセルは、規則的な二次元グリッドに概ね配置される。このような配置を用いることで、各ピクセルに対して個別に同じ操作を一様に適用することにより、多くの共通操作を実施することができる。各ピクセルがデジタル画像の基本的部分であるので、ピクセル数が多いほど、デジタル画像のより精確な表現をもたらすことができる。電子ディスプレイに特定の色を表現するために、各ピクセルは、所望の色に存在する赤、緑、及び青それぞれの量に相当する3つの値を有し得る。電子ディスプレイ用の幾つかのフォーマットは、ピクセルの透明度を表す、アルファと呼ばれる第4の値も含み得る。このフォーマットは、一般にARGB又はRGBAと称される。ピクセル色を表すための別のフォーマットは、YCbCrであり、ここで、Yがピクセルの輝度又は明るさに対応し、Cb及びCrが、青の色差(Cb)及び赤の色差(Cr)を表す2つの色差クロミナンス成分に対応する。
LCD画面などのディスプレイ装置に表示される大半の画像及び映像情報は、順序付けられた画像フレーム、つまりは、フレームの連続とみなされる。フレームは、概して、完結した動画又は映像ストリームを構成する多くの静止画のうちの1つであるが、より大雑把に言えば、デジタル(飛び越し又は順次走査)ディスプレイに表示される単なる静止画とみなすこともできる。フレームは、一般的に、画像/映像フレームの解像度に従った特定数のピクセルから成る。大半のグラフィックシステムは、画像及び映像フレーム情報のピクセルを記憶するためにメモリ(一般に「フレームバッファ」と称される)を使用する。フレームバッファ内の情報は、一般的に、画面に表示されるべきピクセル毎の色値から成る。
画像間の一定の間隔によって、映像ストリーム又はアニメション画像の動きがスムーズになる。一定の間隔がなければ、映像ストリーム中の物及び人の動きが不規則及び不自然に見える。LCDディスプレイ及びデジタル映像規格の使用が一般的になる前には、アナログブラウン管のテレビ及びモニタは、画面の右下コーナから、各映像フレームが始まる左上に戻るように電子銃を再配置するために、垂直ブランキング期間(VBI)と呼ばれる信号を使用した。VBI信号は、その当初の目的では使われていないが、現代の映像システムに存在し続けており、画像フレームを更新するための一定の間隔を提供することができる。
ディスプレイパイプラインは、或る解像度までの表示解像度をサポートするように構成され得る。4000ピクセルのオーダーの水平解像度(又は4k解像度)を有するディスプレイなどの高解像度ディスプレイが、益々普及しつつある。低解像度ディスプレイ用に設計されたディスプレイパイプラインは、これらの高解像度ディスプレイ用の画面にピクセルを表示するために必要とされるピクセル帯域幅をサポートできない場合がある。加えて、フレームリフレッシュレートが120ヘルツ(Hz)以上の場合があり、ディスプレイパイプラインに対して要求される毎秒当りの処理量が増加することになる。
上記を考慮して、ピクセルを処理し、高解像度ディスプレイに対して駆動するための方法及びメカニズムが望まれる。
高解像度ディスプレイに対してピクセルを駆動するためのシステム、装置、及び方法が企図される。
一実施形態では、装置は、2つのディスプレイパイプライン及びマスタタイミング生成器を含み得る。ソースフレームのシーケンスの各ソースフレームは、複数の部分に論理的に区画され得る。ソースフレームの部分は、次いで、ディスプレイパイプラインにより取り込まれて処理され、対応する表示画面に提示され得るが、それは、高解像度ディスプレイの場合もある。例えば、一実施形態では、フレームが垂直に半分に論理的に分割され得、別々のディスプレイパイプラインが各半分を駆動するために利用され得る。したがって、第1のディスプレイパイプラインが画面の第1の半分を駆動し得、第2のディスプレイパイプラインが画面の第2の半分を駆動し得、得られた単一の画像又は映像フレームがディスプレイに示される。このようにして、各ディスプレイパイプラインは、ピクセル処理全体の半分のみを実施するように構成され得る。
各ディスプレイパイプラインは、ソースフレームをフェッチ及び処理するための1つ以上の内部ピクセル処理パイプラインを含み得る。各ディスプレイパイプラインは、複数のエントリを含み得る先入れ先出し(FIFO)バッファ及びFIFOに接続された制御ユニットも含み得る。制御ユニットは、複数のフレームパケットを受信するように構成され得、それらの各々は、ソースフレームのうちの1つに対応し得、各フレームパケットは、ヘッダ及び1つ以上のコマンドを含み得る。制御ユニットは、各フレームパケットをFIFOバッファのエントリに記憶するように構成され得る。新たなフレームパケットが、そのパケットが対応するフレームよりも前にデバイスプロセッサから各ディスプレイパイプラインに送出され得る。両方のディスプレイパイプラインは、同じフレームに関する新たなパラメータFIFOパケットに切り替わるように構成され得る。
一実施形態では、所与のフレームを処理する間に、各ディスプレイパイプラインは、次のフレームに対応するフレームパケットが既に受信されているかを判定し得、各ディスプレイパイプラインは、次のフレームに対応するフレームパケットが既に受信されている場合に、マスタタイミング生成器に通知を送信し得る。両方のディスプレイパイプラインが次のフレームのフレームパケットを受信している場合、ディスプレイパイプラインが表示のための次のフレームを処理すべきであることを示す通常垂直ブランキング期間(VBI)信号がマスタタイミング生成器により生成され得る。ディスプレイパイプラインのいずれかが次のフレームのフレームパケットを受信していない場合、ディスプレイパイプラインが前のフレームを繰り返すべきであることを示す繰返しVBI信号がマスタタイミング生成器により生成され得る。
これら及び他の機能及び利点は、本明細書に提示するアプローチの以下の詳細な説明を考慮すると、当業者にとって明らかになるであろう。
方法及びメカニズムの上記の利点及び更なる利点は、添付の図面と併せて以下の説明を参照することでより理解され得る。
メモリ及び1つ以上のディスプレイ装置に接続されたシステムオンチップ(SOC)の一実施形態を図示するブロック図である。 SOC内で使用するためのデュアルディスプレイパイプラインの一実施形態のブロック図である。 ディスプレイパイプラインフロントエンドの一実施形態を図示するブロック図である。 映像ファイルの表示及び対応するパラメータFIFOの一実施形態を図示するブロック図である。 パラメータFIFOエントリの一実施形態を図示するブロック図である。 映像/UIパイプラインの一実施形態を図示するブロック図である。 非分割表示画面及び2ウェイ分割表示画面を図示するブロック図である。 2ウェイ表示分割を可能にするための回路の一実施形態を図示するブロック図である。 2ウェイ表示分割を可能にするための回路のタイミング図である。 仮想的な単一のコントローラの一実施形態を図示するブロック図である。 2つのディスプレイパイプラインを同期させるための制御ロジックの一実施形態を図示するブロック図である。 異なる種類の垂直ブランキング期間(VBI)信号を生成するための方法の一実施形態を図示する一般化されたフロー図である。 ディスプレイパイプライン内でソースフレームを処理するための方法の一実施形態を図示する一般化されたフロー図である。 システムの一実施形態のブロック図である。
以下の説明では、本明細書に提示する方法及びメカニズムの完全な理解をもたらすために、多数の具体的な詳細が記載される。しかし、これらの具体的な詳細を伴わずに各種の実施形態が実践され得ることを当業者は認識するはずである。幾つかの事例では、本明細書に記述するアプローチが不明瞭となることを避けるため、周知の構造、構成要素、信号、コンピュータプログラム命令、及び技術は詳細に示されていない。図示の簡潔性及び明瞭性のために、図に示す要素は必ずしも縮尺どおりに描かれていないことが理解されるであろう。例えば、幾つかの要素の寸法は、他の要素に対して誇張される場合がある。
本明細書は、「一実施形態」に対する参照を含む。異なる文脈に現れる、「一実施形態では」というフレーズは、必ずしも同じ実施形態を参照しない。特定の機能、構造又は特性は、本開示に整合する任意の適当な方法で組み合わせられ得る。更に、本出願を通して使用されるとき、「〜し得る、〜してもよい(may)」という語は、義務的な意味(すなわち、〜しなければならない(must)を意味する)ではなく、許容的な意味(すなわち、〜する可能性を有することを意味する)で使用される。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、何かを含むことを意味するが、その何かに限定されることを意味しない。
用語。以下の段落は、本開示(添付の請求項を含む)に見られる用語の定義及び/又は文脈を提供する。
「備える、含む(Comprising)」。この用語はオープンエンドである。添付の請求項に使用されるとき、この用語は、追加の構造又はステップを除外しない。「...ディスプレイパイプラインを備える装置。」と記載される請求項について検討してみる。このような請求項は、装置が追加構成要素(例えば、プロセッサ、メモリコントローラ)を含むことを除外しない。
「〜するように構成される(Configured To)」。各種のユニット、回路、又は他の構成要素は、タスク又はタスク群を実施する「ように構成される」と記述又は請求され得る。このような文脈では、「〜するように構成される」は、ユニット/回路/構成要素が、動作中にタスク又はタスク群を実施する構造(例えば回路)を含むことを示すことにより構造を暗示するために使用される。したがって、ユニット/回路/構成要素は、特定のユニット/回路/構成要素が現在動作していない(例えば、オンの状態でない)ときでも、タスクを実施するように構成されると言い得る。「〜するように構成される」という文言と共に使用されるユニット/回路/構成要素は、ハードウェア、例えば、回路、動作を実施するために実行可能なプログラム命令を記憶するメモリなどを含む。ユニット/回路/構成要素が1つ以上のタスクを実施する「ように構成される」との記載は、そのユニット/回路/構成要素について、米国特許法第112条(f)が発動されないことを明示的に意図している。加えて、「〜するように構成される」は、問題のタスク(1つ以上)を実施できる方法で動作するようにソフトウェア及び/又はファームウェア(例えば、ソフトウェアを実行するFPGA又は汎用プロセッサ)によって操作される一般的な構造(例えば、一般的な回路)を含み得る。「〜するように構成される」は、1つ以上のタスクを実施又は実行するように適合されたデバイス(例えば集積回路)を組み立てるように製造工程(例えば半導体組立設備)を適合させることも含み得る。
「基づく」。本明細書に使用するとき、この用語は、判定に影響を及ぼす1つ以上の要因を記述するために使用される。この用語は、判定に影響を及ぼし得る追加要因を排除しない。つまり、判定はこれらの要因のみに基づくか、又は、少なくとも部分的にこれらの要因に基づき得る。「Bに基づいてAを判定する」というフレーズについて検討してみる。BはAの判定に影響を及ぼす要因であり得るが、このようなフレーズはAの判定がCにも基づくことを排除しない。他の事例では、AはBのみに基づいて判定され得る。
次に図1を参照すると、メモリ112及びディスプレイ装置120に接続されたシステムオンチップ(SOC)110の一実施形態のブロック図が示されている。本明細書では、ディスプレイ装置がより簡潔にディスプレイと称され得る。名前が暗示するように、SOC110の構成要素は、集積回路「チップ」として、単一の半導体基板上に集積され得る。幾つかの実施形態では、構成要素は、システム内の2つ以上の個別のチップ上に実装され得る。しかし、本明細書では、SOC110が例として使用される。図示する実施形態では、SOC110の構成要素は、中央処理装置(CPU)コンプレックス114、ディスプレイパイプ116及び117、周辺構成要素118A〜118B(より短く、「周辺装置」)、メモリコントローラ122、並びに通信ファブリック127を含む。構成要素114、116、117、118A〜118B、及び122は、全て通信ファブリック127に接続され得る。メモリコントローラ122は、使用中にメモリ112に接続され得る。同様に、ディスプレイパイプ116及び117は、使用中にディスプレイ120に接続され得る。図示する実施形態では、CPUコンプレックス114は、1つ以上のプロセッサ128及びレベル2(L2)キャッシュ130を含む。
ディスプレイパイプ116及び117は、ディスプレイ120に表示するための1つ以上の静止画、及び/又は1つ以上の映像シーケンスを処理するためのハードウェアを含み得る。概して、各ソース静止画又は映像シーケンスについて、ディスプレイパイプ116及び117は、フレーム/映像シーケンスのそれぞれの部分を表すデータをメモリコントローラ122を介してメモリ112から読み出すためのメモリ読出し操作を生成するように構成され得る。
ディスプレイパイプ116及び117は、画像データ(静止画、映像シーケンスなど)に対して任意の種類の処理を実施するように構成され得る。一実施形態では、ディスプレイパイプ116及び117は、静止画のスケール変更、映像シーケンスのフレームのそれぞれの部分に対するディザ処理、スケール変更、及び/又は色空間変換を実行するように構成され得る。ディスプレイパイプ116及び117は、表示のための出力フレームを生成するために、静止画フレーム及び映像シーケンスフレームをブレンド処理するように構成され得る。ディスプレイパイプ116及び117の各々は、より一般的には、ディスプレイパイプライン、ディスプレイ制御ユニット、又はディスプレイコントローラとも称され得る。ディスプレイ制御ユニットは、概して、静止画及び/又は映像シーケンスなどの1つ以上のソースから表示のためのフレームを準備するように構成された任意のハードウェアであり得る。
より詳細には、ディスプレイパイプ116及び117の各々は、メモリ112に記憶された1つ以上のソースバッファ126A〜126Bからソースフレームのそれぞれの部分を取り出し、ソースバッファからのフレームを合成し、得られたフレームをディスプレイ120の対応する部分に表示するように構成され得る。ソースバッファ126A及び126Bは、メモリ112に記憶され得る任意の数のソースフレームバッファを表す。したがって、ディスプレイパイプ116及び117は、複数のソースバッファ126A〜126Bを読み出し、出力フレームを生成するために画像データを合成するように構成され得る。
ディスプレイ120は、任意の種類の視覚ディスプレイ装置であり得る。ディスプレイ120は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プラズマ、ブラウン管(CRT)などであり得る。ディスプレイ120は、SOC110を含むシステム(例えば、スマートフォン若しくはタブレット)に内蔵され得、及び/又はコンピュータモニタ、テレビ、若しくは他のデバイスなど、個別に収容されたデバイスであり得る。
幾つかの実施形態では、ディスプレイ120は、SOC110に直接接続され得、ディスプレイパイプ116及び117により制御され得る。つまり、ディスプレイパイプ116及び117は、1つ以上のクロック、及び/又は垂直ブランキング期間及び水平ブランキング周期制御などのタイミング信号を含む各種の制御/データ信号をディスプレイに提供し得るハードウェア(「バックエンド」)を含み得る。クロックは、ピクセルが送信されていることを示すピクセルクロックを含み得る。データ信号は、例えば赤、緑、及び青などの色信号を含み得る。ディスプレイパイプ116及び117は、ディスプレイ120をリアルタイム又はほぼリアルタイムで制御し、フレームにより示される画像をディスプレイが表示しているときに表示されるべきピクセルを示すデータを提供し得る。このようなディスプレイ120とのインターフェースは、例えば、VGA、HDMI(登録商標)、デジタルビデオインターフェース(DVI)、液晶ディスプレイ(LCD)インターフェース、プラズマインターフェース、ブラウン管(CRT)インターフェース、任意の独自のディスプレイインターフェースなどであり得る。
一実施形態では、各ディスプレイパイプライン116及び117は、互いに独立して動作するように構成され得る。この実施形態では、各ディスプレイパイプライン116及び117は、(図1には、1つのディスプレイのみが示されるが)別々のディスプレイを駆動するように構成され得る。例えば、この実施形態では、ディスプレイパイプライン116は、第1のディスプレイを駆動するように構成され得、ディスプレイパイプライン117は、第2のディスプレイを駆動するように構成され得る。別の実施形態では、ディスプレイ120は、垂直に半分に論理的に分割され得る。この実施形態では、ディスプレイパイプライン116は、画面の第1の半分を駆動し得、ディスプレイパイプライン117は、画面の第2の半分を駆動し得る。このようにして、各ディスプレイパイプライン116及び117は、ピクセル処理全体の半分のみを実施するように構成され得る。プロセッサ128上で動作するソフトウェアは、選ばれた実施形態に従って動作するように、ディスプレイパイプライン116及び117をプログラムするように構成され得る。他の実施形態では、単一のディスプレイ120を駆動するために、異なる数のディスプレイパイプラインがSOC110内で利用され得ることに留意されたい。例えば、別の実施形態では、4つの部分に論理的に区画される単一のディスプレイ120を駆動するために、4つのディスプレイパイプラインが利用され得る。
CPUコンプレックス114は、SOC110のCPUの役割を果たす1つ以上のCPUプロセッサ128含み得る。システムのCPUは、オペレーティングシステムなどの、システムの主制御ソフトウェアを実行するプロセッサ(1つ以上)を含む。概して、使用中にCPUにより実行されるソフトウェアは、システムの所望の機能を実現するためにシステムの他の構成要素を制御し得る。CPUプロセッサ128は、アプリケーションプログラムなどの他のソフトウェアも実行し得る。アプリケーションプログラムは、ユーザ機能を提供し得、より下位のデバイス制御に関してオペレーティングシステムに依存し得る。したがって、CPUプロセッサ128は、アプリケーションプロセッサとも称され得る。CPUコンプレックスは、L2キャッシュ130、及び/又はシステムの他の構成要素とのインターフェース(例えば、通信ファブリック127とのインターフェース)などの他のハードウェアを更に含み得る。
周辺装置118A〜118Bは、SOC110に含まれる追加ハードウェア機能の任意の集合であり得る。例えば、周辺装置118A〜118Bは、映像エンコーダ/デコーダ、カメラなどの画像センサデータ用の画像信号プロセッサ、スケーラ、ローテータ、ブレンダ、グラフィック処理ユニットなどの映像周辺装置を含み得る。周辺装置118A〜118Bは、マイクロフォン、スピーカ、マイクロフォン及びスピーカとのインターフェース、オーディオプロセッサ、デジタル信号プロセッサ、ミキサなどのオーディオ周辺装置を含み得る。周辺装置118A〜118Bは、ユニバーサルシリアルバス(USB)、PCIエキスプレス(PCIe)を含むペリフェラルコンポーネントインターコネクト(PCI)、シリアル及びパラレルポートなどのインターフェースを含む、SOC110の外部の各種インターフェース用のインターフェースコントローラを含み得る。周辺装置118A〜118Bは、メディアアクセスコントローラ(MAC)などのネットワーク用周辺装置を含み得る。ハードウェアの任意の集合が含まれ得る。
メモリコントローラ122は、概して、SOC110の他の構成要素からのメモリ操作を受け、メモリ操作を完了するためにメモリ112にアクセスするための回路を含み得る。メモリコントローラ122は、任意の種類のメモリ112にアクセスするように構成され得る。例えば、メモリ112は、スタティックランダムアクセスメモリ(SRAM)、ダブルデータレート(DDR、DDR2、DDR3など)DRAMを含むシンクロナスDRAM(SDRAM)などのダイナミックRAM(DRAM)であり得る。DDR DRAMの低電力/モバイルバージョン(例えば、LPDDR、mDDRなど)がサポートされ得る。メモリコントローラ122は、メモリ操作、操作用のデータなどをバッファリングするための各種の待ち行列と、操作を順序付け、メモリ112のために定義されたインターフェースに従ってメモリ112にアクセスするための回路とを含み得る。
通信ファブリック127は、SOC110の構成要素間で通信するための任意の通信相互接続及び通信プロトコルであり得る。通信ファブリック127は、共有バス構成、クロスバー構成、及び、ブリッジを有する階層化バス、を含むバスベースであり得る。通信ファブリック127は、パケットベースでもあり得、ブリッジを有する階層構造、クロスバー、ポイントツーポイント、又は他の相互接続であり得る。
SOC110の構成要素の数(及びCPUコンプレックス114内などの、図1に示すものの下位構成要素の数)が実施形態によって異なり得ることに留意されたい。各構成要素/下位構成要素の数は、図1に示すよりも多くてもよく、少なくてもよい。図1には示さない多くの他の構成要素をSOC110が含み得ることにも留意されたい。各種の実施形態では、SOC110は、集積回路(IC)、特定用途向け集積回路(ASIC)、又は装置とも称され得る。
次に図2に移ると、SOC内で使用するためのデュアルディスプレイパイプラインの一実施形態の一般化されたブロック図が示される。2つのディスプレイパイプライン210及び240は、相互接続インターフェース250に接続され得る。2つのディスプレイパイプラインを示すが、他の実施形態では、ホストSOC(例えばSOC110)は、異なる数のディスプレイパイプラインを含み得る。ディスプレイパイプラインの各々は、ソース画像の半分を処理し、目的とする画像のうちの得られた半分をディスプレイ(示していない)の対応する半分に表示するように構成され得る。
一実施形態では、ディスプレイパイプライン210及び240は、レンダリングされたグラフィカル情報を仮想的な単一のコントローラ(例えば、図10の仮想的な単一のコントローラ1000)によりディスプレイに送信し得る。相互接続インターフェース250は、ディスプレイパイプライン210及び240と上位ファブリックとの間で信号及びパケットをルーティングするための、マルチプレクサ及び制御ロジックを含み得る。相互接続インターフェース250は、図1の通信ファブリック127に対応し得る。
ディスプレイパイプライン210及び240は、割り込みインターフェースコントローラ212及び216をそれぞれ含み得る。割り込みインターフェースコントローラ212及び216は、内部ピクセル処理パイプライン214及び218にそれぞれ提示されるべき割り込みを生成するための、ソース又は外部デバイスの数を拡張するためのロジックを含み得る。コントローラ212及び216は、エンコード方式、割り込みベクタアドレスを記憶するためのレジスタ、並びに、割り込みに対するチェック、イネーブル、及び確認応答をするための制御ロジックを提供し得る。割り込みの数及び選択されるプロトコルは、設定可能であり得る。
ディスプレイパイプライン210及び240は、1つ以上の内部ピクセル処理パイプライン214及び218をそれぞれ含み得る。内部ピクセル処理パイプライン214及び218は、ユーザインターフェース(UI)層を処理及び表示するための1つ以上のARGB(アルファ、赤、緑、青)パイプラインを含み得る。内部ピクセル処理パイプライン214及び218は、YUVコンテンツなどの映像コンテンツを処理及び表示するための1つ以上のパイプラインも含み得る。幾つかの実施形態では、内部ピクセル処理パイプライン214及び218は、グラフィカル情報を、後処理ロジック220及び222それぞれへの出力として送信する前に、ブレンド処理するためのブレンド処理回路を含み得る。
ディスプレイパイプライン210及び240は、後処理ロジック220及び222をそれぞれ含み得る。後処理ロジック220は、色管理、環境適応ピクセル(AAP)修正、動的バックライト制御(DPB)、パネルガンマ補正、及びディザ処理のために使用され得る。ディスプレイインターフェース230及び232は、内部パネルディスプレイと通信するためのプロトコルに対応し得る。例えば、モバイルインダストリプロセッサインターフェース(MIPI)のディスプレイシリアルインターフェース(DSI)規格が使用され得る。代わりに、4レーンエンベデッドディスプレイポート(eDP)規格が使用され得る。後処理ロジック及びディスプレイインターフェースは、ディスプレイバックエンドとも称され得る。
一実施形態では、分割表示モードにあるとき、ディスプレイパイプライン210及び240は、現在のフレームの終了時に次のフレームに進むことが可能である場合に、第1の通知を受信し得る。制御ロジック(示していない)は、ディスプレイパイプライン210及び240の両方が、次のフレームを処理するのに十分なほど早く次のフレームのフレームパケットを有しているかを判定するように構成され得、そうである場合に、制御ロジックは、次のフレームに進むために第1の通知をディスプレイパイプライン210及び240に送信するように構成され得る。一実施形態では、第1の通知は、通常VBI信号であり得る。
ディスプレイパイプライン210及び240のいずれかが、次のフレームを駆動するための準備ができていない場合、制御ロジックは、次のフレームに進むのではなく、現在のフレームを繰り返すことをそれらに指示する第2の通知をディスプレイパイプライン210及び240に送信するように構成され得る。パイプラインが準備できているかどうかは、各種の方法で定義され得る。例えば、2つ以上のパイプラインがフレームの設定情報を有し、もって、各々が望ましい見た目(例えば、顕著なアーチファクト、部分間での望ましくない明るさ又は色の不一致がない)を伴ってフレームを提示する方法でフレームの一部分を駆動し得る場合、パイプラインは準備できているとみなされ得る。そうでない場合、少なくとも1つのパイプラインは、満足のいくフレームの全体的な見た目を提供するために必要とされる情報を有しておらず、そのパイプラインは、準備できていないとみなされ得る。一例として、ディスプレイパイプライン210は、次のフレームの設定データを遅れずに有し得るが、ディスプレイパイプライン240は有し得ない。したがって、この場合、ディスプレイパイプライン210は、次のフレームを処理するための準備ができていても、ディスプレイパイプライン210は、次のフレームに移るのではなく同じフレームを再び繰り返し得る。一実施形態では、第2の通知は、繰返しVBI信号であり得る。VBI信号(通常又は繰返し)は、新たな垂直ブランキング期間(VBI)の開始点を確立するパルス又は他の信号であり得る。VBIは、フレームの最後のピクセルがディスプレイに対して駆動されたときから、それに続くフレームの最初のピクセルがディスプレイに対して駆動されるときまでの期間として定義され得る。
次に図3を参照すると、ディスプレイパイプラインフロントエンド300の一実施形態のブロック図が示される。ディスプレイパイプラインフロントエンド300は、図1のディスプレイパイプ116及び117のフロントエンド部分を表し得る。ディスプレイパイプラインフロントエンド300は、システムバス320及びディスプレイバックエンド330に接続され得る。幾つかの実施形態では、ディスプレイバックエンド330は、ディスプレイパイプラインフロントエンド300により生成されたピクセルを表示するためにディスプレイと直接インターフェースし得る。ディスプレイパイプラインフロントエンド300は、1つ以上の映像/ユーザインターフェース(UI)パイプライン301A〜B、ブレンドユニット302、色域調整ユニット303、色空間変換器304、制御レジスタ305、パラメータ先入れ先出しバッファ(FIFO)306、及び制御ユニット307などの機能サブブロックを含み得る。ディスプレイパイプラインフロントエンド300は、他の構成要素も含み得るが、わかりづらくなるため図3には示していない。
システムバス320は、幾つかの実施形態では、図1による通信ファブリック127に対応し得る。システムバス320は、各種機能ブロックが互いにデータの受け渡しができるように、当該機能ブロックを接続する。ディスプレイパイプラインフロントエンド300は、処理対象の映像フレームデータを受信するためにシステムバス320に接続され得る。幾つかの実施形態では、ディスプレイパイプラインフロントエンド300は、処理された映像フレームを、システムバス320に接続され得る他の機能ブロック及び/又はメモリにも送信し得る。「映像フレーム」という用語が使用されるとき、これは、ディスプレイに描写され得る、画像などの任意の種類のフレームを表すことを意図していることを理解されたい。
ディスプレイパイプラインフロントエンド300は、1つ以上の映像/UIパイプライン301A〜Bを含み得、それらの各々は、実施形態に応じて映像及び/又はユーザインターフェース(UI)パイプラインであり得る。本明細書では、「映像/UIパイプライン」及び「ピクセル処理パイプライン」という用語が相互交換可能に使用され得ることに留意されたい。他の実施形態では、ディスプレイパイプラインフロントエンド300は、1つ以上の専用映像パイプライン及び/又は1つ以上の専用UIパイプラインを有し得る。各映像/UIパイプライン301は、システムバス320に接続されたバッファからソース画像(又はソース画像の一部分)をフェッチし得る。バッファリングされたソース画像は、例えば、図1によるシステムメモリ112などのシステムメモリ内にあり得る。各映像/UIパイプライン301は、別個のソース画像(又は別個のソース画像の一部分)をフェッチし得、非限定的に、(例えば、YCbCrからARGBへの)フォーマット変換、画像スケール変更、及びディザ処理を含む各種の方法でソース画像を処理し得る。幾つかの実施形態では、各映像/UIパイプラインは、ソース画像から特定の順序で一度に1つのピクセルを処理し、ピクセルデータのストリームを出力し、ピクセルデータが通過するときに同じ順序を維持し得る。
一実施形態では、ユーザインターフェースパイプラインとして利用されるとき、所与の映像/UIパイプライン301は、ソース画像中のプログラム可能なアクティブ領域をサポートし得る。アクティブ領域は、ソース画像のうち表示されるべき部分のみを定義し得る。ある実施形態では、所与の映像/UIパイプライン301は、アクティブ領域内のデータのみをフェッチするように構成され得る。アクティブ領域の外側では、アルファ値0のダミーデータがピクセルデータとしてパスされ得る。
制御ユニット307は、各種の実施形態では、メモリからデータをフェッチするために映像/UIパイプライン301A〜Bから出される読出し要求のアービトレーションを行うように構成され得る。幾つかの実施形態では、読出し要求は、仮想アドレスを示し得る。メモリ管理ユニット(示していない)は、要求がメモリに提示される前に、仮想アドレスをメモリ内の物理アドレスに変換し得る。幾つかの実施形態では、制御ユニット307は、専用のステートマシン又は順序論理回路を含み得る。メモリに記憶されたプログラム命令を実行する汎用プロセッサは、他の実施形態では、制御ユニット307の機能を実行するために利用され得る。
ブレンドユニット302は、映像/UIパイプライン301A〜Bの1つ以上からピクセルストリームを受信し得る。1つのピクセルストリームのみが受信される場合、ブレンドユニット302は、ストリームを次の下位ブロックへ単に通過させ得る。しかし、2つ以上のピクセルストリームが受信される場合、ブレンドユニット302は、表示されるべき画像を作り出すためにピクセル色をブレンド処理し得る。各種の実施形態では、ブレンドユニット302は、ある画像から別の画像に移行したり、又はアクティブなアプリケーションウィンドウの上に通知ウィンドウを表示したりするために使用され得る。例えば、カレンダリマインダなどの通知のための上層映像フレームは、別のアプリケーションにもかかわらず、例えばインターネットブラウザウィンドウなどの上に、すなわちディスプレイの主要要素として、現れる必要があり得る。カレンダリマインダは、ブラウザウィンドウが少なくとも部分的に視認可能となり得る幾つかの透明又は半透明の要素を含み得、そのことは、ブレンドユニット302がカレンダリマインダの色及び透明度に基づいてブラウザウィンドウの見た目を調整することを必要とし得る。ブレンドユニット302の出力は、1つ以上の入力ピクセルストリームのうちの単一のピクセルストリーム合成物であり得る。
ブレンドユニット302の出力は、色域調整ユニット303に送信され得る。色域調整ユニット303は、ブレンドユニット302からの出力のカラーマッピングを調整し、意図されるターゲットディスプレイの利用可能な色にうまくマッチングさせ得る。色域調整ユニット303の出力は、色空間変換器304に送信され得る。色空間変換器304は、色域調整ユニット303からピクセルストリーム出力を受け取り、それを新たな色空間に変換し得る。色空間変換器304は、次いで、ピクセルストリームをディスプレイバックエンド330に送信したり、システムバス320に戻したりし得る。他の実施形態では、ピクセルストリームは、他のターゲット送り先に送信され得る。例えば、ピクセルストリームは、例えばネットワークインターフェースに送信され得る。幾つかの実施形態では、ブレンド処理及び色域補正が適用された後に、色の混合に基づいて新たな色空間が選ばれ得る。更なる実施形態では、色空間は、意図されるターゲットディスプレイに基づいて変更され得る。
ディスプレイバックエンド330は、ディスプレイパイプラインフロントエンド300により生成されたピクセルを表示するためにディスプレイを制御し得る。ディスプレイバックエンド330は、ディスプレイパイプラインフロントエンド300の出力FIFO(示していない)から、ピクセルクロックに従って規則的なレートでピクセルを読み出し得る。レートは、ディスプレイの解像度及びディスプレイのリフレッシュレートに依存し得る。例えば、N×Mの解像度及び毎秒Rフレームのリフレッシュレートを有するディスプレイは、N×M×Rに基づくピクセルクロック周波数を有し得る。一方、出力FIFOは、ピクセルがディスプレイパイプラインフロントエンド300により生成されるときに書き込まれ得る。
ディスプレイバックエンド330は、各ピクセルがディスプレイパイプラインフロントエンド300により処理されるときに、処理された画像データを受信し得る。ディスプレイバックエンド330は、各映像フレームが表示される前に、画像データに対する最終処理を提供し得る。幾つかの実施形態では、ディスプレイバックエンド330は、ディスプレイバックエンド330に接続された電子ディスプレイに固有の、環境適応ピクセル(AAP)修正、動的バックライト制御(DPB)、ディスプレイパネルガンマ補正、及びディザ処理を含み得る。
各種の下位ブロックが映像フレームをどのように操作するかをディスプレイパイプラインフロントエンド300が制御するために使用し得るパラメータが、制御レジスタ305に記憶され得る。これらのレジスタは、非限定的に、入出力フレームサイズを設定すること、入出力ピクセルフォーマット、ソースフレームの位置、及び出力先(ディスプレイバックエンド330又はシステムバス320)を設定することを含み得る。制御レジスタ305は、パラメータFIFO306によりロードされ得る。
パラメータFIFO306は、ホストプロセッサ、ダイレクトメモリアクセスユニット、グラフィック処理ユニット、又はコンピューティングシステム内の任意の他の適当なプロセッサによりロードされ得る。他の実施形態では、パラメータFIFO306は、システムメモリからの値、例えば、図1のシステムメモリ112からの値を直接フェッチし得る。パラメータFIFO306は、各ソース映像フレームがフェッチされる前に、ディスプレイパイプラインフロントエンド300の制御レジスタ305を更新するように構成され得る。幾つかの実施形態では、パラメータFIFOは、各フレームの全ての制御レジスタ305を更新し得る。他の実施形態では、パラメータFIFOは、各フレームの全てを含むか、または全く含まない制御レジスタ305の部分集合を更新するように構成され得る。使用され本明細書に記述するFIFOは、バッファに記憶されるデータが書き込まれたのと同じ順序で読み出される、メモリストレージバッファを意味し得る。FIFOは、RAM又はレジスタで構成され得、FIFO内の最初及び最後のエントリへのポインタを利用し得る。
所与のソース映像フレームを処理する間、制御ユニット307は、次のソース映像フレームを処理するために必要とされる設定データが既に受信されているかを判定し得る。設定データは、この説明のために「フレームパケット」と称され得る。制御ユニット307は、次のソース映像フレームに対応する次のフレームパケットがパラメータFIFO306により受信されているときに、ディスプレイバックエンド330に通知を送信するように構成され得る。ディスプレイバックエンド330は、全てのディスプレイパイプラインフロントエンドが、次のソース映像フレームに対応する次のフレームパケットを受信している場合に、通常VBI信号を生成し、ディスプレイパイプラインフロントエンド330に(及び他のディスプレイパイプラインフロントエンドに)伝達するように構成され得る。代わりに、ディスプレイパイプラインフロントエンドのうちのいずれかが次のフレームパケットを受信していない場合、ディスプレイバックエンド330は、繰返しVBI信号を生成し、ディスプレイパイプラインフロントエンド330及び他のディスプレイパイプラインフロントエンドに伝達し得る。
図3に図示するディスプレイパイプラインフロントエンド300が単なる例であることに留意されたい。他の実施形態では、ディスプレイパイプラインが意図される特定の用途に応じて、異なる機能ブロック及び機能ブロックの異なる設定が可能となり得る。例えば、他の実施形態では、3つ以上の映像/UIパイプラインがディスプレイパイプラインフロントエンド内に含まれ得る。
次に図4に移ると、映像ファイルの表示及び対応するパラメータFIFOが示される。各種の実施形態では、映像401は、例えば、ムービングピクチャーエキスパートグループ4パート14(MP4)、アドバンスドビデオコーディング(H.264/AVC)、又はオーディオビデオインターリーブ(AVI)などのフォーマットの映像クリップを含むファイルを表し得る。代わりに、映像401は、スライドショーと一般に称され、タイミングがとれた間隔で表示され得る、各画像がフレームとみなされる一連の静止画であり得る。画像は、ジョイントフォトグラフィックエキスパートグループ(JPEG)、RAW画像フォーマット(RAW)、グラフィックス交換フォーマット(GIF)、又はポータブルネットワークグラフィックス(PNG)などのフォーマット形式であり得る。実証のために、1から5の番号を付された5つのフレームを有する映像401が図示される。しかし、映像401には、任意の数のフレームが含まれ得る。
映像フレーム402は、映像401からの単一のフレームを表し得る。この例では、映像フレーム402は、映像401のフレーム番号2として図示される。映像フレーム402は、前に説明したフォーマットのいずれか又は任意の他の適当なフォーマットの単一の画像であり得る。映像フレーム402は、ARGB、YCbCr、又は他の適当なピクセルフォーマットのピクセル情報のリストを含み得る。
パラメータFIFO403は、図3に図示するようなパラメータFIFO306に対応し得、前述したような機能を有し得る。実証のために、図4には、1から10のうち4及び7を除く番号が付された8つのフレームパケットを保持するものとして、パラメータFIFO403が図示される。しかし、パラメータFIFO403は、FIFOのサイズ及びフレームパケットのサイズにより許容されるのと同じくらい多くのフレームパケットを保持し得る。フレームパケットの数は、パケットの使用が意図される映像401の映像フレームの数に対応し得る。フレームパケット4及び7(示していない)は、幾つかの映像フレームがフレームパケットを必要としない場合があることを図示するために除外される。他の実施形態では、各映像フレームについてフレームパケットが必要とされ得る。フレームパケットのそれぞれのサイズは、サイズがフレームパケット毎に異なり得ることを図示するために、10個の例の間で変化するように示される。他の実施形態では、各フレームパケットは、標準的な均一のサイズであり得る。
フレームパケット404は、パラメータFIFO403に記憶された単一のフレームパケットを表し得る。フレームパケット404は、所与の映像フレームに関連する各種のレジスタの設定を含み得る。この例では、フレームパケット404は、番号2として図示もされる映像フレーム402に対応し得る番号2として示される。フレームパケット404は、1つのパラメータコマンドをそれぞれ表す、2a、2b、及び2cとラベル付けされた3つのセクションに分割されて図示される。所与のフレームパケットは、0個から、パラメータFIFO403に記憶され得るのと同じほど多くの任意の数のパラメータコマンドを含み得る。各パラメータコマンド2a〜2cは、映像フレーム402に関連する1つ以上のレジスタのための設定を含み得る。パラメータコマンド2a〜2cは、各コマンドに含まれる設定の数に基づく各種の長さを有し得る。他の実施形態では、パラメータコマンド2a〜2cは、1つ以上の特定の長さに標準化され得る。
図1のSOC110などのシステムでは、ディスプレイパイプ116及び117は、映像401の映像フレーム1が表示された後で、映像フレーム402が表示される前に、パラメータコマンド2a〜2cが実行され、映像フレーム402が、パラメータコマンド2a〜2cに対応するパラメータを用いて表示されるように、映像フレーム402及びフレームパケット404のそれぞれの部分を処理し得る。これらのパラメータは、これらの現在の設定値を変更する別のパラメータコマンドが実行されるまで、これらの設定値のままであり得る。幾つかの実施形態では、幾つか又は全てのパラメータの値は、例えば、図1のプロセッサ114により送信された操作など、パラメータFIFO403に関連しないコマンドにより変更され得る。
次に図5を参照すると、パラメータFIFOエントリ500の一実施形態が示される。図5は、図4のパラメータFIFO403などのパラメータFIFO内のエントリを図示する。パラメータFIFOエントリ500は、フレームパケット502、503、及び504により図示するような幾つかのフレームパケットを含み得る。
フレームパケット502は、幾つかの実施形態では、フレームヘッダ520を含み、それに、図5に描写するようなパラメータコマンド522a〜522nなどの多数のパラメータコマンドが続き得る。所与のフレームパケットは、0個のパラメータコマンドから、所与のサイズのFIFOに適合し得る最大数のコマンドまでを含み得る。0個のパラメータコマンドを伴うフレームパケットは、ヌルパラメータ設定と称され得る。フレームパケット502は、フレームパケット502の前にパラメータFIFO403に書き込まれた全てのフレームパケットが読み出されたときに、パラメータFIFO403から読み出され得る。フレームパケット502が読み出されるとき、読み出される最初のワードはフレームヘッダ520であり得る。
フレームヘッダ520は、フレームパケット502の構造に関する情報を含み得る。例えば、フレームヘッダ520は、フレームパケット502のサイズに対応する値を含み得る。幾つかの実施形態では、サイズは、フレームパケット502中のバイト数又はワード数を表し得、他の実施形態では、パラメータコマンドの数を表し得る。フレームヘッダ520は、それが意図される映像フレームに対応する値も含み得る。各種の実施形態では、フレームヘッダ520は、それがフレームヘッダであることを示すための値、及び/又は、フレームパケット502が、特定の映像フレームではなく、処理されるべき次の映像フレームと共に使用されるべきであることを示すための値を含み得る。この最後の機能は、映像が再生されていたり、画像が表示されていたりする間にユーザが設定を調整する場合に便利であり得る。例えば、ユーザは、特定の映像フレームにおいてではなく可能な限りすぐに変更が実施されることを期待して、明るさ設定又はズーム係数を変更し得る。
フレームパケット502は、0個以上のパラメータコマンド522a〜nを含み得る。幾つかの実施形態では、例えばパラメータコマンド522aなどの所与のパラメータコマンドは、1つのパラメータ制御ワード523aを含み得る。パラメータ制御ワードは、パラメータコマンド522aの構造を定義し得る。例えば、パラメータ制御ワード523aは、どれだけ多くのパラメータ設定がコマンドに含まれるかを示すためのパラメータカウント値を含み得る。パラメータ制御ワード523aは、パラメータ設定が書き込まれるべき開始レジスタアドレスを示すためのパラメータ開始値も含み得る。幾つかの実施形態は、パラメータコマンド522aが内部的なもの、すなわち、ディスプレイパイプライン116などのディスプレイパイプライン内のレジスタのためのものであるか、又は、外部的なもの、すなわち、ディスプレイパイプライン116の外側のレジスタのためのものであるかを示す種類値も含み得る。幾つかの実施形態では、パラメータ開始値は、内部パラメータコマンドのためにのみ使用され得、ここで、レジスタは、完全なデータワードよりも小さなアドレス値を用いてアドレス指定され得る。このような実施形態では、外部コマンドは、残りのパラメータデータを用いて書き込まれるべきレジスタ(1つ以上)の開始アドレスを形成するために、パラメータデータのうちの最初の1つ以上のワードを使用し得る。
パラメータコマンド522a中の各パラメータ設定は、パラメータデータ[0]からパラメータデータ[m]として図5に示す、パラメータデータの1つ以上のワードを含み得る。パラメータコマンド522aに含まれるパラメータデータワードの数は、パラメータコマンドの種類、内部若しくは外部、及び、パラメータコマンド522aにより書き込まれるべきレジスタの数に依存し得る。各種の実施形態では、パラメータコマンド522は、様々な数のパラメータデータを含んでもよく、特定の数のパラメータデータに標準化されてもよい。
図4及び図5のフレームパケット、映像フレーム及びパラメータFIFOの説明は、単なる例であることに留意されたい。他の実施形態では、フレームパケットの構造は、図5に図示する単一のワードではなくヘッダのための複数のワードを含み得、ヘッダは、所与のフレームパケット中の最初のワードでなくてもよい。各種の実施形態では、フレームパケット及びパラメータコマンドは、図4及び図5に図示するような各種の長さではなく固定長であり得る。
図6を参照すると、映像/UIパイプライン600の一実施形態のブロック図が示される。映像/UIパイプライン600は、図3に図示するようなディスプレイパイプライン300の映像/UIパイプライン301A及び301Bに対応し得る。図示する実施形態では、映像/UIパイプライン600は、フェッチユニット605、ディザユニット610、ラインバッファ615、スケーラユニット(1つ以上)620、色空間変換器625、及び色域調整ユニット630を含む。概して、映像/UIパイプライン600は、メモリに記憶されたソースフレームのピクセルデータをフェッチし、次いで、図3に図示するようなディスプレイパイプラインフロントエンド300のブレンドユニット302などのブレンドユニットに処理されたデータを送信する前に、フェッチされたデータを処理する役割を果たし得る。
フェッチユニット605は、映像/UIパイプライン600の要求者(1つ以上)により必要とされるソースピクセルデータの読出し要求を生成するように構成され得る。ソースバッファからのソースラインのフェッチは、一般にソースバッファの「パス」と称される。ソースバッファの各パスの最中に、データのうちの必要とされる部分又はブロックが、上から下に、そして左から右にフェッチされ得、ここで、「上」、「下」、「左」及び「右」は、ディスプレイを基準とする。他の実施形態では、ソースバッファのパスが異なるように進み得る。
各読出し要求は、データの部分がメモリに記憶される場所を示す1つ以上のアドレスを含み得る。幾つかの実施形態では、読出し要求に含まれるアドレス情報は、仮想(本明細書では「論理」とも称される)アドレス空間に向けられ得、アドレスは、メモリデバイス内の物理的位置を直接指示しない。このような場合、仮想アドレスは、読出し要求がソースバッファに送信される前に、物理アドレスにマッピングされ得る。メモリ管理ユニットは、幾つかの実施形態では、仮想アドレスを物理アドレスにマッピングするために使用され得る。幾つかの実施形態では、メモリ管理ユニットは、ディスプレイパイプラインフロントエンド内に含まれ得る一方、他の実施形態では、コンピューティングシステム内の何処かに位置し得る。
特定の状況では、グラフィック処理が行われる所与の色空間内で所与のシステムが生成又は管理できる色の合計数が制限され得る。このような場合、制限されたカラーパレットを有する画像における色深度の錯覚を起こすために、ディザ処理と呼ばれる技術が使用される。ディザ処理された画像では、利用可能ではない色が、利用可能な色の範囲による色付きピクセルの拡散により近似される。画像/映像フレーム中の明るさ又は色調のスムーズなグラデーションの段階的なレンダリングを含む、画像及び映像処理におけるディザ処理は、量子化誤差をランダム化するために或るノイズ形態を意図的に適用することにより、大きなパターンを防ぐためにも使用される。ディザユニット610は、各種の実施形態では、YCbCrフォーマットデータの輝度チャネルに関して、構造化ノイズディザ処理を提供し得る。YCbCrの彩度チャネルなどの他のチャネル、及びARGBなどの他のフォーマットは、ディザ処理され得ない。
ラインバッファ615は、それぞれの表示画面の行ラインに対応する受信フレームデータを記憶するように構成され得る。フレームデータは、行ライン内に含まれる個々のピクセルのルミナンス及びクロミナンスを示し得る。ラインバッファ615は、各種の設計スタイルのうちのいずれかに従って設計され得る。例えば、ラインバッファ615は、SRAM、DRAM、又は任意の他の適当なメモリであり得る。幾つかの実施形態では、ラインバッファ615は、単一の入力/出力ポートを含み得る一方、他の実施形態では、ラインバッファ615は、複数のデータ入力/出力ポートを含み得る。
幾つかの実施形態では、ソースピクセルのスケール変更は2つのステップで実施され得る。第1のステップは、垂直スケール変更を実施し得、第2のステップは、水平スケール変更を実施し得る。図示する実施形態では、スケーラユニット(1つ以上)620は、垂直及び水平スケール変更を実施し得る。スケーラユニット(1つ以上)620は、様々な設計スタイルのうちの1つに従って設計され得る。幾つかの実施形態では、スケーラユニット(1つ以上)620の垂直スケーラ及び水平スケーラは、9タップ32フェーズフィルタとして実装され得る。これらのマルチフェーズフィルタは、各種の実施形態では、フェッチユニット605により取り出された各ピクセルに重み付け係数を乗算し得る。得られたピクセル値は、次いで加算され、次いで端数処理され、スケール処理されたピクセルが形成され得る。スケール変更処理に使用されるべきピクセルの選択は、スケールポジション値の一部分に依存し得る。幾つかの実施形態では、重み付け係数は、プログラム可能なテーブルに記憶され得、スケール変更に使用するための重み付け係数の選択は、スケールポジション値の別の部分に依存し得る。
幾つかの実施形態では、スケールポジション値(本明細書では、「表示ポジション値」とも称される)は、複数の部分を含み得る。例えば、スケールポジション値は、整数部分及び小数部分を含み得る。幾つかの実施形態では、スケール変更すべきピクセルの決定は、スケールポジション値の整数部分に依存し得、重み付け係数の選択は、スケールポジション値の小数部分に依存し得る。幾つかの実施形態では、スケールポジション値を決定するためにデジタル微分解析器(DDA)が使用され得る。
映像/UIパイプライン600内の色管理は、色空間変換器625及び色域調整ユニット630により実行され得る。幾つかの実施形態では、色空間変換器625は、YCbCrソースデータをRGBフォーマットに変換するように構成され得る。代わりに、色空間変換器は、RGBフォーマットのソースデータからオフセットを除去するように構成され得る。色空間変換器625は、各種の実施形態では、入力オフセットユニット、行列乗算器、及び出力オフセットユニット(全て示していない)などの各種の機能的ブロックを含み得る。このようなブロックの使用は、YCbCrフォーマットからRGBフォーマットへの変換及びその逆の変換を可能にし得る。
各種の実施形態では、色域調整ユニット630は、ピクセルを非線形色空間から線形色空間に、及びその逆に変換するように構成され得る。幾つかの実施形態では、色域調整ユニット630は、ルックアップテーブル(LUT)及び補間ユニットを含み得る。LUTは、幾つかの実施形態では、プログラム可能であり、各種の設計スタイルのうちの1つに従って設計され得る。例えば、LUTは、SRAM若しくはDRAM、又は任意の他の適当なメモリ回路を含み得る。幾つかの実施形態では、複数のLUTが利用され得る。例えば、ガンマ計算とガンマ補正計算のために別々のLUTが使用され得る。
図6に図示する実施形態が単なる例であることに留意されたい。他の実施形態では、異なる機能ブロック及び機能ブロックの異なる設定が可能であり、企図される。
次に図7を参照すると、非分割表示画面及び2ウェイ分割表示画面のブロック図が示される。画面702は、図7の上部に示され、画面が論理的に区画されていないシナリオを表す。対照的に、画面704は、画面702と同じサイズであるが、画面704は2つの部分に論理的に区画されている。区画は、画面を左半分と右半分に分割することにより実施することができ、画面の上から下に真っ二つに区画する。他の実施形態では、画面は、異なるように及び/又は3つ以上の部分に区画され得る。例えば、別の実施形態では、画面は、上半分と下半分に水平に区画され得る。
一実施形態では、映像フレーム全体が、2つのディスプレイパイプラインを使用して画面704に表示され、単一のディスプレイパイプラインを使用して画面702に表示される映像フレーム全体と同じに見え得る。映像フレームは、テレビ番組、映画又は他の画像シーケンスのシーンからのフレームの例を図示するために、画面702及び704において雲のかたまりとして示される。画面704の(画面702と比べた)相違は、第1のディスプレイパイプラインが映像フレームの左側をディスプレイに対して駆動しており、第2のディスプレイパイプラインが映像フレームの右側をディスプレイに対して駆動していることである。画面704に表示される映像に対応する映像フレームのシーケンス中の映像フレーム毎に、画面704に対して、第1のディスプレイパイプラインが、映像フレームの左側を駆動し続けており、第2のディスプレイパイプラインが、映像フレームの右側を対して駆動し続けている。対照的に、単一のディスプレイパイプラインは、映像フレームのシーケンス中の映像フレーム毎に、画面702のために映像フレーム全体をディスプレイに対して駆動している。
次に図8に移ると、2ウェイ表示分割を可能にするための回路の一実施形態のブロック図が示される。一実施形態では、ディスプレイバックエンド(示していない)の出力でラインバッファが利用され得る。例えば、一実施形態では、図2のディスプレイパイプライン210及び240からの出力は、図8の回路の入力(又はデータ入力)に伝達され得る。ピクセルは、先入れ先出しバッファ(FIFO)805及びFIFO810に順に書き込まれ得る。各FIFO805及び810は、映像フレームのラインの半分を記憶するように構成され得、それは、映像フレームのフルラインのいずれか半分に対応する。一実施形態では、図8の回路のピクセル出力(又はデータ入力)は、仮想的な単一のコントローラ(例えば、図10の仮想的な単一のコントローラ1000)に伝達され得る。
ピクセル書込みシーケンスは、書込みイネーブル0(WE0)及び書込みイネーブル1(WE1)により制御され得る。読出しイネーブル0(RE0)及び読出しイネーブル1(RE1)は、FIFOからANDゲート815及び820をそれぞれ通り、またORゲート825を通ってデータ出力バスへのピクセル読出しを制御し得る。分割表示ケースのピーク帯域幅が非分割表示ケースの場合と同じ一定帯域幅であるので、データ出力バスは、データ入力バスと同じ幅を有し、データ入力バスと同じクロックレートで動作し得る。
次に図9を参照すると、2ウェイ表示分割を可能にするための回路の一実施形態のタイミング図が示される。タイミング図は、図8に示した回路図に基づく。この説明のために、(ディスプレイ全体の)ライン毎のピクセル数は2*Nと仮定され、Nは正の整数である。
一実施形態では、ラインの第1の半分の最中に、ピクセル0から(N−1)がFIFO805に書き込まれ得る。ラインの第2の半分の最中に、ピクセルNから(2N−1)がFIFO810に書き込まれ得る。ライン半分の遅延の後に、FIFO805に記憶されたピクセル0から(N−1)及びFIFO810に記憶されたピクセルNから(2N−1)が並行に読み出され、インターリーブされて出力され得る。
次に図10に移ると、仮想的な単一のコントローラ1000の一実施形態のブロック図が示される。仮想的な単一のコントローラ1000は、2つのディスプレイパイプラインを伴うコンピューティングシステムのために、少なくとも3つの異なるシナリオで1つ以上のディスプレイを制御するように構成され得る。第1のシナリオは、第1のディスプレイパイプラインにディスプレイ全体を駆動させることを伴う。第2のシナリオは、第2のディスプレイパイプラインにディスプレイ全体を駆動させることを伴う。第3のシナリオは、2つのディスプレイパイプラインに分割表示の別々の部分を駆動させることを伴う。
一実施形態では、分割表示シナリオの場合、仮想的な単一のコントローラ1000がデュアルコントローラとして構成され得る。この実施形態では、ピクセルデインターリーバ1006が、受信されたピクセルデータをデインターリーブするように構成され得る。ピクセルデインターリーバ1006の出力は、マルチプレクサ(mux)1010及び1012に伝達され得る。mux1010及び1012は、デュアルパイプモード信号により制御され得る。デュアルパイプモード信号は、仮想的な単一のコントローラ1000の動作モード(単一表示又は分割表示)を選択し得る。デインターリーブされたピクセルデータは、次いでコントローラ1014及び1016に送信され得る。
ピクセルクロックは、mux1008の入力に、及び、ピクセルクロックを2つに分割するように構成され得るクロック分周器1004に接続され得る。クロック分周器1004の出力は、mux1008の入力に接続され得、デュアルパイプモード信号は、mux1008のための選択信号であり得る。mux1008の出力から選択されたクロックは、次いでコントローラ1014及び1016に接続され得る。分割表示モードでは、コントローラ1014及び1016は、ピクセルを2つのレーン(4レーン動作の場合)又は1つのレーン(2レーン動作の場合)に出力し得る。
mux1018は、単一のコントローラがディスプレイ全体を駆動するシナリオで、どのコントローラがディスプレイを駆動するかを選択するように構成され得る。mux1018の出力はmux1020に接続され、mux1020は、単一のコントローラがディスプレイ全体を駆動しているときに、デュアルパイプモード(分割表示の場合)又はシングルパイプモードを選択するように構成され得る。mux1020の出力は、インターフェース1022の4つのレーンに接続され得る。インターフェース1022は、ディスプレイ(示していない)に接続され得る。
一実施形態では、分割表示モードでは、各コントローラ1014及び1016は、映像クロックレートの半分で動作し得、映像フレームのライン毎のピクセルの半分が各コントローラ1014及び1016を通過し得る。デュアルコントローラモードでは、水平映像フォーマットタイミングパラメータは、シングルコントローラモードの場合に使用される、それらの値のうちの半分に対してプログラムされ得る。垂直映像フォーマットタイミングパラメータは、表示分割による影響を受け得ず、通常クロックレートで動作し得る。
次に図11に移ると、2つのディスプレイパイプラインを同期させるための制御ロジックの一実施形態が示される。単一のディスプレイを駆動するために2つのディスプレイパイプラインを利用することは、2つのディスプレイパイプラインを同じフレームに同期させたままにすることに関連する各種の課題を提示し得る。例えば、一実施形態では、各ディスプレイパイプラインは、所与のフレームに対して動作し得、次のフレームの設定データ(すなわちフレームパケット)は、現在のフレームと次のフレームとの間のフレーム境界の直ぐ近くにある2つのディスプレイパイプラインに送信され得る。したがって、幾つかの場合、ディスプレイパイプラインの一方は、次のフレームの設定データを次のフレームの処理のために遅れずに受信し得る一方、ディスプレイパイプラインの他方は、設定データを遅れずに受信し得ない。このような場合、本明細書に開示する技術が利用されなければ、一方のディスプレイパイプラインは、フレームの間違った半分をディスプレイに導き得、ディスプレイに対して駆動される映像フレームの2つの半分は、特に、現在のフレームから次のフレームへと映像シーケンスの変化が起きるときに、著しく異なって見え得る。
上記のシナリオが生じることを避けるために、選択されたディスプレイパイプラインが次のフレームパケットを次のフレームの処理のために遅れずに受信しているかどうかに基づいて、異なる種類の垂直ブランキング期間(VBI)信号が生成され得る。第1の種類のVBI信号は、「通常VBI」信号と称され得、この通常VBI信号は、各ディスプレイパイプラインが次のフレームの設定データの全てを既に受信しているときに送信され得る。第2の種類のVBI信号は、「繰返しVBI」信号と称され得、繰返しVBI信号は、ディスプレイパイプラインのいずれかが次のフレームの設定データの全てを未だ受信していないときに送信され得る。
図11に示すように、2つのディスプレイパイプライン1100及び1105が存在する。ディスプレイパイプライン1100は、制御ユニット1110、パラメータFIFO1115、及びタイミング生成器1130を含む。ディスプレイパイプライン1100は、わかりづらくなるため図11には示さない他のロジックも含み得る。制御ユニット1110は、パラメータFIFO1115が次のフレームのフレームパケットを受信しているかを判定するように構成され得る。パラメータFIFO1115が次のフレームのフレームパケットを受信していることを制御ユニット1110が検出すると、制御ユニット1110は、対応する通知をタイミング生成器1130及び1135に送信し得る。同様に、ディスプレイパイプライン1105は、制御ユニット1120、パラメータFIFO1125、及びタイミング生成器1135を含む。パラメータFIFO1125が次のフレームのフレームパケットを受信していることを制御ユニット1120が検出すると、制御ユニット1120は、通知をタイミング生成器1130及び1135に送信し得る。
一実施形態では、タイミング生成器1130及び1135のいずれかが、所与の分割表示シナリオのためのマスタタイミング生成器として選択され得る。別の実施形態では、タイミング生成器1130及び1135の一方のみが、マスタタイミング生成器になることができ得る。タイミング生成器1130又はタイミング生成器1135のいずれかがマスタタイミング生成器となり得る実施形態の場合、ホストデバイスのプロセッサ上で実行されるソフトウェアは、どのタイミング生成器がマスタになるかを選択するように構成され得る。この信号は、どのタイミング生成器が、各フレームについてディスプレイパイプライン1100及び1105の両方に対して通常VBI信号又は繰返しVBI信号を駆動するかを判定するために、mux1140及び1145に伝達され得る。各種の実施形態では、mux1140及び1145に伝達される選択信号は、同じでもよく、同じでなくてもよい。分割表示を使用しない実施形態では、ディスプレイパイプライン1100及び1105の各々が別々のディスプレイを駆動し得、タイミング生成器1130及び1135が互いに独立して動作し得る。幾つかの実施形態では、両方のディスプレイパイプラインのために1つのタイミング生成器のみが存在し得ることに留意されたい。このような場合、このタイミング生成器は、両方のパイプラインにとって常にマスタタイミング生成器となる。
一実施形態では、各タイミング生成器1130及び1135は、特定の時点におけるディスプレイパイプライン1100及び1105の両方からの通知の状態に基づいて、通常VBI又は繰返しVBI信号のいずれかを生成し得る。ディスプレイパイプライン1100及び1105の両方は、どのフレームを次に処理すべきかを判定するときに、同じ通常/繰返しVBI信号対を確認するディスプレイパイプライン1100及び1105の両方を用いて、通常/繰返しVBI信号対のうちの1つのみを確認及び利用するように構成され得る。
次に図12を参照すると、異なる種類の垂直ブランキング期間(VBI)信号を生成するための方法1200の一実施形態が示される。説明のために、この実施形態のステップが順番に示される。後述する方法の各種の実施形態では、記述する要素のうちの1つ以上が、示しているのとは異なる順序で同時に実行されてもよく、完全に省略されてもよいことに留意されたい。他の追加要素も所望に応じて実行され得る。本明細書に記述する各種のディスプレイパイプラインのいずれも、方法1200を実行するように構成され得る。
第1のディスプレイパイプラインのマスタタイミング生成器は、次のフレームのフレームパケットを受信していることを特定する通知をディスプレイパイプラインの全てから受信しているかを判定し得る(ブロック1205)。マスタタイミング生成器は、次フレームのVBI信号の生成に備えて、ディスプレイパイプラインの全てから通知を受信しているかを判定し得る。現在の画像フレームは、ホストデバイスのディスプレイに表示され得る。一実施形態では、ホストデバイスは、2つのディスプレイパイプラインを有し得る。他の実施形態では、デバイスは、3つ以上のディスプレイパイプラインを有し得る。
マスタタイミング生成器は、次のフレームパケットを受信しているという通知をディスプレイパイプラインの全てから受信している場合(条件ブロック1210;“Yes”)に、通常VBI信号を生成し、ディスプレイパイプラインのそれぞれに伝達し得る(ブロック1215)。そうでない場合、マスタタイミング生成器は、少なくとも1つのディスプレイパイプラインから通知を受信していない場合(条件ブロック1210;“No”)、繰返しVBI信号を生成し、ディスプレイパイプラインのそれぞれに伝達し得る(ブロック1220)。ブロック1215及び1220の後、ディスプレイパイプラインは、次のフレームの処理を開始し得(ブロック1225)、次いで、方法1200はブロック1205に復帰し得る。
次に図13を参照すると、ディスプレイパイプライン内でソースフレームを処理するための方法1300の一実施形態が示される。説明のために、この実施形態のステップは順番に示される。後述する方法の各種の実施形態では、記述する要素のうちの1つ以上が、示しているのとは異なる順序で同時に実行されてもよく、完全に省略されてもよいことに留意されたい。他の追加要素も所望に応じて実行され得る。本明細書に記述する各種のディスプレイパイプラインのいずれも、方法1300を実施するように構成され得る。
ディスプレイパイプラインが現在のソースフレームを処理している(ブロック1305)間に、ディスプレイパイプラインは、次のソースフレームの設定データを伴うフレームパケットを受信する場合(条件ブロック1310;“Yes”)に、次のフレームパケットを受信しているという通知をマスタタイミング生成器に送信し得る(ブロック1315)。幾つかの実施形態では、ディスプレイパイプラインは、通知を2つ以上のタイミング生成器に送信し得る。加えて、デバイス又は装置が複数のタイミング生成器を有するとき、タイミング生成器のうちの1つは、マスタタイミング生成器となるようにソフトウェアにより選択され得る。ディスプレイパイプラインは、現在のフレームの処理を始める前に、次のフレームのフレームパケットを受信していてもよいことに留意されたい。この場合、ディスプレイパイプラインは、現在のフレームの最中に通知を送信し得る。しかし、他の実施形態では、ディスプレイパイプラインは、フレームパケットがどの程度早く受信される(すなわち、現在のフレームよりもどれだけ前のフレームである)かには関係なく、フレームパケットを受信すると直ちに通知を送信し得る。
ディスプレイパイプラインは、次のソースフレームの設定データを伴うフレームパケットを受信しない場合(条件ブロック1310;“No”)、通知がマスタタイミング生成器に送信されることを避け得る(ブロック1320)。次に、ディスプレイパイプラインは、VBI信号をマスタタイミング生成器から受信し得る(ブロック1325)。受信されたVBI信号が通常VBI信号である場合(条件ブロック1330;“通常”)、ディスプレイパイプラインは、映像シーケンスの次のソースフレームを処理し得る(ブロック1335)。受信されたVBI信号が繰返しVBI信号である場合(条件ブロック1330;“繰返し”)、ディスプレイパイプラインは、現在のフレームを再び駆動し得る(ブロック1340)。各種の実施形態では、所与のディスプレイパイプラインは、繰返しVBI信号を受信する場合、所与のディスプレイパイプラインが次のフレームのフレームパケットを既に有している場合でも、現在のフレームを再び処理することに留意されたい。ブロック1335及び1340の後、方法1300は、次のソースフレームの設定データを伴うフレームパケットがディスプレイパイプラインにより受信されているかを判定するために、条件ブロック1310に復帰し得る。
次に図14を参照すると、システム1400の一実施形態のブロック図が示される。示すように、システム1400は、デスクトップコンピュータ1410、ラップトップコンピュータ1420、タブレットコンピュータ1430、携帯電話1440、テレビ1450(若しくは、テレビに接続されるように構成されたセットトップボックス)、腕時計又は他のウェアラブルアイテム1460などのチップ、回路、構成要素などを表し得る。他のデバイスが可能であり、企図される。図示する実施形態では、システム1400は、外部メモリ1402に接続された(図1の)SoC110の少なくとも1つのインスタンスを含む。
SoC110は、1つ以上の周辺装置1404及び外部メモリ1402に接続される。供給電圧をSoC110に供給するとともに1つ以上の供給電圧をメモリ1402及び/又は周辺装置1404に供給する電源1406も設けられる。各種の実施形態では、電源1406は、バッテリ(例えば、スマートフォン、ラップトップ又はタブレットコンピュータの再充電可能なバッテリ)を表し得る。幾つかの実施形態では、SoC110の2つ以上のインスタンスが含まれ得る(及び2つ以上の外部メモリ1402もまた含まれ得る)。
メモリ1402は、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM(mDDR3などのモバイルバージョンのSDRAM、及び/又はLPDDR2などの低電力バージョンのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)などの任意の種類のメモリであり得る。シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などのメモリモジュールを形成するために、1つ以上のメモリデバイスが回路基板に接続され得る。代わりに、デバイスは、チップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成にてSoC110に装着され得る。
周辺装置1404は、システム1400の種類に応じた任意の所望の回路を含み得る。例えば、一実施形態では、周辺装置1404は、WiFi(登録商標)、Bluetooth(登録商標)、セルラー、全地球測位システムなどの各種の無線通信用装置を含み得る。周辺装置1404は、RAMストレージ、ソリッドステートストレージ、又はディスクストレージなどの追加ストレージも含み得る。周辺装置1404は、タッチディスプレイ画面若しくはマルチタッチディスプレイ画面を含むディスプレイ画面、キーボード又は他の入力デバイス、マイクロフォン、スピーカなどのユーザインターフェースデバイスを含み得る。
各種の実施形態では、前述した方法及び/又はメカニズムを実施するためにソフトウェアアプリケーションのプログラム命令が使用され得る。プログラム命令は、ハードウェアの挙動をCなどの高級プログラミング言語で記述し得る。代わりに、Verilogなどのハードウェア設計言語(HDL)が使用され得る。プログラム命令は、非一時的なコンピュータ可読記憶媒体に記憶され得る。多数の種類の記憶媒体が利用可能である。記憶媒体は、プログラム実行のためのプログラム命令及び関連データをコンピュータに提供するために、コンピュータにより使用中にアクセス可能であり得る。幾つかの実施形態では、ゲートのリストを含むネットリストを合成ライブラリから生成するために、合成ツールがプログラム命令を読み出す。
上述した実施形態は、実装の非限定的な例にすぎないことが強調される。上記の開示を十分に理解すれば、多くの変形及び変更が当業者にとって明らかとなるであろう。以下の請求項は、このような変形及び変更の全てを包含するように解釈されることを意図している。

Claims (11)

  1. 現在のフレームの第1の部分をディスプレイ装置の第1の部分における表示のために伝送するように構成された第1のディスプレイパイプラインを含む第1の手段と、
    前記第1の手段とは異なる第2の手段であって、前記現在のフレームの第2の部分を前記ディスプレイ装置の第2の部分における表示のために伝送するように構成された第2のディスプレイパイプラインを含む前記第2の手段とを備え、
    前記第1の手段は、
    次のフレームに対応するデータを受信し、
    前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方が次のフレームの設定データを受信したとき、通常垂直ブランキング期間信号を受信し、前記設定データは、入力/出力フレームのサイズ、ピクセルフォーマット、ソースフレームの位置、出力の宛先のうちの少なくとも1つに対応するパラメータを含み、
    前記第1のディスプレイパイプライン又は前記第2のディスプレイパイプラインのいずれかが前記次のフレームの設定データを受信していなかったときは、前記通常垂直ブランキング期間信号とは異なる繰返し垂直ブランキング期間信号を受信し、
    前記第2のディスプレイパイプラインが前記次のフレームを駆動するための準備ができていないと判定すると、前記ディスプレイ装置の表示のために前記現在のフレームを再び伝送し、前記判定は前記繰返し垂直ブランキング期間信号を検出することを含んでいる、装置。
  2. 前記次のフレームに対応する前記データは、前記設定データを含む、請求項1に記載の装置。
  3. 前記次のフレームの設定データを受信していない場合、前記第2のディスプレイパイプラインが前記次のフレームを伝送するための準備ができていないことを判別する手段を更に含む、請求項2に記載の装置。
  4. 前記通常垂直ブランキング期間信号を受信することに応じて、前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方は、前記次のフレームを処理するように構成され、前記繰返し垂直ブランキング期間信号を受信することに応じて、前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方は、前記現在のフレームを再び処理するように構成される、請求項1に記載の装置。
  5. 前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの各々は、通常垂直ブランキング期間信号又は繰返し垂直ブランキング期間信号のいずれかを伝送するためにタイミング生成器を含み、前記装置は、前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方にとってのマスタタイミング生成器となるように、少なくとも1つのタイミング生成器をプログラムするように構成され、各ディスプレイパイプラインは、前記次のフレームのフレームパケットを受信するときに、前記第1のディスプレイパイプラインの第1のタイミング生成器及び前記第2のディスプレイパイプラインの第2のタイミング生成器に通知を送信するように構成される、請求項4に記載の装置。
  6. 前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方は、同じ通常垂直ブランキング期間信号及び繰返し垂直ブランキング期間信号を利用するように構成される、請求項5に記載の装置。
  7. 第1のディスプレイパイプラインによって、ディスプレイ装置の第1の部分における表示のために現在のフレームの第1の部分を伝送することと、
    第2のディスプレイパイプラインによって、前記ディスプレイ装置の第2の部分おける表示のために現在のフレームの第2の部分を伝送することと、
    前記第1のディスプレイパイプラインによって、次のフレームに対応するデータを受信することと、
    前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方が次のフレームの設定データを受信したとき、通常垂直ブランキング期間信号を受信することであって、前記設定データは、入力/出力フレームのサイズ、ピクセルフォーマット、ソースフレームの位置、出力の宛先のうちの少なくとも1つに対応するパラメータを含むことと、
    前記第1のディスプレイパイプライン又は前記第2のディスプレイパイプラインのいずれかが前記次のフレームの設定データを受信していなかったときは、前記通常垂直ブランキング期間信号とは異なる繰返し垂直ブランキング期間信号を受信することと、
    前記第2のディスプレイパイプラインが前記次のフレームを駆動するための準備ができていないと判定すると、前記ディスプレイ装置の表示のために前記現在のフレームを再び伝送することであって、前記判定は前記繰返し垂直ブランキング期間信号を検出することを含んでいること、を含む、方法。
  8. 前記次のフレームに対応する前記データは、前記設定データを含む、請求項7に記載の方法。
  9. 前記次のフレームの設定データを受信していない場合、前記第2のディスプレイパイプラインが前記次のフレームを伝送するための準備ができていないことを判別することを更に含む、請求項8に記載の方法。
  10. 前記通常垂直ブランキング期間信号を受信することに応じて、前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方によって、前記次のフレームが処理され、前記繰返し垂直ブランキング期間信号を受信することに応じて、前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方によって、前記現在のフレームが再び処理される、請求項7に記載の方法。
  11. 前記第1のディスプレイパイプライン及び前記第2のディスプレイパイプラインの両方によって、同じ通常垂直ブランキング期間信号及び繰返し垂直ブランキング期間信号を利用することを更に含む、請求項10に記載の方法。
JP2016570260A 2014-06-19 2015-05-08 分割ディスプレイを駆動する多重ディスプレイパイプライン Active JP6652937B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/309,645 2014-06-19
US14/309,645 US9471955B2 (en) 2014-06-19 2014-06-19 Multiple display pipelines driving a divided display
PCT/US2015/029866 WO2015195219A1 (en) 2014-06-19 2015-05-08 Multiple display pipelines driving a divided display

Publications (2)

Publication Number Publication Date
JP2017519244A JP2017519244A (ja) 2017-07-13
JP6652937B2 true JP6652937B2 (ja) 2020-02-26

Family

ID=53267621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570260A Active JP6652937B2 (ja) 2014-06-19 2015-05-08 分割ディスプレイを駆動する多重ディスプレイパイプライン

Country Status (7)

Country Link
US (1) US9471955B2 (ja)
EP (1) EP3134804B1 (ja)
JP (1) JP6652937B2 (ja)
KR (1) KR101977453B1 (ja)
CN (1) CN106415479B (ja)
TW (1) TWI567634B (ja)
WO (1) WO2015195219A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008305A (ko) * 2014-07-14 2016-01-22 삼성전자주식회사 디스플레이 드라이버 ic의 작동 방법과 이를 포함하는 이미지 처리 시스템의 작동 방법
KR102164798B1 (ko) * 2014-09-11 2020-10-13 삼성전자 주식회사 디스플레이 구동 회로 및 이를 포함하는 디스플레이 장치
US10026450B2 (en) * 2015-03-31 2018-07-17 Jaguar Land Rover Limited Content processing and distribution system and method
CN105141876B (zh) * 2015-09-24 2019-02-22 京东方科技集团股份有限公司 视频信号转换方法、视频信号转换装置以及显示系统
CN109196548B (zh) * 2016-07-02 2023-09-01 英特尔公司 用于在高分辨率显示器上提供多个屏幕区域的机制
TWI607365B (zh) * 2016-10-07 2017-12-01 Handwriting interactive display device and handwriting interactive reading device
KR102612815B1 (ko) * 2016-10-24 2023-12-13 삼성전자주식회사 디스플레이장치 및 그 제어방법
TWI676129B (zh) * 2018-06-29 2019-11-01 致茂電子股份有限公司 多核心同步處理裝置及其同步控制方法
US10504278B1 (en) * 2018-09-28 2019-12-10 Qualcomm Incorporated Blending neighboring bins
US10951549B2 (en) * 2019-03-07 2021-03-16 Mellanox Technologies Tlv Ltd. Reusing switch ports for external buffer network
KR102271828B1 (ko) * 2020-06-22 2021-07-01 주식회사 글로벌테크놀로지 디스플레이를 위한 백라이트 장치
KR102312357B1 (ko) * 2020-06-22 2021-10-13 주식회사 글로벌테크놀로지 디스플레이를 위한 백라이트 장치 및 그의 전류 제어 집적 회로
US11360732B1 (en) 2020-12-31 2022-06-14 Samsung Electronics Co., Ltd. Method and apparatus for displaying multiple devices on shared screen
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
US11688365B2 (en) * 2021-04-26 2023-06-27 Apple Inc. Synchronous display pipeline systems and methods
US11662798B2 (en) * 2021-07-30 2023-05-30 Advanced Micro Devices, Inc. Technique for extended idle duration for display to improve power consumption
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device
US11908382B1 (en) * 2022-11-30 2024-02-20 Mediatek Inc. Seamless switching control for foldable or flip devices

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0166046B1 (en) 1984-06-25 1988-08-24 International Business Machines Corporation Graphical display apparatus with pipelined processors
US6256710B1 (en) 1995-04-28 2001-07-03 Apple Computer, Inc. Cache management during cache inhibited transactions for increasing cache efficiency
US6005546A (en) 1996-03-21 1999-12-21 S3 Incorporated Hardware assist for YUV data format conversion to software MPEG decoder
US5829025A (en) 1996-12-17 1998-10-27 Intel Corporation Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
US6157395A (en) 1997-05-19 2000-12-05 Hewlett-Packard Company Synchronization of frame buffer swapping in multi-pipeline computer graphics display systems
US6643745B1 (en) 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
US6460115B1 (en) 1999-11-08 2002-10-01 International Business Machines Corporation System and method for prefetching data to multiple levels of cache including selectively using a software hint to override a hardware prefetch mechanism
JP3526019B2 (ja) * 1999-11-30 2004-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像表示システム、画像表示装置、および画像表示方法
JP3950926B2 (ja) * 1999-11-30 2007-08-01 エーユー オプトロニクス コーポレイション 画像表示方法、ホスト装置、画像表示装置、およびディスプレイ用インターフェイス
US7127573B1 (en) 2000-05-04 2006-10-24 Advanced Micro Devices, Inc. Memory controller providing multiple power modes for accessing memory devices by reordering memory transactions
US6721847B2 (en) 2001-02-20 2004-04-13 Networks Associates Technology, Inc. Cache hints for computer file access
JP3913534B2 (ja) * 2001-11-30 2007-05-09 株式会社半導体エネルギー研究所 表示装置及びこれを用いた表示システム
WO2005050557A2 (en) * 2003-11-19 2005-06-02 Lucid Information Technology Ltd. Method and system for multiple 3-d graphic pipeline over a pc bus
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US20060044328A1 (en) 2004-08-26 2006-03-02 Rai Barinder S Overlay control circuit and method
US7522167B1 (en) 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
US8127088B2 (en) 2005-01-27 2012-02-28 Hewlett-Packard Development Company, L.P. Intelligent cache management
US7437510B2 (en) 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US7525548B2 (en) 2005-11-04 2009-04-28 Nvidia Corporation Video processing with multiple graphical processing units
US7899990B2 (en) 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
JP2007279185A (ja) * 2006-04-04 2007-10-25 Matsushita Electric Ind Co Ltd 画像データ表示制御装置
JP4142069B2 (ja) 2006-06-16 2008-08-27 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびアクセス制御方法
JP5459928B2 (ja) * 2006-10-12 2014-04-02 キヤノン株式会社 表示制御装置及び表示装置
US20080150920A1 (en) * 2006-12-26 2008-06-26 Hsueh-Bing Yen Multi-display system and method for displaying video frames thereon
US7843460B2 (en) 2007-04-13 2010-11-30 Seiko Epson Corporation Method and apparatus for bandwidth corruption recovery
US20080297525A1 (en) 2007-05-31 2008-12-04 Barinder Singh Rai Method And Apparatus For Reducing Accesses To A Frame Buffer
US7975107B2 (en) 2007-06-22 2011-07-05 Microsoft Corporation Processor cache management with software input via an intermediary
US20090106496A1 (en) 2007-10-19 2009-04-23 Patrick Knebel Updating cache bits using hint transaction signals
US8140771B2 (en) 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8180975B2 (en) 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
JP2010027032A (ja) 2008-06-17 2010-02-04 Nec Electronics Corp Fifo装置及びfifoバッファへのデータ格納方法
US8310494B2 (en) * 2008-09-30 2012-11-13 Apple Inc. Method for reducing graphics rendering failures
US8234478B1 (en) 2008-10-22 2012-07-31 Nvidia Corporation Using a data cache array as a DRAM load/store buffer
US8180963B2 (en) 2009-05-21 2012-05-15 Empire Technology Development Llc Hierarchical read-combining local memories
US8244981B2 (en) 2009-07-10 2012-08-14 Apple Inc. Combined transparent/non-transparent cache
US8823721B2 (en) 2009-12-30 2014-09-02 Intel Corporation Techniques for aligning frame data
JP2011199735A (ja) * 2010-03-23 2011-10-06 Toshiba Corp 画像処理装置および画像処理システム
US8451994B2 (en) * 2010-04-07 2013-05-28 Apple Inc. Switching cameras during a video conference of a multi-camera mobile device
US8510521B2 (en) 2010-09-16 2013-08-13 Apple Inc. Reordering in the memory controller
US8704732B2 (en) 2010-09-29 2014-04-22 Qualcomm Incorporated Image synchronization for multiple displays
US20120147020A1 (en) * 2010-12-13 2012-06-14 Ati Technologies Ulc Method and apparatus for providing indication of a static frame
WO2012124660A1 (ja) 2011-03-17 2012-09-20 シャープ株式会社 表示装置、駆動装置、及び、駆動方法
WO2012174681A1 (en) 2011-06-24 2012-12-27 Intel Corporation Techniques for controlling power consumption of a system
US9035961B2 (en) 2012-09-11 2015-05-19 Apple Inc. Display pipe alternate cache hint
US8922571B2 (en) 2012-09-11 2014-12-30 Apple Inc. Display pipe request aggregation

Also Published As

Publication number Publication date
KR20160145809A (ko) 2016-12-20
TW201617843A (zh) 2016-05-16
KR101977453B1 (ko) 2019-05-10
WO2015195219A1 (en) 2015-12-23
EP3134804A1 (en) 2017-03-01
TWI567634B (zh) 2017-01-21
EP3134804B1 (en) 2020-06-24
US9471955B2 (en) 2016-10-18
JP2017519244A (ja) 2017-07-13
CN106415479B (zh) 2018-08-21
US20150371607A1 (en) 2015-12-24
CN106415479A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
JP6652937B2 (ja) 分割ディスプレイを駆動する多重ディスプレイパイプライン
US11211036B2 (en) Timestamp based display update mechanism
US9495926B2 (en) Variable frame refresh rate
US9620081B2 (en) Hardware auxiliary channel for synchronous backlight update
US20120307141A1 (en) Frame retiming for mirror mode
US10055809B2 (en) Systems and methods for time shifting tasks
US20120306926A1 (en) Inline scaling unit for mirror mode
US9001160B2 (en) Frame timing synchronization for an inline scaler using multiple buffer thresholds
US20160307540A1 (en) Linear scaling in a display pipeline
US9646563B2 (en) Managing back pressure during compressed frame writeback for idle screens
US9652816B1 (en) Reduced frame refresh rate
US20170018247A1 (en) Idle frame compression without writeback
US10546558B2 (en) Request aggregation with opportunism
US9953591B1 (en) Managing two dimensional structured noise when driving a display with multiple display pipes
US9691349B2 (en) Source pixel component passthrough
US20150062134A1 (en) Parameter fifo for configuring video related settings
US9558536B2 (en) Blur downscale
US9412147B2 (en) Display pipe line buffer sharing
US9087393B2 (en) Network display support in an integrated circuit
US9472169B2 (en) Coordinate based QoS escalation
US9747658B2 (en) Arbitration method for multi-request display pipeline

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171211

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190906

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: 20191226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200124

R150 Certificate of patent or registration of utility model

Ref document number: 6652937

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