JP3834935B2 - Print processing device - Google Patents
Print processing device Download PDFInfo
- 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
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】
【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】
【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】
【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
[0029]
The print
[0030]
The print
[0031]
The
[0032]
The
[0033]
The intermediate
[0034]
The
[0035]
The
[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
[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
[0038]
On the other hand, the
[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
[0041]
As shown in FIG. 3, the intermediate
[0042]
The
[0043]
The intermediate
[0044]
Hereinafter, the operation of each unit of the intermediate
[0045]
The
[0046]
The
[0047]
[Table 1]
[0048]
The
[0049]
The drawing
[0050]
The vector
[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
[0053]
[Expression 1]
[0054]
When there is a curved vector in the input vector, the short
[0055]
The trapezoid
[0056]
The band
[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
[0059]
Finally, the hardware configuration will be described. The hardware configuration ID is code information corresponding to the processing executed by the
[0060]
[Table 2]
[0061]
The data output by the intermediate
[0062]
Next, the
[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
[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
[0065]
The work area 402-5 is used as a temporary work area as needed when the
[0066]
A procedure for expanding the intermediate data output from the
[0067]
FIG. 13 shows the configuration of the configuration
[0068]
Next, a specific configuration and processing content of the
[0069]
FIG. 14 shows a
[0070]
As shown in FIG. 15, the
[0071]
The
[0072]
The functional block diagram showing the function of the
[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
[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
[0075]
FIG. 23 is a block diagram of the
[0076]
Further, the
[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
[0079]
(Resolution conversion circuit 482)
FIG. 25 shows a functional block diagram of the
[0080]
(Color space conversion circuit 483)
FIG. 26 shows a functional block diagram of the color
[0081]
(Trapezoid processing circuit 484)
The configuration of the
[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
[0085]
In the above description, the intermediate data generation process is described as being processed by the intermediate
[0086]
This will be described with reference to FIG. For example, an LZW-compressed image input to the
[0087]
In this way, when the
[0088]
When the
[0089]
FIG. 30 shows a configuration example of the
[0090]
FIG. 31 shows a configuration example of the image processing
[0091]
The image processing procedure of the image processing sequence in the
[0092]
The image processing sequence transferred to the image processing
[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
[0094]
Next, in step 11 (S11), based on the result of the parallel image processing possibility determination made in
[0095]
Finally, in step 12 (S12), image processing is executed in the
[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
[0097]
FIGS. 33 and 34 are diagrams showing an example of the parallel processing possibility determination table 413-2 inside the parallel processing
[0098]
The parallel processing
[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
[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
[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
[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
[0106]
FIG. 35 shows that the second parallel
[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
[0109]
The storage memory for storing the image processing sequence in the image processing
[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
[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.
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)
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)
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 |
-
1997
- 1997-06-05 JP JP14743697A patent/JP3834935B2/en not_active Expired - Fee Related
Cited By (1)
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 |