Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2019003610) PROCESSING DEVICE
Document

明 細 書

発明の名称 処理装置

技術分野

0001  

背景技術

0002  

先行技術文献

特許文献

0003  

発明の概要

発明が解決しようとする課題

0004  

課題を解決するための手段

0005  

発明の効果

0006  

図面の簡単な説明

0007  

発明を実施するための形態

0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054  

符号の説明

0055  

請求の範囲

1   2   3   4   5   6  

図面

1   2   3   4   5   6   7   8   9  

明 細 書

発明の名称 : 処理装置

技術分野

[0001]
 本発明は、処理装置に関する。

背景技術

[0002]
 カメラのレンズは歪特性を有するため、生成された画像データは歪みを含む。またカメラの設置状況によっては拡大・縮小・回転・剪断などの効果が生じ、生成された画像データは更に実像との差異を含む。さらに記録された画像を再生する際にも、再生機器の設置状況によっては再生画像は拡大・縮小・回転・剪断などの効果を含むこととなる。このような実像との差異を補正する画像処理装置では、補正前画像と補正後画像の対応関係を算出し、補正後画像の各画素に必要な補正前画素または画素群を読み込む。画像データを格納する記憶装置は一般にアクセス速度が高速であるほど高コストな傾向がある。したがって、1フレーム分の大きな画像データを低コストに格納するためには低速な記憶装置が選択されるが、同一データを繰り返し読み出す画像補正処理などでは、アクセス速度が低速であることが処理速度低下の要因となる。
 この問題を解決する方法の1つとして、高速な記憶装置を用いるキャッシュ方式が知られている。キャッシュ方式とは、1フレーム分の大きな画像データを格納した低速の記憶装置から、1フレームのうち一部分の小さな画像データをより高速な記憶装置に読み込み、繰り返しの読み出しは高速な記憶装置から行なう方法である。特許文献1には、入力タイルQ21の入力画像データをメモリ120から読み出して記憶部110に記憶させる際、重複領域Sの入力画像データが残された記憶部110のキャッシュ領域の画像データを除いて、入力画像領域R21の画像データをメモリ120から取得して記憶部110に記憶させる構成が開示されている。

先行技術文献

特許文献

[0003]
特許文献1 : 日本国特開2016-218612号公報

発明の概要

発明が解決しようとする課題

[0004]
 特許文献1に記載されている発明では、画像データの一部分が読み込み済みであるか否かを簡便に判断できない。

課題を解決するための手段

[0005]
 本発明の第1の態様による処理装置は、列方向および行方向に広がりを有する画像が格納される低速記憶部と、前記低速記憶部よりも高速な読み出しが可能であり、前記画像の前記列方向の全てと前記行方向の一部である所定記憶行に相当する領域を記憶する高速記憶部と、前記高速記憶部から前記画像を前記列方向に連続して読み出す読み出し部と、前記低速記憶部から前記画像を読み込み前記高速記憶部へ書き込む判定部とを備え、前記判定部は、前記列方向を所定の画素ごとに分割した処理単位列ごとに、前記高速記憶部に格納されている前記画像の前記行方向の最小または最大の行番号に基づき次に読み込む前記画像の行番号を決定する。

発明の効果

[0006]
 本発明によれば、画像データの一部分が読み込み済みであるか否かを簡便に判断できる。

図面の簡単な説明

[0007]
[図1] 画像処理システムSの構成図
[図2] 画像処理装置1の機能ブロック図
[図3] 撮影画像を示す模式図
[図4] 撮影画像において読み込まれる領域を示す図
[図5] 高速記憶部145の構造を示す模式図
[図6] 管理テーブル144の一例を示す図
[図7] 画像処理装置1の動作例を説明する図。図7(a)は1~4回目に高速記憶部145に書き込まれる領域を示す図、図7(b)は34~37回目に高速記憶部145に書き込まれる領域を示す図、図7(c)は管理テーブル144に格納される値を示す図。
[図8] キャッシュ部141の蓄積処理を示すフローチャート
[図9] キャッシュ部141の読出処理を示すフローチャート

発明を実施するための形態

[0008]
―実施の形態―
 以下、図1~図9を参照して、画像処理装置の実施の形態を説明する。
[0009]
(構成)
 図1は、画像処理装置1を含む画像処理システムSの構成図である。画像処理システムSは、画像処理装置1と、カメラ2と、認識装置3とを備える。カメラ2は、撮影して得られた画像(以下、「撮影画像」)を画像処理装置1に出力する。画像処理装置1は、撮影画像に歪み補正処理を施して歪みを補正した画像(以下、「歪み補正画像」)を生成して認識装置3に出力する。認識装置3は、歪み補正画像を用いて各種アプリケーションを実行する。なお画像処理装置1、カメラ2、および認識装置3は、それぞれが有線で接続されて上述した画像の情報を授受してもよいし、無線通信により画像の情報を授受してもよい。さらに画像処理装置1、カメラ2、および認識装置3は、同一の地点に設置されてもよいし、それぞれが異なる地点や異なる国に設置されてもよい。さらに画像処理装置1、カメラ2、および認識装置3における情報の授受は、通信により即時に行われてもよいし、画像の情報を持ち運びが可能な記憶装置に格納した後に記憶装置を移動させて画像の情報を読み出してもよい。
[0010]
 図2は、画像処理装置1の機能構成を示す機能ブロック図である。画像処理装置1は、画像入力部11と、前処理部12と、低速記憶部13と、後処理部14と、画像出力部15とを備える。画像入力部11および画像出力部15は、入出力インタフェース回路である。前処理部12および後処理部14は、たとえばFPGA(Field-Programmable Gate Array)に構成される回路である。低速記憶部13は、たとえばSD-RAMであり、後述する高速記憶部145よりもアクセス速度、すなわち読み込み速度および書き込み速度が遅い。また低速記憶部13は、所定の読み出し情報量の単位がハードウエア特性として予め定められている。たとえば読み出し情報量の単位が64バイトの場合に、低速記憶部13に対してある3バイトの情報を要求すると、要求した3バイトを含む64バイトの情報が低速記憶部13から得られる。
[0011]
 画像入力部11には、カメラ2から撮影画像が入力される。画像入力部11は入力された撮影画像を前処理部12に出力する。前処理部12は、入力された撮影画像に画素ごとの演算から成る処理、たとえば輝度調整を施し、処理後の撮影画像を低速記憶部13に格納する。後処理部14は、低速記憶部13に格納された撮影画像を読み出して、歪み補正処理を施して歪み補正画像を作成する。そして後処理部14は、作成した歪み補正画像を画像出力部15に出力する。画像出力部15は、後処理部14から出力された画像を認識装置3に出力する。
[0012]
 後処理部14は、キャッシュ部141と、歪補正部146とを備える。キャッシュ部141は、歪補正部146から要求される撮影画像の情報を歪補正部146に提供する。歪補正部146は撮影画像を読み込んで歪み補正画像を生成する。歪補正部146は、キャッシュ部141に撮影画像の一部の領域ずつの情報を要求して、撮影画像の全体を複数回に分けて取得する。キャッシュ部141は歪補正部146から要求されるおおよその領域をあらかじめ算出し、歪補正部146から要求される前に低速記憶部13から撮影画像のその領域の情報を取得する。そしてキャッシュ部141は、歪補正部146から要求があると迅速に撮影画像の情報を提供する。
[0013]
 キャッシュ部141は、簡易アドレス生成部142と、判定部143と、管理テーブル144と、高速記憶部145とを備える。簡易アドレス生成部142は、歪補正部146が備える、後述するアドレス生成部147と略同一のアドレス算出処理を実行する。これにより、次に歪補正部146から要求される撮影画像中の画素を全て含む領域、すなわち読み込み先アドレスを算出する。なお簡易アドレス生成部142が算出するアドレスは概算、たとえば10ピクセル単位であり計算の負荷が小さい。詳しくは後述する。
[0014]
 判定部143は、簡易アドレス生成部142が出力する読み込み先アドレスが示す領域のうち、まだ高速記憶部145に格納されていない領域を判断し、その領域の画素の情報を低速記憶部13から取得して高速記憶部145に格納する。判定部143は、管理テーブル144を参照して高速記憶部145に格納されている領域を判断し、必要に応じて管理テーブル144を書き換える。判定部143の動作は後に詳述する。管理テーブル144は、FPGA上に確保される記憶領域であり、管理テーブル144には高速記憶部145に格納されている撮影画像の領域を示す情報が格納される。高速記憶部145は、FPGA上に構成された記憶領域であり、低速記憶部13よりも高速なアクセスが可能である。高速記憶部145の構成は後述する。
[0015]
 歪補正部146は、アドレス生成部147と補正部148とを備える。アドレス生成部147は、補正部148が処理対象とする撮影画像の領域を示すアドレスを厳密に、たとえば1ピクセル単位で算出し、キャッシュ部141に送信する。キャッシュ部141は受信したアドレスに対応する撮影画像の情報を歪補正部146に出力する。補正部148は、キャッシュ部141から取得した情報を用いて、既知の手法により歪みおよびカラー情報の補正を行い、歪み補正画像を生成する。
[0016]
(撮影画像と画像読み込みの例)
 図3は、撮影画像を示す模式図である。撮影画像は、たとえば横1920ピクセル、縦1080ピクセルの解像度を有する。換言すると撮影画像は、1920x1080個の色情報が格子状に並べられたものである。本実施の形態では、撮影画像の左下の画素を基準位置、すなわち座標(1,1)の画素とし、図示右側をX軸のプラス方向、図示上側をY軸のプラス方向とする。撮影画像は、横方向に連続した画素の情報が低速記憶部13における連続した領域に格納される。本実施の形態では、低速記憶部13の読み出し情報量の単位に相当する撮影画像の画素の情報が10ピクセルに相当する。以下では撮影画像を横方向に10ピクセル単位でw1、w2、w3・・と呼ぶ。本実施の形態では撮影画像の横幅は1920ピクセルなので、右端はw192である。
[0017]
 歪補正部146は、撮影画像をX軸の1ピクセル目付近から正方向に走査して処理を行い、撮影画像の右端に到達するとY軸の正方向に処理対象をずらして、X軸の1ピクセル目付近から正方向に走査する。すなわち歪補正部146は、いわゆるラスタースキャンを行う。また歪み補正処理は、処理対象の画素の情報だけでなく、その周辺の画素の情報も利用するため、撮影画像を複数画素からなる複数のブロックに分割し、1ブロックを処理単位とする。すなわち歪補正部146は、所定のアルゴリズムにより補正部148の処理単位とするブロックのアドレス、すなわち撮影画像上の領域を算出する。
[0018]
 図4は、撮影画像において読み込まれる領域を示す図である。図4では、図3とは異なり横方向は読み出し情報量の単位であるw1、w2、w3・・で表記している。すなわち図4における1つの格子に格納される情報量は、図3における10個の格子に格納される情報量に等しい。図4では、歪補正部146のアドレス生成部147が生成するアドレス領域S1~S3を破線で示し、キャッシュ部141の簡易アドレス生成部142が生成するアドレス領域D1~D4を実線で示す。
[0019]
 初めにアドレス生成部147が生成するアドレス領域がS1であり、初めに簡易アドレス生成部142が生成するアドレス領域D1は前述のS1を含むように算出される。アドレス生成部147が生成するアドレス領域S1は、1ピクセル単位なので図4では10ピクセルごとの区切りを示す格子に沿っていない。その一方で簡易アドレス生成部142は10ピクセル単位でアドレス領域を算出するので、簡易アドレス生成部142が生成するアドレス領域D1は図4に示す格子に沿って存在する。2番目にアドレス生成部147が生成するアドレス領域がS2であり、2番目に簡易アドレス生成部142が生成するアドレス領域D2は前述のS2を含むように算出される。ここで、D1とD2の関係に注目すると、2つの領域は一部が重複している。
[0020]
 領域を左下の座標と右上の座標で表すと、領域D1は(w1,1)~(w5,3)であり、領域D2は(w4,3)~(w8,5)である。したがって、領域D1と領域D2は(w4,3)~(w5,3)で重複する。キャッシュ部141の判定部143は、管理テーブル144を利用することで、領域D2の読み込みの際に重複する領域である(w4,3)~(w5,3)の読み込みを省略する。判定部143の動作は後述する。なお以下では、図4に示す格子のX方向のそれぞれの区画を「列」とも呼び、格子のY方向のそれぞれの区画を「行」とも呼ぶ。たとえばw1の隣の列はw2である。
[0021]
(高速記憶部)
 図5は、高速記憶部145の構造を示す模式図である。高速記憶部145は、X方向に192個、Y方向に8個の広がりを有する格子状の記憶領域である。図5に示すそれぞれの格子に格納される情報量は、図4に示すそれぞれの格子に格納される情報量と等しく、図3に示す10個の格子に格納される情報量と等しい。したがって、高速記憶部145のX方向には撮影画像のX方向、すなわち横方向の情報が全て格納され、高速記憶部145のY方向には撮影画像のY方向の8行分の情報が格納される。また図5に示すそれぞれの格子に格納される情報の格納順番は、図3や図4と同様に図示左側から右側にかけて列番号が大きくなるように格納される。以下では、高速記憶部145のY方向の行数を「所定記憶行」とも呼ぶ。すなわち本実施の形態における所定記憶行は「8」である。図4に示す低速記憶部13に格納される撮影画像の情報と区別するために、高速記憶部145のX方向はc1、c2、c3、・・と呼び、Y方向はr1、r2、r3、・・と呼ぶ。なお以下では、図5に示す格子のX方向のそれぞれの区画を「列」とも呼び、格子のY方向のそれぞれの区画を「行」とも呼ぶ。たとえばc1の隣の列はc2である。
[0022]
(管理テーブル)
 図6は管理テーブル144の一例を示す図である。管理テーブル144は、高速記憶部145のX方向の格子のそれぞれに対応する記憶領域が設けられる。管理テーブル144には、高速記憶部145のX方向の各格子に入力されている撮影画像のY座標の最大値が格納される。たとえば図6に示す例では、c1には撮影画像のy=120までの情報が格納されていることが示されている。ただし高速記憶部145は前述のとおり8行分の情報しか格納できないため、c1にはy=113~y=120が格納されている。なお前述のとおり、歪補正部146はY軸のプラス方向に撮影画像の情報を読み進めるため、管理テーブル144に記録される数値は処理が進むにつれて増加する。
[0023]
(動作例)
 図7を参照して画像処理装置1の動作例を説明する。図7(a)は1~4回目に高速記憶部145に書き込まれる領域を示す図、図7(b)は34~37回目に高速記憶部145に書き込まれる領域を示す図、図7(c)は管理テーブル144に格納される値を示す図である。図7(a)、(b)に示す各格子の中の数字は、何回目の書き込みによりその格子に画像情報が書き込まれるかを示す。また図7における太線で囲む領域は、簡易アドレス生成部142が生成するアドレスに対応する領域である。
[0024]
 図7に示す動作例が開始する前は、高速記憶部145には撮影画像の情報が格納されていないので、図7(c)の「初期」の行に示すように、c1~c128の全ての列についてY座標の最大値がゼロである。キャッシュ部141による1回目の書き込みは、図7(a)の領域E1の全域を対象に行われる。キャッシュ部141は、図4に示す領域D1の情報を読み込み、領域E1に書き込む。このとき書き込まれた高速記憶部145の領域は図7(a)において「1」を記載している。これにより管理テーブル144のc1~c5の列には撮影画像のy=3までが読み込まれるので、管理テーブル144のc1~c5の欄には「3」が記録される。
[0025]
 次にキャッシュ部141は、簡易アドレス生成部142が算出する2つ目の領域、すなわち図4に示す領域D2を読み込む。ただし領域D2において領域D1と重複する領域、すなわち(w4,3)~(w5,3)は読み込まない。キャッシュ部141は、この判断を管理テーブル144を参照することで実現する。すなわちキャッシュ部141は、管理テーブル144のc4の欄に「3」が格納されていると、y=3以下の情報を低速記憶部13から読み込まない。そしてキャッシュ部141は、読み込んだ画素の情報を高速記憶部145の領域E2に書き込む。領域E2への書き込みが完了すると、高速記憶部145のc4~c8には撮影画像のy=5までが読み込まれたので、管理テーブル144のc4~c8の欄には「5」が記録される。
[0026]
 以下、同様にキャッシュ部141は低速記憶部13からの撮影画像の読み込みと高速記憶部145への書き込み、および管理テーブル144への書き込みを行う。ただし高速記憶部145のY方向の記憶領域は撮影画像に比べて短いので、書き込む領域が不足する。その場合はキャッシュ部141は、あたかもr8の上部にr1が存在するかのように書き込む領域を決定する。すなわち撮影画像におけるある画素のY座標をDy、その画素が書き込まれる高速記憶部145のY座標をEy、高速記憶部145のY方向の行数、すなわち所定記憶行をRとすると、これらは式(1)の関係を満たす。
  Ey=Dy%R ・・・(1)
[0027]
 すなわちEyはDyのRによる剰余である。本実施の形態ではR=8なので、たとえば撮影画像におけるY=9の画素の情報は、9%8=1なので高速記憶部145のr1の行に格納される。キャッシュ部141は、この演算に基づき書き込み先の高速記憶部145の領域を決定する。キャッシュ部141による4回目までの処理が完了すると、管理テーブル144には2行目に示す情報が格納される。
[0028]
 その後、低速記憶部13からの撮影画像の読み込みおよび高速記憶部145への書き込みが右端、すなわちw128やc128まで到達すると、簡易アドレス生成部142は算出する領域をY軸の正方向にずらす。ただしこの場合も従前に読み込んだ領域と一部重複する。たとえば図7(b)の領域E34は、簡易アドレス生成部142が算出する領域を最初にY軸の正方向にずらした直後の処理である34回目に算出するアドレスに対応する領域を示している。すなわち、簡易アドレス生成部142の算出によるとE34はc1~c5の3~5行目に対応する。しかしc1~c3の列は1回目の読み込みで3行目まで読み込み済みであり、c4~c5の列は2回目の読み込みで5行目まで読み込み済みである。そのためキャッシュ部141は、まだ読み込んでいないw1~w3の4行目~5行目の画素の情報のみを低速記憶部13から読み込み、高速記憶部145に書き込む。キャッシュ部141は、以下同様に処理を行う。キャッシュ部141による37回目までの処理が完了すると、管理テーブル144には3行目に示す情報が格納される。
[0029]
 なお、さらに処理が進み、判定部143が読み込んだ撮影画像の座標(w1,9)の画素情報は、高速記憶部145の(c1、r1)に書き込まれる。すなわち1回目の読み込みにより書き込まれた情報が上書きされる。前述のとおり、歪補正部146はラスタースキャンを行うので、Y座標を遡って画像情報を参照することはない。このような特性を有するので、高速記憶部145に従前に書き込まれた情報を保存することなく、次々に上書きをすることができる。
[0030]
(フローチャート|蓄積処理)
 図8は、キャッシュ部141が高速記憶部145に撮影画像の情報を蓄積する蓄積処理の動作を示すフローチャートである。上述した動作例を可能とするキャッシュ部141の動作をフローチャートを用いて説明する。キャッシュ部141は、歪補正部146の動作に先立って動作を開始する。
[0031]
 ステップS301では、キャッシュ部141の簡易アドレス生成部142は、最初の簡易アドレスの算出を行う。続くステップS302では、判定部143は、ステップS301において算出されたアドレス領域に含まれる全ての列を順番に処理対象としてステップS303~S307の処理を繰り返す。以下では、処理対象とする列をP列と呼ぶ。続くステップS303では、判定部143は、ステップS301において算出されたアドレス領域に含まれる全ての行を順番に処理対象としてステップS304~S306の処理を繰り返す。以下では、処理対象とする行をQ行と呼ぶ。
[0032]
 続くステップS304では、判定部143は、管理テーブル144におけるP列の欄に格納された値を読み込み、その値がQ未満であるか否かを判断する。Q未満であると判断する場合はステップS305に進み、Q以上であると判断する場合はステップS307に進む。ステップS305では、処理対象の画素の情報を低速記憶部13から読み込み、高速記憶部145におけるP列のQ%R行目、すなわち式(1)のEy行目に格納する。続くステップS306では、管理テーブル144のP列の欄の値をQに書き換えてステップS307に進む。
[0033]
 ステップS307では、歪補正部146はステップS301において算出されたアドレス領域に含まれる全ての行を処理対象としたか否かを判断する。歪補正部146は、処理対象としていない行が存在すると判断する場合はその行を処理対象としてステップS304に戻り、全ての行を処理対象としたと判断する場合はステップS308に進む。ステップS308では、歪補正部146はステップS301において算出されたアドレス領域に含まれる全ての列を処理対象としたか否かを判断する。歪補正部146は、処理対象としていない列が存在すると判断する場合はその列を処理対象としてステップS303に戻り、全ての列を処理対象としたと判断する場合はステップS309に進む。
[0034]
 ステップS309ではキャッシュ部141は、簡易アドレス生成部142によるアドレス生成が完了したか否かを判断する。換言すると、ある1枚の撮影画像の全体について処理が完了したか否かを判断する。アドレス生成が完了したと判断する場合は図8に示す動作を完了し、アドレス生成が完了していないと判断する場合はステップS310に進む。ステップS310ではキャッシュ部141は、歪補正部146から撮影画像を要求されたか否かを判断する。歪補正部146による読み込みを待たずに次々に高速記憶部145に撮影画像を読み込むと、新たに読み込んだ撮影画像の情報で上書きした後に歪補正部146から撮影画像の要求を受ける可能性があるからである。歪補正部146が画像情報を要求したと判断する場合はステップS301に戻り、歪補正部146がまだ次の画像情報を要求していないと判断する場合はステップS310に留まる。
[0035]
(フローチャート|読出処理)
 図9は、キャッシュ部141が歪補正部146の要求に応じて高速記憶部145から撮影画像の情報を読み出す読出処理の動作を示すフローチャートである。ステップS321では、キャッシュ部141は歪補正部146からの読み出し指令、すなわち撮影画像の読み込み対象のアドレスを受信する。ここでは受信したアドレスが、撮影画像の(k、l)の座標を指すとする。続くステップS322では、キャッシュ部141は、高速記憶部145において撮影画像のX座標がkの画素を含む列を特定する。列の特定は、高速記憶部145における1列に含まれる画素数を用いて算出される。たとえばk=45の場合に、本実施の形態では1列に10画素が含まれるので、45/10の商を繰り上げた値、すなわち5列目に含まれることが特定される。
[0036]
 続くステップS323では、キャッシュ部141は、高速記憶部145において撮影画像のY座標が1の座標を含む行を特定する。行の特定は、前述の式(1)に基づき行うことができる。ただし本実施の形態では高速記憶部145の行数が2の累乗なので、以下のように簡便に算出することができる。すなわち撮影画像のY座標値を2進数で表記し、下位から高速記憶部145の行数に対応する桁だけ評価する。具体的には、本実施の形態では高速記憶部145の行数が8、すなわち2の3乗なので下位3桁の値を評価する。たとえば21行目の場合は、10進数の「21」を2進数で表すと「10101」なので、下位3桁は「101」である。これを10進数に変換すると、1x2^2+0x2^1+1x2^0=5なので5行目であると特定される。
[0037]
 続くステップS324では、キャッシュ部141は、ステップS322およびステップS323において特定した座標の高速記憶部145の画素値を読み出す。続くステップS325では、キャッシュ部141はステップS324において読み出した画素値を歪補正部146に出力する。
[0038]
 上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)画像処理装置1は、列方向および行方向、すなわちX方向およびY方向に広がりを有する撮影画像が格納される低速記憶部13と、低速記憶部13よりも高速な読み出しが可能であり、撮影画像の列方向の全てと行方向の一部である8行に相当する領域を記憶する高速記憶部145と、高速記憶部145から撮影画像を列方向に連続して読み込む歪補正部146と、低速記憶部13から撮影画像を読み込み高速記憶部145へ書き込む判定部143とを備える。判定部143は、列方向を所定の画素ごとに分割した処理単位列ごとに、高速記憶部145に格納されている撮影画像の行方向の最大の行番号に基づき次に読み込む撮影画像の行番号を決定する。そのため画像処理装置1は、行番号の大小により撮影画像の一部が読み込み済みであるか否かを簡便に判断できる。
[0039]
(2)画像処理装置1は、処理単位列ごとに、高速記憶部145に格納される行方向の最小または最大の行番号を格納する管理テーブルをさらに備える。判定部143は、管理テーブルを参照することで、低速記憶部13から画像を読み込み高速記憶部145へ書き込むか否かを決定する。判定部143は、高速記憶部145へ画像を書き込む場合は、低速記憶部13から読み込んだ画像の行番号を管理テーブル144に書き込む。そのため画像処理装置1は管理テーブル144を用いて撮影画像の読み込みの要否を簡便に判断できる。
[0040]
(3)判定部143は、画像を書き込む高速記憶部145の行方向の位置を、画像の行番号の高速記憶部145の所定記憶行である「8」による剰余に基づき決定する。そのため判定部143は高速記憶部145における格納場所を簡便に特定することができる。さらにキャッシュ部141が歪補正部146から要求を受けて高速記憶部145から読み出す際にも、同様な処理により簡便に格納場所を特定することができる。
[0041]
(4)本実施の形態では、所定記憶行は2の累乗である「8」とした。そのため撮影画像の行番号を2進数で表記すれば、下位3ビットがそのまま高速記憶部145において格納されている行番号を表す。すなわち所定記憶行を2の累乗に設定することにより、格納先の行番号を特定する処理の負荷を軽減することができる。
[0042]
(5)判定部143は、画像を書き込む高速記憶部145の列方向の位置を、撮影画像における列方向の位置と一致させる。そのため画像処理装置1は、高速記憶部145への書き込み位置、および高速記憶部145からの読み込み位置を簡便に決定できる。
[0043]
(6)処理単位列の幅は、低速記憶部13から高速記憶部145へのデータ読み出し単位である。そのため画像処理装置1は低速記憶部13から効率的に撮影画像を読み込むことができる。
[0044]
(変形例1)
 高速記憶部145に格納できる画素数が低速記憶部13の読み出し単位であることは必須ではなく、その整数倍の画素数でもよい。さらにそれ以外の画素数でもよい。また上述したX方向とY方向、すなわち列方向および行方向はそれぞれ入れ替えてもよい。
[0045]
(変形例2)
 上述した実施の形態では、撮影画像の解像度を1920x1080として説明したが、撮影画像の解像度はこれに限定されない。撮影画像の解像度が上述した実施の形態と異なる場合には、これにあわせて高速記憶部145のX方向のサイズを変更する。具体的には、X方向は撮影画像におけるX方向の全画素の情報が格納できるサイズとする。なおY方向のサイズは、撮影画像の解像度の影響を受けない。
[0046]
(変形例3)
 上述した実施の形態では、高速記憶部145のY方向の幅、すなわち所定記憶行は撮影画像の8画素に相当する幅を有していた。しかし所定記憶行は「8」に限定されない。所定記憶行は、少なくとも簡易アドレス生成部142が算出するアドレス領域の最大のY方向の幅を有すればよい。ただし上述した(4)の作用効果を得るために、簡易アドレス生成部142が算出するアドレス領域の最大のY方向の幅を超える、最小の2のべき乗のサイズであることが望ましい。具体的には、簡易アドレス生成部142が算出するアドレス領域の最大のY方向の幅が17の場合は、2^4<17<2^5なので、2^5すなわち32とすることが望ましい。
[0047]
 ここで、簡易アドレス生成部142が算出するアドレス領域について補足すると、算出されるアドレス領域は、歪補正に基づくものなので、一般に中心からずれた周辺部ほど歪みが大きく、算出されるアドレス領域が大きくなる。また、レンズの歪みはレンズの加工精度や設計値により想定可能なので、事前に高速記憶部145のサイズを決定することができる。
[0048]
(変形例4)
 上述した実施の形態では歪補正部146の要求に応じて高速記憶部145から撮影画像の情報を読み出す際にY座標の値を算出した。しかし高速記憶部145に撮影画像の情報を格納する際に、撮影画像のY座標値と高速記憶部145におけるY座標の値の対応表を作成し、高速記憶部145から撮影画像の情報を読み出す際にその対応表を参照してもよい。
[0049]
(変形例5)
 上述した実施の形態では、キャッシュ部141は、図8のステップS310で説明したように、歪補正部146が画像情報を要求することを条件として撮影画像を低速記憶部13から読み込んだ。しかし、歪補正部146からの要求を確認することなく、一定時間の経過ごとに撮影画像を低速記憶部13から読み込んでもよい。この場合は、図8のステップS310において前回の低速記憶部13からの読み込みから所定の時間が経過したか否かを判断すればよい。
[0050]
(変形例6)
 図5に示した高速記憶部145の構成は概念であり、物理的に2次元に配列されたメモリ領域を確保しなくてもよい。たとえば、プログラム言語における2次元配列や1次元配列の組み合わせにより、図5に示した高速記憶部145の構成を実現してもよい。
[0051]
(変形例7)
 上述した実施の形態では、低速記憶部13はSD-RAMであり、高速記憶部145はFPGA上に確保される記憶領域であった。しかし、低速記憶部13がより低速な記憶領域、たとえばSSD(Solid State Drive)、フラッシュメモリ、ハードディスクドライブなどでもよく、高速記憶部145がSD-RAMでもよい。すなわち、低速記憶部13よりも高速記憶部145のほうが少なくとも読み出し速度が速ければよい。なお高速記憶部145がFPGA上に確保される記憶領域でない場合は、簡易アドレス生成部142、判定部143、および歪補正部146の少なくとも1つはCPUがプログラムを実行することにより実現されてもよい。
[0052]
 さらにこのプログラムは、画像処理装置1が備える不図示の入出力インタフェースを用いて、必要なときに利用可能な媒体を介して、他の装置から読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
[0053]
 上述した変形例は、それぞれ組み合わせてもよい。上記では、実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
[0054]
 次の優先権基礎出願の開示内容は引用文としてここに組み込まれる。
 日本国特許出願2017-125597(2017年6月27日出願)

符号の説明

[0055]
1…画像処理装置
11…画像入力部
12…前処理部
13…低速記憶部
14…後処理部
15…画像出力部
141…キャッシュ部
142…簡易アドレス生成部
143…判定部
144…管理テーブル
145…高速記憶部
146…歪補正部
147…アドレス生成部
148…補正部

請求の範囲

[請求項1]
 列方向および行方向に広がりを有する画像が格納される低速記憶部と、
 前記低速記憶部よりも高速な読み出しが可能であり、前記画像の前記列方向の全てと前記行方向の一部である所定記憶行に相当する領域を記憶する高速記憶部と、
 前記高速記憶部から前記画像を前記列方向に連続して読み出す読み出し部と、
 前記低速記憶部から前記画像を読み込み前記高速記憶部へ書き込む判定部とを備え、
 前記判定部は、前記列方向を所定の画素ごとに分割した処理単位列ごとに、前記高速記憶部に格納されている前記画像の前記行方向の最小または最大の行番号に基づき次に読み込む前記画像の行番号を決定する処理装置。
[請求項2]
 請求項1に記載の処理装置において、
 前記処理単位列ごとに、前記高速記憶部に格納される前記行方向の最小または最大の行番号を格納する管理テーブルをさらに備え、
 前記判定部は、前記管理テーブルを参照することで、前記低速記憶部から前記画像を読み込み前記高速記憶部へ書き込むか否かを決定し、
 前記判定部は、前記高速記憶部へ前記画像を書き込む場合は、前記低速記憶部から読み込んだ前記画像の行番号を前記管理テーブルに書き込む処理装置。
[請求項3]
 請求項1に記載の処理装置において、
 前記判定部は、前記画像を書き込む前記高速記憶部の前記行方向の位置を、前記画像の行番号の前記高速記憶部の前記所定記憶行による剰余に基づき決定する処理装置。
[請求項4]
 請求項3に記載の処理装置において、
 前記所定記憶行は、2の累乗である処理装置。
[請求項5]
 請求項1に記載の処理装置において、
 前記判定部は、前記画像を書き込む前記高速記憶部の前記列方向の位置を、前記画像における前記列方向の位置と対応させる処理装置。
[請求項6]
 請求項1に記載の処理装置において、
 前記処理単位列の幅は、前記低速記憶部からの前記画像の読み出し単位である処理装置。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]