(57)【要約】【課題】最小限のページメモリを持ちながらイメージの回転処理を実現し、処理を迅速に行えるようにする。【解決手段】１ページを構成する複数バンド４０１〜４０４のイメージのうち、１バンド分のイメージを入力する入力手段１１０と、１バンド分のイメージを１ページに対して回転させ回転後のイメージを作成する回転手段１４０と、回転後のイメージを圧縮する圧縮手段１５０と、圧縮手段により圧縮されたイメージを記憶する記憶手段１３０と、記憶手段に記憶された１ページ分のイメージを、回転後のページについてバンドごとに伸張する伸張手段１６０と、伸張手段により伸張されたバンド７０１〜７０３ごとにイメージ６０１〜６１２を出力する出力手段とを備える。【選択図】        図１
2005327044.tif 000002
【特許請求の範囲】
【請求項１】
１ページを構成する複数バンドのイメージのうち、１バンド分のイメージを入力する入力手段と、
前記１バンド分のイメージを、前記１ページに対して回転させ回転後のイメージを作成する回転手段と、
前記回転後のイメージを圧縮する圧縮手段と、
前記圧縮手段により圧縮されたイメージを記憶する記憶手段と、
前記記憶手段に記憶された１ページ分のイメージを、回転後のページについてバンドごとに伸張する伸張手段と、
前記伸張手段により伸張されたバンドごとにイメージを出力する出力手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記入力手段、前記回転手段、前記圧縮手段、および前記伸張手段は並行して動作することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力手段は入力処理が終了したとき、前記回転手段に処理開始要求を行い、前記回転手段は回転処理が終了したとき、前記圧縮手段に処理開始要求を行い、前記圧縮手段は圧縮処理が終了したとき、前記伸張手段に処理開始要求を行い、前記伸張手段は伸張処理が終了したとき、前記出力手段に処理開始要求を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記入力手段、前記回転手段、前記圧縮手段、および前記伸張手段の処理を制御することにより並行動作させる中央制御手段をさらに備え、
前記回転手段への処理開始要求、前記圧縮手段への処理開始要求、前記伸張手段への処理開始要求、および前記出力手段への処理開始要求は、前記中央制御手段への割り込み要求に応答して、前記中央制御手段が行うことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記回転手段は、前記１バンド分のイメージをブロック単位に分割して、分割されたブロックそれぞれについて回転させたイメージを作成するとともに、ブロック単位で回転されたイメージを前記１ページ内で配置することにより、前記回転後のイメージを作成することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
所定の優先順位に従って、前記記憶手段への書き込みを管理するアービタをさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記伸張手段は、伸張後のイメージを前記記憶手段に書き込み、書き込まれた伸張後のイメージが前記出力手段により出力されることを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記伸張手段は、伸張されたイメージを記憶するバッファをさらに備え、前記バッファに記憶されたイメージが、前記記憶手段を介することなく前記出力手段により出力されることを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記入力手段は、入力されたイメージを記憶するバッファをさらに備え、前記バッファに記憶されたイメージが、前記記憶手段を介することなく前記回転手段により回転処理されることを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
１ページを構成する複数バンドのイメージのうち、１バンド分のイメージを入力する入力工程と、
前記１バンド分のイメージを、前記１ページに対して回転させ回転後のイメージを作成する回転工程と、
前記回転後のイメージを圧縮する圧縮工程と、
前記圧縮工程により圧縮されたイメージを記憶する記憶工程と、
前記記憶工程に記憶された１ページ分のイメージを、回転後のページについてバンドごとに伸張する伸張工程と、
前記伸張工程により伸張されたバンドごとにイメージを出力する出力工程と、
を含むことを特徴とする画像処理方法。
【請求項１１】
前記入力工程、前記回転工程、前記圧縮工程、および前記伸張工程は並行して行われ、
前記入力工程が終了したとき、前記回転工程での処理開始が指示され、前記回転工程が終了したとき、前記圧縮工程での処理開始要求が指示され、前記圧縮工程が終了したとき、前記伸張工程での処理開始要求が指示され、前記伸張工程が終了したとき、前記出力工程での処理開始要求が指示されることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記回転工程は、前記１バンド分のイメージをブロック単位に分割して、分割されたブロックそれぞれについて回転させたイメージを作成するとともに、ブロック単位で回転されたイメージを前記１ページ内で配置することにより、前記回転後のイメージを作成することを特徴とする請求項１０に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特に画像を回転させて印刷する場合に、メモリの使用量を最小限にする画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
レーザープリンタ、インクジェットプリンタなど様々なプリンタが使われている。これらのプリンタで印刷する場合には、ビットマップ形式で表現されたデータに基づき印刷処理が行われる。しかしビットマップデータはデータ量が大きい。従って、１ページ分のデータを保持してから印刷処理を行う場合、プリンタは膨大な量のメモリを必要とする。このように従来、ページ処理単位が基本であった従来の画像処理装置では、どうしても画像データメモリが増大化していた。
【０００３】
そこで、複数の帯状の領域であるバンドに１ページを分けて、バンド単位でイメージを記憶して印刷する方法が用いられている。この場合、ビットマップイメージの記憶は、数バンドの量だけでよい。バンド単位のイメージは、そのままホストコンピュータから受信することができる。また、ページ記述言語などの描画コマンドで記述されたデータを受信して、これをバンドごとにビットマップイメージに変換して逐次印刷していくこともできる。
【０００４】
一方データを回転して印刷したい場合がある。例えば９０度回転したい場合、印刷ページ全体がそのまま９０度回転することになる。この場合、バンド単位でイメージを切り取っても、各バンドは１ページの中で位置が異なるので、イメージをバンド単位でそのまま回転処理して印刷することはできない。ビットマップイメージを１ページ分受け取ってから回転しなければならないので、１ページ分のビットマップイメージを記憶しておかなければならず、そのために必要な量のメモリを用意しなければならなかった。つまり回転処理が入ってしまうと回転前のデータと回転後のデータの２面分が必要となり、メモリの必要量が増大化する１つの要因である。
【０００５】
特許文献１は、イメージに対する回転処理を行うにあたって、バンドバッファを複数の正方形のブロックに分割し、分割された正方形ブロックごとにイメージを圧縮する技術を開示している。ここでのイメージの回転は、ページ全体に対する回転ではなく、ある特定の図形を横向きや逆さにするといった、個別のイメージの回転処理である。
【０００６】
１つのバンドに含まれるイメージの回転処理をする場合に、例えば横長の図形では回転後、複数のバンドにまたがることとなってしまい、その一方でバンド内にはデータの含まれない領域が発生する。回転後のイメージが３つのバンドにまたがる場合、３バンド分のメモリが必要になり、メモリの必要量が増大してしまう。そこでバンド内を複数の正方形のブロックに分け、イメージが含まれるブロックについてのみ回転処理することで、メモリの使用量を減少させる技術が開示されている。基本的にバンドごとに逐次イメージの回転処理を行っており、イメージを圧縮して蓄積しておくことにより回転後のページを作成するという処理ではない。つまり、数バンド分のイメージを記憶し、逐次処理するのであって、１ページ分のイメージを処理できるような構成ではない。
【０００７】
特許文献２は、特許文献１と同様にページ全体に対する回転ではなく、個別のイメージを任意角で回転させる処理である。具体的には、回転させるイメージについて、まず局所データとして回転処理を行って中間バッファに記憶しておき、回転後の配置についてアドレス変換をして、回転後のイメージをバンドバッファに逐次送る技術が開示されている。中間バッファを用意することにより、バンドデータを何回も読み込まないで済むようにするというのがこの発明の趣旨であり、１ページ分の量のイメージを回転処理する構成ではない。
【０００８】
特許文献３は、原稿を回転させるときのメモリ制御についての技術を開示している。ここでは、メモリへの読み出しと書き込みを順に繰り返し行い、アドレス生成を読み出しと書き込みで同じにしている。但し、バンド単位で読み取ったイメージの回転は示唆しておらず、バンドごとのイメージをページ中で再配置するという構成ではない。
【０００９】
【特許文献１】特開平１０−１７１６１２号公報
【特許文献２】特開平１１−１５４２２８号公報
【特許文献３】特開２００１−１０３２９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
バンド単位で回転処理を行うことがメモリ節約上好ましいが、１つのバンドイメージを回転させた後のページ内における位置は、回転させる前とは異なってしまう。例えば用紙を縦から横に変換するような場合には、最初の行の一番右側が回転後には用紙の一番下になる。このページを回転処理するには、１ページ分のイメージが蓄積されるまで待ってから印刷処理しなければならないが、メモリ効率が悪く、処理効率も悪くなるという問題があった。
【００１１】
これらの状況を鑑み、本発明は、最小限のページメモリを持つことで所望の動作を達成するとともに、これらの処理を迅速に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に記載の画像処理装置は、１ページを構成する複数バンドのイメージのうち、１バンド分のイメージを入力する入力手段と、前記１バンド分のイメージを、前記１ページに対して回転させ回転後のイメージを作成する回転手段と、前記回転後のイメージを圧縮する圧縮手段と、前記圧縮手段により圧縮されたイメージを記憶する記憶手段と、前記記憶手段に記憶された１ページ分のイメージを、回転後のページについてバンドごとに伸張する伸張手段と、前記伸張手段により伸張されたバンドごとにイメージを出力する出力手段と、を備える。
【００１３】
以上の構成により、バンド単位で受け取ったイメージを、少ないメモリで回転処理して１ページの中で割り当てることができる。例えば縦向きに作成された文書を横向きの文書として印刷したい場合に、プリンタで省メモリ化を図るべくバンド単位で処理しても、適切な回転処理を行うことができる。
【００１４】
請求項２に記載の画像処理装置は、請求項１に記載の発明において、前記入力手段、前記回転手段、前記圧縮手段、および前記伸張手段は並行して動作することを特徴とする。
【００１５】
各処理部を並行動作させることができるので、印刷処理までの間、１つのバンドが処理されるのを待つのではなく、先のバンドを処理する一方で後のバンドの処理を行うことができる。例えば一方の処理部で回転処理を行いつつ、もう一方では圧縮処理、もう一方では伸張処理が同時並行で行われるので、メモリを節約した回転処理を効率よく行うことができる。特にページ全体の回転処理を行う場合は、圧縮して保持しておくデータ量が多くなるので、ページ全体が各処理部で処理されるのを待って逐次処理していくのでは効率が悪く、並行動作させることで効率を上げることができる。
【００１６】
請求項３に記載の画像処理装置は、請求項２に記載の発明において、前記入力手段は入力処理が終了したとき、前記回転手段に処理開始要求を行い、前記回転手段は回転処理が終了したとき、前記圧縮手段に処理開始要求を行い、前記圧縮手段は圧縮処理が終了したとき、前記伸張手段に処理開始要求を行い、前記伸張手段は伸張処理が終了したとき、前記出力手段に処理開始要求を行うことを特徴とする。
【００１７】
従って各処理部の処理終了に応じて次の処理部の処理開始が促されるので、各処理部は並行動作していても先の処理部での処理終了を知ることができる。各処理部は、すぐに次のデータの処理に移ることができ、回転処理を効率よく行うことができる。
【００１８】
請求項４に記載の画像処理装置は、請求項２に記載の発明において、前記入力手段、前記回転手段、前記圧縮手段、および前記伸張手段の処理を制御することにより並行動作させる中央制御手段をさらに備え、前記回転手段への処理開始要求、前記圧縮手段への処理開始要求、前記伸張手段への処理開始要求、および前記出力手段への処理開始要求は、前記中央制御手段への割り込み要求に応答して、前記中央制御手段が行うことを特徴とする。
【００１９】
従って中央制御手段の制御により各処理部の処理終了に応じて次の処理部の処理開始が促されるので、各処理部がソフトウェアとして実現され、中央制御手段の管理により並行動作していても、先の処理部での処理終了を知ることができる。各処理部は、すぐに次のデータの処理に移ることができ、回転処理を効率よく行うことができる。
【００２０】
請求項５に記載の画像処理装置では、請求項１に記載の発明において、前記回転手段は、前記１バンド分のイメージをブロック単位に分割して、分割されたブロックそれぞれについて回転させたイメージを作成するとともに、ブロック単位で回転されたイメージを前記１ページ内で配置することにより、前記回転後のイメージを作成することを特徴とする。
【００２１】
バンドをバンド全体でまとめて回転処理するのではなく、ブロックに分割してそれぞれ回転処理していくので、回転後のイメージを作成していく上でも、回転後のイメージをページ内に割り当てる上でも効率がよくなる。特に並行処理していく上で、処理単位を小さくしていくことは処理効率を上げることにつながる。
【００２２】
請求項６に記載の画像処理装置は、請求項１に記載の発明において、所定の優先順位に従って、前記記憶手段への書き込みを管理するアービタをさらに備える。
【００２３】
特定の処理を優先して行いたい場合に、アービタがメモリとのアクセスを優先的に割り当てるので、本来優先度の低いはずの処理が、早い順に割り当てられるという非効率を招くことなく、効率的な回転処理を行うことができる。例えば入力されたイメージを早くメモリに記憶させ、外部のイメージ入力を待たせたくない場合は、入力手段の優先順位を高くしておくことができる。
【００２４】
請求項７に記載の画像処理装置では、請求項１に記載の発明において、前記伸張手段は、伸張後のイメージを前記記憶手段に書き込み、書き込まれた伸張後のイメージが前記出力手段により出力される。
【００２５】
伸張後のイメージがそのまま出力されるのではなく、一旦記憶手段に戻されそれから出力されるので、１バンド分のイメージがすべて伸張されなければならないのに対し、伸張手段内に伸張後のデータを出力するためのバッファをおく必要がなくなる。
【００２６】
請求項８に記載の画像処理装置では、請求項１に記載の発明において、前記伸張手段は、伸張されたイメージを記憶するバッファをさらに備え、前記バッファに記憶されたイメージが、前記記憶手段を介することなく前記出力手段により出力される。
【００２７】
出力にあたり、１バンド分のイメージがすべて伸張されるのを待たなければならないが、伸張後のイメージを記憶手段に戻さなくて済むので、記憶手段に対する調停負担を下げ、処理効率を上げることができる。
【００２８】
請求項９に記載の画像処理装置では、請求項１に記載の発明において、前記入力手段は、入力されたイメージを記憶するバッファをさらに備え、前記バッファに記憶されたイメージが、前記記憶手段を介することなく前記回転手段により回転処理される。
【００２９】
回転手段にイメージを渡すにあたり、イメージを記憶手段に記憶させてから回転手段に渡すという手順を経なくて済むので、記憶手段に対する調停負担を下げることができる。
【００３０】
請求項１０に記載の画像処理方法は、１ページを構成する複数バンドのイメージのうち、１バンド分のイメージを入力する入力工程と、前記１バンド分のイメージを、前記１ページに対して回転させ回転後のイメージを作成する回転工程と、前記回転後のイメージを圧縮する圧縮工程と、前記圧縮工程により圧縮されたイメージを記憶する記憶工程と、前記記憶工程に記憶された１ページ分のイメージを、回転後のページについてバンドごとに伸張する伸張工程と、前記伸張工程により伸張されたバンドごとにイメージを出力する出力工程と、を含むことを特徴とする。
【００３１】
以上の構成により、バンド単位で受け取ったイメージを、少ないメモリで回転処理して１ページの中で割り当てることができる。例えば縦向きに作成された文書を横向きの文書として印刷したい場合に、プリンタで省メモリ化を図るべくバンド単位で処理しても、適切な回転処理を行うことができる。
【００３２】
請求項１１に記載の画像処理方法は、請求項１０に記載の発明において、前記入力工程、前記回転工程、前記圧縮工程、および前記伸張工程は並行して行われ、前記入力工程が終了したとき、前記回転工程での処理開始が指示され、前記回転工程が終了したとき、前記圧縮工程での処理開始要求が指示され、前記圧縮工程が終了したとき、前記伸張工程での処理開始要求が指示され、前記伸張工程が終了したとき、前記出力工程での処理開始要求が指示されることを特徴とする。
【００３３】
各処理部を並行動作させることができるので、印刷処理までの間、１つのバンドが処理されるのを待つのではなく、先のバンドを処理する一方で後のバンドの処理を行うことができる。例えば一方の処理部で回転処理を行いつつ、もう一方では圧縮処理、もう一方では伸張処理が同時並行で行われるので、メモリを節約した回転処理を効率よく行うことができる。特にページ全体の回転処理を行う場合は、圧縮して保持しておくデータ量が多くなるので、ページ全体が各処理部で処理されるのを待って逐次処理していくのでは効率が悪く、並行動作させることで効率を上げることができる。
【００３４】
請求項１２に記載の画像処理方法は、請求項１０に記載の発明において、前記回転工程は、前記１バンド分のイメージをブロック単位に分割して、分割されたブロックそれぞれについて回転させたイメージを作成するとともに、ブロック単位で回転されたイメージを前記１ページ内で配置することにより、前記回転後のイメージを作成することを特徴とする。
【００３５】
バンドをバンド全体でまとめて回転処理するのではなく、ブロックに分割してそれぞれ回転処理していくので、回転後のイメージを作成していく上でも、回転後のイメージをページ内に割り当てる上でも効率がよくなる。特に並行処理していく上で、処理単位を小さくしていくことは処理効率を上げることにつながる。
【発明の効果】
【００３６】
本発明にかかる画像処理装置および画像処理方法によれば、メモリ容量を取らずに最小限のページメモリを用いて画像回転等の画像処理を迅速に行えるという効果を奏する。
【発明を実施するための最良の形態】
【００３７】
以下に添付図面を参照してこの発明の画像処理装置および画像処理方法を説明する。図１に、本発明の第１の実施形態である画像処理装置のブロック図を示す。画像処理装置は、画像処理装置全体を制御するＣＰＵ１００、入力されるイメージを受け取り、回転されたイメージを外部に出力する入出力処理部１１０、各機能ブロックとメモリアクセス要求に対する調停を行うことにより、バスの使用権を管理するメモリアービタ１２０、受け取ったイメージおよび回転・圧縮されたイメージを記憶する処理を行う記憶部１３０、イメージを回転させる回転処理部１４０、回転されたイメージを圧縮する圧縮処理部１５０、圧縮されたイメージを伸張する伸張処理部１６０により構成される。各処理部は、それぞれの処理機能を論理回路によりハードウェアとして実現することも、またそれぞれソフトウェアとして実現することもできる。ソフトウェアとして実現される場合、各処理部はそれぞれＣＰＵ１００の資源を共有することで実行することになる。
【００３８】
入出力処理部１１０は、ＰＣＩ回路１１１、データ入力回路１１２、データ入力のためのＤＭＡコントローラであるＤＭＡ１１３、処理されたデータを出力するために用いられるＤＭＡコントローラであるＤＭＡ１１４、データ出力回路１１５により構成される。
【００３９】
ＰＣＩ回路１１１に入力されたイメージが、データ入力回路１１２に渡され、ＤＭＡ１１３がバスの使用権を得てデータ入力回路１１２からイメージを受け取り、メモリアービタ１２０にイメージを渡す。処理されたイメージは、ＤＭＡ１１４が、メモリアービタ１２０から受け取ってデータ出力回路１１５に渡す。ＰＣＩ回路１１１は、データ出力回路１１５から処理されたイメージを受け取って印刷処理へと送る。
【００４０】
メモリアービタ１２０は、図示しないがバスを含み、入出力処理部１１０、記憶部１３０、回転処理部１４０、圧縮処理部１５０、伸張処理部１６０に接続される。メモリアービタ１２０は、各処理部のうちどれがバスの使用権を得るかを判定し、使用権を得た処理部が記憶部１３０とデータのやり取りをできるようにする。そしてメモリアービタ１２０に含まれるバスを介して各処理部と記憶部１３０との間でデータのやり取りが行われる。
【００４１】
記憶部１３０は、メモリ１３１とメモリ１３１に対するインターフェースとなるメモリコントローラ１３２により構成される。メモリ１３１はＤＲＡＭなどの、揮発性のメモリであり、外部から受け取ったイメージおよび回転・圧縮されたイメージを記憶する。メモリコントローラ１３２は、メモリアービタ１２０を介して送られたイメージを受け取ってメモリ１３１に書き込み、メモリアービタ１２０に対してバスの使用権を確保して、メモリ１３１に書き込まれたイメージを、メモリアービタ１２０を介して各処理部に送る。
【００４２】
回転処理部１４０は、ＤＭＡ１４１、回転回路１４２、ＤＭＡ１４３により構成される。ＤＭＡ１４１は、ＤＭＡコントローラであり、メモリアービタ１２０からイメージを受け取って回転回路１４２に渡す。回転回路１４２は、受け取ったイメージを、ハードウェアで高速に９０度、１８０度、２７０度回転を行うことができ、また回転した後のページ中での移動位置を求めることができる。ＤＭＡ１４３は、回転されたイメージおよび移動位置のデータを、回転回路１４２から受け取り、メモリアービタ１２０に対してバスの使用権を確保してからメモリアービタ１２０に渡す。
【００４３】
圧縮処理部１５０は、ＤＭＡ１５１、圧縮回路１５２、ＤＭＡ１５３により構成される。ＤＭＡ１５１は、ＤＭＡコントローラであり、メモリアービタ１２０からイメージを受け取って圧縮回路１５２に渡す。圧縮回路１５２は、データ圧縮回路であり、入力データを符号化して出力することができる。ＤＭＡ１５３は、圧縮イメージおよび移動位置のデータを、圧縮回路１５２から受け取り、メモリアービタ１２０に対してバスの使用権を確保してからメモリアービタ１２０に渡す。
【００４４】
伸張処理部１６０は、ＤＭＡ１６１、伸張回路１６２、ＤＭＡ１６３により構成される。ＤＭＡ１６１は、ＤＭＡコントローラであり、メモリアービタ１２０からイメージを受け取って伸張回路１６２に渡す。伸張回路１６２は、データ伸張回路であり、入力データを伸張して出力することができる。ＤＭＡ１６３は、伸張イメージおよび移動位置のデータを、伸張回路１６２から受け取り、メモリアービタ１２０に対してバスの使用権を確保してからメモリアービタ１２０に渡す。
【００４５】
図２は、図１に示す画像処理装置内でどのようにデータがやり取りされるかを示すブロック図である。フロー２１０からフロー２４０まで順に処理が行われる。
【００４６】
まずフロー２１０を説明する。入出力処理部１１０のインターフェースにより、外部からイメージが画像処理装置へ入力される。入出力処理部１１０は、メモリアービタ１２０を介してイメージを記憶部１３０に送る。ここでは外部からラスタ順次に入るイメージが、そのままメモリ１３１に蓄積される。
【００４７】
次にフロー２２０を説明する。蓄積されたデータは、回転処理のために、記憶部１３０から、メモリアービタ１２０を介して回転処理部１４０へ入力される。回転処理部１４０は、イメージを回転処理する。回転処理されたイメージは、すぐにメモリアービタ１２０を介して記憶部１３０に回転後のイメージを渡してもよいが、メモリアクセス回数を減らすためにここでは、圧縮処理部１５０にデータを渡し符号化処理してから、メモリアービタ１２０を介して記憶部１３０に符号化処理後のイメージを渡す。
【００４８】
次にフロー２３０を説明する。符号化処理されたイメージは、伸張するために、記憶部１３０から、メモリアービタ１２０を介して伸張処理部１６０へ渡される。伸張処理部１６０でイメージを伸張処理してから、メモリアービタ１２０を介して記憶部１３０に伸張処理後のイメージが渡される。
【００４９】
最後にフロー２４０を説明する。伸張処理後のイメージが、記憶部１３０からメモリアービタ１２０を介して入出力処理部１１０に渡され、最終的には印刷処理へと出力される。
【００５０】
以上の各フローは、１つずつ進めるのではなく、同時に並行動作させることによって省メモリ化を達成することができる。この並行動作については後述する。
【００５１】
図３は、本発明の第１の実施形態である画像処理装置の動作を示すフローチャートである。このフローチャートは１バンド分のイメージがどのような順に処理されているかを示すものであり、各処理部での処理動作は並行して行うことができる。
【００５２】
まず、ＰＣＩ回路１１１が、１バンド分のイメージを外部から受信する（ステップＳ３００）。この１バンド分のイメージは、外部から圧縮された状態でバッファ（図示しない）で受け取られ記憶された後、逐次伸張されてＰＣＩ回路１１１が受け取るような構成にすることができる。また、印刷データを、ページ記述言語で記述された描画コマンドとしてあらかじめ受信しておき、この描画コマンドがバンドごとにレンダリングされて、ＰＣＩ回路１１１が、１バンドずつ順次受け取るようにすることもできる。
【００５３】
受け取られた１バンド分のイメージは、ＰＣＩ回路１１１からデータ入力回路１１２に渡され、データ入力回路１１２からＤＭＡ１１３に渡される。ＤＭＡ１１３は、バスの使用権を確保すべく、メモリアービタ１２０に問い合わせを行う（ステップＳ３０５）。バスは図示しないが、メモリアービタ１２０の中にあるとして、本実施形態中では説明される。バスが使用できる状態の場合、メモリアービタ１２０は、ＤＭＡ１１３がバスを使用できる旨をＤＭＡ１１３に返答する。バスが使用できない場合、ＤＭＡ１１３がバスを使用できない旨をＤＭＡ１１３に返答する。バスが使用できない状態の場合、ＤＭＡ１１３は、バスが使用できるようになるまで待機する。
【００５４】
バスが使用できる場合、ＤＭＡ１１３はメモリアービタ１２０を経由してメモリコントローラ１３２に、１バンド分のイメージを渡す。メモリコントローラ１３２は、受け取ったイメージをメモリに記憶する（ステップＳ３１０）。
【００５５】
次は回転・圧縮処理について説明する。イメージの受け取りはバンド単位で行うが、本処理はさらに細分化したブロック単位で行われる。メモリコントローラ１３２は、メモリアービタ１２０にバス確保を行い、バスが使用できるかどうか問い合わせる（ステップＳ３１５）。バスが使用できない場合、メモリコントローラ１３２は待機し、バスが使用できる場合メモリコントローラ１３２は、メモリアービタ１２０を経由してＤＭＡ１４１に、１ブロック分のイメージを送る。
【００５６】
ＤＭＡ１４１は、受け取った１ブロック分のイメージを、回転回路１４２に渡し、回転回路１４２は、イメージを回転処理するとともに、回転後のページ内での位置を、元のブロックのページ内位置に基づいて求める（ステップＳ３２０）。
【００５７】
ブロックの回転処理が行われたら、ＤＭＡ１５１は、ＤＭＡ１４３から回転されたブロックを受け取り、圧縮回路１５２に渡し、圧縮回路１５２は、データの圧縮を行い、ＤＭＡ１５３に渡す（ステップＳ３２５）。
【００５８】
圧縮されたら、ＤＭＡ１５３は圧縮回路１５２から圧縮されたイメージを受け取り、メモリコントローラ１３２に渡す。メモリコントローラ１３２に渡すにあたりＤＭＡ１５３は、メモリアービタ１２０に問い合わせを行い、バスを使用できない場合はバスを使用できるまで待機し、バスが使用できる場合はメモリアービタ１２０を経由してメモリコントローラ１３２に圧縮されたイメージを渡す。メモリコントローラ１３２は、圧縮されたイメージをメモリ１３１に記憶する（ステップＳ３３０）。
【００５９】
次に、回転後のイメージについてバンドごとに伸張・出力を行う。ＣＰＵ１００は、最初または次に出力すべきバンドを構成するブロックのイメージが集まるまで待機する（ステップＳ３３５）。
【００６０】
この最初または次に出力されるバンドのイメージが集まった場合、メモリコントローラ１３２は、アービタ１２０に問い合わせを行った上で、バスを使用できる場合メモリアービタ１２０を経由してＤＭＡ１６１に１バンド分の圧縮イメージを渡す。ＤＭＡ１６１は、受け取ったイメージを伸張回路１６２に渡す。伸張回路１６２は、イメージの伸張を行い、ＤＭＡ１６３に伸張後のイメージを渡す（ステップＳ３４０）。ＤＭＡ１６３は、メモリアービタ１２０、メモリコントローラ１３２を介してメモリ１３１に伸張後のイメージを渡す。メモリ１３１に書き込まれた伸張後のイメージは、再びメモリコントローラ１３２、メモリアービタ１２０を介し、入出力処理部１１０中のＤＭＡ１１４に渡される。
【００６１】
ＤＭＡ１１４は、受け取った伸張後のイメージを、データ出力回路１１５に渡し、データ出力回路１１５からＰＣＩ回路１１１に渡される。ＰＣＩ回路１１１は、受け取った回転・伸張後の１バンド分のイメージを印刷処理に送る（ステップＳ３４５）。
【００６２】
図４は、１ページ分のイメージがラスタ順次に蓄積されることを示す図である。ＰＣＩ回路１１１に入力されるデータフォーマットとしては、主にラスタ順次である場合が多い。すなわち、ページ４００のイメージ（イメージを図中Ｒで記載）は、バンド４０１がまず入力され、次にバンド４０２が入力され、最終的にバンド４０４まで順次入力される。入力されたイメージは、メモリ１３１に対しても同様に順次蓄積されていく。
【００６３】
図５は、バンドに分割された１ページ分のイメージを、ブロック単位で分割したものを示す図である。バンド４０１はブロック５０１，５０２，５０３に、バンド４０２はブロック５０４，５０５，５０６に、バンド４０３はブロック５０７，５０８，５０９に、バンド４０４はブロック５１０，５１１，５１２に分けられる。図５の各ブロックのイメージを回転処理する場合、そのままの位置で回転処理をしては、求めるイメージとは異なるものができあがってしまう。そこで回転回路１４２は、各ブロックのイメージを回転したイメージを作成するとともに、回転後のブロックの位置を求める。
【００６４】
図６は、回転処理されたブロックの構成を示す図であり、メモリ１３２に蓄積された回転後のイメージを表している。図５に示す各ブロックのイメージは、それぞれ回転処理された後に図６の各ブロックの位置へと移動する。ブロック５０１，５０２，・・・は、それぞれ回転処理された後ブロック６０１，６０２，・・・に移動する。最初に出力されるバンドは、６０１、６０４、６０７、６１０により構成される。伸張処理の順番としては、（６１０⇒６０７⇒６０４⇒６０１）で１バンドとして順に（⇒６１１⇒６０８⇒６０５⇒６０２）（⇒６１２⇒６０９⇒６０６⇒６０３）処理を行う。処理後は、メモリ１３１に書き戻す。
【００６５】
図７は伸張後のページ全体のイメージを示す。バンド７０１は、ブロック６１０、６０４、６０７、６１０により構成され、バンド７０２は、ブロック６０２、６０５、６０８、６１１により構成され、バンド７０３は、ブロック６０３、６０６、６０９、６１２により構成される。そしてバンド７０１、バンド７０２、バンド７０３の順に出力されていく。
【００６６】
図８は、以上の処理を並行処理で行うために各処理部間で通知を行う手順について説明する図である。イメージを回転させるにあたり、メモリ１３１へページ分のデータを蓄積しなくとも、バンド単位でデータ蓄積を行えば回転処理を行うことができる。最低１バンド分がメモリ１３１に蓄積されれば回転処理を行うことができる。
【００６７】
まずフロー８１０で示す処理を説明する。入出力処理部１１０から入力されるイメージが、１バンド分メモリ１３１へ蓄積終了するたびに、ＤＭＡ１１３が、１バンド転送終了割り込みを出してＣＰＵ１００へ通知し、回転処理を行うため回転処理部１４０に転送設定するか（ソフト処理）、ＤＭＡ１１３が、割り込み通知せず、１バンド転送終了通知を回転処理部１４０に通知することで回転処理を開始させればよい（ハード処理）。
【００６８】
次にフロー８２０で示す処理を説明する。回転処理ごとに終了割り込みを出してＣＰＵ１００へ通知し、次に処理を行うため圧縮処理部１５０に転送設定するか（ソフト処理）、割り込み通知せず、圧縮処理部１５０に直接通知することで、圧縮処理を開始させればよい（ハード処理）。
【００６９】
回転処理後、圧縮処理部１５０は順に符号化処理を行う。符号化処理の順番としては、図５のように回転処理順とすればよい。このままメモリ１３１へ順番に蓄積される（時計周り９０度回転の場合）。
【００７０】
次にフロー８３０で示す処理を説明する。符号化処理がページ分終了したら、終了割り込みを出してＣＰＵ１００へ通知し、次に処理を行うため伸張処理部１６０に転送設定するか（ソフト処理）、割り込み通知せず、伸張処理部１６０に直接通知することで、データ伸張処理を開始させればよい（ハード処理）。
【００７１】
次にフロー８４０で示す処理を説明する。バンド処理終了ごとに割り込みを出してＣＰＵ１００へ通知し、次に処理を行うため入出力処理部１１０に転送設定するか（ソフト処理）、割り込み通知せず、入出力処理部１１０に直接通知することで、データ出力処理を開始させればよい（ハード処理）。
【００７２】
次にフロー８５０で示す処理を説明する。メモリ１３１に最低１バンドのイメージが蓄積されたとき、入出力処理部１１０へラスタ順次でデータ転送を行うことができる。転送終了後は、割り込みを出してＣＰＵ１００へ通知する。
【００７３】
メモリアービタ１２０は、あらかじめ設定された優先順位に従ってバスの使用権を管理する。バスの優先順位としては、例えば外部からラスタ順次にデータ入力をしてメモリ蓄積をするパスが１番、外部へデータ出力するパスが２番、データ回転・圧縮パスが３番、データ伸張パスが４番、とすることができる。この場合、入出力パスを優先することで、最適なパフォーマンスを得ることができる。バスの優先順位は以上に限定するものではなく様々な形が可能である。この優先順位は、外部またはプリンタで設定する構成にすることが可能であり、処理状況に応じて変動させることも可能である。
【００７４】
以上のように、ブロック単位にデータ回転・圧縮・伸張、バンド単位でラスタ順次にデータ出力を行うことで、データ圧縮後のページメモリ分とデータ入出力用の数バンドメモリを用意するだけで、コピー動作やプリンタ動作、スキャナ動作などのデータ処理を行うことができる。
【００７５】
図９は、第２の実施形態において、図１に示す画像処理装置内でどのようにデータがやり取りされるかを示すブロック図である。フロー２１０、フロー２２０、フロー９３０の順に処理が行われる。フロー２１０およびフロー２２０は、図２の処理と同じであるので説明を省略する。
【００７６】
フロー９３０では、符号化処理されたイメージが、伸張するために、メモリ１３０からメモリアービタ１２０を介して伸張処理部１６０へ渡される。伸張処理部１６０でイメージを伸張処理してから、入出力処理部１１０に渡して出力される。本処理でも同様に、各フローを１つずつ進めるのではなく、同時に並行動作させることによって、省メモリ化を達成できる。
【００７７】
次に並行動作について説明する。動作フローは図８で説明したものと同様だが、フロー８４０およびフロー８５０に相当する部分が異なる。これに相当する部分について、以下の通り説明する。
【００７８】
本実施形態では、伸張回路１６２内に最低１バンド分のバッファを用意する。このバッファを利用して、メモリ１３１に伸張後のデータを戻さず、バッファに書き込んで１バンド処理終了ごとに割り込みを出してＣＰＵ１００へ通知し、次に処理を行うため入出力処理部１１０に転送設定するか（ソフト処理）、割り込み通知せず、入出力処理部１１０に直接通知することで、データ出力処理を開始させることができる（ハード処理）。これにより最終的には入出力処理部１１０へラスタ順次にデータ転送を行うことができる。
【００７９】
アービタの優先順位としては、例えば外部からラスタ順次にデータ入力をしてメモリ蓄積をするパスが１番、外部へデータ出力・データ伸張パスが２番、データ回転・圧縮パスが３番とすることで入出力パスを優先し、最適なパフォーマンスを得ることができる。
【００８０】
以上のように、ブロック単位にデータ回転・圧縮・伸張、バンド単位でラスタ順次にデータ出力を行うことで、データ圧縮後のページメモリ分とデータ入力用の数バンドメモリを用意するだけで、コピー動作やプリンタ動作、スキャナ動作などのデータ処理を行うことができる。
【００８１】
図１０は、第３の実施形態において、図１に示す画像処理装置内での動作フロー概要を説明するブロック図である。
【００８２】
まずフロー１０１０を説明する。外部からイメージがＰＣＩ回路１１１へ入力される。次に、データ入力回路１１２が、ＤＭＡ１１３にイメージを渡す。次に蓄積されたイメージを回転処理するためにＤＭＡ１４１を介して回転回路１４２へ入力する。回転回路１４２は、イメージを回転処理し、ＤＭＡ１４３へ渡す。
【００８３】
ＤＭＡ１４３は、すぐにメモリアービタ１２０、メモリコントローラ１３２を介してメモリ１３１へ回転後のイメージを渡してもよいが、メモリアクセス回数を減らすためにここでは、圧縮処理部１５０へイメージを渡し符号化処理してから、メモリアービタ１２０、メモリコントローラ１３２を介してメモリ１３１へ符号化処理後のデータを渡す。
【００８４】
次にフロー１０２０を説明する。符号化処理されたデータは、伸張するためにメモリ１３１からメモリコントローラ１３２、メモリアービタ１２０を介して伸張処理部１６０へ渡される。伸張処理部１６０はイメージを、伸張処理してから、ＤＭＡ１１４を介してデータ出力回路１１５に渡し、最終的には外部インターフェースとなっているＰＣＩ回路１１１から出力する。
【００８５】
以上フローは１つずつ進めるのではなく、同時に並行動作させることによって省メモリ化を達成することができる。
【００８６】
次に並行動作について説明する。動作フローは図８で説明したものと同様だが、フロー８１０およびフロー８２０に相当する部分が異なる。個々に相当する部分について、以下の通り説明する。
【００８７】
データを回転させるにあたり、一旦メモリ１３１へ１ページ分のデータを蓄積しなくとも、バンド単位でデータ蓄積を行うことにより、回転処理を行うことができる。データ入力回路１１２にバッファを用意しておき、最低１バンド分をデータ入力回路１１２内のバッファへ蓄積することにより、回転処理を行うことができる。
【００８８】
従って、ＰＣＩ回路１１１から入力されるデータが、１バンド分のイメージがデータ入力回路１１２内のバッファへ蓄積終了するたびに、データ入力回路１１２に接続されるＤＭＡ１１３が、１バンド転送終了割り込みを出してＣＰＵ１００へ通知し、回転処理を行うため回転回路１４２に接続されるＤＭＡ１４１に転送設定するか（ソフト処理）、割り込み通知せず、データ入力回路１１２に接続されるＤＭＡ１１３が１バンド転送終了通知を回転回路１４２に接続されるＤＭＡ１４１に通知することで回転処理を開始させればよい（ハード処理）。回転回路が処理するイメージは図１１の通りであり、左のブロックから順に処理される。図１１は回転前のデータがデータ入力回路１１２内のバッファに蓄積されたものを示す。
【００８９】
回転処理ごとに終了割り込みを出してＣＰＵ１００へ通知し、次に処理を行うため圧縮回路１５２に接続されるＤＭＡ１５１に転送設定するか（ソフト処理）、割り込み通知せず、圧縮回路１５２に接続されるＤＭＡ１５１に直接通知することで、データ圧縮処理を開始させればよい（ハード処理）。
【００９０】
上記のように順に回転処理後、圧縮回路１５２に接続されるＤＭＡ１５１を介して圧縮回路１５２で符号化処理を行う。符号化処理の順番は、図５のように回転処理順とすればよい。このままメモリ１３１へ順番に蓄積される（時計周り９０度回転の場合）。
【００９１】
符号化処理がページ分終了したら、終了割り込みを出してＣＰＵ１００へ通知し、次に処理を行うため伸張回路１６２に接続されるＤＭＡ１６１に転送設定するか（ソフト処理）、割り込み通知せず、伸張回路１６２に接続されるＤＭＡ１６１に直接通知することで、データ伸張処理を開始させればよい（ハード処理）。
【００９２】
伸張処理については、伸張回路１６２内に図１１に示すような、最低１バンド分のバッファを用意することにより、メモリ１３１に伸張後のデータを戻さず、バッファに書き込んで１バンド処理終了ごとに割り込みを出してＣＰＵ１００へ通知し、次に処理を行うためデータ出力回路１１５に接続されるＤＭＡ１１４に転送設定するか（ソフト処理）、割り込み通知せず、データ出力回路１１５に接続されるＤＭＡ１１４に直接通知することで、データ出力処理を開始させればよい（ハード処理）。これにより最終的にはデータ出力回路１１５を介してＰＣＩ回路１１１へラスタ順次にデータ転送を行えばよい。
【００９３】
アービタの優先順位としては、例えば外部からラスタ順次にデータ入力をしてデータ回転・圧縮をするパスが１番、外部へデータ出力・データ伸張パスが２番、とする。
【００９４】
以上のように本実施形態により、ブロック単位にデータ回転・圧縮・伸張、バンド単位でラスタ順次にデータ出力を行うことで、データ圧縮後のページメモリ分を用意するだけで、コピー動作やプリンタ動作、スキャナ動作などのデータ処理を行うことができる。
【００９５】
図１２は、本発明の実施形態である画像処理装置が使用されるプリンタ全体を示している。入出力部１２０１は、入力された印刷データを受信する処理部であり、外部との入出力を行う通常のインターフェースにより構成される。印刷データはイメージデータとして入力される場合もあるが、圧縮された状態のものや、ページ記述言語で表現されたものもある。この場合、入出力部１２０１はレンダリング部１２０２に印刷データを渡し、レンダリング部１２０２が、印刷データをビットマップイメージに変換して入出力部１２０１に返す。レンダリング部１２０２は、ページ記述言語や圧縮イメージの伸張を行う通常の解釈モジュールにより構成される。イメージデータを受け取った入出力部１２０１は、画像処理部１２０３にイメージデータを渡し、本発明において説明を行った回転処理を行う。回転処理されたイメージデータは印刷処理部１２０４に渡され、印刷処理される。印刷処理部１２０４は、プリンタエンジンを含む通常の印刷処理を行う機構である。
【産業上の利用可能性】
【００９６】
以上のように、本発明にかかる画像処理装置および画像処理方法は、画像データを回転等の画像処理する画像処理装置に適しており、スキャナ、プリンタ、ＦＡＸ、印刷部を備えた複合機（ＭＦＰ）に用いて有用である。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１の実施形態である画像処理装置のブロック図である。
【図２】画像処理装置内でどのようにデータがやり取りされるかを示すブロック図である。
【図３】本発明の第１の実施形態である画像処理装置の動作を示すフローチャートである。
【図４】１ページ分のイメージがラスタ順次に蓄積されることを示す図である。
【図５】バンドに分割された１ページ分のイメージを、ブロック単位で分割したものを示す図である。
【図６】回転処理されたブロックの構成を示す図である。
【図７】伸張後のページ全体のイメージを示す図である。
【図８】本発明の第１の実施形態の処理を並行処理で行うために各処理部間で通知を行う手順について説明する図である。
【図９】第２の実施形態において、画像処理装置内でどのようにデータがやり取りされるかを示すブロック図である。
【図１０】第３の実施形態において、画像処理装置内での動作フロー概要を説明するブロック図である。
【図１１】伸張回路内にバッファを用意する場合の、バッファに記憶されるバンドを示す図である。
【図１２】本発明の実施形態である画像処理装置が使用されるプリンタ全体を示す図である。
【符号の説明】
【００９８】
１００  ＣＰＵ
１１１  ＰＣＩ回路
１１２  データ入力回路
１１３，１１４，１４１，１４３，１５１，１５３，１６１，１６３  ＤＭＡコントローラ
１１５  データ出力回路
１２０  メモリアービタ
１３１  メモリ
１３２  メモリコントローラ
１４２  回転回路
１５２  圧縮回路
１６２  伸張回路
１２０１  入出力部
１２０２  レンダリング部
１２０３  画像処理部
１２０４  印刷処理部
【図１】
2005327044.tif 000003
【図２】
2005327044.tif 000004
【図３】
2005327044.tif 000005
【図４】
2005327044.tif 000006
【図５】
2005327044.tif 000007
【図６】
2005327044.tif 000008
【図７】
2005327044.tif 000009
【図８】
2005327044.tif 000010
【図９】
2005327044.tif 000011
【図１０】
2005327044.tif 000012
【図１１】
2005327044.tif 000013
【図１２】
2005327044.tif 000014