(57)【要約】【課題】画素単位でＳＩＭＤ命令により属性に応じた画像処理を施すことができない。【解決手段】画像処理装置は、画像データに対応する属性データを参照して、画像データに含まれる各画素の画素値を各画素の属性に応じた格納領域に順次格納する。そして、格納された画素値に対して属性毎にＳＩＭＤ命令を実行する。そして、演算された画素値を、演算された順序と異なる順序で出力する。【選択図】図２
2015207231.tif 000002
【特許請求の範囲】
【請求項１】
画像データと前記画像データに対応する属性データとを入力する入力手段と、
前記属性データを参照して、前記画像データに含まれる各画素の画素値を各画素の属性に応じた格納領域に順次格納する格納手段と、
前記格納手段に格納された画素値に対して属性毎にＳＩＭＤ命令を実行する演算手段と、
前記演算手段で演算された画素値を、前記演算手段で演算された順序と異なる順序で出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記格納手段に格納される各属性の画素の量を示す情報を取得する取得手段をさらに有し、
前記演算手段は、前記ＳＩＭＤ命令を実行する対象の画素の画素値を前記情報に基づいて前記格納手段から読み出すことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得手段は、前記情報として前記入力手段で入力された属性データから各属性の画素数を取得することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記取得手段は、前記情報として前記格納手段に格納されている属性毎の画素のアドレス情報を取得することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記演算手段は、同じ属性の画素値を格納した配列と、該属性に応じた係数を格納した配列とを用いて前記ＳＩＭＤ命令を実行することを特徴とする請求項１から４のいずれか一項に記載の画像処理装置。
【請求項６】
前記演算手段は、前記格納手段に格納されている第１の属性の画素の画素値に対してＳＩＭＤ命令を実行した後に、前記格納手段に格納されている、前記第１の属性とは異なる第２の属性の画素の画素値に対してＳＩＭＤ命令を実行することを特徴とする請求項１から５のいずれか一項に記載の画像処理装置。
【請求項７】
前記入力手段は、所定のサイズの画素を単位として画像データと属性データとを入力し、前記出力手段で前記所定のサイズの画素の画素値が出力された後に次の単位のデータを入力することを特徴とする請求項１から６のいずれか一項に記載の画像処理装置。
【請求項８】
前記所定のサイズは、前記画像データの副走査方向の１ライン分であることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記属性は、文字、写真、または背景の少なくとも１つを含むことを特徴とする請求項１から８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記出力手段は、前記演算手段で演算された画素値を前記入力手段で入力された画像データに含まれる画素の画素順に対応する順序で出力することを特徴とする請求項１から９のいずれか一項に記載の画像処理装置。
【請求項１１】
画像データと前記画像データに対応する属性データとを入力する入力手段と、
前記画像データに含まれる各画素の画素値と各画素の属性に応じた係数とを入力順に従って、ＳＩＭＤ命令が実行される領域に格納する格納手段と、
前記領域に格納された画素値と係数とに対してＳＩＭＤ命令を実行する演算手段と、
前記演算手段で演算された画素値を出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項１２】
前記格納手段は、ＳＩＭＤ命令に対応した数の画素と係数とを前記領域に格納することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記演算手段は、前記領域に前記ＳＩＭＤ命令に対応した数の画素と係数とが格納される毎に前記ＳＩＭＤ命令を実行することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
画像データと前記画像データに対応する属性データとを入力する入力手段と、
前記属性データを参照して、前記画像データに含まれる各画素の画素値を各画素の属性に応じた格納領域に順次格納するメモリと、
前記メモリに格納された画素値に対して属性毎にＳＩＭＤ命令を実行するプロセッサと、
前記プロセッサで演算された画素値を、前記プロセッサで演算された順序と異なる順序で出力する出力手段と
を有するプロセッサシステム。
【請求項１５】
画像データと前記画像データに対応する属性データとを入力する入力手段と、
前記画像データに含まれる各画素の画素値と各画素の属性に応じた係数とを入力順に従って、ＳＩＭＤ命令が実行される領域に格納する格納手段と、
前記領域に格納された画素値と係数とに対してＳＩＭＤ命令を実行するプロセッサと、
前記プロセッサで演算された画素値を出力する出力手段と
を有するプロセッサシステム。
【請求項１６】
画像データと前記画像データに対応する属性データとを入力する入力ステップと、
前記属性データを参照して、前記画像データに含まれる各画素の画素値を各画素の属性に応じた格納領域に順次格納する格納ステップと、
前記格納された画素値に対して属性毎にＳＩＭＤ命令を実行する演算ステップと、
前記演算ステップで演算された画素値を、前記演算ステップで演算された順序と異なる順序で出力する出力ステップと
を有することを特徴とする画像処理方法。
【請求項１７】
画像データと前記画像データに対応する属性データとを入力する入力ステップと、
前記画像データに含まれる各画素の画素値と各画素の属性に応じた係数とを入力順に従って、ＳＩＭＤ命令が実行される領域に格納する格納ステップと、
前記領域に格納された画素値と係数とに対してＳＩＭＤ命令を実行する演算ステップと、
前記演算ステップで演算された画素値を出力する出力ステップと
を有することを特徴とする画像処理方法。
【請求項１８】
コンピュータを請求項１から１３のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令を処理可能なプロセッサを用いる画像処理機能を実現する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
ＳＩＭＤとは、１つの命令で複数のデータを扱う処理のことであり、並列性を高める処理である。例えば４つのデータに対してそれぞれ係数を加算する演算を行なう場合、４サイクルの命令ではなく、１サイクルの命令で演算を行なうことが可能となる。このようなＳＩＭＤ演算を属性情報に応じた画像処理に適用する場合、属性ごとにデータをまとめて処理することで演算効率を高めることができる。
【０００３】
特許文献１には、属性情報に基づいた画像処理を行なう際にＳＩＭＤ命令を考慮した手法が開示されている。特許文献１では、スキャン入力画像の属性情報を得るために入力画像を複数画素から成るブロックに分割してブロック単位で属性を判定する。そして、判定の結果得られた属性をそのブロック内の全ての画素の属性とみなしてそのブロック内の画素をまとめて処理することでＳＩＭＤ命令による演算効率を高める手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−８７１９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の手法では、画素単位でＳＩＭＤ命令により属性に応じた画像処理を施すことができない。従って、ページ記述言語（ＰＤＬ）コードから形成される画像のように画素単位で属性が変化するような画像に対してＳＩＭＤ命令を適用できなかった。
【課題を解決するための手段】
【０００６】
本発明にかかる画像処理装置は、画像データと前記画像データに対応する属性データとを入力する入力手段と、前記属性データを参照して、前記画像データに含まれる各画素の画素値を各画素の属性に応じた格納領域に順次格納する格納手段と、前記格納手段に格納された画素値に対して属性毎にＳＩＭＤ命令を実行する演算手段と、前記演算手段で演算された画素値を、前記演算手段で演算された順序と異なる順序で出力する出力手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ＳＩＭＤ命令によって画素単位で属性に応じた画像処理を施すことが可能になる。
【図面の簡単な説明】
【０００８】
【図１】実施例における画像処理装置１００のブロック図である。
【図２】実施例におけるコントローラ部１０１のブロック図である。
【図３】実施例における印刷処理全体フローである。
【図４】実施例１における画像用ローカルメモリ２０７のメモリマップである。
【図５】実施例１におけるＤＭＡＣ２０４の動きを示す模式図である。
【図６】実施例１におけるデータの流れを示すタイミングチャートである。
【図７】実施例１におけるＤＳＰ２０５のフローチャートである。
【図８】実施例１におけるＳＩＭＤ命令実行の模式図である。
【図９】実施例２における画像用ローカルメモリ２０７のメモリマップである。
【図１０】実施例２におけるＤＳＰ２０５のフローチャートである。
【図１１】実施例２におけるＳＩＭＤ命令実行の模式図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１０】
図１は、画像処理装置１００のハードウェア構成を示したブロック図である。実施例１における画像処理装置１００はコピー機能、プリンタ機能、ＦＡＸ機能、スキャナ機能を具備したＭＦＰを想定している。画像処理装置１００は、コントローラ部１０１、ＵＩ部１０２、プリンタ部１０３、スキャナ部１０４、メモリ部１０５、通信ＩＦ部１０６を有する。以下、各部の概略について説明する。
【００１１】
コントローラ部１０１は、画像処理装置１００全体の制御をつかさどる部分である。コントローラ部１０１はプリンタ部１０３やスキャナ部１０４をはじめとする各部と電気的に接続されており、高度な機能を実現する為の制御を行っている。詳細については後述する。
【００１２】
ＵＩ部１０２は、ユーザが画像処理装置を操作するためのユーザインタフェースを提供する。例えばＵＩ部１０２は液晶タッチパネルで構成され、ユーザに対して動作指示を行ったり、印刷するべき画像の印刷プレビューを表示したりする。
【００１３】
プリンタ部１０３は電気的な画像信号を記録紙上に可視像としてプリントする。プリンタ部１０３は、レーザビームプリンタやインクジェットプリンタにより構成される。
【００１４】
スキャナ部１０４は原稿画像を光学的に読み取って電気的な画像信号に変換する。スキャナ部１０４は、密着型イメージセンサ、読み取り駆動部、読取り点灯制御部等により構成される。読み取り駆動部によって搬送される密着型イメージセンサによって原稿全体がスキャンされる際、読み取り点灯制御部によって密着型イメージセンサ内部のＬＥＤが点灯制御される。同時に、密着型イメージセンサ内部のフォトセンサが原稿画像を光学的に読み取って、電気的な画像信号に変換する。
【００１５】
メモリ部１０５は、例えばＤＤＲ−ＳＤＲＡＭやＨＤＤなどのメモリデバイスであり、画像データを一時的に格納するだけでなく、画像処理装置の機能を実現する為にコントローラ部が使用する制御プログラムやデータなどを格納する。
【００１６】
通信ＩＦ部１０６は外部機器とのデータの送受を行うブロックであり、インターネット網やＬＡＮに接続したり、公衆電話回線に接続してＦＡＸ通信をおこなったり、ＵＳＢインタフェースによりＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）と接続する。
【００１７】
図２にコントローラ部の概略ブロック図を示す。コントローラ部１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１やＩ／Ｏ制御部２０２、画像処理部２０３、データバス２０８を包含している。ＣＰＵ２０１は、画像処理装置１００の全体制御を司る。Ｉ／Ｏ制御部２０２は、コントローラ部１０１とプリンタ部１０３やスキャナ部１０４といった他の構成要素とのデータ転送を制御する。本実施例では、コントローラ部１０１に画像処理部２０３を１つ含む構成としているが、複数含む構成でも可能である。ＣＰＵ２０１、Ｉ／Ｏ制御部２０２、画像処理部２０３は、データバス２０８を介して接続されている。
【００１８】
画像処理部２０３は、ＤＭＡＣ２０４とＳＩＭＤ命令を実行可能なＤＳＰ２０５と命令用ローカルメモリ２０６と、画像用ローカルメモリ２０７とを包含するプロセッサシステムである。ＳＩＭＤ命令は、複数のデータに対してそれぞれ係数を適用して同じ処理を施すプロセッサの命令である。本実施例においては、ＤＳＰ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）２０５は４つのデータに対して１回のＳＩＭＤ命令で同時に処理可能であるとする。
【００１９】
ＤＭＡＣ２０４はＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）機能を有するハードウェアであり、画像用ローカルメモリ２０７および命令用ローカルメモリ２０６とメモリ部１０５とのデータ転送を制御するコントローラである。画像処理部２０３では、所望の単位に分割された画像データを画像用ローカルメモリ２０７に格納し、その画像データに対してＤＳＰ２０５でＳＩＭＤ命令を用いて処理を行う。命令用ローカルメモリ２０６には、ＤＳＰ２０５が実行するファームウェアを格納する。ＤＳＰ２０５、命令用ローカルメモリ２０６、及び画像用ローカルメモリ２０７をプロセッサエレメント（ＰＥ）と呼ぶ。本実施例では、画像処理部２０３にプロセッサエレメントを１つ含む構成としているが、プロセッサエレメントの個数は１に限らない。さらに、ＤＳＰ２０５に命令キャッシュやデータキャッシュを有する構成も可能である。
【００２０】
図３は、実施例１におけるＣＰＵ２０１の動作を示すフローチャートである。実施例１では、通信ＩＦ部１０６がページ記述言語（ＰＤＬ）コードを受信しプリンタ部１０３に出力されるまでを述べる。特に画像処理部２０３の動作に関して詳しく述べる。
【００２１】
まず、ステップＳ３０１においてＣＰＵ２０１は通信ＩＦ部１０６を介してＰＤＬコードを受信し、受信したＰＤＬコードをメモリ部１０５に転送する。次に、ステップＳ３０２においてＣＰＵ２０１はメモリ部１０５に格納されているＰＤＬコードの展開を行い、画像データおよび属性データを生成し、画像データ及び属性データをメモリ部１０５に転送する。本実施例では、画像データは１画素あたりＲＧＢ（Ｒｅｄ  Ｇｒｅｅｎ  Ｂｌｕｅ）の３つの要素から成り、１画素あたりのそれぞれの要素のサイズは８ビットとする。また、属性データとは、対象とする画素の特徴を示す情報であり、例えば「文字」、「写真」、「背景」といった情報である。本実施例では、１画素あたりの属性データのサイズは８ビットとする。属性データは画素毎の属性を示すデータであり、画像データと同画素数分のデータである。属性データの生成については、例えばＰＤＬコードに含まれる描画命令を参照して生成することができる。文字を描画する文字描画命令、イメージを描画するイメージ描画命令というように、描画命令はオブジェクトの属性毎に存在する。ＣＰＵ２０１は、この描画命令を解析することで描画対象のオブジェクトを構成する画素について、例えば文字、写真、背景といった属性データを生成することができる。また、ＰＤＬコードを展開したビットマップ画像データを解析して属性データを生成してもよく、例えば特開平７−２３４９１８号公報に記載されているような公知の手法で行うことができる。本実施例では属性データの生成はいずれの手法で生成してもよく、本実施例の主眼ではないので詳細な説明は省略する。
【００２２】
次に、ステップＳ３０３においてＣＰＵ２０１はＤＭＡＣ２０４に対してメモリ部１０５に格納されている画像データおよび属性データをデータバス２０８を介して画像処理用ローカルメモリ２０７に転送する指示を行う。
【００２３】
ステップＳ３０４においてＣＰＵ２０１は、転送された画像データおよび属性データを用いてＤＳＰ２０５に対してプリント画像処理の実行指示を行う。プリント画像処理においては画像データに対して２値化処理、中間調処理、そしてＲＧＢｔｏＣＭＹＫ等色変換処理を行い中間調画像に変換する処理が行なわれる。さらに、プリント解像度にあわせて解像度変換し、画像の変倍、スムージング、濃度補正等の各種画像処理を施して高精細な画像データに変換する処理が行なわれる。本ステップについては、詳細を後述する。
【００２４】
ステップＳ３０５においてＣＰＵ２０１は、ＤＭＡＣ２０４に対してＤＳＰ２０５によって処理が施された画像データをデータバス２０８を介してメモリ部１０５へ転送する指示を行う。最後に、ステップＳ３０６においてＣＰＵ２０１は、メモリ部１０５に格納された画像データをプリンタ部１０３へ転送する。
【００２５】
以降、ステップＳ３０４のプリント画像処理におけるＤＳＰ２０５の動作を図を用いて説明する。本実施例では、プリント画像処理のうちＲＧＢ画像データに対して、ＳＩＭＤ命令を用いて画素ごとに色変換処理を行う際の動作について具体的に述べる。実際には、色変換だけでなく前述の通り複数の画像処理を繰り返し行うことで、プリント画像処理は実現されるものであるが、ここでは色変換を例に挙げて説明する。色変換に使用する計算式を以下に示す。
【００２６】
出力画像  ＝  ｛（入力画像  ＋  ＯＦＦＳＥＴ）×ＧＡＩＮ｝÷ＤＩＶ    （１）
上記式１においてＯｆｆｓｅｔ、Ｇａｉｎ、ＤＩＶの各係数が属性により異なる。
【００２７】
図４は、画像用ローカルメモリ２０７のメモリマップを示している。画像用ローカルメモリ２０７には、メモリ部１０５からＤＭＡＣ２０４を介して転送された画像データのうち、属性が文字である画像データを格納する文字属性入力画像データ格納領域４０１が存在する。同様に属性が写真である画像データを格納する写真属性入力画像データ格納領域４０２および属性が背景である画像データを格納する背景属性入力画像データ格納領域４０３が存在する。これらの入力画像データ格納領域には各画素の画素値が色毎に格納される。格納領域４０１から４０３の各色に付されている数字は理解を容易にするために付しているものであり、ＤＭＡＣ２０４を介して転送された画像データの画素の入力順を示している。
【００２８】
また、画像用ローカルメモリ２０７にはメモリ部１０５から転送された属性データを格納する属性データ格納領域４０４が存在する。属性データ格納領域４０４には、画素毎の属性を示す値がＤＭＡＣ２０４を介して転送された属性データの入力順に格納される。つまり、画像データの入力順の画素に対応する属性を表す値が順次格納される。
【００２９】
また、画像用ローカルメモリ２０７には属性データに含まれる「文字」、「写真」、「背景」の各属性のデータ量を示す情報を格納する属性データ量情報格納領域４０５が存在する。各属性のデータ量とは、各属性の画素の画素数のことである。なお、本実施例では、それぞれの属性の画素数を属性データ量情報として格納しているが、例えばそれぞれの属性の画像データが格納されたアドレス範囲を格納してもよい。後述するように、本実施例ではそれぞれの属性毎に処理が行われる。例えば、文字の属性の画素の処理が全て終わった後に写真の属性の画素の処理が行なわれる。属性データ量は、この属性毎の処理を行なう際に各属性の処理が終了するか否かを判定するために用いられる。従って、属性データ量は、画素数であってもよいし、属性の画像データが格納されたアドレス範囲であってもよい。以上の格納領域４０１から４０５の領域に格納されるデータは、図３で説明したフローチャートのステップＳ３０３において書き込まれる。
【００３０】
また、画像用ローカルメモリ２０７にはさらに、文字属性入力画像データ格納領域４０１に格納された画像データに対してＳＩＭＤ命令により演算処理が行われた結果を格納する文字属性処理結果格納領域４０６が存在する。文字属性処理結果格納領域４０６には、後述の図７で説明するＤＳＰ２０５のフローチャートのステップＳ７０６において書き込みが行なわれる。
【００３１】
同様に、また、画像用ローカルメモリ２０７には写真属性及び文字属性のそれぞれに対するＳＩＭＤ命令により演算処理が行われた処理結果を格納する写真属性処理結果格納領域４０７および背景属性処理結果格納領域４０８が存在する。写真属性処理結果格納領域４０７には、後述の図７で説明するＤＳＰ２０５のフローチャートのステップＳ７１１において書き込みが行なわれる。背景属性処理結果格納領域４０８には、後述の図７で説明するＤＳＰ２０５のフローチャートのステップＳ７１６において書き込みが行なわれる。
【００３２】
図５は、画像用ローカルメモリ２０７にデータを格納し、また、画像用ローカルメモリ２０７からデータを転送する際の模式図である。まず、ＤＭＡＣ２０４のブロック図について説明する。ＤＭＡＣ２０４は入力制御部５０１、メモリ書き込み制御部５０２、属性データ量情報生成部５０３、メモリ読み出し制御部５０４、出力制御部５０５を有する。
【００３３】
入力制御部５０１は、メモリ部１０５に対して読み出しアドレス・データ・制御信号の制御を行いＤＭＡＣ２０４のデータ入力制御を行う。また、本実施例では画像データと属性データとがメモリ部の別々の領域に格納されており、並行して転送される例を述べている。画像データと属性データが画素ごとに連続してメモリ部１０５に格納されている場合には、画像データと属性データの分離も入力制御部５０１で行う。
【００３４】
メモリ書き込み制御部５０２には、入力制御部５０１から属性データが入力される。また、メモリ書き込み制御部５０２は図示しない書き込みアドレス情報を保持しており、画像用ローカルメモリ２０７に対してアドレス・制御信号の制御を行い、画像用ローカルメモリ２０７へのデータ書き込み制御を行う。
【００３５】
属性データ量情報生成部５０３は、入力制御部５０１から属性データを入力し、各属性データのデータ量を計算して、属性データ量情報を生成し画像用ローカルメモリ２０７の属性データ量情報格納領域４０５に格納する。属性データ量情報は先に説明したとおりであり、例えば属性毎の画素数を表す情報である。
【００３６】
メモリ読み出し制御部５０４は、画像用ローカルメモリ２０７に対してアドレス・制御信号の制御を行い、画像用ローカルメモリ２０７から出力制御部５０５へのデータ読み出し制御を行う。出力制御部５０５は、画像用ローカルメモリ２０７からＳＩＭＤ命令により演算処理が行われた画像データを読み出し、メモリ部１０５に対して書き込みアドレス・データ・制御信号の制御を行いＤＭＡＣ２０４のデータ出力制御を行う。このとき、画像用ローカルメモリ２０７の属性データ格納領域に格納されている属性データを参照して、ＳＩＭＤ命令により演算処理が行なわれた画像データの出力順を制御する。本実施例ではＳＩＭＤ命令により各画素を属性毎にまとめて処理するために属性毎に画像データが画像用ローカルメモリ２０７内の別個の格納領域に格納されている。従って、例えばＳＩＭＤ命令による演算が行なわれた文字属性の画像データをそのまま出力してしまうと、入力画像データと出力画像データとで並びが異なってしまう。そこで、属性データ格納領域に格納されている属性データを参照し、その入力順に従って各属性の処理結果格納領域から順次ＳＩＭＤ演算済みの画像データを出力する。
【００３７】
図６に画像用ローカルメモリ２０７にデータを格納する際のタイミングチャートを示す。メモリ書き込み制御部５０２が、属性データに応じて、画像用ローカルメモリ２０７に対する書き込みアドレスを変える様子を説明する。時間Ｔ０が画像の入力開始時間とする。Ｔ０で入力された属性データが文字であるため、メモリ書き込み制御部５０２は、書き込みアドレスを文字属性入力画像データ格納領域４０１の先頭アドレスである画像用ローカルメモリのアドレス０ｘ０に設定する。これにより、画像用ローカルメモリのアドレス０ｘ０に１画素目の画像データであるＲ０／Ｇ０／Ｂ０が格納される。Ｔ１においては、入力された属性データは文字であるため、メモリ書き込み制御部５０２は、書き込みアドレスを０ｘ０から０ｘ１進めた画像用ローカルメモリのアドレス０ｘ１に設定する。これにより、画像用ローカルメモリのアドレス０ｘ１に２画素目の画像データであるＲ１／Ｇ１／Ｂ１が格納される。
【００３８】
Ｔ３においては、入力された属性データが背景であるため、メモリ書き込み制御部５０２は、書き込みアドレスを背景属性入力画像データ格納領域４０３の先頭アドレスである画像用ローカルメモリのアドレス０ｘ８０００に設定する。これにより、画像用ローカルメモリのアドレス０ｘ８０００に３画素目の画像データであるＲ２／Ｇ２／Ｂ２が格納される。このように、メモリ書き込み制御部５０２は、属性データとこれまでに入力された属性データの画素数から、書き込みアドレスを決定する。これにより、図４で示したようなメモリマップを実現する。
【００３９】
画像用ローカルメモリ２０７からデータを読み出す際にも、メモリ読み出し制御部５０４が、前述のように属性データに応じて、画像用ローカルメモリ２０７に対する読み出しアドレスを変える制御を行う。これにより、入力された画像の順番と同じ順番で画像の出力が可能になる。
【００４０】
ＲＧＢ画像データに対して、ＳＩＭＤ命令を用いて色変換処理を行う際のＤＳＰ２０５の動作について、図７のフローチャートを用いて説明する。本実施例では、ＳＩＭＤ命令による演算効果をより良く得られるように、属性毎にＳＩＭＤ命令を実行する例を説明する。
【００４１】
ステップＳ７０１においてまず、ＤＳＰ２０５は画像用ローカルメモリに所定のサイズの画像データが格納されているかを判定する。本実施例では、ＤＳＰ２０５は画像用ローカルメモリに副走査方向１ライン分の画像データが格納されているかを判定する。判定する方法として、ＤＭＡＣ２０４に格納したデータ量を示すレジスタを用意してそのレジスタをＤＳＰ２０５が読み出すようにしてもよい。もちろん、１ライン分のデータの格納が終了した時点でＤＭＡＣ２０４からＤＳＰ２０５に対して割り込みを出力するようにしてもよい。また、本実施例においては、画像用ローカルメモリに画像データの副走査方向の１ライン分の画像が格納された後に、ＤＳＰ２０５が処理を開始する例について述べている。しかしながら、ＤＳＰ２０５が処理を開始するまでに必要なデータ量の単位は副走査方向１ラインに限らない。
【００４２】
次にステップＳ７０２において、ＤＳＰ２０５は画像用ローカルメモリ２０７の属性データ量情報格納領域４０５から、属性データ量情報を読み出して取得する。属性データ量情報を用いることにより、各属性の画像データ格納領域に格納されている画像データが存在するか、あるいは画像データの終了を判定することができる。
【００４３】
次にステップＳ７０３において、ＤＳＰ２０５はステップＳ７０２において読み出した属性データ量情報を参照し、文字属性の画素が存在するかを判定する。存在する場合は、ステップＳ７０４に処理が進み、存在しない場合はステップＳ７０８に処理が進む。
【００４４】
ステップＳ７０４において、ＤＳＰ２０５は文字属性入力画像データ格納領域４０１から、文字属性の画素の画素値を１回のＳＩＭＤ命令で処理可能な画素数である４画素分、入力順に読み出す。次にステップＳ７０５において、ＤＳＰ２０５は文字属性用係数を読み出す。文字属性用係数は、メモリ部１０５に格納されていてもよいし、画像用ローカルメモリ２０７に格納されていてもよい。本実施例においては、文字属性用係数の値は、ＯＦＦＳＥＴ＝−１６、ＧＡＩＮ＝２４８、ＤＩＶ＝２５６とする。
【００４５】
次にステップＳ７０５において、ＤＳＰ２０５は読み出した４画素分の画素値および係数を用いてＳＩＭＤ命令により演算を実行し、演算結果を文字属性処理結果格納領域４０６に書き込む。図８に、文字属性画像に対して実行される“入力画像＋ＯＦＦＳＥＴ”のＳＩＭＤ命令の模式図を示す。ＳＩＭＤ命令は、処理対象である画像の画素値の配列である画像配列８０１と、画像配列に対して処理を行う係数の配列である係数配列８０２とを用いて実行される。係数配列とは、画像処理に用いる係数を格納する配列である。係数配列で用いられる係数は、命令用ローカルメモリ２０６もしくはメモリ部１０５に格納される。画像配列８０１と係数配列８０２とは、ＤＳＰ２０５が１回のＳＩＭＤ命令で処理可能な画素数と同じ要素数を持つ。図８では係数ＯＦＦＳＥＴを格納している例を示している。図８に示すように、文字属性入力画像データ格納領域４０１から読み出した文字属性の画素の画素値を画像配列８０１に格納し、文字属性用係数を係数配列８０２に格納し、処理を実行する。このように、画像用ローカルメモリ２０７に文字属性の入力画像の画素値が連続して格納されているため、同じ文字属性用の係数配列８０２を用いて連続してＳＩＭＤ命令が実行でき、処理の効率が向上する。また、ここでは係数ＯＦＦＳＥＴを加算する処理の例を挙げて説明したが、同様の方法で式１の残りの係数を用いた演算をＳＩＭＤ命令を行なうことで文字属性の画像データの演算処理結果が文字属性処理結果格納領域４０６に格納される。なお、後述する写真属性および背景属性に対しても、同様の方法でＳＩＭＤ命令を実行する。
【００４６】
次にステップＳ７０７において、ＤＳＰ２０５は文字属性の画像データに対する処理が完了したかをステップＳ７０２で読み出した属性データ量情報に基づいて判定する。完了していれば、ステップＳ７０８に処理が進み、完了していなければステップＳ７０４に処理が進む。ステップＳ７０７からステップＳ７０４に処理が進んだ場合、ステップＳ７０４において前回読み出した次の画素から読み出しを行う。
【００４７】
ステップＳ７０８において、ＤＳＰ２０５はステップＳ７０２において読み出した属性データ量情報を参照し、写真属性の画像データが存在するかを判定する。存在する場合は、ステップＳ７０９に処理が進み、存在しない場合はステップＳ７１３に処理が進む。ステップＳ７０９では、ＤＳＰ２０５は写真属性入力画像データ格納領域４０２から、写真属性の画素の画素値を１回のＳＩＭＤ命令で処理可能な画素数である４画素分、入力順に読み出す。次に、ステップＳ７１０においてＤＳＰ２０５は写真属性用係数を読み出す。写真属性用係数は、メモリ部１０５に格納されていてもよいし、画像用ローカルメモリ２０７に格納されていてもよい。本実施例において写真属性用係数の値は、ＯＦＦＳＥＴ＝０、ＧＡＩＮ＝１３８、ＤＩＶ＝１２８とする。次にステップＳ７１１において、ＤＳＰ２０５は読み出した４画素分の画素値および係数を用いてＳＩＭＤ命令により演算を実行し、演算結果を写真属性処理結果格納領域４０７に書き込む。次にステップＳ７１２において、ＤＳＰ２０５は写真属性の画像データに対する処理が完了したかをステップＳ７０２で読み出した属性データ量情報に基づいて判定する。完了していれば、ステップＳ７１３に処理が進み、完了していなければステップＳ７０９に処理が進む。ステップＳ７１２からステップＳ７０９に処理が進んだ場合、ステップＳ７０９において前回読み出した次の画素から読み出しを行う。
【００４８】
ステップＳ７１３において、ＤＳＰ２０５はステップＳ７０２において読み出した属性データ量情報を参照し、背景属性の画像データが存在するかを判定する。存在する場合は、ステップＳ７１４に処理が進み、存在しない場合はステップＳ７１８に処理が進む。ステップＳ７１４では、ＤＳＰ２０５は背景属性入力画像データ格納領域４０３から、背景属性の画素の画素値を１回のＳＩＭＤ命令で処理可能な画素数である４画素分、入力順に読み出す。次にステップＳ７１５において、ＤＳＰ２０５は背景属性用係数を読み出す。背景属性用係数は、メモリ部１０５に格納されていてもよいし、画像用ローカルメモリ２０７に格納されていてもよい。本実施例において背景属性用係数の値は、ＯＦＦＳＥＴ＝０、ＧＡＩＮ＝１２８、ＤＩＶ＝１２８とする。次にステップＳ７１６において、ＤＳＰ２０５は読み出した４画素分の画素値および係数を用いてＳＩＭＤ命令により演算を実行し、演算結果を背景属性処理結果格納領域４０８に書き込む。次にステップＳ７１７において、ＤＳＰ２０５は背景属性の画像データに対する処理が完了したかをステップＳ７０２で読み出した属性データ量情報に基づいて判定する。完了していれば、ステップＳ７１８に処理が進み、完了していなければステップＳ７１４に処理が進む。ステップＳ７１７からステップＳ７１４に処理が進んだ場合、ステップＳ７１４において前回読み出した次の画素から読み出しを行う。
【００４９】
ステップＳ７１８において、ＤＳＰ２０５は入力画像データの全ラインに対する処理が完了したかを判定する。完了していれば、処理を終了し、完了していなければ、ステップＳ７１９に処理が進む。ステップＳ７１９において、ＤＳＰ２０５はＤＭＡＣ２０４に対して、１ラインの処理が完了したことを通知する。この通知を受けて、ＤＭＡＣ２０４は、次のラインの画像データを画像用ローカルメモリ２０７に入力する。ステップＳ７１９が完了すると、ステップＳ７０１に処理が進む。以上のようなフローでＤＳＰ２０５が処理を行うことで、ＳＩＭＤ命令を用いて画素単位で属性に応じた画像処理を施すことが可能になる。
【００５０】
以上、本実施例によれば、画素単位で属性が変化するような画像データに対してＳＩＭＤ命令を用いた演算を用いた画像処理が適用できる。これにより、ＳＩＭＤ命令による高速処理を印刷品質を損なうことなく実現できる。さらに、属性データ量情報を生成しその情報を参照してＳＩＭＤ命令を実行することで、例えば画素が格納されていない領域に対する処理を防ぐことができるので、処理の高速化が可能になる。
【実施例２】
【００５１】
実施例１では、ＤＳＰによる処理の前段階で画像データを画素ごとの属性データに応じて異なる領域に格納し、ＤＳＰは格納された画像データに対して決まった係数を用いて画像処理を行う例を説明した。本実施例では、ＤＳＰが画素ごとの属性データを読み取り、その属性データに応じた係数を生成し、画像データに対して画像処理を行う例を説明する。本実施例によれば各属性に応じた格納領域を画像用ローカルメモリに設ける必要がないので、少ないメモリ容量で実装することができる。
【００５２】
本実施例における、画像処理装置１００、コントローラ部１０１の構成は実施例１から変更が無いため、省略する。本実施例においても、通信ＩＦ部１０６がＰＤＬコードを受信しプリンタ部に出力されるまでのフローにおける画像処理部の動作に関して詳しく述べる。
【００５３】
図９は、本実施例における画像用ローカルメモリ２０７のメモリマップである。本実施例における画像用ローカルメモリ２０７には、メモリ部１０５から転送された画像データを格納する入力画像データ格納領域９０１が存在する。さらに、メモリ部１０５から転送された属性データを格納する属性データ格納領域９０２が存在する。さらに、入力画像データに対して画像処理を行った結果を格納する処理結果格納領域９０３が存在する。
【００５４】
本実施例において、ＲＧＢ画像データに対して、ＳＩＭＤ命令を用いて色変換処理を行う際のＤＳＰ２０５の動作について、図１０のフローチャートを用いて説明する。
【００５５】
まずステップＳ１００１において、ＤＳＰ２０５は画像用ローカルメモリに副走査方向１ライン分の画像データが格納されているかを判定する。次にステップＳ１００２においいて、ＤＳＰ２０５は画像用ローカルメモリ２０７の属性データ格納領域９０２から、１画素分の属性データを読み出す。次にステップＳ１００３において、ＤＳＰ２０５はステップＳ１００２において読み出した属性データを参照し、属性に応じた係数を生成し、係数配列の要素として追加する。係数配列とは、実施例１で説明したように、画像処理に用いる係数を格納する配列であり、ＤＳＰ２０５が１回のＳＩＭＤ命令で処理可能な画素数と同じ要素数を持つ。また、係数は命令用ローカルメモリ２０６もしくはメモリ部１０５に格納される。係数は、実施例１で説明したような属性に応じたＯＦＦＳＥＴ、ＧＡＩＮ、ＤＩＶの値である。
【００５６】
本実施例では、画素毎に係数を動的に生成して係数配列に格納する。例えば、１画素目にステップＳ１００２で読み出した属性データが文字である場合、文字属性に対応する係数の値を係数配列の０番目の要素に追加する。このように、属性データに応じて係数の値を係数配列の所定の箇所の要素に追加する。これにより、属性データの順序と一致した一回のＳＩＭＤ命令で処理を行うのに必要な係数配列を生成される。次にステップＳ１００４において、ＤＳＰ２０５は読み出した属性データの数が１回のＳＩＭＤ命令で処理可能な画素数に達したかを判定する。達していれば、ステップＳ１００５に処理が進み、達していなければステップＳ１００２に処理が進む。ステップＳ１００４からステップＳ１００２に処理が進んだ場合、ステップＳ１００２において前回読み出した次の属性データから読み出しを行う。
【００５７】
ステップＳ１００５においては、ＤＳＰ２０５は入力画像データ格納領域９０１から、画像データを１回のＳＩＭＤ命令で処理可能な画素数である４画素分読み出す。次にステップＳ１００６において、ＤＳＰ２０５はステップＳ１００５で読み出した４画素分の画像データおよびステップＳ１００３で生成された係数配列を用いてＳＩＭＤ命令により演算を実行し、演算結果を処理結果格納領域９０３に書き込む。
【００５８】
図１１に、本実施例で実行される“入力画像＋ＯＦＦＳＥＴ”のＳＩＭＤ命令の模式図を示す。ＳＩＭＤ命令は、処理対象である画像の配列である画像配列１１０１と、画像配列に対して処理を行う係数の配列である係数配列１１０２とを用いて実行される。図１１に示すように、入力画像データ格納領域９０１から読み出した画像データを順次画像配列１１０１に格納し、ステップＳ１００３で生成した係数を係数配列１１０２に格納し、処理を実行する。このように、ステップＳ１００３で入力画像データの属性に合わせた係数配列を生成するためＳＩＭＤ命令を用いて画素単位で属性に応じた画像処理を施すことが可能になる。
【００５９】
次にステップＳ１００７において、ＤＳＰ２０５は入力された１ラインの画像データに対する処理が完了したかを判定する。完了していれば、ステップＳ１００８に処理が進み、完了していなければＳ１００２に処理が進む。ステップＳ１００８において、ＤＳＰ２０５は画像の全ラインに対する処理が完了したかを判定する。完了していれば、処理を終了し、完了していなければステップＳ１００９に処理が進む。ステップＳ１００９において、ＤＳＰ２０５はＤＭＡＣ２０４に対して、１ラインの処理が完了したことを通知する。この通知を受けて、ＤＭＡＣ２０４は、次のラインの画像を画像用ローカルメモリ２０７に入力する。ステップＳ１００９が完了すると、ステップＳ１００１に処理が進む。以上のようなフローでＤＳＰ２０５が処理を行うことで、ＳＩＭＤ命令を用いて画素単位で属性に応じた画像処理を施すことが可能になる。
【００６０】
以上、本実施例によれば、実施例１と同様に画素単位で属性が変化するような画像に対してＳＩＭＤ命令を用いた演算を用いた画像処理が適用できる。また、本実施例では入力された画像データの順に従って処理を行なうので、実施例１で説明したように属性データを参照して出力順序を制御する処理を省略できる。
【００６１】
＜その他の実施例＞
実施例１では、属性データを参照して画像データの入力順と同じ順序でＳＩＭＤ演算後の画像データを出力する例を説明した。この処理はＳＩＭＤ命令を効率的に行なうために画素順序が変わることに対する対応方法の例であるが、この例に限られるものではない。例えば、画像用ローカルメモリ２０７に入力された１ライン分の画像データを、入力順とは逆の順序（つまり後入れ先出し）で出力し、これを受けた後段の処理部で必要に応じて並び替えなどの処理を行なってもよい。あるいは、画素の入力順を示すデータを付加して後段の処理部にＳＩＭＤ演算後の画像データを出力してもよい。つまり、この順序の変更を後段の処理部に任せる形態であっても良い。
【００６２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００６３】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015207231.tif 000003
【図２】
2015207231.tif 000004
【図３】
2015207231.tif 000005
【図４】
2015207231.tif 000006
【図５】
2015207231.tif 000007
【図６】
2015207231.tif 000008
【図７】
2015207231.tif 000009
【図８】
2015207231.tif 000010
【図９】
2015207231.tif 000011
【図１０】
2015207231.tif 000012
【図１１】
2015207231.tif 000013