特許第5744360号(P5744360)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東京機械製作所の特許一覧

<>
  • 特許5744360-画像処理装置 図000002
  • 特許5744360-画像処理装置 図000003
  • 特許5744360-画像処理装置 図000004
  • 特許5744360-画像処理装置 図000005
  • 特許5744360-画像処理装置 図000006
  • 特許5744360-画像処理装置 図000007
  • 特許5744360-画像処理装置 図000008
  • 特許5744360-画像処理装置 図000009
  • 特許5744360-画像処理装置 図000010
  • 特許5744360-画像処理装置 図000011
  • 特許5744360-画像処理装置 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】5744360
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月8日
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
   G06F 3/12 20060101AFI20150618BHJP
   G06F 12/08 20060101ALI20150618BHJP
   H04N 1/405 20060101ALI20150618BHJP
   B41J 5/30 20060101ALI20150618BHJP
   B41J 29/38 20060101ALI20150618BHJP
【FI】
   G06F3/12 B
   G06F3/12 C
   G06F12/08 565
   H04N1/40 B
   B41J5/30 Z
   B41J29/38 Z
【請求項の数】8
【全頁数】15
(21)【出願番号】特願2015-504808(P2015-504808)
(86)(22)【出願日】2014年10月21日
(86)【国際出願番号】JP2014077987
【審査請求日】2015年1月27日
【早期審査対象出願】
(73)【特許権者】
【識別番号】000151416
【氏名又は名称】株式会社東京機械製作所
(74)【代理人】
【識別番号】110001612
【氏名又は名称】きさらぎ国際特許業務法人
(72)【発明者】
【氏名】中山 貞胤
【審査官】 田川 泰宏
(56)【参考文献】
【文献】 特開2006−259821(JP,A)
【文献】 特表2007−500886(JP,A)
【文献】 特開2008−017458(JP,A)
【文献】 特開平09−205546(JP,A)
【文献】 特開2012−242855(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
B41J 5/30
B41J 29/38
G06F 12/08
H04N 1/405
(57)【特許請求の範囲】
【請求項1】
全領域のうち画像処理が必要な中心領域を除く周辺領域が、所定の値に設定された画像データを格納するメインメモリーと、
前記画像データに階調変換処理を施すCPUと、を備え、
前記CPUは、
複数のスレッドによる並列処理機能を有し、前記階調変換処理を並列的に実行する複数のコアと、
前記複数のスレッドのそれぞれに対応して設けられたデータキャッシュメモリーを含み、
前記コアは、前記画像データのうち前記データキャッシュメモリーのサイズより小さい領域を演算対象領域として指定し、当該演算対象領域に対応する前記画像データを前記メインメモリーから前記データキャッシュメモリーに取得させると共に、当該演算対象領域に対し前記中心領域と前記周辺領域の区別なく前記階調変換処理を実行することを特徴とする画像処理装置。
【請求項2】
前記CPUは、前記複数のスレッドのそれぞれに対応して設けられたプログラムキャッシュメモリーを含み、
前記コアは、前記プログラムキャッシュメモリーに対し、前記階調変換処理を実行するために必要なプログラムを前記メインメモリーから取得させることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記演算対象領域のデータサイズは、前記データキャッシュメモリーのラインサイズに基づき決定されることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記コアは、前記CPUにおいて並列稼働が可能な前記スレッドの数である最大スレッド数を取得し、前記最大スレッド数を前記階調変換処理に使用する前記スレッドの数として登録することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記コアは、前記メインメモリーからの画像データを、前記登録されたスレッドのうち前記階調変換処理を行っていない待機中のスレッドに対応する前記データキャッシュメモリーに転送すると共に、前記階調変換処理の終了後直ちに前記データキャッシュメモリー内の画像データを前記メインメモリーに返送することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記CPUは、ラスター変換処理及び色分版処理により前記画像データを生成する工程を含む前工程と、前記画像データに対し階調変換処理を施す工程を含む後工程とをそれぞれ実行可能であり、
前記コアは、前記CPUにおいて並列稼働が可能な前記スレッドの数である最大スレッド数を取得し、取得した前記最大スレッド数から、前記前工程と前記後工程に対するスレッド数の割り振りを算出し、算出されたスレッド数を前記後工程の処理に使用する前記スレッドの数として登録することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記CPUは、前記複数のスレッドのそれぞれに対応して設けられたプログラムキャッシュメモリーを含み、
前記コアは、前記ラスター変換処理、前記色分版処理、前記階調変換処理のそれぞれの工程において、前記プログラムキャッシュメモリーに対し、各工程を実行するために必要なプログラムを前記メインメモリーから取得させることを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記メインメモリーは、揮発性のメモリーであることを特徴とする請求項1に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載の実施形態は、デジタル印刷装置の画像処理装置に関する。
【背景技術】
【0002】
現在、社会の潮流は、従来の少品種・大量生産から、多品種・少量生産に変化しつつある。書籍、パンフレット、マガジン、新聞に代表される出版物の生産分野においても、高速オフセット輪転機を使用した少品種・大量生産の時代を経て、業務用のデジタル印刷装置を使用した多品種・少量生産が注目され始めている。
【0003】
デジタル印刷装置の一例として、熱や圧力によりインクを紙に噴射して印字するインクジェット式の印刷装置が知られている。また、このような印刷装置において、複数の色(例えば、シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K))に対応する複数のプリントヘッドを備えた印刷装置が知られている。
【0004】
上述のインクジェット式の印刷装置において、複数の印刷色分(例えば、前記C・M・Y・Kの4色分)をシャトル型のプリントヘッドに一つにまとめて配置し、枚葉紙に対して印刷を行うキャリッジ方式が知られている。当該方式は、緻密な画像の描写に適している。また、他の方式として、一方向へ移動する連続紙に対し、単色印刷用の複数のプリントヘッドが、紙幅方向に紙幅を覆うように配置されてプリントヘッド群を形成し、さらに上述の単色印刷用プリントヘッド群が、連続紙の移動方向に対して複数の印刷色分(例えば前記C・M・Y・Kの4色分)配置されたシングルパス方式が知られている。当該方式は、高速印刷に適している。
【0005】
上述の業務用のデジタル印刷装置において画像データを印刷する場合、処理するデータ量が、一般の家庭用及び事務用の印刷におけるデータ量に比べ極めて大きいことから、処理に長時間を必要とする。このため従来は、いわゆるラスター変換処理(RIP:Raster Image Processing)、4色分版処理、階調変換処理、インクヘッドの配置に対応したデータの並べ替え処理、等の各種の画像処理は、印刷に先立って行われていた。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−310450号公法
【発明の概要】
【発明が解決しようとする課題】
【0007】
近年、少部数のオンデマンド印刷(Print on Demand:POD)や、短時間で仕上げる連続した少部数オンデマンド印刷(いわゆるオンザフライ印刷)への対応が必要なことから、印刷を行いながら同時に連続して、次の印刷のための画像処理を行うことが求められている。そして、上記のオンザフライ印刷及びこれに伴う画像処理を可能とするために、デジタル印刷装置における画像処理の高速化が求められている。
【0008】
本明細書に記載された実施形態は、上記の課題に鑑み、デジタル印刷装置における画像処理を高速化することを目的とする。
【課題を解決するための手段】
【0009】
一実施形態に係る画像処理装置は、全領域のうち画像処理が必要な中心領域を除く周辺領域が、所定の値に設定された画像データを格納するメインメモリーと、前記画像データに階調変換処理を施すCPUと、を備える。前記CPUは、複数のスレッドによる並列処理機能を有し、前記階調変換処理を並列的に実行する複数のコアと、前記複数のスレッドのそれぞれに対応して設けられたデータキャッシュメモリー及びプログラムキャッシュメモリーを含む。前記コアは、前記画像データのうち前記データキャッシュメモリーのサイズより小さい領域を演算対象領域として指定し、当該演算対象領域に対応する前記画像データを前記メインメモリーから前記データキャッシュメモリーに取得させると共に、当該演算対象領域に対し前記中心領域と前記周辺領域の区別なく前記階調変換処理を実行する。
【図面の簡単な説明】
【0010】
図1】第1の実施形態に係る画像処理装置を含む印刷装置の全体模式図である。
図2】プリントヘッド部の構成を示す平面模式図である。
図3】印刷装置における画像処理の流れを示すフローチャートである。
図4】画像処理装置の主要な構成を示すブロック図である。
図5】階調変換処理を説明するための模式図である。
図6】画像データを示す模式図である。
図7】演算対象領域48のデータサイズの決定方法を示すフローチャートである。
図8】第1の実施形態に係る画像処理装置の動作を示すフローチャート(その1)である。
図9】第1の実施形態に係る画像処理装置の動作を示すフローチャート(その2)である。
図10】第2の実施形態に係る画像処理装置の動作を示すフローチャートである。
図11】第3の実施形態に係る画像処理装置を含む印刷装置の全体模式図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本発明の実施形態に係る画像処理装置について説明する。
【0012】
[第1の実施形態]
図1は、第1の実施形態に係る画像処理装置を含む印刷装置IJPの全体模式図である。印刷装置IJPは、連続する印刷用紙6を下流側に向けて供給可能な給紙装置SPと、印刷用紙6にインクジェット印刷をするためのプリントヘッド部5を有する印刷部7とを備える。図中の矢印Xは、印刷用紙6の移動方向を示している。また、印刷装置IJPは、印刷された印刷用紙6を回転ローラー31によって下流側に送り出す紙搬送部3と、印刷された印刷用紙6を切断あるいは切断して折り畳む後処理装置7とを備える。回転ローラー31には、所定の回転量ごとにパルス信号を出力するエンコーダー32が併設されている。
【0013】
プリントヘッド部5は、印刷用紙6の幅寸法よりも小さな複数のプリントヘッド(不図示)を、印刷用紙6の幅方向に並べて配置したプリントヘッド群51を備える。本実施例では、4色を同時に印刷可能なプリントヘッド群51c,51m,51y,51kを採用しており、それぞれがシアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(B)の色に対応している。また、プリントヘッド部5には、プリントヘッド部5を制御するプリントヘッド制御部4が接続されている。
【0014】
プリントヘッド制御部4は、処理サーバー1に接続されている。この処理サーバー1は、入力された画像データをラスター変換処理(RIP)する機能、色分版処理する機能、階調変換処理する機能、及び面付け処理する機能を有する。また、処理サーバー1は、印刷部数および片面・両面印刷の設定をするジョブ操作機能、印刷準備が完了したジョブのスケジュール管理機能、印刷装置IJPの制御機能、及び印刷状況の表示機能を有する。処理サーバー1は、プリントヘッド制御装置4と接続されると共に、印刷装置制御部2にも接続されている。印刷装置制御部2は、印刷装置IJPのプリントヘッド部5を除く各装置の作動を制御する。
【0015】
図2は、プリントヘッド部5におけるプリントヘッドの配置を示す平面模式図である。連続紙である印刷用紙6の移動方向(紙面左右方向)に、印刷色分に対応した4つのプリントヘッド群51c(C:シアン)、51m(M:マゼンダ)、51y(Y:イエロー)、51k(K:ブラック)が配置されている。各プリントヘッド群は、印刷用紙6の幅方向(紙面上下方向)に千鳥状に配置された4つのプリントヘッド50を含む。印刷用紙6の幅を6L、当該方向におけるプリントヘッド50の長さを50Lとすると、プリントヘッド50の配置幅(50L×4以下)が印刷用紙6の紙幅(6L)より大きくなるように、プリントヘッド50及び印刷用紙6の幅の長さが設定されている。
【0016】
図3は、印刷装置IJPにおける画像処理の流れを示すフローチャートである。最初に、処理サーバー1が、他の情報処理端末や記憶媒体等から入力された画像データ(例えば、PDF(Portable Document Format)、PS(Postscript)等の形式で表現される画像データ)に対し、ラスター変換処理を行う(ステップS10)。ラスター変換とは、例えばベクトル量で表現された線画像のデータ等を、点(ドット)の集合であるラスターの画像データに変換する処理をいう。
【0017】
次に、処理サーバー1は、色分版処理(ステップS12)を実行する。色分版処理とは、カラーの画像データを、複数の色ごとのデータに分解する処理をいう。本実施形態では、前述のようにシアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(B)への4色分版処理を行う例について説明するが、これ以外の色及び分版数を用いることも可能である。
【0018】
次に、処理サーバー1は、階調変換処理(ステップS14)を実行する。階調変換処理とは、高い分解能(例えば、8ビット以上)をもつ連続階調の色データを、印刷装置が出力可能な階調数まで減らすことで、物理的なドット配置を決定する処理をいう。階調変換処理は、誤差拡散処理・ディザリング処理などと呼ばれる場合もある。階調変換処理は、画像データをインクの液適量に変換する液滴変換処理の一貫として行われるものであり、その詳細については図5で説明する。
【0019】
図3に戻り、処理サーバー1は、階調変換処理の完了した画像データに対し、面付け処理等の必要な処理を施した上で、当該データをプリントヘッド制御部4へと転送する。以下の説明では、処理サーバー1にて実行される処理のうち、ステップS12の色分版処理までを「前工程」、ステップS14の階調変換処理以降の処理を「後工程」と称する。
【0020】
次に、プリントヘッド制御部4は、処理サーバー1から送られた画像データを、プリントヘッド部5における個々のプリントヘッド(図3参照)の配置に基づき、並べ替える処理を行う(ステップS16)。その後、プリントヘッド制御部4は、処理サーバー1からの指令に基づき、後続の印刷工程を実行する。
【0021】
印刷工程では、ロール紙Rから所定方向(図1の矢印X方向)に送り出された印刷用紙6に対し、プリントヘッド部5による文字・画像の描画(印刷)が行われる。プリントヘッド部5は、プリントヘッド制御部4から入力される描画のタイミング信号に基づき、印刷を実行する。
【0022】
本実施形態に係る印刷装置IJPでは、処理サーバー1からプリントヘッド制御部4への画像データの転送は、上述の印刷工程と並行してリアルタイムに行われる。しかし、処理サーバー1における前工程(ラスター変換処理及び色分版処理)並びに後工程(階調変換処理)は、それぞれ印刷工程に先だって行われるため、印刷開始前の画像処理による待機時間が必要となる。当該待機時間が長くなると、印刷工程を行い、且つ、連続して次の入稿及び画像処理を行う印刷方式、いわゆるオンザフライ印刷の実現が難しくなってしまう。そこで、印刷開始前の時間の短縮を図り、前記オンザフライ印刷を実現にするために、処理サーバー1における画像処理を高速化することが課題となっている。
【0023】
図4は、画像処理装置の一例である処理サーバー1の主要な構成を示すブロック図である。処理サーバー1のシステムボード10上には、CPU12(Central Processing Unit)及びメインメモリー14が配置されている。メインメモリー14には、高速動作が可能なメモリー(例えば、揮発性のRAM(Random Access Memory)等)を用いることが好ましい。本実施形態では、処理サーバー1が、CPU及びメインメモリーをそれぞれ2つずつ備えている。以下、両者を区別する必要がある場合には、それぞれ第1CPU12a及び第2CPU12b、並びに第1メインメモリー14a及び第2メインメモリー14bと称する(他の構成においても同様とする)。
【0024】
各CPU12は、それぞれが独立して演算処理を行う複数のコア16を備えている。本実施形態では、各CPU12が、第1コア16a〜第6コア16fの6つのコアを備えているが、コアの数はこれ以外であってもよい。更に、各コア16は、複数のスレッド18による並列処理機能を有する。本実施例では、コア1つあたり2つのスレッド(第1スレッド18a及び第2スレッド18b)を有する構成となっている。
【0025】
また、CPU12は、データ記憶領域であるプログラムキャッシュメモリー20及びデータキャッシュメモリー22を備えている。これらは、各コアにおいて演算処理が行われる領域(不図示)とは別に設けられた記憶部であり、メインメモリー14同士の間におけるデータ転送に比べ、より高速なデータ転送が可能となっている。概念的には、各コア16内の各スレッド18に対し、プログラムキャッシュメモリー20及びデータキャッシュメモリー22が1つずつ設けられている。
【0026】
図中に示す白抜きの矢印は、各ブロック間で転送されるデータを示すものである。本実施形態の印刷装置IJPでは、画像データ及びプログラムデータが主に転送の対象となる。これらのデータは、不揮発性の記憶装置を介さずに、CPU12とメインメモリー14との間で直接転送がされることから、データ転送の高速化を図ることが可能となっている。
【0027】
また、図中の実線矢印DATAは画像データの転送方向を、図中の点線矢印PGMはプログラムデータの転送方向をそれぞれ示す。画像データ(DATA)は、データキャッシュメモリー22とメインメモリー14との間で双方向に転送されるが、プログラムデータ(PGM)は、メインメモリー14からプログラムキャッシュメモリー20に対して一方向にのみ転送される。用済みになったプログラムデータは、次のデータ書き込みのタイミングで、プログラムキャッシュメモリー20上において次のデータが上書きされることにより書き換えられる。
【0028】
上記のように、本実施形態に係る画像処理装置は、複数のCPU12a〜12b内に複数のコア16a〜16fが設けられ、更に各コア16において複数のスレッド18a〜18bによる並列処理が可能となっている。これにより、図3で示した前工程及び後工程の画像処理を並列処理により行うことができる。しかし、単に画像処理を並列化しただけでは、画像処理の高速化を十分に図ることができない。以下、この点について説明する。
【0029】
図5は、画像処理のうち図3のステップS14における階調変換処理(階調変換処理)を説明するための模式図であり、いわゆる「誤差拡散」と称される階調変換処理を示すものである。図5(a)、(c)、(e)、(g)は、それぞれドット状に配置された画像データを示している。図5(b)、(d)、(f)、(h)は、それぞれ誤差拡散テーブルを示している。
【0030】
図5は、256階調の画像データにおける2値化処理の例を示す図である。閾値を128として、128よりも小さいデータは0に、128以上のデータは256にそれぞれ変換される。階調変換前のデータと階調変換後のデータの差は、「誤差(Err)」となる。図5(b)に示すように、「Err」で示されるドットを中心に、右に7/16、右下に1/16、下に5/16、左下に3/16の割合で誤差が拡散されるようになっている。図5(b)の誤差拡散テーブルの値は、任意に設定することが可能である。
【0031】
図5(a)では、左上のドット(値が「0」となっている部分)のみ、階調変換処理が終了している。以降の図において、階調変換処理が終了したドットをハッチで示すものとする。
【0032】
図5(c)では、上段の左から2番目のドットの値が100(<128)であるため、階調変換後の値は「0」となる。このとき、誤差はErr=100−0=100となる。その結果、図5(d)に示す誤差拡散テーブルの拡散誤差(右隣のドットから時計回りに44、6、31、19)が、図5(c)における周囲のドットに加算される(144、106、131、119)。
【0033】
図5(e)では、上段の左から3番目のドットの値が144(≧128)であるため、階調変換後の値は「255」となる。このとき、誤差はErr=144−255=−111となり、負の値となる。その結果、図5(f)に示す誤差拡散テーブルの拡散誤差(右隣のドットから時計回りに−48、−7、−35、−21)が、図5(e)における周囲のドットに加算される(52、93、71、110)。
【0034】
図5(g)では、上段の左から4番目のドットの値が52(<128)であるため、階調変換後の値は「0」となる。このとき、誤差はErr=52−0=52となる。その結果、図5(h)に示す誤差拡散テーブルの拡散誤差(右隣のドットから時計回りに23、3、16、10)が、図5(g)における周囲のドットに加算される(123、103、109、81)。
【0035】
上記の誤差拡散によれば、2値化の際に生じた誤差を所定割合で周囲のドットに加算することにより、単純に2値化を行う場合に比べ、階調変換処理後の画像の見た目を階調変換処理前のものに近づけることができる。
【0036】
図6は、画像データを示す模式図である。図6(a)は本実施形態における画像データを、図6(b)は比較対象としての一般的な画像データをそれぞれ示す。図6(b)に示すように、一般的な画像データでは、全領域40のうち画像変換処理が必要な領域(以下、「中心領域42」とする)が、その他の領域(以下、「周辺領域44」とする)と境界線46により区切られている。従って、図5で示した階調変換処理の対象となる領域(以下、「演算対象領域48」とする)となるのは、中心領域42に存在する画像データ(a〜f)に限られる。この場合、CPU12のコア16は、境界線46の判定処理を逐一行いながら階調変換処理を行わなくてはならないため、画像処理に時間がかかってしまうという課題がある。
【0037】
これに対し、図6(a)に示す本実施形態では、周辺領域44が予め所定の値(本実施形態では「0」とする)に設定されている。換言すれば、中心領域42と周辺領域44との間には境界線46が存在しないため、図6(a)における演算対象領域48は、周辺領域44を含み得る。しかし、周辺領域44の「0」が配置された部分のドットは、図5で説明した誤差拡散を考慮したとしても、階調変換処理後の値が「0」となるため、実質的に階調変換処理に影響を与えない。この場合、CPU12のコア16は、境界線46の判定処理を逐一行う必要がないため、画像処理の時間を短縮することができる。なお、本実施例では、周辺領域44に予め設定しておく所定の値を「0」としたが、当該所定の値は「0」に限定されるものではなく、階調変換処理において中心領域42のデータと混ざり合わない(影響を与えない)ものであれば、任意の値を用いることができる。
【0038】
図6(a)に示す全領域40の画像データは、メインメモリー14上に存在するものである。階調変換処理においては、CPU12のコア16が、演算対象領域48に含まれる画像データを、対応するスレッド18内のデータキャッシュメモリー22内に転送する。これにより、演算対象領域48に階調変換処理を実行している間は、データの転送はスレッド18内部のプログラムキャッシュメモリー20とデータキャッシュメモリー22との間で行われる。その結果、メインメモリー14とデータキャッシュメモリー22との間のデータ転送量を削減することが可能となり、画像処理の時間を短縮することができる。演算対象領域48の階調変換処理が終了したら、コア16は、当該処理済みのデータをデータキャッシュメモリー22からメインメモリー14に転送すると共に、新たな未処理データをメインメモリー14から取得する。
【0039】
以上のように、本実施形態に係る画像処理装置によれば、CPU12内のコア16が、画像データのうちデータキャッシュメモリー22のサイズより小さい領域を演算対象領域48として指定する。そして、コア16は、演算対象領域48に対応する画像データを、メインメモリー14からデータキャッシュメモリー22に取得させると共に、演算対象領域48に対し中心領域42と周辺領域44の区別なく階調変換処理を実行する。これにより、境界線46の判定処理を逐一行う必要がなく、且つメインメモリー14とデータキャッシュメモリー22との間のデータ転送量を削減することができる。このように、図4で説明した画像処理の並列化に加え、上記の工夫を行うことにより、画像処理の大幅な高速化を図ることができる。
【0040】
上記形態において、CPU12内のプログラムキャッシュメモリー20は、コア16が階調変換処理を実行するためのプログラムを格納可能なサイズであることが好ましい。この場合、プログラムサイズの方を、プログラムキャッシュメモリー20に格納可能なように縮小してもよい。これにより、階調変換処理を行う際に必要なプログラムを、処理の開始時にメインメモリー14から読み込むだけで済み、以後はメインメモリー14とプログラムキャッシュメモリー20との間でプログラムデータの転送を行う必要がなくなる。その結果、メインメモリー14とプログラムキャッシュメモリー20との間のデータ転送量を削減することができるため、画像処理の高速化を更に図ることができる。
【0041】
上記形態において、メインメモリー14からデータキャッシュメモリー22に画像データを転送する際に、データの余りが生じない構成とすることが好ましい。以下、この点について説明する。
【0042】
図7は、演算対象領域のデータサイズの決定方法を示すフローチャートである。最初に、処理サーバー1の制御部として機能するコア16が、CPU12内のデータキャッシュメモリー22のラインサイズ(1回当たりの転送で取り込むデータの量、以下「キャッシュラインサイズ」とする)を取得する(ステップS20)。このキャッシュラインサイズは、CPUの仕様により様々なサイズ(例えば、64バイト、32バイト等)が想定される。その後、コア16は、ステップS20で取得したキャッシュラインサイズに基づき、図6(a)の演算対象領域48のデータサイズを決定する(ステップS22)。
【0043】
ここで、演算対象領域48のデータサイズは、データキャッシュメモリー22データ転送に際し、余りが出ないように決定することが好ましい。例えば、キャッシュラインサイズが64バイトなら、演算対象領域48のデータサイズも64バイトというように、演算対象領域48をキャッシュラインサイズ以下のデータサイズとすることで、1回あたりの転送量に余りが出ないようにすることが好ましい。これにより、演算対象領域48のデータサイズをキャッシュラインサイズより大きく設定した場合に比べ、メインメモリー14とデータキャッシュメモリー22との間のデータ転送回数を最小回数に減らすことができる。その結果、画像処理の高速化を図ることができる。(上記の例で、例えば演算対象領域48のデータサイズが65バイトの場合、ラインサイズが64バイトだと2回の転送が必要となり、倍の転送回数が必要となってしまう)。
【0044】
また、上記形態において、メインメモリー14からデータキャッシュメモリー22に画像データを転送する際に、未処理データの処理待ちが発生しないような構成にすることが好ましい。以下、この点について詳細に説明する。
【0045】
図8は、CPU12における並列稼働スレッド数の登録方法を示すフローチャートである。最初に、処理サーバー1の制御部として機能するコア16が、同一の処理速度を有するCPU12において、並列稼働が可能な最大スレッド数を取得する(ステップS30)。この最大スレッド数は、複数のCPU12、複数のコア16、及び複数のスレッド18により実現されるものであり、CPUの仕様により様々な数(例えば、1つのコア16に対し1スレッドまたは2スレッド等)が想定される。最大スレッド数は、例えば、CPU12を制御するオペレーティングシステム(OS:Operating System)から取得することができる。その後、コア16は、ステップS30で取得した最大スレッド数を、階調変換処理を行う後工程用のスレッド数として登録する(ステップS31)。その後、CPU12は、登録された数に対応するスレッド18を起動する(ステップS32)。これにより、上記の数のスレッド18が、メインメモリー14から未処理の画像データを受信可能で、且つ画像データが転送された後直ちに階調変換処理を行うことが可能な稼働状態となる。なお、以下の説明において、稼働中で且つ処理中でないスレッド18の状態を「待機状態」と称する場合がある。
【0046】
ここで、スレッド18の並列稼働数を、CPU12の負荷に応じて調整するようにした比較形態について説明する。この場合、メインメモリー14から未処理データが一時に大量に送り込まれた後、CPU12の負荷が高まるに従って、並列稼働が可能な最大スレッド数に達するまで、順次スレッドが起動されていく。その結果、スレッド18の並列稼働数(起動スレッドの数)が最大スレッド数に達するまでの間、未処理データの処理待ちが発生してしまう。
【0047】
これに対し、図8では、予めCPU12において並列稼働が可能なスレッドの最大数を取得しておき、その数値を、階調変換処理を行う後工程用のスレッド数として登録しておく。これにより、上記の比較形態では必要最小限のスレッド(例えば、2スレッド)しか起動されていないのに対し、本実施形態では並列稼働が可能な最大数のスレッド(例えば、24スレッド)が常時起動され、並列稼働可能の状態で待機している。その結果、メインメモリー14からデータキャッシュメモリー22へ、未処理データが一時に大量に送り込まれても、処理待ちが発生することなく、直ちに処理を開始することができる。
【0048】
例えば、上記の具体例において、演算対象領域48のキャシュラインサイズに整えられたデータが、スレッド18に対し20個分送り込まれた場合について説明する。比較形態によれば、並列稼働可能の状態で待機しているのは2スレッドのみであるから、データ処理が開始されるのは20個のデータのうちわずか2個のみである。残り18個のデータについては、CPU12の負荷が高まり、休眠状態のスレッドが起動するまで、処理待ちの状態となってしまう。これに対し、図8の本実施形態によれば、予め登録された24スレッドが待機状態にあり、送り込まれた全20個分のデータを直ちに並列処理することができる。
【0049】
以上のように、メインメモリー14からデータキャッシュメモリー22へのデータ転送に際し、未処理データの処理待ちが発生しないようにするためには、後工程の処理を並列して行うスレッド数を予め決定(登録)しておくことが好ましい。
【0050】
また、上記形態において、メインメモリー14とデータキャッシュメモリー22との間でデータを転送する際に、相互にデータが滞留しない構成とすることが好ましい。以下、この点について詳細に説明する。
【0051】
図9は、メインメモリー14とデータキャッシュメモリー22における、データ転送処理を示すフローチャートである。最初に、CPU12が、登録済みの任意のスレッド18に対し、当該スレッドが処理中であるか否かを判定する(ステップS10)。当該判定処理でNO(処理中でない)と判定された場合、CPU12は、メインメモリー14内にある演算対象領域48の未処理の画像データを、当該処理中でないスレッド18に転送する(ステップS41)。転送された画像データは、当該スレッド18内のデータキャッシュメモリー22内に格納される。
【0052】
次に、当該スレッド18を含むコア16は、転送された未処理画像データの階調変換処理を開始する(ステップS42)。CPU12は、コア16による階調変換処理が終了したか否かを判定し(ステップS43)、処理が終了したと判定した場合には(ステップS43でYES)、処理済みの画像データを直ちに再度メインメモリー14に返送する(ステップS44)。
【0053】
ここで、階調変換処理の終了後、処理済みの画像データがデータキャッシュメモリー22内に滞留していると、スレッド18が待機状態に戻れないため、次の処理の実行ができなくなる。これに対し、図9のステップS44のように、データキャッシュメモリー22内にある処理済みの画像データを、速やかにメインメモリー14に返送することで、スレッド18を待機状態に復帰させ、次の処理を速やかに行うことができる。反対に、図9のステップS40〜S41のように、メインメモリー14からスレッド18側に未処理の画像データを転送する際には、後工程用に登録済みで、且つ処理中でない待機中のスレッド18にデータを送り込むことにより、処理待ちの発生を抑制することができる。以上のように、メインメモリー14とデータキャッシュメモリー22との間において、画像データの転送を行う際には、相互にデータが滞留しない構成とすることが好ましい。
【0054】
また、上記形態において、メインメモリー14に返送された処理済みの画像データは、転送時間の長い不揮発性の記憶装置に記憶することなく、直ちに次の工程(図3のステップ16に示すインクヘッド用並べ替え処理)に転送することが好ましい。これにより、メインメモリー14は、スレッド18からの処理済みの画像データを常時受信可能な状態となり、データキャシュメモリー22内における処理済みの画像データの滞留を抑制することができる。その結果、画像処理の高速化を図ることができる。
【0055】
また、上記形態において、CPU12は、階調変換処理が完了した画像データのプリントヘッド制御部4への出力が完了した段階で、メインメモリー14内の画像データを消去せずに、次の画像データをメインメモリー14に上書きすることが好ましい。これにより、実行ステップを減らすことができる。また、本実施形態で説明した画像データ(未処理の画像データ及び処理済みの画像データ)の記憶には、不揮発性の記憶装置を用いないことが好ましい。これにより、当該不揮発性の記憶装置とメインメモリー14間のデータ転送における時間がかからず、印刷を実行しながら大容量の画像データをリアルタイムに処理すること(オンザフライ印刷)が可能となり、画像処理の高速化を図ることができる。
【0056】
上記形態において、CPU12のコア16は、ラスター変換処理、色分版処理、階調変換処理のそれぞれの工程において、プログラムキャッシュメモリー22に対し、各工程を実行するために必要なプログラムをメインメモリー14から取得させることが好ましい。このように、階調変換処理の場合だけでなく、他の画像処理工程においても、処理に必要なプログラムをプログラムキャッシュメモリー22に転送することで、メインメモリー14とプログラムキャッシュメモリー20との間のデータ転送量を削減することができる。その結果、画像処理の高速化を更に図ることができる。
【0057】
[第2の実施形態]
第2の実施形態は、CPUにおける並列化処理のリソースの割り当てを工夫した例である。本実施形態に係る印刷装置及び画像処理装置の構成は、第1の実施形態にて説明したものと同様であり、詳細な説明を省略する。
【0058】
図3にて説明したように、処理サーバー1(画像処理装置)における画像処理は、前工程と後工程に分けることができる。同一の処理速度を有するCPU12を用いて比較すると、一般的には後工程の方が、前工程に比べて処理に要する時間が長い。このため、図4で説明した画像処理の並列化において、前工程と後工程を同一割合で並列化すると、前工程の処理が先に終了してしまい、処理待ちが発生するため画像処理に時間がかかってしまう。また、前工程の並列化は、ラスター変換処理を行うためのプログラムのライセンスを複数取得する必要があり、コスト的にも好ましくないという課題があった。
【0059】
図10は、第2の実施形態に係る画像処理装置の動作を示すフローチャートである。最初に、処理サーバー1の制御部として機能するコア16が、CPU12において並行稼働が可能な最大スレッド数を取得する(ステップS50)。次に、コア16は、前工程及び後工程における演算処理の所要時間の割合に応じて、前工程及び後工程に対する最適なスレッド数の割り振りを算出する(ステップS51)。次に、コア16は、ステップS51にて算出された後工程用のスレッド数を登録する(ステップS52)。次に、CPU12は、登録された数に対応するスレッド18を起動する(ステップS53)。これにより、後工程の処理に必要な数のスレッド18が稼働状態となる。その後、CPU12は、図9のステップS40〜S41に示すように、後工程用に登録済みで、且つ処理を行っていない待機中のスレッド18に対し、未処理の画像データを転送する。
【0060】
例えば、本実施形態では、各CPU12において、6つのコア16及び計12個のスレッド18を有するため、並列処理数は12となっている。ここで、例えば前工程の所要時間が1に対して、後工程の所要時間が8と判断された場合、並列処理のリソースは1:8の割合で割り当てることが好ましい。例えば、前工程に対し1つのコア16のうち1つまたは2つのスレッド18を割り当て、残りのコア16及びスレッド18は、後工程に対し割り当てることが考えられる。これにより、各工程間における処理待ち時間を短縮し、画像処理の高速化を更に図ることができる。更に、前工程のラスター変換処理に必要なライセンスの取得数を抑制することができるため、印刷システムを低コストで実現することができる。
【0061】
[第3の実施形態]
図11は、第3の実施形態に係る画像処理装置を含む印刷装置の全体模式図である。第1の実施形態(図1)と異なり、処理サーバー1及びプリントヘッド制御部4が、同一の筐体8(サーバーラック)内に収容されている。その他の構成は第1の実施形態と同様であるため、詳細な説明を省略する。
【0062】
上記構成によれば、処理サーバー1及びプリントヘッド制御部4の接続を短距離で行うことができるため、データの転送時間の短縮化が可能になり、また、サーバーの設置スペースを半分に削減することができる。また、高価な高速デ−タ転送用光ケーブルを、長距離引きまわす必要がなくなるため、故障のリスクを減らし、コストダウンを図ることができる。また、処理サーバー1及びプリントヘッド制御部4が、1台のサーバーラックにまとめられていることで、サーバーの保守・管理が容易となると共に、電源設備やサーバーラック用の床の補強などの建物側の設備の対応も1箇所で済み、コストダウンを図ることができる。更に、サーバーラック内部の電源等も一つにまとめることができるため、エネルギーの利用効率が上がり、省エネとなる。その結果、ランニングコストを下げることも可能となる。
【0063】
[その他の実施形態]
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0064】
1…処理サーバー、2…印刷装置制御部、3…紙搬送部、4…プリントヘッド制御部、5…プリントヘッド部、6…印刷用紙、7…印刷部、8…筐体、10…システムボード、12…CPU、14…メインメモリー、16…コア、18…スレッド、20…プログラムキャッシュメモリー、22…データキャッシュメモリー、40…全領域、42…中心領域、44…周辺領域、46…境界線、48…演算対象領域、R…巻取紙、X…印刷用紙移動方向
【要約】
周辺領域44が所定の値に設定された画像データを格納するメインメモリー14と、画像データに階調変換処理を施すCPU12と、を備える。CPU12は、複数のスレッド18による並列処理機能を有し階調変換処理を並列的に実行する複数のコア16と、複数のスレッド18のそれぞれに対応して設けられたデータキャッシュメモリー22及びプログラムキャッシュメモリー20を含む。コア16は、画像データのうちデータキャッシュメモリー22のサイズより小さい領域を演算対象領域48として指定し、当該演算対象領域48に対応する画像データをメインメモリー14からデータキャッシュメモリー22に取得させると共に、当該演算対象領域48に対し中心領域42と周辺領域44の区別なく階調変換処理を実行する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11