(57)【要約】      （修正有）【課題】ダミーブロック用の画像メモリを必要とせず、回転処理用のワークメモリをさらに節約できる画像回転処理を実現する。【解決手段】画像データを格納する画像メモリと、前記画像を正方形の各画像領域に分割したブロックごとに画像を回転させる回転処理部と、少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストと、未回転処理のブロックの画素データを退避メモリへ退避させ、回転処理後に配置すべきブロックの画素データを回転処理して退避させたブロックの画像メモリ領域に格納し、同様に逐次画像メモリ領域へ格納する処理を行い、未処理のブロックがなくなるまで前記手順に従って回転処理を逐次実行する制御部とを備えることを特徴とする画像回転機能付画像処理装置。【選択図】図１
2006048355.tif 000002
【特許請求の範囲】
【請求項１】
画像を表す画素データを格納する画像メモリと、
前記画像を正方形の各画像領域に分割したブロックごとに当該ブロックの画素データを再配置することにより画像を回転させる回転処理部と、
回転処理のために少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、
画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストと、
未回転処理のブロックを探してその画素データを退避メモリへ退避させ、退避させたブロックの画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求めてそのブロックの画素データを回転処理して前記退避後の画像領域に対応する画像メモリ領域へ格納し、さらに回転処理した前記ブロックが回転処理前に配置されていた画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求めてそのブロックの画素データを回転処理部で回転処理して前記画像領域に対応する画像メモリ領域へ格納する処理を逐次行い、回転処理後に配置すべきブロックの画素データが退避メモリ内にある場合はその画素データを回転処理して画像メモリへ書き込んだ後に次の未処理のブロックを探して退避メモリへ退避させ、未処理のブロックがなくなるまで前記手順に従って回転処理を逐次実行する制御部と
を備えることを特徴とする画像回転機能付画像処理装置。
【請求項２】
前記ブロック対応リストに代えて、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を決定するブロック対応決定部を備える請求項１記載の画像処理装置。
【請求項３】
画像を表す画素データを格納する画像メモリと、
前記画像を正方形の各画像領域に分割したブロックごとに当該ブロックの画素データを再配置することにより画像を回転させる回転処理部と、
回転処理のために少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、
画像の回転角度と縦横サイズとに基づき、未回転処理のブロックを先頭にして画素データの退避メモリへの退避処理、画素データの回転並びに他の画像領域と対応する画像メモリ領域への移動処理、画素データの回転並びに回転前と同一の画像領域への書込み処理を含む処理内容と当該処理の対象ブロックとを一連の処理順として定めた１以上の処理群からなるブロック処理順リストと、
前記ブロック処理順リストの処理順に従い未回転処理のブロックの画素データを退避メモリへ退避させ、退避させたブロックの画像領域に対応する画像メモリ領域へ配置すべきブロックの画素データを回転処理部で回転処理して格納する処理、あるいは回転処理した前記ブロックの画像領域に回転処理後に配置すべきブロックの画素データを回転処理部で回転処理して前記画像領域へ書き込む処理をブロック処理順リストの処理順に基づいて行い、未処理のブロックがなくなるまでこれらの処理を逐次実行する制御部と
を備えることを特徴とする画像回転機能付画像処理装置。
【請求項４】
（並列処理を分離して従属項にしました）
前記回転処理部が、互いに異なるブロックの画素データを並列的に回転処理できるように構成され、
前記退避メモリが、並列的な回転処理のために少なくとも２ブロック分の画素データを一時的に記憶できるように構成され、
前記制御部が、互いに異なる処理群を並列的に処理するように構成されてなる請求項３記載の画像処理装置。
【請求項５】
前記制御部が、処理群に含まれる処理ブロック数の多い順に各処理群を選択して処理する請求項４記載の画像回転装置。
【請求項６】
画像の回転角度と縦横サイズと回転前後のブロック配置とに基づき、前記ブロック処理順リストを作成する処理順決定部を備える請求項３または４記載の画像処理装置。
【請求項７】
前記制御部が、回転処理前と回転処理後で同じ画像領域に配置されるブロックについて、退避メモリへの画素データの退避を行わない請求項１、３または４記載の画像処理装置。
【請求項８】
（最終製品形態の請求項を追加しました。）
請求項１または３記載の画像処理装置を備えてなるデジタル複合機。
【請求項９】
画像を正方形の各画像領域からなるブロックに分割し、
分割したブロックのうちまだ回転処理されていないブロックを探してその画素データを退避メモリへ退避させ、
画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストを参照して、退避させたブロックの画像領域に回転処理後に配置するべきブロックを求め、
ブロック単位で前記画素データを回転処理する回転処理部を用いて、求めたブロックの画素データを回転処理した後に前記退避した画像領域に対応する画像メモリ領域に格納し、
回転処理した前記ブロックが回転処理前に配置されていた画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求め、
求めたブロックの画素データを回転処理部で回転処理して前記画像領域に対応する画像メモリ領域へ格納する処理を逐次行い、
回転処理後に配置すべきブロックの画素データが退避メモリ内にある場合はその画素データを回転処理して画像メモリへ書き込んだ後に次の未処理のブロックを探して退避メモリへ退避させ、
未処理のブロックがなくなるまで前記処理を逐次実行する工程を備える画像回転処理順の制御方法。
【請求項１０】
画像を正方形の各画像領域からなるブロックに分割し、
画像の回転角度と縦横サイズとに基づき、未回転処理のブロックを先頭にして画素データの退避メモリへの退避処理、画素データの回転並びに他の画像領域と対応する画像メモリ領域への移動処理、画素データの回転並びに回転前と同一の画像領域への書込み処理を含む処理内容と当該処理の対象ブロックとを一連の処理順として定めた１以上の処理群からなるブロック処理順リストを参照し、
ブロック処理順リストの処理順に従ってブロックの画素データを退避メモリへ退避させ、
退避させたブロックの画像領域に対応する画像メモリ領域へ配置すべきブロックの画素データを回転処理部で回転処理して配置し、
回転処理した後の画像領域に対応する画像メモリ領域へ配置すべきブロックの画素データを回転処理部で回転処理して配置し、
未処理のブロックがなくなるまでこれらの処理を逐次実行する工程を備える画像回転処理順の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置および画像回転処理順の制御方法に関し、より詳細には、画像領域に分割したブロックごとに当該ブロックの画素データを回転処理して画像を回転させる画像処理装置およびその画像回転処理順の制御方法に関する。
【背景技術】
【０００２】
デジタル画像処理を行うイメージスキャナやデジタル複合機、デジタルカメラなどの画像処理装置では、画像をデジタル化した画素データを画像メモリに格納し、格納された画素データをプリンタで印字したり、ＬＣＤなどの表示装置で表示したりすることにより画像を出力する。出力する画像は装置の使用条件や使用者の要求に応じて各種の画像処理を行うが、その一つに、画像回転処理がある。特に、頁の縦横を換える９０度あるいは−９０度回転がしばしば用いられる。
【０００３】
画像回転を行うためには、画素の縦と横の配列を入れ替える必要がある。この作業のために読み出しと書き込みに２ページ分の画像メモリが必要になる。しかし、画像メモリは高価であるため、より少ない容量の画像メモリで回転処理を行える方法が望まれている。その一手法として、回転させる画像をブロックに分割し、ブロック単位で処理を行う方法が知られている（例えば、特許文献１，２参照）。
【特許文献１】特開２００３−１１５９９３号公報
【特許文献２】特開平３−３７７７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これらの従来技術によれば、２ページ分よりも少ない画像メモリによって画像回転処理が実現できるが、正方形でない画像を回転させる場合は、画像のページ全体が正方形になるようにダミーブロックを設けて回転処理を行っており、ダミーブロック分だけ余分に画像メモリを用意する必要がある。
この発明が解決しようとする課題は、ダミーブロック用の画像メモリを必要とせず、回転処理用のワークメモリをさらに節約できる画像回転処理の実現である。
【課題を解決するための手段】
【０００５】
この発明は、画像を表す画素データを格納する画像メモリと、前記画像を正方形の各画像領域に分割したブロックごとに当該ブロックの画素データを再配置することにより画像を回転させる回転処理部と、回転処理のために少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストと、未回転処理のブロックを探してその画素データを退避メモリへ退避させ、退避させたブロックの画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求めてそのブロックの画素データを回転処理して前記退避後の画像領域に対応する画像メモリ領域へ格納し、さらに回転処理した前記ブロックが回転処理前に配置されていた画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求めてそのブロックの画素データを回転処理部で回転処理して前記画像領域に対応する画像メモリ領域へ格納する処理を逐次行い、回転処理後に配置すべきブロックの画素データが退避メモリ内にある場合はその画素データを回転処理して画像メモリへ書き込んだ後に次の未処理のブロックを探して退避メモリへ退避させ、未処理のブロックがなくなるまで前記手順に従って回転処理を逐次実行する制御部とを備えることを特徴とする画像回転機能付画像処理装置を提供する。
【発明の効果】
【０００６】
この発明の画像処理装置は、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストを参照しながら各ブロックの画素データを逐次回転処理して画像全体を回転させるので、正方形でない画像についても、ダミーブロックを必要とせずにより少ない画像メモリで回転処理を実現することができる。
【発明を実施するための最良の形態】
【０００７】
この発明の画像処理装置は、画像を表す画素データを格納する画像メモリと、前記画像を正方形の各画像領域に分割したブロックごとに当該ブロックの画素データを再配置することにより画像を回転させる回転処理部と、回転処理のために少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストと、未回転処理のブロックを探してその画素データを退避メモリへ退避させ、退避させたブロックの画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求めてそのブロックの画素データを回転処理して前記退避後の画像領域に対応する画像メモリ領域へ格納し、さらに回転処理した前記ブロックが回転処理前に配置されていた画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求めてそのブロックの画素データを回転処理部で回転処理して前記画像領域に対応する画像メモリ領域へ格納する処理を逐次行い、回転処理後に配置すべきブロックの画素データが退避メモリ内にある場合はその画素データを回転処理して画像メモリへ書き込んだ後に次の未処理のブロックを探して退避メモリへ退避させ、未処理のブロックがなくなるまで前記手順に従って回転処理を逐次実行する制御部とを備えることを特徴とする。
【０００８】
ここで、画像の形状は、任意の矩形であればよく、縦横のサイズと縦横比は特に限定されないが、予めブロック対応リストに用意されたブロック構成に対応したサイズでなければならない。ブロックの大きさは、例えばＪＰＥＧ圧縮された画像を扱う場合にはＪＰＥＧの仕様に基づく８×８画素であってもよいが、これに限定されず、例えば、画像メモリのバースト転送の単位に基づいて決めてもよい。画素データを処理しやすい任意の大きさに決めればよい。ブロックサイズが小さい程退避メモリの容量は小さくすることができ、また、ページをブロックに分割する際、縦横サイズの端数による余白の画素数を少なくできるが、処理すべきブロックの数が多くなるので、処理手順の管理が複雑になり、処理に時間を要するので、これらの条件を考慮して適宜決定すればよい。
画素データの形式や画素密度、階調表現のビット数は特に限定されない。
画像の回転角度は主として９０度かあるいは−９０度であるが、これに限定されず、例えば１８０度であってもよい。
退避メモリと画像メモリとは異なるメモリ素子上に実装されてもよいが、同一メモリ素子上の異なる領域に配置されてもよい。
ブロック対応リストは、各画素データのブロックへの割当てに関する情報を含んでいてもよい。
【０００９】
また、この発明の画像処理装置は、前記ブロック対応リストに代えて、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を決定するブロック対応決定部を備えていてもよい。このようにすれば、予めブロック対応リストに用意されているサイズ以外の任意のサイズの矩形画像を回転処理することができる。
【００１０】
あるいはまた、この発明の画像処理装置は、画像を表す画素データを格納する画像メモリと、前記画像を正方形の各画像領域に分割したブロックごとに当該ブロックの画素データを再配置することにより画像を回転させる回転処理部と、回転処理のために少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、画像の回転角度と縦横サイズとに基づき、未回転処理のブロックを先頭にして画素データの退避メモリへの退避処理、画素データの回転並びに他の画像領域と対応する画像メモリ領域への移動処理、画素データの回転並びに回転前と同一の画像領域への書込み処理を含む処理内容と当該処理の対象ブロックとを一連の処理順として定めた１以上の処理群からなるブロック処理順リストと、前記ブロック処理順リストの処理順に従い未回転処理のブロックの画素データを退避メモリへ退避させ、退避させたブロックの画像領域に対応する画像メモリ領域へ配置すべきブロックの画素データを回転処理部で回転処理して格納する処理、あるいは回転処理した前記ブロックの画像領域に回転処理後に配置すべきブロックの画素データを回転処理部で回転処理して前記画像領域へ書き込む処理をブロック処理順リストの処理順に基づいて行い、未処理のブロックがなくなるまでこれらの処理を逐次実行する制御部とを備える。
【００１１】
このようにすれば、画素データの退避メモリへの退避処理、画素データの回転並びに他の画像領域と対応する画像メモリ領域への移動処理、画素データの回転並びに回転前と同一の画像領域への書込み処理を含む処理内容と当該処理の対象ブロックとを一連の処理順として定めた１以上の処理群からなるブロック処理順リストを参照しながら各ブロックの画素データを逐次回転処理して画像全体を回転させるので、正方形でない画像についても、ダミーブロックを必要とせずにより少ない画像メモリで回転処理を実現することができる。
【００１２】
ここで、画像の形状は、任意の矩形であればよく、縦横のサイズと縦横比は特に限定されないが、予めブロック処理手順リストに用意されたサイズでなければならない。ブロックの大きさは、例えばＪＰＥＧ圧縮された画像を扱う場合にはＪＰＥＧの仕様に基づく８×８画素であってもよいが、これに限定されず、例えば、画像メモリのバースト転送の単位に基づいて決めてもよい。画素データを処理しやすい任意の大きさに決めればよい。ブロックサイズが小さい程退避メモリの容量は小さくすることができ、また、ページをブロックに分割する際、縦横サイズの端数による余白の画素数を少なくできるが、処理すべきブロックの数が多くなるので、処理手順の管理が複雑になり、処理に時間を要する。
画素データの形式や画素密度、階調表現のビット数は特に限定されない。
画像の回転角度は主として９０度かあるいは−９０度であるが、これに限定されず、例えば１８０度であってもよい。
退避メモリと画像メモリとは異なるメモリ素子上に実装されてもよいが、同一メモリ素子上の異なる領域に配置されてもよい。
ブロック処理順リストは、各画素データのブロックへの割当てに関する情報を含んでいてもよい。
【００１３】
また、前記回転処理部が、互いに異なるブロックの画素データを並列的に回転処理できるように構成され、前記退避メモリが、並列的な回転処理のために少なくとも２ブロック分の画素データを一時的に記憶できるように構成され、前記制御部が、互いに異なる処理群を並列的に処理するように構成されてなっていてもよい。
このようにすれば、互いに異なるブロックを並列的に回転処理できるので、全てを直列的に逐次処理するよりも短い時間で画像回転を行うことができる。
【００１４】
さらにまた、前記制御部が、処理群に含まれる処理ブロック数の多い順に各処理群を選択して処理するようにしてもよい。
このようにすれば、一連の回転処理のうち後の処理ほど処理時間が短いので、画像回転終了時の並列処理間の終了時刻の差を最小化することができ、並列処理による処理時間短縮効果を得ることができる。
【００１５】
画像の回転角度と縦横サイズと回転前後のブロック配置とに基づき、前記ブロック処理順リストを作成する処理順決定部を備えていてもよい。このようにすれば、予めブロック処理順リストに用意されているサイズ以外の任意のサイズの矩形画像を回転処理することができる。
また、この発明のデジタル複合機は、前述した画像処理装置を備えてなる。
【００１６】
さらに別の観点から、この発明は、画像を正方形の各画像領域からなるブロックに分割し、分割したブロックのうちまだ回転処理されていないブロックを探してその画素データを退避メモリへ退避させ、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を予め定めたブロック対応リストを参照して、退避させたブロックの画像領域に回転処理後に配置するべきブロックを求め、ブロック単位で前記画素データを回転処理する回転処理部を用いて、求めたブロックの画素データを回転処理した後に前記退避した画像領域に対応する画像メモリ領域に格納し、回転処理した前記ブロックが回転処理前に配置されていた画像領域に回転処理後に配置すべきブロックを前記ブロック対応リストから求め、求めたブロックの画素データを回転処理部で回転処理して前記画像領域に対応する画像メモリ領域へ格納する処理を逐次行い、回転処理後に配置すべきブロックの画素データが退避メモリ内にある場合はその画素データを回転処理して画像メモリへ書き込んだ後に次の未処理のブロックを探して退避メモリへ退避させ、未処理のブロックがなくなるまで前記処理を逐次実行する工程を備える画像回転処理順の制御方法を提供する。
【００１７】
さらに、この発明は、画像を正方形の各画像領域からなるブロックに分割し、画像の回転角度と縦横サイズとに基づき、未回転処理のブロックを先頭にして画素データの退避メモリへの退避処理、画素データの回転並びに他の画像領域と対応する画像メモリ領域への移動処理、画素データの回転並びに回転前と同一の画像領域への書込み処理を含む処理内容と当該処理の対象ブロックとを一連の処理順として定めた１以上の処理群からなるブロック処理順リストを参照し、ブロック処理順リストの処理順に従ってブロックの画素データを退避メモリへ退避させ、退避させたブロックの画像領域に対応する画像メモリ領域へ配置すべきブロックの画素データを回転処理部で回転処理して配置し、回転処理した後の画像領域に対応する画像メモリ領域へ配置すべきブロックの画素データを回転処理部で回転処理して配置し、未処理のブロックがなくなるまでこれらの処理を逐次実行する工程を備える画像回転処理順の制御方法を提供する。
以下、図面を用いてこの発明を詳述する。
【００１８】
（実施の形態１）
この実施の形態において、この発明の画像処理装置およびその装置を備えてなるデジタル複合機（ＭＦＰ）の構成の一例について説明する。図３は、この発明の画像処理装置を備えて画像を回転処理する装置の実施の一形態であるＭＦＰの画像データ処理回路の構成を示すブロック図である。図３において、スキャナユニット２は、原稿の画像を読込んで画素データに変換する。スキャナユニット２は、原稿を走査する機構、原稿を照射してその反射光をイメージセンサへ導く光学系、原稿画像を画素単位の電気信号に変換するイメージセンサおよびイメージセンサからの電気信号をデジタル化するＡ／Ｄ変換回路などから構成される。メインメモリ６は、読み込んだ画素データを格納するページメモリ１４および回転処理等の際のワークメモリとして使用される領域を含む。メインメモリ６は、例えばＤＲＡＭを用いて実現することができる。画像処理ＬＳＩ ４は、スキャナユニット２からの画素データの濃度や色を補正し、あるいは各種フィルタ処理等を行うＡＳＩＣである。イメージコントローラ５は、メインメモリ６内の画素データをブロック単位で回転処理してページの回転処理を行ったり、読込まれた画素データあるいは後述するホスト１３から転送されたプリントデータを印字ページ画像に対応した画素データに展開する処理を行ったりする。イメージコントローラ５は、例えば、ＤＭＡなどを含むＡＳＩＣとＡＳＩＣの処理をＣＰＵ９で制御するためのファームウェアから構成することができる。ファームウェアは後述するシステムメモリ１２内のＲＯＭからダウンロードされてメインメモリ６の一部の領域に展開されて実行されるように構成されてもよい。プリンタエンジン３は、画素データを用紙上に印字して画像を出力するもので、例えば電子写真方式のプリンタで構成することができる。
【００１９】
また、ホスト１３は、例えばパーソナルコンピュータであり、ＬＡＮ、パラレルＩ／ＦあるいはＵＳＢなどのデータ通信手段が接続されるホストＩ／Ｆ １０を介してＭＦＰ本体１と画像データを含む情報をやり取りする。ホストＩ／Ｆ １０は、例えば、通信制御用の回路と、前記回路をＣＰＵ９で制御するためのファームウェアから構成することができる。ＨＤＤ１１は、例えば汎用の磁気ディスク記憶装置から構成することができ、Ｉ／Ｏコントローラ７を介してメインメモリ６内の画像メモリと画素データのやり取りを行い、画素データを格納する。Ｉ／Ｏコントローラ７は、例えばＨＤＤ１１とデータをやり取りするためのＰＣＩコントローラから構成される。ＣＰＵ９は、例えばマイクロコンピュータの中央処理部あるいは単体のマイクロプロセッサーで構成することができる。そして、システムコントローラ８を介してＣＰＵの処理プログラム等を格納したＲＯＭやワークメモリであるＲＡＭから構成されるシステムメモリ１２をアクセスし、イメージコントローラ５の処理を制御したり、画像処理ＬＳＩ ４の処理設定、スキャナユニット２の動作制御、プリンタエンジン３の動作制御、ＨＤＤ１１の動作制御、ホスト１３との通信制御を行ったりする。システムコントローラ８は、例えば、バス制御やタイマーなどのＣＰＵ周辺回路を集積したＡＳＩＣで構成することができる。システムメモリ１２中のＲＯＭは、例えばフラッシュメモリで構成することができ、ＲＡＭは、例えばＳＲＡＭから構成される。
【００２０】
図４は、図３のイメージコントローラ５とメインメモリ６のさらに詳細な構成を示すブロック図である。イメージコントローラ５の構成は、主として機能的な構成を示し、ハードウェア資源としては、システムメモリ１２に格納されたファームウェアを含めて実現されてもよい。図４において、ブロック回転処理部２１は、ブロック単位で画素データの回転処理を行う処理部であり、複数の処理部を備えて並列的に処理を行うように構成されてもよい。図の点線は、複数の処理部を備える場合を示している。退避メモリ２２は、ブロック回転処理部２１の回転処理の際に、ブロックの画素データを退避するメモリであり、１ブロック分あるいは複数ブロック分の画素データを退避する。点線は、複数ブロックの画素データを退避する場合の構成を示す。ＤＭＡ２３は、ブロック回転処理のために画像メモリ３１の間あるいは画像メモリ３１と退避メモリ２２との間で画素データを転送するためのＤＭＡである。ブロック対応決定部２４は、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置を決定する処理部である。ブロック対応リスト２５は、画像の回転角度と縦横サイズとに基づき、各ブロックの回転処理前と回転処理後の前記画像領域への配置と対応関係を参照できるようにしたリストである。ブロック処理順決定部２６は、画像の回転角度と縦横サイズとに基づき、画素データを退避させるブロックと退避前に前記ブロックが配置されている画像領域へ回転処理された画素データを書き込むために回転処理を行うべきブロックとの処理順を決める処理部である。ブロック処理順リスト２７は、回転処理のために少なくとも1ブロック分の画素データを一時的に記憶する退避メモリと、画像の回転角度と縦横サイズとに基づき、画素データを退避させるブロックと退避前に前記ブロックが配置されている画像領域へ回転処理された画素データを書き込むために回転処理を行うべきブロックとの処理順を参照できるようにしたデータのリストである。ブロック対応リスト２５、ブロック処理順リスト２７、ブロック対応決定部２４、ブロック処理順決定部２６は、その何れか一つだけがあれば回転処理が可能である。ブロック対応リスト２５およびブロック処理順リスト２７が処理できるのは、予めそれらのリストに定義されたブロック構成を持つ画像サイズだけで、未定義のサイズを処理することはできないが、リストの参照によって処理順が決定できるので、ブロック対応決定部２４あるいはブロック処理順決定部２６で処理順を決定するよりも処理順決定が単純である。ブロック回転処理を並列的に行うには、ブロック処理順決定部２６またはブロック処理順リスト２７が必要である。
【００２１】
また、メモリコントローラ２８は、メインメモリ６との画素データのやり取りを制御する回路である。イメージコントローラ５において、読込まれた画素データあるいは後述するホスト１３から転送されたプリントデータを印字ページ画像を表す画素データに展開する処理は、他の処理部２９に示している。また、前記メインメモリ６以外に、スキャナユニット２やプリンタエンジン３などとの間で画素データをやり取りするためのインタフェースは、各種インタフェース３０で示している。
【００２２】
メインメモリ６に示す退避メモリ３２は、イメージコントローラ５内の退避メモリ２２と同様の機能を持つが、これをメインメモリ６内に配置してもよいことを示している。あるいは、複数の退避メモリを使用する場合に、一部をイメージコントローラ５内に配置し、残りをメインメモリ６内に配置してもよい。画像メモリ３１は、画素データを格納する領域である。圧縮ページメモリ１４は、必須の構成ではないが、ＨＤＤ１１と同様に、何ページかの画素データを圧縮して格納する領域である。例えばＨＤＤをオプションとする構成では、ＨＤＤがない場合にメインメモリ６内に圧縮ページメモリを持つようにしてもよい。
【００２３】
（実施の形態２）
この実施の形態では、ブロック対応リストあるいはブロック対応部を用いた画像の回転処理の一例について説明する。
図２は、画像メモリ上の各画素データの配置を模式的に示した説明図である。図２で、細い線で区切られ、それぞれに番号が付された小さな矩形はひとつの画素に対応するデータを示し、４桁の番号は、各画素を識別しやすいように便宜的に付したものである。４桁の番号うち、上２桁は太い線で縦横それぞれ４×３に区切られるブロックの番号を表し、下２桁はブロック内で縦横それぞれ８×８個に並ぶ画素の番号を表す。この番号は図面上での画素識別のためであって、実際の画素データがこの番号を有する必要はない。各画素は、所定形式の画素データで表現される。例えば、最も単純な表現形式としてＲＧＢ座標軸上で１６ビット表現した数値として表すことができる。その他、異なる色座標系による表現や、ＪＰＥＧ、ＴＩＦＦ形式などの標準化された画像データの表現形式によって表現されてもよく、各画素データが所定のビット長で表現されていれれば、その表現形式は限定されない。これらの画素データは図４の画像メモリ３１上で、走査順に配置される。即ち、画像メモリ３１上で画素０１０１の画素データを格納した次のアドレスには、画素０１０２の画素データが格納される。続いて、主走査方向に並ぶ画素の順に画素０１０３〜０１０８、０２０１〜０２０８、０３０１〜０３０８の画素データが格納される。さらに、画像メモリ３１上の画素０３０８の画素データが格納された次のアドレスには、副走査方向の次のラインに並ぶ画素、即ち画素０１０９〜０１１６、０２０９〜０２１６、０３０９〜０３１６の画素データがそれらの順に格納され、また更に副走査の次のラインの画素の画素データが格納される。このように配置された画像メモリ３１上の画素データについて、太い線で区切られるブロック単位の処理を行うことは、処理対象のブロックに対応する画像メモリ３１上の不連続なアドレスに配置された各画素データについて処理を行うことを意味する。任意のブロックに含まれる画素を表す画素データのアドレスは、各画素データのビット長、１ブロックの縦横の画素数（即ち、ブロックの大きさ）がわかっており、さらに画像の幅方向の長さ（即ち、主走査方向の画素数）、画像の縦方向の長さ（即ち、副走査方向の画素数）がわかっているので、これらの値に基づいて格納アドレスを計算して求めることができる。
【００２４】
図１は、画像を横３×縦４のブロックに分割し、各ブロックを９０度回転してブロックを再配置することにより画像全体を回転させた場合の回転前後の配置とブロックごとの回転処理の順序を示す説明図である。図１（ａ）は回転前の各ブロックの配置、図１（ｂ）は回転後の各ブロックの配置を示す。図１（ａ）および（ｂ）において、回転させる画像の幅はＷ、縦の長さはＬ、正方形のブロックの一辺の長さはＳである。ブロックを識別しやすいように、各ブロックには便宜的に１から１２までの番号を付している。画像の縦横の長さがＳの倍数でない場合、縦横それぞれの端部のブロックには非画像領域が含まれる。ｆｗおよびｆｌは幅方向及び横方向の非画像領域を示している。回転処理を行う際には、圧縮ページメモリ１４やＨＤＤ１１から画像データに展開したり、スキャナユニット２から画像を読み込んだりする際に、前記非画像領域を付加した状態で画像メモリ３１上に画素データを格納し、回転後に非画像領域をのぞいた状態で圧縮ページメモリ１４やＨＤＤ１１に格納し、あるいはプリンタエンジン３へ出力すればよい。
【００２５】
図１（ｃ）は、画像回転処理の手順の一例を示す説明図である。図１（ｃ）の符号１０１は、図１（ａ）の状態のブロック配置を矢印Ａの順に並べたブロックリストであり、回転前のブロック配置のリストである。符号１０３で示す各行は、ブロック単位の回転処理と配置変更の処理順を示したリストであり、符号１０４は、各処理時に退避メモリ２２に格納されているブロックである。これらは上から処理の順に並んでいる。符号１０２は、回転後、即ち図１（ｂ）の状態のブロック配置を矢印Ｂの順に並べたブロックリストであり、回転後のブロック配置のリストである。ここで、リスト１０１、１０２は、図４に示す画像メモリ３１内の画素データの配置と対応している。前記対応の意味は、図２に示すような画像メモリ３１内のアドレス配置が、主走査の折り返し（１０１のＭ１、Ｍ２、Ｍ３、Ｍ４の区間内）ごとに１ブロック行単位で配置されているので、画像メモリ領域内では、Ｍ１に含まれる画素データの最終アドレスの次にＭ２に含まれる先頭の画素データが配置され、Ｍ２に続いてＭ３，Ｍ４に含まれる画素データがアドレスの昇順に配置されるということである。一方、回転処理後の画素データは、やはり主走査の折り返しごとに配置されるので、１０２のＭ５の区間に含まれる画素データの最終アドレスの次にＭ６に含まれる先頭の画素データが配置され、続いてＭ７に含まれる画素データが配置される。
【００２６】
図１（ｃ）は処理の手順を逐次示したものであるが、このうちブロックリスト１０１と１０２は、ブロック対応リスト２５に格納される情報である。また、符号１０３の枠内の処理順は、ブロック処理順リスト２７に格納される情報である。また、図８は、ブロック対応リストを用いて画像の回転処理を行う処理手順の一例を示すフローチャートである。
以下、フローチャートに沿って、図１（ｃ）を参照しながらこの実施の形態における画像回転処理を説明する。
【００２７】
まず、回転すべき画像の画素データを図４の画像メモリ３１へ格納する。また、画像の縦横サイズからブロック分割の個数と、ブロック分割した場合の画素の端数ｆｗ、ｆｌを求める（Ｓｔｅｐ  Ｓ１００）。次に、縦横のブロック分割の個数と画像回転角度に基づいて、図１の１０１，１０２に示すようなブロック対応リストを求める（Ｓｔｅｐ  Ｓ１０１）。あるいは、ブロック対応リスト１０１は、予め想定されたサイズに応じていくつかのリストを用意しておき、実際に回転処理を行う場合に、縦横のブロック分割の個数と画像回転角度に基づいてそれらのリストの中から当てはまるものを選択してもよい。ブロック対応リストのうち、回転前のリスト１０１は、ブロック数が昇順に並んだものである。回転後のリスト１０２は、縦横のブロック数と回転角度に基づいて決定することができる。図１（ｃ）は、ブロック数が１２、回転前の横と縦のブロック数がそれぞれ横３×縦４、回転角度が９０度（時計方向）であることから求められる。
【００２８】
次に、ルーチンは、回転未処理のブロックを検索してブロック毎の回転処理を行うループに入る（Ｓｔｅｐ  Ｓ１０２）。この実施の形態では、リスト１０１の左端から検索を行う。まず、ブロック番号１が回転処理済みかどうかを調べる（Ｓｔｅｐ  Ｓ１０３）その結果、ブロック１が未回転であるので、ルーチンはＳ１０４へ進む。リスト１０２から、この領域に回転後に配置されるべきブロック番号が１０であることがわかるので、その場回転ではないと判断し、ルーチンはＳｔｅｐ  Ｓ１０５へ進んで、ブロック番号１の画素データを図４の退避メモリ２２へ退避させる。この状態を図１（ｃ）のＳ８に示す。そして、ブロック番号１０の画素データを図４のブロック回転処理部２１で９０度回転処理してブロック番号１を退避させた後の領域へ書き込む（Ｓｔｅｐ  Ｓ１０６）。図１（ｃ）のＳ２は、回転処理されたブロック番号１０の画素データを退避前のブロック番号１の配置領域に書き込まれた状態を示す。
【００２９】
次に、回転処理したブロック番号１０へ回転後に配置されるべきブロックを求める（Ｓｔｅｐ  Ｓ１０７）。リスト１０２から、そのブロック番号は９であることが分かるので、ブロック９を９０度回転処理して回転処理にブロック番号１０が配置されていた領域へ書き込む（Ｓｔｅｐ  Ｓ１０６）。図１（ｃ）のＳ３は、この状態を示す。前述の処理と同様に、回転処理したブロック番号９の後へ、ブロック番号１２の画素データを回転処理して書き込んだのが図１（ｃ）のＳ４である。同様にして、ブロック番号３、４を回転処理後のブロックへ回転処理した画素データを書き込んだ状態が図１（ｃ）のＳ５，Ｓ６である。ブロック番号４を回転処理した後へ配置すべきブロックは、退避メモリ２２へ退避したブロック番号１の画素データである。この場合は、退避メモリ２２中に格納されているブロック番号１の画素データを回転処理して回転前にブロック番号４が配置されていた領域へ書き込む（Ｓｔｅｐ  Ｓ１０８）。この状態を示したのが図１（ｃ）のＳ７である。これで、ブロック番号１を退避させた状態で空いたブロックを順次回転させて再配置する連鎖的な処理が一巡したので、ルーチンはＳｔｅｐ  Ｓ１１０へ進み、次の回転未処理のブロックを検索して、回転処理を行うループの先頭（Ｓｔｅｐ  Ｓ１０２）へ移る。この実施形態の場合、リスト１０１の左端から２番目のブロック番号２が未回転であるので、ブロック番号２の画素データを図４の退避メモリ２２へ退避させる。この状態を図１（ｃ）のＳ８に示す。そして、退避したブロック番号２の後へ、ブロック番号７の画素データを回転処理して書き込む。続いて、ブロック番号５，１１，６，８，２の画素データを順次回転処理して、すでに回転処理された後のブロックの空領域へ書き込む。図１（ｃ）のＳ９〜１３とリスト１０２は、この状態を示す。このようにして、全てのブロックについて回転処理を終えた状態がリスト１０２である。前述のように、リスト１０２は図４に示す画像メモリ３１内の画素データの配置と対応している。
【００３０】
図５は、ブロックの数が横４×縦５の画像を９０度回転する処理の過程を、図１と同様に示す説明図である。図５（ａ）は回転前の各ブロックの配置、図５（ｂ）は回転後の各ブロックの配置を示す。図５（ｃ）は、画像回転処理の手順の一例を示す説明図であり、前述の図８のフローに従う。図５（ｃ）は、以下の手順でブロック単位の回転処理を行うことを示している。
【００３１】
まずブロック番号１を図４の退避メモリ２２へ退避し、空いた領域へブロック番号１７、１６、２０、４、５、１の順に回転処理した画素データを書き込む。次にブロック番号２の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号１３，１１，１９，８，１０，２の順に回転処理した画素データを書き込む。さらに、ブロック番号３の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号９，６，１８，１２，１５，３の順に回転処理した画素データを書き込む。最後に、ブロック番号７の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号１４，７の順に回転処理した画素データを書き込む。
【００３２】
図６は、ブロックの数が図１，５と異なり、横４×縦６の画像を９０度回転する処理過程を示す説明図である。図６（ａ）は回転前の各ブロックの配置、図６（ｂ）は回転後の各ブロックの配置を示す。図６（ｃ）は、ブロック対応リストと、途中の画像回転処理の手順の一例を示す、回転処理の手順は前述の図８のフローに従う。図６（ｃ）は、以下の手順でブロック単位の回転処理を行うことを示している。
【００３３】
まずブロック番号１を図４の退避メモリ２２へ退避し、空いた領域へブロック番号２１，１６，１１，６，１の順に回転処理した画素データを書き込む。次にブロック番号２の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号１７，７，２２，１２，２の順に回転処理した画素データを書き込む。さらに、ブロック番号３の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号１３，２３，８，１８，３の順に回転処理した画素データを書き込む。次に、ブロック番号４の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号９，１４，１９，２４，４の順に回転処理した画素データを書き込む。それから、ブロック番号５の画素データをその場で回転する。即ち、ブロック番号５の画素データを回転処理した後に、回転処理前にブロック番号５が配置されていたのと同じ領域へ書き込む。ブロック番号１０，１５，２０についても、順次その場回転処理を行う。このような手順で画像の回転を行うことができる。
【００３４】
図７は、ブロックの数が図１，５、６と異なり、横５×縦７の画像を９０度回転する処理過程を示す説明図である。図７（ａ）は回転前の各ブロックの配置、図７（ｂ）は回転後の各ブロックの配置を示す。図７（ｃ）は、ブロック対応リストと、途中の画像回転処理の手順の一例を示す、回転処理の手順は前述の図８のフローに従う。図７（ｃ）は、以下の手順でブロック単位の回転処理を行うことを示している。
【００３５】
まずブロック番号１を図４の退避メモリ２２へ退避し、空いた領域へブロック番号３１，２５，１９，１３，７，１の順に回転処理した画素データを書き込む。次にブロック番号２の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号２６，１４，２の順に回転処理した画素データを書き込む。さらに、ブロック番号３の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号２１，３の順に回転処理した画素データを書き込む。次に、ブロック番号４の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号１６，２８，４の順に回転処理した画素データを書き込む。それから、ブロック番号５の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号１１，１７，２３，２９，３５，５の順に回転処理した画素データを書き込む。続いて、ブロック番号６，１２，１８，２４，３０について、順次その場回転処理を行う。さらに、次にブロック番号８の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号３２，２０，８の順に回転処理した画素データを書き込む。さらに、ブロック番号９の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号２７，９の順に回転処理した画素データを書き込む。次に、ブロック番号１０の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号２２，３４，１０の順に回転処理した画素データを書き込む。それから、ブロック番号１５の画素データを退避メモリ２２へ退避し、空いた領域へブロック番号３３，１５の順に回転処理した画素データを書き込む。このような手順で画像の回転を行うことができる。
【００３６】
（実施の形態３）
実施の形態２では、予め定められたサイズの画像回転前後のブロック配置を示すブロック対応リストあるいは任意のサイズに対する画像回転前後のブロック配置を決定するブロック対応部を用いて画像回転処理を行う実施の一形態を示した。しかし、画像回転前後のブロック配置のリストを用いる代わりに、処理を行うブロック番号の順番と、その処理内容、即ち、画素データの退避、画素データのその場回転もしくは画素データを回転処理して別の領域へ転送する処理を識別する情報とをリストとして保持しておき、この処理順リストに基づいて画像回転処理を実行することもできる。例えば、図１の画像回転処理において、リスト１０１，１０２を保持するかわりに、１０３及び１０４で示すリストのＳ１からＳ１３とリスト１０２で処理するブロック番号の順番と、それぞれの処理内容をリストとして保持しておき、このリストに基づいて処理を行っても、画像回転を行うことができる。あるいは、予め処理順リストを準備しておくのではなく、画像回転の処理を行う場合に、これらの処理順を決定するようにしてもよい。
【００３７】
図９は、ブロック処理順リストまたはブロック処理順決定部の決定結果に基づいて回転処理を行う手順を示すフローチャートである。図９（ａ）は、ブロック処理順決定部の処理を示す。予め処理手順が定められたブロック処理順リストを用いる場合は、図９（ａ）の処理は不要である。図９（ｂ）は、ブロック処理順決定部で決定された処理手順あるいはブロック処理順リストで予め定められた処理順に基づく回転処理を示すフローチャートである。
【００３８】
まず、図９（ａ）の処理について説明する。ここで、回転処理を行う画像の例として、図１の画像を回転させるものとする。まず、回転すべき画像の画素データを図４の画像メモリ３１へ格納する。また、画像の縦横サイズからブロック分割の個数と、ブロック分割した場合の画素の端数ｆｗ、ｆｌを求める（Ｓｔｅｐ  Ｓ２００）。次に、縦横のブロック分割の個数と画像回転角度に基づいて、図１の１０１，１０２に示すようなブロック対応リストを求める（Ｓｔｅｐ  Ｓ２０１）。あるいは、ブロック対応リスト１０１は、予め想定されたサイズに応じていくつかのリストを用意しておき、実際に回転処理を行う場合に、縦横のブロック分割の個数と画像回転角度に基づいてそれらのリストの中から当てはまるものを選択してもよい。ブロック対応リストの求め方は、実施の形態２で図８のステップＳ１０１の説明として述べたとおりである。
【００３９】
次に、ルーチンは、ブロック毎の回転処理手順を求めるループに入る（Ｓｔｅｐ  Ｓ２０２）。ループの初期化処理として、一連の回転処理の処理ブロック数をカウントするブロック処理数カウンタをクリアする（Ｓｔｅｐ  Ｓ２０３）。このループ中では、画素データを実際に回転させる処理は行わず、仮想的に回転処理を行ったブロックをチェック済として未チェックのブロックと区別する。まず、リスト１０１の左端のブロック番号１が回転処理チェック済みかどうかを調べる（Ｓｔｅｐ  Ｓ２０４）その結果、ブロック番号１が未チェックであるので、ルーチンはＳ２０４へ進む。リスト１０２から、この領域に回転後に配置されるべき画素データのブロック番号が１０であることがわかるので、その場回転ではないと判断し、ブロック番号１を第１番目の処理ブロックとして仮記憶し、その処理内容を退避メモリへの退避とする。そして、ブロック番号１をチェック済とし、ブロック処理数カウンタを１増加させる（ステップ  Ｓ２０５）。この状態が、図１（ｃ）のＳ８に対応する。次に、ブロック番号１の後に配置されるべき画素データのブロック番号が１０であるので、ブロック番号１の画素データを退避した状態での処理ループが続くと判断し（Ｓｔｅｐ  Ｓ２０７）、ルーチンはＳｔｅｐ  Ｓ２０５へと進む。そして、ブロック番号１０を第２番目の処理ブロックとして仮記憶し、その処理内容を、画素データを回転処理して別の領域へ転送する処理とする。そして、ブロック番号１０をチェック済みとし、ブロック処理数カウンタを１増加させる（Ｓｔｅｐ  Ｓ２０５）。この状態が、図１（ｃ）のＳ２に対応する。
【００４０】
次に、回転処理したブロック番号１０へ回転後に配置されるべきブロック番号９をリスト１０２から求め、ブロック番号１の画素データを退避した状態での処理ループが続くと判断する（Ｓｔｅｐ  Ｓ２０７）。このようにして、さらにブロック番号９，１２，３，４，１を処理内容と共に仮記憶し、それらのブロックをチェック済みとする。退避しているブロック番号１を仮記憶したところで、一連の処理が終了したと判断し（Ｓｔｅｐ  Ｓ２０７）、仮記憶されたブロック番号とそれらに対応する処理内容をブロック処理順リストに登録する（Ｓｔｅｐ  Ｓ２０８）。図１（ｃ）のＳ３〜７は、これら一連の処理順に対応する。またここで、ブロック処理数カウンタの値も合わせて登録する。このループのブロック処理数はＳ１〜７に対応する７である。この後、ルーチンはＳｔｅｐ  Ｓ２０９へ進み、ブロック処理数カウンタを初期化（Ｓｔｅｐ  Ｓ２０３）した後、次のチェック未のブロック番号を求める。図１（ｃ）では、ブロック番号１の右隣のブロック番号２が、次の未チェックのブロックである。そこで、新たな一連の処理の先頭としてブロック番号２を仮記憶する。処理内容は画素データの退避である。さらに、前述のように処理手順を求めるループに従って、ブロック番号７，５，１１，６，８，２を処理内容とともに仮記憶し、退避しているブロック番号２を仮記憶したところで、一連の処理が終了したと判断し（Ｓｔｅｐ  Ｓ２０７）、仮記憶内容をブロック処理順リストに登録する（Ｓｔｅｐ  Ｓ２０８）。そして、ルーチンはＳｔｅｐ  Ｓ２０９へ進み、全てのブロックがチェック済みであると判断する。回転処理部が並列的に実行可能な構成の場合、ブロック処理順リストに登録された一連の処理を、ブロック処理数カウンタの大きい順にソートしてもよい（Ｓｔｅｐ  Ｓ２１０）。ブロック処理数の多いものから順に並列的に回転処理していけば、最後に互いに並列的に処理されるブロック数の差を最小化することができるからである。
【００４１】
前述の手順によって、予めブロック処理順が登録されていなくても、回転する画像の縦横のブロック数と回転角度に基づいて処理順リストを作成することができる。従って、任意のサイズの画像データについて処理順リストを作成することができる。
【００４２】
次に、図９（ｂ）に示す、画素データの回転処理について説明する。まず、図９（ａ）の手順に従って、回転させる画像に応じて決定されたブロック処理順リストあるいは予め準備されたブロック処理順リストの中から処理する画像サイズに応じて選択したリストの最初のブロック番号を参照する（Ｓｔｅｐ  Ｓ２５０）。そのブロック番号の処理内容がその場回転の場合、ルーチンはＳｔｅｐ  Ｓ２５５へ進んでその場回転処理を行う。それ以外の場合、ルーチンはＳｔｅｐ  Ｓ２５２へ進み、処理内容が退避処理かどうかを判断する。退避処理の場合、ルーチンはＳｔｅｐ  Ｓ２５３へ進んで処理対象のブロック番号の画素データを退避メモリ２２へ退避する。一方、退避処理でない場合は、残る処理は回転処理であるので、処理内容に従って、退避あるいは回転処理した後のブロック番号の空き領域へ、ブロック処理順リストの次のブロック番号の画素データを回転処理して書き込む（Ｓｔｅｐ  Ｓ２５４）。次のブロック番号がブロック処理順リストに登録されている限り、処理内容に従って回転処理を繰り返す（Ｓｔｅｐ  Ｓ２５６）。リストの最終のブロックは、退避したブロック番号である。退避した画素データを空いたブロックの領域へ書き込んで一連の処理が終了する。
【００４３】
これら、ブロック処理順リストに登録された複数の一連の回転処理を全て実行し終えたら画像回転処理を終了する。
なお、図４の回転処理部２１が並列的に実行できるように構成されている場合、一連の回転処理を並列的に実行すればよい。これによって、全ての回転処理を順次行う場合に比べて画像回転処理に要する時間を短縮することができる。また、前述のようにブロック処理数の大きいものから先に並列処理することによって、画像回転処理が並列処理される時間を最大化でき、より効果的に時間を短縮することができる。
【図面の簡単な説明】
【００４４】
【図１】画像を３×４のブロックに分割し、各ブロックを９０度回転してブロックを再配置することにより画像全体を回転させた場合の回転前後の配置とブロックごとの回転処理の順序を示す説明図である。（実施の形態２）
【図２】画像メモリ上の各画素データの配置を模式的に示した説明図である。（実施の形態２）
【図３】この発明の画像処理装置を備えて画像を回転処理する装置の実施の一形態であるＭＦＰの画像データ処理回路の構成を示すブロック図である。（実施の形態１）
【図４】図３のイメージコントローラ５とメインメモリ６のさらに詳細な構成を示すブロック図である。（実施の形態１）
【図５】ブロックの数が横４×縦５の画像を９０度回転する処理の過程を示す説明図である。
【図６】ブロックの数が横４×縦６の画像を９０度回転する処理の過程を示す説明図である。
【図７】ブロックの数が横５×縦７の画像を９０度回転する処理の過程を示す説明図である。
【図８】ブロック対応リストを用いて画像の回転処理を行う処理手順の一例を示すフローチャートである。
【図９】ブロック処理順リストまたはブロック処理順決定部の決定結果に基づいて回転処理を行う手順を示すフローチャートである。
【符号の説明】
【００４５】
１    ＭＦＰ
２    スキャナユニット
３    プリンタエンジン
４    画像処理ＬＳＩ
５    イメージコントローラ
６    メインメモリ
７    Ｉ／Ｏコントローラ
８    システムコントローラ
９    ＣＰＵ
１０    ホストＩ／Ｆ
１１    ＨＤＤ
１２    システムメモリ
１３    ホスト（ＰＣ）
１４    ページメモリ
２０    回転処理部
２１    ブロック回転処理部
２２、３２    退避メモリ
２３    ＤＭＡ
２４    ブロック対応決定部
２５    ブロック対応リスト
２６    ブロック処理順決定部
２７    ブロック処理順リスト
２８    メモリコントローラ
２９    他の処理部
３０    各種インタフェース
３１    画像メモリ
１０１    ブロック対応リスト（回転前のブロック配置）
１０２    ブロック対応リスト（回転後のブロック配置）
１０３    ブロック単位の回転処理と配置変更の処理順リスト
１０４    退避メモリに格納されるブロック
【図１】
2006048355.tif 000003
【図２】
2006048355.tif 000004
【図３】
2006048355.tif 000005
【図４】
2006048355.tif 000006
【図５】
2006048355.tif 000007
【図６】
2006048355.tif 000008
【図７】
2006048355.tif 000009
【図８】
2006048355.tif 000010
【図９】
2006048355.tif 000011