説明

画像処理装置、画像処理システム及び画像処理方法

【課題】シングルポートのSRAMを用いて画像処理装置の処理効率を改善する。
【解決手段】画像処理装置10は、複数の変換前画素値を記憶するメインメモリ30と、複数のキャッシュブロックを有するキャッシュメモリ20とに接続される。カウンタと、座標決定部と、メモリコントローラと、キャッシュアクセス部と、画素値計算部と、出力部とを備える。メモリコントローラは、メインメモリ30に記憶された複数の変換前画素値をそれぞれ、変換前座標に応じたキャッシュブロックへ転送する。キャッシュアクセス部は、複数のキャッシュブロックから、変換後画素値の計算に必要な全ての変換前画素値を1回のキャッシュアクセスで読み出す。画素値計算部は、キャッシュアクセス部が読み出した変換前画素値を参照して、変換後画素値を計算する。出力部は、変換後画素値を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、画像処理装置、画像処理システム及び画像処理方法に関する。
【背景技術】
【0002】
従来の画像処理装置は、メインメモリに記憶された変換前画像データの変換前画素値を参照して変換後画素値を計算する。このような画像処理装置は、メインメモリへのアクセス回数を低減するために、変換前画素値を記憶可能なキャッシュメモリを備え、変換後画素値を計算する時に、まずキャッシュメモリに変換前画素値が記憶されているか否かを確認する。変換前画素値が記憶されている場合、画像処理装置は、キャッシュメモリに記憶された変換前画素値を参照して変換後画素値を計算する。一方、変換前画素値が記憶されていない場合、画像処理装置は、変換後画素値の計算に必要な変換前画素値をメインメモリからキャッシュメモリへ転送する。
【0003】
シングルポートのSRAM(Static Random Access Memory)を使用してキャッシュメモリを構成した場合、複数の変換前画素値がそれぞれ異なるキャッシュラインに記憶されるので、変換後画素値の計算に必要な全ての変換前画素値を読み出すのに複数回のキャッシュアクセスが必要である。その結果、画像処理装置の処理効率が低下する。
【0004】
これに対して、変換後画素値の計算に必要な全ての変換前画素値を、複数の変換前画素値がそれぞれ異なるキャッシュラインに記憶されていても、1回のキャッシュアクセスで読み出すことができれば、画像処理装置の処理効率が向上する。
【0005】
例えば、参照する変換前画素値の数に応じたポートを持つマルチポートのSRAMを使用してキャッシュメモリを構成すれば、1回のキャッシュアクセスで全ての変換前画素値を読み出すことができる。しかしながら、マルチポートのSRAMの読み出し速度は、シングルポートのSRAMより遅いので、画像処理装置を構成する回路の動作周波数が低下し、結果として、画像処理装置の処理効率が低下してしまう。また、参照する変換前画素値の数が多い場合(例えば3個以上の場合)には、その数に応じたポートが必要である。一般に、SRAMのコストはポートの数に応じて増加するので、変換前画素値の数に応じたポートを持つSRAMを使用すると、画像処理装置のコストも増加してしまう。
【0006】
すなわち、SRAMを使用してキャッシュメモリを構成すると画像処理装置の処理効率が低下する。また、マルチポートのSRAMを使用してキャッシュメモリを構成した場合、画像処理装置のコストが増加する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−72832号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明が解決しようとする課題は、シングルポートのSRAMを使用して画像処理装置の処理効率を改善することである。
【課題を解決するための手段】
【0009】
本実施形態の画像処理装置は、複数の変換前画素値を記憶するメインメモリと、複数のキャッシュブロックを有するキャッシュメモリとに接続される。画像処理装置は、カウンタと、座標決定部と、メモリコントローラと、キャッシュアクセス部と、画素値計算部と、出力部と、を備える。カウンタは、所定の実行順に従って変換後座標を決定する。座標決定部は、変換後座標に対応する変換後画素値の計算に必要な複数の変換前画素値の変換前座標を決定する。メモリコントローラは、メインメモリに記憶された複数の変換前画素値をそれぞれ、変換前座標に応じたキャッシュブロックへ転送する。キャッシュアクセス部は、複数のキャッシュブロックから、変換後画素値の計算に必要な全ての変換前画素値を1回のキャッシュアクセスで読み出す。画素値計算部は、キャッシュアクセス部が読み出した変換前画素値を参照して、変換後画素値を計算する。出力部は、変換後画素値を出力する。
【図面の簡単な説明】
【0010】
【図1】本実施形態の画像処理システム1のブロック図。
【図2】本実施形態の画像データのデータ構造の概略図。
【図3】本実施形態の画像処理装置10、キャッシュメモリ20及びメインメモリ30のブロック図。
【図4】本実施形態の第1〜第4キャッシュブロック21〜24のブロック図。
【図5】本実施形態の第1〜第4キャッシュブロック21〜24のキャッシュラインCLiに記憶される変換前画素値の説明図。
【図6】本実施形態の画像処理のフローチャート。
【図7】本実施形態のデータ転送のフローチャート。
【図8】本実施形態の画素値分類の説明図。
【図9】本実施形態の画素値分類の説明図。
【図10】本実施形態の変換要求発行のフローチャート。
【図11】本実施形態の第1キャッシュ保証のフローチャート。
【図12】本実施形態の画像変換のフローチャート。
【図13】本実施形態の第2キャッシュ保証のフローチャート。
【図14】本実施形態の変形例の画素値分類の説明図。
【図15】本実施形態の変形例の画素値分類の説明図。
【発明を実施するための形態】
【0011】
本実施形態の画像処理システム1の構成について説明する。図1は、本実施形態の画像処理システム1のブロック図である。図2は、本実施形態の画像データのデータ構造の概略図である。
【0012】
図1の画像処理システム1は、画像処理装置10と、キャッシュメモリ20と、メインメモリ30と、入出力インタフェース40と、外部バス51と、内部バス52と、画像生成装置60と、ネットワーク70と、を備える。画像処理装置10は、複数の画素値を有する画像データに所定の画像処理を施す半導体集積回路である。画像処理装置10は、外部バス51を介して、メインメモリ30及び入出力インタフェース40に接続され、内部バス52を介して、キャッシュメモリ20に接続される。変換パターンは、ユーザによる設定又は画像生成装置60の機能を実現するアプリケーションによって決められる。キャッシュメモリ20は、変換前画素値をキャッシュライン単位で記憶する。キャッシュメモリ20は、例えば、シングルポートのSRAMである。メインメモリ30は、画像データを記憶する。メインメモリ30は、例えば、DRAM(Dinamyc Randam Access Memory)である。入出力インタフェース40は、画像生成装置60と、ネットワーク70と、に接続される。画像生成装置60は、画像データを生成する半導体集積回路(例えば車載カメラ)である。ネットワーク70は、例えば有線ネットワーク又は無線ネットワークである。
【0013】
図2(A)に示すように、画像データは、複数の画素値から構成される。各画素値は、色情報(例えば、色調及び階調を表す情報)を含む。画像処理は、所定の変換パターン(例えば、回転、左右反転、上下反転、拡大、縮小、及び歪み補正)に基づいて、画像の形状を変換する処理である。図2(B)は、変換前画像データを時計回りに90°回転させる変換パターンを示す。
【0014】
本実施形態の画像処理装置10の構成について説明する。図3は、本実施形態の画像処理装置10、キャッシュメモリ20及びメインメモリ30のブロック図である。画像処理装置10は、画像処理ブロックと、メモリコントローラ18と、を備える。画像処理ブロックは、カウンタ11と、座標決定部12と、タグチェッカ13と、バッファ14と、キャッシュアクセス部15と、画素値計算部16と、出力部17と、を備える。キャッシュメモリ20は、第1〜第4キャッシュブロック21〜24を備える。メインメモリ30は、第1領域31と、第2領域32と、を備える。第1領域31には、複数の変換前画素を含む変換前画像データがラスタスキャン順に予め記憶されている。第2領域32には、画像処理装置10が生成した複数の変換後画素値を含む変換後画像データが記憶される。
【0015】
メモリコントローラ18は、メインメモリ30の第1領域31に記憶された変換前画素値を変換前座標に応じたキャッシュブロック(第1〜第4キャッシュブロック21〜24の何れか)へ転送する。画像処理ブロックは、第1〜第4キャッシュブロック21〜24に記憶された変換前画素値を参照して変換後画素値を計算する。メモリコントローラ18は、画像処理ブロックが計算した変換後画素値をメインメモリ30の第2領域32へ転送する。これにより、変換後画像データがメインメモリ30に記憶される。
【0016】
本実施形態の第1〜第4キャッシュブロック21〜24の構成について説明する。図4は、本実施形態の第1〜第4キャッシュブロック21〜24のブロック図である。第1〜第4キャッシュブロック21〜24はそれぞれ、複数のキャッシュラインCLi(i=1〜n(nは2以上の整数))と、複数のタグ領域Tiと、を備える。キャッシュラインCLiには、キャッシュラインサイズ分の変換前画素値が記憶される。キャッシュラインサイズは、偶数個の画素値を格納可能なサイズである。タグ領域Tiには、タグと、キャッシュライン情報とが記憶される。タグは、キャッシュラインCLiに記憶される複数の変換前画素値を特定する情報である。キャッシュライン情報は、キャッシュラインCLiの状態を示す情報である。例えば、キャッシュライン情報は、キャッシュラインCLiがフェッチ中であるか否かと、キャッシュラインCLiに記憶されている変換前画素値が有効である(すなわち、変換後画素値の計算に必要な変換前画素値が記憶されている)か否かと、を示す情報である。
【0017】
カウンタ11は、所定の実行順に従って変換後座標を決定する。変換後座標は、第2領域32のアドレスと1対1に対応する。座標決定部12は、1個の変換後座標から、その変換後座標と対応する変換前画像における1個の座標(以下、「対応座標」という)を計算し、1個の対応座標から複数の変換前座標を決定する。対応座標は、変換前座標を特定するための基準となる座標であり、小数値をとり得る。変換前座標は、対応座標の周辺に位置する整数値の座標である。変換前座標の数は、画素値計算アルゴリズムに依存する。タグチェッカ13は、タグ領域Tiをチェックして、変換後画素値の計算を要求する変換要求をバッファ14に書き込む。バッファ14は、キャッシュアクセス部15が参照するまで、変換要求を保持する。キャッシュアクセス部15は、対応座標に基づいて変換後画素値の計算に必要な変換前画素値の変換前座標を特定し、変換前座標に基づいてタグ領域Tiをチェックして、キャッシュラインCLiに記憶された変換前画素値を読み出す。例えば、キャッシュアクセス部15は、1個の対応座標から4つの変換前座標を特定する。画素値計算部16は、変換前画素値を参照して変換後画素値を計算する。出力部17は、変換後画素値をメモリコントローラ18へ出力する。メモリコントローラ18は、第1領域31に記憶された変換前画素値を第1〜第4キャッシュブロック21〜24へ転送する。また、メモリコントローラ18は、出力部17が出力した変換後画素値を第2領域32へ転送する。
【0018】
本実施形態の第1〜第4キャッシュブロック21〜24のキャッシュラインCLiに記憶される変換前画素値について説明する。図5は、本実施形態の第1〜第4キャッシュブロック21〜24のキャッシュラインCLiに記憶される変換前画素値の説明図である。第1領域31には、キャッシュラインサイズ分の変換前画素値(以下、「画素パッケージ」という)が記憶される。
【0019】
第1キャッシュブロック21の各キャッシュラインCLiには、変換前画像内で垂直方向(Y方向)に偶数座標、水平方向(X方向)に偶数座標の変換前画素値が、メインメモリ30上での並び順でキャッシュラインサイズ分だけ記憶される。この第1キャッシュブロック21のあるキャッシュラインに格納されうる画素値の集合を、第1画素パッケージPAC1j((j=1〜m(mは2以上の整数))とする。
【0020】
第2キャッシュブロック22の各キャッシュラインCLiには、変換前画像内で垂直方向(Y方向)に偶数座標、水平方向(X方向)に奇数座標の画素値が、メインメモリ30上での並び順でキャッシュラインサイズ分だけ記憶される。この第2キャッシュブロック22のあるキャッシュラインに格納されうる画素値の集合を、第2画素パッケージPAC2jとする。
【0021】
第3キャッシュブロック23の各キャッシュラインCLiには、変換前画像内で垂直方向(Y方向)に奇数座標、水平方向(X方向)に偶数座標の画素値が、メインメモリ30上での並び順でキャッシュラインサイズ分だけ記憶される。この第3キャッシュブロック23のあるキャッシュラインに格納されうる画素値の集合を、第3画素パッケージPAC3jとする。
【0022】
第4キャッシュブロック24の各キャッシュラインCLiには、変換前画像内で垂直方向(Y方向)に奇数座標、水平方向(X方向)に奇数座標の画素値が、メインメモリ30上での並び順でキャッシュラインサイズ分だけ記憶される。この第4キャッシュブロック24のあるキャッシュラインに格納されうる画素値の集合を、第4画素パッケージPAC4jとする。
【0023】
キャシュブロック内のキャッシュラインの数nが画素パッケージの数mより少ない場合、ある画素パッケージmは、(m%n)番目のキャッシュラインに格納される。ここで、(m%n)は、mをnで割ったときの余りである。
【0024】
このため、あるキャッシュラインCLiには複数の画素パッケージPACjが記憶され得る。例えば、“n=5”且つ“m=10”の場合、キャッシュラインCL1には、画素パッケージPAC1又はPAC6が記憶され、キャッシュラインCL2には、画素パッケージPAC2又はPAC7のどちらかが記憶される。この場合、キャッシュラインCLiには2種類の画素パッケージが記憶され得る。
【0025】
このように、あるキャッシュラインCLiには複数の画素パッケージが記憶され得る。このためタグTiに、キャッシュラインCLiに格納されている画素パッケージを特定するタグ(例えば(j/n))が格納される。ここで、(j/n)は、jをnで割ったときの商の小数を切り捨てた値である。
【0026】
本実施形態の画像処理装置10の動作について説明する。図6は、本実施形態の画像処理のフローチャートである。画像処理ブロックは、変換要求発行(S602)と、画像変換(S612)と、を並行して実行する。S602は、S612に対して、所定の画素数の分だけ先行して実行される。この所定の画素数は、1キャッシュラインに記憶される画素値の数とほぼ同数であるが、これに限られるものではなく、1〜k(kは、バッファ14に記憶可能な画素値の数)画素であればよい。S602及びS612は、全ての変換前画素値についてS612が終了するまで繰り返し実行される(S604−NO)。全ての変換前画素値についてS612が終了すると(S604−YES)、画像処理が終了する。
【0027】
図7は、本実施形態のフェッチ処理のフローチャートである。フェッチ処理は、第1記憶領域31に記憶された変換前画素を変換前座標に応じた第1〜第4キャッシュブロック21〜24へ転送する処理であって、フェッチ要求が発行されたときに実行される。
【0028】
<S700> メモリコントローラ18は、フェッチ要求により、第1領域31から2つのキャッシュラインサイズ分の変換前画素値を取得し、取得した複数の変換前画素値を画素パッケージにまとめる。この時、メモリコントローラ18は、変換前画像の端部から、連続する2つキャッシュラインサイズ分の画素値毎に変換前画像を分割して画像処理ブロックを生成する。画像処理ブロックは、フェッチ要求に含まれる変換前座標に対応する変換前画素値を含み、2つキャッシュラインサイズ分の連続する画素値で構成される。
【0029】
<S702> メモリコントローラ18は、変換前座標に応じて変換前画素値を第1〜第4変換前画素値P1〜P4に分類する。図8及び9は、本実施形態の画素値分類の説明図である。第1〜第4変換前画素値P1〜P4は、それぞれ第1〜第4変換前座標を有する。第1〜第4変換前座標は、それぞれ変換前画像領域の水平方向の第1座標値(以下、「X座標」という)と、変換前画像領域の垂直方向の第2座標値(以下、「Y座標」という)からなる。例えば、第1変換前画素値P1の第1変換前座標はX座標及びY座標が偶数であり、第2変換前画素値P2の第2変換前座標はX座標が奇数且つY座標が偶数であり、第3変換前画素値P3の第3変換前座標はX座標が偶数且つY座標が奇数であり、第4変換前画素値P4の第4変換前座標はX座標及びY座標が奇数である。
【0030】
<S704> メモリコントローラ18は、取得した2つキャッシュラインサイズ分の連続する画素値を、変換前座標に応じて、それぞれ第1〜第4画素パッケージPAC1j〜PAC4jにまとめる。
【0031】
<S706> メモリコントローラ18は、変換前座標に応じて第1〜第4キャッシュブロック21〜24を、それぞれ第1〜第4画素パッケージPAC1j〜PAC4jの転送先キャッシュブロックとして決定する。 例えば、メモリコントローラ18は、第1変換前座標を有する複数の第1変換前画素値P1から構成される第1画素パッケージPAC1jの転送先キャッシュブロックを第1キャッシュブロック21に決定し、第3変換前座標を有する複数の第3変換前画素値P3から構成される画素パッケージPAC3jの転送先キャッシュブロックを第3キャッシュブロック23に決定する。
<S702> メモリコントローラ18は、第1〜第4画素パッケージPAC1j〜PAC4jを、それぞれ転送先として決定した第1〜第4キャッシュブロック21〜24の何れかへ転送する。各画素パッケージが格納されるキャッシュラインの番号iは、j%nである。ここで、nはキャシュブロック内のキャッシュラインの数であり、jは画素パッケージの番号であり、ここで、(j%n)は、jをnで割ったときの余りである。これにより、変換前座標に応じた第1〜第4キャッシュブロック21〜24に、変換後画素値の計算に必要な変換前画素値が記憶される。
【0032】
<S704> メモリコントローラ18は、各画素パッケージの転送先である各キャッシュブロックの各キャッシュラインCLiに関連付けられたタグ領域Tiに、タグ及びキャッシュライン情報を設定する。タグには、キャッシュラインCLiに記憶される複数の変換前画素値(すなわち、画素パッケージ)を特定する情報として、j/nが設定される。これにより、キャッシュアクセス部15が、第1〜第4キャッシュブロック21〜24に記憶された第1〜第4変換前画素値P1〜P4を参照可能になる。
【0033】
本実施形態の変換要求発行について説明する。図10は、本実施形態の変換要求発行のフローチャートである。図11は、本実施形態の第1キャッシュ保証のフローチャートである。変換要求発行は、変換前座標及び変換後座標を含む変換要求を発行する処理である。第1キャッシュ保証は、変換要求発行において、有効な変換前画素がキャッシュメモリ20に記憶されていること、又はキャッシュラインCLiがフェッチ中であることを保証する処理である。
【0034】
<S1001> カウンタ11は、バッファ14がフルであるか否かを判定する。バッファ14がフルでない場合(S1001−NO)、すなわち、バッファ14に空き領域がある場合、S1002へ進む。バッファ14がフルである場合(S1001−YES)、バッファ14に空きができるまで待機する。
【0035】
<S1002> カウンタ11は、所定の実行順に従って変換後座標を決定する。変換後座標は、第2領域32のアドレスに1対1に対応するので、変換後座標が決定すると、変換後画素を記憶すべき第2領域32のアドレスが決定する。実行順は、変換パターンにより決定する。具体的には、カウンタ11は、入出力インタフェース40を介して取得した変換パターンに対応する座標計算アルゴリズムを用いて、変換後座標を更新する。すなわち、変換後座標は、変換パターンに応じた実行順に従ってシフトする。
【0036】
<S1003> 座標決定部12は、変換後画素値の計算に必要な変換前画素値(すなわち、有効な変換前画素値)の変換前座標を特定するための、対応座標を計算する。座標決定部12は、変換パターンに応じた変換後座標から対応座標を求める変換式を使う。座標決定部12は、例えば、回転、縮小、拡大、及び並行移動等の変換パターンに応じた変換式(例えば、式1)と、変換後座標と、を用いて変換前座標を計算する。式1において、X1及びY1は対応座標であり、X2及びY2は変換後座標である。A〜Fは変換パラメータであり、変換パターンにより異なる。そして、座標決定部12は、対応座標の周囲の整数座標を変換前座標に決定する。
【数1】

【0037】
<S1004> タグチェッカ13は、決定した変換前座標毎に、有効な変換前画素値が第1〜第4キャッシュブロック21〜24に記憶されているか否かを確認する。第1キャッシュ保証は、図11に従って実行される。
【0038】
<S1100及びS1102> タグチェッカ13は、S700と同様に、チェックすべきキャッシュブロックを決定する(S1100)。次に、タグチェッカ13は、タグ領域Tiのタグに基づいて、有効な変換前画素値が第1〜第4キャッシュブロック21〜24に記憶されているか否かを判定する(S1102)。具体的には、参照すべき各変換前画素値の変換前座標に基づいて、キャッシュブロックと、キャッシュブロック内のキャッシュラインCLiとを特定し、そのキャッシュラインCLiと対応するタグ領域Tiのタグ及びキャッシュライン情報に基づいて、有効な変換前画素値がキャッシュブロックに記憶されているか否かを判定する。有効な変換前画素値が記憶されていないと判定されると(S1102−NO)、S1104へ進む。有効な変換前画素値が記憶されていると判定されると(S1102−YES)、S1108へ進む。
【0039】
例えば、タグチェッカ13は、式2を用いて、画素パッケージの番号jを計算する。式2において、x及びyは変換前座標であり、wは変換前画像のX方向の画素値の数であり、pは画素パッケージに含まれる画素値の数であり、nはキャッシュブロックに格納されている画素パッケージの数である。その結果、画素パッケージPACjが格納されるべきキャッシュブロックのキャッシュラインCLiの番号iは、j%nとなる。
【数2】

【0040】
そして、タグチェッカ13は、キャッシュラインCLiに対応するタグTiに格納されているタグがj/nの場合、有効な変換前画素値がキャッシュブロックに記憶されていると判定する。
【0041】
<S1104> タグチェッカ13は、タグ領域Tiのキャッシュライン情報に基づいて、第1〜第4キャッシュブロック21〜24のキャッシュラインCLiがフェッチ中か否であるかを判定する。キャッシュラインCLiがフェッチ中でない場合(S1104−NO)、S1106へ進む。キャッシュラインCLiがフェッチ中である場合(S1104−YES)、S1108へ進む。
【0042】
<S1106> タグチェッカ13は、第1フェッチ要求を発行する。第1フェッチ要求は、キャッシュライン情報を「フェッチ中」に更新すると同時に、図7のフェッチ処理をメモリコントローラ18に要求する信号である。メモリコントローラ18は、フェッチ要求に従ってフェッチ処理を実行し、第1記憶領域31に記憶された変換前画素値を第1〜第4キャッシュブロック21〜24へ転送する。タグチェッカ13は、第1フェッチ要求を発行すると、メインメモリ30へのアクセスの終了を待たずに、S1108を実行する。
【0043】
<S1108> タグチェッカ13は、変換要求を発行する。変換要求は、S1002で決定された変換後座標と、S1003で決定された変換前座標と、を含む。変換要求は、変換後座標に対応する変換後画素値の計算を画像処理ブロックに要求する命令である。発行された変換要求は、キャッシュアクセス部15が読み出すまでバッファ14に保持される。S1108が終了すると、第1キャッシュ保証が終了し、S1005へ進む。
【0044】
<S1005> 全ての変換前画素値について第1キャッシュ保証が終了するまで(S1005−NO)、S1001〜S1004は繰り返し実行される。全ての変換前画素値について第1キャッシュ保証が終了すると(S1005−YES)、変換要求発行が終了し、S604へ進む。
【0045】
次に、本実施形態の画像変換について説明する。図12は、本実施形態の画像変換のフローチャートである。図13は、本実施形態の第2キャッシュ保証のフローチャートである。画像変換は、第1〜第4キャッシュブロック21〜24に記憶された変換前画素値を参照して変換後画素値を計算する処理である。第2キャッシュ保証は、画像変換において、有効な変換前画素値が第1〜第4キャッシュブロック21〜24に記憶されていることを保証する処理である。
【0046】
<S1201> バッファ14が空ではない(つまり、バッファ14に変換要求がある)場合(S1201−NO)、すなわち、バッファ14に少なくとも1つの変換要求がある場合、S1202へ進む。バッファ14が空である(つまり、バッファ14に要求がない)場合(S1201−YES)、バッファ14が空ではなくなった後に、S1202へ進む。
【0047】
<S1202> キャッシュアクセス部15は、第1キャッシュ保証でバッファ14に保持された変換要求で参照すべき変換前座標に対応する変換前画素値が第1〜第4キャッシュブロック21〜24に記憶されている場合、変換前画素値を第1〜第4キャッシュブロック21〜24から読み出す。第2キャッシュ保証は、図13に従って実行される。
【0048】
<S1300及びS1302> キャッシュアクセス部15は、S700と同様に、チェックすべきキャッシュブロックを決定する(S1300)。次に、キャッシュアクセス部15は、タグ領域Tiのタグに基づいて、有効な変換前画素値が第1〜第4キャッシュブロック21〜24に記憶されているか否かを判定する(S1302)。具体的には、参照すべき各変換前画素値の変換前座標に基づいて、キャッシュブロックと、キャッシュブロック内のキャッシュラインとを特定し、特定したキャッシュラインCLiと対応するタグ領域Tiのタグ及びキャッシュライン情報に基づいて、有効な変換前画素値がキャッシュブロックに記憶されているか否かを判定する。有効な変換前画素値が記憶されていないと判定されると(S1302−NO)、S1304へ進む。有効な変換前画素値が記憶されていると判定されると(S1302−YES)、S1308へ進む。
【0049】
<S1304> キャッシュアクセス部15は、キャッシュライン情報に基づいて、キャッシュラインCLiがフェッチ中か否であるかを判定する。キャッシュラインCLiがフェッチ中でない場合(S1304−NO)、S1306へ進む。キャッシュラインCLiがフェッチ中である場合(S1304−YES)、S1302へ戻る。
【0050】
<S1306> キャッシュアクセス部15は、第2フェッチ要求を発行する。第2フェッチ要求は、キャッシュラインをフェッチ中の状態に更新すると同時に、フェッチ処理をメモリコントローラ18に要求する信号である。メモリコントローラ18は、フェッチ処理を実行し、図7のフェッチ処理により第1記憶領域31に記憶された変換前画素値を、変換前座標に応じた第1〜第4キャッシュブロック21〜24の何れかへ転送する。S1306が終了すると、S1302へ戻る。
【0051】
<S1308> キャッシュアクセス部15は、1回のキャッシュアクセスで、第1〜第4キャッシュブロック21〜24に記憶された第1〜第4変換前画素値P1〜P4を読み出す。第1〜第4キャッシュブロック21〜24には、1個の変換後座標に対応する1個の対応座標から決定された4個の変換前座標(0,0)、(1,0)、(0,1)及び(1,1)に対応する第1〜第4変換前画素値P1〜P4が記憶される。この場合、キャッシュアクセス部15は、第1キャッシュブロック21に記憶された第1変換前画素値P1(0,0)と、第2キャッシュブロック22に記憶された第2変換前画素値P2(1,0)と、第3キャッシュブロック23に記憶された第3変換前画素値P3(0,1)と、第4キャッシュブロック24に記憶された第4変換前画素値P4(1,1)を1回のキャッシュアクセスで読み出す。S1308が終了すると、第2キャッシュ保証が終了し、S1203へ進む。
【0052】
<S1203> 画素値計算部16は、第1〜第4キャッシュブロック21〜24から読み出された第1〜第4変換前画素値P1〜P4を参照して、変換後画素値を計算する。具体的には、画素値計算部16は、入出力インタフェース40を介して取得した変換パターンに対応する画素値計算アルゴリズムに従って第1〜第4変換前画素値P1〜P4を参照して、変換後画素値を計算する。画素値計算アルゴリズムは、例えば加重平均アルゴリズムである。
【0053】
<S1204> 出力部17は、S1203で計算された変換後画素値をメモリコントローラ18へ出力する。メモリコントローラ18は、バッファ14に保持された変換要求の変換後座標に対応する第2領域32のアドレスに、出力部17が出力した変換後画素値を転送する。
【0054】
<S1205> 全ての変換前画素値について第2キャッシュ保証が完了するまで(S1205−NO)、S1201〜S1204は繰り返し実行される。全ての変換前画素値について第2キャッシュ保証が完了すると(S1205−YES)、画像変換が終了し、S604へ進む。
【0055】
なお、本実施形態では、4個の変換前画素値を参照して変換後画素値を計算する加重平均法の例について説明したが、本発明の範囲はこれに限られるものではない。本実施形態は、複数の変換前画素値を参照して変換後画素値を計算する任意の方法にも適用可能である。
【0056】
例えば、X方向に4個且つY方向に4個(すなわち、16個)の変換前画素値を参照して変換後画素値を計算するバイキュービック法の場合、キャッシュメモリ20には、8個のキャッシュブロック(第1〜第8キャッシュブロック)が用意される。メモリコントローラ18は、変換前座標に応じて、変換前画素値を8種類に分類する。図14及び15は、本実施形態の変形例の画素値分類の説明図である。例えば、X方向に4画素且つY方向に4画素の変換前画像データの場合、メモリコントローラ18は、変換前画像データの変換前画素値を、X座標を1つのキャッシュラインに格納可能な画素数で除した時の商(X座標/キャッシュラインサイズ分の画素数)の偶数又は奇数と、Y座標をY方向の参照画素数で除した時の剰余(Y座標 MOD Y方向の参照画素数)とに応じて、第1〜第8変換前画素値P1〜P8の何れかに分類する。例えば、第1、第3、第5、及び第7変換前画素値P1,P3,P5及びP7は、それぞれ、X座標を1つのキャッシュラインに格納可能な画素数で除した時の商が偶数であり、Y座標を除したときの剰余が0〜3である。第2、第4、第6及び第8変換前画素値P2,P4,P6及びP8は、それぞれ、X座標を1つのキャッシュラインに格納可能な画素数で除した時の商が奇数であり、Y座標を除したときの剰余が0〜3である。次に、メモリコントローラ18は、第1〜第8キャッシュブロックを、それぞれ、第1〜第8変換前画素値P1〜P8から構成される画素パッケージの転送先キャッシュブロックとして決定する。
【0057】
変換後画素値の計算には、X方向に連続する変換前画素値だけではなく、Y方向に連続する変換前画素値も必要である。仮に、キャッシュラインCLiに記憶される変換前画素値の配列が変換前画像データのX方向の配列と同じ場合、キャッシュラインCLiには、X方向に連続する変換前画素値のみが記憶される。この場合、X方向に連続するキャッシュラインサイズ分の変換前画素値のみが、1回のキャッシュアクセスで参照可能である。すなわち、1回のキャッシュアクセスでは、変換後画素値の計算に必要な全ての変換前画素値を参照することはできない。
【0058】
これに対して、本実施形態によれば、メモリコントローラ18は、X座標のキャッシュラインサイズ分毎の位置と、Y座標をY方向の参照画素数で除したときの剰余とに応じて転送先となるキャッシュブロックを決定する。変換前画素値は、変換前座標に応じたキャッシュブロックのキャッシュラインCLiに記憶される。その結果、各キャッシュブロックのキャッシュラインCLiにはX方向にキャッシュライン数分だけ連続する座標を待つ変換前画素値が記憶される。また、Y方向に連続する変換前画素値は、それぞれ、2つおきの異なるキャッシュブロックに格納される。この場合、X方向にはキャシュラインサイズ分だけX方向に連続し、Y方向にはキャッシュブロック数/2の数だけY方向に連続した座標を持つ複数の変換前画素値が、1回のキャッシュアクセスで参照可能である。
【0059】
換言すると、本実施形態のメモリコントローラ18は、変換前画素値を、複数のキャッシュブロックのキャッシュラインCLiにX方向に連続して配列し、複数のキャッシュブロックにY方向に連続して配列するように、複数の変換前画素値をキャッシュブロックへ転送する。
【0060】
なお、本実施形態では、第1キャッシュ保証又は第2キャッシュ保証は、省略可能である。メモリコントローラ18は、第1キャッシュ保証が省略される場合、第2フェッチ要求が発行されたときだけフェッチ処理を実行し、第2キャッシュ保証が省略される場合、第2フェッチ要求が発行されたときだけフェッチ処理を実行する。
【0061】
本実施形態の画像処理システム1の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、画像処理システム1の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【0062】
また、本実施形態の画像処理システム1の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【0063】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
1 画像処理システム
10 画像処理装置
11 カウンタ
12 座標決定部
13 タグチェッカ
14 バッファ
15 キャッシュアクセス部
16 画素値計算部
17 出力部
18 メモリコントローラ
20 キャッシュメモリ
21〜24 第1〜第4キャッシュブロック
30 メインメモリ
31 第1領域
32 第2領域
40 入出力インタフェース
51 外部バス
52 内部バス
60 画像生成装置
70 ネットワーク

【特許請求の範囲】
【請求項1】
複数の変換前画素値を記憶するメインメモリと、複数のキャッシュブロックを有するキャッシュメモリとに接続される画像処理装置であって、
所定の実行順に従って変換後座標を決定するカウンタと、
前記変換後座標に対応する変換後画素値の計算に必要な複数の変換前画素値の変換前座標を決定する座標決定部と、
前記メインメモリに記憶された複数の変換前画素値をそれぞれ、前記変換前座標に応じたキャッシュブロックへ転送するメモリコントローラと、
前記複数のキャッシュブロックから、前記変換後画素値の計算に必要な全ての変換前画素値を1回のキャッシュアクセスで読み出すキャッシュアクセス部と、
前記キャッシュアクセス部が読み出した変換前画素値を参照して、前記変換後画素値を計算する画素値計算部と、
前記変換後画素値を出力する出力部と、を備えることを特徴とする画像処理装置。
【請求項2】
前記キャッシュブロックは、第1乃至第4キャッシュブロックを備え、
前記メモリコントローラは、水平方向の第1座標値及び垂直方向の第2座標値の偶数及び奇数の組み合わせに基づいて、前記第1乃至第4キャッシュブロックの中から転送先となるキャッシュブロックを決定し、
前記画素値計算部は、前記第1乃至第4キャッシュブロックに記憶された変換前画素値を参照して前記変換後画素値を計算する、請求項1に記載の画像処理装置。
【請求項3】
前記メモリコントローラは、前記第1座標値及び前記第2座標値が偶数である第1変換前画素値を前記第1キャッシュブロックへ転送し、前記第1座標値が奇数且つ前記第2座標値が偶数である第2変換前画素値を前記第2キャッシュブロックへ転送し、前記第1座標値が偶数且つ前記第2座標値が奇数である第3変換前画素値を前記第3キャッシュブロックへ転送し、前記第1座標値及び前記第2座標値が奇数である第4変換前画素値を前記第4キャッシュブロックへ転送する、請求項2に記載の画像処理装置。
【請求項4】
複数の変換前画素値を記憶するメインメモリと、
複数のキャッシュブロックを有するキャッシュメモリと、
所定の実行順に従って変換後座標を決定するカウンタと、
前記変換後座標に対応する変換後画素値の計算に必要な複数の変換前画素値の変換前座標を決定する座標決定部と、
前記メインメモリに記憶された複数の変換前画素値をそれぞれ、前記変換前座標に応じたキャッシュブロックへ転送するメモリコントローラと、
前記複数のキャッシュブロックから、前記変換後画素値の計算に必要な全ての変換前画素値を1回のキャッシュアクセスで読み出すキャッシュアクセス部と、
前記キャッシュアクセス部が読み出した変換前画素値を参照して、前記変換後画素値を計算する画素値計算部と、
前記変換後画素値を出力する出力部と、を備えることを特徴とする画像処理システム。
【請求項5】
前記メモリコントローラは、前記第1座標値及び前記第2座標値が偶数である第1変換前画素値を前記第1キャッシュブロックへ転送し、前記第1座標値が奇数且つ前記第2座標値が偶数である第2変換前画素値を前記第2キャッシュブロックへ転送し、前記第1座標値が偶数且つ前記第2座標値が奇数である第3変換前画素値を前記第3キャッシュブロックへ転送し、前記第1座標値及び前記第2座標値が奇数である第4変換前画素値を前記第4キャッシュブロックへ転送する、請求項4に記載の画像処理システム。

【図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

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−238154(P2012−238154A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−106374(P2011−106374)
【出願日】平成23年5月11日(2011.5.11)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】