JP3834935B2 - Print processing device - Google Patents

Print processing device Download PDF

Info

Publication number
JP3834935B2
JP3834935B2 JP14743697A JP14743697A JP3834935B2 JP 3834935 B2 JP3834935 B2 JP 3834935B2 JP 14743697 A JP14743697 A JP 14743697A JP 14743697 A JP14743697 A JP 14743697A JP 3834935 B2 JP3834935 B2 JP 3834935B2
Authority
JP
Japan
Prior art keywords
processing
data
image
unit
image processing
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
JP14743697A
Other languages
Japanese (ja)
Other versions
JPH10337932A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP14743697A priority Critical patent/JP3834935B2/en
Publication of JPH10337932A publication Critical patent/JPH10337932A/en
Application granted granted Critical
Publication of JP3834935B2 publication Critical patent/JP3834935B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、印刷処理装置における画像処理技術に関し、特に印刷データに対して複数の画像処理を並列的に実行させる印刷処理装置に関する。
【0002】
【従来の技術】
小型、高速のデジタル印刷に適した電子写真方式のページプリンタの開発に伴い、従来の文字情報中心の印刷から脱皮した、画像、図形、文字などを同様に取り扱い、図形、文字等の拡大、回転、変形などが自由に制御できる記述言語を用いる印刷処理装置が一般に普及してきた。この記述言語の代表例として、PostScript(米国アドビシステムズ社の商標)、Interpress (米国ゼロックス社の商標)、Acrobat(米国アドビシステムズ社の商標)、GDI(Graphics Device Interface、米国マイクロソフト社の商標)等が知られている。
【0003】
記述言語で作成されている印刷データは、ページ内の任意の位置の画像、図形、文字を表現する描画命令が任意の順で構成されており、本発明に係わるページプリンタで印字するためには、印字前に印刷データをラスタ化しなければならない。ラスタ化というのは、ページ又はページの一部を横切る一連の個々のドットまたは画素へ展開してラスタ走査線を形成し、そのページの下へ引き続く走査線を次々に発生する過程である。従来のページプリンタは、印字前にページ全体の印刷データをラスタ化し、ページバッファメモリに記憶していた。しかしながら、ページ全体に対するラスタデータを記憶するためには、大量のメモリを必要とする。特に、最新の電子写真方式のカラーページプリンタでは、C(シアン)、M(マゼンタ)、Y(イエロー)、Bk(ブラック)の4色のトナーに対応するラスタデータを必要とするとともに、白黒ページプリンタ以上に画質が要求されるため、1画素当たり複数のビット情報を持つのが一般的であり、さらに大量のメモリを必要とする。
【0004】
この大量のメモリの必要性に対し、コスト低減の観点からメモリ容量を低減させる技術として、最近バンドメモリ技術が登場してきた。バンドメモリ技術は、ページプリンタの印字前に1ページ分の印刷データを全てラスタ化するのではなく、記述言語で作成されている印刷データを、印刷データをラスタ化するよりも速くラスタ化可能な比較的簡単な中間データに変換し、1ページを隣接する複数の領域(バンド)に分割し、各バンドに対応する中間データを記憶した後、ラスタ展開処理部に順次転送し、バンドに対応するバッファメモリに展開する技術である。バンドメモリ技術では、中間データを記憶するためのメモリは新たに必要であるが、ラスタデータのための大容量を必要とするバッファメモリを低減することが可能となる。しかし、一般的なバンドメモリ技術では、あるバンドのラスタデータの印字が終了するまでに、次のバンドに対する中間データからラスタデータへの展開を終了させる必要がある。印刷データに複雑な図形描画命令や扱うデータ量の大きい画像描画命令が含まれている場合、あるいは1ページ内の特定のバンドに複雑な図形描画命令や画像描画命令が含まれている場合等、中間データからラスタデータへの展開が間に合わない状況が発生する可能性がある。
【0005】
そこで、中間データからラスタデータへの展開処理を高速化するために専用ハードウェアを利用することが考えられた。上述したように、ページ内に描画される対象としては、画像、図形、文字があり、これらは、それぞれのオブジェクトの型に応じて特殊な処理を必要とする。例えば対象が画像の場合、解像度変換、アフィン変換、これらの処理に伴う補間、色処理等である。また、図形の場合には、座標変換、ベクタ/ラスタ変換、塗りつぶし処理等が必要である。また、文字の場合には、アウトライン座標の変換、ヒント処理、ベクタ/ラスタ変換、塗りつぶし処理等が必要である。そこで、これらすべての処理に対応する専用ハードウェアを1つづつ用意することが必要となる。しかし、この場合、メモリ量を削減できたとしても、追加するハードウェア量が多くなってシステム全体が高価になるという問題があった。また、中間データをビットマップにする目的のハードウェアは、中間データをビットマップにするときだけにしか使用できず、処理に応じた専用ハードウェアを並列的に用意しておくことは、その使用率を考えると大変無駄であるという問題があった。
【0006】
従来、このような問題を解決する試みを行った構成に、特開平6−131155号公報や、特開平6−282432号公報などにおいて記載の技術がある。これらの公報に記載の技術は、全ての機能について並列にハードウェアを設けるのではなく、ハードウェアのプログラマビリティ、あるいは構造を再構成することにより、機能を可変なものとし、少ないハードウェアで多くの機能を高速に実現しようとしている。
【0007】
また、画像描画命令に関連する画像処理を複数のハードウェアを用いて並列処理することができる。並列処理を行うことによって、高速に画像処理を行う従来技術としては、例えば、「並列処理プロセッサ」(特開昭59−53964)および「画像処理技術」(特開昭63−201774)などがある。
【0008】
特開昭59−53964号公報に記載の並列画像プロセッサは、ローカルメモリ、各ローカルメモリに対応して設けられたローカルプロセッサとからなるプロセッサモジュール、入出力バス、および管理プロセッサから構成される並列画像プロセッサである。このプロセッサモジュールは、位置比較回路およびメモリ素子並びにアクセス制御回路を備えることができる。この並列画像プロセッサの目的は、部分画面に対応して設けられたプロセッサモジュールによる並列画像プロセッサにおいて、局所近傍演算の実行に際して隣接するプロセッサモジュールとの更新を不要とした並列画像プロセッサを提供することである。前述の管理プロセッサが入出力バスを介する画面画像データを送出している間に、各プロセッサモジュールのローカルメモリに画像処理の対象となる部分画面およびその周辺の近傍画像データを格納することによって、実質的な画像処理の段階で隣接する部分画面画像データを持つプロセッサモジュールにデータの問い合わせ(データ参照)をする必要がなく、それぞれのプロセッサモジュールで全く独立に画像処理ができるため、処理速度が向上する。
【0009】
特開昭63−201774号公報に記載の画像処理装置は、複数のメモリエレメントから構成される画像メモリと、複数のプロセッサエレメントからなるプロセッサユニットとを備えた画像処理装置である。この画像処理装置は、ローテーション手段、若しくはイネーブル制御手段を備えることができる。この画像処理装置の目的は、有限個の少数のプロセッサの並列処理により、高速な画像処理を行う画像処理装置を提供することである。この画像処理装置は、画像メモリの隣接する所定領域内の画素データをプロセッサユニットで同時に処理することができる。さらに、ローテーション手段により所定領域の位置を自在に制御し、または、イネーブル制御手段により、所定領域の大きさを自在に制御することができる。
【0010】
さらに特開昭63−197283号公報に記載の技術は、画像メモリ、複数の画像処理ユニットおよびホストプロセッサをデータ転送路により接続した並列画像処理装置である。
【0011】
【発明が解決しようとする課題】
上述の従技術における画像処理装置においては、各プロセッサモジュールもしくはプロセッサユニット、またはローカルメモリに部分画像データを割り振って並列処理を行うものであり、画像処理機能に応じた並列処理を行うことができなかった。
【0012】
つまり、特開昭59−53964号公報における「並列画像プロセッサ」、および特開昭63−201774号公報における「画像処理装置」などは、ある画像データを分割して部分画像データとし、それらを各プロセッサモジュールもしくは、プロセッサユニット、またはローカルメモリに割り振ることに着眼したものであり、主として画像の属性の一つである画像データについて考慮されたものであり、いわゆるクリップ処理や色変換処理などの画像処理の内容、機能(振る舞いまたは手続)を考慮したものではなかった。
【0013】
また、画像の編集処理において発生する連続する画像処理列、例えば、画像データを画像処理装置に読み込んで、クリップ処理を実行し、色変換処理を行い、ディスプレイに描画出力するなどの一連の画像処理の並びについての並列処理としての取り扱いについては考慮されていなかった。
【0014】
特開昭63−197283号公報に記載の並列画像処理装置は、ホストプロセッサの起動手段により、前記画像の処理ユニットを並列動作あるいは逐次動作させるけれども、例えば連続する複数の画像処理に対して該画像処理列の内の2つの機能または属性を比較することにより、並列可能性を検査するようなことは実施されておらず、連続する複数の画像処理列に対して適用可能な並列画像処理装置ではない。
【0015】
特開昭63−197283号公報に記載の実施例において説明されている並列処理装置は、単一の画像処理機能たる二値化を複数の画像処理ユニットで実行しているにすぎない。後述するように本発明の構成によれば、カラーマップ変更処理およびそれに後続するクリップ処理といったような機能的に全く異なる複数の画像処理を並列処理することができる。
【0016】
また特開昭63−197283号公報の実施例において説明されるシーケンシャル画像処理と称される画像処理ユニットの逐次動作は、単一の画像処理機能たる回転処理を複数の画像処理ユニットで行っているに過ぎない。後述するように、本発明の画像処理装置では、カラーマップ変更処理およびそれに後続する画素値反転処理といったような機能的に全く異なる複数の画像処理を逐次処理することができる。つまり、特開昭63−197283号の発明は、単一機能の画像処理を並列処理あるいは逐次処理をすることはできるけれども、複数の画像処理列に対して並列処理可能性を判断する手段を持たないので、処理対象を複数の画像処理列とした場合、並列処理あるいは、逐次処理の切り替えを適切に制御できず、複数の画像処理列に対して適用することができない。
【0017】
本発明は、連続する画像処理列に対して、該画像処理の内容、すなわち画像処理の機能または、属性に応じた並列処理を行う印刷処理装置を提供することが目的である。
【0018】
【課題を解決するための手段】
上記課題を解決するために、本発明の印刷処理装置は、以下の手段を有するハードウェア構成制御部をもって上記の課題を解決する。
【0019】
(1)処理すべき連続した複数の画像処理列の先頭から順に、連続した2つの画像処理列を比較し、該画像処理が相異なる処理回路で並列処理可能かどうかを判断する並列処理可能性判断手段。
【0020】
(2)比較した前記画像処理列がともに処理すべき画像データの位置または画画素値に、依存する画像処理である場合には、さらに参照する該画像データの位置を比較し、相異なる処理回路が相互に重複した画像データを参照するか否かの区別により並列処理可能性の可否を判断する第2の並列処理可能性判断手段。
【0021】
(3)当該連続した2つの画像処理列が並列処理可能な場合は該画像処理列に対応するそれぞれ相異なる処理回路によって前記ハードウェアを構成し、そうでない場合は、該画像処理に対応する所定の処理回路によってはハードウェアを構成するハードウェア構成制御手段。
【0022】
具体的には、本発明の印刷処理装置は、少なくとも文字、図形、画像の描画要素のいずれかを有し、所定の描画命令で記述された印刷データを入力する入力手段と、印刷データに含まれるトークンを解釈し描画命令を実行して、入力手段に入力された印刷データに含まれる描画要素をバンド単位に分割した分割描画要素と、該分割描画要素の展開処理に適用するハードウェアの構成に対応して設定されたハードウェア構成IDとを含む変換印刷データをバンド単位で生成する変換手段と、変換手段で変換された変換印刷データに含まれるバンド単位の分割描画要素に設定されたハードウェア構成IDに応じて構成を変更し、変換印刷データの展開処理を実行するハードウェアと、ハードウェアで展開処理された変換印刷データを出力する出力手段とを備えた印刷処理装置であり、ハードウェアにおいて実行すべき処理順にハードウェア構成IDを並べた画像処理列データに記録された連続する2つのハードウェア構成IDに対応する連続する2つの画像処理がハードウェア中の相異なる処理回路において並列処理可能か否かを判断する並列処理可能性判断手段と、並列処理可能性判断手段において並列処理可能と判断された連続する2つの画像処理列に対しては、該連続する2つの画像処理列に対応するそれぞれ相異なる処理回路によってハードウェアを構成し、並列処理可能性判断手段において並列処理不可能と判断された連続する2つの画像処理列に対しては、該連続する2つの画像処理列中、先行する画像処理に対応する処理回路によってハードウェアを構成するハードウェア構成制御手段とを有する。
【0023】
また、本発明の印刷処理装置において、並列処理可能性判断手段は、連続する2つのハードウェア構成IDに対応する連続する2つの画像処理各々について、処理すべき画像データの位置に依存する画像処理であるか、画像データの位置に独立な画像処理であるかを予め記憶部に保持した判定データに基づいて判断することによって、並列処理可能性の可否を判断することを特徴とする。
【0024】
また、本発明の印刷処理装置において、並列処理可能性判断手段は、連続する2つのハードウェア構成IDに対応する連続する2つの画像処理の両者が、判定データに基づいて画像データの位置に依存する画像処理であると判定した場合は、さらに該連続する2つの画像処理各々において参照する画像データの重複性を判断し、判断結果に基づいて予め記憶部に保持した判定データに基づいて並列処理可能性の可否を判断することを特徴とする。
【0025】
また、本発明の印刷処理装置において、並列処理可能性判断手段は、連続する2つのハードウェア構成IDに対応する連続する2つの画像処理各々について、処理すべき画像データの画素値に依存する画像処理であるか、画像データの画素値に独立な画像処理であるかを予め記憶部に保持した判定データに基づいて判断することによって、並列処理可能性の可否を判断することを特徴とする。
【0026】
また、本発明の印刷処理装置において、並列処理可能性判断手段は、連続する2つのハードウェア構成IDに対応する連続する2つの画像処理列の両者が、画像データの画素に依存する画像処理である場合は、さらに該連続する2つの画像処理各々において参照する画像データの重複性を判断し、判断結果に基づいて予め記憶部に保持した判定データに基づいて並列処理可能性の可否を判断することを特徴とする。
【0028】
【発明の実施の形態】
以下、図面に基づき本発明に係わる印刷処理装置の実施例について説明する。図1は本発明の印刷処理装置の実施例の構成を示すブロック図である。図1において、印刷処理装置は、印刷データ作成部1と、印刷データ入力部2と、変換処理部3と、展開処理部4、および出力部5から構成されている。
【0029】
印刷データ作成部1は、パーソナルコンピュータやワークステーション内において、文書作成や編集等を処理するアプリケーションプログラムで生成された文書データから記述言語で記述された印刷データを作成する機能を備えたものである。本実施例で対象とする記述言語は、例えばGDIであるが、Acrobatで代表されるPDF(Portable Document Format)、PostScriptで代表されるページ記述言語であってもよい。
【0030】
印刷データ入力部2は、印刷データ作成部1で生成された印刷データを入力するための通信機能、あるいは変換処理部3へ出力されるまでの間、印刷データを一時記憶する機能等を備えたものである。
【0031】
変換処理部3は、印刷データ入力部2より入力された印刷データから展開処理部4における印字データへの展開処理可能な中間データに変換を行うものである。変換処理部3は、字句解析部31と、中間データ生成部32、および中間データ記憶部33から構成される。
【0032】
字句解析部31は、印刷データ入力部2より入力された印刷データを定められた記述言語のシンタックスに従ってトークンとして切り出し、そのトークンを中間データ生成部32に出力するものである。
【0033】
中間データ生成部32は、字句解析部31から出力されるトークンを受け取って解釈し、描画命令を実行し、各描画命令に対する台形を基本単位としたデータを生成し、それらを中間データとして中間データ記憶部33へ送る。中間データを生成する目的は、展開処理部4での高速な展開処理を可能にすることである。そのため、中間データは単純な図形(例えば台形)の集合で表されている。また、中間データには、展開処理に関する情報として展開処理部4の再構成可能展開部40に書き込まれる構成データに対する識別子であるハードウェア構成IDが付加される。中間データ記憶部33は送られてきた中間データを記憶し、必要に応じて展開処理部4から読み出される。
【0034】
展開処理部4は、変換処理部3に記憶された中間データをバンド単位に読み出し、展開処理部4内のバンドバッファメモリに印字データを作成する。ここで作成された印字データは展開処理部4内の2つのバンドバッファメモリに交互に蓄積される。尚、後述するように本実施例で利用される出力部5は、カラーページプリンタであり、バッファメモリに交互に蓄積される印字データは出力部5で印字している記録色の印刷データに対応している。続いて、バンドバッファメモリに蓄積された印字データは、出力部5の印字データ要求に応じて、出力部5に交互に出力される。
【0035】
出力部5は、展開処理部4のバンドバッファメモリから出力される印字データを受け取って、記録用紙に印字し出力するものである。更に、詳しくは、C、M、Y、Bk(シアン、マゼンタ、イエロー、ブラック)カラーの色毎に露光、現像、転写を繰り返すことによりフルカラー画像を出力できるレーザー走査方式の電子写真方式を用いたカラーページプリンタである。
【0036】
ここで、一般的なレーザー走査方式の電子写真方式を用いたカラーページプリンタの構成及び動作について、図2に基づき説明する。図2において、ビデオインターフェース50は、展開処理部4から順次送られてくるC、M、Y、Bkの色情報に対応した印刷データを図示されない半導体レーザの点灯を制御するドライバーへ入力して光信号に変換する。半導体レーザ走査装置51は、赤外半導体レーザ510、レンズ511、ポリゴンミラー512より構成され、数十μmのスポット光となって感光体ドラム52を走査する。感光体ドラム52は、帯電器53により帯電されており、光信号により、静電潜像が形成される。潜像はロータリー現像器54上の2成分磁気ブラシ現像によりトナー像となり、転写ドラム55上に吸着させた用紙上に転写される。感光体ドラム52は、クリーナー56で余分のトナーがクリーニングされる。この工程をBk、Y、M、Cの順に繰り返し、用紙上に多重転写する。最後に、転写ドラム55から用紙を剥離し、定着器57でトナーを定着する。
【0037】
次に上述した構成を有する印刷処理装置における印刷データの流れについて整理する。印刷データ作成部1で作成された印刷データは、印刷データ入力部2を介して、変換処理部3の字句解析部31に入力される。字句解析部31において印刷データから切り出されたトークンは、中間データ生成部32に入力される。中間データ生成部32は、そのトークンを解釈して、バンド単位に分割した中間データを生成する。このとき中間データは、台形集合を基本としたデータにどのバンドに属しているのかのバンドID、画像、文字または図形等の種類、描画の属性、台形集合に対する外接矩形およびハードウェア構成IDが付加されたものである。そして、中間データは中間データ記憶部33にバンド単位に1ページ分記憶される。
【0038】
一方展開処理部4は、変換処理部3から入力される中間データに付加されたハードウェア構成IDによって、必要に応じて構成データ管理部42から構成データを取得し、再構成制御部41の制御により、再構成可能展開部40における再構成可能回路の機能を書き換える。また、展開処理部4では、中間データを受け取って出力部5で最初に記録される印字データでバンドバッファメモリが満たされるまで展開処理が行われる。出力部5のサイクルアップまたは出力準備が完了すると、バンドバッファメモリから出力部5に、出力部5の記録速度に応じて印字データが1ライン毎に転送され、印字が行われる。1つのバンドバッファメモリの印字データが印字されている間に、片側のバンドバッファメモリが印字データで満たされるまで展開処理が実行される。展開処理部4における中間データから印字データへの展開及び出力部5での印字は、1ページ分の印刷データが処理されるまで、色毎に、あるいは4色同時に繰り返される。さらに、上記印刷データが複数ページで構成される場合は、全ページの出力が終了するまで繰り返される。
【0039】
以上、本発明の印刷処理装置の概要について記述した。次に、この印刷処理装置の主要部の詳細について説明する。
【0040】
初めに、中間データ生成部32、および中間データ記憶部33について詳細を説明する。
【0041】
中間データ生成部32は、図3に示すように、トークン解釈部310と、命令実行部311、画像処理部312、描画状態記憶部313、ベクターデータ生成部314、フォント管理部315、マトリックス変換部316、ショートベクター生成部317、台形データ生成部318、および、バンド分解管理部319から構成される。
【0042】
トークン解釈部310は、字句解析部31から入力されたトークンを解釈し、内部命令に変換して命令実行部311へ送る。命令実行部311は、トークン解釈部310から送られてきた内部命令に応じて画像処理部312、描画状態記憶部313、ベクターデータ生成部314へそれぞれ転送する。画像処理部312は、入力された画像ヘッダと画像データをもとに各種の画像処理を行って出力画像ヘッダと出力画像データを生成し、バンド分解管理部319へ転送する。描画状態記憶部313は、命令実行部311の命令によって与えられる描画に必要な情報を保持する。ベクターデータ生成部314は、命令実行部311の命令と該命令に付加された情報、描画状態記憶部313からの情報、フォント管理部315からの情報を使用して描画すべきベクターデータを生成し、マトリックス変換部316へ転送する。フォント管理部315は、各種フォントのアウトラインデータを管理記憶し、要求に応じて文字のアウトラインデータを提供する。マトリックス変換部316は、ベクターデータ生成部314から入力されたベクターデータを描画状態記憶部313の変換マトリックスによってアフィン変換し、ショートベクター生成部317へ転送する。ショートベクター生成部317は、入力されたベクター中の曲線に対するベクターを複数の直線のベクター集合(ショートベクター)で近似し、台形データ生成部318へ送る。台形データ生成部318は、入力されたショートベクターから描画する台形データを生成して、バンド分解管理部319へ転送する。バンド分解管理部319は、入力された台形データのうち複数のバンドにまたがる台形データをそれぞれのバンドの台形データに分割し、さらに、バンド単位に分割された台形データに対して、どのバンドに属するかを表すバンドIDと、バンド単位に分割された台形データ集合に対する外接矩形と、データ管理情報と描画状態記憶部313から入力された色情報、または、画像処理部312から入力された画像データと、展開処理情報であるハードウェア構成IDを付加して、中間データ記憶部33へ送る。
【0043】
中間データ記憶部33は、バンド単位で、中間データ生成部32が出力する中間データを1ページ分記憶する。なお、上記に説明したトークン解釈部310からバンド分解管理部319までの処理は、描画命令が入力されるたびに繰り返し行われる。そして、中間データ生成部32からの中間データ記憶部33までの処理は、場合によっては、バンド単位あるいはページ単位で行われる。中間データ記憶部33から展開処理部4への中間データの転送は、1ページ分の中間データが記憶された後に行われる。
【0044】
以下では、実際のデータ構造を示しながら、中間データ生成部32、および中間データ記憶部33の各部の動作をより詳細に説明する。
【0045】
トークン解釈部310は、字句解析部31から入力されたトークンを解釈し、内部命令やその引数に変換し、それら内部命令と引数の組を命令実行部311へ転送する。例えば内部命令には、文字/図形/画像の描画を実行する描画命令や、色や線属性など描画必要な情報を設定する描画状態命令などがある。
【0046】
命令実行部311は、トークン解釈部310から送られてきた内部命令を実行する。ここで実行する命令は、主に描画命令と描画状態命令がある。例えば描画命令には、表1に示すように3種類の描画命令があり、それぞれの描画に必要な情報が示されている。このうちアンダーラインがある情報については、描画命令中の引数として与えられ、その他の情報は予め初期設定や先行する命令などにより描画状態記憶部313に記憶されている。描画命令の実行は、画像描画以外は受け取った描画命令をそのままベクターデータ生成部314へ転送する。画像描画の場合は、受け取った描画命令を画像処理部312へ転送するとともに、画像ヘッダの縦と横の大きさをベクターデータ生成部314へ転送する。また描画状態命令については、命令を描画状態記憶部313へ転送する。
【0047】
【表1】

Figure 0003834935
【0048】
画像処理部312は、命令実行部311から入力された命令の引数である入力画像ヘッダと入力画像データを受け取り、ヘッダに付加された圧縮IDをみて、もし、圧縮された画像が入力された場合には、圧縮を伸長し、描画状態記憶部313から獲得した変換マトリックスを使ってアフィン変換する。さらに、場合によっては、処理後の画像を圧縮し、出力画像ヘッダと出力画像データを生成してバンド分解管理部319へ転送する。この圧縮にはもともとPDL側で画像データを圧縮していた圧縮方式を使用するのが通常だが、必ずしもそのようにする必要はない。例えばPDL側でDTCで圧縮されていた場合、それをDTCで圧縮してもよいし、LZW(Lempel Ziv & Welch)で圧縮してもよい。また圧縮を行わなくてもよい。また実行されるアフィン変換では、中間データバッファのメモリを削減するために、特別に出力装置の解像度より小さい解像度用にアフィン変換しておいてもよい。
【0049】
描画状態記憶部313は、命令実行部311から受け取った命令に含まれる引数の値で、例えば表1に示したアンダーラインの無い情報についての値の設定を行い、それらを記憶する。また、画像処理部312、ベクターデータ生成部314、マトリックス変換部316、ショートベクター生成部317、台形データ管理部320などの要求に従って、それらの値を転送する。
【0050】
ベクターデータ生成部314では、命令実行部311から送られてきた命令と引数、および描画状態記憶部313の値を使用して、塗りつぶし描画を除く、新たに描画するためのベクターデータを生成する。まず文字描画の場合について説明する。引数で与えられた文字コードと描画状態記憶部から獲得したフォントIDをフォント管理部へ転送して、文字のアウトラインデータを獲得する。獲得したアウトラインデータには、描画原点(カレントポイント)の情報が含まれていないので、描画状態記憶部313から獲得したカレントポイントのオフセットをアウトラインデータに加えることによって、目的のベクターデータを生成する。画像描画の場合には、引数で与えられた画像ヘッダの縦と横のサイズから、そのサイズに対する矩形ベクターを生成し、描画状態記憶部313から獲得したカレントポイントのオフセットを加えることで目的のベクターデータを生成する。ストローク描画の場合は、引数で与えられたベクターと描画状態記憶部313から獲得した各種の線属性から、図4に示すような太さを持った線のアウトラインベクターを生成する。このように生成したベクター(塗りつぶし描画の場合は命令実行部311から直接受け取ったベクター)を、マトリックス変換部316へ転送する。
【0051】
フォント管理部315は、各種フォントに対するアウトラインベクターデータを記憶するとともに、与えられた文字コードとフォントIDによって、その文字に対するアウトラインベクターデータを提供する。
【0052】
マトリックス変換部316は、ベクターデータ生成部314から受け取ったベクターデータを、描画状態記憶部313から獲得した変換マトリックスによってアフィン変換する。このアフィン変換の主な目的は、アプリケーションの解像度(座標系)からプリンタの解像度(座標系)に変換するためのものである。変換マトリックスには下式(1)に示すような3x3のものが使われ、入力ベクターデータ(Xn,Yn)は、出力ベクターデータ(Xn’,Yn’)に変換されてショートベクター生成部317へ送られる。
【0053】
【数1】
Figure 0003834935
【0054】
ショートベクター生成部317は、入力されたベクターの中に曲線のベクターがある場合に、その曲線のベクターを、誤差が描画状態記憶部313から獲得したフラットネス(flatness)値より小さくなるように、複数のショートベクターで近似する処理を行う。例えば曲線のベクターには、図5に示す4つの制御点で表現されるベジエ曲線が使われる。この場合ショートベクター化の処理は、図5に示す通りベジエ曲線を再帰的に分割し、高さ(距離d)がフラットネスで与えられた値より小さくなった時点で分割を終了する。そして分割された各ベジエ曲線の始点と終点を順番に結ぶことにより、ショートベクター化が完了する。生成されたショートベクターは、台形データ生成部318へ送られる。
【0055】
台形データ生成部318は、入力されたベクターデータから、描画領域を示す台形データ(三角形の場合もあるがデータ構造は台形と同じである)の集合を生成する。例えば図6(a)に示す太線で示された多角形のベクターは、4つの台形により描画領域が示される。尚、この台形は出力装置のスキャンラインに平行な2辺を持った台形であり、1つの台形は図6(b)に示すように(sx,sy,x0,x1,x2,h)の6つのデータで表現される。生成された台形は、バンド分解管理部319へ送られる。
【0056】
バンド分解管理部319は、入力された台形データのうち複数のバンドにまたがる台形データをバンド毎の台形データに分割する。例えば図7では、4つの台形データがバンド分解部によって6つの台形データに分割される。さらに、バンド毎に入力された台形データに付加情報をつけて中間データを生成する。付加情報は、中間データを管理するための管理情報、展開処理部4で処理する内容を表すハードウェア構成IDおよび台形データを何色で塗りつぶすかを示す色情報である。文字/図形の描画命令に対する管理情報は、どのバンドに属するかを示すためのバンドID、オブジェクトID、オブジェクトの種類、台形数のデータ、およびその台形データ集合に対する外接矩形データである。オブジェクトIDとは、1回の描画命令に対して割り当てられる識別番号であり、オブジェクトの種類とは、文字、図形、または、画像など描画される対象に対する識別データである。また、ハードウェア構成IDは、展開処理部4での処理を示すIDであり、色情報は例えばC、M、Y、Bkの値である。
【0057】
これらの付加情報は、図8(a)に示すように、描画命令によって生成されたバンド毎の台形データの前に付加される。このように、オブジェクトは、一組の描画属性が付加された複数の台形データによって構成される。また、中間データは、このようなオブジェクトに対するデータの集合である。画像の描画命令に対する管理情報は文字/図形と同じであるが、画像ヘッダと画像データは、色情報の代替となる。また図8(b)に示すように、画像ヘッダと画像データは、描画命令によって生成されたバンド毎の台形データそれぞれに対して1つずつ付加される。
【0058】
画像ヘッダと画像データは画像処理部312から入力されるが、中間データとして付加される画像データは、図9に示すように変換された画像を示すベクターの最小矩形に対する画像データであってもよいし、各台形毎の最小矩形に対する画像データであってもよい。さらに画像データは容量が大きくなるため、圧縮された形で格納されていてもよい。画像ヘッダは、画像の大きさを表すパラメータの他に、色変換の処理の種類や、圧縮方式の種類も含んでいる。
【0059】
最後に、ハードウェア構成について説明する。ハードウェア構成IDは、展開処理部4により実行される処理に応じたコード情報であり、表2のような処理を意味する。これらは、再構成可能ハードウェアの規模と実行される処理内容に応じて、中間データ生成部32において、実際の再構成可能展開部40の回路構成と1対1に対応する構成IDとして中間データに付加される。
【0060】
【表2】
Figure 0003834935
【0061】
中間データ生成部32が出力するデータは、中間データ記憶部33へ送られ、中間データ記憶部33でバンドIDを解釈して、バンド毎にまとめて記憶される。また、字句解析部31でページの出力コマンドを解釈すると、EOP(EndOf Page)が中間データ生成部32を経由して、中間データ記憶部33へ送られ、中間データ記憶部33に記憶された各バンドの最終データには、EOD(End Of Data)を表すデータを付加され、バンドデータの終了を明確にしている。このEOPは、展開処理部4にも送られ、展開処理部4の処理を起動する。
【0062】
次に、展開処理部4について詳細に説明する。図10に、再構成可能展開部40のブロック図を示す。変換処理部3で生成されたバンド毎の中間データは、中間データ転送制御部401により読み込まれ、メモリ部402の入力バッファA402−1あるいは入力バッファB402−2へ書き込まれる。再構成ハードウェア部403は、入力バッファA402−1あるいはバンドバッファB402−2から中間データを読み込んで、展開してバンドバッファA402−3あるいはバンドバッファB402−4へ描画する。印字データ転送制御部404は、描画済みのバンドバッファA402−3、あるいはバンドバッファB402−4から展開された印字データを読み込み、これを読み込んだワード毎にシリアル変換して、シリアル出力クロック信号に同期して出力部5へ出力する。リフレッシュ制御部405は、入力バッファA402−1、入力バッファB402−2、バンドバッファA402−3、バンドバッファB402−4、ワーク領域402−5からなるメモリ部402のリフレッシュを制御する。アービトレーション部406は、リフレッシュ制御部405、中間データ転送制御部401、印字データ転送制御部404、再構成ハードウェア部403、再構成制御部41それぞれがメモリ部42をアクセスする際に、それぞれのブロックに割り当てられたアクセスのプライオリテイに応じてアービトレーション制御を行う。
【0063】
入力バッファとバンドバッファの使用方法について説明する。図11(a)及び図11(b)はそれぞれ、入力バッファAと入力バッファBに中間データを入力中の、各バッファの使用状態を示すものである。図11(a)においては、バンドiに対応する中間データを入力バッファAに入力中であり、入力バッファBには既にバンド(i−1)に対応する中間データが入力済みである。再構成ハードウェア部403は入力バッファBに蓄えられた中間データを読み出して、これを展開して、バンドバッファBに描画する。バンドバッファAには、バンド(i−2)に対応する中間データを展開描画した結果の印字データが蓄えられており、印字データ転送制御部404はこれを出力部5に読み出している。
【0064】
図11(b)においては、バンド(i+1)に対応する中間データを入力バッファBに入力中であり、入力バッファAには既にバンドiに対応する中間データが入力済みである。再構成ハードウェア部403は、入力バッファAに蓄えられた中間データを読み出してこれを展開し、バンドバッファAに描画する。バンドバッファBには、バンド(i−1)に対応する中間データを展開描画した結果の印字データが蓄えられており、印字データ転送制御部404はこれを出力部5に読み出している。
【0065】
ワーク領域402−5は、展開処理部4が変換処理部3から入力した中間データを展開するときに、必要に応じて一時的なワーク領域として用いられる。
【0066】
再構成可能展開部40における変換処理部3が出力した中間データを展開する手順を説明する。再構成制御部41は、入力バッファからハードウェア構成IDとオブジェクトIDとを入力して、図12に示すフローチャートに従って再構成ハードウェア部403を制御する。再構成制御部41が行う処理は、図12に示すS1からS7の7つのステップからなる。まず、S1において次に処理するオブジェクトのハードウェア構成IDが直前に処理したハードウェア構成IDと同じであるかどうかを調べる。同じであれば、構成データを再構成ハードウェア部403に新たに書き込む必要はないので、S5の処理に移る。違う場合には、S3において、ハードウェア構成IDに基づいて、構成データ管理部42から構成データを読み出して、S4において、当該構成データを再構成ハードウェア部403に書き込む。S5において、再構成ハードウェア部403に、処理するオブジェクトおよび処理の開始を知らせるための開始信号を送る。S6において、再構成ハードウェア部403での処理が終わるまで待つ。S7において、現在処理中のバンドにさらに処理すべきオブジェクトがあるかどうかを調べる。あれば、S1に戻り、なければ終了する。
【0067】
図13に構成データ管理部42の構成を示す。変換テーブル421は、ハードウェア構成IDを入力して、構成コード記憶領域422の開始アドレスとデータ長を出力するテーブルである。構成コード記憶領域422は、実際のハードウェア構成IDに対する構成データが記憶される領域で、各エントリーは可変長である。制御部423は、読み出し制御部423−1と、追加更新部423−2とからなる。読み出し制御部423−1は、再構成制御部41から読み出し信号とハードウェア構成IDを入力して、変換テーブル421に当該ハードウェア構成IDを出力することにより、構成データの構成コード記憶領域422上のアドレスとデータ長を入力する。次に、読み出し制御部423−1は、係るアドレスを構成コード記憶領域422に出力して、データ長分のハードウェア構成IDに対応する構成データを構成コード記憶領域422から読み出して、再構成制御部41に出力する。追加更新部423−2は、図示されていないホスト計算機などを経由して送られる構成データを追加または更新するための制御部で、変換テーブル421のエントリと構成コード記憶領域422の構成データを追加したり、削除したり、または更新したりする。構成コード記憶領域422には、単一の機能を処理するさまざまな回路構成に対応した構成データ、同一の機能が複数個ある並列的な回路構成に対応した構成データ、異なる機能が複数個あるパイプライン的な回路構成に対応した構成データを備えている。
【0068】
次に、再構成ハードウェア部403の具体的な構成と処理内容について例をあげて説明する。再構成ハードウェア部403は、構成データ管理部42が管理記憶する構成データを再構成制御部41の制御により書き込むことにより、機能を変えることができる処理ブロックである。典型的には、再構成ハードウェア部403は、XILINX社のFPGAあるいは同等の構成要素によって構成される。
【0069】
図14は、FPGAを用いて構成された再構成ハードウェア部403を示す。図14において、再構成ハードウェア部403は、制御部4610、FPGAユニット4620、およびレジスタ群4630を含んで構成される。レジスタ群4630は、構成データ管理部42から送られてくる構成データを記憶するものである。FPGAユニット4620の機能は、レジスタ群4630に保持されている構成データによって決定される。制御部4610は、レジスタ群4630のデータの入出力や、FPGAユニット4620の動作タイミングを制御するものである。
【0070】
FPGAユニット4620は、図15に示すように、複数の論理ブロック4621、複数のクロスポイントスイッチ4622および複数のスイッチマトリックス4623を含んで構成される。論理ブロック4621は、図16に示すようにルックアップテーブル4621A、セレクタ4621B、およびフリップフロップ4621Cを含んで構成される。ルックアップテーブル4621Aには、所望の真理値表が実装されている。このルックアップテーブル4621Aの真理値表およびセレクタ4621Bの切り替え入力信号は、レジスタ群4630に保持されている値、すなわち構成データの一部によって決定される。また、クロスポイントスイッチ4622およびスイッチマトリックス4623は、それぞれ図17および図18に示すように構成することができる。
【0071】
再構成ハードウェア部403は、図14で示すFPGAに限らず、例えば複数の演算処理装置(算術論理演算ユニット)を設け、各演算処理装置の入出力のフローを切り替え装置で制御するように構成してもよい。この場合、例えば図15の論理ブロック4621として演算処理装置を配置すればよい。また、クロスポイントスイッチ4622やスイッチマトリックス4623のかわりに単純なゲートを用いるようにしてもよい。
【0072】
再構成ハードウェア部403の機能を表す機能ブロック図は、書き込まれる構成データによって可変である。図19において、再構成ハードウェア部403の構成および動作を説明する。図19において403−1は、ハードウェア構成IDがCode Aに対応する処理回路であり、403−2は、ハードウェア構成IDがCode Gに対応する処理回路である。処理回路403−1の内部構成は、台形描画回路461とスクリーン処理回路462とからなる。処理回路403−2の内部構成は、画像伸長回路481、解像度変換回路482、色変換回路483、台形描画回路484、およびスクリーン処理回路485とからなる。再構成ハードウェア部403は、2個の処理回路403−1および3個の処理回路403−2からなる回路構成のように、同一の機能が複数個ある回路構成や、異なる機能が複数個ある回路構成による並列処理が可能である。また、処理回路403−2の内部構成のように、複数個の異なる機能間で入出力データをパイプライン的にやりとりするパイプライン的な動作も可能である。ハードウェア構成IDがCode Aに対応する処理回路403−1とハードウェア構成IDがCode Gに対応する処理回路403−2のさらに詳細な構成と動作について説明する。
【0073】
(i)ハードウェア構成IDがCode Aに対応する処理回路
処理回路403−1は、変換処理部3が生成した、図形に対する中間データを処理する。台形描画回路461は、入力した中間データをなす台形データ(sx,sy,x0,x1,x2,h)を、図20に示されるような4点からなるデータ形式に変換して台形領域を描画する。図21に、台形描画回路461のブロック図を示す。中間データ入力部463は、入力バッファから1つ1つの台形をなすデータを読み込んで、座標計算部A464および座標計算部B465に台形データを出力する。座標計算部A464は、台形の左側のエッジ(図20のエッジP0P1)の座標計算を担当し、エッジ上の座標値をP0からP1に向かって順に出力する。座標計算部B465は、台形の右側のエッジ(図20のエッジP2P3)の座標計算を担当し、エッジ上の座標値をP2からP3に向かって順に出力する。エッジ描画部466は、座標計算部A464及び座標計算部B465から入力される座標値により、台形のx軸に平行な直線を描画する。
【0074】
図22は、座標計算部A464および座標計算部B465の機能ブロック図を示したものである。入力された台形データ(sx,sy,x0,x1,x2,h)はDDAパラメータ計算部467で4点の台形データ(P0,P1,P2,P3)に変換されて、傾きや残差の初期値などのDDAのパラメータを計算し、DDA処理部468に出力する。DDA処理部468は、入力されたパラメータに基づいてDDA処理を行い、最後に求めた点に対する移動方向と移動量を出力する。座標更新部469は、入力された移動方向と移動量から現在保持している座標値を更新して出力する。座標の初期値は、中間データ入力部463によって設定される。
【0075】
図23は、エッジ描画部466のブロック図である。エッジ描画部466は、座標値A/B及び画像データを入力して台形の内部領域を塗りつぶす。アドレス計算部470は、座標値A/Bを入力して、描画するエッジ成分のアドレスを計算する。マスク演算部471は、座標値A/Bの値を入力して、描画するワード中の有効なビットを表すマスクを出力する。データ演算部472は、固定的な色を表す色データを入力し、この値をワード分に展開してスクリーン処理回路に出力し、スクリーン処理した結果をRmodW部473に出力する。RmodW部473は、入力されたアドレス、マスク、データを用いて以下の処理をすることにより描画を行う。まず、アドレスにより、バンドバッファからのデータを読み込む。これにより読み込まれたデータをSource、マスクデータをMask、描画データをDataとすると、(Mask*Data+Mask#*Source)の値を演算して同一アドレスに書き戻す。ただし、*は論理積、+は論理和、#は論理否定をそれぞれ表す。この処理は、描画するエッジが含まれるワード毎に繰り返し行われる。
【0076】
また、スクリーン処理回路462は、最終的なガンマ補正とハーフトーンを行うための処理であり、図形を出力する場合に最適化したスクリーンパターンが設定されている。ハードウェア構成IDがCode Bの場合には、スクリーン処理が値最終的なガンマ補正と、ハーフトーンを行うための処理であり、文字を出力する場合に最適化したスクリーンパターンが設定されている。
【0077】
(i)ハードウェア構成IDがCode Gに対応する処理回路
処理回路403−2は、中間データが画素ごとに色の異なる画像を入力し、表2のCode Gによって表される画像処理を行う。以下に画像処理の組み合わせが画像伸長処理、解像度変換、色空間変換、台形描画、およびスクリーン処理である場合の処理回路を説明する。
【0078】
(伸長処理回路481)
入力された中間データである画像が、圧縮されており、伸長処理を要する場合には、伸長処理回路481は中間データをJPEG等のアルゴリズムにより、伸長処理する。図24に、伸長処理回路481の機能ブロック図を示す。中間データ入力部481−1は現在入力中の入力バッファから圧縮された画像データである中間データを入力する。ハフマン復号化部481−2は内臓されているハフマン復号化テーブルをもとに圧縮データをデコードする。逆量子化部481−3は、ハフマン復号化部481−2から入力されるデータを、内臓されている量子化テーブルをもとに、逆量子化して出力する。逆DCT部481−4は、逆量子化部481−4から入力されるデータを、逆DCT変換式によって変換して出力する。書き込み部481−5は逆DCT部によって復号化された画像データをワーク領域402−5に書き込む。
【0079】
(解像度変換回路482)
図25に、解像度変換回路482の機能ブロック図を示す。画素データ入力部482−1は伸長処理した結果が書き込まれたワーク領域402−5から画素データを読み出す。画素の読み出しは、解像度変換式(1)の逆変換によって現在計算を行なっている画素の補間に必要な入力画素のみを読み出す。補間処理部482−2では、入力された画素データから変換後の画素の輝度をそれぞれの色成分について補間する。補間アルゴリズムは線形補間法により行なう。画素アドレス計算部482−3では、現在計算中の画素の座標からワーク領域402−5の書き込みアドレスを計算する。書き込み部では、画素アドレスと補間データをもとに新しい画素の値を書き込む。ワーク領域402−5において、入力画像と出力画像が割り当てられている領域は異なる領域である。
【0080】
(色空間変換回路483)
図26に、色空間変換回路483の機能ブロック図を示す。色空間変換は、RGB空間の入力画像を印刷色であるCMYK空間への変換を行なう。画素データ入力部483−1は、アフィン変換された結果を格納するワーク領域402−5上の画素データを1画素毎に入力する。テーブル変換部483−2はRGB画像データを入力して、CYMK各色の画像データを出力する。本実施例ではCMYK色を色毎に処理するので、一度に1色の変換テーブルしか必要としない。4色同時に処理したい場合には、4色分の変換テーブルを内蔵する。また、変換テーブルはテーブル変換部483−2内に内臓され、テーブルの容量を削減するためにRGB各色につき9点の代表点をテーブルのアドレスとして持ち、さらに詳細なアドレス部による変換の値は次の補間処理部483−3で行なう。補間処理部483−3では、変換するRGB色空間の1点を囲む6点の代表点から3次元での線形補間処理により、詳細な変換値を求める。この過程を示したものが、図27である。変換したいRGB空間の点Pに対して、テーブル変換部483−2で点Pを囲む3角柱の頂点となるような6点(a,b,c,d,e,f)の変換値をルックアップテーブルで求め、これをもとに線形補間を行なう。書き込み部483−4は画素データ入力部483−1が入力した同一アドレスに変換結果を上書きする。
【0081】
(台形処理回路484)
画像データを台形領域に描画するための台形描画回路484の構成は、基本的に、図21に示した文字及び図形の台形処理のための機能ブロックと同じである。台形領域への画像の貼り付けは、図8(b)に示したようになる。このとき、図21での画像の描画に特有の相違点は、中間データ入力部463は、画像データをワーク領域402−5から入力し、エッジ描画部466に画像データを出力する。台形データを表す中間データは入力バッファから入力する。エッジ描画部466は、文字及び図形の場合と同様に、現在出力中のバンドバッファに出力画像を書き込む。
【0082】
(スクリーン処理回路485)
スクリーン処理は、データとして保持している1色あたりの色数が、プリンタで表現できる1色あたりの色数より多い場合に、プリンタで表現できる色数の色値に変換すための処理である。この代表的な処理は、ハーフトーン処理と呼ばれ、ハーフトーンマトリックスというNxMの閾値データを持ち、そのデータと画像データを色ごとに比較して、プリンタの色ごとの色値を決定するというものである。例えば1色あたり1bitのプリンタに1色あたり8bitで表現された画像データを処理する場合、NxMの閾値データのハーフトーンマトリックスには、0から255までの任意の値が記憶されている。そして実際の画像データの値とその画像の位置によって決まるハーフトーンマトリックス閾値データとを比較して、もし画像データのほうが大きければ、そのピクセルを印字する色値を出力して、そうでなければ、そのピクセルを印字しない色値を出力する。
【0083】
以上が、処理するオブジェクトが画像データであり、展開処理IDがCodeGに対応する処理の組み合わせ、すなわち、伸長処理、解像度変換、色空間変換、台形処理、スクリーン処理に対応した処理回路403−2の構成および当該処理回路403−2が行なう処理内容である。
【0084】
再構成ハードウェア部403はアービトレーション部406を通じてメモリとの間で入出力を行ない展開結果をバンドバッファに格納する。
【0085】
上記では、中間データ生成の処理を中間データ生成部32で処理するように説明したが、この中間データ生成処理を、展開処理部4のハードウェア構成を変えることによって再構成可能展開部40に実行させることも可能である。
【0086】
これを図28を使って説明する。例えば、中間データ生成部の命令実行部311に入力されたLZW圧縮された画像は、従来、画像処理部312によってLZWで伸長し、マトリックス演算を行い、LZWで圧縮してバンド分解管理部319へ送っていた。この処理を、画像処理部312に代わって展開処理部4の持つ再構成可能展開部40によって行わせるというものである。このような処理を行う再構成データをハードウェア構成IDとともに構成データ管理部41にあらかじめ登録しておき、画像処理部312に処理する画像が入力されたら、画像処理部312が処理の内容を解釈して、再構成可能展開部40へハードウェア構成IDによって、構成データ管理部から構成データを取得して、内部の再構成可能ハードウェアを再構成する。その後画像処理の手順に従って、送られてきた入力画像データを再構成可能ハードウェアを使って処理して、その処理結果として作成された画像データを画像処理部312へ送り返す。このような構成によって、再構成可能展開部40の再構成可能資源を有効利用することができる。
【0087】
このように再構成可能展開部40の際構成ハードウェア部403をハードウェアクセラレータとして使用する場合において、処理すべき画像命令がある画像データに対して復数の画像処理を適用するものであり、再構成ハードウェア部403が並列動作するときの再構成制御部41について以下に説明する。
【0088】
再構成ハードウェア部403がハードウェアクセラレータとして使用される場合、画像処理部312において図29のデータ形式で画像命令が構成され、当該画像命令は、画像処理部312から再構成展開部40に転送される。図29は、一組の画像ヘッダおよび画像データに対して複数の画像処理に対応するハードウェア構成IDを含む画像命令を示している。以下、一つの画像処理に対応するハードウェア構成IDまたは、二つ以上の画像処理に対応するハードウェア構成IDの並びを画像処理列と呼ぶことにする。例えば、特定の画像データの一部を切り出し、切り出された画像データのガンマ補正をするカラーマップ変更処理を行い、カラーマップが変更された画像データの2倍の拡大処理を行い、さらに拡大された画像データの画素値を反転する画像命令に対応する画像処理列は、クリップ、ガンマ補正、(カラーマップの変更)、拡大、反転の構成データに対応するハードウェア構成ID、すなほち、Code H、Code I、Code Kを含むものである(表2参照)。
【0089】
図30は、再構成制御部41の構成例を示したものである。再構成制御部41は、画像処理列入力部411、画像処理列記憶部412、並列処理可能性判断部413、再構成データ選択部414、及び第2の並列処理可能性判断部415から構成される。画像処理列入力部411は、再構成展開部40から画像命令のハードウェア構成IDに対応するデータを読み込み、画像処理列記憶部412に転送する。画像処理列記憶部412は、画像処理列を記憶保持する。並列処理可能性判断部413および第2の並列処理可能性判断部415は、画像処理列記憶部412に保持された画像処理列の並列処理が可能か否かを判断する。再構成データ選択部414は、並列処理可能性判断部413または第2の並列処理可能性判断部415の並列可能性の判断結果に基づいて、再構成可能展開部40の再構成ハードウェア部403に構成すべき構成データ管理部42の構成データを選択する。
【0090】
図31は、画像処理列記憶部412および並列処理可能性判断部413の構成例を示したものである。画像処理列記憶部412は、いわゆるFIFO型記憶メモリ412−1から構成される。また、並列処理可能性判断部413は、画像処理比較部413−1および並列処理可能性決定表413−2から構成される。
【0091】
再構成制御部41における画像処理列の画像処理の手続きは図32に示すようになる。まず、ステップ8(S8)において、画像処理列入力部411から入力された画像処理列は、画像処理列記憶部412に転送される。
【0092】
画像処理列記憶部412に転送された画像処理列は、次のステップ9(S9)において、内部のFIFO型記憶メモリ412−1に入力された順に格納される。例えば、図29に示す画像命令の場合、画像処理列は、Code H、Code I、Code J、Code K、の順番でFIFO型記憶メモリ412−1に記憶保持される。
【0093】
次に、ステップ10(S10)において、FIFO型記憶メモリ412−1の先頭のハードウェア構成IDおよび2番目のハードウェア構成IDが、それぞれ先行する画像処理および後続する画像処理として並列処理可能性判断部413に転送され、並列処理可能性の判断が行われる。一例として、先頭のハードウェア構成IDおよび2番目のハードウェア構成は、初期状態において、Code H、およびCode Iであり、先行する画像処理および後続する画像処理は、それぞれクリップおよび色空間変換である。
【0094】
次に、ステップ11(S11)において、再構成データ選択部414において、ステップ10においてなされた並列画像処理可能性判断の結果に基づいて、それらの画像処理列(先行する画像処理もしくは後続する画像処理または両者の画像処理)に対応する処理回路によって、再構成ハードウェア部403が構成される。
【0095】
最後に、ステップ12(S12)において、当該再構成ハードウェア部403において画像処理が実行される。
【0096】
次に、例外処理について補足する。例外として、入力された画像処理列が、ただ一つの場合、つまり画像命令が単一のハードウェア構成IDで構成される場合は、当然前述した後続する画像処理は存在せず、FIFO型記憶メモリ412−1の先頭のハードウェア構成IDは、それのみが並列処理可能性判断部413に転送される。この場合は、並列処理可能性判断部413は、当該ハードウェア構成IDの意味する画像処理の並列処理可能性を判断することなく、直ちに当該ハードウェア構成IDを再構成データ選択部414へ転送する。再構成データ選択部414は、当該ハードウェア構成IDに対応する所定の構成データによって再構成ハードウェア部403を構成し、係る再構成ハードウェア部403が画像処理を実行する。
【0097】
図33および図34は、ともに並列処理可能性判断部413の内部の並列処理可能性決定表413−2の例を示した図である。以下、これらの図を使用して上述のステップ10における画像処理列の並列処理可能性判断の手続について詳細に説明する。
【0098】
並列処理可能性判断部413は、画像処理列比較部413−1および並列処理可能性決定表413−2から構成される。画像処理列記憶部412のFIFO型記憶メモリ412−1から転送された前述の先行する画像処理および後続する画像処理は、当該画像処理列比較部413−1に入力される。この画像処理列比較部413−1は、先行する画像処理および後続する画像処理から構成される問い合わせデータを作成し、かつ該問い合わせデータを並列処理可能性決定表413−2に転送する。該並列処理可能性決定表413−2は、先行する画像処理、後続する画像処理およびそれらに関連する並列処理可能性データを結び付けるものである。画像処理列比較部413−1から当該問い合わせデータを受取った並列処理可能性決定表413−2は、問い合わせデータに関連する並列処理可能性データを再構成データ選択部414へ転送する。再構成データ選択部414は、当該並列処理可能性データに応じて、再構成ハードウェア部403を構成すべき構成データを選択する。
【0099】
図34は、先行する画像処理および後続する画像処理として、クリップ処理およびカラーマップ変更処理を意味するCode H、およびCode Iから係る問い合わせデータが構成されることを示している。
【0100】
並列処理可能性判断部413の並列処理可能性決定表413−2による並列処理可能性判断は、問い合わせデータの内容、つまり先行する画像処理および後続する画像処理の内容によって以下の4つの場合に分類される。
【0101】
(a)先行する画像処理および後続する画像処理がともに画像データの位置に依存する画像処理である場合。
(b)先行する画像処理が画像データの位置に独立な画像処理であり、後続する画像処理が画像データの位置に依存する画像処理である場合。
(c)先行する画像処理画画像データの位置に依存する画像処理であり、後続する画像処理が、画像データの位置に独立な画像処理である場合。
(d)先行する画像処理および後続する画像処理がともに画像データの位置に独立な画像処理である場合。
【0102】
図33および図34中の符号(a)ないし(d)は、上記の符号に対応するものである。ここで、図34のように画像データの位置に依存する画像処理としては、クリップ処理(特定領域の画像データの切り出し処理)等が考えられ、画像データの位置に独立な画像処理としては、カラーマップの変更処理等が考えられる。
【0103】
(b)および(c)の場合は、並列処理可能な場合、すなわち、先行する画像処理と後続する画像処理とを相異なる処理回路で同時に処理できる場合であり、並列処理可能性決定表413−2は、並列処理「可能」の並列処理可能性データを再構成データ選択部414に転送する。例えば、クリップ処理とカラーマップの変更とは、相異なる処理回路で並列処理することができる。このような場合には、図36のようにCode HおよびCode Iに対応する構成データによって再構成ハードウェア403をCode H処理回路403−3およびCode I処理回路403−4で構成し、並列処理することができる。
【0104】
(d)の場合は、並列処理不可能な場合、すなわち先行する画像処理と後続する画像処理とを相異なる処理回路で同時に処理できない場合であり、並列処理可能性決定表413−2は、並列処理「不可能」の並列処理可能性データを再構成データ選択部414に転送する。例えば、画像全体のRGB画像データからHVC画像データへの第1の色空間変換処理と、画像全体のHVC画像データからCMYK画像データへの第2の色空間変換処理とは、相異なる処理回路で並列処理することはできない。なぜなら、後続する第2の色空間変換処理は、先行する第1の色空間変換処理が決定されていなければ処理できないからである。つまり、後続する第2の色空間変換処理は、先行する第1の色空間変換処理の情報を必要とするからである。ここで、HVC画像データのHは、色相(Hue)、Vは明度(Value)、Cは、彩度(Chroma)を意味する。このような場合、図36に示すように画像全体のRGB画像データからHVC画像データへの第1の色空間変換処理を行うCode I処理回路403−5および画像全体のHVC画像データからCMYK画像データへの第2の色空間変換処理回路403−6によって再構成ハードウェア403を構成し、逐次処理することができる。あるいは、まず、画像全体のRGB画像データからHVC画像データへの第1の色空間変換処理を行うCode I処理回路のみによって再構成ハードウェア403を構成し、係る処理を実行し、続いて、画像全体のHVC画像データからCMYK画像データへの第2の色空間変換処理を行うCode I処理回路のみによって再構成ハードウェア403を構成し、係る処理を行うようにしてもよい。
【0105】
(a)の場合は、並列処理可能な場合とそうでない場合とが考えられ、並列処理可能性決定表413−2の並列処理可能性データは「不定」となるが、この「不定」となった並列処理可能性データは、再構成データ選択部414へは転送されない。この(a)の場合に、並列処理可能性判断部413は、画像処理列比較部413−1から並列処理可能性決定表413−2へ転送された前記問合わせデータを、第2の並列処理可能性判断部415に転送する。該第2の並列処理可能性判断部415において並列処理可能性の判断を行い、その判断結果(並列処理可能又は並列処理不可能)を並列処理可能性データとして再構成データ選択部414へ転送する。
【0106】
図35は、該第2の並列処理可能性判断部415が第2の並列処理可能性決定表41から構成されていることを示す。例えば、先行する画像処理が第1のクリップ処理であり、後続する画像処理が第2のクリップ処理であるとき、第1のクリップ処理と第2のクリップ処理の対象とする領域を各処理が相互に参照しない場合と参照する場合によって並列処理可能か否かを区別することができる。図35のように、それらのクリップ処理の対象とする領域が重複しているとき、すなわち係る画像データが排他的でないときには、相異なる処理回路で並列処理することはできない。よって、該第2の並列処理可能性判断部415は、再構成データ選択部414に並列処理「不可能」の画像処理可能性データを転送する。一方、それらのクリップ処理の対象とする領域が重複していないとき、すなわち係る画像データが排他的であるときには、相異なる処理回路で各クリップ処理を並列処理することができる。よって、該第2の並列処理可能性判断部415は、再構成データ選択部414に並列し処理「可能」の画像処理可能性データを転送する。前者の場合、すなわち並列処理できない場合には、図36に示すように、先行する第1のクリップ処理を行うCode H処理回路403−9および後続する第2のクリップ処理を行うCode H処理回路403−10によって再構成ハードウェア403を構成し、逐次処理を行なうことができる。あるいは、再構成ハードウェア403を単一のCode H処理回路で構成し、まず、先行する第1のクリップ処理を行い、続いて後続する第2のクリップ処理を行なうようにすることもできる。後者の場合、すなわち並列処理できる場合には、図36に示すように複数のCode H処理回路403−7および403−8によって再構成ハードウェア403を構成し、並列処理することができる。
【0107】
なお、図36中の符号(b)乃至(e)は、図33乃至図35中の符号および前述の説明における符号と一致している。
【0108】
並列処理可能性決定表413−2は、データベースとして実装することもできる。図34は、先行する画像処理、後続する画像処理およびそれらに関する並列処理可能性データをデータベースとして表現した場合に、画像処理列比較部413−1から問合わせデータとして「先行する画像処理がクリップ処理」かつ「後続する画像処理が色変換処理」が入力されたときに、並列処理可能性決定表413−2から再構成データ選択部414へ並列処理可能性データとして「可能」が出力されているようすを表す。登録される先行する画像処理又は後続する画像処理としては、他に「拡大」又は「画素値の反転」などが考えられる。同様に、第2の並列処理可能性決定表41もデータベースとして実装することもできる。
【0109】
画像処理列記憶部412における画像処理列を格納するための記憶メモリは、上記のようなFIFO型記憶メモリではなく、いわゆるスタック型記憶メモリとすることができる。この場合には、前記の先行する画像処理および後続する画像処理として、最初に格納した画像処理および二番目に格納した画像処理をそれぞれ並列処理可能性判断部413の画像処理列比較部413−1に転送できるように再構成制御部41を構成する必要がある。
【0110】
なお、上記の説明で並列処理不可能とした場合であっても、従来技術を用いて画像データを適切な部分領域に分割して並列処理を実行することは、もちろん可能である。
【0111】
次に、前記の代替できる部分について説明する。前記並列処理可能性判断部413は、処理すべき画像データの位置に依存する画像処理と該画像データの位置に独立な画像処理との区別により並列処理可能性の可否を判断することの代替として、処理すべき画像データの画素値に依存する画像処理と該画像データの画素値に独立な画像処理との区別により並列処理可能異性の可否を判断するように並列処理可能性決定表413−2を構成することもできる。また、第2の並列処理可能性判断部415は、比較した前記画像処理列がともに処理すべき画像データの画素値に依存する画像処理である場合には、さらに参照する該画像データの位置を比較することによって、相異なる処理回路が相互に重複した画像データを参照するか否かの区別にり並列処理可能性の可否を判断するように第2の並列処理可能性決定表41を構成することもできる。
【0112】
例えば、いわゆるカラーマップ付きの画像データの画像処理を想定した場合に、画像データの画素値に独立な画像処理としてカラーマップの削除なども考えられる。また、画像データの画素値に依存する画像処理としていわゆる畳み込みフィルタリング処理などが考えられる。
【0113】
【発明の効果】
上述したように本発明の印刷処理装置においては、並列処理可能性判断手段によって、処理すべき連続した複数の画像処理列の先頭から順に、連続した二つの画像処理列の機能を比較し、係る画像データの位置に依存する画像処理と係る画像データの位置に独立な画像処理とを区別することによって、当該画像処理列が相異なる処理回路で並列処理可能かどうかを判断する。
【0114】
さらに、ハードウェア構成制御部は、再構成データ選択手段によって、当該連続した二つの画像処理列が並列処理可能な場合は再構成ハードウェア部をそれぞれ相異なる処理回路で構成するように再構成データを選択し、そうでない場合は該画像処理列のうち先行する画像処理に対応する所定の処理回路で再構成ハードウェア部を構成するように再構成データを選択する。
【0115】
画像データの位置に依存する画像処理を実行する処理回路は、部分領域データの切り出しなど画像データの位置に依存する画像処理を行なう。画像データの位置に独立な処理を行なう画像処理を実行する処理回路は、いわゆるカラーマップの変更によるガンマ補正など画像データの位置に独立な画像処理を行なう。このように画像データの位置に依存する画像処理を実行する処理回路と画像データの位置に独立な処理を行なう画像処理を実行する処理回路とは、並列処理する。つまり相互に独立に同時に動作することが可能であり、単一の処理回路で逐次処理した場合に比べて高速な処理をすることが可能となる。再構成ハードウェア部は、このような並列処理可能な複数の処理回路によって並列処理を行なう。
【0116】
また、ハードウェア構成制御部は、第2の並列処理可能性判断手段によって、比較した画像処理列がともに処理すべき画像データの位置に依存する画像処理である場合には、さらに参照する該画像データの位置を比較し、相異なる処理回路が相互に重複した画像データを参照するか否かの区別により並列処理可能性の可否を判断する。相異なる処理回路が相互に重複した画像データを参照しない場合には、前記再構成データ選択手段によって、当該画像データを各処理回路に分割して並列処理を行なう。一方、相異なる処理回路が相互に重複した画像データを参照する場合は、所定の処理回路において当該画像データを分割せずに逐次処理する。
【0117】
以上のように本発明の印刷処理装置によれば、連続する画像処理列に対して係る画像処理の内容、すなわち画像処理の機能又は属性に応じた並列処理を行なうことができ、高速な画像処理を行なうことができる。
【図面の簡単な説明】
【図1】 本発明の印刷処理装置の一実施例を示すブロック構成図である。
【図2】 カラーページプリンタの構成の説明図である。
【図3】 中間データ生成部を示すブロック図である。
【図4】 アウトラインベクターを説明する図である。
【図5】 ベジエ曲線の再帰的な分割を説明する図である。
【図6】 台形データを説明する図である。
【図7】 台形データのバンド境界での分割を説明する図である。
【図8】 台形データのデータ形式の一例を説明する図である。
【図9】 台形データへの画像データの対応を説明する図である。
【図10】 再構成可能展開部のブロック図である。
【図11】 入力バッファとバンドバッファの使用方法について説明する図である。
【図12】 再構成制御部が再構成ハードウェア部を制御する手順を示すフローチャートである。
【図13】 構成データ管理部の構成を示す図である。
【図14】 再構成ハードウェア部の構成例を示すブロック図である。
【図15】 図14のFPGAユニットの構成を説明する図である。
【図16】 図15の論理ブロックを説明する図である。
【図17】 図15のクロスポイントスイッチを説明する図である。
【図18】 図15のスイッチマトリックスを説明する図である。
【図19】 再構成ハードウェア部の構成の一例を示す図である。
【図20】 台形データ描画を説明する図である。
【図21】 台形描画回路の機能ブロック図である。
【図22】 座標計算部の機能ブロック図である。
【図23】 エッジ描画部の機能ブロック図である。
【図24】 伸長処理回路の機能ブロック図である。
【図25】 解像度変換回路のブロック図である。
【図26】 色空間変換回路の機能ブロック図である。
【図27】 色空間変換の線形補間の過程を示す図である。
【図28】 展開処理部をアクセラレータとして利用する場合の変換処理部と展開処理部の関係を示す図である。
【図29】 画像処理列の一例を説明する図である。
【図30】 再構成制御部を示すブロック図である。
【図31】 画像処理列記憶部および並列処理可能性判断部を示すブロック図である。
【図32】 再構成制御部における画像処理の手続きの一例を示した流れ図である。
【図33】 並列処理可能性決定表の一例を示した図である。
【図34】 並列処理可能性決定表の一例を示した第2の図である。
【図35】 第2の並列処理可能性決定表の一例を示した図である。
【図36】 再構成ハードウェア部の構成の一例を示す第2の図である。
【符号の説明】
1 印刷データ作成部
2 印刷データ入力部
3 変換処理部
4 展開処理部
5 出力部
31 字句解析部
32 中間データ生成部
33 中間データ記憶部
40 再構成可能展開部
41 再構成制御部
42 構成データ管理部
50 ビデオインターフェース
51 半導体レーザ走査装置
52 感光体ドラム
53 帯電器
54 ロータリー現像器
55 転写ドラム
56 クリーナー
57 定着器
58 用紙の搬送経路
510 赤外半導体レーザ
511 レンズ
512 ポリゴンミラー
310 トークン解釈部
311 命令実行部
312 画像処理部
313 描画状態記憶部
314 ベクターデータ生成部
315 フォント管理部
316 マトリックス変換部
317 ショートベクター生成部
318 台形データ生成部
319 バンド分解管理部
401 印字データ転送制御部
402 メモリ部
403 再構成ハードウェア部
404 中間データ転送制御部
405 リフレッシュ制御部
406 アービトレーション部
402−1 入力バッファA
402−2 入力バッファB
402−3 バンドバッファA
402−4 バンドバッファB
402−5 ワーク領域
421 変換テーブル
422 構成コード記憶領域
423 制御部
423−1 読み出し制御部
423−2 追加更新部
403−1 Code A処理回路
403−2 Code G処理回路
461 台形描画回路
462 スクリーン処理回路
481 伸張処理回路
482 解像度変換回路
483 色空間変換回路
484 台形描画回路
485 スクリーン処理回路
463 中間データ入力部
464 座標計算部A
465 座標計算部B
466 エッジ描画部
467 DDAパラメータ計算部
468 DDA処理部
469 座標更新部
470 アドレス計算部
471 マスク演算部
472 データ演算部
473 RmodW処理部
481−1 中間データ入力部
481−2 ハフマン複号化部
481−3 逆量子化部
481−4 逆DCT部
481−5 書き込み部
482−1 画素データ入力部
482−2 補間処理部
482−3 画素アドレス計算部
482−4 書き込み部
483−1 画素データ入力部
483−2 テーブル変換部
483−3 補間処理部
483−4 書き込み部
411 画像処理列入力部
412 画像処理列記憶部
413 並列処理可能性判断部
414 再構成データ選択部
415 第2の並列処理可能性判断部
412−1 FIFO型記憶メモリ
413−1 画像処理列比較部
413−2 並列処理可能性決定表
415−1 第2の並列処理可能性決定表
403−3、7、8、9、10 Code H処理回路
403−4、5、6 Code I処理回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing technique in a print processing apparatus, and more particularly to a print processing apparatus that executes a plurality of image processes in parallel on print data.
[0002]
[Prior art]
Accompanying the development of a small and high-speed electrophotographic page printer suitable for high-speed digital printing, images, graphics, characters, etc., which have been removed from conventional text-information-oriented printing, are handled in the same way, and the graphics, characters, etc. are enlarged and rotated. In general, print processing apparatuses using a description language in which deformation and the like can be freely controlled have been widely used. Typical examples of this description language include PostScript (trademark of Adobe Systems, Inc.), Interpress (trademark of Xerox, USA), Acrobat (trademark of Adobe Systems, USA), GDI (Graphics Device Interface, trademark of Microsoft Corporation, USA), etc. It has been known.
[0003]
The print data created in the description language is composed of drawing commands that represent images, figures, and characters at arbitrary positions in the page in any order, and for printing with the page printer according to the present invention. The print data must be rasterized before printing. Rasterization is the process of developing raster scan lines into a series of individual dots or pixels across a page or part of a page, and successively generating scan lines below the page. A conventional page printer rasterizes print data for the entire page before printing and stores it in a page buffer memory. However, a large amount of memory is required to store raster data for the entire page. In particular, the latest electrophotographic color page printer requires raster data corresponding to four color toners of C (cyan), M (magenta), Y (yellow), and Bk (black), and a monochrome page. Since image quality is required to be higher than that of a printer, it is common to have a plurality of bit information per pixel, and a larger amount of memory is required.
[0004]
In response to the need for a large amount of memory, band memory technology has recently appeared as a technology for reducing the memory capacity from the viewpoint of cost reduction. Band memory technology does not rasterize all print data for one page before printing by the page printer, but can rasterize print data created in a description language faster than rasterizing print data. Convert to relatively simple intermediate data, divide one page into a plurality of adjacent areas (bands), store the intermediate data corresponding to each band, and then sequentially transfer to the raster development processing unit to correspond to the band It is a technology that expands to a buffer memory. In the band memory technique, a memory for storing intermediate data is newly required, but it is possible to reduce a buffer memory that requires a large capacity for raster data. However, in the general band memory technology, it is necessary to end the development from the intermediate data to the raster data for the next band before the printing of the raster data of a certain band is completed. When the print data includes complex graphic drawing commands or image drawing commands with a large amount of data to be handled, or when a specific band within one page contains complex graphic drawing commands or image drawing commands, etc. There is a possibility that a situation in which development from intermediate data to raster data is not in time can occur.
[0005]
In view of this, it has been considered to use dedicated hardware in order to speed up the development process from intermediate data to raster data. As described above, objects to be drawn in the page include images, graphics, and characters, and these require special processing according to the type of each object. For example, when the target is an image, resolution conversion, affine conversion, interpolation associated with these processes, color processing, and the like. In the case of graphics, coordinate conversion, vector / raster conversion, paint processing, and the like are required. In the case of characters, outline coordinate conversion, hint processing, vector / raster conversion, paint processing, and the like are required. Therefore, it is necessary to prepare dedicated hardware corresponding to all these processes one by one. However, in this case, even if the amount of memory can be reduced, there is a problem that the amount of hardware to be added increases and the entire system becomes expensive. In addition, hardware intended for converting intermediate data into a bitmap can only be used when converting intermediate data into a bitmap, and it is necessary to prepare dedicated hardware for processing in parallel. There was a problem that it was very wasteful considering the rate.
[0006]
Conventionally, there are techniques described in JP-A-6-131155, JP-A-6-282432, and the like as configurations in which attempts have been made to solve such problems. The technologies described in these publications do not provide hardware in parallel for all functions, but make the functions variable by reconfiguring the hardware's programmability or structure. Is trying to realize the functions of
[0007]
Further, the image processing related to the image drawing command can be processed in parallel using a plurality of hardware. Conventional techniques for performing image processing at high speed by performing parallel processing include, for example, “Parallel Processor” (Japanese Patent Laid-Open No. 59-53964) and “Image Processing Technology” (Japanese Patent Laid-Open No. 63-201774). .
[0008]
A parallel image processor described in Japanese Patent Application Laid-Open No. 59-53964 is a parallel image including a local memory, a processor module including a local processor provided corresponding to each local memory, an input / output bus, and a management processor. It is a processor. The processor module can include a position comparison circuit, a memory element, and an access control circuit. The purpose of this parallel image processor is to provide a parallel image processor that does not require updating with an adjacent processor module when executing a local neighborhood operation in a parallel image processor with a processor module provided corresponding to a partial screen. is there. While the above-mentioned management processor sends out the screen image data via the input / output bus, by storing the partial screen to be subjected to image processing and the neighboring image data around it in the local memory of each processor module, It is not necessary to make an inquiry (data reference) to a processor module having adjacent partial screen image data at the stage of typical image processing, and each processor module can perform image processing completely independently, thereby improving processing speed. .
[0009]
An image processing apparatus described in Japanese Patent Application Laid-Open No. 63-201774 is an image processing apparatus including an image memory including a plurality of memory elements and a processor unit including a plurality of processor elements. The image processing apparatus can include rotation means or enable control means. An object of this image processing apparatus is to provide an image processing apparatus that performs high-speed image processing by parallel processing of a finite number of small processors. This image processing apparatus can simultaneously process pixel data in a predetermined area adjacent to an image memory by a processor unit. Further, the position of the predetermined area can be freely controlled by the rotation means, or the size of the predetermined area can be freely controlled by the enable control means.
[0010]
Furthermore, the technique described in Japanese Patent Laid-Open No. 63-197283 is a parallel image processing apparatus in which an image memory, a plurality of image processing units, and a host processor are connected by a data transfer path.
[0011]
[Problems to be solved by the invention]
In the above-described prior art image processing apparatus, partial image data is allocated to each processor module, processor unit, or local memory for parallel processing, and parallel processing according to the image processing function cannot be performed. It was.
[0012]
That is, the “parallel image processor” in Japanese Patent Laid-Open No. 59-53964 and the “image processing apparatus” in Japanese Patent Laid-Open No. 63-201774 divide certain image data into partial image data, Image processing such as so-called clip processing and color conversion processing, focusing on image data that is one of the image attributes, focusing on allocation to processor modules, processor units, or local memory The contents and functions (behavior or procedure) were not considered.
[0013]
In addition, a series of image processing such as continuous image processing sequence generated in image editing processing, for example, image data is read into an image processing apparatus, clip processing is performed, color conversion processing is performed, and drawing is output on a display. There was no consideration for handling as a parallel processing of the sequence of.
[0014]
In the parallel image processing apparatus described in Japanese Patent Laid-Open No. 63-197283, the image processing unit is operated in parallel or sequentially by the starting means of the host processor. A parallel image processing apparatus that is applicable to a plurality of successive image processing sequences is not implemented by checking the parallelism by comparing two functions or attributes of the processing sequences. Absent.
[0015]
The parallel processing apparatus described in the embodiment described in Japanese Patent Application Laid-Open No. 63-197283 merely executes binarization as a single image processing function by a plurality of image processing units. As will be described later, according to the configuration of the present invention, a plurality of functionally completely different image processes such as a color map change process and a subsequent clip process can be processed in parallel.
[0016]
In the sequential operation of the image processing unit called sequential image processing described in the embodiment of Japanese Patent Laid-Open No. 63-197283, rotation processing as a single image processing function is performed by a plurality of image processing units. Only. As will be described later, the image processing apparatus of the present invention can sequentially process a plurality of functionally completely different image processes such as a color map change process and a subsequent pixel value inversion process. In other words, the invention of Japanese Patent Laid-Open No. 63-197283 has a means for judging the possibility of parallel processing for a plurality of image processing sequences, although single-function image processing can be processed in parallel or sequentially. Therefore, when the processing target is set to a plurality of image processing sequences, switching between parallel processing or sequential processing cannot be appropriately controlled and cannot be applied to a plurality of image processing sequences.
[0017]
An object of the present invention is to provide a print processing apparatus that performs parallel processing on a continuous image processing sequence in accordance with the contents of the image processing, that is, the function or attribute of the image processing.
[0018]
[Means for Solving the Problems]
In order to solve the above problems, the print processing apparatus of the present invention solves the above problems by using a hardware configuration control unit having the following means.
[0019]
(1) Possibility of parallel processing by comparing two consecutive image processing sequences in order from the top of a plurality of consecutive image processing sequences to be processed and determining whether the image processing can be performed in parallel by different processing circuits Judgment means.
[0020]
(2) When the compared image processing sequences are image processing depending on the position or image pixel value of the image data to be processed together, the positions of the image data to be referred to are further compared, and different processing circuits Second parallel processing possibility determination means for determining whether parallel processing possibility is possible or not by discriminating whether or not image data overlapping each other is referred to.
[0021]
(3) When the two consecutive image processing sequences can be processed in parallel, the hardware is constituted by different processing circuits corresponding to the image processing sequence, and otherwise, the predetermined processing corresponding to the image processing is performed. Hardware configuration control means for configuring hardware depending on the processing circuit.
[0022]
Specifically, the print processing apparatus of the present invention includes at least one of a character, a graphic, and an image drawing element, an input unit that inputs print data described by a predetermined drawing command, and the print data A divided drawing element obtained by interpreting a token included in the print data and executing a drawing command to divide the drawing element included in the print data input to the input unit into bands, and hardware applied to the expansion process of the divided drawing element Hardware configuration ID set corresponding to the configuration of Converted print data including Generate by band Included in conversion means and converted print data converted by conversion means Set to a split drawing element for each band A print processing apparatus comprising: hardware for changing a configuration according to a hardware configuration ID and executing conversion print data expansion processing; and output means for outputting converted print data expanded by hardware Corresponding to two consecutive hardware configuration IDs recorded in the image processing sequence data in which the hardware configuration IDs are arranged in the order of processing to be executed in hardware. Parallel processing possibility determination means for determining whether or not two consecutive image processes can be processed in parallel in different processing circuits in hardware, and continuous two determined by the parallel processing possibility determination means as being capable of parallel processing For one image processing sequence, hardware is configured by different processing circuits corresponding to the two consecutive image processing sequences, and the continuous 2 determined that parallel processing is impossible by the parallel processing possibility determination means. One image processing sequence includes hardware configuration control means for configuring hardware by a processing circuit corresponding to the preceding image processing in the two consecutive image processing sequences.
[0023]
In the print processing apparatus according to the present invention, the parallel processing possibility determination means includes two consecutive processes. Corresponds to the hardware configuration ID For each of two consecutive image processes, whether the image process depends on the position of the image data to be processed or whether the image process is independent of the position of the image data. Based on the judgment data stored in advance in the storage unit It is characterized by determining the possibility of parallel processing by determining.
[0024]
In the print processing apparatus according to the present invention, the parallel processing possibility determination means includes two consecutive processes. Corresponds to the hardware configuration ID Both of the two consecutive image processing Based on judgment data Image processing that depends on the position of image data Determined In the case, the duplication of the image data to be referred to in each of the two consecutive image processings is further determined, and based on the determination result Based on the judgment data stored in advance in the storage unit It is characterized by determining the possibility of parallel processing.
[0025]
In the print processing apparatus according to the present invention, the parallel processing possibility determination means includes two consecutive processes. Corresponds to the hardware configuration ID For each of two consecutive image processes, whether the image process depends on the pixel value of the image data to be processed or is independent of the pixel value of the image data Based on the judgment data stored in advance in the storage unit It is characterized by determining the possibility of parallel processing by determining.
[0026]
In the print processing apparatus according to the present invention, the parallel processing possibility determination means includes two consecutive processes. Corresponds to the hardware configuration ID Both of two consecutive image processing sequences are pixels of image data. value If the image processing is dependent on the image processing, the duplication of the image data referred to in each of the two consecutive image processings is further determined, and based on the determination result Based on the judgment data stored in advance in the storage unit It is characterized by determining the possibility of parallel processing.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of a print processing apparatus according to the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing the configuration of an embodiment of a print processing apparatus of the present invention. In FIG. 1, the print processing apparatus includes a print data creation unit 1, a print data input unit 2, a conversion processing unit 3, a development processing unit 4, and an output unit 5.
[0029]
The print data creation unit 1 has a function of creating print data described in a description language from document data generated by an application program for processing document creation and editing in a personal computer or workstation. . The target description language in the present embodiment is, for example, GDI, but may be a page description language represented by PDF (Portable Document Format) represented by Acrobat or PostScript.
[0030]
The print data input unit 2 has a communication function for inputting the print data generated by the print data creation unit 1 or a function for temporarily storing the print data until it is output to the conversion processing unit 3. Is.
[0031]
The conversion processing unit 3 converts the print data input from the print data input unit 2 into intermediate data that can be expanded into print data in the expansion processing unit 4. The conversion processing unit 3 includes a lexical analysis unit 31, an intermediate data generation unit 32, and an intermediate data storage unit 33.
[0032]
The lexical analysis unit 31 cuts out the print data input from the print data input unit 2 as a token according to the syntax of a predetermined description language, and outputs the token to the intermediate data generation unit 32.
[0033]
The intermediate data generation unit 32 receives and interprets the token output from the lexical analysis unit 31, executes drawing commands, generates data with a trapezoid for each drawing command as a basic unit, and uses them as intermediate data for intermediate data The data is sent to the storage unit 33. The purpose of generating the intermediate data is to enable high-speed expansion processing in the expansion processing unit 4. Therefore, the intermediate data is represented by a set of simple figures (for example, trapezoids). In addition, a hardware configuration ID that is an identifier for configuration data written to the reconfigurable expansion unit 40 of the expansion processing unit 4 as information regarding the expansion processing is added to the intermediate data. The intermediate data storage unit 33 stores the sent intermediate data, and is read from the expansion processing unit 4 as necessary.
[0034]
The expansion processing unit 4 reads the intermediate data stored in the conversion processing unit 3 in band units, and creates print data in a band buffer memory in the expansion processing unit 4. The print data created here is alternately stored in the two band buffer memories in the expansion processing unit 4. As will be described later, the output unit 5 used in this embodiment is a color page printer, and the print data alternately accumulated in the buffer memory corresponds to the print data of the recording color printed by the output unit 5. is doing. Subsequently, the print data stored in the band buffer memory is alternately output to the output unit 5 in response to a print data request from the output unit 5.
[0035]
The output unit 5 receives print data output from the band buffer memory of the development processing unit 4, prints it on a recording sheet, and outputs it. More specifically, a laser scanning type electrophotographic system that can output a full color image by repeating exposure, development, and transfer for each color of C, M, Y, Bk (cyan, magenta, yellow, black) was used. Color page printer.
[0036]
Here, the configuration and operation of a color page printer using a general laser scanning type electrophotographic system will be described with reference to FIG. In FIG. 2, the video interface 50 inputs print data corresponding to the C, M, Y, and Bk color information sequentially sent from the development processing unit 4 to a driver that controls lighting of a semiconductor laser (not shown). Convert to signal. The semiconductor laser scanning device 51 includes an infrared semiconductor laser 510, a lens 511, and a polygon mirror 512, and scans the photosensitive drum 52 as spot light of several tens of μm. The photosensitive drum 52 is charged by a charger 53, and an electrostatic latent image is formed by an optical signal. The latent image is converted into a toner image by the two-component magnetic brush development on the rotary developing device 54 and transferred onto the paper adsorbed on the transfer drum 55. The photosensitive drum 52 is cleaned of excess toner by a cleaner 56. This process is repeated in the order of Bk, Y, M, and C, and multiple transfer is performed on the paper. Finally, the sheet is peeled from the transfer drum 55 and the toner is fixed by the fixing device 57.
[0037]
Next, the flow of print data in the print processing apparatus having the above-described configuration will be organized. The print data created by the print data creation unit 1 is input to the lexical analysis unit 31 of the conversion processing unit 3 via the print data input unit 2. The token extracted from the print data in the lexical analyzer 31 is input to the intermediate data generator 32. The intermediate data generation unit 32 interprets the token and generates intermediate data divided in band units. At this time, the intermediate data includes a band ID indicating which band belongs to the data based on the trapezoid set, the type of image, character, figure, etc., drawing attributes, a circumscribed rectangle for the trapezoid set, and a hardware configuration ID. It has been done. The intermediate data is stored in the intermediate data storage unit 33 for one page for each band.
[0038]
On the other hand, the expansion processing unit 4 acquires configuration data from the configuration data management unit 42 as necessary by the hardware configuration ID added to the intermediate data input from the conversion processing unit 3, and controls the reconfiguration control unit 41. Thus, the function of the reconfigurable circuit in the reconfigurable expansion unit 40 is rewritten. Further, the expansion processing unit 4 receives the intermediate data and performs the expansion processing until the band buffer memory is filled with the print data first recorded by the output unit 5. When the cycle or output preparation of the output unit 5 is completed, the print data is transferred line by line from the band buffer memory to the output unit 5 in accordance with the recording speed of the output unit 5, and printing is performed. While the print data of one band buffer memory is being printed, the expansion process is executed until the band buffer memory on one side is filled with the print data. The development from the intermediate data to the print data in the development processing unit 4 and the printing in the output unit 5 are repeated for each color or simultaneously for four colors until the print data for one page is processed. Further, when the print data is composed of a plurality of pages, the process is repeated until the output of all pages is completed.
[0039]
The outline of the print processing apparatus of the present invention has been described above. Next, details of main parts of the print processing apparatus will be described.
[0040]
First, details of the intermediate data generation unit 32 and the intermediate data storage unit 33 will be described.
[0041]
As shown in FIG. 3, the intermediate data generation unit 32 includes a token interpretation unit 310, an instruction execution unit 311, an image processing unit 312, a drawing state storage unit 313, a vector data generation unit 314, a font management unit 315, and a matrix conversion unit. 316, a short vector generation unit 317, a trapezoid data generation unit 318, and a band decomposition management unit 319.
[0042]
The token interpretation unit 310 interprets the token input from the lexical analysis unit 31, converts the token into an internal command, and sends the internal command to the command execution unit 311. The instruction execution unit 311 transfers the image processing unit 312, the drawing state storage unit 313, and the vector data generation unit 314 in accordance with the internal command sent from the token interpretation unit 310. The image processing unit 312 performs various types of image processing based on the input image header and image data, generates an output image header and output image data, and transfers them to the band decomposition management unit 319. The drawing state storage unit 313 holds information necessary for drawing given by a command from the command execution unit 311. The vector data generation unit 314 generates vector data to be drawn using the instruction of the instruction execution unit 311 and the information added to the instruction, the information from the drawing state storage unit 313, and the information from the font management unit 315. And transferred to the matrix conversion unit 316. The font management unit 315 manages and stores outline data of various fonts, and provides character outline data upon request. The matrix conversion unit 316 affine-transforms the vector data input from the vector data generation unit 314 using the conversion matrix of the drawing state storage unit 313 and transfers the vector data to the short vector generation unit 317. The short vector generation unit 317 approximates the vector for the curve in the input vector with a plurality of linear vector sets (short vectors), and sends the vector to the trapezoid data generation unit 318. The trapezoid data generation unit 318 generates trapezoid data to be drawn from the input short vector, and transfers it to the band decomposition management unit 319. The band decomposition management unit 319 divides the trapezoid data spanning a plurality of bands among the input trapezoid data into trapezoid data of each band, and further belongs to which band with respect to the trapezoid data divided in band units. A band ID representing the above, a circumscribed rectangle for the trapezoidal data set divided into band units, data management information, color information input from the drawing state storage unit 313, or image data input from the image processing unit 312 The hardware configuration ID, which is the expansion processing information, is added and sent to the intermediate data storage unit 33.
[0043]
The intermediate data storage unit 33 stores one page of intermediate data output from the intermediate data generation unit 32 in band units. Note that the processing from the token interpretation unit 310 to the band decomposition management unit 319 described above is repeated each time a drawing command is input. The processing from the intermediate data generation unit 32 to the intermediate data storage unit 33 is performed in band units or page units depending on circumstances. The transfer of the intermediate data from the intermediate data storage unit 33 to the expansion processing unit 4 is performed after the intermediate data for one page is stored.
[0044]
Hereinafter, the operation of each unit of the intermediate data generation unit 32 and the intermediate data storage unit 33 will be described in more detail while showing an actual data structure.
[0045]
The token interpretation unit 310 interprets the token input from the lexical analysis unit 31, converts the token into an internal instruction and its argument, and transfers the combination of the internal instruction and the argument to the instruction execution unit 311. For example, the internal commands include a drawing command for drawing characters / graphics / images, and a drawing status command for setting necessary information such as colors and line attributes.
[0046]
The instruction execution unit 311 executes the internal instruction sent from the token interpretation unit 310. The commands executed here are mainly a drawing command and a drawing state command. For example, the drawing commands include three types of drawing commands as shown in Table 1, and information necessary for each drawing is shown. Among these, information with an underline is given as an argument in the drawing command, and other information is stored in the drawing state storage unit 313 in advance by initial setting, preceding commands, or the like. In the execution of the drawing command, the received drawing command is transferred to the vector data generation unit 314 as it is except for image drawing. In the case of image drawing, the received drawing command is transferred to the image processing unit 312, and the vertical and horizontal sizes of the image header are transferred to the vector data generating unit 314. For the drawing state command, the command is transferred to the drawing state storage unit 313.
[0047]
[Table 1]
Figure 0003834935
[0048]
The image processing unit 312 receives the input image header and the input image data that are the arguments of the command input from the command execution unit 311, sees the compression ID added to the header, and if a compressed image is input First, compression is expanded and affine transformation is performed using a transformation matrix acquired from the drawing state storage unit 313. Further, in some cases, the processed image is compressed, and an output image header and output image data are generated and transferred to the band decomposition management unit 319. This compression usually uses a compression method that originally compressed image data on the PDL side, but it is not always necessary to do so. For example, when compressed on the PDL side by DTC, it may be compressed by DTC or may be compressed by LZW (Lempel Ziv & Welch). Further, compression may not be performed. In the affine transformation to be executed, the affine transformation may be performed for a resolution smaller than the resolution of the output device in order to reduce the memory of the intermediate data buffer.
[0049]
The drawing state storage unit 313 sets, for example, the values of the arguments included in the instruction received from the instruction execution unit 311 for information with no underline shown in Table 1, and stores them. The values are transferred in accordance with requests from the image processing unit 312, the vector data generation unit 314, the matrix conversion unit 316, the short vector generation unit 317, the trapezoid data management unit 320, and the like.
[0050]
The vector data generation unit 314 uses the command and argument sent from the command execution unit 311 and the value of the drawing state storage unit 313 to generate vector data for new drawing excluding the solid drawing. First, the case of character drawing will be described. The character code given by the argument and the font ID acquired from the drawing state storage unit are transferred to the font management unit to acquire character outline data. Since the acquired outline data does not include the drawing origin (current point) information, the target vector data is generated by adding the offset of the current point acquired from the drawing state storage unit 313 to the outline data. In the case of image drawing, a rectangular vector for the size is generated from the vertical and horizontal sizes of the image header given by the argument, and the target vector is added by adding the offset of the current point acquired from the drawing state storage unit 313. Generate data. In the case of stroke drawing, a line outline vector having a thickness as shown in FIG. 4 is generated from the vector given by the argument and various line attributes acquired from the drawing state storage unit 313. The vector generated in this way (in the case of filled drawing, the vector received directly from the instruction execution unit 311) is transferred to the matrix conversion unit 316.
[0051]
The font management unit 315 stores outline vector data for various fonts, and provides outline vector data for the character according to a given character code and font ID.
[0052]
The matrix conversion unit 316 affine-transforms the vector data received from the vector data generation unit 314 using the conversion matrix acquired from the drawing state storage unit 313. The main purpose of this affine transformation is to convert from application resolution (coordinate system) to printer resolution (coordinate system). A 3 × 3 matrix as shown in the following formula (1) is used as the transformation matrix, and the input vector data (Xn, Yn) is converted into output vector data (Xn ′, Yn ′) to the short vector generation unit 317. Sent.
[0053]
[Expression 1]
Figure 0003834935
[0054]
When there is a curved vector in the input vector, the short vector generation unit 317 sets the curved vector so that the error is smaller than the flatness value acquired from the drawing state storage unit 313. Approximating with multiple short vectors. For example, a Bezier curve represented by four control points shown in FIG. 5 is used for a curve vector. In this case, the short vectorization process recursively divides the Bezier curve as shown in FIG. 5 and ends the division when the height (distance d) becomes smaller than the value given by the flatness. The short vectorization is completed by connecting the start point and end point of each divided Bezier curve in order. The generated short vector is sent to the trapezoid data generation unit 318.
[0055]
The trapezoid data generation unit 318 generates a set of trapezoid data (which may be a triangle but the data structure is the same as the trapezoid) indicating the drawing area from the input vector data. For example, in the polygonal vector indicated by the bold line shown in FIG. 6A, the drawing area is indicated by four trapezoids. This trapezoid is a trapezoid having two sides parallel to the scan line of the output device, and one trapezoid is 6 of (sx, sy, x0, x1, x2, h) as shown in FIG. It is expressed by one data. The generated trapezoid is sent to the band decomposition management unit 319.
[0056]
The band decomposition management unit 319 divides the trapezoid data spanning a plurality of bands among the input trapezoid data into trapezoid data for each band. For example, in FIG. 7, four trapezoid data are divided into six trapezoid data by the band decomposition unit. Furthermore, intermediate data is generated by adding additional information to the trapezoid data input for each band. The additional information is management information for managing the intermediate data, a hardware configuration ID representing the content processed by the expansion processing unit 4, and color information indicating the color of the trapezoid data. The management information for the character / figure drawing command includes band ID, object ID, object type, trapezoid number data for indicating to which band, and circumscribed rectangle data for the trapezoid data set. The object ID is an identification number assigned to one drawing command, and the object type is identification data for an object to be drawn such as a character, a figure, or an image. The hardware configuration ID is an ID indicating processing in the expansion processing unit 4, and the color information is, for example, values of C, M, Y, and Bk.
[0057]
As shown in FIG. 8A, the additional information is added before the trapezoid data for each band generated by the drawing command. Thus, the object is constituted by a plurality of trapezoid data to which a set of drawing attributes is added. Intermediate data is a set of data for such an object. The management information for the image drawing command is the same as that for the characters / graphics, but the image header and the image data are alternatives to the color information. Further, as shown in FIG. 8B, one image header and one image data are added to each trapezoid data for each band generated by the drawing command.
[0058]
The image header and the image data are input from the image processing unit 312, but the image data added as the intermediate data may be image data for the minimum rectangle of the vector indicating the converted image as shown in FIG. However, it may be image data for a minimum rectangle for each trapezoid. Furthermore, since the image data has a large capacity, it may be stored in a compressed form. The image header includes the type of color conversion processing and the type of compression method in addition to the parameter representing the size of the image.
[0059]
Finally, the hardware configuration will be described. The hardware configuration ID is code information corresponding to the processing executed by the expansion processing unit 4 and means processing as shown in Table 2. Depending on the scale of the reconfigurable hardware and the processing contents to be executed, the intermediate data generation unit 32 uses the intermediate data as a configuration ID corresponding to the circuit configuration of the actual reconfigurable expansion unit 40 one-to-one. To be added.
[0060]
[Table 2]
Figure 0003834935
[0061]
The data output by the intermediate data generation unit 32 is sent to the intermediate data storage unit 33, where the band ID is interpreted by the intermediate data storage unit 33 and stored for each band. When the lexical analysis unit 31 interprets the page output command, an EOP (EndOf Page) is sent to the intermediate data storage unit 33 via the intermediate data generation unit 32 and stored in the intermediate data storage unit 33. Data representing EOD (End Of Data) is added to the final data of the band to clarify the end of the band data. This EOP is also sent to the expansion processing unit 4 to activate the processing of the expansion processing unit 4.
[0062]
Next, the expansion processing unit 4 will be described in detail. In FIG. 10, the block diagram of the reconfigurable expansion | deployment part 40 is shown. The intermediate data for each band generated by the conversion processing unit 3 is read by the intermediate data transfer control unit 401 and written to the input buffer A 402-1 or the input buffer B 402-2 of the memory unit 402. The reconstruction hardware unit 403 reads the intermediate data from the input buffer A 402-1 or the band buffer B 402-2, develops it, and draws it in the band buffer A 402-3 or the band buffer B 402-4. The print data transfer control unit 404 reads the developed print data from the band buffer A 402-3 or the band buffer B 402-4, serializes the read data for each read word, and synchronizes with the serial output clock signal. And output to the output unit 5. The refresh control unit 405 controls refresh of the memory unit 402 including the input buffer A 402-1, the input buffer B 402-2, the band buffer A 402-3, the band buffer B 402-4, and the work area 402-5. The arbitration unit 406 is configured to block each of the refresh control unit 405, the intermediate data transfer control unit 401, the print data transfer control unit 404, the reconfiguration hardware unit 403, and the reconfiguration control unit 41 when accessing the memory unit 42. Arbitration control is performed according to the priority of access assigned to.
[0063]
A method of using the input buffer and the band buffer will be described. FIG. 11A and FIG. 11B show the use state of each buffer while intermediate data is being input to the input buffer A and the input buffer B, respectively. In FIG. 11A, intermediate data corresponding to the band i is being input to the input buffer A, and the intermediate data corresponding to the band (i-1) has already been input to the input buffer B. The reconstruction hardware unit 403 reads the intermediate data stored in the input buffer B, expands it, and draws it in the band buffer B. The band buffer A stores print data as a result of developing and rendering the intermediate data corresponding to the band (i-2), and the print data transfer control unit 404 reads the print data to the output unit 5.
[0064]
In FIG. 11B, intermediate data corresponding to the band (i + 1) is being input to the input buffer B, and the intermediate data corresponding to the band i has already been input to the input buffer A. The reconfiguration hardware unit 403 reads the intermediate data stored in the input buffer A, expands it, and draws it in the band buffer A. The band buffer B stores print data obtained as a result of developing and rendering the intermediate data corresponding to the band (i−1), and the print data transfer control unit 404 reads the print data to the output unit 5.
[0065]
The work area 402-5 is used as a temporary work area as needed when the expansion processing unit 4 expands the intermediate data input from the conversion processing unit 3.
[0066]
A procedure for expanding the intermediate data output from the conversion processing unit 3 in the reconfigurable expansion unit 40 will be described. The reconfiguration control unit 41 inputs the hardware configuration ID and the object ID from the input buffer, and controls the reconfiguration hardware unit 403 according to the flowchart shown in FIG. The processing performed by the reconfiguration control unit 41 includes seven steps S1 to S7 shown in FIG. First, in S1, it is checked whether the hardware configuration ID of the object to be processed next is the same as the hardware configuration ID processed immediately before. If they are the same, it is not necessary to newly write the configuration data to the reconfiguration hardware unit 403, and the process proceeds to S5. If they are different, the configuration data is read from the configuration data management unit 42 based on the hardware configuration ID in S3, and the configuration data is written in the reconfiguration hardware unit 403 in S4. In S5, a start signal is sent to the reconfigurable hardware unit 403 to notify the object to be processed and the start of the process. In S6, the process waits until the reconfiguration hardware unit 403 finishes processing. In S7, it is checked whether there is an object to be further processed in the band currently being processed. If there is, the process returns to S1, otherwise ends.
[0067]
FIG. 13 shows the configuration of the configuration data management unit 42. The conversion table 421 is a table that inputs the hardware configuration ID and outputs the start address and data length of the configuration code storage area 422. The configuration code storage area 422 is an area in which configuration data for the actual hardware configuration ID is stored, and each entry has a variable length. The control unit 423 includes a read control unit 423-1 and an additional update unit 423-2. The read control unit 423-1 receives the read signal and the hardware configuration ID from the reconfiguration control unit 41, and outputs the hardware configuration ID to the conversion table 421, whereby the configuration data on the configuration code storage area 422 is obtained. Enter the address and data length. Next, the read control unit 423-1 outputs the address to the configuration code storage area 422, reads the configuration data corresponding to the hardware configuration ID for the data length from the configuration code storage area 422, and performs reconfiguration control. Output to the unit 41. The addition / update unit 423-2 is a control unit for adding or updating configuration data sent via a host computer (not shown), and adds an entry in the conversion table 421 and configuration data in the configuration code storage area 422. , Delete, or update. The configuration code storage area 422 includes configuration data corresponding to various circuit configurations that process a single function, configuration data corresponding to a parallel circuit configuration having a plurality of identical functions, and a pipe having a plurality of different functions. Configuration data corresponding to a line-like circuit configuration is provided.
[0068]
Next, a specific configuration and processing content of the reconfigurable hardware unit 403 will be described with an example. The reconfiguration hardware unit 403 is a processing block whose function can be changed by writing the configuration data managed and stored by the configuration data management unit 42 under the control of the reconfiguration control unit 41. Typically, the reconfigurable hardware unit 403 is configured by an FPGA of XILINX or an equivalent component.
[0069]
FIG. 14 shows a reconfigurable hardware unit 403 configured using an FPGA. In FIG. 14, the reconfiguration hardware unit 403 includes a control unit 4610, an FPGA unit 4620, and a register group 4630. The register group 4630 stores configuration data sent from the configuration data management unit 42. The function of the FPGA unit 4620 is determined by the configuration data held in the register group 4630. The control unit 4610 controls data input / output of the register group 4630 and operation timing of the FPGA unit 4620.
[0070]
As shown in FIG. 15, the FPGA unit 4620 includes a plurality of logic blocks 4621, a plurality of crosspoint switches 4622, and a plurality of switch matrices 4623. As illustrated in FIG. 16, the logic block 4621 includes a lookup table 4621A, a selector 4621B, and a flip-flop 4621C. A desired truth table is mounted on the lookup table 4621A. The truth table of the lookup table 4621A and the switching input signal of the selector 4621B are determined by the values held in the register group 4630, that is, a part of the configuration data. The crosspoint switch 4622 and the switch matrix 4623 can be configured as shown in FIGS. 17 and 18, respectively.
[0071]
The reconfigurable hardware unit 403 is not limited to the FPGA illustrated in FIG. 14, and includes, for example, a plurality of arithmetic processing devices (arithmetic logic arithmetic units), and the input / output flow of each arithmetic processing device is controlled by the switching device. May be. In this case, for example, an arithmetic processing unit may be arranged as the logic block 4621 in FIG. A simple gate may be used instead of the cross point switch 4622 or the switch matrix 4623.
[0072]
The functional block diagram showing the function of the reconfigurable hardware unit 403 is variable depending on the configuration data to be written. In FIG. 19, the configuration and operation of the reconfiguration hardware unit 403 will be described. 19, 403-1 is a processing circuit whose hardware configuration ID corresponds to Code A, and 403-2 is a processing circuit whose hardware configuration ID corresponds to Code G. The internal configuration of the processing circuit 403-1 includes a trapezoidal drawing circuit 461 and a screen processing circuit 462. The internal configuration of the processing circuit 403-2 includes an image expansion circuit 481, a resolution conversion circuit 482, a color conversion circuit 483, a trapezoid drawing circuit 484, and a screen processing circuit 485. The reconfigurable hardware unit 403 has a circuit configuration having a plurality of identical functions and a plurality of different functions, such as a circuit configuration including two processing circuits 403-1 and three processing circuits 403-2. Parallel processing based on the circuit configuration is possible. Further, as in the internal configuration of the processing circuit 403-2, a pipeline operation in which input / output data is exchanged between a plurality of different functions in a pipeline manner is also possible. A more detailed configuration and operation of the processing circuit 403-1 corresponding to the hardware configuration ID Code A and the processing circuit 403-2 corresponding to the hardware configuration ID Code G will be described.
[0073]
(I) Processing circuit whose hardware configuration ID corresponds to Code A
The processing circuit 403-1 processes intermediate data for the graphic generated by the conversion processing unit 3. The trapezoid drawing circuit 461 draws the trapezoid area by converting the trapezoid data (sx, sy, x0, x1, x2, h) forming the input intermediate data into a data format consisting of four points as shown in FIG. To do. FIG. 21 shows a block diagram of the trapezoid drawing circuit 461. The intermediate data input unit 463 reads each trapezoidal data from the input buffer and outputs the trapezoid data to the coordinate calculation unit A464 and the coordinate calculation unit B465. The coordinate calculation unit A464 is responsible for coordinate calculation of the left edge of the trapezoid (edge P0P1 in FIG. 20), and sequentially outputs coordinate values on the edge from P0 to P1. The coordinate calculation unit B465 is in charge of coordinate calculation of the right edge of the trapezoid (edge P2P3 in FIG. 20), and sequentially outputs coordinate values on the edge from P2 to P3. The edge drawing unit 466 draws a straight line parallel to the x axis of the trapezoid based on the coordinate values input from the coordinate calculation unit A 464 and the coordinate calculation unit B 465.
[0074]
FIG. 22 is a functional block diagram of the coordinate calculation unit A464 and the coordinate calculation unit B465. The input trapezoid data (sx, sy, x0, x1, x2, h) is converted into four-point trapezoid data (P0, P1, P2, P3) by the DDA parameter calculation unit 467, and the initial slope and residual are obtained. A DDA parameter such as a value is calculated and output to the DDA processing unit 468. The DDA processing unit 468 performs DDA processing based on the input parameters, and outputs the moving direction and the moving amount with respect to the last obtained point. The coordinate updating unit 469 updates and outputs the currently held coordinate value from the input movement direction and movement amount. The initial coordinate value is set by the intermediate data input unit 463.
[0075]
FIG. 23 is a block diagram of the edge drawing unit 466. The edge drawing unit 466 fills the trapezoidal inner region by inputting the coordinate values A / B and the image data. The address calculation unit 470 receives the coordinate value A / B and calculates the address of the edge component to be drawn. The mask calculation unit 471 receives the coordinate value A / B and outputs a mask representing valid bits in the word to be drawn. The data calculation unit 472 inputs color data representing a fixed color, expands this value into words, outputs the value to the screen processing circuit, and outputs the result of the screen processing to the RmodW unit 473. The RmodW unit 473 performs drawing by performing the following processing using the input address, mask, and data. First, data from the band buffer is read according to the address. Assuming that the read data is Source, the mask data is Mask, and the drawing data is Data, the value of (Mask * Data + Mask # * Source) is calculated and written back to the same address. However, * represents a logical product, + represents a logical sum, and # represents a logical negation. This process is repeated for each word including the edge to be drawn.
[0076]
Further, the screen processing circuit 462 is a process for performing final gamma correction and halftone, and a screen pattern optimized for outputting a graphic is set. When the hardware configuration ID is Code B, the screen processing is a process for performing final gamma correction and halftone, and a screen pattern optimized for outputting characters is set.
[0077]
(I) Processing circuit whose hardware configuration ID corresponds to Code G
The processing circuit 403-2 inputs an image whose intermediate data is different in color for each pixel, and performs image processing represented by Code G in Table 2. A processing circuit when the combination of image processing is image expansion processing, resolution conversion, color space conversion, trapezoid drawing, and screen processing will be described below.
[0078]
(Extension processing circuit 481)
If the input intermediate data image is compressed and needs to be decompressed, the decompression processing circuit 481 decompresses the intermediate data using an algorithm such as JPEG. FIG. 24 shows a functional block diagram of the decompression processing circuit 481. The intermediate data input unit 481-1 inputs intermediate data that is compressed image data from the input buffer currently being input. The Huffman decoding unit 481-2 decodes the compressed data based on a built-in Huffman decoding table. The inverse quantization unit 481-3 dequantizes the data input from the Huffman decoding unit 481-2 based on the built-in quantization table and outputs the result. The inverse DCT unit 481-4 converts the data input from the inverse quantization unit 481-4 by an inverse DCT conversion formula and outputs the result. The writing unit 481-5 writes the image data decoded by the inverse DCT unit in the work area 402-5.
[0079]
(Resolution conversion circuit 482)
FIG. 25 shows a functional block diagram of the resolution conversion circuit 482. The pixel data input unit 482-1 reads pixel data from the work area 402-5 in which the result of the decompression process is written. For pixel readout, only input pixels necessary for interpolation of the pixel currently being calculated are read out by inverse transformation of the resolution conversion equation (1). The interpolation processing unit 482-2 interpolates the luminance of the converted pixel for each color component from the input pixel data. The interpolation algorithm is performed by linear interpolation. The pixel address calculation unit 482-3 calculates the write address of the work area 402-5 from the coordinates of the pixel currently being calculated. The writing unit writes a new pixel value based on the pixel address and the interpolation data. In the work area 402-5, the areas to which the input image and the output image are assigned are different areas.
[0080]
(Color space conversion circuit 483)
FIG. 26 shows a functional block diagram of the color space conversion circuit 483. In the color space conversion, an input image in the RGB space is converted into a CMYK space that is a print color. The pixel data input unit 483-1 inputs pixel data on the work area 402-5 storing the affine transformed result for each pixel. The table conversion unit 483-2 receives RGB image data and outputs image data of each color of CYMK. In this embodiment, since CMYK colors are processed for each color, only one color conversion table is required at a time. If it is desired to process four colors simultaneously, a conversion table for four colors is incorporated. The conversion table is incorporated in the table conversion unit 483-2, and has nine representative points for each RGB color as the table address in order to reduce the capacity of the table. This is performed by the interpolation processing unit 483-3. The interpolation processing unit 483-3 obtains detailed conversion values by three-dimensional linear interpolation processing from six representative points surrounding one point of the RGB color space to be converted. This process is shown in FIG. Look at the conversion values of 6 points (a, b, c, d, e, f) that become the vertices of the triangular prism surrounding the point P by the table conversion unit 483-2 with respect to the point P in the RGB space to be converted. Obtained by an up-table and performs linear interpolation based on this. The writing unit 483-4 overwrites the conversion result on the same address input by the pixel data input unit 483-1.
[0081]
(Trapezoid processing circuit 484)
The configuration of the trapezoid drawing circuit 484 for drawing the image data in the trapezoid area is basically the same as the functional block for the trapezoid processing of characters and figures shown in FIG. The image is pasted on the trapezoidal area as shown in FIG. At this time, the difference peculiar to the drawing of the image in FIG. 21 is that the intermediate data input unit 463 inputs the image data from the work area 402-5 and outputs the image data to the edge drawing unit 466. Intermediate data representing trapezoid data is input from an input buffer. The edge drawing unit 466 writes the output image in the band buffer currently being output, as in the case of characters and graphics.
[0082]
(Screen processing circuit 485)
The screen processing is processing for converting the color value of the number of colors that can be expressed by the printer into a color value that can be expressed by the printer when the number of colors per color held as data is larger than the number of colors per color that can be expressed by the printer. . This typical processing is called halftone processing, and has NxM threshold data called a halftone matrix, and the data and image data are compared for each color to determine a color value for each color of the printer. It is. For example, when processing image data expressed in 8 bits per color on a 1 bit printer per color, an arbitrary value from 0 to 255 is stored in the halftone matrix of NxM threshold data. Then, the actual image data value is compared with the halftone matrix threshold data determined by the position of the image. If the image data is larger, the color value for printing the pixel is output, otherwise, Outputs a color value that does not print the pixel.
[0083]
The processing object 403-2 corresponding to the combination of the processing corresponding to the processing object corresponding to the development data ID CodeG, that is, the expansion processing, the resolution conversion, the color space conversion, the trapezoid processing, and the screen processing has been described above. The configuration and contents of processing performed by the processing circuit 403-2.
[0084]
The reconfigurable hardware unit 403 performs input / output to / from the memory through the arbitration unit 406 and stores the expansion result in the band buffer.
[0085]
In the above description, the intermediate data generation process is described as being processed by the intermediate data generation unit 32. However, the intermediate data generation process is executed by the reconfigurable expansion unit 40 by changing the hardware configuration of the expansion processing unit 4. It is also possible to make it.
[0086]
This will be described with reference to FIG. For example, an LZW-compressed image input to the instruction execution unit 311 of the intermediate data generation unit is conventionally decompressed by LZW by the image processing unit 312, subjected to matrix operation, compressed by LZW, and sent to the band decomposition management unit 319. I was sending. This processing is performed by the reconfigurable expansion unit 40 of the expansion processing unit 4 instead of the image processing unit 312. Reconfiguration data for performing such processing is registered in advance in the configuration data management unit 41 together with the hardware configuration ID, and when an image to be processed is input to the image processing unit 312, the image processing unit 312 interprets the content of the processing. Then, the configuration data is acquired from the configuration data management unit by the hardware configuration ID to the reconfigurable expansion unit 40, and the internal reconfigurable hardware is reconfigured. Thereafter, according to the image processing procedure, the input image data sent is processed using reconfigurable hardware, and the image data created as a result of the processing is sent back to the image processing unit 312. With such a configuration, the reconfigurable resources of the reconfigurable expansion unit 40 can be effectively used.
[0087]
In this way, when the reconfigurable development unit 40 uses the configuration hardware unit 403 as a hardware accelerator, the image processing with the image command to be processed is applied to the image data of the reciprocal number. The reconfiguration control unit 41 when the configuration hardware unit 403 operates in parallel will be described below.
[0088]
When the reconstruction hardware unit 403 is used as a hardware accelerator, an image command is configured in the data format of FIG. 29 in the image processing unit 312, and the image command is transferred from the image processing unit 312 to the reconstruction development unit 40. The FIG. 29 shows an image command including a hardware configuration ID corresponding to a plurality of image processes for a set of image header and image data. Hereinafter, a hardware configuration ID corresponding to one image process or a sequence of hardware configuration IDs corresponding to two or more image processes will be referred to as an image processing sequence. For example, a part of specific image data is cut out, a color map changing process for performing gamma correction of the cut out image data is performed, an enlargement process twice as large as the image data whose color map is changed, and further enlarged The image processing sequence corresponding to the image command that inverts the pixel value of the image data is the hardware configuration ID corresponding to the clip, gamma correction, (color map change), enlargement, and inversion configuration data, that is, Code H , Code I, and Code K (see Table 2).
[0089]
FIG. 30 shows a configuration example of the reconfiguration control unit 41. The reconstruction control unit 41 includes an image processing sequence input unit 411, an image processing sequence storage unit 412, a parallel processing possibility determination unit 413, a reconstruction data selection unit 414, and a second parallel processing possibility determination unit 415. The The image processing sequence input unit 411 reads data corresponding to the hardware configuration ID of the image command from the reconstruction development unit 40 and transfers the data to the image processing sequence storage unit 412. The image processing sequence storage unit 412 stores and holds the image processing sequence. The parallel processing possibility determination unit 413 and the second parallel processing possibility determination unit 415 determine whether parallel processing of the image processing sequence stored in the image processing sequence storage unit 412 is possible. The reconfiguration data selection unit 414 determines the reconfiguration hardware unit 403 of the reconfigurable expansion unit 40 based on the parallel processing determination result of the parallel processing possibility determination unit 413 or the second parallel processing possibility determination unit 415. The configuration data of the configuration data management unit 42 to be configured is selected.
[0090]
FIG. 31 shows a configuration example of the image processing sequence storage unit 412 and the parallel processing possibility determination unit 413. The image processing sequence storage unit 412 includes a so-called FIFO type storage memory 412-1. The parallel processing possibility determination unit 413 includes an image processing comparison unit 413-1 and a parallel processing possibility determination table 413-2.
[0091]
The image processing procedure of the image processing sequence in the reconstruction control unit 41 is as shown in FIG. First, in step 8 (S8), the image processing sequence input from the image processing sequence input unit 411 is transferred to the image processing sequence storage unit 412.
[0092]
The image processing sequence transferred to the image processing sequence storage unit 412 is stored in the order of input to the internal FIFO type storage memory 412-1 in the next step 9 (S9). For example, in the case of the image command shown in FIG. 29, the image processing sequence is stored and held in the FIFO storage memory 412-1 in the order of Code H, Code I, Code J, and Code K.
[0093]
Next, in step 10 (S10), the first hardware configuration ID and the second hardware configuration ID of the FIFO-type storage memory 412-1 are determined as parallel processing possibility as preceding image processing and subsequent image processing, respectively. The data is transferred to the unit 413, and the possibility of parallel processing is determined. As an example, the first hardware configuration ID and the second hardware configuration are Code H and Code I in the initial state, and the preceding image processing and subsequent image processing are clip and color space conversion, respectively. .
[0094]
Next, in step 11 (S11), based on the result of the parallel image processing possibility determination made in step 10 in the reconstruction data selection unit 414, those image processing sequences (preceding image processing or subsequent image processing) are performed. Alternatively, the reconstruction hardware unit 403 is configured by processing circuits corresponding to both image processing.
[0095]
Finally, in step 12 (S12), image processing is executed in the reconfiguration hardware unit 403.
[0096]
Next, the exception handling will be supplemented. As an exception, when there is only one input image processing sequence, that is, when the image command is composed of a single hardware configuration ID, there is naturally no subsequent image processing, and the FIFO type storage memory. Only the first hardware configuration ID of 412-1 is transferred to the parallel processing possibility determination unit 413. In this case, the parallel processing possibility determination unit 413 immediately transfers the hardware configuration ID to the reconfiguration data selection unit 414 without determining the parallel processing possibility of image processing that means the hardware configuration ID. . The reconfiguration data selection unit 414 configures the reconfiguration hardware unit 403 with predetermined configuration data corresponding to the hardware configuration ID, and the reconfiguration hardware unit 403 executes image processing.
[0097]
FIGS. 33 and 34 are diagrams showing an example of the parallel processing possibility determination table 413-2 inside the parallel processing possibility determination unit 413. FIG. Hereinafter, the procedure for determining the possibility of parallel processing of the image processing sequence in step 10 will be described in detail with reference to these drawings.
[0098]
The parallel processing possibility determination unit 413 includes an image processing sequence comparison unit 413-1 and a parallel processing possibility determination table 413-2. The above-described preceding image processing and subsequent image processing transferred from the FIFO-type storage memory 412-1 of the image processing sequence storage unit 412 are input to the image processing sequence comparison unit 413-1. The image processing sequence comparison unit 413-1 creates inquiry data composed of preceding image processing and subsequent image processing, and transfers the inquiry data to the parallel processing possibility determination table 413-2. The parallel processing possibility determination table 413-2 links the preceding image processing, the subsequent image processing, and the parallel processing possibility data associated therewith. The parallel processing possibility determination table 413-2 that has received the inquiry data from the image processing sequence comparison unit 413-1 transfers the parallel processing possibility data related to the inquiry data to the reconfiguration data selection unit 414. The reconfiguration data selection unit 414 selects configuration data to configure the reconfiguration hardware unit 403 according to the parallel processability data.
[0099]
FIG. 34 shows that as the preceding image processing and the subsequent image processing, inquiry data relating to Code H and Code I, which means clip processing and color map change processing, are configured.
[0100]
The parallel processing possibility determination by the parallel processing possibility determination table 413-2 of the parallel processing possibility determination unit 413 is classified into the following four cases according to the contents of the inquiry data, that is, the preceding image processing and the following image processing. Is done.
[0101]
(A) When the preceding image processing and the subsequent image processing are both image processing that depends on the position of the image data.
(B) The preceding image processing is image processing independent of the position of the image data, and the subsequent image processing is image processing depending on the position of the image data.
(C) Image processing depending on the position of the preceding image processing image data, and the subsequent image processing is image processing independent of the position of the image data.
(D) When the preceding image processing and the subsequent image processing are both independent image processing at the position of the image data.
[0102]
Reference numerals (a) to (d) in FIG. 33 and FIG. 34 correspond to the above reference numerals. Here, as the image processing depending on the position of the image data as shown in FIG. 34, clip processing (cutout processing of image data in a specific area) or the like can be considered. As image processing independent of the position of the image data, color processing is possible. Map change processing can be considered.
[0103]
In the cases (b) and (c), parallel processing is possible, that is, the preceding image processing and the subsequent image processing can be simultaneously processed by different processing circuits, and the parallel processing possibility determination table 413- 2 transfers the parallel processing possibility data of the parallel processing “possible” to the reconfiguration data selection unit 414. For example, clip processing and color map change can be performed in parallel by different processing circuits. In such a case, as shown in FIG. 36, the reconfiguration hardware 403 is configured by the Code H processing circuit 403-3 and the Code I processing circuit 403-4 by the configuration data corresponding to Code H and Code I, and parallel processing is performed. can do.
[0104]
In the case of (d), parallel processing is impossible, that is, the preceding image processing and the subsequent image processing cannot be performed simultaneously by different processing circuits. The parallel processing possibility determination table 413-2 is The parallel processing possibility data of the process “impossible” is transferred to the reconfiguration data selection unit 414. For example, the first color space conversion process from RGB image data of the entire image to HVC image data and the second color space conversion process from HVC image data of the entire image to CMYK image data are different processing circuits. Parallel processing is not possible. This is because the subsequent second color space conversion process cannot be performed unless the preceding first color space conversion process is determined. That is, the subsequent second color space conversion process requires information on the preceding first color space conversion process. Here, in the HVC image data, H means hue (Hue), V means lightness (Value), and C means saturation (Chroma). In such a case, as shown in FIG. 36, a Code I processing circuit 403-5 that performs a first color space conversion process from RGB image data of the entire image to HVC image data, and CMYK image data from the HVC image data of the entire image. The reconfigurable hardware 403 can be configured by the second color space conversion processing circuit 403-6 to sequentially process. Alternatively, first, the reconstruction hardware 403 is configured only by the Code I processing circuit that performs the first color space conversion process from the RGB image data of the entire image to the HVC image data, and the process is performed. The reconstruction hardware 403 may be configured by only the Code I processing circuit that performs the second color space conversion process from the entire HVC image data to the CMYK image data, and the process may be performed.
[0105]
In the case of (a), there are cases where parallel processing is possible and cases where parallel processing is possible, and the parallel processing possibility data in the parallel processing possibility determination table 413-2 becomes “indefinite”, but this “indefinite”. The parallel processing possibility data is not transferred to the reconfiguration data selection unit 414. In the case of (a), the parallel processing possibility determination unit 413 performs second parallel processing on the inquiry data transferred from the image processing sequence comparison unit 413-1 to the parallel processing possibility determination table 413-2. Transfer to possibility determination unit 415. The second parallel processing possibility determination unit 415 determines parallel processing possibility, and transfers the determination result (parallel processing is possible or parallel processing is impossible) to the reconfiguration data selection unit 414 as parallel processing possibility data. .
[0106]
FIG. 35 shows that the second parallel processability determination unit 415 includes the second parallel processability determination table 41. For example, when the preceding image processing is the first clip processing and the subsequent image processing is the second clip processing, each processing is performed on the areas targeted for the first clip processing and the second clip processing. It is possible to distinguish whether parallel processing is possible or not depending on whether it is not referred to. As shown in FIG. 35, when the areas to be clipped overlap, that is, when the image data is not exclusive, parallel processing cannot be performed by different processing circuits. Therefore, the second parallel processing possibility determination unit 415 transfers the image processing possibility data of the parallel processing “impossible” to the reconstruction data selection unit 414. On the other hand, when the areas to be clipped do not overlap, that is, when the image data is exclusive, each clip process can be processed in parallel by different processing circuits. Therefore, the second parallel processing possibility determination unit 415 transfers the image processing possibility data of the processing “possible” in parallel to the reconstruction data selection unit 414. In the former case, that is, in the case where parallel processing cannot be performed, as shown in FIG. 36, the Code H processing circuit 403-9 that performs the preceding first clip processing and the Code H processing circuit 403 that performs the following second clip processing. The reconfiguration hardware 403 can be configured by −10, and sequential processing can be performed. Alternatively, the reconstruction hardware 403 can be configured by a single Code H processing circuit, and first the first clip processing is performed first, and then the subsequent second clip processing is performed. In the latter case, that is, when parallel processing is possible, the reconfigurable hardware 403 can be configured by a plurality of Code H processing circuits 403-7 and 403-8 as shown in FIG.
[0107]
Note that reference numerals (b) to (e) in FIG. 36 coincide with the reference numerals in FIG. 33 to FIG. 35 and the reference numerals in the above description.
[0108]
The parallel processing possibility determination table 413-2 can also be implemented as a database. 34 represents the preceding image processing, the subsequent image processing, and the parallel processing possibility data related thereto as a query data from the image processing sequence comparison unit 413-1 as “query image processing that precedes image processing”. ”And“ subsequent image processing is color conversion processing ”is input,“ possible ”is output as parallel processing possibility data from the parallel processing possibility determination table 413-2 to the reconfiguration data selection unit 414. Represents the appearance. As the preceding image processing or subsequent image processing to be registered, “enlargement” or “inversion of pixel value” can be considered. Similarly, the second parallel processing possibility determination table 41 can also be implemented as a database.
[0109]
The storage memory for storing the image processing sequence in the image processing sequence storage unit 412 can be a so-called stack type storage memory instead of the FIFO type storage memory as described above. In this case, as the preceding image processing and subsequent image processing, the image processing sequence comparison unit 413-1 of the parallel processing possibility determination unit 413 performs the first stored image processing and the second stored image processing, respectively. It is necessary to configure the reconfiguration control unit 41 so that it can be transferred to.
[0110]
Even in the case where parallel processing is impossible in the above description, it is of course possible to execute parallel processing by dividing image data into appropriate partial areas using conventional techniques.
[0111]
Next, the parts that can be replaced will be described. The parallel processing possibility determination unit 413 is an alternative to determining whether parallel processing is possible by distinguishing between image processing depending on the position of image data to be processed and image processing independent of the position of the image data. The parallel processing possibility determination table 413-2 so as to determine the possibility of parallel processing by distinguishing between the image processing depending on the pixel value of the image data to be processed and the image processing independent of the pixel value of the image data. Can also be configured. The second parallel processing possibility determination unit 415 further determines the position of the image data to be referred to when the compared image processing sequences are image processing depending on the pixel values of the image data to be processed together. By comparing, the second parallel processing possibility determination table 41 is configured so as to determine whether parallel processing possibility is possible or not by distinguishing whether different processing circuits refer to mutually overlapping image data. You can also
[0112]
For example, when image processing of image data with a so-called color map is assumed, the color map can be deleted as image processing independent of the pixel value of the image data. Also, so-called convolution filtering processing can be considered as image processing depending on the pixel value of image data.
[0113]
【The invention's effect】
As described above, in the print processing apparatus of the present invention, the functions of two consecutive image processing sequences are compared in order from the beginning of the plurality of consecutive image processing sequences to be processed by the parallel processing possibility determination unit. By distinguishing image processing depending on the position of the image data from image processing independent of the position of the image data, it is determined whether or not the image processing sequence can be processed in parallel by different processing circuits.
[0114]
Further, the hardware configuration control unit is configured to reconfigure the reconfiguration data so that the reconfiguration data selection unit configures the reconfiguration hardware unit with different processing circuits when the two consecutive image processing sequences can be processed in parallel. Otherwise, the reconstruction data is selected so that the reconstruction hardware unit is configured by a predetermined processing circuit corresponding to the preceding image processing in the image processing sequence.
[0115]
A processing circuit that executes image processing depending on the position of the image data performs image processing that depends on the position of the image data, such as clipping of partial area data. A processing circuit that performs image processing that performs processing independent of the position of the image data performs image processing independent of the position of the image data, such as gamma correction by changing a so-called color map. Thus, the processing circuit that executes image processing depending on the position of the image data and the processing circuit that executes image processing that performs independent processing on the position of the image data are processed in parallel. That is, it is possible to operate independently of each other at the same time, and it is possible to perform high-speed processing as compared with the case where sequential processing is performed by a single processing circuit. The reconfigurable hardware unit performs parallel processing using a plurality of processing circuits capable of parallel processing.
[0116]
In addition, the hardware configuration control unit further refers to the image to be referred to when the compared image processing sequence is image processing depending on the position of the image data to be processed by the second parallel processing possibility determination unit. The position of the data is compared, and whether or not parallel processing is possible is determined based on whether or not different processing circuits refer to overlapping image data. When different processing circuits do not refer to mutually overlapped image data, the reconstructed data selection unit divides the image data into each processing circuit and performs parallel processing. On the other hand, when different processing circuits refer to overlapping image data, the predetermined processing circuit sequentially processes the image data without dividing it.
[0117]
As described above, according to the print processing apparatus of the present invention, it is possible to perform parallel processing according to the content of image processing related to continuous image processing sequences, that is, the function or attribute of image processing, and high-speed image processing Can be performed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of a print processing apparatus according to the present invention.
FIG. 2 is an explanatory diagram of a configuration of a color page printer.
FIG. 3 is a block diagram illustrating an intermediate data generation unit.
FIG. 4 is a diagram for explaining an outline vector.
FIG. 5 is a diagram for explaining recursive division of a Bezier curve.
FIG. 6 is a diagram illustrating trapezoid data.
FIG. 7 is a diagram for explaining division of trapezoid data at band boundaries;
FIG. 8 is a diagram illustrating an example of a data format of trapezoid data.
FIG. 9 is a diagram illustrating the correspondence of image data to trapezoid data.
FIG. 10 is a block diagram of a reconfigurable expansion unit.
FIG. 11 is a diagram illustrating a method of using an input buffer and a band buffer.
FIG. 12 is a flowchart illustrating a procedure for the reconfiguration control unit to control the reconfiguration hardware unit;
FIG. 13 is a diagram illustrating a configuration of a configuration data management unit.
FIG. 14 is a block diagram illustrating a configuration example of a reconfiguration hardware unit.
15 is a diagram for explaining the configuration of the FPGA unit of FIG. 14;
FIG. 16 is a diagram for explaining the logical block of FIG. 15;
FIG. 17 is a diagram for explaining the crosspoint switch of FIG. 15;
FIG. 18 is a diagram for explaining the switch matrix of FIG. 15;
FIG. 19 is a diagram illustrating an example of a configuration of a reconfigurable hardware unit.
FIG. 20 is a diagram for explaining trapezoidal data drawing.
FIG. 21 is a functional block diagram of a trapezoid drawing circuit.
FIG. 22 is a functional block diagram of a coordinate calculation unit.
FIG. 23 is a functional block diagram of an edge drawing unit.
FIG. 24 is a functional block diagram of a decompression processing circuit.
FIG. 25 is a block diagram of a resolution conversion circuit.
FIG. 26 is a functional block diagram of a color space conversion circuit.
FIG. 27 is a diagram illustrating a process of linear interpolation for color space conversion.
FIG. 28 is a diagram illustrating a relationship between a conversion processing unit and a development processing unit when a development processing unit is used as an accelerator.
FIG. 29 is a diagram illustrating an example of an image processing sequence.
FIG. 30 is a block diagram illustrating a reconstruction control unit.
FIG. 31 is a block diagram illustrating an image processing sequence storage unit and a parallel processing possibility determination unit;
FIG. 32 is a flowchart showing an example of an image processing procedure in the reconstruction control unit.
FIG. 33 is a diagram showing an example of a parallel processing possibility determination table;
FIG. 34 is a second diagram showing an example of a parallel processing possibility determination table;
FIG. 35 is a diagram showing an example of a second parallel processing possibility determination table.
FIG. 36 is a second diagram illustrating an example of a configuration of a reconfigurable hardware unit.
[Explanation of symbols]
1 Print data creation department
2 Print data input section
3 Conversion processing section
4 Development processing section
5 Output section
31 Lexical analysis section
32 Intermediate data generator
33 Intermediate data storage
40 Reconfigurable deployment unit
41 Reconfiguration controller
42 Configuration Data Management Department
50 Video interface
51 Semiconductor laser scanning device
52 Photosensitive drum
53 Charger
54 Rotary developer
55 Transfer drum
56 Cleaner
57 Fuser
58 Paper transport path
510 Infrared semiconductor laser
511 lens
512 polygon mirror
310 Token interpreter
311 Instruction execution part
312 Image processing unit
313 Drawing state storage unit
314 Vector data generator
315 Font Management Department
316 Matrix converter
317 Short vector generator
318 Trapezoid data generator
319 Band Disassembly Management Department
401 Print data transfer control unit
402 Memory part
403 Reconfiguration hardware part
404 Intermediate data transfer control unit
405 Refresh control unit
406 Arbitration section
402-1 Input buffer A
402-2 Input buffer B
402-3 Band buffer A
402-4 Band buffer B
402-5 Work area
421 conversion table
422 Configuration code storage area
423 control unit
423-1 Read control unit
423-2 Additional update unit
403-1 Code A processing circuit
403-2 Code G processing circuit
461 Trapezoidal drawing circuit
462 Screen processing circuit
481 Decompression processing circuit
482 Resolution conversion circuit
483 color space conversion circuit
484 Trapezoidal drawing circuit
485 Screen processing circuit
463 Intermediate data input section
464 Coordinate calculation part A
465 Coordinate calculation part B
466 Edge drawing part
467 DDA parameter calculator
468 DDA processing unit
469 coordinate update unit
470 Address calculator
471 Mask calculation unit
472 Data operation part
473 RmodW processor
481-1 Intermediate data input section
481-2 Huffman Decoding Department
481-3 Inverse quantization unit
481-4 Reverse DCT section
481-5 Writing section
482-1 Pixel data input section
482-2 Interpolation processing unit
482-3 Pixel address calculator
482-4 writer
483-1 Pixel data input section
483-2 Table Converter
483-3 Interpolation processing unit
483-4 Writing section
411 Image processing sequence input unit
412 Image processing sequence storage unit
413 Parallel processing possibility determination unit
414 Reconstruction data selection unit
415 2nd parallel processing possibility judgment part
412-1 FIFO type storage memory
413-1 Image processing sequence comparison unit
413-2 Parallel processing possibility determination table
415-1 Second parallel processing possibility determination table
403-3, 7, 8, 9, 10 Code H processing circuit
403-4, 5, 6 Code I processing circuit

Claims (5)

少なくとも文字、図形、画像の描画要素のいずれかを有し、所定の描画命令で記述された印刷データを入力する入力手段と、
前記印刷データに含まれるトークンを解釈し描画命令を実行して、前記入力手段に入力された印刷データに含まれる描画要素をバンド単位に分割した分割描画要素と、該分割描画要素の展開処理に適用するハードウェアの構成に対応して設定されたハードウェア構成IDとを含む変換印刷データをバンド単位で生成する変換手段と、
前記変換手段で変換された変換印刷データに含まれるバンド単位の分割描画要素に設定されたハードウェア構成IDに応じて構成を変更し、前記変換印刷データの展開処理を実行するハードウェアと、
前記ハードウェアで展開処理された前記変換印刷データを出力する出力手段とを備えた印刷処理装置であり、
前記ハードウェアにおいて実行すべき処理順に前記ハードウェア構成IDを並べた画像処理列データに記録された連続する2つのハードウェア構成IDに対応する連続する2つの画像処理が前記ハードウェア中の相異なる処理回路において並列処理可能か否かを判断する並列処理可能性判断手段と、
前記並列処理可能性判断手段において並列処理可能と判断された連続する2つの画像処理列に対しては、該連続する2つの画像処理列に対応するそれぞれ相異なる処理回路によって前記ハードウェアを構成し、前記並列処理可能性判断手段において並列処理不可能と判断された連続する2つの画像処理列に対しては、該連続する2つの画像処理列中、先行する画像処理に対応する処理回路によってハードウェアを構成するハードウェア構成制御手段と、
を有することを特徴とする印刷処理装置。
An input unit that has at least one of a character, a graphic, and an image drawing element, and inputs print data described by a predetermined drawing command;
A divided drawing element obtained by interpreting a token included in the print data and executing a drawing command to divide a drawing element included in the print data input to the input unit into a band unit, and a process of expanding the divided drawing element Conversion means for generating converted print data including a hardware configuration ID set corresponding to a hardware configuration to be applied in band units ;
Hardware that changes the configuration according to the hardware configuration ID set in the divided drawing element in band units included in the converted print data converted by the conversion means, and executes the expansion processing of the converted print data;
An output unit that outputs the converted print data expanded by the hardware ;
Two consecutive image processes corresponding to two consecutive hardware configuration IDs recorded in image processing sequence data in which the hardware configuration IDs are arranged in the order of processing to be executed in the hardware are different in the hardware. Parallel processing possibility determination means for determining whether parallel processing is possible in the processing circuit;
For two consecutive image processing sequences that are determined to be parallel processing by the parallel processing possibility determination means, the hardware is configured by different processing circuits corresponding to the two consecutive image processing sequences. For the two consecutive image processing sequences determined to be incapable of parallel processing by the parallel processing possibility determination means, the processing circuit corresponding to the preceding image processing in the two consecutive image processing sequences Hardware configuration control means for configuring the hardware;
A print processing apparatus.
前記並列処理可能性判断手段は、前記連続する2つのハードウェア構成IDに対応する連続する2つの画像処理各々について、処理すべき画像データの位置に依存する画像処理であるか、画像データの位置に独立な画像処理であるかを予め記憶部に保持した判定データに基づいて判断することによって、並列処理可能性の可否を判断することを特徴とする請求項1に記載の印刷処理装置。The parallel processing possibility determination means is an image process that depends on a position of image data to be processed for each of two consecutive image processes corresponding to the two consecutive hardware configuration IDs, or a position of the image data The print processing apparatus according to claim 1, wherein whether or not parallel processing is possible is determined by determining whether the image processing is independent image processing based on determination data previously stored in a storage unit . 前記並列処理可能性判断手段は、前記連続する2つのハードウェア構成IDに対応する連続する2つの画像処理の両者が、前記判定データに基づいて画像データの位置に依存する画像処理であると判定した場合は、さらに該連続する2つの画像処理各々において参照する画像データの重複性を判断し、判断結果に基づいて予め記憶部に保持した判定データに基づいて並列処理可能性の可否を判断することを特徴とする請求項2に記載の印刷処理装置。 Determines that the parallelism possibility determining means, two image processing both continuous corresponding to two hardware configuration ID of the successive, an image processing that depends on the position of the image data on the basis of the determination data In such a case, the duplication of the image data referred to in each of the two consecutive image processes is further determined, and the possibility of parallel processing is determined based on the determination data previously stored in the storage unit based on the determination result. The print processing apparatus according to claim 2. 前記並列処理可能性判断手段は、前記連続する2つのハードウェア構成IDに対応する連続する2つの画像処理各々について、処理すべき画像データの画素値に依存する画像処理であるか、画像データの画素値に独立な画像処理であるかを予め記憶部に保持した判定データに基づいて判断することによって、並列処理可能性の可否を判断することを特徴とする請求項1に記載の印刷処理装置。The parallel processing possibility determination means is an image process depending on a pixel value of image data to be processed for each of two consecutive image processes corresponding to the two consecutive hardware configuration IDs . The print processing apparatus according to claim 1, wherein whether or not the image processing is independent of the pixel value is determined based on determination data previously stored in a storage unit to determine whether parallel processing is possible. . 前記並列処理可能性判断手段は、前記連続する2つのハードウェア構成IDに対応する連続する2つの画像処理列の両者が、画像データの画素に依存する画像処理である場合は、さらに該連続する2つの画像処理各々において参照する画像データの重複性を判断し、判断結果に基づいて予め記憶部に保持した判定データに基づいて並列処理可能性の可否を判断することを特徴とする請求項4に記載の印刷処理装置。The parallel processing possibility determination means further includes the continuous processing when both of the two consecutive image processing sequences corresponding to the two consecutive hardware configuration IDs are image processing depending on pixel values of image data. And determining whether or not parallel processing is possible based on determination data stored in advance in a storage unit based on a determination result. 5. The print processing apparatus according to 4.
JP14743697A 1997-06-05 1997-06-05 Print processing device Expired - Fee Related JP3834935B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14743697A JP3834935B2 (en) 1997-06-05 1997-06-05 Print processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14743697A JP3834935B2 (en) 1997-06-05 1997-06-05 Print processing device

Publications (2)

Publication Number Publication Date
JPH10337932A JPH10337932A (en) 1998-12-22
JP3834935B2 true JP3834935B2 (en) 2006-10-18

Family

ID=15430297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14743697A Expired - Fee Related JP3834935B2 (en) 1997-06-05 1997-06-05 Print processing device

Country Status (1)

Country Link
JP (1) JP3834935B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745564B2 (en) 2009-04-13 2014-06-03 Canon Kabushiki Kaisha Data processing apparatus and method for controlling the apparatus

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4590398B2 (en) * 2003-04-03 2010-12-01 エヌエックスピー ビー ヴィ Runtime configurable virtual video pipeline
JP4795138B2 (en) * 2006-06-29 2011-10-19 富士ゼロックス株式会社 Image processing apparatus and program
JP4818389B2 (en) 2009-04-07 2011-11-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Printing apparatus and control method for data processing by parallel processing
JP6009371B2 (en) * 2013-02-26 2016-10-19 ルネサスエレクトロニクス株式会社 Image processing LSI and image processing program
JP2015016585A (en) * 2013-07-09 2015-01-29 富士ゼロックス株式会社 Image processing device and program
JP6379757B2 (en) * 2014-07-08 2018-08-29 富士ゼロックス株式会社 Image processing apparatus and image forming apparatus
JP6575099B2 (en) * 2015-03-24 2019-09-18 富士通株式会社 Operation management program, operation management device, and operation management method
CN112819509B (en) * 2021-01-18 2024-03-26 上海携程商务有限公司 Method, system, electronic device and storage medium for automatically screening advertisement pictures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745564B2 (en) 2009-04-13 2014-06-03 Canon Kabushiki Kaisha Data processing apparatus and method for controlling the apparatus

Also Published As

Publication number Publication date
JPH10337932A (en) 1998-12-22

Similar Documents

Publication Publication Date Title
US6219149B1 (en) Print processing apparatus
JPH11147335A (en) Plot process apparatus
JP3834935B2 (en) Print processing device
JP3125863B2 (en) Print processing device
JP2015005131A (en) Print data processor, program, and system
JP3871011B2 (en) Information processing apparatus and information processing method
US6995862B1 (en) Image processing apparatus and method and computer program product
JP3885282B2 (en) Print data processing apparatus and print data processing method
JPH11165434A (en) Lithography processing device
JP3550979B2 (en) Image processing device
JP2000255117A (en) Printing processing apparatus and method for processing printing
JPH10151815A (en) Printing-processing apparatus
JP2000335021A (en) Image processing apparatus and method
JP3640133B2 (en) Print processing device
JPH111032A (en) Printing-processing apparatus
JP2000013601A (en) Print information processor and device and method for generating intermediate data
JP2001096854A (en) Apparatus and method for printing processing
JPH11105371A (en) Print processor
JP2000255116A (en) Apparatus for processing printing and method for processing printing
JP2004334533A (en) Image processing device and method
JP2001169120A (en) Method, device, and system for image processing
JP3204136B2 (en) Image processing apparatus and compression processing method
JP3671633B2 (en) Print data processing device
JPH11144062A (en) Printing processor
JPH10157217A (en) Printing-processing apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060606

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: 20060704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060717

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: 20100804

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100804

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110804

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120804

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees