JP2006260477A - パイプライン画像処理装置、画像処理方法及びプログラム - Google Patents
パイプライン画像処理装置、画像処理方法及びプログラム Download PDFInfo
- Publication number
- JP2006260477A JP2006260477A JP2005080520A JP2005080520A JP2006260477A JP 2006260477 A JP2006260477 A JP 2006260477A JP 2005080520 A JP2005080520 A JP 2005080520A JP 2005080520 A JP2005080520 A JP 2005080520A JP 2006260477 A JP2006260477 A JP 2006260477A
- Authority
- JP
- Japan
- Prior art keywords
- data
- image processing
- image
- output
- pipeline
- 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.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
【課題】 メモリ資源を効率的に使用することができる画像処理装置、画像処理方法及びプログラムを提供する。
【解決手段】 パイプライン状に接続された複数の画像処理手段を備えるパイプライン画像処理装置において、圧縮処理部22は、該圧縮処理部22への入力データに対して画像圧縮処理を施して、処理結果データを生成する処理結果データ生成手段と、処理結果データのデータサイズが出力バッファのサイズよりも大きい場合に、該処理結果データを複数に分割して前記出力バッファのサイズの出力データを複数生成する出力データ生成手段と、を備える。
【選択図】 図2
【解決手段】 パイプライン状に接続された複数の画像処理手段を備えるパイプライン画像処理装置において、圧縮処理部22は、該圧縮処理部22への入力データに対して画像圧縮処理を施して、処理結果データを生成する処理結果データ生成手段と、処理結果データのデータサイズが出力バッファのサイズよりも大きい場合に、該処理結果データを複数に分割して前記出力バッファのサイズの出力データを複数生成する出力データ生成手段と、を備える。
【選択図】 図2
Description
本発明はパイプライン画像処理装置、画像処理方法及びプログラムに関し、複数の画像処理モジュールの組み合わせにより所期の画像処理機能を提供する画像処理装置に関する。この画像処理機能は、例えば文書エディタ、描画ツール、画像伝送装置、プリンタ等、デジタル画像を取り扱う様々なシステムにおいて利用される。
画像処理装置、画像入力が可能なDTP(デスクトップ・パブリッシング)システム、画像出力が可能なプリントシステム等では、処理対象となる画像に対して、例えば拡大・縮小、回転、アフィン変換、色変換、フィルタ、合成等の各種の画像処理が行われる。これらの画像処理を行う場合、入力画像の属性、処理内容、手順、パラメータ等が固定されていれば、専用のハードウェアを用いて処理することが可能である。しかし、例えば色空間や画素当たりのビット数が異なる様々な画像が入力される場合や、処理内容、手順、パラメータ等が様々に変更される場合には、より柔軟性のある構成が必要となる。
このような要求を満たすため、例えば特開平5−260373号公報や特開平7−105021号公報には、プログラマブルなモジュールをパイプライン形態やDAG(Directed Acyclic Graph:有向非循環グラフ)形態に接続して、柔軟に所望の処理を行う例が開示されている。
前者である特開平5−260373号公報に記載された発明では、複数のプログラマブル演算処理部の各演算処理内容と、ネットワーク部による各プログラマブル演算処理部の接続形態とを、ホストコントロール手段を通じて外部から自在に設定できるように構成するようにしている。これにより、高速かつ高度な演算処理が可能で、機能変更、系統変更に対する自由度が高いデジタル映像信号処理装置の提供を目指している。
一方、後者である特開平7−105021号公報では、必要な機能モジュールを所望の順番でパイプライン状に接続し、初期化し、処理を行うことで、柔軟に画像処理を行う発明が提案されている。この方式は、例えばUNIX(登録商標)等のオペレーティングシステムで用いられている単一プロセッサによる多重処理パイプラインのシミュレーション方式を画像処理等の分野に応用したものであり、特に画像処理においては、1回の処理単位を例えば画像の1ラインのように画像の一部に限定することにより、各処理モジュールが処理用に保持するメモリ領域を極めて少なくすることを可能としている。その結果、少ないメモリ容量で複雑な処理を実行できる、コストの低い画像処理装置を提供することが可能となったり、仮想記憶をサポートするオペレーティングシステム上で動作させる場合において、メモリ不足によるスワップアウトを最小限に抑えて、高速に処理を実行することとなったりする。
しかしながら、1回の処理単位を画像の1ラインの様に限定したとしても、扱う画像データの画素数が多く(例えば600dpi、A0サイズのRGB画像等)、さらにその画像データを高倍率に拡大する場合等を想定すると、非常に膨大なメモリ領域を必要とすることになり、ハードウェアで実現する場合には何らかの制限が生じる。
また、ロウ(Raw)画像(画素毎に色情報を持つデータ形式により記述された画像)のままで処理を行う場合には、処理後の画像データのバイト数は容易に求められるので、処理結果を格納するために必要なメモリ領域を予め確保することは可能である。しかし、圧縮処理を行う場合には、処理後のデータ量は圧縮処理後でないと分からないので、処理結果を格納するために必要なメモリ領域のサイズは、一般に、各圧縮処理方式の最悪値に基づいて確保される。この場合、膨大なメモリを必要とする。しかし、実際には確保されたバッファの一部を使用する場合が殆どであり、リソースの無駄が発生していた。
本発明は上記課題に鑑みてなされたものであり、その目的は、メモリ資源を効率的に使用することができる画像処理装置、画像処理方法及びプログラムを提供することにある。
上記課題を解決するために、本発明に係るパイプライン画像処理装置は、パイプライン状に接続された複数の画像処理手段を備えるパイプライン画像処理装置において、前記画像処理手段のうち少なくとも1つは、該画像処理手段への入力データに対して所定の画像処理を施して、処理結果データを生成する処理結果データ生成手段と、前記処理結果データのデータサイズが所定のデータサイズよりも大きい場合に、前記処理結果データを複数に分割して前記所定のデータサイズの出力データを複数生成する出力データ生成手段と、を備えることを特徴とする。
また、本発明に係る画像処理方法は、パイプライン状に接続された複数の画像処理手段を用いる画像処理方法であって、前記画像処理手段のうち少なくとも1つに、該画像処理手段への入力データに対して所定の画像処理を施して、処理結果データを生成する処理結果データ生成ステップと、前記処理結果データのデータサイズが所定のデータサイズよりも大きい場合に、前記処理結果データを複数に分割して前記所定のデータサイズの出力データを複数生成する出力データ生成ステップと、を実行させることを特徴とする。
また、本発明に係るプログラムは、パイプライン状に接続された複数の画像処理手段を備えるパイプライン画像処理装置としてコンピュータを機能させるためのプログラムであって、前記画像処理手段のうち少なくとも1つは、該画像処理手段への入力データに対して所定の画像処理を施して、処理結果データを生成する処理結果データ生成手段と、前記処理結果データのデータサイズが所定のデータサイズよりも大きい場合に、前記処理結果データを複数に分割して前記所定のデータサイズの出力データを複数生成する出力データ生成手段と、を備えることを特徴とする。
本発明では、所定サイズのバッファが確保され、処理結果データのサイズが前記所定サイズを超えた場合には、該所定サイズに収まるようにデータを分割する。このため、メモリ資源を効率的に使用することができ、その結果、豊富なメモリ資源を必要としない画像処理を実現することができる。
本発明の一態様では、前記画像処理手段のうち少なくとも1つは、前記入力データのうち前記所定の画像処理を未だ施していない部分を特定する入力位置ポインタを記憶する入力位置ポインタ記憶手段をさらに備える。こうすれば、所定の画像処理を未だ施していない入力データの部分を確実に把握することができる。
また、本発明の一態様では、前記画像処理手段のうち少なくとも1つは、前記出力データ生成手段により既に生成された前記出力データの部分を特定する出力位置ポインタを記憶する出力位置ポインタ記憶手段をさらに備える。こうすれば、既に生成された出力データの部分を確実に把握することができる。特に、上記入力位置ポインタ記憶手段を備えるようにしている場合には、入力位置ポインタと出力位置ポインタとを用いて、処理結果データの分割の要否を容易に判断することができる。
また、本発明の一態様では、前記画像処理手段のうち少なくとも1つは、前記出力データ生成手段による前記処理結果データの分割の有無を示す分割有無データを後段に出力する分割有無データ出力手段をさらに備える。こうすれば、後段において処理結果データの分割の有無を確実に把握することができる。
また、本発明の一態様では、前記画像処理手段のうち少なくとも1つに含まれる処理結果データ生成手段は、前記入力データを圧縮してなるデータを前記処理結果データとして生成する。こうすれば、小さなサイズのバッファを用いて、様々なサイズの圧縮済みのデータを出力することができる。
以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係るパイプライン画像処理装置のハードウェア構成例である。同図において、画像記憶部14は、例えばハードディスク記憶装置やROMにより構成されるものであり、処理対象であるデジタル化された画像データを保持する。メモリ部16は、例えばRAMにより構成されるものであり、画像記憶部14に保持された画像データを保持したり、本実施形態における各種画像処理を行うために必要となる各種変数、演算途中結果、処理パラメータ等を保持したりする。尚、画像記憶部14はメモリ部16と兼用されていてもよい。処理記憶部12は、例えばハードディスク記憶装置やROMにより構成されるものであり、画像記憶部14に保持された処理対象の画像データを処理するための処理手段である、各種の画像処理プログラム(ここでは画像入力プログラム12a及び圧縮処理プログラム12b)が格納される。処理記憶部12に格納されている各種の画像処理プログラムはメモリ部16に展開され、制御部10により実行される。なお、画像処理プログラムにより実現される機能の全部又は一部は、専用のハードウェアにより実現されてもよい。画像記憶部14に保持された画像データは、処理記憶部12に記憶された各種の画像処理プログラムにより処理され、その処理結果は画像出力部18により外部出力される。画像出力部18は、例えばLCDやCRT等の表示装置、プリンタやファクシミリや複写機等の紙媒体出力装置、ファイル記憶装置等である。さらに、制御部10は、CPUを中心に構成されるものであり、本パイプライン画像処理装置の各部を制御するものである。
尚、ここでは汎用の制御部10と、処理記憶部12に記憶される各種の画像処理プログラムと、を用いてパイプライン画像処理装置を実現するようにしたが、本パイプライン画像処理装置の機能の任意の一部又は全部をハードウェアにより実現してもよい。
ここで、処理記憶部12に記憶される各種の画像処理プログラムについて、さらに具体的に説明する。図2は、図1に示される構成を備えるパイプライン画像処理装置において、制御部10が各種の画像処理プログラムを実行することによって実現される複数の画像処理機能の関係を示す機能ブロック図である。同図に示すように、このパイプライン画像処理装置では、複数の画像処理手段、すなわち画像記憶部14、画像入力部20、圧縮処理部22、画像出力部18がパイプライン状に接続されている。そして、このうち圧縮処理部22は、特に該圧縮処理部22への入力データに対して画像圧縮処理(ランレングス法等)を施して、その処理結果データを生成する。そして、この処理結果データのデータサイズが出力バッファのサイズよりも大きい場合に、その処理結果データを複数に分割して出力バッファのサイズの出力データを複数生成するようになっている。圧縮処理部22による処理結果データは、入力データの内容に応じてサイズが変化する。本圧縮処理部22では、処理結果データのサイズが変化しても、出力データのサイズを不変とすることができるので、メモリ資源を効率的に使用することができる。
ここで、画像入力部20及び圧縮処理部22についてさらに詳細に説明する。
図3は、画像入力部20の機能的構成を示したものである。画像入力部20は、画像記憶部14に記憶された画像データを読み込み、それを圧縮処理部22に供給する機能を担うものである。このため、画像記憶部14から画像データを読み込み、後段のモジュールである圧縮処理部22に画像データを出力するための出力バッファ20bと、この画像入力処理を制御する画像入力制御部20aと、ラインカウンタ20cと、入力位置ポインタ20dと、を含んで構成されている。これらの機能は、画像入力プログラム12aが制御部10によって実行されることにより実現されている。
出力バッファ20bは、後段のモジュールである圧縮処理部22の入力バッファ22a(図4参照)と同じものであって、ここではメモリ部16の一部により実現されており、その先頭にはフラグ格納領域20eが設けられている。このフラグ格納領域20eは、出力バッファ20bに対し、所定数のラインのデータを終端まで書き終えたか否かを示すフラグが格納される。すなわち、このフラグは、後段に出力すべきデータ(ここでは所定のライン数分の画素データ)の末尾が出力バッファ20bに書き込まれた場合に「真(true)」となり、末尾が書き込まれていない場合(すなわち出力すべきデータが分割して後段に供給される場合)に「偽(false)」となる。但し、このフラグ格納領域20eは必ずしも出力バッファ20bの先頭にある必要はなく、任意の位置で構わない。また、出力バッファ20bとは別にフラグ格納領域20eをメモリ部16に設けても構わない。さらに、フラグ格納領域20eは、出力すべきデータの末尾が出力バッファ20bに書き込まれているか否かを通知するものであれば、他の通知手段で実現しても構わない。
画像入力部20のモジュール生成時(画像入力プログラム12aの起動時)には、制御部10は、画像記憶部14に保持された画像データを指定する。そして、必要な情報等を処理記憶部12から読み出し、メモリ部16上にプログラムモジュールとして画像入力部20を生成する。生成時に、画像入力部20は、画像データのサイズやビット数、色空間の種類等の各種の画像属性情報を例えば画像記憶部14から取得し、メモリ部16上に該画像属性情報を格納する。さらに、入力位置ポインタ22dとして画像データの開始位置(開始アドレス)を設定するとともに、ラインカウンタ20cを1に初期化する。
画像入力部20は、後段のモジュールである圧縮処理部22から出力要求を受けると、該モジュールに画像データを渡すようになっている。すなわち、圧縮処理部22から出力バッファ20b(入力バッファ22a)を渡されて出力要求を受けると、入力位置ポインタ20dの示すアドレスから出力バッファ20bのサイズ分の画素データをライン順に画像記憶部14から読み出して、出力バッファ20bへ格納する。そして、ラインカウンタ20cを読み込んだライン数分だけ増加させるとともに、入力位置ポインタ20dを読み込み済みの画素データに応じた値だけ進める。本実施形態では、画像入力部20は後段のモジュールから出力要求を受けた場合、所定数のラインのデータを分割することなく全て読み込み、出力バッファに書き込むこととし、フラグ格納領域20eは常に「真(true)」が格納されるものとする。なお、ここでは画像入力部20に、ラインカウンタ20c及び入力位置ポインタ20dを設けるようにしたが、これらは必要に応じて設ければよく、必須ではない。
次に図4は、圧縮処理部22の機能的構成を示したものである。圧縮処理部22は、画像入力部20から入力される画像データに対して、ランレングス法等による可変長方式の画像圧縮処理を施し、後段の画像出力部18に処理結果データ、すなわち圧縮済みのデータを供給するものである。このため、圧縮処理部22は、前段のモジュールである画像入力部20から出力される画像データを一時的に格納するための入力バッファ22aと、後段のモジュールである画像出力部18に圧縮済みの画像データを出力するための出力バッファ22cと、画像圧縮処理を制御する圧縮処理制御部22bと、入力位置ポインタ22dと、出力位置ポインタ22eと、から構成される。画像入力部20と同様に、出力バッファ22cの先頭にはフラグ格納領域22gが設けられている。このフラグ格納領域22gは、出力バッファ22cに対し、所定数のラインのデータを終端まで書き終えたか否かを示すフラグが格納される。すなわち、このフラグは、後段に出力すべきデータ(ここでは圧縮済みの画像データ)の末尾が出力バッファ22cに書き込まれた場合に「真(true)」となり、末尾が書き込まれていない場合(すなわち出力すべき圧縮済みの画像データが分割して後段に供給される場合)に「偽(false)」となる。また、入力位置ポインタ22dは、入力バッファ22aに格納されている入力データのうち、圧縮処理を未だ施していない部分を特定するデータである。また、出力位置ポインタ22eは、出力バッファ22cにおける、圧縮処理部22により既に生成された処理結果データが格納された部分を特定するデータである。
圧縮処理部22のモジュール生成時には、処理を行うために必要な情報等が処理記憶部12から読み出され、メモリ部16上にプログラムモジュールとして圧縮処理部22が生成される。生成時に、圧縮処理制御部22bは制御部10から前段のモジュールである画像入力部20への接続情報を与えられ、その情報に基づいて、画像入力部20に対して入力される画像データの属性情報を取得するための要求を出す。これにより、処理対象となる画像データの画像サイズやビット数等の画像属性情報を取得し、メモリ部16上にその処理に必要な入力バッファ22aを生成する。
後段のモジュールである画像出力部18から出力バッファ22cを渡されて出力要求を受けると、出力位置ポインタ22eを出力バッファ22cの先頭位置にセットする。そして、入力位置ポインタ22dが入力バッファ22aの終了位置を指している場合には、入力位置ポインタ22dを入力バッファ22aの先頭位置へセットするとともに、前段のモジュールである画像入力部20に対して入力バッファ22aを渡して出力要求を行う。
圧縮処理部22は、入力位置ポインタ22dが入力バッファ22aの終了位置を指していない場合には、前段のモジュールに対する出力要求は行わず、後段への出力を継続する。また、圧縮処理部22は、入力バッファ22aにおける入力位置ポインタ22dが指示する位置から画素データ毎に符号化処理を行い、その結果を出力バッファ22cにおける出力位置ポインタ22eが指示する位置に格納する。
さらに、圧縮処理部22は、入力バッファ22aのフラグ格納領域22gが「真(true)」で、かつ入力位置ポインタ22dが入力バッファ22aの終了位置を指した場合には出力バッファ22cのフラグ格納領域22gを「真(true)」とする。すなわち、前段のモジュールである画像入力部20が所定ライン数分の画像データの入力を完了し、圧縮処理部22自体も、その全てについて圧縮処理を終えている場合に、フラグ格納領域22gを「真(true)」に設定する。また、入力位置ポインタ22dが入力バッファ22aの終了位置を差していない場合に、出力位置ポインタ22eが出力バッファ22cの終了位置を指せば、出力バッファ22cのフラグ格納領域22gを「偽(false)」とし、出力バッファ22cを後段のモジュールに返す。
ここで、本実施形態に係るパイプライン画像処理装置の動作について説明する。図5乃至図7は、本実施形態に係るパイプライン画像処理装置の動作を示すフロー図である。なお、これらの図で用いられている「第1圧縮結果格納バッファ」とは、圧縮処理部22によって圧縮された画素データである、符号化データを保持するための1バイトのテンポラリバッファであり、「第2圧縮結果格納バッファ」とは、第1圧縮結果格納バッファに入りきらなかった符号化データの一部を暫定で保持するテンポラリバッファである。これらのバッファは、処理開始前に初期化されているものとする。また、圧縮処理は、ここでは1ライン毎に行われるものとする。
図5乃至図7に示すように、パイプライン画像処理装置の動作が開始される場合、まず画像出力部18が、画像記憶部14から処理対象となる画像データの画像属性情報を取得し、その情報に基づいてメモリ部16に出力バッファ22cを確保する(S101)。出力バッファ22cのサイズは、例えばハードウェア等の制約から決めたり、圧縮前の画像データの画素数から実験的に決めたりする等、任意の方法で決定してよい。出力バッファ22cの先頭には、処理結果データを終端まで書き込んだことを示すフラグを格納するフラグ格納領域22gが設けられる。その後、画像出力部18が前段のモジュールである圧縮処理部22へ出力バッファ22cのメモリ部16における先頭位置(先頭アドレス)を渡し、出力要求を行う(S102)。
この要求に応じて、圧縮処理部22は、出力位置ポインタ22eに出力バッファ22cの先頭位置をセットする(S103)。また圧縮処理部22は、入力位置ポインタ22dが入力バッファ22aの終了位置を指しているならば(S104)、次のラインを読む必要があるので、入力位置ポインタ22dを入力バッファ22aの先頭位置にリセットするとともに(S105)、画像入力部20へ入力バッファ22aのメモリ部16における先頭位置を渡し、出力要求を行う(S106)。
この要求に応じて、画像入力部20は、画像記憶部14の入力位置ポインタ20dが指示する位置から画素データを1ライン分読み込み、それを後段のモジュールである圧縮処理部22からその先頭位置が渡された出力バッファ20b(すなわち入力バッファ22a)に順に書き込む。そして、ラインカウンタ20cを1だけ加算するとともに、入力位置ポインタ20dを読み込んだライン分だけ進め、出力バッファ20bを後段に返す(S107)。一方、入力位置ポインタ22dが入力バッファ22aの終了位置を指していない場合には(S104)、S105乃至S107の処理をスキップし、S108の処理に進む。
次に、S108では、第2圧縮結果格納バッファにデータが存在するか否かを判断する(S108)。そして、データが存在すれば、第2圧縮結果格納バッファに格納されたデータを第1圧縮結果格納バッファにコピーし、第2圧縮結果格納バッファをクリアする(S109)。一方、データが存在しなければ、S109をスキップし、S110の処理に進む。
S110では、入力位置ポインタ22dが入力バッファ22aの終了位置を指しているか否かを判断する。そして、入力位置ポインタ22dが入力バッファ22aの終了位置を指していない場合、入力位置ポインタ22dが指示する、入力バッファ22aの位置に格納された画素データを符号化し(符号化後のビット数をSとする)、入力位置ポインタ22dを次の画素データへと進める(S111)。第1圧縮結果格納バッファに既に格納されたデータのビット数+Sがちょうど8ビットとなる場合(S112)、符号化データを第1圧縮結果格納バッファに追加する(S113)。
一方、S112において、第1圧縮結果格納バッファに既に格納されたデータのビット数+Sがちょうど8ビットではないと判断した場合、第1圧縮結果格納バッファに既に格納されたデータのビット数+Sが8ビットより大きいか否かを判断する(S123)。そして、大きければ、符号化データのうち必要なビット数分(第1圧縮結果格納バッファにまだ格納することができるビット数分)を第1圧縮結果格納バッファに追加し、これにより1バイトのデータを第1圧縮結果バッファに格納し、残りのデータを第2圧縮結果格納バッファへ格納する(S124)。
また、S123において、第1圧縮結果格納バッファに既に格納されたデータのビット数+Sが8ビットより大きくないと判断すると(すなわち、第1圧縮結果格納バッファに既に格納されたデータのビット数+Sが8ビット未満である場合)、符号化データを第1圧縮結果格納バッファに追加して(S122)、S110の処理に戻る。
S113又はS124の処理により、第1圧縮結果格納バッファ内のデータが1バイトになった場合、第1圧縮結果格納バッファ内のデータを出力バッファ22cの出力位置ポインタ22eが指す位置へ格納するとともに、第1圧縮結果格納バッファをクリアし、出力位置ポインタ22eを1だけ進める(S114)。
その後、出力位置ポインタ22eが出力バッファ22cの終了位置を指すか否かを判断し(S115)、出力バッファ22cの終了位置を指す場合、この時点で処理結果データの分割が行われるので、出力バッファ22cのフラグ格納領域22gを「偽(false)」として(S116)、出力バッファ22cを後段である画像出力部18に返す(S117)。一方、S115において、出力位置ポインタ22eが出力バッファ22cの終了位置を指していないと判断する場合には、S108に戻り、S108乃至S115の処理を繰り返す。
一方、S110で、入力位置ポインタ22dが入力バッファ22aの終了位置を指示していると判断する場合には、第1圧縮結果格納バッファにデータが存在するならば(S118)、第1圧縮結果格納バッファ内のデータを出力バッファ22cの出力位置ポインタ22eが指す位置に格納するとともに、第1圧縮結果格納バッファをクリアする(S119)。そして、入力バッファ22aのフラグ格納領域22gが「真(true)」であれば(S120)、1ライン分の画素データを全て処理したので、出力バッファ22cのフラグ格納領域22gに「真(true)」のフラグを格納し(S121)、S117の処理に進む。
一方、S120において、入力バッファ22aのフラグ格納領域22gに格納されたフラグの値が「真(true)」でないと判断される場合、入力バッファ22aに格納されている全てのデータに対して圧縮処理を終えたが、入力バッファ22aに格納されたデータ自体が1ラインの途中までのデータであることを示す。このため、出力バッファ22cのフラグ格納領域22gを「偽(false)」とする(S116)。
その後、出力バッファ22cを画像出力部18へ返し(S117)、画像出力部18では、前段のモジュールである圧縮処理部22から返された出力バッファ22cのフラグ格納領域22gが「真(true)」であれば(S125)、出力バッファ22c内のデータを出力後に改行して(S126)、一方、出力バッファ22cのフラグ格納領域22gが「偽(false)」である場合には、出力バッファ22c内のデータの出力後に改行は行わない(S127)。ここで改行とは、例えばデータのライン単位の終端符号を付加すること等であり、データのライン毎の区切りが分かればよく、画像データの出力形態や画像処理システムに応じたものを適宜適用することを意味する。
最後に、ラインカウンタ20cが画像データの高さに等しく、かつ出力バッファ22cのフラグ格納領域22gが「真(true)」である、との画像処理の終了条件を満足するか否かを判断する(S128)。そして、該終了条件を満足するまで、上記一連の処理を繰り返す。
以上説明したパイプライン画像処理装置によれば、圧縮処理部22において入力データに対してランレングス法等を適用した画像圧縮処理を施す。この画像圧縮処理は、入力データの内容に応じて処理結果データのサイズが変わるものであるが、本実施形態によれば、その処理結果データを分割して、複数の所定サイズの出力データを生成している。このため、圧縮処理部22の出力バッファのサイズを小さなものに固定することができ、パイプライン画像処理装置のハードウェア資源(特にメモリ資源)を有効活用することができる。
なお、本発明は上記実施形態に限定されるものではなく、種々の変形実施が可能である。例えば、以上の説明では、画像データを圧縮し、印刷や表示等の出力を行う画像処理システムに本発明を適用する例を取り上げたが、本発明は他のあらゆる画像処理システムに適用することができる。また、パイプラインの段数は上記実施形態に示すものに限らず、さらに多くの段数を備えたパイプライン画像処理システムにも、本発明を適用できるのはもちろんである。
また、複数の画像処理手段の少なくとも2つは、ネットワークを介して接続された処理装置によって構成されるものであってもよい。
10 制御部、12 処理記憶部、12a 画像入力プログラム、12b 圧縮処理プログラム、14 画像記憶部、16 メモリ部、18 画像出力部、20 画像入力部、20a 画像入力制御部、20b,22c 出力バッファ、20c ラインカウンタ、20d,22d 入力位置ポインタ、22 圧縮処理部 22a 入力バッファ、22b 圧縮処理制御部、22e 出力位置ポインタ。
Claims (7)
- パイプライン状に接続された複数の画像処理手段を備えるパイプライン画像処理装置において、
前記画像処理手段のうち少なくとも1つは、
該画像処理手段への入力データに対して所定の画像処理を施して、処理結果データを生成する処理結果データ生成手段と、
前記処理結果データのデータサイズが所定のデータサイズよりも大きい場合に、前記処理結果データを複数に分割して前記所定のデータサイズの出力データを複数生成する出力データ生成手段と、
を備えることを特徴とするパイプライン画像処理装置。 - 請求項1に記載のパイプライン画像処理装置において、
前記画像処理手段のうち少なくとも1つは、
前記入力データのうち前記所定の画像処理を未だ施していない部分を特定する入力位置ポインタを記憶する入力位置ポインタ記憶手段をさらに備える、
ことを特徴とするパイプライン画像処理装置。 - 請求項1又は2に記載のパイプライン画像処理装置において、
前記画像処理手段のうち少なくとも1つは、
前記出力データ生成手段により既に生成された前記出力データの部分を特定する出力位置ポインタを記憶する出力位置ポインタ記憶手段をさらに備える、
ことを特徴とするパイプライン画像処理装置。 - 請求項1乃至3のいずれかに記載のパイプライン画像処理装置において、
前記画像処理手段のうち少なくとも1つは、
前記出力データ生成手段による前記処理結果データの分割の有無を示す分割有無データを後段に出力する分割有無データ出力手段をさらに備える、
ことを特徴とするパイプライン画像処理装置。 - 請求項1乃至4のいずれかに記載のパイプライン画像処理装置において、
前記画像処理手段のうち少なくとも1つに含まれる処理結果データ生成手段は、前記入力データを圧縮してなるデータを前記処理結果データとして生成する、
ことを特徴とするパイプライン画像処理装置。 - パイプライン状に接続された複数の画像処理手段を用いた画像処理方法において、
前記画像処理手段のうち少なくとも1つに、
該画像処理手段への入力データに対して所定の画像処理を施して、処理結果データを生成する処理結果データ生成ステップと、
前記処理結果データのデータサイズが所定のデータサイズよりも大きい場合に、前記処理結果データを複数に分割して前記所定のデータサイズの出力データを複数生成する出力データ生成ステップと、
を実行させることを特徴とするパイプライン画像処理装置の制御方法。 - パイプライン状に接続された複数の画像処理手段を備えるパイプライン画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記画像処理手段のうち少なくとも1つは、
該画像処理手段への入力データに対して所定の画像処理を施して、処理結果データを生成する処理結果データ生成手段と、
前記処理結果データのデータサイズが所定のデータサイズよりも大きい場合に、前記処理結果データを複数に分割して前記所定のデータサイズの出力データを複数生成する出力データ生成手段と、
を備えることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005080520A JP2006260477A (ja) | 2005-03-18 | 2005-03-18 | パイプライン画像処理装置、画像処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005080520A JP2006260477A (ja) | 2005-03-18 | 2005-03-18 | パイプライン画像処理装置、画像処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006260477A true JP2006260477A (ja) | 2006-09-28 |
Family
ID=37099598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005080520A Pending JP2006260477A (ja) | 2005-03-18 | 2005-03-18 | パイプライン画像処理装置、画像処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006260477A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010519796A (ja) * | 2007-02-09 | 2010-06-03 | クゥアルコム・インコーポレイテッド | データ・チャネル情報のプログラム可能なパターンに基づく解凍及び圧縮 |
-
2005
- 2005-03-18 JP JP2005080520A patent/JP2006260477A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010519796A (ja) * | 2007-02-09 | 2010-06-03 | クゥアルコム・インコーポレイテッド | データ・チャネル情報のプログラム可能なパターンに基づく解凍及び圧縮 |
US8565519B2 (en) | 2007-02-09 | 2013-10-22 | Qualcomm Incorporated | Programmable pattern-based unpacking and packing of data channel information |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006338538A (ja) | ストリームプロセッサ | |
CN1955933A (zh) | 数据处理设备和方法 | |
JP4082051B2 (ja) | 画像処理装置および画像処理方法 | |
JP2006260477A (ja) | パイプライン画像処理装置、画像処理方法及びプログラム | |
JP2004326307A (ja) | 画像形成装置 | |
JP2008205636A (ja) | 画像処理装置、画像処理装置の画像処理方法、及びプログラム | |
JP2007074412A (ja) | 固定長圧縮画像と属性情報のパッキングデータを処理する画像処理装置 | |
JP3854790B2 (ja) | 画像処理装置及び方法及び記憶媒体 | |
JP2009282964A (ja) | 印刷データをレンダリングするシステム、方法及びコンピュータ可読媒体 | |
JP6882099B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2004299104A (ja) | イメージデータ処理装置および画像形成装置 | |
JP2008071054A (ja) | データ転送制御方法、データ処理装置及び画像処理装置 | |
JP2006285792A (ja) | 画像処理装置、画像処理方法 | |
JP2001169120A (ja) | 画像処理装置及びその方法、及び画像処理システム | |
US20040257371A1 (en) | Pipelined architecture for high speed raster image processor | |
JP5205317B2 (ja) | 画像処理装置 | |
JP5271567B2 (ja) | 画像前処理装置 | |
JP5731816B2 (ja) | 画像処理装置、画像処理方法 | |
JP2011193297A (ja) | データ処理装置およびデータ処理プログラム | |
US6804411B1 (en) | Method, system, and program for decompressing and aligning line work data from multiple objects | |
JP2008021060A (ja) | 画像処理装置およびプログラム | |
JP4857149B2 (ja) | 画像形成装置 | |
JP2004042406A (ja) | 印刷装置 | |
US7394568B1 (en) | Method, system, and logic for selecting pixel data from multiple objects | |
JP2004062779A (ja) | 画像処理装置 |