説明

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

【課題】キャッシュメモリの利用効率及び外部メモリへのアクセスレイテンシを改善する。
【解決手段】画像処理装置10は、外部メモリ30及びキャッシュメモリ20に接続される。画像処理装置10は、カウンタ11と、座標計算部12と、タグチェッカ13と、画素参照部15と、画素値計算部16と、出力部17と、を備える。カウンタ11は、所定の実行順に従って変換後座標を決定する。座標計算部12は、変換後座標に位置する変換後画素の変換後画素値を計算するための変換前座標を計算する。タグチェッカ13は、変換前画素を参照して変換後画素値を計算することを要求する変換要求を生成する。画素参照部15は、変換要求に基づいて、変換前座標に位置する変換前画素がキャッシュメモリ20に記憶されている場合に、変換前画素をキャッシュメモリ20から読み出す。画素値計算部16は、読み出された変換前画素を参照して、変換後画素値を計算する。出力部17は、変換後画素を外部メモリ30に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、画像処理装置及び画像処理システムに関する。
【背景技術】
【0002】
一般的な画像を変換する画像処理装置は、変換された画像(以下、「変換後画像」という)のある座標(以下、「変換後座標」という)に位置する画素(以下、「変換後画素」という)の画素値(以下、「変換後画素値」という)を、変換される前の画像(以下、「変換前画像」という)の座標(以下、「変換前座標」という)のうち、変換後座標に対応する変換前座標に位置する画素(以下、「変換前画素」という)の画素値(以下、「変換前画素値」という)を参照して計算する。
【0003】
従来の画像処理装置は、外部メモリに接続され、キャッシュメモリを備える。外部メモリには、画像データが記憶される。このような画像処理装置は、外部メモリ上の変換前画素を参照し、変換後画素値を計算し、計算した変換後画素を外部メモリに書き込む。このような画像処理装置は、外部メモリへのアクセス回数を低減するために、変換前画素値を参照する時に、まずキャッシュメモリ上に変換前画素が格納されているかを確認する。格納されている場合は、キャッシュメモリ上に格納されている変換前画素の画素値を用いて、変換後画素値を計算する。キャッシュメモリ上に変換前画素が格納されていない場合には、外部メモリから変換前画像を読み出す。このときに参照される変換前画素に加えて、当該変換前画素の周辺に位置する変換前画素をキャッシュメモリに書き込む。
【0004】
しかしながら、画像変換のパターンによっては、変換後画素値を計算するのにキャッシュメモリに記憶された変換前画素の一部のみが参照され、キャッシュメモリの利用効率が低下する。
【0005】
一方、変換後画素値を計算するのに必要な変換前画素がキャッシュメモリに記憶されていない場合には、外部メモリに記憶された変換前画素をキャッシュメモリに転送することを要求するフェッチ要求が発行されるので、外部メモリへのアクセスレイテンシが増加するという問題がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−259875号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、キャッシュメモリの利用効率及び外部メモリへのアクセスレイテンシを改善することである。
【課題を解決するための手段】
【0008】
本発明の実施形態に係る画像処理装置は、外部メモリ及びキャッシュメモリに接続される。画像処理装置は、カウンタと、座標計算部と、タグチェッカと、画素参照部と、画素値計算部と、出力部と、を備える。カウンタは、所定の実行順に従って変換後座標を決定する。座標計算部は、前記変換後座標に位置する変換後画素の変換後画素値を計算するための変換前座標を計算する。タグチェッカは、前記変換前画素を参照して前記変換後画素値を計算することを要求する変換要求を生成する。画素参照部は、前記変換要求に基づいて、前記変換前座標に位置する変換前画素が前記キャッシュメモリに記憶されている場合に、前記変換前画素を前記キャッシュメモリから読み出す。画素値計算部は、前記読み出された変換前画素を参照して、前記変換後画素値を計算する。出力部は、前記変換後画素値を有する変換後画素を前記外部メモリに書き込む。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態に係る画像処理システム1の構成を示すブロック図。
【図2】本発明の実施形態に係る画像データのデータ構造を示す概略図。
【図3】本発明の実施形態に係る画像処理装置10の構成を示すブロック図。
【図4】本発明の実施形態に係るキャッシュラインCLiに格納される変換前画素を説明する概略図。
【図5】第1実施形態に係る画像処理の手順を示すフローチャート。
【図6】第1実施形態に係る変換要求発行の手順を示すフローチャート。
【図7】第1実施形態に係る第1キャッシュ保証の手順を示すフローチャート。
【図8】第1実施形態に係る画像変換の手順を示すフローチャート。
【図9】第1実施形態に係る第2キャッシュ保証の手順を示すフローチャート。
【図10】第2実施形態に係る変換後座標決定の手順を示すフローチャート。
【図11】第2実施形態に係る変換パターン毎の実行順を示す概略図。
【図12】第3実施形態に係る変換後座標決定の手順を示すフローチャート。
【図13】第3実施形態に係るブロック領域の概略図。
【図14】第3実施形態の作用効果を説明する概略図。
【発明を実施するための形態】
【0010】
本発明の実施形態に係る画像処理システムの構成について説明する。図1は、本発明の実施形態に係る画像処理システム1の構成を示すブロック図である。図2は、本発明の実施形態に係る画像データのデータ構造を示す概略図である。
【0011】
図1の画像処理システム1は、画像処理装置10と、キャッシュメモリ20と、外部メモリ30と、入出力インタフェース40と、外部バス51と、内部バス52と、画像生成装置60と、ネットワーク70と、を備える。画像処理装置10は、複数の画素を有する画像データに所定の画像処理を施す半導体集積回路である。画像処理装置10は、外部バス51を介して、外部メモリ30及び入出力インタフェース40に接続され、内部バス52を介して、キャッシュメモリ20に接続される。変換パターンは、画像生成装置60のユーザ又は画像生成装置60の機能を実現するアプリケーションによって決められる。キャッシュメモリ20は、変換前画素をキャッシュライン単位で記憶するモジュールである。外部メモリ30は、画像データを記憶するモジュールである。入出力インタフェース40は、画像生成装置60と、ネットワーク70と、に接続される。に接続される。画像生成装置60は、画像データを生成する半導体集積回路(例えば車載カメラ)である。ネットワーク70は、例えば有線ネットワーク又は無線ネットワークである。
【0012】
画像データは、画素値を有する複数の画素を含む。画素値は、画素の色情報(例えば、色調及び階調を表す情報)である。画像処理は、所定の変換パターン(例えば、回転、左右反転、上下反転、拡大、縮小、及び歪み補正)に基づいて、画像の形状を変換する処理である(図2(B))。図2(B)は、変換前画像データを時計回りに90°回転させる変換パターンを示す。変換前画素の位置(変換前座標)は、変換後画像データでは変換後画素の位置(変換後座標)に変わる。
【0013】
本発明の実施形態に係る画像処理装置の構成について説明する。図3は、本発明の実施形態に係る画像処理装置10の構成を示すブロック図である。画像処理装置10は、カウンタ11と、座標計算部12と、タグチェッカ13と、バッファ14と、画素参照部15と、画素値計算部16と、出力部17と、を備える。キャッシュメモリ20は、複数のキャッシュラインCLi(i=1〜n(nは2以上の整数))と、複数のタグ領域Tiと、を備える。各キャッシュラインCLiは、キャッシュラインサイズ分の変換前画素が格納される領域である。各タグ領域Tiは、タグと、キャッシュライン情報と、が格納される領域であり、各キャッシュラインCLiに関連付けられる。タグは、キャッシュラインCLiに格納される変換前画素を特定する情報である。キャッシュライン情報は、キャッシュラインCLiの状態を表す情報である。例えば、キャッシュライン情報は、キャッシュラインCLiがフェッチ中であるか否かと、キャッシュラインCLiに格納される変換前画素が有効であるか否かと、を表す。外部メモリ30は、変換前画像データが記憶される第1領域MA1と、変換後画像データが記憶される第2領域MA2と、を有する。
【0014】
カウンタ11は、変換後座標を決定するモジュールである。変換後座標は、第2領域MA2のアドレスと1対1に対応する。座標計算部12は、変換前座標を計算するモジュールである。変換前座標は、第1領域MA1のアドレスと1対1に対応する。タグチェッカ13は、タグ領域Tiをチェックして、変換要求をバッファ14に書き込むモジュールである。変換要求は、変換前画素を参照して変換後画素値を計算することを要求するデータである。バッファ14は、変換要求を一時的に保持するモジュールである。画素参照部15は、タグ領域Tiをチェックして、対応するキャッシュラインCLiに格納された変換前画素をキャッシュメモリ20から読み出すモジュールである。画素値計算部16は、変換後画素値を計算するモジュールである。出力部17は、第2領域MA2に変換後画素を書き込むモジュールである。
【0015】
本発明の実施形態に係るキャッシュラインに格納される変換前画素について説明する。図4は、本発明の実施形態に係るキャッシュラインCLiに格納される変換前画素を説明する概略図である。第1領域MA1には、キャッシュラインサイズ分の変換前画素(以下、「画素パッケージPACj(j=1〜m(mは2以上の整数))」という)が格納される。各変換前画素は、各画素パッケージPACj内においてラスタスキャン順に配列される。画像処理装置10によりフェッチ要求が発行されると、画素パッケージPACjは、第1領域MA1からキャッシュラインCLiに転送される。キャッシュラインCLiに画素パッケージPACjが格納されると、画素パッケージPACjを特定するタグ(例えば、“j”の値)がタグ領域Tiに格納される。
【0016】
なお、キャッシュラインの数nが画素パッケージの数mより少ない場合には、1つのキャッシュラインCLiに複数の画素パッケージPACjが格納され得る。例えば、“n=5”且つ“m=10”の場合には、キャッシュラインCL1には、画素パッケージPAC1又はPAC6が格納され、キャッシュラインCL2には、画素パッケージPAC2又はPAC7のどちらかが格納される。すなわち、1つのキャッシュラインCLiには2種類の画素パッケージが格納され得る。
【0017】
(第1実施形態)
本発明の第1実施形態について説明する。第1実施形態は、変換後画素値を計算する前に、変換後画素値を計算するのに参照される変換前画素をキャッシュメモリに記憶する例である。
【0018】
第1実施形態に係る画像処理装置の動作について説明する。図5は、第1実施形態に係る画像処理の手順を示すフローチャートである。画像処理装置10は、変換要求発行(S502)と、画像変換(S512)と、を並行して実行する。S502は、S512に対して、所定の画素数の分だけ先行して実行される。この所定の画素数は、1キャッシュラインに格納される画素数とほぼ同数であるが、これに限られるものではなく、1画素〜k(kは、バッファ14に格納可能な画素の数)画素である。S502及びS512は、全ての変換前画素についてS512が完了するまで繰り返し実行される(S504−NO)。全ての変換前画素についてS512が完了すると(S504−YES)、画像処理が終了する。
【0019】
第1実施形態に係る変換要求発行について説明する。図6は、第1実施形態に係る変換要求発行の手順を示すフローチャートである。図7は、第1実施形態に係る第1キャッシュ保証の手順を示すフローチャートである。変換要求発行は、変換前座標及び変換後座標を含む変換要求を発行する処理である。第1キャッシュ保証は、変換要求発行において、変換後画素値を計算するのに参照される変換前画素がキャッシュメモリ20に記憶されていること、又はキャッシュラインCLiがフェッチ中であることを保証する処理である。
【0020】
<S601> カウンタ11は、バッファ14がフルであるか否かを判定する。バッファ14がフルでない場合には(S601−NO)、S602へ進む。バッファ14がフルである場合には(S601−YES)、バッファに空きができるまで待機する。すなわち、バッファ14に空き領域がある場合に、S602へ進む。
【0021】
<変換後座標決定(S602)> カウンタ11は、所定の実行順に従って変換後座標を決定する。変換後座標は、第2領域MA2のアドレスに1対1に対応するので、変換後座標が決定すると、決定した変換後座標に位置する変換後画素が格納されるべき第2領域MA2のアドレスが決定する。実行順は、変換パターンにより決まる。具体的には、カウンタ11は、入出力インタフェース40を介して変換パターンを取得し、取得した変換パターンに対応する座標決定アルゴリズムを用いて、変換後座標の値を更新する。すなわち、変換後座標を変換パターンにより決まる実行順(図11(A)〜(H))に従ってシフトさせる。
【0022】
<変換前座標計算(S603)> 座標計算部12は、S602で決定した変換後座標に位置する変換後画素値を計算するための変換前座標を計算する。座標計算部12は、変換パターンに応じた変換後座標から変換前座標を求める変換式を使う。例えば、回転、縮小、拡大、及び並行移動等の変換パターンの場合には、座標計算部12は、各変換パターンに応じた変換式(式1を参照)と、変換後座標、と、を用いて変換前座標を計算する。式1において、X1及びY1は変換前座標であり、X2及びY2は変換後座標であり、A〜Fは変換パラメータである。式1に示すように、変換後座標(X2,Y2)が決まると、変換前座標(X1,Y1)が決まる。
【数1】

【0023】
<第1キャッシュ保証(S604)> タグチェッカ13は、S603で計算された変換前座標に位置する変換前画素がキャッシュメモリ20に記憶されているか否かを確認する。変換前画素が記憶されていない場合には、フェッチ要求を発行する。次いで、タグチェッカ13は、変換前画素を参照して変換後画素値を計算することを要求する変換要求を発行する。
第1キャッシュ保証は、図7の手順に従って実行される。
【0024】
<S702> タグチェッカ13は、タグ領域Tiのタグに基づいて、変換後画素値を計算するための変換前画素がキャッシュメモリ20に記憶されているか否かを判定する。具体的には、タグにより特定される画素パッケージPACjの先頭画素の座標(以下、「先頭座標」という)と終端画素の座標(以下、「終端座標」という)との間に、S603で計算された変換前座標が含まれていない場合には、変換後画素値を計算するための変換前画素がキャッシュメモリ20に記憶されていないと判定され(S702−NO)、S704へ進む。先頭座標と終端座標との間に変換前座標が含まれている場合には、変換前画素がキャッシュメモリ20に記憶されていると判定され(S702−YES)、S716へ進む。
【0025】
例えば、タグチェッカ13は、式2〜式6を用いてS702を実行する。式2〜式6において、nは1つの画素パッケージPACに含まれる画素数を示し、wは変換前画像領域の横方向の画素数を示す。タグチェッカ13は、式2及び式3を用いて、ある画素パッケージPACjの先頭座標(Xb,Yb)を算出し、式4及び式5を用いて、ある画素パッケージPACjの終端座標(Xe,Ye)を算出する。式2は、Xbが、(j−1)×nをwで割ったときの余りであることを意味する。式4は、Xeが、j×nをwで割ったときの余りであることを意味する。式3及び式5では、右辺は切り捨てられる(すなわち、左辺は整数である)。次いで、タグチェッカ13は、式6が成立する場合に、変換前画素がキャッシュメモリ20に記憶されていると判定する。
【数2】

【数3】

【数4】

【数5】

【数6】

【0026】
<S704> タグチェッカ13は、タグ領域Tiのキャッシュライン情報に基づいて、キャッシュラインCLiがフェッチ中か否であるかを判定する。キャッシュラインCLiがフェッチ中でない場合には(S704−NO)、S706へ進む。キャッシュラインCLiがフェッチ中である場合には(S704−YES)、S716へ進む。
【0027】
<第1フェッチ要求発行(S706)> タグチェッカ13は、第1フェッチ要求を発行する。第1フェッチ要求は、キャッシュラインをフェッチ中の状態に更新すると同時に、外部メモリ30に対して、第1領域MA1に格納された画素パッケージPACjをキャッシュメモリ20へ転送することを要求する。これにより、新しい変換前画素は、外部メモリ30へのアクセスの終了後にキャッシュメモリに格納される。タグチェッカ13は、要求を発行すると、外部メモリ30へのアクセスの終了を待たずに、S716を実行する。
【0028】
<変換要求発行(S716)> タグチェッカ13は、変換要求を発行する。変換要求は、S602で決定された変換後座標と、S603で計算された変換前座標と、を含む。変換要求は、変換前座標を参照して、変換後座標に位置する変換後画素値を計算することを要求する。次いで、タグチェッカ13は、発行した変換要求をバッファ14に書き込む。バッファ14は、画素参照部15により読み出されるまで変換要求を保持する。S716が終了すると、第1キャッシュ保証が終了し、S605へ進む。
【0029】
<S605> 全ての変換前画素について第1キャッシュ保証が完了するまで(S605−NO)、S601〜S604は繰り返し実行される。全ての変換前画素について第1キャッシュ保証が完了すると(S605−YES)、変換要求発行が終了し、S504へ進む。
【0030】
次に、第1実施形態に係る画像変換について説明する。図8は、第1実施形態に係る画像変換の手順を示すフローチャートである。図9は、第1実施形態に係る第2キャッシュ保証の手順を示すフローチャートである。画像変換は、キャッシュメモリ20に記憶された変換前画素を参照して、変換後画素値を計算する処理である。第2キャッシュ保証は、画像変換において、変換後画素値を計算するための変換前画素がキャッシュメモリ20に記憶されていることを保証する処理である。
【0031】
<S801> バッファ14が空ではない(つまり、バッファ14に要求がある)場合には(S801−NO)、S802へ進む。バッファ14が空である(つまり、バッファ14に要求がない)場合には(S801−NO)、バッファが空ではなくなった後に、S802へ進む。すなわち、バッファ14に少なくとも1つの要求がある場合に、S802へ進む。
【0032】
<第2キャッシュ保証(S802)> 画素参照部15は、第1キャッシュ保証でバッファ14に保持された変換要求の変換前座標に位置する変換前画素がキャッシュメモリ20に記憶されている場合に、変換前画素をキャッシュメモリ20から読み出す。第2キャッシュ保証は、図9の手順に従って実行される。
【0033】
<S902> 画素参照部15は、タグに基づいて、第1キャッシュ保証でバッファ14に保持された変換要求の変換前座標に位置する変換前画素がキャッシュメモリ20に記憶されているか否かを判定する。具体的には、先頭座標と終端座標との間に変換要求の変換前座標が含まれていない場合には、変換前座標に位置する変換前画素がキャッシュメモリ20に記憶されていないと判定され(S902−NO)、S904へ進む。先頭座標と終端座標との間に変換前座標が含まれている場合には、変換前座標に位置する変換前画素がキャッシュメモリ20に記憶されていると判定され(S902−YES)、S916へ進む。
【0034】
<S904> 画素参照部15は、キャッシュライン情報に基づいて、キャッシュラインCLiがフェッチ中か否であるかを判定する。キャッシュラインCLiがフェッチ中でない場合には(S906−NO)、S906へ進む。キャッシュラインCLiがフェッチ中である場合には(S906−YES)、S902へ戻る。
【0035】
<第2フェッチ要求(S906)> 画素参照部15は、第2フェッチ要求を発行する。第2フェッチ要求は、外部メモリ30に対して、第1領域MA1に格納された画素パッケージPACjをキャッシュメモリ20へ転送することを要求する。これにより、新しい変換前画素がキャッシュメモリ20に記憶される。S906が終了すると、S902へ戻る。
【0036】
<画素読み出し(S916)> 画素参照部15は、キャッシュメモリ20から変換前画素を読み出す。具体的には、画素参照部15は、キャッシュラインCLiに記憶された画素パッケージPACjのうち、変換要求の変換前座標に位置する変換前画素を読み出す。S916が終了すると、第2キャッシュ保証が終了し、S803へ進む。
【0037】
<変換後画素値計算(S803)> 画素値計算部16は、キャッシュメモリ20から読み出された変換前画素を参照して、変換後画素値を計算する。具体的には、画素値計算部16は、入出力インタフェース40を介して変換パターンを取得し、取得した変換パターンに対応する画素値計算アルゴリズムを用いて、読み出された変換前画素を参照して、変換後画素値を計算する。
【0038】
<変換後画素出力(S804)> 出力部17は、S803で計算された変換後画素値を有する変換後画素を外部メモリ30に書き込む。具体的には、出力部17は、バッファ14に保持された変換要求の変換後座標に対応する第2領域MA2のアドレスに変換後画素を書き込む。
【0039】
<S805> 全ての変換前画素について第2キャッシュ保証が完了するまで(S805−NO)、S801〜S804は繰り返し実行される。全ての変換前画素について第2キャッシュ保証が完了すると(S805−YES)、画像変換が終了し、S504へ進む。
【0040】
第1実施形態によれば、画素変換において変換後画素値を計算する前に、変換後画素値を計算するのに参照される変換前画素をキャッシュメモリに記憶する。その結果、外部メモリ30へのアクセスが不要になる。これにより、キャッシュメモリ20の利用効率及び外部メモリ30へのアクセスレイテンシを改善することができる。
【0041】
(第2実施形態)
本発明の第2実施形態について説明する。第2実施形態は、変換後座標を決定するときに、変換パターンに応じて変換後座標を決定する例である。なお、第1実施形態と同様の説明は省略する。
【0042】
第2実施形態に係る画像処理装置の動作について説明する。図10は、第2実施形態に係る変換後座標決定の手順を示すフローチャートである。図11は、変換パターン毎の実行順を示す概略図である。第2実施形態に係る変換後座標決定は、カウンタ11により実行される処理である。すなわち、第2実施形態に係る変換後座標決定は、バッファ14に空きがある場合に実行される。
【0043】
<変換パターン取得(S1002)> カウンタ11は、入出力インタフェース40を介して画像生成装置60から供給される変換パターンを取得する。変換パターンは、例えば任意の角度で画像を回転させるパターンを示す情報であって、例えば画像生成装置60のユーザ又は画像生成装置60の機能を実現するアプリケーションによって決められる。
【0044】
<S1004> カウンタ11は、取得した変換パターンに対応する座標計算アルゴリズムの有無を判定する。カウンタ11の内部メモリには、例えば複数の座標計算アルゴリズムが記憶されている。各座標計算アルゴリズムは、図11に示すような所定の変換パターンの実行順を示す。図11(A)はラスタスキャンの、図11(B)は45°回転の、図11(C)は90°回転の、図11(D)は135°回転の、図11(E)は180°回転の、図11(F)は225°回転の、図11(G)は270°回転の、図11(H)は315°回転の、実行順を示す。取得した変換パターンに対応する座標計算アルゴリズムがある場合には(S1004−YES)、S1006へ進む。取得した変換パターンに対応する座標計算アルゴリズムがない場合には(S1004−NO)、S1016へ進む。
【0045】
<アルゴリズム選択(S1006)> カウンタ11は、複数の座標計算アルゴリズムの中から、取得した変換パターンに対応する座標計算アルゴリズムを選択する。例えば、取得した変換パターンが45°回転の場合には、図11(B)の45°回転の実行順を示す座標計算アルゴリズムが選択される。
【0046】
<近似アルゴリズム選択(S1016)> カウンタ11は、複数の座標計算アルゴリズムの中から、取得した変換パターンに最も近い変換パターンに対応する座標計算アルゴリズム(すなわち、取得した変換パターンの実行順に最も近い実行順を示す座標計算アルゴリズム)を選択する。例えば、取得した変換パターンが100°回転の場合には、図11(C)の90°回転の実行順を示す座標計算アルゴリズムが選択される。
【0047】
<変換後座標シフト(S1008)> カウンタ11は、S1006又はS1016で選択された座標計算アルゴリズムに従って変換後座標を決定する。具体的には、カウンタ11は、選択された座標決定アルゴリズムを用いて、変換後座標の値を更新する。変換後座標は、変換パターンに一致する又は変換パターンに近似する実行順に従ってシフトする。
【0048】
<S1009> 全ての変換後座標についてS1008が完了するまで(S1009−NO)、S1008は繰り返し実行される。全ての変換後座標についてS1008が完了すると(S1009−YES)、S603へ進む。S603〜S605は、第1実施形態と同様である。
【0049】
なお、第2実施形態では、画像生成装置60が座標計算アルゴリズムを選択しても良い。この場合には、複数の座標計算アルゴリズムを画像生成装置60の内部メモリに予め記憶させておく。画像生成装置60は、変換パターンに対応する座標計算アルゴリズムを選択し、画像データとともに画像処理装置10に供給する。カウンタ11は、S1002において、入出力インタフェース40を介して画像生成装置60から供給される変換パターンに加えて、座標計算アルゴリズムを取得する。この場合には、S1004、S1006、及びS1016は省略される。
【0050】
第2実施形態によれば、変換パターンに応じて選択された座標計算アルゴリズムを用いて変換後座標が決定される。このため、変換パターンと一致する又は変換パターンに近似する実行順に従い、変換前画素がキャッシュメモリ20に記憶される。その結果、ある変換後画素を計算するための変換前画素が、それ以前の変換後画素を計算するときに、すでにキャッシュメモリ20上に記憶されている可能性が高くなる。これにより、キャッシュメモリ20の利用効率及び外部メモリ30へのアクセスレイテンシを第1実施形態よりも改善することができる。周辺画素を含む複数の変換前画素を参照して変換後画素値を計算する必要がある場合(例えば、100°回転の場合)には、第2実施形態が特に有効である。
【0051】
(第3実施形態)
本発明の第3実施形態について説明する。第3実施形態は、変換後座標を決定するときに、所定のブロック単位で変換後座標を決定する例である。なお、上述の実施形態と同様の説明は省略する。
【0052】
第3実施形態に係る画像処理装置の動作について説明する。図12は、第3実施形態に係る変換後座標決定の手順を示すフローチャートである。図13は、第3実施形態に係るブロック領域の概略図である。
【0053】
<ブロック領域設定(S1202)> カウンタ11は、第2領域MA2に複数のブロック領域を設定する。各ブロック領域は、第2領域MA2の任意の一点を始点とし、キャッシュメモリ20のキャッシュラインサイズに相当する縦及び横の大きさを持つ矩形状の領域内に位置する変換後画素が格納される領域である。ブロック領域は、図13に示すように、例えば点(0,0)を始点として、キャッシュラインサイズ100に相当する100×100の矩形状の領域内に位置するような変換後画素を格納する第2領域MA2の一部である。
【0054】
<変換後座標更新(S1204)> カウンタ11は、S1202で設定されたブロック領域毎に、所定の実行順に従って変換後座標を決定する。すなわち、カウンタ11は、画像データ全体ではなく、ブロック領域毎に、変換後座標を所定の実行順に従って決定する。
【0055】
<S1206> 設定された全てのブロック領域について変換後座標更新が完了するまで(S1206−NO)、S1204は繰り返し実行される。設定された全てのブロック領域について変換後座標更新が完了すると(S1206−YES)、S603へ進む。S603〜S605は、ブロック領域毎に実行される。
【0056】
第3実施形態の作用効果について説明する。図14は、第3実施形態の作用効果を説明する概略図である。図14は、図11の実行順に対応する変換パターンと一致しない回転角度(80°)で画像を回転させる例を示す。図14(A)は、ブロック領域に限らず連続する25画素を図11(C)の実行順で変換する例であり、図14(B)は、連続する25画素をブロック領域において変換する例である。
【0057】
従来技術では、変換前画素は、キャッシュラインサイズ単位(すなわち、画素パッケージ単位)でキャッシュメモリ20に転送される。しかしながら、図14(A)に示すような80°回転の場合には、変換後画素値を計算するときに、変換前画素の一部(画素PX1及びPX2)のみが図14(A)の連続する25画素を変換するために参照される。
【0058】
一方、第3実施形態では、変換前画素のパック中の画素は、ブロック中の連続する25画素の変換において多く参照される(画素PX1からPX5)。すなわち、第3実施形態(図14(B))は、従来(図14(A))に比べて、キャッシュメモリ20に記憶されたキャッシュラインサイズ単位のデータの利用効率が高いことを示す。
【0059】
第3実施形態によれば、ブロック領域毎に変換後座標が決定され、変換後座標決定後の処理はブロック領域毎に実行される。その結果、変換後画素値を計算するのに参照される変換前画素がキャッシュメモリ20に記憶されている間(すなわち、キャッシュメモリ20に記憶された変換前画素が削除される前)に、変換後画素値計算が実行される。これにより、キャッシュメモリ20の利用効率及び外部メモリ30へのアクセスレイテンシが第1実施形態よりも改善する。複数の変換前画素を参照して変換後画素値を計算する場合には、第3実施形態が特に有効である。
【0060】
また、第3実施形態は、第2実施形態と組み合わせても良い。この場合には、S1202と、S1002〜S1006及びS1016と、が順不動に実行される。これにより、キャッシュメモリ20の利用効率及び外部メモリ30へのアクセスレイテンシを第2実施形態よりも改善することができる。
【0061】
また、第2及び第3実施形態は、それぞれ、第1実施形態から独立しても良い。この場合には、図10又は図12の変換後座標決定が終了した後に、従来と同様に、変換前画素を参照して変換後画素値が計算される。
【0062】
また、第2又は第3実施形態では、変換後座標決定が終了した後の第1キャッシュ保証が省略されても良い。すなわち、図10又は図12の変換後座標決定が完了した後に、変換前座標計算を実行する。この場合には、タグチェッカ13及びバッファ14は不要である。
【0063】
本実施形態に係る画像処理システム1の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、画像処理システム1の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【0064】
また、本実施形態に係る画像処理システム1の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【0065】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0066】
1 画像処理システム
10 画像処理装置
11 カウンタ
12 座標計算部
13 タグチェッカ
14 バッファ
15 画素参照部
16 画素値計算部
17 出力部
20 キャッシュメモリ
30 外部メモリ
40 入出力インタフェース
51 外部バス
52 内部バス
60 画像生成装置
70 ネットワーク

【特許請求の範囲】
【請求項1】
外部メモリ及びキャッシュメモリに接続される画像処理装置において、
所定の実行順に従って変換後座標を決定するカウンタと、
前記変換後座標に位置する変換後画素の変換後画素値を計算するための変換前座標を計算する座標計算部と、
前記変換前画素を参照して前記変換後画素値を計算することを要求する変換要求を生成するタグチェッカと、
前記変換要求に基づいて、前記変換前座標に位置する変換前画素が前記キャッシュメモリに記憶されている場合に、前記変換前画素を前記キャッシュメモリから読み出す画素参照部と、
前記読み出された変換前画素を参照して、前記変換後画素値を計算する画素値計算部と、
前記変換後画素値を有する変換後画素を前記外部メモリに書き込む出力部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記タグチェッカは、前記キャッシュメモリのタグに基づいて、前記変換前画素が前記キャッシュメモリに記憶されているか否かを判定し、前記変換前画素が前記キャッシュメモリに記憶されている場合に、前記変換要求を生成し、前記変換前画素が前記キャッシュメモリに記憶されていない場合に、前記キャッシュメモリのキャッシュライン情報に基づいて、前記キャッシュラインがフェッチ中であるか否かを判定し、前記キャッシュラインがフェッチ中でない場合に第1フェッチ要求を発行する、請求項1に記載の画像処理装置。
【請求項3】
前記画素参照部は、前記キャッシュメモリのタグに基づいて、前記変換前画素が前記キャッシュメモリに記憶されているか否かを判定し、前記キャッシュメモリのキャッシュライン情報に基づいて、前記キャッシュラインがフェッチ中か否であるかを判定し、前記キャッシュラインがフェッチ中でない場合には、第2フェッチ要求を発行する、請求項2に記載の画像処理装置。
【請求項4】
前記変換要求を保持するバッファをさらに備え、
前記カウンタは、前記バッファがフルでない場合に、前記変換後座標を決定する、請求項1乃至3の何れか1項に記載の画像処理装置。
【請求項5】
前記カウンタは、複数の座標計算アルゴリズムを記憶し、取得した変換パターンに対応する座標計算アルゴリズム示す実行順に従って前記変換後座標を決定し、前記取得した変換パターンに対応する座標計算アルゴリズムを記憶していない場合には、前記取得した変換パターンに最も近い変換パターンに対応する座標計算アルゴリズムを選択する、請求項1乃至4の何れか1項に記載の画像処理装置。
【請求項6】
複数の画素を含む画像データを記憶する外部メモリと、
変換前画素を記憶するキャッシュメモリと、
所定の実行順に従って変換後座標を決定するカウンタと、
前記変換後座標に位置する変換後画素の変換後画素値を計算するための変換前座標を計算する座標計算部と、
前記変換前画素を参照して前記変換後画素値を計算することを要求する変換要求を生成するタグチェッカと、
前記変換要求に基づいて、前記変換前座標に位置する変換前画素が前記キャッシュメモリに記憶されている場合に、前記変換前画素を前記キャッシュメモリから読み出す画素参照部と、
前記読み出された前記変換前画素を参照して、前記変換後画素値を計算する画素値計算部と、
前記変換後画素値を有する変換後画素を前記外部メモリに書き込む出力部と、
を備えることを特徴とする画像処理システム。

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


【公開番号】特開2012−150627(P2012−150627A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−8470(P2011−8470)
【出願日】平成23年1月19日(2011.1.19)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】