JP5487882B2 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP5487882B2
JP5487882B2 JP2009246207A JP2009246207A JP5487882B2 JP 5487882 B2 JP5487882 B2 JP 5487882B2 JP 2009246207 A JP2009246207 A JP 2009246207A JP 2009246207 A JP2009246207 A JP 2009246207A JP 5487882 B2 JP5487882 B2 JP 5487882B2
Authority
JP
Japan
Prior art keywords
image data
processing
image processing
threads
divided
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.)
Active
Application number
JP2009246207A
Other languages
English (en)
Other versions
JP2011095807A (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 JP2009246207A priority Critical patent/JP5487882B2/ja
Publication of JP2011095807A publication Critical patent/JP2011095807A/ja
Application granted granted Critical
Publication of JP5487882B2 publication Critical patent/JP5487882B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Description

本発明は、画像処理装置および画像処理方法に関する。
コンピューター内に取り付けられるデバイスとして、GPU(Graphics Processing Unit)が広く用いられている。GPUは、本来はグラフィックス処理のためのものであるが、近年になって、汎用計算に使用するための開発環境がメーカーから提供されている。このように、汎用計算にGPUを利用する技術は、GPGPU(General Purpose computing on GPU)として知られている。現在、GPGPUは、計算物理学、映像および画像の処理、データベース管理、生命工学等の分野で利用されている。
GPUは、汎用の処理装置であるCPU(中央処理装置:Central Processing Unit)に比べ、浮動小数点演算を並列かつ高速に実行することができる。すなわち、GPUは、大量のデータに並列に同じ演算を繰り返すような用途であれば、CPUに比べ非常に効率よく高速に処理を実行できる。
特開2003−198818号公報
ところで、GPUを用いて、処理の依存関係が一定方向にある処理を行う場合、メモリー容量等の制約により、入力された入力画像データに対して、全領域に対して並列に処理を行うことができない場合が存在する。その場合、処理の依存関係が一定方向にある処理にある関係上、その依存関係のある一定方向とは直交する方向に沿って、入力画像データを複数に分割し、分割された入力画像データを順番に処理して、メモリー容量等の制約に対応させる、という手法を採ることが考えられる。しかしながら、この場合には、同時に起動されるスレッド数が減ってしまうため、GPUでの処理におけるスループットが低下してしまう。
本発明に係る幾つかの態様は、デバイスのスループットを低下させずに入力画像データを処理可能な画像処理装置および画像処理方法を提供することにある。
上記の課題を解決するため、本発明の画像処理装置は、入力画像データに対する画像処理の依存関係が所定方向に存在する当該画像処理を、複数のスレッドを起動させて並列的に処理可能な画像処理装置であって、複数のスレッドを起動させて、当該スレッドにおける処理を並列的に実行可能なデバイスと、デバイスで画像処理された結果を記憶させることが可能な中間バッファーと、デバイスに画像処理させる入力画像データのデータ量を制御するホストと、を具備し、ホストは、入力画像データを、画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データを作成する処理を行い、その処理によってデバイスには分割画像データが供給され、デバイスは、分割画像データに対する画像処理を、画像処理の依存関係が存在する方向とは直交する方向に沿って複数のスレッドを起動させて並列的に実行させ、さらにデバイスは、当該デバイスで画像処理された処理結果のうち分割の境界部分に対応する処理結果を上記中間バッファーに記憶させるものである。
このように構成する場合、デバイスには、画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データが供給され、デバイスでは、この分割画像データに対して、複数のスレッドを起動させて並列的に処理を実行可能となる。そのため、メモリー容量等の制約により、入力された入力画像データに対して、全領域に対して並列に処理を行うことができない場合であっても、画像処理の依存関係が存在する方向とは直交する方向に沿って、より多くのスレッドを起動させる(スレッドを増やす)ことができる。それにより、依存関係のある一定方向とは直交する方向に沿って、入力画像データを分割する場合と比較して、デバイスの処理におけるスループットを向上させることが可能となる。また、並列的に起動させることが可能なスレッド数を多くすることが可能となるため、スレッドにおける処理を並列的に実行可能という、デバイスの特性を生かすことが可能となる。
また、本発明の他の側面は、上述の発明において、依存関係が所定方向に存在する画像処理は、スムージング処理であることが好ましい。
このように構成する場合、画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データに対して、所定方向に処理の依存関係が存在するスムージング処理が為される。そのため、依存関係のある一定方向とは直交する方向に沿って、入力画像データを分割してスムージング処理を実行する場合と比較して、入力画像データ全体のスムージング処理を高速に行うことが可能となる。
さらに、本発明の他の側面は、上述の発明において、デバイスには、中間バッファーが設けられていると共に、ホストは、デバイスから中間バッファーの記憶容量に関する情報を受け取り、この記憶容量に関する情報に基づいて、分割画像データを作成する処理を実行することが好ましい。
このように構成する場合、分割画像データのデータサイズを適切なものとすることが可能となる。
また、他の発明は、上述の発明に加えて更に、ホストには、メモリー制御部が設けられていると共に、メモリー制御部は、デバイスへの入力画像データの送出の制御により、分割画像データを作成する処理を実行することが好ましい。
このように構成する場合、メモリー制御部での、デバイスへの入力画像データの送出の制御により、デバイス側の中間バッファーに分割画像データを作成させることが可能となる。すなわち、ホスト側では、分割画像データを作成しなくても済むため、ホスト側のメモリーを消費せずに済む。
さらに、他の発明は、上述の発明に加えて更に、ホストは、入力画像データから分割画像データを作成し、当該作成された分割画像データをデバイスに送出することが好ましい。
このように構成する場合、分割画像データを作成する処理は要するものの、ホスト側からのデータの送出に際しては、連続するアドレス順に分割画像データを送出可能となる。そのため、データの送出については、高速化が可能となる。
また、他の発明の他の側面である画像処理方法は、入力画像データに対する画像処理の依存関係が所定方向に存在する当該画像処理を、複数のスレッドを起動させて並列的に処理可能な画像処理方法であって、複数のスレッドを起動させて、当該スレッドにおける処理を並列的に実行可能なデバイスと、デバイスで画像処理された結果を記憶させることが可能な中間バッファーと、デバイスに画像処理させる入力画像データのデータ量を制御するホストと、を用い、入力画像データを、画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データを作成する処理をホストに実行させ、その処理によってデバイスには分割画像データが供給され、デバイスにおける分割画像データに対する画像処理を、画像処理の依存関係が存在する方向とは直交する方向に沿って、複数のスレッドを起動させて並列的に実行させ、さらにデバイスで画像処理された処理結果のうち分割の境界部分に対応する処理結果を中間バッファーに記憶させることが好ましい。
このように構成する場合、デバイスには、画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データが供給され、デバイスでは、この分割画像データに対して、複数のスレッドを起動させて並列的に処理を実行可能となる。そのため、メモリー容量等の制約により、入力された入力画像データに対して、全領域に対して並列に処理を行うことができない場合であっても、画像処理の依存関係が存在する方向とは直交する方向に沿って、より多くのスレッドを起動させる(スレッドを増やす)ことができる。それにより、依存関係のある一定方向とは直交する方向に沿って、入力画像データを分割する場合と比較して、デバイスの処理におけるスループットを向上させることが可能となる。また、並列的に起動させることが可能なスレッド数を多くすることが可能となるため、スレッドにおける処理を並列的に実行可能という、デバイスの特性を生かすことが可能となる。
本発明の印刷装置およびコンピューターの構成を示す概略図である。 図1に示すコンピューター内のGPUの構成例を示すブロック図である。 図1のプリンターの概略構成を示す図である。 処理の依存関係がある方向およびスレッドの並列方向を示す図である。 画像データの分割のイメージおよび処理のイメージを示す図である。 従前の画像データ分割のイメージおよび処理のイメージを示す図である。
以下、本発明の一実施の形態に係る、画像処理装置を備える印刷装置10について、図1から図6に基づいて説明する。ここで、印刷装置10とは、コンピューター20と、インクジェット方式のプリンター40との組み合わせを指すものとするが、以下の説明において述べる機能を全て備えるプリンターであれば、当該プリンターを印刷装置10としても良い。また、画像処理装置は、本実施の形態では、コンピューター20が対応している。
<印刷装置の概略構成>
図1は、印刷装置10の概略構成を示す図である。図1に示すように、印刷装置10は、コンピューター20と、プリンター40とから構成されている。
これらのうち、コンピューター20は、CPU(Central Processing Unit)21と、メインメモリー22と、HDD(Hard Disk Drive)23と、インターフェース24と、バス25と、デバイス30等を具備している。
これらのうち、CPU21は、不図示のROM(Read Only Memory)やHDD23等から各種プログラムおよび各種データを読み出して、各種の演算を実行する部分である。また、かかる各種プログラムおよび各種データの読み出し後、コンピューター20の各構成が協動することによって、CPU21には、メモリー制御部21aに相当する構成が機能的に実現されている。
メモリー制御部21aは、メインメモリー22の供給データバッファー22aに記憶されている画像データ(この画像データは、請求項でいう入力画像データに対応する)を、デバイス30側に送出する際の制御を行う。
メインメモリー22は、例えばDRAM等のような各種データおよびプログラムを格納する外部メモリーである。このメインメモリー22には、例えば、後述するアプリケーションプログラム23aで作成されたRGB表色系の画像データを記憶する供給データバッファー22aと、後述するGPU31での処理後のデータを記憶する中間データバッファー22bとを有している。
HDD23は、CPU21からの要求に応じて、記録媒体であるハードディスクに記録されているデータあるいはプログラムを読み出すとともに、CPU21の演算処理の結果として発生した所定のデータを前述したハードディスクに記録することを可能としている。インターフェース24は、プリンター40に対して画像データを出力すると共に、外部入力装置および外部記憶装置から出力された信号の表現形式を適宜変換して入力させるための回路である。また、バス25は、CPU21、メインメモリー22、HDD23、デバイス30等を接続する信号の伝送路である。
このHDD23には、アプリケーションプログラム23a、ビデオドライバープログラム23b、およびプリンタードライバープログラム23cが実装されており、これらが所定のオペレーティングシステム(OS)の下で動作している。
ここで、プリンタードライバープログラム23cは、解像度変換モジュール、色変換モジュール、色変換テーブル、ハーフトーンモジュール、記録率テーブル、印刷データ生成モジュール、送信モジュール等を構成要素として有している(いずれのモジュールも図示省略)。
これらのうち、解像度変換モジュールは、RGB表色系の画像データの解像度を、プリンター40の印刷解像度に応じて適宜変換する。色変換モジュールは、RGB(Red, Green, Blue)表色系によって表現されている画像データを、色変換テーブルを参照して、CMYK(Cyan, Magenta, Yellow, Black)表色系の画像データに変換する処理を行う。ハーフトーンモジュールは、たとえば隣接する画素同士の画素値の平均を取る等の手法により、画像のエッジ部分の画素値の変動を滑らかにするスムージング処理を行う。その後、ハーフトーンモジュールは、たとえばディザ処理により、CMYK表色系によってたとえば1画素が256階調によって表現される画像データを、記録率テーブルを参照して、大、中、小の3種類のドットの組み合わせからなるビットマップデータに変換する。なお、スムージング処理は、色変換モジュール等の他のモジュールによって実行されても良い。
印刷データ生成モジュールは、ハーフトーンモジュールから出力されたビットマップデータから、各主走査時のドットの記録状態を示すラスタデータと、副走査送り量を示すデータとを含む印刷データを生成する。送信モジュールは、印刷データ生成モジュールによって生成された印刷データを、プリンター40に対して送信する。
デバイス30は、グラフィックスボードとも称呼されるが、このデバイス30には、GPU(Graphics Processing Unit)31と、中間バッファーの一例としてのグラフィックスメモリー32とが設けられている。GPU31は、CPU22から送られてきたデータに対して、後述するような処理を施し、再びCPU21側に出力する。また、グラフィックスメモリー32は、CPU21側から送られてきたデータを記憶する。
また、図1に示すように、GPU31には、スレッド制御部31aと、メモリー指令部31bとが機能的に実現されている。スレッド制御部31aは、後述するように処理用データに対する処理を、自動的にスレッド単位に分割すると共に、スレッドの後述するストリーミングプロセッサー316への割り当てをコントロールする。また、メモリー指令部31bは、後述するように、分割された分割画像データDの境界における計算結果を、グラフィックスメモリー32に保持させて、次の分割画像データDの計算において、スレッド制御部31aに受け渡すように指令する。
なお、以下の説明においては、デバイス30に対して、CPU21、メインメモリー22およびHDD23を含むものを、ホストHと称呼する。
<GPUの構成例>
図2は、GPU31の構成例を示すブロック図である。ここでは、NVIDIA社のGeForce(登録商標)8800GTXを例に説明する。このGPU31は、CUDA(Compute Unified Device Architecture;登録商標)と呼ばれる、C言語での統合開発環境に対応しているものである。従前のGPUにおいては、頂点シェーダとピクセルシェーダという、2つの機能のシェーダを備えているが、GPU31は、全てのシェーダが同じ機能を持つ、統合シェーダと呼ばれる設計思想を採用している。なお、統合シェーダは、後述するストリーミングプロセッサー316に実現されている。
このGPU31においては、GPGPU(General
Purpose computing on GPU)として知られている、GPU31の演算資源を画像処理以外の目的に応用する技術を実行可能となっている。
このGPU31は、8個のテクスチャープロセッサークラスター(TPC)310を有する。各テクスチャープロセッサークラスター310は、2つのストリーミングマルチプロセッサー(SM)311と、コンスタントキャッシュ312およびテクスチャーキャッシュ313とにより構成される。ストリーミングマルチプロセッサー311はそれぞれ、シェアードメモリ314、命令ユニット315および8個のストリーミングプロセッサー(SP)316により構成される。この構成において、ストリーミングプロセッサー316が個々の計算ユニットとなり、8×2×8=128個の処理を並列に実行することができる。ここでは市販されている特定の製品の構成例を示しているが、基本的な構成、すなわち複数の計算ユニットが並列に処理する構成は、どのGPUでも同じある。
ここで、ある処理(本実施の形態では、後述するように画像データのスムージング)をGPU31にて実行する場合、GPU31のスレッド制御部31aが、その処理を自動的にスレッド単位に分割する。ところで、分割されたスレッド数は、ストリーミングプロセッサー316の数よりも多いことが通常である。一方、1つのストリーミングマルチプロセッサー311は、8個のストリーミングプロセッサー316を有しているため、1つのストリーミングマルチプロセッサー311で物理的に並列処理できるスレッド数は8個となっている。そのため、たとえば、数千〜数万というように、非常に多くの数に分割されたスレッドは、時分割でそれぞれのストリーミングプロセッサー316に割り当てるように構成されている。
<その他の構成(プリンターの概略構成)>
続いて、プリンター40の概略構成について説明する。図3は、プリンター40の概略構成を示す図である。プリンター40は、紙送り機構50と、インク供給機構60と、ラインヘッド70と、プリンター制御部80とを具備している。
紙送り機構50は、紙送りモーター(PFモーター)51と、この紙送りモーター51からの駆動力が伝達される給紙ローラー52等を具備していて、印刷用紙等の印刷媒体Pを、供給部位から排紙側に向けて搬送可能となっている。また、インク供給機構60は、カートリッジホルダー61と、インクカートリッジ62と、インク供給路63とを具備している。カートリッジホルダー61には、インクカートリッジ62が着脱自在に装着されている。そのため、図3のプリンター40は、いわゆるオフキャリッジタイプの構成となっているが、オンキャリッジタイプのプリンターであっても良い。また、インクカートリッジ62とラインヘッド70との間には、インク供給路63が設けられていて、インクカートリッジ62からラインヘッド70にインクを供給可能としている。
また、ラインヘッド70は、印刷媒体Pよりも幅広の長さ寸法を有している。このラインヘッド70は、複数の短尺ヘッド(図示省略)が、副走査方向において交互に前後しつつ、主走査方向に沿って並ぶように配列されている。
また、プリンター制御部80は、不図示のCPU、メモリー(ROM、RAM、不揮発性メモリー等)、ASIC(Application Specific Integrated Circuit)、バス、タイマ、インターフェース等を有している。このプリンター制御部80には、各種センサーからの信号が入力されると共に、このセンサーからの信号に基づいて、プリンター制御部80は、コンピューター20側から送信されてきた印刷データに基づいて、紙送りモーター51等のモーター、およびラインヘッド70等の駆動を司る。
<本実施の形態における動作>
以上のような構成のコンピューター20において、画像処理を行う場合の一例について、以下に説明する。
CPU21の指令によって画像処理を行う場合、その画像処理の中でも、スムージング処理のような処理は、データ配列のうち、図4に示すような所定の方向に処理の依存関係が存在している。たとえば、図4においては、データ配列の横方向のデータ(0,0)〜(n,0)、(0,1)〜(n,1)、..(0,m)〜(n,m)に、処理の依存関係が存在している。
このような、所定の方向に処理の依存関係が存在しているデータ(本実施の形態では画像データ)の処理を行うのに際して、メモリー制御部21aは、GPU31のグラフィックスメモリー32の記憶容量の情報を参照して、GPU31に送出するデータ量を決定する。そして、決定されたデータ量と、依存関係のある方向とは直交する方向(図4においては縦方向)のデータ数(画素数)とから、依存関係のある方向のデータ数(画素数)が決定される。そして、画像データ全体においては、図5に示すように、幾つかの分割画像データDに分割される状態となる。
なお、かかる分割画像データDへの分割は、実際にホストH側で分割を行い、その分割が為された分割画像データDをメインメモリー22に再度記憶させるようにしても良い。また、メモリー制御部21aにおける画像データの送出の制御によって、見かけ上、このような分割画像データDへの分割を実現するようにしても良い。メモリー制御部21aにおける画像データの送出の制御により見かけ上の分割を実現する場合、メモリー制御部21aでは、データ送出に関して、依存関係のある方向における最初の先頭アドレスと、依存関係のある方向における最終アドレスまでの間のデータ数とを指定し、それを依存方向のある方向と直交する方向の全てに対して実行することによって、行うことができる。
また、CPU21aに機能的に実現されるメモリー制御部21aによらずに、GPU31側の指令によって、グラフィックスメモリー32に分割画像データを作成するようにしても良い。この場合、CPU21がGPU31に対して、スムージング処理等の所定の画像処理を指令すると、GPU31のメモリー指令部31bは、メインメモリー22の供給データバッファー22aから、グラフィックスメモリー32の所定の領域に、分割画像データDを読み込んで作成する。なお、グラフィックスメモリー32の所定の領域への分割画像データDの作成は、依存関係のある方向における最初の先頭アドレスと、依存関係のある方向における最終アドレスまでの間のデータ数とを指定し、それを依存方向のある方向と直交する方向の全てに対して実行することによって実現される。
そして、GPU31のグラフィックスメモリー32では、グリッドと呼ばれる単位毎にホストHから送出されてきた分割画像データDである処理用データが記憶させられる。その後、この処理用データに対し、スレッド制御部31aは、処理用データに対する処理を、自動的にスレッド単位に分割すると共に、スレッドの後述するストリーミングプロセッサー316への割り当てをコントロールする。そして、ストリーミングプロセッサー316では、各スレッドの処理を、順次実行する。ここでの処理は、スムージング処理のように、図5に示すような所定の方向に処理の依存関係が存在しているものである。たとえば、スムージング処理では、所定の方向に沿って移動しながら、たとえば隣接する画素同士の画素値の平均を取る等、複数の画素の間の平均値を取るためのスレッドが実行される。
このような処理に対応する数千〜数万のスレッドが、スレッド制御部31aのコントロールにより、見かけ上同時に実行可能となっている。
そして、分割画像データDに対応する全てのスレッドの処理が終了したときに、その境界部分Bに対応する処理結果を、グラフィックスメモリー32に保持させるように、メモリー指令部31bは指令する。また、分割画像データDに対応する全てのスレッドの処理が終了するまでの間、その処理結果は、グラフィックスメモリー32に蓄えられる。そして、分割画像データDに対応する全てのスレッドの処理が終了すると、その処理結果が、メモリー指令部31bの指令によって、ホストH側に受け渡される。続いて、次の分割画像データDの処理用データが、ホストHから送出されてきて、グラフィックスメモリー32に記憶させられる。
また、スレッド制御部31aでは、次の処理用データに対する処理を、自動的にスレッド単位に分割すると共に、スレッドの後述するストリーミングプロセッサー316への割り当てをコントロールする。ここで、メモリー指令部31bは、直前の処理における、分割された分割画像データDの境界における計算結果を、グラフィックスメモリー32から読み出して、スレッド制御部31aに受け渡す。すると、スレッド制御部31aでは、受け渡された計算結果を、時分割における最初のスレッドに反映させる。そのため、直前に処理がなされた分割画像データDの処理用データと、現在処理が行われる分割画像データDの処理用データとの間で、所定の方向における処理の依存関係を損なうことがなくなる。
以後、全ての分割画像データDに対する処理が終了するまで、このような処理を繰り返し行う。
<効果>
以上のような構成の印刷装置10によれば、デバイス30(GPU31)には、画像処理の依存関係が存在する方向とは直交する方向に、境界部分Bが表れるように分割した分割画像データDが供給される。そして、デバイス30(GPU31)では、この分割画像データDに対して、複数のスレッドを起動させて並列的に処理を実行可能となる。そのため、GPU31のグラフィックスメモリー32のメモリー容量等の制約により、入力された入力画像データに対して、全領域に対して並列に処理を行うことができない場合であっても、画像処理の依存関係が存在する方向とは直交する方向に沿って、より多くのスレッドを起動させることができる。
それにより、依存関係のある一定方向とは直交する方向に沿って、入力画像データを分割する場合と比較して、デバイス30(GPU31)の処理におけるスループットを向上させることが可能となる。また、並列的に起動させることが可能なスレッド数を多くすることが可能となるため、スレッドにおける処理を並列的に実行可能という、デバイス30(GPU31)の特性を生かすことが可能となる。
また、本実施の形態では、依存関係が所定方向に存在する画像処理の一例は、スムージング処理となっている。そのため、画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データDに対して、所定方向に処理の依存関係が存在するスムージング処理が為される。それにより、依存関係のある一定方向とは直交する方向に沿って、入力画像データを分割してスムージング処理を実行する場合と比較して、入力画像データ全体のスムージング処理を高速に行うことが可能となる。
ここで、従前の、たとえばスムージング処理のような画像処理の一例を、図6に示す。図6に示す画像処理においては、所定の方向における処理の依存関係を損なわせないようにするべく、処理の依存関係が存在する方向とは直交する方向(スレッドの並列方向;図6では縦方向)に、画像データを分割するようにしている。この場合、処理の依存関係が存在する方向は、図6における横方向である関係上、起動できるスレッド数は、図5におけるものと比較して、大幅に少なくなってしまう。その結果、並列処理を高速に行うことができる、という、GPU31の特性を十分に生かすことができなくなっている。
これに対して、図5から明らかなように、本実施の形態における画像処理では、起動できるスレッド数を非常に多く確保することができ、並列処理を高速に行うことができる、という、GPU31の特性を十分に生かすことが可能となっている。
さらに、本実施の形態では、ホストH(メモリー制御部21a)は、デバイス30からグラフィックスメモリー32の記憶容量に関する情報を受け取り、この記憶容量に関する情報に基づいて、分割画像データDを作成する処理を実行している。このため、分割画像データDのデータサイズを適切なものとすることが可能となる。
また、本実施の形態では、ホストHのCPU21には、メモリー制御部21aが機能的に実現されており、このメモリー制御部21aは、デバイス30への入力画像データの送出の制御により、分割画像データDを作成する処理を実行している。このため、デバイス30側のグラフィックスメモリー32に分割画像データDを作成させることが可能となる。すなわち、ホストH側では、分割画像データDを作成しなくても済むため、ホストH側のメインメモリー22を消費せずに済む。
なお、ホストHは、入力画像データから分割画像データDを作成し、当該作成された分割画像データDをデバイス30に送出するようにしても良い。この場合には、分割画像データDを作成する処理は要するものの、ホストH側からの分割画像データDの送出に際しては、連続するアドレス順に分割画像データDを送出可能となる。そのため、データ送出については、高速化が可能となる。
また、本実施の形態における印刷装置10においては、デバイス30(GPU31)での画像処理の高速化が図れるため、プリンター40の印刷までのスループットを向上させることが可能となる。特に、ラインヘッド70を備えるプリンター40においては、印刷が高速に為されるが、デバイス30(GPU31)での画像処理の高速化が図れるため、そのようなプリンター40において、印刷時に画像処理のための待ち時間を短縮化できるか、または待ち時間を発生させないようにすることが可能となる。
<変形例>
以上、本発明の一実施の形態について述べたが、本発明はこれ以外にも種々変形可能である。以下、それについて述べる。
上述の実施の形態では、依存関係が所定方向に存在する処理として、スムージング処理について説明している。しかしながら、このような依存関係が所定方向に存在する処理は、スムージング処理には限られず、各種の処理に適用させるようにしても良い。たとえば、平面的に依存関係が存在する各種の処理において、ある方向のみに依存関係が生じるように制限を掛け、そのような制限を掛けた各種の処理に、本発明を適用するようにしても良い。そのような処理としては、たとえば、誤差拡散の処理、ラプラシアンフィルタ処理等の各種のフィルタ処理、バイリニア補間、ニアレストネイバー補間等がある。
また、上述の実施の形態では、画像処理装置の機能は、印刷装置10を構成するコンピューター20に実現されている場合について説明している。しかしながら、この画像処理装置の機能は、コンピューター20以外の部位に実現されていても良い。たとえば、プリンター40がデバイス30と接続可能な構成の場合には、プリンター制御部80とデバイス30とによって、画像処理装置が構成される。また、プリンター40の制御部がデバイスを含む構成を採用する場合には、当該プリンター40の制御部によって、画像処理装置が構成される。
また、上述の実施の形態では、1つのホストHと、1つのデバイス30を備えるコンピューター20について説明している。しかしながら、ホストHおよびデバイス30の個数は、1つには限られず、複数存在していても良い。特に、デバイス30が複数存在する場合には、画像処理において、処理速度の一層の高速化を図ることが可能となる。
また、上述の実施の形態においては、デバイス30は、特定の機種に限られるものではなく、たとえば数千〜数万といった具合に、非常に多くのスレッドを並列的に実行可能なものであれば、どのようなデバイス30を用いても良い。
なお、上述した画像処理装置および画像処理方法は、上述したような動作を実現するためのプログラムを、コンピューター20にインストールすることにより、実現することができる。
また、上述の実施の形態において、中間バッファーとして、グラフィックスメモリー32を一例として述べている。しかしながら、それ以外の、コンスタントキャッシュ312、テクスチャーキャッシュ313、シェアードメモリ314のうちの少なくとも1つを、中間バッファーとしても良い。また、デバイス30の外部に存在するメモリーを、中間バッファーとして用いるようにしても良い。
また、上述の実施の形態においては、処理対象とするデータとして、画像データを用いる場合について説明しているが、処理対象とするデータとしては、画像データを印刷用のデータに変換する場合だけでなく、計算物理学、映像および画像の処理、データベース管理、生命工学等でも利用できる。
また、上述の実施の形態においては、インクジェット方式のプリンター40を例示して説明している。しかしながら、液体噴射装置は、インクジェット方式のプリンター40には限られない。例えば、ジェルジェット方式のプリンターに対して、本発明を適用することが可能であり、例えば機能材料の粒子が分散されている液状体、ジェルのような粒状体等を噴射する液体噴射装置に本発明を適用することが可能である。また、上述の実施の形態におけるプリンター40は、プリンター機能以外の機能(スキャナー機能、コピー機能等)を備える構成のような、複合的な機器の一部であっても良い。
さらに、プリンターとしては、インクジェット方式以外の方式(レーザ方式、ドットインパクト方式等)に対しても、本発明を適用することは勿論可能である。
10…印刷装置、20…コンピューター、21…CPU、21a…メモリー制御部、22…メインメモリー、22a…供給データバッファー、22b…中間データバッファー、23…HDD、23c…プリンタードライバープログラム、30…デバイス、31…GPU、32…グラフィックスメモリー(中間バッファーの一例に対応)、40…プリンター、70…ラインヘッド、80…プリンター制御部、310…テクスチャープロセッサークラスター、311…ストリーミングマルチプロセッサー、316…ストリーミングプロセッサー、B…境界部分、D…分割画像データ、H…ホスト、P…印刷媒体

Claims (6)

  1. 入力画像データに対する画像処理の依存関係が所定方向に存在する当該画像処理を、複数のスレッドを起動させて並列的に処理可能な画像処理装置であって、
    複数の上記スレッドを起動させて、当該スレッドにおける処理を並列的に実行可能なデバイスと、
    上記デバイスで画像処理された結果を記憶させることが可能な中間バッファーと、
    上記デバイスに画像処理させる入力画像データのデータ量を制御するホストと、
    を具備し、
    上記ホストは、上記入力画像データを、上記画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データを作成する処理を行い、
    その処理によって上記デバイスには上記分割画像データが供給され、
    上記デバイスは、上記分割画像データに対する画像処理を、上記画像処理の依存関係が存在する方向とは直交する方向に沿って複数の上記スレッドを起動させて並列的に実行させ、
    さらに上記デバイスは、当該デバイスで画像処理された処理結果のうち上記分割の境界部分に対応する処理結果を上記中間バッファーに記憶させ
    さらに上記デバイスは、上記中間バッファーに記憶させた上記処理結果を読み出して、当該処理結果を、上記分割の境界部分をまたいで隣接する次の上記分割画像データに対する画像処理に反映させる、
    ことを特徴とする画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    依存関係が所定方向に存在する前記画像処理は、スムージング処理である、
    ことを特徴とする画像処理装置。
  3. 請求項1または2記載の画像処理装置であって、
    前記デバイスには、前記中間バッファーが設けられていると共に、
    前記ホストは、前記デバイスから前記中間バッファーの記憶容量に関する情報を受け取り、この記憶容量に関する情報に基づいて、前記分割画像データを作成する処理を実行する、
    ことを特徴とする画像処理装置。
  4. 請求項3記載の画像処理装置であって、
    前記ホストには、メモリー制御部が設けられていると共に、
    上記メモリー制御部は、前記デバイスへの前記入力画像データの送出の制御により、前記分割画像データを作成する処理を実行する、
    ことを特徴とする画像処理装置。
  5. 請求項3記載の画像処理装置であって、
    前記ホストは、前記入力画像データから前記分割画像データを作成し、当該作成された前記分割画像データを前記デバイスに送出する、
    ことを特徴とする画像処理装置。
  6. 入力画像データに対する画像処理の依存関係が所定方向に存在する当該画像処理を、複数のスレッドを起動させて並列的に処理可能な画像処理方法であって、
    複数の上記スレッドを起動させて、当該スレッドにおける処理を並列的に実行可能なデバイスと、
    上記デバイスで画像処理された結果を記憶させることが可能な中間バッファーと、
    上記デバイスに画像処理させる入力画像データのデータ量を制御するホストと、
    を用い、
    上記入力画像データを、上記画像処理の依存関係が存在する方向とは直交する方向に分割の境界部分が表れるように分割した分割画像データを作成する処理を上記ホストに実行させ、
    その処理によって上記デバイスには上記分割画像データが供給され、
    上記デバイスにおける上記分割画像データに対する画像処理を、上記画像処理の依存関係が存在する方向とは直交する方向に沿って、複数の上記スレッドを起動させて並列的に実行させ、
    さらに上記デバイスで画像処理された処理結果のうち上記分割の境界部分に対応する処理結果を上記中間バッファーに記憶させ
    さらに上記デバイスによって、上記中間バッファーに記憶させた上記処理結果を読み出して、当該処理結果を、上記分割の境界部分をまたいで隣接する次の上記分割画像データに対する画像処理に反映させる、
    ことを特徴とする画像処理方法。
JP2009246207A 2009-10-27 2009-10-27 画像処理装置および画像処理方法 Active JP5487882B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009246207A JP5487882B2 (ja) 2009-10-27 2009-10-27 画像処理装置および画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009246207A JP5487882B2 (ja) 2009-10-27 2009-10-27 画像処理装置および画像処理方法

Publications (2)

Publication Number Publication Date
JP2011095807A JP2011095807A (ja) 2011-05-12
JP5487882B2 true JP5487882B2 (ja) 2014-05-14

Family

ID=44112672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009246207A Active JP5487882B2 (ja) 2009-10-27 2009-10-27 画像処理装置および画像処理方法

Country Status (1)

Country Link
JP (1) JP5487882B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10757297B2 (en) 2018-10-15 2020-08-25 Seiko Epson Corporation Image processing apparatus, image processing method, and printing apparatus

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6003032B2 (ja) * 2011-09-13 2016-10-05 富士通株式会社 画像圧縮方法、画像圧縮装置およびシステム
US11141043B2 (en) * 2015-05-20 2021-10-12 Sony Olympus Medical Solutions Inc. Signal processing device and medical observation system
JP2017152819A (ja) 2016-02-23 2017-08-31 セイコーエプソン株式会社 画像処理方法、画像処理装置、画像処理プログラム、印刷システム
JP6766598B2 (ja) 2016-10-31 2020-10-14 セイコーエプソン株式会社 画像処理装置、画像処理方法および制御プログラム
EP3676710A4 (en) * 2017-08-31 2021-07-28 Rail Vision Ltd SYSTEM AND METHOD FOR IMPROVING THE FLOW RATE IN MANY CALCULATIONS

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3292574B2 (ja) * 1993-12-01 2002-06-17 株式会社リコー 画像処理装置とその装置を用いた画像処理方法
JP2005012726A (ja) * 2003-06-23 2005-01-13 Konica Minolta Business Technologies Inc 画像処理装置および画像処理方法
JP2010199631A (ja) * 2007-11-30 2010-09-09 国立大学法人京都大学 画像ノイズ除去方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10757297B2 (en) 2018-10-15 2020-08-25 Seiko Epson Corporation Image processing apparatus, image processing method, and printing apparatus

Also Published As

Publication number Publication date
JP2011095807A (ja) 2011-05-12

Similar Documents

Publication Publication Date Title
JP5487882B2 (ja) 画像処理装置および画像処理方法
JP2007125851A (ja) 印刷制御装置及び画像形成方法ならびに記憶媒体
JP2009279864A (ja) 画像処理装置、画像記録システム及びプログラム
JP6506577B2 (ja) 画像処理装置及び方法及び画像記録装置
JP6537265B2 (ja) 画像処理装置、画像処理装置の制御方法
JP2007087137A (ja) 印刷制御装置、画像形成方法および記憶媒体
US8860971B2 (en) Printing device and printing method of printing device
US9384431B2 (en) Image processing apparatus, method, and storage medium that perform quantizing processing of image data for at least N colors
JP2011076156A (ja) 画像処理装置および画像処理方法
US9421789B2 (en) Control apparatus and method
JP2004262171A (ja) インクジェットプリンタ印刷方法および印刷システム並びにその方法を備えたホストコンピュータまたはプリンタドライバ
JPH0918732A (ja) 情報処理装置及びその方法
US7782483B2 (en) Image forming system, image forming apparatus, image processing apparatus and storage medium readable by computer
JP5906648B2 (ja) 画像処理装置および画像処理方法
US9848101B2 (en) Image processing device
JP2007316943A (ja) 記録制御装置および記録制御方法
JP4007179B2 (ja) 画像処理装置と印刷装置とで分担して画像処理を行いながら印刷する印刷システム
JP5895428B2 (ja) 印刷装置およびその制御方法
JP2006229428A (ja) 画像形成コントローラ装置、量子化方法、およびプリンタ装置
JP2010201706A (ja) 印刷装置
JP5714156B2 (ja) 画像処理装置および画像処理方法
JP2005354421A (ja) 色空間変換装置、色空間変換方法および画像形成コントローラ
JP2024045931A (ja) 印刷装置、及び、印刷物生産方法
JP2012109726A (ja) 画像処理装置および画像処理方法
JP5826147B2 (ja) 画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5487882

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350