(57)【要約】【課題】画像を保持するメモリを備える画像処理装置において、画像の処理速度を向上させる。【解決手段】画像処理装置は、書込み部、読出し部および縮小部を具備する。書込み部は、二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の画素データを複数のメモリに分散して書き込む。読出し部は、所定数の画素データを複数のメモリから読み出す。縮小部は、所定の方向に平滑化する処理を前記読み出された画素データに対して実行する。【選択図】図４
2017215629.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリと、
二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の前記画素データを前記複数のメモリに分散して書き込む書込み部と、
前記所定数の画素データを前記複数のメモリから読み出す読出し部と、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行する縮小部と
を具備する画像処理装置。
【請求項２】
前記縮小部は、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行して処理結果を出力する平滑化処理部と、
前記処理結果に基づいて新たな画素データを補間画素データとして生成する補間部と
を備える請求項１記載の画像処理装置。
【請求項３】
所定個数の前記補間画素データを二次元格子状に配列した矩形領域を保持する矩形領域保持部と、
前記矩形領域において所定の物体を検出する検出器と
をさらに具備する
請求項２記載の画像処理装置。
【請求項４】
前記画像データから生成された全ての前記補間画素データを二次元格子状に配列した縮小画像データを前記複数のメモリに分散して書き戻す書戻し処理部をさらに具備し、
前記読出し部は、前記所定数の補間画素データをさらに前記複数のメモリから読み出し、
前記縮小部は、前記所定の方向に平滑化する処理を前記読み出された補間画素データに対してさらに実行する
請求項２記載の画像処理装置。
【請求項５】
複数の縮小率を順に設定して当該設定した縮小率に対応する前記縮小画像データにおいて出力すべき前記補間画素データのアドレスを前記縮小部に供給する制御部をさらに具備し、
前記読出し部は、前記供給されたアドレスに対応する前記所定数のアドレスの前記画素データを読み出す
請求項１記載の画像処理装置。
【請求項６】
前記複数のメモリのそれぞれには２つの領域が設けられ、
前記書込み部は、前記２つの領域の一方に前記画素データを書き込む処理と前記２つの領域の他方に前記画素データを書き込む処理とを交互に実行し、
前記読出し部は、前記一方に前記画素データが書き込まれている間に前記他方から前記画素データを読み出す処理と前記他方に前記画素データが書き込まれている間に前記一方から前記画素データを読み出す処理とを交互に実行する
請求項１記載の画像処理装置。
【請求項７】
前記縮小部は、前記所定の方向に平滑化する処理と当該所定の方向に垂直な方向に平滑化する処理とを行う
請求項１記載の画像処理装置。
【請求項８】
前記読出し部は、前記所定数の画素データを同時に読み出す
請求項１記載の画像処理装置。
【請求項９】
二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の前記画素データを複数のメモリに分散して書き込む書込み手順と、
前記所定数の画素データを前記複数のメモリから読み出す読出し手順と、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行する縮小手順と
を具備する画像処理方法。
【請求項１０】
二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の前記画素データを複数のメモリに分散して書き込む書込み手順と、
前記所定数の画素データを前記複数のメモリから読み出す読出し手順と、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行する縮小手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、画像処理装置、画像処理方法、および、プログラムに関する。詳しくは、画像を保持するメモリを備える画像処理装置、画像処理方法、および、当該方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
従来より、画像内の顔や人などの物体を認識して検出する画像認識技術が、防犯や個人照合および交通などの広範な分野で利用されている。例えば、様々なサイズの物体を検出する目的で、サイズの異なる複数の縮小画像を元画像から生成して、それらの縮小画像内において固定サイズの検出ウィンドウを動かして物体を検出する画像処理装置が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２２６６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術では、元画像をフレームメモリに保持させて、そのフレームメモリから元画像を読み出して縮小画像を生成している。しかしながら、元画像のデータ量が大きいほど、画像の読出しが完了するまでの時間が長くなり、画像の処理速度が低下するという問題がある。
【０００５】
本技術はこのような状況に鑑みて生み出されたものであり、画像を保持するメモリを備える画像処理装置において、画像の処理速度を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、複数のメモリと、二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の上記画素データを上記複数のメモリに分散して書き込む書込み部と、上記所定数の画素データを上記複数のメモリから読み出す読出し部と、上記所定の方向に平滑化する処理を上記読み出された画素データに対して実行する縮小部とを具備する画像処理装置、画像処理方法、および、当該方法をコンピュータに実行させるためのプログラムである。これにより、複数のメモリから読み出された画素データに対して平滑化処理が実行されるという作用をもたらす。
【０００７】
また、この第１の側面において、上記縮小部は、上記所定の方向に平滑化する処理を上記読み出された画素データに対して実行して処理結果を出力する平滑化処理部と、上記処理結果に基づいて新たな画素データを補間画素データとして生成する補間部とを備えてもよい。これにより、補間画素データが生成されるという作用をもたらす。
【０００８】
また、この第１の側面において、所定個数の上記補間画素データを二次元格子状に配列した矩形領域を保持する矩形領域保持部と、上記矩形領域において所定の物体を検出する検出器とをさらに具備してもよい。これにより、矩形領域において物体が検出されるという作用をもたらす。
【０００９】
また、この第１の側面において、上記画像データから生成された全ての上記補間画素データを二次元格子状に配列した縮小画像データを上記複数のメモリに分散して書き戻す書戻し処理部をさらに具備し、上記読出し部は、上記所定数の補間画素データをさらに上記複数のメモリから読み出し、上記縮小部は、上記所定の方向に平滑化する処理を上記読み出された補間画素データに対してさらに実行してもよい。これにより、縮小画像データが書き戻されるという作用をもたらす。
【００１０】
また、この第１の側面において、複数の縮小率を順に設定して当該設定した縮小率に対応する上記縮小画像データにおいて出力すべき上記補間画素データのアドレスを上記縮小部に供給する制御部をさらに具備し、上記読出し部は、上記供給されたアドレスに対応する上記所定数のアドレスの上記画素データを読み出してもよい。これにより、補間画素データに対応する所定数の画素データが読み出されるという作用をもたらす。
【００１１】
また、この第１の側面において、上記複数のメモリのそれぞれには２つの領域が設けられ、上記書込み部は、上記２つの領域の一方に上記画素データを書き込む処理と上記２つの領域の他方に上記画素データを書き込む処理とを交互に実行し、上記読出し部は、上記一方に上記画素データが書き込まれている間に上記他方から上記画素データを読み出す処理と上記他方に上記画素データが書き込まれている間に上記一方から上記画素データを読み出す処理とを交互に実行してもよい。これにより、２つの領域の一方に画素データが書き込まれている間に他方から画素データが読み出されるという作用をもたらす。
【００１２】
また、この第１の側面において、上記縮小部は、上記所定の方向に平滑化する処理と当該所定の方向に垂直な方向に平滑化する処理とを行ってもよい。これにより、上記所定の方向に平滑化する処理と、その所定の方向に垂直な方向に平滑化する処理とが行われるという作用をもたらす。
【００１３】
また、この第１の側面において、上記読出し部は、上記所定数の画素データを同時に読み出してもよい。これにより、所定数の画素データが同時に読み出されるという作用をもたらす。
【発明の効果】
【００１４】
本技術によれば、画像を保持するメモリを備える画像処理装置において、画像の処理速度を向上させることができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１５】
【図１】本技術の第１の実施の形態における画像処理装置の一構成例を示すブロック図である。
【図２】本技術の第１の実施の形態におけるフレームメモリへの書込み方法を説明するための図である。
【図３】本技術の第１の実施の形態における入力インターフェースの一構成例を示すブロック図である。
【図４】本技術の第１の実施の形態におけるスケーラの一構成例を示すブロック図である。
【図５】本技術の第１の実施の形態における水平方向縮小部の一構成例を示すブロック図である。
【図６】本技術の第１の実施の形態における垂直方向縮小部の一構成例を示すブロック図である。
【図７】本技術の第１の実施の形態における物体の検出方法を説明するための図である。
【図８】比較例における物体の検出方法を説明するための図である。
【図９】本技術の第１の実施の形態における画像処理装置の動作の一例を示すタイミングチャートである。
【図１０】本技術の第１の実施の形態における１画素目を補間する動作を説明するための図である。
【図１１】本技術の第１の実施の形態における２画素目を補間する動作を説明するための図である。
【図１２】本技術の第１の実施の形態における縮小率が１／１６の際の縮小前後の画像内の画素データの一例を示す図である。
【図１３】本技術の第１の実施の形態における縮小率が１／９および１／４の際の縮小前後の画像内の画素データの一例を示す図である。
【図１４】本技術の第１の実施の形態における検出ウィンドウメモリの書込み方法を説明するための図である。
【図１５】本技術の第１の実施の形態における検出ウィンドウの移動方法を説明するための図である。
【図１６】本技術の第１の実施の形態における画像処理装置の動作の一例を示すフローチャートである。
【図１７】本技術の第１の実施の形態における縮小処理を示すフローチャートである。
【図１８】本技術の第１の実施の形態における検出処理を示すフローチャートである。
【図１９】本技術の第２の実施の形態における画像処理装置の一構成例を示すブロック図である。
【図２０】本技術の第２の実施の形態におけるフレームメモリのアクセス方法を説明するための図である。
【図２１】本技術の第３の実施の形態における画像処理装置の一構成例を示すブロック図である。
【図２２】本技術の第３の実施の形態におけるフレームメモリの一構成例を示す図である。
【図２３】本技術の第３の実施の形態における画像処理装置の動作の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（画像を複数のメモリに分散して書き込む例）
２．第２の実施の形態（画像を複数のメモリに分散して書き込んだ後に、縮小画像を書き戻す例）
３．第３の実施の形態（奇数領域および偶数領域に分割された複数のメモリに画像を分散して書き込む例）
【００１７】
＜１．第１の実施の形態＞
［画像処理装置の構成例］
図１は、第１の実施の形態における画像処理装置１００の一構成例を示すブロック図である。この画像処理装置１００は、入力画像データを処理して所定の物体を検出するものである。例えば、カメラ、スマートフォンやパーソナルコンピュータが画像処理装置１００として想定される。画像処理装置１００は、スケーラ制御部１１０、入力インターフェース１２０、フレームメモリ１３０およびスケーラ２００を備える。また、画像処理装置１００は、書込み制御部１４０、検出ウィンドウメモリ１５０、検出器１６０、検出結果メモリ１７０および出力インターフェース１８０を備える。
【００１８】
入力インターフェース１２０は、画像処理装置１００に入力された入力画像データを取得するものである。例えば、ソース機器や撮像素子により生成された画像データが入力画像データとして画像処理装置１００に入力される。この入力画像データは、二次元格子状に配列された画素データを含む。入力インターフェース１２０は、その入力画像データを分割してフレームメモリ１３０に書き込む。入力画像データの分割方法の詳細については後述する。フレームメモリ１３０は、入力画像データ（フレーム）を保持するものである。なお、入力インターフェース１２０は、特許請求の範囲に記載の書込み部の一例である。
【００１９】
スケーラ制御部１１０は、スケーラ２００を制御するものである。このスケーラ制御部１１０は、互いに異なる複数の縮小率を順に設定する。そして、スケーラ制御部１１０は、設定した縮小率に基づいて、入力画像データにおいて補間すべき画素データのアドレスを順にスケーラ２００に供給する。例えば、入力画像データを水平方向において１／４に縮小する場合、０乃至３列の画素の中間の１．５列が補間され、次に４乃至７列の中間の５．５列が補間される。なお、スケーラ制御部１１０は、特許請求の範囲に記載の制御部の一例である。
【００２０】
スケーラ２００は、画像データを縮小するものである。このスケーラ２００は、スケーラ制御部１１０から供給されたアドレスに対応する複数の画素データをフレームメモリ１３０から同時に読み出す。そして、スケーラ２００は、それらの画素データから新たな画素データを補間画素データとして生成し、書込み制御部１４０に供給する。なお、スケーラ２００は、特許請求の範囲に記載の縮小部の一例である。
【００２１】
書込み制御部１４０は、検出ウィンドウメモリ１５０に補間画素データを書き込むものである。検出ウィンドウメモリ１５０は、補間画素データを二次元格子状に配列した矩形領域を検出ウィンドウとして保持するものである。なお、検出ウィンドウメモリ１５０は、特許請求の範囲に記載の矩形領域保持部の一例である。
【００２２】
検出器１６０は、検出ウィンドウにおいて特定の物体（顔や人など）を検出するものである。物体の検出において、検出ウィンドウの特徴量を抽出して予め学習しておいたデータとマッチングする方法や、テンプレートマッチング法などが用いられる。検出器１６０は、検出した位置ごとに物体の有無を示す検出結果を検出結果メモリ１７０に保持させる。
【００２３】
検出結果メモリ１７０は、検出結果を保持するものである。出力インターフェース１８０は、検出結果を検出結果メモリ１７０から読み出して外部に出力するものである。
【００２４】
図２は、第１の実施の形態におけるフレームメモリへの書込み方法を説明するための図である。フレームメモリ１３０には、分割領域メモリ１３１乃至１３４の４つのメモリが設けられる。なお、分割領域メモリ１３１乃至１３４は、特許請求の範囲に記載のメモリの一例である。
【００２５】
以下、入力画像データにおいて水平方向に配列された画素データの集合を「行」と称し、垂直方向に配列された画素データの集合を「列」と称する。入力インターフェース１２０には、行が順に入力され、行のそれぞれにおいて行内の画素データが順に入力される。例えば、上端から下端への方向に行が順に入力され、行のそれぞれにおいて左端から右端への方向に画素データが順に入力される。
【００２６】
入力インターフェース１２０は、水平方向に配列された４個の画素データを分割領域メモリ１３１乃至１３４に分散して書き込む。例えば、入力インターフェース１２０は、４ｎ（ｎは整数）番目に入力された画素データを分割領域メモリ１３１に書き込み、４ｎ＋１番目に入力された画素データを分割領域メモリ１３２に書き込む。また、入力インターフェース１２０は、４ｎ＋２番目に入力された画素データを分割領域メモリ１３３に書き込み、４ｎ＋３番目に入力された画素データを分割領域メモリ１３４に書き込む。これにより、０列目や４列目などの４ｎ番目の列が分割領域メモリ１３１に保持される。同様に、１列目や５列目などの４ｎ＋１番目の列が分割領域メモリ１３２に保持される。
【００２７】
以下、分割領域メモリ１３１乃至１３４のそれぞれに保持された画素データの集合を「分割領域」と称する。
【００２８】
なお、入力インターフェース１２０は、水平方向に配列された４個の画素データを分散して書き込んでいるが、垂直方向に配列された４個の画素データを分散して書き込んでもよい。また、入力インターフェース１２０は、４個の画素データを分散して４個のメモリ（１３１乃至１３４）に書き込んでいるが、４個以外の複数の画素データを分散してもよい。例えば、入力インターフェース１２０は、２個の画素データを２個のメモリに分散して書き込んでもよいし、８個の画素データを８個のメモリに分散して書き込んでもよい。
【００２９】
また、分散対象の画素データの個数と、メモリの個数とを両方とも４個としているが、これらは異なっていてもよい。例えば、入力インターフェース１２０は、８個の画素データを４個ずつに分けて、２個のメモリに書き込んでもよい。
【００３０】
［入力インターフェースの構成例］
図３は、第１の実施の形態における入力インターフェース１２０の一構成例を示すブロック図である。この入力インターフェース１２０は、切替え制御部１２１およびセレクタ１２２を備える。
【００３１】
切替え制御部１２１は、画素イネーブル信号ＥＮに同期してセレクタ１２２の出力先を変更させるものである。ここで、画素イネーブル信号ＥＮは、画素データが入力されるタイミングを示す信号である。セレクタ１２２は、分割領域メモリ１３１乃至１３４のいずれかを選択して、そのメモリに画素データを出力するものである。切替え制御部１２１は、４ｎ回目に画素イネーブル信号ＥＮが立ち上がると分割領域メモリ１３１へ出力させ、４ｎ＋１回目に画素イネーブル信号ＥＮが立ち上がると分割領域メモリ１３２へ出力させる。また、切替え制御部１２１は、４ｎ＋２回目に画素イネーブル信号ＥＮが立ち上がると分割領域メモリ１３３へ出力させ、４ｎ＋３回目に画素イネーブル信号ＥＮが立ち上がると分割領域メモリ１３４へ出力させる。
【００３２】
［スケーラの構成例］
図４は、第１の実施の形態におけるスケーラ２００の一構成例を示すブロック図である。このスケーラ２００は、読出し部２１０、水平方向縮小部２２０および垂直方向縮小部２３０を備える。
【００３３】
読出し部２１０は、スケーラ制御部１１０から供給されたアドレスに対応する４個の画素データを分割領域メモリ１３１乃至１３４から同時に読み出すものである。例えば、スケーラ制御部１１０により「１．５」が補間すべき列のアドレスとして供給されると、読み出し部２１０は、その列の周辺の０乃至３列の４個の画素データを同時に読み出す。
【００３４】
ここで、入力画像データの左端から０列目は、分割領域メモリ１３１内の左端から０列目に保持され、入力画像データの左端から１列目は、分割領域メモリ１３２内の左端から０列目に保持されている。また、入力画像データの左端から２列目は、分割領域メモリ１３３内の左端から０列目に保持され、入力画像データの左端から３列目は、分割領域メモリ１３４内の左端から０列目に保持されている。このため、読出し部２１０は、１・５列が供給された際に、分割領域メモリ１３１乃至１３４のそれぞれの０列目を読み出せばよい。
【００３５】
以下、入力画像データの水平方向のアドレス（すなわち、列アドレス）をｉ（ｉは０以上の実数）とし、垂直方向のアドレス（すなわち、行アドレス）をｊ（ｊは０以上の実数）とする。また、分割領域メモリ１３１乃至１３４を識別する識別番号をｍ（ｍは０乃至３）とする。アドレス（ｉ、ｊ）が供給されると、読出し部２１０は、分割領域メモリ１３１乃至１３４のそれぞれのアドレス（ｋ、ｊ）から画素データを読み出す。このｋは、水平方向における相対アドレスであり、次の式により表される。
ｋ＝ｉｎｔ{（ｉ＋２−ｍ）／４}
上式においてｉｎｔ（）は、端数を切り捨てて整数部を返す関数である。
【００３６】
また、読出し部２１０は、４個の画素データを整列する。読出し部２１０は、例えば、次の式によりｒを演算し、左端から右端に向けてｒの降順に画素データを整列して水平方向縮小部２２０に供給する。
ｒ＝ｍｏｄ｛（ｉ＋２−ｍ）／４｝
上式においてｍｏｄ（）は、分子を分母で割った余りを返す関数である。
【００３７】
なお、読出し部２１０は、４個の画素データを同時に読み出しているが、それらの一部を同時に読み出してもよい。例えば、読出し部２１０は、２個の画素データを同時に読み出す処理を２回行うことにより４個の画素データを取得してもよい。
【００３８】
水平方向縮小部２２０は、水平方向において平滑化処理および補間処理を行うものである。これらの処理により、水平方向において画像データが縮小される。水平方向縮小部２２０は、補間処理で生成した補間画素データを垂直方向縮小部２３０に供給する。
【００３９】
垂直方向縮小部２３０は、垂直方向において平滑化処理および補間処理を行うものである。これらの処理により、垂直方向において画像データが縮小される。垂直方向縮小部２３０は、補間画素データを書込み制御部１４０に供給する。なお、水平方向縮小部２２０および垂直方向縮小部２３０は、特許請求の範囲に記載の縮小部の一例である。
【００４０】
なお、スケーラ２００は、垂直方向および垂直方向において画像データを縮小しているが、それらの一方のみにおいて縮小を行ってもよい。
【００４１】
［水平方向縮小部の構成例］
図５は、第１の実施の形態における水平方向縮小部２２０の一構成例を示すブロック図である。この水平方向縮小部２２０は、水平方向ローパスフィルタ２２１および２２２と、水平方向リニア補間部２２３とを備える。
【００４２】
水平方向ローパスフィルタ２２１は、整列された４個の画素データの左端から０乃至２個目の画素データの画素値の平均を算出するものである。これにより、３個の画素データを水平方向に平滑化して、縮小の際に発生するエイリアシングを抑制することができる。この水平方向ローパスフィルタ２２１は、処理結果（すなわち、平均値）を水平方向リニア補間部２２３に供給する。
【００４３】
水平方向ローパスフィルタ２２２は、整列された４個の画素データの左端から１乃至３個目の画素データの画素値の平均を算出するものである。この水平方向ローパスフィルタ２２２は、処理結果を水平方向リニア補間部２２３に供給する。
【００４４】
なお、水平方向縮小部２２０は、水平方向ローパスフィルタ２２１および２２２により、平均を算出しているが、平滑化することができるのであれば、平均演算以外の演算を行ってもよい。例えば、水平方向縮小部２２０は、移動平均や中央値の算出を行ってもよい。また、水平方向ローパスフィルタ２２１および２２２は、特許請求の範囲に記載の第１の平滑化処理部の一例である。
【００４５】
水平方向リニア補間部２２３は、水平方向ローパスフィルタ２２１および２２２の処理結果に基づいて、補間画素データをリニア補間により補間するものである。水平方向リニア補間部２２３は、補間画素データを垂直方向縮小部２３０に供給する。
【００４６】
上述したようにスケーラ２００は、水平方向において４画素ごとに１画素を補間し、垂直方向において４画素ごとに１画素を補間する。これにより、スケーラ２００は、４×４の１６画素から１画素を補間することができる。
【００４７】
なお、水平方向縮小部２２０は、平滑化処理および補間処理の両方を行っているが、平滑化処理のみを行ってもよい。例えば、水平方向縮小部２２０は、４個の画素データの画素値の平均値を求めて、その値を補間画素データとして垂直方向縮小部２３０に供給してもよい。
【００４８】
［垂直方向縮小部の構成例］
図６は、第１の実施の形態における垂直方向縮小部２３０の一構成例を示すブロック図である。この垂直方向縮小部２３０は、レジスタ２３１、２３２および２３４と、垂直方向ローパスフィルタ２３３と垂直方向リニア補間部２３５とを備える。
【００４９】
レジスタ２３１は、水平方向縮小部２２０からの補間画素データを保持して遅延させるものである。このレジスタ２３１は、遅延させた補間画素データをレジスタ２３２および垂直方向ローパスフィルタ２３３に供給する。
【００５０】
レジスタ２３２は、レジスタ２３１からの補間画素データを保持して遅延させるものである。このレジスタ２３２は、遅延させた補間画素データを垂直方向ローパスフィルタ２３３に供給する。
【００５１】
垂直方向ローパスフィルタ２３３は、水平方向縮小部２２０、レジスタ２３１およびレジスタ２３２からの３個の補間画素データの画素データの画素値の平均を算出するものである。この垂直方向ローパスフィルタ２３３は、処理結果を垂直方向リニア補間部２３５およびレジスタ２３４に供給する。なお、水平方向ローパスフィルタ２２１および２２２と垂直方向ローパスフィルタ２３３とは、特許請求の範囲に記載の平滑化処理部の一例である。
【００５２】
レジスタ２３４は、垂直方向ローパスフィルタ２３３の処理結果を保持して遅延させるものである。このレジスタ２３１は、遅延させた処理結果を垂直方向リニア補間部２３５に供給する。
【００５３】
垂直方向リニア補間部２３５は、垂直方向ローパスフィルタ２３３およびレジスタ２３４からの処理結果に基づいて、補間画素データをリニア補間により補間するものである。この垂直方向リニア補間部２３５は、補間画素データを書込み制御部１４０に供給する。なお、水平方向リニア補間部２２３および垂直方向リニア補間部２３５は、特許請求の範囲に記載の補間部の一例である。
【００５４】
なお、垂直方向縮小部２３０は、平滑化処理および補間処理の両方を行っているが、平滑化処理のみを行ってもよい。
【００５５】
図７は、第１の実施の形態における物体の検出方法を説明するための図である。まず、フレームメモリ１３０は、４つの分割領域に分割した入力画像データ（フレーム）５００を保持する。そして、スケーラ制御部１１０は縮小率を１／１６に設定する。スケーラ２００は、分割領域メモリ１３１乃至１３４に同一の相対アドレスをリードアドレスとして供給することにより、水平方向に配列された４個の画素データを同時に読み出す。垂直方向にアドレスを順に変更して４個の読出しを４回行うことにより、スケーラ２００は、４×４の１６個の画素データをフレームメモリ１３０から取得し、それらの画素データに基づいて補間画素データを補間する。
【００５６】
補間画素データを二次元格子状に配列した検出ウィンドウ５１０は、検出ウィンドウメモリ１５０に保持される。その検出ウィンドウ５１０において、検出器１６０が特定の物体を検出する。スケーラ制御部１１０は、スケーラ２００を制御して検出ウィンドウ５１０を順に移動させ、移動に応じて検出ウィンドウメモリ１５０が更新される。
【００５７】
次に、スケーラ制御部１１０は、縮小率を１／９に設定し、スケーラ２００を制御して、同一サイズの検出ウィンドウ５１０を移動させる。以降において、スケーラ制御部１１０およびスケーラ２００は、縮小率を徐々に大きくして同様の処理を行う。このように、様々なサイズの縮小画像データにおいて、固定サイズの検出ウィンドウ５１０を移動させて物体検出を行うことにより、画像内の様々なサイズの物体を検出することができる。
【００５８】
なお、画像処理装置１００は、１／１６、１／９、・・・などのように縮小率を徐々に大きく設定しているが、逆に縮小率を徐々に小さく設定する構成であってもよい。また、画像処理装置１００は、元の入力画像データにおいて検出ウィンドウを移動させていないが、入力画像データにおいて検出ウィンドウを移動させて物体を検出してもよい。この場合には、書込み制御部１４０がフレームメモリ１３０から検出ウィンドウを読み出して検出ウィンドウメモリ１５０に書き込めばよい。
【００５９】
図８は、入力画像データを分割せずにそのままフレームメモリに保持させ、さらに縮小画像をフレームメモリに書き戻す比較例における物体の検出方法を説明するための図である。
【００６０】
この比較例において、スケーラ２００は１画素を補間するために画素の読出しを１６回行う必要がある。これに対して、画像処理装置１００では、入力画像データを４つの領域に分割してフレームメモリ１３０に保持させているため、スケーラ２００は、４画素を同時に読み出すことができる。これにより、１画素の補間に必要な読出しの回数は４回で済み、読出し速度を向上させることができる。
【００６１】
また、比較例においてスケーラは、縮小画像をフレームメモリに書き戻し、その縮小画像をさらに縮小して画像のサイズを徐々に小さくしていく。全ての縮小画像データをフレームメモリに保持させる場合には、その分のメモリ資源を要する。
【００６２】
例えば、入力画像データのサイズを１９２×１０８画素とし、水平方向および垂直方向にサイズを２７／３２倍に縮小する処理を１０回行うとする。この場合には、１６２×９１、１３７×７７、１１５×６５、９７×５５、８２×４６、６９×３９、５８×３３、４９×２８、４１×２３および３５×２０画素のサイズの１０個の縮小画像データが生成される。これらの縮小画像データと元の入力画像データとを全てフレームメモリに保持させる場合、次の式により７０２２９画素分のメモリ容量が必要となる。
７０２２９＝１９２×１０８＋１６２×９１＋１３７×７７＋１１５×６５
＋９７×５５＋８２×４６＋６９×３９＋５８×３３
＋４９×２８＋４１×２３＋３５×２０
【００６３】
これに対して、画像処理装置１００では、図７に例示したように入力画像データ５００および検出ウィンドウ５１０のみをメモリに保持させている。検出ウィンドウ５１０のサイズを２２×２０画素とすると、次の式により、２１１７６画素分のメモリ容量しか要しない。
２１１７６＝１９２×１０８＋２２×２０
【００６４】
このように、画像処理装置１００では、比較例よりもメモリ容量を削減することができる。比較例において、２回目以降に作成する縮小画像データを入力画像データの領域などに上書きすることもできるが、その構成であっても次の式により３５４７８画素分が必要となり、画像処理装置１００よりも多くのメモリ容量を要する。
３５４７８＝１９２×１０８＋１６２×９１
【００６５】
さらに、比較例では、３回目以降の縮小画像データを、その直前の縮小画像データから生成するため、縮小のたびに縮小画像データの画質が著しく低下して検出精度が低下してしまう。これに対して画像処理装置１００では、元の入力画像データから縮小画像データのそれぞれを生成するため、縮小画像データの画質の低下を抑制して検出精度を向上させることができる。
【００６６】
加えて、比較例では、画質の低下を抑制する観点から、縮小率を徐々に大きくすることは困難である。これに対して、画像処理装置１００では、元の入力画像データから縮小画像データのそれぞれを生成するため、画質を低下させずに縮小率を徐々に大きくしていくことができる。これにより、大きなサイズの物体を高い精度で早期に検出することができる。
【００６７】
図９は、本技術の第１の実施の形態における画像処理装置の動作の一例を示すタイミングチャートである。タイミングＴ１において入力画像データが入力されると、入力インターフェース１２０は、その画像データを分割してタイミングＴ２までの間にフレームメモリ１３０に書き込む。
【００６８】
タイミングＴ２においてスケーラ２００は、１／１６の縮小率により縮小画像データを生成し、次に１／９の縮小率で縮小画像データを生成する。以降においてタイミングＴ３までの間に、スケーラ２００は、徐々に縮小率を大きくして、複数の縮小画像データを生成する。また、タイミングＴ２からタイミングＴ３までの間に、縮小画像データのそれぞれにおいて検出器１６０は、物体検出を行う。
【００６９】
タイミングＴ３において次の入力画像データが入力されると入力インターフェース１２０は、その画像データを分割してフレームメモリ１３０に書き込む。スケーラ２００および検出器１６０は、書き込まれた画像データの縮小と、物体の検出とを行う。
【００７０】
図１０は、第１の実施の形態における１画素目を補間する動作を説明するための図である。同図において白色は、入力画像データ内の画素データの位置を示し、黒色は、縮小画像データ内の画素データ（すなわち、補間画素データ）の位置を示す。入力画像データにおいてアドレス（１．５、１．５）に画素を補間する場合について考える。このアドレスの周囲の４×４の画素データのうち０列目は、分割領域メモリ１３１に保持されており、１列目は分割領域メモリ１３２に保持されている。また、２列目は、分割領域メモリ１３３に保持されており、３列目は分割領域メモリ１３４に保持されている。
【００７１】
スケーラ２００は、まず、分割領域メモリ１３１乃至１３４のそれぞれの相対アドレス（０、０）から、４個の画素データを同時に読み出す。次に、スケーラ２００は、相対アドレス（０、１）から、４個の画素データを同時に読み出す。同様に、相対アドレス（０、２）および（０、３）から画素データが読み出される。これらの４回の読出しにより、１６個の画素データが読み出される。スケーラ２００は、読み出した１６個の画素データから１個の補間画素データを生成して出力する。
【００７２】
図１１は、第１の実施の形態における２画素目を補間する動作を説明するための図である。入力画像データにおいてアドレス（１．５、５．５）に画素を補間する場合について考える。
【００７３】
スケーラ２００は、分割領域メモリ１３１乃至１３４のそれぞれの相対アドレス（０、４）から、４個の画素データを同時に読み出す。次に、スケーラ２００は、相対アドレス（０、５）から、４個の画素データを同時に読み出す。同様に、相対アドレス（０、６）および（０、７）から画素データが読み出される。これらの４回の読出しにより、１６個の画素データが読み出される。スケーラ２００は、読み出した１６個の画素データから１個の補間画素データを生成して出力する。
【００７４】
このようにして、垂直方向に沿って補間画素データが順に出力される。そして、検出ウィンドウの垂直方向のサイズ（２０画素など）の分だけ補間画素データが出力されるたびに、スケーラ制御部１１０は、水平方向のアドレスを増分する。この処理の繰り返しにより、検出ウィンドウの水平方向の位置は右端に近づいてゆく。
【００７５】
そして、水平方向のアドレスが右端に達すると、スケーラ制御部１１０は、水平方向のアドレスを初期化し、垂直方向のアドレスを増分する。これにより、検出ウィンドウの水平方向の位置は左端に折り返され、垂直方向の位置は下端に近づく。
【００７６】
図１２は、第１の実施の形態における縮小率が１／１６の際の縮小前後の画像内の画素データの一例を示す図である。同図において、白丸は、縮小前の入力画像データ内の画素データを示し、黒丸は、縮小画像データ内の補間画素データの位置を示す。縮小率を１／１６とする場合には、水平方向および垂直方向において、補間対象のアドレスは、「４」ずつ増分される。例えば、（１．５、１．５）のアドレスの次に、（１．５、５．５）のアドレスがスケーラ２００に入力される。これにより、入力画像データは水平方向および垂直方向において１／４に縮小され、全体で１／１６に縮小される。
【００７７】
図１３は、第１の実施の形態における縮小率が１／９および１／４の際の縮小前後の画像内の画素データの一例を示す図である。同図におけるａは、縮小率が１／９の際の画素データの一例を示し、同図におけるｂは、縮小率が１／４の際の画素データの一例を示す。
【００７８】
縮小率を１／９とする場合には、水平方向および垂直方向において、補間対象のアドレスは、「３」ずつ増分される。例えば、（１．５、１．５）のアドレスの次に、（１．５、４．５）のアドレスがスケーラ２００に入力される。これにより、入力画像データは水平方向および垂直方向において１／３に縮小され、全体で１／９に縮小される。
【００７９】
また、縮小率を１／２とする場合には、水平方向および垂直方向において、補間対象のアドレスは、「２」ずつ増分される。例えば、（１．５、１．５）のアドレスの次に、（１．５、３．５）のアドレスがスケーラ２００に入力される。これにより、入力画像データは水平方向および垂直方向において１／２に縮小され、全体で１／４に縮小される。このように、縮小率に応じて、補間対象のアドレスの増分数が変更される。例えば、水平方向において１／ｃに縮小する際には、水平方向のアドレスは「ｃ」ずつ増分される。
【００８０】
図１４は、第１の実施の形態における検出ウィンドウメモリ１５０の書込み方法を説明するための図である。検出ウィンドウのサイズは、例えば、２０×２０画素に設定される。検出ウィンドウメモリ１５０のサイズは、例えば、水平方向において２２画素であり、垂直方向において２０画素である。すなわち、検出ウィンドウメモリ１５０のサイズは、検出ウィンドウよりも２列（＝２×２０画素）分大きい。また、検出ウィンドウメモリ１５０内の補間画素データの格納領域のそれぞれには、垂直方向において「１」ずつ増分し、垂直方向において「２０」ずつ増分する、「０」乃至「４３９」のアドレスが割り当てられる。なお、検出ウィンドウのサイズは、縮小画像データよりも小さいサイズであれば、２０×２０画素に限定されない。
【００８１】
スケーラ制御部１１０は、垂直方向のアドレスを順に増分してスケーラ２００に供給し、２０個のアドレスを供給するたびに水平方向のアドレスを増分する。これにより、スケーラ２００は、垂直方向に画素データを順に出力して検出ウィンドウの下端で折り返して次の列に移動する。
【００８２】
書込み制御部１４０は、ｐ（ｐは整数）番目に出力された補間画素データを、検出ウィンドウメモリ１５０内のアドレスｐに書き込む。そして２０×２０個の補間画素データからなる検出ウィンドウが書き込まれると、検出器１６０は、その検出ウィンドウを読み出して物体の検出を開始する。同図において、検出ウィンドウメモリ１５０内の斜線部分は、補間画素データが書き込まれた領域を示す。
【００８３】
このように、スケーラ２００が垂直方向に画素データを順に出力して検出ウィンドウの下端で折り返すことにより、水平方向に画素データを順に出力する場合よりも折り返しの回数を少なくすることができる。
【００８４】
図１５は、第１の実施の形態における検出ウィンドウの移動方法を説明するための図である。４００個の補間画素データが出力されると、同図におけるａに例示するようにスケーラ制御部１１０は、水平方向のアドレスを増分し、次いで垂直方向のアドレスを初期値から順に増分して２０個の補間画素データを出力させる。そして、スケーラ制御部１１０は、同様の処理を再度実行する。これらの処理により、２列×２０行の補間画素データが出力され、検出ウィンドウは２列分、右端へ移動する。書込み制御部１４０は、それらの４０個の補間画素データを、検出ウィンドウメモリ１５０内のアドレス「４００」乃至「４３９」に書き込む。検出器１６０は、アドレス「４０」乃至「４３９」から検出ウィンドウを読み出して物体の検出を行う。同図のａにおいて、検出ウィンドウメモリ１５０内の斜線部分は、補間画素データが新たに書き込まれた領域を示す。
【００８５】
この２×２０画素を補間する際にフレームメモリ１３０から読み出される画素数Ｌは、、水平方向の縮小率をＣｈ、垂直方向の縮小率をＣｖとすると次の式により表される。
Ｌ＝（２／Ｃｈ＋２）×（２０／Ｃｖ＋２）
【００８６】
このＬ個の画素を所定のクロック信号に同期して読み出す構成を仮定すると、その構成では、Ｌ個を読み出すのにＬクロックが必要となる。しかし、入力画像データを２／Ｃｈ個（４個など）に分割してフレームメモリ１３０に保持させたのであれば、スケーラ２００は、２×（２０／Ｃｖ＋２）クロックでＬ個を読み出すことができる。
【００８７】
そして、同図におけるｂに例示するようにスケーラ制御部１１０は、さらに２×２０個の補間画素データを出力させ、検出ウィンドウを２列分、右端へ移動させる。書込み制御部１４０は、それらの４０個の補間画素データを、検出ウィンドウメモリ１５０内のアドレス「０」乃至「３９」に書き込む。検出器１６０は、アドレス「０」乃至「３９９」から検出ウィンドウを読み出して物体の検出を行う。
【００８８】
以下、同様の処理によりスケーラ制御部１１０は、検出ウィンドウを縮小画像内の右端まで移動させる。右端に達すると、スケーラ制御部１１０は、検出ウィンドウの水平方向の位置を左端に初期化し、垂直方向の位置を下端に移動させる。書込み制御部１４０は、ｐ番目に出力された補間画素データを、次の式により表されるアドレスｑに書き込む。
ｑ＝ｍｏｄ｛（２０×ｈ＋ｐ）／４４０｝
上式においてｈは、検出ウィンドウの代表点（左上の頂点など）の水平方向における位置を示す。
【００８９】
このように、書込み制御部１４０は、検出ウィンドウメモリ１５０の書込み先のアドレスを、水平方向において論理的に循環させる。言い換えれば、検出ウィンドウメモリ１５０は、水平方向においてリングバッファとして用いられる。
【００９０】
［画像処理装置の動作例］
図１６は、第１の実施の形態における画像処理装置１００の動作の一例を示すフローチャートである。この動作は、画像処理装置１００に入力画像データが入力されたときに開始される。
【００９１】
画像処理装置１００は、４つのメモリ（１３１乃至１３４）に入力画像データを分割して保持する（ステップＳ９０１）。画像処理装置１００は、縮小率を所定値に初期化し（ステップＳ９０２）、画像を縮小する縮小処理（ステップＳ９１０）と、物体を検出する検出処理（ステップＳ９５０）とを並列に実行する。
【００９２】
ステップＳ９１０およびＳ９５０の後に画像処理装置１００は、縮小率を変更し（ステップＳ９０３）、縮小率が最大値Ｒmaxであるか否かを判断する（ステップＳ９０４）。縮小率が最大値Ｒmaxでない場合に（ステップＳ９０４：Ｎｏ）、画像処理装置１００は、ステップＳ９１０およびＳ９５０を繰り返し実行する。一方、縮小率が最大値Ｒmaxである場合に（ステップＳ９０４：Ｙｅｓ）、画像処理装置１００は、画像処理を終了する。
【００９３】
図１７は、第１の実施の形態における縮小処理を示すフローチャートである。スケーラ制御部１１０は、補間対象のアドレス（ｉ、ｊ）を設定する（ステップＳ９１１）。スケーラ２００は、４つのメモリの相対アドレス（ｉｎｔ｛（ｉ＋２−ｍ）／４｝、ｊ）から画素データを同時に読み出す（ステップＳ９１２）。そして、スケーラ２００は、ｍｏｄ｛（ｉ＋２−ｍ）／４｝の降順に画素データを整列し（ステップＳ９１３）、水平方向に平滑化およびリニア補間を行う（ステップＳ９１４）。
【００９４】
スケーラ２００は、４×４の１６画素を読み出したか否かを判断する（ステップＳ９１６）。１６画素を読み出していない場合に（ステップＳ９１６：Ｎｏ）、画像処理装置１００は、ステップＳ９１１以降を繰り返す。
【００９５】
一方、１６画素を読み出した場合に（ステップＳ９１６：Ｙｅｓ）、スケーラ２００は、垂直方向に平滑化およびリニア補間を行う（ステップＳ９１７）。そして、スケーラ２００は、縮小画像内の全画素を出力したか否かを判断する（ステップＳ９１８）。全画素を出力していない場合に（ステップＳ９１８：Ｎｏ）、画像処理装置１００は、ステップＳ９１１以降を繰り返す。全画素を出力した場合に（ステップＳ９１８：Ｙｅｓ）、画像処理装置１００は、縮小処理を終了する。
【００９６】
図１８は、第１の実施の形態における検出処理を示すフローチャートである。スケーラ制御部１１０は、ｈ、ｖおよびｐを「０」に初期化する（ステップＳ９５１）。ｈは、検出ウィンドウの代表点の水平方向における位置を示し、ｖは、その代表点の水平方向における位置を示す。
【００９７】
書込み制御部１４０は、０乃至３９９番目の補間画素データを、検出ウィンドウメモリ１５０内の対応するアドレスに書き込む（ステップＳ９５２）。検出器１６０は、検出ウィンドウを読み出して物体の検出を行う（ステップＳ９５３）。
【００９８】
そして、スケーラ制御部１１０は、ｈがｈmaxであるか否かを判断する（ステップＳ９５４）。ここで、ｈmaxは、検出ウィンドウが縮小画像データの右端に達するときの位置である。ｈがｈmaxでない場合（ステップＳ９５４：Ｎｏ）、スケーラ制御部１１０はｈを「２」だけ増分する（ステップＳ９５５）。書込み制御部１４０は、ｐ番目の補間画素データを、検出ウィンドウメモリ１５０内のアドレスｍｏｄ｛（２０×ｈ＋ｐ）／４４０｝に書き込む（ステップＳ９５６）。
【００９９】
スケーラ制御部１１０はｐを「１」だけ増分し（ステップＳ９５７）、２×２０画素の４０個の書込みが完了したか否かを判断する（ステップＳ９５８）。２×２０の４０個の書込みが完了していない場合に（ステップＳ９５８：Ｎｏ）、画像処理装置１００は、ステップＳ９５６以降を繰り返し実行する。
【０１００】
一方、２×２０の４０個の書込みが完了した場合に（ステップＳ９５８：Ｙｅｓ）、検出器１６０は、検出ウィンドウを読み出して物体の検出を行う（ステップＳ９５９）。ステップＳ９５９の後に画像処理装置１００は、ステップＳ９５４以降を繰り返し実行する。
【０１０１】
また、ｈがｈmaxである場合（ステップＳ９５４：Ｙｅｓ）、スケーラ制御部１１０は、ｖがｖmaxであるか否かを判断する（ステップＳ９６０）。ここで、ｖmaxは、検出ウィンドウが縮小画像データの下端に達するときの位置である。ｖがｖmaxでない場合（ステップＳ９６０：Ｎｏ）、スケーラ制御部１１０は、ｈを「０」に初期化し、ｖを「２０」増分する（ステップＳ９６１）。ステップＳ９６１の後に画像処理装置１００は、ステップＳ９５４以降を繰り返し実行する。一方、ｖがｖmaxである場合（ステップＳ９６０：Ｙｅｓ）、画像処理装置１００は、検出処理を終了する。
【０１０２】
このように、本技術の第１の実施の形態によれば、水平方向に並んだ４個の画素データを４つのメモリに分散して書き込み、それらを同時に読み出して水平方向に平滑化するため、分散して書き込まない場合と比較して画素の読出し回数を少なくすることができる。これにより、画像データの読出し速度を向上させることができる。
【０１０３】
＜２．第２の実施の形態＞
上述の第１の実施の形態では、画像処理装置１００は、縮小率を変えるたびに元の入力画像データを再度読み出して、縮小画像データを生成していた。しかし、この構成では、縮小率を変更する回数が多いほど入力画像データを読み出す回数が増加し、読出しに要する時間の合計が大きくなってしまう。この第２の実施の形態の画像処理装置１００は、画像データの読出し速度をさらに速くした点において第１の実施の形態と異なる。
【０１０４】
図１９は、第２の実施の形態における画像処理装置１００の一構成例を示すブロック図である。この第２の実施の形態の画像処理装置１００は、書込み制御部１４０の代わりに書込み制御部１４１を備える点において第１の実施の形態と異なる。
【０１０５】
書込み制御部１４１は、検出ウィンドウを検出ウィンドウメモリ１５０に書き込むとともに、縮小画像データをフレームメモリ１３０に書き戻す点において第１の実施の形態と異なる。
【０１０６】
図２０は、第２の実施の形態におけるフレームメモリ１３０のアクセス方法を説明するための図である。スケーラ２００は、縮小前の分割領域を読み出し、１／４に縮小した縮小画像データを生成する。書込み制御部１４１は、その縮小画像データを４つの分割領域に分割してフレームメモリ１３０に書き戻す。スケーラ２００は、縮小された分割領域を読み出し、さらに縮小して縮小画像データを生成する。以降は、縮小率を徐々に小さくして、同様の処理が繰り返し実行される。
【０１０７】
縮小のたびに、フレームメモリ１３０から読み出す縮小画像データのサイズが小さくなるため、画像データの読出し時間の合計を、第１の実施の形態と比較して小さくすることができる。なお、書込み制御部１４１は、２回目以降に生成される縮小画像データを、縮小前のデータを保持した領域に上書きしてもよい。
【０１０８】
このように、本技術の第２の実施の形態によれば、画像処理装置１００は、縮小画像データをフレームメモリ１３０に書き戻し、その画像データを読み出してさらに縮小するため、画像データの読出しに要する時間を短くすることができる。
【０１０９】
＜３．第３の実施の形態＞
上述の第１の実施の形態では、フレームメモリ１３０の容量が１フレーム分であるため、複数の入力画像データ（フレーム）が連続して入力される際に画像処理装置１００は、２枚目以降のフレームが入力されるたびにフレームメモリ１３０を更新していた。この構成では、物体の検出に要する遅延時間よりもフレーム間隔を短くすることができないため、フレームレートを上げてスループットを向上させることが困難である。この第３の実施の形態の画像処理装置１００は、スループットを向上させた点において第１の実施の形態と異なる。
【０１１０】
図２１は、第３の実施の形態における画像処理装置１００の一構成例を示すブロック図である。この第３の実施の形態の画像処理装置１００は、スイッチ１９１および１９３と切替え制御部１９２とをさらに備える点において第１の実施の形態と異なる。また、第３の実施の形態のフレームメモリ１３０は、奇数領域と偶数領域とに分割され、それぞれの領域に１フレーム分のデータを書き込むことができる。
【０１１１】
スイッチ１９１は、切替え制御部１９２の制御に従って、入力インターフェース１２０からの分割領域の出力先を奇数領域および偶数領域の一方に切り替えるものである。スイッチ１９３は、切替え制御部１９２の制御に従って、入力元を奇数領域および偶数領域の一方に切り替えて、その領域からのデータをスケーラ２００に出力するものである。
【０１１２】
切替え制御部１９２は、スイッチ１９１およびスイッチ１９３を制御するものである。この切替え制御部１９２は、奇数番目の入力画像データが入力されると、スイッチ１９１の出力先を奇数領域側に切り替え、スイッチ１９３の入力元を偶数領域側に切り替える。また、切替え制御部１９２は、偶数番目の入力画像データが入力されると、スイッチ１９１の出力先を偶数領域側に切り替え、スイッチ１９３の入力元を奇数領域側に切り替える。
【０１１３】
図２２は、第３の実施の形態におけるフレームメモリ１３０の一構成例を示す図である。フレームメモリ１３０において分割領域メモリ１３１は、奇数領域ａ１と偶数領域ｂ１とに分割され、分割領域メモリ１３２は、奇数領域ａ２と偶数領域ｂ２とに分割される。また、分割領域メモリ１３３は、奇数領域ａ３と偶数領域ｂ３とに分割され、分割領域メモリ１３４は、奇数領域ａ４と偶数領域ｂ４とに分割される。
【０１１４】
奇数領域ａ１乃至ａ４からなる奇数領域Ａには、奇数番目の入力画像データに対応する分割領域が保持される。また、偶数領域ｂ１乃至ｂ４からなる偶数領域Ｂには、偶数番目の入力画像データに対応する分割領域が保持される。
【０１１５】
図２３は、第３の実施の形態における画像処理装置の動作の一例を示すタイミングチャートである。タイミングＴ１において１番目の入力画像データが入力されると、入力インターフェース１２０は、その画像データを分割してタイミングＴ２までの間に奇数領域に書き込む。そして、タイミングＴ２において２番目の入力画像データが入力されると、入力インターフェース１２０は、その画像データを分割してタイミングＴ３までの間に偶数領域に書き込む。
【０１１６】
タイミングＴ２からタイミングＴ３までの間にスケーラ２００は、分割された１番目の入力画像データを奇数領域から読み出して縮小する。また、タイミングＴ２からタイミングＴ３までの間に、縮小画像データにおいて検出器１６０は、物体検出を行う。
【０１１７】
タイミングＴ３において３番目の画像データが入力されると、入力インターフェース１２０は、その画像データを分割して奇数領域に上書きする。
【０１１８】
タイミングＴ３以降にスケーラ２００は、分割された２番目の入力画像データを偶数領域から読み出して縮小する。また、タイミングＴ３以降に縮小画像データにおいて検出器１６０は、物体検出を行う。
【０１１９】
このように、本技術の第３の実施の形態によれば、フレームメモリ１３０が奇数領域および偶数領域のそれぞれに１フレーム分のデータを保持するため、画像処理装置１００は、一方の領域に書き込んでいる間に、他方の領域からデータを読み出すことができる。これにより、スループットを向上させることができる。
【０１２０】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１２１】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray（登録商標）Disc）等を用いることができる。
【０１２２】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【０１２３】
なお、本技術は以下のような構成もとることができる。
（１）複数のメモリと、
二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の前記画素データを前記複数のメモリに分散して書き込む書込み部と、
前記所定数の画素データを前記複数のメモリから読み出す読出し部と、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行する縮小部と
を具備する画像処理装置。
（２）前記縮小部は、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行して処理結果を出力する平滑化処理部と、
前記処理結果に基づいて新たな画素データを補間画素データとして生成する補間部と
を備える前記（１）記載の画像処理装置。
（３）所定個数の前記補間画素データを二次元格子状に配列した矩形領域を保持する矩形領域保持部と、
前記矩形領域において所定の物体を検出する検出器と
をさらに具備する
前記（２）記載の画像処理装置。
（４）前記画像データから生成された全ての前記補間画素データを二次元格子状に配列した縮小画像データを前記複数のメモリに分散して書き戻す書戻し処理部をさらに具備し、
前記読出し部は、前記所定数の補間画素データをさらに前記複数のメモリから読み出し、
前記縮小部は、前記所定の方向に平滑化する処理を前記読み出された補間画素データに対してさらに実行する
前記（２）または（３）に記載の画像処理装置。
（５）複数の縮小率を順に設定して当該設定した縮小率に対応する前記縮小画像データにおいて出力すべき前記補間画素データのアドレスを前記縮小部に供給する制御部をさらに具備し、
前記読出し部は、前記供給されたアドレスに対応する前記所定数のアドレスの前記画素データを読み出す
前記（１）に記載の画像処理装置。
（６）前記複数のメモリのそれぞれには２つの領域が設けられ、
前記書込み部は、前記２つの領域の一方に前記画素データを書き込む処理と前記２つの領域の他方に前記画素データを書き込む処理とを交互に実行し、
前記読出し部は、前記一方に前記画素データが書き込まれている間に前記他方から前記画素データを読み出す処理と前記他方に前記画素データが書き込まれている間に前記一方から前記画素データを読み出す処理とを交互に実行する
前記（１）から（５）のいずれかに記載の画像処理装置。
（７）前記縮小部は、前記所定の方向に平滑化する処理と当該所定の方向に垂直な方向に平滑化する処理とを行う
前記（１）から（６）のいずれかに記載の画像処理装置。
（８）前記読出し部は、前記所定数の画素データを同時に読み出す
請求項１記載の画像処理装置。
（９）二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の前記画素データを複数のメモリに分散して書き込む書込み手順と、
前記所定数の画素データを前記複数のメモリから読み出す読出し手順と、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行する縮小手順と
を具備する画像処理方法。
（１０）二次元格子状に画素データが配列された画像データにおいて所定の方向に配列された所定数の前記画素データを複数のメモリに分散して書き込む書込み手順と、
前記所定数の画素データを前記複数のメモリから読み出す読出し手順と、
前記所定の方向に平滑化する処理を前記読み出された画素データに対して実行する縮小手順と
をコンピュータに実行させるためのプログラム。
【符号の説明】
【０１２４】
１００  画像処理装置
１１０  スケーラ制御部
１２０  入力インターフェース
１２１、１９２  切替え制御部
１２２  セレクタ
１３０  フレームメモリ
１３１、１３２、１３３、１３４  分割領域メモリ
１４０、１４１  書込み制御部
１５０  検出ウィンドウメモリ
１６０  検出器
１７０  検出結果メモリ
１８０  出力インターフェース
１９１、１９３  スイッチ
２００  スケーラ
２１０  読出し部
２２０  水平方向縮小部
２２１、２２２  水平方向ローパスフィルタ
２２３  水平方向リニア補間部
２３０  垂直方向縮小部
２３１、２３２、２３４  レジスタ
２３３  垂直方向ローパスフィルタ
２３５  垂直方向リニア補間部
【図１】
2017215629.tif 000003
【図２】
2017215629.tif 000004
【図３】
2017215629.tif 000005
【図４】
2017215629.tif 000006
【図５】
2017215629.tif 000007
【図６】
2017215629.tif 000008
【図７】
2017215629.tif 000009
【図８】
2017215629.tif 000010
【図９】
2017215629.tif 000011
【図１０】
2017215629.tif 000012
【図１１】
2017215629.tif 000013
【図１２】
2017215629.tif 000014
【図１３】
2017215629.tif 000015
【図１４】
2017215629.tif 000016
【図１５】
2017215629.tif 000017
【図１６】
2017215629.tif 000018
【図１７】
2017215629.tif 000019
【図１８】
2017215629.tif 000020
【図１９】
2017215629.tif 000021
【図２０】
2017215629.tif 000022
【図２１】
2017215629.tif 000023
【図２２】
2017215629.tif 000024
【図２３】
2017215629.tif 000025