(57)【要約】【課題】アライメント制約を有する回路を変更することなく、画像データを処理する回路に不要なデータが入力されることを防止することが可能な技術を提供する。【解決手段】第１処理回路はＡバイトのアライメント制約を有する、第２処理回路は、入力されるデータに対して第１処理を行う。第１処理回路には、画像を示す画像データに関して、１ラインごとに、当該１ラインのデータを含む、Ａバイトの倍数のデータ長を有する第１データが入力される。第１処理回路は、１ラインごとに、第１データである第２データを出力し、あるいは１ラインごとに、第１データに対して第２処理を行い、当該第２処理後の第１データである第２データを出力する。第１調整回路は、１ラインごとに、第２データに含まれる第１不要データを破棄して、当該第１不要データが破棄された第２データである第３データを第２処理回路に入力する。【選択図】図４
2018036860.tif 000002
【特許請求の範囲】
【請求項１】
Ａバイトのアライメント制約を有する第１処理回路と、
入力されるデータに対して第１処理を行う第２処理回路と、
第１調整回路と
を備え、
前記第１処理回路には、画像を示す画像データに関して、１ラインごとに、当該１ラインのデータを含む、前記Ａバイトの倍数のデータ長を有する第１データが入力され、
前記第１処理回路は、前記１ラインごとに、前記第１データである第２データを出力し、あるいは前記１ラインごとに、前記第１データに対して第２処理を行い、当該第２処理後の前記第１データである第２データを出力し、
前記第１調整回路は、前記１ラインごとに、前記第２データに含まれる第１不要データを破棄して、当該第１不要データが破棄された前記第２データである第３データを前記第２処理回路に入力する、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記Ａバイトのアライメント制約及び前記画像に関する情報に基づいて、前記第１データ及び前記第１不要データを決定する決定回路をさらに備える、画像処理装置。
【請求項３】
請求項１に記載の画像処理装置であって、
前記第２処理回路は、Ｂバイトのアライメント制約を有し、
前記第１調整回路は、前記第３データのデータ長が前記Ｂバイトの倍数となるように、前記第２データに含まれる前記第１不要データを破棄する、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記第２処理回路は、前記１ラインごとに前記第３データに対して前記第１処理を行い、当該第１処理後の前記第３データである第４データを出力し、
入力されるデータに対して第３処理を行う第３処理回路と、
前記１ラインごとに、前記第４データを、当該第４データに含まれる第２不要データを破棄して前記第３処理回路に入力する第２調整回路と
をさらに備える、画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、
前記Ａバイトのアライメント制約、前記Ｂバイトのアライメント制約及び前記画像に関する情報に基づいて、前記第１データ、前記第１不要データ及び前記第２不要データを決定する決定回路をさらに備える、画像処理装置。
【請求項６】
請求項１乃至請求項５のいずれか一つに記載の画像処理装置が備える第１調整回路。
【請求項７】
請求項４及び請求項５のいずれか一つに記載の画像処理装置が備える第２調整回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関する。
【背景技術】
【０００２】
特許文献１には、画像データを処理する回路が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２９３７４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アライメント制約を有する回路の後段に位置する、画像データを処理する回路には、当該アライメント制約によって、必要な画像データだけではなく不要なデータが入力される可能性がある。
【０００５】
そこで、本発明は上述の点に鑑みて成されたものであり、アライメント制約を有する回路を変更することなく、画像データを処理する回路に不要なデータが入力されることを防止することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
画像処理装置の一態様は、Ａバイトのアライメント制約を有する第１処理回路と、入力されるデータに対して第１処理を行う第２処理回路と、第１調整回路とを備え、前記第１処理回路には、画像を示す画像データに関して、１ラインごとに、当該１ラインのデータを含む、前記Ａバイトの倍数のデータ長を有する第１データが入力され、前記第１処理回路は、前記１ラインごとに、前記第１データである第２データを出力し、あるいは前記１ラインごとに、前記第１データに対して第２処理を行い、当該第２処理後の前記第１データである第２データを出力し、前記第１調整回路は、前記１ラインごとに、前記第２データに含まれる第１不要データを破棄して、当該第１不要データが破棄された前記第２データである第３データを前記第２処理回路に入力する。
【０００７】
また、画像処理装置の一態様では、前記Ａバイトのアライメント制約及び前記画像に関する情報に基づいて、前記第１データ及び前記第１不要データを決定する決定回路がさらに設けられる。
【０００８】
また、画像処理装置の一態様では、前記第２処理回路は、Ｂバイトのアライメント制約を有し、前記第１調整回路は、前記第３データのデータ長が前記Ｂバイトの倍数となるように、前記第２データに含まれる前記第１不要データを破棄する。
【０００９】
また、画像処理装置の一態様では、前記第２処理回路は、前記１ラインごとに前記第３データに対して前記第１処理を行い、当該第１処理後の前記第３データである第４データを出力し、入力されるデータに対して第３処理を行う第３処理回路と、前記１ラインごとに、前記第４データを、当該第４データに含まれる第２不要データを破棄して前記第３処理回路に入力する第２調整回路とがさらに設けられる。
【００１０】
また、画像処理装置の一態様では、前記Ａバイトのアライメント制約、前記Ｂバイトのアライメント制約及び前記画像に関する情報に基づいて、前記第１データ、前記第１不要データ及び前記第２不要データを決定する決定回路がさらに設けられる。
【００１１】
また、調整回路の一態様は、上記の画像処理装置が備える第１調整回路である。
【００１２】
また、調整回路の一態様は、上記の画像処理装置が備える第２調整回路である。
【発明の効果】
【００１３】
アライメント制約を有する回路を変更することなく、画像データを処理する回路に不要なデータが入力されることを防止することができる。
【図面の簡単な説明】
【００１４】
【図１】画像処理装置の構成の一例を示す図である。
【図２】メモリが画像データを記憶している様子の一例を示す図である。
【図３】画像の一例を示す図である。
【図４】画像処理回路の構成の一例を示す図である。
【図５】必要画像の一例を示す図である。
【図６】ライン対応読み出しデータ及び必要ラインデータの一例を示す図である。
【図７】必要画像とメモリから読み出される画像の関係の一例を示す図である。
【図８】ライン対応読み出しデータ及び必要ラインデータの一例を示す図である。
【図９】ライン対応読み出しデータ及び必要ラインデータの一例を示す図である。
【図１０】ＤＭＡコントローラの動作の一例を説明するための図である。
【図１１】画像処理回路の動作の一例を説明するための図である。
【図１２】必要画像データをラスタ順に読み出す様子を示す図である。
【図１３】必要画像データを逆ラスタ順に読み出す様子を示す図である。
【図１４】画像処理回路の動作の一例を説明するための図である。
【発明を実施するための形態】
【００１５】
＜画像処理装置の全体構成＞
図１は画像処理装置１の構成の一例を示す図である。画像処理装置１は、例えば、デジタルスチルカメラに搭載される。
【００１６】
図１に示されるように、画像処理装置１は、ＣＰＵ（Central Processing Unit）２と、ＤＭＡ（Direct Memory Access）コントローラ３と、メモリ４と、撮像素子５と、画像処理回路６とを備える。画像処理装置１は、一種の回路構成であると言える。
【００１７】
ＣＰＵ２は、一種のプロセッサであって、一種の回路構成でもある。ＣＰＵ２は、図示しないＲＯＭ（Read Only Memory）等のメモリに記憶されているプログラムを実行する。ＣＰＵ２がプログラムを実行することによって、ＣＰＵ２には様々な機能が実現される。ＣＰＵ２はＤＭＡコントローラ３を制御することが可能である。
【００１８】
なお、ＣＰＵ２の代わりに、その機能の実現のためにプログラム（ソフトフェア）が不要な、例えば論理回路等を含むハードウェア回路が設けられてもよい。また、ＣＰＵ２の機能の一部が、その機能の実現のためにプログラムが不要なハードウェア回路で実現されてもよい。
【００１９】
ＤＭＡコントローラ３は、一種の回路構成であって、ＣＰＵ２による制御によって、メモリ４に記憶されているデータを当該メモリ４から読み出すことが可能である。メモリ４は、例えばＲＡＭ（Random Access Memory）である。メモリ４では、例えば、１つのアドレスの記憶領域は、１バイトのデータを記憶する。ＤＭＡコントローラ３とメモリ４との間のデータバス幅はＮバイトである。Ｎは、整数であって、Ｎ≧２である。本例では、例えばＮ＝１６である。
【００２０】
ＤＭＡコントローラ３は、Ｎバイトのアライメント制約、本例では１６バイトのアライメント制約を有する。ＤＭＡコントローラ３は、Ｎバイトのアライメント制約を有する処理回路であるとも言える。ＤＭＡコントローラ３は、メモリ４から１６バイト単位（１２８ビット単位）でデータを読み出す。ＤＭＡコントローラ３は、メモリ４に対して、１６の倍数のアドレスを指定することによって、指定したアドレスを先頭とする連続した１６個のアドレスの記憶領域に記憶されている１６バイトのデータを一度に読み出すことができる。なお、Ｎは１６以外であってもよい。
【００２１】
撮像素子５は、レンズ等を含む光学系（図示せず）を通じて入射する光を電気信号に変換して、被写体が写る画像を示す画像データ１００を生成する。撮像素子５で生成された画像データ１００は、メモリ４に記憶される。
【００２２】
画像処理回路６は、ＤＭＡコントローラ３がメモリ４から読み出す画像データに対して画像処理を行う。ＤＭＡコントローラ３は、画像データ１００の一部のデータあるいは画像データ１００のすべてをメモリ４から読み出すことが可能である。
【００２３】
ＣＰＵ２は、メモリ４において、ＤＭＡコントローラ３が読み出す対象のデータが記憶されている記憶領域を特定するための特定情報３００をＤＭＡコントローラ３に出力する。ＤＭＡコントローラ３は、特定情報３００に基づいて、メモリ４から、読み出し対象のデータを読み出して画像処理回路６に入力する。
【００２４】
画像処理回路６で画像処理が行われた画像データは、出力デバイスに入力される。出力デバイスは、例えば、画像処理装置１が搭載されるデジタルスチルカメラが有するディスプレイ、あるいは当該デジタルスチルカメラの外部のディスプレイである。出力デバイスとしてのディスプレイは、入力された画像データに基づいて、当該画像データが示す画像を表示することが可能である。
【００２５】
図２は、メモリ４が画像データ１００を構成する複数の画素データＰＤを記憶する様子の一例を示す図である。本例では、図３に示されるように、撮像素子５で生成される画像２００において、例えば、左からｘ列目、上からｙ行目の画素を画素（ｘ，ｙ）と表す。０≦ｘ≦Ｘ、０≦ｙ≦Ｙであって、画像２００の総画素数は（（Ｘ＋１）×（Ｙ＋１））個である。
【００２６】
また、画素（ｘ，ｙ）の画素データＰＤを画素データＰＤ（ｘ，ｙ）と表す。各画素データＰＤのデータ長はＫバイトである。例えば、Ｋ＝３であって、画素データＰＤのデータ長は２４ビットである。画素データＰＤ（ｘ，ｙ）の０ビット目から７ビット目の下位データＰＤＬを下位データＰＤＬ（ｘ，ｙ）[７：０]と表す。画素データＰＤ（ｘ，ｙ）の８ビット目から１５ビット目の中位データＰＤＭを中位データＰＤＭ（ｘ，ｙ）[１５：８]と表す。画素データＰＤ（ｘ，ｙ）の１６ビット目から２３ビット目の上位データＰＤＵを上位データＰＤＵ（ｘ，ｙ）[２３：１６]と表す。そして、メモリ４において、下位データＰＤＬ（ｘ，ｙ）[７：０]を記憶する領域のアドレスをアドレスＡ（ｘ，ｙ）[７：０]で表し、中位データＰＤＭ（ｘ，ｙ）[１５：８]を記憶する領域のアドレスをアドレスＡ（ｘ，ｙ）[１５：８]で表し、上位データＰＤＵ（ｘ，ｙ）[２３：１６]を記憶する領域のアドレスをアドレスＡ（ｘ，ｙ）[２３：１６]で表す。
【００２７】
図２に示されるように、メモリ４においては、画像データ１００を構成する複数の画素データＰＤが、昇順に連続する複数のアドレスの記憶領域に対して、ラスタ順に記憶される。１つの画素データＰＤは、昇順に連続する３つのアドレスの記憶領域に記憶される。下位データＰＤＬは、当該３つのアドレスのうちの最も小さいアドレスの記憶領域に記憶され、中位データＰＤＭは、当該３つのアドレスのうちの２番目に小さいアドレスの記憶領域に記憶され、上位データＰＤＵは、当該３つのアドレスのうちの最も大きいアドレスの記憶領域に記憶される。
【００２８】
上述のように、ＤＭＡコントローラ３は、メモリ４に対して指定したアドレスを先頭とする連続した１６個のアドレスの記憶領域に記憶されている１６バイトのデータを一度に読み出すことができる。本例では、画素データＰＤは３バイトであることから、ＤＭＡコントローラ３が一度に読み出す１６バイトのデータには、５つの画素データＰＤが含まれる。
【００２９】
例えば、ＤＭＡコントローラ３が、アドレスＡ（０，０）[７：０]をメモリ４に対して指定したとすると、ＤＭＡコントローラ３は、５つの画素データＰＤ（０，０），ＰＤ（１，０），ＰＤ（２，０），ＰＤ（３，０），ＰＤ（４，０）と、１バイトの下位データＰＤＬ（５，０）[７：０]とを一度に読み出す。また、ＤＭＡコントローラ３が、例えば、アドレスＡ（Ｘ，０）[１５：８]をメモリ４に対して指定したとすると、ＤＭＡコントローラ３は、１バイトの中位データＰＤＭ（Ｘ，０）[１５：８]と、１バイトの上位データＰＤＵ（Ｘ，０）[２３：１６]と、４つの画素データＰＤ（０，１），ＰＤ（１，１），ＰＤ（２，１），ＰＤ（３，１）と、１バイトの下位データＰＤＬ（４，１）[７：０]と、１バイトの中位データＰＤＭ（４，１）[１５：８]とを一度に読み出す。
【００３０】
以後、データのアドレスあるいはデータに対応するアドレスと言えば、メモリ４において、当該データが記憶される領域のアドレスを意味する。また、あるアドレスのデータあるいはあるアドレスに対応するデータと言えば、当該あるアドレスの記憶領域に記憶されるデータを意味する。
【００３１】
＜画像処理回路の構成＞
図４は画像処理回路６の構成の一例を示す図である。図４に示されるように、画像処理回路６は、調整回路６１、調整回路６２、処理回路７１及び処理回路７２を備えている。
【００３２】
ＤＭＡコントローラ３は、メモリ４からデータを読み出し、読み出したデータを調整回路６１に入力する。調整回路６１とＤＭＡコントローラ３の間のデータバス幅は、Ｎバイト、本例では１６バイトである。調整回路６１は、ＤＭＡコントローラ３から入力される入力データに含まれる不要データを破棄して、当該入力データを処理回路７１に出力する。調整回路６１には、当該調整回路６１が破棄すべきデータを特定するための特定情報６１０が処理回路７２から入力される。調整回路６１は、特定情報６１０に基づいて、ＤＭＡコントローラ３から入力される入力データに含まれる不要データを破棄する。調整回路６１の動作は後で詳細に説明する。
【００３３】
調整回路６１と処理回路７１の間のデータバス幅はＭバイトである。Ｍは２以上の整数であって、例えばＭ＝８である。処理回路７１は、Ｍバイトのアライメント制約、本例では８バイトのアライメント制約を有する。調整回路６１は、処理回路７１に対して、８バイト単位（６４ビット単位）でデータを入力する。処理回路７１は、調整回路６１から入力されるデータに含まれる複数の画素データＰＤのそれぞれをラスタ順に１画素ずつ順番に出力する。
【００３４】
処理回路７１と調整回路６２の間のデータバス幅はＬバイトである。例えばＬ＝６である。調整回路６２は、処理回路７１から出力される画像データを、当該画像データに含まれる不要な画素データＰＤを破棄して処理回路７２に入力する。調整回路６２は、処理回路７１から必要な画素データＰＤが出力される場合には、当該画素データＰＤを処理回路７２に入力し、処理回路７１から不要な画素データＰＤが出力される場合には、当該不要な画素データＰＤを破棄して処理回路７２に入力しない。調整回路６２には、当該調整回路６２が破棄すべき画素データＰＤを特定するための特定情報６２０が処理回路７２から入力される。調整回路６２は、特定情報６２０に基づいて、処理回路７１から出力される画像データに含まれる不要な画素データＰＤを破棄する。調整回路６２の動作は後で詳細に説明する。
【００３５】
処理回路７２は、調整回路６２から入力される画像データに対して各種画像処理を行って、出力デバイスに応じた画像データを生成する。処理回路７２は、ＧＤＵ（Graphic Display Unit）コアと呼ばれることがある。
【００３６】
処理回路７２は、例えば、調整回路６２から入力される画像データに対してガンマ補正及び拡大処理等を行う。そして、処理回路７２は、処理後の画像データが示す画像を例えば他の画像と合成して、表示用画像を生成する。処理回路７２は、表示用画像を示す表示用画像データに対してガンマ補正及びフォーマット変換等を行って、出力デバイスに応じた表示用画像データを生成する。そして、処理回路７２は、生成した表示用画像データを出力デバイスに出力する。また処理回路７２は、同期信号を生成して出力デバイスに出力する。出力デバイスは、処理回路７２から入力される表示用画像データ及び同期信号に基づいて、当該表示用画像データが示す画像を表示する。
【００３７】
ＣＰＵ２は、上述の特定情報６１０，６２０を生成して処理回路７２に入力する。処理回路７２は、入力された特定情報６１０，６２０を図示しないレジスタに記憶する。そして、処理回路７２は、特定情報６１０，６２０を、調整回路６１及び調整回路６２にそれぞれ入力する。
【００３８】
＜ＤＭＡコントローラ及び画像処理回路の動作の詳細＞
出力デバイスは、メモリ４内の画像データ１００が示す画像２００の全体を表示するだけではなく、当該画像２００の一部を表示することもある。例えば、出力デバイスにおいて、画像２００が拡大されて表示されたり、画像２００がスクロール表示されたりする場合には、出力デバイスでは、画像２００の一部が表示される。そのため、処理回路７２では、画像２００全体を示す画像データ（画像データ１００）が必要な場合もあれば、画像２００の一部を示す画像データが必要な場合がある。以後、処理回路７２で必要な画像データを「必要画像データ」と呼ぶことがある。また、必要画像データが示す画像、つまり処理回路７２で必要な画像を「必要画像」と呼ぶことがある。また画像２００を「撮像画像２００」と呼び、画像データ１００を「撮像画像データ１００」と呼ぶことがある。
【００３９】
一方で、ＤＭＡコントローラ３は、そのアライメント制約により、必要画像データだけをメモリ４から読み出すことができない可能性がある。以下にこの点について説明する。
【００４０】
図５は必要画像２１０の一例を示す図である。図５では、必要画像２１０に右上がりの斜線を示している。図５には、撮像画像２００の左側に、撮像画像２００のラインの番号を示している。本例では、画像を構成する複数のラインに対して、例えば、最も上のラインから順に１番から始まる連続する正の整数を割り当てている。図５の例では、必要画像２１０は、撮像画像２００の１番目から５番目までの各ラインの一部を含んでいる。
【００４１】
ＤＭＡコントローラ３は、１６バイトアライメント制約により、メモリ４に対して、１２８ビットの倍数のアドレスしか指定することができない。言い換えれば、ＤＭＡコントローラ３は、１６バイト単位でしかデータをメモリ４から読み出すことができない。したがって、必要画像２１０の各ラインの最初の画素（最も左の画素）の画素データＰＤの下位データＰＤＬが、１２８ビットの倍数ではないアドレスに記憶されている場合には、当該画素データＰＤとともに、各ラインの最初の画素よりも左側の画素の画素データＰＤの少なくとも一部が読み出されることになる。
【００４２】
また、必要画像２１０の各ラインの最後の画素（最も右の画素）の画素データＰＤの上位データＰＤＵが、１２８ビットの倍数ではないアドレスに記憶されている場合には、各ラインの最後の画素の画素データＰＤとともに、各ラインの最後の画素よりも右側の画素の画素データＰＤの少なくとも一部が読み出されることになる。
【００４３】
このように、ＤＭＡコントローラ３は、撮像画像データ１００における、処理回路７２で必要な画像データだけを、メモリ４から読み出すことができない場合がある。その結果、出力デバイスでは、必要画像以外の画像が表示される可能性がある。
【００４４】
そこで、画像処理装置１では、ＤＭＡコントローラ３が、そのアライメント制約を守るように、必要画像データを含むデータをメモリ４から読み出す。つまり、ＤＭＡコントローラ３には、１６バイトの倍数のデータが入力される。そして、画像処理回路６の調整回路６１及び調整回路６２が、ＤＭＡコントローラ３から読み出されたデータに含まれる不要データを破棄することによって、必要画像データだけを処理回路７２に入力する。これにより、アライメント制約を有する回路、つまりＤＭＡコントローラ３を変更することなく、必要画像データを得ることができる。以下に、ＤＭＡコントローラ３及び画像処理回路６の動作を詳細に説明する。
【００４５】
図６は、撮像画像２００における、図５の必要画像２１０を含む部分についての複数のラインのデータ４００を、そのアドレスの順に並べた様子を示す図である。図６では、必要画像２１０の各ラインのデータ４１０に右上がりの斜線が示されている。また図６では、撮像画像２００のラインのデータ４００の左上に、当該ラインの番号が示されている。以後、画像のラインのデータを「ラインデータ」と呼ぶことがある。また、データ４００を「撮像ラインデータ４００」と呼び、データ４１０を「必要ラインデータ４１０」と呼ぶことがある。
【００４６】
ＤＭＡコントローラ３及び画像処理回路６は、必要画像２１０のラインごとに処理を行う。ＤＭＡコントローラ３は、必要画像２１０の各ラインについて、アライメント制約を守るように、必要ラインデータ４１０を含むデータ４２０をメモリ４から読み出す。図６では、データ４２０に右下がりの斜線が示されている。以後、データ４２０を「ライン対応読み出しデータ４２０」と呼ぶことがある。
【００４７】
ライン対応読み出しデータ４２０に対応する複数のアドレスは連続している。また、ＤＭＡコントローラ３のアライメント制約により、ライン対応読み出しデータ４２０の先頭アドレス（最も小さいアドレス）は１２８ビットの倍数となっており、ライン対応読み出しデータ４２０に対応する複数のアドレスの数は１２８ビットの倍数となっている。そして、ライン対応読み出しデータ４２０のデータ長は、１６バイトの倍数となっている。
【００４８】
必要画像２１０の複数の必要ラインデータ４１０の間では、必要ラインデータ４１０を含むライン対応読み出しデータ４２０の先頭アドレスと、当該必要ラインデータ４１０の先頭アドレスとの差分が一定となっている。また、必要画像２１０の複数の必要ラインデータ４１０の間では、必要ラインデータ４１０を含むライン対応読み出しデータ４２０の末尾アドレスと、当該必要ラインデータ４１０の末尾アドレスとの差分が一定となっている。したがって、必要画像２１０の複数の必要ラインデータ４１０をそれぞれ含む複数のライン対応読み出しデータ４２０の間では、ライン対応読み出しデータ４２０に対応する複数のアドレスの数が一定となっている。言い換えれば、当該複数のライン対応読み出しデータ４２０の間ではデータ長が一定となっている。
【００４９】
ライン対応読み出しデータ４２０が必要ラインデータ４１０よりも長い場合には、図６に示されるように、ライン対応読み出しデータ４２０に、必要ラインデータ４１０以外のデータ、つまり不要データ４５０が含まれる。この不要データ４５０は、調整回路６１及び調整回路６２で破棄される。これにより、必要ラインデータ４１０だけが処理回路７２に入力される。つまり、必要画像２１０を示す画像データだけが処理回路７２に入力される。ライン対応読み出しデータ４２０の先頭アドレスが、必要ラインデータ４１０の先頭アドレスよりも小さければ、図６に示されるように、ライン対応読み出しデータ４２０には、必要ラインデータ４１０の先頭アドレスよりも小さいアドレスの不要データ４５０が含まれる。また、ライン対応読み出しデータ４２０の末尾アドレスが、必要ラインデータ４１０の末尾アドレスよりも大きければ、図６に示されるように、ライン対応読み出しデータ４２０には、必要ラインデータ４１０の末尾アドレスよりも大きいアドレスの不要データ４５０が含まれる。
【００５０】
図６の例では、ライン対応読み出しデータ４２０は、撮像ラインデータ４００に含まれている。つまり、撮像ラインデータ４００の一部がライン対応読み出しデータ４２０となっている。したがって、必要画像２１０を構成する複数のラインのデータ４１０をそれぞれ含む複数のライン対応読み出しデータ４２０をそれぞれラインデータとする画像データ（以後、「仮想画像データ」と呼ぶ）は、図７に示される画像２２０を概ね示すようになる。画像２２０は、撮像画像２００の一部であって、必要画像２１０を含んでいる。図７では、画像２２０に右下がりの斜線が示されている。
【００５１】
ただし、必要ラインデータ４１０の先頭アドレスのデータは、必ず、画素データＰＤの下位データＰＤＬであるものの、ライン対応読み出しデータ４２０の先頭アドレスのデータは、ＤＭＡコントローラ３のアライメント制約により、画素データＰＤの下位データＰＤＬであるとは限られない。同様に、必要ラインデータ４１０の末尾アドレスのデータは、必ず、画素データＰＤの上位データＰＤＵであるものの、ライン対応読み出しデータ４２０の末尾アドレスのデータは、画素データＰＤの上位データＰＤＵであるとは限られない。よって、ライン対応読み出しデータ４２０には、ある画素データＰＤに関して、一部のデータは含まれるものの、残りのデータが含まれないことがある。したがって、ライン対応読み出しデータ４２０が撮像ラインデータ４００に含まれている場合であっても、ライン対応読み出しデータ４２０は、ある画素データＰＤのすべてを含んでおらず、当該ある画素データＰＤの画素を正しく示すことができない場合がある。その結果、複数のライン対応読み出しデータ４２０から成る仮想画像データは、撮像画像２００の一部の画像を正しくは示すことができない場合がある。以後、必要画像２１０を構成する複数のラインのデータ４１０をそれぞれ含む複数のライン対応読み出しデータ４２０をまとめて「必要画像対応読み出しデータ」と呼ぶことがある。
【００５２】
図６の例では、一つのライン対応読み出しデータ４２０が一つの撮像ラインデータ４００に含まれている。しかしながら、必要画像２１０のラインの長さあるいは撮像画像２００における必要画像２１０の相対的な位置によっては、一つのライン対応読み出しデータ４２０が複数の撮像ラインデータ４００に渡って存在する可能性がある。
【００５３】
例えば、必要ラインデータ４１０の末尾アドレスが、当該必要ラインデータ４１０を含む撮像ラインデータ４００の末尾アドレスに近い場合を考える。この場合、図８に示されるように、必要ラインデータ４１０を含むライン対応読み出しデータ４２０の末尾アドレスが、次の撮像ラインデータ４００の複数のアドレスに含まれることがある。つまり、撮像ラインデータ４００に含まれる必要ラインデータ４１０を含むライン対応読み出しデータ４２０の一部が、その次の撮像ラインデータ４００に含まれることがある。また、必要ラインデータ４１０の先頭アドレスが、当該必要ラインデータ４１０を含む撮像ラインデータ４００の先頭アドレスに近い場合を考える。この場合、必要ラインデータ４１０を含むライン対応読み出しデータ４２０の先頭アドレスが、前の撮像ラインデータ４００の複数のアドレスに含まれることがある。つまり、撮像ラインデータ４００に含まれる必要ラインデータ４１０を含むライン対応読み出しデータ４２０の一部が、その前の撮像ラインデータ４００に含まれることがある。
【００５４】
また、必要画像２１０の１番目のラインのデータ４１０の先頭アドレスが、撮像画像データ１００の先頭アドレスに近い場合を考える。この場合、１番目のラインのデータ４１０を含むライン対応読み出しデータ４２０には、撮像画像データ１００の先頭アドレスよりも小さいアドレスのデータ（撮像画像データ１００以外のデータ）が含まれることがある。また、必要画像２１０の最後のライン（最も番号が大きいライン）のデータ４１０の末尾アドレスが、撮像画像データ１００の末尾アドレスに近い場合を考える。この場合、最後のラインのデータ４１０を含むライン対応読み出しデータ４２０には、撮像画像データ１００の末尾アドレスよりも大きいアドレスのデータ（画像データ１００以外のデータ）が含まれることがある。
【００５５】
また、必要画像２１０のラインの長さが大きい場合には、必要画像２１０のあるラインのデータ４１０を含むライン対応読み出しデータ４２０には、当該あるラインよりも前のラインのデータ４１０の一部と、当該あるラインよりも後のラインのデータ４１０の一部とが含まれることがある。図９はその様子の一例を示す図である。図９では、説明の便宜上、中央の撮像ラインデータ４００に含まれる必要ラインデータ４１０及びそれを含むライン対応読み出しデータ４２０だけに斜線を示している。
【００５６】
図９に示されるように、必要画像２１０のあるラインのデータ４１０を含むライン対応読み出しデータ４２０には、当該あるラインよりも前のラインのデータ４１０の一部４１０ａと、当該あるラインよりも後のラインのデータ４１０の一部４１０ｂとが含まれている。このような場合であっても、図９に示されるように、ライン対応読み出しデータ４２０に含まれる、それに対応する必要ラインデータ４１０以外のデータのすべてが不要データ４５０になる。つまり、ライン対応読み出しデータ４２０において、それに対応する必要ラインデータ４１０以外の必要ラインデータ４１０の一部のデータが含まれている場合であっても、当該ライン対応読み出しデータ４２０においては、当該一部のデータは不要データとして扱われる。
【００５７】
以上のように、アライメント制約を有するＤＭＡコントローラ３は、必要画像２１０のラインごとに、当該ラインのデータ４１０を含むライン対応読み出しデータ４２０を読み出す。そして、画像処理回路６は、必要画像２１０のラインごとに、読み出されたライン対応読み出しデータ４２０に含まれる不要データ４５０を破棄する。これにより、アライメント制約によりＤＭＡコントローラ３がメモリ４から不要データを読み出す場合であっても、ＤＭＡコントローラ３よりも後段の回路において、当該不要データを破棄して、必要なデータだけを得ることができる。以下に、ＤＭＡコントローラ３及び画像処理回路６の動作をさらに詳細に説明する。
【００５８】
＜ＤＭＡコントローラの動作の詳細＞
図１０はＤＭＡコントローラ３の動作の一例を説明するための図である。図１０では、図６と同様に、撮像画像２００における、必要画像２１０を含む部分についての各ラインのデータ４００を、そのアドレスの順に並べた様子が示されている。図１０の例では、図６と同様に、撮像ラインデータ４００の一部がライン対応読み出しデータ４２０となっている。
【００５９】
ＤＭＡコントローラ３は、必要画像データを構成する複数の必要ラインデータ４１０をそれぞれ含む複数のライン対応読み出しデータ４２０を、矢印５００が示すように、その先頭アドレスが小さいものから順にメモリ４から読み出す。言い換えれば、ＤＭＡコントローラ３は、必要画像対応読み出しデータを構成する複数のライン対応読み出しデータ４２０を、それが含む必要ラインデータ４１０に対応するラインが上側に位置するものから順にメモリ４から読み出す。さらに、ＤＭＡコントローラ３は、各ライン対応読み出しデータ４２０を、１６バイト単位で、アドレスが小さいものから順に読み出す。ＤＭＡコントローラ３は、ＣＰＵ２で生成される特定情報３００に基づいて、複数のライン対応読み出しデータ４２０を上記のようにしてメモリ４から読み出す。ＤＭＡコントローラ３は、複数のライン対応読み出しデータ４２０を、メモリ４から読み出した順に調整回路６１に入力する。
【００６０】
メモリ４における、必要画像対応読み出しデータが記憶されている記憶領域を特定するための特定情報３００には、図１０に示される、開始アドレスＳＴＡ、終了アドレスＥＮＡ、連続転送サイズＲＰＴ及びジャンプサイズＯＦＳが含まれている。開始アドレスＳＴＡは、必要画像２１０の最も上のライン（最初のライン）のデータ４１０を含むライン対応読み出しデータ４２０の先頭アドレスである。終了アドレスＥＮＡは、必要画像２１０の最も下のライン（最後のライン）のデータ４１０を含むライン対応読み出しデータ４２０の末尾アドレスである。連続転送サイズＲＰＴは、ライン対応読み出しデータ４２０のデータ長である。ジャンプサイズＯＦＳは、必要画像２１０において連続する２つのラインのデータ４１０をそれぞれ含む２つのライン対応読み出しデータ４２０の先頭アドレスの差分を示す。ジャンプサイズＯＦＳは、ライン対応読み出しデータ４２０の先頭アドレスから、その前に読み出すライン対応読み出しデータ４２０の先頭アドレスを差し引いた値である。ジャンプサイズＯＦＳは、ライン対応読み出しデータ４２０の先頭アドレスから、その後に読み出すライン対応読み出しデータ４２０の先頭アドレスがどの程度離れているかを示している。ＤＭＡコントローラ３の１６バイトアライメント制約により、開始アドレスＳＴＡ、終了アドレスＥＮＡ、連続転送サイズＲＰＴ及びジャンプサイズＯＦＳのそれぞれは、１２８ビットの倍数に設定される。
【００６１】
ＣＰＵ２は、メモリ４において、必要画像２１０が記憶されている領域を特定するための必要画像特定情報と、ＤＭＡコントローラ３のアライメント制約と、画素データＰＤのデータ長とに基づいて、開始アドレスＳＴＡ及び連続転送サイズＲＰＴを決定する。そして、ＣＰＵ２は、決定した開始アドレスＳＴＡ及び連続転送サイズＲＰＴと、撮像ラインデータ４００のデータ長と、必要画像特定情報とに基づいて、終了アドレスＥＮＡ及びジャンプサイズＯＦＳを決定する。ジャンプサイズＯＦＳは、撮像ラインデータ４００のデータ長と一致する。必要画像特定情報には、例えば、必要画像２１０の最も上のラインの最も左側の画素の画素データＰＤの下位データＰＤＬが記憶されている領域のアドレス（必要画像２１０の最も上のラインのデータ４１０の先頭アドレス）と、必要ラインデータ４１０のデータ長と、必要画像２１０のライン数とが含まれている。必要画像２１０は、出力デバイスが表示する画像等に応じて変化する。ＣＰＵ２は、必要画像２１０に応じて必要画像特定情報を生成する。必要画像特定情報は、必要画像２１０に関する情報であると言える。なお、開始アドレスＳＴＡ及び連続転送サイズＲＰＴの決定方法については後で詳細に説明する。
【００６２】
＜画像処理回路の動作の詳細＞
図１１は画像処理回路６の動作を説明するための図である。図１１には、１つのライン対応読み出しデータ４２０が示されている。ライン対応読み出しデータ４２０には、それに含まれる必要ラインデータ４１０の先頭アドレスよりも小さいアドレスの左側不要データ４５０Ｌと、当該必要ラインデータ４１０の末尾アドレスよりも大きいアドレスの右側不要データ４５０Ｒとが含まれる。
【００６３】
調整回路６１は、ライン対応読み出しデータ４２０が入力されるたびに、ライン対応読み出しデータ４２０に含まれる左側不要データ４５０Ｌを破棄する。さらに、調整回路６１は、ライン対応読み出しデータ４２０が入力されるたびに、ライン対応読み出しデータ４２０に含まれる右側不要データ４５０Ｒの一部のデータ４５０Ｒ１を破棄する。このデータ４５０Ｒ１を「第１右側不要データ４５０Ｒ１」と呼ぶ。また、右側不要データ４５０Ｒのうち、第１右側不要データ４５０Ｒ１以外のデータを「第２右側不要データ４５０Ｒ２」と呼ぶ。
【００６４】
第２右側不要データ４５０Ｒ２の先頭アドレスは、右側不要データ４５０Ｒの先頭アドレスと一致する。第１右側不要データ４５０Ｒ１の末尾アドレスは、右側不要データ４５０Ｒの末尾アドレスと一致する。第２右側不要データ４５０Ｒ２の末尾アドレスの次のアドレスが、第１右側不要データ４５０Ｒ１の先頭アドレスとなる。調整回路６１は、ライン対応読み出しデータ４２０が入力されるたびに、入力されるライン対応読み出しデータ４２０を、それに含まれる左側不要データ４５０Ｌ及び第１右側不要データ４５０Ｒ１を破棄した上で処理回路７１に入力する。
【００６５】
調整回路６１は、処理回路７２から入力される特定情報６１０に基づいて、左側不要データ４５０Ｌ及び第１右側不要データ４５０Ｒ１を特定する。特定情報６１０には、左側不要データ４５０Ｌのデータ長ＤＬ１（以後、「左側不要データ長ＤＬ１」と呼ぶ）と、第１右側不要データ４５０Ｒ１のデータ長ＤＬ２（以後、「第１右側不要データ長ＤＬ２」と呼ぶ）とが含まれている。調整回路６１は、ライン対応読み出しデータ４２０において、その先頭アドレスのデータからアドレスが大きくなる方向に向かって左側不要データ長ＤＬ１分だけの部分を、左側不要データ４５０Ｌとして破棄する。また調整回路６１は、ライン対応読み出しデータ４２０において、その末尾アドレスのデータからアドレスが小さくなる方向に向かって第１右側不要データ長ＤＬ２分だけの部分を、第１右側不要データ４５０Ｒ１として破棄する。
【００６６】
以後、処理回路７１に入力される、調整回路６１において不要データが破棄されたライン対応読み出しデータ４２０を、「第１入力データ４６０」と呼ぶ。本例では、第１入力データ４６０は、左側不要データ４５０Ｌ及び第１右側不要データ４５０Ｒ１が破棄されたライン対応読み出しデータ４２０である。調整回路６１は、ライン対応読み出しデータ４２０が入力されるたびに、入力されるライン対応読み出しデータ４２０に基づいて第１入力データ４６０を生成して処理回路７１に入力する。ライン対応読み出しデータ４２０に基づいて生成される第１入力データ４６０は、当該ライン対応読み出しデータ４２０に含まれる必要ラインデータ４１０及び第２右側不要データ４５０Ｒ２で構成される。
【００６７】
処理回路７１は、第１入力データ４６０が入力されるたびに、入力される第１入力データ４６０に含まれる複数の画素データＰＤをアドレスが小さいものから順に１画素ずつ出力する。
【００６８】
ここで、上述のように、処理回路７１は、８バイトアライメント制約を有する。このため、処理回路７１にラインごとに入力される第１入力データ４６０のデータ長は、８バイトの倍数である必要がある。さらに、処理回路７１が、１画素ずつ画素データＰＤを出力するためには、第１入力データ４６０に、ある画素データＰＤの一部のデータだけが含まれるようなことがあってはならない。
【００６９】
そこで、第１入力データ４６０に含まれる第２右側不要データ４５０Ｒ２のデータ長は、当該第１入力データ４６０のデータ長が８バイトの倍数となり、かつ当該第１入力データ４６０に画素データＰＤの一部のデータだけが含まれるようなことがないような値に設定される。これにより、処理回路７１の８バイトアライメント制約を守ることができるととともに、処理回路７１は１画素ごとに画素データＰＤを出力することができる。１６バイトアライメント制約を有する処理回路であるＤＭＡコントローラ３には、１６バイトの倍数のデータ長を有するライン対応読み出しデータ４２０が入力されるのに対して、８バイトアライメント制約を有する処理回路７１には、８バイトの倍数のデータ長を有する第１入力データ４６０が入力される。
【００７０】
処理回路７１は、第１入力データ４６０に対して、当該第１入力データ４６０を構成する複数の画素データＰＤを１画素ずつ順に出力する処理を行っている。したがって、処理回路７１に入力される第１入力データ４６０は、入力形態及び出力形態が互いに異なるものの、データの内容としてはそのまま処理回路７１から出力されると言える。つまり、処理回路７１からは、第１入力データ４６０が出力されると言える。
【００７１】
なお、必要ラインデータ４１０の末尾アドレスのデータは、画素データＰＤの上位データＰＤＵとなり、当該必要ラインデータ４１０に続く第２右側不要データ４５０Ｒ２の先頭アドレスのデータは、画素データＰＤの下位データＰＤＬとなる。そして、第２右側不要データ４５０Ｒ２の末尾アドレスのデータは、画素データＰＤの上位データＰＤＵとなる。第２右側不要データ４５０Ｒ２のデータ長は、画素データＰＤのデータ長、つまり３バイトの倍数となっている。
【００７２】
調整回路６２は、処理回路７１から第１入力データ４６０が入力されるたびに、入力される第１入力データ４６０を、それに含まれる第２右側不要データ４５０Ｒ２を破棄した上で処理回路７２に入力する。調整回路６２は、処理回路７１から、第２右側不要データ４５０Ｒ２に含まれる不要な画素データＰＤが出力されると、当該不要な画素データＰＤを破棄する。一方で、調整回路６２は、処理回路７１から、必要ラインデータ４１０に含まれる必要な画素データＰＤが出力されると、当該必要な画素データＰＤを処理回路７２に入力する。これにより、処理回路７２には、必要ラインデータ４１０のみが入力される。よって、処理回路７２は、必要画像データのみを受け取ることができる。上述のように、処理回路７１は、入力される複数の画素データＰＤをアドレスが小さいものから順に１画素ずつ出力することから、調整回路６２は、必要画像データを構成する複数の画素データＰＤを、ラスタ順に１画素ずつ処理回路７２に出力する。
【００７３】
調整回路６２は、処理回路７２から入力される特定情報６２０に基づいて、第２右側不要データ４５０Ｒ２を特定する。特定情報６２０には、第２右側不要データ４５０Ｒ２を構成する複数の画素データＰＤの数ＰＤＮ（以後、「不要画素データ数ＰＤＮ」と呼ぶ）が含まれている。調整回路６２は、処理回路７１から出力される第１入力データ４６０を構成する複数の画素データＰＤにおいて、アドレスが最も大きい画素データＰＤからアドレスが小さくなる方向に向かって不要画素データ数ＰＤＮ分の画素データＰＤを、第２右側不要データ４５０Ｒ２として破棄する。
【００７４】
＜開始アドレス等の決定方法＞
次に、ＣＰＵ２が、特定情報３００に含まれる開始アドレスＳＴＡ及び連続転送サイズＲＰＴと、特定情報６１０に含まれる左側不要データ長ＤＬ１及び第１右側不要データ長ＤＬ２と、特定情報６２０に含まれる不要画素データ数ＰＤＮとを決定する方法について説明する。以後、開始アドレスＳＴＡ、連続転送サイズＲＰＴ、左側不要データ長ＤＬ１、第１右側不要データ長ＤＬ２及び不要画素データ数ＰＤＮをまとめて「対象情報」と呼ぶことがある。
【００７５】
ＣＰＵ２は、必要画像特定情報と、ＤＭＡコントローラ３及び処理回路７１のアライメント制約と、画素データＰＤのデータ長とに基づいて、対象情報を決定する。以下に登場する式中の各値（ただし、不要画素データ数ＰＤＮを除く）の単位は特に断らない限り「バイト」である。
【００７６】
ＣＰＵ２は、まず第１入力データ４６０のデータ長ＤＬ３（図１１参照）を以下の式（１）で求める。
【００７７】
【数１】
2018036860.tif 000003
【００７８】
式（１）中のＤＬ４（図１１参照）は、必要画像特定情報に含まれる、必要ラインデータ４１０のデータ長を示している。また式（１）中のＭ＿Ｋは、処理回路７１のＭバイトのアライメント制約のＭと、画素データＰＤのデータ長であるＫバイトのＫとの最小公倍数を示している。そして、式（１）中の［ａ］は、ａの小数点以下を切り捨てた値（整数）を返す関数である。以下の式中の［ａ］も同様である。式（１）では、必要ラインデータ４１０のデータ長ＤＬ４以上であり、かつＭの倍数であり、かつＫの倍数である値のうちの最小の値が、第１入力データ４６０のデータ長ＤＬ３となっている。
【００７９】
次にＣＰＵ２は、不要画素データ数ＰＤＮ（図１１参照）を以下の式（２）で求める。
【００８０】
【数２】
2018036860.tif 000004
【００８１】
またＣＰＵ２は、開始アドレスＳＴＡ（図１０参照）を以下の式（３）で求める。
【００８２】
【数３】
2018036860.tif 000005
【００８３】
式（３）中のＡＤＲは、必要画像２１０の最も上のラインのデータ４１０の先頭アドレスを示している。先頭アドレスＡＤＲは必要画像特定情報に含まれる。式（３）では、必要画像２１０の最も上のラインのデータ４１０の先頭アドレスＡＤＲ以下であり、かつＮの倍数である値のうちの最大の値が、開始アドレスＳＴＡとなっている。
【００８４】
次にＣＰＵ２は、左側不要データ長ＤＬ１（図１１）を以下の式（４）で求める。
【００８５】
【数４】
2018036860.tif 000006
【００８６】
次にＣＰＵ２は、連続転送サイズＲＰＴ（図１０，１１参照）を以下の式（５）で求める。
【００８７】
【数５】
2018036860.tif 000007
【００８８】
式（５）では、左側不要データ長ＤＬ１と第１入力データ４６０のデータ長ＤＬ３を足し合わせた値以上であり、かつＮの倍数である値のうちの最小の値が、連続転送サイズＲＰＴとなっている。
【００８９】
そしてＣＰＵ２は、第１右側不要データ長ＤＬ２（図１１参照）を以下の式（６）で求める。
【００９０】
【数６】
2018036860.tif 000008
【００９１】
例えば、Ｎ＝１６、Ｍ＝８、Ｋ＝３、ＡＤＲ＝１２３であるとする。そして、必要ラインデータ４１０が１００個の画素データＰＤで構成され、ＤＬ４＝３００であるとする。この場合、ＤＬ３＝３１２、ＰＤＮ＝４、ＳＴＡ＝１１２、ＤＬ１＝１１、ＲＰＴ＝３３６、ＤＬ２＝１３となる。
【００９２】
以上のようにして、ＣＰＵ２は、対象情報を決定すると、開始アドレスＳＴＡ及び連続転送サイズＲＰＴを含む特定情報３００をＤＭＡコントローラ３に入力する。またＣＰＵ２は、左側不要データ長ＤＬ１及び第１右側不要データ長ＤＬ２を含む特定情報６１０と、不要画素データ数ＰＤＮを含む特定情報６２０とを処理回路７２に入力する。処理回路７２は、入力される特定情報６１０，６２０を調整回路６１及び調整回路６２にそれぞれ入力する。ＣＰＵ２は、必要画像２１０に応じて、開始アドレスＳＴＡ、連続転送サイズＲＰＴ、左側不要データ長ＤＬ１、第１右側不要データ長ＤＬ２及び不要画素データ数ＰＤＮを決定する。ＣＰＵ２は、ＤＭＡコントローラ３のＮバイトのアライメント制約と、処理回路７１のＭバイトのアライメント制約と、必要画像特定情報とに基づいて、ライン対応読み出しデータ４２０と、調整回路６１及び調整回路６２が破棄するデータとを決定する決定回路として機能すると言える。
【００９３】
なお、開始アドレスＳＴＡ、連続転送サイズＲＰＴ、左側不要データ長ＤＬ１、第１右側不要データ長ＤＬ２及び不要画素データ数ＰＤＮの少なくとも一つは、処理回路７２で決定されてもよい。これらの情報のすべてが処理回路７２で決定される場合には、処理回路７２が、ライン対応読み出しデータ４２０と、調整回路６１及び調整回路６２が破棄するデータとを決定する決定回路として機能する。また、これらの情報のうちの一部だけが処理回路７２で決定される場合には、ＣＰＵ２及び処理回路７２が、ライン対応読み出しデータ４２０と、調整回路６１及び調整回路６２が破棄するデータとを決定する決定回路として機能する。
【００９４】
また、処理回路７１が行う処理は上記以外の処理であってもよいし、処理回路７２が行う処理は上記以外の処理であってもよい。
【００９５】
また、処理回路７１と調整回路６１との間のデータバス幅が１バイトであってもよい。つまり、処理回路７１は、アライメント制約を有していなくてもよい。この場合には、調整回路６１は、画像処理装置１で扱われる最小のデータ単位である１バイトの単位で、処理回路７１にデータが入力をすることができる、そのため、第１入力データ４６０のデータ長ＤＬ３についての上記のような制約がなくなる。よって、調整回路６１は、ＤＭＡコントローラ３からのライン対応読み出しデータ４２０を、それに含まれる不要データをすべて破棄した上で、出力することができる。その結果、調整回路６２が不要となる。
【００９６】
また上記の例では、撮像画像２００において連続する複数のラインのそれぞれの一部を含む画像が必要画像２１０とされていたが（図７参照）、必要画像２１０はこの限りではない。例えば、撮像画像２００において連続する複数のラインのそれぞれのすべてを含む画像が必要画像２１０とされてもよい。また、撮像画像２００において１ライン飛ばしの複数のラインのそれぞれの少なくとも一部を含む画像が必要画像２１０とされてもよい。また、撮像画像２００において２ライン飛ばしの複数のラインのそれぞれの少なくとも一部を含む画像が必要画像２１０とされてもよい。
【００９７】
また上記の例では、ＤＭＡコントローラ３のアライメント制約のバイト数Ｎと、処理回路７１のアライメント制約のバイト数Ｍとの関係がＮ＞Ｍであったが、Ｎ＝Ｍであってもよいし、Ｎ＜Ｍであってもよい。また、ＮとＭとＬとの関係は上記の例には限られない。
【００９８】
また上記の例では、画像処理装置１には、アライメント制約を有する１つの処理回路（処理回路７１）が設けられていたが、アライメント制約を有する複数の処理回路が設けられてもよい。この場合には、アライメント制約を有する複数の処理回路のそれぞれの前段に調整回路が設けられる。各調整回路は、入力されるデータを、後段の処理回路のアライメント制約を満たすように、それに含まれる不要データを破棄して後段の処理回路に入力する。例えば、処理回路７２がアライメント制約を有する場合には、調整回路６２は、入力されるデータを、処理回路７２のアライメント制約を満たすように、それに含まれる不要データを破棄して処理回路７２に入力する。
【００９９】
また、ＤＭＡコントローラ３の代わりに、ＤＭＡコントローラ以外の、アライメント制約を有する処理回路が設けられてもよい。
【０１００】
以上のように、画像処理装置１では、調整回路６１が、必要画像２１０の１ラインごとに、ライン対応読み出しデータ４２０に含まれる不要データを破棄して、当該不要データが破棄されたライン対応読み出しデータ４２０である第１入力データ４６０を処理回路７１に入力する。したがって、処理回路７１の前段に位置する、アライメント制約を有するＤＭＡコントローラ３が不要データを出力する場合に、ＤＭＡコントローラ３と処理回路７１の間に位置する調整回路６１で当該不要データを破棄することができる。よって、必要画像データを処理する処理回路７１に不要データが入力されることを防止することができる。
【０１０１】
さらに、ＤＭＡコントローラ３がメモリ４から読み出したライン対応読み出しデータ４２０から不要データが破棄されることから、ＤＭＡコントローラ３を変更することなく、後段の処理回路に不要データが入力されることを防止することができる。よって、画像処理装置１が搭載されるシステム全体での効率を考慮して、ＤＭＡコントローラ３のアライメント制約を決定することができる。その結果、システム全体の効率を向上することができる。また、ＣＰＵ２とは別の調整回路６１がライン対応読み出しデータ４２０から不要データを破棄することから、ＣＰＵ２の負荷の増加を抑制することができる。また、メモリ４から必要画像データだけを読み出すためにＤＭＡコントローラ３を変更してそのアライメント制約を無くす場合よりも、画像処理回路６に対して調整回路６１及び調整回路６２を追加する場合の方が、画像処理装置１の開発工数を低減することができる。また、メモリ４から読み出されるライン対応読み出しデータ４２０を変更することによって、ＤＭＡコントローラ３のアラインメント制約の変更にも容易に対応することができる。
【０１０２】
また、画像処理装置１では、調整回路６２が、１ラインごとに、第１入力データ４６０を、それに含まれる不要データを破棄して処理回路７２に入力する。したがって、処理回路７２の前段に位置する、アライメント制約を有する処理回路７１が不要データを出力する場合に、処理回路７１と処理回路７２の間に位置する調整回路６２が当該不要データを破棄することができる。よって、アライメント制約を有する処理回路７１を変更することなく、必要画像データを処理する処理回路７２に不要データが入力されることを防止することができる。
【０１０３】
また、画像処理装置１には、ＤＭＡコントローラ３が読み出すライン対応読み出しデータ４２０と、調整回路６１及び調整回路６２が破棄するデータとを決定する決定回路（例えばＣＰＵ２）が設けられている。したがって、必要画像２１０が変更される場合であっても、必要画像２１０に応じた、ライン対応読み出しデータ４２０及びそれに含まれる不要データを決定回路で自動的に決定することができる。よって、必要画像２１０の変更にも容易に対応することができる。
【０１０４】
また、調整回路６１は、Ｍバイトのアライメント制約を有する処理回路７１に入力される第１入力データ４６０のデータ長が、当該Ｍバイトの倍数となるように、ライン対応読み出しデータ４２０に含まれる不要データを破棄する。したがって、ライン対応読み出しデータ４２０に含まれる不要データを破棄することができるとともに、処理回路７１のアライメント制約を満たしたデータを当該処理回路７１に入力することができる。
【０１０５】
なお上記の例では、調整回路６２は、必要画像２１０を示す必要画像データを構成する複数の画素データＰＤを、図１２に示されるようなラスタ順に１画素ずつ出力している。しかしながら、調整回路６２が、当該複数の画素データＰＤを、図１３に示されるような逆ラスタ順に１画素ずつ出力できるように画像処理装置１を動作させてもよい。これにより、出力デバイスは、必要画像２１０の鏡像を表示することができる。以下にこの場合の画像処理装置１の動作について説明する。
【０１０６】
ＤＭＡコントローラ３は、上記と同様に、複数のライン対応読み出しデータ４２０を、その先頭アドレスが小さいもの順に読み出す。一方で、ＤＭＡコントローラ３は、各ライン対応読み出しデータ４２０については、図１４の矢印５１０が示すように、１６バイト単位でアドレスが大きいものから順に読み出す。図１４には、必要画像２１０の最も上のラインのデータ４１０を含むライン対応読み出しデータ４２０が示されている。
【０１０７】
また、調整回路６１は、ライン対応読み出しデータ４２０から、右側不要データ４５１Ｒと、左側不要データ４５１Ｌに含まれる第１左側不要データ４５１Ｌ１とを破棄する。そして、調整回路６２は、第１入力データ４６０から、左側不要データ４５１Ｌに含まれる第２左側不要データ４５１Ｌ２を破棄する。
【０１０８】
第１左側不要データ４５１Ｌ１の先頭アドレスは、左側不要データ４５１Ｌの先頭アドレスと一致する。第２左側不要データ４５１Ｌ２の末尾アドレスは、左側不要データ４５１Ｌの末尾アドレスと一致する。第１左側不要データ４５１Ｌ１の末尾アドレスの次のアドレスが、第２左側不要データ４５１Ｌ２の先頭アドレスとなる。右側不要データ４５１Ｒの末尾アドレスは、ライン対応読み出しデータ４２０の末尾アドレスと一致する。
【０１０９】
処理回路７１は、入力される第１入力データ４６０を構成する複数の画素データＰＤをアドレスが大きいものから順に１画素ずつ出力する。調整回路６２は、第１入力データ４６０から第２左側不要データ４５１Ｌ２を破棄し、それによって得られる必要ラインデータ４１０を構成する複数の画素データＰＤをアドレスが大きいものから順に１画素ずつ出力する。これにより、調整回路６２は、必要画像データを構成する複数の画素データＰＤを、逆ラスタ順に１画素ずつ出力する。
【０１１０】
図１４に示される第１入力データ４６０のデータ長ＤＬ３は、上記の式（１）を用いて求めることができる。第２左側不要データ４５１Ｌ２を構成する不要な複数の画素データＰＤの数ＰＤＮ１は、上記の不要画素データ数ＰＤＮと同様にして求めることができる（式（２）参照）。ＣＰＵ２は、右側不要データ４５１Ｒのデータ長ＤＬ５（以後、「右側不要データ長ＤＬ５」と呼ぶ）を求めるために、必要画像２１０の最も上のラインのデータ４１０を含むライン対応読み出しデータ４２０の末尾アドレスである開始アドレスＳＴＡ１（図１４参照）を以下の式（７）で求める。
【０１１１】
【数７】
2018036860.tif 000009
【０１１２】
式（７）中のＡＤＲ１は、必要画像２１０の最も上のラインのデータ４１０の末尾アドレス（図１４参照）を示す。
【０１１３】
ＣＰＵ２は、式（７）で求めた開始アドレスＳＴＡ１を用いて右側不要データ長ＤＬ５を以下の式（８）で求める。
【０１１４】
【数８】
2018036860.tif 000010
【０１１５】
次にＣＰＵ２は、本例での連続転送サイズＲＰＴ１を以下の式（９）で求める。
【０１１６】
【数９】
2018036860.tif 000011
【０１１７】
そして、ＣＰＵ２は、第１左側不要データ４５１Ｌ１のデータ長ＤＬ６を以下の式（１０）で求める。
【０１１８】
【数１０】
2018036860.tif 000012
【０１１９】
ＣＰＵ２は、必要画像データを構成する複数の画素データＰＤが、処理回路７２に対してラスタ順に入力される第１動作モードで画像処理装置１が動作するか、当該複数の画素データＰＤが、処理回路７２に対して逆ラスタ順に入力される第２動作モードで画像処理装置１が動作するか決定する。そして、ＣＰＵ２は、ＤＭＡコントローラ３及び画像処理回路６が、決定した動作モードに応じた処理を行うように、ＤＭＡコントローラ３及び画像処理回路６を制御する。これにより、出力デバイスは、必要画像２１０をそのまま表示したり、必要画像２１０の鏡像を表示したりすることができる。
【０１２０】
なお上記の例では、画像処理装置１は、デジタルスチルカメラに搭載されていたが、それ以外の装置に搭載されてもよい。例えば、画像処理装置１は、ＯＡ（Office Automation）機器（コピー機、インテリジェント複合機、プロジェクターなど）に搭載されてもよい。また画像処理装置１は、エンタテイメント機器（パチンコ機等の遊技機、ゲームセンター等に設けられるゲーム機、個人ユースのゲーム機など）に搭載されてもよい。また画像処理装置１は、医療用機器（医療用モニターなど）に搭載されてもよい。また画像処理装置１は、教育用途の電子機器（タブレット、電子黒板など）に搭載されてもよい。
【０１２１】
以上のように、画像処理装置１は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０１２２】
１  画像検出装置
２  ＣＰＵ
３  ＤＭＡコントローラ
４  メモリ
６１，６２  調整回路
７１，７２  処理回路
【図１】
2018036860.tif 000013
【図２】
2018036860.tif 000014
【図３】
2018036860.tif 000015
【図４】
2018036860.tif 000016
【図５】
2018036860.tif 000017
【図６】
2018036860.tif 000018
【図７】
2018036860.tif 000019
【図８】
2018036860.tif 000020
【図９】
2018036860.tif 000021
【図１０】
2018036860.tif 000022
【図１１】
2018036860.tif 000023
【図１２】
2018036860.tif 000024
【図１３】
2018036860.tif 000025
【図１４】
2018036860.tif 000026