(57)【要約】【課題】矩形画像データの回転処理を矩形画像データを記憶できるメモリを一つだけで、高速に行う画像処理回転回路を提供するため。【解決手段】アクセスモード信号を設け、それに従ってメモリへの書き込みと読み出しのアドレスの順番を共通にし、矩形画像データをメモリにすべて書き込んだタイミングで、現時点のアクセスモード信号と指定された回転角、鏡像から、アクセスモード信号を更新し、この新しいアクセスモード信号に従って、読み出しアドレスを作り出し、メモリから１画素づつ画素データを読み出し、読み出しによりメモリに空きができると、同じアクセスモード信号に従って、読み出しアドレスと同じメモリの位置に、順番に次の矩形画像データの画素データを書き込んでいくことを特徴とする。【選択図】　　　　図１
2004040381.tif 000002
【特許請求の範囲】
【請求項１】
１画素当りＮビット（Ｎは自然数）のデータを有する矩形画像をＭビット（ＭはＮ以上の自然数）単位にアクセス可能なメモリに１画素づつ順次書き込み、書き込まれた順と異なる順番にメモリから１画素づつ読み出すことにより、９０度、１８０度、２７０度回転された画像やそれらの鏡像を得る画像回転処理回路において、
前記メモリは書き込みと読み出しが独立にアクセス可能であり、
回転角、鏡像を指定する手段と、
前記メモリへのアクセスの順番を決定するアクセスモードを生成する手段と、
前記メモリへのライトアクセスとリードアクセスから前記メモリに空きがあることを示す信号（ｎｏｔ＿ｆｕｌｌ信号）を生成する手段と、
前記ｎｏｔ＿ｆｕｌｌ信号がアクティブである期間に前記アクセスモードに従って、１画素づつ前記メモリに書き込む手段と、
１つの矩形画像を前記メモリにすべて書き込んだことを示す信号（ｗｒｉｔｅ＿ｄｏｎｅ信号）を生成する手段と、
前記アクセスモードを生成する手段は、前記ｗｒｉｔｅ＿ｄｏｎｅ信号により前記指定された回転角、鏡像と現在の前記アクセスモードから次のアクセスモードに更新する手段と、
前記ｗｒｉｔｅ＿ｄｏｎｅ信号により前記更新されたアクセスモードに従って、１画素づつ、すべての矩形画像を前記メモリから読み出す手段と、
を有することを特徴とする画像回転処理回路。
【請求項２】
前記メモリから読み出す手段は常に連続に行われ、そのため、前記ｎｏｔ＿ｆｕｌｌ信号を生成する手段を不要とすることを特徴とする請求項第１項記載の画像回転処理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、矩形画像データをメモリに書き込み、書き込まれた順と異なる順番にメモリから読み出すことにより、９０度、１８０度、２７０度回転された画像データやそれらの鏡像データを得る画像回転処理回路に関するものである。
【０００２】
【従来の技術】
矩形画像データの９０度、１８０度、２７０度回転された画像データやそれらの鏡像データを得るためには、矩形画像データの１画素のビット数かそれ以上のビット数の単位でアクセス可能なメモリを用意し、すべての矩形画像データをメモリに書き込んでから、すべての矩形画像データをメモリから読み出す。この際に書き込み時に与えるメモリアドレスの順番と読み出し時に与えるメモリアドレスの順番を回転、鏡像に従って変えることで、回転、鏡像された画像データが得られる。
【０００３】
従来、書き込み時に与えるメモリアドレスの順番を先頭アドレスからインクリメントし、読み出し時に与えるメモリアドレスの順番を回転、鏡像に従って変える方法か、書き込み時に与えるメモリアドレスの順番を回転、鏡像に従って変えておき、読み出し時に与えるメモリアドレスの順番を先頭アドレスからインクリメントさせる方法がとられる。これら二つの方法は原理的に等価なものである。
【０００４】
図１２は画像回転処理回路の従来例を示すブロック図である。この例は読み出し時に与えるメモリアドレスの順番を回転、鏡像の指定に従って、変化させるものである。１は画像データを記憶するためのメモリであり、ｗｒｉｔｅ＿ｅｎａｂｌｅ信号により入力データが書き込まれ、ｒｅａｄ＿ｅｎａｂｌｅ信号によりデータが読み出される。２と３はそれぞれ書き込み制御部と読み出し制御部である。書き込み制御部２はｗｒｉｔｅ＿ｅｎａｂｌｅ信号からメモリ１の書き込むアドレスｗｒｉｔｅ＿ａｄｄｒｅｓｓ信号を生成し、矩形画像データをすべてメモリ１へ書き込んだ時にそのことを読み出し制御部３に知らせるｗｒｉｔｅ＿ｄｏｎｅ信号を生成する。読み出し制御部３はｒｅａｄ＿ｅｎａｂｌｅ信号と回転、鏡像の指定するｒｏｔａｔｅ信号からメモリ１の読み出すアドレスｒｅａｄ＿ａｄｄｒｅｓｓ信号を生成し、矩形画像データをすべてメモリ１から読み出した時にそのことを書き込み制御部２に知らせるｒｅａｄ＿ｄｏｎｅ信号を生成する。さらに、書き込み制御部２はｗｒｉｔｅ＿ｄｏｎｅ信号をアクティブにしてから読み出し制御部３からのｒｅａｄ＿ｄｏｎｅ信号がアクティブになるまでの期間、メモリ１への書き込みの禁止を知らせるためにｗｒｉｔｅ＿ｒｅａｄｙ信号をインアクティブにし、読み出し制御部３はｒｅａｄ＿ｄｏｎｅ信号をアクティブにしてから書き込み制御部２からのｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになるまでの期間、メモリ１からの読み出しの禁止を知らせるためにｒｅａｄ＿ｒｅａｄｙ信号をインアクティブにする。
【０００５】
矩形画像データが１６×１６として説明する。図１３はメモリ１の構成を説明するための図である。１６×１６の矩形画像データの画素数は２５６であり、アドレスに必要なビット数は８ビットである。メモリ１は１画素に必要なビット数、またはそれ以上のビット数単位でアクセスできる必要がある。
【０００６】
図１４は書き込み制御部２の構成を示す図である。２１はカウンタであり、ｗｒｉｔｅ＿ｅｎａｂｌｅ信号でインクリメントし、ｗｒｉｔｅ＿ａｄｄｒｅｓｓ信号を０、１、２、…と変化させ、２５５に達した時に、つまり矩形画像データをすべてメモリ１に書き込んだ時にｗｒｉｔｅ＿ｄｏｎｅ信号をアクティブにする。２２はＲＳフリップフロップ（ＲＳ−ＦＦ）であり、ｗｒｉｔｅ＿ｄｏｎｅ信号のアクティブでリセット、ｒｅａｄ＿ｄｏｎｅ信号でセットされる。従って、ＲＳ−ＦＦ２２の出力であるｗｒｉｔｅ＿ｒｅａｄｙ信号はｗｒｉｔｅ＿ｄｏｎｅ信号のアクティブからｒｅａｄ＿ｄｏｎｅ信号がアクティブになるまでの期間だけインアクティブとなる。後で説明するが、矩形画像データをメモリ１に書き込み終えた後、そのデータをメモリ１からすべて読み出した後でないと、次の矩形画像データの書き込みが前の矩形画像データを上書きする可能性がある。ｗｒｉｔｅ＿ｒｅａｄｙ信号は上書きの可能性がある期間、インアクティブとなるので、ｗｒｉｔｅ＿ｒｅａｄｙ信号がアクティブの時にだけメモリ１に書き込むことで上書きを防ぐ。
【０００７】
図１５は読み出し制御部３の構成を示す図である。３１はカウンタであり、ｒｅａｄ＿ｅｎａｂｌｅ信号でインクリメントし、カウント出力を０、１、２、…と変化させ、２５５に達した時に、つまり矩形画像データをすべてメモリ１から読み出した時にｒｅａｄ＿ｄｏｎｅ信号をアクティブにする。３２はＲＳフリップフロップ（ＲＳ−ＦＦ）であり、ｒｅａｄ＿ｄｏｎｅ信号のアクティブでリセット、ｗｒｉｔｅ＿ｄｏｎｅ信号でセットされる。従って、ＲＳ−ＦＦ３２の出力であるｒｅａｄ＿ｒｅａｄｙ信号はｒｅａｄ＿ｄｏｎｅ信号のアクティブからｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになるまでの期間だけインアクティブとなる。後で説明するが、矩形画像データがメモリ１へすべて書き込まれた後でないと、矩形画像データの読み出し開始ができない。ｒｅａｄ＿ｒｅａｄｙ信号は読み出しができない期間、インアクティブとなるので、ｒｅａｄ＿ｒｅａｄｙ信号がアクティブの時にだけメモリ１から読み出すことで誤ったデータの読み出しを防ぐ。３３、３３’は排他的論理和回路であり、それぞれｒｏｔａｔｅ［０］、ｒｏｔａｔｅ［１］が１であると、入力されるカウンタ３１の下位４ビット、上位４ビット出力を反転する。３４はｅｘｃｈａｎｇｅｒであり、ｒｏｔａｔｅ［２］が１であると、排他的論理和回路３３と３３’からの出力の上位と下位を入れ替える。ｒｏｔａｔｅ信号は回転、鏡像を指定する信号で、３ビットを有する。排他的論理和回路３３、３３’とｅｘｃｈａｎｇｅｒ３４が回転、鏡像の指定に従って、書き込みアドレスの順番と異なる読み出しアドレスを生成する部分に当る。ｒｏｔａｔｅ信号の値とその意味は次に説明する。
【０００８】
矩形画像データの回転された画像を得る動作について説明する。初期状態では、ｗｒｉｔｅ＿ｒｅａｄｙ信号はアクティブで、ｒｅａｄ＿ｒｅａｄｙ信号はインアクティブである。つまり、メモリ１への書き込みが許可、メモリ１からの読み出しが禁止状態である。図１６（ａ）に示す画像データを例にすると、この画像データの左上から右下へ向かって、左右方向優先で１画素づつ、メモリ１に書き込む。この時、書き込み制御部２はｗｒｉｔｅ＿ａｄｄｒｅｓｓ信号を０、１、２、…と変化させて出力するので、メモリ１には、同図上のような位置に各画素が書き込まれる。ｗｒｉｔｅ＿ａｄｄｒｅｓｓ信号が２５５（＝０ｘｆｆ、０ｘはその値がヘキサデシマルであることを表す）で右下の最後の書き込まれた時点で、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブとなり、ｗｒｉｔｅ＿ｒｅａｄｙ信号はインアクティブに、ｒｅａｄ＿ｒｅａｄｙ信号はアクティブに変化する。従って、メモリ１への書き込みが禁止、メモリ１からの読み出しが許可状態になる。
【０００９】
ｒｏｔａｔｅ信号が０ｂ１１０（０ｂはその値が２進数であることを表す）の場合を考える。読み出し制御部３では、メモリ１からの読み出しで、カウンタ３１の出力値ｃｎｔ［７：０］を０ｘ００、０ｘ０１、…、０ｘ０ｅ、０ｘ０ｆ、０ｘ１０、０ｘ１１、…、０ｘ１ｅ、０ｘ１ｆ、…、０ｘｅ０、０ｘｅ１、…、０ｘｅｅ、０ｘｅｆ、０ｘｆ０、０ｘｆ１、…、０ｘｆｅ、０ｘｆｆと変化させる。排他的論理和回路３３、３３’では、ｒｏｔａｔｅ［０］＝０、ｒｏｔａｔｅ［１］＝１なので、ｃｎｔ［３：０］はそのまま、ｃｎｔ［７：４］は反転され、出力される。ｅｘｃｈａｎｇｅｒ３４では、ｒｏｔａｔｅ［２］＝１なので、その出力の上位４ビットと下位４ビットを入れ替えて、ｒｅａｄ＿ａｄｄｒｅｓｓ信号として出力する。従って、カウンタ３１の出力から生成されるｒｅａｄ＿ａｄｄｒｅｓｓ信号は０ｘ０ｆ、０ｘ１ｆ、…、０ｘｅｆ、０ｘｆｆ、０ｘ０ｅ、０ｘ１ｅ、…、０ｘｅｅ、０ｘｆｅ、…、０ｘ０１、０ｘ１１、…、０ｘｅ１、０ｘｆ１、０ｘ００、０ｘ１０、…、０ｘｅ０、０ｘｆ０と変化する。このアドレスの順番でメモリ１から読み出された画素データを、左上から右下へ向かって、左右方向優先の順番であるとみなし、並べなおしたものが図１６（ｂ）の図であり、反時計回りに９０度回転した画像データとなる。メモリ１のデータをすべて読み出した時点で、ｒｅａｄ＿ｄｏｎｅ信号がアクティブとなり、ｗｒｉｔｅ＿ｒｅａｄｙ信号はアクティブに、ｒｅａｄ＿ｒｅａｄｙ信号はインアクティブに変化し、初期状態に戻る。
【００１０】
図１７は上の説明と同様にして、各ｒｏｔａｔｅ信号に対応して得られる画像を示したものである。同図で、ｒｏｔａｔｅ＝０ｂ０１１とｒｏｔａｔｅ＝０ｂ１１１で得られる画像データについて着目すると、最初に読み出される画素データはメモリ１のアドレスの２５５（０ｘｆｆ）からであり、これは最後に書き込まれる画素データである。よって、すべての矩形画像データが書き込まれた後でないと、画素データの読み出しを開始できないので、ｒｅａｄ＿ｒｅａｄｙ信号が前に説明した通り必要となる。また、最後に読み出される画素データはメモリ１のアドレスの０（０ｘ００）からであり、これは次の画像データの最初の画素データが書き込まれるアドレスである。よって、すべての矩形画像データが読み出された後でないと、次の画像データの書き込みを開始できないので、ｗｒｉｔｅ＿ｒｅａｄｙ信号が前に説明した通り必要となる。
【００１１】
【発明が解決しようとする課題】
しかしながら、上記従来例では次のような問題点がある。メモリ１への書き込みと読み出しのアクセスを排他的に行わなければならず、複数の矩形画像データの回転、鏡像の連続処理を妨げる。この連続処理が必要となる高速性が要求される場合には、図１８のように回転処理回路を二つ用意して、複数の矩形画像データを二つの回転処理回路へ交互に入力し、図１９のように、一方の回転処理回路から画像データを読み出している間に、他方の回転処理回路へ次の画像データを書きこむ必要がある。このように、高速に連続処理するためには二つの回転処理回路が必要となり、回路規模が増大し、複数の矩形画像データを交互に書きこむための制御と交互に読み出すための制御のための付加回路も必要となってしまう。
【００１２】
本発明は上記従来例の問題点に鑑み、矩形画像データをメモリにすべて書き込んだ後に、メモリから画素データの読み出しと同時に、次の矩形画像データの画素データのメモリへの書き込みを可能にし、一つの回転処理回路で付加回路なしに、複数の矩形画像データを連続に高速に処理できる画像回転処理回路を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は上記目的を達成するために、アクセスモード信号を設け、アクセスモード信号に従って、メモリへの書き込みアドレスの順番と読み出しアドレスの順番を共通にし、矩形画像データをメモリにすべて書き込んだ時にｗｒｉｔｅ＿ｄｏｎｅ信号をアクティブし、そのタイミングで現時点のアクセスモード信号と指定された回転角、鏡像から、アクセスモード信号を更新し、この新しいアクセスモード信号に従って、読み出しアドレスを作り出し、メモリから１画素づつ画素データを読み出し、読み出しによりメモリに空きができると、ｎｏｔ＿ｆｕｌｌ信号をアクティブにし、この信号がアクティブの時に、同じアクセスモード信号に従って、読み出しアドレスと同じ順番に書き込みアドレスを作り出し、読み出されたメモリの位置に、順番に次の矩形画像データの画素データを書き込んでいくことを特徴とする。
【００１４】
すなわち、本発明の技術内容は以下の構成を備えることにより前記課題を解決できた。
【００１５】
（１）１画素当りＮビット（Ｎは自然数）のデータを有する矩形画像をＭビット（ＭはＮ以上の自然数）単位にアクセス可能なメモリに１画素づつ順次書き込み、書き込まれた順と異なる順番にメモリから１画素づつ読み出すことにより、９０度、１８０度、２７０度回転された画像やそれらの鏡像を得る画像回転処理回路において、前記メモリは書き込みと読み出しが独立にアクセス可能であり、回転角、鏡像を指定する手段と、前記メモリへのアクセスの順番を決定するアクセスモードを生成する手段と、前記メモリへのライトアクセスとリードアクセスから前記メモリに空きがあることを示す信号（ｎｏｔ＿ｆｕｌｌ信号）を生成する手段と、前記ｎｏｔ＿ｆｕｌｌ信号がアクティブである期間に前記アクセスモードに従って、１画素づつ前記メモリに書き込む手段と、１つの矩形画像を前記メモリにすべて書き込んだことを示す信号（ｗｒｉｔｅ＿ｄｏｎｅ信号）を生成する手段と、前記アクセスモードを生成する手段は、前記ｗｒｉｔｅ＿ｄｏｎｅ信号により前記指定された回転角、鏡像と現在の前記アクセスモードから次のアクセスモードに更新する手段と、前記ｗｒｉｔｅ＿ｄｏｎｅ信号により前記更新されたアクセスモードに従って、１画素づつ、すべての矩形画像を前記メモリから読み出す手段と、を有することを特徴とする画像回転処理回路。
【００１６】
（２）前記メモリから読み出す手段は常に連続に行われ、そのため、前記ｎｏｔ＿ｆｕｌｌ信号を生成する手段を不要とすることを特徴とする前記（１）記載の画像回転処理回路。
【００１７】
【作用】
本発明は上記構成により、メモリから回転処理された画像データを読み出しながら、次の被処理画像データを書き込めるので、高速な回転処理が一つの回転処理回路で実現できる。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明を説明する。図１は、本発明に係る情報処理装置の一実施例の概略構成を示すブロック図である。同図において、１は矩形画像の画素データを記憶するメモリ、２と３はそれぞれ書き込み制御部と読み出し制御部である。書き込み制御部２はｗｒｉｔｅ＿ｅｎａｂｌｅ信号からメモリ１の書き込むアドレスｗｒｉｔｅ＿ａｄｄｒｅｓｓ信号をａｃｃｅｓｓ＿ｍｏｄｅ信号に従って生成し、矩形画像データをすべてメモリ１へ書き込んだ時にそのことを読み出し制御部３に知らせるｗｒｉｔｅ＿ｄｏｎｅ信号を生成する。読み出し制御部３はｒｅａｄ＿ｅｎａｂｌｅ信号からメモリ１の読み出すアドレスｒｅａｄ＿ａｄｄｒｅｓｓ信号をａｃｃｅｓｓ＿ｍｏｄｅ信号に従って生成する。さらに、読み出し制御部３は回転処理された画像データをメモリ１からすべて読み出してから、書き込み制御部２からのｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになるまでの期間、メモリ１からの読み出しの禁止を知らせるためにｒｅａｄ＿ｒｅａｄｙ信号をインアクティブにする。４は有効データカウンタであり、ｗｒｉｔｅ＿ｅｎａｂｌｅ信号とｒｅａｄ＿ｅｎａｂｌｅ信号を監視し、メモリ１に書き込まれた画素データで、まだ読み出されていないデータ数をカウントする。未読の画素データの数がメモリ１の容量未満であれば、言い換えればメモリ１に空きがあれば、ｎｏｔ＿ｆｕｌｌ信号をアクティブにする。ｎｏｔ＿ｆｕｌｌ信号がアクティブな期間は画素データのメモリ１への書き込みが可能なことを示す。５はアクセスモード生成部であり、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブとなるタイミングで、つまり新たな回転処理された画像データの読み出し開始直前で、その時点でのａｃｃｅｓｓ＿ｍｏｄｅ信号をｒｏｔａｔｅ信号に従って、更新する。
【００１９】
矩形画像データが１６×１６として説明する。メモリ１は従来例の図１３と同じ構成である。
【００２０】
図２は書き込み制御部２の構成を示すブロック図である。２１はカウンタであり、ｗｒｉｔｅ＿ｅｎａｂｌｅ信号でインクリメントし、カウント出力を０、１、２、…と変化させ、２５５に達した時に、つまり矩形画像データをすべてメモリ１へ書き込んだ時にｗｒｉｔｅ＿ｄｏｎｅ信号をアクティブにする。２３、２３’は排他的論理和回路であり、それぞれａｃｃｅｓｓ＿ｍｏｄｅ［０］、ａｃｃｅｓｓ＿ｍｏｄｅ［１］が１であると、入力されるカウンタ２１の下位４ビット、上位４ビット出力を反転する。２４はｅｘｃｈａｎｇｅｒであり、ａｃｃｅｓｓ＿ｍｏｄｅ［２］が１であると、排他的論理和回路２３と２３’からの出力の上位と下位を入れ替える。排他的論理和回路２３、２３’とｅｘｃｈａｎｇｅｒ２４によりａｃｃｅｓｓ＿ｍｏｄｅ信号に従って、生成される書き込みアドレスの順番が変化する。
【００２１】
図３は読み出し制御部３の構成を示すブロック図である。３１はカウンタであり、ｒｅａｄ＿ｅｎａｂｌｅ信号でインクリメントし、カウント出力を０、１、２、…と変化させ、２５５に達した時に、つまり矩形画像データをすべてメモリ１から読み出した時に内部信号であるｒｅａｄ＿ｄｏｎｅ信号をアクティブにする。３２はＲＳフリップフロップ（ＲＳ−ＦＦ）であり、ｒｅａｄ＿ｄｏｎｅ信号のアクティブでリセット、ｗｒｉｔｅ＿ｄｏｎｅ信号でセットされる。従って、ＲＳ−ＦＦ３２の出力であるｒｅａｄ＿ｒｅａｄｙ信号はｒｅａｄ＿ｄｏｎｅ信号のアクティブからｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになるまでの期間だけインアクティブとなる。矩形画像データがメモリ１へすべて書き込まれた後でないと、矩形画像データの読み出し開始ができない。ｒｅａｄ＿ｒｅａｄｙ信号は読み出しができない期間、インアクティブとなるので、ｒｅａｄ＿ｒｅａｄｙ信号がアクティブの時にだけメモリ１から読み出すことで誤ったデータの読み出しを防ぐ。３３、３３’は排他的論理和回路であり、それぞれａｃｃｅｓｓ＿ｍｏｄｅ［０］、ａｃｃｅｓｓ＿ｍｏｄｅ［１］が１であると、入力されるカウンタ３１の下位４ビット、上位４ビット出力を反転する。３４はｅｘｃｈａｎｇｅｒであり、ａｃｃｅｓｓ＿ｍｏｄｅ［２］が１であると、排他的論理和回路３３と３３’からの出力の上位と下位を入れ替える。排他的論理和回路３３、３３’とｅｘｃｈａｎｇｅｒ３４によりａｃｃｅｓｓ＿ｍｏｄｅ信号に従って、生成される読み出しアドレスの順番が変化する。また、ａｃｃｅｓｓ＿ｍｏｄｅ信号は書き込み制御部２と読み出し制御部３に共通に入力されているので、生成される書き込みアドレスと読み出しアドレスの順番は完全に一致する。
【００２２】
本発明における書き込み制御部２と読み出し制御部３のメモリ１へのアドレスの生成方法が従来例で説明した読み出し制御部３のそれと非常によく似ている。しかし、本質的に異なるのは、従来例ではｒｏｔａｔｅ信号、つまり回転、鏡像の指定により、生成されるアドレスの順番が決定されるのに対し、本発明ではａｃｃｅｓｓ＿ｍｏｄｅ信号により生成されるアドレスの順番が決定される。後で詳しく説明するが、ａｃｃｅｓｓ＿ｍｏｄｅ信号の値は回転、鏡像の指定（ｒｏｔａｔｅ信号）により一意的に決まるものではない。
【００２３】
図４は有効データカウンタ４の構成を示すブロック図である。４１はカウンタであり、ｒｅｓｅｔ信号によりクリアされ、初期状態ではカウント出力は０である。ｗｒｉｔｅ＿ｅｎａｂｌｅ信号のみがアクティブの時、つまり画素データの書き込みがあり、かつ読み出しがない場合にカウント出力はインクリメントされ、ｒｅａｄ＿ｅｎａｂｌｅ信号のみがアクティブの時、つまり画素データの読み出しがあり、かつ書き込みがない場合にカウント出力はデクリメントされ、それ以外は現在のカウント出力を保持する。このカウント出力はメモリ１に書き込まれた画素データで、まだ読み出されていないデータ数を表す。４２は比較器であり、カウンタ４１のカウント出力と処理の対象となる矩形画像データの総画素数（ここでは、１６×１６なので、２５６）とを比較し、カウント出力が総画素数未満であれば、ｎｏｔ＿ｆｕｌｌ信号をアクティブにする。したがって、ｎｏｔ＿ｆｕｌｌ信号のアクティブは少なくとも１画素データを書き込める空きがメモリ１に存在することを示す。従来例ではｗｒｉｔｅ＿ｒｅａｄｙ信号を参照して、前に書き込まれた矩形画像データがすべて読み出された後に、次の矩形画像データの書き込みを開始するのに対して、本発明ではｎｏｔ＿ｆｕｌｌ信号を参照して、前に書き込まれた矩形画像データが読み出し中でも、メモリ１に空きが発生すれば、そこへ次の矩形画像データを書き込む。
【００２４】
図５はアクセスモード生成部５の構成を示すブロック図である。５１はラッチ回路であり、現在のａｃｃｅｓｓ＿ｍｏｄｅ信号を保持する。５２は組み合わせ回路であり、現在のａｃｃｅｓｓ＿ｍｏｄｅ信号とｒｏｔａｔｅ信号を入力として、次のａｃｃｅｓｓ＿ｍｏｄｅ信号を出力する。この次のａｃｃｅｓｓ＿ｍｏｄｅ信号はｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブの時にラッチ回路５１でラッチ、更新される。組み合わせ回路５２はｒｏｔａｔｅ信号の値と回転処理内容の対応、およびａｃｃｅｓｓ＿ｍｏｄｅ信号の値と生成されるアドレスの順番の対応で決まる。ここでは、ｒｏｔａｔｅ信号の値と回転処理内容の対応を前に説明した従来例と同じ（図１７）とし、ａｃｃｅｓｓ＿ｍｏｄｅ信号の値と生成されるアドレスの順番の対応は図２や図３の構成にすると、組み合わせ回路５２は図５の下に示す式で表せる。なお、式中の＊、＋、ＸＯＲはそれぞれ論理積、論理和、排他的論理和を表す。また、信号名の後の’はその信号の反転を表す。
【００２５】
矩形画像データの回転された画像を得る動作について説明する。初期状態では、ｎｏｔ＿ｆｕｌｌ信号はアクティブで、ｒｅａｄ＿ｒｅａｄｙ信号はインアクティブである。つまり、メモリ１への書き込みが許可、メモリ１からの読み出しが禁止状態である。また、ａｃｃｅｓｓ＿ｍｏｄｅ信号は０ｂ０００とする。ただし、０ｂ０００であることは必須でなく、任意の値でかまわない。さらに、ｒｏｔａｔｅ信号の値は従来例で、すべての画像データをメモリ１から読み出した後でないと、次の画像データが開始できない原因となるモードである０ｂ１１１（反時計回りの９０度回転した後、左右方向に鏡像）として説明する。図６（ａ）に示す画像データを例にすると、この画像データの左上から右下へ向かって、左右方向優先で１画素づつ、メモリ１に書き込む。書き込み制御部２では、カウンタ２１の出力値ｃｎｔ［７：０］を０ｘ００、０ｘ０１、…、０ｘｆｅ、０ｘｆｆと変化させる。ａｃｃｅｓｓ＿ｍｏｄｅ＝０ｂ０００なので、ｃｎｔ［７：０］がそのまま、ｗｒｉｔｅ＿ａｄｄｒｅｓｓ信号として出力されるので、メモリ１には、同図（ａ）のような位置に各画素が書き込まれる。カウンタ２１の出力値ｃｎｔ［７：０］が０ｘｆｆで右下の最後の書き込まれた時点で、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブとなり、同時に有効データカウンタ４のカウンタ４１のカウント出力が２５６となり、ｎｏｔ＿ｆｕｌｌ信号はインアクティブに、ｒｅａｄ＿ｒｅａｄｙ信号はアクティブに変化する。従って、メモリ１への書き込みが禁止、メモリ１からの読み出しが許可状態になる。
【００２６】
さらに、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブとなることで、アクセスモード生成部５は現在のａｃｃｅｓｓ＿ｍｏｄｅ信号０ｂ０００とｒｏｔａｔｅ信号０ｂ１１１との排他的論理和である０ｂ１１１へａｃｃｅｓｓ＿ｍｏｄｅ信号を更新する。
【００２７】
読み出し制御部３では、メモリ１からの読み出しで、カウンタ３１の出力値ｃｎｔ［７：０］を０ｘ００、０ｘ０１、…、０ｘ０ｅ、０ｘ０ｆ、０ｘ１０、０ｘ１１、…、０ｘ１ｅ、０ｘ１ｆ、…、０ｘｅ０、０ｘｅ１、…、０ｘｅｅ、０ｘｅｆ、０ｘｆ０、０ｘｆ１、…、０ｘｆｅ、０ｘｆｆと変化させる。排他的論理和回路３３、３３’では、ａｃｃｅｓｓ＿ｍｏｄｅ［０］＝１、ａｃｃｅｓｓ＿ｍｏｄｅ［１］＝１なので、ｃｎｔ［３：０］とｃｎｔ［７：４］は反転され、出力される。ｅｘｃｈａｎｇｅｒ３４では、ａｃｃｅｓｓ＿ｍｏｄｅ［２］＝１なので、その出力の上位４ビットと下位４ビットを入れ替えて、ｒｅａｄ＿ａｄｄｒｅｓｓ信号として出力する。従って、カウンタ３１の出力から生成されるｒｅａｄ＿ａｄｄｒｅｓｓ信号は０ｘｆｆ、０ｘｅｆ、…、０ｘ１ｆ、０ｘ０ｆ、０ｘｆｅ、０ｘｅｅ、…、０ｘ１ｅ、０ｘ０ｅ、…、０ｘｆ１、０ｘｅ１、…、０ｘ１１、０ｘ０１、０ｘｆ０、０ｘｅ０、…、０ｘ１０、０ｘ００と変化する。このアドレスの順番でメモリ１から読み出された画素データを、左上から右下へ向かって、左右方向優先の順番であるとみなし、並べなおしたものが図６（ｂ）の図であり、反時計回りに９０度回転した後の左右方向の鏡像画像データとなる。
【００２８】
まず、メモリ１から最初の画素データをアドレス０ｘｆｆから読み出すと、有効データカウンタ４のカウンタ４１のカウント出力が２５５となり、ｎｏｔ＿ｆｕｌｌ信号はアクティブに変化する。この時点で次の矩形画像データの最初の画素データの書き込みが可能となる。書き込み制御部２と読み出し制御部３のアドレス生成は同じａｃｃｅｓｓ＿ｍｏｄｅ信号に従い、同じ方法で行われるので、次の矩形画像データの最初の画素データの書き込みは、今読み出されたアドレス０ｘｆｆに対して行われる。この読み出し、書き込みを繰り返すことにより、次の矩形画像データの書き込みアドレスは、読み出しアドレスを追いかける形となる。図７はこの様子を示す。同図（Ａ）は前の画像データの先頭の４行分が読み出され、次の画像データがその空いた所に、左上の画素データから順次、書き込まれた様子を示す。ハッチングがかかった部分が次の画像の画素データである。同図（Ｂ）は前の画像データの先頭の８行分が読み出され、その空いた所に、次の画像の画素データが書き込まれた様子を示す。同図（Ｃ）は前の画像データの先頭の１２行分が読み出され、その空いた所に、次の画像の画素データが書き込まれた様子を示す。同図（Ｄ）は前の画像データがすべて読み出され、次の画像の画素データがすべて書き込まれた様子を示す。
【００２９】
前の画像データの最後の画素データがアドレス０ｘ００から読み出されると、ｒｅａｄ＿ｒｅａｄｙ信号はインアクティブに変化し、読み出し禁止状態になり、次の画像データの最後の画素データが同アドレスに書き込まれると、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブとなり、ｒｅａｄ＿ｒｅａｄｙ信号は再びアクティブに変化し、読み出し許可状態になる。
【００３０】
もし、次の画像データに対するｒｏｔａｔｅ信号が前の画像データのそれと同じである０ｂ１１１であれば、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになった時点でアクセスモード生成部５はａｃｃｅｓｓ＿ｍｏｄｅ信号を０ｂ０００に更新する。この場合、読み出し制御部３で生成されるｒｅａｄ＿ａｄｄｒｅｓｓ信号は０ｘ００、０ｘ０１、…、０ｘｆｅ、０ｘｆｆの順番なので、図７（Ｄ）と同じ回転処理された画像データが得られ、それはまさに求める反時計回りの９０度回転した後、左右方向に鏡像した画像である。
【００３１】
次の画像データに対するｒｏｔａｔｅ信号が前の画像データのそれと異なる場合を考える。例えば、次の画像データに対するｒｏｔａｔｅ信号が反時計回りに９０度回転を表す０ｂ１１０とする。ｒｏｔａｔｅ信号は、ｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになった時点でａｃｃｅｓｓ＿ｍｏｄｅ信号に反映するので、ｒｏｔａｔｅ信号の更新は前の画像データに対するｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになった後から、自身の画像データに対するｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになる前までに行う。もし、次の画像データに対するｒｏｔａｔｅ信号が０ｂ１１０であれば、次の画像データに対するｗｒｉｔｅ＿ｄｏｎｅ信号がアクティブになった時点でａｃｃｅｓｓ＿ｍｏｄｅ信号は０ｂ００１に更新される。この場合、読み出し制御部３で生成されるｒｅａｄ＿ａｄｄｒｅｓｓ信号は０ｘ０ｆ、０ｘ０ｅ、…、０ｘ０１、０ｘ００、０ｘ１ｆ、０ｘ１ｅ、…、０ｘ１１、０ｘ１０、…、０ｘｅｆ、０ｘｅｅ、…、０ｘｅ１、０ｘｅ０、０ｘｆｆ、０ｘｆｅ、…、０ｘｆ１、０ｘｆ０と変化する。このアドレスの順番で図７（Ｄ）のようにメモリ１に格納された画素データを読み出し、左上から右下へ向かって、左右方向優先の順番であるとみなし、並べなおしたものが図８であり、それは求める反時計回りに９０度回転した画像データであることがわかる。
【００３２】
本発明において、重要な役割を担うａｃｃｅｓｓ＿ｍｏｄｅ信号はアクセスモード生成部５で生成されるが、その生成方法の一例を図５に示した。実際のａｃｃｅｓｓ＿ｍｏｄｅ信号の生成は、ａｃｃｅｓｓ＿ｍｏｄｅ信号と生成されるメモリ１のアドレスの順番との対応、及びｒｏｔａｔｅ信号と回転、鏡像処理との対応から決定される。例えば、書き込み制御部２と読み出し制御部３のアドレスの生成の仕方を、これまでの説明と異なる、図１０のごとくにした場合、ｒｏｔａｔｅ信号と回転、鏡像処理との対応をこれまでの説明と同じであれば、アクセスモード生成部５の組み合わせ回路５２を同図したの式のようにすれば良い。これまでの説明と同様に考えると、生成されるａｃｃｅｓｓ＿ｍｏｄｅ信号は異なるが、得られる処理された画像データは全く同じものになることがわかる。
【００３３】
図１１は本発明に係る情報処理装置の第二の実施例の概略構成を示すブロック図である。もし、本発明の画像回転処理回路の読み出し側が、高速であり、ｒｅａｄ＿ｒｅｄａｙ信号がアクティブになれば必ず連続的にメモリ１から読み出しが可能な場合、一つの矩形画像データがすべて書き込まれた次のクロックにはそのいずれかの画素データが読み出され、メモリ１に空きが生じることが保証される。このような場合には、本発明の画像回転処理回路の書き込み側はｎｏｔ＿ｆｕｌｌ信号を参照することなく、次の矩形画像データの書き込みを開始でき、ｎｏｔ＿ｆｕｌｌ信号は不要となる。従って、画像回転処理回路の読み出し側が高速である場合、同図のごとく、回転処理回路は簡単化できる。
【００３４】
【発明の効果】
以上説明したように本発明は、前にメモリに書き込まれた画像データの処理された画像を読み出しながら、読み出されたメモリのアドレスの順に、次の画像データを書き込むことが可能であり、図９に示すように複数の矩形画像データをそれらの回転、鏡像の指定を独立に設定しながら連続に処理できる。
【図面の簡単な説明】
【図１】本発明に係る回転処理回路の一実施例の概略構成を示すブロック図である。
【図２】図１の書き込み制御部の概略構成を示すブロック図である。
【図３】図１の読み出し制御部の概略構成を示すブロック図である。
【図４】図１の有効データカウンタの概略構成を示すブロック図である。
【図５】図１のアクセスモード生成部の概略構成を示すブロック図である。
【図６】（ａ），（ｂ）　図１における回転処理を説明するための図である。
【図７】図１における読み出しと書き込みの並行動作を説明するための図である。
【図８】図１における二つ目の矩形画像データの回転処理を説明するための図である。
【図９】図１における回転処理の効率を説明するための図である。
【図１０】アクセスモード信号の生成方法を説明するための図である。
【図１１】本発明に係る回転処理回路の第２の実施例の概略構成を示すブロック図である。
【図１２】従来の回転処理回路の概略構成を示すブロック図である。
【図１３】図１２のメモリ構成を説明するための図である。
【図１４】図１２の書き込み制御部の概略構成を示すブロック図である。
【図１５】図１２の読み出し制御部の概略構成を示すブロック図である。
【図１６】（ａ），（ｂ）　図１２における回転処理を説明するための図である。
【図１７】図１２における回転、鏡像のモードを説明するための図である。
【図１８】従来例における高速化された回転処理回路の構成を説明するための図である。
【図１９】従来例における高速化された回転処理回路の回転処理の効率を説明するための図である。
【符号の説明】
１　メモリ
２　書き込み制御部
３　読み出し制御部
４　有効データカウンタ
５　アクセスモード生成部
２１　カウンタ
２２　ＲＳフリップフロップ
２３，２３’　排他的論理和
２４　ｅｘｃｈａｎｇｅｒ
３１　カウンタ
３２　ＲＳフリップフロップ
３３，３３’　排他的論理和
３４　ｅｘｃｈａｎｇｅｒ
４１　カウンタ
４２　比較器
５１　ラッチ回路
５２　組み合わせ回路
【図１】
2004040381.tif 000003
【図２】
2004040381.tif 000004
【図３】
2004040381.tif 000005
【図４】
2004040381.tif 000006
【図５】
2004040381.tif 000007
【図６】
2004040381.tif 000008
【図７】
2004040381.tif 000009
【図８】
2004040381.tif 000010
【図９】
2004040381.tif 000011
【図１０】
2004040381.tif 000012
【図１１】
2004040381.tif 000013
【図１２】
2004040381.tif 000014
【図１３】
2004040381.tif 000015
【図１４】
2004040381.tif 000016
【図１５】
2004040381.tif 000017
【図１６】
2004040381.tif 000018
【図１７】
2004040381.tif 000019
【図１８】
2004040381.tif 000020
【図１９】
2004040381.tif 000021