(57)【特許請求の範囲】
【請求項１】
全領域のうち画像処理が必要な中心領域を除く周辺領域が、所定の値に設定された画像データを格納するメインメモリーと、
前記画像データに階調変換処理を施すＣＰＵと、を備え、
前記ＣＰＵは、
複数のスレッドによる並列処理機能を有し、前記階調変換処理を並列的に実行する複数のコアと、
前記複数のスレッドのそれぞれに対応して設けられたデータキャッシュメモリーを含み、
前記コアは、前記画像データのうち前記データキャッシュメモリーのサイズより小さい領域を演算対象領域として指定し、当該演算対象領域に対応する前記画像データを前記メインメモリーから前記データキャッシュメモリーに取得させると共に、当該演算対象領域に対し前記中心領域と前記周辺領域の区別なく前記階調変換処理を実行することを特徴とする画像処理装置。
【請求項２】
前記ＣＰＵは、前記複数のスレッドのそれぞれに対応して設けられたプログラムキャッシュメモリーを含み、
前記コアは、前記プログラムキャッシュメモリーに対し、前記階調変換処理を実行するために必要なプログラムを前記メインメモリーから取得させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記演算対象領域のデータサイズは、前記データキャッシュメモリーのラインサイズに基づき決定されることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記コアは、前記ＣＰＵにおいて並列稼働が可能な前記スレッドの数である最大スレッド数を取得し、前記最大スレッド数を前記階調変換処理に使用する前記スレッドの数として登録することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記コアは、前記メインメモリーからの画像データを、前記登録されたスレッドのうち前記階調変換処理を行っていない待機中のスレッドに対応する前記データキャッシュメモリーに転送すると共に、前記階調変換処理の終了後直ちに前記データキャッシュメモリー内の画像データを前記メインメモリーに返送することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記ＣＰＵは、ラスター変換処理及び色分版処理により前記画像データを生成する工程を含む前工程と、前記画像データに対し階調変換処理を施す工程を含む後工程とをそれぞれ実行可能であり、
前記コアは、前記ＣＰＵにおいて並列稼働が可能な前記スレッドの数である最大スレッド数を取得し、取得した前記最大スレッド数から、前記前工程と前記後工程に対するスレッド数の割り振りを算出し、算出されたスレッド数を前記後工程の処理に使用する前記スレッドの数として登録することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記ＣＰＵは、前記複数のスレッドのそれぞれに対応して設けられたプログラムキャッシュメモリーを含み、
前記コアは、前記ラスター変換処理、前記色分版処理、前記階調変換処理のそれぞれの工程において、前記プログラムキャッシュメモリーに対し、各工程を実行するために必要なプログラムを前記メインメモリーから取得させることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記メインメモリーは、揮発性のメモリーであることを特徴とする請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施形態は、デジタル印刷装置の画像処理装置に関する。
【背景技術】
【０００２】
現在、社会の潮流は、従来の少品種・大量生産から、多品種・少量生産に変化しつつある。書籍、パンフレット、マガジン、新聞に代表される出版物の生産分野においても、高速オフセット輪転機を使用した少品種・大量生産の時代を経て、業務用のデジタル印刷装置を使用した多品種・少量生産が注目され始めている。【０００３】
デジタル印刷装置の一例として、熱や圧力によりインクを紙に噴射して印字するインクジェット式の印刷装置が知られている。また、このような印刷装置において、複数の色（例えば、シアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ））に対応する複数のプリントヘッドを備えた印刷装置が知られている。【０００４】
上述のインクジェット式の印刷装置において、複数の印刷色分（例えば、前記Ｃ・Ｍ・Ｙ・Ｋの４色分）をシャトル型のプリントヘッドに一つにまとめて配置し、枚葉紙に対して印刷を行うキャリッジ方式が知られている。当該方式は、緻密な画像の描写に適している。また、他の方式として、一方向へ移動する連続紙に対し、単色印刷用の複数のプリントヘッドが、紙幅方向に紙幅を覆うように配置されてプリントヘッド群を形成し、さらに上述の単色印刷用プリントヘッド群が、連続紙の移動方向に対して複数の印刷色分（例えば前記Ｃ・Ｍ・Ｙ・Ｋの４色分）配置されたシングルパス方式が知られている。当該方式は、高速印刷に適している。【０００５】
上述の業務用のデジタル印刷装置において画像データを印刷する場合、処理するデータ量が、一般の家庭用及び事務用の印刷におけるデータ量に比べ極めて大きいことから、処理に長時間を必要とする。このため従来は、いわゆるラスター変換処理（ＲＩＰ：Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）、４色分版処理、階調変換処理、インクヘッドの配置に対応したデータの並べ替え処理、等の各種の画像処理は、印刷に先立って行われていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３１０４５０号公法
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、少部数のオンデマンド印刷（Ｐｒｉｎｔ  ｏｎ  Ｄｅｍａｎｄ：ＰＯＤ）や、短時間で仕上げる連続した少部数オンデマンド印刷（いわゆるオンザフライ印刷）への対応が必要なことから、印刷を行いながら同時に連続して、次の印刷のための画像処理を行うことが求められている。そして、上記のオンザフライ印刷及びこれに伴う画像処理を可能とするために、デジタル印刷装置における画像処理の高速化が求められている。【０００８】
本明細書に記載された実施形態は、上記の課題に鑑み、デジタル印刷装置における画像処理を高速化することを目的とする。
【課題を解決するための手段】
【０００９】
一実施形態に係る画像処理装置は、全領域のうち画像処理が必要な中心領域を除く周辺領域が、所定の値に設定された画像データを格納するメインメモリーと、前記画像データに階調変換処理を施すＣＰＵと、を備える。前記ＣＰＵは、複数のスレッドによる並列処理機能を有し、前記階調変換処理を並列的に実行する複数のコアと、前記複数のスレッドのそれぞれに対応して設けられたデータキャッシュメモリー及びプログラムキャッシュメモリーを含む。前記コアは、前記画像データのうち前記データキャッシュメモリーのサイズより小さい領域を演算対象領域として指定し、当該演算対象領域に対応する前記画像データを前記メインメモリーから前記データキャッシュメモリーに取得させると共に、当該演算対象領域に対し前記中心領域と前記周辺領域の区別なく前記階調変換処理を実行する。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る画像処理装置を含む印刷装置の全体模式図である。
【図２】プリントヘッド部の構成を示す平面模式図である。
【図３】印刷装置における画像処理の流れを示すフローチャートである。
【図４】画像処理装置の主要な構成を示すブロック図である。
【図５】階調変換処理を説明するための模式図である。
【図６】画像データを示す模式図である。
【図７】演算対象領域４８のデータサイズの決定方法を示すフローチャートである。
【図８】第１の実施形態に係る画像処理装置の動作を示すフローチャート（その１）である。
【図９】第１の実施形態に係る画像処理装置の動作を示すフローチャート（その２）である。
【図１０】第２の実施形態に係る画像処理装置の動作を示すフローチャートである。
【図１１】第３の実施形態に係る画像処理装置を含む印刷装置の全体模式図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態に係る画像処理装置について説明する。
【００１２】
［第１の実施形態］
図１は、第１の実施形態に係る画像処理装置を含む印刷装置ＩＪＰの全体模式図である。印刷装置ＩＪＰは、連続する印刷用紙６を下流側に向けて供給可能な給紙装置ＳＰと、印刷用紙６にインクジェット印刷をするためのプリントヘッド部５を有する印刷部７とを備える。図中の矢印Ｘは、印刷用紙６の移動方向を示している。また、印刷装置ＩＪＰは、印刷された印刷用紙６を回転ローラー３１によって下流側に送り出す紙搬送部３と、印刷された印刷用紙６を切断あるいは切断して折り畳む後処理装置７とを備える。回転ローラー３１には、所定の回転量ごとにパルス信号を出力するエンコーダー３２が併設されている。
【００１３】
プリントヘッド部５は、印刷用紙６の幅寸法よりも小さな複数のプリントヘッド（不図示）を、印刷用紙６の幅方向に並べて配置したプリントヘッド群５１を備える。本実施例では、４色を同時に印刷可能なプリントヘッド群５１ｃ，５１ｍ，５１ｙ，５１ｋを採用しており、それぞれがシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｂ）の色に対応している。また、プリントヘッド部５には、プリントヘッド部５を制御するプリントヘッド制御部４が接続されている。
【００１４】
プリントヘッド制御部４は、処理サーバー１に接続されている。この処理サーバー１は、入力された画像データをラスター変換処理（ＲＩＰ）する機能、色分版処理する機能、階調変換処理する機能、及び面付け処理する機能を有する。また、処理サーバー１は、印刷部数および片面・両面印刷の設定をするジョブ操作機能、印刷準備が完了したジョブのスケジュール管理機能、印刷装置ＩＪＰの制御機能、及び印刷状況の表示機能を有する。処理サーバー１は、プリントヘッド制御装置４と接続されると共に、印刷装置制御部２にも接続されている。印刷装置制御部２は、印刷装置ＩＪＰのプリントヘッド部５を除く各装置の作動を制御する。
【００１５】
図２は、プリントヘッド部５におけるプリントヘッドの配置を示す平面模式図である。連続紙である印刷用紙６の移動方向（紙面左右方向）に、印刷色分に対応した４つのプリントヘッド群５１ｃ（Ｃ：シアン）、５１ｍ（Ｍ：マゼンダ）、５１ｙ（Ｙ：イエロー）、５１ｋ（Ｋ：ブラック）が配置されている。各プリントヘッド群は、印刷用紙６の幅方向（紙面上下方向）に千鳥状に配置された４つのプリントヘッド５０を含む。印刷用紙６の幅を６Ｌ、当該方向におけるプリントヘッド５０の長さを５０Ｌとすると、プリントヘッド５０の配置幅（５０Ｌ×４以下）が印刷用紙６の紙幅（６Ｌ）より大きくなるように、プリントヘッド５０及び印刷用紙６の幅の長さが設定されている。
【００１６】
図３は、印刷装置ＩＪＰにおける画像処理の流れを示すフローチャートである。最初に、処理サーバー１が、他の情報処理端末や記憶媒体等から入力された画像データ（例えば、ＰＤＦ（Portable Document Format）、ＰＳ（Postscript）等の形式で表現される画像データ）に対し、ラスター変換処理を行う（ステップＳ１０）。ラスター変換とは、例えばベクトル量で表現された線画像のデータ等を、点（ドット）の集合であるラスターの画像データに変換する処理をいう。
【００１７】
次に、処理サーバー１は、色分版処理（ステップＳ１２）を実行する。色分版処理とは、カラーの画像データを、複数の色ごとのデータに分解する処理をいう。本実施形態では、前述のようにシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｂ）への４色分版処理を行う例について説明するが、これ以外の色及び分版数を用いることも可能である。
【００１８】
次に、処理サーバー１は、階調変換処理（ステップＳ１４）を実行する。階調変換処理とは、高い分解能（例えば、８ビット以上）をもつ連続階調の色データを、印刷装置が出力可能な階調数まで減らすことで、物理的なドット配置を決定する処理をいう。階調変換処理は、誤差拡散処理・ディザリング処理などと呼ばれる場合もある。階調変換処理は、画像データをインクの液適量に変換する液滴変換処理の一貫として行われるものであり、その詳細については図５で説明する。
【００１９】
図３に戻り、処理サーバー１は、階調変換処理の完了した画像データに対し、面付け処理等の必要な処理を施した上で、当該データをプリントヘッド制御部４へと転送する。以下の説明では、処理サーバー１にて実行される処理のうち、ステップＳ１２の色分版処理までを「前工程」、ステップＳ１４の階調変換処理以降の処理を「後工程」と称する。
【００２０】
次に、プリントヘッド制御部４は、処理サーバー１から送られた画像データを、プリントヘッド部５における個々のプリントヘッド（図３参照）の配置に基づき、並べ替える処理を行う（ステップＳ１６）。その後、プリントヘッド制御部４は、処理サーバー１からの指令に基づき、後続の印刷工程を実行する。
【００２１】
印刷工程では、ロール紙Ｒから所定方向（図１の矢印Ｘ方向）に送り出された印刷用紙６に対し、プリントヘッド部５による文字・画像の描画（印刷）が行われる。プリントヘッド部５は、プリントヘッド制御部４から入力される描画のタイミング信号に基づき、印刷を実行する。
【００２２】
本実施形態に係る印刷装置ＩＪＰでは、処理サーバー１からプリントヘッド制御部４への画像データの転送は、上述の印刷工程と並行してリアルタイムに行われる。しかし、処理サーバー１における前工程（ラスター変換処理及び色分版処理）並びに後工程（階調変換処理）は、それぞれ印刷工程に先だって行われるため、印刷開始前の画像処理による待機時間が必要となる。当該待機時間が長くなると、印刷工程を行い、且つ、連続して次の入稿及び画像処理を行う印刷方式、いわゆるオンザフライ印刷の実現が難しくなってしまう。そこで、印刷開始前の時間の短縮を図り、前記オンザフライ印刷を実現にするために、処理サーバー１における画像処理を高速化することが課題となっている。
【００２３】
図４は、画像処理装置の一例である処理サーバー１の主要な構成を示すブロック図である。処理サーバー１のシステムボード１０上には、ＣＰＵ１２（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びメインメモリー１４が配置されている。メインメモリー１４には、高速動作が可能なメモリー（例えば、揮発性のＲＡＭ（Random Access Memory）等）を用いることが好ましい。本実施形態では、処理サーバー１が、ＣＰＵ及びメインメモリーをそれぞれ２つずつ備えている。以下、両者を区別する必要がある場合には、それぞれ第１ＣＰＵ１２ａ及び第２ＣＰＵ１２ｂ、並びに第１メインメモリー１４ａ及び第２メインメモリー１４ｂと称する（他の構成においても同様とする）。
【００２４】
各ＣＰＵ１２は、それぞれが独立して演算処理を行う複数のコア１６を備えている。本実施形態では、各ＣＰＵ１２が、第１コア１６ａ〜第６コア１６ｆの６つのコアを備えているが、コアの数はこれ以外であってもよい。更に、各コア１６は、複数のスレッド１８による並列処理機能を有する。本実施例では、コア１つあたり２つのスレッド（第１スレッド１８ａ及び第２スレッド１８ｂ）を有する構成となっている。
【００２５】
また、ＣＰＵ１２は、データ記憶領域であるプログラムキャッシュメモリー２０及びデータキャッシュメモリー２２を備えている。これらは、各コアにおいて演算処理が行われる領域（不図示）とは別に設けられた記憶部であり、メインメモリー１４同士の間におけるデータ転送に比べ、より高速なデータ転送が可能となっている。概念的には、各コア１６内の各スレッド１８に対し、プログラムキャッシュメモリー２０及びデータキャッシュメモリー２２が１つずつ設けられている。
【００２６】
図中に示す白抜きの矢印は、各ブロック間で転送されるデータを示すものである。本実施形態の印刷装置ＩＪＰでは、画像データ及びプログラムデータが主に転送の対象となる。これらのデータは、不揮発性の記憶装置を介さずに、ＣＰＵ１２とメインメモリー１４との間で直接転送がされることから、データ転送の高速化を図ることが可能となっている。
【００２７】
また、図中の実線矢印ＤＡＴＡは画像データの転送方向を、図中の点線矢印ＰＧＭはプログラムデータの転送方向をそれぞれ示す。画像データ（ＤＡＴＡ）は、データキャッシュメモリー２２とメインメモリー１４との間で双方向に転送されるが、プログラムデータ（ＰＧＭ）は、メインメモリー１４からプログラムキャッシュメモリー２０に対して一方向にのみ転送される。用済みになったプログラムデータは、次のデータ書き込みのタイミングで、プログラムキャッシュメモリー２０上において次のデータが上書きされることにより書き換えられる。
【００２８】
上記のように、本実施形態に係る画像処理装置は、複数のＣＰＵ１２ａ〜１２ｂ内に複数のコア１６ａ〜１６ｆが設けられ、更に各コア１６において複数のスレッド１８ａ〜１８ｂによる並列処理が可能となっている。これにより、図３で示した前工程及び後工程の画像処理を並列処理により行うことができる。しかし、単に画像処理を並列化しただけでは、画像処理の高速化を十分に図ることができない。以下、この点について説明する。
【００２９】
図５は、画像処理のうち図３のステップＳ１４における階調変換処理（階調変換処理）を説明するための模式図であり、いわゆる「誤差拡散」と称される階調変換処理を示すものである。図５（ａ）、（ｃ）、（ｅ）、（ｇ）は、それぞれドット状に配置された画像データを示している。図５（ｂ）、（ｄ）、（ｆ）、（ｈ）は、それぞれ誤差拡散テーブルを示している。
【００３０】
図５は、２５６階調の画像データにおける２値化処理の例を示す図である。閾値を１２８として、１２８よりも小さいデータは０に、１２８以上のデータは２５６にそれぞれ変換される。階調変換前のデータと階調変換後のデータの差は、「誤差（Ｅｒｒ）」となる。図５（ｂ）に示すように、「Ｅｒｒ」で示されるドットを中心に、右に７／１６、右下に１／１６、下に５／１６、左下に３／１６の割合で誤差が拡散されるようになっている。図５（ｂ）の誤差拡散テーブルの値は、任意に設定することが可能である。
【００３１】
図５（ａ）では、左上のドット（値が「０」となっている部分）のみ、階調変換処理が終了している。以降の図において、階調変換処理が終了したドットをハッチで示すものとする。
【００３２】
図５（ｃ）では、上段の左から２番目のドットの値が１００（＜１２８）であるため、階調変換後の値は「０」となる。このとき、誤差はＥｒｒ＝１００−０＝１００となる。その結果、図５（ｄ）に示す誤差拡散テーブルの拡散誤差（右隣のドットから時計回りに４４、６、３１、１９）が、図５（ｃ）における周囲のドットに加算される（１４４、１０６、１３１、１１９）。
【００３３】
図５（ｅ）では、上段の左から３番目のドットの値が１４４（≧１２８）であるため、階調変換後の値は「２５５」となる。このとき、誤差はＥｒｒ＝１４４−２５５＝−１１１となり、負の値となる。その結果、図５（ｆ）に示す誤差拡散テーブルの拡散誤差（右隣のドットから時計回りに−４８、−７、−３５、−２１）が、図５（ｅ）における周囲のドットに加算される（５２、９３、７１、１１０）。
【００３４】
図５（ｇ）では、上段の左から４番目のドットの値が５２（＜１２８）であるため、階調変換後の値は「０」となる。このとき、誤差はＥｒｒ＝５２−０＝５２となる。その結果、図５（ｈ）に示す誤差拡散テーブルの拡散誤差（右隣のドットから時計回りに２３、３、１６、１０）が、図５（ｇ）における周囲のドットに加算される（１２３、１０３、１０９、８１）。
【００３５】
上記の誤差拡散によれば、２値化の際に生じた誤差を所定割合で周囲のドットに加算することにより、単純に２値化を行う場合に比べ、階調変換処理後の画像の見た目を階調変換処理前のものに近づけることができる。
【００３６】
図６は、画像データを示す模式図である。図６（ａ）は本実施形態における画像データを、図６（ｂ）は比較対象としての一般的な画像データをそれぞれ示す。図６（ｂ）に示すように、一般的な画像データでは、全領域４０のうち画像変換処理が必要な領域（以下、「中心領域４２」とする）が、その他の領域（以下、「周辺領域４４」とする）と境界線４６により区切られている。従って、図５で示した階調変換処理の対象となる領域（以下、「演算対象領域４８」とする）となるのは、中心領域４２に存在する画像データ（ａ〜ｆ）に限られる。この場合、ＣＰＵ１２のコア１６は、境界線４６の判定処理を逐一行いながら階調変換処理を行わなくてはならないため、画像処理に時間がかかってしまうという課題がある。
【００３７】
これに対し、図６（ａ）に示す本実施形態では、周辺領域４４が予め所定の値（本実施形態では「０」とする）に設定されている。換言すれば、中心領域４２と周辺領域４４との間には境界線４６が存在しないため、図６（ａ）における演算対象領域４８は、周辺領域４４を含み得る。しかし、周辺領域４４の「０」が配置された部分のドットは、図５で説明した誤差拡散を考慮したとしても、階調変換処理後の値が「０」となるため、実質的に階調変換処理に影響を与えない。この場合、ＣＰＵ１２のコア１６は、境界線４６の判定処理を逐一行う必要がないため、画像処理の時間を短縮することができる。なお、本実施例では、周辺領域４４に予め設定しておく所定の値を「０」としたが、当該所定の値は「０」に限定されるものではなく、階調変換処理において中心領域４２のデータと混ざり合わない（影響を与えない）ものであれば、任意の値を用いることができる。
【００３８】
図６（ａ）に示す全領域４０の画像データは、メインメモリー１４上に存在するものである。階調変換処理においては、ＣＰＵ１２のコア１６が、演算対象領域４８に含まれる画像データを、対応するスレッド１８内のデータキャッシュメモリー２２内に転送する。これにより、演算対象領域４８に階調変換処理を実行している間は、データの転送はスレッド１８内部のプログラムキャッシュメモリー２０とデータキャッシュメモリー２２との間で行われる。その結果、メインメモリー１４とデータキャッシュメモリー２２との間のデータ転送量を削減することが可能となり、画像処理の時間を短縮することができる。演算対象領域４８の階調変換処理が終了したら、コア１６は、当該処理済みのデータをデータキャッシュメモリー２２からメインメモリー１４に転送すると共に、新たな未処理データをメインメモリー１４から取得する。
【００３９】
以上のように、本実施形態に係る画像処理装置によれば、ＣＰＵ１２内のコア１６が、画像データのうちデータキャッシュメモリー２２のサイズより小さい領域を演算対象領域４８として指定する。そして、コア１６は、演算対象領域４８に対応する画像データを、メインメモリー１４からデータキャッシュメモリー２２に取得させると共に、演算対象領域４８に対し中心領域４２と周辺領域４４の区別なく階調変換処理を実行する。これにより、境界線４６の判定処理を逐一行う必要がなく、且つメインメモリー１４とデータキャッシュメモリー２２との間のデータ転送量を削減することができる。このように、図４で説明した画像処理の並列化に加え、上記の工夫を行うことにより、画像処理の大幅な高速化を図ることができる。
【００４０】
上記形態において、ＣＰＵ１２内のプログラムキャッシュメモリー２０は、コア１６が階調変換処理を実行するためのプログラムを格納可能なサイズであることが好ましい。この場合、プログラムサイズの方を、プログラムキャッシュメモリー２０に格納可能なように縮小してもよい。これにより、階調変換処理を行う際に必要なプログラムを、処理の開始時にメインメモリー１４から読み込むだけで済み、以後はメインメモリー１４とプログラムキャッシュメモリー２０との間でプログラムデータの転送を行う必要がなくなる。その結果、メインメモリー１４とプログラムキャッシュメモリー２０との間のデータ転送量を削減することができるため、画像処理の高速化を更に図ることができる。
【００４１】
上記形態において、メインメモリー１４からデータキャッシュメモリー２２に画像データを転送する際に、データの余りが生じない構成とすることが好ましい。以下、この点について説明する。
【００４２】
図７は、演算対象領域のデータサイズの決定方法を示すフローチャートである。最初に、処理サーバー１の制御部として機能するコア１６が、ＣＰＵ１２内のデータキャッシュメモリー２２のラインサイズ（１回当たりの転送で取り込むデータの量、以下「キャッシュラインサイズ」とする）を取得する（ステップＳ２０）。このキャッシュラインサイズは、ＣＰＵの仕様により様々なサイズ（例えば、６４バイト、３２バイト等）が想定される。その後、コア１６は、ステップＳ２０で取得したキャッシュラインサイズに基づき、図６（ａ）の演算対象領域４８のデータサイズを決定する（ステップＳ２２）。
【００４３】
ここで、演算対象領域４８のデータサイズは、データキャッシュメモリー２２データ転送に際し、余りが出ないように決定することが好ましい。例えば、キャッシュラインサイズが６４バイトなら、演算対象領域４８のデータサイズも６４バイトというように、演算対象領域４８をキャッシュラインサイズ以下のデータサイズとすることで、１回あたりの転送量に余りが出ないようにすることが好ましい。これにより、演算対象領域４８のデータサイズをキャッシュラインサイズより大きく設定した場合に比べ、メインメモリー１４とデータキャッシュメモリー２２との間のデータ転送回数を最小回数に減らすことができる。その結果、画像処理の高速化を図ることができる。（上記の例で、例えば演算対象領域４８のデータサイズが６５バイトの場合、ラインサイズが６４バイトだと２回の転送が必要となり、倍の転送回数が必要となってしまう）。
【００４４】
また、上記形態において、メインメモリー１４からデータキャッシュメモリー２２に画像データを転送する際に、未処理データの処理待ちが発生しないような構成にすることが好ましい。以下、この点について詳細に説明する。
【００４５】
図８は、ＣＰＵ１２における並列稼働スレッド数の登録方法を示すフローチャートである。最初に、処理サーバー１の制御部として機能するコア１６が、同一の処理速度を有するＣＰＵ１２において、並列稼働が可能な最大スレッド数を取得する（ステップＳ３０）。この最大スレッド数は、複数のＣＰＵ１２、複数のコア１６、及び複数のスレッド１８により実現されるものであり、ＣＰＵの仕様により様々な数（例えば、１つのコア１６に対し１スレッドまたは２スレッド等）が想定される。最大スレッド数は、例えば、ＣＰＵ１２を制御するオペレーティングシステム（ＯＳ：Operating System）から取得することができる。その後、コア１６は、ステップＳ３０で取得した最大スレッド数を、階調変換処理を行う後工程用のスレッド数として登録する（ステップＳ３１）。その後、ＣＰＵ１２は、登録された数に対応するスレッド１８を起動する（ステップＳ３２）。これにより、上記の数のスレッド１８が、メインメモリー１４から未処理の画像データを受信可能で、且つ画像データが転送された後直ちに階調変換処理を行うことが可能な稼働状態となる。なお、以下の説明において、稼働中で且つ処理中でないスレッド１８の状態を「待機状態」と称する場合がある。
【００４６】
ここで、スレッド１８の並列稼働数を、ＣＰＵ１２の負荷に応じて調整するようにした比較形態について説明する。この場合、メインメモリー１４から未処理データが一時に大量に送り込まれた後、ＣＰＵ１２の負荷が高まるに従って、並列稼働が可能な最大スレッド数に達するまで、順次スレッドが起動されていく。その結果、スレッド１８の並列稼働数（起動スレッドの数）が最大スレッド数に達するまでの間、未処理データの処理待ちが発生してしまう。
【００４７】
これに対し、図８では、予めＣＰＵ１２において並列稼働が可能なスレッドの最大数を取得しておき、その数値を、階調変換処理を行う後工程用のスレッド数として登録しておく。これにより、上記の比較形態では必要最小限のスレッド（例えば、２スレッド）しか起動されていないのに対し、本実施形態では並列稼働が可能な最大数のスレッド（例えば、２４スレッド）が常時起動され、並列稼働可能の状態で待機している。その結果、メインメモリー１４からデータキャッシュメモリー２２へ、未処理データが一時に大量に送り込まれても、処理待ちが発生することなく、直ちに処理を開始することができる。
【００４８】
例えば、上記の具体例において、演算対象領域４８のキャシュラインサイズに整えられたデータが、スレッド１８に対し２０個分送り込まれた場合について説明する。比較形態によれば、並列稼働可能の状態で待機しているのは２スレッドのみであるから、データ処理が開始されるのは２０個のデータのうちわずか２個のみである。残り１８個のデータについては、ＣＰＵ１２の負荷が高まり、休眠状態のスレッドが起動するまで、処理待ちの状態となってしまう。これに対し、図８の本実施形態によれば、予め登録された２４スレッドが待機状態にあり、送り込まれた全２０個分のデータを直ちに並列処理することができる。
【００４９】
以上のように、メインメモリー１４からデータキャッシュメモリー２２へのデータ転送に際し、未処理データの処理待ちが発生しないようにするためには、後工程の処理を並列して行うスレッド数を予め決定（登録）しておくことが好ましい。
【００５０】
また、上記形態において、メインメモリー１４とデータキャッシュメモリー２２との間でデータを転送する際に、相互にデータが滞留しない構成とすることが好ましい。以下、この点について詳細に説明する。
【００５１】
図９は、メインメモリー１４とデータキャッシュメモリー２２における、データ転送処理を示すフローチャートである。最初に、ＣＰＵ１２が、登録済みの任意のスレッド１８に対し、当該スレッドが処理中であるか否かを判定する（ステップＳ１０）。当該判定処理でＮＯ（処理中でない）と判定された場合、ＣＰＵ１２は、メインメモリー１４内にある演算対象領域４８の未処理の画像データを、当該処理中でないスレッド１８に転送する（ステップＳ４１）。転送された画像データは、当該スレッド１８内のデータキャッシュメモリー２２内に格納される。
【００５２】
次に、当該スレッド１８を含むコア１６は、転送された未処理画像データの階調変換処理を開始する（ステップＳ４２）。ＣＰＵ１２は、コア１６による階調変換処理が終了したか否かを判定し（ステップＳ４３）、処理が終了したと判定した場合には（ステップＳ４３でＹＥＳ）、処理済みの画像データを直ちに再度メインメモリー１４に返送する（ステップＳ４４）。
【００５３】
ここで、階調変換処理の終了後、処理済みの画像データがデータキャッシュメモリー２２内に滞留していると、スレッド１８が待機状態に戻れないため、次の処理の実行ができなくなる。これに対し、図９のステップＳ４４のように、データキャッシュメモリー２２内にある処理済みの画像データを、速やかにメインメモリー１４に返送することで、スレッド１８を待機状態に復帰させ、次の処理を速やかに行うことができる。反対に、図９のステップＳ４０〜Ｓ４１のように、メインメモリー１４からスレッド１８側に未処理の画像データを転送する際には、後工程用に登録済みで、且つ処理中でない待機中のスレッド１８にデータを送り込むことにより、処理待ちの発生を抑制することができる。以上のように、メインメモリー１４とデータキャッシュメモリー２２との間において、画像データの転送を行う際には、相互にデータが滞留しない構成とすることが好ましい。
【００５４】
また、上記形態において、メインメモリー１４に返送された処理済みの画像データは、転送時間の長い不揮発性の記憶装置に記憶することなく、直ちに次の工程（図３のステップ１６に示すインクヘッド用並べ替え処理）に転送することが好ましい。これにより、メインメモリー１４は、スレッド１８からの処理済みの画像データを常時受信可能な状態となり、データキャシュメモリー２２内における処理済みの画像データの滞留を抑制することができる。その結果、画像処理の高速化を図ることができる。
【００５５】
また、上記形態において、ＣＰＵ１２は、階調変換処理が完了した画像データのプリントヘッド制御部４への出力が完了した段階で、メインメモリー１４内の画像データを消去せずに、次の画像データをメインメモリー１４に上書きすることが好ましい。これにより、実行ステップを減らすことができる。また、本実施形態で説明した画像データ（未処理の画像データ及び処理済みの画像データ）の記憶には、不揮発性の記憶装置を用いないことが好ましい。これにより、当該不揮発性の記憶装置とメインメモリー１４間のデータ転送における時間がかからず、印刷を実行しながら大容量の画像データをリアルタイムに処理すること（オンザフライ印刷）が可能となり、画像処理の高速化を図ることができる。
【００５６】
上記形態において、ＣＰＵ１２のコア１６は、ラスター変換処理、色分版処理、階調変換処理のそれぞれの工程において、プログラムキャッシュメモリー２２に対し、各工程を実行するために必要なプログラムをメインメモリー１４から取得させることが好ましい。このように、階調変換処理の場合だけでなく、他の画像処理工程においても、処理に必要なプログラムをプログラムキャッシュメモリー２２に転送することで、メインメモリー１４とプログラムキャッシュメモリー２０との間のデータ転送量を削減することができる。その結果、画像処理の高速化を更に図ることができる。
【００５７】
［第２の実施形態］
第２の実施形態は、ＣＰＵにおける並列化処理のリソースの割り当てを工夫した例である。本実施形態に係る印刷装置及び画像処理装置の構成は、第１の実施形態にて説明したものと同様であり、詳細な説明を省略する。
【００５８】
図３にて説明したように、処理サーバー１（画像処理装置）における画像処理は、前工程と後工程に分けることができる。同一の処理速度を有するＣＰＵ１２を用いて比較すると、一般的には後工程の方が、前工程に比べて処理に要する時間が長い。このため、図４で説明した画像処理の並列化において、前工程と後工程を同一割合で並列化すると、前工程の処理が先に終了してしまい、処理待ちが発生するため画像処理に時間がかかってしまう。また、前工程の並列化は、ラスター変換処理を行うためのプログラムのライセンスを複数取得する必要があり、コスト的にも好ましくないという課題があった。
【００５９】
図１０は、第２の実施形態に係る画像処理装置の動作を示すフローチャートである。最初に、処理サーバー１の制御部として機能するコア１６が、ＣＰＵ１２において並行稼働が可能な最大スレッド数を取得する（ステップＳ５０）。次に、コア１６は、前工程及び後工程における演算処理の所要時間の割合に応じて、前工程及び後工程に対する最適なスレッド数の割り振りを算出する（ステップＳ５１）。次に、コア１６は、ステップＳ５１にて算出された後工程用のスレッド数を登録する（ステップＳ５２）。次に、ＣＰＵ１２は、登録された数に対応するスレッド１８を起動する（ステップＳ５３）。これにより、後工程の処理に必要な数のスレッド１８が稼働状態となる。その後、ＣＰＵ１２は、図９のステップＳ４０〜Ｓ４１に示すように、後工程用に登録済みで、且つ処理を行っていない待機中のスレッド１８に対し、未処理の画像データを転送する。
【００６０】
例えば、本実施形態では、各ＣＰＵ１２において、６つのコア１６及び計１２個のスレッド１８を有するため、並列処理数は１２となっている。ここで、例えば前工程の所要時間が１に対して、後工程の所要時間が８と判断された場合、並列処理のリソースは１：８の割合で割り当てることが好ましい。例えば、前工程に対し１つのコア１６のうち１つまたは２つのスレッド１８を割り当て、残りのコア１６及びスレッド１８は、後工程に対し割り当てることが考えられる。これにより、各工程間における処理待ち時間を短縮し、画像処理の高速化を更に図ることができる。更に、前工程のラスター変換処理に必要なライセンスの取得数を抑制することができるため、印刷システムを低コストで実現することができる。
【００６１】
［第３の実施形態］
図１１は、第３の実施形態に係る画像処理装置を含む印刷装置の全体模式図である。第１の実施形態（図１）と異なり、処理サーバー１及びプリントヘッド制御部４が、同一の筐体８（サーバーラック）内に収容されている。その他の構成は第１の実施形態と同様であるため、詳細な説明を省略する。
【００６２】
上記構成によれば、処理サーバー１及びプリントヘッド制御部４の接続を短距離で行うことができるため、データの転送時間の短縮化が可能になり、また、サーバーの設置スペースを半分に削減することができる。また、高価な高速デ−タ転送用光ケーブルを、長距離引きまわす必要がなくなるため、故障のリスクを減らし、コストダウンを図ることができる。また、処理サーバー１及びプリントヘッド制御部４が、１台のサーバーラックにまとめられていることで、サーバーの保守・管理が容易となると共に、電源設備やサーバーラック用の床の補強などの建物側の設備の対応も１箇所で済み、コストダウンを図ることができる。更に、サーバーラック内部の電源等も一つにまとめることができるため、エネルギーの利用効率が上がり、省エネとなる。その結果、ランニングコストを下げることも可能となる。
【００６３】
［その他の実施形態］
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６４】
１…処理サーバー、２…印刷装置制御部、３…紙搬送部、４…プリントヘッド制御部、５…プリントヘッド部、６…印刷用紙、７…印刷部、８…筐体、１０…システムボード、１２…ＣＰＵ、１４…メインメモリー、１６…コア、１８…スレッド、２０…プログラムキャッシュメモリー、２２…データキャッシュメモリー、４０…全領域、４２…中心領域、４４…周辺領域、４６…境界線、４８…演算対象領域、Ｒ…巻取紙、Ｘ…印刷用紙移動方向
【要約】
周辺領域４４が所定の値に設定された画像データを格納するメインメモリー１４と、画像データに階調変換処理を施すＣＰＵ１２と、を備える。ＣＰＵ１２は、複数のスレッド１８による並列処理機能を有し階調変換処理を並列的に実行する複数のコア１６と、複数のスレッド１８のそれぞれに対応して設けられたデータキャッシュメモリー２２及びプログラムキャッシュメモリー２０を含む。コア１６は、画像データのうちデータキャッシュメモリー２２のサイズより小さい領域を演算対象領域４８として指定し、当該演算対象領域４８に対応する画像データをメインメモリー１４からデータキャッシュメモリー２２に取得させると共に、当該演算対象領域４８に対し中心領域４２と周辺領域４４の区別なく階調変換処理を実行する。【図１】
0005744360.tif 000002
【図２】
0005744360.tif 000003
【図３】
0005744360.tif 000004
【図４】
0005744360.tif 000005
【図５】
0005744360.tif 000006
【図６】
0005744360.tif 000007
【図７】
0005744360.tif 000008
【図８】
0005744360.tif 000009
【図９】
0005744360.tif 000010
【図１０】
0005744360.tif 000011
【図１１】
0005744360.tif 000012