JP4182428B2 - 画像伸長装置及びその方法、画像処理システム - Google Patents

画像伸長装置及びその方法、画像処理システム Download PDF

Info

Publication number
JP4182428B2
JP4182428B2 JP2003379008A JP2003379008A JP4182428B2 JP 4182428 B2 JP4182428 B2 JP 4182428B2 JP 2003379008 A JP2003379008 A JP 2003379008A JP 2003379008 A JP2003379008 A JP 2003379008A JP 4182428 B2 JP4182428 B2 JP 4182428B2
Authority
JP
Japan
Prior art keywords
data
image
partial
compressed data
partial area
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
JP2003379008A
Other languages
English (en)
Other versions
JP2005142963A (ja
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003379008A priority Critical patent/JP4182428B2/ja
Priority to US10/953,415 priority patent/US7580151B2/en
Publication of JP2005142963A publication Critical patent/JP2005142963A/ja
Application granted granted Critical
Publication of JP4182428B2 publication Critical patent/JP4182428B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)

Description

本発明は、複数のプロセッサを用いて並列に画像処理(特に画像伸長処理)を行うための技術に関する。
一般に、レーザプリンタシステムでは、RIP(ラスターイメージプロセッサ)により、PDL(ページ記述言語)で記述された印刷対象を印刷イメージに展開し、順次に走査ライン(ラスター)ごとに印刷エンジンに送り出して、印刷を実行する。
このとき、印刷イメージを1ページ分全部展開して記憶しておこうとすると、大変多くのメモリ領域が必要となってしまう。そのため、1ページを複数の走査ラインから構成されるバンドに分割し、その単位で印刷イメージを展開するのが普通である。
このようなバンド単位の展開処理を高速に行うために、複数のプロセッサそれぞれに各バンドを割り当てて並列に展開処理を行う構成が提案されている(特許文献1)。
特開2003−51019号公報
RIPをホスト装置が備える場合、展開した印刷イメージをプリンタ側に送信する必要がある。この場合、印刷イメージはデータ量が多いことから、ホスト装置において送信する前に圧縮処理を施し、プリンタ側で伸長するという枠組みを取るのが普通である。
ここで、ホスト装置やプリンタが複数のプロセッサを備えている場合、特許文献1のように、複数のプロセッサそれぞれに各バンドを割り当てて並列に圧縮処理や伸長処理を行うという構成が考えられる。
しかし、このようなバンド単位に並列化する手法では、個々の走査ライン(個々のバンド)のデータに対しては並列化がなされていない。そのため、最初の1走査ライン(1バンド)について処理結果が得られるまでに必要な時間が単一のプロセッサで処理を行う場合と変わらないといった問題が残る。別言すれば、複数のプロセッサで並列化しているにもかかわらず、実際に印刷が実行されるまでの立ち上がりについてはアドバンテージが得られていない。
また、バンド単位に並列化する手法の場合、スループットを向上させるためには、各プロセッサが自己に割り当てられたバンドについて並列に処理を実行できるように、プロセッサ数分の処理結果を格納するメモリ領域が必要となる。そのため、プロセッサ数を増やして並列度を上げていくと、それに応じて処理に必要なメモリ領域も増加してしまうという問題が生じる。
本願の発明者らは、上記問題を検討した結果、個々の走査ライン(個々のバンド)について、走査ラインの方向と垂直に複数の部分領域(以下、「チャンネル」と呼ぶ)に分割した場合の、前記チャンネルのそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて並列に画像処理(圧縮処理、伸長処理)を行うことで、上記目的を達成できると考えるに至った。
ここで、ホスト装置からプリンタ側へ各チャンネルの圧縮データを転送する場合、高速にデータ転送すべく、各チャンネルについて同容量(例えばnバイト)の圧縮データを含むデータセットを単位としてバースト転送を行う構成とすることが望ましい。特に、ホスト装置側で並列圧縮データをSDRAM(Synchronous Dynamic Random Access Memory)に格納しておくことで、より高速にバースト転送を行うことが可能である。
一方、プリンタ側で複数のプロセッサを用いて並列伸長する際、各プロセッサの処理を単純化すべく、FIFO(First In First out)メモリを利用して各プロセッサが常に同じ場所から圧縮データを読み出せる構成とすることが望ましい。
しかし、バースト転送とFIFOメモリとを単純に組み合せようとすると、すなわちバースト転送された圧縮データをFIFOメモリに格納して伸長処理を行おうとすると、次のような問題が発生する。
通常、1チャンネル分の圧縮データのサイズは圧縮状況に応じて異なっているため、各チャンネルについて同容量のデータセットを単位としてバースト転送を行うと、1回のバースト転送で転送されるデータセットの中にチャンネルによって異なる走査ライン(異なるバンド)の圧縮データが含まれる状況が生じうる。
かかる状況を、図13〜図15を参照して、走査ラインが4つのチャンネルに分割される場合を例に説明する。今、図13に示すように、ホスト装置において圧縮データが格納されており、図14に示すように、1チャンネルについて1バイトの圧縮データを含む計4バイトのデータセットを単位としてバースト転送を行うものとする。この場合、1回目〜6回目までのバースト転送されるデータセットの中には、各チャンネルともに第1走査ラインに関する圧縮データが含まれている。しかし、7回目にバースト転送されるデータセットでは、第1、2、4チャンネルは第1走査ラインに関する圧縮データ、第3チャンネルは第2走査ラインに関する圧縮データとなっており、チャンネルによって異なる走査ラインの圧縮データが含まれてしまう状況が生じている。
このようにバースト転送された結果をそのままFIFOメモリに格納すると、図15に示すように、走査ラインの並びが維持されずに(すなわち、部分的に走査ラインの並びに関して逆転が生じた状態で)格納されることになる。このような状態のFIFOメモリからデータを読み出しつつ、各プロセッサの動作について走査ライン単位で同期させようとする場合、第3チャンネル担当プロセッサは、第1走査ライン第3チャンネル第6バイト目のデータ(符号1−3−6)を読み出して伸長処理を行った時点で、第1走査ラインに関する伸長処理を終了して停止し、第2走査ラインに関する伸長処理の開始を待つことになる。この場合、FIFOメモリには第2走査ライン第3チャンネル第1バイト目のデータ(符号2−3−1)が読み出されずに残るため、第4チャンネル担当プロセッサは、第1走査ライン第4チャンネル第7バイト目のデータ(符号1−4−7)を読み出すことができなくなってしまう。
このように、バースト転送された圧縮データをそのままFIFOメモリに格納して伸長処理を行う構成では、走査ライン単位(又はバンド単位)で同期させながら並列に伸長処理を行うことができないという問題が発生することがわかった。
そこで、本発明は、複数のプロセッサを用いて圧縮データを並列に伸長する場合に、バースト転送された圧縮データを受け取る構成と、FIFOメモリから圧縮データを読み出して並列に伸長する構成とを両立させた上で、各プロセッサの動作を走査ライン単位又はバンド単位で同期させつつ高速に並列処理を実行できる枠組みを提供することを目的とする。
本発明の画像伸長装置は、イメージを構成する走査ライン(又はバンド)について、走査ラインの方向と垂直に複数の部分領域に分割した場合の、前記部分領域ごとに圧縮されたデータを対象として並列に伸長する画像伸長装置であって、各部分領域につき同容量の圧縮データを含むデータセットを単位としてバースト転送されたデータを格納する第1のメモリから、走査ライン(又はバンド)の並び順が維持されるように、各部分領域の圧縮データを読み出してFIFOタイプの第2のメモリに転送する手段と、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てる手段と、各プロセッサが第2のメモリから自己が割り当てられた部分領域の圧縮データを読み出して走査ライン(又はバンド)単位で同期して並列に伸長処理を実行する並列プロセッサユニットと、を備えることを特徴とする。かかる構成によれば、複数のプロセッサを用いて圧縮データを並列に伸長する場合に、バースト転送された圧縮データを受け取る構成と、FIFOメモリから圧縮データを読み出して並列に伸長する構成とを両立させた上で、各プロセッサの動作を走査ライン単位(又はバンド単位で)同期させつつ高速に並列処理を実行することができる。
本発明のプリンタ装置は、本発明の画像伸長装置を備えることを特徴とする。
本発明の画像処理システムは、イメージ圧縮部及びイメージ伸長部を含んで構成され、それぞれが複数のプロセッサを用いて並列に画像処理を行う機能を備える画像処理システムであって、イメージ圧縮部は、イメージを構成する走査ライン(又はバンド)について、走査ラインの方向と垂直に複数の部分領域に分割した場合の、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行い、各部分領域につき同容量の圧縮データを含むデータセットを単位としてイメージ伸長部へバースト送信し、イメージ伸長部は、イメージ圧縮部からバースト転送されたデータを受信して第1のメモリに格納し、前記第1のメモリから走査ライン(又はバンド)の並び順が維持されるように各部分領域の圧縮データを読み出して第2のメモリに転送し、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて、各プロセッサが第2のメモリから自己が割り当てられた部分領域の圧縮データを読み出して走査ライン(又はバンド)単位で同期して並列に画像伸長処理を行うように制御することを特徴とする。
本発明の画像伸長方法は、イメージを構成する走査ライン(又はバンド)について、走査ラインの方向と垂直に複数の部分領域に分割した場合の、前記部分領域ごとに圧縮されたデータを対象として、複数のプロセッサを用いて並列に伸長する画像伸長方法であって、 各部分領域につき同容量の圧縮データを含むデータセットを単位としてバースト転送されたデータを受信して第1のメモリに格納する工程と、前記第1のメモリから走査ライン(又はバンド)の並び順が維持されるように各部分領域の圧縮データを読み出して第2のメモリに転送する工程と、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて、各プロセッサが第2のメモリから自己が割り当てられた部分領域の圧縮データを読み出して走査ライン(又はバンド)単位で同期して並列に画像伸長処理を行うように制御する工程と、を備えることを特徴とする。
本発明の画像伸長方法は、コンピュータにより実施することができるが、そのためのコンピュータプログラムは、CD−ROM、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。また、コンピュータプログラムが、プリンタ用カードやプリンタ用オプションボードに記録されて流通する場合も含む。
本発明によれば、複数のプロセッサを用いて圧縮データを並列に伸長する場合に、バースト転送された圧縮データを受け取る構成と、FIFOメモリから圧縮データを読み出して並列に伸長する構成とを両立させた上で、各プロセッサの動作を走査ライン単位又はバンド単位で同期させつつ高速に並列処理を実行することができる。
(第1の実施形態)
図1は、本発明の実施形態のプリンタシステム1のハードウェア構成を示すブロック図である。図1に示すように、プリンタシステム1は、ホスト装置10と、通信ネットワーク(LAN、インターネット、専用線、パケット通信網、それらの組み合わせ等のいずれであってもよく、有線、無線の両方を含む)を介して該ホスト装置10と通信可能に構成されるプリンタ装置(画像形成装置)20とを含んでいる。
ホスト装置10は、メインCPU、並列処理プロセッサ11〜14を備える並列処理ユニット15、ROM、RAM、ユーザインタフェース、通信インタフェース等のハードウェアを備えている。本実施形態では、並列処理ユニット15が4つのプロセッサ11〜14を備える構成としているが、プロセッサ数は設計に応じて2以上の任意の数(例えば8)とすることができる。
ホスト装置10は、プリンタ装置20に印刷を実行させるため必要な通常の制御機能として、プリンタドライバ手段16を備えている。
プリンタドライバ手段16は、通常のプリンタドライバと同様の機能構成であり、例えば、ホスト装置10上で動作するアプリケーションプログラムからの印刷要求に応じて、ポストスクリプト等の所定のプリンタ制御言語により記述された印刷対象データに基づいてラスタイメージを生成するRIP手段、ラスタイメージに対して所定の画像処理(スクリーン処理など)を施して印刷イメージを作成する画像処理手段などを備える。
ただし、本実施形態のプリンタドライバ手段16は、後述するように、並列処理ユニット15を用いて個々の走査ライン(又は個々のバンド)に対して並列に画像圧縮処理を実行する圧縮制御手段17、並列処理ユニット15によって圧縮されたデータをプリンタ装置20へバースト転送する転送手段18などを備えている点で、従来の構成と異なっている(図2参照)。
なお、これらの各手段は、ホスト装置10内のROMやRAM、外部の記憶媒体等に格納されるプログラムをメインCPUが実行することにより機能的に実現される。
プリンタ装置20は、動力機構部とプリンタコントローラ26を備えている。
動力機構部は、用紙をプリンタ内に供給する給紙機構、印字を行う印刷エンジン、及び用紙をプリンタ機外に排出する排紙機構等により構成される。印刷エンジンは、例えば、インクジェットプリンタや熱転写プリンタのように1文字単位で印刷するシリアルプリンタ、1行単位で印刷するラインプリンタ、ページ単位で印刷するページプリンタ等に対応する各種印刷エンジンを用いることができる。
プリンタコントローラ26は、メインCPU、プロセッサ21〜24を備える並列処理ユニット25、ROM、RAM、ユーザインタフェース、通信インタフェース等を備えている。なお、本実施形態では、並列処理ユニット25が4つのプロセッサ21〜24を備える構成としているが、プロセッサ数は設計に応じて2以上の任意の数(例えば8)とすることができる。また、動力機構部が独立してCPUを備えていてもよく、その場合は、動力機構部のCPUが、所定の通信路を介して情報処理部のメインCPUと通信を行い、印刷エンジンを制御して印刷動作を行わせることになる。
プリンタコントローラ26は、通常のプリンタにおけるプリンタコントローラと同様の機能構成であり、例えば、ホスト装置10からコマンドやデータを受信して受信バッファに格納する受信手段、動力機構部を制御して印刷を実行させるエンジン制御手段などを備える。
ただし、本実施形態のプリンタコントローラ26は、後述するように、バースト転送された圧縮データを格納するデータ受信バッファから、並列処理が可能な順序で、圧縮データを読み出して中間バッファに転送するデータ順序調整手段27、中間バッファに格納される圧縮データに基づいて、並列処理ユニット25を用いて個々の走査ライン(又は個々のバンド)に対して並列に伸長処理を実行する伸長制御手段28、並列処理ユニット25による伸長処理結果を印刷に用いられる順序で印刷エンジンへ転送する転送手段29などを備えている点で、従来の構成と異なっている(図2参照)。
なお、これらの各手段は、プリンタ装置20内のROMやRAM、外部の記憶媒体等に格納されるプログラムをメインCPUが実行することにより実現される。
以下、図3〜図11に示すフローチャート等を参照して、プリンタシステム1における印刷処理について説明する。各工程(符号が付与されていない部分的な工程を含む)は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
(ホスト装置10における処理)
プリンタドライバ手段16は、外部又はホスト装置10上で動作しているアプリケーションプログラムから印刷要求を受け付けると、プリンタ装置20(プリンタコントローラ26)に対して印刷指示コマンドを送信するとともに、RIP手段などに対して処理の開始を指示する。
RIP手段は、処理開始の指示を受け付けると、アプリケーションプログラムから受け取った、ポストスクリプト等の所定のプリンタ制御言語により記述された印刷対象データに基づいて、ラスタイメージを生成する。なお、アプリケーションプログラム等からラスタイメージの形式で印刷対象データを受け取ることができる場合は、RIP手段による処理は省略できる。
画像処理手段は、前記生成されたラスタイメージに対して所定の画像処理(スクリーン処理など)を施し、印刷イメージを生成して、RAMの所定領域に格納する。
圧縮制御手段17は、前記生成された印刷イメージを構成する主走査方向のライン(以下、単に「走査ライン」と呼ぶ)を副走査方向の順に選択する(図3:ステップS100)。なお、主走査方向、副走査方向は、プリンタ装置20における走査を基準として定めるものとする。
次に、圧縮制御手段17は、前記選択した走査ラインを、走査ラインの方向と垂直に複数の部分領域に分割する(図3:ステップS101)。以下では、かかる部分領域を「チャンネル」と呼び、走査ライン方向における並び順、すなわち左から順にチャンネル番号を付加して各チャンネルを識別するものとする(図4参照)。なお、本実施形態では、走査ラインが左から右へ水平に走査されることを前提として、左右という概念を用いている。
次に、圧縮制御手段17は、前記選択した走査ラインにおいて各チャンネルに含まれる印刷イメージ(以下、「部分データ」と呼ぶ)の先頭位置を特定する(図3:ステップS102)。例えば、1走査ラインが2048画素である場合、1つの走査ラインをプロセッサ数に応じて均等に4つの部分領域に分割し、第1画素、第512画素、第1024画素、第1536画素をそれぞれ部分データの先頭位置として特定することが考えられる。
なお、全走査ラインに共通してチャンネルを定め、予め各チャンネルの部分データの先頭位置を特定しておけば、ステップS101〜102は省略することができる。
次に、圧縮制御手段17は、前記複数のチャンネルのそれぞれにプロセッサ11〜14のうち少なくとも1つを割り当てる(図3:ステップS103)。具体的には、チャンネル1にはプロセッサ11、チャンネル2にはプロセッサ12というように、チャンネルとプロセッサの組み合わせを固定して割り当てるものとする。
次に、圧縮制御手段17は、前記割り当てたプロセッサが新たなデータを処理できるかどうかを判断し、処理できる場合には、対応する部分データの先頭位置を前記割り当てたプロセッサに渡し、該部分データの読み出しを指示する(図3:ステップS104)。
ここで、プロセッサが新たなデータを処理できる場合とは、該プロセッサが次の処理結果を新たに書き込むことができる場合である。例えば、処理結果を書き込む領域として、プロセッサ11〜14(チャンネル1〜4)に対して図13に示すように出力バッファの一部領域をそれぞれ割り当てる場合、該出力バッファの割当領域に空きがあるか、又は割当領域に既に書き込まれた処理結果について転送手段18による転送が終了し上書きすることができるかどうかに基づいて、新たなデータを処理できるかどうかを判断すればよい。
なお、出力バッファは、高速にバースト転送を行うことができるSDRAMにより構成することが望ましい。後述するように、出力バッファに書き込まれた処理結果(圧縮データ)は転送手段18によってバースト転送されるからである。
次に、圧縮制御手段17は、前記生成された印刷イメージを構成する走査ラインのうち未選択の走査ラインがある場合は、ステップS100に戻る(図3:ステップS105)。
並列処理ユニット15の各プロセッサ11〜14は、圧縮制御手段17から部分データの先頭位置及び読み出し指示を受け付けると(図5:ステップS200:YES)、前記生成した印刷イメージを格納したRAMの所定領域から該先頭位置に基づいて部分データを読み出す(図5:ステップS201)。
次に、前記読み出した部分データに対して所定の圧縮処理を実行して圧縮部分データを生成する(図5:ステップS202)。このとき、圧縮部分データの境界が検出できるように、圧縮部分データの終端に(又は最初に)所定の境界情報を追加しておく。なお、所定の圧縮処理としては、設計に応じて従来の種々の圧縮アルゴリズムを採用することができ、例えば印刷イメージが2値データの場合であれば、JBIG(Joint Bi−level Image Experts Group)のアルゴリズムを採用することが考えられる。
そして、前記生成した圧縮部分データを出力バッファの割り当てられた一部領域に書き込む(図5:ステップS203)。なお、図13に示すように各プロセッサに出力バッファの一部領域を割り当てる場合、各プロセッサが次に書き込みを行うアドレス(カレントアドレス)を参照できるように、例えばプロセッサごとにカレントアドレスを格納するカウンタを設け、書き込んだ容量(バイト数)に応じてカウンタを加算する構成を採用することが考えられる。
転送手段18は、前記生成された印刷イメージについて、出力バッファに未転送のデータがあるかどうかを判断する(図6:ステップS300)。そして、未転送のデータがない(転送が終了している)場合は、処理を終了する。
一方、未転送のデータがある場合、転送手段18は、例えばプリンタ装置20(プリンタコントローラ26)との通信結果に基づいて、プリンタ装置20(プリンタコントローラ26)が圧縮部分データを受信可能であるかどうかを判断する(図6:ステップS301)。
そして、受信可能である場合、各チャンネルにつき同容量の部分圧縮データを含むデータセットを単位としてバースト転送を行うように、出力バッファからプリンタ装置20(プリンタコントローラ26)へのデータ転送を制御する(図6:ステップS302)。
なお、バースト転送を行うデータセットのサイズは設計に応じて定めることができるが、本実施形態では、図14に示すように、各チャンネルにつき1バイト分の部分圧縮データを含む計4バイトのデータセットを単位として、バースト転送を行うものする。このようにバースト転送を行う場合、図13〜図15を参照して既に説明したように、バースト転送されるデータセットには複数の走査ラインに関する圧縮部分データが含まれる可能性がある。
(プリンタ装置20における処理)
プリンタコントローラ26は、受信手段が印刷指示コマンドを受信した場合、エンジン制御手段により動力機構部を制御して印刷の準備を整える。また、受信手段がバースト転送されたデータセットを受信した場合、これをデータ受信バッファに格納するとともに、データ順序調整手段27に対してデータ受信バッファから中間バッファへの転送処理の開始を指示する。
ここで、データ受信バッファは、上述したようにホスト装置10から各チャンネルにつき1バイトの部分圧縮データを含む計4バイトのデータセットを単位としてバースト転送されてくるデータを格納するバッファとなることから、例えばRAM上に図7に示すように4バイトのデータセットを複数セット格納できるようなリングバッファとして構成することが考えられる。図7に示す例では、データ受信バッファは16のデータセットをサイクリックに格納できるように構成されている。このようにデータ受信バッファを構成した場合、チャンネル1の部分圧縮データはデータ受信バッファのアドレス00〜15に連続して格納され、チャンネル2の部分圧縮データはアドレス16〜31に連続して格納されることとなり、チャンネルごとに部分圧縮データにアクセスすることが容易となる。
また、中間バッファは、並列処理ユニット25の各プロセッサが中間バッファの常に同じ場所を特定して部分圧縮データを読み出せるように、例えばRAM上にFIFOタイプのバッファとして(又はFIFOタイプメモリにより)構成する。
データ順序調整手段27は、転送処理開始の指示を受け付けると、チャンネルごとに用意される転送フラグに初期値として”未終了”をセットする(図8:ステップS400)。かかる転送フラグは、後述するように、各チャンネルにおいて1つの走査ラインに関する圧縮部分データの転送が終了した場合に”終了”に変更されることになる。
次に、データ順序調整手段27は、チャンネルの並び順にチャンネルを選択する(図8:ステップS401)。そして、前記選択したチャンネルの転送フラグをチェックし、転送フラグが”終了”となっている場合は、S401に戻る(図8:ステップS402)。
一方、転送フラグが”未終了”となっている場合は、データ順序調整手段27は、前記選択したチャンネルについて、データ受信バッファに格納された順に、該チャンネルの未転送の部分圧縮データから1バイト分のデータを選択する(図8:ステップS403)。
次に、データ順序調整手段27は、前記選択した1バイトデータを中間バッファに転送するとともに(図8:ステップS404)、前記選択した1バイトデータが部分圧縮データの終端を示す情報を含んでいる場合は、前記選択したチャンネルの転送フラグを”終了”に変更する(図8:ステップS405)。
次に、データ順序調整手段27は、転送フラグが”未終了”となっているチャンネルがある場合(図8:ステップS406:Yes)、すなわち1つの走査ラインについて全チャンネルの部分圧縮データの転送が終了していない場合、次のチャンネルを選択すべく、S401に戻る。
一方、全てのチャンネルの転送フラグが”終了”となっている場合(図8:ステップS406:No)、データ順序調整手段27は、データ受信バッファに転送すべきデータ(未転送の走査ライン圧縮データ)が残っているかどうかを判断する(図8:ステップS407)。そして、残っている場合は、次の走査ラインについて転送処理をすべく、S400に戻る。
このように処理を構成した場合、全チャンネルの転送フラグが”終了”となるまでに転送される一連のデータは、1つの走査ラインに関する圧縮部分データに属することとなる。更に、(a)データ受信バッファにはバースト転送された順にデータセットが格納される点、(b)チャンネルごとにみた場合、バースト転送は圧縮された順序で(すなわち走査ラインの並び順に)行われる点を合わせて考えると、上記処理によって、中間バッファには、走査ラインの並び順が維持された状態で、1つの走査ラインに属する圧縮部分データが連続して、格納されることになる(図9参照)。
伸長制御手段28は、中間バッファに圧縮部分データが格納されている場合、中間バッファから次に読み出される予定の圧縮部分データ(1バイトデータ)に対して、プロセッサ21〜24のうち少なくとも1つを割り当てる(図10:ステップS500)。
具体的には、チャンネル1の圧縮部分データにはプロセッサ21、チャンネル2の圧縮部分データにはプロセッサ22というように、チャンネルとプロセッサの組み合わせを固定して割り当てる。
ここで、各チャンネルの圧縮部分データのサイズは異なり得ることから、中間バッファには必ずしもチャンネルの並び順どおりに1バイトデータが格納されているとは限らない。言い換えると、チャンネルの並び順は少なくとも維持されているが、チャンネルの並びが連続しているとは必ずしも限らない(例えば、図9に示す例では、チャンネル2の7バイト目のデータの次には、チャンネル4の7バイト目のデータが格納される)。従って、中間バッファから読み出した1バイトデータをサイクリックにプロセッサに割り当てたのでは、上記のような固定した割り当ては実現できない。
そこで、プロセッサごとに、該プロセッサに1バイトデータの割り当てを行うかどうかを示す割当フラグを用意し、1つの走査ラインについて処理を開始するごとに初期値として”割当可”をセットしておく。そして、後述するように、各プロセッサの処理について、自己に割り当てられた1バイトデータが圧縮部分データの終端を示す情報を含んでいる場合は、それ以上1バイトデータの割り当てが行われないように自己の割当フラグを”割当不可”に変更するよう構成しておく。このように構成した場合、伸長制御手段28は、中間バッファから読み出した1バイトデータを、割当フラグが”割当可”となっているプロセッサにサイクリックに割り当てれば、上記の固定した割り当てを実現することができる。
次に、伸長制御手段28は、前記割り当てたプロセッサが新たなデータを処理できるかどうかを判断し、可能な場合にはデータ受信バッファからの圧縮部分データの読み出しを指示する(図10:ステップS501)。なお、プロセッサが新たなデータを処理できるかどうかについては、圧縮制御手段17と同様に判断さればよい。
次に、伸長制御手段28は、まだ伸長していない圧縮部分データがある場合はステップS500に戻る(図10:ステップS502)。
並列処理ユニット25の各プロセッサ21〜24は、伸長制御手段28から圧縮部分データの読み出し指示を受け付けると(図11:ステップS600:YES)、中間バッファの読み出し位置にある1バイトデータを読み出す(図11:ステップS601)。
次に、各プロセッサ21〜24は、前記読み出した1バイトデータに対して所定の伸長処理を実行して、対応する部分データの一部を生成し(図11:ステップS602)、プリンタコントローラ26の出力バッファに格納する(図11:ステップS603)。なお、伸長処理は、ホスト装置10の並列処理ユニット15において採用した圧縮アルゴリズムに対応する伸長処理を採用する必要がある。
次に、各プロセッサ21〜24は、前記読み出した1バイトデータが圧縮部分データの終端を示す情報を含んでいない場合は(図11:ステップS604:Yes)、続けて伸長処理を実行すべく、S600に戻る。
一方、終端を示す情報を含んでいる場合は(図11:ステップS604:No)、自己の割当フラグを”割当不可”に変更するとともに、走査ライン単位での同期を実現すべく、処理を停止する(図11:ステップS605)。本実施形態では、中間バッファにおいて走査ラインの並び順が維持されているため、このように各プロセッサが1つの走査ラインに関する圧縮部分データの伸長処理が終わったところで処理を停止する構成(すなわち走査ライン単位で同期して動作する構成)としても、並列に伸長処理を行うことが可能となる。
転送手段29は、印刷に用いられる順序でデータを送信すべく、副走査方向の順に走査ラインを選択する(図12:ステップS700)。
次に、転送手段29は、前記選択した走査ラインについて、1走査ライン分の部分データが全て伸長された状態で出力バッファに格納されているかどうかを判断する(図12:ステップS701)。
そして、全て伸長された状態で格納されていると判断した場合に、印刷に用いられる順序でデータを送信すべく、前記選択した走査ラインについて出力バッファから部分データを読み出して印刷エンジンへ転送する(図12:ステップS702)。
その後、転送手段29は、前記生成された印刷イメージについて未選択の走査ラインがある場合は、S700に戻る(図12:ステップS703)。
本実施形態の構成によれば、1つの走査ラインを構成する各チャンネルに対して(すなわち、各部分データに対して)並列に圧縮処理が実行されるため、個々の走査ラインについての圧縮処理時間を短縮することができる。特に、最初の1走査ラインの圧縮処理時間が短縮されることで、印刷イメージの圧縮処理を開始してから最初の走査ラインの圧縮処理が終了し、その処理結果がプリンタ装置20(プリンタコントローラ26)へ転送されるまでの時間を短縮すること可能となり、立ち上がりの早い圧縮処理(ひいては印刷処理)を実現することができる。
同様に、1つの走査ラインを構成する各チャンネルに対して(すなわち、各圧縮部分データに対して)並列に伸長処理が実行されるため、個々の走査ラインについての伸長処理時間を短縮することができる。特に、最初の1走査ラインの伸長処理時間が短縮されることで、圧縮された印刷イメージの伸長処理を開始してから最初の走査ラインについて伸長処理が終了し、その処理結果が印刷エンジンへ転送されるまでの時間を短縮すること可能となり、立ち上がりの早い伸長処理(ひいては印刷処理)を実現することができる。
更に、プリンタコントローラ26において、バースト転送された圧縮部分データを格納するデータ受信バッファから、並列処理が可能な順序で、すなわち走査ラインの並び順を維持した順序で、圧縮部分データを読み出して中間バッファに格納し、かかる中間バッファから並列伸長処理を実行する各プロセッサに圧縮部分データを供給する構成としているため、バースト転送された圧縮部分データを受け取る構成と、FIFOタイプの中間バッファから圧縮部分データを読み出して並列に伸長する構成とを両立させた上で、走査ライン単位で同期させつつ高速に並列処理を実行できる枠組みを提供することができる。その結果、一定速度で走査ライン単位の印刷データをエンジンに供給し続ける必要があるレーザプリンタ等に対してもリアルタイムに対応することができる。
(その他)
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、本発明は、イメージを圧縮/伸長するシステムであれば、プリンタシステム以外に対しても適用することができる。
また例えば、上記実施形態では、プリンタ装置20が並列処理ユニット25、プリンタコントローラ26を備える構成としているが、本発明は必ずしもこのような構成に限られない。例えば並列処理ユニット25やプリンタコントローラ26をプリンタ装置20に接続可能な外部装置として構成することも考えられる。更には、並列処理ユニット25やプリンタコントローラ26を例えばPCIバス等の規格によりホスト装置10に接続可能な装置として構成してもよい。並列処理ユニット25をホスト装置10に接続する構成の場合、ホスト装置10のメインCPU等によってプリンタコントローラ26の各機能を実現する構成としてもよい。
また例えば、上記実施形態では、1走査ラインをプロセッサ数に応じて均等に部分領域に分割する構成について説明したが、例えばプロセッサのスペック等に応じて割り当てる部分領域の大小を変えるなど、必ずしも均等に分割しなくてもよい。また、部分領域の分割数(チャンネル数)は、必ずしもプロセッサ数と等しくなくてもよい。
また例えば、上記実施形態では、チャンネルとプロセッサの組み合わせを固定して割り当てる構成について説明したが、例えば、処理が終了したプロセッサを次のチャンネルに割り当てるように構成してもよい。この場合、走査ラインごとにプロセッサとチャンネルの対応関係が異なる可能性がある。なお、並列処理ユニット15、25のプロセッサのみならず、メインCPUに対してもチャンネルを割り当てて、並列処理を実行する構成としてもよい。
また例えば、上記実施形態では、プロセッサ11〜14がRAMから部分データを読み出す構成について説明としたが、例えばホスト装置10がRAMからプロセッサ11〜14へ部分データを転送する手段(例えば、DMA転送手段)を備える場合は、圧縮制御手段は該手段に対して指示を行えばよい。この場合、プロセッサ11〜14は該手段からの転送を受けて処理を実行することになる。同様に、例えばプリンタ装置20がデータ受信バッファからプロセッサ21〜24へ圧縮部分データを転送する手段(例えば、DMA転送手段)を備える場合は、伸長制御手段は該手段に対して指示を行えばよく、プロセッサ21〜24は該手段からの転送を受けて処理を実行することになる。
また例えば、上記実施形態では、印刷イメージの全走査ラインについて並列処理を行う構成について説明したが、印刷イメージを構成する少なくとも1つの走査ラインについて本発明を適用すれば、該走査ラインについて圧縮処理時間/伸長処理時間の短縮という効果を得ることができる。
また例えば、上記実施形態では、データ順序調整手段27がデータ受信バッファから1バイト単位でデータを読み出し中間バッファに転送する構成について説明したが、例えばデータ受信バッファから1つのチャンネルの圧縮部分データを連続して読み出し(図7に示す例では、最初にアドレス00〜06のデータを読み出し、次にアドレス16〜24のデータを読み出す)、中間バッファに転送する構成としてもよい。
また例えば、上記実施形態では、転送手段29が1走査ライン分のデータが揃ったところで印刷エンジンへデータを転送する構成について説明しているが、印刷エンジンのタイプによっては、1走査ライン分のデータが揃うのを待つことなく、又は複数走査ライン分のデータが揃ったところで、印刷エンジンへデータを転送する構成としてもよい。
また例えば、上記実施形態では、圧縮処理、伸長処理、同期させる単位について、いずれも走査ラインを基準として構成しているが、本発明は必ずしもこのような構成に限られるものではない。例えば、所定数の走査ラインを含んで構成されるバンドを基準として処理を構成してもよい。この場合、原則として上記実施形態において「走査ライン」を「バンド」に置き換えて処理を構成すればよいが、いくつかの工程については当業者に自明な範囲での変更が必要となる。例えば、ステップS102については、圧縮制御手段17は、選択したバンドにおける各チャンネルの部分データの先頭位置として、バンドに含まれる走査ラインごとに先頭アドレスを特定する必要がある。なお、バンドを基準にする構成を前提とすると、上記実施形態は1走査ライン=1バンドとした場合の態様と考えることもできる。
本発明の実施形態におけるプリンタシステムのハードウェア構成を示すブロック図である。 プリンタドライバ手段16、プリンタコントローラ26の機能構成図を示すブロック図である。 圧縮制御手段17の処理内容を示すフローチャートである。 チャンネルを説明するための図である。 並列処理ユニット15における処理内容を示すフローチャートである。 送手段18における処理内容を示すフローチャートである。 プリンタコントローラ26におけるデータ受信バッファを説明するための図である。 データ順序調整手段27の処理内容を示すフローチャートである。 本実施形態において、バースト転送されたデータセットが中間バッファに格納される様子を示す図である。 伸長制御手段28の処理内容を示すフローチャートである。 並列処理ユニット25における処理内容を示すフローチャートである。 転送手段29の処理内容を示すフローチャートである。 ホスト装置10(圧縮側)における出力バッファを説明するための図である。 バースト転送される状況を説明するための図である。 従来技術において、バースト転送されたデータセットがFIFOメモリに格納される様子を示す図である。
符号の説明
1 プリンタシステム、10 ホスト装置、 11〜14 並列処理用プロセッサ、 15 並列処理ユニット、 16 プリンタドライバ手段、 17 圧縮制御手段、 18 転送手段、 20 プリンタ装置、 21〜24 並列処理用プロセッサ、 25 並列処理ユニット、 26 プリンタコントローラ、 27 データ順序調整手段、 28 伸長制御手段、 29 転送手段

Claims (5)

  1. イメージを構成する走査ライン(又はバンド)について、走査ラインの方向と垂直に複数の部分領域に分割した場合の、前記部分領域ごとに圧縮され前記部分領域ごとに容量が異なる圧縮データを対象として並列に伸長する画像伸長装置であって、
    前記部分領域ごとに圧縮され前記部分領域ごとに容量が異なる圧縮データを対象に、各部分領域につき同容量の圧縮データを含むデータセットを単位としてバースト転送されたデータを格納する第1のメモリと
    FIFOタイプの第2のメモリと、
    前記第1のメモリにバースト転送されたデータセットに複数の走査ラインに関する圧縮データが含まれる場合に、前記第1のメモリから、前記部分領域の並びは維持されないが、走査ライン(又はバンド)の並び順と前記部分領域の並び順が維持されるように、各部分領域の圧縮データを読み出して、前記FIFOタイプの第2のメモリに転送する手段と、
    前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てる手段と、
    各プロセッサが前記FIFOタイプの第2のメモリから自己が割り当てられた部分領域の圧縮データを読み出して、自己が割り当てられた部分領域の圧縮データの伸長処理が1の走査ラインに関して終わったところで伸長処理を停止することにより、走査ライン(又はバンド)単位で同期して並列に伸長処理を実行する並列プロセッサユニットと、を備えることを特徴とする画像伸長装置。
  2. 請求項1記載の画像伸長装置を備えたプリンタ装置。
  3. イメージ圧縮部及びイメージ伸長部を含んで構成され、それぞれが複数のプロセッサを用いて並列に画像処理を行う機能を備える画像処理システムであって、
    イメージ圧縮部は、
    イメージを構成する走査ライン(又はバンド)について、走査ラインの方向と垂直に複数の部分領域に分割した場合の、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行い、前記部分領域ごとに圧縮され前記部分領域ごとに容量が異なる圧縮データを対象に、各部分領域につき同容量の圧縮データを含むデータセットを単位としてイメージ伸長部へバースト転送し、
    イメージ伸長部は、
    イメージ圧縮部からバースト転送されたデータを受信して第1のメモリに格納し、前記第1のメモリにバースト転送されたデータセットに複数の走査ラインに関する圧縮データが含まれる場合に、前記第1のメモリから、前記部分領域の並びは維持されないが、走査ライン(又はバンド)の並び順と前記部分領域の並び順が維持されるように、各部分領域の圧縮データを読み出してFIFOタイプの第2のメモリに転送し、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて、各プロセッサが前記FIFOタイプの第2のメモリから自己が割り当てられた部分領域の圧縮データを読み出して、自己が割り当てられた部分領域の圧縮データの伸長処理が1の走査ラインに関して終わったところで伸長処理を停止することにより、走査ライン(又はバンド)単位で同期して並列に画像伸長処理を行うように制御したことを特徴とする画像処理システム。
  4. イメージを構成する走査ライン(又はバンド)について、走査ラインの方向と垂直に複数の部分領域に分割した場合の、前記部分領域ごとに圧縮され前記部分領域ごとに容量が異なる圧縮データを対象として、複数のプロセッサを用いて並列に伸長する画像伸長方法であって、
    前記部分領域ごとに圧縮され前記部分領域ごとに容量が異なる圧縮データを対象に、各部分領域につき同容量の圧縮データを含むデータセットを単位としてバースト転送されたデータを受信して第1のメモリに格納する工程と、
    前記第1のメモリにバースト転送されたデータセットに複数の走査ラインに関する圧縮データが含まれる場合に、前記第1のメモリから、前記部分領域の並びは維持されないが、走査ライン(又はバンド)の並び順と前記部分領域の並び順が維持されるように、各部分領域の圧縮データを読み出してFIFOタイプの第2のメモリに転送する工程と、
    前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて、各プロセッサが前記FIFOタイプの第2のメモリから自己が割り当てられた部分領域の圧縮データを読み出して、自己が割り当てられた部分領域の圧縮データの伸長処理が1の走査ラインに関して終わったところで伸長処理を停止することにより、走査ライン(又はバンド)単位で同期して並列に画像伸長処理を行うように制御する工程と、を備えることを特徴とする画像伸長方法。
  5. 請求項4記載の画像伸長方法をコンピュータで実行させるためのプログラム。
JP2003379008A 2003-10-01 2003-11-07 画像伸長装置及びその方法、画像処理システム Expired - Fee Related JP4182428B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003379008A JP4182428B2 (ja) 2003-11-07 2003-11-07 画像伸長装置及びその方法、画像処理システム
US10/953,415 US7580151B2 (en) 2003-10-01 2004-09-30 Image processing system and method, printing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003379008A JP4182428B2 (ja) 2003-11-07 2003-11-07 画像伸長装置及びその方法、画像処理システム

Publications (2)

Publication Number Publication Date
JP2005142963A JP2005142963A (ja) 2005-06-02
JP4182428B2 true JP4182428B2 (ja) 2008-11-19

Family

ID=34689225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003379008A Expired - Fee Related JP4182428B2 (ja) 2003-10-01 2003-11-07 画像伸長装置及びその方法、画像処理システム

Country Status (1)

Country Link
JP (1) JP4182428B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100636245B1 (ko) 2005-08-31 2006-10-19 삼성전자주식회사 엔진 프로세서와 기본 프로세서를 갖는 칩이 마련된화상형성장치

Also Published As

Publication number Publication date
JP2005142963A (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
US20050168770A1 (en) Image processing system and method, printing system
JP3660154B2 (ja) 印刷用画像処理装置
US6226095B1 (en) Image processing apparatus, method, and system
JP6655963B2 (ja) 画像処理装置、画像処理装置の制御方法。
JP4200884B2 (ja) 画像伸長装置及びその方法、画像処理システム
JP4182428B2 (ja) 画像伸長装置及びその方法、画像処理システム
JP6772020B2 (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP4389199B2 (ja) プリンタシステム
JP5233608B2 (ja) 画像形成装置、画像データ転送方法、及びプログラム
JP4345055B2 (ja) 画像処理装置及びその方法、プリンタシステム
JP6544905B2 (ja) 画像処理装置、画像処理方法、プログラム
JP3655457B2 (ja) プリンタ制御装置
JP3757587B2 (ja) 画像処理装置および画像出力システム並びに画像処理方法
JPH10202962A (ja) 印字データ処理装置及び入力データ作成装置
JP2002067399A (ja) 印刷制御装置
JP5093576B2 (ja) 印刷制御装置と画像形成システム
JP2000137587A (ja) 印刷制御装置及び方法
JP5205317B2 (ja) 画像処理装置
JPH10208031A (ja) 画像処理装置
JP5648301B2 (ja) データ転送システム、画像形成装置、データ転送方法およびプログラム
JP4369137B2 (ja) 印刷用画像処理装置
JP2004134962A (ja) 画像圧縮方法
JP2004268553A (ja) 印刷装置
JPH0952392A (ja) 画像出力装置
JP2005244748A (ja) 画像処理方法及び画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080717

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080820

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

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees