(57)【要約】【課題】メインメモリに書き込まれたデータを逆方向に読み出すための読出ＤＭＡ処理部を備えたデータ転送装置において、回路規模の増大を抑制しつつ転送効率を向上させる。【解決手段】メモリ制御部１２０に、ＦＩＦＯメモリ１２２とスワップ部１２１とを設け、メインメモリ８から読み出したバースト転送単位のデータを第１データサイズ毎にＦＩＦＯメモリ１２２への格納時の順序とは逆の順序で出力されるようにＦＩＦＯメモリ１２２に格納し、スワップ部１２１から第１データサイズ毎に順次出力されるデータをバースト転送単位毎に読出ＤＭＡ部１３０に出力する。また、読出ＤＭＡ部１３０に、メモリ制御部１２０から順次入力されるバースト転送単位毎のデータに含まれる各第２データサイズのデータを所定の第３データサイズ毎に区分し、区分した各第３データサイズのデータを入力された順とは逆順で第２データサイズ毎に出力するスワップ部１３３を設ける。【選択図】図１
2009199436.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリと、上記メインメモリからのデータの読み出しを制御するメモリ制御部と、上記メインメモリに格納されているデータを上記メモリ制御部を介したＤＭＡ転送によって取得する読出ＤＭＡ処理部とを備え、上記読出ＤＭＡ処理部は、上記メインメモリから読み出すデータの読み出し開始アドレス、読み出しデータ量、および上記開始アドレスからの読み出し方向を特定するための情報を含むＤＭＡ読出要求を上記メモリ制御部に出力し、上記メモリ制御部は、上記ＤＭＡ読出要求に応じたデータを上記メインメモリから読み出し、読み出したデータを所定のバースト転送単位のデータ毎に上記読出ＤＭＡ処理部に転送するデータ転送装置であって、
上記メモリ制御部は、
所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段と、
上記記憶手段から順次出力される上記グループ毎のデータを入力され、入力された上記各グループのデータを所定の第２データサイズ毎に区分して複数の第２グループのデータに分類し、分類した上記各第２グループのデータを入力された順とは逆順に並べ替えて出力する第１スワップ部とを備え、
上記メインメモリから読み出した上記バースト転送単位のデータを、所定の第１データサイズ毎に区分して複数の第１グループのデータに分類し、これら各第１グループのデータが上記記憶手段への格納時の順序とは逆の順序で上記記憶手段から出力されるように上記記憶手段に格納し、
上記第１スワップ部から順次出力されるデータを上記バースト転送単位毎に上記読出ＤＭＡ処理部に出力し、
上記読出ＤＭＡ処理部は、
上記メモリ制御部から順次入力される上記バースト転送単位毎のデータに含まれる上記各第２グループのデータを所定の第３データサイズ毎に区分して複数の第３グループのデータに分類し、分類した上記各第３グループのデータを入力された順とは逆順に並び替えて出力する第２スワップ部を備えていることを特徴とするデータ転送装置。
【請求項２】
上記メインメモリに書き込むデータを所定のバースト転送単位毎に上記メモリ制御部に転送するとともに、上記メインメモリに対する上記データの書き込み開始アドレス、書き込みデータ量、および上記書き込み開始アドレスからの書き込み方向を特定するための情報を含むＤＭＡ書込要求を上記メモリ制御部に出力する書込ＤＭＡ処理部をさらに備え、
上記メモリ制御部は、上記ＤＭＡ書込要求に応じて、上記書込ＤＭＡ処理部からバースト転送単位毎に転送される上記データを上記メインメモリに書き込むようになっており、
上記書込ＤＭＡ処理部が上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送するか、または、
上記第１スワップ部が上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力するようになっており、
上記メモリ制御部は、
上記第３スワップ部または第１スワップ部から出力される上記バースト転送単位毎のデータを、上記第４グループのデータの順序が上記第３スワップ部または第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込むことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
メインメモリと、上記メインメモリへのデータの書き込みを制御するメモリ制御部と、上記メインメモリに格納するデータを上記メモリ制御部を介したＤＭＡ転送によって上記メインメモリに転送する書込ＤＭＡ処理部とを備え、上記書込ＤＭＡ処理部は、上記メインメモリへ書き込みデータの書き込み開始アドレス、書き込みデータ量、および上記開始アドレスからの書き込み方向を特定するための情報を含むＤＭＡ書込要求を上記メモリ制御部に出力し、上記メモリ制御部は、上記書込ＤＭＡ処理部から所定のバースト転送単位毎に転送されたデータを上記ＤＭＡ書込要求に応じて上記メインメモリに書き込むデータ転送装置であって、
上記書込ＤＭＡ処理部が上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送するか、または、
上記第１スワップ部が上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力するようになっており、
上記メモリ制御部は、
所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段を備え、
上記第３スワップ部または第１スワップ部から出力される上記バースト転送単位毎のデータを、上記第４グループのデータの順序が上記第３スワップ部または第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込むことを特徴とするデータ転送装置。
【請求項４】
上記書込ＤＭＡ処理部は、
上記バースト転送単位のデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、さらに上記各第５グループのデータを所定の第６データサイズ毎に区分して複数の第６グループのデータに分類し、上記各第５グループのデータにおける上記各第６グループのデータの順序を逆順に並べ替えて順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送し、
上記第１スワップ部は、上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて出力し、上記第１スワップ部から出力されるデータを、上記各第４グループのデータの順序が上記第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込むことを特徴とする請求項２または３に記載のデータ転送装置。
【請求項５】
上記メインメモリから読み出すデータは複数画素のデータからなる画像データであり、
上記第３データサイズは、１画素分のデータに相当するサイズであることを特徴とする請求項１または２に記載のデータ転送装置。
【請求項６】
上記メインメモリに書き込むデータは複数画素のデータからなる画像データであり、
上記第５データサイズは１画素分のデータに相当するサイズであることを特徴とする請求項２から４のいずれか１項に記載のデータ転送装置。
【請求項７】
上記メインメモリに書き込むデータは複数画素についての複数の色成分のデータからなる画像データであり、
上記第５データサイズは１画素分のデータに相当するサイズであり、上記第６データサイズは１色成分のデータに相当するサイズであることを特徴とする請求項４に記載のデータ転送装置。
【請求項８】
請求項１から７のいずれか１項に記載のデータ転送装置を備えていることを特徴とする画像処理装置。
【請求項９】
請求項１または２に記載のデータ転送装置を備えた画像処理装置であって、
上記メインメモリから読み出すデータは複数画素のデータからなる画像データであり、上記第３データサイズは１画素分のデータに相当するサイズであり、
上記読出ＤＭＡ処理部は、上記第２スワップ部から出力されるデータを上記第３データサイズ毎に順次出力するデータ幅変換部を備えており、
上記データ幅変換部から上記第３データサイズ毎に出力されるデータに基づいて所定の画像処理を施す画像処理部を備えていることを特徴とする画像処理装置。
【請求項１０】
請求項２に記載のデータ転送装置を備え、
上記画像処理部によって画像処理を施された画像データを上記書込ＤＭＡ処理部および上記メモリ制御部によって上記メインメモリに書き込むことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
請求項２に記載のデータ転送装置を備えた画像処理装置であって、
上記読出ＤＭＡ処理部および上記メモリ制御部によって上記メインメモリに格納されている画像データを読み出し、
上記第２スワップ部から出力されるデータを上記書込ＤＭＡ処理部および上記メモリ制御部によって上記メインメモリに書き込むことを特徴とする画像処理装置。
【請求項１２】
請求項８から１１のいずれか１項に記載の画像処理装置と、
上記画像処理装置から入力される画像データに応じた画像を記録材上に形成する画像形成部とを備えていることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ転送方式を用いてデータを転送するデータ転送装置、およびこのデータ転送装置を備えた画像処理装置、画像形成装置に関するものである。
【背景技術】
【０００２】
従来から、メモリに記憶されているデータを転送するためのデータ転送方式として、ＤＭＡ（ダイレクトメモリアクセス）転送が知られている。ＤＭＡとは、ＣＰＵを介さずにモジュールとメモリとの間でデータ転送を行う方式のことである。
【０００３】
一般的なメインメモリへのアクセスやバスアクセス（画像処理用のデータ転送など高速アクセス用のバスラインを介したアクセス）がアドレスインクリメントのみをサポートしていることが多いことから、ＤＭＡ転送では、アドレスインクリメント転送による順方向アクセスを行うのが一般的である。すなわち、ＤＭＡ転送では、一般に、指定したアドレスからアドレスインクリメント側に向かってデータの書き込みあるいは読み出しが行われる。
【０００４】
ただし、ＤＭＡ転送において逆方向アクセスを行う技術、すなわち指定したアドレスからアドレスデクリメント側に向かってデータの書き込みあるいは読み出しを行う技術も提案されている。例えば、特許文献１には、１８０°回転した画像データをＤＭＡ転送する場合にデータ転送を効率的に行うために、ＤＭＡ転送時に逆方向アクセスおよびバースト転送を行う技術が開示されている。バースト転送とは、メモリアクセス時にその転送効率を向上させるために一回のアドレス指定に対して複数のデータを連続的に転送する方法である。
【０００５】
具体的には、特許文献１の技術では、まず、画像データにおける最後の区分け領域の先頭アドレスが設定されてＤＭＡ転送が開始されると、ＤＭＡ制御部がＤＭＡアドレスを指定し、区分け領域の画像データをバースト転送によってＤＭＡ処理部に転送してＤＭＡ処理部に備えられるＦＩＦＯメモリに格納する。また、ＤＭＡ制御部がＤＭＡアドレスをデクリメントし、１つ手前の区分け領域の先頭アドレスについて同様の処理を行う。そして、この処理を繰り返し、区分け領域毎に最後から先頭へ向けて画像データを順次バースト転送する。また、逆読み部により、ＦＩＦＯメモリ内の区分け領域ごとの画像データを逆読みして順番を入れ替える。このように、特許文献１の技術では、メインメモリにおける各区分け領域のデータを逆順に読み出すとともに、逆読み部によって各区分け領域内のデータを逆読みすることによって１８０°回転を実現している。
【０００６】
なお、ＦＩＦＯ（First In First Out）とは、先入先出し型のメモリ、すなわちメモリへアクセスするデータが書き込んだ順番どおりに読み出されるメモリである。本明細書では、バースト転送を行う際のバースト転送単位での先入先出しアクセスについてもＦＩＦＯという用語を用いる。
【特許文献１】特開２００１−２４３１７２号公報（平成１３年９月７日公開）
【特許文献２】国際公開第ＷＯ２００６／０９２９５７Ａ１号パンフレット（公開日：２００６年９月８日）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術では、逆方向アクセスを行うためのＦＩＦＯメモリおよび逆読み部がＤＭＡ処理部の内部に設けられている。このため、例えば転送効率を高めるためにバースト転送サイズ（バースト転送するデータのサイズ）を大きくする場合には、ＤＭＡ処理部の内部に備えられるＦＩＦＯメモリのサイズを大きくする必要があるので、ＤＭＡ処理部の回路規模が増大するという問題がある。このため、特に、複数のＤＭＡ処理部を有する画像処理装置においてバースト転送サイズを大きくする場合などには、画像処理装置の回路規模が非常に大きくなってしまう。
【０００８】
上記の問題点についてより詳細に説明する。図４４は、総転送データサイズ１６のデータをバースト転送サイズ４で転送する場合、およびバースト転送サイズ８で転送する場合の転送サイクルを示す説明図である。なお、この図の例では、アドレスフェーズ（書き込みあるいは読み出しを行うデータのアドレスを指定する期間であり、通常はデータ転送前に行われる）やバースト転送の切り替え処理等によるオーバーヘッド（データ転送が行われない、転送効率を低下させる無駄な期間）が２サイクルである場合の例を示している。
【０００９】
この図に示すように、総転送データサイズ１６の転送を完了するために、バースト転送サイズ４の場合には２４サイクルが必要であるが、バースト転送サイズ８の場合には２０サイクルで転送完了できる。つまり、バースト転送サイズを大きくすることにより、アドレスフェーズやバースト転送の切り替え等に要するオーバーヘッドのサイクル数を減らして転送効率を向上させることができる。
【００１０】
図４５は、特許文献１の技術において、バースト転送サイズの２倍の記憶容量を有するＦＩＦＯメモリを用いる場合のＦＩＦＯメモリ（逆方向アクセス機能含む）に対するアクセス方法を示す説明図である。
【００１１】
この図に示すように、バースト転送データのＦＩＦＯメモリへの書き込みは順方向に行われる。つまり、データ１，２，・・・，７，８がこの順でＦＩＦＯメモリの上位側から下位側に向かって書き込まれる。一方、バースト転送データのＦＩＦＯメモリからの読出しは、逆方向に行われる。つまり、図４５に示したように、データ８，７，・・・，２，１の順に読み出される。
【００１２】
このように、ＦＩＦＯメモリに書き込まれているデータを逆方向に読み出す逆方向アクセスを行う場合には、バースト転送データにおける最後の区分け領域のデータから読み出すので、ＦＩＦＯメモリは少なくともバースト転送サイズと同等のサイズを有している必要がある。
【００１３】
したがって、転送効率を高めるためにバースト転送サイズを大きくする場合には、ＤＭＡ処理部の内部に備えられるＦＩＦＯメモリのサイズを大きくする必要があり、ＤＭＡ処理部の回路規模が増大してしまう。
【００１４】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、メインメモリに書き込まれたデータを逆方向に読み出すための読出ＤＭＡ処理部、および／または、入力されたデータをメインメモリに逆方向に書き込む書込ＤＭＡ処理部を備えたデータ転送装置において、回路規模の増大を抑制しつつ、転送効率を向上させることにある。
【課題を解決するための手段】
【００１５】
本発明のデータ転送装置は、上記の課題を解決するために、メインメモリと、上記メインメモリからのデータの読み出しを制御するメモリ制御部と、上記メインメモリに格納されているデータを上記メモリ制御部を介したＤＭＡ転送によって取得する読出ＤＭＡ処理部とを備え、上記読出ＤＭＡ処理部は、上記メインメモリから読み出すデータの読み出し開始アドレス、読み出しデータ量、および上記開始アドレスからの読み出し方向を特定するための情報を含むＤＭＡ読出要求を上記メモリ制御部に出力し、上記メモリ制御部は、上記ＤＭＡ読出要求に応じたデータを上記メインメモリから読み出し、読み出したデータを所定のバースト転送単位のデータ毎に上記読出ＤＭＡ処理部に転送するデータ転送装置であって、上記メモリ制御部は、所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段と、上記記憶手段から順次出力される上記グループ毎のデータを入力され、入力された上記各グループのデータを所定の第２データサイズ毎に区分して複数の第２グループのデータに分類し、分類した上記各第２グループのデータを入力された順とは逆順に並べ替えて出力する第１スワップ部とを備え、上記メインメモリから読み出した上記バースト転送単位のデータを、所定の第１データサイズ毎に区分して複数の第１グループのデータに分類し、これら各第１グループのデータが上記記憶手段への格納時の順序とは逆の順序で上記記憶手段から出力されるように上記記憶手段に格納し、上記第１スワップ部から順次出力されるデータを上記バースト転送単位毎に上記読出ＤＭＡ処理部に出力し、上記読出ＤＭＡ処理部は、上記メモリ制御部から順次入力される上記バースト転送単位毎のデータに含まれる上記各第２グループのデータを所定の第３データサイズ毎に区分して複数の第３グループのデータに分類し、分類した上記各第３グループのデータを入力された順とは逆順に並び替えて出力する第２スワップ部を備えていることを特徴としている。
【００１６】
上記の構成によれば、メモリ制御部は、所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段と、上記記憶手段から順次出力される上記グループ毎のデータを入力され、入力された上記各グループのデータを所定の第２データサイズ毎に区分して複数の第２グループのデータに分類し、分類した上記各第２グループのデータを入力された順とは逆順に並べ替えて出力する第１スワップ部とを備え、上記メインメモリから読み出した上記バースト転送単位のデータを、所定の第１データサイズ毎に区分して複数の第１グループのデータに分類し、これら各第１グループのデータが上記記憶手段への格納時の順序とは逆の順序で上記記憶手段から出力されるように上記記憶手段に格納し、上記第１スワップ部から順次出力されるデータを上記バースト転送単位毎に上記読出ＤＭＡ処理部に出力する。また、読出ＤＭＡ処理部は、上記メモリ制御部から順次入力される上記バースト転送単位毎のデータに含まれる上記各第２グループのデータを所定の第３データサイズ毎に区分して複数の第３グループのデータに分類し、分類した上記各第３グループのデータを入力された順とは逆順に並び替えて出力する第２スワップ部を備えている。
【００１７】
これにより、メインメモリに書き込まれているデータを、書き込まれている方向とは逆方向に読み出すことができる。また、メインメモリから読み出したデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の読出しを高速で行うことができる。また、上記記憶手段を読出ＤＭＡ処理部に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、読出ＤＭＡ処理部の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部の記憶手段の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、データ転送装置全体としての回路規模の増大を抑制できる。
【００１８】
また、本発明の他のデータ転送装置は、メインメモリと、上記メインメモリへのデータの書き込みを制御するメモリ制御部と、上記メインメモリに格納するデータを上記メモリ制御部を介したＤＭＡ転送によって上記メインメモリに転送する書込ＤＭＡ処理部とを備え、上記書込ＤＭＡ処理部は、上記メインメモリへ書き込みデータの書き込み開始アドレス、書き込みデータ量、および上記開始アドレスからの書き込み方向を特定するための情報を含むＤＭＡ書込要求を上記メモリ制御部に出力し、上記メモリ制御部は、上記書込ＤＭＡ処理部から所定のバースト転送単位毎に転送されたデータを上記ＤＭＡ書込要求に応じて上記メインメモリに書き込むデータ転送装置であって、上記書込ＤＭＡ処理部が上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送するか、または、上記第１スワップ部が上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力するようになっており、上記メモリ制御部は、所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段を備え、上記第３スワップ部または第１スワップ部から出力される上記バースト転送単位毎のデータを、上記第４グループのデータの順序が上記第３スワップ部または第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込むことを特徴としている。
【００１９】
また、上記した読出ＤＭＡ処理部を備えた本発明のデータ転送装置において、上記メインメモリに書き込むデータを所定のバースト転送単位毎に上記メモリ制御部に転送するとともに、上記メインメモリに対する上記データの書き込み開始アドレス、書き込みデータ量、および上記書き込み開始アドレスからの書き込み方向を特定するための情報を含むＤＭＡ書込要求を上記メモリ制御部に出力する書込ＤＭＡ処理部をさらに備え、上記メモリ制御部は、上記ＤＭＡ書込要求に応じて、上記書込ＤＭＡ処理部からバースト転送単位毎に転送される上記データを上記メインメモリに書き込むようになっており、上記書込ＤＭＡ処理部が上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送するか、または、上記第１スワップ部が上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力するようになっており、上記メモリ制御部は、上記第３スワップ部または第１スワップ部から出力される上記バースト転送単位毎のデータを、上記第４グループのデータの順序が上記第３スワップ部または第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込む構成としてもよい。
【００２０】
また、上記書込ＤＭＡ処理部は、上記バースト転送単位のデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、さらに上記各第５グループのデータを所定の第６データサイズ毎に区分して複数の第６グループのデータに分類し、上記各第５グループのデータにおける上記各第６グループのデータの順序を逆順に並べ替えて順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送し、上記第１スワップ部は、上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて出力し、上記第１スワップ部から出力されるデータを、上記各第４グループのデータの順序が上記第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込む構成としてもよい。
【００２１】
上記いずれかの構成によれば、書込ＤＭＡ処理部またはメモリ制御部が、バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力するスワップ部を備えている。また、メモリ制御部が、上記スワップ部から出力されるバースト転送単位毎のデータを、上記第４グループのデータの順序が上記スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込む。
【００２２】
これにより、書込ＤＭＡ処理部に入力されるデータを、入力された順序とは逆の順序でメインメモリに書き込むことができる。また、メインメモリに書き込むデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の書き込みを高速で行うことができる。また、記憶手段を書込ＤＭＡ処理部に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、書込ＤＭＡ処理部の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部の記憶手段の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、データ転送装置全体としての回路規模の増大を抑制できる。
【００２３】
また、上記メインメモリから読み出すデータは複数画素のデータからなる画像データであり、上記第３データサイズは、１画素分のデータに相当するサイズであってもよい。
【００２４】
上記の構成によれば、メインメモリに書き込まれている画像データを書き込み時とは逆方向に走査することができる。例えば、左の画素から右の画素に向かう順番で各画素のデータが書き込まれている画像データについて、各画素の画像データを右の画素から左の画素に向かう順番で走査することができる。また、バースト転送によってデータ転送を高速で行えるので、上記の逆方向の走査にかかる処理時間を短くできる。
【００２５】
また、上記メインメモリに書き込むデータは複数画素のデータからなる画像データであり、上記第５データサイズは１画素分のデータに相当するサイズであってもよい。
【００２６】
上記の構成によれば、元の画像データの各画素の位置を反転させた鏡像画像の画像データをメインメモリに記憶させることができる。また、バースト転送によってデータ転送を高速で行えるので、鏡像画像の生成にかかる処理時間を短くできる。
【００２７】
また、上記メインメモリに書き込むデータは複数画素についての複数の色成分のデータからなる画像データであり、上記第５データサイズは１画素分のデータに相当するサイズであり、上記第６データサイズは１色成分のデータに相当するサイズであってもよい。
【００２８】
上記の構成によれば、複数の色成分によって構成される複数の画素からなる画像データについて、各画素の位置を反転させた鏡像画像の画像データをメインメモリに記憶させることができる。また、バースト転送によってデータ転送を高速で行えるので、鏡像画像の生成にかかる処理時間を短くできる。
【００２９】
本発明の画像処理装置は、上記したいずれかのデータ転送装置を備えている。
【００３０】
上記の構成によれば、メインメモリに書き込まれているデータを書き込まれている方向とは逆方向に読み出すこと、および／または、書込ＤＭＡ処理部に入力されるデータを入力された順序とは逆の順序でメインメモリに書き込むことができる。また、メインメモリから読み出すデータ、および／または、メインメモリに書き込むデータをバースト転送単位で転送することができるので、転送効率を向上させることができる。また、記憶手段をＤＭＡ処理部に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、ＤＭＡ処理部の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部の記憶手段の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、データ転送装置全体としての回路規模の増大を抑制できる。
【００３１】
また、上記した読出ＤＭＡ処理部を有するデータ転送装置を備えた画像処理装置であって、上記メインメモリから読み出すデータは複数画素のデータからなる画像データであり、上記第３データサイズは１画素分のデータに相当するサイズであり、上記読出ＤＭＡ処理部は、上記第２スワップ部から出力されるデータを上記第３データサイズ毎に順次出力するデータ幅変換部を備えており、上記データ幅変換部から上記第３データサイズ毎に出力されるデータに基づいて所定の画像処理を施す画像処理部を備えている構成としてもよい。
【００３２】
上記の構成によれば、メインメモリに書き込まれている画像データを書き込み時とは逆方向に走査し、逆方向に走査した画像データに対して所定の画像処理を施すことができる。また、バースト転送によってデータ転送を高速で行えるので、上記の逆方向の走査にかかる処理時間を短くできる。
【００３３】
また、上記読出ＤＭＡ処理部および上記書込ＤＭＡ処理部を有するデータ転送装置を備え、上記画像処理部によって画像処理を施された画像データを上記書込ＤＭＡ処理部および上記メモリ制御部によって上記メインメモリに書き込む構成としてもよい。
【００３４】
上記の構成によれば、メインメモリに書き込まれている画像データを書き込み時とは逆方向に走査し、逆方向に走査した画像データに対して所定の画像処理を施すとともに、画像処理後の画像データを再度反転させてメインメモリに書き込むことができる。例えば、左の画素から右の画素へ向かう順番で各画素のデータが書き込まれている画像データについて、各画素の画像データを右の画素から左の画素に向かう順番で走査して画像処理を施し、画像処理後の画像データを左の画素から右の画素に向かう順番でメインメモリに書き込むことができる。
【００３５】
また、上記読出ＤＭＡ処理部と上記書込ＤＭＡ処理部とを備えたデータ転送装置を備えた画像処理装置であって、上記読出ＤＭＡ処理部および上記メモリ制御部によって上記メインメモリに格納されている画像データを読み出し、上記第２スワップ部から出力されるデータを上記書込ＤＭＡ処理部および上記メモリ制御部によって上記メインメモリに書き込む構成としてもよい。
【００３６】
上記の構成によれば、メインメモリに格納されている上記画像データの鏡像画像を生成して上記メインメモリに書き込むことができる。
【００３７】
本発明の画像形成装置は、上記したいずれかの画像処理装置と、上記画像処理装置から入力される画像データに応じた画像を記録材上に形成する画像形成部とを備えている。
【００３８】
上記の構成によれば、メインメモリに書き込まれているデータを書き込まれている方向とは逆方向に読み出すこと、および／または、書込ＤＭＡ処理部に入力されるデータを入力された順序とは逆の順序でメインメモリに書き込むことができる。また、メインメモリから読み出すデータ、および／または、メインメモリに書き込むデータをバースト転送単位で転送することができるので、転送効率を向上させることができる。また、記憶手段をＤＭＡ処理部に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、ＤＭＡ処理部の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部の記憶手段の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、データ転送装置全体としての回路規模の増大を抑制できる。
【発明の効果】
【００３９】
以上のように、本発明のデータ転送装置は、上記メモリ制御部が、所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段と、上記記憶手段から順次出力される上記グループ毎のデータを入力され、入力された上記各グループのデータを所定の第２データサイズ毎に区分して複数の第２グループのデータに分類し、分類した上記各第２グループのデータを入力された順とは逆順に並べ替えて出力する第１スワップ部とを備え、上記メインメモリから読み出した上記バースト転送単位のデータを、所定の第１データサイズ毎に区分して複数の第１グループのデータに分類し、これら各第１グループのデータが上記記憶手段への格納時の順序とは逆の順序で上記記憶手段から出力されるように上記記憶手段に格納し、上記第１スワップ部から順次出力されるデータを上記バースト転送単位毎に上記読出ＤＭＡ処理部に出力し、上記読出ＤＭＡ処理部は、上記メモリ制御部から順次入力される上記バースト転送単位毎のデータに含まれる上記各第２グループのデータを所定の第３データサイズ毎に区分して複数の第３グループのデータに分類し、分類した上記各第３グループのデータを入力された順とは逆順に並び替えて出力する第２スワップ部を備えている。
【００４０】
それゆえ、メインメモリに書き込まれているデータを、書き込まれている方向とは逆方向に読み出すことができる。また、メインメモリから読み出したデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の読出しを高速で行うことができる。また、上記記憶手段を読出ＤＭＡ処理部に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、読出ＤＭＡ処理部の回路規模の増大を抑制できる。
【００４１】
また、本発明の他のデータ転送装置は、上記書込ＤＭＡ処理部が上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力する第３スワップ部を備え、上記第３スワップ部から順次出力されるデータをバースト転送単位毎に上記メモリ制御部に転送するか、または、上記第１スワップ部が上記書込ＤＭＡ処理部から転送された上記バースト転送単位のデータを所定の第４データサイズ毎に区分して複数の第４グループのデータに分類し、さらに上記各第４グループのデータを所定の第５データサイズ毎に区分して複数の第５グループのデータに分類し、上記各第４グループのデータ内における上記各第５グループのデータの順序を逆順に並べ替えて上記各第４グループのデータを順次出力するようになっており、上記メモリ制御部は、所定のデータサイズ毎に区分された複数のグループのデータを格納し、格納した上記各グループのデータをこれら各データの格納領域に応じた順序で上記グループ毎に出力する記憶手段を備え、上記第３スワップ部または第１スワップ部から出力される上記バースト転送単位毎のデータを、上記第４グループのデータの順序が上記第３スワップ部または第１スワップ部からの出力時とは逆の順序で上記記憶手段から順次出力されるように上記記憶手段に格納し、上記記憶手段から順次出力されるデータを、上記ＤＭＡ書込要求に応じた上記メインメモリのアドレスに書き込む。
【００４２】
それゆえ、書込ＤＭＡ処理部に入力されるデータを、入力された順序とは逆の順序でメインメモリに書き込むことができる。また、メインメモリに書き込むデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の書き込みを高速で行うことができる。また、記憶手段を書込ＤＭＡ処理部に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、書込ＤＭＡ処理部の回路規模の増大を抑制できる。
【発明を実施するための最良の形態】
【００４３】
〔実施形態１〕
本発明の一実施形態について説明する。なお、本実施形態では、本発明を、入力画像データに含まれる原稿画像における斜め方向のライン同士の交点を特徴点として算出し、この特徴点を用いて算出される幾何学的に不変な特徴量に基づいて予め登録しておいた登録画像の特徴点との照合処理（類似性判定処理）を行うデジタルカラー複合機（ＭＦＰ：Multi-Function Printer）に適用する場合の一例について説明する。より具体的には、本発明を、上記交点を算出する際のメモリへのデータの書き込み処理、および読み出し処理に適用する場合の例について説明する。
【００４４】
（１−１．  デジタルカラー複合機１の全体構成）
図２は、本実施形態にかかるデジタルカラー複合機（データ転送装置、画像処理装置、画像形成装置）１の概略構成を示すブロック図である。このデジタルカラー複合機１は、コピー機能、プリンタ機能、ファクシミリ送信機能、スキャナ機能、scan to e-mail機能等を有している。
【００４５】
図２に示すように、デジタルカラー複合機１は、カラー画像入力装置２、カラー画像処理装置３、カラー画像出力装置４、通信装置５、操作パネル６を備えている。
【００４６】
カラー画像入力装置（画像読取装置）２は、例えばＣＣＤ（Charge Coupled Device ）などの光学情報を電気信号に変換するデバイスを備えたスキャナ部（図示せず）より構成され、原稿からの反射光像を、ＲＧＢ（Ｒ：赤・Ｇ：緑・Ｂ：青）のアナログ信号としてカラー画像処理装置３に出力する。
【００４７】
カラー画像処理装置３は、制御部７、メインメモリ８、Ａ／Ｄ変換部１１、シェーディング補正部１２、文書照合処理部１３、入力階調補正部１４、領域分離処理部１５、色補正部１６、黒生成下色除去部１７、空間フィルタ処理部１８、出力階調補正部１９、および階調再現処理部２０を備えている。なお、これら各部は、バス幅６４ビットのバスラインＢＬを介して接続されている。カラー画像入力装置２からカラー画像処理装置３に入力されたアナログ信号は、カラー画像処理装置３内を、Ａ／Ｄ変換部１１、シェーディング補正部１２、文書照合処理部１３、入力階調補正部１４、領域分離処理部１５、色補正部１６、黒生成下色除去部１７、空間フィルタ処理部１８、出力階調補正部１９、階調再現処理部２０の順で送られ、ＣＭＹＫのデジタルカラー信号としてカラー画像出力装置４に出力される。
【００４８】
制御部７は、例えばＣＰＵ（Central Processing Unit）等からなり、図示しないＲＯＭ等に格納されたプログラムや各種データ、操作パネル６から入力される情報等に基づいて、デジタルカラー複合機１の各部の動作を制御する。
【００４９】
メインメモリ８は、画像データ、デジタルカラー複合機１の各部における処理に用いられる各種データ、デジタルカラー複合機１の各部による処理結果等を記憶する記憶手段である。
【００５０】
Ａ／Ｄ（アナログ／デジタル）変換部１１は、ＲＧＢのアナログ信号をデジタル信号に変換するものである。
【００５１】
シェーディング補正部１２は、Ａ／Ｄ変換部１１より送られてきたデジタルのＲＧＢ信号に対して、カラー画像入力装置２の照明系、結像系、撮像系で生じる各種の歪みを取り除く処理を施すものである。また、シェーディング補正部１２は、カラーバランスの調整、および濃度信号などカラー画像処理装置３に採用されている画像処理システムの扱い易い信号に変換する処理を施す。
【００５２】
文書照合処理部１３は、入力された画像データから特徴点を抽出し、抽出した特徴点に基づいて特徴量を算出する。また、文書照合処理部１３は、上記のように算出した特徴量を画像データと対応付けて後述するハッシュテーブルに記憶（登録）させる。また、文書照合処理部１３は、入力画像データから上記のように算出した特徴量をハッシュテーブルに記憶されている登録画像の特徴量と比較することで入力画像と登録画像との類似性を判定する。また、文書照合処理部１３は、入力画像データの原稿に類似する登録画像があると判定した場合には、この入力画像データに対する複写、電子配信、ファクシミリ送信、ファイリングなどの処理を禁止する。また、文書照合処理部１３は入力されたＲＧＢ信号をそのまま後段の入力階調補正部１４へ出力する。なお、文書照合処理部１３の詳細については後述する。
【００５３】
入力階調補正部１４は、シェーディング補正部にて各種の歪みが取り除かれたＲＧＢ信号に対して、下地色（下地色の濃度成分：下地濃度）の除去やコントラストなどの画質調整処理を施す。
【００５４】
領域分離処理部１５は、ＲＧＢ信号より、入力画像中の各画素を文字領域、網点領域、写真領域のいずれかに分離するものである。領域分離処理部１５は、分離結果に基づき、画素がどの領域に属しているかを示す領域識別信号を、黒生成下色除去部１７、空間フィルタ処理部１８、および階調再現処理部２０へと出力するとともに、入力階調補正部１４より出力された入力信号をそのまま後段の色補正部１６に出力する。
【００５５】
色補正部１６は、色再現の忠実化実現のために、不要吸収成分を含むＣＭＹ（Ｃ：シアン・Ｍ：マゼンタ・Ｙ：イエロー）色材の分光特性に基づいた色濁りを取り除く処理を行うものである。
【００５６】
黒生成下色除去部１７は、色補正後のＣＭＹの３色信号から黒（Ｋ）信号を生成する黒生成、元のＣＭＹ信号から黒生成で得たＫ信号を差し引いて新たなＣＭＹ信号を生成する処理を行うものである。これにより、ＣＭＹの３色信号はＣＭＹＫの４色信号に変換される。
【００５７】
空間フィルタ処理部１８は、黒生成下色除去部１７より入力されるＣＭＹＫ信号の画像データに対して、領域識別信号を基にデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正する。これにより、出力画像のぼやけや粒状性劣化を軽減することができる。階調再現処理部２０も、空間フィルタ処理部１８と同様、ＣＭＹＫ信号の画像データに対して領域識別信号を基に所定の処理を施すものである。
【００５８】
例えば、領域分離処理部１５にて文字に分離された領域は、特に黒文字あるいは色文字の再現性を高めるために、空間フィルタ処理部１８による空間フィルタ処理における鮮鋭強調処理で高周波数の強調量が大きくされる。同時に、階調再現処理部２０においては、高域周波数の再現に適した高解像度のスクリーンを用いた２値化または多値化処理が選択される。
【００５９】
また、領域分離処理部１５にて網点領域に分離された領域に関しては、空間フィルタ処理部１８において、入力網点成分を除去するためのローパス・フィルタ処理が施される。そして、出力階調補正部１９では、濃度信号などの信号をカラー画像出力装置４の特性値である網点面積率に変換する出力階調補正処理を行った後、階調再現処理部２０で、最終的に画像を画素に分離してそれぞれの階調を再現できるように処理する階調再現処理（中間調生成）が施される。領域分離処理部１５にて写真に分離された領域に関しては、階調再現性を重視したスクリーンでの２値化または多値化処理が行われる。
【００６０】
上述した各処理が施された画像データは、いったん記憶装置（図示せず）に記憶され、所定のタイミングで読み出されてカラー画像出力装置４に入力される。
【００６１】
カラー画像出力装置４は、カラー画像処理装置３から入力された画像データを記録材（例えば紙等）上に出力するものである。カラー画像出力装置４の構成は特に限定されるものではなく、例えば、電子写真方式やインクジェット方式を用いたカラー画像出力装置を用いることができる。
【００６２】
通信装置５は、例えばモデムやネットワークカードより構成される。通信装置５は、ネットワークカード、ＬＡＮケーブル等を介して、ネットワークに接続された他の装置（例えば、パーソナルコンピュータ、サーバー装置、他のデジタルカラー複合機、ファクシミリ装置等）とデータ通信を行う。
【００６３】
なお、通信装置５は、画像データを送信する場合、相手先との送信手続きを行って送信可能な状態が確保されると、所定の形式で圧縮された画像データ（スキャナで読み込まれた画像データ）をメインメモリ８から読み出し、圧縮形式の変更など必要な処理を施して、通信回線を介して相手先に順次送信する。
【００６４】
また、通信装置５は、画像データを受信する場合、通信手続きを行うとともに、相手先から送信されてくる画像データを受信してカラー画像処理装置３に入力する。受信した画像データは、カラー画像処理装置３で伸張処理、回転処理、解像度変換処理、出力階調補正、階調再現処理などの所定の処理が施され、カラー画像出力装置４によって出力される。なお、受信した画像データを記憶装置（図示せず）に保存し、カラー画像処理装置３が必要に応じて読み出して上記所定の処理を施すようにしてもよい。
【００６５】
操作パネル６は、例えば、液晶ディスプレイなどの表示部と設定ボタンなどより構成され（いずれも図示せず）、制御部７の指示に応じた情報を上記表示部に表示するとともに、上記設定ボタンを介してユーザから入力される情報を制御部７に伝達する。ユーザは、操作パネル６を介して入力画像データに対する各種の処理要求（例えば、処理モード（複写、印刷、送信、編集、交点算出部４５における特徴点算出方法（斜め方向のライン画像を抽出することの要否）など）、処理枚数（複写枚数、印刷枚数）、入力画像データの送信先など）を入力することができる。
【００６６】
（１−２．  文書照合処理部１３の構成）
次に、文書照合処理部１３の詳細について説明する。図３は、文書照合処理部１３の概略構成を示すブロック図である。この図に示すように、文書照合処理部１３は、特徴点算出部３１、特徴量算出部３２、投票処理部３３、類似度判定処理部３４、および登録処理部３７を備えている。
【００６７】
特徴点算出部３１は、入力画像データに含まれる文字や罫線などの画像からライン画像を抽出し、ライン画像同士の交点を特徴点として算出する。
【００６８】
図４は、特徴点算出部３１の概略構成を示すブロック図である。この図に示すように、特徴点算出部３１は、無彩化処理部４１、解像度変換部４２、ＭＴＦ処理部４３、２値化処理部４４、交点算出部４５を備えている。
【００６９】
無彩化処理部４１は、シェーディング補正部１２から入力された画像データ（ＲＧＢ信号）がカラー画像であった場合にこの画像データを無彩化して、明度信号もしくは輝度信号に変換するものである。例えば、無彩化処理部４１は、「Ｙｉ＝０．３０Ｒｉ＋０．５９Ｇｉ＋０．１１Ｂｉ（Ｙは各画素の輝度信号であり、Ｒ，Ｇ，Ｂは各画素のＲＧＢ信号における各色成分であり、添え字のｉは画素毎に付与された値（ｉは１以上の整数））」によりＲＧＢ信号を輝度信号Ｙに変換する。あるいは、ＲＧＢ信号をＣＩＥ１９７６Ｌ*ａ*ｂ*信号（ＣＩＥ:Commission International de l'Eclairage、Ｌ*：明度、a*,ｂ*:色度）に変換してもよい。
【００７０】
解像度変換部４２は、入力画像データを変倍処理する。例えば、解像度変換部４２は、入力画像データがカラー画像入力装置２で光学的に変倍されている場合に、所定の解像度になるように入力画像データを再度変倍する。また、解像度変換部４２が、後段の各処理部における処理量を軽減するために、カラー画像入力装置２で等倍時に読み込まれる解像度よりも解像度を落とすための解像度変換を行うようにしてもよい（例えば、６００ｄｐｉ（dot per inch）で読み込まれた画像データを３００ｄｐｉに変換するなど）。
【００７１】
ＭＴＦ（modulation transfer function）処理部４３は、カラー画像入力装置２の空間周波数特性が機種ごとに異なることを吸収（調整）するために用いられる。ＣＣＤの出力する画像信号には、レンズやミラー等の光学部品、ＣＣＤの受光面のアパーチャ開口度、転送効率や残像、物理的な走査による積分効果及び走査むら等に起因しＭＴＦの劣化が生じている。このＭＴＦの劣化により、読み込まれた画像がぼやけたものとなっている。ＭＴＦ処理部４３は、適切なフィルタ処理（強調処理）を施すことにより、ＭＴＦの劣化により生じるぼやけを修復する処理を行う。また、後述する特徴点抽出処理に不要な高周波成分を抑制するためにも用いる。すなわち、混合フィルタ（図示せず）を用いて強調および平滑化処理を行う。
【００７２】
２値化処理部４４は、無彩化された画像データ（輝度値（輝度信号）または明度値（明度信号））と、予め設定された閾値とを比較することにより画像データを２値化する（例えば、画像データを「１」「０」で表す）。なお、２値化処理部４４によって２値化された画像データはメインメモリ８に一旦格納（記憶）される。
【００７３】
交点算出部４５は、２値化された画像データに基づいて、斜め方向に伸びるライン画像同士の交点（左上から右下方向に伸びるライン画像と右上から左下方向に伸びるライン画像との交点）を特徴点として抽出して特徴量算出部３２に出力する。つまり、交点算出部４５は、画像データの左上から右下にかけて各画素を走査し黒画素の座標に対して後述する所定のルールに基づいてラベリング（ラベル付け処理）を行っていき、同一ラベルが付された画素が連結した連結領域のランレングスをカウントし、カウント値が閾値を超えたものをラインと判定する。また、右上から左下にかけても同様に、各画素を走査して黒画素の座標に対して後述する所定のルールに基づいてラベリング（ラベル付け処理）を行っていき、カウント値が閾値を超えたものをラインと判定する。そして、両方の方向からラインと判定とされた座標（ｘ座標、ｙ座標）を交点とする。
【００７４】
また、本実施形態では、交点算出部４５が交点算出処理を行う際、２値化された画像データをメインメモリ８から信号処理部９を介して適宜読み出し、後述する交点算出処理において算出されるラベリング結果を、信号処理部９を介してメインメモリ８に適宜書き込むようになっている。これらの読み出し処理および書き込み処理の詳細については後述する。
【００７５】
特徴量算出部３２は、図３に示したように、特徴点抽出部３２ａ、不変量算出部３２ｂ、ハッシュ値算出部３２ｃを備えており、特徴点算出部３１で算出された特徴点を用いて、原稿画像の回転、平行移動、拡大、縮小、平行移動等の幾何学的変形に対して不変な量である特徴量（ハッシュ値および／または不変量）を算出する。
【００７６】
特徴点抽出部３２ａは、図５に示すように、１つの特徴点を注目特徴点とし、この注目特徴点の周辺の特徴点を、注目特徴点からの距離が近いものから順に所定数（ここでは４点）だけ周辺特徴点として抽出する。図５の例では、特徴点ａを注目特徴点とした場合には特徴点ｂ，ｃ，ｄ，ｅの４点が周辺特徴点として抽出され、特徴点ｂを注目特徴点とした場合には特徴点ａ，ｃ，ｅ，ｆの４点が周辺特徴点として抽出される。
【００７７】
また、特徴点抽出部３２ａは、上記のように抽出した周辺特徴点４点の中から選択しうる３点の組み合わせを抽出する。例えば、図６（ａ）〜図６（ｄ）に示すように、図５に示した特徴点ａを注目特徴点とした場合、特徴点ａから最も近い４つの周辺特徴点ｂ，ｃ，ｄ，ｅを選択し、さらに選択した４つの周辺特徴点のうちの３点の組み合わせ、すなわち、周辺特徴点ｂ，ｃ，ｄ、周辺特徴点ｂ，ｃ，ｅ、周辺特徴点ｂ，ｄ，ｅ、周辺特徴点ｃ，ｄ，ｅの各組み合わせを抽出する。
【００７８】
次に、不変量算出部３２ｂは、抽出した各組み合わせについて、幾何学的変形に対する不変量（特徴量の１つ）Ｈｉｊを算出する。ここで、ｉは注目特徴点を示す数（ｉは１以上の整数）であり、ｊは周辺特徴点３点の組み合わせを示す数（ｊは１以上の整数）である。
【００７９】
本実施形態では、周辺特徴点同士を結ぶ線分の長さのうちの２つの比を不変量Ｈｉｊとする。なお、上記線分の長さは、各周辺特徴点の座標値に基づいて算出すればよい。具体的には、注目特徴点に最も近い周辺特徴点と２番目に近い周辺特徴点とを結ぶ線分をＡｉｊ、注目特徴点に最も近い周辺特徴点と３番目に近い周辺特徴点とを結ぶ線分をＢｉｊとし、不変量Ｈｉｊ＝Ａｉｊ／Ｂｉｊとする。したがって、図６（ａ）の例では、特徴点ｂと特徴点ｃとを結ぶ線分の長さをＡ１１、特徴点ｂと特徴点ｄとを結ぶ線分の長さをＢ１１とすると、不変量Ｈ１１はＨ１１＝Ａ１１／Ｂ１１となる。また、図６（ｂ）の例では、特徴点ｂと特徴点ｃとを結ぶ線分の長さをＡ１２、特徴点ｂと特徴点ｅとを結ぶ線分の長さをＢ１２とすると、不変量Ｈ１２はＨ１２＝Ａ１２／Ｂ１２となる。また、図６（ｃ）の例では、特徴点ｂと特徴点ｄとを結ぶ線分の長さをＡ１３、特徴点ｂと特徴点ｅとを結ぶ線分の長さをＢ１３とすると、不変量Ｈ１３はＨ１３＝Ａ１３／Ｂ１３となる。また、図６（ｄ）の例では、特徴点ｃと特徴点ｄとを結ぶ線分の長さをＡ１４、特徴点ｃと特徴点ｅとを結ぶ線分の長さをＢ１４とすると、不変量Ｈ１４はＨ１４＝Ａ１４／Ｂ１４となる。
【００８０】
なお、不変量Ｈｉｊの算出方法は上記の方法に限定されるものではない。例えば、周辺特徴点間を結ぶ線分の長さを基準にして選定する等、不変量Ｈｉｊの算出に用いる線分は任意の方法で選定すればよい。また、注目特徴点の近傍５点の複比、近傍ｎ点（ｎはｎ≧５の整数）から抽出した５点の複比、近傍ｎ点から抽出したｍ点（ｍはｍ＜ｎかるｍ≧５の整数）の配置およびｍ点から抽出した５点の複比に基づいて算出される値などを注目特徴点についての上記不変量Ｈｉｊとしてもよい。なお、複比とは、直線上の４点または平面上の５点から求められる値であり、幾何学的変換の一種である射影変形に対する不変量として知られている。
【００８１】
次に、ハッシュ値算出部３２ｃは、（Ｈｉ１×１０２＋Ｈｉ２×１０１＋Ｈｉ３×１００）／Ｄの余りの値をハッシュ値（特徴量の１つ）Ｈｉとして算出し、メインメモリ８に記憶させる。なお、上記Ｄは余りが取り得る値の範囲をどの程度に設定するかに応じて予め設定される定数である。なお、ハッシュ値Ｈｉの算出方法はこれに限るものではなく、他のハッシュ関数（例えば特許文献２に記載されているハッシュ関数のうちのいずれか）を用いてもよい。また、本実施形態では、１つの特徴点（注目特徴点）に対して１つのハッシュ値を算出するものとしているが、これに限らず、１つの特徴点（注目特徴点）に対して複数のハッシュ値を算出するようにしてもよい。例えば、注目特徴点の周辺特徴点として６点を抽出し、この６点から５点を抽出した６通りの組み合わせそれぞれについて、５点から３点を抽出して不変量を求めてハッシュ値を算出する方法を用いてもよい。この場合には、１つの特徴点に対して６個のハッシュ値が算出されることになる。
【００８２】
また、特徴量算出部３２の各部は、１つの注目特徴点に対する周辺特徴点の抽出およびハッシュ値Ｈｉの算出が終わると、注目特徴点を他の特徴点に変更して周辺特徴点の抽出およびハッシュ値の算出を行い、全ての特徴点についてのハッシュ値を算出する。
【００８３】
図５の例では、特徴点ａを注目特徴点とした場合の周辺特徴点およびハッシュ値の抽出が終わると、次に特徴点ｂを注目特徴点とした場合の周辺特徴点およびハッシュ値の抽出を行う。図５の例では、特徴点ｂを注目特徴点とした場合、特徴点ａ，ｃ，ｅ，ｆの４点が周辺特徴点として抽出される。そして、図７（ａ）〜図７（ｃ）に示すように、これら周辺特徴点ａ，ｃ，ｅ，ｆの中から選択される３点の組み合わせ（周辺特徴点ａ，ｅ，ｆ、周辺特徴点ｃ，ｅ，ｆ、周辺特徴点ａ，ｃ，ｆ）を抽出し、各組み合わせについてハッシュ値Ｈｉを算出し、メインメモリ８に記憶させる。そして、この処理を各特徴点について繰り返し、各特徴点を注目特徴点とした場合のハッシュ値をそれぞれ求めてメインメモリ８に記憶させる。
【００８４】
なお、特徴量算出部３２は、入力画像データを登録画像として登録する登録処理を行う場合には、上記のように算出した入力画像データの各特徴点についてのハッシュ値（特徴量）を登録処理部３７に送る。また、特徴量算出部３２は、入力画像データが既に登録されている登録画像の画像データであるかどうかの判定処理（類似性判定処理）を行う場合には、上記のように算出した入力画像データの各特徴点についてのハッシュ値を投票処理部３３に送る。
【００８５】
登録処理部３７は、特徴量算出部３２が算出した各特徴点についてのハッシュ値と、原稿（入力画像データ）を表すインデックス（原稿ＩＤ）とを互いに対応付けてメインメモリ８に設けられたハッシュテーブルに順次登録していく（図８（ａ）参照）。ハッシュテーブルは、登録画像を特定するためのインデックスと、登録画像から抽出した特徴量とを互いに対応付けて記憶するテーブルである。ハッシュ値がすでに登録されている場合は、当該ハッシュ値に対応付けて原稿ＩＤを登録する。原稿ＩＤは重複することなく順次番号が割り当てられる。なお、ハッシュテーブルに登録されている原稿の数が所定値（例えば、登録可能な原稿の数の８０％）より多くなった場合、古い原稿ＩＤを検索して順次消去するようにしてもよい。また、消去された原稿ＩＤは、新たな入力画像データの原稿ＩＤとして再度使用できるようにしてもよい。また、算出されたハッシュ値が同値である場合（図８（ｂ）の例ではＨ１＝Ｈ５）、これらを１つにまとめてハッシュテーブルに登録してもよい。
【００８６】
投票処理部３３は、入力画像データから算出した各特徴点のハッシュ値をハッシュテーブルに登録されているハッシュ値と比較し、同じハッシュ値を有する登録画像に投票する。言い換えれば、登録画像毎に、登録画像が有するハッシュ値と同じハッシュ値が入力画像データから算出された回数をカウントし、カウント値をメインメモリ８に記憶させる。図９は、登録画像ＩＤ１，ＩＤ２，ＩＤ３に対する投票数の一例を示すグラフである。
【００８７】
類似度判定処理部３４は、メインメモリ８から投票処理部３３の投票処理結果（各登録画像のインデックスおよび各登録画像に対する投票数；類似度）を読み出し、最大得票数および最大得票数を得た登録画像のインデックスを抽出する。そして、抽出された最大得票数を予め定められている閾値ＴＨａと比較して類似性（入力画像データが登録画像の画像データであるかどうか）を判定し、判定結果を示す判定信号を制御部７に送る。つまり、最大得票数が予め定められた閾値ＴＨａ以上である場合には「類似性あり（入力画像データは登録画像の画像データである）」と判定し、閾値ＴＨａ未満である場合には「類似性なし（入力画像データは登録画像の画像データではない）」と判定する。
【００８８】
あるいは、類似度判定処理部３４が、各登録画像に対する得票数を投票総数（入力画像データから抽出された特徴点の総数）で除算して正規化することで類似度を算出し、この類似度と予め定められている閾値ＴＨａ（例えば投票総数の８０％）との比較を行うことによって類似度を判定してもよい。
【００８９】
また、類似度判定処理部３４が、各登録画像に対する得票数を、ハッシュ値の登録数が最も多い登録画像についてのハッシュ値の登録数（最大登録数）で除算して正規化することで類似度を算出し、この類似度と予め定められている閾値ＴＨａ（例えば投票総数の８０％）との比較を行うことによって類似性を判定してもよい。
【００９０】
また、類似性を判定する際の閾値ＴＨａは、各登録画像について一定であってもよく、あるいは各登録画像の種別（例えば、紙幣、有価証券、極秘書類、社外秘書類等の種別）に応じた重要度等に応じて登録画像毎に設定されてもよい。この場合、メインメモリ８に、登録画像の重要度に応じた重み付け係数を当該登録画像のインデックスと関連付けて記憶させておき、類似度判定処理部３４が、最大得票数を得た登録画像に対応する閾値ＴＨａを用いて類似性を判定するようにすればよい。
【００９１】
（１−３．  文章照合処理部１３における処理）
次に、文書照合処理部１３における処理について、図１０に示すフロー図を参照しながら説明する。
【００９２】
まず、制御部７は、入力画像データ、および、操作パネル６あるいは通信装置５を介してユーザから入力される処理要求（指示入力）を取得する（Ｓ１、Ｓ２）。なお、入力画像データは、カラー画像入力装置２で原稿画像を読み取ることによって取得してもよく、通信装置５によって外部の装置から送信される入力画像データを取得してもよく、デジタルカラー複合機１に備えられるカードリーダー（図示せず）等を介して各種記録媒体から入力画像データを読み出して取得してもよい。
【００９３】
次に、制御部７は、特徴点算出部３１に特徴点算出処理を実行させ（Ｓ３）、特徴量算出部３２に特徴量を算出させる（Ｓ４）。
【００９４】
次に、制御部７は、上記処理要求によって要求されている処理が登録処理であるか否かを判断する（Ｓ５）。そして、登録処理であると判断した場合、制御部７は、特徴量算出部３２が算出した特徴量と原稿ＩＤ（登録画像のＩＤ）とを対応付けてハッシュテーブルに登録させ（Ｓ６）、処理を終了する。
【００９５】
一方、登録処理ではないと判断した場合（類似性の判定処理であると判断した場合）、制御部７は、投票処理部３３に投票処理を実行させ（Ｓ７）、類似度判定処理部３４に類似性の判定処理を実行させる（Ｓ８）。
【００９６】
そして、類似ありと判定した場合には、入力画像データに対する画像処理（例えば、複写、印刷、電子配信、ファクシミリ送信、ファイリング、画像データの補正，編集等の処理）の実行を禁止し（Ｓ１１）、処理を終了する。また、類似なしと判定した場合には、入力画像データに対する画像処理の実行を許可し（Ｓ１２）、処理を終了する。なお、本実施形態では、類似ありの場合に画像処理の実行を許可し、類似なしの場合に画像処理の実行を禁止する例について説明しているが、これに限るものではない。例えば、類似性の判定結果を所定の通知先への通知するようにしてもよい。また、類似性の判定結果に応じて入力画像データの記録の要否、入力画像データに対応する出力画像に所定の記号等を重畳させることの要否、ユーザ認証を行うことの要否、類似性判定結果の表示の要否などを判断するようにしてもよい。
【００９７】
（１−４．  交点算出部４５の構成および処理）
次に、交点算出部４５の構成および交点算出部４５における処理の詳細について説明する。図１は交点算出部４５の構成を示すブロック図である。この図に示すように、交点算出部４５は、計数部６０、ライン判定部６１および信号処理部９を備えてなるライン検出部４６と交点抽出部６２とを備えている。
【００９８】
信号処理部（信号処理回路）９は、メインメモリ８からの情報の読み出し、およびメインメモリ８に対する情報の書き込みを制御するものである。なお、信号処理部９の構成および動作の詳細については後述する。
【００９９】
計数部６０は、第１ラベリング部７１、第１ラベルカウンタ７２、第２ラベリング部７３、第２ラベルカウンタ７４を備えている。
信号処理部９を介してメインメモリ８から読み出された２値化後の１ビット画像とラベル付け済みの画素についてのラベル付け結果（８ビットのラベリング結果画像）とを入力され、これら各情報に基づいて各画素についてラベル付けを行うとともに、ラベル付け結果（ラベリング結果画像）を、信号処理部９を介してメインメモリ８に順次記憶させる。
【０１００】
第１ラベリング部７１は、信号処理部９を介してメインメモリ８から読み出された２値化後の１ビット画像を入力される。そして、２値化後の画像データの各画素を左上から右下に向かって走査したときに、各画素が黒画素であるか否かと、隣接する画素（左隣、上隣、および左上隣の画素）に割り付けているラベルとに応じて当該各画素のラベル付けを行う。そして、各ラベルのカウンタ結果を第１ラベルカウンタ７２に出力するとともに、画素毎のラベル値を書込ＤＭＡ部１４０に出力する。これにより、第１ラベリング部７１から出力される画素毎のラベル値が書込ＤＭＡ部１４０によってメインメモリ８に書き込まれる。
【０１０１】
第１ラベルカウンタ７２は、各ラベルが割り付けられた回数をラベル毎にカウントする。そして、第１ラベルカウンタ７２は、全画素に対する走査が完了したときに、制御部７からの指示に応じて、各ラベルと各ラベルのカウント値とをライン判定部６１に出力する。
【０１０２】
第２ラベリング部７３は、信号処理部９を介してメインメモリ８から読み出された２値化後の１ビット画像を入力される。そして、２値化後の画像データの各画素を右上から左下に向かって走査したときに、各画素が黒画素であるか否かと、隣接する画素（右隣、上隣、および右上隣の画素）に割り付けているラベルとに応じて当該各画素のラベル付けを行う。そして、各ラベルのカウンタ結果を第２ラベルカウンタ７４に出力するとともに、画素毎のラベル値を書込ＤＭＡ部１４０に出力する。これにより、第２ラベリング部７３から出力される画素毎のラベル値が書込ＤＭＡ部１４０によってメインメモリ８に書き込まれる。
【０１０３】
第２ラベルカウンタ７４は、各ラベルが割り付けられた回数をラベル毎にカウントする。そして、第２ラベルカウンタ７４は、全画素に対する走査が完了したときに、制御部７からの指示に応じて、各ラベルと各ラベルのカウント値とをライン判定部６１に出力する。
【０１０４】
ライン判定部６１は、第１ラベルカウンタ７２から入力されたカウンタ値が閾値（例えば５）以上である場合に、このカウンタ値に対応するラベルに対応する各画素からなる画像をライン画像と判定し、ラインと判定したラベルをレジスタ読み出しなどにより制御部７に出力する。また、これと同様に、第２ラベルカウンタ７４から入力されたカウンタ値が閾値（例えば５）以上である場合に、このカウンタ値に対応するラベルに対応する各画素からなる画像をライン画像と判定し、ラインと判定したラベルをレジスタ読み出しなどにより制御部７に出力する。
【０１０５】
交点抽出部６２は、計数部６０、およびライン判定部６１の処理結果に基づいて、上記した斜め２方向のライン画像同士の交点を抽出し、抽出した交点を特徴点として特徴量算出部３２に出力する。なお、互いに隣接する複数の画素が交点として抽出された場合、交点抽出部６２は、これら複数画素の中心座標、重心座標、あるいは複数画素からなる領域に含まれる所定の位置（例えば左上）の座標を特徴点とする。交点抽出部６２の処理を、制御部７（ＣＰＵ）が行うようにしてもよい。
【０１０６】
図１１は、交点算出部４５における交点算出処理の概要を示すフロー図である。この図に示すように、制御部７は、まず、第１ラベリング部７１に、画像データに対して左上から右下に向かって各画素を順次走査させ、各画素のラベル付けを行わせる（Ｓ２１）。また、制御部７は、第２ラベリング部７３に、画像データに対して右上から左下に向かって各画素を順次走査させ、各画素のラベル付けを行わせる（Ｓ２２）。その後、制御部７は、ライン判定部６１に、左上から右下へ向かう方向（右下がりの方向；第１斜め方向）のライン画像の抽出（Ｓ２３）、および右上から左下へ向かう方向（左下がりの方向；第２斜め方向）のライン画像の抽出（Ｓ２４）を行わせる。そして、制御部７は、交点抽出部６２にライン画像同士の交点を抽出させ（Ｓ２５）、抽出した交点を特徴点として特徴量算出部３２に出力させて（Ｓ２６）処理を終了する。
【０１０７】
次に、第１ラベリング部７１および第２ラベリング部７３におけるラベル付け方法について説明する。
【０１０８】
図１２は、第１ラベリング部７１が注目画素に対するラベル付けを行う際の、隣接画素の参照順序を示す説明図である。この図に示すように、第１ラベリング部７１は、画像データを左上から右下に向かって走査していき（各ラインを左端から右端へ向かって走査していく処理を上端のラインから下端のラインへ向かって順次行っていき）、以下の（ａ）〜（ｅ）のルールに基づいてラベル付けを行う。
（ａ）注目画素が黒画素であって、注目画素の左隣の画素に対してラベル付けされている場合（左隣の画素のラベルが「０」ではない場合）、この左隣の画素と同じラベルを割り付ける。
（ｂ）注目画素が黒画素であって、注目画素の左隣の画素に対してラベル付けされておらず（左隣の画素のラベルが「０」であり）、注目画素の上隣の画素に対してラベル付けされている場合、この上隣の画素と同じラベルを割り付ける。
（ｃ）注目画素が黒画素であって、注目画素の左隣および上隣の画素に対してラベル付けされておらず（左隣の画素および上隣の画素のラベルが「０」であり）、注目画素の左上隣の画素に対してラベル付けされている場合、この左上隣の画素と同じラベルを割り付ける。
（ｄ）注目画素が黒画素であって、注目画素の左隣、上隣、および左上隣の画素のいずれにもラベル付けされていない場合、当該注目画素に対して新規のラベルを割り付ける。
（ｅ）注目画素が黒画素ではない場合、当該注目画素のラベルを「０」とする。
【０１０９】
なお、第２ラベリング部７３におけるラベル付け方法は、右上から左下に向かって各画素を走査する点、および上記（ａ）〜（ｅ）における「左隣」を「右隣」に変更し、「左上隣」を「右上隣」に変更する点以外は第１ラベリング部７１におけるラベル付け方法と同様である。図１３は、第２ラベリング部７３が、注目画素に対するラベル付けを行う際の、隣接画素の参照順序を示す説明図である。
【０１１０】
次に、ライン画像の抽出処理および交点の抽出処理について、図１４に示す画像データに対する処理を例としてより詳細に説明する。
【０１１１】
まず、左上から右下に向かって走査するときのラベル付け方法について、図１５を参照しながら説明する。図１５は、ライン判定の閾値を５とし、左上から右下に向かって走査するときのラベル付けの手順を示す説明図である。
【０１１２】
まず、走査開始時には第１ラベルカウンタ７２を「０」に初期化する。その後、左上から右下方向へ（座標（0,0）→（1,0）→（2,0）→・・・→（8,0）→（0,1）→（1,1）→・・・の順に）走査していく。
【０１１３】
座標（6,1）となるまでは黒画素が存在しないため第１ラベルカウンタ７２に格納されている情報は全て初期値「０」のままであり、ラベル「０」がメインメモリに出力される。
【０１１４】
座標（6,1）では黒画素が存在するためラベル付けを行う。ここでは、左隣の画素のラベルと上隣の画素のラベルが共に「０」であり、それまでのいずれの画素にもラベルが割り付けられていないので、第１ラベリング部７１は、座標（6,1）の画素に対して新規ラベル（ラベル「１」）を割り付ける。また、座標（6,1）と座標（6,1）の画素に割り付けたラベル「１」とを対応付けてメインメモリ８に記憶させる。また、ラベル「１」のラベルカウンタを「１」にインクリメントする。
【０１１５】
次の座標（7,1）においても黒画素が存在するためラベル付けを行う。ここでは、左隣の画素のラベルが「０」でないため、第１ラベリング部７１は、座標（7,1）の画素に対して左隣の画素のラベルと同じラベル（ラベル「１」）を割り付ける。また、座標（7,1）と座標（7,1）の画素に割り付けたラベル「１」とを対応付けてメインメモリ８に記憶させる。また、ラベル「１」のラベルカウンタを「２」にインクリメントする。
【０１１６】
同様の手順で走査を続けると、座標（2,2）で新規ラベル（ラベル「２」）が割り付けられ、座標（2,2）と座標（2,2）の画素に割り付けたラベル「２」とが対応付けられてメインメモリ８に記憶され、ラベル「２」のラベルカウンタが「１」にインクリメントされる。また、座標（3,2）では、ラベル「２」が割り付けられ、座標（3,2）と座標（3,2）の画素に割り付けたラベル「２」とが対応付けられてメインメモリ８に記憶され、ラベル「２」のラベルカウンタが「２」にインクリメントされる。
【０１１７】
また、座標（5,2）では新規ラベル（ラベル「３」）が割り付けられ、座標（5,2）と座標（5,2）の画素に割り付けたラベル「３」とが対応付けられてメインメモリ８に記憶され、ラベル「３」のラベルカウンタが「１」にインクリメントされる。また、座標（6,2）では、ラベル「３」が割り付けられ、座標（6,2）と座標（6,2）の画素に割り付けたラベル「３」とが対応付けられてメインメモリ８に記憶され、ラベル「３」のラベルカウンタが「２」にインクリメントされる。
【０１１８】
また、座標（3,3）では、黒画素であり、左隣の画素のラベルが「０」であり、上隣の画素のラベルが「２」なので、ラベル「２」が割り付けられ、座標（3,3）と座標（3,3）の画素に割り付けたラベル「２」とが対応付けられてメインメモリ８に記憶され、ラベル「２」のラベルカウンタが「３」にインクリメントされる。
【０１１９】
以下、右下の画素（座標（8,6））まで同様に走査およびラベル付けを行う。そして、右下の画素（座標（8,6））まで走査およびラベル付けが完了すると、制御部７は、第１ラベルカウンタ７２からライン判定部６１に各ラベルと各ラベルのカウント値とを出力させる。
【０１２０】
次に、右上から左下に向かって走査するときのラベル付け方法について、図１６を参照しながら説明する。図１６は、右上から左下に向かって走査するときのラベル付けの手順を示す説明図である。
【０１２１】
まず、走査開始時には第２ラベルカウンタ７４を「０」に初期化する。その後、右上から左下方向へ（座標（8,0）→（7,0）→（6,0）→・・・→（0,0）→（8,1）→（7,1）→・・・の順に）走査していく。
【０１２２】
座標（7,1）となるまでは黒画素が存在しないため第１ラベルカウンタ７２に格納されている情報は全て初期値「０」のままであり、ラベル「０」がメインメモリに出力される。
【０１２３】
座標（7,1）では黒画素が存在するためラベル付けを行う。ここでは、右隣の画素のラベルと上隣の画素のラベルが共に「０」であり、それまでのいずれの画素にもラベルが割り付けられていないので、第２ラベリング部７３は、座標（7,1）の画素に対して新規ラベル（ラベル「１」）を割り付ける。また、制御部７は、座標（7,1）と座標（7,1）の画素に割り付けたラベル「１」とを対応付けてメインメモリ８に記憶させる。また、ラベル「１」のラベルカウンタを「１」にインクリメントする。
【０１２４】
以下、同様にして、黒画素に対して、右隣、上隣、右上隣の画素に割り付けたラベルに応じて各画素にラベルを割り付ける。また、各ラベルを割り付ける毎に当該ラベルのラベルカウンタ値をインクリメントしていく。また、ラベル付けを行った各画素（ラベルが「０」以外である各画素）について、各画素の座標と各画素に割り付けたラベルとを対応付けてメインメモリ８に記憶させていく。
【０１２５】
そして、左下の画素（座標（0,6））まで走査およびラベル付けが完了すると、制御部７は、第２ラベルカウンタ７４からライン判定部６１に各ラベルと各ラベルのカウント値とを出力させる。
【０１２６】
図１７は、図１４に示した画像データに関する斜め２方向のライン画像の抽出結果、および交点の抽出結果を示す説明図である。この図に示すように、図１４の画像データの場合、左上から右下への走査では、５種類のラベル（ラベル「１」〜「５」）が割り付けられる。また、各ラベルのカウント値は、ラベル「１」，「３」，「４」，「５」が２、ラベル「２」が７となる。したがって、この場合、ライン判定部６１は、カウント値が閾値（本実施形態では５）以上であるラベル「２」に対応する画素からなる画像をライン画像と判定する。ライン判定部６１は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標をメインメモリ８から読み出して交点抽出部６２に出力する。
【０１２７】
右上から左下への走査では、図１７に示すように、３種類のラベル（ラベル「１」〜「３」）が割り付けられる。また、各ラベルのカウント値は、ラベル「２」，「３」が２、ラベル「１」が１１となる。したがって、この場合、ライン判定部６１は、カウント値が閾値（本実施形態では５）以上であるラベル「１」に対応する画素からなる画像をライン画像と判定する。そして、ライン判定部６１は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標をメインメモリ８から読み出して交点抽出部６２に出力する。
【０１２８】
交点抽出部６２は、左上から右下への走査および右上から左下への走査の両方においてライン画像であると判定された画素の座標（3,3）,（4,3）,（5,3）の中心座標である座標（4,3）を交点として算出する。また、交点抽出部６２は、算出した交点を特徴点として特徴量算出部３２に出力する。
【０１２９】
（１−５．  信号処理部（信号処理回路）９の構成及び処理）
次に、信号処理部９の構成および処理について説明する。信号処理部９は、図１に示したように、メモリ制御部１２０、読出ＤＭＡ（ダイレクトメモリアクセス）部１３０、書込ＤＭＡ部１４０を備えている。なお、メモリ制御部１２０、読出ＤＭＡ部１３０、書込ＤＭＡ部１４０は、バス幅６４ビットのバスラインＢＬを介して互いに接続されている。また、メモリ制御部１２０はメインメモリ８に接続され、読出ＤＭＡ部１３０および書込ＤＭＡ部１４０は計数部６０に接続されている。なお、バスラインとは、例えば画像処理用のデータ転送などに用いられる高速アクセス用のバス（伝送路）である。
【０１３０】
メモリ制御部１２０は、メインメモリ８へのデータの書き込み、メインメモリ８からのデータの読み出し、各ＤＭＡ部や制御部（ＣＰＵ）７へのデータ送出、および各ＤＭＡ部や制御部７から入力されたデータや命令等の受信制御を行うものであり、スワップ部１２１、ＦＩＦＯ（First In First Out）メモリ１２２、および転送制御部１２３を備えている。
【０１３１】
転送制御部１２３はスワップ部１２１の動作、ＦＩＦＯメモリ１２２に対するデータの入出力、およびメインメモリ８へのデータの書き込みおよび読み出しを制御する。
【０１３２】
スワップ部１２１は、バースト転送単位のデータに含まれるデータを、必要に応じてアドレス毎に並べ替える（入れ替える）ものである。なお、本明細書においてスワップとは、データの並び替え（入れ替え）を意味する。また、バースト転送とは、メモリへのアクセス時にデータの転送効率を向上させるために、一回のアドレス指定に対して複数のデータを連続的に転送する転送方法を意味する。
【０１３３】
ＦＩＦＯメモリ１２２は、バースト転送単位で書き込まれたデータを書き込まれた順にバースト転送単位で出力する先入先出し型のメモリである。つまり、ＦＩＦＯメモリ１２２は、１回のアドレス指定によって連続的に入力された複数のデータ（バースト転送単位のデータ）を記憶し、上記のバースト転送単位のデータを書き込まれた順に出力する。
【０１３４】
なお、メモリ制御部１２０の構成はこれに限るものではなく、例えば、バスラインＢＬの規格に基づくデータをメモリ制御部１２０で使用されるデータ形式に変換する処理、およびメモリ制御部１２０で使用されるデータ形式に基づくデータをバスラインＢＬの規格に基づくデータに変換する処理を行うバスインターフェース（図示せず）をメモリ制御部１２０に設け、このバスインターフェースを介して転送制御部１２３およびスワップ部１２１をバスラインＢＬに接続してもよい。
【０１３５】
読出ＤＭＡ部１３０は、メインメモリ８からメモリ制御部１２０を介して読み出されたデータを交点算出部４５の計数部６０に出力するためのものであり、バスインターフェース１３１、転送制御部１３２、スワップ部１３３、データ幅変換部１３４を備えている。なお、ＤＭＡ（ダイレクトメモリアクセス）とは、コンピュータシステム内でのデータ転送方式の１つであり、ＣＰＵを介さずにモジュールと記憶手段との間で直接データ転送を行う方式である。つまり、本実施形態では、読出ＤＭＡ部１３０により、メインメモリ８に記憶されているデータを読み出す際、制御部（ＣＰＵ）７を介さずにメインメモリ８から計数部６０にデータを転送する。バスインターフェース１３１は、メモリ制御部１２０から入力されるデータのデータ形式を、バスラインＢＬの規格に基づくデータ形式から読出ＤＭＡ部１３０の内部で用いるデータ形式に変換する。また、転送制御部１３２からの要求をメモリ制御部１２０に出力する。転送制御部１３２は、メインメモリ８から読み出すデータの開始アドレス、データサイズ、およびアクセス方向の指定を行う。スワップ部１３３はデータの並べ替えを行う。また、データ幅変換部１３４はデータ幅の変換を行う。
【０１３６】
書込ＤＭＡ部１４０は、交点算出部４５の計数部６０から出力されたデータを、メモリ制御部１２０を介してメインメモリ８に出力するためのものであり、バスインターフェース１４１、転送制御部１４２、スワップ部１４３、データ幅変換部１４４を備えている。つまり、本実施形態では、メインメモリ８にデータを記憶させる際、書込ＤＭＡ部１４０により、制御部（ＣＰＵ）７を介さずに計数部６０からメインメモリ８にデータを転送する。バスインターフェース１４１は、メモリ制御部１２０に送出するデータのデータ形式を、書込ＤＭＡ部１４０の内部で用いるデータ形式からバスラインＢＬの規格に基づくデータ形式に変換する。また、転送制御部１４２からの要求をメモリ制御部１２０に出力する。転送制御部１４２は、メインメモリ８に書き込むデータの開始アドレス、データサイズ、およびアクセス方向の指定を行う。スワップ部１４３はデータの並べ替えを行う。また、データ幅変換部１４４はデータ幅の変換を行う。
【０１３７】
図１８は、メインメモリ８に記憶されているデータとアドレス（メモリアドレス）との関係を示す説明図である。この図に示すメインメモリ８では、メモリアドレスを３２ビットで指定するようになっている。したがって、１アドレス１バイトで２３２（２２×２１０×２１０×２１０）通り指定できることから、４ＧＢ（２１０＝Ｋ）のアドレス空間が存在することになる。また、図１８の例では、（００００＿００００ｈ）〜（ＦＦＦＦ＿ＦＦＦＦｈ）の８桁１６進数で表される４ＧＢの上記アドレス空間のうち、アドレス（００１０＿００００ｈ）をベースアドレス（基準アドレス）として１００画素×１００ラインのＲＧＢ（２４ビット）画像データを格納している。
【０１３８】
より具体的には、１画素当たり３バイトであり、１ラインは１００画素であることから、１ライン当たりのデータは３００バイトなので、１ライン目のデータがベースアドレス（００１０＿００００ｈ）からのオフセットアドレス＋００ｈから＋１２Ｂｈまでには１ライン目のデータが格納される。また、オフセットアドレス＋１２Ｃｈ以降に２ライン目以降のデータがライン順に格納され、最終的に１００ライン目の最後のデータはオフセットアドレス＋７５２Ｆｈに格納される。
【０１３９】
なお、以下で説明するメインメモリ８からのデータの読み出し処理、およびメインメモリ８へのデータの書き込み処理においては、メインメモリ８のメモリアドレスがこのように設定されているものとする。また、ベースアドレスについては複数のデータ領域が重ならない箇所であればどこでも問題がないため、以下の説明ではベースアドレスについては特定せず、オフセットアドレスのみを用いて説明する。
【０１４０】
次に、第１ラベリング部７１におけるラベリング処理時のメインメモリ８からのデータの読み出し処理、および書き込み処理について説明する。なお、以下の説明では、左から右に向かって各画素を走査する処理を順方向アクセス、右から左に向かって各画素を走査する処理を逆方向アクセスと称する。
【０１４１】
図１９は、メインメモリ８に記憶されている２値化後の画像データおよびその読み出し順序の一例を示す説明図であり、画像データが主走査方向３２０画素×副走査方向１００ラインである場合の例を示している。この画像データは、図１９に示したように、オフセットアドレス＋００ｈの最上位ビット側から順に格納されており、１ライン目データの最後（３２０画素目）のオフセットアドレスは＋２７ｈである。２ライン目〜１００ライン目までも同様に格納されている。
【０１４２】
制御部７が交点算出部４５に順方向のライン画像（左上から右下へ向かって延伸するライン画像）の検出処理の開始を指示すると、まず、読出ＤＭＡ部１３０の転送制御部１３２が、２値化後のデータの読み出しを行うために、開始アドレスを＋００ｈ、転送サイズを３２バイトに指定した順方向アクセスの１回目のバースト転送要求（バースト読出要求）をバスインターフェース１３１およびバスラインＢＬを介してメモリ制御部１２０に送る。
【０１４３】
メモリ制御部１２０の転送制御部１２３は、読出ＤＭＡ部１３０から上記のバースト転送要求を受け取ると、開始アドレス＋００ｈ、転送サイズ３２バイトに対応する１回目のバースト転送用データをメインメモリ８から読み出し、読み出したバースト転送用データを読み出した順にＦＩＦＯメモリ１２２に書き込む。これにより、図１９の例では、図２０（ａ）に示すように１回目のバースト転送用データ（ａ，ｂ，ｃ，ｄ）がこの順でＦＩＦＯメモリ１２２に書き込まれる。なお、１画素当たり１ビットであり、１回のバースト転送サイズが３２バイトであることから、１回のバースト転送では２５６画素の転送を行うことになる。
【０１４４】
また、読出ＤＭＡ部１３０の転送制御部１３２は、開始アドレスおよび転送サイズを含む２回目以降のバースト転送要求を順次メモリ制御部１２０に送り、メモリ制御部１２０は、読出ＤＭＡ部１３０から受け取ったバースト転送要求に示されている開始アドレスおよび転送サイズに応じたバースト転送用データをメインメモリ８から適宜読み出してＦＩＦＯメモリ１２２に書き込んでいく。例えば、２回目のバースト転送要求が図１９に示すように開始アドレス＋２０ｈ、転送サイズ８バイトである場合、メモリ制御部１２０はこの要求に応じたバースト転送データをメインメモリ８から読み出してＦＩＦＯメモリ１２２に書き込む。これにより、図１９の例では、図２０（ｂ）に示すように２回目のバースト転送用データ（ｅ）がＦＩＦＯメモリ１２２における１回目のバースト転送用データにおける最終アドレスのデータｄの後に書き込まれる。
【０１４５】
その後、転送制御部１２３は、読出ＤＭＡ部１３０の転送制御部１３２からの転送要求が順方向アクセスであるため、図２０（ｃ）および図２０（ｄ）に示すように、ＦＩＦＯメモリ１２２に書き込まれたバースト転送用データ（ａ，ｂ，ｃ，ｄ），（ｅ）をスワップ部１２１にこの順で読み出させる。また、順方向アクセスなので、図２１に示すように、スワップ部１２１を制御し、読み出したデータを、スワップ処理を行うことなくそのまま読出ＤＭＡ部１３０に出力させる。
【０１４６】
読出ＤＭＡ部１３０のスワップ部１３３は、メモリ制御部１２０からバースト転送単位で送信されたデータを受け取ると、順方向アクセスであるためスワップ処理は行わず、そのままの順序でデータ幅変換部１３４に出力する。したがって、図２２に示すように、メモリ制御部１２０から（ａ，ｂ，ｃ，ｄ）の順で転送されたバースト転送データがスワップ部１３３に入力された場合、スワップ部１３３はこれらのバースト転送データ（ａ，ｂ，ｃ，ｄ）をこの順でデータ幅変換部１３４に出力する。
【０１４７】
データ幅変換部１３４は、図２３に示すように、スワップ部１３３から入力されたバースト転送データを、上位側から順に１ビットずつ（１画素ずつ）第１ラベリング部７１に順次出力する。なお、データ幅変換部１３４と第１ラベリング部７１とはバス幅１ビットの内部バスを介して接続されている。
【０１４８】
第１ラベリング部７１は、データ幅変換部１３４から入力される各画素についての２値化後の画像データと、メインメモリ８に格納しておいた第１ラベリング部７１による左隣、上隣、左上隣の画素に対するラベル付け結果とに基づいて、上述したように各画素のラベル付けを行う。
【０１４９】
また、第１ラベリング部７１は、各画素についてのラベル付け結果を、図２３に示すように書込ＤＭＡ部１４０に送る。なお、本実施形態では、ラベルの種類数は２５６種類（０〜２５５）であるものとする。したがって、ラベル付け結果は１画素あたり８ビットで表現される。このため、第１ラベリング７１と書込ＤＭＡ部１４０のデータ幅変換部１４４とはバス幅８ビットの内部バスを介して接続されている。ただし、ラベルの種類数はこれに限らず適宜変更してもよい。ラベルの種類数を変更した場合には１画素あたりのビット数もそれに応じて変化する。
【０１５０】
書込ＤＭＡ部１４０のデータ幅変換部１４４は、第１ラベリング部７１からの出力データをバースト転送単位毎にスワップ部１４３に出力する。本実施形態の場合、第１ラベリング部７１から出力されるデータは１画素当たり８ビットであり、１回のバースト転送サイズが３２バイトであることから、１回のバースト転送で３２画素分のデータを転送することになる。このため、データ幅変換部１４４は、それぞれ８画素分毎のデータからなるバースト転送用データ（ａ’，ｂ’，ｃ’，ｄ’）をこの順でスワップ部１４３に出力する。なお、１ライン当たり３２０画素のデータを転送するためには１０回のバースト転送が必要となる。
【０１５１】
スワップ部１４３は、順方向アクセスであるためスワップ処理は行わず、図２４に示すようにバースト転送用データ（ａ’，ｂ’，ｃ’，ｄ’）をこの順でメモリ制御部１２０へ出力する。また、転送制御部１４２は、バースト転送データを送信するのと同時に、バースト転送要求（バースト書込要求）をメモリ制御部１２０に送信する。例えば、１回目のバースト転送要求の場合は、開始アドレスを＋００ｈ、転送サイズを３２バイトと指定する。
【０１５２】
メモリ制御部１２０の転送制御部１２３は、書込ＤＭＡ部１４０からスワップ部１２１にデータが入力されると、順方向アクセスであるためスワップ処理を施すことなく、図２５に示すように入力された順にＦＩＦＯメモリ１２２へ出力するようにスワップ部１２１を制御する。これにより、スワップ部１２１から出力されたデータは、図２６に示すように、バースト転送データ単位でＦＩＦＯメモリ１２２に（ａ’，ｂ’，ｃ’，ｄ’），（ｅ’，ｆ’，ｇ’，ｈ’），・・・の順に書き込まれる。
【０１５３】
また、転送制御部１２３は、ＦＩＦＯメモリ１２２に書き込まれたデータを、順方向アクセスであるため、図２６に示すようにバースト転送データ単位で（ａ’，ｂ’，ｃ’，ｄ’），（ｄ’，ｅ’，ｆ’，ｇ’），・・・の順に読み出し、メインメモリ８における書込ＤＭＡ部１４０からのバースト転送要求に示された開始アドレスおよび転送サイズに対応する位置に書き込む。したがって、１回目のバースト転送データ（ａ’，ｂ’，ｃ’，ｄ’）は、図２７に示すように開始アドレス＋００ｈから３２バイトの領域に書き込まれ、２回目のバースト転送データ（ｅ’，ｆ’，ｇ’，ｈ’）は開始アドレス＋２０ｈから３２バイトの領域に書き込まれ、以下、同様にして合計１０回のバースト転送が行われて１ライン分のラベル付け結果がメインメモリ８に記憶される。また、同様の処理が各ラインについて行われる。
【０１５４】
次に、第２ラベリング部７３におけるラベリング処理時のメインメモリ８からのデータの読み出し処理、および書き込み処理について説明する。なお、第２ラベリング部７３では、上記したように２値化後の画像データを右から左に走査する逆方向アクセスを行う。
【０１５５】
図２８は、メインメモリ８に記憶されている２値化後の画像データおよびその読み出し順序の一例を示す説明図である。なお、図２８に示した画像データは図１９と同じものである。
【０１５６】
制御部７が交点算出部４５に逆方向のライン画像（右上から左下へ向かって延伸するライン画像）の検出処理の開始を指示すると、まず、読出ＤＭＡ部１３０の転送制御部１３２が、２値化後のデータの読み出しを行うために、開始アドレスを＋２７ｈ、転送サイズを３２バイトに指定した逆方向アクセスの１回目のバースト転送要求（バースト読出要求）をバスインターフェース１３１およびバスラインＢＬを介してメモリ制御部１２０に送る。
【０１５７】
メモリ制御部１２０の転送制御部１２３は、読出ＤＭＡ部１３０から逆方向アクセスのバースト転送要求を受け取ると、このバースト転送要求に対応するデータを順方向アクセスでメインメモリ８から読み出す場合の開始アドレス（メインメモリアクセス時転送開始アドレス）を、バースト転送要求に示された逆方向アクセスの場合の開始アドレス（ＤＭＡ要求時転送開始アドレス）および転送サイズに基づいて算出する。つまり、上記バースト転送要求に示された転送サイズのデータを順方向アクセスでメインメモリ８から読み出すときに、上記バースト転送要求に示された逆方向アクセスの開始アドレスが順方向アクセスの最終アドレスとなるような順方向アクセスの開始アドレスを算出する。本実施形態の場合、図２８に示すように上記開始アドレスは＋０８ｈとなる。
【０１５８】
そして、転送制御部１２３は、上記のように算出した開始アドレスと上記バースト転送要求に示された転送サイズとに基づいてメインメモリ８からバースト転送用データをメインメモリ８から読み出し、読み出したデータを読み出した順にＦＩＦＯメモリ１２２に書き込む。これにより、図２８の例では、図２９（ａ）に示すようにバースト転送用データ（ｂ，ｃ，ｄ，ｅ）がこの順でＦＩＦＯメモリ１２２に書き込まれる。なお、１画素当たり１ビットであり、１回のバースト転送サイズが３２バイトであることから、１回のバースト転送では２５６画素の転送を行うことになる。
【０１５９】
また、読出ＤＭＡ部１３０の転送制御部１３２は、開始アドレスおよび転送サイズを含む２回目以降のバースト転送要求を順次メモリ制御部１２０に送り、メモリ制御部１２０は、読出ＤＭＡ部１３０から受け取ったバースト転送要求に示されている開始アドレスおよび転送サイズに基づいて、１回目のバースト転送要求と同様、バースト転送要求に対応するデータを順方向アクセスで読み出す場合の開始アドレスを算出し、算出した開始アドレスとバースト転送要求に示された転送サイズとに基づいてメインメモリ８からデータを読み出してＦＩＦＯメモリ１２２に書き込む。例えば、図２８に示したように、２回目のバースト転送要求の開始アドレスが＋０７ｈ、転送サイズを８バイトに指定したバースト転送要求である場合、順方向アクセスの場合の開始アドレスとして＋００ｈが算出され、図２９（ｂ）に示すようにバースト転送用データ（ａ）がＦＩＦＯメモリ１２２におけるバースト転送用データ（ｅ）の後に書き込まれる。
【０１６０】
その後、転送制御部１２３は、読出ＤＭＡ部１３０の転送制御部１３２からの転送要求が逆方向アクセスであるため、図２９（ｃ）および図２９（ｄ）に示すように、ＦＩＦＯメモリ１２２に書き込まれたバースト転送データ（ｂ，ｃ，ｄ，ｅ），（ａ）をバースト転送単位毎に書き込み時とは逆方向に読み出してスワップ部１２１に入力させる。つまり、１回目のバースト転送用データを（ｅ，ｄ，ｃ，ｂ）の順に読み出させ、その後２回目のバースト転送用データ（ａ）を読み出させる。
【０１６１】
また、転送制御部１２３は、スワップ部１２１を制御し、逆方向アクセスであることから、図３０に示すように、ＦＩＦＯメモリ１２２から読み出した所定の第１データサイズ（ここでは６４ビット）の各データｅ，ｄ，ｃ，ｂに対して所定の第２データサイズ（ここでは８ビット）単位で上位側と下位側とを反転させるように入れ替えるスワップ処理を行い、スワップ処理後のデータｅ’，ｄ’，ｃ’，ｂ’を読出ＤＭＡ部１３０に出力させる。つまり、スワップ部１２１は、図３０に示すように、６４ビットのバースト転送用データ（ｅ，ｄ，ｃ，ｂ）におけるデータｅ，ｄ，ｃ，ｂのそれぞれにおいて、アドレス番号の昇順（例えばバースト転送用データｅでは＋２０ｈ，＋２１ｈ，・・・，＋２６ｈ，＋２７ｈの順）に並んでいるデータをアドレス番号の降順（例えばバースト転送用データｅでは＋２７ｈ，＋２６ｈ，・・・，＋２１ｈ，＋２０ｈの順）に並べ替えてスワップ処理後のデータｅ’，ｄ’，ｃ’，ｂ’を生成し、読出ＤＭＡ部１３０に出力する。
【０１６２】
読出ＤＭＡ部１３０のスワップ部１３３は、メモリ制御部１２０から受け取ったバースト転送データ（ｅ’，ｄ’，ｃ’，ｂ’）に対し、逆方向アクセスであるため、図３１に示すように、上記第２データサイズ（ここでは８ビット）の各データに対して所定の第３データサイズ（本実施形態では１ビット。データ幅変換部ン１３４の出力ビット幅）単位で上位側と下位側とを反転させるように入れ替えるスワップ処理を行い、スワップ処理後のデータｅ’’，ｄ’’，ｃ’’，ｂ’’をデータ幅変換部１３４に出力する。これにより、例えば、データｅ’におけるアドレス＋２７ｈに対応する８ビットのデータは画素３１３，３１４，・・・，３１９，３２０の順に並んでいるが、スワップ処理後のバースト転送用データｅ’’におけるアドレス＋２７ｈに対応する８ビットのデータは画素３２０，３１９，・・・，３１４，３１３の順に並び替えられる。同様の処理を各バースト転送用データに施すことにより、１ライン分の画像データが右端の画素３２０から左端の画素１まで画素順に並べ替えられる。
【０１６３】
データ幅変換部１３４は、図３２に示すように、スワップ部１３３から入力されたバースト転送データを、上位側から順に１ビットずつ（１画素ずつ）第２ラベリング部７３に順次出力する。これにより、２値化後の画像データが右端の画素から左端の画素にかけて順次第２ラベリング部７３に入力される（逆方向の走査が行われる）。
【０１６４】
第２ラベリング部７３は、データ幅変換部１３４から入力される各画素についての２値化後の画像データと、メインメモリ８に格納しておいた右隣、上隣、右上隣の画素に対する第２ラベリング部７３によるラベル付け結果とに基づいて、上述したように各画素のラベル付けを行う。
【０１６５】
また、第２ラベリング部７３は、各画素についてのラベル付け結果を、図３２に示すように書込ＤＭＡ部１４０に送る。なお、本実施形態では、順方向アクセスの場合と同様、ラベル付け結果は１画素あたり８ビットで表現される。ただし、ラベルの種類数はこれに限らず適宜変更してもよい。ラベルの種類数を変更した場合には１画素あたりのビット数もそれに応じて変化する。
【０１６６】
書込ＤＭＡ部１４０のデータ幅変換部１４４は、第２ラベリング部７３からの出力データをバースト転送単位毎にスワップ部１４３に出力する。本実施形態の場合、第２ラベリング部７３から出力されるデータは１画素当たり８ビットであり、１回のバースト転送サイズが３２バイトであることから、１回のバースト転送で３２画素分のデータを転送することになる。このため、データ幅変換部１４４は、図３３に示すように、それぞれ第４データサイズ（ここでは６４ビット。８画素分のデータ）のデータからなるｚ’’，ｙ’’，ｘ’’，ｗ’’をこの順でスワップ部１４３に出力する。なお、１ライン当たり３２０画素のデータを転送するためには１０回のバースト転送が必要となる。
【０１６７】
スワップ部１４３は、逆方向アクセスであっても入力データがバイトデータである場合にはスワップ処理を行わない。したがって、ここではデータ幅変換部１４４から入力されるデータは８ビットのデータであるため、図３３に示すように、スワップ部１４３はスワップ処理を行わず、入力されたデータ（ｚ’’，ｙ’’，ｘ’’，ｗ’’）をこの順でメモリ制御部１２０へ出力する（データ（ｚ’，ｙ’，ｘ’，ｗ’）が出力される）。また、転送制御部１４２は、バースト転送データを送信するのと同時に、バースト転送要求（メインメモリ８への書き込み要求）をメモリ制御部１２０に送信する。例えば、１回目のバースト転送要求の場合は、開始アドレスを＋１３Ｆｈ、転送サイズを３２バイトと指定する。
【０１６８】
メモリ制御部１２０の転送制御部１２３は、書込ＤＭＡ部１４０からスワップ部１２１にデータが入力されると、逆方向アクセスであるため、第４データサイズ（ここでは６４ビット）の各データ内で第５データサイズ（ここでは８ビット。１画素分のデータ。）単位で上位側と下位側とを入れ替えるスワップ処理を行い、スワップ処理後のデータをＦＩＦＯメモリ１２２へ出力するようにスワップ部１２１を制御する。これにより、図３４に示すように、例えば、バースト転送用データｚ’においてアドレス＋１３Ｆｈ，＋１３Ｅｈ，・・・，＋１３９ｈ，＋１３８ｈの順に並んでいたデータが、スワップ処理後のバースト転送用データｚでは＋１３８ｈ，＋１３９ｈ，・・・，＋１３Ｅｈ，＋１３Ｆｈの順に並び替えられる。また、転送制御部１２３は、バースト転送用データｙ'，ｘ'，ｗ'に対してもスワップ部１２１に同様のスワップ処理を施させる。これにより、図３４に示すようにスワップ処理後のバースト転送用データ（ｚ，ｙ，ｘ，ｗ）がスワップ部１２１からＦＩＦＯメモリ１２２に出力される。
【０１６９】
そして、転送制御部１２３は、スワップ部１２１から出力されたデータをバースト転送データ単位でＦＩＦＯメモリ１２２に書き込ませる。この際、転送制御部１２３は、図３５に示すように、スワップ部１２１から出力されたバースト転送単位のデータ（ｚ，ｙ，ｘ，ｗ），（ｖ，ｕ，ｔ，ｓ）をＦＩＦＯメモリ１２２に対してそれぞれ逆方向に、すなわちＦＩＦＯメモリ１２２において先に出力される側から順方向に沿って（ｗ，ｘ，ｙ，ｚ），（ｓ，ｔ，ｕ，ｖ）の順になるようにＦＩＦＯメモリ１２２に格納させる。
【０１７０】
その後、転送制御部１２３は、ＦＩＦＯメモリ１２２に格納されたバースト転送用データを順方向に沿って順次読み出す。これにより、図３５に示したように、１回目のバースト転送データは（ｗ，ｘ，ｙ，ｚ）の順でＦＩＦＯメモリ１２２から読み出され、その後２回目のバースト転送データは（ｓ，ｔ，ｕ，ｖ）の順でＦＩＦＯメモリ１２２から読み出される。
【０１７１】
また、転送制御部１２３は、書込ＤＭＡ部１４０から逆方向アクセスのバースト転送要求を受け取ると、このバースト転送要求に対応するデータを順方向アクセスでメインメモリ８に書き込む場合の開始アドレス（メインメモリアクセス時転送開始アドレス）を、バースト転送要求に示された逆方向アクセスの場合の開始アドレス（ＤＭＡ要求時転送開始アドレス）および転送サイズに基づいて算出する。つまり、上記バースト転送要求に示された転送サイズのデータを順方向アクセスでメインメモリ８に書き込むときに、上記バースト転送要求に示された逆方向アクセスの開始アドレスが順方向アクセスの最終アドレスとなるような順方向アクセスの開始アドレスを算出する。本実施形態の場合、図３６に示すように、１回目のバースト転送用データについての上記開始アドレスは＋１２０ｈとなる（逆方向の開始アドレスは＋１３ｈ、転送サイズは３２バイト）。また、２回目のバースト転送用データについての上記開始アドレスは＋１００ｈとなる（逆方向の開始アドレスは＋１１Ｆｈ、転送サイズは３２バイト）。３回目以降のバースト転送用データについても同様に開始アドレスを算出する。
【０１７２】
そして、転送制御部１２３は、ＦＩＦＯメモリ１２２から上記のように読み出したバースト転送用データを、上記のように算出した順方向アクセスの開始アドレスに基づいてメインメモリ８に順次書き込んでいく。これにより、図３６に示すように、画素１〜画素３２０についての画像データがメインメモリ８におけるアドレスデクリメント側（先頭アドレスに近い側）から順に書き込まれる。また、同様の処理が各ラインについて行われる。
【０１７３】
以上のように、本実施形態にかかるデジタルカラー複合機１は、メインメモリ８に格納されている画像データを逆方向（右から左に向かう方向）に走査する際、メモリ制御部１２０が、所定の第１データサイズ毎に区分けされたデータを格納し、格納した第１データサイズ毎のデータをこれら各データの格納領域に応じた順序で第１データサイズ毎に出力するＦＩＦＯメモリ１２２と、ＦＩＦＯメモリ１２２から順次出力される第１データサイズ毎のデータを入力され、入力された各第１データサイズのデータを所定の第２データサイズ毎に区分し、区分した各第２データサイズのデータを入力された順とは逆順で第１データサイズ毎に出力するスワップ部１２１とを備えており、メインメモリ８から読み出したバースト転送単位のデータを、第１データサイズ毎に、これら第１データサイズのデータがＦＩＦＯメモリ１２２への格納時の順序とは逆の順序でＦＩＦＯメモリ１２２から出力されるようにＦＩＦＯメモリ１２２に格納し、スワップ部１２１から順次出力されるデータをバースト転送単位毎に読出ＤＭＡ部１３０に出力する。また、読出ＤＭＡ部１３０は、メモリ制御部１２０から順次入力されるバースト転送単位毎のデータに含まれる各第２データサイズのデータを所定の第３データサイズ毎に区分し、区分した各第３データサイズのデータを入力された順とは逆順で第２データサイズ毎に出力するスワップ部１３３を備えている。
【０１７４】
これにより、メインメモリ８に書き込まれているデータを、書き込まれている方向とは逆方向に読み出すことができる。例えば、左側の画素から右側の画素に向かう順に格納されている各画素の画像データを、逆方向、すなわち右側の画素から左側の画素に向かう順に走査することができる。また、メインメモリから読み出したデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の読出しを高速で行うことができる。また、ＦＩＦＯメモリを読出ＤＭＡ部１３０に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、読出ＤＭＡ部１３０の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部１２０のＦＩＦＯメモリ１２２の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、デジタルカラー複合機１全体としての回路規模の増大を抑制できる。
【０１７５】
また、本実施形態にかかるデジタルカラー複合機１は、スワップ部１２１が書込ＤＭＡ部１４０から転送されたバースト転送単位のデータを所定の第４データサイズ毎に区分し、各第４データサイズのデータを所定の第５データサイズ毎に区分し、区分した各第５データサイズのデータの順序を反転させて順次出力するようになっており、メモリ制御部１２０は、スワップ部１２１から順次出力されるデータを、スワップ部１２１から出力された順序とは逆の順序でＦＩＦＯメモリ１２２から順次出力されるようにＦＩＦＯメモリ１２２に格納し、ＦＩＦＯメモリ１２２から順次出力されるデータを、メインメモリ８におけるＤＭＡ書込要求に応じたアドレスに書き込む。
【０１７６】
これにより、書込ＤＭＡ部１４０に入力されるデータを、入力された順序とは逆の順序でメインメモリ８に書き込むことができる。例えば、右側の画素から左側の画素に向かう順に走査してラベリング処理（画像処理）を施した各画素の画像データを、左側の画素から右側の画素に向かう順にメインメモリ８に書き込むことができる。また、メインメモリ８に書き込むデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の書き込みを高速で行うことができる。また、ＦＩＦＯメモリ１２２を書込ＤＭＡ部１４０に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、書込ＤＭＡ部１４０の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部の記憶手段の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、データ転送装置全体としての回路規模の増大を抑制できる。
【０１７７】
なお、本実施形態では、バースト転送単位のデータを所定の第４データサイズ毎に区分し、各第４データサイズのデータを所定の第５データサイズ毎に区分し、区分した各第５データサイズのデータの順序を反転させて順次出力する処理をメモリ制御部１２０に備えられるスワップ部１２１で行うものとしたが、これに限るものではない。例えば、書込ＤＭＡ部１４０に備えられるスワップ部１４３が、バースト転送単位のデータを所定の第４データサイズ毎に区分し、上記各第４データサイズのデータを所定の第５データサイズ毎に区分し、区分した上記各第５データサイズのデータの順序を反転させて順次出力し、スワップ部１４３から順次出力されるデータをバースト転送単位毎にメモリ制御部１２０に転送するようにしてもよい。
【０１７８】
また、本実施形態では、デジタルカラー複合機１が読出ＤＭＡ部１３０と書込ＤＭＡ部１４０とを備えている構成としたが、これに限らず、例えばいずれか一方のＤＭＡ処理部のみを備えた構成としてもよい。
【０１７９】
〔実施形態２〕
本発明の他の実施形態について説明する。なお、説明の便宜上、実施形態１と同じ機能を有する部材については同じ符号を付し、その説明を省略する。
【０１８０】
実施形態１では、本発明を、入力画像データに含まれる原稿画像におけるライン画像同士の交点を算出する処理に適用する場合について説明した。これに対して、本実施形態では、本発明を、入力画像データに含まれる原稿画像の鏡像画像（原稿画像に対して所定の直線を軸として線対称な画像）を生成する鏡像処理に適用する場合について説明する。
【０１８１】
図３７は、本実施形態にかかるデジタルカラー複合機（画像処理装置、画像形成装置、画像読取装置）１ｂの概略構成を示すブロック図である。この図に示すように、デジタルカラー複合機１ｂは、実施形態１に示したデジタルカラー複合機１の構成に加えて、入力画像データに含まれる原稿画像の鏡像画像を生成する鏡像画像生成部２１を備えている。鏡像画像生成部２１以外の構成についてはデジタルカラー複合機１と略同様である。
【０１８２】
なお、本実施形態では、鏡像画像生成部２１をＡ／Ｄ変換部１１とシェーディング補正部１２との間に設けているが、これに限るものではない。例えば、Ａ／Ｄ変換部１１から領域分離処理部１５までの任意の位置に設けてもよい。また、階調再現処理部２０の後段に設けてもよい。また、領域分離処理部１５から階調再現処理部２０までの任意の位置に設けてもよい。ただし、この場合には、領域分離信号についても鏡像処理を行う必要がある。
【０１８３】
図３８は、鏡像画像生成部２１の構成を示すブロック図である。この図に示すように、鏡像画像生成部２１は、メモリ制御部２１０、読出ＤＭＡ部２２０、書込ＤＭＡ部２３０を備えている。なお、メモリ制御部２１０、読出ＤＭＡ部２２０、書込ＤＭＡ部２３０は、バス幅６４ビットのバスラインＢＬを介して互いに接続されている。なお、バスラインＣＬのバス幅はこれに限るものではなく、バースト転送サイズに応じて適宜設定すればよい。また、メモリ制御部２１０はメインメモリ８に接続され、読出ＤＭＡ部２２０および書込ＤＭＡ部２３０はバス幅２４ビットの内部バスを介して互いに接続されている。
【０１８４】
メモリ制御部２１０は、メインメモリ８へのデータの書き込み、メインメモリ８からのデータの読み出し、各ＤＭＡ部や制御部（ＣＰＵ）７へのデータ送出、および各ＤＭＡ部や制御部７から入力されたデータや命令等の受信制御を行うものであり、スワップ部２１１、ＦＩＦＯ（First In First Out）メモリ２１２、および転送制御部２１３を備えている。
【０１８５】
転送制御部２１３はスワップ部２１１の動作、ＦＩＦＯメモリ２１２に対するデータの入出力、およびメインメモリ８へのデータの書き込みおよび読み出しを制御する。スワップ部２１１は、バースト転送単位のデータに含まれるデータを、必要に応じてアドレス毎に並べ替える（入れ替える）。ＦＩＦＯメモリ２１２は、バースト転送単位で書き込まれたデータを書き込まれた順にバースト転送単位で出力する先入先出し型のメモリである。
【０１８６】
読出ＤＭＡ部２２０は、メインメモリ８からメモリ制御部２１０を介して読み出されたデータを必要に応じて並び替えて書込ＤＭＡ部２３０に出力するためのものであり、バスインターフェース２２１、転送制御部２２２、スワップ部２２３、データ幅変換部２２４を備えている。
【０１８７】
バスインターフェース２２１は、メモリ制御部２１０から入力されるデータのデータ形式を、バスラインＢＬの規格に基づくデータ形式から読出ＤＭＡ部２２０の内部で用いるデータ形式に変換する。また、転送制御部２２２からの要求をメモリ制御部２１０に出力する。転送制御部２２２は、メインメモリ８から読み出すデータの開始アドレス、データサイズ、およびアクセス方向の指定を行う。スワップ部２２３はデータの並べ替えを行う。また、データ幅変換部２２４はデータ幅の変換を行う。
【０１８８】
書込ＤＭＡ部２３０は、読出ＤＭＡ部２２０から出力されたデータを、メモリ制御部１２０を介してメインメモリ８に出力するためのものであり、バスインターフェース２３１、転送制御部２３２、スワップ部２３３、データ幅変換部２３４を備えている。バスインターフェース２３１は、メモリ制御部２１０に送出するデータのデータ形式を、書込ＤＭＡ部２３０の内部で用いるデータ形式からバスラインＢＬの規格に基づくデータ形式に変換する。また、転送制御部２３２からの要求をメモリ制御部２１０に出力する。転送制御部２３２は、メインメモリ８に書き込むデータの開始アドレス、データサイズ、およびアクセス方向の指定を行う。スワップ部２３３はデータの並べ替えを行う。また、データ幅変換部２３４はデータ幅の変換を行う。
【０１８９】
次に、鏡像画像生成部２１の動作について、主走査方向８画素×副走査方向８ラインのＲＧＢ画像（２４ビット画像）に対して鏡像処理を行う場合を例として説明する。
【０１９０】
制御部７が鏡像画像生成部２１に鏡像画像の生成を指示すると、まず、読出ＤＭＡ部２２０の転送制御部２２２が、メインメモリ８から入力画像データの読み出しを行うために、開始アドレス、転送サイズ、アクセス方向を含むバースト転送要求（ＤＭＡ要求）をバスインターフェース１３１およびバスラインＢＬを介してメモリ制御部２１０に送る。具体的には、転送制御部２２２は、１ライン目の画像についてのバースト転送要求として、開始アドレス+00h、転送サイズ２４バイト（３バイト×８画素）、順方向アクセスのバースト転送要求をメモリ制御部２１０に送る（発行する）。
【０１９１】
メモリ制御部２１０の転送制御部２１３は、読出ＤＭＡ部２２０から上記のバースト転送要求を受け取ると、開始アドレス＋００ｈ、転送サイズ２４バイトに対応する１回目のバースト転送用データをメインメモリ８から読み出す。これにより、図３９に示すように、１回目のバースト転送用データ（ａ（Ｒ１，Ｇ１，Ｂ１，Ｒ２，Ｇ２，Ｂ２，Ｒ３，Ｇ３），ｂ（Ｂ３，Ｒ４，Ｇ４，Ｂ４，Ｒ５，Ｇ５，Ｂ５，Ｒ６），ｃ（Ｇ６，Ｂ６，Ｒ７，Ｇ７，Ｂ７，Ｒ８，Ｇ８，Ｂ８））がこの順で読み出される。そして、転送制御部２１３は、メインメモリ８から読み出した各バースト転送用データを読み出した順にＦＩＦＯメモリ２１２に順次書き込む。これにより、図４０に示すように、１回目のバースト転送用データ（ａ（Ｒ１，Ｇ１，Ｂ１，Ｒ２，Ｇ２，Ｂ２，Ｒ３，Ｇ３），ｂ（Ｂ３，Ｒ４，Ｇ４，Ｂ４，Ｒ５，Ｇ５，Ｂ５，Ｒ６），ｃ（Ｇ６，Ｂ６，Ｒ７，Ｇ７，Ｂ７，Ｒ８，Ｇ８，Ｂ８））がこの順でＦＩＦＯメモリ１２２に書き込まれる。つまり、１回目のバースト転送用データは、上記ａ，ｂ，ｃの各６４ビットデータ（入力画像データを８バイト毎に６４ビットデータに分割したデータ）としてＦＩＦＯメモリ１２２に書き込まれる。
【０１９２】
その後、転送制御部２１３は、読出ＤＭＡ部２２０の転送制御部２２２からの転送要求が順方向アクセスであるため、ＦＩＦＯメモリ１２２に書き込まれたバースト転送単位のデータ（ａ，ｂ，ｃ）をスワップ部１２１にこの順で読み出させる。また、転送制御部２１３は、順方向アクセスであるため、スワップ部１２１を制御し、ＦＩＦＯメモリ２１２から読み出したバースト転送単位のデータ（ａ，ｂ，ｃ）を、スワップ処理を行うことなくそのまま読出ＤＭＡ部２２０に出力させる。
【０１９３】
読出ＤＭＡ部２２０のスワップ部２２３は、メモリ制御部２１０からバースト転送単位で送信されたデータを受け取ると、順方向アクセスであるためスワップ処理は行わず、そのままの順序でデータ幅変換部２２４に出力する。
【０１９４】
データ幅変換部２２４は、図４１に示すように、スワップ部２２３から入力されたバースト転送データを、そのままの順序で上位側から順に２４ビットずつ（１画素ずつ）、書込ＤＭＡ部２３０に出力する。
【０１９５】
書込ＤＭＡ部２３０の転送制御部２３２はデータ幅変換部２３４を制御し、読出ＤＭＡ部２２０からの出力データをバースト転送単位毎にスワップ部２３３に出力させる。これにより、スワップ部２３３には、それぞれが第４データサイズ（ここでは６４ビット）からなるａ’（Ｒ１，Ｇ１，Ｂ１，Ｒ２，Ｇ２，Ｂ２，Ｒ３，Ｇ３），ｂ’（Ｂ３，Ｒ４，Ｇ４，Ｂ４，Ｒ５，Ｇ５，Ｂ５，Ｒ６），ｃ’（Ｇ６、Ｂ６，Ｒ７，Ｇ７，Ｂ７，Ｒ８，Ｇ８，Ｂ８）が入力される。
【０１９６】
その後、転送制御部２３２はスワップ部２３３を制御し、図４２に示すように、各バースト転送用データａ’，ｂ’，ｃ’，・・・における第５データサイズ（ここでは２４ビット。１画素分の画像データ。）毎のデータに対して、第６データサイズ（ここでは８ビット。１副画素（１色成分）の画像データ。）単位で上位側と下位側とを入れ替えるスワップ処理を行わせる。本実施形態では、データａ’，ｂ’，ｃ’，ｄ’・・・に含まれる画素毎の２４ビット毎のデータ（Ｒ，Ｂ，Ｇのデータ）に対し、Ｒ，Ｇ，Ｂの順序を逆順、すなわちＢ，Ｇ，Ｒの順に並び替えるスワップ処理を行う。そして、スワップ処理後のデータをバスインターフェース２３１およびバスラインＢＬを介してバースト転送単位毎にメモリ制御部２１０に出力させる。これにより、メモリ制御部２１０のスワップ部２１１には、図４２に示すようにそれぞれが第４データサイズ（ここでは６４ビット）からなるデータａ''（Ｂ１，Ｇ１，Ｒ１，Ｂ２，Ｇ２，Ｒ２，Ｂ３，Ｇ３），ｂ''（Ｒ３，Ｂ４，Ｇ４，Ｒ４，Ｂ５，Ｇ５，Ｒ５，Ｂ６），ｃ''（Ｇ６、Ｒ６，Ｂ７，Ｇ７，Ｒ７，Ｂ８，Ｇ８，Ｒ８）からなるバースト転送データ（ａ''，ｂ''，ｃ''）が入力される。また、転送制御部２３２は、バースト転送データ（ａ''，ｂ''，ｃ''）とともに開始アドレス（ここでは＋１７ｈ）、転送サイズ（ここでは２４バイト（３バイト×８画素））、アクセス方向（ここでは逆方向アクセス）を含むバースト転送要求（ＤＭＡ要求）を送る。
【０１９７】
メモリ制御部２１０の転送制御部２１３は、スワップ部２１１を制御し、スワップ部２３３から受け取ったバースト転送データに対し、第４データサイズ（ここでは６４ビット）の各データ（ａ''，b''，c''）内において第６データサイズ（ここでは８ビット）単位で上位側と下位側とを入れ替えるスワップ処理を行わせる。これにより、スワップ部２１１からはデータａ'''（Ｇ３，Ｂ３，Ｒ３，Ｇ２，Ｂ２，Ｒ２，Ｇ１，Ｂ１），ｂ'''（Ｂ６，Ｒ５，Ｇ５，Ｂ５，Ｒ４，Ｇ４，Ｂ４，Ｇ３），ｃ'''（Ｒ８，Ｇ８，Ｂ８，Ｒ７，Ｇ７，Ｂ７，Ｒ６，Ｇ６）がこの順で出力される。
【０１９８】
また、転送制御部２１３は、スワップ部２１１から出力された上記のバースト転送用データａ'''，ｂ'''，ｃ'''をＦＩＦＯメモリ１２２に書き込む。この際、転送制御部２１３は、バースト転送用データａ'''，ｂ'''，ｃ'''をＦＩＦＯメモリ２１２に対して逆方向で書き込む。すなわち、ＦＩＦＯメモリ２１２から読み出す際にｃ'''，ｂ'''，ａ'''の順に読み出されるようにＦＩＦＯメモリ２１２に書き込む。これにより、図４２に示すように、ＦＩＦＯメモリ２１２にはバースト転送用データｃ'''，ｂ'''，ａ'''が順方向に沿ってこの順で書き込まれる。
【０１９９】
また、転送制御部２１３は、書込ＤＭＡ部２３０から逆方向アクセスのバースト転送要求を受け取ると、このバースト転送要求に対応するデータを順方向アクセスでメインメモリ８に書き込む場合の開始アドレス（メインメモリアクセス時転送開始アドレス）を、バースト転送要求に示された逆方向アクセスの場合の開始アドレス（ＤＭＡ要求時転送開始アドレス）および転送サイズに基づいて算出する。つまり、上記バースト転送要求に示された転送サイズのデータを順方向アクセスでメインメモリ８に書き込むときに、上記バースト転送要求に示された逆方向アクセスの開始アドレスが順方向アクセスの最終アドレスとなるような順方向アクセスの開始アドレスを算出する。本実施形態の場合、１回目のバースト転送用データについての上記開始アドレスは＋００ｈとなる（逆方向の開始アドレスは＋１７ｈ、転送サイズは２４バイト）。
【０２００】
そして、転送制御部２１３は、ＦＩＦＯメモリ２１２から上記のように読み出したデータを、上記のように算出した順方向アクセスの開始アドレスに基づいてメインメモリ８に順次書き込んでいく。これにより、図４３に示すように、画素８〜画素１についてのＲ，Ｇ，Ｂの画像データがメインメモリ８におけるアドレスデクリメント側（先頭アドレスに近い側）から順に書き込まれる。すなわち、メインメモリ８のアドレス＋００ｈから＋１７ｈまでに、Ｒ８，Ｇ８，Ｂ８，Ｒ７，・・・，Ｒ１，Ｇ１，Ｂ１のように格納され、これによってメインメモリ８に鏡像反転した画像データが格納される。その後、２ライン目以降についての同様の処理が行われ、その結果、メインメモリ８に入力画像データを鏡像反転した鏡像画像の画像データが格納される。
【０２０１】
以上のように、本実施形態にかかるデジタルカラー複合機１ｂは、スワップ部２１１が書込ＤＭＡ部２３０から転送されたバースト転送単位のデータを所定の第４データサイズ毎に区分し、各第４データサイズのデータを所定の第５データサイズ毎に区分し、区分した各第５データサイズのデータの順序を反転させて順次出力するようになっており、メモリ制御部２１０は、スワップ部２１１から順次出力されるデータを、スワップ部２１１から出力された順序とは逆の順序でＦＩＦＯメモリ２１２から順次出力されるようにＦＩＦＯメモリ２１２に格納し、ＦＩＦＯメモリ２１２から順次出力されるデータを、メインメモリ８におけるＤＭＡ書込要求に応じたアドレスに書き込む。
【０２０２】
これにより、書込ＤＭＡ部２３０に入力されるデータを、入力された順序とは逆の順序でメインメモリ８に書き込むことができる。例えば、書込ＤＭＡ部２３０に入力された右側の画素から左側の画素に向かう順に並ぶ各画素の画像データを、左側の画素から右側の画素に向かう順にメインメモリ８に書き込むことができる。これにより、書込ＤＭＡ部２３０に入力される画像データの鏡像画像を生成することができる。また、メインメモリ８に書き込むデータをバースト転送単位で転送することができるので、転送効率を向上させることができ、上記の逆方向の書き込みを高速で行うことができる。また、ＦＩＦＯメモリ２１２を書込ＤＭＡ部２３０に備える必要がないので、バースト転送単位を大きくして転送効率をさらに向上させる場合であっても、書込ＤＭＡ部２３０の回路規模の増大を抑制できる。したがって、例えば、ＤＭＡ処理部を複数備える構成であっても、これら各ＤＭＡ処理部とメインメモリとの間に接続されるメモリ制御部の記憶手段の容量をバースト転送単位に応じた大きさにするだけでよいので、各ＤＭＡ処理部の回路規模を増大させる必要がなく、データ転送装置全体としての回路規模の増大を抑制できる。
【０２０３】
なお、本実施形態では、バースト転送単位のデータを所定の第４データサイズ毎に区分し、各第４データサイズのデータを所定の第５データサイズ毎に区分し、区分した各第５データサイズのデータの順序を反転させて順次出力する処理をメモリ制御部２１０に備えられるスワップ部２１１で行うものとしたが、これに限るものではない。例えば、書込ＤＭＡ部２３０に備えられるスワップ部２３３が、バースト転送単位のデータを所定の第４データサイズ毎に区分し、上記各第４データサイズのデータを所定の第５データサイズ毎に区分し、区分した上記各第５データサイズのデータの順序を反転させて順次出力し、スワップ部２３３から順次出力されるデータをバースト転送単位毎にメモリ制御部２１０に転送するようにしてもよい。
【０２０４】
なお、上記各実施形態では、本発明をデジタルカラー複合機１に適用する場合について説明したが、これに限らず、例えば、モノクロの複合機に適用することもしてもよい。また、複合機に限らず、例えば、単体のファクシミリ通信装置、複写機、画像読取装置などの画像処理装置に適用してもよい。
【０２０５】
また、上記各実施形態において、デジタルカラー複合機１に備えられるカラー画像処理装置３を構成する各部（各ブロック）は、ＣＰＵ等のプロセッサを用いてソフトウェアによって実現される。すなわち、デジタルカラー複合機１は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるカラー画像処理装置３の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、デジタルカラー複合機１に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。
【０２０６】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０２０７】
また、カラー画像処理装置３を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０２０８】
また、カラー画像処理装置３の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。
【０２０９】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態、および請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０２１０】
本発明は、メインメモリに書き込まれたデータを逆方向に読み出すための読出ＤＭＡ処理部、および／または、入力されたデータをメインメモリに逆方向に書き込む書込ＤＭＡ処理部を備えたデータ転送装置に適用できる。例えば、画像データを異なる２つの方向から走査する画像処理装置や入力画像データの鏡像画像を生成する画像処理装置などに適用できる。
【図面の簡単な説明】
【０２１１】
【図１】本発明の一実施形態にかかるデータ転送装置に備えられる交点算出部の概略構成を示すブロック図である。
【図２】本発明の一実施形態にかかるデータ転送装置を備えた画像処理装置の概略構成を示すブロック図である。
【図３】図２に示した画像処理装置に備えられる文書照合処理部の概略構成を示すブロック図である。
【図４】図３に示した文書照合処理部に備えられる特徴点算出部の概略構成を示すブロック図である。
【図５】図３に示した文書照合処理部に備えられる特徴量算出部によって特徴量を算出する際に抽出される注目特徴点および周辺特徴点の一例を示す説明図である。
【図６】（ａ）〜（ｄ）は、図３に示した文書照合処理部に備えられる特徴量算出部によって特徴量を算出する際に抽出される注目特徴点および周辺特徴点の組み合わせの一例を示す説明図である。
【図７】（ａ）〜（ｄ）は、図３に示した文書照合処理部に備えられる特徴量算出部によって特徴量を算出する際に抽出される注目特徴点および周辺特徴点の組み合わせの一例を示す説明図である。
【図８】（ａ）および（ｂ）は、図３に示した文書照合処理部において、ハッシュテーブルに登録されるハッシュ値および入力画像データを表すインデックスの一例を示す説明図である。
【図９】図３に示した文書照合処理部に備えられる投票処理部における、各登録画像に対する投票数の一例を示すグラフである。
【図１０】図３に示した文書照合処理部における処理の流れを示すフロー図である。
【図１１】図１に示した交点算出部における交点算出処理の流れを示すフロー図である。
【図１２】図１に示した交点算出部に備えられる第１ラベリング部において注目画素に対するラベル付けを行う際の、隣接画素の参照順序を示す説明図である。
【図１３】図１に示した交点算出部に備えられる第２ラベリング部において注目画素に対するラベル付けを行う際の、隣接画素の参照順序を示す説明図である。
【図１４】図１に示した交点算出部による交点算出処理の対象とする画像データの一例を示す説明図である。
【図１５】図１に示した交点算出部に備えられる第１ラベリング部におけるラベル付け処理の手順を示す説明図である。
【図１６】図１に示した交点算出部に備えられる第２ラベリング部におけるラベル付け処理の手順を示す説明図である。
【図１７】図１に示した交点算出部によって図１４に示した画像データに対して交点算出処理を施した結果を示す説明図である。
【図１８】図２に示した画像処理装置のメインメモリに格納されている画像データとアドレスとの関係を示す説明図である。
【図１９】図２に示した画像処理装置のメインメモリに格納されている２値化後の画像データを順方向に読み出す場合の読み出し方法を示す説明図である。
【図２０】図２に示した画像処理装置においてメインメモリに格納されたデータを順方向に読み出す場合のデータの流れを示す説明図であり、（ａ）はＦＩＦＯメモリに対する１回目のバースト転送用データの書き込み順序、（ｂ）はＦＩＦＯメモリに対する２回目のバースト転送用データの書き込み順序、（ｃ）はＦＩＦＯメモリからの１回目のバースト転送用データの読み出し順序、（ｄ）はＦＩＦＯメモリからの２回目のバースト転送用データの読み出し順序を示している。
【図２１】図２に示した画像処理装置においてメインメモリに格納されたデータを順方向に読み出す場合のデータの流れを示す説明図であり、メモリ制御部のスワップ部に対するデータ読出時の入力データおよび出力データを示している。
【図２２】図２に示した画像処理装置においてメインメモリに格納されたデータを順方向に読み出す場合のデータの流れを示す説明図であり、読出ＤＭＡ部のスワップ部に対する入力データおよび出力データを示している。
【図２３】図２に示した画像処理装置においてメインメモリに格納されたデータを順方向に読み出す場合のデータの流れを示す説明図であり、読出ＤＭＡ部のデータ幅変換部からの出力データを示している。
【図２４】図２に示した画像処理装置においてメインメモリにデータを順方向に書き込む場合のデータの流れを示す説明図であり、書込ＤＭＡ部のスワップ部に対する入力データおよび出力データを示している。
【図２５】図２に示した画像処理装置においてメインメモリにデータを順方向に書き込む場合のデータの流れを示す説明図であり、メモリ制御部のスワップ部に対するデータ書込時の入力データおよび出力データを示している。
【図２６】図２に示した画像処理装置においてメインメモリにデータを順方向に書き込む場合のデータの流れを示す説明図であり、メモリ制御部のＦＩＦＯメモリに対するデータ書込時の入力データおよび出力データを示している。
【図２７】図２に示した画像処理装置においてメインメモリにデータを順方向に書き込む場合のメインメモリへのデータの書き込み方法を示す説明図である。
【図２８】図２に示した画像処理装置のメインメモリに格納されている２値化後の画像データを逆方向に読み出す場合の読み出し方法を示す説明図である。
【図２９】図２に示した画像処理装置においてメインメモリに格納されたデータを逆方向に読み出す場合のデータの流れを示す説明図であり、（ａ）はＦＩＦＯメモリに対する１回目のバースト転送用データの書き込み順序、（ｂ）はＦＩＦＯメモリに対する２回目のバースト転送用データの書き込み順序、（ｃ）はＦＩＦＯメモリからの１回目のバースト転送用データの読み出し順序、（ｄ）はＦＩＦＯメモリからの２回目のバースト転送用データの読み出し順序を示している。
【図３０】図２に示した画像処理装置においてメインメモリにデータを逆方向に書き込む場合のデータの流れを示す説明図であり、メモリ制御部のスワップ部に対するデータ書込時の入力データおよび出力データを示している。
【図３１】図２に示した画像処理装置においてメインメモリにデータを逆方向に書き込む場合のデータの流れを示す説明図であり、読出ＤＭＡ部のスワップ部に対するデータ書込時の入力データおよび出力データを示している。
【図３２】図２に示した画像処理装置においてメインメモリに格納されたデータを逆方向に読み出す場合のデータの流れを示す説明図であり、読出ＤＭＡ部のデータ幅変換部からの出力データを示している。
【図３３】図２に示した画像処理装置においてメインメモリにデータを逆方向に書き込む場合のデータの流れを示す説明図であり、書込ＤＭＡ部のスワップ部に対する入力データおよび出力データを示している。
【図３４】図２に示した画像処理装置においてメインメモリにデータを逆方向に書き込む場合のデータの流れを示す説明図であり、メモリ制御部のスワップ部に対するデータ書込時の入力データおよび出力データを示している。
【図３５】図２に示した画像処理装置においてメインメモリにデータを逆方向に書き込む場合のデータの流れを示す説明図であり、メモリ制御部のＦＩＦＯメモリに対するデータ書込時の入力データおよび出力データを示している。
【図３６】図２に示した画像処理装置においてメインメモリにデータを逆方向に書き込む場合のメインメモリへのデータの書き込み方法を示す説明図である。
【図３７】本発明の他の実施形態にかかる画像処理装置の概略構成を示すブロック図である。
【図３８】図３７に示した画像処理装置に備えられる鏡像画像生成部の構成を示すブロック図である。
【図３９】図３８に示した鏡像画像生成部においてメインメモリに格納されたデータを読み出す場合の読み出し方法を示す説明図である。
【図４０】図３８に示した鏡像画像生成部においてメインメモリに格納されたデータを読み出す場合のデータの流れを示す説明図であり、メモリ制御部のＦＩＦＯメモリに対する入力データおよび出力データを示している。
【図４１】図３８に示した鏡像画像生成部においてメインメモリに格納されたデータを読み出す場合のデータの流れを示す説明図であり、読出ＤＭＡ部のデータ幅変換部からの出力データを示している。
【図４２】図３８に示した鏡像画像生成部においてメインメモリにデータを書き込む場合のデータの流れを示す説明図である。
【図４３】図３８に示した鏡像画像生成部によってメインメモリに書き込まれるデータを示す説明図である。
【図４４】従来のデータ転送装置において、総転送データサイズ１６のデータをバースト転送サイズ４で転送する場合、およびバースト転送サイズ８で転送する場合の転送サイクルを示す説明図である。
【図４５】１８０°回転させた画像データをＤＭＡ転送する従来のデータ転送装置において、バースト転送サイズの２倍の記憶容量を有するＦＩＦＯメモリを用いる場合のＦＩＦＯメモリに対するアクセス方法を示す説明図である。
【符号の説明】
【０２１２】
１，１ｂ  デジタルカラー複合機（データ転送装置、画像処理装置、画像形成装置）
３  カラー画像処理装置（データ転送装置、画像処理装置）
７  制御部（ＣＰＵ）
８  メインメモリ
９  信号処理部
１３  文書照合処理部
２１  鏡像画像生成部
４４  ２値化処理部
４５  交点算出部（画像処理部）
６０  計数部
６１  ライン判定部
４６  ライン検出部
６２  交点抽出部
７１  第１ラベリング部
７３  第２ラベリング部
１２０，２１０  メモリ制御部
１２１，２１１  スワップ部（第１スワップ部）
１２２，２１２  ＦＩＦＯメモリ（記憶手段）
１２３，２１３  転送制御部
１３０，２２０  読出ＤＭＡ部（読出ＤＭＡ処理部）
１３１，２２１  バスインターフェース
１３２，２２２  転送制御部
１３３，２２３  スワップ部（第２スワップ部）
１３４，２２４  データ幅変換部
１４０，２３０  書込ＤＭＡ部（書込ＤＭＡ処理部）
１４１，２３１  バスインターフェース
１４２，２３２  転送制御部
１４３，２３３  スワップ部（第３スワップ部）
１４４，２３４  データ幅変換部
ＢＬ  バスライン
【図１】
2009199436.tif 000003
【図２】
2009199436.tif 000004
【図３】
2009199436.tif 000005
【図４】
2009199436.tif 000006
【図５】
2009199436.tif 000007
【図６】
2009199436.tif 000008
【図７】
2009199436.tif 000009
【図８】
2009199436.tif 000010
【図９】
2009199436.tif 000011
【図１０】
2009199436.tif 000012
【図１１】
2009199436.tif 000013
【図１２】
2009199436.tif 000014
【図１３】
2009199436.tif 000015
【図１４】
2009199436.tif 000016
【図１５】
2009199436.tif 000017
【図１６】
2009199436.tif 000018
【図１７】
2009199436.tif 000019
【図１８】
2009199436.tif 000020
【図１９】
2009199436.tif 000021
【図２０】
2009199436.tif 000022
【図２１】
2009199436.tif 000023
【図２２】
2009199436.tif 000024
【図２３】
2009199436.tif 000025
【図２４】
2009199436.tif 000026
【図２５】
2009199436.tif 000027
【図２６】
2009199436.tif 000028
【図２７】
2009199436.tif 000029
【図２８】
2009199436.tif 000030
【図２９】
2009199436.tif 000031
【図３０】
2009199436.tif 000032
【図３１】
2009199436.tif 000033
【図３２】
2009199436.tif 000034
【図３３】
2009199436.tif 000035
【図３４】
2009199436.tif 000036
【図３５】
2009199436.tif 000037
【図３６】
2009199436.tif 000038
【図３７】
2009199436.tif 000039
【図３８】
2009199436.tif 000040
【図３９】
2009199436.tif 000041
【図４０】
2009199436.tif 000042
【図４１】
2009199436.tif 000043
【図４２】
2009199436.tif 000044
【図４３】
2009199436.tif 000045
【図４４】
2009199436.tif 000046
【図４５】
2009199436.tif 000047