Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4012833B2 - Image rotation processing apparatus, image rotation processing method, and storage medium - Google Patents
[go: Go Back, main page]

JP4012833B2 - Image rotation processing apparatus, image rotation processing method, and storage medium - Google Patents

Image rotation processing apparatus, image rotation processing method, and storage medium Download PDF

Info

Publication number
JP4012833B2
JP4012833B2 JP2003031676A JP2003031676A JP4012833B2 JP 4012833 B2 JP4012833 B2 JP 4012833B2 JP 2003031676 A JP2003031676 A JP 2003031676A JP 2003031676 A JP2003031676 A JP 2003031676A JP 4012833 B2 JP4012833 B2 JP 4012833B2
Authority
JP
Japan
Prior art keywords
data
block
address
pixel
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003031676A
Other languages
Japanese (ja)
Other versions
JP2004242212A (en
Inventor
尚人 白石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003031676A priority Critical patent/JP4012833B2/en
Publication of JP2004242212A publication Critical patent/JP2004242212A/en
Application granted granted Critical
Publication of JP4012833B2 publication Critical patent/JP4012833B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像回転処理装置に関し、さらに詳しくは、1画素のデータ長がメモリの1ワードのデータ長の整数倍でないデータの場合でも、高速に回転処理可能な画像回転処理装置に関するものである。
【0002】
【従来の技術】
従来から、画像を所定の角度に回転させて出力させる画像回転処理装置が提案されている。例えば、特開平2−235181号公報には、90度単位の角度での回転処理をリアルタイムで行い、ページメモリに格納する装置について開示されている。これによると、入力された画像データが配置されるべきビットを含むページメモリの番地から1ワードを読み出し、前記のワード内のビット位置を指定し、このビット位置のデータを前記入力された画像データで書き換えて再びページメモリの同じ番地に書き込むことにより、最終的に1ページ分の回転画像が得られるようにしている。
これに対して特開平5−108812号公報には、90度単位の角度での画像回転処理を高速で実行可能な装置について開示されている。これによると、この装置は回転処理を施した後の画像データを出力するために、2つのバッファーメモリを有している。この装置に順次入力される画像データは、1画素の階調数を示す1画素あたりのビット数(以下、画像構造とよぶNとページメモリの1ワードのビット幅Mとの比率がM/Nライン分のデータより1つのブロックを構成し、このブロック単位で、2つのバッファーメモリに交互に書き込まれるようになっている。
また、この装置では、バッファメモリに書き込まれた1ブロック分の画像データを、回転角度に応じてバッファメモリ読み出し制御で生成される読み出しアドレスから、順次読み出し、読み出したデータを並び替えて、指定された角度で回転処理されたページメモリの1ワード分に対応したデータを生成する。そして生成された1ワードのデータを、指定された回転角度に応じて算出されたページメモリのアドレスに書込むことによって、順次入力された画像データに対して指定された回転処理を施し、ページメモリ上に展開することができるとしている。
一方、特開平7−121693号公報には、前記同様に90度単位の高速回転処理を、画像構造が異なる画像データに対して対応できるような装置について開示されている。これによると、画像構造を設定する画像構造レジスタを有し、このレジスタに設定された画像構造に応じてバッファメモリ書込み制御部及びバッファメモリ読み出し制御部の処理と、バッファメモリから読み出したデータのワード合成部での処理とを制御することにより、複数種類の画像構造に対応できるとしている。
【特許文献1】
特開平2−235181号公報
【特許文献2】
特開平5−108812号公報
【特許文献3】
特開平7−121693号公報
【0003】
【発明が解決しようとする課題】
しかし、特許文献1は画像データが入力するたびに1ワードの書き換え処理を行わなければならいため、画像データの入力速度はこの読み込み処理と書込み処理を行う際のページメモリのアクセス速度を超えることができず、高速化処理を行うことができないといった問題がある。
また、上記の特許文献1〜3では、メモリのワードのBIT幅Mと画素のBIT幅NがM/Nの整数倍である必要があった。そのため、例えば、RGB画像を24BITで持つ場合、24BITの整数である例えば24BIT、48BITなどのようなBIT数であるか、CPUによりR、もしくはG、もしくはBの単独のプレーン情報に変換後に回転処理させる必要があった。
しかし、回転処理させるために、CPUでデータ変換させる場合、処理効率が低下する。
また、24BIT、48BITのデータ幅のメモリはあまり存在せず、やはり、CPU、メモリ、バスのことを考え、32BIT、64BITなどのデータ幅メモリが望ましい。
本発明は上記の従来の問題点に鑑み、メモリのワードのBIT幅Mと画素のBIT幅NがM/Nの整数倍でないデータに対しても、高速な回転処理を実現する画像回転処理装置を提供することを目的する。
【0004】
【課題を解決するための手段】
本発明はかかる課題を解決するために、請求項1は、ソース画像を分割したN×M画素のブロックの水平方向の画素を全て含むワードデータを読み込む固定長データ読込手段と、
前記ソース画像のスタートアドレス、X幅及びY幅、及び処理対象のブロックのX、Yの番号に基づき、前記ソース画像のブロックのアドレスを生成する読込アドレス生成手段と、
前記読込アドレス生成手段により生成されたアドレスに基づき、前記ソース画像を分割したブロックの水平方向の画素を全て含むワードデータからブロックの水平方向の画素を全て切り出す画素切出手段と、前記画素切出手段により切り出されたブロックの水平方向の画素データを格納するレジスタと、前記レジスタに格納されたブロックの画素データを、回転角度に応じて水平もしくは垂直方向に読み出すデータ分配手段と、前記データ分配手段から読み出されたデータのスタートアドレス、前記ソース画像のX幅及びY幅、前記回転角度、処理対象のブロックのX、Yの番号、及び各ブロック毎のX方向のスタート画素値に基づき、前記データ分配手段から読み出されたデータのブロックのアドレスを生成する書込アドレス生成手段と、前記データ分配手段から読み出されたデータと、前記固定長データ読込手段から読み込まれたデータと、前記書込アドレス生成手段で生成されたアドレスとに基づき、書き込み前データと合成処理を行う合成処理手段と、前記合成処理手段により合成処理されたワードデータをメモリに書き込む書込手段と、を有することを特徴とする。
【0005】
固定長データ読み込み手段は、メモリアービターI/Fから受け取ったメモリのワードデータを、処理するN×M画素のブロックの水平方向の画素を全て含む複数のワードデータを読み込み、画素切り出し手段へ転送する。画素切り出し手段は、固定長データ読み込み手段からソース画像のブロックごとの水平方向の画素データを全て含む複数のメモリのワードデータを受け取り、読み込みアドレス生成手段から、入力された複数のメモリのワードデータがどのデータタイプかを示す信号を受け取り、固定長データ読み込み手段からの複数のメモリのワードデータからブロックの水平方向の画素をすべて切り出し、画素記憶手段へ転送する。画素記憶手段は、画素切り出し手段から切り出されたブロックの水平方向の全ての画素データを順次受け取り、1ブロックを形成するN×Mの画素を記憶し、固定長データ生成手段へ指定された90度単位の回転方向に基づき、回転後の書き込むメモリの複数のワード方向が水平方向になるようにブロックの水平方向の画素を全てを順次転送する。固定長データ生成手段は、画素記憶手段からの回転後の書き込むメモリの複数のワード方向が水平方向になるように、ブロックの水平方向の画素を全てと、書き込みアドレス生成手段から出力される複数のメモリのワードデータがどのデータタイプかを示すタイプデータを受け取り、画素記憶手段からの画素データを前記タイプデータにもとずき、書き込むメモリアドレスの複数のワードデータを生成する。データ合成処理手段は、固定長データ生成手段からの書き込むメモリアドレスの複数のワードデータと、書き込みアドレス生成手段から出力される複数のメモリのワードデータがどのデータタイプかを示すタイプデータと、固定長データ読み込み手段からの書き込むメモリアドレスのデータを読み込み、先頭と終端にある余白データに書き込むメモリアドレスの書込み前にあるデータを合成し、固定長データ書込み手段へ転送する。固定長データ書込み手段は、データ合成処理手段からの合成されたデータを受け取り、メモリアービターI/Fへ転送する。
かかる発明によれば、このような手段構成により、メモリのワードのBIT幅Mと画素のBIT幅NがM/Nの整数倍でないデータに対しても、高速に(複数の画素を並列に処理するため)回転処理が可能である。
【0008】
請求項は、ソース画像を分割したN×M画素のブロックの水平方向の画素を全て含むワードデータを読み込む固定長データ読込ステップと、前記ソース画像のスタートアドレス、X幅及びY幅、及び処理対象のブロックのX、Yの番号に基づき、前記ソース画像のブロックのアドレスを生成する読込アドレス生成ステップと、前記読込アドレス生成ステップにより生成されたアドレスに基づき、前記ソース画像を分割したブロックの水平方向の画素を全て含むワードデータからブロックの水平方向の画素を全て切り出す画素切出ステップと、前記画素切出ステップにより切り出されたブロックの水平方向の画素データを格納するレジスタと、前記レジスタに格納されたブロックの画素データを、回転角度に応じて水平もしくは垂直方向に読み出すデータ分配ステップと前記データ分配ステップから読み出されたデータのスタートアドレス、前記ソース画像のX幅及びY幅、前記回転角度、処理対象のブロックのX、Yの番号、及び各ブロック毎のX方向のスタート画素値に基づき、前記データ分配ステップから読み出されたデータのブロックのアドレスを生成する書込アドレス生成ステップと、前記データ分配ステップから読み出されたデータと、前記固定長データ読込ステップから読み込まれたデータと、前記書込アドレス生成ステップで生成されたアドレスとに基づき、書き込み前データと合成処理を行う合成処理ステップと、前記合成処理ステップにより合成処理されたワードデータをメモリに書き込む書込ステップと、を有することを特徴とする。
かかる発明によれば、請求項1と同様の作用効果を奏する。
【0009】
請求項は、請求項に記載の画像回転処理方法のプログラムコードが格納されたことを特徴とする。
本発明の目的はソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPUが記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
かかる発明によれば、記憶媒体から読出されたプログラムコード自体が実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することができる。
【0010】
【発明の実施の形態】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
図1は、本発明を実施した多色画像形成装置の機構部の構成例を示す図である。この多色画像形成装置において、1は像担持体であるベルト状の感光体であり、その感光体1は回転ローラ2、3により回動可能に支持され、その各回転ローラ2、3の駆動により矢示A方向に回動される。感光体1の外周部には、帯電手段である帯電装置4、除電ランプL、感光体1用のクリーニングブレード15Aが配置されている。帯電装置4の下流位置には、光書込手段であるレーザ書き込みユニット5より発せられるレーザ光が照射される光書き込み部がある。
光書き込み部より下流位置には、複数の現像ユニット(現像手段が切り換え自在に支持された多色現像装置6が配置されている。多色現像装置6は、収容するトナーの色毎に、イエロー現像ユニット、マゼンダ現像ユニット、シアン現像ユニットを備えている。多色現像装置6の上部には、黒色トナーを収容したブラック現像ユニット7が備えられている。
これらの各現像ユニットのいずれか1つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置6は、円周上120度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット7は感光体1より離間した位置に移動する。その移動は、カム45の回転により行なわれる。
レーザ書き込みユニット5は、図示しないレーザ光源から複数色の画像形成信号(書き込み情報に応じたレーザ光を順次発生させ、ポリゴンモータ5Aによって回転されるポリゴンミラー5Bを用いてそのレーザ光を周期的に偏向させ、fθレンズ5C及びミラー5Dなどを経て、帯電された感光体1の表面を走査してその表面に静電潜像を形成させる。
【0011】
感光体1の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト10は、感光体1に隣接しており、回転ローラ11、12により矢示B方向に回動可能に支持されている。感光体1上のトナー画像は、中間転写ベルト10の裏側にある転写ブラシ(第1の転写手段13により、その中間転写ベルト10の表面に転写される。
感光体1の表面は1色毎にクリーニングブレード15Aによりクリーニングされ、その表面に所定色のトナー画像が形成される。そして、その都度中間転写ベルト10の1回動毎にその表面の同じ位置に感光体1上のトナー画像が転写されて、中間転写ベルト10上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。
用紙への転写に際しては、給紙装置(給紙カセット17に収納されている用紙が給紙ローラ18によって繰り出されて搬送ローラ19により搬送され、レジストローラ対20に付き当てられた状態で一旦停止された後、トナー画像の転写位置が正規のものとなるようにタイミングがとられて中間転写ベルト10と転写ローラ(第2の転写手段14のニップに再搬送される。そして、その用紙は転写ローラ14の作用により中間転写ベルト10上の複数色のトナー画像が一括転写された後、定着装置50に送られ、そこでトナー像が定着された後、排紙ローラ対51により本体フレーム9の上部の排紙スタック部52に排出される。
中間転写ベルト10には、回転ローラ11の部位に中間転写ベルト10用のクリーニング装置16が設けられ、クリーニングブレード16Aがクリーニングブレード接離用アーム16Cを介して接離自在の構成となっている。このクリーニングブレード16Aは、感光体1からトナー画像を受け取る工程では、中間転写ベルト10から離れ、中間転写ベルト10より用紙にトナー画像が転写された後に接触するようになっていて、用紙にトナー画像が転写された後の残留トナーをかきとる。
クリーニングブレードは、すでに記したように、感光体1用と中間転写ベルト10用がある。これらブレードがかきとった廃トナーは、回収容器15に収納する。その回収容器15は適宜交換される。中間転写ベルト10用のクリーニング装置16の内部に設けられたオーガ16Bが、クリーニングブレード16Aでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器15に送るようになっている。
31はユニット化されたプロセスカートリッジで、感光体1、帯電装置4、中間転写ベルト10、クリーニング装置16、用紙搬送路を形成する搬送ガイド30などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ31の交換のほかに、多色現像装置6、ブラック現像ユニット7なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム8は支軸9Aを中心に開閉可能に回動できる構造にしてある。また図1の左側には、電装・制御装置60が収納されている。その上方には、ファン58が備えられており、機内の温度過昇防止のために排風する。図の右側には、比較的小規模な別の給紙装置59が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト10を使用したが、中間転写ドラムを使用することもできる。
【0012】
図2は図1の電装・制御装置60のブロック図である。71は主に画像メモリ79操作をする画像メモリアクセラレータであり、CPU77にコントロールされ、ネットワーク通してホストコンピュータから画像データを受け取り、メモリ79へ転送し、また、その画像データをエンジンコントローラ83へ転送しプリントアウトなどを行う。この時に、各ホストとの通信や、画像メモリ79のコントロールや、パネル86から操作された情報を得る為や、プリンタエンジンコントローラ83などの周辺とのバスコントロールなどを行う。
72バスコントローラであり、バス87とつながる各周辺コントローラとのバスの調停を行う。73はメモリアービターであり、79のメモリと各種のコントローラ間の調停を行う。74はローカルI/Fであり、75のROMなどのインタフェースであり、73のメモリアービターを介して、79のメモリや、77のCPUと接続されている。75はROMであり、各種のプログラムや、文字などのフォント情報を格納している。76はCPU I/Fであり、77のCPUのインタフェースであり、73のメモリアービターを介して、メモリや各種コントローラと接続されている。77はCPUであり、プリンタ 装置全体の制御を行う。78はメモリコントローラであり、79のメモリをコントロールし、73のメモリアービターを介して、各種コントローラやCPUと接続されている。
79はメモリであり、画像データや、その符号データや、CPUのプログラムなどを格納している。80は通信コントローラであり、ネットワークに接続されており、ネットワークから各種データやコマンドなどを受け取り、73のメモリアービターを介して各種のコントローラに接続されている。82は本発明の回転処理装置であり、77のCPUからの命令により79のメモリより、画像を読み込み回転処理後に79のメモリへ回転処理後の画像を書き込む。
83はエンジンコントローラであり、87のバスと接続されており、84のプリンタエンジンをコントロールする。84はプリンタエンジンである。85はパネルコントローラであり、86のパネルをコントロールしている。86はパネルであり、ユーザーからの操作をプリンタ装置へ知らせる。87はバスであり、71の画像メモリアクセラレータと各種周辺コントローラとを接続する。81はDMAであり、78のメモリコントローラと87のバスに接続されたエンジンコントローラ間のダイレクトメモリアクセスを行う。
【0013】
図3は本発明の回転処理装置の概念図である。91はメモリアービターI/Fであり、画像回転処理装置の画像読み込み処理と、デイザデータの読み込み処理と処理後画像の書き込み処理のメモリアービターへの要求の調停を行い、92の画像回転処理装置へ画像データを、転送し、処理後の画像をメモリアービターへ転送する。
92は画像回転処理装置であり、91のメモリアービターI/Fから画像データを受け取り、90度単位の回転処理を行い、処理結果を91のメモリアービターI/Fへ転送する。93はパラメータ格納装置であり、92の画像回転処理装置が必要とするパラメータを格納する。図16にブロック図を示す。
図4は回転処理例を示す図であり、このように90度単位に0度、90度、180度、270度の回転処理を行う。
図5の回転処理の例を示す。本方式は指定されたメモリ領域のソース画像をN×Mのブロックに分割し、N×Mのブロック単位でデータを読み込み、回転処理後に指定されたメモリ領域に書き込みを行い、最終的に全画像の回転処理を終了する。
図8にメモリのワードサイズと1画素のサイズの関係を示す。この例では、画素はRGBデータの24BITであり、ワードサイズは32BITである。この場合、この図のように3つのTYPEが交互に並んでいく。
図6に4×4のブロックの回転処理を示す。タイミングチャートは、メモリのリード/ライトを示す。まず4×4のソース画像を読み込む、回転処理後に、書込み前のメモリ領域から、水平方向にデータを読み込み(これは、画素のデータサイズとメモリのワードサイズが整数倍でないために、図9のように、複数の組み合わせが存在し、先端のワードと、終端ワードに余白が存在する。基本的には、書込み時にその余白は、以前のデータを必要とするか否かを判断すべきであるが、ここでは、判断せず、常に書込み前データを読み込む場合について説明する。合成処理後に回転処理後画像を書き込む。
図7の例は、ソース画像がN×Mのブロックサイズにちょうど収まらなかった場合の例である。このように回転前の右端のブロックには、ブロック全てにデータが入っているわけではない。この回転前に右端のブロックは90度回転後、底辺のブロックとなり、Y方向に終端アドレスが変化する。また、回転前に底辺のブロックは90度回転後、左端のブロックとなり、X方向の先端のアドレスが変化する。本方式は、回転後の左端のブロックから順次アドレス書込みアドレスを計算し、メモリに書き込むので、このようにN×Mのブロックにちょうど収まらない画像であっても、回転処理することが可能である。
【0014】
図16に図3の92の画像回転処理装置のブロック図を示す。101はブロック数生成装置であり、図3の93のパラメータ格納装置から受け取ったソース画像のX幅、Y幅から、N×M画素のブロックが、X、Y方向に何個あるかブロック数を求め、102のブロックカウント装置と、余りX、Y値生成装置104へ送る。図26に処理フローを示す。
102はブロックカウント装置であり、101のブロック数生成装置から受け取ったX、Y方向のブロック数(BLKXS、BLKYSを基準とし、図3の91のメモリアービターI/Fからの読み込む画像データを管理し、現在読み込まれた画像データがX、Y方向に何番目のブロックであるかカウントしていく。図27に処理フローを示す。
103は読み込みアドレス生成装置であり、図3の93のパラメータ格納装置からソース画像データのスタートアドレスRSADDと、ソース画像のX幅、Y幅と102のブロックカウント装置からの処理するブロックのX、Yの番号BLKX、BLKYとから、読み込むソース画像のブロックのアドレスを生成する。
【0015】
図28にブロック図を示す。また図11に読み込みアドレスの計算式を示す。104は余りX、Y値生成装置であり、図3の93のパラメータ格納装置からソース画像のX幅、Y幅と2のブロックカウント装置からの処理するブロックのX、Yの番号BLKX、BLKYと101のブロック数生成装置から処理する画像のX方向のブロック数とY方向のブロック数BLKYSを受け取り、回転処理後に発生する各ブロックのX方向のスタート画素値RXS0〜Nの値と終端画素値RXEN〜0の値とY方向のスタート画素値RYS0〜Mの値と終端画素値RYEM〜0の値を求め、111の書込みアドレス生成装置と109のデータ合成装置へ送る。図31に処理フローを示す。
105は固定長データ読み込み装置であり、図3の91のメモリアービターI/Fから受け取ったメモリのワードデータを、処理するN×M画素のブロックの水平方向の画素を全て含む複数のワードデータを読み込み、106の画素切り出し装置へ転送する。図9にNが4であり、1画素が24BITであり、メモリの1ワードが32BITである場合の水平方向に全ての画素を読み込む場合の組み合わせを示す、このように4つの組み合わせがあり、MAXのワード数は4ワードである。もし、これらのデータタイプを読み込み時に管理しない場合は、常に4ワードを読み込む必要がある。
106は画素切り出し装置であり、105の固定長データ読み込み装置からソース画像のブロックごとの水平方向の画素データを全て含む複数のメモリのワードデータを受け取り、103の読み込みアドレス生成装置から図9のように入力された複数のメモリのワードデータがどのデータタイプかを示すIDATATYPEを受け取り、105の固定長データ読み込み装置からの複数のメモリのワードデータからブロックの水平方向の画素をすべて切り出し、107のN×M画素記憶装置へ転送する。図18に処理フローを示す。
【0016】
107はN×M画素記憶装置であり、106の画素切り出し装置から、切り出されたブロックの水平方向の全ての画素データを順次受け取り、1ブロックを形成するN×Mの画素を記憶し、108の固定長データ生成装置へ指定された90度単位の回転方向に基づき、回転後の書き込むメモリの複数のワード方向が水平方向になるようにブロックの水平方向の画素を全てを順次転送する。図19にブロック図を示す。
108は固定長データ生成装置であり、107のN×M画素記憶装置からの回転後の書き込むメモリの複数のワード方向が水平方向になるようにブロックの水平方向の画素を全てと、111の書き込みアドレス生成装置から図9のように出力される複数のメモリのワードデータがどのデータタイプかを示すODATATYPEを受け取り、107のN×M画素記憶装置からの画素データをODATATYPEに基づき、書き込むメモリアドレスの複数のワードデータを生成する。図25に処理フローを示す。
109はデータ合成処理装置であり、108の固定長データ生成装置からの書き込むメモリアドレスの複数のワードデータと111の書き込みアドレス生成装置から図9のように出力される複数のメモリのワードデータがどのデータタイプかを示すODATATYPEと、105の固定長データ読み込み装置からの書き込むメモリアドレスのデータを読み込み、図9のように、先頭と、終端にある、余白データに書き込むメモリアドレスの書込み前にあるデータを合成し、110の固定長データ書込み装置へ転送する。
また、データがきれいにX、Y方向の画像の幅がN×Mブロックの整数倍のなっていないことがあるため、4の余りX、Y値生成装置から、各ブロックごとのX方向の画素数RXESを受け取り、図9のようなブロックの水平方向のサイズと同じではなく、ブロックの水平、もしくは、垂直サイズより小さいデータに対しても、上記のデータ合成処理を行うようにする。図32にデータ合成装置のブロック図を示す。
【0017】
110は固定長データ書込み装置であり、109のデータ合成処理装置からの合成されたデータを受け取り、図3の91のメモリアービターI/Fへ転送する。
111は書き込みアドレス生成装置であり、図3の93のパラメータ格納装置からデイステイネーション画像データのスタートアドレスRDADDと、ソース画像のX幅、Y幅と90度単位の回転角度と2のブロックカウント装置からの処理するブロックのX、Yの番号BLKX、BLKYと104の余りX、Y値生成装置からの各ブロックごとのX方向のスタート画素値RXSを受け取ることにより、書き込むデイステイネーション画像のブロックのアドレスを生成する。図10に各回転角度ごとのデータの書込み順序を示す。このように水平方向にデータがつながる方向にアドレスを生成し、データを書き込んでいく。図30にブロック図を示す。また図12、13、14、15に各回転方向の書き込みアドレスの計算式を示す。
112はコントローラであり、画像回転処理装置 全体をコントロールする。
【0018】
図17は図16で説明された図3の92の画像回転処理装置のN×M画素のブロックが4×4のブロックであった場合の例である。以後の具体例は、図17の4×4画素を1ブロックとし、図9のように画素が24BITであり、メモリワードが32BITの場合の例で説明する。図26にブロック数生成装置の処理フローを示す。ここで、記述されているRSXWIDTH[15:2]の記述は、ハードウエア記述言語であるVerilogでの表記であり、RSXWIDTHの15BIT〜2BITのデータを表現している。
S191はソース画像のX幅であるRSXWIDTHの下位2BITが0であるかを判定することにブロックサイズのX方向が4の場合に、ソース画像を4×4のブロックで区切るとき、に余りがあるかを判定している。余りがある場合はS193の処理へいく。
S102はS191の判定で、余りがないことが判明したため、X方向のブロック数はこのようにソース画像のX幅をブロックサイズのX方向で割った値(この場合、ブロックサイズが4であるため、2BITシフトして実現している。となる。
S193は、1の判定で余りがあることが判明したためX方向のブロック数はこのようにソース画像のX幅をブロックサイズのX方向で割った値に+1した値となる。
S194はソース画像のY幅であるRSYWIDTHの下位2BITが0であるかを判定することにブロックサイズのY方向が4の場合に、ソース画像を4×4のブロックで区切るとき、に余りがあるかを判定している。余りがある場合は6の処理へいく。
S195はS194の判定で、余りがないことが判明したため、Y方向のブロック数はこのようにソース画像のY幅をブロックサイズのY方向で割った値(この場合、ブロックサイズが4であるため、2BITシフトして実現している。となる。
S196は、S191の判定で 余りがあることが判明したためY方向のブロック数はこのようにソース画像のY幅をブロックサイズのY方向で割った値に+1した値となる。
【0019】
図27にブロックカウント装置の処理フローを示す。
S201はリセット信号が来たとき、S202の処理へ
S202は処理しているブロック中のライン数であるIYCNTを図17の104の余りX、Y値生成装置のY方向の余り数で初期化する。
S203は処理しているブロック中のライン数であるIYCNTが今のブロックのYサイズと同じであるかを判断し、同じであれば、S204の処理へ
S204は処理しているブロック中のライン数であるIYCNTを図17の104の余りX、Y値生成装置のY方向の余り数で初期化する。
S205は図17の112コントローラから、ラインの処理が終了したフラグLINE_ENDFLが来た場合、S206の処理へ
S206は処理しているブロック中のライン数であるIYCNTをカウントUPする。
S207はリセット信号が来たとき、S208の処理へ
S208は現在、処理中のX方向のブロック番号を初期化する。
S209は処理中のX方向のブロック番号が最終番号でかつ、ブロック中のライン数が最終ラインであった場合、S210の処理へ
S210は現在、処理中のX方向のブロック番号を初期化する。
S211は図17の112コントローラから、ブロックの処理が終了したフラグNEXTXFLが来た場合、S112の処理へ
S212は処理中のX方向のブロック番号をカウントUP
S213はリセット信号が来たとき、S214の処理へ
S214は現在、処理中のY方向のブロック番号を初期化する。
S215は処理中のY方向のブロック番号が最終番号でかつ、NEXTXFLが来た場合、S216の処理へ
S216は現在、処理中のY方向のブロック番号を初期化する。
S217は処理中のX方向のブロック番号が最終番号でかつ、ブロック中のライン数が最終ラインであった場合、S218の処理へ
S218は処理中のY方向のブロック番号をカウントUP
【0020】
図28に読み込みアドレス生成装置のブロック図を示す。この読み込みアドレス生成装置は、図11のように読み込みアドレスを生成する。ここで、記述されている{BLKY、2’h0}の記述は、ハードウエア記述言語であるVerilogでの表記であり、BLKYを左に2BITシフトしたデータを表現している。
301は加算器であり、(垂直ブロック番号×垂直ブロックサイズ+ブロック中のライン数を実現している。
302は乗算器であり、301の結果に画像の水平画素数を乗算している。
303は加算器であり、302の結果に(水平ブロック番号×水平ブロックサイズを加算している。
304は303で求めた論理アドレスをメモリのアドレスへ変換する処理であり、図9のように画素のサイズとメモリワードサイズが3/4の関係にあるため、アドレスも3/4倍する。図29にメモリアドレス変換装置のブロック図を示す。305は加算器であり、304で求めたメモリアドレスにソース画像のスタートアドレスを加算し、最終的な読み込むメモリアドレスを求める。
306は上位BITマスク装置であり、3で求めた論理アドレスの下位2BITを切り出し、図9のどのタイプかをしめすIDATATYPEを求める。
【0021】
図29にメモリアドレス変換装置を示す。
311は加算器であり、図28の303で求めた論理アドレスを3倍している。
312は2BIT右シフト装置であり、1で求めた3倍値を4で割り、3/4処理を行う。
図31に余りX、Y値生成装置を示す。
S221はX方向ブロック数×X方向ブロックサイズからソース画像のX幅を減算し、X方向の余りを求め、Y方向ブロック数×Y方向ブロックサイズからソース画像のY幅を減算し、Y方向の余りを求めている。
S222〜S224は現在の処理中のX方向のBLKが最終ブロックであり、X方向にあまりが存在する場合はCHKXFLを“1”にし、条件を満たさない場合は“0”にする。
S225〜S227は現在の処理中のY方向のBLKが最終ブロックであり、Y方向にあまりが存在する場合はCHKYFLを“1”にし、条件を満たさない場合は“0”にする。
S228〜S232は書込みブロック中のX方向の終端アドレスRXEを求めている。ROTFLは回転角度であり、S228〜S229は回転角度が0度の場合にCHKXFLが“1”であれば、S221で求めたX方向の余り値AMARIXをセットする。S230〜S231は回転角度が270度の場合にCHKYFLが“1”であれば、で求めたY方向の余り値AMARIYをセットする。S232はそれ以外は、MAXのサイズをセットする。(終端が欠けない)
S233〜S237は書込みブロック中のX方向の先端アドレス(RXSを求めている。S233〜S234は回転角度が90度の場合にCHKXFLが“1”であれば、X方向のブロックサイズから1で求めたX方向の余り値AMARIXを減算した値をセットする。S235〜S236は回転角度が180度の場合にCHKYFLが“1”であれば、Y方向のブロックサイズからS221で求めたY方向の余り値AMARIYを減算した値をセットする。S237はそれ以外は、“0“をセットする。(先端が欠けない)
【0022】
S238〜S242は書込みブロック中のY方向の終端アドレスRYEを求めている。ROTFLは回転角度であり、S238〜S239は回転角度が0度の場合にCHKYFLが“1”であれば、S221で求めたY方向の余り値AMARIYをセットする。S240〜S241は回転角度が90度の場合にCHKXFLが“1”であれば、S221で求めたX方向の余り値AMARIXをセットする。S242はそれ以外は、MAXのサイズをセットする。(終端が欠けない)
S243〜S247は書込みブロック中のY方向の先端アドレス(RYSを求めている。S243〜S244は回転角度が180度の場合にCHKYFLが“1”であれば、Y方向のブロックサイズからS221で求めたY方向の余り値(AMARIYを減算した値をセットする。S245〜S246は回転角度が180度の場合にCHKXFLが“1”であれば、X方向のブロックサイズからS221で求めたX方向の余り値AMARIXを減算した値をセットする。S247それ以外は、“0“をセットする。(先端が欠けない)
S248はX方向のデータサイズRXSEを求める。
【0023】
図18に画素切り出し装置のフローを示す。
S1は図17の103の読み出しアドレス生成装置により求めた読み込んだデータの図9のようなデータタイプIDATATYPEを受け取り、IDATATYPEが0であれば、S2へ
S2はS1で読み込んだデータが図9のTYPE0と判断されたため、図9のTYPE0のように画素データを切り出す。
S3はIDATATYPEが1であれば、S4へ
S4はS3で読み込んだデータが図9のTYPE1と判断されたため図9のTYPE1のように画素データを切り出す。
S5はIDATATYPEが2であれば、S6へ
S6はS5で読み込んだデータが図9のTYPE2と判断されたため図9のTYPE2のように画素データを切り出す。
S7はIDATATYPEがS3であれば、S8へ
S8は7で読み込んだデータが図9のTYPE3と判断されたため図9のTYPE3のように画素データを切り出す。
図19は4×4画素記憶装置のブロック図であり、201〜216はレジスタであり、入力されたブロックの画素データを格納し、ブロックの水平方向の画素を一度に書き込むことができる。217はデータ分配装置であり、回転角度により、201〜216のレジスタのデータを水平もしくは、垂直方向に1度に読みだし、順次転送する。218はコントローラであり、4×4画素記憶装置を制御する。
【0024】
図20に4×4画素記憶装置の画素格納フローを示す。図19の218の制御装置からのタイミングにより、順次水平方向にデータが格納されていくことがわかる。
図21、22、23、24は図19の217のデータ分配装置のフローである。回転後のメモリワード上で水平方向になるブロックの4画素を1度に読み出す。
図21はデータの0番目の選択するフローであり、図22はデータの1番目の選択するフローであり、図23はデータの2番目の選択するフローであり、図24はデータの3番目の選択するフローであり、フロー中のROTFLは回転角度をあり、0は0度、1は90度、2は180度、3は270度である。フロー中のタイミングは図19の218のコントローラにより発生された回転処理のタイミングであり、0から3へ遷移する。フロー中のデータ00から33は図19の1〜16の各レジスタを示す。
【0025】
図25に固定長データ生成装置のフローを示す。
S181は図17の7のN×M画素記憶装置により出力された複数の回転後水平画素を図17の11書込み画素生成装置で求めた図9のようなデータタイプODATATYPEを受け取り、IDATATYPEが0であれば、S182へ
S182はS181でメモリへ書き込むデータが図9のTYPE0と判断されたため、図9のTYPE0のように変換する。
S183はODATATYPEが1であれば、S184へ
S184はS181でメモリへ書き込むデータが図9のTYPE1と判断されたため、図9のTYPE1のように変換する。
S185はODATATYPEが2であれば、S186へ
S186はS181でメモリへ書き込むデータが図9のTYPE2と判断されたため、図9のTYPE2のように変換する。
S187はODATATYPEが3であれば、S188へ
S188は1でメモリへ書き込むデータが図9のTYPE3と判断されたため、図9のTYPE3のように変換する。
【0026】
図32にデータ合成処理装置のブロック図を示す。
351はマスク生成装置であり、図9のような書き込むメモリアドレスのデータタイプにより、書き込まれる前のデータと回転後データを合成するための、回転後の有効データの範囲をマスクする有効データのスタートアドレスMASKFと終端アドレスMASKLを生成する。図33に処理フローを示す。
352は合成処理装置であり、書き込まれる前のデータRDATA0〜3と回転後のデータDATA0I〜3Iと1のマスク生成装置からのマスク情報MASKF、MASKLから書き込むデータDATA0O〜DATA3Oを生成する。
図34に処理フローを示す。
図33にマスク生成装置の処理フローを示す。
S251〜S261は図9のデータTYPE0の処理でありRXESは図17の104の余りX、Y値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
S262〜S272は図9のデータTYPE1の処理でありRXESは図17の104の余りX、Y値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
S273〜S283は図9のデータTYPE2の処理でありRXESは図17の104の余りX、Y値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
S284〜S294は図9のデータTYPE3の処理でありRXESは図17の104の余りX、Y値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
【0027】
図34〜36に図32の2の合成装置のフローを示す。
S301〜S332は図32の351のマスク生成装置からの終端マスク値MASKLと書き込まれる前のデータRDATA0〜3と回転後のデータDATA0I〜3Iから終端のマスク処理を行う。ここで、記述されているDATA3I[31:8]の記述は、ハードウエア記述言語であるVerilogでの表記であり、DATA3Iの31BIT〜8BITのデータを表現している。
S303はMASKLが1であった場合の合成処理であり、4番目の回転後のデータの下位8BITはデータがない為に、書き込まれる前のデータに以前に回転処理したデータがある可能性があるため、下位8BITに書き込まれる前のデータの4番目のデータRDATA3Oの下位8BITを合成している。
S333〜S340は図32の351のマスク生成装置からのスタートマスク値MASKFと書き込まれる前のデータRDATA0と1〜32で処理された回転後のデータWDATA0から先端のマスク処理を行う。
図30に書き込みアドレス生成装置のブロック図を示す。フロー中のROPFLは回転角度であり、IYCNTはブロック中の処理しているライン数、BLKXは処理しているX方向のブロック番号、BLKYは処理しているY方向のブロック番号であり、RSXWIDTHはソース画像のX幅、RSYWIDTHはソース画像のY幅、RDADDはデイステイネーション画像データのスタートアドレスである。
321〜323は回転角度0度での論理アドレスを生成している。324〜328は回転角度90度での論理アドレスを生成している。329〜334は回転角度180度での論理アドレスを生成している。335〜338は回転角度270度での論理アドレスを生成している。329は回転角度により生成されたアドレスを選択するMUXであ。340は329で求めた論理アドレスをメモリのアドレスへ変換する処理であり、図9のように画素のサイズとメモリワードサイズが3/4の関係にあるため、アドレスも3/4倍する。図29にメモリアドレス変換装置のブロック図を示す。
305は加算器であり、304で求めたメモリアドレスにデイステイネーション画像データのスタートアドレスを加算し、最終的な書き込むメモリアドレスを求める。
306は上位BITマスク装置であり、303で求めた論理アドレスの下位2BITを切り出し、図9のどのタイプかを示すODATATYPEを求める。
【0028】
【発明の効果】
以上記載のごとく請求項1、の発明によれば、このような手段構成により、メモリのワードのBIT幅Mと画素のBIT幅NがM/Nの整数倍でないデータに対しても、高速に(複数の画素を並列に処理するため回転処理が可能である。
また請求項では、記憶媒体から読出されたプログラムコード自体が実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る多色画像形成装置の機構部の構成例を示す図である。
【図2】本発明の図1の電装・制御装置60のブロック図である。
【図3】本発明の回転処理装置の概念図である。
【図4】本発明の回転処理例を示す図である。
【図5】本発明の回転処理の例を示す図である。
【図6】本発明の4×4のブロックの回転処理を示す図である。
【図7】本発明のソース画像がN×Mのブロックサイズにちょうど収まらなかった場合の例を示す図である。
【図8】本発明のメモリのワードサイズと1画素のサイズの関係を示す図である。
【図9】本発明の複数のメモリのワードデータがどのデータタイプかを示す図である。
【図10】本発明の各回転角度ごとのデータの書込み順序を示す図である。
【図11】本発明の読み込みアドレスの計算式を示す図である。
【図12】各回転方向の書き込みアドレスの計算式を示す図である。
【図13】各回転方向の書き込みアドレスの計算式を示す図である。
【図14】各回転方向の書き込みアドレスの計算式を示す図である。
【図15】各回転方向の書き込みアドレスの計算式を示す図である。
【図16】本発明の画像回転処理装置のブロック図である。
【図17】本発明の図3の92の画像回転処理装置のN×M画素のブロックが4×4のブロックであった場合のブロック図である。
【図18】本発明の画素切り出し装置の処理フロー図である。
【図19】本発明の画素記憶装置のブロック図である。
【図20】本発明の画素記憶装置の画素格納フロー図である。
【図21】本発明のデータ分配装置の動作フロー図である(その1)。
【図22】本発明のデータ分配装置の動作フロー図である(その2)。
【図23】本発明のデータ分配装置の動作フロー図である(その3)。
【図24】本発明のデータ分配装置のデータの3番目の選択するフロー図である。
【図25】本発明の固定長データ生成装置の動作フロー図である。
【図26】本発明のブロック数生成装置の動作フロー図である。
【図27】本発明のブロックカウント装置の動作フロー図である。
【図28】本発明の読み込みアドレス生成装置のブロック図である。
【図29】本発明のメモリアドレス変換装置のブロック図である。
【図30】本発明の読み込みアドレス生成装置のブロック図である。
【図31】本発明の余りX、Y値生成装置のブロック図である。
【図32】本発明のデータ合成装置のブロック図である。
【図33】本発明のマスク生成装置の動作フロー図である。
【図34】本発明のデータ合成装置の動作フロー図である(その1)。
【図35】本発明のデータ合成装置の動作フロー図である(その2)。
【図36】本発明のデータ合成装置の動作フロー図である(その3)。
【符号の説明】
91 メモリアービターI/F、92 画像回転処理装置、93 パラメータ格納装置
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image rotation processing apparatus, and more particularly to an image rotation processing apparatus capable of performing high-speed rotation processing even when the data length of one pixel is not an integral multiple of the data length of one word in a memory. .
[0002]
[Prior art]
Conventionally, there has been proposed an image rotation processing device that outputs an image by rotating the image to a predetermined angle. For example, Japanese Patent Laid-Open No. 2-235181 discloses a device that performs rotation processing at an angle of 90 degrees in real time and stores it in a page memory. According to this, one word is read from the address of the page memory including the bit in which the input image data is to be arranged, the bit position in the word is designated, and the data at this bit position is used as the input image data. By rewriting and writing again in the same address of the page memory, a rotated image for one page is finally obtained.
On the other hand, Japanese Patent Laid-Open No. 5-108812 discloses an apparatus capable of executing image rotation processing at an angle of 90 degrees at high speed. According to this, this apparatus has two buffer memories for outputting image data after being subjected to the rotation process. The image data sequentially input to this apparatus has a bit number per pixel indicating the number of gradations of one pixel (hereinafter, the ratio between N called image structure and bit width M of one word of the page memory is M / N. One block is composed of the data for the line, and the data is alternately written into the two buffer memories in units of the block.
In this apparatus, image data for one block written in the buffer memory is sequentially read from the read address generated by the buffer memory read control according to the rotation angle, and the read data is rearranged and designated. Data corresponding to one word of the page memory that has been rotated at an angle is generated. Then, by writing the generated 1-word data to the address of the page memory calculated according to the specified rotation angle, the specified rotation processing is performed on the sequentially input image data, and the page memory It can be expanded on top.
On the other hand, Japanese Patent Laid-Open No. 7-121893 discloses an apparatus that can handle high-speed rotation processing in units of 90 degrees as described above for image data having different image structures. According to this, it has an image structure register for setting the image structure, processing of the buffer memory write control unit and buffer memory read control unit according to the image structure set in this register, and a word of data read from the buffer memory By controlling the processing in the combining unit, it is possible to cope with a plurality of types of image structures.
[Patent Document 1]
JP-A-2-235181
[Patent Document 2]
Japanese Patent Laid-Open No. 5-108812
[Patent Document 3]
Japanese Patent Laid-Open No. 7-121893
[0003]
[Problems to be solved by the invention]
However, since Patent Document 1 requires that one word be rewritten every time image data is input, the input speed of image data may exceed the access speed of the page memory when performing this read process and write process. There is a problem that the processing cannot be performed at high speed.
Further, in Patent Documents 1 to 3 described above, the BIT width M of the memory word and the BIT width N of the pixel need to be integer multiples of M / N. Therefore, for example, when an RGB image has 24 bits, the number of bits is an integer of 24 bits, for example, 24 bits, 48 bits, or the like, or the CPU performs rotation processing after conversion into single plane information of R, G, or B It was necessary to let them.
However, when data conversion is performed by the CPU in order to perform rotation processing, processing efficiency decreases.
Further, there is not much memory having a data width of 24 BIT and 48 BIT, and a data width memory such as 32 BIT and 64 BIT is desirable considering the CPU, memory, and bus.
In view of the above-described conventional problems, the present invention provides an image rotation processing apparatus that realizes high-speed rotation processing even for data in which the BIT width M of a memory word and the BIT width N of a pixel are not integer multiples of M / N The purpose is to provide.
[0004]
[Means for Solving the Problems]
In order to solve the above-mentioned problems, the present invention provides: Includes all horizontal pixels of a block of NxM pixels that divides the source image Fixed-length data for reading word data Read Means,
Based on the start address, X width and Y width of the source image, and the X and Y numbers of the block to be processed, an address of the block of the source image is generated. Reading address generation means;
Includes all horizontal pixels of the block into which the source image is divided based on the address generated by the read address generation means Extract all horizontal pixels of a block from word data Pixel extraction Means and said pixel Cut out Cut out by means Register for storing horizontal pixel data of block When, Data distribution means for reading pixel data of a block stored in the register in a horizontal or vertical direction according to a rotation angle When, Start address of data read from the data distribution means, X width and Y width of the source image, rotation angle, X and Y numbers of the block to be processed, and start pixel value in the X direction for each block To generate an address of a block of data read from the data distribution means Write address generation means; Based on the data read from the data distribution means, the data read from the fixed length data reading means, and the address generated by the write address generation means, A composition processing means for performing composition processing with pre-write data; The synthesis process is performed by the synthesis processing means. And writing means for writing word data to the memory.
[0005]
The fixed-length data reading means reads a plurality of word data including all the horizontal pixels of the N × M pixel block to be processed from the memory word data received from the memory arbiter I / F, and transfers the read word data to the pixel clipping means. . The pixel cutout unit receives word data of a plurality of memories including all horizontal pixel data for each block of the source image from the fixed-length data reading unit, and the input word data of the plurality of memories is read from the reading address generation unit. A signal indicating which data type is received, all the pixels in the horizontal direction of the block are cut out from the word data of the plurality of memories from the fixed-length data reading means, and transferred to the pixel storage means. The pixel storage means sequentially receives all the pixel data in the horizontal direction of the block cut out from the pixel cut-out means, stores N × M pixels forming one block, and is designated 90 degrees to the fixed-length data generation means Based on the unit rotation direction, all the pixels in the horizontal direction of the block are sequentially transferred so that the plurality of word directions of the memory to be written after rotation are horizontal. The fixed-length data generation means includes all the pixels in the horizontal direction of the block and a plurality of output from the write address generation means so that the plurality of word directions of the writing memory after rotation from the pixel storage means are horizontal. Type data indicating which data type is the word data in the memory is received, and the pixel data from the pixel storage means is used as the type data to generate a plurality of word data at the memory address to be written. The data synthesis processing means includes a plurality of word data of the memory address to be written from the fixed-length data generation means, a type data indicating which data type is the word data of the plurality of memories output from the write address generation means, and a fixed length The data at the memory address to be written is read from the data reading means, the data before writing the memory address to be written into the margin data at the head and the end is synthesized and transferred to the fixed-length data writing means. The fixed length data writing means receives the synthesized data from the data synthesis processing means and transfers it to the memory arbiter I / F.
According to this invention, with such a configuration, even for data in which the BIT width M of the memory word and the BIT width N of the pixel are not integer multiples of M / N, a plurality of pixels can be processed in parallel. Rotation processing is possible.
[0008]
Claim 2 Is Includes all horizontal pixels of a block of NxM pixels that divides the source image Fixed-length data for reading word data Read step When, Based on the start address, X width and Y width of the source image, and the X and Y numbers of the block to be processed, an address of the block of the source image is generated. A read address generation step; Based on the address generated by the read address generation step, all the horizontal pixels of the block into which the source image is divided are included. Extract all horizontal pixels of a block from word data Pixel extraction step And the pixel Cut out Cut out by step Register for storing horizontal pixel data of block When, A data distribution step of reading out the pixel data of the block stored in the register in a horizontal or vertical direction according to a rotation angle; , Start address of data read from the data distribution step, X width and Y width of the source image, rotation angle, X and Y numbers of the block to be processed, and start pixel value in the X direction for each block To generate the address of the block of data read from the data distribution step A write address generation step; Based on the data read from the data distribution step, the data read from the fixed length data read step, and the address generated in the write address generation step, A composition processing step for performing composition processing with data before writing; It was synthesized by the synthesis process step And a writing step of writing word data into the memory.
According to this invention, there exists an effect similar to Claim 1.
[0009]
Claim 3 Claims 2 Described in image The program code of the rotation processing method is stored.
An object of the present invention is to supply a storage medium in which a program code of software is recorded to a system or apparatus, and to read and execute the program code stored in the storage medium by a computer (CPU or MPU) of the system or apparatus. Needless to say, this is achieved.
According to this invention, the program code itself read from the storage medium realizes the functions of the embodiment, and the storage medium storing the program code can constitute the present invention.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in detail with reference to embodiments shown in the drawings. However, the components, types, combinations, shapes, relative arrangements, and the like described in this embodiment are merely illustrative examples and not intended to limit the scope of the present invention only unless otherwise specified. .
FIG. 1 is a diagram illustrating a configuration example of a mechanism unit of a multicolor image forming apparatus embodying the present invention. In this multicolor image forming apparatus, reference numeral 1 denotes a belt-like photoconductor as an image carrier, and the photoconductor 1 is rotatably supported by rotating rollers 2 and 3, and drives the rotating rollers 2 and 3. Is rotated in the direction of arrow A. On the outer periphery of the photoreceptor 1, a charging device 4 as a charging unit, a static elimination lamp L, and a cleaning blade 15 </ b> A for the photoreceptor 1 are arranged. At the downstream position of the charging device 4, there is an optical writing unit that is irradiated with laser light emitted from a laser writing unit 5 that is optical writing means.
A plurality of developing units (a multi-color developing device 6 in which developing means are supported in a switchable manner are disposed at a position downstream from the optical writing unit. The multi-color developing device 6 has a yellow color for each toner color to be accommodated. A development unit, a magenta development unit, and a cyan development unit are provided, and a black development unit 7 containing black toner is provided above the multicolor development device 6.
Any one of these development units moves to a developable position in synchronization with the development timing of the corresponding color. The multicolor developing device 6 has a function of selecting any developing unit by rotating 120 degrees on the circumference. When these developing units operate, the black developing unit 7 moves to a position separated from the photoreceptor 1. The movement is performed by the rotation of the cam 45.
The laser writing unit 5 sequentially generates a plurality of color image formation signals (laser light corresponding to writing information) from a laser light source (not shown), and periodically generates the laser light using a polygon mirror 5B rotated by a polygon motor 5A. The surface of the charged photoreceptor 1 is scanned through the fθ lens 5C and the mirror 5D, and an electrostatic latent image is formed on the surface.
[0011]
The electrostatic latent image formed on the surface of the photoreceptor 1 is developed with toner from the corresponding developing unit, and a toner image is formed and held. The intermediate transfer belt 10 is adjacent to the photoreceptor 1 and is supported by rotating rollers 11 and 12 so as to be rotatable in the direction indicated by the arrow B. The toner image on the photoreceptor 1 is transferred to the surface of the intermediate transfer belt 10 by the transfer brush (the first transfer means 13) on the back side of the intermediate transfer belt 10.
The surface of the photoreceptor 1 is cleaned for each color by the cleaning blade 15A, and a toner image of a predetermined color is formed on the surface. Each time the intermediate transfer belt 10 is rotated, the toner image on the photosensitive member 1 is transferred to the same position on the surface, and a plurality of color toner images are superimposed and held on the intermediate transfer belt 10. The Thereafter, the toner image is transferred to a recording medium such as paper or plastic.
When transferring to the paper, the paper feeding device (the paper stored in the paper feeding cassette 17 is fed out by the paper feeding roller 18 and transported by the transporting roller 19, and is temporarily stopped while being applied to the registration roller pair 20. After that, the toner image is transferred to the intermediate transfer belt 10 and the transfer roller (nip of the second transfer means 14) at a timing so that the transfer position of the toner image becomes normal. After the toner images of a plurality of colors on the intermediate transfer belt 10 are collectively transferred by the action of the rollers 14, the toner images are sent to the fixing device 50, where the toner images are fixed, Are discharged to the paper discharge stack section 52.
The intermediate transfer belt 10 is provided with a cleaning device 16 for the intermediate transfer belt 10 at a portion of the rotation roller 11 so that the cleaning blade 16A can be contacted and separated via a cleaning blade contacting / separating arm 16C. In the process of receiving the toner image from the photoreceptor 1, the cleaning blade 16A is separated from the intermediate transfer belt 10 and comes into contact after the toner image is transferred from the intermediate transfer belt 10 to the paper. The residual toner after the toner is transferred is scraped off.
As already described, there are cleaning blades for the photoreceptor 1 and the intermediate transfer belt 10. Waste toner scraped by these blades is stored in a collection container 15. The collection container 15 is replaced as appropriate. An auger 16B provided inside the cleaning device 16 for the intermediate transfer belt 10 conveys waste toner scraped off by the cleaning blade 16A and sends it to the collection container 15 by a conveying means (not shown).
Reference numeral 31 denotes a unitized process cartridge, which includes a photosensitive member 1, a charging device 4, an intermediate transfer belt 10, a cleaning device 16, a conveyance guide 30 that forms a sheet conveyance path, and the like so that they can be replaced at the end of their lifetime. Has been. In addition to the replacement of the process cartridge 31, the multi-color developing device 6 and the black developing unit 7 are also replaced at the end of their service life. In order to facilitate the replacement and the handling of jammed paper, a part of the front frame 8 of the main body is replaced. Has a structure that can be opened and closed about the support shaft 9A. In addition, an electrical / control device 60 is accommodated on the left side of FIG. Above that, a fan 58 is provided, which exhausts air to prevent the temperature inside the machine from rising excessively. On the right side of the figure, another relatively small paper feeder 59 is provided. In this embodiment, the intermediate transfer belt 10 is used as an intermediate transfer member, but an intermediate transfer drum can also be used.
[0012]
FIG. 2 is a block diagram of the electrical / control apparatus 60 of FIG. 71 is an image memory 79 mainly. of An image memory accelerator that operates, controlled by the CPU 77, receives image data from a host computer via a network, transfers the image data to the memory 79, and transfers the image data to the engine controller 83 for printing out. At this time, communication with each host, control of the image memory 79, acquisition of information operated from the panel 86, bus control with peripherals such as the printer engine controller 83, and the like are performed.
72 bus controller, which performs bus arbitration with each peripheral controller connected to the bus 87. A memory arbiter 73 arbitrates between the memory 79 and various controllers. Reference numeral 74 denotes a local I / F, which is an interface such as a ROM of 75, and is connected to a memory of 79 and a CPU of 77 via a memory arbiter of 73. A ROM 75 stores various programs and font information such as characters. Reference numeral 76 denotes a CPU I / F, which is an interface of the CPU 77 and is connected to a memory and various controllers via a memory arbiter 73. A CPU 77 controls the entire printer apparatus. Reference numeral 78 denotes a memory controller which controls the memory 79 and is connected to various controllers and CPUs via a memory arbiter 73.
Reference numeral 79 denotes a memory which stores image data, code data thereof, a CPU program, and the like. A communication controller 80 is connected to a network, receives various data and commands from the network, and is connected to various controllers via a memory arbiter 73. Reference numeral 82 denotes a rotation processing apparatus of the present invention, which reads an image from the memory 79 in accordance with an instruction from the CPU 77 and writes the image after the rotation processing into the memory 79 after the rotation processing.
An engine controller 83 is connected to the bus 87 and controls the printer engine 84. Reference numeral 84 denotes a printer engine. A panel controller 85 controls the panel 86. Reference numeral 86 denotes a panel for notifying the printer device of an operation from the user. A bus 87 connects the image memory accelerator 71 and various peripheral controllers. Reference numeral 81 denotes a DMA that performs direct memory access between the memory controller 78 and the engine controller connected to the 87 bus.
[0013]
FIG. 3 is a conceptual diagram of the rotation processing apparatus of the present invention. Reference numeral 91 denotes a memory arbiter I / F that arbitrates requests to the memory arbiter for image reading processing of the image rotation processing device, dither data reading processing, and post-processing image writing processing. Data is transferred, and the processed image is transferred to the memory arbiter.
Reference numeral 92 denotes an image rotation processing device which receives image data from the memory arbiter I / F 91, performs a rotation process in units of 90 degrees, and transfers the processing result to the memory arbiter I / F 91. A parameter storage device 93 stores parameters required by the image rotation processing device 92. FIG. 16 shows a block diagram.
FIG. 4 is a diagram showing an example of the rotation process. In this way, the rotation process of 0 degrees, 90 degrees, 180 degrees, and 270 degrees is performed in units of 90 degrees.
The example of the rotation process of FIG. 5 is shown. In this method, the source image in the specified memory area is divided into N × M blocks, data is read in N × M block units, written to the specified memory area after the rotation process, and finally all images End the rotation process.
FIG. 8 shows the relationship between the memory word size and the size of one pixel. In this example, the pixel is 24 bits of RGB data, and the word size is 32 bits. In this case, as shown in this figure, three TYPEs are arranged alternately.
FIG. 6 shows a 4 × 4 block rotation process. The timing chart shows memory read / write. First, the 4 × 4 source image is read. After the rotation process, data is read in the horizontal direction from the memory area before writing (this is because the pixel data size and the memory word size are not integer multiples. Thus, there are multiple combinations, and there is a margin in the leading word and the ending word.Basically, when writing, the margin should determine whether previous data is required or not. However, here, a description will be given of a case where data before writing is always read without determination, and an image after rotation processing is written after composition processing.
The example of FIG. 7 is an example in the case where the source image does not just fit in the N × M block size. Thus, the rightmost block before rotation does not contain data in all blocks. Before this rotation, the rightmost block is rotated 90 degrees and then becomes the bottom block, and the end address changes in the Y direction. In addition, the base block before the rotation is rotated 90 degrees to become the leftmost block, and the address of the tip in the X direction changes. In this method, the address write address is calculated sequentially from the leftmost block after rotation and written to the memory, so that even an image that does not fit in the N × M block can be rotated. .
[0014]
FIG. 16 is a block diagram of the image rotation processing apparatus 92 in FIG. Reference numeral 101 denotes a block number generation device. Based on the X and Y widths of the source image received from the parameter storage device 93 in FIG. 3, the number of blocks in the X and Y directions is determined by the number of blocks of N × M pixels. It is obtained and sent to the block count device 102 and the remainder X and Y value generation device 104. FIG. 26 shows a processing flow.
Reference numeral 102 denotes a block count device which manages the image data read from the memory arbiter I / F 91 in FIG. 3 based on the number of blocks in the X and Y directions (BLKXS, BLKYS) received from the block number generation device 101. The number of blocks in the X and Y directions of the currently read image data is counted, and the processing flow is shown in FIG.
Reference numeral 103 denotes a read address generation device. The source image data start address RSADD from the parameter storage device 93 in FIG. 3, the X and Y widths of the source image, and the X and Y of the blocks to be processed from the block count device of 102 The address of the block of the source image to be read is generated from the numbers BLKX and BLKY.
[0015]
FIG. 28 shows a block diagram. FIG. 11 shows a calculation formula for the read address. Reference numeral 104 denotes a remainder X and Y value generation device. The source image X width and Y width from the parameter storage device 93 in FIG. 3 and the X and Y numbers BLKX and BLKY of the blocks to be processed from the block count device of 2 The number of blocks in the X direction and the number of blocks in the Y direction BLKYS of the image to be processed are received from the block number generation apparatus 101, and the X-direction start pixel values RXS0 to RXN and the end pixel values RXEN of each block generated after the rotation processing are received. The value of ˜0, the value of the start pixel value RYS0 to M in the Y direction, and the value of the end pixel value RYEM to 0 are obtained and sent to the write address generator 111 and the data synthesizer 109. FIG. 31 shows a processing flow.
Reference numeral 105 denotes a fixed-length data reading device, which reads a plurality of word data including all horizontal pixels of an N × M pixel block to be processed from the memory word data received from the memory arbiter I / F 91 in FIG. Read and transfer to the pixel extraction device 106. FIG. 9 shows a combination in the case where all pixels are read in the horizontal direction when N is 4, 1 pixel is 24 BIT, and 1 word of the memory is 32 BIT. The number of words is 4 words. If these data types are not managed at the time of reading, it is always necessary to read four words.
Reference numeral 106 denotes a pixel cutout device, which receives word data of a plurality of memories including all horizontal pixel data for each block of the source image from the fixed-length data reading device 105 and receives from the reading address generation device 103 as shown in FIG. IDATATYPE indicating the data type of the word data of the plurality of memories input to, and all the pixels in the horizontal direction of the block are cut out from the word data of the plurality of memories from the fixed-length data reading device 105. Transfer to × M pixel storage. FIG. 18 shows a processing flow.
[0016]
Reference numeral 107 denotes an N × M pixel storage device, which sequentially receives all pixel data in the horizontal direction of the extracted block from the pixel extraction device 106, stores N × M pixels forming one block, In the rotation direction of 90 degree unit specified to the fixed length data generator Based on All the pixels in the horizontal direction of the block are sequentially transferred so that the plurality of word directions of the memory to be written after rotation are horizontal. FIG. 19 shows a block diagram.
Reference numeral 108 denotes a fixed-length data generation device, which writes all the pixels in the horizontal direction of the block so that the plurality of word directions of the memory to be written after rotation from the N × M pixel storage device 107 become the horizontal direction, and 111 writes 9 receives ODATATYPE indicating the data type of the word data of the plurality of memories output from the address generation device as shown in FIG. 9, and converts the pixel data from 107 N × M pixel storage devices into ODATATYPE Based on A plurality of word data of the memory address to be written is generated. FIG. 25 shows a processing flow.
Reference numeral 109 denotes a data composition processing device, which includes a plurality of word data of memory addresses to be written from the fixed-length data generation device 108 and a plurality of memory word data output from the write address generation device 111 as shown in FIG. ODATATYPE indicating the data type and the data of the memory address to be written from the fixed-length data reading device 105 are read, and the data before the writing of the memory address to be written to the margin data at the beginning and the end as shown in FIG. Are transferred to the 110 fixed-length data writing device.
In addition, since the image data in the X and Y directions may not be an integer multiple of N × M blocks, the number of pixels in the X direction for each block from the remainder X and Y value generation device may be 4 RXES is received, and the above data composition processing is performed even for data that is not the same as the horizontal size of the block as shown in FIG. 9 but smaller than the horizontal or vertical size of the block. FIG. 32 shows a block diagram of the data synthesis apparatus.
[0017]
Reference numeral 110 denotes a fixed-length data writing device, which receives the synthesized data from the data synthesis processing device 109 and transfers it to the memory arbiter I / F 91 in FIG.
Reference numeral 111 denotes a write address generation device, which starts from the parameter storage device 93 shown in FIG. 3, the start address RDADD of the destination image data, the X width and Y width of the source image, the rotation angle in units of 90 degrees, and a block count device of 2 The X and Y numbers BLKX and BLKY of the block to be processed from, and the remainder X of the Y value generator 104 and the start pixel value RXS in the X direction for each block from the Y value generator, Generate an address. FIG. 10 shows the data writing order for each rotation angle. In this way, addresses are generated in the direction in which the data are connected in the horizontal direction, and the data is written. FIG. 30 shows a block diagram. 12, 13, 14 and 15 show formulas for calculating the write address in each rotation direction.
A controller 112 controls the entire image rotation processing apparatus.
[0018]
FIG. 17 shows an example in which the N × M pixel block of the image rotation processing apparatus 92 in FIG. 3 described in FIG. 16 is a 4 × 4 block. A specific example thereafter will be described with an example in which 4 × 4 pixels in FIG. 17 are one block, the pixel is 24 bits, and the memory word is 32 bits as shown in FIG. FIG. 26 shows a processing flow of the block number generation apparatus. Here, the description of RSXWIDTH [15: 2] described is a description in Verilog, which is a hardware description language, and expresses data of 15 bits to 2 bits of RSXWIDTH.
S191 determines whether the lower 2BIT of RSXWIDTH, which is the X width of the source image, is 0. When the X direction of the block size is 4, there is a remainder when the source image is divided into 4 × 4 blocks. Judging. If there is a remainder, the process proceeds to S193.
In S102, it is determined in S191 that there is no remainder, so the number of blocks in the X direction is a value obtained by dividing the X width of the source image by the X direction of the block size (because the block size is 4 in this case). This is realized by shifting 2 bits.
In S193, since it is found that there is a surplus in the determination of 1, the number of blocks in the X direction becomes a value obtained by adding 1 to the value obtained by dividing the X width of the source image by the X direction of the block size.
S194 determines whether the lower 2 bits of RSYWIDTH, which is the Y width of the source image, is 0. When the Y direction of the block size is 4, there is a remainder when the source image is divided into 4 × 4 blocks. Judging. If there is a remainder, go to step 6.
In S195, it is determined in S194 that there is no remainder, so the number of blocks in the Y direction is the value obtained by dividing the Y width of the source image by the Y direction of the block size (in this case, the block size is 4). This is realized by shifting 2 bits.
In S196, since it is found that there is a surplus in the determination in S191, the number of blocks in the Y direction becomes a value obtained by adding 1 to the value obtained by dividing the Y width of the source image in the Y direction of the block size in this way.
[0019]
FIG. 27 shows a processing flow of the block count device.
S201 is the process of S202 when a reset signal is received.
In step S202, IYCNT, which is the number of lines in the block being processed, is initialized with the remainder X in FIG. 17 and the remainder in the Y direction of the Y value generator.
In step S203, it is determined whether IYCNT, which is the number of lines in the block being processed, is the same as the Y size of the current block.
In step S204, IYCNT, which is the number of lines in the block being processed, is initialized with the remainder X in FIG. 17 and the remainder in the Y direction of the Y value generator.
In S205, when the flag LINE_ENDFL whose line processing is completed is received from the 112 controller in FIG. 17, the process proceeds to S206.
In S206, IYCNT which is the number of lines in the block being processed is counted up.
S207 is the process of S208 when a reset signal is received.
S208 initializes the block number in the X direction currently being processed.
In S209, if the block number in the X direction being processed is the final number and the number of lines in the block is the final line, the process proceeds to S210.
S210 initializes the block number in the X direction currently being processed.
S211 is the process of S112 when the flag NEXTTXFL for which the processing of the block is completed comes from the 112 controller in FIG.
S212 counts up the block number in the X direction being processed
S213 is the process of S214 when a reset signal is received.
In step S214, the block number in the Y direction currently being processed is initialized.
In S215, when the block number in the Y direction being processed is the final number and NEXTTXFL is received, the process proceeds to S216.
In step S216, the block number in the Y direction currently being processed is initialized.
In S217, if the block number in the X direction being processed is the final number and the number of lines in the block is the final line, the process proceeds to S218.
S218 counts up the block number in the Y direction being processed
[0020]
FIG. 28 shows a block diagram of the read address generation device. This read address generation device generates a read address as shown in FIG. Here, the description of {BLKY, 2′h0} described is a description in Verilog, which is a hardware description language, and expresses data obtained by shifting BLKY to the left by 2 bits.
An adder 301 realizes (vertical block number × vertical block size + number of lines in the block.
A multiplier 302 multiplies the result of 301 by the number of horizontal pixels of the image.
An adder 303 adds (horizontal block number × horizontal block size) to the result of 302.
Reference numeral 304 denotes a process for converting the logical address obtained in 303 into a memory address. Since the pixel size and the memory word size are 3/4 as shown in FIG. 9, the address is also multiplied by 3/4. FIG. 29 shows a block diagram of the memory address conversion device. Reference numeral 305 denotes an adder, which adds the start address of the source image to the memory address obtained in 304 and obtains the final read memory address.
Reference numeral 306 denotes an upper BIT mask device, which cuts out the lower 2 BIT of the logical address obtained in 3 to obtain IDATATYPE indicating which type in FIG.
[0021]
FIG. 29 shows a memory address conversion device.
Reference numeral 311 denotes an adder, which triples the logical address obtained in 303 of FIG.
Reference numeral 312 denotes a 2BIT right shift device which divides the triple value obtained in 1 by 4 and performs 3/4 processing.
FIG. 31 shows a remainder X and Y value generator.
In step S221, the X width of the source image is subtracted from the number of X direction blocks × the X direction block size to obtain a remainder in the X direction, and the Y width of the source image is subtracted from the number of Y direction blocks × the Y direction block size. Seeking the remainder.
In S222 to S224, the BLK in the X direction currently being processed is the last block, and CHKXFL is set to “1” if there is much in the X direction, and “0” if the condition is not satisfied.
In S225 to S227, the BLK in the Y direction currently being processed is the last block, and CHKYFL is set to “1” if there is too much in the Y direction, and “0” if the condition is not satisfied.
In S228 to S232, the end address RXE in the X direction in the write block is obtained. ROTFL is a rotation angle, and in S228 to S229, if CHKXFL is “1” when the rotation angle is 0 degree, the remainder value AMALIX in the X direction obtained in S221 is set. In steps S230 to S231, if CHKYFL is “1” when the rotation angle is 270 degrees, the remainder value AMARY in the Y direction obtained in step S230 is set. In S232, the size of MAX is set otherwise. (The end is not missing)
S233 to S237 calculate the leading address (RXS) in the X direction in the writing block. S233 to S234 determine 1 from the block size in the X direction if CHKXFL is "1" when the rotation angle is 90 degrees. The value obtained by subtracting the remainder value AMarix in the X direction is set.In S235 to S236, if CHKYFL is “1” when the rotation angle is 180 degrees, the remainder in the Y direction obtained in S221 from the block size in the Y direction. A value obtained by subtracting the value AMARIY is set, otherwise S0 is set to “0” (the tip is not missing).
[0022]
In S238 to S242, the end address RYE in the Y direction in the write block is obtained. ROTFL is a rotation angle. In S238 to S239, if CHKYFL is “1” when the rotation angle is 0 degree, the remainder value AMARY in the Y direction obtained in S221 is set. In S240 to S241, if CHKXFL is “1” when the rotation angle is 90 degrees, the remainder value AMALIX in the X direction obtained in S221 is set. In S242, the size of MAX is set otherwise. (The end is not missing)
In S243 to S247, the leading address (RYS in the Y direction in the writing block is obtained. In S243 to S244, if CHKYFL is “1” when the rotation angle is 180 degrees, the obtaining is performed in S221 from the block size in the Y direction. The remainder value in the Y direction (a value obtained by subtracting AMARIY is set. In S245 to S246, if CHKXFL is “1” when the rotation angle is 180 degrees, the X direction obtained in S221 from the block size in the X direction is set. A value obtained by subtracting the remainder value AMALIX is set S247, otherwise, “0” is set (the tip is not missing).
In S248, the data size RXSE in the X direction is obtained.
[0023]
FIG. 18 shows a flow of the pixel cutout device.
S1 receives the data type IDATATYPE as shown in FIG. 9 of the read data obtained by the read address generation device 103 in FIG. 17, and if IDATATYPE is 0, go to S2.
In S2, since the data read in S1 is determined as TYPE0 in FIG. 9, the pixel data is cut out as in TYPE0 in FIG.
If IDATATYPE is 1 in S3, go to S4
In S4, since the data read in S3 is determined to be TYPE1 in FIG. 9, the pixel data is cut out as in TYPE1 in FIG.
If IDATATYPE is 2 in S5, go to S6
In S6, since the data read in S5 is determined as TYPE2 in FIG. 9, the pixel data is cut out as in TYPE2 in FIG.
S7 is S8 if IDATATYPE is S3
In S8, since it is determined that the data read in 7 is TYPE3 in FIG. 9, the pixel data is cut out as in TYPE3 in FIG.
FIG. 19 is a block diagram of a 4 × 4 pixel storage device. Reference numerals 201 to 216 denote registers, which can store pixel data of an input block and write pixels in the horizontal direction of the block at a time. A data distribution device 217 reads the data in the registers 201 to 216 at a time in the horizontal or vertical direction according to the rotation angle and sequentially transfers them. A controller 218 controls the 4 × 4 pixel storage device.
[0024]
FIG. 20 shows a pixel storage flow of the 4 × 4 pixel storage device. It can be seen that data is sequentially stored in the horizontal direction according to the timing from the control device 218 in FIG.
21, 22, 23, and 24 show the flow of the data distribution device 217 in FIG. 19. Read four pixels of the block in the horizontal direction on the rotated memory word at a time.
FIG. 21 shows the flow for selecting the 0th data, FIG. 22 shows the flow for selecting the first data, FIG. 23 shows the second data selection flow, and FIG. 24 shows the third data flow. The ROTFL in the flow is a rotation angle, 0 is 0 degree, 1 is 90 degrees, 2 is 180 degrees, and 3 is 270 degrees. The timing in the flow is the timing of the rotation process generated by the controller 218 in FIG. Data 00 to 33 in the flow indicate registers 1 to 16 in FIG.
[0025]
FIG. 25 shows a flow of the fixed-length data generation apparatus.
S181 receives the data type ODATATYPE as shown in FIG. 9 in which the plurality of rotated horizontal pixels output from the N × M pixel storage device shown in FIG. If there is, go to S182
In S182, since the data to be written to the memory in S181 is determined to be TYPE0 in FIG. 9, the data is converted to TYPE0 in FIG.
If ODATATYPE is 1 in S183, go to S184
In S184, since the data to be written to the memory in S181 is determined to be TYPE1 in FIG. 9, the data is converted into TYPE1 in FIG.
S185: If ODATATYPE is 2, go to S186
In S186, since the data to be written to the memory in S181 is determined to be TYPE2 in FIG. 9, the data is converted into TYPE2 in FIG.
If S187 is ODATATYPE3, go to S188
In S188, since the data to be written to the memory is determined to be TYPE3 in FIG. 9, it is converted as TYPE3 in FIG.
[0026]
FIG. 32 shows a block diagram of the data composition processing apparatus.
Reference numeral 351 denotes a mask generation device, which starts valid data for masking the range of valid data after rotation to synthesize the data before writing and the data after rotation according to the data type of the memory address to be written as shown in FIG. An address MASKF and a termination address MASKL are generated. FIG. 33 shows a processing flow.
Reference numeral 352 denotes a synthesizing processing device that generates data DATA0O to DATA3O to be written from mask data MASKF and MASKL from the mask generation device 1 and the data RDATA0 to 3 before rotation, data DATA0I to 3I after rotation, and 1.
FIG. 34 shows a processing flow.
FIG. 33 shows a processing flow of the mask generation apparatus.
S251 to S261 are processes of the data TYPE0 in FIG. 9, RXES is the effective data size from the remainder X and Y value generation device 104 in FIG. 17, and the mask end information varies depending on the size of the data.
S262 to S272 are the processing of the data TYPE1 in FIG. 9, RXES is the effective data size from the remainder X and Y value generation device 104 in FIG. 17, and the mask end information differs depending on the size of the data.
S273 to S283 are the processing of the data TYPE2 in FIG. 9, RXES is the effective data size from the remainder X and Y value generation device 104 in FIG. 17, and the mask end information differs depending on the size of the data.
S284 to S294 are the processing of the data TYPE3 in FIG. 9, RXES is the effective data size from the remainder X and Y value generation device 104 in FIG. 17, and the mask end information differs depending on the size of the data.
[0027]
34 to 36 show the flow of the synthesizer 2 in FIG.
In steps S301 to S332, end mask processing is performed from the end mask value MASKL from the mask generation apparatus 351 in FIG. 32 and the data RDATA0 to 3 before writing and the data DATA0I to 3I after rotation. Here, the description of DATA3I [31: 8] described is a notation in Verilog, which is a hardware description language, and expresses data of 31 bits to 8 bits of DATA3I.
S303 is a compositing process when MASKL is 1, and since there is no data in the lower 8 bits of the data after the fourth rotation, there is a possibility that the data before the rotation process is included in the data before being written. Therefore, the lower 8 BIT of the fourth data RDATA3O of the data before being written into the lower 8 BIT is synthesized.
In steps S333 to S340, the leading edge mask processing is performed from the start mask value MASKF from the mask generation apparatus 351 in FIG. 32 and the data RDATA0 before writing and the rotated data WDATA0 processed by 1 to 32.
FIG. 30 shows a block diagram of the write address generation device. ROPFL in the flow is the rotation angle, IYCNT is the number of lines being processed in the block, BLKX is the block number in the X direction being processed, BLKY is the block number in the Y direction being processed, and RSXWIDTH is The X width of the source image, RSYWIDTH is the Y width of the source image, and RDADD is the start address of the destination image data.
Reference numerals 321 to 323 generate logical addresses at a rotation angle of 0 degree. Reference numerals 324 to 328 generate logical addresses at a rotation angle of 90 degrees. Reference numerals 329 to 334 generate logical addresses at a rotation angle of 180 degrees. 335 to 338 generate logical addresses at a rotation angle of 270 degrees. Reference numeral 329 denotes a MUX that selects an address generated based on the rotation angle. Reference numeral 340 denotes processing for converting the logical address obtained in 329 into a memory address. Since the pixel size and the memory word size have a relationship of 3/4 as shown in FIG. 9, the address is also multiplied by 3/4. FIG. 29 shows a block diagram of the memory address conversion device.
Reference numeral 305 denotes an adder, which adds the start address of the destination image data to the memory address obtained in 304 and obtains a final memory address to be written.
Reference numeral 306 denotes an upper BIT mask device, which cuts out the lower 2 BIT of the logical address obtained in 303 and obtains ODATATYPE indicating which type in FIG.
[0028]
【The invention's effect】
Claim 1 as described above, 2 According to the invention, with such a configuration, even for data in which the BIT width M of the memory word and the BIT width N of the pixel are not integer multiples of M / N, a plurality of pixels can be processed in parallel. Therefore, rotation processing is possible.
And claims 3 Then, the program code itself read from the storage medium realizes the functions of the embodiment, and the storage medium storing the program code can constitute the present invention.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of a mechanism unit of a multicolor image forming apparatus according to an embodiment of the present invention.
FIG. 2 is a block diagram of the electrical / control apparatus 60 of FIG. 1 of the present invention.
FIG. 3 is a conceptual diagram of a rotation processing apparatus according to the present invention.
FIG. 4 is a diagram showing an example of rotation processing according to the present invention.
FIG. 5 is a diagram illustrating an example of rotation processing according to the present invention.
FIG. 6 is a diagram illustrating a 4 × 4 block rotation process according to the present invention.
FIG. 7 is a diagram illustrating an example in a case where a source image of the present invention does not just fit in an N × M block size.
FIG. 8 is a diagram showing the relationship between the word size of the memory of the present invention and the size of one pixel.
FIG. 9 is a diagram showing a data type of word data in a plurality of memories according to the present invention.
FIG. 10 is a diagram showing a data writing order for each rotation angle according to the present invention.
FIG. 11 is a diagram showing a calculation formula for a read address according to the present invention.
FIG. 12 is a diagram illustrating a calculation formula for a write address in each rotation direction.
FIG. 13 is a diagram illustrating a calculation formula for a write address in each rotation direction;
FIG. 14 is a diagram illustrating a calculation formula of a write address in each rotation direction.
FIG. 15 is a diagram illustrating a calculation formula for a write address in each rotation direction;
FIG. 16 is a block diagram of an image rotation processing apparatus according to the present invention.
FIG. 17 is a block diagram when the N × M pixel block of the image rotation processing apparatus of FIG. 3 of FIG. 3 is a 4 × 4 block.
FIG. 18 is a process flow diagram of the pixel cutout device of the present invention.
FIG. 19 is a block diagram of a pixel storage device of the present invention.
FIG. 20 is a pixel storage flow diagram of the pixel storage device of the present invention.
FIG. 21 is an operation flowchart of the data distribution apparatus of the present invention (part 1);
FIG. 22 is an operation flow diagram of the data distribution apparatus of the present invention (part 2);
FIG. 23 is an operation flowchart of the data distribution apparatus of the present invention (part 3);
FIG. 24 is a flowchart for selecting the third data in the data distribution apparatus of the present invention;
FIG. 25 is an operation flowchart of the fixed-length data generation apparatus according to the present invention.
FIG. 26 is an operation flowchart of the block number generation apparatus of the present invention.
FIG. 27 is an operation flowchart of the block count device of the present invention.
FIG. 28 is a block diagram of a read address generation device of the present invention.
FIG. 29 is a block diagram of a memory address conversion apparatus of the present invention.
FIG. 30 is a block diagram of a read address generation device of the present invention.
FIG. 31 is a block diagram of a remainder X and Y value generation device of the present invention.
FIG. 32 is a block diagram of a data synthesizing apparatus of the present invention.
FIG. 33 is an operation flowchart of the mask generation apparatus of the present invention.
FIG. 34 is an operation flowchart of the data synthesizing apparatus of the present invention (No. 1).
FIG. 35 is an operation flowchart of the data synthesizing apparatus of the present invention (No. 2).
FIG. 36 is an operation flowchart of the data synthesizing apparatus of the present invention (part 3);
[Explanation of symbols]
91 memory arbiter I / F, 92 image rotation processing device, 93 parameter storage device

Claims (3)

ソース画像を分割したN×M画素のブロックの水平方向の画素を全て含むワードデータを読み込む固定長データ読込手段と、
前記ソース画像のスタートアドレス、X幅及びY幅、及び処理対象のブロックのX、Yの番号に基づき、前記ソース画像のブロックのアドレスを生成する読込アドレス生成手段と、
前記読込アドレス生成手段により生成されたアドレスに基づき、前記ソース画像を分割したブロックの水平方向の画素を全て含むワードデータからブロックの水平方向の画素を全て切り出す画素切出手段と、
前記画素切出手段により切り出されたブロックの水平方向の画素データを格納するレジスタと、
前記レジスタに格納されたブロックの画素データを、回転角度に応じて水平もしくは垂直方向に読み出すデータ分配手段と、
前記データ分配手段から読み出されたデータのスタートアドレス、前記ソース画像のX幅及びY幅、前記回転角度、処理対象のブロックのX、Yの番号、及び各ブロック毎のX方向のスタート画素値に基づき、前記データ分配手段から読み出されたデータのブロックのアドレスを生成する書込アドレス生成手段と、
前記データ分配手段から読み出されたデータと、前記固定長データ読込手段から読み込まれたデータと、前記書込アドレス生成手段で生成されたアドレスとに基づき、書き込み前データと合成処理を行う合成処理手段と、
前記合成処理手段により合成処理されたワードデータをメモリに書き込む書込手段と、を有することを特徴とする画像回転処理装置。
A fixed length data reading means for reading word data including all horizontal pixels of N × M blocks of pixels obtained by dividing the source image,
A read address generating means for generating an address of the block of the source image based on the start address, the X width and the Y width of the source image, and the X and Y numbers of the block to be processed ;
Based on the address generated by the read address generation means, a pixel cutout means for cutting out all the horizontal pixels of the block from word data including all the horizontal pixels of the block into which the source image has been divided ,
A register for storing the horizontal direction of the pixel data of a block cut out by the pixel cutting means,
Data distribution means for reading out pixel data of the block stored in the register in a horizontal or vertical direction according to a rotation angle ;
Start address of data read from the data distribution means, X width and Y width of the source image, rotation angle, X and Y numbers of the block to be processed, and start pixel value in the X direction for each block Write address generation means for generating an address of a block of data read from the data distribution means ,
A synthesis process for performing a synthesis process with the pre-write data based on the data read from the data distribution unit, the data read from the fixed-length data reading unit, and the address generated by the write address generation unit Means,
An image rotation processing apparatus comprising: writing means for writing the word data synthesized by the synthesis processing means into a memory.
ソース画像を分割したN×M画素のブロックの水平方向の画素を全て含むワードデータを読み込む固定長データ読込ステップと、
前記ソース画像のスタートアドレス、X幅及びY幅、及び処理対象のブロックのX、Yの番号に基づき、前記ソース画像のブロックのアドレスを生成する読込アドレス生成ステップと、
前記読込アドレス生成ステップにより生成されたアドレスに基づき、前記ソース画像を分割したブロックの水平方向の画素を全て含むワードデータからブロックの水平方向の画素を全て切り出す画素切出ステップと、
前記画素切出ステップにより切り出されたブロックの水平方向の画素データを格納するレジスタと、
前記レジスタに格納されたブロックの画素データを、回転角度に応じて水平もしくは垂直方向に読み出すデータ分配ステップと
前記データ分配ステップから読み出されたデータのスタートアドレス、前記ソース画像のX幅及びY幅、前記回転角度、処理対象のブロックのX、Yの番号、及び各ブロック毎のX方向のスタート画素値に基づき、前記データ分配ステップから読み出されたデータのブロックのアドレスを生成する書込アドレス生成ステップと、
前記データ分配ステップから読み出されたデータと、前記固定長データ読込ステップから読み込まれたデータと、前記書込アドレス生成ステップで生成されたアドレスとに基づき、書き込み前データと合成処理を行う合成処理ステップと、
前記合成処理ステップにより合成処理されたワードデータをメモリに書き込む書込ステップと、を有することを特徴とする画像回転処理方法。
A fixed-length data reading step for reading word data including all horizontal pixels of a block of N × M pixels obtained by dividing the source image ;
A read address generating step for generating an address of the block of the source image based on the start address, the X width and the Y width of the source image, and the X and Y numbers of the block to be processed ;
Based on the address generated by the read address generation step, a pixel cutout step of cutting out all the horizontal pixels of the block from the word data including all the horizontal pixels of the block obtained by dividing the source image ;
A register that stores pixel data in the horizontal direction of the block cut out by the pixel cutting step;
A data distribution step of reading out pixel data of the block stored in the register in a horizontal or vertical direction according to a rotation angle ;
Start address of data read from the data distribution step, X width and Y width of the source image, rotation angle, X and Y numbers of the block to be processed, and start pixel value in the X direction for each block A write address generation step for generating an address of a block of data read from the data distribution step ,
A synthesis process for performing a synthesis process with data before writing based on the data read from the data distribution step, the data read from the fixed-length data reading step, and the address generated in the write address generation step Steps,
An image rotation processing method comprising: a writing step of writing the word data synthesized by the synthesis processing step into a memory.
請求項に記載の画像回転処理方法のプログラムコードが格納されたことを特徴とするコンピュータ読み取り可能な記憶媒体。A computer-readable storage medium storing the program code of the image rotation processing method according to claim 2 .
JP2003031676A 2003-02-07 2003-02-07 Image rotation processing apparatus, image rotation processing method, and storage medium Expired - Fee Related JP4012833B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003031676A JP4012833B2 (en) 2003-02-07 2003-02-07 Image rotation processing apparatus, image rotation processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003031676A JP4012833B2 (en) 2003-02-07 2003-02-07 Image rotation processing apparatus, image rotation processing method, and storage medium

Publications (2)

Publication Number Publication Date
JP2004242212A JP2004242212A (en) 2004-08-26
JP4012833B2 true JP4012833B2 (en) 2007-11-21

Family

ID=32958182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003031676A Expired - Fee Related JP4012833B2 (en) 2003-02-07 2003-02-07 Image rotation processing apparatus, image rotation processing method, and storage medium

Country Status (1)

Country Link
JP (1) JP4012833B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016047472A1 (en) 2014-09-22 2016-03-31 ソニー株式会社 Image processing device, image processing method, and program

Also Published As

Publication number Publication date
JP2004242212A (en) 2004-08-26

Similar Documents

Publication Publication Date Title
JP4218951B2 (en) Image forming apparatus, control method, and control program
JPH079695A (en) Information recording device
JP2013084224A (en) Image forming apparatus
US7280234B2 (en) Image processing device
JP4027133B2 (en) Image processing device
JP5768524B2 (en) Image processing apparatus, image processing method, and program
JP4012833B2 (en) Image rotation processing apparatus, image rotation processing method, and storage medium
JP2009269341A (en) Apparatus and method for processing image
JP5282470B2 (en) Image processing apparatus, image forming apparatus, and image processing method
JPH10129050A (en) Printing processor
JP2004242213A (en) Image processing apparatus, image processing method, color conversion processing apparatus, color conversion processing method, and storage medium
JP4103164B2 (en) Print processing device
JP5740991B2 (en) Image processing apparatus and image processing method
JP2009169727A (en) Image processing apparatus, image processing method, and program
JP3793050B2 (en) Multiple arithmetic circuit
JP5262882B2 (en) Image processing apparatus and image processing method
JP4118052B2 (en) Image processing device
JP3671633B2 (en) Print data processing device
JP3902850B2 (en) Image processing method and image processing apparatus
JP5123721B2 (en) Image forming apparatus, method, and program
JP2575227B2 (en) Printing equipment
JP2013063574A (en) Image processing apparatus, and drawing method
JP2004282239A (en) Image processing device
JP2004215242A (en) Data processing device, image processing device, and image forming device
JPH09270915A (en) Image processing method and image processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070910

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees