(57)【要約】  一例では、表示プロセッサによるタイルベースの処理のための方法は、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るステップを含み得る。この方法は、読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶するステップを含み得る。この方法は、第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るステップを含み得る。この方法は、読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶するステップを含み得る。この方法は、第2のメモリ空間から第1の前景タイルデータのデータのサブセットを読み取るステップを含み得る。この方法は、第3のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取るステップを含み得る。
2018534607.tif 000002
【特許請求の範囲】
【請求項１】
表示プロセッサによるタイルベースの処理のための方法であって、
前記表示プロセッサのプリフェッチ処理ユニットによって、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶するステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶するステップと、
前記表示プロセッサのフェッチ処理ユニットによって、前記第2のメモリ空間から前記第1の前景タイルデータのデータのサブセットを読み取るステップと、
前記表示プロセッサの前記フェッチ処理ユニットによって、前記第3のメモリ空間から前記第1の背景タイルデータのデータのサブセットを読み取るステップと
を含む、方法。
【請求項２】
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドすることによって、ブレンドタイルデータを生成するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記ブレンドタイルデータを第4のメモリ空間内に記憶するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間が前景ピンポンバッファであり、前記第3のメモリ空間が背景ピンポンバッファであり、前記第4のメモリ空間がライトバックピンポンバッファである、請求項4に記載の方法。
【請求項６】
前記第1の前景タイルデータが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも1個のタイルを含む、請求項1に記載の方法。
【請求項７】
前記第1の前景タイルデータが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも2個のタイルを含む、請求項1に記載の方法。
【請求項８】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも1個のタイルを含む、請求項1に記載の方法。
【請求項９】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも2個のタイルを含む、請求項1に記載の方法。
【請求項１０】
前記前景タイルデータを読み取る前記ステップおよび記憶する前記ステップが、前記背景タイルデータを読み取る前記ステップおよび記憶する前記ステップの前に生じる、請求項1に記載の方法。
【請求項１１】
前記前景タイルデータを読み取る前記ステップおよび記憶する前記ステップが、前記背景タイルデータを読み取る前記ステップおよび記憶する前記ステップと並列に生じる、請求項1に記載の方法。
【請求項１２】
前景タイルデータスケーリング情報または背景タイルデータ回転情報に基づいて、前記第2のメモリ空間または前記第3のメモリ空間のうちの少なくとも1つに関するサイズを決定するステップをさらに含む、請求項1に記載の方法。
【請求項１３】
前記サイズに基づいて、前記第2のメモリ空間または前記第3のメモリ空間のうちの少なくとも1つのためのメモリを割り振るステップをさらに含む、請求項12に記載の方法。
【請求項１４】
コンピューティングデバイスであって、
第1のメモリ空間と、
前景画像の前景タイルデータを記憶するための第2のメモリ空間と、
背景画像の背景タイルデータを記憶するための第3のメモリ空間と、
プリフェッチ処理ユニットおよびフェッチ処理ユニットを含む表示プロセッサと
を備え、
前記プリフェッチ処理ユニットが、前記第1のメモリ空間から前記前景画像の第1の前景タイルデータを読み取り、前記読み取られた第1の前景タイルデータを前記第2のメモリ空間内に記憶し、前記第1のメモリ空間から前記背景画像の第1の背景タイルデータを読み取り、前記読み取られた第1の背景タイルデータを前記第3のメモリ空間内に記憶するように構成され、
前記フェッチ処理ユニットが、前記第2のメモリ空間から前記第1の前景タイルデータのデータのサブセットを読み取り、前記第3のメモリ空間から前記第1の背景タイルデータのデータのサブセットを読み取るように構成される、
コンピューティングデバイス。
【請求項１５】
前記コンピューティングデバイスが、前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するように構成されたピクセル処理ユニットをさらに備える、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記コンピューティングデバイスが、前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成するように構成されたブレンド処理ユニットをさらに備える、請求項15に記載のコンピューティングデバイス。
【請求項１７】
前記表示プロセッサが、前記ブレンドタイルデータを第4のメモリ空間内に記憶するようにさらに構成される、請求項16に記載のコンピューティングデバイス。
【請求項１８】
前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間が前景ピンポンバッファであり、前記第3のメモリ空間が背景ピンポンバッファであり、前記第4のメモリ空間がライトバックピンポンバッファである、請求項17に記載のコンピューティングデバイス。
【請求項１９】
前記第1の前景タイルデータが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも1個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２０】
前記第1の前景タイルデータが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも2個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２１】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも1個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２２】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも2個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２３】
前記プリフェッチ処理ユニットが、前記背景タイルデータを読み取り、記憶する前に、前記前景タイルデータを読み取り、記憶するように構成される、請求項14に記載のコンピューティングデバイス。
【請求項２４】
前記プリフェッチ処理ユニットが、前記背景タイルデータを読み取り、記憶するのと並行に前記前景タイルデータを読み取り、記憶するように構成される、請求項14に記載のコンピューティングデバイス。
【請求項２５】
前記プリフェッチ処理ユニットが、前景タイルデータスケーリング情報または背景タイルデータ回転情報に基づいて、前記第2のメモリ空間または前記第3のメモリ空間のうちの少なくとも1つに関するサイズを決定するように構成される、請求項14に記載のコンピューティングデバイス。
【請求項２６】
前記プリフェッチ処理ユニットが、前記サイズに基づいて、前記第2のメモリ空間または前記第3のメモリ空間のうちの少なくとも1つのためのメモリを割り振るように構成される、請求項25に記載のコンピューティングデバイス。
【請求項２７】
装置であって、
第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るための手段と、
前記読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶するための手段と、
前記第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るための手段と、
前記読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶するための手段と、
前記第2のメモリ空間から前記第1の前景タイルデータのデータのサブセットを読み取るための手段と、
前記第3のメモリ空間から前記第1の背景タイルデータのデータのサブセットを読み取るための手段と
を備える、装置。
【請求項２８】
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するための手段と、
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成するための手段と、
前記ブレンドタイルデータを第4のメモリ空間内に記憶するための手段であって、前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間が前景ピンポンバッファであり、前記第3のメモリ空間が背景ピンポンバッファであり、前記第4のメモリ空間がライトバックピンポンバッファである、記憶するための手段と
をさらに備える、請求項27に記載の装置。
【請求項２９】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、
第1のメモリ空間から前景画像の第1の前景タイルデータを読み取らせ、
前記読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶させ、
前記第1のメモリ空間から背景画像の第1の背景タイルデータを読み取らせ、
前記読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶させ、
前記第2のメモリ空間から前記第1の前景タイルデータのデータのサブセットを読み取らせ、
前記第3のメモリ空間から前記第1の背景タイルデータのデータのサブセットを読み取らせる、
非一時的コンピュータ可読記憶媒体。
【請求項３０】
前記命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理することと、
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成することと、
前記ブレンドタイルデータを第4のメモリ空間内に記憶することであって、前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間が前景ピンポンバッファであり、前記第3のメモリ空間が背景ピンポンバッファであり、前記第4のメモリ空間がライトバックピンポンバッファである、記憶することと
を行わせる、請求項29に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、表示プロセッサの表示処理に関する。
【背景技術】
【０００２】
グラフィカルユーザインターフェースおよびビデオゲームのためのコンテンツなど、表示のための視覚コンテンツは、グラフィックス処理ユニット(GPU)によって生成され得る。たとえば、ディスプレイは、処理されたグラフィカルデータをディスプレイ上に提示するためにGPUによって出力されるグラフィカルデータ(たとえば、ピクセル表現)を処理する表示プロセッサに通信可能に結合され得る。
【０００３】
表示プロセッサは、それに関連するエリア処理効率により、タイルベースの表示アーキテクチャを利用することが多い。しかしながら、現在の表示プロセッサのタイルフェッチ方式および/またはタイル処理順序を改善することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の技法は、表示プロセッサの表示処理に関する。視覚コンテンツは、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、ビデオ処理ユニット、カメラ処理ユニット、画像処理ユニット、ピクセル処理ユニット、および/または別のソースによって生成または処理され得る。表示プロセッサは、いずれかのソースから視覚コンテンツを受信するように構成され得る。本開示のいくつかの態様は、たとえば、表示プロセッサの帯域幅/処理消費を低減させること、および/または表示プロセッサ(たとえば、システムメモリ)による外部のメモリに対するメモリ要求の数を低減させることを対象とし得る。本開示のいくつかの態様は、表示プロセッサのスループットを増大させることを対象とし得る。本開示のいくつかの態様は、疑似平面フォーマット画像に対するメモリ効率を増大させることを対象とし得る。
【０００５】
一例では、本開示は、表示プロセッサによるタイルベースの処理のための方法であって、表示プロセッサのプリフェッチ処理ユニットによって、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るステップと、表示プロセッサのプリフェッチ処理ユニットによって、読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶するステップと、表示プロセッサのプリフェッチ処理ユニットによって、第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るステップと、表示プロセッサのプリフェッチ処理ユニットによって、読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶するステップと、表示プロセッサのフェッチ処理ユニットによって、第2のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取るステップと、表示プロセッサのフェッチ処理ユニットによって、第3のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取るステップとを含む、方法について説明する。いくつかの例では、第1のメモリ空間はフレームバッファであってよく、第2のメモリ空間は前景ピンポンバッファであってよく、第3のメモリ空間は背景ピンポンバッファであってよい。
【０００６】
別の例では、本開示は、コンピューティングデバイスであって、第1のメモリ空間と、前景画像の前景タイルデータを記憶するための第2のメモリ空間と、背景画像の背景タイルデータを記憶するための第3のメモリ空間と、プリフェッチ処理ユニットおよびフェッチ処理ユニットを含む表示プロセッサとを備える、コンピューティングデバイスについて説明する。プリフェッチ処理ユニットは、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取り、読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶し、第1のメモリ空間から背景画像の第1の背景タイルデータを読み取り、読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶するように構成され得る。フェッチ処理ユニットは、第2のメモリ空間から第1の前景タイルデータのデータのサブセットを読み取り、第3のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取るように構成され得る。いくつかの例では、第1のメモリ空間はフレームバッファであってよく、第2のメモリ空間は前景ピンポンバッファであってよく、第3のメモリ空間は背景ピンポンバッファであってよい。
【０００７】
別の例では、本開示は、装置であって、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るための手段と、読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶するための手段と、第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るための手段と、読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶するための手段と、第2のメモリ空間から第1の前景タイルデータのデータのサブセットを読み取るための手段と、第3のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取るための手段とを備える装置について説明する。いくつかの例では、第1のメモリ空間はフレームバッファであってよく、第2のメモリ空間は前景ピンポンバッファであってよく、第3のメモリ空間は背景ピンポンバッファであってよい。
【０００８】
別の例では、本開示は、命令を記憶した非一時的コンピュータ可読記憶媒体であって、命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取らせ、読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶させ、第1のメモリ空間から背景画像の第1の背景タイルデータを読み取らせ、読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶させ、第2のメモリ空間から第1の前景タイルデータのデータのサブセットを読み取らせ、第3のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取らせる、非一時的コンピュータ可読記憶媒体について説明する。いくつかの例では、第1のメモリ空間はフレームバッファであってよく、第2のメモリ空間は前景ピンポンバッファであってよく、第3のメモリ空間は背景ピンポンバッファであってよい。
【０００９】
本開示の1つまたは複数の態様の詳細が、添付の図面および下記の説明において記載される。本開示の他の特徴、目的、および利点は、記述および図面から、また特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【００１０】
【図１】本開示の1つまたは複数の態様を実装するように構成され得る例示的なコンピューティングデバイスを示すブロック図である。
【図２】本開示において説明する表示プロセッサの一例を示すブロック図である。
【図３Ａ】本開示において説明する、データをピンポンバッファに書き込む一例を示す概念図である。
【図３Ｂ】本開示において説明する、データをピンポンバッファから読み取る一例を示す概念図である。
【図３Ｃ】本開示において説明する、データをピンポンバッファに書き込む一例を示す概念図である。
【図３Ｄ】本開示において説明する、ピンポンバッファの一例からデータを読み取る一例を示す概念図である。
【図４Ａ】前景タイルおよび背景タイルの処理の並列化の一例を示す概念図である。
【図４Ｂ】前景タイルおよび背景タイルの処理の並列化の一例を示す概念図である。
【図５Ａ】ピンポンバッファ空間のためのメモリ割振りの一例を示す図である。
【図５Ｂ】ピンポンバッファ空間のためのメモリ割振りの一例を示す図である。
【図６】本明細書で説明する技法による、前景ピンポンバッファ、背景ピンポンバッファ、およびライトバックピンポンバッファを示すブロック図である。
【図７Ａ】本開示の表示処理のための技法による1つの例示的なプロセスを示すフローチャートである。
【図７Ｂ】本開示の表示処理のための技法による1つの例示的なプロセスを示すフローチャートである。
【図８】本開示において説明する表示プロセッサのタイルベース処理の一例を示す概念図である。
【発明を実施するための形態】
【００１１】
概して、本開示の態様は、画像フレームのセット(たとえば、グラフィカルアニメーション、ビデオ、ビデオゲームなど)または単一の画像フレーム(たとえば、静止画像)など、視覚コンテンツを表示する際のコンピューティングシステムの性能を改善することを対象とする。視覚コンテンツは、CPU、GPU、DSP、ビデオ処理ユニット、カメラ処理ユニット、画像処理ユニット、ピクセル処理ユニット、および/または別のソースによって生成され得る。本開示の1つまたは複数の技法を実行するように構成された表示プロセッサは、いずれかのソースから視覚コンテンツを受信するように構成され得る。たとえば、本開示の1つまたは複数の技法を実行するように構成された表示プロセッサは、視覚コンテンツを生成または処理することができるいずれかのソースに通信可能に(ワイヤードに、ワイヤレスに、またはそれらの組合せで)結合され得る。別の例として、本開示の1つまたは複数の技法を実行するように構成された表示プロセッサは、視覚コンテンツを記憶するように構成されたいずれかのメモリに通信可能に(ワイヤードに、ワイヤレスに、またはそれらの組合せで)結合され得る。そのような例では、本開示の1つまたは複数の技法を実行するように構成された表示プロセッサは、視覚コンテンツを記憶しているいずれかのメモリから視覚コンテンツを受信するように構成され得る。
【００１２】
本開示の一例では、表示プロセッサは、前景および背景のタイルデータをメモリ(たとえば、フレームバッファ)からプリフェッチし、プリフェッチされたタイルデータを、前景ピンポンバッファおよび背景ピンポンバッファにそれぞれ記憶するように構成され得る。メモリからタイルデータをプリフェッチすることは、たとえば、通常要求されるよりも大きなチャンクでメモリを要求することによって、メモリに対するメモリ要求の数を低減させることができる。別の例として、本開示のいくつかの態様は、表示プロセッサのスループットを増大させることを対象とし得る。別の例として、本開示のいくつかの態様は、疑似平面フォーマットフレームに対するメモリ効率を増大させることを対象とし得る。たとえば、本開示の1つまたは複数の技法による表示プロセッサは、プリフェッチプロセスの間に、クロマタイルおよびルーマタイルの各ラインを交番せずに、個々のタイルとしてクロマおよびルーマをプリフェッチすることができる。
【００１３】
図1は、本開示の1つまたは複数の態様を実装するように構成され得る例示的なコンピューティングデバイスを示すブロック図である。図1に示すように、コンピューティングデバイス2は、ビデオデバイス、メディアプレーヤ、セットトップボックス、モバイル電話機やいわゆるスマートフォンなどのワイヤレスハンドセット、パーソナルデジタルアシスタント(PDA)、装着型コンピューティングデバイス、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、タブレットコンピューティングデバイス、などを含むが、これらに限定されないコンピューティングデバイスであってよい。いくつかの例では、コンピューティングデバイス2は、モバイル通信デバイスであってもよい。図1の例では、コンピューティングデバイス2は、中央処理装置(CPU)6と、システムメモリ10と、GPU12とを含み得る。コンピューティングデバイス2は、デジタル信号プロセッサ(DSP)11と、表示プロセッサ14と、トランシーバ3と、ユーザインターフェース4と、ビデオコーデック7と、ディスプレイデバイス8とを含み得る。いくつかの例では、ビデオコーデック7は、CPU6によって処理されるように構成されたソフトウェアアプリケーション18などのソフトウェアアプリケーションであってよい。他の例では、ビデオコーデック7は、CPU6とは異なるハードウェア構成要素、CPU6とは異なる構成要素上で実行するソフトウェアアプリケーション、またはハードウェアとソフトウェアの組合せであってよい。
【００１４】
図1の表示プロセッサ14の構成は例示である。他の例では、表示プロセッサ14は、いずれかのCPU(たとえば、CPU6)、いずれかのGPU(たとえば、GPU12)、いずれかのDSP、いずれかのビデオ処理ユニット、いずれかのカメラ処理ユニット、いずれかの画像処理ユニット、いずれかのピクセル処理ユニット、視覚コンテンツを記録するいずれかのメモリ、またはいずれかの他のソースなど、いずれかのソースから視覚コンテンツを受信するように構成され得る。一例として、表示プロセッサ14は、別のデバイス(たとえば、別のコンピューティングデバイス2、サーバ、またはコンピューティングデバイス2が永続的にまたは一時的に通信可能に結合されるように構成され得る、コンピューティングデバイス2とは異なるいずれかのデバイス)から視覚コンテンツデータを受信するように構成され得る。そのような例では、コンピューティングデバイス2は、トランシーバ3において視覚コンテンツを受信することができる。表示プロセッサ14は、トランシーバ3によって受信される視覚コンテンツを処理するように構成され得る。いくつかの例では、表示プロセッサ14は、トランシーバ3から視覚コンテンツを直接受信することができる。他の例では、表示プロセッサ14は、トランシーバ3によって受信される視覚コンテンツをCPU6、GPU12、またはコンピューティングデバイス2のいずれかの他の処理ユニットから受信することができる。そのような例では、表示プロセッサ14は、視覚コンテンツがトランシーバ3によって受信されると、または、たとえば、視覚コンテンツがCPU6、GPU12、またはコンピューティングデバイスのいずれかの他の処理ユニットによってさらに処理されると、視覚コンテンツを受信することができる。
【００１５】
本明細書で使用する場合、「視覚コンテンツ」という用語は、いずれかのグラフィックスデータ、グラフィカルデータ、ビデオデータ、画像データ、ピクセルデータ、グラフィックスコンテンツ、グラフィカルコンテンツ、ビデオコンテンツ、画像コンテンツ、および/またはピクセルコンテンツを含むが、これらに限定されない。
【００１６】
表示プロセッサ14の様々な構成に鑑みて、表示プロセッサ14は、視覚コンテンツのいずれかのソース(たとえば、いずれかの処理ユニットまたは視覚コンテンツを記憶しているいずれかのメモリ)に関して、本明細書で説明するいずれかの機能を実行するように構成され得る。たとえば、図1は、表示プロセッサ14が、GPUがグラフィカルデータを出力する先であるフレームバッファなど、メモリから視覚コンテンツ(たとえば、1つまたは複数の画像層)をプリフェッチおよび/またはフェッチするように構成されているとして説明されるが、表示プロセッサ14は、視覚コンテンツを処理するように構成されたいずれかの処理ユニットおよび/または視覚コンテンツを記憶するように構成されたいずれかのメモリ(たとえば、視覚コンテンツを処理するように構成されたいずれかの処理ユニットのいずれかのオンチップメモリ、視覚コンテンツを処理するように構成されたいずれかの処理ニットの外部のいずれかのメモリ、またはいずれかの他のメモリ)から視覚コンテンツをプリフェッチおよび/またはフェッチするように構成され得る。
【００１７】
表示プロセッサ14は、タイルベースのアーキテクチャを利用することができる。他の例では、表示プロセッサ14は、ラインベースのアーキテクチャを利用することができる。そのような例では、表示プロセッサ14は、ラインベースの表示処理ならびにタイルベースの表示処理のために、本開示の1つまたは複数の技法を実装するように構成され得る。
【００１８】
いくつかの例では、タイルは高さおよび幅を有するピクセルのエリア表現であり、高さは1つまたは複数のピクセルであり、幅は1つまたは複数のピクセルである。そのような例では、タイルは、性質上、長方形または正方形であり得る。他の例では、タイルは、正方形または長方形とは異なる形状であり得る。表示プロセッサ14は、メモリ(たとえば、GPUがピクセル表現の形でグラフィカルデータを出力するフレームバッファおよび/または他のメモリ)から複数の画像層(たとえば、前景および背景)をプリフェッチまたはフェッチすることができる。表示プロセッサ14は、複数の層からのピクセルを処理することができる。表示プロセッサ14によって実行され得る例示的な処理は、アップサンプリング、ダウンサンプリング、スケーリング、回転、および他のピクセル処理を含み得る。たとえば、表示プロセッサ14は、前景画像層および/または背景画像層に関連するピクセルを処理することができる。表示プロセッサ14は、複数の層からのピクセルをブレンドし、ブレンドピクセルをタイルフォーマットでメモリ内にライトバックすることができる。次いで、ブレンドピクセルは、ラスタフォーマットでメモリから読み取られ、提示のためにディスプレイ8に送られる。
【００１９】
ビデオコーデック7は、符号化ビデオデータを受信することができる。コンピューティングデバイス2は、符号化ビデオデータをソースデバイス(たとえば、データを符号化した、またはさもなければ、符号化ビデオデータを、サーバなどのコンピューティングデバイス2に送信したデバイス)から受信することができる。他の例では、コンピューティングデバイス2は、自身が、符号化ビデオデータを生成することができる。たとえば、コンピューティングデバイス2は、静止画像またはビデオをキャプチャするためのカメラを含み得る。キャプチャされたデータ(たとえば、ビデオデータ)はビデオコーデック7によって符号化され得る。符号化ビデオデータは、ビデオデータを復号する際に、ビデオコーデック7など、ビデオデコーダによって使用するためのビデオエンコーダによって生成される様々なシンタックス要素を含み得る。ビデオコーデック7はビデオエンコーダとビデオデコーダの両方であるとして本明細書で説明されるが、他の例では、ビデオコーデック7は符号化機能なしのビデオデコーダであり得ることを理解されよう。ビデオコーデック7によって復号されたビデオデータは、表示プロセッサ14に直接送られてよいか、ディスプレイ8に直接送られてよいか、あるいはシステムメモリ10、出力バッファ16、または出力バッファ17など、表示プロセッサ14またはGPU12にアクセス可能なメモリに送られてもよい。示す例では、ビデオコーデック7は表示プロセッサ14に接続され、すなわち、復号ビデオデータは、表示プロセッサ14に直接送られる、および/または表示プロセッサ14にアクセス可能なメモリ内に記憶される。そのような例では、表示プロセッサ14は、GPU12に関連するメモリ(たとえば、出力バッファ16)からグラフィカル(静止画像またはビデオ)データを取得するための1つまたは複数のメモリ要求を発行するときと同様の方法で、復号ビデオデータをメモリから取得するための1つまたは複数の要求を発行することができる。
【００２０】
トランシーバ3、ビデオコーデック7、および表示プロセッサ14は、CPU6および/またはGPU12と同じ集積回路(IC)の一部である場合があるか、どちらもCPU6および/またはGPU12を含む1つまたは複数のICの外部にある場合があるか、あるいはCPU6および/またはGPU12を含むICの外部にあるIC内に形成される場合がある。たとえば、ビデオコーデック7は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装され得る。
【００２１】
表示プロセッサ14は、複数の画像層(たとえば、前景層および背景層)を少なくとも1つのメモリ(たとえば、CPU6のオンチップメモリ、ビデオコーデック7のオンチップメモリ、GPU12のオンチップメモリ、DSP11のオンチップメモリ、出力バッファ16、出力バッファ17、システムメモリ10、いずれかの他のメモリ、またはそれらのいずれかの組合せ)からフェッチ/プリフェッチすることができる。複数の画像層は、前景層と背景層とを含み得る。本明細書で使用する場合、「画像」という用語は、静止画像のみを意味することを意図しない。むしろ、画像または画像層は、静止画像(たとえば、画像または画像層は、ブレンドされるときは画像であり得る)またはビデオ(たとえば、画像または画像層は、ブレンドされるときは、連続して閲覧されると、動画またはビデオを作り出す一連の画像内の単一の画像であり得る)に関連付けられ得る。
【００２２】
前景画像層(または、単に前景画像)および背景画像層(または、単に背景画像)はいずれかの視覚コンテンツであってよい。たとえば、前景画像はビデオデータを構成し得、背景画像はグラフィックスデータを構成し得る。そのような例では、前景画像は、GPU12よって生成され得るか、または(たとえば、符号化ビデオデータまたは符号化画像データを復号することによって)ビデオコーデック7によって生成され得る。背景画像は、たとえば、GPU12によって生成され得る。他の例では、背景画像は、(たとえば、符号化ビデオデータまたは符号化画像データを復号することによって)ビデオコーデック7によって生成され得る。いくつかの例では、表示プロセッサ14によって処理される前景画像および背景画像は、フレームバッファ(たとえば、出力バッファ16)から読み取られる。他の例では、前景画像はグラフィックスデータを構成し得、背景画像はグラフィックスデータを構成し得る。
【００２３】
いくつかの例では、前景画像層は、ビデオデータおよび/またはグラフィックスデータをサポートし得る。そのような例では、前景画像層は、ビデオデータに関するYUVカラーフォーマット(たとえば、YCbCrカラーフォーマット、YUV420疑似平面カラーフォーマット、YUV422疑似平面カラーフォーマット、YUV444平面カラーフォーマット、YUYVインターリーブカラーフォーマット、およびYUVカラーフォーマット)に準拠し得る。前景画像層は、グラフィックスデータに関する赤、緑、青(RGB)カラーフォーマット(たとえば、ARGB8888、RGB888、RGB444、RGB565、および他のRGBカラーフォーマットまたはRGBAカラーフォーマット)に準拠し得る。
【００２４】
ピクセルごとの赤、緑、青、アルファ(RGBA)の成分、ここで、「RGB」成分は色値に対応し、「A」成分は宛先アルファ値に対応する。別の例として、出力バッファ16および/または出力バッファ17は、YCbCrカラーフォーマット、YUVカラーフォーマット、RGBカラーフォーマットに従って、またはいずれかの他のカラーフォーマットに従って、ピクセルデータを記憶することができる。
【００２５】
コンピューティングデバイス2は、明確にするために図1に示されていない、追加のモジュールまたは処理ユニットを含み得る。たとえば、コンピューティングデバイス2は、コンピューティングデバイス2がモバイルワイヤレス電話機である場合の例で電話通信を遂行するために、いずれも図1には示されていないスピーカおよびマイクロフォンを含んでよく、または、コンピューティングデバイス2がメディアプレーヤである場合に、スピーカを含んでよい。コンピューティングデバイス2はまた、カメラを含んでもよい。さらに、コンピューティングデバイス2内に示される様々なモジュールおよびユニットは、必ずしもコンピューティングデバイス2のあらゆる例において必要であるとは限らない。たとえば、コンピューティングデバイス2が、外部ユーザインターフェースまたは表示装置とインターフェースするように装備されたデスクトップコンピュータまたは他のデバイスである場合の例では、ユーザインターフェース4およびディスプレイデバイス8は、コンピューティングデバイス2の外部にあってもよい。
【００２６】
ユーザインターフェース4の例は、トラックボール、マウス、キーボード、および他のタイプの入力デバイスを含むが、これらに限定されない。ユーザインターフェース4はまた、タッチスクリーンであってもよく、ディスプレイデバイス8の一部として組み込まれてよい。トランシーバ3は、コンピューティングデバイス2と別のデバイスまたはネットワークとの間のワイヤレスまたはワイヤード通信を可能にするための回路を含み得る。トランシーバ3は、変調器、復調器、および増幅器、ならびにワイヤード通信またはワイヤレス通信のための他のそのような回路を含み得る。いくつかの例では、トランシーバ3はCPU6と統合されてよい。
【００２７】
CPU6は、実行用のコンピュータプログラムの命令を処理するように構成された中央処理ユニット(CPU)などのマイクロプロセッサである場合がある。CPU6は、コンピューティングデバイス2の動作を制御する汎用または専用プロセッサを備え得る。ユーザは、CPU6に、ソフトウェアアプリケーション18などの1つまたは複数のソフトウェアアプリケーションを実行させるために、入力をコンピューティングデバイス2に提供し得る。CPU6上で実行するソフトウェアアプリケーション(たとえば、ソフトウェアアプリケーション18)は、たとえば、オペレーティングシステム、ワードプロセッサアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、メディアプレーヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインターフェースアプリケーション、または2Dグラフィックスまたは3Dグラフィックスのためのグラフィカルデータを使用する別のタイプのソフトウェアアプリケーションを含み得る。加えて、CPU6は、GPU12の演算を制御するためのGPUドライバ22を実行し得る。ユーザは、ユーザインターフェース4を介してコンピューティングデバイス2に結合された、キーボード、マウス、マイクロフォン、タッチパッド、または別の入力デバイスなど、1つまたは複数の入力デバイス(図示せず)を介して、コンピューティングデバイス2に入力を提供することができる。
【００２８】
CPU6上で実行するソフトウェアアプリケーション18は、ディスプレイデバイス8へのグラフィックスデータのレンダリングを引き起こすようCPU6に命令する1つまたは複数のグラフィックスレンダリング命令を含むことができる。これらの命令は、3Dグラフィックスを処理するための命令、ならびに2Dグラフィックスを処理するための命令を含み得る。いくつかの例では、ソフトウェア命令は、たとえば、Open Graphics Library(OpenGL(登録商標))API、Open Graphics Library Embedded Systems(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API、Open Computing Language(OpenCL(商標))、または任意の他の公開またはプロプライエタリ標準GPU計算APIなど、グラフィックスアプリケーションプログラミングインターフェース(API)に準拠し得る。CPU6上で実行するソフトウェアアプリケーション18のグラフィックスレンダリング命令を処理するために、CPU6は、ソフトウェアアプリケーション18の実行の間に、GPU12にグラフィックスデータのレンダリングの一部または全部を実行させるために、1つまたは複数のグラフィックスレンダリングコマンドをGPU12に(たとえば、GPUドライバ22を通じて)発行し得る。いくつかの例では、レンダリングされるべきグラフィックスデータは、グラフィックスプリミティブ、たとえば、点、線、三角形、四角形、三角形ストリップなどのリストを含み得る。
【００２９】
ソフトウェアアプリケーション18は、グラフィカルユーザインターフェース(GUI)、グラフィックスシーン、グラフィカルデータ、または他のグラフィックス関連データをレンダリングするようGPU12に命令する1つまたは複数の描画命令を含むことができる。たとえば、描画命令は、GPU12によってレンダリングされるべき1つまたは複数のグラフィックスプリミティブのセットを定義する命令を含んでもよい。いくつかの例では、描画命令は、GUIで使用される複数のウィンドウ処理サーフェスの全部または一部をまとめて定義してもよい。追加の例では、描画命令は、アプリケーションによって定義されたモデル空間またはワールド空間内に1つまたは複数のグラフィックスオブジェクトを含むグラフィックスシーンの全部または一部をまとめて定義してもよい。
【００３０】
GPU12は、1つまたは複数のグラフィックスプリミティブをディスプレイデバイス8にレンダリングするためのグラフィックス動作を実行するように構成され得る。したがって、CPU6上で実行しているソフトウェアアプリケーション18がグラフィックス処理を必要とするとき、CPU6は、ディスプレイデバイス8へのレンダリングのために、グラフィックスレンダリングコマンドをグラフィックスデータとともにGPU12に提供することができる。グラフィックスデータは、たとえば、描画コマンド、状態情報、プリミティブ情報、テクスチャ情報などを含んでもよい。GPU12は、場合によっては、CPU6よりも効率的な、複雑なグラフィック関連演算の処理を実現する高度並列構造で構築され得る。たとえば、GPU12は、複数の頂点またはピクセル上で並列に動作するように構成されたシェーダユニットなどの複数の処理要素を含み得る。GPU12の高度並列な性質は、場合によっては、GPU12が、CPU6を使用してディスプレイデバイス8にシーンを直接描画するよりも迅速にディスプレイデバイス8上にグラフィックス画像(たとえば、GUIならびに2次元(2D)グラフィックスシーンおよび/または3次元(3D)グラフィックスシーン)を描画することを可能にし得る。
【００３１】
ソフトウェアアプリケーション18は、1つまたは複数のグラフィックスプリミティブを表示可能グラフィックス画像(たとえば、表示可能グラフィカルデータ)にレンダリングするために、GPUドライバ22を呼び出して1つまたは複数のコマンドをGPU12に発行することができる。たとえば、ソフトウェアアプリケーション18は、GPUドライバ22を呼び出して、プリミティブ定義をGPU12に提供することができる。場合によっては、プリミティブ定義は、描画プリミティブ、たとえば、三角形、矩形、三角形ファン、三角形ストリップなどのリストの形でGPU12に提供され得る。プリミティブ定義は、レンダリングされるべきプリミティブに関連付けられた1つまたは複数の頂点を指定する頂点仕様を含んでもよい。頂点仕様は、頂点ごとの位置座標と、場合によっては、たとえば、色座標、法線ベクトル、およびテクスチャ座標など、頂点に関連付けられた他の属性とを含んでもよい。プリミティブ定義はまた、プリミティブタイプ情報(たとえば、三角形、矩形、三角形ファン、三角形ストリップなど)、スケーリング情報、回転情報などを含んでもよい。
【００３２】
ソフトウェアアプリケーション18によってGPUドライバ22に発行された命令に基づいて、GPUドライバ22は、プリミティブをレンダリングするためにGPU12が実行する1つまたは複数の演算を指定する1つまたは複数のコマンドを策定し得る。GPU12がCPU6からコマンドを受信するとき、グラフィックス処理パイプラインは、コマンドを復号し、コマンド内で指定された演算を実行するようにグラフィックス処理パイプラインを構成するために、GPU12のシェーダプロセッサ上で実行することができる。たとえば、グラフィックス処理パイプライン内の入力アセンブラは、プリミティブデータを読み取り、データをグラフィックス処理パイプライン内の他のグラフィックスパイプラインステージが使用するためのプリミティブにする場合がある。グラフィックス処理パイプラインは、指定された演算を実行した後、レンダリングされたデータを表示プロセッサ14にアクセス可能な出力バッファ16に出力する。いくつかの例では、グラフィックス処理パイプラインは、固定関数論理を含んでよく、かつ/またはプログラマブルシェーダコア上で実行されてよい。
【００３３】
出力バッファ16は、GPU12のための宛先ピクセルを記憶する。各宛先ピクセルは、一意のスクリーンピクセルロケーションに関連付けられ得る。同様に、出力バッファ17は、例に応じて、ビデオコーデック7のために宛先ピクセルを記憶することができる。出力バッファ17は、ビデオコーデック7に関連するフレームバッファと見なされ得る。いくつかの例では、出力バッファ16および/または出力バッファ17は、宛先ピクセルごとの色成分および宛先アルファ値を記憶し得る。たとえば、出力バッファ16および/または出力バッファ17は、いずれかのフォーマットに従って、ピクセルデータを記憶することができる。たとえば、出力バッファ16および/または出力バッファ17は、ピクセルごとの赤、緑、青、アルファ(RGBA)成分を記憶する場合があり、ここで、「RGB」成分は色値に対応し、「A」成分は宛先アルファ値に対応する。別の例として、出力バッファ16および/または出力バッファ17は、YCbCrカラーフォーマット、YUVカラーフォーマット、RGBカラーフォーマットに従って、またはいずれかの他のカラーフォーマットに従って、ピクセルデータを記憶することができる。出力バッファ16およびシステムメモリ10は別個のメモリユニットであるものとして示されているが、他の例では、出力バッファ16はシステムメモリ10の一部であってもよい。たとえば、出力バッファ16は、システムメモリ10内に割り振られたメモリ空間であり得る。出力バッファ16は、フレームバッファを構成し得る。さらに、上記で論じたように、出力バッファ16はまた、ピクセル以外の任意の適切なデータを記憶することが可能であってもよい。
【００３４】
同様に、出力バッファ17およびシステムメモリ10は別個のメモリユニットであるものとして示されているが、他の例では、出力バッファ17はシステムメモリ10の一部であってもよい。たとえば、出力バッファ17は、システムメモリ10内に割り振られたメモリ空間であり得る。出力バッファ17は、ビデオコーデックバッファまたはフレームバッファを構成し得る。さらに、上記で論じたように、出力バッファ17はまた、ピクセル以外の任意の適切なデータを記憶することが可能であってもよい。いくつかの例では、出力バッファ16および出力バッファ17は別個のメモリユニットであるとして示されているが、出力バッファ16および出力バッファ17は、同じバッファであってよく、または同じバッファの異なる部分であってもよい。
【００３５】
GPU12は、場合によっては、コンピューティングデバイス2のマザーボードに統合され得る。他の事例では、GPU12は、コンピューティングデバイス2のマザーボード内のポートにインストールされるグラフィックスカード上に存在し得、またはさもなければ、コンピューティングデバイス2と相互動作するように構成された周辺デバイス内に組み込まれ得る。いくつかの例では、GPU12は、システムオンチップ(SOC)内などで、CPU6とオンチップであってよい。GPU12は、1つまたは複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、または他の等価な集積もしくは離散ロジック回路など、1つまたは複数のプロセッサを含むことができる。GPU12はまた、1つまたは複数のプロセッサコアを含むこともでき、したがって、GPU12は、マルチコアプロセッサと呼ばれることがある。
【００３６】
いくつかの例では、グラフィックスメモリ20はGPU12の一部であってよい。たとえば、グラフィックスメモリ20は、GPU12の集積回路チップ内に物理的に統合されたオンチップメモリまたはメモリであってよい。グラフィックスメモリ20がオンチップである場合、GPU12は、システムバスを介して、システムメモリ10から値を読み取りシステムメモリ10に値を書き込むよりもより迅速に、グラフィックスメモリ20から値を読み取り、グラフィックスメモリ20に値を書き込むことが可能であり得る。したがって、GPU12は、バスを使用せずに、グラフィックスメモリ20からデータを読み取り、グラフィックスメモリ20にデータを書き込むことができる。言い換えれば、GPU12は、オフチップメモリの代わりに、ローカルストレージを局所的に使用してデータを処理することができる。そのようなグラフィックスメモリ20は、オンチップメモリと呼ばれる場合がある。これにより、GPU12は、GPU12がバスを介してデータを読み書きする必要をなくすことによって、より効率的な方式で動作することができ、バスを介したデータの読み書きは、重いバストラフィックおよび関連する帯域幅競合を被ることがある。しかし、場合によっては、GPU12は、別個のメモリを含まなくてもよく、その代わり、バスを介してシステムメモリ10を利用することができる。グラフィックスメモリ20は、1つまたは複数の揮発性または不揮発性メモリまたはストレージデバイス、たとえば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、消去可能プログラム可能なROM(EPROM)、電気的に消去可能プログラム可能なROM(EEPROM)、フラッシュメモリ、磁気データ媒体、または光学ストレージ媒体など、を含むことができる。
【００３７】
いくつかの例では、GPU12は、システムメモリ10内に十分に形成された画像を記憶し得る。表示プロセッサ14は、画像をシステムメモリ10および/または出力バッファ16から取り出して、値を出力することができ、これらの値は、ディスプレイデバイス8のピクセルが照明して画像を表示するようにする。いくつかの例では、表示プロセッサ14は、スケーリング、回転、ブレンディング、および合成を含めて、表示されることになるデータに関して2D動作を実行するように構成され得る。ディスプレイデバイス8は、GPU12によって生成された画像コンテンツを表示する、コンピューティングデバイス2のディスプレイであってよい。ディスプレイデバイス8は、液晶ディスプレイ(LCD)、有機発光ダイオードディスプレイ(OLED)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスである場合がある。いくつかの例では、ディスプレイ8は、コンピューティングデバイス2内に統合されてもよい。たとえば、ディスプレイ8は、モバイル電話のスクリーンであり得る。他の例では、ディスプレイ8は、ワイヤード通信リンクまたはワイヤレス通信リンクを介してコンピューティングデバイス2に結合されたスタンドアロンデバイスであり得る。たとえば、ディスプレイ8は、ケーブルリンクまたはワイヤレスリンクを介してコンピューティングデバイス(たとえば、パーソナルコンピュータ、モバイルコンピュータ、タブレット、モバイルフォンなど)に接続されたコンピュータモニタまたはフラットパネルディスプレイであってよい。
【００３８】
CPU6は、コンピューティングデバイス2内で実行するための命令を処理する。CPU6は、GPU12による実行のためにドライバ(たとえば、CPU6によって実行されるソフトウェア内で実装され得るGPUドライバ22)を使用してコマンドストリームを生成することができる。すなわち、CPU6は、GPU12によって実行されるべき動作のセットを定義するコマンドストリームを生成することができる。
【００３９】
CPU6は、閲覧可能なコンテンツをディスプレイ8上に表示させる、GPU12によって実行されるべきコマンドストリームを生成することができる。たとえば、CPU6は、GPU12が、ディスプレイ8における表示のために出力バッファ16内に記憶され得るグラフィックスデータをレンダリングするための命令を提供するコマンドストリームを生成することができる。この例では、CPU6は、グラフィックスレンダリングパイプラインによって実行されるコマンドストリームを生成することができる。
【００４０】
追加または代替として、CPU6は、GPU12に他の動作を実行させる、GPU12によって実行されるべきコマンドストリームを生成することができる。たとえば、場合によっては、CPU6は、汎用グラフィックス処理ユニット(GPGPU)など、GPU12を使用するためのコマンドストリームを生成するホストプロセッサであり得る。このようにして、GPU12はCPU6のための2次プロセッサの役目を果たすことができる。たとえば、GPU12は、従来、CPU6によって実行された様々な汎用コンピューティング機能を実行することができる。例は、ビデオ復号および後処理(たとえば、デブロッキング、ノイズ低減、色補正など)を含む、様々な画像処理機能と、他の特定用途画像処理機能(たとえば、顔の検出/認識、パターン認識、ウェーブレット変換など)とを含む。いくつかの例では、GPU12は、そのようなGPGPUアプリケーションを実行するためにCPU6と協力することができる。たとえば、CPU6は、GPU12が実行するためのコマンドストリームをGPU12に提供することによって、いくつかの機能をGPU12にオフロードすることができる。この例では、CPU6ホストプロセッサであり得、GPU12は2次プロセッサであり得る。
【００４１】
GPUドライバ22は、GPU12のシェーダユニットが実行することができる1つまたは複数のコマンドストリームをGPU12に通信することができる。GPU12は、GPUドライバ22から1つまたは複数のコマンドストリームを受信することができるコマンドプロセッサ24を含み得る。コマンドプロセッサ24は、1つまたは複数のコマンドストリームを受信および処理するように構成されたハードウェアおよびソフトウェアの何らかの組合せであってよい。したがって、コマンドプロセッサ24はストリームプロセッサである。いくつかの例では、コマンドプロセッサ24の代わりに、1つまたは複数のコマンドストリームを受信および処理し、本明細書で開示する技法を実行するために、いずれかの他の適切なストリームプロセッサが使用可能であり得る。一例では、コマンドプロセッサ24はハードウェアプロセッサであってよい。図1に示す例では、コマンドプロセッサ24はGPU12内に含まれ得る。他の例では、コマンドプロセッサ24は、CPU6およびGPU12とは別個のユニットであってよい。コマンドプロセッサ24は、それがコマンドおよび/または動作のストリームを受信するように構成されたいずれかのプロセッサであってよいことを示すために、ストリームプロセッサ、コマンド/ストリームプロセッサなどとして知られている場合もある。
【００４２】
コマンドプロセッサ24は、GPU12による実行のために1つまたは複数のコマンドストリーム内に含まれるスケジューリング動作を含めて、1つまたは複数のコマンドストリームを処理することができる。具体的には、コマンドプロセッサ24は、1つまたは複数のコマンドストリームを処理し、シェーダユニット46による実行のために1つまたは複数のコマンドストリーム内の動作をスケジュールすることができる。動作中、GPUドライバ22は、GPU12によって実行されるべき一連の動作を含むコマンドストリームをコマンドプロセッサ24に送ることができる。コマンドプロセッサ24は、コマンドストリームを含む動作のストリームを受信することができ、コマンドストリーム内の動作の順序に基づいてコマンドストリームの動作を連続的に処理することができ、GPU12のシェーダユニットのシェーダプロセッサによって実行するためにコマンドストリーム内に動作をスケジュールすることができる。
【００４３】
表示プロセッサ14は、たとえば、帯域幅消耗を低減または除去するために、タイルデータを最初に獲得するために表示プロセッサ14によって行われるメモリ要求の数を低減させるために、および/またはスループットを増大させるために前景タイルおよび背景タイルの並列フェッチを可能にするために、本明細書で説明する様々な技法を実装することができる。本明細書で説明する様々な技法から様々な他の利点を導出することも可能である。
【００４４】
図2は、本開示の技法による表示プロセッサ14を示す概念図である。表示プロセッサ14は、バスインターフェース102と通信しているプリフェッチ処理ユニット100を含む。いくつかの例では、プリフェッチ処理ユニット100は、外部メモリ(たとえば、システムメモリ10、出力バッファ16、および/または出力バッファ17などのオフチップメモリ)に対するメモリアドレス要求を生成するためのアドレス生成器論理を有する固定関数回路である。プリフェッチ処理ユニット100は、生成されたメモリアドレスにおいて記憶された前景層および背景層のピクセルデータを外部メモリからプリフェッチする。
【００４５】
いくつかの例では、バスインターフェース102は、AXIプロトコルに従ってシステム構成要素と通信するAdvanced eXtensible Interface(AXI)インターフェースであってよい。たとえば、バスインターフェース102はAXIマスタインターフェースを構成し得、バスインターフェース102が通信する構成要素はAXIスレーブを構成し得る。他の例では、バスインターフェース102は、AXIインターフェースとは異なるバスインターフェースであってよい。バスインターフェース102は、表示プロセッサ14が、GPU12、出力バッファ16、ビデオコーデック7、および/またはシステムメモリ10など、他のシステム構成要素と通信することを可能にし得る。プリフェッチ処理ユニット100は、共有メモリ104と通信している。いくつかの例では、共有メモリ104は、システムメモリ10内のメモリ空間であり得る。他の例では、共有メモリ104は、システムメモリ10とは異なる外部メモリ内のメモリ空間であり得る。他の例では、共有メモリ104は、表示プロセッサ14上のメモリ(たとえば、オンチップメモリ)内のメモリ空間であり得る。プリフェッチ処理ユニット100、フェッチ処理ユニット110、ピクセル処理ユニット130、および/またはブレンド処理ユニット140など、表示プロセッサ14の構成要素は、例に応じて、共有メモリ104にアクセスするために適宜にバスインターフェースを利用することができる。
【００４６】
表示プロセッサ14は、背景タイルデータをフェッチするためのBGデータ読取りパッカー112と、前景タイルデータをフェッチするためのFGデータ読取りパッカー114とを含むフェッチ処理ユニット110を含み得る。フェッチ処理ユニット110は、BGタイルアドレス生成器116とFGタイルアドレス生成器118とをやはり含む。
【００４７】
いくつかの例では、FGデータ読取りパッカー114およびBGデータ読取りパッカー112は、FGデータ読取りパッカー114とBGデータ読取りパッカー112の両方として機能する同じ物理モジュールであってよい。他の例では、FGデータ読取りパッカー114およびBGデータ読取りパッカー112は、2回インスタンス化された、すなわち、FGデータ読取りパッカー114用に1回インスタンス化され、BGデータ読取りパッカー112用に1回インスタンス化された、同じ物理モジュールであってよい。そのような例では、各インスタンス化は、同じ固定関数回路を有する別個の物理モジュールである。
【００４８】
いくつかの例では、FGタイルアドレス生成器118およびBGタイルアドレス生成器116は、FGタイルアドレス生成器118とBGタイルアドレス生成器116の両方として機能する同じ物理モジュールであってよい。他の例では、FGタイルアドレス生成器118およびBGタイルアドレス生成器116は、2回インスタンス化された、すなわち、FGタイルアドレス生成器118用に1回インスタンス化され、BGタイルアドレス生成器116用に1回インスタンス化された、同じ物理モジュールであってよい。そのような例では、各インスタンス化は、同じ固定関数回路を有する別個の物理モジュールである。
【００４９】
いくつかの例では、共有メモリ104は、64ピクセル×高さ(H)ピクセルの固定パターンでプリフェッチ処理ユニット100によって充填されるか、またはさもなければ、書き込まれる。フェッチ処理ユニット110は、ダウンロード処理のために、共有メモリ104から前景タイルデータの各ラインをパックするためのタイルデータを共有メモリ104から読み取ることができる。ダウンストリーム処理は、たとえば、ピクセル処理ユニット130および/またはブレンド処理ユニット140によって実行されるいずれかの処理を含み得る。FGタイルアドレス生成器118は、幅(W)×高さ(H)ピクセルの寸法を有する前景タイルをフェッチするために使用されるメモリアドレスを生成することができ、ここで、Wは、64ピクセル未満であっても、64ピクセルに等しくても、または64ピクセルを超えてもよい。FGタイルアドレス生成器118によって生成されたアドレスを使用して、FGデータ読取りパッカー114は、共有メモリ104から前景タイルデータを読み取り、前景タイルデータの各ラインをパックすることができる。パックされると、FGデータ読取りパッカー114は、処理のために、各パックされたラインをダウンストリーム内で送ることができる。
【００５０】
FGタイルアドレス生成器118同様、BGタイルアドレス生成器116は、16ピクセル×16ピクセルの寸法を有する背景タイルをフェッチするための使用されるメモリアドレスを生成することができる。他の例では、BGタイルアドレス生成器116は、幅(W)×高さ(H)ピクセルの寸法を有する背景タイルをフェッチするための使用されるメモリアドレスを生成することができる。
【００５１】
いくつかの例では、共有メモリ104の読取りおよび書込みインターフェースは64ビットであり、すなわち、一度に64ビットの前景タイルデータを共有メモリ104に書き込むことおよび/または共有メモリ104から読み取ることができる。プリフェッチ処理ユニット100は、外部メモリ(たとえば、システムメモリ10、出力バッファ16、および/または出力バッファ17などのオフチップメモリ)から64ビットのチャンクでデータを読み取ることができる。プリフェッチ処理ユニット100は、ピクセルデータの64ビットのチャンクを共有メモリ104内に記憶する。ピクセルデータの単一の64ビットラインの各ビットは、実際の前景タイルデータの1本のラインに対応しても、対応しなくてもよい。そのような非対応は、たとえば、64ビットラインが2個以上の前景タイルに関するピクセルデータを含む場合に生じ得る。FGデータ読取りパッカー114およびBGデータ読取りパッカー112は、各々、FGタイルアドレス生成器118およびBGタイルアドレス生成器116によってそれぞれ生成されたアドレスを使用して、タイルに関して要求されたピクセルデータを共有メモリ104から読み取る。FGデータ読取りパッカー114およびBGデータ読取りパッカー112は、各々、サイズW×Hの前景タイルおよびサイズW×Hの背景タイルをそれぞれ形成する。いくつかの例では、BGデータ読取りパッカー112によって形成される背景タイルのサイズは、16ピクセル×16ピクセルに固定される。
【００５２】
BGデータ読取りパッカー112、FGデータ読取りパッカー114、BGタイルアドレス生成器116、およびFGタイルアドレス生成器118は、各々、フェッチシーケンスコントローラ120と通信している。フェッチシーケンスコントローラ120は、BGデータ読取りパッカー112、FGデータ読取りパッカー114、BGタイルアドレス生成器116、およびFGタイルアドレス生成器118に対して命令を発行すること、またはそれらからの命令に応じることができる。同様に、BGデータ読取りパッカー112、FGデータ読取りパッカー114、BGタイルアドレス生成器116、およびFGタイルアドレス生成器118は、各々、フェッチシーケンスコントローラ120に対して命令を発行すること、またはフェッチシーケンスコントローラ120からの命令に応じることができる。
【００５３】
いくつかの例では、フェッチシーケンスコントローラ120は、グラフィカルデータのフレームに対応する各平面のフェッチシーケンスを制御する。たとえば、YUVフォーマット画像フレームを、単一平面(インターリーブフォーマットと呼ばれる)、2個の平面(疑似フォーマットと呼ばれる)、または3個の平面(平面フォーマットと呼ばれる)としてDDR内に記憶することができる。そのような例では、フォーマットに応じて、各フレームに関連して最高で3個の平面が存在し得る。たとえば、前景タイルの場合、データの1つまたは複数の平面をフェッチすることができる。フェッチシーケンスコントローラ120は、1つまたは複数の平面の各々が各前景タイルおよび背景タイルに関して共有メモリ104からフェッチされることを保証し得る。カラーフォーマットに応じて、フェッチシーケンスコントローラ120は、フェッチの間に、1つまたは複数のカラーチャネルを1つまたは複数の平面内にインターリーブするように構成され得る。いくつかの例では、いずれかのダウンストリーム処理(たとえば、ピクセル処理ユニット130によって実行されるダウンストリーム処理)を、各ピクセルの構成要素ではなく、各ピクセルに関して実行することができる。そうするために、フェッチシーケンスコントローラ120は、各タイルに対応する各平面がどのようにフェッチされるかを制御することができる。たとえば、フェッチシーケンスコントローラ120は、各タイルに対応する各平面の連続的フェッチを制御することができる。別の例として、フェッチシーケンスコントローラは、2個以上の平面のインターリーブされたフェッチを制御することができる。この例では、フェッチシーケンスコントローラ120は、Cb面およびCr面の各ライン間のフェッチを交番させることができる。別の例として、フェッチシーケンスコントローラ120は、異なるカラーチャネルがインターリーブされるRGBカラーフォーマットタイルに関して単一平面をフェッチすることができる。別の例として、フェッチシーケンスコントローラ120は、YUVカラーフォーマットまたはYUVプラスアルファカラーフォーマットに準拠するタイルの場合、3個の平面をフェッチするように構成され得る。
【００５４】
タイルデータのフェッチシーケンスを制御することに加えて、フェッチシーケンスコントローラ120は、各平面に関してフェッチされるべき入力タイルサイズを生成することができる。一例として、フェッチシーケンスコントローラは、スケール比およびフォーマットに基づいて、Y面、Cb面、およびCr面に関してフェッチされるべき入力タイルサイズを生成することができる。フェッチシーケンスコントローラ120は、FGタイルアドレス生成器118およびBGタイルアドレス生成器116が、そこからFGデータ読取りパッカー114およびBGデータ読取りパッカー112が共有メモリ104からデータを読み取るアドレスを生成する際に使用するメモリポインタを更新することもできる。
【００５５】
フェッチ処理ユニット110は、共有メモリ104内に記憶されたプリフェッチされた前景タイルデータおよびプリフェッチされた背景タイルデータのフェッチを制御するように構成され得る。フェッチ処理ユニット110に関する追加の詳細は、本開示を通して提供される。
【００５６】
共有メモリ104はプリフェッチ処理ユニット100とフェッチ処理ユニット110との間に位置するとして示されているが、図2は概念図であることを理解されたい。したがって、いくつかの例では、共有メモリ104のそのような配置はそのようなものとして存在し得る。しかしながら、他の例では、共有メモリ104は、図2に示すように配置されても、配置されてなくてもよい。しなしながら、すべての例の間の1つの共通性は、プリフェッチ処理ユニット100およびフェッチ処理ユニット110は、直接的であれ間接的(たとえば、別の構成要素を介して間接的に)であれ共有メモリ104と通信していることである。
【００５７】
表示プロセッサ14は、ピクセル処理(たとえば、アップスケーリング、ダウンスケーリング、および他のピクセル処理)を実行するように構成されたピクセル処理ユニット130を含み得る。表示プロセッサ14は、ブレンド処理ユニット140を含み得る。ブレンド処理ユニット140は、ディスプレイ8などのディスプレイ上に提示するために、前景タイルデータを背景タイルデータとブレンドして、ブレンドタイルデータを作り出するように構成され得る。たとえば、前景タイルデータおよび背景タイルデータは、それぞれ、前景画像層および背景画像層の一部分と見なされ得る。ブレンド処理ユニット140は、前景画像層および背景画像層のタイルを一緒にブレンドして、ブレンド画像層を作り出すことができる。ブレンド画像層は表示のためのフレームを形成し得る。
【００５８】
プリフェッチ処理ユニット100は、少なくとも1つのメモリ(たとえば、ビデオコーデック7のオンチップメモリ、GPU12のオンチップメモリ、出力バッファ16、および/またはシステムメモリ10)から前景および/または背景タイルデータをプリフェッチするように構成され得る。一例として、プリフェッチ処理ユニット100は、DDRメモリなどのオフチップメモリからタイルデータをプリフェッチするように構成され得る。別の例として、プリフェッチ処理ユニット100は、ビデオコーデック7のオンチップメモリまたはGPU12のオンチップメモリなど、オフチップメモリからタイルデータをプリフェッチするように構成され得るが、これは、少なくとも1個のフレームに対して、少なくとも十分なメモリがビデオコーデック7および/またはGPU12のオンチップメモリなどの上に割り振られることを必要とし、これは、外部メモリから単に表示プロセッサ14だけでなくビデオコーデック7およびGPU12にもプリフェッチするよりも費用がかかる。プリフェッチ処理ユニット100は、プリフェッチされたデータをメモリ空間(たとえば、共有メモリ104)内に記憶するように構成され得る。フェッチ処理ユニット110は、プリフェッチ処理ユニット100によって利用されるメモリ空間から、プリフェッチされた前景タイルデータおよび背景タイルデータをフェッチするように構成され得る。いくつかの例では、フェッチ処理ユニット110によって利用されるメモリは、表示プロセッサ14のみにアクセス可能であり得る。一例として、フェッチ処理ユニット110によって利用されるメモリは、表示プロセッサ14のオンチップメモリであってよい。別の例では、フェッチ処理ユニット110によって利用されるメモリは、表示プロセッサ14に対する外部メモリ(たとえば、システムメモリ10)であってよいが、表示プロセッサ14のみが指定されたメモリ空間にアクセスすることが可能にされるように割り振られる。他の方法で述べると、システムメモリ10はコンピューティングデバイス2の多くの構成要素に対して広くアクセス可能であり得るが、システムメモリ10のメモリ空間は、いくつかの例では、アクセス権で区別され得る。
【００５９】
ピクセル処理ユニット130は、フェッチ処理ユニット110から受信されたタイルデータ(たとえば、前景タイルデータ)に関してピクセル処理を実行することができる。ピクセル処理のいくつかの例は、アップサンプリング、ダウンサンプリング、スケーリング、カラー変換、回転、および他のピクセル処理技法を含む。アップサンプリングの2つの例は、YUV420フォーマットまたはYUV422フォーマットに準拠する入力フォーマットをYUV444に変換することを含む。ピクセル処理ユニット130によって実行されるいずれのスケーリングも、完全にアップサンプリングされたピクセルに関して実行され得る。カラー変換の一例は、YUVカラーフォーマットに準拠する入力フォーマットをRGBカラーフォーマットに変換することを含む。カラー変換の別の例は、RGBカラーフォーマットに準拠する入力フォーマットをYUVカラーフォーマットに変換することを含む。ピクセル回転処理の例は、画像を90度、180度、または270度回転させることを含み得る。ピクセル処理ユニット130は、処理されたタイルデータをメモリ(たとえば、ランダムアクセスメモリ(RAM))内に記憶することができる。
【００６０】
スケーリングに関して、ピクセル処理ユニット130のスケーリングエンジンに対する前景タイルの入力サイズは、その前景タイルに関連するスケール比率に応じて異なる。この点で、前景タイルは様々なサイズのものであり得る。しかしながら、プリフェッチ処理ユニット100を使用することによって外部メモリ要求から前景タイルサイズを分離することによって、帯域幅の浪費を低減させることができる。たとえば、フェッチ処理ユニット110が外部メモリから様々なサイズの各前景タイルを要求する代わりに、プリフェッチ処理ユニット100は、いずれかのスケーリング比にも依存せずに、64ピクセル増分など、固定増分で外部メモリからの前景タイルデータを読み取り、プリフェッチされたデータを共有メモリ空間104内に記憶する。次に、フェッチ処理ユニット110は、いずれかのスケーリング比に基づいて、共有メモリ空間104から前景タイルデータを読み取ることができ、すなわち、読取り要求サイズは固定でないが、これは、それがいずれかのスケーリング比にも依存しない、プリフェッチ処理ユニット100に関する読取り要求サイズと異なり、スケーリング比に依存するためである。本明細書で他の方法で述べられ、説明するように、プリフェッチ処理ユニット100は、プリフェッチピンポンバッファを利用することによって、帯域幅の浪費を補償する。
【００６１】
フェッチされた前景タイルデータに関してピクセル処理が実行された後で、ピクセル処理ユニット130は、処理された前景タイルをブレンド処理ユニット140に出力することができる。ブレンド処理ユニット140は、ピクセル処理ユニット130が処理されたタイルデータをブレンド処理ユニット140に送信することを要求し得る(たとえば、ブレンド処理ユニット140は、処理されたタイルデータをピクセル処理ユニット130からプルすることができる)。ピクセル処理ユニット130は、ブレンド処理ユニット140からそうするための要求を受信せずに、処理されたタイルデータをブレンド処理ユニット140に送信することができる(たとえば、ピクセル処理ユニット130は、処理されたタイルデータをブレンド処理ユニット140にプッシュすることができる)。
【００６２】
ブレンド処理ユニット140は、フェッチされた背景タイルデータ(たとえば、1つまたは複数のタイル)を、ピクセル処理ユニット130によって処理されている場合も、処理されていない場合もある、フェッチされた前景タイルデータ(たとえば、1つまたは複数のタイル)とブレンドして、ブレンドタイル(たとえば、1つまたは複数のブレンドタイル)を作り出すことができる。たとえば、1個の背景タイルが1個の前景タイルとブレンドされる場合、ブレンドタイルがブレンド処理ユニット140によって生成される。別の例として、2個の隣接する前景タイルが2個の隣接する背景タイルとブレンドされる場合、ブレンド処理ユニット140によって生成されるブレンドタイルデータは2個の隣接するブレンドタイルになる。いくつかの例では、ピクセル処理ユニット130によって処理される必要がない前景タイルデータは、ピクセル処理ユニット130を迂回し、代わりに、ブレンド処理ユニット140に直接送られてよい。そのような例では、フェッチシーケンスコントローラ120または前景データ読取りパッカー114がこの決定を行うことになり、その結果、前景データ読取りパッカー114は、そのような前景タイルデータを、ピクセル処理ユニット130の代わりに、ブレンド処理ユニット140に送信する。いくつかの例では、ブレンドタイルデータは(ブロック150に示すように)メモリ(たとえば、共有メモリ104)にライトバックされる。そのような例では、このメモリ空間はライトバックメモリと呼ばれることが多い。ブレンドタイルのピクセルは、表示プロセッサ14によってラスタ順序でこのメモリ空間(たとえば、システムメモリ内のライトバックメモリ)から読み取られ、提示のためにディスプレイ8に送られる。たとえば、表示プロセッサ14は、ライトバックメモリからブレンドフレーム(すなわち、ブレンドピクセルを含むフレーム)を読み取るダイレクトメモリアクセス(DMA)コントローラを含み得る。DMAコントローラは、ブレンドフレームをディスプレイ8に送信することができるか、またはDMAは、ブレンドフレームをディスプレイ8に送信する前にブレンドフレームをさらに処理することができる。たとえば、DMAは色域マッピングまたは色補正を実行することができる。いくつかの例では、表示プロセッサ14は、ブレンドフレームをディスプレイ8に送る前に、ブレンドフレームに関して追加の処理を実行することができる。たとえば、表示プロセッサ14は、ブレンドフレームをディスプレイ8に送信する前に、色調整および/または他の補正をブレンドフレームに対して実行することができる。
【００６３】
本明細書で使用される場合、データという用語は、コンテンツに応じて、ピクセルデータを指す場合がある。たとえば、タイルデータという用語はピクセルデータを指す。別の例として、前景タイルデータという用語は前景ピクセルデータを指す。さらに、タイルデータという用語は、ピクセル表現またはタイルピクセル表現と呼ばれる場合がある。ピクセルデータは、1つまたは複数のビットのカラーフォーマットに準拠し得る。たとえば、タイルデータ内の各ピクセルは、カラーフォーマットに応じて、1つまたは複数のビットによって表され得る。
【００６４】
本明細書で説明するように、プリフェッチ処理ユニット100は、プリフェッチされたデータを共有メモリ104などのメモリ空間内に記憶するように構成され得る。いくつかの例では、そのようなメモリ空間は、ピンポンバッファまたはピンポンサーキュラーバッファであり得る。ピンポンバッファは、共有メモリ104内のメモリ空間であり得る。共有メモリ104内のピンポンバッファは、いくつかの例によれば、ピンポンサーキュラーバッファを構成し得る。本明細書で使用される場合、「ピンポンバッファ」という用語は、非サーキュラー(たとえば、仮想リングではない)バッファまたはサーキュラー(たとえば、仮想リング)バッファを含み得る。いくつかの例では、「ピンポンバッファ」という用語は、本明細書で説明する1つまたは複数の技法を実行するように構成された、ページフリッピングバッファまたはダブルバッファリングバッファと呼ばれる場合がある。他の例では、「ピンポンバッファ」という用語は、本明細書で説明する1つまたは複数の技法を実行するように構成された、トリプルバッファリングバッファまたはクワッドバッファリングバッファと呼ばれる場合がある。いくつかの例では、「ピンポンバッファ」という用語は、ダブルバッファ(たとえば、ピンバッファおよびポンバッファ)と呼ばれる場合がある。ピンバッファおよびポンバッファは、非サーキュラーバッファおよび/またはサーキュラーバッファとして扱われてよい。ピンバッファおよびポンバッファがどのように扱われるかは、データがバッファに書き込まれるか、またはバッファから読み取られるかに左右され得る。いくつかの例では、「ピンポンバッファ」という用語は、ダブルバッファ(たとえば、ピンバッファおよびポンバッファ)を指す場合があり、この場合、データがバッファのうちの1つ(たとえば、ピンバッファ)に書き込まれ得るのと同時に、データが他のバッファ(たとえば、ポンバッファ)から読み取られる。データがポンバッファに書き込まれている場合、データはピンバッファから読み取られることが可能である。他の例では、「ピンポンバッファ」という用語は、ダブルバッファ(たとえば、ピンバッファおよびポンバッファ)を指す場合があり、この場合、データは一度にバッファのうちの1つ(たとえば、ピンバッファまたはポンバッファ)に書き込まれてよい。しかしながら、読取りの間、ピンバッファおよびポンバッファは、データがバッファのうちの1つのみに書き込まれているのと同時に、データが両方のバッファから読み取られ得るように、ほぼ連続的なメモリ空間であり得る。
【００６５】
ピンポンバッファが非サーキュラーである例では、ピンバッファは個々のサーキュラーバッファであってよく、ポンバッファは個々のサーキュラーバッファであってよい。ピンポンバッファのサイズは、例に応じて異なり得る。表示プロセッサ14は前景タイルデータに関するピンポンバッファ、背景タイルデータに関するピンポンバッファ、および/またはライトバックタイルデータ(たとえば、ブレンド処理ユニット140によって出力されたタイルデータ)に関するピンポンバッファを含み得る。
【００６６】
たとえば、前景ピンポンバッファは、幅128ピクセルおよび高さ64ピクセルであってよい。この例では、前景ピンバッファ空間は64×64ピクセルであり、前景ポンバッファも64×64ピクセルであってよい。前景ピンバッファ空間および前景ポンバッファ空間のサイズは、ピクセル処理ユニット130が前景タイルデータに関して実行するように構成され得る最大ダウンスケール比、ならびにタイルの高さおよび/または幅に基づき得る。ピンバッファおよびポンバッファの高さおよび幅が64ピクセルであることは、最大ダウンスケール比が4分の1(1/4)である一例であるが、その理由は、64ピクセルを、1/4ダウンスケールすると16ピクセルであり、これは背景タイルに対する固定ピクセル幅であるためである。したがって、前景ピンポンバッファは、ピクセル処理ユニット130によって前景データに関して実行されるべきいずれかのスケーリングに基づき得ることを当業者は諒解されよう。
【００６７】
前景ピンバッファ空間が64×64ピクセルであり、前景ポンバッファ空間が64×64ピクセルである例を参照すると、プリフェッチ処理ユニット100は、図3Aに示すように、最高で64ピクセルまで、64×タイル高さピクセル内の前景タイルデータをフェッチすることができる。図3Aに示すように、プリフェッチ処理ユニット100がプリフェッチされたタイルデータを前景ピンポンバッファに記憶する(たとえば、書き込む)とき、1個のタイル(64ピクセル×タイル高さピクセル)がプリフェッチされ、前景ピンバッファ空間内に書き込まれ、もう1個のタイル(64ピクセル×タイル高さピクセル)がプリフェッチされ、前景ポンバッファ空間内に書き込まれる。図3Aは、したがって、プリフェッチされたタイルデータを前景ピンポンバッファに書き込む一例を示す。図3Aに示すスケール補償されたタイルフェッチ例は64ピクセルで固定される。本明細書で説明するように、フェッチを64ピクセルに固定することは、最大アクセス長(MAL)の準拠を保証し得る。
【００６８】
図3Bは、プリフェッチされた前景タイルデータを前景ピンポンバッファから読み取る(たとえば、フェッチする)一例を示す。図3Bに示すように、前景ピンポンバッファは、サーキュラーバッファとして構成され得る。下記で説明する図3Dは、ピンポンバッファがサーキュラーバッファとして構成されているとき、前景ピンポンバッファからピクセルデータを読み取るプロセスを示す。タイルは、スケールアルゴリズムに基づいて計算された、タイル幅ピクセル×タイル高さピクセルのサイズを有する。フェッチ処理ユニット110は、たとえば、フレームバッファまたは共有メモリ104以外のメモリの代わりに、前景ピンポンバッファからタイルをフェッチする。この例は仮想円周に128ビットを示すが、他の例は最適化のためにより少ないビットを含み得る。たとえば、一例では、前景ピンポンバッファは、96ビットの幅(および、仮想円周)であってよく、依然として、一度に64ピクセルがフェッチされ得る。
【００６９】
図3Cは、ピクセルデータを前景ピンポンバッファ内に書き込むプロセスを示す。図3Cに示すように、プリフェッチ処理ユニット100は、複数の隣接タイルをプリフェッチし、それらのタイルをピンポンバッファ内に記憶するように構成され得る。フェッチ処理ユニット110は、ピンポンバッファからタイルを読み取る(図3Dに示す)。前景ピンポンバッファのピンバッファおよびポンバッファに関する64ピクセル幅の例を続けると、動作中、プリフェッチ処理ユニット100は、ピクセルデータをピンバッファ内に一度に一行書き込む。この書込みプロセスの間、プリフェッチ処理ユニット100は、各64ピクセル幅ラインが1つのタイルを含むのか、または複数のタイルを含むのかに気づかない場合がある。ピンバッファが充填されると、プリフェッチ処理ユニット100は、ポンバッファに切り替えて、このプロセスを繰り返す。同様に、ポンバッファが充填されると、プリフェッチ処理ユニット100は、ピンバッファに切り替えて、このプロセスを繰り返す。プリフェッチ処理ユニット100がデータをピンポンバッファに書き込んでいる間に、フェッチ処理ユニット110は、ピクセルデータをピンポンバッファから読み取っている場合がある。たとえば、プリフェッチ処理ユニット100がポンバッファに書き込んでいる間に、フェッチ処理ユニット110はピンバッファから読み取っている場合がある。同様に、プリフェッチ処理ユニット100がピンバッファに書き込んでいる間に、フェッチ処理ユニット110はポンバッファから読み取っている場合がある。
【００７０】
図3Dは、ピクセルデータを前景ピンポンバッファから読み取るプロセスを示す。図3Dは、プリフェッチ処理ユニット100が、ピンバッファおよびポンバッファに書き込まれている各64ピクセル幅ライン内のタイルの数またはタイルの完全性に気づいていない可能性があることを示す。図3Dはまた、タイルデータがピンバッファとポンバッファの両方の中に存在し得る例を示す(たとえば、タイル3)。示す例では、フェッチ処理ユニット110がピンバッファから読み取るとき、フェッチ処理ユニット110は3個のタイルに関連するピクセルデータを読み取る。このタイムスタンプにおいて、フェッチ処理ユニット110がポンバッファを読み取り、タイル1、タイル2、およびタイル3に関するピクセルデータを獲得するとき、タイル1およびタイル3に関するピクセルデータは不完全であるように思われるが、これはそれらのタイルの各々の幅全体がピンバッファから読み取られていないためである。しかしながら、フェッチ処理ユニット110は、各それぞれのラインに関するポンバッファのそれぞれのその最後の読取りの間、タイル1に関する各ラインに関して「欠如している」ピクセルを前に読み取っている。これはサーキュラーバッファであるため、概念的に、図3Dに示すような「部分」タイルは実際には存在しないが、これはピンバッファおよびポンバッファは、連続的メモリ空間であり得るか、または連続的メモリ空間として扱われ得るためである。タイル3は、ポンバッファがタイル3に関する各ラインに関して残りのピクセルを含む例を示す。たとえば、タイル3に関して、フェッチ処理ユニット110は、ポンバッファ内の最上ピクセルラインから初めて、そのラインを読み取る。しかしながら、フェッチ処理ユニット110によって発行された読取り命令は、タイル幅に基づく数のピクセル(たとえば、タイル幅に対応する数のピクセル)を読み取るためである。したがって、フェッチ処理ユニット110は、ポンバッファによるタイル3に関する残りのピクセルのフェッチに進む。たとえば、フェッチ処理ユニット110は、ライン1内の幅「a」を有するピクセルをフェッチし、次いで、ポンバッファのライン1内の幅「b」を有するピクセルのフェッチに進む。一緒に、セグメント「a」および「b」はタイル3に関するフルラインを作り上げる。同様のプロセスがタイル1に生じ、タイル1を除いて、各ラインの開始はポンバッファの終点においてメモリ空間内で始まり、タイル5およびタイル6のデータによって上書きされる前に、読み取られた。タイル4および5はポンバッファから完全に取得され、タイル6はポンバッファから部分的に取得され、残りはピンバッファから取得される。ピンポンバッファの環状(たとえば、リング)特徴により、タイル6の残りはタイル1上に書き込まれることに留意されたい。
【００７１】
他の例では、プリフェッチ処理ユニット100は、32ピクセル幅増分、64ピクセル幅増分、または128ピクセル幅増分で前景タイルデータをフェッチすることができる。そのようなプリフェッチは、1つまたは複数、または2つ以上の前景タイルを含み得る。たとえば、プリフェッチ処理ユニット100は、最高で32ピクセルまでの32×タイル高さピクセルで前景タイルデータをフェッチすることができる。そのような例では、ピンポンバッファは、幅64ピクセルおよび高さ32ピクセルであってよい。別の例として、プリフェッチ処理ユニット100は、最高で128ピクセルまでの128×タイル高さピクセルで前景タイルデータをフェッチすることができる。そのような例では、ピンポンバッファは、幅256ピクセルおよび高さ128ピクセルであってよい。
【００７２】
前景および/または背景タイルデータをプリフェッチすることによって、プリフェッチ処理ユニット100は、外部メモリ(たとえば、GPU12に関連するフレームバッファ)と表示プロセッサ14からの内部処理要求(たとえば、フェッチ処理ユニット110による処理要求)とを分離する。たとえば、ビデオコーデック7のオンチップメモリからフェッチする代わりに、GPU12のオンチップメモリ、および/または出力バッファ16、フェッチ処理ユニット110がプリフェッチ処理ユニット100によってピンポンバッファ内に記憶されたタイルデータから前景タイルおよび背景タイルをフェッチする。
【００７３】
さらに、表示されるべき画像のタイルは異なるタイル寸法、ピクセルビット深度、および/または色表現を使用してピンポンバッファ内に記憶され得るため、表示プロセッサ14のフェッチ処理ユニット110は、(たとえば、タイルフォーマットおよび/または色成分に対応する)フレキシブルな方法でピンポンバッファからタイルデータを読み取るように構成され得る。様々なタイルフォーマットを処理するために、プリフェッチ処理ユニット100は、上記に記載したように、64個のピクセルをピンポンバッファ内に一度に書き込むことができ、ピンポンバッファの特定の領域が特定の色平面(たとえば、YCbCr、RGBAなど)に対応するかどうかをさらに決定するための論理を含み得る。ピクセルデータをピンポンバッファ内から読み取り、ピンポンバッファをタイルに区分する1つの例示的なプロセスを図3Cに示す。
【００７４】
上記で特定されたように、表示プロセッサ14は、背景ピンポンバッファを含み得る。プリフェッチ処理ユニット100は背景タイルデータをプリフェッチすることができ、すなわち、プリフェッチ処理ユニット100は、共有メモリ104(たとえば、フレームバッファ)以外のメモリ空間から背景タイルデータを読み取り、後で、プリフェッチされたタイルデータを背景ピンポンバッファに書き込む。背景ピンポンバッファは、幅64ピクセルおよび高さ16ピクセルであってよい。この例では、背景ピンポンバッファは、幅32ピクセルおよび高さ16ピクセルであってよく、背景ピンポンバッファは、幅32ピクセルおよび高さ16ピクセルであってよい。背景タイルは幅16ピクセルおよび高さ16ピクセルのサイズに固定されるため、32×16ピンバッファおよび32×16ポンバッファを使用することは、16の最大バーストサイズをもたらす。他の方法で述べると、プリフェッチ処理ユニット100は、現在の背景タイルおよび隣接する水平タイルをプリフェッチし、帯域幅の浪費に対処して、オフチップメモリのバースト長を最高16まで最大化することができる。いくつかの例では、バースト長を最高16まで最大化するためには、少なくとも32個のピクセルをプリフェッチする必要があり得る。本明細書で説明するように、外部メモリに対するメモリ要求の数を低減させ、プリフェッチ処理ユニット100は以下のうちの1つまたは複数によって帯域幅の浪費を低減させることができる。すなわち、メモリバースト長を増大させること、いずれかのスケーリング比に依存せずに前景タイルデータをプリフェッチすること(たとえば、いずれのスケーリング比にかかわらず、幅64ピクセルの固定サイズに従って、前景タイルデータをプリフェッチすること)、水平重複による過剰フェッチを除去すること、および/または垂直重複要求を半減すること、である。
【００７５】
同様に、表示プロセッサ14は、ライトバックピンポンバッファを含み得る。表示プロセッサ14は、ブレンド処理ユニット140によって出力されたブレンドタイルデータをライトバックバッファにライトバックすることができる(図2のブロック150に示す)。ライトバックピンポンバッファは、幅64ピクセルおよび高さ16ピクセルであってよい。この例では、ライトバックピンバッファは、幅32ピクセルおよび高さ16ピクセルであってよく、ライトバックポンバッファは、幅32ピクセルおよび高さ16ピクセルであってよい。
【００７６】
いくつかの例では、プリフェッチ処理ユニット100は、前景タイルデータおよび背景タイルデータを並列にプリフェッチする(たとえば、読み取る)ように構成され得る。他の例では、プリフェッチ処理ユニット100は、前景タイルデータおよび背景タイルデータを連続的に、またはさもなければ、並列でない形でプリフェッチするように構成され得る。プリフェッチ処理ユニット100によって実行されるプリフェッチによるピンポンバッファ空間(または、いずれかのバッファ空間)内の前景タイルおよび背景タイルの可用性は、フェッチ処理ユニット110によるメモリ(たとえば、ピンポンメモリ空間)からの前景タイルおよび背景タイルの並列読取りを可能にし得る。
【００７７】
図4Aは、前景ピクセルおよび背景ピクセルが単一のクロックサイクルでブレンドのために利用可能である一例を示す。示す例では、ラインごとに32個のピクセルが存在する。しかしながら、他の例では、ラインごとに16個のピクセル、ラインごとに64個のピクセル、またはラインごとに他の数のピクセルが存在し得る。図4Bは、前景ピクセル(たとえば、ルーマフォーマットピクセルおよびクロマフォーマットピクセル)および背景ピクセル(たとえば、ARGBフォーマットピクセル)が単一のクロックサイクルでブレンドのために利用可能である一例を示す。示す例では、ラインごとに32個のピクセルが存在する。しかしながら、他の例では、ラインごとに16個のピクセル、ラインごとに64個のピクセル、またはラインごとに他の数のピクセルが存在し得る。
【００７８】
フェッチ処理ユニット110は、第1の前景タイルおよび第1の背景タイルを並列にフェッチし、表示プロセッサがフェッチされた第1の前景タイルに関してピクセル処理を行う間に、第2の前景タイルおよび第2の背景タイルを並列にフェッチするように構成され得る。表示プロセッサ14のプリフェッチ処理ユニット100は、したがって、さもなければ、プリフェッチ処理ユニット100内に存在することになる不効率な処理を低減または除去することができる。たとえば、プリフェッチ処理ユニット100は、フェッチ処理ユニット110がより多くのアクションを並列に実行することを可能にし、それによって、処理リソースを節約することができる。
【００７９】
別の例として、プリフェッチ処理ユニット100の利用は、表示プロセッサ14がタイルデータを取得するための初期メモリ要求の数を低減し得る。この例では、プリフェッチ処理ユニット100は、フェッチ処理ユニット110が要求するように構成されているものと比較して、要求ごとにより多い量のタイルデータを取得することが可能であるため、メモリ要求を低減させることができる。一例では、プリフェッチ処理ユニット100は、単一のメモリ要求内で、2個以上のタイルに対応するタイルデータを読み取ることができるが、フェッチ処理ユニット110は、単一のタイルに対応するタイルデータを読み取るように構成され得る。他の方法で述べると、プリフェッチ処理ユニット100は、共有メモリ104以外のメモリに対してより小さく微調整されたメモリ要求を行うが、フェッチ処理ユニット110は、共有メモリ104に対してより大きく微調整されたメモリ要求を行う。そうすることによって、プリフェッチ処理ユニット100は、共有メモリ104以外のメモリに対して表示プロセッサ14が行う(たとえば、送信する)メモリ要求の数を低減させることができる。
【００８０】
いくつかの例では、前景タイルおよび背景タイル(または、タイルデータ)プリフェッチは、プリフェッチ処理ユニット100によって並列に(たとえば、ラウンドロビン様式で)実行される。他の例では、前景タイルおよび背景タイル(または、タイルデータ)プリフェッチは、優先度調停技法を使用して、プリフェッチ処理ユニット100によって実行される。プリフェッチ処理ユニット100に関する追加の詳細は、本開示を通して提供される。
【００８１】
前景ピンポンバッファ、背景ピンポンバッファ、およびライトバックピンポンバッファは、メモリ(たとえば、共有メモリ104)内で別個のメモリ空間であってよく、または連続的メモリ空間であってもよい。表示プロセッサ14は、表示されるべき画像の回転およびダウンスケーリング値に基づいて、メモリ(たとえば、共有メモリ104)内に前景ピンポンバッファ、背景ピンポンバッファ、およびライトバックピンポンバッファのためのメモリ空間を動的に割り振ることができる。たとえば、図5Aは、表示プロセッサ14が、前景ピンポンバッファに関して4個の64×32ピクセル領域を割り振り、背景ピンポンバッファに関して1個の16×16ピクセル領域を割り振り、ライトバックピンポンバッファに関して1個の16×16ピクセル領域を割り振った一例を示す。いくつかの例では、表示プロセッサ14は、表示されるべき画像が3分の1(1/3)未満にダウンスケールされる必要があり、回転されるべきでないとき、または表示されるべき画像が3分の2(2/3)未満にダウンスケールされる必要があり、回転されるべきであるときに、そのような割振りを適切と見なすことができる。図5Aに示すメモリの異なる領域は連続的であっても、連続的でなくてもよい。
【００８２】
図5Bは、ピンポンバッファのためのメモリ割振りの別の例を示す。この例では、表示プロセッサ14は、前景ピンポンバッファに関して2個の64×32ピクセル領域および2個の64×16ピクセル領域を割り振り、背景ピンポンバッファに関して2個の32×16ピクセル領域を割り振り、ライトバックピンポンバッファに関して2個の32×16ピクセル領域を割り振った。いくつかの例では、表示プロセッサ14は、表示されるべき画像が3分の1(1/3)以上の比率だけダウンスケールされる必要があり、回転されるべきでないとき、または表示されるべき画像が3分の2(2/3)以上の比率でダウンスケールされる必要があり、回転されるべきであるときに、そのような割振りを適切と見なすことができる。図5Bに示すメモリの異なる領域は連続的であっても、連続的でなくてもよい。
【００８３】
図5Aおよび図5Bは概念的であるが、図5Aおよび図5Bは、表示プロセッサ14が、スケーリング比が増大するとき、ピンポンバッファによるメモリ空間消費を低減し得ることを示す。たとえば、図5Bでピンポンバッファに関して割り振られたメモリは、図5Aでピンポンバッファに関して割り振られたメモリよりも少ない32×32ピクセルを有する。本明細書で説明するように、ピンポンバッファメモリは、中でも、前景タイルデータに適用されるべきスケーリング係数に基づいて割り振られてよい。たとえば、前景データに関してピンポンバッファメモリに割り振られるメモリは、以下に等しくてよい。すなわち、(1)ピンポンバッファ幅=16÷スケーリング係数、および(2)ピンポンバッファ高さ=16÷スケーリング係数。たとえば、1/4のダウンスケーリング計数は、64×64ピクセルのサイズを有するピンポンバッファに等しいことになるが、1/2のダウンスケーリング係数は、32×32のサイズを有するピンポンバッファに等しいことになる。
【００８４】
いくつかの例では、表示プロセッサ14は、スケーリングに起因するピクセルの過剰フェッチを低減または除去することができるが、これは、そのようなピクセルは、単なる単一のタイル以上のタイルに関するタイルデータを維持する前景ピンポンバッファ内にすでに存在するためである。いくつかの例では、プリフェッチ処理ユニット100は、垂直タイル重複に起因するピクセルライン再フェッチを低減または除去することができる。いくつかの例では、表示プロセッサ14は、プリフェッチ処理ユニット100を使用することによって、オフチップメモリ要求の数を低減させることができる。
【００８５】
図6は、本明細書で説明する技法による、前景ピンポンバッファ、背景ピンポンバッファ、およびライトバックピンポンバッファを示す概念図である。いくつかの例では、ピンポンバッファは、疑似平面フォーマット(たとえば、ルーマ、クロマ、および/またはアルファ)のピクセルタイプに対応する各領域を有する複数の領域にほぼ分割されるように構成され得る。
【００８６】
疑似平面フォーマットの場合、1個のタイルは、ルーマタイルおよびクロマタイルからインターリーブされたラインを含む。このフォーマットでは、フェッチ処理ユニット110は、共有メモリ104からジグザグパターンの交番様式でルーマタイルおよびクロマタイルの各ラインをフェッチして、そのようなタイルをピクセル処理ユニット130またはブレンド処理ユニット140のいずれかに送る前に、ルーマ・クロマタイルを作り出すことができる。たとえば、フェッチ処理ユニット110は、ルーマタイルの左上最上ピクセルから開始して、プリフェッチ処理ユニット100によってプリフェッチされていることにより、共有メモリ104内に記憶されるルーマの第1のライン上のすべてのピクセルのフェッチに進むことができる。次に、フェッチ処理ユニット110は、クロマタイルの左最上ピクセルから開始し、クロマタイルの第1のライン上のすべてのピクセルをフェッチする。次に、フェッチ処理ユニット110は、ルーマタイルの第2ラインに移動し、左最上ピクセルから開始して、ルーマタイルの第2のライン上のすべてのピクセルをフェッチする。次に、フェッチ処理ユニット110は、クロマタイルの第2のラインに移動し、左最上ピクセルから開始して、クロマタイルの第2のライン上のすべてのピクセルをフェッチする。フェッチ処理ユニット110がルーマタイルおよびクロマタイル内の右最下ピクセルに達するまでこのプロセスは続く。
【００８７】
いくつかの例では、プリフェッチ処理ユニット100は、反対に、フェッチの間にラインを交番せずに、ルーマタイルおよびクロマタイルを別々にプリフェッチする(たとえば、読み取る)(または、平面を交番させる前に少なくとも2本以上のラインをフェッチする)。両方の平面データ(たとえば、ルーマタイルデータおよびクロマタイルデータ)は、連続的メモリロケーション(たとえば、フレームバッファまたは共有メモリ104以外のメモリ)内に別々に記憶されるため、すべてのラインの後に平面同士の間で常に切り替えることは、DDRメモリ空間を必要とする一例では、DDRのより多い数のページを開かせる。本開示の技法を実装して、フェッチプロセスの間、すべてのラインの後に平面同士の間で切り替えないことによって、DDRメモリ(または、プリフェッチ処理ユニット100がメモリ要求を発行する先である任意の他のメモリ)の効率を改善することができる。他の方法で述べると、プリフェッチ処理ユニット100は、メモリ(たとえば、DDRメモリ)からルーマタイルデータおよびクロマタイルデータを読み取るとき、ルーマタイルおよびクロマタイルの各ラインの読取りを交番させなくてよい。このようにして、プリフェッチ処理ユニット100は、メモリ要求をメモリに通信するときに異なる平面(たとえば、ルーマおよびクロマ)同士の間で切り替えず、それによって、メモリからのデータ読取りの効率性を改善するが、これは、より少ない通信オーバヘッドが必要とされるためである(たとえば、交番様式では、ルーマラインおよびクロマラインを読み取るとき、各ラインは、別個のメモリ要求を要求するのに対して、非交番様式では、1個のメモリ要求は、タイルの2本以上のラインを含むメモリ空間のスパンを含み得る)。他の方法で述べると、プリフェッチ処理ユニット100は、交互様式でルーマタイルおよびクロマタイルから各ラインをプリフェッチしないことによって、読取り要求の数を低減させることができる。より少ない平面切替えはより少ないメモリ要求をもたらし、これはまた帯域幅を節約し(たとえば、帯域幅の消費を低減し)、メモリ作業負荷を節約する。
【００８８】
上記で特定したように、プリフェッチ処理ユニット100は、交番様式でルーマおよびクロマの2本以上のラインを一度にプリフェッチすることによって、メモリ要求の数を低減させることもできる。しかしながら、この例では、メモリ要求の低減は、平面交換のないメモリ低減例よりも少ない。
【００８９】
上記の例は、プリフェッチ処理ユニット100がインターリーブされた/交番様式でルーマラインおよびクロマラインをフェッチしないことに関するが、プリフェッチ処理ユニット100は他のそのようなタイルに関して同様の処理を実行し得ることを理解されたい。たとえば、3個のタイル(たとえば、ルーマ、クロマ、およびアルファ)からの3本のインターリーブされたラインを含むタイルは、第1のブロックの各ラインがプリフェッチされ、第2のブロックの各ラインがプリフェッチされ、第3のブロックの各ラインがプリフェッチされるように、同様にプリフェッチされ得る。いくつかの例では、第1、第2、および第3のブロックの各々の各ラインをプリフェッチすることは、プリフェッチ処理ユニット100によって並列に実行され得る。本明細書で説明するように、プリフェッチ処理ユニット100は、インターリーブされたタイルの構築をフェッチ処理ユニット110に残すことによって、メモリ要求を低減させることができる。
【００９０】
いくつかの例では、非整合タイルをプリフェッチするとき(たとえば、読み取るとき)または書き込むときに帯域幅が浪費される場合があるが、これは、オフチップメモリ(たとえば、ダブルデータレート(DDR)メモリ)または共有メモリ104以外のいずれかのメモリロケーションにアクセスするとき、そのようなタイルは最低アクセス長(MAL)要件に違反するためである。MAL要件の違反は、表示プロセッサ14に、MAL要件(たとえば、現在のDDRメモリ内で32バイト、64バイト、または128バイト)に準拠するために、ビットをパディングさせる(たとえば、ビットを浪費させ、したがって、帯域幅を浪費させる)可能性がある。他の例では、表示プロセッサは未使用ビットをパディングしなくてよいが、それでもなお、帯域幅の浪費をもたらし得る。たとえば、DDR-3では、最小DRAMバースト長は8であり得る。この例では、32ビットのLPDDR3データ幅を仮定すると、DRAMはアクセスごとに32×8=256ビット(または、32バイト)のデータをフェッチする。これは次に8個のDRAM半サイクル(すなわち、4サイクル)を使って、表示プロセッサとDRAMとの間でデータを転送する。他の方法で述べると、DRAMは最低4サイクル境界内でアクセスされる。要求が32バイト未満である場合、4サイクルをカバーするためにアイドルサイクルが導入される。したがって、たとえば、この例では、すべてのバーストが16バイト長である場合、利用可能なDRAM帯域幅の50%のみを利用することができる。本開示の技法を実装して、たとえば、ビットの何らかのパディングを除去もしくは削減し、または未使用メモリサイクルの量を除去もしくは削減することによって、この帯域幅の浪費を低減または除去することができる。たとえば、プリフェッチ処理ユニット100は、固定された64ピクセル増分で前景タイルデータの各ラインをプリフェッチすることができる。そのような例では、プリフェッチ処理ユニット100によるすべてのメモリ要求は、MALに準拠するようにいずれかのビットをパディングする必要なしに、64、128、196、または256の最小アクセス長(MAL)を有するように整合され得る。
【００９１】
別の例として、タイルサイズは、スケールアルゴリズムにより必要とされる、スケール比、水平重複、および/または水平重複に基づいて異なり得る。タイルデータの1本のラインは、(タイル幅+水平重複)×BPP(ビット毎ピクセル)に等しくてよく、この場合、BPPは入力フォーマットに左右される。この計算は、32バイトの倍数であり得ない。しかしながら、DDR最小アクセス長または粒度は、たとえば、32、64、128、および256であり得る。そのような例では、データの1本のラインがMALの倍数でないときはいつでも、帯域幅の浪費が生じ得る。表示プロセッサ14は、本開示の1つまたは複数の技法に従って、MAL整合方法で、メモリ(たとえば、いずれかのタイプのDDRメモリ)からデータをプリフェッチするように構成され得る。たとえば、表示プロセッサ14は、メモリに関するMALが32バイトである場合、32バイト増分でメモリからデータをプリフェッチするように構成され得る。別の例として、表示プロセッサ14は、メモリに関するMALが64バイトである場合、64バイト増分でメモリからデータをプリフェッチするように構成され得る。別の例として、表示プロセッサ14は、メモリに関するMALが128バイトである場合、128バイト増分でメモリからデータをプリフェッチするように構成され得る。プリフェッチされたデータのサイズ(たとえば、32バイト、64バイトなど)に応じて、本明細書で説明する1つまたは複数のピンポンバッファのサイズを調整することができる。
【００９２】
図7Aは、本開示の表示処理のための技法による1つの例示的なプロセスを示すフローチャートである。たとえば、図7Aは、図2に示した表示プロセッサ14の動作の一例である。図7Aのプロセスは、説明を目的として表示プロセッサ14によって実行されるものとして全般に説明されるが、様々な他のプロセッサも図7Aに示すプロセスを実行し得る。いくつかの例では、プリフェッチ処理ユニット100および/またはフェッチ処理ユニット110が図7Aに示す1つまたは複数のプロセスを実行し得る。
【００９３】
図7Aの例では、表示プロセッサ14は、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取ることができる(200)。いくつかの例では、表示プロセッサ14は、読み取られた第1の前景タイルデータを第2のメモリ空間内に記憶することができる(202)。表示プロセッサ14は、第1のメモリ空間から背景画像の第1の背景タイルデータを読み取ることができる(204)。表示プロセッサ14は、読み取られた第1の背景タイルデータを第3のメモリ空間内に記憶することができる(206)。表示プロセッサ14は、第2のメモリ空間から第1の前景タイルデータのデータのサブセットを読み取ることができる(208)。表示プロセッサ14は、第3のメモリ空間から第1の背景タイルデータのデータのサブセットを読み取ることができる(210)。表示プロセッサ14は、第1の前景タイルデータのデータのサブセットのピクセルを処理することができる。表示プロセッサ14は、第1の前景タイルデータのデータのサブセットの処理されたピクセルを第1の背景タイルデータのデータのサブセットのピクセルとブレンドして、ブレンドタイルデータを生成することができる。表示プロセッサ14は、ブレンドタイルデータを第4のメモリ空間内に記憶することができる。いくつかの例では、第1のメモリ空間はフレームバッファであってよく、第2のメモリ空間は前景ピンポンバッファであってよく、第3のメモリ空間は背景ピンポンバッファであってよく、かつ/または第4のメモリ空間はライトバックピンポンバッファであってよい。
【００９４】
図7Bは、本開示の表示処理のための技法による別の例示的なプロセスを示すフローチャートである。たとえば、図7Bは、図2に示した表示プロセッサ14の動作の一例である。図7Bのプロセスは、説明を目的として表示プロセッサ14によって実行されるものとして全般に説明されるが、様々な他のプロセッサも図7Bに示されるプロセスを実行し得る。いくつかの例では、プリフェッチ処理ユニット100および/またはフェッチ処理ユニット110が図7Bに示す1つまたは複数のプロセスを実行し得る。
【００９５】
図7Bの例では、表示プロセッサ14は、フレームバッファから前景画像の第1の前景タイルデータを読み取ることができる(220)。表示プロセッサ14は、読み取られた第1の前景タイルデータを前景ピンポンバッファ内に記憶することができる(222)。表示プロセッサ14は、フレームバッファから背景画像の第1の背景タイルデータを読み取ることができる(224)。表示プロセッサ14は、読み取られた第1の背景タイルデータを背景ピンポンバッファ内に記憶することができる(226)。表示プロセッサ14は、前景ピンポンバッファから第1の前景タイルデータのデータのサブセットを読み取ることができる(228)。表示プロセッサ14は、背景ピンポンバッファから第1の背景タイルデータのデータのサブセットを読み取ることができる(230)。
【００９６】
図8は、表示プロセッサ14のタイルベースの処理の一例、より詳細には、表示プロセッサ14が背景層画像データに対して前景層画像データを回転させるときの一例を示す概念図を示す。図8は、前景画像180と、背景画像182と、ブレンド画像184とを示す。前景画像180および背景画像182は、GPU12によって出力され、フレームバッファ(たとえば、出力バッファ16)内に記憶されている場合がある。この例では、前景画像180はタイル0〜15を含み、背景画像182はタイルa〜pを含む。ライトバック画像184は示すようにブレンドタイルを含む。図8に示す例は、表示プロセッサが、回転背景画像(または、そのタイル)とブレンドするために、前景画像(または、そのタイル)の回転をどのように実行し得るかを説明するために示される。
【００９７】
プリフェッチ処理ユニット100は、前景プリフェッチ186および背景プリフェッチ188を実行する。前景プリフェッチ186および背景プリフェッチ188は、並列に生じても、生じなくてもよい。前景プリフェッチ186は、この例では、タイル0〜7になる、プリフェッチされた前景タイルデータを表示プロセッサ14にアクセス可能な前景ピンポンバッファ内に記憶する。背景プリフェッチ188は、この例では、タイルcおよびdになる、プリフェッチされた背景タイルデータを表示プロセッサ14にアクセス可能な背景ピンポンバッファ内に記憶する。
【００９８】
フェッチ処理ユニット110は、前景フェッチ190および背景フェッチ192を実行する。前景フェッチ190および背景フェッチ192は、並列に生じても、生じなくてもよい。前景フェッチ190は、1つまたは複数のタイル(または、前景ピンポンバッファからの2個以上のタイル)を読み取ることができる。この例では、フェッチ処理ユニット110は、前景ピンポンバッファから前景データの2個のタイル(タイル0および4)を読み取る(たとえば、フェッチする)。背景フェッチ192は、1つまたは複数のタイル(または、背景ピンポンバッファからの2個以上のタイル)を読み取ることができる。この例では、フェッチ処理ユニット110は、背景ピンポンバッファから背景データの2個のタイル(タイルcおよびd)を読み取る(たとえば、フェッチする)。
【００９９】
ピクセル処理ユニット130は、回転された背景画像182に一致するように、この例では、垂直に位置するタイル0および4になる、フェッチされた前景タイルデータを(図8に回転194として示すように)回転させることができる。この例では、タイル0および4がフェッチされた背景タイルデータのように水平に位置するように、フェッチされた前景タイルデータは左回りに90度回転される。いくつかの例では、示される、フェッチされた前景データの回転は、フェッチ処理ユニット110が背景フェッチ192を実行している間に実行され得る。他の例では、示される、フェッチされた前景データの回転は、前景フェッチ190および背景フェッチ192が実行された後で実行され得る。
【０１００】
表示プロセッサ14のブレンド処理ユニット140は、回転された、フェッチされた前景タイルデータ(たとえば、タイル0および4)およびフェッチされた背景タイルデータ(たとえば、タイルcおよびd)を(図8にブレンド96として示すように)ブレンドして、ブレンドタイルデータ(たとえば、タイル4/cおよび0/d)を生成することができる。ブレンドタイルデータは、(図8でライトバック198として示すように)ライトバックピンポンバッファにライトバックされ得る。
【０１０１】
図8に示す例では、処理シーケンス全体が示されていない。いくつかの例では、処理シーケンスはこの項で説明するようなものであり得る。他の例では、処理シーケンスは、この項で説明する処理シーケンスとは異なり得る。プリフェッチ処理ユニット100は、次の順序、すなわち、0、4、1、5、2、6、3、7、8、12、9、13、10、14、11、15でタイル0〜15をプリフェッチするように構成され得る。いくつかの例では、第1にタイル0〜7をプリフェッチすることができ、第2にタイル8〜15をプリフェッチすることができる。他の例では、1つまたは複数のタイル0〜15をプリフェッチすることができる。タイル0〜15のいずれかのプリフェッチは、タイルa〜pのいずれかのプリフェッチと並列にプリフェッチされても、されなくてもよい。プリフェッチ処理ユニット100は、次の順序、すなわち、d、c、h、g、l、k、p、o、b、a、f、e、j、i、n、mでタイルa〜pをプリフェッチするように構成され得る。いくつかの例では、第1にタイルdおよびcをプリフェッチすることができ、第2にタイルhおよびgをプリフェッチすることができ、第3にタイルlおよびkをプリフェッチすることができ、第4にタイルpおよびoをプリフェッチすることができ、第5にタイルbおよびaをプリフェッチすることができ、第6にタイルfおよびeをプリフェッチすることができ、第7にタイルjおよびiをプリフェッチすることができ、第8にタイルnおよびmをプリフェッチすることができる。他の例では、1つまたは複数のタイルa〜pをプリフェッチすることができる。タイルa〜pのいずれかのプリフェッチは、タイル0〜15のいずれかのプリフェッチと並列にプリフェッチされても、されなくてもよい。いくつかの例では、表示プロセッサ14は、次の順序、すなわち、0/d、4/c、1/h、5/g、2/l、6/k、3/p、7/o、8/b、12/a、9/f、13/e、10/j、14/i、11/n、15/mに従って、ブランドタイルをメモリにライトバックするように構成され得る。いくつかの例では、表示プロセッサ14は、2個以上のタイルのグループ内で上記の順序に従って、ブレンドタイルをライトバックするように構成され得る。たとえば、表示プロセッサ14は、第1にタイル0/dおよび4/cをライトバックするように構成され得、次いで、表示プロセッサ14は、タイル1/hおよび5/gをライトバックするように構成され得る、等々である。いくつかの例では、表示プロセッサ14は、上記の処理順序に従って、メモリ要求のバースト長を増大させるように構成され得る。たとえば、表示プロセッサ14は、隣接する背景タイルを水平にプリフェッチすることによって、メモリ要求のバースト長を増大させるように構成され得る。
【０１０２】
本開示によれば、「または」という用語は、文脈が別段規定しない限り、「および/または」として解釈され得る。加えて、「1つまたは複数の」または「少なくとも1つの」などの語句が本明細書において開示されるいくつかの特徴に対して使用され、他の特徴に対しては使用されないことがあるが、そのような言葉が使用されなかった特徴は、文脈が別段示さない場合、そのような示唆される意味を有するものと解釈され得る。
【０１０３】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。たとえば、「処理ユニット」という用語が本開示を通して使用されているが、そのような処理ユニットは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得ることを理解されたい。本明細書で説明したいずれかの機能、処理ユニット、技法、または他のモジュールが、ソフトウェアで実装される場合、本明細書で説明した機能、処理ユニット、技法、または他のモジュールは、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶され得るか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、コンピュータデータ記憶媒体、またはコンピュータプログラムを1つの場所から別の場所に転送することを容易にする任意の媒体を含む通信媒体を含むことができる。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光学ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイスを含むことができる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標）(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu-ray(登録商標）ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。コンピュータプログラム製品がコンピュータ可読媒体を含み得る。
【０１０４】
コードは、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の均等な集積論理回路もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造のいずれかのもの、または本明細書で説明した技法を実施するのに適した任意の他の構造を指すことができる。さらに、いくつかの態様では、本明細書で説明した機能は、専用のハードウェア内で、かつ/または符号化および復号を行うように構成された、もしくは組み合わされたコーデックに組み込まれたソフトウェアモジュール内で提供することができる。さらに本技法は、1つまたは複数の回路または論理要素において完全に実施することもできる。
【０１０５】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またICのセット(たとえば、チップセット)を含む、様々なデバイスまたは装置において実装されてもよい。本開示では、開示する技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明するが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされることがあり、あるいは適切なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されることがある。
【０１０６】
本開示の様々な態様について説明した。これらの態様および他の態様は以下の特許請求の範囲内に入る。
【符号の説明】
【０１０７】
2  コンピューティングデバイス
3  トランシーバ
4  ユーザインターフェース
6  中央処理装置(CPU)
7  ビデオコーデック
8  ディスプレイデバイス、ディスプレイ
10  システムメモリ
11  デジタル信号プロセッサ(DSP)
12  GPU
14  表示プロセッサ
16  出力バッファ
17  出力バッファ
18  ソフトウェアアプリケーション
20  グラフィックスメモリ
22  GPUドライバ
24  コマンドプロセッサ
96  ブレンド
100  プリフェッチ処理ユニット
102  バスインターフェース
104  共有メモリ
110  フェッチ処理ユニット
112  BGデータ読取りパッカー
114  FGデータ読取りパッカー
130  ピクセル処理ユニット
140  ブレンド処理ユニット
116  BGタイルアドレス生成器
118  FGタイルアドレス生成器
120  フェッチシーケンスコントローラ
130  ピクセル処理ユニット
140  ブレンド処理ユニット
180  前景画像
182  背景画像
184  ブレンド画像
186  前景プリフェッチ
188  背景プリフェッチ
190  前景フェッチ
192  背景フェッチ
198  ライトバック
【図１】
2018534607.tif 000003
【図２】
2018534607.tif 000004
【図３Ａ】
2018534607.tif 000005
【図３Ｂ】
2018534607.tif 000006
【図３Ｃ】
2018534607.tif 000007
【図３Ｄ】
2018534607.tif 000008
【図４Ａ】
2018534607.tif 000009
【図４Ｂ】
2018534607.tif 000010
【図５Ａ】
2018534607.tif 000011
【図５Ｂ】
2018534607.tif 000012
【図６】
2018534607.tif 000013
【図７Ａ】
2018534607.tif 000014
【図７Ｂ】
2018534607.tif 000015
【図８】
2018534607.tif 000016
【手続補正書】
【提出日】平成30年3月23日(2018.3.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
表示プロセッサによるタイルベースの処理のための方法であって、
前記表示プロセッサのプリフェッチ処理ユニットによって、第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記読み取られた第1の前景タイルデータを前景ピンポンバッファの第1のバッファ内に記憶するステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記読み取られた第1の背景タイルデータを背景ピンポンバッファの第1のバッファ内に記憶するステップと、
前記表示プロセッサのフェッチ処理ユニットによって、前記表示プロセッサの前記プリフェッチ処理ユニットが第2の前景タイルデータを前記前景ピンポンバッファの第2のバッファ内に記憶する間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取るステップと、
前記表示プロセッサの前記フェッチ処理ユニットによって、前記表示プロセッサの前記プリフェッチ処理ユニットが第2の背景タイルデータを前記背景ピンポンバッファの第2のバッファ内に記憶する間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取るステップと
を含む、方法。
【請求項２】
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドすることによって、ブレンドタイルデータを生成するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記ブレンドタイルデータを第2のメモリ空間内に記憶するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、請求項4に記載の方法。
【請求項６】
前記第1の前景タイルデータが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも1個のタイルを含む、請求項1に記載の方法。
【請求項７】
前記第1の前景タイルデータが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも2個のタイルを含む、請求項1に記載の方法。
【請求項８】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも1個のタイルを含む、請求項1に記載の方法。
【請求項９】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも2個のタイルを含む、請求項1に記載の方法。
【請求項１０】
前記前景タイルデータを読み取る前記ステップおよび記憶する前記ステップが、前記背景タイルデータを読み取る前記ステップおよび記憶する前記ステップの前に生じる、請求項1に記載の方法。
【請求項１１】
前記前景タイルデータを読み取る前記ステップおよび記憶する前記ステップが、前記背景タイルデータを読み取る前記ステップおよび記憶する前記ステップと並列に生じる、請求項1に記載の方法。
【請求項１２】
前景タイルデータスケーリング情報または背景タイルデータ回転情報に基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つに関するサイズを決定するステップをさらに含む、請求項1に記載の方法。
【請求項１３】
前記サイズに基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つのためのメモリを割り振るステップをさらに含む、請求項12に記載の方法。
【請求項１４】
コンピューティングデバイスであって、
第1のメモリ空間と、
前景画像の前景タイルデータを記憶するための前景ピンポンバッファと、
背景画像の背景タイルデータを記憶するための背景ピンポンバッファと、
プリフェッチ処理ユニットおよびフェッチ処理ユニットを含む表示プロセッサと
を備え、
前記プリフェッチ処理ユニットが、前記第1のメモリ空間から前記前景画像の第1の前景タイルデータを読み取り、前記読み取られた第1の前景タイルデータを前記前景ピンポンバッファの第1のバッファ内に記憶し、前記第1のメモリ空間から前記背景画像の第1の背景タイルデータを読み取り、前記読み取られた第1の背景タイルデータを前記背景ピンポンバッファの第1のバッファ内に記憶するように構成され、
前記フェッチ処理ユニットが、前記プリフェッチ処理ユニットが第2の前景タイルデータを前記前景ピンポンバッファの第2のバッファ内に記憶する間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取り、前記プリフェッチ処理ユニットが第2の背景タイルデータを前記背景ピンポンバッファの第2のバッファ内に記憶する間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取るように構成される、
コンピューティングデバイス。
【請求項１５】
前記コンピューティングデバイスが、前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するように構成されたピクセル処理ユニットをさらに備える、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記コンピューティングデバイスが、前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成するように構成されたブレンド処理ユニットをさらに備える、請求項15に記載のコンピューティングデバイス。
【請求項１７】
前記表示プロセッサが、前記ブレンドタイルデータを第2のメモリ空間内に記憶するようにさらに構成される、請求項16に記載のコンピューティングデバイス。
【請求項１８】
前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、請求項17に記載のコンピューティングデバイス。
【請求項１９】
前記第1の前景タイルデータが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも1個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２０】
前記第1の前景タイルデータが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータが、前記背景画像の少なくとも2個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２１】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも1個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも1個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２２】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像の少なくとも2個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像の少なくとも2個のタイルを含む、請求項14に記載のコンピューティングデバイス。
【請求項２３】
前記プリフェッチ処理ユニットが、前記背景タイルデータを読み取り、記憶する前に、前記前景タイルデータを読み取り、記憶するように構成される、請求項14に記載のコンピューティングデバイス。
【請求項２４】
前記プリフェッチ処理ユニットが、前記背景タイルデータを読み取り、記憶するのと並行に前記前景タイルデータを読み取り、記憶するように構成される、請求項14に記載のコンピューティングデバイス。
【請求項２５】
前記プリフェッチ処理ユニットが、前景タイルデータスケーリング情報または背景タイルデータ回転情報に基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つに関するサイズを決定するように構成される、請求項14に記載のコンピューティングデバイス。
【請求項２６】
前記プリフェッチ処理ユニットが、前記サイズに基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つのためのメモリを割り振るように構成される、請求項25に記載のコンピューティングデバイス。
【請求項２７】
装置であって、
第1のメモリ空間から前景画像の第1の前景タイルデータを読み取るための手段と、
前記読み取られた第1の前景タイルデータを前景ピンポンバッファの第1のバッファ内に記憶するための手段と、
前記第1のメモリ空間から背景画像の第1の背景タイルデータを読み取るための手段と、
前記読み取られた第1の背景タイルデータを背景ピンポンバッファの第1のバッファ内に記憶するための手段と、
第2の前景タイルデータが前記前景ピンポンバッファの第2のバッファ内に記憶されている間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取るための手段と、
第2の背景タイルデータが前記背景ピンポンバッファの第2のバッファ内に記憶されている間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取るための手段と
を備える、装置。
【請求項２８】
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するための手段と、
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成するための手段と、
前記ブレンドタイルデータを第2のメモリ空間内に記憶するための手段であって、前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、記憶するための手段と
をさらに備える、請求項27に記載の装置。
【請求項２９】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、
第1のメモリ空間から前景画像の第1の前景タイルデータを読み取らせ、
前記読み取られた第1の前景タイルデータを前景ピンポンバッファの第1のバッファ内に記憶させ、
前記第1のメモリ空間から背景画像の第1の背景タイルデータを読み取らせ、
前記読み取られた第1の背景タイルデータを背景ピンポンバッファの第1のバッファ内に記憶させ、
第2の前景タイルデータが前記前景ピンポンバッファの第2のバッファ内に記憶されている間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取らせ、
第2の背景タイルデータが前記背景ピンポンバッファの第2のバッファ内に記憶されている間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取らせる
非一時的コンピュータ可読記憶媒体。
【請求項３０】
前記命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理することと、
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成することと、
前記ブレンドタイルデータを第2のメモリ空間内に記憶することであって、前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、記憶することと
を行わせる、請求項29に記載の非一時的コンピュータ可読記憶媒体。
【手続補正書】
【提出日】平成30年8月9日(2018.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
表示プロセッサによるタイルベースの処理のための方法であって、
前記表示プロセッサのプリフェッチ処理ユニットによって、第1のメモリ空間からマルチ層の視覚コンテンツの前景画像層の第1の前景タイルデータを読み取るステップであって、前記前景画像層がビデオ層を含む、ステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記読み取られた第1の前景タイルデータを、前記第1の前景タイルデータを縮小することなく前景ピンポンバッファの第1のバッファ内に記憶するステップであって、前記前景ピンポンバッファがリングバッファを含む、ステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記第1のメモリ空間から前記マルチ層の視覚コンテンツの背景画像層の第1の背景タイルデータを読み取るステップであって、前記背景画像層がグラフィックス層を含む、ステップと、
前記表示プロセッサの前記プリフェッチ処理ユニットによって、前記読み取られた第1の背景タイルデータを、前記第1の背景タイルデータを縮小することなく背景ピンポンバッファの第1のバッファ内に記憶するステップと、
前記表示プロセッサのフェッチ処理ユニットによって、前記表示プロセッサの前記プリフェッチ処理ユニットが前記第1のメモリ空間から読み取られた第2の前景タイルデータを前記前景ピンポンバッファの第2のバッファ内に記憶する間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取るステップと、
前記表示プロセッサの前記フェッチ処理ユニットによって、前記表示プロセッサの前記プリフェッチ処理ユニットが前記第1のメモリ空間から読み取られた第2の背景タイルデータを前記背景ピンポンバッファの第2のバッファ内に記憶する間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取るステップと、
前記表示プロセッサによって、前記前景画像層の前記第1の前景タイルデータおよび前記背景画像層の前記第1の背景タイルデータからのピクセルを処理するステップであって、前記前景画像層の前記第1の前景タイルデータおよび前記背景画像層の前記第1の背景タイルデータの少なくとも1つを縮小するステップを含む、ステップと
を含む、方法。
【請求項２】
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドすることによって、ブレンドタイルデータを生成するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記ブレンドタイルデータを第2のメモリ空間内に記憶するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、請求項4に記載の方法。
【請求項６】
前記第1の前景タイルデータが、前記前景画像層の少なくとも1個のタイルを含み、前記第1の背景タイルデータが、前記背景画像層の少なくとも1個のタイルを含む、請求項1に記載の方法。
【請求項７】
前記第1の前景タイルデータが、前記前景画像層の少なくとも2個のタイルを含み、前記第1の背景タイルデータが、前記背景画像層の少なくとも2個のタイルを含む、請求項1に記載の方法。
【請求項８】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像層の少なくとも1個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像層の少なくとも1個のタイルを含む、請求項1に記載の方法。
【請求項９】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像層の少なくとも2個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像層の少なくとも2個のタイルを含む、請求項1に記載の方法。
【請求項１０】
前景タイルデータを読み取る前記ステップおよび記憶する前記ステップが、背景タイルデータを読み取る前記ステップおよび記憶する前記ステップの前に生じる、請求項1に記載の方法。
【請求項１１】
前景タイルデータを読み取る前記ステップおよび記憶する前記ステップが、背景タイルデータを読み取る前記ステップおよび記憶する前記ステップと並列に生じる、請求項1に記載の方法。
【請求項１２】
前景タイルデータスケーリング情報または背景タイルデータ回転情報に基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つに関するサイズを決定するステップをさらに含む、請求項1に記載の方法。
【請求項１３】
前記サイズに基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つのためのメモリを割り振るステップをさらに含む、請求項12に記載の方法。
【請求項１４】
前記第1の前景タイルデータのクロマピクセルとルーマピクセルは、前記前景ピンポンバッファにおいて分離している、請求項1に記載の方法。
【請求項１５】
ライトバックピンポンバッファに前記ブレンドタイルデータを記憶するステップをさらに含む、請求項3に記載の方法。
【請求項１６】
コンピューティングデバイスであって、
第1のメモリ空間と、
マルチ層の視覚コンテンツの前景画像層の前景タイルデータを、前記前景タイルデータを縮小することなく記憶するためのリングバッファを含む前景ピンポンバッファであって、前記前景画像層がビデオ層を含む、前景ピンポンバッファと、
前記マルチ層の視覚コンテンツの背景画像層の背景タイルデータを、前記背景タイルデータを縮小することなく記憶するための背景ピンポンバッファであって、前記背景画像層がグラフィックス層を含む、背景ピンポンバッファと、
プリフェッチ処理ユニットおよびフェッチ処理ユニットを含む表示プロセッサと
を備え、
前記プリフェッチ処理ユニットが、前記第1のメモリ空間から前記前景画像層の第1の前景タイルデータを読み取り、前記読み取られた第1の前景タイルデータを前記前景ピンポンバッファの第1のバッファ内に記憶し、前記第1のメモリ空間から前記背景画像層の第1の背景タイルデータを読み取り、前記読み取られた第1の背景タイルデータを前記背景ピンポンバッファの第1のバッファ内に記憶するように構成され、
前記フェッチ処理ユニットが、前記プリフェッチ処理ユニットが前記第1のメモリ空間から読み取られた第2の前景タイルデータを前記前景ピンポンバッファの第2のバッファ内に記憶する間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取り、前記プリフェッチ処理ユニットが前記第1のメモリ空間から読み取られた第2の背景タイルデータを前記背景ピンポンバッファの第2のバッファ内に記憶する間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取るように構成され、
前記表示プロセッサが、前記前景画像層の前記第1の前景タイルデータおよび前記背景画像層の前記第1の背景タイルデータからのピクセルを処理するように構成され、ピクセルを処理することは、前記表示プロセッサが、前記前景画像層の前記第1の前景タイルデータおよび前記背景画像層の前記第1の背景タイルデータの少なくとも1つを縮小するように構成されることを含む、
コンピューティングデバイス。
【請求項１７】
前記コンピューティングデバイスが、前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理するように構成されたピクセル処理ユニットをさらに備える、請求項16に記載のコンピューティングデバイス。
【請求項１８】
前記コンピューティングデバイスが、前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成するように構成されたブレンド処理ユニットをさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項１９】
前記表示プロセッサが、前記ブレンドタイルデータを第2のメモリ空間内に記憶するようにさらに構成される、請求項18に記載のコンピューティングデバイス。
【請求項２０】
前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記第1の前景タイルデータが、前記前景画像層の少なくとも1個のタイルを含み、前記第1の背景タイルデータが、前記背景画像層の少なくとも1個のタイルを含む、請求項16に記載のコンピューティングデバイス。
【請求項２２】
前記第1の前景タイルデータが、前記前景画像層の少なくとも2個のタイルを含み、前記第1の背景タイルデータが、前記背景画像層の少なくとも2個のタイルを含む、請求項16に記載のコンピューティングデバイス。
【請求項２３】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像層の少なくとも1個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像層の少なくとも1個のタイルを含む、請求項16に記載のコンピューティングデバイス。
【請求項２４】
前記第1の前景タイルデータのデータの前記サブセットが、前記前景画像層の少なくとも2個のタイルを含み、前記第1の背景タイルデータのデータの前記サブセットが、前記背景画像層の少なくとも2個のタイルを含む、請求項16に記載のコンピューティングデバイス。
【請求項２５】
前記プリフェッチ処理ユニットが、前記背景タイルデータを読み取り、記憶する前に、前記前景タイルデータを読み取り、記憶するように構成される、請求項16に記載のコンピューティングデバイス。
【請求項２６】
前記プリフェッチ処理ユニットが、前記背景タイルデータを読み取り、記憶するのと並行に前記前景タイルデータを読み取り、記憶するように構成される、請求項16に記載のコンピューティングデバイス。
【請求項２７】
前記プリフェッチ処理ユニットが、前景タイルデータスケーリング情報または背景タイルデータ回転情報に基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つに関するサイズを決定するように構成される、請求項16に記載のコンピューティングデバイス。
【請求項２８】
前記プリフェッチ処理ユニットが、前記サイズに基づいて、前記前景ピンポンバッファまたは前記背景ピンポンバッファのうちの少なくとも1つのためのメモリを割り振るように構成される、請求項27に記載のコンピューティングデバイス。
【請求項２９】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、
第1のメモリ空間からマルチ層の視覚コンテンツの前景画像層の第1の前景タイルデータを読み取らせ、前記前景画像層がビデオ層を含み、
前記読み取られた第1の前景タイルデータを、前記第1の前景タイルデータを縮小することなく前景ピンポンバッファの第1のバッファ内に記憶させ、前記前景ピンポンバッファがリングバッファであり、
前記第1のメモリ空間から前記マルチ層の視覚コンテンツの背景画像層の第1の背景タイルデータを読み取らせ、前記背景画像層がグラフィックス層を含み、
前記読み取られた第1の背景タイルデータを、前記第1の背景タイルデータを縮小することなく背景ピンポンバッファの第1のバッファ内に記憶させ、
前記第1のメモリ空間から読み取られた第2の前景タイルデータが前記前景ピンポンバッファの第2のバッファ内に記憶されている間に、前記前景ピンポンバッファの前記第1のバッファから前記第1の前景タイルデータのデータのサブセットを読み取らせ、
前記第1のメモリ空間から読み取られた第2の背景タイルデータが前記背景ピンポンバッファの第2のバッファ内に記憶されている間に、前記背景ピンポンバッファの前記第1のバッファから前記第1の背景タイルデータのデータのサブセットを読み取らせ、
表示プロセッサにより前記前景画像層の前記第1の前景タイルデータおよび前記背景画像層の前記第1の背景タイルデータからのピクセルを処理させ、
前記1つまたは複数のプロセッサに処理させる命令が、前記1つまたは複数のプロセッサに、前記前景画像層の前記第1の前景タイルデータおよび前記背景画像層の前記第1の背景タイルデータの少なくとも1つを縮小させる命令を含む、
非一時的コンピュータ可読記憶媒体。
【請求項３０】
前記命令が、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサに、
前記第1の前景タイルデータのデータの前記サブセットのピクセルを処理することと、
前記第1の前景タイルデータのデータの前記サブセットの前記処理されたピクセルを前記第1の背景タイルデータのデータの前記サブセットのピクセルとブレンドして、ブレンドタイルデータを生成することと、
前記ブレンドタイルデータを第2のメモリ空間内に記憶することであって、前記第1のメモリ空間がフレームバッファであり、前記第2のメモリ空間がライトバックピンポンバッファである、記憶することと
を行わせる、請求項29に記載の非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2018534607.tif 000017
2018534607.tif 000018