(57)【要約】      （修正有）【課題】多数階調の画像データを正方形の矩形ブロック単位で回転処理する場合に、ワークメモリ使用効率の低下とメインメモリアクセス時のメモリ帯域負荷を軽減することが可能な、画像処理装置を提供する。【解決手段】画像データを格納する第一のメモリ１１４と、前記画像データを所定の矩形画素単位で読み出し、書き戻しを行う画像データ転送部と、矩形画像データ領域を格納する第二のメモリと、前記矩形画素単位で読み出した画像データの書き込み、読み出しの制御を行う回転部と、を用いて回転処理を行う回転処理部１１９と、を備え、前記回転処理部１１９は、前記画像データのビット階調数ｎ（ｎは正の整数）に応じて、前記画像データ転送部のいずれかが、前記矩形画素のデータを、前記第一のメモリ１１４の連続アドレス方向に長さｎでバースト転送し、前記第二のメモリに、前記矩形画素からなる矩形ブロックをｎ個格納して回転処理を行う。【選択図】図１
2015055944.tif 000002
【特許請求の範囲】
【請求項１】
画像データを格納する第一のメモリ（１１４）と、
前記第一のメモリ（１１４）上の前記画像データ（１１０１）に対して、
前記画像データ（１１０１）を所定の矩形画素単位で読み出し、および、前記第一のメモリへの書き戻しを行う画像データ転送部（６０１、６０４）と、
矩形画像データ領域を格納する第二のメモリ（６０３）と、
前記画像データ転送部（６０１、６０４）を用いて、前記第二のメモリ（６０３）に対して、前記矩形画素単位で読み出した画像データの書き込み、および、読み出しの制御を行う回転部（６０２）と、
を用いて回転処理を行う画像回転部（１１９）と、
を備え、
前記画像回転部（１１９）は、前記画像データ（１１０１）のビット階調数ｎ（ｎは正の整数）に応じて、
前記画像データ転送部（６０１、６０４）のいずれかが、前記矩形画素のデータを、前記第一のメモリ（１１４）の連続アドレス方向（１１１１〜１１１５）に長さｎでバースト転送し、前記第二のメモリ（６０３）に、前記矩形画素からなる矩形ブロックをｎ個格納して回転処理を行う、
ことを特徴とする画像処理装置。
【請求項２】
前記矩形画素単位の領域は正方形矩形画素であり、前記第二のメモリ（６０３）は、正方形矩形画素単位で回転処理を行う、
ことを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記正方形矩形画素はｍ×ｍ（ｍはｎの倍数）であり、前記第二のメモリ（６０３）が、１辺がｍ×ｎビット長からなる正方形ビット領域である、
ことを特徴とする、請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置における画像回転方法に関し、より詳細には、画像を矩形ブロック単位に分割し矩形ブロック単位で画像を回転する画像処理装置および画像回転方法に関する。
【背景技術】
【０００２】
デジタル複合機に代表される画像処理装置では、デジタル化した画像を装置内部に取り込み、装置の使用条件やユーザ設定に応じて各種の画像処理を行い、画像出力を行う。例えば、デジタル複合機でプリント処理を行う場合、プリントデータの用紙向き（例えば、Ａ４用紙横）と出力用紙の向き（例えば、Ａ４用紙縦）とを揃えるために、装置内部で画像回転処理を行う必要がある。一般に、画像の回転処理は、回転方向に応じて画像の縦と横の画素データを入れ替えること、即ち、画像データをあるメモリ上に格納し所定のアドレス操作を行うことで実現できる。
【０００３】
ここで、近年、プリント出力物の高画質化要求に伴いデジタル複合機が内部で扱う画像解像度は高まり、その分装置内部で扱う画素数は増加する。例えば、画像解像度が６００ｄｐｉ（ｄｏｔ  ｐｅｒ  ｉｎｃｈ）から１２００ｄｐｉに倍増する場合、画像１ページ分の画素数は４倍となる。また、画像を構成する画素について、１画素あたりの色階調数の分だけ、１画素を保持するのに必要なメモリ容量が増加する。そのため、画像回転処理で使用するメモリに係るコストを下げるためには、画像１ページ分ではなく、より小さい画像単位分のメモリを用いて回転処理を行うことが望ましい。これを実現するために、特許文献１では、画像を所定の矩形ブロック単位に分割し、当該矩形ブロックを構成する画像データ分のメモリ領域を用いて回転処理を行う手法が開示されている。
【０００４】
特許文献１によれば、１ページ分の画像データを回転処理する際に要するメモリ容量が足りない場合に、矩形ブロック単位で画像回転処理ができる。また、画像データを構成する画素が、１画素あたりＮビット（Ｎは２のべき乗）の色階調で表現される場合でも、色階調に応じて、画像データから切り出す矩形ブロックの幅、および、高さを適切に設定し、ブロック単位で画像回転処理ができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１７８０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、回転処理を行う画像データが、１画素あたりＮビットの色階調で表現される画像データを正方形の矩形ブロックに分割して回転処理することを考える。矩形ブロックを正方形とするのは、回転時に入れ替える画像の縦と横の画素入れ替え数が同じになり、回転処理設定が容易となるためである。
【０００７】
正方形の矩形ブロックに対応する画像回転処理に用いるメモリ領域（以下、ワークメモリ、とする）を、３２ワード×３２ビット分とする。
【０００８】
１画素あたり１ビットの画像データ（Ｎ＝１）の場合、ワークメモリが保持できる最大の正方形画像サイズは、３２（縦）×３２（横）画素であり、ワークメモリの３２ワード×３２ビット全てを使用して回転処理を行う。
【０００９】
次に、１画素あたり２ビットの画像データ（Ｎ＝２）の場合、ワークメモリが保持できる最大の正方形画像サイズは、１６（縦）×１６（横）画素分となる。正方形矩形画像の縦、および、横の画素数が１６となるのは、１画素あたり２ビットデータを持つため、例えば、当該２ビットデータが横方向に並ぶとすると、横１６画素で３２ビット（＝１６×２）を要しワークメモリ一杯となるためである。このとき、ワークメモリの半分の１６ワード×３２ビットを使用して回転処理を行う。
【００１０】
同様に、１画素あたり４ビットの画像データ（Ｎ＝４）の場合、ワークメモリが保持できる最大の正方形画素サイズは、８（縦）×８（横）画素分となり、このとき、ワークメモリの４分の１の８ワード×３２ビットを使用して回転処理を行う。
【００１１】
このように、１画素あたりＮビットの画像データを正方形の矩形ブロック単位で回転処理する場合に用いるワークメモリの使用効率はＮ分の１であり、Ｎが２以上の多値階調の画像データの回転時にワークメモリの使用効率が低下する問題が生じる。
【００１２】
また、矩形ブロック単位で回転すると、１度に回転できる回転画素数がＮ分の１となるため、矩形ブロック切り出しに係る処理回数がＮ倍となる。このため、メインメモリに保持する画像データを矩形ブロックで画像を取得し回転処理するシステム構成では、メインメモリに対するアクセス数が増え、その分メモリ帯域負荷が増大する問題が生じる。
【００１３】
本発明は、上述した問題を鑑みてなされたものである。その目的とするところは、多数階調の画像データを正方形の矩形ブロック単位で回転処理する場合に、ワークメモリ使用効率の低下とメインメモリアクセス時のメモリ帯域負荷を軽減することが可能な、画像処理装置を提供することである。
【課題を解決するための手段】
【００１４】
画像データを格納する第一のメモリ（１１４）と、
前記第一のメモリ（１１４）上の前記画像データ（１１０１）に対して、
前記画像データ（１１０１）を所定の矩形画素単位で読み出し、および、前記第一のメモリへの書き戻しを行う画像データ転送部（６０１、６０４）と、
矩形画像データ領域を格納する第二のメモリ（６０３）と、
前記画像データ転送部（６０１、６０４）を用いて、前記第二のメモリ（６０３）に対して、前記矩形画素単位で読み出した画像データの書き込み、および、読み出しの制御を行う回転部（６０２）と、
を用いて回転処理を行う画像回転部（１１９）と、
を備え、
前記画像回転部（１１９）は、前記画像データ（１１０１）のビット階調数ｎ（ｎは正の整数）に応じて、
前記画像データ転送部（６０１、６０４）のいずれかが、前記矩形画素のデータを、前記第一のメモリ（１１４）の連続アドレス方向（１１１１〜１１１５）に長さｎでバースト転送し、前記第二のメモリ（６０３）に、前記矩形画素からなる矩形ブロックをｎ個格納して回転処理を行う、
ことを特徴とする。
【発明の効果】
【００１５】
本発明により、画像回転手段はワークメモリを全て使用して回転処理を行いワークメモリの使用効率が低下しない。また、Ｍ個の矩形ブロック読み出し時にバースト読み出しが可能となり、矩形ブロックを１個単位で読み込む場合に対してメインメモリに対するリードアクセス効率が向上しアクセスオーバーヘッドを低減することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明における、画像処理装置の全体構成を示すブロック図である。
【図２】本発明における、ホストコンピュータからの印刷データを、画像処理装置が符号化して格納する処理を示すフローチャートである。
【図３】本発明における、画像処理装置が符号化データを復号化してプリント出力する処理を示すフローチャートである。
【図４】本発明における、中間画像データを構成する画素を模式的に示した図である。
【図５】本発明における、画像処理部の構成を示す模式図である。
【図６】本発明における、回転処理部の構成を示す模式図である。
【図７】本発明における、回転処理部が有するワークメモリの構成を示す模式図である。
【図８】本発明における、回転処理に係るブロック間の相互処理関係を示すシーケンス図である。
【図９】本発明における、回転処理部が行う処理を示すフローチャートである。
【図１０】本発明における、回転処理部が有する入力データ転送部が行う処理を示すフローチャートである。
【図１１】本発明における、回転処理部が行う回転処理前のデータ読み出し処理を示す模式図である。
【図１２】本発明における、回転部処理部が有する回転部が行う処理を示すフローチャートである。
【図１３】本発明における、回転処理部が行う回転処理後のデータ書き込み処理を示す模式図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００１８】
（第１の実施形態）
以下、本発明における第１の実施形態について説明する。
【００１９】
図１に、本実施形態における画像処理システムの全体構成を示すブロック図を示す。
【００２０】
同図に示す画像処理システムは、大きく、ホストコンピュータ（１０１）と、画像処理装置（１０２）と、から構成される。
【００２１】
ホストコンピュータ（１０１）は、一般のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やＷＳ（Ｗｏｒｋ  Ｓｔａｔｉｏｎ）などのコンピュータであり、これらのコンピュータ上で作成された画像や文書は、ＰＤＬデータとして画像装置（１０２）に入力される。
【００２２】
画像処理装置（１０２）は、ホストコンピュータ（１０１）から出力されたデータを受信する。即ち、画像処理装置（１０２）とホストコンピュータ（１０１）との間でデータ通信可能なネットワークが形成されていることを意味するが、このネットワークの構成については特に限定するものではない。
【００２３】
画像処理装置（１０２）は、ホストコンピュータ（１０１）から受信したデータに基づいて各種の画像処理を施し、画像処理済みのデータをプリントエンジン部（１２３）へ出力する。画像処理装置（１０２）が行う処理の詳細については後述する。プリントエンジン部（１２３）は、画像処理装置（１０２）から出力された画像処理済みのデータに基づいて、紙などの記憶媒体上に印刷処理を行う。
【００２４】
なお、本実施形態では、画像処理装置（１０２）にデータを入力するのはホストコンピュータ（１０１）としたが、これ以外の装置であっても良く、例えば、不図示のスキャナ入力部から出力されたデータを画像処理装置（１０２）に入力するようにしても良い。
【００２５】
次に、画像処理装置（１０２）の構成について説明する。
【００２６】
画像処理装置のコントローラ部は、ホストＩ／Ｆ部（１１１）と、ＰＤＬ処理部（１１２）と、ＣＰＵ（１１３）と、ＲＡＭ（１１４）と、ＲＯＭ（１１５）と、符号化部（１１６）と、復号化部（１１７）と、画像処理部（１１８）と、回転処理部（１１９）と、記憶装置制御部（１２０）と、記憶装置（１２１）と、エンジンＩ／Ｆ部（１２２）と、プリントエンジン部（１２３）と、から構成される。
【００２７】
ホストＩ／Ｆ部（１１１）は、ホストコンピュータ（１０２）から出力されたＰＤＬデータを受信するためのインタフェースとして機能する。なお、ホストＩ／Ｆ部（１１１）は、画像処理装置（１０２）とホストコンピュータ（１０１）とを繋ぐネットワークに応じて異なり、例えば、イーサネット（登録商標）やシリアルインターフェース等で構成される。
【００２８】
ＰＤＬ処理部（１１２）は、ホストＩ／Ｆ部（１１１）が受信したＰＤＬデータを展開する処理を行う。
【００２９】
ＣＰＵ（１１３）は、ＲＡＭ（１１４）やＲＯＭ（１１５）に格納されているプログラムやデータを用いて本画像処理装置（１０２）全体の制御を行うと共に、画像処理装置（１０２）が行う後述の各処理を実行する。
【００３０】
ＲＡＭ（１１４）は、画像処理装置（１０２）のシステムメモリであり、ホストＩ／Ｆ部（１１１）を介して、ホストコンピュータ（１０１）から受信したデータを一時的に記憶する他、ＣＰＵ（１１３）が各種処理を実行する際に用いるワークエリアとなる。
【００３１】
ＲＯＭ（１１５）は、ＣＰＵ（１１３）が本画像処理装置（１０２）全体を制御する際に実行するプログラムやデータ、および、画像処理装置（１０２）の設定データなどが格納されている。
【００３２】
画像処理部（１１８）は、ホストコンピュータ（１０１）から出力されたデータから成る画像に対して、例えば、色空間変換、フィルタ、ハーフトーン処理等の各種画像処理を行う。
【００３３】
回転処理部（１１９）は、本発明に係る画像データを矩形ブロック単位で回転処理を行う。画像処理部（１１９）の詳細については後述する。
【００３４】
符号化部（１１６）は、ＰＤＬ処理部（１１２）において展開された画像に対して、例えば、多値画像データに対してはＪＰＥＧ、２値画像データに対してはＪＢＩＧ、等の圧縮方式で符号化処理を行う。
【００３５】
復号化部（１１７）は、符号化部（１１６）で符号化処理された圧縮方式に基づき、復号化処理を行い、符号化前の画像を生成する。
【００３６】
記憶装置制御部（１２０）は、本画像処理装置（１０２）が扱う画像データを記憶装置（１２１）に記録するための制御を行う。
【００３７】
記憶装置（１２１）は、ハードディスクや半導体メモリからなる大容量記憶媒体であり、画像処理装置（１０２）がホストコンピュータ（１０１）から受信した画像データや、処理時に生成する中間画像データを記憶する。
【００３８】
エンジンＩ／Ｆ部（１２２）は、本画像処理装置（１０２）による画像処理済みのデータをプリントエンジン部（１２３）に出力するための一連の処理を行う。
【００３９】
上述した各部は、画像処理装置（１０２）の内部バス（１３１）によって、互いに接続される。各部間のデータ転送は、各部と内部バス（１３１）との間に設けられたＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）からなる不図示のデータ転送部を用いて行う。
【００４０】
次に、図２のフローチャートを用いて、ホストコンピュータ（１０１）から画像処理装置（１０２）にデータを出力した場合に画像処理装置（１０２）が行う処理を説明する。
【００４１】
図２のフローチャートに示す処理の実態は、ＲＯＭ（１１５）に格納されたプログラムであり、ホストＩ／Ｆ部（１１１）を介して、ホストコンピュータ（１０１）から出力されたＰＤＬデータの受信をＣＰＵ（１１３）が検知することで開始される。なお、これ以降に述べるフローチャートの実態は、特記なき場合、ＲＯＭ（１１５）に格納されたプログラムであるものとする。
【００４２】
先ず、ステップ（Ｓ２０１）において、ＣＰＵ（１１３）は、受信したＰＤＬデータを一時的にＲＡＭ（１１４）に格納する。次に、ステップ（Ｓ２０２）へ遷移し、ＣＰＵ（１１３）が、受信したＰＤＬデータをＤＬ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ）に展開した後、ステップ（Ｓ２０３）へ遷移し、一時的にＲＡＭ（１１４）に格納する。ステップ（Ｓ２０４）において、ＰＤＬ処理部（１１２）が、格納したＤＬに基づいて画像展開処理を行い、画像処理装置（１０２）内で扱うための画像データである、中間画像データを生成する。そして、ステップ（Ｓ２０５）において、符号化部（１１６）が、前記中間画像データを符号化しデータ圧縮を行う。ステップ（Ｓ２０６）において、前記符号化したデータを、記憶装置制御部（１２０）を介して記憶装置（１２１）へ格納する。以上の処理で、ホストコンピュータ（１０１）から送信された画像データ内容に応じて、１ページ以上の符号化圧縮された画像データが記憶装置（１２１）に格納される。
【００４３】
次に、図３に示すフローチャートを用いて、記憶装置（１２１）に格納された符号化圧縮された中間画像データを読み出し、プリントエンジン部（１２３）に出力してプリントを行う処理を説明する。
【００４４】
図３のフローチャートに示す処理は、ＣＰＵ（１１３）が、記憶装置制御部（１２０）から符号化した中間画像データの格納処理終了通知を受信後に、復号化部（１１７）へプリント開始命令を指示することで開始される。
【００４５】
まず、ステップ（Ｓ３０１）において、画像処理部（１１８）、および、回転処理部（１１９）への動作設定を行う。具体的には、ＣＰＵ（１１３）が、画像処理部（１１８）が有する不図示の画像処理モジュール、および、回転処理部（１１９）が有する各レジスタに対して、必要な設定値を書き込む。
【００４６】
次に、ステップ（Ｓ３０２）へ遷移し、ＣＰＵ（１１３）は、記憶装置（１２１）に格納されている符号化された中間画像データを、ＲＡＭ（１１４）へ出力するよう指示する。同時に、ＣＰＵ（１１３）は、復号化部（１１７）に対してＲＡＭ（１１４）から前記符号化された中間画像データを読み出すよう指示する。復号化部（１１７）は、読み出した前記符号化された中間画像データを順次復号化しつつ、復号化した中間画像データを、ＲＡＭ（１１４）へ出力する。なお復号化部（１１７）が行うデータの読み出し、および、出力は、復号化部（１１７）が内部に有する不図示のデータ転送部を用いて行うものとする。
【００４７】
次に、ステップ（Ｓ３０３）へ遷移し、画像処理部（１１８）は、内部に有する不図示のデータ転送部を用いてＲＡＭ（１１４）から中間画像データを読み出し、プリント出力用の画像処理を行いプリントデータへ変換し、再度ＲＡＭ（１１４）へ出力する。前記プリントデータとは、画像処理部（１１８）が有する不図示の各種の画像処理後のデータであり中間調処理されたデータである。中間調処理設定に応じて、前記中間画像データよりも低階調の画素データで構成される画像データである。
【００４８】
次に、ステップ（Ｓ３０４）へ遷移し、回転処理部（１１９）は、内部に有する不図示のデータ転送部を用いてＲＡＭ（１１４）からプリントデータを矩形ブロック単位で読み出し回転処理を行い、再度ＲＡＭ（１１４）へ出力する。回転処理部（１１９）で行う処理の詳細は後述する。
【００４９】
そして、ステップ（Ｓ３０５）へ遷移し、プリントデータを、内部に有する不図示のデータ転送部を用いてＲＡＭ（１１４）に出力後、エンジンＩ／Ｆ部（１２２）が、内部に有する不図示のデータ転送部を用いてプリントエンジン部（１２３）へ出力する。
以上の各処理により、ホストコンピュータ（１０１）から受信したデータを、プリントエンジン部（１２３）へ出力することができる。
【００５０】
なお、以上の説明では、スプールデータは記憶装置（１２１）に保持するとしたが、これとは別に全てのデータをＲＡＭ（１１４）にのみ保持しつつ、上述した各種処理を行い、プリントエンジン部（１２２）に出力するようにしても良い。
【００５１】
図４は、前記中間画像データを構成する画素を模式的に示した図である。
【００５２】
中間画像データを構成する各画素のデータは、色コンポーネント毎のビット階調を示す画像情報で構成される。本実施例では、モノクロ画素で階調が８ビットであるものとする。なお、画像情報のデータ長、および、色空間情報はこれに限定されるものでは無く、例えば、Ｒ、Ｇ、Ｂの色空間で、階調８ビットからなるカラー画素であっても良い。
【００５３】
次に、図５を用いて、画像処理部（１１８）のブロック構成を説明する。
【００５４】
画像処理部（１１８）は、大きく、データ転送を行うブロックと、画像処理を行うブロックとから構成される。本実施例では、データ転送を行うブロックとして、入力データ転送部（５０１）と、出力データ転送部（５０２）、画像処理を行うブロックとして画像処理ブロック１〜４（５０３〜５０６）と、から構成されるものとする。ここで、画像処理部（１１８）を構成する画像処理ブロックは、中間調処理を行うブロックを少なくとも一つ含むものとし、本実施例では画像処理ブロック３（５０５）がこれに該当するものとする。また、本実施例における他の画像処理ブロックは、画像処理ブロック１（５０３）が下地処理、画像処理ブロック２（５０４）が色変換処理、画像処理ブロック４（５０６）がトリミング処理とする。なお、画像処理ブロックの処理内容、および、段数は一例であり、実現する画像処理に応じて増減しても良い。
【００５５】
入力データ転送部（５０１）は、内部バス（１３１）に接続され、同じく内部バス（１３１）に接続されるＲＡＭ（１１４）に予め格納された中間画像データを画像処理部（１１８）内部へ読み込む。
【００５６】
入力データ転送部（５０１）の動作に要する設定としては、ＲＡＭ（１１４）上に存在する中間画像データを構成する画像情報の開始アドレス番地、入力データサイズ等があり、ＣＰＵ（１１３）が画像処理部（１１８）の有する不図示のレジスタに設定する。
【００５７】
出力データ転送部（５０２）は、内部バス（１３１）に接続され、画像処理部（１１８）で処理された画像データを、内部バス（１３１）に接続されるＲＡＭ（１１４）に対して転送する。出力データ転送部（５０２）の動作に必要な設定は、ＲＡＭ（１１４）上に画像処理済みのプリントデータを書き出すための、開始アドレス番地と、出力データサイズ等があり、ＣＰＵ（１１３）が画像処理部（１１８）の有する不図示のレジスタに設定する。
【００５８】
画像処理ブロック１〜４（５０３〜５０６）は、入力データ転送部（５０１）から出力される画素データに対して、各画像処理ブロック固有の画像処理をパイプライン的に行い、処理結果であるプリントデータを出力データ転送部（５０２）へと出力する。本実施例では、中間調処理を行う画像処理ブロック３（５０５）の中間調処理出力設定は２ビットとし、ＲＡＭ（１１４）から取得する８ビット階調の中間画像データは、２ビット階調のプリントデータに変換される。
【００５９】
次に、図６、および、図７を用いて、回転処理部（１１９）の構成を説明する。
【００６０】
図６に、回転処理部（１１９）のブロック構成図を示す。
【００６１】
入力データ転送部（６０１）は、内部バス（１３１）に接続され、ＲＡＭ（１１４）に予め格納されたプリントデータを所定の矩形ブロック単位で画像処理部（１１９）内部へ読み込み、矩形ブロック画素を所定のライン単位で回転部（６０３）へ出力する。
【００６２】
回転部（６０２）は、入力データ転送部（６０１）から受信する矩形ブロックを構成する画素を、所定のライン単位で、ワークメモリ（６０３）へ転送する。また、回転部（６０２）は、ワークメモリ（６０３）に回転処理に必要な矩形ブロックのデータを転送後、所定のアドレス走査でワークメモリ（６０３）からデータを読み出すことで回転処理を行いつつ、読み出したデータを出力データ転送部（６０２）へ転送する。
【００６３】
図７に、ワークメモリ（６０３）のブロック構成図を示す。
【００６４】
ワークメモリ（６０３）は、矩形ブロック単位で画像の回転処理に用いるメモリ領域である。本実施例では、ワークメモリ（６０３）の容量は３２ワード×３２ビット分とする。ワークメモリ（６０３）を３２ビット×３２ビット分の正方形ビットと見立てると、回転部（６０２）は、ワード方向（６１０で示す向き）での書き込みと、ビット方向（６１１で示す向き）に任意のデータ長でデータ読み出しができるものとする。なお、ワークメモリ（６０３）の実装形態は、前記アクセス制御ができれば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）、または、ＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）のいずれで構成しても良い。
【００６５】
出力データ転送部（６０４）は、内部バス（１３１）に接続され、回転部（６０２）からワークメモリ（６０３）を用いて回転した回転済みデータを受信し、内部バス（１３１）に接続されるＲＡＭ（１１４）に対して転送する。
【００６６】
上述した以外に、回転処理部（１１９）は不図示のレジスタを有する。レジスタ設定値には、データ読み書き用に、ＲＡＭ（１１４）上に存在する中間画像データの画像情報の開始アドレス番地と、回転済みデータの書き込みのアドレス番地と、主走査画像サイズ、および、副走査画像サイズと、矩形切り出しサイズがある。
【００６７】
更に、回転角度設定と、処理対象データのビット階調の設定レジスタがある。回転角度設定は、時計まわりに例えば、９０、１８０、２７０度の設定が可能であり、本実施例では９０度回転設定であるものとする。また、処理対象データのビット階調、の設定値は、画像処理部（１１８）が有する中間調処理を行う画像処理ブロック３（５０５）の中間調出力設定と対応し、本実施例では２ビットであるものとする。
【００６８】
続いて、図８〜図１３を用いて、回転処理部（１１９）が行う矩形ブロック単位での回転処理制御を詳細に説明する。
【００６９】
まず、図８のシーケンス図を用いて、回転処理部（１１９）の構成要素（６０１〜６０４）と、ＣＰＵ（１１３）、および、ＲＡＭ（１１４）との相互処理関係を説明する。図８の処理シーケンスは、上述したステップ（Ｓ３０３）において、画像処理部（１１８）が処理したプリントデータをＲＡＭ（１１４）へ出力し終えたことをＣＰＵ（１１３）が検出した後、開始されるものとする。
【００７０】
図８の処理シーケンス開始前には、回転処理部（１１９）の動作に必要なレジスタ値は、上述したステップ（Ｓ３０１）で設定済みであるものとし、本実施例における設定値は、処理対象データのビット階調が２ビット、矩形切り出しサイズが１６×１６画素等である。
【００７１】
まず、ＣＰＵ（１１３）は、画像回転部（１１９）に対して回転処理開始指示を行う（８０１）。具体的には、ＣＰＵ（１１３）は、回転処理部（１１９）が備える不図示の処理開始設定用レジスタビット値（初期値は０）に１を書き込む。
【００７２】
回転処理部（１１９）は、前記処理開始設定用レジスタビット値が１であることを確認すると、入力データ転送部（６０１）は、ＲＡＭ（１１４）から処理対象データであるプリントデータを読み出し（８０２）つつ、読み出したプリントデータを回転部（６０２）へ転送する（８０３）。入力データ転送部（６０１）の処理の詳細は後述する。
【００７３】
回転部（６０２）は、入力データ転送部（６０１）から受信するプリントデータをワークメモリ（６０３）へ書き込む（８０４）。データ書き込み（８０４）は、書き込んだデータ量を判定しながら（８０５）、ワークメモリ（６０３）に回転処理を行うだけの所定のデータ量を書き込むまで行う。回転処理部（１１９）は、前記所定のデータ量をワークメモリ（６０３）に書き込み後に入力データ転送部に対してデータ転送中断指示を行い（８０６）、ワークメモリ（６０３）からデータ読み出しを行う（８０７）。回転部（６０２）は、データ書き込み（８０４）と、データ読み出し（８０７）の方向（６１１）とにおけるアドレス走査とデータ制御を組み合わせることで、回転角度設定に応じた回転処理を実現する。回転処理の詳細は後述する。
【００７４】
回転処理部（６０２）は、ワークメモリ（６０３）から読み出したプリントデータを、出力データ転送部へ転送（８０８）する。そして、出力データ転送部（６０４）は、回転部（６０２）から受信するプリントデータをＲＡＭ（１１４）へ書き込む（８１０）。回転処理部（６０２）は、ワークメモリ（６０３）から読み出したデータ量を判定しながら（８０９）、データ書き込み（８０４）で書き込んだ全てのデータを読み出すまで行うデータ転送（８０８）を行う。回転部（６０２）は、入力データ転送部（６０１）に対してデータ転送中断指示を解除する（８１１）。
【００７５】
以上述べた処理（８０２〜８１１）が1矩形ブロック分の処理であり、本処理を、入力データ転送部に設定した画像サイズ分繰り返して行うことで、プリントデータ分の回転処理を行う。入力データ転送部（６０１）は、全画像サイズ分の回転処理終了を判断すると、ＣＰＵに対して回転処理終了を割り込み通知し（８１２）、回転処理部（１１９）は、プリントデータの回転処理を終了する。
【００７６】
図９に回転処理部（１１９）の処理フローチャートを示す。本フローチャートに示す処理は、上述したステップ（Ｓ３０４）の開始タイミングで実行される。
【００７７】
ステップ（Ｓ９０１）で、入力データ転送部（６０１）がＲＡＭ（１１４）上の処理対象データを読み出す。ステップ（Ｓ９０２）で、回転部（６０２）がワークメモリ（６０３）を用いて回転処理を行う。そして、回転済みデータを出力データ転送部がステップ（Ｓ９０３）でＲＡＭ（１１４）へ書き込む。これら一連の処理を、ステップ（Ｓ９０４）で設定サイズ分行ったか判断し、全サイズ分処理終了したら回転処理を終了する。入力データ転送（Ｓ９０１）、および、回転（Ｓ９０２）の処理詳細は後述する。
【００７８】
図１０に、入力データ転送部（６０１）が行う処理（Ｓ９０１）のフローチャートを示す。
【００７９】
ステップ（Ｓ１００１）では、ＣＰＵ（１１３）が回転処理部（１１９）に設定するレジスタ値から、処理対象データのビット階調と、矩形切り出しサイズと、読み出しデータの開始アドレス、および、主走査、副走査サイズをそれぞれ取得する。本実施例における設定値は、ビット階調が２、矩形切り出しサイズが１６×１６画素、先頭アドレスが０ｘ１０００番地、である。また、主走査サイズが８０画素、副走査サイズが９６画素である。
【００８０】
次に、ステップ（Ｓ１００２〜Ｓ１００６）において、処理対象データのビット階調の設定値に応じて、入力データ転送部（１１９）が行うデータ転送の単位データ長（以下、転送サイズ、とする）を設定する。１ビット階調の場合（Ｓ１００２でＹＥＳ）は、ステップ（Ｓ１００３）において、主走査転送サイズを３２ビットに設定する。これは、バス（１３１）におけるバースト長１の転送サイズである。１ビット階調ではなく（Ｓ１００２でＮＯ）、２ビット階調の場合（Ｓ１００４でＹＥＳ）は、主走査転送サイズを６４ビットに設定する。これは、バス（１３１）におけるバースト長２の転送サイズである。２ビット階調でもない場合（Ｓ１００４でＮＯ）は、主走査転送サイズを１２８ビットに設定する。これは、バス（１３１）におけるバースト長４の転送サイズである。
【００８１】
転送サイズ設定後、入力データ転送部（６０１）は、ステップ（Ｓ１００７）へ遷移し、単位矩形ブロック分だけ、ＲＡＭ（１１４）上の処理対象データの読み出しを行い、データ転送処理を終了する。
【００８２】
ここで、図１１を用いて、回転処理部（１１９）が、ＲＡＭ（１１４）上にある回転処理対象データであるプリントデータ（１１０１）から、単位矩形ブロック領域（１１０２）を読み出す際に行う処理動作を模式的に説明する。
【００８３】
プリントデータ（１１０１）は、画像処理部（１１８）が有する中間調処理を行う画像処理ブロック３（５０５）で処理された画像データである。本実施例におけるプリントデータ（１１０１）は、主走査サイズが１６０ビット、副走査サイズが１９２ビットであり、１画素あたり２ビット階調のデータが主走査方向に置かれるとして、８０画素（主走査）×９６画素（副走査）の画素で構成される。
【００８４】
入力データ転送部（６０１）は、プリントデータ（１１０１）を、単位矩形ブロック領域（１１０２〜１１０４）で切り出し、データ読み込みを行う。単位矩形ブロック領域は、先に設定した主走査転送サイズと、ステップ（Ｓ１００１）で取得する矩形切り出しサイズの副走査方向サイズとで決まる矩形領域であり、本実施例では、６４（ビット）×１６（画素）である。単位矩形ブロック領域（１１０２）の読み出しは、まず、開始アドレス（１１１０）から主走査転送サイズである６４ビットのデータ読み出しを行う（１１１１）。
【００８５】
具体的には、０ｘ１０００番地から０ｘ１００７番地まで、バースト長２つ分の連続アドレスでのデータ読み出しを行う。次に、現在のアドレス位置である０ｘ１００８番地から、（主走査サイズ−主走査転送サイズ）分のアドレスジャンプを行い、次の主走査転送サイズ分のデータ読み出しを行う（１１１２）。同様なアドレスジャンプ、および、主走査転送サイズでのデータ読み出しを、合計１６画素ライン分行い単位矩形ブロック領域（１１０２）のデータ読み出しを行う。単位矩形ブロック領域（１１０２）の最後のデータ読み出し（１１１３）が終わると、（主走査サイズ×単位矩形ブロック領域の画素ライン）分のアドレスジャンプをして次の単位矩形ブロック領域（１１０３）の開始アドレスからデータ読み出し（１１１４）を行う。
【００８６】
その後データ読み出しを１６ライン分行い１６ライン目のデータ読み出し（１１１５）が終了後、次の単位矩形ブロック領域（１１０４）の開始アドレスからデータ読み出しを行う（１１１６）。以下同様に、入力データ転送部は、全プリントデータに対して、単位矩形ブロックでのデータ読み出しを、バースト長２の連続アドレスデータ読み込みで行う。
【００８７】
図１２に、回転部（６０２）が行う回転（Ｓ９０３）に係る処理のフローチャートを示す。
【００８８】
ステップ（Ｓ１２０１）では、ＣＰＵ（１１３）が回転処理部（１１９）に設定するレジスタ値から、処理対象データのビット階調、および、回転角度設定を取得する。本実施例における、ビット階調は２、回転角度は９０度、であるものとする。
【００８９】
次に、ステップ（Ｓ１２０２〜Ｓ１２０６）において、回転部（６０２）がワークメモリ（６０３）に対して、正方形画素からなる矩形ブロック領域のデータを同時に何個分、書き込み、および、データ読み込みするかを示す、矩形ブロック数を設定する。１ビット階調の場合（Ｓ１２０２でＹＥＳ）は、ステップ（Ｓ１２０３）において、矩形ブロック数を１に設定する。このとき、回転部（６０２）は、ワークメモリ（６０３）へ３２×３２画素の正方形矩形ブロック領域を１個書き込み、それを読み出すことで回転処理を行う。
【００９０】
１ビット階調ではなく（Ｓ１２０２でＮＯ）、２ビット階調の場合（Ｓ１２０４でＹＥＳ）は、ステップ（Ｓ１２０５）において、矩形ブロック数を２に設定する。このとき、回転部（６０２）は、ワークメモリ（６０３）へ１６画素×１６画素の正方形矩形ブロック領域を２個書き込み、それを読み出すことで回転処理を行う。また、正方形矩形ブロック領域のデータ量は、１画素あたり２ビット階調のデータが主走査方向に置かれるとして３２×１６ビットであり、ワークメモリ（６０３）は、正方形矩形ブロック領域２個分のデータを格納できる。２ビット階調でもない場合（Ｓ１２０４でＮＯ）は、ステップ（Ｓ１２０６）において、矩形ブロック数を４に設定する。
【００９１】
このとき、回転部（６０２）は、ワークメモリ（６０３）へ８画素×８画素の正方形矩形ブロック領域を４個書き込み、それを読み出すことで回転処理を行う。また、正方形矩形ブロック領域のデータ量は、１画素あたり４ビット階調のデータが主走査方向に置かれるとして３２×４ビットであり、ワークメモリ（６０３）は、正方形ブロック領域４個分のデータを格納できる。本実施例では、ビット階調は２であり、矩形ブロック数は２である。
【００９２】
その後、ステップ（Ｓ１２０７）へ遷移し、回転部（６０２）は、先に設定した矩形ブロック数に応じて、入力データ転送部（６０１）が転送するプリントデータをワークメモリ（６０３）へ書き込む。ステップ（Ｓ１２０８）で矩形ブロック数分の書き込みしたかを判定する。本実施例では、矩形ブロック数２個分のデータ書き込みを判定後、回転部（６０２）は、ワークメモリ（６０３）から、回転角度設定に従い、９０度回転できるアドレス走査でデータ読み出しを行う（Ｓ１２０９）。
【００９３】
ここで、図１３を用いて、上述したステップ（Ｓ１２０７〜Ｓ１２０９）において、回転部（６０２）が、ワークメモリ（６０３）に対して、矩形ブロック単位でデータ書き込み、および、データ読み出しして行う回転処理を模式的に説明する。以下では、本実施例における設定である、ビット階調が２、回転角度設定が９０度、に基づいて説明する。
【００９４】
まず、ステップ（Ｓ１２０７）のデータ書き込み処理について説明する。回転部（６０２）は、入力データ転送部（６０１）が上述したステップ（Ｓ９０１）において読み出すデータ６４ビット長のデータ（１３０１）を受信後、下位３２ビット（１３０２）と上位３２ビット（１３０３）に分割してワークメモリ（６０３）へ書き込む。このとき、下位３２ビット分のデータ（１３０２）を、ワークメモリ（６０３）のアドレス０ｘ００（１３０４）へ書き込み、上位３２ビット分のデータ（１３０３）をアドレス０ｘ１０（１３０６）へ書き込む。
【００９５】
以下同様に、回転部（６０２）は、入力データ転送部（６０１）から受信する６４ビット長のデータを、上下３２ビットで分け、下位３２ビットはアドレス０ｘ００（１３０４）からの、上位３２ビットはアドレス０ｘ１０（１３０６）からの昇順で書き込む。データの書き込みは、は単位矩形ブロック領域分となる１６画素（ライン）分のデータ分行い、最終的に、ワークメモリ（６０３）は全メモリ領域分となる単位矩形ブロック領域２個分（１３１０、１３１１）のデータを格納する。
【００９６】
次に、ステップ（Ｓ１２０９）のデータ読み出し処理について説明する。回転部（６０２）は、ワークメモリ（６０３）の格納データを、ビット方向（１３０８、１３０９）で、単位矩形ブロック領域（１３１０、１３１１）別に、各１６ビット長のデータを読み出す（１３０８、１３０９）。回転部（６０２）は、読み出した１６ビット長データ（１３０８、１３０９）を、出力データ転送部（６０４）に出力し、出力データ転送部（６０４）は、回転角度設定に応じてＲＡＭ（１１４）上にあらかじめ確保した回転先データ格納領域に書き出す。
【００９７】
例えば、単位矩形ブロック領域（１３１０）は、回転後のデータ（１３２０）上の１６×３２ビットのデータ領域（１３２３）に対応する。出力データ転送部（６０４）は、回転部（６０２）がワークメモリ（６０３）から読み出した１６ビット長のデータ（１３０８）を、回転後データ（１３２０）の１６ビット長データ（１３２１）に書き込む。また、単位矩形ブロック領域（１３１１）は、回転後データ（１３２０）の領域（１３２４）に対応し、回転部（６０２）がワークメモリ（６０３）から読み出す１６ビット長のデータ（１３０９）を、回転後データ（１３２０）の１６ビット長データ（１３２２）に書き込む。
【００９８】
なお、出力データ転送部（６０４）が行う、ＲＡＭ（１１４）へのデータ書き込みは、バースト長１のシングル書き込みである。以上の処理により、回転部（６０２）は、ワークメモリ（６０３）に書き込んだデータを読み出し回転を実現する。
【００９９】
以上の説明により、回転処理部（１１９）は、ＲＡＭ（１１４）上のプリントデータ（１１０１）を、内部に備えるワークメモリ（６０３）を用いて回転することができる。この回転処理において、ワークメモリ（６０３）は２つの正方形矩形画素を格納することができ、メモリ使用率は１００パーセントである。また、ＲＡＭ（１１４）上の、ビット階調２のプリントデータ（１１０１）をバースト長２で連続アドレス読み出すことができる。なお、本発明は、本実施例で述べた各種設定に制限されものではない。
【０１００】
本実施例では、ビット階調が２のデータに対して、バースト長２の連続アドレス読み出しを行い、ワークメモリ（６０３）に２個の正方形矩形画素（１６×１６）を格納して回転処理を行った。
【０１０１】
これとは異なる設定として、ビット階調が４のデータの回転処理する設定の場合は、ワークメモリ（６０３）が格納する正方形矩形画素を８×８画素分とし、回転処理を行うようにする。このとき、前記正方形画素（８×８）のビット数は、（８（画素）×４（ビット階調））×８、即ち、３２×４ビットとなり、ワークメモリ（６０３）は４個の正方形画素を格納すれば、メモリ使用効率１００％で回転処理を行うことができる。また、ＲＡＭ（１１４）からの４個分の正方形画素の読み出しを、バースト長４の連続アドレス読み出しで行うことができる。
【０１０２】
即ち、本発明では、ＲＡＭ上のビット階調ｎ（ｎは正の整数）からなるデータを、ｍ×ｍ（ｍはｎの倍数）の正方形矩形画素単位で回転する場合に、１辺がｍ×ｎビットからなる回転用一時メモリにｎ個の正方形矩形画素を格納し、この単位で回転処理を行う。これにより、回転用一時メモリを全て使用し、かつ、ＲＡＭから回転用一時メモリへのデータ転送について、バースト長ｎの連続アドレス読み出しを行うことができる。そして、データ転送効率を高め、バス帯域負荷を低減することができる。
【０１０３】
また、本発明におけるＲＡＭ（１１４）とワークメモリ（６０３）との間で行うデータのバースト転送は、入力データ転送部（６０１）が行うデータ読み出しに限るものではなく、出力データ転送部（６０４）側で行うようにしても良い。例えば、回転後画像データ（１３２０）を２７０度回転して画像データ（１１０１）を生成することを考える。このとき、入力データ転送部（６０１）は、シングル転送で行いデータを読み出し（１３２１、１３２２）、出力データ転送部（６０４）は、回転後のデータをバースト長２でバースト転送できる（１１１１〜１１１５）。よって、ＲＡＭ（１１４）のデータアクセスが、例えば、データ読み出しよりもデータ書き込みが遅い場合は、データ書き込み側をバースト転送するようにＲＡＭ（１１４）上で回転処理に係る画像データを取り扱う。これにより、ＲＡＭ（１１４）に対するデータ読み出しとデータ書き込みを平準化することができる。
【符号の説明】
【０１０４】
１０２  画像処理装置
１１９  回転処理部
６０１  入力データ転送部
６０２  回転部
６０３  ワークメモリ
６０４  出力データ転送部
【図１】
2015055944.tif 000003
【図２】
2015055944.tif 000004
【図３】
2015055944.tif 000005
【図４】
2015055944.tif 000006
【図５】
2015055944.tif 000007
【図６】
2015055944.tif 000008
【図７】
2015055944.tif 000009
【図８】
2015055944.tif 000010
【図９】
2015055944.tif 000011
【図１０】
2015055944.tif 000012
【図１１】
2015055944.tif 000013
【図１２】
2015055944.tif 000014
【図１３】
2015055944.tif 000015