(57)【要約】【課題】  より少ないメモリ容量で画像の回転を実現する。【解決手段】  対象画像を記憶するメモリから、該対象画像を一定の縦横サイズ単位で読み出すステップ、読み出された一定の縦横サイズの元画像を一時記憶するステップ、読み出された一定の縦横サイズの元画像を一定の角度だけ回転させるステップ、回転処理のために一定の縦横サイズの画像データを一時記憶するステップ、回転された画像を、対象画像全体を回転させた場合のメモリ上における該当する場所に書き出すステップ、対象画像を構成する一定の縦横サイズの元画像のすべてに対し順次処理が行われるように前記各ステップを繰り返させるステップを含み、読み出すステップは、書き出すステップにより回転された画像の書き出しが行われる前に、メモリ上の書き出しが行われる場所の元画像を読み出す。【選択図】  図３
2006215918.tif 000002
【特許請求の範囲】
【請求項１】
対象画像を記憶するメモリから、該対象画像を一定の縦横サイズ単位で読み出す読出し手段と、
前記読出し手段により読み出された一定の縦横サイズの元画像を一時記憶する第１の記憶手段と、
前記読み出された一定の縦横サイズの元画像を一定の角度だけ回転させる回転手段と、
前記回転手段による回転処理のために前記一定の縦横サイズの画像データを記憶可能な第２の記憶手段と、
前記回転処理手段による回転された画像を、前記対象画像全体を回転させた場合の前記メモリ上における該当する場所に書き出す書出し手段と、
前記対象画像を構成する前記一定の縦横サイズの元画像のすべてに対し順次処理が行われるように前記各手段を制御する制御手段と、を備え、
前記読出し手段は、前記書出し手段により回転された画像の書き出しが行われる前に、前記メモリ上の書き出しが行われる場所の元画像を読み出す
ことを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記対象画像の回転処理を実行するにあたり、回転角度に基づいて、前記一定の縦横サイズ単位で指定された対象画像の読み出し開始位置を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
対象画像を記憶するメモリから、該対象画像を一定の縦横サイズ単位で読み出すステップと、
前記ステップにより読み出された一定の縦横サイズの元画像を一時記憶するステップと、
前記読み出された一定の縦横サイズの元画像を一定の角度だけ回転させるステップと、
前記回転させるステップによる回転処理のために前記一定の縦横サイズの画像データを一時記憶するステップと、
前記回転させるステップによる回転された画像を、前記対象画像全体を回転させた場合の前記メモリ上における該当する場所に書き出すステップと、
前記対象画像を構成する前記一定の縦横サイズの元画像のすべてに対し順次処理が行われるように前記各ステップを繰り返させるステップと、を含み、
前記読み出すステップは、前記書き出すステップにより回転された画像の書き出しが行われる前に、前記メモリ上の書き出しが行われる場所の元画像を読み出す
ことを特徴とする画像処理方法。
【請求項４】
前記制御ステップは、前記対象画像の回転処理を実行するにあたり、回転角度に基づいて、前記一定の縦横サイズ単位で指定された対象画像の読み出し開始位置を設定することを特徴とする請求項３に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はページ内に存在する矩形領域の画像データ、またはページ全体の印字データなどを縦横に等倍で回転する機能を備えた印刷装置などの画像形成装置を含む画像処理装置に関するものである。
【背景技術】
【０００２】
従来は矩形領域の画像を回転する際には、回転前の画像を格納するメモリ領域を確保するのは当然として、さらに回転後の画像を格納するために前述の領域と同じ大きさの領域をメモリ上に確保する必要があった。
【０００３】
ここで、図６に、従来例における矩形領域の画像を回転する際のメモリアクセスの順番を示す。従来は、回転処理を行う回路が扱える単位サイズごとの大きさで、同図に示す元画像から“１”，“２”，“３”，“４”...の順番で読み出しを行い、回転後のディスティネーションのメモリ領域（回転後の画像を格納するメモリ領域）に対して“１Ｄ”，“２Ｄ”，“３Ｄ”，“４Ｄ”...の順番で書き出しを行っていた（特許文献１参照）。
【０００４】
【特許文献１】特開平６−２５３１２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら従来例においては、図７に示すように画像の回転処理において必要なメモリ容量として、回転前の元データを格納する領域の他に、回転処理を行うために要するワーク領域と回転後の画像の全体あるいは一部を書き出すためのメモリ領域（図７ではメモリ空間上における回転前の元データと回転後の画像データをそれぞれ格納する領域の関係の一例を示している）が余分に必要になってしまうという問題があった。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、請求項１に記載の発明は、画像処理装置であって、対象画像を記憶するメモリから、該対象画像を一定の縦横サイズ単位で読み出す読出し手段と、前記読出し手段により読み出された一定の縦横サイズの元画像を一時記憶する第１の記憶手段と、前記読み出された一定の縦横サイズの元画像を一定の角度だけ回転させる回転手段と、前記回転手段による回転処理のために前記一定の縦横サイズの画像データを記憶可能な第２の記憶手段と、前記回転処理手段による回転された画像を、前記対象画像全体を回転させた場合の前記メモリ上における該当する場所に書き出す書出し手段と、前記対象画像を構成する前記一定の縦横サイズの元画像のすべてに対し順次処理が行われるように前記各手段を制御する制御手段とを備え、前記読出し手段は、前記書出し手段により回転された画像の書き出しが行われる前に、前記メモリ上の書き出しが行われる場所の元画像を読み出すことを特徴とする。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記制御手段は、前記対象画像の回転処理を実行するにあたり、回転角度に基づいて、前記一定の縦横サイズ単位で指定された対象画像の読み出し開始位置を設定することを特徴とする。
【０００８】
また、請求項３に記載の発明は、画像処理方法であって、対象画像を記憶するメモリから、該対象画像を一定の縦横サイズ単位で読み出すステップと、前記ステップにより読み出された一定の縦横サイズの元画像を一時記憶するステップと、前記読み出された一定の縦横サイズの元画像を一定の角度だけ回転させるステップと、前記回転させるステップによる回転処理のために前記一定の縦横サイズの画像データを一時記憶するステップと、前記回転させるステップによる回転された画像を、前記対象画像全体を回転させた場合の前記メモリ上における該当する場所に書き出すステップと、前記対象画像を構成する前記一定の縦横サイズの元画像のすべてに対し順次処理が行われるように前記各ステップを繰り返させるステップと、を含み、前記読み出すステップは、前記書き出すステップにより回転された画像の書き出しが行われる前に、前記メモリ上の書き出しが行われる場所の元画像を読み出すことを特徴とする。
【０００９】
また、請求項４に記載の発明は、請求項３に記載の画像処理方法において、前記制御ステップは、前記対象画像の回転処理を実行するにあたり、回転角度に基づいて、前記一定の縦横サイズ単位で指定された対象画像の読み出し開始位置を設定することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、一定の縦横サイズ単位の元画像の読み出しとその回転後の書き出しの順番を制御することにより、より少ないメモリ容量で画像の回転を実現できるので、対象画像を記憶するメモリの使用効率を上げることができる。その結果、システムのコストダウンを図れる効果がある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の最良の形態を図面を参照し説明する。
図１は本発明に係る回転処理部を内蔵した印刷装置の構成を説明する構成図である。同図に示す例は、例えばレーザビームプリンタの場合に対応する。
【００１２】
１０１で示す制御ユニットは、図示していないホストコンピュータより転送された印字コマンド・データを受信するホストインターフェース（Ｈｏｓｔ  Ｉ／Ｆ  Ｌｏｇｉｃ）であり、これを介して下記のＤＲＡＭへ印字コマンド・データを格納する。１０６はＣＰＵであり、後述するＲＯＭ（１０５）に格納された制御プログラムにしたがってプリンタ本体の全制御を行う演算・制御手段である。
【００１３】
１０２はＤＲＡＭで、ホストコンピュータからのコマンドおよび印字データ等を一時的に蓄えるページ（ｐａｇｅ）メモリとして、また、前記印字データを前述のＲＯＭ内に記述されたプログラムに従って解析して、ＰＣＬ、Ｐｏｓｔｓｃｒｉｐｔ、ＬＩＰＳ等のページ記述言語を中間言語であるディスプレイリスト（以下ＤＬと記す）（図示せず）に変換して格納するメイン（ｍａｉｎ）メモリとして、または描画展開したビットマップ形式の文字データを格納しておくためのフォントキャッシュ（Ｆｏｎｔ  ｃａｃｈｅ）領域として、さらには上記用途の他にＣＰＵ（１０６）が各プログラムを実行する際のワークエリアとしても使用される。１０３はハードティスク（Ｈａｒｄ  ＤＩＳＫ）であり、ホストコンピュータから送信される大量の印字データや再利用可能な各種の文書フォーマットを一時格納しておくための大容量記憶装置である。１０４はＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）であり、プリンタの印字に必要な種々の設定情報を記憶しておくための不揮発性の記憶手段である。
【００１４】
１０５は、後述する図３に示すフローチャートによる一連の制御を実現するためのプログラム、フォント（Ｆｏｎｔ）データなどを格納しているＲＯＭである。１０７はカラー４プレーン(Ｙ：イエロー、Ｍ：マゼンダ、Ｃ：シアン、Ｋ：ブラック)分の描画処理を実行する４つのモジュール（１０８）を制御するための制御部（描画モジュール）であり、１０２のメインメモリ（Ｍａｉｎ  Ｍｅｍｏｒｙ）から読み込んだディスプレイリスト（ＤＬ）を１０５のＲＯＭに格納されたプログラムに従って画像データへ展開（ラスタライズ）しバンドメモリ（Ｂａｎｄ  Ｍｅｍ．）（１０９）へ格納する。
【００１５】
１１０は前述の描画モジュール（Ｒａｓｔｅｒｉｚｅ  ｍｏｄｕｌｅ）（１０７）が展開したデータを圧縮するモジュールであり、１１１は縮小印字や文字の拡大処理を行うための拡大／縮小モジュール（拡大／縮小ｍｏｄ．）、１１２はバンドメモリ（１０９）に格納された圧縮データを伸張するためのデータ伸張モジュール（Ｄａｔａ  ｕｎｃｏｍｐｒｅｓｓ）である。１１３は本発明が適用される矩形画像の回転処理を行う回転モジュール（Ｒｏｔａｔｉｏｎ  ｍｏｄ．）である。また、１１４は、カラーの４ドラムタンデムプリンタエンジン（４-Ｄｒｕｍ  Ｔａｎｄｅｍ  Ｐｒｉｎｔｅｒ  Ｅｎｇｉｎｅ）（１１６）の紙搬送に対応して画像データをバンドメモリ（１０９）から読み出し、１１５のビデオインターフェース（ｖｉｄｅｏ  Ｉ／Ｆ  ｌｏｇｉｃ）へ同期して出力するためのビデオデータ転送モジュール（Ｓｈｉｐｐｉｎｇ  ｍｏｄ．）であり、１１８，１１７はそれぞれ、プリンタの表示や操作を受け付ける操作パネル（Ｏｐｅｒａｔｉｏｎａｌ  Ｐａｎｅｌ）とそのインターフェース（Ｏｐｅｒａｔｉｏｎａｌ  Ｐａｎｅｌ  Ｉ／Ｆ）である。
【００１６】
本発明に係る回転処理が適用される場合として例えば次のような例があげられる。
【００１７】
ホストコンピュータから送られた印字ジョブ内のコマンドとして印字用紙をＡ４として指定されたが、印刷装置内でＡ４給紙の紙が無くなっていたために替わりにＡ４Ｒの印字用紙を用いて印刷する場合がある。このときは、画像の変倍率は１００％（等倍）であり、印字用紙（印刷装置の紙搬送方向）に対して画像出力の方向を縦横逆にする、つまり一度展開した画像を９０度または２７０度の回転を施す場合に使用される。
【００１８】
図２は図１における回転モジュール（１１３）の内部構成を示したブロック図である。
本モジュールはデータの入出力を制御する入力バッファ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ）（２０３）と出力バッファ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ）（２０４）、回転元画像のソースデータを読み出すためのアドレスを生成するリードアドレス制御部（ｒｅａｄ  ａｄｄｒ．ｃｏｎｔｒｏｌ）（２０５）、回転後の画像のディスティネーションデータを書き込むためのアドレスを生成するライトアドレス制御部（ｗｒｉｔｅ  ａｄｄｒ．ｃｏｎｔｒｏｌ）（２０６）、また前述の入力バッファ（２０３）から受け取ったデータを格納して回転処理を行うためのワークメモリ（ｗｏｒｋ  ｍｅｍｏｒｙ）（２０２）がある。このワークメモリは、本回転モジュール（１１３）が扱うことが出来る最小の画像サイズ分（例として、幅が２５６ｐｉｘｅｌで高さが２５６  ｐｉｘｅｌ）の画像を一度に格納できるだけの容量を持っている。また、２０１はこのモジュールの全てのブロックを制御するＤＭＡシーケンサと主制御部からなるメインコントロールユニット（Ｍａｉｎ  ｃｏｎｔｒｏｌ  ｕｎｉｔ）である。
【００１９】
図３は図２に示された回転モジュール（１１３）により実行される処理フローを示したものである。以下順を追ってこの処理の詳細を説明する。
【００２０】
まずＳ１で回転処理を行う単位サイズ（一定の縦横サイズ）を元にしてその逓倍（整数倍）になるように、回転する対象の画像の矩形領域の幅、高さを指定する。次にＳ２で回転角度（９０度、または２７０度）に基づいて読み出し開始アドレスなどの諸パラメータの設定を行う。Ｓ３では、変数Ｐｎを初期化（＝１）し、そしてＳ４にてバンドメモリ（１０９）からＰｎ（＝１）番目の画像の読み出しを行い、Ｓ５〜Ｓ８にて順にＰｎ（＝１）の回転処理、Ｐｎ＋１（＝２）番目の元画像（これは、バンドメモリ（１０９）上で、回転処理後のＰｎ番目の画像データが書き込まれる場所にある画像）の読み出し、および回転後のＰｎ（＝１）番目の画像データの書き出しを行う（これは、対象画像全体を回転させた場合のバンドメモリ（１０９）上における該当する場所に対し行う）。この処理の詳細については、図４をもとに以下で説明する。同図に示すように、上記の一連の読み出し、回転処理、書き出しを、回転させる最終の単位サイズの元画像まで順に（Ｐｎ＝Ｐｎ＋１）繰り返し実施する（Ｓ５〜Ｓ１０）。なお、上記処理は、バンドメモリ（１０９）上の各プレーン（Ｋ／Ｙ／Ｍ／Ｃ−ｐｌａｎｅ）に対してそれぞれ行う。
【００２１】
図４は本発明による回転処理を行う画像単位の順番を図示したものである。ここでは左回りに９０度の回転を行ったときの例を示している。
【００２２】
同図において先ず左上の“１”の元画像（回転処理を行う単位サイズの元画像）をバンドメモリ（１０９）から読み出し入力バッファ（２０３）を介して回転モジュール（１１３）内のワークメモリ（２０２）に格納して回転処理（後述）を行う。回転後の書き出し位置は元画像の“２”の位置であるので、“２”の位置に書き出す前に先にバンドメモリ（１０９）から“２”の元画像を読み出して入力バッファ（２０３）へ格納しておく。その後、出力バッファ（２０４）へ回転後の画像“１Ｄ”を書き出し、回転モジュール（１１３）の主制御部がバンドメモリ（１０９）の“２”の画像があった位置に書き戻す。次に先に読み出して入力バッファ（２０３）に格納している“２”の画像についても同様にして回転処理を行い、前述の出力バッファ（２０４）へ書き出す。
【００２３】
“２”の元画像の回転後の書き出し位置は、元画像の“３”の位置であるので、回転後の画像“２Ｄ”を書き出す前に“３”の元画像を入力バッファ（２０３）へ取り込む。それを受けて、主制御部が元画像の“３”の位置に回転後の画像“２Ｄ”を書き出す。以後は上記と同様に、“４”の画素読み出し→“１”の位置に“４Ｄ”の書き出し→“５”の画像の読み出し＆回転処理→“６”の画像の読み出し→“５Ｄ”の画像の書き出し→“６”の画像の回転処理→“７”の画像の読み出し→“６Ｄ”の画像の書き出し、といった一連の処理を最後の単位サイズの画像まで行う。つまり、「バンドメモリ（１０９）から元画像の読み出し」、「元画像の回転処理」、「バンドメモリ（１０９）上の、回転された画像の格納先にある元画像の読み出し」、「回転された画像のバンドメモリ（１０９）への書き出し」といった一連の処理を上記のような順番で順次処理していく。
【００２４】
図５は本実施例の回転処理を行うモジュールが、扱う画像単位の矩形領域について読み出す順番と回転後の書き出す順番を図示したものである。  
同図においては幅が６４ビットでライン数が６４ラインの大きさを回転処理の単位サイズとしている。元画像をバンドメモリ（１０９）から読み出すときには、例えば、同図に示す１ｓ  ｗｏｒｄ，  ２ｓ  ｗｏｒｄ，…，６４ｓ  ｗｏｒｄまでを上から順に読み出す。
【００２５】
同図に示す例で、元画像の右上の単位サイズの領域の第ｎライン（このとき、ｌｉｎｅ＝ｎ）を読み出す場合の読み出し開始アドレスは、ｉｍｇ＿ｓｔａｒｔ＿ａｄｄｒ＋（Ｗｉｄｔｈ-０ｘ８）＋Ｗｉｄｔｈ＊（ｌｉｎｅ-１）となる。ただし、ｌｉｎｅは、Ｗｉｄｔｈ＊Ｌｉｎｅの元画像について、ｉｍｇ＿ｓｔａｒｔ＿ａｄｄｒを基準として何番目のｌｉｎｅかを示すものである。また上式では、１ワードを３２ｂｉｔ、１ワード単位のアドレス増分を０ｘ４とする。したがって、単位サイズの領域の６４ｂｉｔの幅では２ワードとなり、同図のＷｉｄｔｈは８ワード分（２５６ｂｉｔ）あり、元画像の１ライン毎のアドレスの増分は０ｘ２０となる（上式におけるＷｉｄｔｈは、このアドレスの増分である）。なお、０ｘ８、０ｘ２０や図中の０ｘ４は、それぞれ１６進数の数値であり、「＊」は乗算演算子である（以下、同様）。
【００２６】
９０度回転の場合は１ｄ  ｗｏｒｄ（１ｓ  ｗｏｒｄ〜  ６４ｓ  ｗｏｒｄのｂｉｔ０），  ２ｄ  ｗｏｒｄ（１ｓ  ｗｏｒｄ〜  ６４ｓ  ｗｏｒｄのｂｉｔ１），...  ６４ｄ  ｗｏｒｄ（１ｓ  ｗｏｒｄ〜  ６４ｓ  ｗｏｒｄのｂｉｔ６３）のように元画像の各ラインにおける同一ビットを６４ライン分まとめて１つのｗｏｒｄとして書き出す。上記で読み出した単位サイズの画像の書き出しのアドレスは図５のｉｍｇ＿ｓｔａｒｔ＿ａｄｄｒを基準として、ｉｍｇ＿ｓｔａｒｔ＿ａｄｄｒ＋Ｗｉｄｔｈ＊（ｌｉｎｅ−１）となる。
【００２７】
なお、回転モジュール（１１３）による回転処理は、出力バッファ（２０４）に単位サイズの画像データを記憶できる容量をもたせ、ワークメモリ（２０２）から出力バッファ（２０４）へ、図５に示される書き出しの順番で書き出すことにより実現される（このとき、出力バッファ（２０４）には単位サイズの回転後画像が格納される）。この出力バッファ（２０４）に格納された回転後画像は、出力バッファ（２０４）からバンドメモリ（１０９）の該当する位置へ転送される。また、回転モジュール（１１３）による回転処理は、ワークメモリ（２０２）に格納された単位サイズの元画像のデータを、図５に示される書き出しの順番で、出力バッファ（２０４）を介してバンドメモリ（１０９）へ書き出す（転送する）ことによっても実現できる。この場合は、転送が完了した時点で、回転処理が完了することとなる。
【００２８】
図８に本発明におけるバンドメモリ（１０９）（描画メモリ）の使用領域を示す。前述したように元画像と同じ領域に対して回転した画像を書き込むので、バンドメモリ（１０９）については元画像の格納領域しか使用しないために従来の半分のメモリ領域しか占有していない。また、回転モジュール（１１３）にて、回転処理や一次記憶のために必要な記憶容量は、回転処理を行う単位サイズの２倍＋出力バッファ（２０４）の記憶容量（この容量は、回転処理を行う単位サイズ以下）にとどまるので、全体として省メモリの構成を実現できる。
【図面の簡単な説明】
【００２９】
【図１】本発明による一実施例である印刷装置の構成を示す図である。
【図２】本発明が適用される回転モジュールの構成を示す図である。
【図３】回転モジュールの動作フローを示す図である。
【図４】本発明にかかわる回転動作における描画メモリ（バンドメモリ）からの読み出し、書き出しの順番を示す図（その１）である。
【図５】本発明にかかわる回転動作における描画メモリからの読み出し、書き出しの順番を示す図（その２）である。
【図６】従来例における回転動作における描画メモリからの読み出し、書き出しの順番を示す図である。
【図７】従来例における描画メモリの使用領域を示す図である。
【図８】本発明における描画メモリの使用領域（一例）を示す図である。
【符号の説明】
【００３０】
１０１…ホストインターフェース（Ｈｏｓｔ  Ｉ／Ｆ  ｌｏｇｉｃ）
１０２…ＤＲＡＭ
１０３…ハードディスク（Ｈａｒｄ  Ｄｉｓｋ）
１０４…ＮＶＲＡＭ
１０５…ＲＯＭ
１０６…ＣＰＵ
１０７…描画モジュール（Ｈａｒｄｗａｒｅ  Ｒａｓｔｅｒ  ｌｏｇｉｃ）
１０８…バンドメモリ（Ｂａｎｄ  Ｍｅｍｏｒｙ）
１１０…データ圧縮モジュール（Ｄａｔａ  ｃｏｍｐｒｅｓｓ  ｍｏｄｕｌｅ）
１１１…拡大・縮小モジュール（拡大・縮小ｍｏｄｕｌｅ）
１１２…データ伸張モジュール（Ｄａｔａ  ｕｎｃｏｍｐｒｅｓｓ  ｍｏｄｕｌｅ）
１１３…回転モジュール（ｒｏｔａｔｉｏｎ  ｍｏｄｕｌｅ）
１１４…ビデオデータ転送モジュール（Ｓｈｉｐｐｉｎｇ  ｍｏｄ．：Ｖｉｄｅｏ  ｄａｔａ  ｓｈｉｐｐｉｎｇ  ｌｏｇｉｃ）
１１５…ビデオインターフェース（Ｖｉｄｅｏ  Ｉ／Ｆ  ｌｏｇｉｃ）
１１６…４ドラムタンデムプリンタエンジン（４−Ｄｒｕｍ  Ｐｒｉｎｔｅｒ  Ｅｎｇｉｎｅ）
１１７…操作パネルインターフェース（Ｏｐｅｒａｔｉｏｎａｌ  Ｐａｎｅｌ  Ｉ／Ｆ  ｌｏｇｉｃ）
１１８…操作パネル（Ｏｐｅｒａｔｉｏｎａｌ  Ｐａｎｅｌ）
【図１】
2006215918.tif 000003
【図２】
2006215918.tif 000004
【図３】
2006215918.tif 000005
【図４】
2006215918.tif 000006
【図５】
2006215918.tif 000007
【図６】
2006215918.tif 000008
【図７】
2006215918.tif 000009
【図８】
2006215918.tif 000010