画像変形装置および命令付加装置
【課題】キャッシュミスのないアクセスを可能にする。
【解決手段】画像変形装置10は、画像を格納するフレームメモリ12と、フレームメモリ12に格納された画像に施す変形処理パラメータP1にプリフェッチ命令P2が付加されたプリフェッチ命令付変形処理パラメータP3を格納するパラメータメモリ13と、フレームメモリ12に格納された画像の画素データの一部を一時的に格納することで、フレームメモリ12からの画素データ読み込み効率を向上させるキャッシュメモリ14と、パラメータメモリ13に格納されたプリフェッチ命令P2に従ってフレームメモリ12からキャッシュメモリ14に画素データをロードするプリフェッチ制御部15と、パラメータメモリ13に格納された変形処理パラメータP1を使用してキャッシュメモリ14に格納された画像に変形処理を施す変形処理部16とを備える。
【解決手段】画像変形装置10は、画像を格納するフレームメモリ12と、フレームメモリ12に格納された画像に施す変形処理パラメータP1にプリフェッチ命令P2が付加されたプリフェッチ命令付変形処理パラメータP3を格納するパラメータメモリ13と、フレームメモリ12に格納された画像の画素データの一部を一時的に格納することで、フレームメモリ12からの画素データ読み込み効率を向上させるキャッシュメモリ14と、パラメータメモリ13に格納されたプリフェッチ命令P2に従ってフレームメモリ12からキャッシュメモリ14に画素データをロードするプリフェッチ制御部15と、パラメータメモリ13に格納された変形処理パラメータP1を使用してキャッシュメモリ14に格納された画像に変形処理を施す変形処理部16とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像変形装置および命令付加装置に関する。
【背景技術】
【0002】
従来、入力された画像を変形させて出力する画像処理装置が知られている。例えば、図12に示すように、魚眼レンズや超広角レンズを用いた撮像装置より入力される画像は歪んでいるため、この歪みを電子的に補正する画像変形装置10が提案されている(特許文献1参照)。また、プロジェクタやHUD(Head Up Display)のような投影装置を用いた場合は、投影装置の設置角度や投射対象となるスクリーン形状が原因で、入力画像をそのまま投影すると投影画像が歪むことがある。そこで、図13に示すように、入力画像をあらかじめ画像変形装置10で変形させておき、変形後の画像を投影装置に送ることで投影画像の歪みを解消する技術が提案されている(特許文献2参照)。
【0003】
画像変形装置10において画像を変形するには次の手順を踏む。まず、外部より入力されてきた画像1フレーム分を走査線順に画像メモリ(以下、フレームメモリ12)へ格納する。次に、これを出力する際に、走査線順ではなく変形を考慮した画素データ読み込み制御を行うことで変形を実現する。読み込み制御は、変形形状を表すパラメータ(以下、変形処理パラメータP1)に沿って行われる。歪みの形状が台形のように数式で表現できる場合は、変形処理パラメータP1を逐次計算して生成することができる。一方、歪みの形状を数式で表現するのが困難な場合は、あらかじめ求めておいた変形処理パラメータP1をパラメータメモリ13上のテーブルに格納しておき、これを参照する方法がとられている。これを実現する場合、図14のような構成をとる。
【0004】
前記“変形を考慮した画素データ読み込み制御”は、具体的には“入力画像の画素データ再配置”という操作にあたる。入力画像上の座標系(以下「入力座標系」)と、出力画像上の座標系(以下「出力座標系」)とを考え、入力画像と出力画像それぞれの画素を入力座標系と出力座標系それぞれの格子点に対応させる。そして、出力座標系の各格子点について入力座標系上で対応する位置を求め、その位置における画素値から出力画素を計算する。出力座標系上の格子点が入力座標系上の格子点と1対1で対応している場合は、入力画素がそのまま出力画素として出力される。しかし、変形形状によっては対応する位置の座標が整数値にならない、つまり出力座標系上の格子点が入力座標系上の格子点上にない場合がある。この場合は、指定された位置に最も近い入力座標系格子点で代表させる方法(ニアレストネイバー)や、周囲の画素値に対して補間演算(バイリニア, バイキュービック)を用いて出力画素値を得る。
【0005】
図15に画素データ再配置の例を示す。図15は、入力座標系と出力座標系の対応をデータ配列(変形処理パラメータP1)によって表すタイプの変形方法である。ここで、出力座標系上の点O[0,0]に着目し、この出力点に対応する入力座標系上の点を求める場合を考える。この場合、入力座標系と出力座標系の対応を記した変形処理パラメータP1を参照することで、出力座標系上の点O[0,0]に対応するのは入力座標系上の点I[0,0]であることがわかるため、この画素値を出力する。次に、出力座標系上の点O[2,1]に着目した場合、これに対応する入力座標系上の点はI[2,1.5]であるが、この位置は入力座標系上の格子点ではなく1対1で対応する画素は存在しない。この場合にとりうる方法としては、I[2,1]とI[2,2]の画素値に対して補間演算を適用しI[2,1.5]の画素値を合成する方法や(バイリニア)、 I[2,1]に代表させる方法(ニアレストネイバー)などがある。
【0006】
ところで、例に挙げた画像変形装置10においては、画面サイズに応じたフレームメモリ12が必要となる。レンズの歪み補正に限らず、台形や平行四辺形といった変形形状に対応するためには、フレームメモリ12の特定の箇所を高速に読み出す必要がある。特定の箇所を高速に読み出すアクセス、一般に「ランダムアクセス」と呼ばれるアクセスにはSRAM(Static Random Access Memory)が適している。しかし、フレームメモリ12を実現するための大容量のSRAMは非常に高価であり、これを画像変形装置10のフレームメモリ12に使うことはとても現実的とはいえない。逆に安価なDRAM(Dynamic Random Access Memory)を使用すると、変形形状によっては画素データの読み込みが変形処理に追いつかず、リアルタイム処理を実現できないといった問題がある。
【0007】
そこで、図16に示すように、DRAMで構成されたフレームメモリ12と変形処理部16との間にキャッシュメモリ14を設け、フレームメモリ12からの画素データ読み込み効率を改善する方法がとられる(非特許文献1参照)。キャッシュメモリ14は、読み込みデータの局所性を利用し、読み込み対象となったデータだけではなく、次サイクルや次々サイクルで読み込まれる可能性が高い周辺データをもあらかじめ読み込んでおく(以下、プリフェッチ)。次に、フレームメモリ12へのアクセスがあった時、フレームメモリ12にアクセスする代わりに、あらかじめキャッシュメモリ14に読み込んであるデータを参照する。こうすることでフレームメモリ12へのランダムアクセスが頻発するような状況を防ぐ。
【0008】
図17は、キャッシュメモリ14を用いた画像変形装置10の基本的な動作を示したフローチャートである。変形処理部16は、パラメータメモリ13から変形処理パラメータP1を読み込み、処理対象となる画素データをキャッシュメモリ14に対して要求する(S31→S32)。ここで、処理対象となる画素データがキャッシュメモリ14中にある場合はそのまま画素データを読み込む(S33→S35)。そうでない場合は、処理対象となる画素データと一緒に次サイクルや次々サイクルで読み込まれる可能性が高い周辺データをフレームメモリ12からキャッシュメモリ14へ読み込んでおく(S33→S34)。
【0009】
以下、図18をもとに詳しく説明する。図18は、画像変形装置10内におけるフレームメモリ12およびキャッシュメモリ14の概念図である。フレームメモリ12には2次元ブロック状で画素データが格納されており、キャッシングもこのブロック単位で行われるとする。今仮にフレームメモリ12中のデータ[0], データ[1], データ[2]…への読み込み要求が変形処理部16より順に発行された場合を考える。
【0010】
変形処理部16は、最初のデータ[0]を読み出すため、キャッシュメモリ14に読み込み要求を出す。しかし、キャッシュメモリ14中にはデータ[0]が存在しないので、キャッシュメモリ14はフレームメモリ12へ読み込み要求を出し、データ[0]を含むデータブロックA0をキャッシュメモリ14へ読み込んでくる。その後、変形処理部16は、キャッシュメモリ14よりデータ[0]を読み込む。次に、データ[1]の読み込み要求があった場合、このデータ[1]はキャッシュメモリ14中に存在するため、フレームメモリ12へのアクセスは発生しない。以降、データ[7]まではキャッシュメモリ14へのアクセスのみでデータ読み込みが完了する。データ[8]を読み込む際には、フレームメモリ12から再度データブロックB0を読み込む必要がある。まとめると、図17に示すフローチャートおよび図19に示すタイムチャートの通り、(1)キャッシュヒット、(2)キャッシュミス、(3)フレームメモリからデータ読み込み、というサイクルを繰り返す。
【0011】
図16の構成をとる場合、キャッシュミスが発生するたびにフレームメモリ12から1データブロックを読み込んでくるため、その間は処理が停止してしまう。これを改善するために、次に必要なデータブロックをあらかじめキャッシュメモリ14に読み込んでおくという方法が提案されている(特許文献3参照)。ここでは、次に必要となると予測される画素データを含むデータブロックをあらかじめ読み込んでおくことで、キャッシュミスを減らし、メモリアクセスのさらなる効率化を実現している。このためには、図20に示すように、過去のアクセスパターン傾向から次に必要となる画素データを予測するアクセス予測部18、および実際に必要な制御を行うプリフェッチ制御部15が必要となる。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開平4−61570号公報
【特許文献2】特開平8−98119号公報
【特許文献3】特開平11−167520号公報
【非特許文献】
【0013】
【非特許文献1】David A. Patterson, John L. Hennessy, “Computer Architecture, Third Edition : A Quantitative Approach”, Morgan Kaufmann
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかし、図20に示すようなアクセス予測部18を備えると、これによる装置のコストアップだけではなく、周辺回路の制御も複雑化し、設計負荷の増大につながる。また、アクセス予測部18が行うのはあくまで「予測」であり、的中率100%でキャッシュミスが発生しないような予測器を作るのは困難である。そして、キャッシュのヒット率によりアクセス速度が大きく変化するような構成では、リアルタイム性が必須である動画像処理などでパフォーマンスアップがしにくいという弊害がある。
【0015】
本発明は前記課題を解決するためになされたものであり、その目的は、装置の複雑化の原因となるアクセス予測部を搭載することなしに、これを搭載したときと同様以上の効果、すなわちキャッシュミスのないアクセスを可能にする画像変形装置および命令付加装置を提供することである。
【課題を解決するための手段】
【0016】
前記課題を解決するために、本発明の実施形態に係る画像変形装置は、画像を格納するフレームメモリと、前記フレームメモリに格納された画像に施す変形処理パラメータにプリフェッチ命令が付加されたプリフェッチ命令付変形処理パラメータを格納するパラメータメモリと、前記フレームメモリに格納された画像の画素データの一部を一時的に格納することで、前記フレームメモリからの画素データ読み込み効率を向上させるキャッシュメモリと、前記パラメータメモリに格納されたプリフェッチ命令に従って前記フレームメモリから前記キャッシュメモリに画素データをロードするプリフェッチ制御部と、前記パラメータメモリに格納された変形処理パラメータを使用して前記キャッシュメモリに格納された画像に変形処理を施す変形処理部とを備えることを特徴とする。
【0017】
前記プリフェッチ制御部は、所定の画素データの読み込み要求が出される前にその画素データが含まれるデータブロックのロードを完了させてもよい。
【0018】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと前記プリフェッチ命令とが独立したデータ列として処理順に並べられていてもよい。
【0019】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと同一のデータ列に前記プリフェッチ命令が埋め込まれる形で処理順に並べられていてもよい。
【0020】
前記プリフェッチ命令が埋め込まれている場合よりも埋め込まれていない場合の方が前記変形処理パラメータに割り当てるビット長が長くてもよい。
【0021】
前記プリフェッチ命令付変形処理パラメータには、前記プリフェッチ命令の一部分のみが前記変形処理パラメータと同一のデータ列に埋め込まれる形で処理順に並べられ、その詳細は前記パラメータメモリ上の別の領域に格納されていてもよい。
【0022】
前記課題を解決するために、本発明の実施形態に係る命令付加装置は、画像に施す変形処理に使用される変形処理パラメータを解析する解析部と、前記解析部の解析結果に基づいて前記変形処理パラメータにプリフェッチ命令を付加することでプリフェッチ命令付変形処理パラメータを生成する命令付加部とを備えることを特徴とする。
【発明の効果】
【0023】
本発明によれば、装置の複雑化の原因となるアクセス予測部を搭載することなしに、これを搭載したときと同様以上の効果、すなわちキャッシュミスのないメモリアクセスを可能にする画像変形装置および命令付加装置を提供することが可能である。
【図面の簡単な説明】
【0024】
【図1】実施形態1における画像変形装置の構成を示す図である。
【図2】実施形態1における命令付加装置の構成を示す図である。
【図3】実施形態1におけるプリフェッチ命令格納方法を示す図である。
【図4】実施形態1における画像変形装置の処理順序を示すフローチャートである。
【図5】実施形態1における動作時のタイムチャートである。
【図6】実施形態2におけるプリフェッチ命令格納方法を示す図である。
【図7】実施形態2における画像変形装置の処理順序を示すフローチャートである。
【図8】実施形態2における読み込み対象データブロックの指定方法を示す図である。
【図9】実施形態3におけるプリフェッチ命令格納方法を示す図である。
【図10】実施形態4におけるプリフェッチ命令格納方法を示す図である。
【図11】実施形態4における画像変形装置の処理順序を示すフローチャートである。
【図12】従来の一般的な画像変形装置の説明図である。
【図13】従来の一般的な画像変形装置の説明図である。
【図14】従来の一般的な画像変形装置の構成を示す図である。
【図15】従来の一般的な画像変形処理の原理を示す図である。
【図16】従来の別の画像変形装置の構成を示す図である。
【図17】従来の別の画像変形装置の処理順序を示すフローチャートである。
【図18】従来のフレームメモリおよびキャッシュメモリの概念を示す図である。
【図19】従来の画像変形装置の動作時のタイムチャートである。
【図20】従来の別の画像変形装置の構成を示す図である。
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態について図面を参照して詳細に説明する。ただし、この実施形態で記載されている構成は本発明の特徴をわかりやすく説明するための例であり、発明の範囲を限定するものではない。
【0026】
(実施形態1)
実施形態1における画像変形システムは、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。画像変形装置10は、画像を変形させる装置(LSI等)であって、図1に示すように、入力部11と、フレームメモリ12と、パラメータメモリ13と、キャッシュメモリ14と、プリフェッチ制御部15と、変形処理部16と、出力部17とを備えている。入力部11は、外部からの入力信号(画像)を受け取る。フレームメモリ12は、入力部11が受け取った画像を格納する。パラメータメモリ13は、フレームメモリ12に格納された画像に施す変形処理パラメータP1にプリフェッチ命令P2が付加されたプリフェッチ命令付変形処理パラメータP3を格納する。キャッシュメモリ14は、フレームメモリ12に格納された画像の画素データの一部を一時的に格納することで、フレームメモリ12からの画素データ読み込み効率を向上させる。プリフェッチ制御部15は、パラメータメモリ13に格納されたプリフェッチ命令P2に従ってフレームメモリ12からキャッシュメモリ14に画素データをロードする。変形処理部16は、パラメータメモリ13に格納された変形処理パラメータP1を使用してキャッシュメモリ14に格納された画像に変形処理を施す。出力部17は、変形処理部16により変形処理が施された画像を出力する。一方、命令付加装置20は、変形処理パラメータP1にプリフェッチ命令P2を付加する装置(PC等)であって、図2に示すように、解析部21と、命令付加部22とを備えている。解析部21は、画像に施す変形処理に使用される変形処理パラメータP1を解析する。命令付加部22は、解析部21の解析結果に基づいて変形処理パラメータP1にプリフェッチ命令P2を付加することでプリフェッチ命令付変形処理パラメータP3を生成する。このように生成されたプリフェッチ命令付変形処理パラメータP3は画像変形装置10に入力されるようになっている。
【0027】
図3は、実施形態1におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、与えられた変形処理パラメータP1を事前に解析し、図3に沿ったフォーマットで必要なプリフェッチ命令P2を付加する。すなわち、変形処理パラメータP1とプリフェッチ命令P2とが独立したデータ列として処理順に並べられている。
【0028】
このプリフェッチ命令付変形処理パラメータP3は、画像変形装置10内のパラメータメモリ13に格納され、図4のフローチャートに沿った手順で処理される。つまり、パラメータメモリ13から読み込んだ1要素のパラメータが変形処理パラメータP1である場合は変形処理を実行し(S1→S2→S3→S6→S7→S8)、プリフェッチ命令P2である場合はフレームメモリ12からキャッシュメモリ14へデータブロックを読み込む(S1→S2→S4→S5)。読み込み対象のデータブロックは、プリフェッチ命令P2に含まれるX座標フィールドおよびY座標フィールドで指定される。また、プリフェッチ命令P2であるかどうかは、ワードの先頭に付加されている付加ビットにより判断することができる。ここでは、付加ビットが“00”であれば変形処理パラメータP1、付加ビットが“01”であればプリフェッチ命令P2であると判断することとしている。
【0029】
この結果、図5のタイムチャートに示すように、キャッシュミスのない効率的なメモリアクセスを実現することができる。ここでは、1データブロックをフレームメモリ12からキャッシュメモリ14にロードするには4サイクル必要であると仮定し、変形処理部16がデータ[8]の読み込み要求を出す4サイクル前にデータブロックB0のロードを開始するようにしている。このようにすれば、変形処理部16がデータ[8]の読み込み要求を出す前に、このデータ[8]が含まれるデータブロックB0のロードを完了させることが可能である。
【0030】
以上のように、実施形態1における画像変形装置10では、変形処理パラメータP1にプリフェッチ命令P2を付加しておき、そのプリフェッチ命令P2に従ってキャッシュメモリ14を制御するようにしている。これにより、装置の複雑化の原因となるアクセス予測部を搭載することなしに、これを搭載したときと同様以上の効果、すなわちキャッシュミスのないアクセスが可能となる。このような画像変形装置10は、レンズ歪みの補正、プロジェクタの台形補正、ヘッドアップディスプレイなど、入力されてくる静止画および動画の形状を変形する装置に適用することができる。特に、変形の程度が大きくメモリ上に蓄えられた画像データに高速にアクセスする必要がある場合に有効である。
【0031】
(実施形態2)
実施形態2における画像変形システムは、実施形態1と同様、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。以下、実施形態2における画像変形システムの構成を実施形態1と異なる点を中心に説明する。
【0032】
図6は、実施形態2におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、与えられた変形処理パラメータP1を事前に解析し、図6に沿ったフォーマットで必要なプリフェッチ命令P2を付加する。ここでは、実施形態1と異なり、変形処理パラメータP1と同一のデータ列にプリフェッチ命令P2を埋め込む方式をとる。
【0033】
このプリフェッチ命令付変形処理パラメータP3は、画像変形装置10内のパラメータメモリ13に格納され、図7のフローチャートに沿った手順で処理される。つまり、パラメータメモリ13から読み込んだ1要素のパラメータにプリフェッチ命令P2が含まれている場合のみプリフェッチ処理を行い(S11→S12→S13)、その後、画像変形処理を行う(S14→S15→S16)。ここで、読み込み対象のデータブロックは、埋め込まれたプリフェッチ命令P2の下位3ビットにて相対指定される。すなわち、現在データ読み込み対象となっているデータブロックを基準に、図8に示される方向のデータブロックをプリフェッチする。例の場合、付加ビットの下位3ビットは“100”となっており、この場合は現在データ読み込み対象となっているデータブロックに対して、右隣のデータブロックb100を読み込む。この結果、図5のタイムチャートに示すように、キャッシュミスのない効率的なメモリアクセスを実現することができる。
【0034】
以上のように、実施形態2における画像変形装置10によれば、実施形態1と同様、キャッシュミスのないアクセスが可能となる。また、パラメータメモリ13に格納するプリフェッチ命令付変形処理パラメータP3のデータ量がプリフェッチ命令P2の数にかかわらず一定であるので、装置におけるパラメータメモリ13の量を必要量だけに限定することができる。
【0035】
(実施形態3)
実施形態3における画像変形システムは、実施形態1や2と同様、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。以下、実施形態3における画像変形システムの構成を実施形態1や2と異なる点を中心に説明する。
【0036】
図9は、実施形態3におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、実施形態2と同様、与えられた変形処理パラメータP1に必要なプリフェッチ命令P2を埋め込むが、その埋め込み方が実施形態2とは異なる。すなわち、実施形態3においては、プリフェッチ命令P2が埋め込まれている場合よりも埋め込まれていない場合の方が変形処理パラメータP1に割り当てるビット長が長い。具体的には、変形処理に使用されるX座標部とY座標部の少数部ビット長は、プリフェッチ命令P2が埋め込まれている場合は3ビット、プリフェッチ命令P2が埋め込まれていない場合は4ビットとしている。実施形態3におけるデータブロックの指定方法は実施形態2(図8)と同様であり、また、実施形態3における処理手順も実施形態2(図7)と同様である。この結果、図5のタイムチャートに示すように、キャッシュミスのない効率的なメモリアクセスを実現することができる。
【0037】
以上のように、実施形態3における画像変形装置10によれば、実施形態1や2と同様、キャッシュミスのないアクセスが可能となる。また、プリフェッチ命令P2が埋め込まれないであろう大多数の変形処理パラメータP1には、より高精度の変形座標パラメータを持たせることができるので、高精細な画像の変形において実施形態2より優れている。
【0038】
(実施形態4)
実施形態4における画像変形システムは、実施形態2や3と同様、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。以下、実施形態4における画像変形システムの構成を実施形態2や3と異なる点を中心に説明する。
【0039】
図10は、実施形態4におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、実施形態2や3と同様、与えられた変形処理パラメータP1に必要なプリフェッチ命令P2を埋め込むが、その埋め込み方が実施形態2や3とは異なる。すなわち、実施形態4においては、プリフェッチ命令P2の一部分のみが変形処理パラメータP1と同一のワードに埋め込まれ、その詳細はパラメータメモリ13上の別の領域に格納される。この形式は、パラメータメモリ13のワード長に余裕がなく、実施形態2や3のようにプリフェッチ命令P2のすべてを同一ワード内に埋め込むことのできない場合に有効である。
【0040】
図10に一例を示す。ここでは、プリフェッチ命令P2の有無を示すフラグのみが変形処理パラメータP1と同一のワードに格納されており、その詳細はパラメータメモリ13の別領域に処理順に格納されている。そこで、図11に示すように、変形処理部16は、変形処理パラメータP1を読み込んだ際、同一ワード上にプリフェッチ命令P2の存在を示すフラグが格納されているか否かを確認する(S21→S22)。そして、フラグが格納されていた場合は、プリフェッチ命令P2本体をパラメータメモリ13の別領域から読み込み、プリフェッチ制御部15によってプリフェッチを実行するようになっている(S23→S24)。
【0041】
以上のように、実施形態4における画像変形装置10によれば、実施形態1〜3と同様、キャッシュミスのないアクセスが可能となる。また、プリフェッチ命令P2の一部分のみが変形処理パラメータP1と同一のワードに埋め込まれ、その詳細はパラメータメモリ13上の別の領域に格納されるので、プリフェッチ命令P2のすべてを同一ワード内に埋め込むことのできない場合に有効である。
【0042】
なお、図10においては、変形処理パラメータP1とプリフェッチ命令P2を同一ワード長のメモリに格納しているが、本発明はこれに限られるものではない。すなわち、変形処理パラメータP1とプリフェッチ命令P2のそれぞれを別ワード長のメモリに格納したり、1ワード中に2つのプリフェッチ命令P2を格納したりしてもよい。これにより、プリフェッチ命令P2の余り部分を削減することができ、その結果、メモリの総容量も削減することが可能となる。
【0043】
また、実施形態1,2,3,4で示したプリフェッチ命令格納方法では、1ワード32ビット、付加ビット4ビットの場合を示したが、本発明はこれに限られるものではない。すなわち、1ワード48ビット、64ビットといった場合にも適用できる。また、付加ビットのビット数も4ビットに限られたものではなく、5ビット、6ビットといった指定も可能である。
【0044】
また、実施形態2,3で示したデータブロックの指定方法(図8)は、これに限られるものではない。例えば、付加ビットを5ビット、そのうちデータブロックの指定に4ビットを割り当てる構成も可能である。この場合、あるパターン(例えばb1000)を「現在データ読み込み対象となっているデータブロックに対して2つ右隣のデータブロックを読み込む」という隣接データブロック以外の指定に割り当ててもよい。あるいは、あるパターン(例えばb1000)を「現在データ読み込み対象となっているデータブロックに対して右隣と斜め右下の2つのデータブロックを順に読み込む」という複数データブロックの指定に割り当ててもよい。
【0045】
また、実施形態2,3で示したデータブロックの指定方法(図8)は相対指定に限られたものではない。すなわち、ビット長に余裕がある場合、付加ビット部分に実施形態1と同様の絶対値指定によるプリフェッチ命令を挿入することも可能である。
【0046】
また、画像データと変形処理パラメータは図面上別のメモリ上に格納されているとしているが、あくまで概念上のものであり、本発明はこれに限ったものではない。すなわち、同一メモリの別の区域に画像データと変形処理パラメータを格納する構成も可能であるし、ひとつのフレームメモリ12やパラメータメモリ13が複数の物理メモリを使用して構成されてもよい。
【0047】
また、図2に挙げている命令付加装置20について、その実装方式は問わない。すなわち、すべてソフトウェアで実装してもよいし、DSPやFPGAなどのハードウェアを利用した構成でもかまわない。
【符号の説明】
【0048】
10…画像変形装置
11…入力部
12…フレームメモリ
13…パラメータメモリ
14…キャッシュメモリ
15…プリフェッチ制御部
16…変形処理部
17…出力部
20…命令付加装置
21…解析部
22…命令付加部
P1…変形処理パラメータ
P2…プリフェッチ命令
P3…プリフェッチ命令付変形処理パラメータ
【技術分野】
【0001】
本発明は、画像変形装置および命令付加装置に関する。
【背景技術】
【0002】
従来、入力された画像を変形させて出力する画像処理装置が知られている。例えば、図12に示すように、魚眼レンズや超広角レンズを用いた撮像装置より入力される画像は歪んでいるため、この歪みを電子的に補正する画像変形装置10が提案されている(特許文献1参照)。また、プロジェクタやHUD(Head Up Display)のような投影装置を用いた場合は、投影装置の設置角度や投射対象となるスクリーン形状が原因で、入力画像をそのまま投影すると投影画像が歪むことがある。そこで、図13に示すように、入力画像をあらかじめ画像変形装置10で変形させておき、変形後の画像を投影装置に送ることで投影画像の歪みを解消する技術が提案されている(特許文献2参照)。
【0003】
画像変形装置10において画像を変形するには次の手順を踏む。まず、外部より入力されてきた画像1フレーム分を走査線順に画像メモリ(以下、フレームメモリ12)へ格納する。次に、これを出力する際に、走査線順ではなく変形を考慮した画素データ読み込み制御を行うことで変形を実現する。読み込み制御は、変形形状を表すパラメータ(以下、変形処理パラメータP1)に沿って行われる。歪みの形状が台形のように数式で表現できる場合は、変形処理パラメータP1を逐次計算して生成することができる。一方、歪みの形状を数式で表現するのが困難な場合は、あらかじめ求めておいた変形処理パラメータP1をパラメータメモリ13上のテーブルに格納しておき、これを参照する方法がとられている。これを実現する場合、図14のような構成をとる。
【0004】
前記“変形を考慮した画素データ読み込み制御”は、具体的には“入力画像の画素データ再配置”という操作にあたる。入力画像上の座標系(以下「入力座標系」)と、出力画像上の座標系(以下「出力座標系」)とを考え、入力画像と出力画像それぞれの画素を入力座標系と出力座標系それぞれの格子点に対応させる。そして、出力座標系の各格子点について入力座標系上で対応する位置を求め、その位置における画素値から出力画素を計算する。出力座標系上の格子点が入力座標系上の格子点と1対1で対応している場合は、入力画素がそのまま出力画素として出力される。しかし、変形形状によっては対応する位置の座標が整数値にならない、つまり出力座標系上の格子点が入力座標系上の格子点上にない場合がある。この場合は、指定された位置に最も近い入力座標系格子点で代表させる方法(ニアレストネイバー)や、周囲の画素値に対して補間演算(バイリニア, バイキュービック)を用いて出力画素値を得る。
【0005】
図15に画素データ再配置の例を示す。図15は、入力座標系と出力座標系の対応をデータ配列(変形処理パラメータP1)によって表すタイプの変形方法である。ここで、出力座標系上の点O[0,0]に着目し、この出力点に対応する入力座標系上の点を求める場合を考える。この場合、入力座標系と出力座標系の対応を記した変形処理パラメータP1を参照することで、出力座標系上の点O[0,0]に対応するのは入力座標系上の点I[0,0]であることがわかるため、この画素値を出力する。次に、出力座標系上の点O[2,1]に着目した場合、これに対応する入力座標系上の点はI[2,1.5]であるが、この位置は入力座標系上の格子点ではなく1対1で対応する画素は存在しない。この場合にとりうる方法としては、I[2,1]とI[2,2]の画素値に対して補間演算を適用しI[2,1.5]の画素値を合成する方法や(バイリニア)、 I[2,1]に代表させる方法(ニアレストネイバー)などがある。
【0006】
ところで、例に挙げた画像変形装置10においては、画面サイズに応じたフレームメモリ12が必要となる。レンズの歪み補正に限らず、台形や平行四辺形といった変形形状に対応するためには、フレームメモリ12の特定の箇所を高速に読み出す必要がある。特定の箇所を高速に読み出すアクセス、一般に「ランダムアクセス」と呼ばれるアクセスにはSRAM(Static Random Access Memory)が適している。しかし、フレームメモリ12を実現するための大容量のSRAMは非常に高価であり、これを画像変形装置10のフレームメモリ12に使うことはとても現実的とはいえない。逆に安価なDRAM(Dynamic Random Access Memory)を使用すると、変形形状によっては画素データの読み込みが変形処理に追いつかず、リアルタイム処理を実現できないといった問題がある。
【0007】
そこで、図16に示すように、DRAMで構成されたフレームメモリ12と変形処理部16との間にキャッシュメモリ14を設け、フレームメモリ12からの画素データ読み込み効率を改善する方法がとられる(非特許文献1参照)。キャッシュメモリ14は、読み込みデータの局所性を利用し、読み込み対象となったデータだけではなく、次サイクルや次々サイクルで読み込まれる可能性が高い周辺データをもあらかじめ読み込んでおく(以下、プリフェッチ)。次に、フレームメモリ12へのアクセスがあった時、フレームメモリ12にアクセスする代わりに、あらかじめキャッシュメモリ14に読み込んであるデータを参照する。こうすることでフレームメモリ12へのランダムアクセスが頻発するような状況を防ぐ。
【0008】
図17は、キャッシュメモリ14を用いた画像変形装置10の基本的な動作を示したフローチャートである。変形処理部16は、パラメータメモリ13から変形処理パラメータP1を読み込み、処理対象となる画素データをキャッシュメモリ14に対して要求する(S31→S32)。ここで、処理対象となる画素データがキャッシュメモリ14中にある場合はそのまま画素データを読み込む(S33→S35)。そうでない場合は、処理対象となる画素データと一緒に次サイクルや次々サイクルで読み込まれる可能性が高い周辺データをフレームメモリ12からキャッシュメモリ14へ読み込んでおく(S33→S34)。
【0009】
以下、図18をもとに詳しく説明する。図18は、画像変形装置10内におけるフレームメモリ12およびキャッシュメモリ14の概念図である。フレームメモリ12には2次元ブロック状で画素データが格納されており、キャッシングもこのブロック単位で行われるとする。今仮にフレームメモリ12中のデータ[0], データ[1], データ[2]…への読み込み要求が変形処理部16より順に発行された場合を考える。
【0010】
変形処理部16は、最初のデータ[0]を読み出すため、キャッシュメモリ14に読み込み要求を出す。しかし、キャッシュメモリ14中にはデータ[0]が存在しないので、キャッシュメモリ14はフレームメモリ12へ読み込み要求を出し、データ[0]を含むデータブロックA0をキャッシュメモリ14へ読み込んでくる。その後、変形処理部16は、キャッシュメモリ14よりデータ[0]を読み込む。次に、データ[1]の読み込み要求があった場合、このデータ[1]はキャッシュメモリ14中に存在するため、フレームメモリ12へのアクセスは発生しない。以降、データ[7]まではキャッシュメモリ14へのアクセスのみでデータ読み込みが完了する。データ[8]を読み込む際には、フレームメモリ12から再度データブロックB0を読み込む必要がある。まとめると、図17に示すフローチャートおよび図19に示すタイムチャートの通り、(1)キャッシュヒット、(2)キャッシュミス、(3)フレームメモリからデータ読み込み、というサイクルを繰り返す。
【0011】
図16の構成をとる場合、キャッシュミスが発生するたびにフレームメモリ12から1データブロックを読み込んでくるため、その間は処理が停止してしまう。これを改善するために、次に必要なデータブロックをあらかじめキャッシュメモリ14に読み込んでおくという方法が提案されている(特許文献3参照)。ここでは、次に必要となると予測される画素データを含むデータブロックをあらかじめ読み込んでおくことで、キャッシュミスを減らし、メモリアクセスのさらなる効率化を実現している。このためには、図20に示すように、過去のアクセスパターン傾向から次に必要となる画素データを予測するアクセス予測部18、および実際に必要な制御を行うプリフェッチ制御部15が必要となる。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開平4−61570号公報
【特許文献2】特開平8−98119号公報
【特許文献3】特開平11−167520号公報
【非特許文献】
【0013】
【非特許文献1】David A. Patterson, John L. Hennessy, “Computer Architecture, Third Edition : A Quantitative Approach”, Morgan Kaufmann
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかし、図20に示すようなアクセス予測部18を備えると、これによる装置のコストアップだけではなく、周辺回路の制御も複雑化し、設計負荷の増大につながる。また、アクセス予測部18が行うのはあくまで「予測」であり、的中率100%でキャッシュミスが発生しないような予測器を作るのは困難である。そして、キャッシュのヒット率によりアクセス速度が大きく変化するような構成では、リアルタイム性が必須である動画像処理などでパフォーマンスアップがしにくいという弊害がある。
【0015】
本発明は前記課題を解決するためになされたものであり、その目的は、装置の複雑化の原因となるアクセス予測部を搭載することなしに、これを搭載したときと同様以上の効果、すなわちキャッシュミスのないアクセスを可能にする画像変形装置および命令付加装置を提供することである。
【課題を解決するための手段】
【0016】
前記課題を解決するために、本発明の実施形態に係る画像変形装置は、画像を格納するフレームメモリと、前記フレームメモリに格納された画像に施す変形処理パラメータにプリフェッチ命令が付加されたプリフェッチ命令付変形処理パラメータを格納するパラメータメモリと、前記フレームメモリに格納された画像の画素データの一部を一時的に格納することで、前記フレームメモリからの画素データ読み込み効率を向上させるキャッシュメモリと、前記パラメータメモリに格納されたプリフェッチ命令に従って前記フレームメモリから前記キャッシュメモリに画素データをロードするプリフェッチ制御部と、前記パラメータメモリに格納された変形処理パラメータを使用して前記キャッシュメモリに格納された画像に変形処理を施す変形処理部とを備えることを特徴とする。
【0017】
前記プリフェッチ制御部は、所定の画素データの読み込み要求が出される前にその画素データが含まれるデータブロックのロードを完了させてもよい。
【0018】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと前記プリフェッチ命令とが独立したデータ列として処理順に並べられていてもよい。
【0019】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと同一のデータ列に前記プリフェッチ命令が埋め込まれる形で処理順に並べられていてもよい。
【0020】
前記プリフェッチ命令が埋め込まれている場合よりも埋め込まれていない場合の方が前記変形処理パラメータに割り当てるビット長が長くてもよい。
【0021】
前記プリフェッチ命令付変形処理パラメータには、前記プリフェッチ命令の一部分のみが前記変形処理パラメータと同一のデータ列に埋め込まれる形で処理順に並べられ、その詳細は前記パラメータメモリ上の別の領域に格納されていてもよい。
【0022】
前記課題を解決するために、本発明の実施形態に係る命令付加装置は、画像に施す変形処理に使用される変形処理パラメータを解析する解析部と、前記解析部の解析結果に基づいて前記変形処理パラメータにプリフェッチ命令を付加することでプリフェッチ命令付変形処理パラメータを生成する命令付加部とを備えることを特徴とする。
【発明の効果】
【0023】
本発明によれば、装置の複雑化の原因となるアクセス予測部を搭載することなしに、これを搭載したときと同様以上の効果、すなわちキャッシュミスのないメモリアクセスを可能にする画像変形装置および命令付加装置を提供することが可能である。
【図面の簡単な説明】
【0024】
【図1】実施形態1における画像変形装置の構成を示す図である。
【図2】実施形態1における命令付加装置の構成を示す図である。
【図3】実施形態1におけるプリフェッチ命令格納方法を示す図である。
【図4】実施形態1における画像変形装置の処理順序を示すフローチャートである。
【図5】実施形態1における動作時のタイムチャートである。
【図6】実施形態2におけるプリフェッチ命令格納方法を示す図である。
【図7】実施形態2における画像変形装置の処理順序を示すフローチャートである。
【図8】実施形態2における読み込み対象データブロックの指定方法を示す図である。
【図9】実施形態3におけるプリフェッチ命令格納方法を示す図である。
【図10】実施形態4におけるプリフェッチ命令格納方法を示す図である。
【図11】実施形態4における画像変形装置の処理順序を示すフローチャートである。
【図12】従来の一般的な画像変形装置の説明図である。
【図13】従来の一般的な画像変形装置の説明図である。
【図14】従来の一般的な画像変形装置の構成を示す図である。
【図15】従来の一般的な画像変形処理の原理を示す図である。
【図16】従来の別の画像変形装置の構成を示す図である。
【図17】従来の別の画像変形装置の処理順序を示すフローチャートである。
【図18】従来のフレームメモリおよびキャッシュメモリの概念を示す図である。
【図19】従来の画像変形装置の動作時のタイムチャートである。
【図20】従来の別の画像変形装置の構成を示す図である。
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態について図面を参照して詳細に説明する。ただし、この実施形態で記載されている構成は本発明の特徴をわかりやすく説明するための例であり、発明の範囲を限定するものではない。
【0026】
(実施形態1)
実施形態1における画像変形システムは、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。画像変形装置10は、画像を変形させる装置(LSI等)であって、図1に示すように、入力部11と、フレームメモリ12と、パラメータメモリ13と、キャッシュメモリ14と、プリフェッチ制御部15と、変形処理部16と、出力部17とを備えている。入力部11は、外部からの入力信号(画像)を受け取る。フレームメモリ12は、入力部11が受け取った画像を格納する。パラメータメモリ13は、フレームメモリ12に格納された画像に施す変形処理パラメータP1にプリフェッチ命令P2が付加されたプリフェッチ命令付変形処理パラメータP3を格納する。キャッシュメモリ14は、フレームメモリ12に格納された画像の画素データの一部を一時的に格納することで、フレームメモリ12からの画素データ読み込み効率を向上させる。プリフェッチ制御部15は、パラメータメモリ13に格納されたプリフェッチ命令P2に従ってフレームメモリ12からキャッシュメモリ14に画素データをロードする。変形処理部16は、パラメータメモリ13に格納された変形処理パラメータP1を使用してキャッシュメモリ14に格納された画像に変形処理を施す。出力部17は、変形処理部16により変形処理が施された画像を出力する。一方、命令付加装置20は、変形処理パラメータP1にプリフェッチ命令P2を付加する装置(PC等)であって、図2に示すように、解析部21と、命令付加部22とを備えている。解析部21は、画像に施す変形処理に使用される変形処理パラメータP1を解析する。命令付加部22は、解析部21の解析結果に基づいて変形処理パラメータP1にプリフェッチ命令P2を付加することでプリフェッチ命令付変形処理パラメータP3を生成する。このように生成されたプリフェッチ命令付変形処理パラメータP3は画像変形装置10に入力されるようになっている。
【0027】
図3は、実施形態1におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、与えられた変形処理パラメータP1を事前に解析し、図3に沿ったフォーマットで必要なプリフェッチ命令P2を付加する。すなわち、変形処理パラメータP1とプリフェッチ命令P2とが独立したデータ列として処理順に並べられている。
【0028】
このプリフェッチ命令付変形処理パラメータP3は、画像変形装置10内のパラメータメモリ13に格納され、図4のフローチャートに沿った手順で処理される。つまり、パラメータメモリ13から読み込んだ1要素のパラメータが変形処理パラメータP1である場合は変形処理を実行し(S1→S2→S3→S6→S7→S8)、プリフェッチ命令P2である場合はフレームメモリ12からキャッシュメモリ14へデータブロックを読み込む(S1→S2→S4→S5)。読み込み対象のデータブロックは、プリフェッチ命令P2に含まれるX座標フィールドおよびY座標フィールドで指定される。また、プリフェッチ命令P2であるかどうかは、ワードの先頭に付加されている付加ビットにより判断することができる。ここでは、付加ビットが“00”であれば変形処理パラメータP1、付加ビットが“01”であればプリフェッチ命令P2であると判断することとしている。
【0029】
この結果、図5のタイムチャートに示すように、キャッシュミスのない効率的なメモリアクセスを実現することができる。ここでは、1データブロックをフレームメモリ12からキャッシュメモリ14にロードするには4サイクル必要であると仮定し、変形処理部16がデータ[8]の読み込み要求を出す4サイクル前にデータブロックB0のロードを開始するようにしている。このようにすれば、変形処理部16がデータ[8]の読み込み要求を出す前に、このデータ[8]が含まれるデータブロックB0のロードを完了させることが可能である。
【0030】
以上のように、実施形態1における画像変形装置10では、変形処理パラメータP1にプリフェッチ命令P2を付加しておき、そのプリフェッチ命令P2に従ってキャッシュメモリ14を制御するようにしている。これにより、装置の複雑化の原因となるアクセス予測部を搭載することなしに、これを搭載したときと同様以上の効果、すなわちキャッシュミスのないアクセスが可能となる。このような画像変形装置10は、レンズ歪みの補正、プロジェクタの台形補正、ヘッドアップディスプレイなど、入力されてくる静止画および動画の形状を変形する装置に適用することができる。特に、変形の程度が大きくメモリ上に蓄えられた画像データに高速にアクセスする必要がある場合に有効である。
【0031】
(実施形態2)
実施形態2における画像変形システムは、実施形態1と同様、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。以下、実施形態2における画像変形システムの構成を実施形態1と異なる点を中心に説明する。
【0032】
図6は、実施形態2におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、与えられた変形処理パラメータP1を事前に解析し、図6に沿ったフォーマットで必要なプリフェッチ命令P2を付加する。ここでは、実施形態1と異なり、変形処理パラメータP1と同一のデータ列にプリフェッチ命令P2を埋め込む方式をとる。
【0033】
このプリフェッチ命令付変形処理パラメータP3は、画像変形装置10内のパラメータメモリ13に格納され、図7のフローチャートに沿った手順で処理される。つまり、パラメータメモリ13から読み込んだ1要素のパラメータにプリフェッチ命令P2が含まれている場合のみプリフェッチ処理を行い(S11→S12→S13)、その後、画像変形処理を行う(S14→S15→S16)。ここで、読み込み対象のデータブロックは、埋め込まれたプリフェッチ命令P2の下位3ビットにて相対指定される。すなわち、現在データ読み込み対象となっているデータブロックを基準に、図8に示される方向のデータブロックをプリフェッチする。例の場合、付加ビットの下位3ビットは“100”となっており、この場合は現在データ読み込み対象となっているデータブロックに対して、右隣のデータブロックb100を読み込む。この結果、図5のタイムチャートに示すように、キャッシュミスのない効率的なメモリアクセスを実現することができる。
【0034】
以上のように、実施形態2における画像変形装置10によれば、実施形態1と同様、キャッシュミスのないアクセスが可能となる。また、パラメータメモリ13に格納するプリフェッチ命令付変形処理パラメータP3のデータ量がプリフェッチ命令P2の数にかかわらず一定であるので、装置におけるパラメータメモリ13の量を必要量だけに限定することができる。
【0035】
(実施形態3)
実施形態3における画像変形システムは、実施形態1や2と同様、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。以下、実施形態3における画像変形システムの構成を実施形態1や2と異なる点を中心に説明する。
【0036】
図9は、実施形態3におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、実施形態2と同様、与えられた変形処理パラメータP1に必要なプリフェッチ命令P2を埋め込むが、その埋め込み方が実施形態2とは異なる。すなわち、実施形態3においては、プリフェッチ命令P2が埋め込まれている場合よりも埋め込まれていない場合の方が変形処理パラメータP1に割り当てるビット長が長い。具体的には、変形処理に使用されるX座標部とY座標部の少数部ビット長は、プリフェッチ命令P2が埋め込まれている場合は3ビット、プリフェッチ命令P2が埋め込まれていない場合は4ビットとしている。実施形態3におけるデータブロックの指定方法は実施形態2(図8)と同様であり、また、実施形態3における処理手順も実施形態2(図7)と同様である。この結果、図5のタイムチャートに示すように、キャッシュミスのない効率的なメモリアクセスを実現することができる。
【0037】
以上のように、実施形態3における画像変形装置10によれば、実施形態1や2と同様、キャッシュミスのないアクセスが可能となる。また、プリフェッチ命令P2が埋め込まれないであろう大多数の変形処理パラメータP1には、より高精度の変形座標パラメータを持たせることができるので、高精細な画像の変形において実施形態2より優れている。
【0038】
(実施形態4)
実施形態4における画像変形システムは、実施形態2や3と同様、図1に示す画像変形装置10と、図2に示す命令付加装置20とを備えている。以下、実施形態4における画像変形システムの構成を実施形態2や3と異なる点を中心に説明する。
【0039】
図10は、実施形態4におけるプリフェッチ命令格納方法を示す図である。命令付加装置20は、実施形態2や3と同様、与えられた変形処理パラメータP1に必要なプリフェッチ命令P2を埋め込むが、その埋め込み方が実施形態2や3とは異なる。すなわち、実施形態4においては、プリフェッチ命令P2の一部分のみが変形処理パラメータP1と同一のワードに埋め込まれ、その詳細はパラメータメモリ13上の別の領域に格納される。この形式は、パラメータメモリ13のワード長に余裕がなく、実施形態2や3のようにプリフェッチ命令P2のすべてを同一ワード内に埋め込むことのできない場合に有効である。
【0040】
図10に一例を示す。ここでは、プリフェッチ命令P2の有無を示すフラグのみが変形処理パラメータP1と同一のワードに格納されており、その詳細はパラメータメモリ13の別領域に処理順に格納されている。そこで、図11に示すように、変形処理部16は、変形処理パラメータP1を読み込んだ際、同一ワード上にプリフェッチ命令P2の存在を示すフラグが格納されているか否かを確認する(S21→S22)。そして、フラグが格納されていた場合は、プリフェッチ命令P2本体をパラメータメモリ13の別領域から読み込み、プリフェッチ制御部15によってプリフェッチを実行するようになっている(S23→S24)。
【0041】
以上のように、実施形態4における画像変形装置10によれば、実施形態1〜3と同様、キャッシュミスのないアクセスが可能となる。また、プリフェッチ命令P2の一部分のみが変形処理パラメータP1と同一のワードに埋め込まれ、その詳細はパラメータメモリ13上の別の領域に格納されるので、プリフェッチ命令P2のすべてを同一ワード内に埋め込むことのできない場合に有効である。
【0042】
なお、図10においては、変形処理パラメータP1とプリフェッチ命令P2を同一ワード長のメモリに格納しているが、本発明はこれに限られるものではない。すなわち、変形処理パラメータP1とプリフェッチ命令P2のそれぞれを別ワード長のメモリに格納したり、1ワード中に2つのプリフェッチ命令P2を格納したりしてもよい。これにより、プリフェッチ命令P2の余り部分を削減することができ、その結果、メモリの総容量も削減することが可能となる。
【0043】
また、実施形態1,2,3,4で示したプリフェッチ命令格納方法では、1ワード32ビット、付加ビット4ビットの場合を示したが、本発明はこれに限られるものではない。すなわち、1ワード48ビット、64ビットといった場合にも適用できる。また、付加ビットのビット数も4ビットに限られたものではなく、5ビット、6ビットといった指定も可能である。
【0044】
また、実施形態2,3で示したデータブロックの指定方法(図8)は、これに限られるものではない。例えば、付加ビットを5ビット、そのうちデータブロックの指定に4ビットを割り当てる構成も可能である。この場合、あるパターン(例えばb1000)を「現在データ読み込み対象となっているデータブロックに対して2つ右隣のデータブロックを読み込む」という隣接データブロック以外の指定に割り当ててもよい。あるいは、あるパターン(例えばb1000)を「現在データ読み込み対象となっているデータブロックに対して右隣と斜め右下の2つのデータブロックを順に読み込む」という複数データブロックの指定に割り当ててもよい。
【0045】
また、実施形態2,3で示したデータブロックの指定方法(図8)は相対指定に限られたものではない。すなわち、ビット長に余裕がある場合、付加ビット部分に実施形態1と同様の絶対値指定によるプリフェッチ命令を挿入することも可能である。
【0046】
また、画像データと変形処理パラメータは図面上別のメモリ上に格納されているとしているが、あくまで概念上のものであり、本発明はこれに限ったものではない。すなわち、同一メモリの別の区域に画像データと変形処理パラメータを格納する構成も可能であるし、ひとつのフレームメモリ12やパラメータメモリ13が複数の物理メモリを使用して構成されてもよい。
【0047】
また、図2に挙げている命令付加装置20について、その実装方式は問わない。すなわち、すべてソフトウェアで実装してもよいし、DSPやFPGAなどのハードウェアを利用した構成でもかまわない。
【符号の説明】
【0048】
10…画像変形装置
11…入力部
12…フレームメモリ
13…パラメータメモリ
14…キャッシュメモリ
15…プリフェッチ制御部
16…変形処理部
17…出力部
20…命令付加装置
21…解析部
22…命令付加部
P1…変形処理パラメータ
P2…プリフェッチ命令
P3…プリフェッチ命令付変形処理パラメータ
【特許請求の範囲】
【請求項1】
画像を格納するフレームメモリと、
前記フレームメモリに格納された画像に施す変形処理パラメータにプリフェッチ命令が付加されたプリフェッチ命令付変形処理パラメータを格納するパラメータメモリと、
前記フレームメモリに格納された画像の画素データの一部を一時的に格納することで、前記フレームメモリからの画素データ読み込み効率を向上させるキャッシュメモリと、
前記パラメータメモリに格納されたプリフェッチ命令に従って前記フレームメモリから前記キャッシュメモリに画素データをロードするプリフェッチ制御部と、
前記パラメータメモリに格納された変形処理パラメータを使用して前記キャッシュメモリに格納された画像に変形処理を施す変形処理部と、
を備えることを特徴とする画像変形装置。
【請求項2】
前記プリフェッチ制御部は、所定の画素データの読み込み要求が出される前にその画素データが含まれるデータブロックのロードを完了させることを特徴とする請求項1記載の画像変形装置。
【請求項3】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと前記プリフェッチ命令とが独立したデータ列として処理順に並べられていることを特徴とする請求項2記載の画像変形装置。
【請求項4】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと同一のデータ列に前記プリフェッチ命令が埋め込まれる形で処理順に並べられていることを特徴とする請求項2記載の画像変形装置。
【請求項5】
前記プリフェッチ命令が埋め込まれている場合よりも埋め込まれていない場合の方が前記変形処理パラメータに割り当てるビット長が長いことを特徴とする請求項4記載の画像変形装置。
【請求項6】
前記プリフェッチ命令付変形処理パラメータには、前記プリフェッチ命令の一部分のみが前記変形処理パラメータと同一のデータ列に埋め込まれる形で処理順に並べられ、その詳細は前記パラメータメモリ上の別の領域に格納されていることを特徴とする請求項2記載の画像変形装置。
【請求項7】
画像に施す変形処理に使用される変形処理パラメータを解析する解析部と、
前記解析部の解析結果に基づいて前記変形処理パラメータにプリフェッチ命令を付加することでプリフェッチ命令付変形処理パラメータを生成する命令付加部と、
を備えることを特徴とする命令付加装置。
【請求項1】
画像を格納するフレームメモリと、
前記フレームメモリに格納された画像に施す変形処理パラメータにプリフェッチ命令が付加されたプリフェッチ命令付変形処理パラメータを格納するパラメータメモリと、
前記フレームメモリに格納された画像の画素データの一部を一時的に格納することで、前記フレームメモリからの画素データ読み込み効率を向上させるキャッシュメモリと、
前記パラメータメモリに格納されたプリフェッチ命令に従って前記フレームメモリから前記キャッシュメモリに画素データをロードするプリフェッチ制御部と、
前記パラメータメモリに格納された変形処理パラメータを使用して前記キャッシュメモリに格納された画像に変形処理を施す変形処理部と、
を備えることを特徴とする画像変形装置。
【請求項2】
前記プリフェッチ制御部は、所定の画素データの読み込み要求が出される前にその画素データが含まれるデータブロックのロードを完了させることを特徴とする請求項1記載の画像変形装置。
【請求項3】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと前記プリフェッチ命令とが独立したデータ列として処理順に並べられていることを特徴とする請求項2記載の画像変形装置。
【請求項4】
前記プリフェッチ命令付変形処理パラメータには、前記変形処理パラメータと同一のデータ列に前記プリフェッチ命令が埋め込まれる形で処理順に並べられていることを特徴とする請求項2記載の画像変形装置。
【請求項5】
前記プリフェッチ命令が埋め込まれている場合よりも埋め込まれていない場合の方が前記変形処理パラメータに割り当てるビット長が長いことを特徴とする請求項4記載の画像変形装置。
【請求項6】
前記プリフェッチ命令付変形処理パラメータには、前記プリフェッチ命令の一部分のみが前記変形処理パラメータと同一のデータ列に埋め込まれる形で処理順に並べられ、その詳細は前記パラメータメモリ上の別の領域に格納されていることを特徴とする請求項2記載の画像変形装置。
【請求項7】
画像に施す変形処理に使用される変形処理パラメータを解析する解析部と、
前記解析部の解析結果に基づいて前記変形処理パラメータにプリフェッチ命令を付加することでプリフェッチ命令付変形処理パラメータを生成する命令付加部と、
を備えることを特徴とする命令付加装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2012−190382(P2012−190382A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−55086(P2011−55086)
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
[ Back to top ]