説明

画像処理システムおよび画像処理方法

【課題】分散したディスプレイリストを呼び出す際におけるロードのペナルティを隠蔽し、画像処理の高速化を図る。
【解決手段】前段解析回路4gは、主ディスプレイリスト6を先読みして順次解析し、ジャンプ命令を抽出する。バス制御回路4jは、前段解析回路4gによって抽出されたジャンプ命令に対応する従ディスプレイリスト10をCGバスインターフェイス4eを介して取得する。後段解析回路4hは、主ディスプレイリスト6を順次解析し、この解析結果に基づいて、画像処理部に命令を順次出力する。ここで、後段解析回路4hは、主ディスプレイリスト6のジャンプ命令が記述されたジャンプ部分で、バス制御回路4jによって取得された従ディスプレイリスト10を主ディスプレイリスト6の一部とみなして解析する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、上位装置によって発行されたディスプレイリストに基づいて、画像処理を行う画像処理システムおよび画像処理方法に関する。
【背景技術】
【0002】
例えば、特許文献1には、上位装置であるCPU(Central Processing Unit)によって発行されたディスプレイリストに基づいて、転送元メモリに格納された素材(オブジェクト)を用いた描画処理を行う画像プロセッサが開示されている。この画像プロセッサは、それぞれ別個のバスを介して、CPUおよび転送元メモリに接続されている。この画像プロセッサにおいて、転送回路は、CPUによって発行された一連の転送命令に従って、転送元メモリに格納された圧縮形式または非圧縮形式の素材を読み出し、これを内部の転送先メモリに書き込む。描画回路は、転送先メモリから素材を読み出し、これを用いた描画処理を行うことによって、出力すべき表示画像を生成する。また、特許文献2には、上位のプロセッサ(ホストCPU)によって生成された一連の命令(コマンド)を一時的に格納するFIFOメモリを備えた画像プロセッサが開示されている。FIFOメモリに格納された命令は、このFIFOメモリに書き込まれた順序(入力順序)で時系列的に古いものから読み出され、これに応じた描画処理が順次実行される。
【0003】
【特許文献1】特許第3970291号公報
【特許文献2】特開2001−291098号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1のような画像処理システムでは、ディスプレイリストの転送時の帯域によって、単位フレームあたりに描画可能な図形の量が制限されてくる。この制限を緩和するためには、ディスプレイリスト中のサブルーチンに相当する部分(固定データ)を切り離し、その転送系をディスプレイリストの転送系とは別バス化すればよい。しかしながら、ディスプレイリストを複数のサブルーチンに完全に分割して別バス上に配置するのは困難である。なぜなら、描画内容はフレーム毎に刻々と変化するので、どのサブルーチンが読み出されるかを一意に決めてしまうと、描画内容の柔軟性が著しく制限されるからである。
【0005】
また、画像処理に必要な固定データを格納するメモリとして、通常のROMよりも安価なNANDメモリを使用したいという市場ニーズが高まっている。NANDメモリとは、不揮発性を持つ素子(メモリセル)が複数直列に接続された構造を有し、その代表例として、浮遊ゲートに対するキャリア(電子)の注入量をデータに応じて制御するNAND型フラッシュメモリが知られている。一般に、NANDメモリは、リードアクセス時における初期オーバーヘッド時間(ロード時間)がとても長く、初期オーバーヘッド時間後のバーストアクセスはそれなりに高速であるという特性を有する。このようなメモリに複数のサブルーチンを固定データとして格納し、これらを順次呼び出す場合、前のサブルーチンの終端アドレスと次のサブルーチンの先頭アドレスとが連続していない限り、サブルーチンを呼び出す毎にロード時間がかかってしまう。これにより、リード時におけるロードのペナルティが画像処理上のボトルネックとして顕在化する。
【0006】
そこで、本発明の目的は、分散したディスプレイリストを呼び出す際におけるロードのペナルティを隠蔽し、画像処理の高速化を図ることである。
【課題を解決するための手段】
【0007】
かかる課題を解決すべく、第1の発明は、上位装置と、メモリと、第1および第2のバスと、第1および第2の解析回路と、バス制御回路と、画像処理部とを有する画像処理システムを提供する。上位装置は、時系列的に記述された一連の命令によって画像処理の手順が規定され、この時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを発行する。メモリは、時系列的に記述された一連の命令によって画像処理の手順が規定され、主ディスプレイリストの外部情報となる従ディスプレイリストを格納する。第1のバスは、上位装置に接続されており、第1のバスと異なる第2のバスは、メモリに接続されている。第1の解析回路は、上位装置によって発行された主ディスプレイリストを先読みして順次解析し、ジャンプ命令を抽出する。バス制御回路は、第1の解析回路によって抽出されたジャンプ命令に対応する従ディスプレイリストをメモリより第2のバスを介して取得する。第2の解析回路は、第1の解析回路の後段に設けられ、主ディスプレイリストを順次解析し、この解析結果に基づいて、命令を順次出力する。画像処理部は、第2の解析回路から順次出力された命令に従って、画像処理を行う。ここで、第2の解析回路は、主ディスプレイリストのジャンプ命令が記述されたジャンプ部分で、バス制御回路によって取得された従ディスプレイリストを主ディスプレイリストの一部とみなして解析する。
【0008】
ここで、第1の発明において、ジャンプ命令は、取得すべき従ディスプレイリストの指定を含んでいてもよい。この場合、バス制御回路は、ジャンプ命令によって指定された従ディスプレイリストをメモリより取得することが好ましい。
【0009】
第1の発明において、ジャンプ命令は、取得すべき従ディスプレイリストのデータサイズを含んでいてもよい。ここで、第2の解析回路は、主ディスプレイリストを順次解析してジャンプ部分に到達した場合、主ディスプレイリストの解析を中断して、データの取得先をバス制御回路に切り替えることが好ましい。また、第2の解析回路は、バス制御回路から取得したデータ量がジャンプ命令によって指定されたデータサイズに到達した場合、バス制御回路からのデータ取得を終了して、ディスプレイリストにおけるジャンプ部分以降の解析を再開することが好ましい。
【0010】
第1の発明において、メモリは、複数のメモリセルが直列接続されたメモリであることが好ましい。
【0011】
第1の発明において、第1の解析回路によって抽出されたジャンプ命令を先入れ先出しのリスト構造で保持するキューバッファをさらに設けてもよい。この場合、バス制御回路は、キューバッファにおけるジャンプ命令の保持順序に従って、ジャンプ命令のそれぞれに対応する従ディスプレイリストを順次取得することが好ましい。
【0012】
第1の発明において、第2のバスに設けられたダブルバッファをさらに設けてもよい。この場合、バス制御回路は、あるジャンプ命令に対応する従ディスプレイリストに関する一方のバッファからのリードと、次のジャンプ命令に対応する従ディスプレイリストに関する他方のバッファへのロードとを並行して行うことが好ましい。
【0013】
第2の発明は、時系列的に記述された一連の命令によって画像処理の手順が規定され、この時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを、第1のバスを介して取得する第1のステップと、主ディスプレイリストを先読みして順次解析し、ジャンプ命令を抽出する第2のステップと、抽出されたジャンプ命令に対応し、時系列的に記述された一連の命令によって画像処理の手順が規定され、主ディスプレイリストの外部情報となる従ディスプレイリストを、第1のバスとは異なる第2のバスを介して取得する第3のステップと、主ディスプレイリストを順次解析するとともに、主ディスプレイリストにおけるジャンプ命令が記述されたジャンプ部分で、取得された従ディスプレイリストを主ディスプレイリストの一部とみなして解析し、この解析結果に基づいて、命令を順次出力する第4のステップと、順次出力された命令に従って、画像処理を行う第5のステップとを有する画像処理方法を提供する。
【0014】
ここで、第2の発明において、ジャンプ命令は、取得すべき従ディスプレイリストの指定を含んでいてもよい。この場合、第4のステップは、ジャンプ命令によって取得された従ディスプレイリストを読み込むステップを有することが好ましい。
【0015】
第2の発明において、ジャンプ命令は、取得すべき従ディスプレイリストのデータサイズを含んでいてもよい。この場合、第4のステップは、主ディスプレイリストを順次解析してジャンプ部分に到達した場合、主ディスプレイリストの解析を中断して、取得された従ディスプレイリストを読み込むステップと、読み込まれた従ディスプレイリストのデータ量がジャンプ命令によって指定されたデータサイズに到達した場合、従ディスプレイリストの読み込みを終了して、主ディスプレイリストにおけるジャンプ部分以降の解析を再開するステップとを有することが好ましい。
【0016】
第2の発明において、第3のステップは、抽出されたジャンプ命令を先入れ先出しのリスト構造で保持するステップとを有し、第4のステップは、保持されたジャンプ命令の保持順序に従って、ジャンプ命令のそれぞれに対応する従ディスプレイリストを順次取得するステップを有することが好ましい。
【0017】
第2の発明において、第3のステップは、あるジャンプ命令に対応する従ディスプレイリストのリードと、次のジャンプ命令に対応する従ディスプレイリストのロードとを並行して行うステップを有することが好ましい。
【発明の効果】
【0018】
第1または第2の発明によれば、主ディスプレイリストとは別個にリスト化された従ディスプレイリストを、主ディスプレイリストの転送系とは別個の第2のバスにて供給する。従ディスプレイリストは、主ディスプレイリストに記述されたジャンプ命令によって、主ディスプレイリストと紐付けられ、主ディスプレイリストの記述体系の一部として組み込まれる。また、ディスプレイリストの解析系は、主ディスプレイリストの前処理としてその記述内容を先読みして、ジャンプ命令に対応する従ディスプレイリストを取得しておく。そして、主ディスプレイリストのジャンプ命令が記述されたジャンプ部分で、前もって取得された従ディスプレイリストを主ディスプレイリストの一部とみなして解析する。このような従ディスプレイリストのプリフェッチにより、分散した従ディスプレイリストを呼び出す際のロードのペナルティが隠蔽され、画像処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【0019】
(第1の実施形態)
図1は、本実施形態に係る画像処理システムの全体的なブロック図である。この画像処理システムは、CPU1と、メインメモリ2と、NANDメモリ3と、画像プロセッサ4と、表示装置5と、ダブルバッファ11とを主体に構成されている。
【0020】
上位装置であるCPU1は、画像プロセッサ4に実行させるべき主ディスプレイリスト6を発行する。この主ディスプレイリスト6は、時系列的に記述された一連の命令によって画像処理の手順が規定されている。ただし、この主ディスプレイリスト6が従来の構成と異なる点は、それ単独で処理手順を完全に規定するのではなく、これ以外の外部情報と連携することによって、はじめて完全なものになる点である。このような連携を可能にすべく、主ディスプレイリスト6に記述可能な命令として、ジャンプ命令が新規に追加されている。主ディスプレイリスト6にジャンプ命令を記述することにより、このジャンプ命令が記述されたジャンプ部分で、外部情報が参照される。CPU1から出力された主ディスプレイリスト6は、CPUバス7を介して、メインメモリ2または画像プロセッサ4の内部メモリに出力される。なお、主ディスプレイリスト6は、例えば1フレーム毎といった如く、CPU1によって随時更新される。
【0021】
メインメモリ2は、CPUバス7に接続されており、CPU1の指定に応じて主ディスプレイリスト6を格納・保持する。一方、固定データを格納するNANDメモリ3は、従来のCGROMに代わりに用いられ、例えばNAND型フラッシュメモリを用いることができる。このNANDメモリ3は、CPUバス7とは異なるCGバス8に接続されている。NANDメモリ3に格納される固定データとしては、画像プロセッサ4が描画を行う際に用いられ画像データ(以下、素材(オブジェクト)と呼ばれる画像データ9(以下「素材9」という)や従ディスプレイリスト10が挙げられる。ここで、素材9は、圧縮形式または非圧縮形式で多数存在し、主ディスプレイリスト6の指定に応じてNANDメモリ3から読み出されたものがCGバス8を介して画像プロセッサ4内に取り込まれる。
【0022】
一方、従ディスプレイリスト10は、上述した主ディスプレイリスト6が参照する外部情報に相当し、時系列的に記述された一連の命令によって画像処理の手順を規定する。この従ディスプレイリスト10は、主ディスプレイリスト6と同一の記述形式で記述されている。主ディスプレイリスト6をメインルーチンとすると、従ディスプレイリスト10は、そのサブルーチンに該当する。本実施形態において、従ディスプレイリスト10は、可変データ(CPU1によって随時更新されるデータ)ではなく固定データ(CPU1によって随時更新されないデータ)として取り扱われる。また、従ディスプレイリスト10は、複数存在してもよく、主ディスプレイリスト6の指定に応じてNANDメモリ3から読み出されたものがCGバス8を介して画像プロセッサ4に取り込まれる。
【0023】
CGバス8上に存在するダブルバッファ11は、一対のバッファによって構成されている。ダブルバッファ11は、一方のバッファからのデータの読み出しと、他方のバッファへのデータの書き込みとを独立して行うことができる。ロード対象となるバッファと、リード対象となるバッファとは、交互に切り替わる。これにより、時系列的に連続する2つの従ディスプレイリスト10を取得する際、先の従ディスプレイリスト10に関するNANDメモリ3からダブルバッファ11へのデータ転送(ロード)と、後の従ディスプレイリスト10に関するダブルバッファ11から画像プロセッサ4へのデータ転送(リード)とを並行して実行することができる。
【0024】
画像プロセッサ4は、ディスプレイリスト解析部4aと、画像処理部4bと、RAM4cと、各種インターフェイス4d〜4fとを主体に構成されている。ディスプレイリスト解析部4aは、CPU1によって発行された主ディスプレイリスト6を取得するとともに、取得した主ディスプレイリスト6の記述内容を順次解析する。そして、この解析結果に基づいて、画像処理部4bに命令が順次出力される。その際、ディスプレイリスト解析部4aは、主ディスプレイリスト6におけるジャンプ命令が記述されたジャンプ部分で、従ディスプレイリスト10を取得し、取得した従ディスプレイリスト10を主ディスプレイリスト6の一部とみなして解析する。ここで、ディスプレイリスト解析部4aが主ディスプレイリスト6を取得する経路は2つ存在し、CPU1によるモード指定によって、いずれかの取得経路が選択される。ただし、モードの実行中は経路の切り替えが禁止されている。
【0025】
図2は、第1のモードにおけるディスプレイリスト取得経路を示す図である。主ディスプレイリスト6は、プログラムの内容に応じて、CPU1によってメインメモリ2に構築・格納される。ディスプレイリスト解析部4aは、図1に示したCPUバスインターフェイス4dの制御下で、メインメモリ2に格納された主ディスプレイリスト6をCPUバス7を介して取得するとともに、取得した主ディスプレイリスト6の記述内容を解析する。この解析結果に応じて、ディスプレイリスト解析部4aは、図1に示したCGバスインターフェイス4eの制御下で、NANDメモリ3に格納された従ディスプレイリスト10をCGバス8を介して取得する。これにより、主ディスプレイリスト6はメインメモリ2より取得され、従ディスプレイリスト10はメインメモリ2への格納を経ることなく、NANDメモリ3より直接取得されることになる。ここで留意すべきは、主従のディスプレイリスト6,10の取得経路が別バス化されている点である。このようなバスの帯域分散を図ることによって、画像プロセッサ4に対する全体的な命令量が増大しても、単位フレームあたりに描画可能な図形の量に制限が生じることを有効に抑制できる。
【0026】
図3は、第2のモードにおけるディスプレイリスト取得経路を示す図である。この場合、CPU1によって発行された主ディスプレイリスト6は、CPUバス7を介して画像プロセッサ4内に取り込まれ、図1に示したCPUバスインターフェイス4dおよびRAMインターフェイス4fを経て、内部のRAM4cに格納される。そして、ディスプレイリスト解析部4aは、RAM4cに格納された主ディスプレイリスト6を取得するとともに、取得した主ディスプレイリスト6の記述内容を解析する。この解析結果に応じて、ディスプレイリスト解析部4aは、図1に示したCGバスインターフェイス4eの制御下で、NANDメモリ3に格納された従ディスプレイリスト10をCGバス8を介して取得する。
【0027】
図4は、ディスプレイリスト解析部4aのブロック図である。ディスプレイリスト解析部4aは、前段解析回路4gと、後段解析回路4hと、キューバッファ4iと、バス制御回路4jとを有する。この構成の特徴点は、後段解析回路4hよりも先行して主ディスプレイリスト6を解析する前段解析回路4gを設け、前段解析回路4gによって、従ディスプレイリスト10のサブルーチンコールだけをロードキューとして抽出する点である。
【0028】
前段解析回路4gは、上述した図2または図3の経路のいずれかによって取得した主ディスプレイリスト6を時系列的な記述に即した処理順序(例えば、リストの上から下に向かって1ラインずつ)で先読みして順次解析しつつ、後段解析回路4hへ主ディスプレイリスト6をそのままスルー出力する。この解析によって、主ディスプレイリスト6に記述されたジャンプ命令が抽出され時系列的に記述された一連の命令によって画像処理の手順が規定され、抽出されたジャンプ命令がロードキューとしてキューバッファ4iに出力される。キューバッファ4iは、前段解析回路4gから出力されたジャンプ命令を先入れ先出しのリスト構造で保持する。ジャンプ命令の格納先としてキューバッファ4iを用いることで、ジャンプ命令の抽出順序を維持でき、これがキューバッファ4iからの出力順序として反映される。
【0029】
ジャンプ命令は、従ディスプレイリスト10の指定アドレス(NANDメモリ3の格納アドレス)およびそのデータサイズを含む。従ディスプレイリスト10の指定をジャンプ命令で行うことによって、従ディスプレイリスト10の選択に関する柔軟性を確保できる。また、データサイズは、指定アドレスを基準としたどこまでの範囲内のデータが従ディスプレイリスト10なのかを特定するために用いられる。
【0030】
バス制御回路4jは、前段解析回路4gによって抽出されたジャンプ命令に対応する従ディスプレイリスト10をNANDメモリ3よりCGバス8を介して取得する。従ディスプレイリスト10の取得順序は、キューバッファ4iにおけるジャンプ命令の保持順序であり、ジャンプ命令のそれぞれに対応する従ディスプレイリスト10が順次取得される。具体的には、前段解析回路4gから出力された指定アドレスからデータサイズ相当に至るまでの範囲内のデータ、すなわち、従ディスプレイリスト10がCGバスインターフェイス4eより取得され、後段解析回路4hに転送される。
【0031】
図5は、バス制御回路4jの状態遷移図である。バス制御回路4jの状態は、(1)待機状態、(2)ロードフロー、(3)リードフロー、(4)クリアフローといった順序の基本サイクルで遷移する。ただし、あるロードキューのリード時に、次のロードキューのロードを並行して行う場合には、(5)インタラプトロードフローに移行する。
【0032】
(1)待機状態
キューバッファ4iにロードキューがあれば、(2)のロードフローへ移行する。待機状態において、ロード終了の有無を示すネクストロード完了フラグは0とする。また、ダブルバッファ11のどちらを格納先とするかを指定するリードデータ選択フラグも0とする。このリードデータ選択フラグによって、ロード先となるバッファとリード元となるバッファとが排他的に制御される。
【0033】
(2)ロードフロー
CGバスインターフェイス4eに対して、リードデータ選択フラグと同じデータセレクト信号とともにロード要求を送る。このロード要求がCGバスインターフェイス4eによって受け付けられたら、(3)のリードフローへ移行する。
【0034】
(3)リードフロー
ネクストロード完了フラグは0の場合、キューバッファ4iにロードキューがあれば、(5)のインタラプトロードフローに移行する。CGバスインターフェイス4eに対して、リードデータ選択フラグと同じデータセレクト信号とともに、リード要求を送り、帰ってきたデータ(リードデータ)を後段解析回路4hに出力する。これによって、あるジャンプ命令に対応する従ディスプレイリスト10がダブルバッファ11の一方からリードしている過程において、次のジャンプ命令に対応する従ディスプレイリスト10のロードが並行して行われ、そのためのバッファとして、リードされていない方のバッファが用いられる。リード用バッファおよびロード用バッファは交互に反転する。
【0035】
(4)クリアフロー
ネクストロード完了フラグが0であれば、(1)の待機状態へ移行する。また、ネクストロード完了フラグが1であれば、リードデータ選択フラグをトグルして、ネクストロード完了フラグを0として、(3)のリードフローへ移行する。
【0036】
(5)インタラプトロードフロー
CGバスインターフェイス4eに対して、リードデータ選択フラグと反対のデータセレクト信号とともにロード要求を送る。このロード要求がCGバスインターフェイス4eによって受け付けられたら、ネクストロード完了フラグを1として、(3)のリードフローへ移行する。
【0037】
図4に示した後段解析回路4hは、前段解析回路4gよりスルー出力された主ディスプレイリスト6を時系列的な記述に即した処理順序で順次解析する。そして、処理対象となるラインに記述された命令が通常の命令(非ジャンプ命令)の場合、この命令が画像処理部4bに出力される。この通常命令には、NANDメモリ3に格納された素材9をRAM4cに転送する手順を規定する転送命令と、RAM4cに格納された素材9を用いた描画手順を規定する描画命令とが存在する。一方、処理対象となるラインに記述された命令がジャンプ命令の場合、リスト供給元を前段解析回路4gからバス制御回路4jに変更される。これによって、このジャンプ命令が記述されたジャンプ部分で、主ディスプレイリスト6の解析が一旦中断され、ジャンプ命令によって指定された従ディスプレイリスト10がバス制御回路4jより供給される。これを受けた後段解析回路4hは、従ディスプレイリスト10のデータサイズに到達するまで、バス制御回路4jからの従ディスプレイリスト10を主ディスプレイリスト6の一部とみなして解析を続け、その各ラインに記述された命令を画像処理部4bに順次出力する。そして、データサイズに到達した時点で、リスト供給元がバス制御回路4jから前段解析回路4gに変更される。これによって、データの中断していた主ディスプレイリスト6のジャンブ部分以降の解析が再開される。
【0038】
図1に示したように、画像処理部4bは、ディスプレイリスト解析部4aから順次出力された命令に応じた処理を行う。具体的には、ディスプレイリスト解析部4aからの命令が転送命令の場合、この転送命令によって指定された素材9がNANDメモリ3からRAM4cに転送される。また、描画命令の場合、この描画命令によって指定された素材9がRAMインターフェイス4fを介して読み出され、描画命令に応じた描画処理が行われた後、RAM4c内に構築されたフレームバッファに画像が書き込まれる。特に、描画命令が3D描画命令の場合、この描画命令に応じた三次元描画、例えば三角形ストリップによる多角形ポリゴンの生成等が行われた後、フレームバッファに画像が書き込まれる。フレームバッファに格納された表示画像は、RAMインターフェイス4fを介して表示装置5に出力され、これによって、表示装置5に画像が表示される。
【0039】
つぎに、ディスプレイリスト解析の一例を図6に示したフローチャートを参照しつつ具体的に説明する。ここでは、特に、主ディスプレイリスト6におけるジャンプ部分と、トライアングル描画部分を一例とした従ディスプレイリスト10について説明する。
【0040】
まず、前段解析回路4gによって、主ディスプレイリスト6が先読みで解析され、ステップ5のジャンプ命令(JUNPCGB)が抽出される。図7に示すジャンプ命令(JUMPCGB)は、CGバス8上に存在する従ディスプレイリスト10へのジャンプと、データサイズによる主ディスプレイリスト6への復帰とを指示する命令である。ここで、「CGBADR」は、CGバス8上の従ディスプレイリスト10の開始点を設定するパラメータであり、「CGBDTSZ」は、CGバス8上の従ディスプレイリスト10のデータサイズを設定するパラメータである。これによって、後段解析回路4hにおけるステップ5の実行に先立ち、ステップ6,7の手順を規定した従ディスプレイリスト10が予め取得される。それとともに、ステップ5のジャンプ命令(JUNPCGB)の抽出に続いて、ステップ11のジャンプ命令(JUNPCGB)が抽出される。これによって、後段解析回路4hにおけるステップ11の実行に先立ち、ステップ12〜14の手順を規定した従ディスプレイリスト10も予め取得される。これらの取得された従ディスプレイリスト10は、主ディスプレイリスト6の記述順序、換言すれば、ジャンプ命令の抽出順序で後段解析回路4hに出力される。
【0041】
このような前段解析回路4gによる先読みに続き、後段解析回路4hは、主ディスプレイリスト6の記述内容を解析する。これによって、ステップ1の描画領域設定(SETAREA)、ステップ2の光源設定(SETLIGHT)、ステップ3の座標変換設定(SETMATRIX)、ステップ4の描画エフェクト設定(SETEFFECT)が順次出力される。
【0042】
ステップ5において、図7に示すジャンプ命令(JUMPCGB)が記述されたジャンプ部分に到達した場合、バス制御回路4jによって取得済みの従ディスプレイリスト10が読み込まれる。そして、テクスチャ設定(SETTEXTURE)が出力された後(ステップ6)、図8に示すトライアングル描画(TRIANGLE3D)が出力される(ステップ7)。このトライアングル描画(TRIANGLE3D)は、三次元空間に三角形ポリゴンを描画する命令である。ここで、「CL」は背面カリングの有無、「TX」はテクスチャマッピングの有無、「FS」はポリゴン描画方法(三角形ポリゴン描画、三角形ファン描画、三角形リスト描画等)「TRINUM」は三角形の数nをそれぞれ設定するパラメータである。また、(TXn,TYn,TZn)は頂点の法線ベクトル、(NXn,NYn,NZn)は頂点の法線ベクトル、MTRXCE0n〜MTRXCE3nはマトリクスブレンディング係数、MTRXID0n〜MTRXID3Nはマトリクスブレンディングインデックス、(TUn,TVn)はテクスチャ座標、(TVC_An,TVC_Rn,TVC_Gn,TVC_Bn)は頂点カラーをそれぞれ設定するパラメータである。ここで、添字nが付されたパラメータは、三次元図形を規定する頂点情報に相当し、描画すべき三次元図形が複雑になるほど記述量も増大する。したがって、主ディスプレイリスト6と切り離して、従ディスプレイリスト10として管理することが有効である。
【0043】
そして、上述したデータサイズ相当のデータ量を取得し、その解析が終了した時点で主ディスプレイリスト6に復帰する。これによって、光源設定(SETLIGHT)、座標変換設定(SETMATRIX)、描画エフェクト設定(SETEFFECT)が順次出力される(ステップ8〜10)。
【0044】
ステップ11において、ジャンプ命令(JUMPCGB)が記述されたジャンプ部分に再び到達した場合、バス制御回路4jによって取得済みの従ディスプレイリスト10が読み込まれる。そして、テクスチャ設定(SETTEXTURE)が出力された後(ステップ12)、図9に示す頂点インデックス登録(SET3DVTXIDX)が出力される(ステップ13)。この頂点インデックス登録(SET3DVTXIDX)は、3Dトライアングルまたは3Dライン描画でインデックス頂点を用いる場合の頂点情報を登録する命令である。ここで、「VTXIDXST」は登録インデックス開始位置、「VTXIDXED」は登録インデックス終了位置をそれぞれ設定するパラメータであり、それ以外はトライアングル描画(TRIANGLE3D)のパラメータと同じである。この命令に関しても、トライアングル描画(TRIANGLE3D)と同様、描画すべき三次元図形が複雑になるほど記述量も増大するので、主ディスプレイリスト6と切り離して、従ディスプレイリスト10として管理することが有効である。
【0045】
そして、ステップ14において、図10に示す頂点インデックスによるトライアングル描画(TRIANGLE3D_idx)が出力される。このトライアングル描画(TRIANGLE3D_idx)は、3D空間に頂点インデックスを使用した三角形を描画する命令である。ここで、「VTXIDn」は頂点インデックス番号を整数で設定するパラメータであり、それ以外はトライアングル描画(TRIANGLE3D)のパラメータと同じである。この命令に関しても、描画すべき三次元図形が複雑になるほど記述量も増大するので、主ディスプレイリスト6と切り離して、従ディスプレイリスト10として管理することが有効である。そして、上述したデータサイズ相当のデータ量を取得し、その解析が終了した時点で主ディスプレイリスト6に復帰し、ジャンブ部分以降の解析が再開される。
【0046】
図11は、本実施形態に係るディスプレイリスト解析処理のタイミングチャートである。以下、主ディスプレイリスト6を「メインルーチン」と称し、2つの従ディスプレイリスト10をそれぞれ「サブルーチンSRa」,「サブルーチンSRb」と称する。前段解析回路4gによる先行解析によって、メインルーチン中にサブルーチンSRaが検出されると、キューバッファ4iにロードキューSRaが貯まる。その後、サブルーチンSRbが検出されると、キューバッファ4iにロードキューSRaに続いてロードキューSRbが貯まる。これに続いて、サブルーチンSRaのロード要求がCGバスインターフェイス4eに送られる。このロード要求が受け付けられたら、続いてサブルーチンSRbのロード要求がCGバスインターフェイス4eに送られる。そして、CGバスインターフェイス4eがサブルーチンSRaのロードを終えると、後段解析回路4hにサブルーチンSRaが送られる。後段解析回路4hがサブルーチンSRaを解析している間に、CGバスインターフェイス4eはサブルーチンSRbのロードを行う。これにより、後段解析回路4hによる解析時間と、それに続くサブルーチンSRa,SRbのロード時間が重なるため、NANDメモリ3の欠点であるロード時間が隠蔽される。これに対して、図12に示すように、メインルーチンの先行解析を行わない比較例の場合、サブルーチンSRa,SRbのロードオーバーヘッドおよびデータロードが、待機状態にそのまま直結してしまうので、上述したロード時間の短縮を図ることができない。
【0047】
このように、本実施形態によれば、主ディスプレイリスト6とは別個にリスト化された従ディスプレイリスト10を、主ディスプレイリスト6の転送系とは別個のCGバス8にて供給する。従ディスプレイリスト10は、主ディスプレイリスト6に記述されたジャンプ命令によって、主ディスプレイリスト6と紐付けられ、主ディスプレイリスト6の記述体系の一部として組み込まれる。また、前段解析回路4gは、主ディスプレイリスト6の前処理としてその記述内容を先読みして、ジャンプ命令に対応する従ディスプレイリスト10を先行して取得する。そして、後段解析回路4hは、主ディスプレイリスト6のジャンプ命令が記述されたジャンプ部分で、前もって取得された従ディスプレイリスト10を主ディスプレイリスト6の一部とみなして解析する。このような従ディスプレイリスト10のプリフェッチにより、分散した従ディスプレイリスト10を呼び出す際のロードのペナルティが隠蔽され、画像処理の高速化を図ることができる。
【0048】
また、本実施形態によれば、素材9および従ディスプレイリスト10をNANDメモリ3に共通して格納・保持することによって、従ディスプレイリスト10を格納するためのデバイスを別個に設ける必要がない。これにより、画像処理システムのコストを有効に低減することができる。
【0049】
さらに、本実施形態によれば、CGバス8に設けられたバッファをダブルバッファ化し、ロード対象となるバッファとリード対象となるバッファとを交互に切り替える。これにより、ある従ディスプレイリスト10のリードと、その次の従ディスプレイリスト10のロードとを並行して行うことができるので、複数の従ディスプレイリスト10を取得すべき状態が生じても、これらを高速に取得することができる。
【0050】
(第2の実施形態)
NAND型フラッシュメモリに代表されるNANDメモリ3は、シーケンシャルなアドレスに対する連続リードであっても、所定のアドレス(NAND境界アドレス)毎にロード時間がかかることが知られている。したがって、1つのサブルーチンのサイズがこのアドレスを跨ぐ場合も考慮する必要がある。図13は、この条件を考慮したバス制御回路4jの状態遷移図である。この場合、図5との最大の相違としては、(6)ユニットクリアフローを新規に追加した点にある。また、それに伴い、上記(1)〜(5)についても変更が生じる。以下、図5に示した状態遷移図との相違点を示す(これ以外は図5の場合と同様)。
【0051】
(1)待機状態
NAND境界アドレスはレジスタ値で選択可能とする。
【0052】
(2)ロードフロー
ロードアドレスに、ロードしようとしているサブルーチン先頭アドレスの後ろで、もっとも近いNAND境界アドレスを代入する。
【0053】
(3)リードフロー
ネクストロード完了フラグが0である場合、ロードアドレスが、サブルーチン終端アドレスを超えていない場合、ユニットロードフローへと移行する。それとともに、ロードアドレスが、サブルーチン終端アドレスを超えている場合で、CGBLQにロードキューがあれば、インタラプトロードフローへと移行する。また、 境界アドレスを越えてリードしようとした場合、ユニットクリアフローへと移行する。
【0054】
(4)クリアフロー
ネクストロード完了フラグが1であれば、リードデータ選択フラグをトグルして、ネクストロード完了フラグを0として、ロードアドレスにインタラプトロードアドレスを代入して、リードフローへと移行する。
【0055】
(5)インタラプトロードフロー
インタラプトロードアドレスに、ロードしようとしているサブルーチン先頭アドレスの後ろで、もっとも近いNAND境界アドレスを代入する。
【0056】
(6)ユニットクリアフロー
リードデータ選択フラグをトグルして、ネクストロード完了フラグを0として、リードフローへと移行する。
【0057】
なお、上述した各実施形態では、一般的なCGROMの代わりにNANDメモリ3を用いる例について説明した。NANDメモリ3は、不揮発性を有する複数の記憶素子(メモリセル)が直列接続された構造のメモリであり、その代表例として、浮遊ゲートに対するキャリア(電子)の注入量をデータに応じて制御するタイプや、強誘電体を用いたタイプ等が知られている。また、NANDメモリ3に代えて、これと類似した接続構造を有するANDメモリを用いてもよい。これらの直列接続型メモリはいずれも、初期のロードのペナルティが大きいという欠点があるが、本発明を適用すれば、このペナルティを有効に隠蔽することができる。また、このような直列接続型メモリへの適用は、本発明の最適な実施例の一つではあるものの、本発明はこれに限定されるものではなく、通常のCGROMを含めて各種のメモリに適用することも可能である。
【図面の簡単な説明】
【0058】
【図1】画像処理システムの全体的なブロック図
【図2】第1のモードにおけるディスプレイリスト取得経路を示す図
【図3】第2のモードにおけるディスプレイリスト取得経路を示す図
【図4】ディスプレイリスト解析部のブロック図
【図5】第1の実施形態に係るバス制御回路の状態遷移図
【図6】ディスプレイリスト解析の一例を示すフローチャート
【図7】主ディスプレイリストのジャンプ命令の記述例を示す図
【図8】従ディスプレイリストの記述例を示す図
【図9】従ディスプレイリストの記述例を示す図
【図10】従ディスプレイリストの記述例を示す図
【図11】本実施形態に係るディスプレイリスト解析処理のタイミングチャート
【図12】比較例におけるディスプレイリスト解析処理のタイミングチャート
【図13】第2の実施形態に係るバス制御回路の状態遷移図
【符号の説明】
【0059】
1 CPU
2 メインメモリ
3 NANDメモリ
4 画像プロセッサ
5 表示装置
6 主ディスプレイリスト
7 CPUバス
8 CGバス
9 素材(画像データ)
10 従ディスプレイリスト
11 ダブルバッファ
4a ディスプレイリスト解析部
4b 画像処理部
4c RAM
4d CPUバスインターフェイス
4e CGバスインターフェイス
4f RAMインターフェイス
4g 前段解析回路
4h 後段解析回路
4i キューバッファ
4j バス制御回路

【特許請求の範囲】
【請求項1】
画像処理システムにおいて、
時系列的に記述された一連の命令によって画像処理の手順が規定され、当該時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを発行する上位装置と、
時系列的に記述された一連の命令によって画像処理の手順が規定され、前記主ディスプレイリストの前記外部情報となる従ディスプレイリストを格納するメモリと、
前記上位装置に接続された第1のバスと、
前記メモリに接続され、前記第1のバスとは異なる第2のバスと、
前記上位装置によって発行された前記主ディスプレイリストを先読みして順次解析し、前記ジャンプ命令を抽出する第1の解析回路と、
前記第1の解析回路によって抽出された前記ジャンプ命令に対応する前記従ディスプレイリストを前記メモリより第2のバスを介して取得するバス制御回路と、
前記第1の解析回路の後段に設けられ、前記主ディスプレイリストを順次解析し、当該解析結果に基づいて、命令を順次出力する第2の解析回路と、
前記第2の解析回路から順次出力された命令に従って、画像処理を行う画像処理部とを有し、
前記第2の解析回路は、
前記主ディスプレイリストの前記ジャンプ命令が記述されたジャンプ部分で、前記バス制御回路によって取得された前記従ディスプレイリストを前記主ディスプレイリストの一部とみなして解析することを特徴とする画像処理システム。
【請求項2】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストの指定を含み、
前記バス制御回路は、
前記ジャンプ命令によって指定された前記従ディスプレイリストを前記メモリより取得することを特徴とする請求項1に記載された画像処理システム。
【請求項3】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストのデータサイズを含み、
前記第2の解析回路は、
前記主ディスプレイリストを順次解析して前記ジャンプ部分に到達した場合、前記主ディスプレイリストの解析を中断して、データの取得先を前記バス制御回路に切り替え、
前記バス制御回路から取得したデータ量が前記ジャンプ命令によって指定された前記データサイズに到達した場合、前記バス制御回路からのデータ取得を終了して、前記ディスプレイリストにおける前記ジャンプ部分以降の解析を再開することを特徴とする請求項1または2に記載された画像処理システム。
【請求項4】
前記メモリは、複数のメモリセルが直列接続されたメモリであることを特徴とする請求項1から3のいずれかに記載された画像処理システム。
【請求項5】
前記第1の解析回路によって抽出された前記ジャンプ命令を先入れ先出しのリスト構造で保持するキューバッファをさらに有し、
前記バス制御回路は、前記キューバッファにおける前記ジャンプ命令の保持順序に従って、前記ジャンプ命令のそれぞれに対応する前記従ディスプレイリストを順次取得することを特徴とする請求項1から4のいずれかに記載された画像処理システム。
【請求項6】
前記第2のバスに設けられたダブルバッファをさらに有し、
前記バス制御回路は、あるジャンプ命令に対応する前記従ディスプレイリストに関する一方のバッファからのリードと、次のジャンプ命令に対応する前記従ディスプレイリストに関する他方のバッファへのロードとを並行して行うことを特徴とする請求項5に記載された画像処理システム。
【請求項7】
画像処理方法において、
時系列的に記述された一連の命令によって画像処理の手順が規定され、当該時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを、第1のバスを介して取得する第1のステップと、
前記主ディスプレイリストを先読みして順次解析し、前記ジャンプ命令を抽出する第2のステップと、
前記抽出されたジャンプ命令に対応し、時系列的に記述された一連の命令によって画像処理の手順が規定され、前記主ディスプレイリストの前記外部情報となる従ディスプレイリストを、前記第1のバスとは異なる第2のバスを介して取得する第3のステップと、
前記主ディスプレイリストを順次解析するとともに、前記主ディスプレイリストにおける前記ジャンプ命令が記述されたジャンプ部分で、前記取得された従ディスプレイリストを前記主ディスプレイリストの一部とみなして解析し、当該解析結果に基づいて、命令を順次出力する第4のステップと、
前記順次出力された命令に従って、画像処理を行う第5のステップと
を有することを特徴とする画像処理方法。
【請求項8】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストの指定を含み、
前記第4のステップは、
前記ジャンプ命令によって取得された従ディスプレイリストを読み込むステップを有することを特徴とする請求項7に記載された画像処理方法。
【請求項9】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストのデータサイズを含み、
前記第4のステップは、
前記主ディスプレイリストを順次解析して前記ジャンプ部分に到達した場合、前記主ディスプレイリストの解析を中断して、前記取得された従ディスプレイリストを読み込むステップと、
前記読み込まれた従ディスプレイリストのデータ量が前記ジャンプ命令によって指定された前記データサイズに到達した場合、前記従ディスプレイリストの読み込みを終了して、前記主ディスプレイリストにおける前記ジャンプ部分以降の解析を再開するステップとを有することを特徴とする請求項7または8に記載された画像処理方法。
【請求項10】
前記第3のステップは、
前記抽出されたジャンプ命令を先入れ先出しのリスト構造で保持するステップとを有し、
前記第4のステップは、
前記保持されたジャンプ命令の保持順序に従って、前記ジャンプ命令のそれぞれに対応する前記従ディスプレイリストを順次取得するステップを有することを特徴とする請求項7から9のいずれかに記載された画像処理方法。
【請求項11】
前記第3のステップは、
あるジャンプ命令に対応する前記従ディスプレイリストのリードと、次のジャンプ命令に対応する前記従ディスプレイリストのロードとを並行して行うステップを有することを特徴とする請求項10に記載された画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2009−294992(P2009−294992A)
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願番号】特願2008−149152(P2008−149152)
【出願日】平成20年6月6日(2008.6.6)
【出願人】(398034168)株式会社アクセル (80)
【Fターム(参考)】