(57)【要約】【課題】描画処理を効率よく行う。【解決手段】ＲＧＢによって表現される色情報であって、印刷対象のデータにおいてラインを構成するそれぞれの画素における色情報をインデックスカラーによって表現可能か否か判定し、インデックスカラーによって表現可能と判定された画素の色情報をインデックスカラーによって表現した画素であるインデックスイメージを生成し、色情報の表現態様が同じである画素を複数のラインにわたって結合し、色情報がＲＧＢによって表現された画素の領域であるＲＧＢイメージ領域とインデックスイメージの領域であるインデックスイメージ領域とをそれぞれ生成し、ＲＧＢイメージ領域およびインデックスイメージ領域それぞれに対して描画処理を行い、画像形成部が処理可能な描画情報を生成することを特徴とする。【選択図】図８
2018083411.tif 000002
【特許請求の範囲】
【請求項１】
ＲＧＢによって表現される色情報であって、印刷対象のデータにおいてラインを構成するそれぞれの画素における前記色情報をインデックスカラーによって表現可能か否か判定するインデックス化判定部と、
前記インデックスカラーによって表現可能と判定された画素の前記色情報を前記インデックスカラーによって表現した画素であるインデックスカラーイメージを生成するインデックス処理部と、
前記色情報の表現態様が同じである画素を複数の前記ラインにわたって結合し、前記色情報が前記ＲＧＢによって表現された画素の領域であるＲＧＢイメージ領域と前記インデックスカラーイメージの領域であるインデックスカラーイメージ領域とをそれぞれ生成するライン結合部と、
前記ＲＧＢイメージ領域および前記インデックスカラーイメージ領域それぞれに対して描画処理を行い、画像形成部が処理可能な描画情報を生成する描画処理部と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記インデックス処理部は、
前記インデックスカラーによって表現できないと判定された画素の前記色情報を前記ＲＧＢによって表現した画素であるＲＧＢイメージデータを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ライン結合部は、
前記色情報の表現態様が同じである画素を複数の前記ラインにわたって画素ごとに結合し、複数の前記ＲＧＢイメージ領域と前記インデックスカラーイメージ領域とをそれぞれ生成することを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記インデックスカラーによって表現できないと判定された画素の開始位置の情報と、インデックスカラーによって表現できないと判定された画素が終了する終了位置の情報とを記憶する位置情報記憶部
を含むことを特徴とする請求項１から請求項３のいずれか一項に記載の画像処理装置。
【請求項５】
前記ライン結合部は、
前記ラインごとに前記インデックスカラーによって表現できないと判定された画素の開始位置の情報と終了位置の情報とに基づいて前記ＲＧＢイメージ領域を生成することを特徴とする請求項１から請求項４いずれか一項に記載の画像処理装置。
【請求項６】
複数の前記インデックスカラーによって表現できないと判定された画素の領域ごとに、前記インデックスカラーによって表現できないと判定された画素の開始位置の情報と、インデックスカラーによって表現できないと判定された画素が終了する終了位置の情報とを記憶する位置情報記憶部
を含むことを特徴とする請求項１から請求項３のいずれか一項に記載の画像処理装置。
【請求項７】
前記ライン結合部は、
前記開始位置の情報および前記終了位置の情報に基づいて、複数の前記インデックスカラーによって表現できないと判定された画素の領域を、複数の前記ラインにわたって画素ごとに結合し、複数の前記ＲＧＢイメージ領域を生成することを特徴とする請求項５に記載の画像処理装置。
【請求項８】
前記ライン結合部は、
前記色情報を表現するためのカラールックアップテーブルが同一である画素を複数の前記ラインにわたって結合し、前記インデックスカラーイメージ領域を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記ライン結合部は、
前記色情報が前記ＲＧＢによって表現された画素の領域が存在するラインを結合して前記ＲＧＢイメージ領域を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記ライン結合部は、
前記ラインを結合することにより生成された前記ＲＧＢイメージ領域において、前記ラインごとに前記インデックスカラーによって表現できないと判定された画素の開始位置の情報と前記ラインごとに前記インデックスカラーによって表現できないと判定された画素の終了位置の情報とに基づいて前記ＲＧＢイメージ領域と前記インデックスカラーイメージ領域との境界を定めることを特徴とする請求項８に記載の画像処理装置。
【請求項１１】
前記ライン結合部は、
前記ラインを結合することにより生成された前記ＲＧＢイメージ領域において、複数のラインそれぞれにおいて所定の位置の画素である基準点からの距離が最も小さい開始位置を持つと判定されたラインにおける前記開始位置の情報と、前記基準点からの距離が最も大きい終了位置を持つと判定されたラインにおける前記終了位置の情報とに基づいて前記ＲＧＢイメージ領域と前記インデックスカラーイメージ領域との境界を定めることを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
前記描画処理部は、
前記インデックスカラーイメージ領域に対して前記描画処理を行った結果に、前記ＲＧＢイメージ領域に対して前記描画処理を行った結果を上書きして前記描画情報を生成することを特徴とする請求項１から請求項１０のいずれか一項に記載の画像処理装置。
【請求項１３】
前記インデックス化判定部は、
前記インデックスカラーによって表現できないと判定された画素の色情報を、当該色情報を表現するためのカラールックアップテーブルに登録することを特徴とする請求項１に記載の画像処理装置。
【請求項１４】
ＲＧＢによって表現される色情報であって、印刷対象のデータにおいてラインを構成するそれぞれの画素における前記色情報をインデックスカラーによって表現可能か否か判定し、
前記インデックスカラーによって表現可能と判定された画素の前記色情報を前記インデックスカラーによって表現した画素であるインデックスカラーイメージを生成し、
前記色情報の表現態様が同じである画素を複数の前記ラインにわたって結合し、前記色情報が前記ＲＧＢによって表現された画素の領域であるＲＧＢイメージ領域と前記インデックスカラーイメージの領域であるインデックスカラーイメージ領域とをそれぞれ生成し、
前記ＲＧＢイメージ領域および前記インデックスカラーイメージ領域それぞれに対して描画処理を行い、画像形成部が処理可能な描画情報を生成する、
ことを特徴とする画像処理方法。
【請求項１５】
ＲＧＢによって表現される色情報であって、印刷対象のデータにおいてラインを構成するそれぞれの画素における前記色情報をインデックスカラーによって表現可能か否か判定するステップと、
前記インデックスカラーによって表現可能と判定された画素の前記色情報を前記インデックスカラーによって表現した画素であるインデックスカラーイメージを生成するステップと、
前記色情報の表現態様が同じである画素を複数の前記ラインにわたって結合し、前記色情報が前記ＲＧＢによって表現された画素の領域であるＲＧＢイメージ領域と前記インデックスカラーイメージの領域であるインデックスカラーイメージ領域とをそれぞれ生成するステップと、
前記ＲＧＢイメージ領域および前記インデックスカラーイメージ領域それぞれに対して描画処理を行い、画像形成部が処理可能な描画情報を生成するステップと、
を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラムに関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリおよび書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能および通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置において、Ｗｏｒｄ（登録商標）などの文書作成アプリケーションで作成した文書ファイルを印刷データとして印刷する場合、ＰＤＬ（Ｐｏｓｔ  Ｄｉｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を用いて画像処理が行われる。Ｗｏｒｄの文書ファイルは、一般的にテキスト、ベクター画像、ラスター画像など複数のオブジェクトによって構成される。そのため、同一ページのオブジェクトであっても、モノクロで表現されるものと、カラーで表現されるものとがある。
【０００４】
このように、同一ページにモノクロのオブジェクトとカラーのオブジェクトとが混在している印刷データに対して、オブジェクトごとにインデックスカラーへの変換を行い、画像を効率よく描画する技術が開示されている（例えば、特許文献１参照）。
【０００５】
インデックスカラーとは、色を定義するためのカラールックアップテーブルを参照することによって色数の少ない画像を表現する形式である。
【０００６】
例えば、色数の少ない画像オブジェクトに対してインデックスカラーを用いて描画処理を行うことによって、その画像オブジェクトを効率よく描画することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、近年、１ページの印刷データを全てラスターデータ形式で表現するＰＤＬを用いた表現方法が着目されている。このような表現方法を用いてＷｏｒｄの文書ファイルをＰＤＬ形式に変換した場合、Ｗｏｒｄの文書ファイルを構成する複数のオブジェクトを区別することなくラスターデータが生成される。したがって、オブジェクトが区別されないため、１ページのラスターデータ全体に描画処理を行う必要があり、特許文献１に開示される技術を適用したとしても、描画処理を効率よく行うことができない。
【０００８】
本発明は、このような課題を解決するためになされたものであり、描画処理を効率よく行うことを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の一態様は、ＲＧＢによって表現される色情報であって、印刷対象のデータにおいてラインを構成するそれぞれの画素における前記色情報をインデックスカラーによって表現可能か否か判定するインデックス化判定部と、前記インデックスカラーによって表現可能と判定された画素の前記色情報を前記インデックスカラーによって表現した画素であるインデックスカラーイメージを生成するインデックス処理部と、前記色情報の表現態様が同じである画素を複数の前記ラインにわたって結合し、前記色情報が前記ＲＧＢによって表現された画素の領域であるＲＧＢイメージ領域と前記インデックスカラーイメージの領域であるインデックスカラーイメージ領域とをそれぞれ生成するライン結合部と、前記ＲＧＢイメージ領域および前記インデックスカラーイメージ領域それぞれに対して描画処理を行い、画像形成部が処理可能な描画情報を生成する描画処理部と、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、描画処理を効率よく行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係る画像処理システムの運用形態を示す図。
【図２】本発明の実施の形態１に係る情報処理装置のハードウェア構成を示すブロック図。
【図３】本発明の実施の形態１に係る画像処理装置の機能構成を示すブロック図。
【図４】本発明の実施の形態１に係るインデックスカラーテーブルを示す図。
【図５】本発明の実施の形態１に係るインデックスカラーイメージを示す図。
【図６】本発明の実施の形態１に係るインデックスカラーイメージが適用された画像を示す図。
【図７】本発明の実施の形態１に係る画像処理部の内部構成を示すブロック図。
【図８】本発明の実施の形態１に係る本実施形態に係る画像処理部において実行される描画処理の全体の流れを示すフローチャート。
【図９】本発明の実施の形態１に係る印刷対象のデータにおけるインデックスカラーイメージとＲＧＢイメージを示す図。
【図１０】本発明の実施の形態１に係る印刷対象のデータに含まれるラインにおける色情報の構成を示す定義ファイルの記述例を示す図。
【図１１】本発明の実施の形態１に係るインデックスカラーイメージデータとＲＧＢイメージとに区別してラスターデータを変換する処理の流れを示すフローチャート。
【図１２】本発明の実施の形態１に係るＲＧＢ位置情報記憶処理の流れを示すフローチャート。
【図１３】本発明の実施の形態１に係る印刷対象のデータにおけるＲＧＢ位置情報を示す図。
【図１４】本発明の実施の形態１に係る印刷対象のデータをインデックス化判定したのちに、インデックスカラーを用いて表現した図。
【図１５】本発明の実施の形態１に係る印刷対象のデータをインデックス化判定したのちに、ＲＧＢイメージで表現した図。
【図１６】本発明の実施の形態１に係るラインのピクセルの構成を示す図。
【図１７】本発明の実施の形態１に係るＲＧＢ位置情報の更新態様を示す図。
【図１８】本発明の実施の形態１に係るインデックスカラーを用いて表現されるラインを結合する処理の流れを示すフローチャート。
【図１９】本発明の実施の形態１に係るＲＧＢイメージで表現されるラインを結合する処理の流れを示すフローチャート。
【図２０】本発明の実施の形態１に係るラインごとのＲＧＢ位置を示す図。
【図２１】本発明の実施の形態１に係るＲＧＢ境界処理の流れを示すフローチャート。
【図２２】本発明の実施の形態１に係るＲＧＢイメージデータブロックについて、ラインごとの色情報を例示した図。
【図２３】本発明の実施の形態１に係る描画処理の態様を示す図。
【図２４】本発明の実施の形態２に係るラインごとのＲＧＢ位置を示す図。
【図２５】本発明の実施の形態２に係る印刷対象のデータにおけるラインごとのＲＧＢ位置情報を例示した図。
【図２６】本発明の実施の形態２に係るインデックス化を行う処理の流れを示すフローチャート。
【図２７】本発明の実施の形態２に係るインデックスカラーイメージデータとＲＧＢイメージとに区別してラスターデータを変換する処理の流れを示すフローチャート。
【図２８】本発明の実施の形態２に係る情報記憶処理の流れを示すフローチャート。
【図２９】本発明の実施の形態２に係る作成終了処理の流れを示すフローチャート。
【図３０】本発明の実施の形態２に係るＲＧＢイメージデータブロックを例示した図。
【図３１】本発明の実施の形態２に係るＲＧＢイメージデータブロックを示す情報を例示した図。
【図３２】本発明の実施の形態２に係るＲＧＢイメージで表現されるラインを結合する処理の流れを示すフローチャート。
【図３３】本発明の実施の形態２に係るＲＧＢイメージデータブロックを生成する処理の流れを示すフローチャート。
【図３４】本発明の実施の形態２に係るＲＧＢイメージデータブロックを生成する処理の流れを示すフローチャート。
【図３５】本発明の実施の形態２に係るＲＧＢイメージデータブロックを生成する処理の流れを示すフローチャート。
【図３６】本発明の実施の形態２に係るＲＧＢイメージデータブロックを生成する処理の流れを示すフローチャート。
【図３７】本発明の実施の形態２に係るＲＧＢイメージデータブロック情報を作成する処理の流れを示すフローチャート。
【図３８】本発明の実施の形態２に係るＲＧＢイメージデータブロック情報を追加する処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１２】
実施の形態１．
以下、図面を参照して、本発明の実施形態について説明する。本実施形態においては、ネットワークを介して接続されたＰＣやタブレットなどの情報処理端末から受信した印刷データを印刷する画像処理システムを例に挙げて説明する。
【００１３】
図１は、本実施形態に係る画像処理システム５の運用形態を示す図である。図１に示すように、本実施形態に係る画像処理システム５は、画像処理装置１、ＰＣ２、タブレット端末３がネットワーク４を介して接続されて構成されている。
【００１４】
画像処理装置１は、電子写真方式やインクジェット方式など、版を用いずに画像形成出力を行うプリンタであり、コントローラ１００、ネットワークＩ／Ｆ１０８、プリントエンジン１０６を含む。コントローラ１００は、プリントエンジン１０６に印刷出力を実行させるための制御部であり、プリントエンジン１０６は、画像形成部として機能する。また、コントローラ１００は、プリントエンジン１０６が印刷出力を実行する際に参照する画像データであるラスターデータを生成する。ラスターデータは、印刷対象のデータが描画された描画情報である。
【００１５】
ＰＣ２およびタブレット端末３は、画像処理システム５のユーザによって操作されるクライアント端末であり、ネットワーク４を介して印刷対象のデータを送信することによって画像処理装置１に印刷出力を実行させることができる。ユーザの操作に応じて、ＰＣ２またはタブレット端末３は、画像処理装置１に印刷出力を実行させるためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を表示する。ユーザは、ＰＣ２またはタブレット端末３のＧＵＩを介してデータの入力や印刷条件の設定などを行う。
【００１６】
次に、本実施形態に係る画像処理装置１、ＰＣ２、タブレット端末３などの情報処理装置のハードウェア構成について図２を参照して説明する。図２に示すように、本実施形態に係る情報処理装置は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等と同様の構成を含む。即ち、本実施形態に係る画像処理装置１、ＰＣ２、タブレット端末３は、それぞれ同様の構成を備える情報処理装置であって、以下の各ハードウェア構成を備える。
【００１７】
すなわち、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０およびＩ／Ｆ５０を備え、これらがバス８０を介して接続されている。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０および操作部７０が接続されている。
【００１８】
ＣＰＵ１０は演算手段であり、情報処理装置全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。
【００１９】
Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク４等を接続し制御する。ＬＣＤ６０は、ユーザが情報処理装置の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボードやマウス等、ユーザが情報処理装置に情報を入力するためのユーザインタフェースである。
【００２０】
このようなハードウェア構成において、ＲＯＭ３０に格納されたプログラムのステップや、ＨＤＤ４０若しくは光学ディスク等の記憶媒体からＲＡＭ２０にロードされたプログラムのステップに従ってＣＰＵ１０が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像処理装置１、ＰＣ２、タブレット端末３などの機能を実現する機能ブロックが構成され、画像処理方法、画像処理プログラムが実現される。
【００２１】
次に、本実施形態に係る画像処理装置１の機能構成について、図３を参照して説明する。図３に示すように、本実施形態に係る画像処理装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１０１、スキャナユニット１０２、排紙トレイ１０３、ディスプレイパネル１０４、給紙テーブル１０５、プリントエンジン１０６、排紙トレイ１０７およびネットワークＩ／Ｆ１０８を有する。
【００２２】
また、コントローラ１００は、主制御部１１０、エンジン制御部１２０、画像処理部１３０、操作表示制御部１４０および入出力制御部１５０を含む。図３に示すように、本実施形態に係る画像処理装置１は、スキャナユニット１０２、プリントエンジン１０６を有する複合機として構成されている。なお、図３においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００２３】
ディスプレイパネル１０４は、画像処理装置１の状態を視覚的に表示する表示部であると共に、タッチパネルとしてユーザが画像処理装置１を直接操作し、もしくは画像処理装置１に対して情報を入力する際の入力部でもある。すなわち、ディスプレイパネル１０４は、ユーザによる操作を受けるための画像を表示する機能を含む。ディスプレイパネル１０４は、図２に示すＬＣＤ６０および操作部７０によって実現される。したがって、ディスプレイパネル１０４は操作表示部として機能する。
【００２４】
ネットワークＩ／Ｆ１０８は、画像処理装置１がネットワーク４を介して他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられる。ネットワークＩ／Ｆ１０８は、ＴＣＰ／ＩＰプロトコルによる通信が可能である。また、ネットワークＩ／Ｆ１０８は、画像処理装置１がファクシミリとして機能する際に、ファクシミリ送信を実行するためのインタフェースとしても機能する。そのため、ネットワークＩ／Ｆ１０８は、電話回線にも接続されている。ネットワークＩ／Ｆ１０８は、図２に示すＩ／Ｆ５０によって実現される。
【００２５】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０や不揮発性メモリならびにＨＤＤ４０や光学ディスク等の不揮発性記憶媒体に格納されたプログラムが、ＲＡＭ２０等の揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ１０がそのプログラムに従って演算を行うことにより構成されるソフトウェア制御部と集積回路などのハードウェアとによって構成される。コントローラ１００は、画像処理装置１全体を制御する制御部として機能する。
【００２６】
主制御部１１０は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１２０は、プリントエンジン１０６やスキャナユニット１０２等を制御もしくは駆動する駆動手段としての役割を担う。画像処理部１３０は、主制御部１１０の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１０６が画像形成動作において形成すべき画像を描画するための情報であるラスターデータである。
【００２７】
また、画像処理部１３０は、スキャナユニット１０２から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像処理装置１の記憶領域に格納されもしくはネットワークＩ／Ｆ１０８を介して他の情報処理端末や記憶装置に送信される情報である。
【００２８】
操作表示制御部１４０は、ディスプレイパネル１０４に情報表示を行いもしくはディスプレイパネル１０４を介して入力された情報を主制御部１１０に通知する。入出力制御部１５０は、ネットワークＩ／Ｆ１０８を介して入力される情報を主制御部１１０に入力する。また、主制御部１１０は、入出力制御部１５０を制御し、ネットワークＩ／Ｆ１０８を介してネットワーク４に接続された他の機器にアクセスする。
【００２９】
画像処理装置１がプリンタとして動作する場合は、まず、入出力制御部１５０がネットワークＩ／Ｆ１０８を介して印刷ジョブを受信する。入出力制御部１５０は、受信した印刷ジョブを主制御部１１０に転送する。主制御部１１０は、印刷ジョブを受信すると、画像処理部１３０を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成させる。
【００３０】
画像処理部１３０によって描画情報が生成されると、エンジン制御部１２０は、プリントエンジン１０６を制御し、生成された描画情報に基づき、給紙テーブル１０５から搬送される用紙に対して画像形成を実行させる。即ち、画像処理部１３０、エンジン制御部１２０およびプリントエンジン１０６が画像形成出力部として機能する。プリントエンジン１０６の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１０６によって画像形成が施された文書は排紙トレイ１０７に排紙される。
【００３１】
画像処理装置１がスキャナとして動作する場合は、ユーザによるディスプレイパネル１０４の操作若しくはネットワークＩ／Ｆ１０８を介して他の端末から入力されるスキャン実行指示に応じて、操作表示制御部１４０若しくは入出力制御部１５０が主制御部１１０にスキャン実行信号を転送する。主制御部１１０は、受信したスキャン実行信号に基づき、エンジン制御部１２０を制御する。
【００３２】
エンジン制御部１２０は、ＡＤＦ１０１を駆動し、ＡＤＦ１０１にセットされた撮像対象原稿をスキャナユニット１０２に搬送する。また、エンジン制御部１２０は、スキャナユニット１０２を駆動し、ＡＤＦ１０１から搬送される原稿を撮像する。また、ＡＤＦ１０１に原稿がセットされておらず、スキャナユニット１０２に直接原稿がセットされた場合、スキャナユニット１０２は、エンジン制御部１２０の制御に従い、セットされた原稿を撮像する。すなわち、スキャナユニット１０２が撮像部として動作すると共に、エンジン制御部１２０が、読取制御部として機能する。
【００３３】
撮像動作においては、スキャナユニット１０２に含まれるＣＩＳ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ）やＣＣＤ（ｃｈａｒｇｅ−ｃｏｕｐｌｅｄ  ｄｅｖｉｃｅ）等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部１２０は、スキャナユニット１０２が生成した撮像情報を画像処理部１３０に転送する。画像処理部１３０は、主制御部１１０の制御に従い、エンジン制御部１２０から受信した撮像情報に基づき画像情報を生成する。
【００３４】
画像処理部１３０が生成した画像情報は主制御部１１０が取得し、主制御部１１０がＨＤＤ４０などの画像処理装置１に装着された記憶媒体に保存する。すなわち、スキャナユニット１０２、エンジン制御部１２０および画像処理部１３０が連動して、画像入力部として機能する。画像処理部１３０によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納されもしくは入出力制御部１５０およびネットワークＩ／Ｆ１０８を介して外部の装置に送信される。
【００３５】
また、画像処理装置１が複写機として動作する場合は、エンジン制御部１２０がスキャナユニット１０２から受信した撮像情報もしくは画像処理部１３０が生成した画像情報に基づき、画像処理部１３０が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１２０がプリントエンジン１０６を駆動する。なお、描画情報と撮像情報との情報形式が同一である場合は、撮像情報をそのまま描画情報として用いることも可能である。
【００３６】
本実施形態に係る画像処理装置１は、描画情報を生成する際に、インデックスカラーと呼ばれる色を定義するためのカラールックアップテーブルを参照して色情報を表現する処理を実行する。以下、図面を参照して、インデックスカラーを用いた画像の表現方法について説明する。
【００３７】
図４は、本実施形態に係るインデックスカラーテーブルを示す図である。インデックスカラーテーブルは、図４に示すように、画像に含まれる色パターンの全てが格納されたカラールックアップテーブルである。図４は、インデックスカラーテーブルの例示として、４色の色パターンに対し、０から４の数字がそれぞれインデックス番号として割り当てたインデックスカラーテーブル構造の例を示している。
【００３８】
以下、本実施形態に係る説明は、図４に示したような４色の色パターンを用いて行うこととする。なお、インデックスカラーテーブルに含まれる色パターンの種類は、４色に限ることはなく、より多色の色パターンに対し個別のインデックス番号を付与して管理してもよい。
【００３９】
図５は、本実施形態に係るインデックスカラーイメージを示す図である。インデックスカラーイメージは、図５に示すように、画素ごとに、インデックスカラーテーブルのインデックス番号を引用して、各画素の色を示す。図５は、図４において例示したインデックスカラーテーブルに含まれる色で構成される画像のインデックスイメージが示されている。
【００４０】
図６は、図５のインデックスカラーイメージに対して図４のインデックスカラーテーブルが適用された画像を示す図である。図４から図６において例示した画像は、５ピクセル×５ピクセルからなる、２４ピクセルの画像であって、この画像を構成する色の数は４色である。そのため、図５に例示したようなインデックスカラーイメージでは、１ピクセルあたり２ビット（すなわち、２ＢｉｔＰｅｒＰｉｘｅｌ：２ＢＰＰ）あれば、画像を構成する各画素を表現することができる。
【００４１】
このような設定に基づいて図６の画像のデータサイズを算出すると、「２ｂｉｔ×２５Ｐｉｘｅｌ＝５０ｂｉｔ＝６．２５Ｂｙｔｅ」となり、図５のインデックスカラーイメージは６．２５Ｂｙｔｅのデータサイズで表現可能である。
【００４２】
仮に、図６に示す画像が２４ｂｉｔのＲＧＢで表現されたＲＧＢイメージである場合、図６の画像のデータサイズは、「２４ｂｉｔ×２５Ｐｉｘｅｌ＝６００ｂｉｔ＝７５Ｂｙｔｅ」になる。すなわち、インデックスカラーイメージに比べると、ＲＧＢイメージのデータサイズは１０倍以上になる。
【００４３】
このように、インデックスカラーを用いた画像のデータサイズは、インデックスカラーを用いない画像のデータサイズと比べて大きく削減することができる。さらに、インデックスカラーを用いることによって、ＣＭＹＫ（ＣＹＡＮ、ＭＡＧＥＮＴＡ、ＹＥＬＬＯＷ、ＢＬＡＣＫ）で表現されたＣＭＹＫデータへの変換を効率よく実行することができる。
【００４４】
例えば、１ピクセルのＲＧＢイメージをＣＭＹＫデータに変換するために必要な処理時間が１０μ秒であると仮定する。このとき、図６に示す画像がＲＧＢイメージである場合、ピクセルごとにＲＧＢからＣＭＹＫへの変換処理を実行することになるので、「１０μ秒×２５ピクセル＝２５０μ秒」の処理時間が必要となる。
【００４５】
一方で、インデックスカラーを用いた場合は、まず、インデックスカラーテーブルにおいて管理されている色に対してＣＭＹＫデータへの変換処理を実行する。その後、インデックスイメージのデータに対してＣＭＹＫデータに変換されたインデックスカラーテーブルを図６に示す画像に適用して、ＣＭＹＫデータを取得する。
【００４６】
このとき、インデックスカラーテーブルに含まれる色パターン、すなわち、４色の色パターンに対してＲＧＢからＣＭＹＫへの変換処理を実行するため、「１０μ秒×４色＝４０μ秒」の処理時間となる。
【００４７】
したがって、インデックスカラーを用いた場合は、画像のデータサイズを削減できるだけではなく、画像処理時間を短縮することもできる。これを応用すると、色数の少ない画像などを含む文書ファイルなどを印刷する場合に行われる画像処理において、画像データサイズを小さく、かつ、画像処理時間を早くすることができる。すなわち、一般的な文書作成アプリケーションなどを用いて文字とともに色数の少ない画像を一緒に編集した文書ファイルに対する印刷処理において、効率よく画像を描画することができる。
【００４８】
本実施形態に係る画像処理装置１は、印刷対象のデータに基づいて生成されたラスターデータに対してインデックスカラーへの変換を行い、描画処理を効率よく実行する。なお、本実施形態においては、１ＢＰＰのインデックスカラーを扱い、インデックスカラーテーブルの０番は、白で固定して取り扱う。したがって、インデックスカラーとして、０番の白の以外に、１番に他の色を割り当てて使用することができる。
【００４９】
次に、本実施形態に係る画像処理装置１における印刷処理等で実行される機能の一部である、インデックスカラーを用いて画像を描画してラスターデータを生成する機能について図７を参照して説明する。図７は、本実施形態に係る画像処理部１３０の構成を示す機能ブロック図である。画像処理部１３０は、ＰＤＬデータ処理部１３１、インデックス処理部１３２、描画処理部１３３を含む。
【００５０】
ＰＤＬデータ処理部１３１は、画像処理部１３０に入力されたラスター形式のＰＤＬデータをＲＧＢイメージに変換する。なお、画像処理部１３０に入力されたデータがＲＧＢイメージである場合には、ＰＤＬデータ処理部１３１における処理を省略してもよい。
【００５１】
インデックス処理部１３２は、ＲＧＢイメージをインデックスイメージとＲＧＢイメージとに変換し、描画処理部１３３に入力する。描画処理部１３３は、インデックス処理部１３２から受信したデータに対して描画処理を実行し、プリントエンジン１０６が処理可能な形式のデータであるＣＭＹＫデータに変換する。また、描画処理部１３３は、印刷対象のデータに対して描画処理を実行し、ＣＭＹＫ形式のラスターデータを生成する。
【００５２】
なお、インデックス処理部１３２は、インデックス化判定部１３４、ＲＧＢ位置情報記憶部１３５、ライン結合部１３６を含む。インデックス化判定部１３４は、インデックス処理部１３２に入力されたＲＧＢイメージに基づいて、ラインごとにインデックスカラーイメージと最小限のＲＧＢイメージとをそれぞれ生成する。
【００５３】
また、インデックス化判定部１３４は、連続ＲＧＢイメージデータが作成されているか否かを示す作成パラメータを制御し、ＲＧＢイメージを生成した際には、作成パラメータを「ＯＮ」に制御する。なお、インデックス化判定部１３４は、デフォルト値として作成パラメータを「ＯＦＦ」に制御する。「連続ＲＧＢイメージデータ」とは、主走査方向の座標が重複してピクセルが連続しているＲＧＢイメージデータのことである。
【００５４】
なお、本実施形態において、「ライン」とは、印刷対象のデータに基づいて展開された２次元の画素（ピクセル）の配列のうち、特定の一次元方向に並ぶ画素の一次元配列のことをいう。
【００５５】
ＲＧＢ位置情報記憶部１３５は、ラインを構成するピクセルのうち、ＲＧＢイメージデータの開始地点のピクセルと終了地点のピクセルとをそれぞれ示す情報を記憶する。
【００５６】
ライン結合部１３６は、ラインごとに生成されたインデックスカラーイメージおよびＲＧＢイメージをそれぞれ複数ライン分まとめて結合させたデータである結合データを生成する。
【００５７】
ライン結合部１３６は、インデックスカラーイメージを複数ライン分まとめたインデックスカラーイメージ領域であるインデックスカラーイメージブロックと、ＲＧＢイメージを複数ライン分まとめたＲＧＢイメージ領域であるＲＧＢイメージデータブロックを生成する。
【００５８】
また、ライン結合部１３６は、ＲＧＢイメージデータブロックが作成されているか否かを示す作成パラメータを制御し、ＲＧＢイメージデータブロックを生成している際には、作成パラメータを「ＯＮ」に制御し、ＲＧＢイメージデータブロックの生成が終了すると、作成パラメータを「Ｄｏｎｅ」に制御する。なお、ライン結合部１３６は、デフォルト値として作成パラメータを「ＯＦＦ」に制御する。
【００５９】
描画処理部１３３は、インデックスカラーイメージブロックおよびＲＧＢイメージデータブロックそれぞれに対して描画処理を実行し、プリントエンジン１０６が処理可能な形式のラスターデータに変換する。
【００６０】
本実施形態に係る画像処理装置１は、このような構成によって、受信した印刷対象のデータ（印刷対象データ）に対して描画処理を実行し、ＣＭＹＫ形式のラスターデータを生成する。次に、図８を参照して、本実施形態に係る画像処理部１３０において実行される描画処理の全体の流れについて説明する。
【００６１】
なお、図８において説明する処理では、図９に示す印刷対象のデータに対してインデックスカラーを用いて描画処理を実行する。図９は、本実施形態に係る印刷対象のデータにおけるインデックスカラーイメージとＲＧＢイメージとをラインごとに示すものである。
【００６２】
図９は、印刷対象データに基づいて展開された２次元の画素の配列を分解して、特定の一次元方向に並べた画素の一次元配列であるラインをライン１〜ライン９まで示している。したがって、ライン１〜ライン９を合わせるとひとつの印刷対象データとなる。
【００６３】
また、図１０は、図９に示す印刷対象のデータに含まれるラインにおける色情報の構成を示す定義ファイルの記述例を示すものである。以下、図９におけるラインごとの情報の構成の詳細について説明する。
【００６４】
ライン１は黒のテキストを構成する画素である黒のテキスト画素５００のみによって構成されるラインである。そのため、白い背景に対して黒のテキスト画素５００を構成するピクセルのみがあるので、白と黒のインデックスカラーで表現される。ライン２は画像を構成する画素である画像画素５０１のみがあるラインである。そのため、インデックスカラーでの表現はなく、ラインの先頭から終端までをＲＧＢイメージとして記憶しておく。
【００６５】
ライン３は赤のテキストを構成する画素である赤のテキスト画素５０２のみがあるラインである。そのため、白い背景に対して赤のテキスト画素５０２を構成するピクセルのみがあるので、白と赤のインデックスカラーで表現する。ライン４は黒のテキスト画素５００と画像を構成する画素である画像画素５０３とが混在するラインである。
【００６６】
この場合、黒のテキスト画素５００の部分は白と黒のインデックスカラーで表現し、画像画素５０３の部分はＲＧＢイメージとして記憶しておく。また、ＲＧＢイメージが開始されるピクセルの位置である先頭の位置、および、ＲＧＢイメージが終了するピクセルの位置である後端の位置を記憶しておく。
【００６７】
ライン５は画像を構成する画素である画像画素５０４と黒のテキスト画素５００とが混在するラインである。この場合、黒のテキスト画素５００の部分は白と黒のインデックスカラーで表現し、画像画素５０４の部分はＲＧＢイメージとして記憶しておく。
【００６８】
ライン６は黒のテキスト画素５００と画像を構成する画素である画像画素５０５とが交互に配置されて構成されるラインである。この場合、黒のテキスト画素５００の部分は白と黒のインデックスカラーで表現し、画像画素５０５の部分はＲＧＢイメージとして記憶しておく。なお、ＲＧＢイメージは先頭の位置と後端の位置を記憶しておく。
【００６９】
ライン７は黒のテキスト画素５００と画像を構成する画素である画像画素５０６、５０７とが交互に配置されて構成されるラインである。この場合、黒のテキスト画素５００の部分は白と黒のインデックスカラーで表現し、画像画素５０６、５０７の部分はＲＧＢイメージとして記憶しておく。
【００７０】
なお、画像画素５０６の先頭の位置と画像画素５０７の後端の位置に基づいてＲＧＢイメージを記憶しておくが、ラインの先端および後端にインデックスカラーによって表現された黒のテキスト画素５００の部分が残る。
【００７１】
ライン８は画像を構成する画素である画像画素５０８、５０９と黒のテキスト画素５００が交互に配置されて構成されるラインである。この場合、黒のテキスト画素５００の部分は白と黒のインデックスカラーで表現し、画像画素５０８、５０９の部分はＲＧＢイメージとして記憶しておく。ＲＧＢイメージは先頭の位置と後端の位置を記憶しておくが、画像画素５０９より後端側にインデックスカラーによって表現された黒のテキスト画素５００の部分が残る。
【００７２】
ライン９は赤のテキスト画素５０２と黒のテキスト画素５００によって構成されるラインである。この場合、黒のテキスト画素５００の部分をインデックスカラーで表現し、赤のテキスト画素５０２部分はＲＧＢイメージとして記憶しておく。これは、本実施形態では、１ＢＰＰのインデックスカラーを扱い、インデックスカラーとして扱える色が白以外の１色だからである。そこで、ここでは、黒のテキスト画素５００を優先して描画するために、黒のテキスト画素５００をインデックスカラーで表現する。
【００７３】
図９および図１０に示すような印刷対象のデータに対して、本実施形態に係る画像処理装置１は、インデックスカラーを用いて描画処理を実行する。図８は、本実施形態に係る画像処理部１３０において実行される描画処理の全体の流れを示すフローチャートである。
【００７４】
画像処理部１３０は、受信した印刷対象のデータがラスター形式のＰＤＬデータ、すなわち、ラスターデータであるか否かを判定する（Ｓ８０１）。画像処理部１３０は、印刷対象のデータがラスター形式のＰＤＬデータ、すなわち、ラスターデータではない場合（Ｓ８０１／ＮＯ）、描画処理部１３３は、受信した印刷対象のデータに基づいて描画処理を実行し（Ｓ８０７）、ＣＭＹＫ形式のラスターデータを生成する。なお、このとき、画像処理部１３０は、受信した印刷対象のデータに含まれる全てのオブジェクトに対して描画処理を実行する。
【００７５】
受信した印刷対象データがラスター形式である場合（Ｓ８０１／ＹＥＳ）、ＰＤＬデータ処理部１３１は、ラスター形式のＰＤＬデータをＲＧＢイメージデータに変換し、インデックス化判定部１３４は、ＲＧＢイメージデータをラインごとに、インデックスイメージデータとＲＧＢイメージデータとに区別して変換する（Ｓ８０２）。なお、Ｓ８０３における具体的な処理の流れについては後述する。
【００７６】
ライン結合部１３６は、ラインごとに生成されたインデックスイメージデータとＲＧＢイメージデータとを受け取ると、同一のインデックスで表現可能なラインをブロックとして結合させ、インデックスイメージブロックを生成する（Ｓ８０３）。さらに、ライン結合部１３６は、ＲＧＢイメージデータがあるラインを同一ブロックとして結合させ、ＲＧＢイメージデータブロックを生成する（Ｓ８０４）。
【００７７】
ライン結合部１３６は、Ｓ８０４の処理においてＲＧＢイメージデータの大きさ、すなわち、ＲＧＢイメージデータブロックの大きさが最も小さくなるようにトリミングを行うＲＧＢ境界処理を実行する。なお、Ｓ８０３およびＳ８０４における具体的な処理の流れについては後述する。
【００７８】
インデックス処理部１３２は、生成されたインデックスイメージブロックおよびＲＧＢイメージデータブロックを描画処理部１３３に入力する。描画処理部１３３は、インデックスイメージブロックの描画処理を実行し（Ｓ８０５）、そして、ＲＧＢイメージデータブロックの描画処理をそれぞれ実行し（Ｓ８０６）、ＣＭＹＫ形式のラスターデータを生成する。
【００７９】
なお、Ｓ８０３の処理においては、例えば、図９のライン７のように、黒いテキスト画素５００と画像画素５０６、５０７とが交互に配置されるラインを構成するピクセルに対して、インデックスカラーを用いた表現が可能であるか否かの判定が行われる。そして、判定の結果に基づいてインデックスカラーを用いたインデックスイメージ、もしくは、ＲＧＢイメージデータが生成される。
【００８０】
図１１を参照して、Ｓ８０２においてインデックスイメージデータとＲＧＢイメージデータとに区別して変換する処理の流れについて説明する。図１１は、本実施形態に係るインデックスイメージデータとＲＧＢイメージデータとに区別して変換する処理の流れを示すフローチャートである。
【００８１】
インデックス化判定部１３４は、ラインを構成するピクセルひとつひとつの色情報を読み取り（Ｓ１１０１）、色情報とインデックスカラーテーブルに含まれる色とが同じであるか否かを判定する（Ｓ１１０２）。色情報とインデックスカラーテーブルに含まれる色とが同じである場合（Ｓ１１０２／ＹＥＳ）、インデックス化判定部１３４は、インデックスカラーテーブルに基づいてインデックスイメージを生成する（Ｓ１１０３）。
【００８２】
具体的に、インデックス化判定部１３４は、そのピクセルの色情報と同じ色のインデックスカラーテーブルの番号を用いてピクセル情報を記述し、インデックスカラーイメージを生成する。色情報とインデックスカラーテーブルに含まれる色とが同じではない場合（Ｓ１１０２／ＮＯ）、インデックス化判定部１３４は、インデックスカラーテーブルが記憶されている記憶領域にインデックスカラーが登録されていない番地があるか否かを判定する（Ｓ１１０４）。
【００８３】
インデックスカラーテーブルが記憶されている記憶領域にインデックスカラーが登録されていない番地がある場合（Ｓ１１０４／ＹＥＳ）、インデックス化判定部１３４は、そのピクセルの色情報を新たにインデックスカラーテーブルに登録する（Ｓ１１０５）。その後は、Ｓ１１０３と同様の処理を行うため、重複する説明を省略する。
【００８４】
インデックスカラーテーブルに空きがない場合（Ｓ１１０４／ＮＯ）、そのピクセルの色情報をインデックスカラーテーブルの番号を用いて記述することができない。このような場合、インデックス化判定部１３４は、インデックスカラーテーブルの番号を用いて色情報を記述することができないピクセルの位置を記憶し（Ｓ１１０６）、そのピクセルをＲＧＢイメージデータとして一時的にＲＡＭ２０などの記憶領域に記憶させる（Ｓ１１０７）。
【００８５】
Ｓ１１０６の処理においては、インデックス化判定部１３４によってインデックスカラーを用いて表現できないピクセルがＲＧＢイメージデータとして記憶領域に一時的に記憶される。そのため、描画処理部１３３がＲＧＢイメージデータに基づいて描画処理を実行する際に、ＲＧＢイメージデータからＣＭＹＫ形式のラスターデータに変換されるピクセルの領域がどこからどこまでなのかを判断するための情報が必要となる。
【００８６】
そこで、本実施形態においてＲＧＢ位置情報記憶部１３５は、ラインを構成するピクセルのうち、ＲＧＢイメージデータの開始地点のピクセルと終了地点のピクセルとをそれぞれ示す情報を記憶する。以下、図１２を参照して、ＲＧＢイメージデータの開始地点のピクセルと終了地点のピクセルとを示す情報であるＲＧＢ位置情報を記憶するＲＧＢ位置情報記憶処理の流れについて説明する。
【００８７】
図１２は、本実施形態に係るＲＧＢ位置情報記憶処理の流れを示すフローチャートである。インデックス化判定部１３４によって、Ｓ１１０４の処理においてインデックスカラーテーブルの番号を用いて色情報を記述できないと判定された場合、ＲＧＢ位置情報記憶部１３５は、そのラインにおいて、ＲＧＢイメージデータの開始地点のピクセルの位置情報があるか否かを判定する（Ｓ１２０１）。なお、本実施形態においては、ＲＧＢイメージデータが開始される開始位置のピクセルの位置情報を先端位置情報と記載する。
【００８８】
先端位置情報がある場合（Ｓ１２０１／ＹＥＳ）、ＲＧＢ位置情報記憶部１３５は、Ｓ１１０４の処理を行ったピクセルの位置をＲＧＢイメージデータの終了地点のピクセルの位置情報として更新する（Ｓ１２０３）。なお、本実施形態においては、ＲＧＢイメージデータが終了する終了位置のピクセルの位置情報を終端位置情報と記載する。
【００８９】
また、インデックス化判定部１３４は、Ｓ１１０４の処理をひとつひとつのピクセルを対象に実行する。そのため、インデックスカラーテーブルの番号を用いて色情報を記述できないピクセルが存在するたびに、ＲＧＢ位置情報記憶部１３５は終端位置情報を更新する。
【００９０】
先端位置情報がない場合（Ｓ１２０１／ＮＯ）、ＲＧＢ位置情報記憶部１３５は、Ｓ１１０４の処理を行ったピクセルの位置を先端位置情報として更新し（Ｓ１２０２）、次にＳ１２０３の処理を実行する。
【００９１】
ＲＧＢ位置情報記憶部１３５は、印刷対象のデータを構成するライン全てに対してＲＧＢ位置情報を記憶する位置情報記憶部として機能する。図１３は、本実施形態に係る印刷対象のデータにおけるＲＧＢ位置情報を示すものである。
【００９２】
ＲＧＢ位置情報記憶部１３５は、例えば、図９に示すような、それぞれのラインを構成するピクセルの色情報を表現するためのインデックスカラーテーブルの構成、それぞれのラインにおけるＲＧＢイメージデータの有無、先端位置情報、終端位置情報を記憶する。
【００９３】
図１４は、図９に示す印刷対象のデータをインデックス化判定したのちに、インデックスカラーを用いて表現したものである。また、図１５は、図９に示す印刷対象のデータをインデックス化判定したのちに、ＲＧＢイメージデータで表現したものである。
【００９４】
図１５においては、ＲＧＢイメージデータの先端位置情報および終端位置情報に基づいて、ライン７やライン８においてＲＧＢイメージデータに挟まれるように配置される黒のテキスト画素５００についてもＲＧＢイメージデータで表現される。このように構成される印刷対象のデータを構成するラインに対して、本実施形態に係るＲＧＢ位置情報記憶部１３５は、ＲＧＢ位置情報記憶処理を実行する。
【００９５】
本実施形態に係る印刷対象のデータをインデックスイメージとＲＧＢイメージデータとに区別して変換する処理とＲＧＢ位置情報記憶処理とを図１６に示すように構成されるラインのピクセルに対して実行すると仮定する。図１６においては、１番から９番のピクセルによってラインが構成される。
【００９６】
なお、図１６においては、１番から９番のピクセルをそれぞれ丸の中に数字を記載した記号を用いて示し、１番から９番のピクセルそれぞれのＲＧＢイメージデータの色情報を１６進数にて記載している。また、図１７は、このような処理におけるＲＧＢ位置情報の更新態様を示す図である。
【００９７】
インデックス化判定部１３４は、１番のピクセルから９番のピクセルへ順番に、インデックスイメージデータとＲＧＢイメージデータとに区別して変換する処理を行う。また、ＲＧＢ位置情報記憶部１３５は、１番のピクセルから９番のピクセルへ順番に、ＲＧＢ位置情報記憶処理を実行する。
【００９８】
１番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」で示される。また、インデックスカラーテーブルの０番は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」で固定されているため、インデックス化判定部１３４は、１番のピクセルの色情報をインデックスカラーテーブル番号の「０」を用いて記載する。
【００９９】
２番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝Ｇ＝Ｂ＝０ｘ００」で示される。したがって、インデックス化判定部１３４は、インデックスカラーテーブルに空きがあるかどうか確認する。このとき、インデックスカラーテーブルの１番が空きであるため、インデックス化判定部１３４は、インデックスカラーテーブルの１番に、「Ｒ＝Ｇ＝Ｂ＝０ｘ００」を新たに登録し、２番のピクセルの色情報をインデックスカラーテーブル番号の「１」を用いて記載する。
【０１００】
３番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」で示される。また、インデックスカラーテーブルの０番は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」であるため、インデックス化判定部１３４は、３番のピクセルの色情報をインデックスカラーテーブル番号の「０」を用いて記載する。
【０１０１】
４番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝Ｇ＝Ｂ＝０ｘ００」で示される。また、インデックスカラーテーブルの１番は、「Ｒ＝Ｇ＝Ｂ＝０ｘ００」であるため、インデックス化判定部１３４は、４番のピクセルの色情報をインデックスカラーテーブル番号の「１」を用いて記載する。
【０１０２】
５番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」で示される。また、インデックスカラーテーブルの０番は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」であるため、インデックス化判定部１３４は、５番のピクセルの色情報をインデックスカラーテーブル番号の「０」を用いて記載する。
【０１０３】
６番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝０ｘ９Ｄ、Ｇ＝０ｘＣ３、Ｂ＝０ｘＥ６」で示される。このとき、インデックスカラーテーブルには空きがないため、６番のピクセルの色情報をインデックスカラーテーブルの番号を用いて記述することができない。
【０１０４】
したがって、インデックス化判定部１３４は、６番のピクセルをＲＧＢイメージデータとして一時的に記憶する。また、ＲＧＢ位置情報において先端位置情報が登録されていないため、ＲＧＢ位置情報記憶部１３５は、６番のピクセルをＲＧＢイメージデータの開始地点として先端位置情報を登録する。
【０１０５】
７番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝０ｘ２Ｅ、Ｇ＝０ｘ７５、Ｂ＝０ｘＢ６」で示される。このとき、インデックスカラーテーブルには空きがないため、７番のピクセルの色情報をインデックスカラーテーブルの番号を用いて記述することができない。
【０１０６】
したがって、インデックス化判定部１３４は、７番のピクセルをＲＧＢイメージデータとして一時的に記憶する。また、ＲＧＢ位置情報において先端位置情報が登録されているため、ＲＧＢ位置情報記憶部１３５は、７番のピクセルをＲＧＢイメージデータの終了地点として終端位置情報を登録する。
【０１０７】
８番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝０ｘ１Ｆ、Ｇ＝０ｘ４Ｅ、Ｂ＝０ｘ７９」で示される。このとき、インデックスカラーテーブルには空きがないため、８番のピクセルの色情報をインデックスカラーテーブルの番号を用いて記述することができない。
【０１０８】
したがって、インデックス化判定部１３４は、８番のピクセルをＲＧＢイメージデータとして一時的に記憶する。また、ＲＧＢ位置情報において先端位置情報が登録されているため、ＲＧＢ位置情報記憶部１３５は、８番のピクセルをＲＧＢイメージデータの終了地点として終端位置情報を更新する。
【０１０９】
９番のピクセルのＲＧＢイメージデータの色情報は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」で示される。また、インデックスカラーテーブルの０番は、「Ｒ＝Ｇ＝Ｂ＝０ｘＦＦ」であるため、インデックス化判定部１３４は、９番のピクセルの色情報をインデックスカラーテーブル番号の「０」を用いて記載する。
【０１１０】
以上説明したように、インデックス化判定部１３４およびＲＧＢ位置情報記憶部１３５は、図１６に示すラインに対してインデックスイメージデータとＲＧＢイメージデータとに区別して変換する処理とＲＧＢ位置情報記憶処理とをそれぞれ実行する。すると、図１７の最下段に示すように、０、１番のインデックスカラーが登録されたインデックスカラーテーブル、「０１０１０００００」によって記載されるインデックスイメージを示す情報が生成される。
【０１１１】
なお、図１７の最下段に示すように、ＲＧＢ位置情報においては、先端位置情報が「６」、終端位置情報が「８」である。そのため、「０１０１０００００」のインデックスイメージのうち、６番目から８番目からのピクセルに対しては、インデックスカラーを用いたＣＭＹＫデータへの処理が実行されない。
【０１１２】
以上説明したように、インデックス化判定部１３４は、印刷対象のデータのラインを構成するピクセルにおいて、それぞれの色情報に基づいて、インデックスカラーを用いて色情報を表現することができるか否かを判定する。本実施形態に係る画像処理装置１は、この判定結果に基づいて、印刷対象のデータを効率よく描画するための処理を実行する。
【０１１３】
次に、図１８を参照して、インデックスカラーを用いて表現されるラインを結合してブロックとしてまとめる処理の流れについて説明する。図１８は、本実施形態に係るインデックスカラーを用いて表現されるラインを結合する処理の流れを示すフローチャートである。なお、Ｓ８０３の処理は、図１８のフローチャートに示すステップに従って実行される。
【０１１４】
ライン結合部１３６は、処理対象となっているライン（ラインＮ）のインデックスカラーテーブルと現在のラインのひとつ前のライン（ラインＮ−１）のインデックスカラーテーブルとが一致しているか否か判定する（Ｓ１８０１）。
【０１１５】
ラインＮとラインＮ−１とのインデックスカラーテーブルが一致している場合（Ｓ１８０１／ＹＥＳ）、ライン結合部１３６は、ラインＮとラインＮ−１を結合させ、同一のインデックスカラーテーブルによって色情報を記述可能なインデックスイメージブロックを生成する（Ｓ１８０２）。
【０１１６】
ラインＮとラインＮ−１とのインデックスカラーテーブルが一致しない場合（Ｓ１８０１／ＮＯ）、ライン結合部１３６は、インデックスイメージブロックを生成する処理を終了させる（Ｓ１８０３）。以上説明したように、ライン結合部１３６は、色情報の表現態様に基づいて、ラインＮとラインＮ−１を結合させるか否かを判定する。
【０１１７】
また、ＲＧＢイメージデータについてもインデックスイメージブロックと同様にＲＧＢイメージデータブロックが生成される。図１９は、本実施形態に係るＲＧＢイメージデータで表現されるラインを結合する処理の流れを示すフローチャートである。なお、Ｓ８０４の処理は、図１９のフローチャートに示すステップに従って実行される。
【０１１８】
ライン結合部１３６は、現在のライン（ラインＮ）と現在のラインのひとつ前のライン（ラインＮ−１）とに、ＲＧＢイメージデータが含まれているか否か判定する（Ｓ１９０１）。ラインＮとラインＮ−１とにＲＧＢイメージデータが含まれている場合（Ｓ１９０１／ＹＥＳ）、ライン結合部１３６は、先端位置情報と終端位置情報とに基づいて、ラインＮおよびラインＮ−１にそれぞれ含まれるＲＧＢイメージデータの先端と終端を揃える処理であるＲＧＢ境界処理を実行する（Ｓ１９０２）。
【０１１９】
ライン結合部１３６は、それぞれＲＧＢ境界処理が施されたラインＮとラインＮ−１とを結合させ、ＲＧＢイメージデータブロックを生成する（Ｓ１９０３）。また、ライン結合部１３６は、ラインＮとラインＮ−１とにＲＧＢイメージデータが含まれていない場合（Ｓ１９０１／ＮＯ）、ＲＧＢイメージデータで表現されるラインを結合する処理を終了する（Ｓ１９０４）。
【０１２０】
このように、ライン結合部１３６は、色情報の表現態様、すなわち、ラインＮとラインＮ−１を構成する画素の色情報がＲＧＢであるかインデックスカラーであるかを区別して、ラインＮとラインＮ−１を結合させるか否かを判定する。
【０１２１】
本実施形態に係るラインを結合する処理においては、ＲＧＢイメージデータからＣＭＹＫデータへ変換されるピクセルの取りこぼしを低減する必要がある。そのために、図２０の符号Ａに示すようにラインごとの先端位置情報に基づいて、ライン結合部１３６は、ラインにおける１番目の画素から最も小さい距離である先端位置情報を持つラインを決定する。
【０１２２】
また、ライン結合部１３６は、ラインごとの終端位置情報に基づいて、ラインにおける１番目の画素から最も大きい距離である終端位置情報を持つラインを決定する。図２０の符号Ｂに示すようにＲＧＢイメージデータをＣＭＹＫデータに変換する領域を決定する。そして、ライン結合部１３６は、決定された領域に対してＲＧＢ境界処理を実行する。
【０１２３】
すなわち、ライン結合部１３６は、ラインにおける１番目の画素からの距離が最も小さい先端位置情報と、ラインにおける１番目の画素からの距離が最も大きい終端位置情報とに基づいてＲＧＢイメージデータをＣＭＹＫデータに変換する領域の境界を定める。なお、本実施形態においては、所定の位置の画素であって、ラインにおける１番目の画素を基準点としてＲＧＢイメージデータをＣＭＹＫデータに変換する領域の境界を定めているものの、他の画素を基準点としてもよい。
【０１２４】
そして、ＲＧＢイメージデータをＣＭＹＫデータに変換する領域に対して、描画処理部１３３に描画処理を実行させることによって、ＲＧＢによって表現されている色情報を確実にＣＭＹＫ形式の値に反映させたラスターデータを生成することができる。
【０１２５】
図２１は、本実施形態に係るＲＧＢ境界処理の流れを示すフローチャートである。ライン結合部１３６は、ラインＮの先端位置情報と、ラインＮ−１の先端位置情報とを比較する（Ｓ２１０１）。ラインにおける１番目の画素からの距離において、ラインＮの先端位置情報が示す画素の距離が、ラインＮ−１の先端位置情報によって示される画素の距離より小さい場合（Ｓ２１０１／ＹＥＳ）、ライン結合部１３６は、ＲＧＢイメージデータブロックの先端をラインＮの先端位置情報に揃え、更新する（Ｓ２１０２）。
【０１２６】
図２２は、本実施形態に係るＲＧＢイメージデータブロックについて、ラインごとの色情報を例示したものである。図２２に示すように、ラインＮ−１においては、２０ピクセル目からＲＧＢイメージデータが開始され、２４ピクセル目でＲＧＢイメージデータが終了する。
【０１２７】
ラインＮにおいては、１９ピクセル目からＲＧＢイメージデータが開始され、２３ピクセル目でＲＧＢイメージデータが終了する。ラインＮ＋１においては、１８ピクセル目でＲＧＢイメージデータが開始され、２２ピクセル目でＲＧＢイメージデータが終了する。このように構成されるＲＧＢイメージデータブロックに対して、ライン結合部１３６は、ＲＧＢ境界処理を実行する。
【０１２８】
ラインにおける１番目の画素からの距離において、ラインＮの先端位置情報が示す画素の距離が、ラインＮ−１の先端位置情報によって示される画素の距離よりも大きい場合（Ｓ２１０１／ＮＯ）または、Ｓ２１０２の処理の次にライン結合部１３６は、ラインＮの終端位置情報と、ラインＮ−１の終端位置情報とを比較する（Ｓ２１０３）。
【０１２９】
ラインにおける１番目の画素からの距離において、ラインＮの終端位置情報が示す画素の距離が、ラインＮ−１の終端位置情報によって示される画素の距離より大きい場合（Ｓ２１０３／ＹＥＳ）、ライン結合部１３６は、ＲＧＢイメージデータブロックの終端をラインＮの終端位置情報に揃え、更新する（Ｓ２１０４）。
【０１３０】
ラインにおける１番目の画素からの距離において、ラインＮの終端位置情報が示す画素の距離が、ラインＮ−１の終端位置情報によって示される画素の距離より小さい場合（Ｓ２１０３／ＮＯ）または、Ｓ２１０４の処理を終えると、ライン結合部１３６は、本処理を終了させる。
【０１３１】
このように、結合されたＲＧＢイメージデータブロックに対して、それぞれのラインにおける先端位置情報と終端位置情報とに基づいて、ＲＧＢイメージデータからＣＭＹＫデータに変換する領域を決定する。図２０のＢに示すように、ＲＧＢ境界処理を行ったＲＧＢイメージデータブロックにおいては、ＲＧＢイメージデータからＣＭＹＫデータへ変換されるピクセルの取りこぼしを低減することができる。
【０１３２】
以上説明したように、本実施形態に係る画像処理装置１においては、１ページのラスターデータ全体にインデックスカラーを用いた色表現が可能か判定し、インデックス化できる領域については、インデックスカラーを用いてＣＭＹＫ形式のラスターデータを生成する。また、インデックス化できない領域についても、ＲＧＢイメージデータからＣＭＹＫ形式のラスターデータに変換されるピクセルの取りこぼしがないように、ＲＧＢイメージデータとインデックスイメージの境界を判定する処理を行う。
【０１３３】
そのため、図２３の符号Ａに示すように、ひとつひとつのページの全体がラスターデータ形式で表現されている印刷対象データであっても、図２３の符号Ｂのようにインデックスカラーを用いて描画を行う領域と、図２３の符号ＤのようにＲＧＢイメージデータからＣＭＹＫ形式のラスターデータに変換する領域とに区別して、描画処理を行うことができる。
【０１３４】
さらに、画像処理部１３０は、インデックスカラーを用いて描画された領域（図２３のＣ）に対して、ＲＧＢイメージデータからＣＭＹＫ形式のラスターデータに変換された領域（図２３の符号Ｄ）を上書きし、プリントエンジン１０６が使用可能なＣＭＹＫ形式のラスターデータ（図２３の符号Ｅ）を生成する。
【０１３５】
このように、本実施形態に係る画像処理装置１は、インデックスカラーを用いて、画像のデータサイズを削減するだけではなく、処理時間を短縮し、色数の少ない画像などが含まれるＷｏｒｄの文書ファイルなどを効率よく印刷することができる。また、印刷対象のページに含まれるオブジェクトを区別しなくとも本処理を適用することができるため、色数の多い領域とインデックスカラーを用いる領域とを別々に描画する。
【０１３６】
その際に、色数の多い領域とインデックスカラーの領域との境界において、ＲＧＢイメージデータからＣＭＹＫ形式のラスターデータに変換されるピクセルを取りこぼすことがないように描画を行う。したがって、色数の多い領域とインデックスカラーの領域との境界の描画結果において画像抜けの発生を低減させることができる。
【０１３７】
実施の形態２．
本実施形態では、同一のラインにおいて、インデックスカラーで表現することのできない色情報を含む領域が主走査方向に複数存在するページを印刷する場合の処理の流れについて説明を行う。なお、本実施形態に係る画像処理システム５は、第１の実施形態と同様に構成されており、画像処理装置１、ＰＣ２、タブレット端末３のハードウェア構成、機能構成についても第１の実施形態と同様であるため、重複する説明を省略する。
【０１３８】
図２４の符号Ａは、同一ライン上の主走査方向にインデックスカラーで表現することのできない色情報を含む領域が複数存在する印刷対象のページのラスターデータにおけるＲＧＢ位置情報を示し、符号Ｂは図２４の符号Ａのラスターデータの先端位置情報と終端位置情報とに基づいてＲＧＢ境界処理を行って生成されたＲＧＢイメージデータを示している。
【０１３９】
また、図２５は、本実施形態に係る印刷対象のデータにおけるＲＧＢ位置情報を例示した図である。ＲＧＢ位置情報記憶部１３５は、図２５に示すそれぞれのラインを構成するピクセルの色情報を表現するためのインデックスカラーテーブルの構成、それぞれのラインにおけるＲＧＢイメージデータの有無、先端位置情報、終端位置情報を記憶する。
【０１４０】
図２４の符号Ａに示すように、本実施形態に係るラスターデータでは、同一ライン上、すなわち、それぞれの主走査方向の座標が重複してＲＧＢイメージデータのピクセルが連続している連続ＲＧＢイメージデータ２４ａと連続ＲＧＢイメージデータ２４ｂとがある。そして、図２５のＲＧＢ位置情報では、「ラインＮ」、「ラインＮ＋１」において、連続ＲＧＢイメージデータ２４ａおよび連続ＲＧＢイメージデータ２４ｂの連続ＲＧＢイメージデータが存在することが示されている。
【０１４１】
このような印刷対象のデータに対して実施の形態１に従ってＲＧＢ境界処理を実行した場合、図２４の符号Ｂに示すように、連続ＲＧＢイメージデータ２４ａと連続ＲＧＢイメージデータ２４ｂとの間にあるインデックスカラーを用いて描画可能な領域までＲＧＢイメージとして表現される。したがって、ＲＧＢイメージとして表現する必要のない領域までＲＧＢイメージとして表現されるため、データサイズが増大してしまう。
【０１４２】
そこで、本実施形態では、よりデータサイズを小さくしてＲＧＢイメージデータブロックが生成されるように、ＲＧＢイメージデータブロックの描画処理を実行する。以下、図面を順次参照して、本実施形態に係る処理の流れについて説明する。
【０１４３】
図２６は、本実施形態に係る印刷対象のデータをインデックス化する処理の流れを示すフローチャートである。なお、本実施形態では、画像処理部１３０が受信した印刷対象のデータがラスターデータであると仮定して以後の説明を行う。
【０１４４】
インデックス化判定部１３４は、ラインを構成するピクセルひとつひとつの色情報を読み取り（Ｓ２６０１）、インデックス化処理を実行する（Ｓ２６０２）。そして、印刷対象のデータに含まれる全てのラインに対してインデックス化処理を実行して（Ｓ２６０３／ＹＥＳ）、ＲＧＢイメージデータとインデックスイメージデータとを生成する。
【０１４５】
次に、Ｓ２６０２で実行されるインデックス化処理の流れについて図２７を参照して説明する。図２７は、本実施形態に係るインデックス化処理の流れを示すフローチャートである。なお、本実施形態に係るインデックス化処理とは、ラインごとにインデックスカラーイメージとＲＧＢイメージとをそれぞれ生成する処理のことである。
【０１４６】
インデックス化判定部１３４は、ラインを構成するピクセルひとつひとつの色情報を読み取り（Ｓ２７０１）、色情報とインデックスカラーテーブルに含まれる色とが同じであるか否かを判定する（Ｓ２７０２）。色情報とインデックスカラーテーブルに含まれる色とが同じである場合（Ｓ２７０２／ＹＥＳ）、インデックス化判定部１３４は、インデックスカラーテーブルに基づいてインデックスカラーイメージを生成する（Ｓ２７０３）。
【０１４７】
具体的に、インデックス化判定部１３４は、そのピクセルの色情報と同じ色のインデックスカラーテーブルの番号を用いてピクセル情報を記述し、インデックスカラーイメージを生成する。そして、そのピクセルにおいて作成終了処理を実行する（Ｓ２７０４）。なお、作成終了処理について、詳細は後述する。
【０１４８】
色情報とインデックスカラーテーブルに含まれる色とが同じではない場合（Ｓ２７０２／ＮＯ）、インデックス化判定部１３４は、インデックスカラーテーブルが記憶されている記憶領域にインデックスカラーが登録されていない番地があるか否かを判定する（Ｓ２７０５）。
【０１４９】
インデックスカラーテーブルが記憶されている記憶領域にインデックスカラーが登録されていない番地がある場合（Ｓ２７０５／ＹＥＳ）、インデックス化判定部１３４は、そのピクセルの色情報を新たにインデックスカラーテーブルに登録する（Ｓ２７０６）。その後は、Ｓ２７０３と同様の処理を行うため、重複する説明を省略する。
【０１５０】
インデックスカラーテーブルに空きがない場合（Ｓ２７０５／ＮＯ）、そのピクセルの色情報をインデックスカラーテーブルの番号を用いて記述することができない。このような場合、インデックス化判定部１３４は、インデックスカラーテーブルの番号を用いて色情報を記述することができないピクセルをＲＧＢイメージデータとして、情報記憶処理を実行する（Ｓ２７０７）。情報記憶処理について、詳細は後述する。
【０１５１】
なお、Ｓ２７０７の処理においては、インデックス化判定部１３４によってインデックスカラーを用いて表現できないピクセルがＲＧＢイメージデータとして記憶領域に一時的に記憶される。そのため、描画処理部１３３がＲＧＢイメージデータに基づいて描画処理を実行する際に、ＲＧＢイメージデータからＣＭＹＫ形式のラスターデータに変換されるピクセルの領域がどこからどこまでなのかを判断するための情報が必要となる。
【０１５２】
そこで、本実施形態においてＲＧＢ位置情報記憶部１３５は、ラインを構成するピクセルのうち、図２５に示すように、連続ＲＧＢイメージデータ２４ａおよび連続ＲＧＢイメージデータ２４ｂのそれぞれにおいて、ＲＧＢイメージデータの開始地点のピクセルと終了地点のピクセルとをそれぞれ示す情報を記憶する。以下、図２８を参照して、ＲＧＢイメージデータの開始地点のピクセルと終了地点のピクセルとを示す情報であるＲＧＢ位置情報を記憶する処理である位置情報記憶処理の流れについて説明する。
【０１５３】
図２８は、本実施形態に係る位置情報記憶処理の流れを示すフローチャートである。インデックス化判定部１３４によって、Ｓ２７０５の処理においてインデックスカラーテーブルの番号を用いて色情報を記述できないと判定された場合、ＲＧＢ位置情報記憶部１３５は、連続ＲＧＢイメージデータが作成されているか否かを示す作成パラメータが「ＯＮ」であるか否かを判定する（Ｓ２８０１）。
【０１５４】
連続ＲＧＢイメージデータが作成中ではない状態、すなわち、作成パラメータが「ＯＦＦ」である場合（Ｓ２８０１／ＮＯ）、インデックス化判定部１３４およびＲＧＢ位置情報記憶部１３５は、ＲＧＢイメージデータ領域の先端のピクセルに対して処理を行っていることになる。ＲＧＢ位置情報記憶部１３５は、ＲＧＢイメージデータ領域の数を取得して（Ｓ２８０２）、ＲＧＢイメージデータ領域の作成を開始する。
【０１５５】
なお、Ｓ２８０２で取得したＲＧＢイメージデータ領域の数がＮであった場合、ＲＧＢ位置情報記憶部１３５は、Ｎ＋１番目からＲＧＢイメージデータ領域の作成を開始する。これは、すでにＮ番目のＲＧＢイメージデータ領域が作成されており、新規のＲＧＢイメージ領域を作成する際にはＲＧＢイメージデータ領域の数が増えるためである。
【０１５６】
ＲＧＢ位置情報記憶部１３５は、Ｓ２７０１の処理で色情報を読み取ったピクセルの位置を、（Ｎ＋１）番目のＲＧＢイメージデータ領域の先端位置として更新する（Ｓ２８０３）。次に、ＲＧＢ位置情報記憶部１３５は、Ｓ２７０１の処理で色情報を読み取ったピクセルの位置を、（Ｎ＋１）番目のＲＧＢイメージデータ領域の後端位置として更新する（Ｓ２８０４）。
【０１５７】
ＲＧＢ位置情報記憶部１３５によって、（Ｎ＋１）番目のＲＧＢイメージデータ領域の後端位置が更新されると、インデックス化判定部１３４は、次のピクセルに対してＳ２７０１からの一連の処理を再度実行する。
【０１５８】
連続ＲＧＢイメージデータが作成中である状態、すなわち、作成パラメータが「ＯＮ」である場合（Ｓ２８０１／ＹＥＳ）、インデックス化判定部１３４およびＲＧＢ位置情報記憶部１３５は、ＲＧＢイメージデータ領域に含まれるか、もしくは、ＲＧＢイメージデータ領域の後端のピクセルに対して処理を行っていることになる。このとき、ＲＧＢ位置情報記憶部１３５は、Ｓ２７０１の処理で読み取ったピクセルの位置を（Ｎ＋１）番目のＲＧＢイメージデータ領域の後端位置として更新する（Ｓ２８０４）。
【０１５９】
ＲＧＢ位置情報記憶部１３５によって、（Ｎ＋１）番目のＲＧＢイメージデータ領域の後端位置が更新されると、インデックス化判定部１３４は、次のピクセルに対してＳ２７０１からの一連の処理を再度実行する。
【０１６０】
次に、インデックス処理部１３２においてインデックスイメージデータが生成されたときの処理について、図２９に示す作成終了処理のフローチャートに示すステップに従って説明する。
【０１６１】
例えば、ＲＧＢイメージで表現されたピクセルの次のピクセルがインデックスイメージデータである場合、本実施形態では、ＲＧＢイメージデータブロックにインデックスイメージデータが含まれないようにする。
【０１６２】
ＲＧＢ位置情報記憶部１３５は、連続ＲＧＢイメージデータが作成されているか否かを示す作成パラメータが「ＯＮ」であるか否かを判定する（Ｓ２９０１）。作成パラメータが「ＯＮ」である場合（Ｓ２９０１／ＹＥＳ）、インデックス化判定部１３４およびＲＧＢ位置情報記憶部１３５は、ＲＧＢイメージデータであるピクセルの次の処理対象のピクセルであって、インデックスイメージデータのピクセルに対して処理を行っていることになる。
【０１６３】
ＲＧＢ位置情報記憶部１３５は、処理中のラインのＲＧＢイメージデータ領域の数の値を１インクリメントして（Ｓ２９０２）、ＲＧＢイメージデータ領域の数の値を設定する（Ｓ２９０３）。インデックス化判定部１３４は、ＲＧＢイメージデータ領域の作成を「ＯＦＦ」に制御して（Ｓ２９０４）、本処理を終了する。
【０１６４】
作成パラメータが「ＯＦＦ」である場合（Ｓ２９０１／ＮＯ）、インデックス化判定部１３４は、本処理を終了する。なお、このとき、インデックス化判定部１３４およびＲＧＢ位置情報記憶部１３５は、インデックスイメージデータが連続しているピクセルにおいて、次の処理対象のピクセルに対して処理を行っていることになる。
【０１６５】
画像データを構成するそれぞれのラインについて情報記憶処理が終了すると、ライン結合部１３６は、インデックスカラーイメージを複数ライン分まとめたインデックスカラーイメージ領域であるインデックスカラーイメージブロックと、ＲＧＢイメージを複数ライン分まとめたＲＧＢイメージデータであるＲＧＢイメージデータブロックを生成する。
【０１６６】
図３０は、本実施形態に係るラスターデータの先端位置情報と終端位置情報とに基づいてＲＧＢ境界処理を行って生成されたＲＧＢイメージデータを例示した図である。図３１は、図３０のＲＧＢイメージデータに含まれるＲＧＢイメージデータ領域を示す情報を例示した図である。なお、図３０においては、インデックスカラーイメージのピクセルを点線で表している。
【０１６７】
図３０および図３１に示すように、本実施形態に係るＲＧＢイメージデータには、連続ＲＧＢイメージデータ２４ａと連続ＲＧＢイメージデータ２４ｂとの間に、インデックスカラーイメージデータが挟まれるようにして存在している。
【０１６８】
具体的には、図３０に示すＲＧＢイメージデータのうち、ＲＧＢイメージデータを示す情報が「開始ライン：Ｎ−４、終了ライン：Ｎ＋１、開始ピクセル：４、終了ピクセル：９」である連続ＲＧＢイメージデータ２４ａ、ＲＧＢイメージデータを示す情報が「開始ライン：Ｎ、終了ライン：Ｎ＋５、開始ピクセル：１９、終了ピクセル：２４」である連続ＲＧＢイメージデータ２４ｂが含まれる。また、その他のピクセルは、インデックスカラーイメージである。
【０１６９】
本実施形態では、ラインを結合する際に、インデックスカラーイメージが除去されるようにＲＧＢ境界処理を実行する。図３２は、本実施形態に係るＲＧＢイメージデータで表現されるラインを結合する処理の流れを示すフローチャートである。
【０１７０】
ライン結合部１３６は、現在のライン（ラインＮ）に、ＲＧＢイメージデータが含まれているか否か判定する（Ｓ３２０１）。ラインＮにＲＧＢイメージデータが含まれている場合（Ｓ３２０１／ＹＥＳ）、ライン結合部１３６は、先端位置情報と終端位置情報とに基づいて、ラインＮに含まれるＲＧＢイメージデータの先端と終端を揃える処理であるＲＧＢ境界処理を実行する（Ｓ３２０２）。
【０１７１】
ライン結合部１３６は、画像データに含まれる全てのラインに対してＲＧＢ境界処理を実行していない場合（Ｓ３２０３／ＮＯ）、Ｎ＋１番目のラインに対して再度Ｓ３２０１からの処理を実行する。そして、ライン結合部１３６は、画像データに含まれる全てのラインに対してＲＧＢ境界処理を実行すると（Ｓ３２０３／ＹＥＳ）、本処理を終了する。
【０１７２】
次に、本実施形態に係るＲＧＢ境界処理の流れについて、図３３から図３６のフローチャートを参照して説明する。図３３から図３６は、それぞれ、本実施形態に係るＲＧＢ境界処理の流れを示すフローチャートである。
【０１７３】
ライン結合部１３６は、現在のラインであるラインＮに含まれるＲＧＢイメージデータ領域の数の値（Ｅ１）を、ＲＧＢ位置情報記憶部１３５から取得する（Ｓ３３０１）。次に、ライン結合部１３６は、作成中のＲＧＢイメージデータブロックの数の値（Ｅ２）を取得する（Ｓ３３０２）。
【０１７４】
ライン結合部１３６は、Ｓ３３０１で取得したＥ１の値が、０より大きくない場合（Ｓ３３０３／ＮＯ）、Ｓ３４０１の処理を実行する。ライン結合部１３６は、Ｓ３３０２で取得したＥ２の値が０より大きくない場合（Ｓ３４０１／ＮＯ）、本処理を終了する。
【０１７５】
Ｓ３３０２で取得したＥ２の値が０より大きい場合（Ｓ３４０１／ＹＥＳ）、ライン結合部１３６は、作成中の全てのＲＧＢイメージデータブロックの作成パラメータを「Ｄｏｎｅ」に制御し、ＲＧＢイメージデータブロックの作成を完了させ（Ｓ３４０２）、本処理を終了する。
【０１７６】
ライン結合部１３６は、Ｓ３３０１で取得したＥ１の値が、０より大きく（Ｓ３３０３／ＹＥＳ）、かつ、Ｓ３３０２で取得したＥ２の値が０より大きくない場合（Ｓ３３０４／ＮＯ）、Ｓ３５０１の処置を実行する。
【０１７７】
ライン結合部１３６は、Ｅ１個のＲＧＢイメージデータ領域を、全て作成中のＲＧＢイメージデータブロックにする（Ｓ３５０１）。次にライン結合部１３６は、作成処理をＥ１回実行し（Ｓ３５０２）、本処理を終了する。なお、作成処理についての詳細は、後述する。
【０１７８】
Ｓ３３０１で取得したＥ１の値が、０より大きく（Ｓ３３０３／ＹＥＳ）、かつ、Ｓ３３０２で取得したＥ２の値が０より大きい場合（Ｓ３３０４／ＹＥＳ）、ライン結合部１３６は、ラインＮに含まれるピクセルのうち、どのピクセルを処理するかを定める情報であるピクセル位置情報ｉを「ｉ＝１」とする（Ｓ３６０１）。
【０１７９】
そして、ライン結合部１３６は、ラインＮのｉ番目のピクセルと、作成中のＥ２個のＲＧＢイメージデータブロックとの間で、開始位置もしくは終了位置が重複するものがあるか否か判定する（Ｓ３６０２）。
【０１８０】
ラインＮのｉ番目のピクセルと、作成中のＥ２個のＲＧＢイメージデータブロックとの間で、開始位置もしくは終了位置が重複するものがある場合（Ｓ３６０２／ＹＥＳ）、ライン結合部１３６は、追加処理を実行する（Ｓ３６０３）。追加処理を実行すると、ＲＧＢイメージデータブロックの開始位置の情報もしくは終了位置の情報が更新される。
【０１８１】
ラインＮのｉ番目のピクセルと、作成中のＥ２個のＲＧＢイメージデータブロックとの間で、開始位置もしくは終了位置が重複するものがない場合（Ｓ３６０２／ＮＯ）、ライン結合部１３６は、作成処理を実行する（Ｓ３６０４）。作成処理を実行すると、新規のＲＧＢイメージデータブロックについて、開始位置の情報もしくは終了位置の情報が更新される。
【０１８２】
追加処理および作成処理についての詳細は、後述する。
【０１８３】
Ｓ３６０３もしくはＳ３６０４の処理を実行すると、ライン結合部１３６は、処理中のピクセルの位置を示すピクセル位置情報ｉを「ｉ＝ｉ＋１」とし（Ｓ３６０５）、ｉがＥ１より大きいか否か判定する（Ｓ３６０６）。ｉがＥ１より大きくない場合（Ｓ３６０６／ＮＯ）、ライン結合部１３６は、ラインＮのｉ＋１番目のピクセルに対して、Ｓ３６０２から一連の処理を再度実行する。
【０１８４】
ｉがＥ１より大きい場合（Ｓ３６０６／ＹＥＳ）、ライン結合部１３６は、Ｓ３６０３、Ｓ３６０４の処理において、更新されていないＲＧＢイメージデータブロックがあるか否かを判定する（Ｓ３６０７）。更新されていないＲＧＢイメージデータブロックがある場合（Ｓ３６０７／ＹＥＳ）、ライン結合部１３６は、対象のＲＧＢイメージデータブロックの作成パラメータを「Ｄｏｎｅ」に制御し（Ｓ３６０８）、本処理を終了する。
【０１８５】
ライン結合部１３６は、開始位置の情報もしくは終了位置の情報が更新されていない作成中のＲＧＢイメージデータブロックがない場合（Ｓ３６０７／ＮＯ）、本処理を終了する。
【０１８６】
次に、作成処理について、図３７を参照して説明する。図３７は、本実施形態に係る作成処理の流れを示すフローチャートである。本処理は、処理中のラインに含まれるＲＧＢイメージデータ領域が、ＲＧＢイメージデータブロックの端部になる場合に実行される。
【０１８７】
ライン結合部１３６は、Ｓ３６０２の処理を行う時点におけるＲＧＢイメージデータブロックの個数（Ｅ２）を取得する（Ｓ３７０１）。そして、ＲＧＢ位置情報記憶部１３５に、Ｅ２＋１個目のＲＧＢイメージデータブロックの情報として、例えば、以下のような情報を記憶させる（Ｓ３７０２）。
【０１８８】
Ｓ３７０２の処理において、ライン結合部１３６は、新規のＲＧＢイメージデータブロックの情報の開始値として、「開始ライン：処理中のラインのライン番号」、「終了ライン：処理中のラインのライン番号」、「開始ピクセル位置：処理中の連続ＲＧＢイメージデータの開始ピクセルの位置」、「終了ピクセルの位置：処理中の連続ＲＧＢイメージデータの終了ピクセルの位置」を示す情報を、ＲＧＢ位置情報記憶部１３５に記憶させる。
【０１８９】
ＲＧＢイメージデータブロックの情報をＲＧＢ位置情報記憶部１３５に記憶させると、ライン結合部１３６は、Ｅ２＋１個目のＲＧＢイメージデータブロックの作成パラメータを「ＯＮ」にし（Ｓ３７０３）、本処理を終了する。
【０１９０】
次に、追加処理の流れについて、図３８を参照して説明する。図３８は、本実施形態に係る追加処理の流れを示すフローチャートである。本処理は、作成中のＲＧＢイメージデータブロックにＲＧＢイメージデータ領域のピクセルを追加する際に実行される処理である。
【０１９１】
まず、ライン結合部１３６は、追加対象のＲＧＢイメージデータ領域の開始ピクセルの番号とＲＧＢイメージデータブロックの開始ピクセル番号とを比較する（Ｓ３８０１）。追加対象のＲＧＢイメージデータ領域の開始ピクセルの番号が、ＲＧＢイメージデータブロックの開始ピクセル番号より小さい場合（Ｓ３８０１／ＹＥＳ）、ライン結合部１３６は、ＲＧＢイメージデータブロックの開始ピクセル番号を、追加対象のＲＧＢイメージデータ領域の開始ピクセルの番号に更新する（Ｓ３８０２）。
【０１９２】
追加対象のＲＧＢイメージデータ領域の開始ピクセルの番号が、ＲＧＢイメージデータブロックの開始ピクセル番号と同じ、もしくは、大きい場合（Ｓ３８０１／ＮＯ）、ライン結合部１３６は、追加対象のＲＧＢイメージデータ領域の終了ピクセルの番号とＲＧＢイメージデータブロックの終了ピクセル番号とを比較する（Ｓ３８０３）。
【０１９３】
そして、追加対象のＲＧＢイメージデータ領域の終了ピクセルの番号が、ＲＧＢイメージデータブロックの終了ピクセル番号より大きい場合（Ｓ３８０３／ＹＥＳ）、ライン結合部１３６は、ＲＧＢイメージデータブロックの終了ピクセル番号を、追加対象のＲＧＢイメージデータ領域の終了ピクセルの番号に更新する（Ｓ３８０４）。
【０１９４】
追加対象の連続ＲＧＢイメージデータの終了ピクセルの番号を更新すると、ライン結合部１３６は、ＲＧＢイメージデータブロックの終了ラインを１インクリメントし（Ｓ３８０５）、本処理を終了する。
【０１９５】
追加対象の連続ＲＧＢイメージデータの開始ピクセルの番号が、ＲＧＢイメージデータブロックの開始ピクセル番号より小さい場合（Ｓ３８０１／ＹＥＳ）、ライン結合部１３６は、ＲＧＢイメージデータブロックの終了ラインを１インクリメントし（Ｓ３８０５）、本処理を終了する。
【０１９６】
このように、本実施形態においては、複数の色数の多い領域が副走査方向のライン上に複数存在する印刷対象のページを印刷する場合に、したがって、ＲＧＢイメージとして表現する必要のない領域をトリミングすることによってよりデータサイズを小さくしてＲＧＢイメージデータブロックが生成することができる。
【０１９７】
さらに、本実施形態に係る画像処理装置１は、データサイズを小さくすることによって、処理時間を短縮し、色数の少ない画像が複数含まれた文書ファイルであっても効率よく印刷することが可能である。また、印刷対象のページに含まれるオブジェクトを区別せずとも本処理を適用することができる。
【符号の説明】
【０１９８】
１  画像処理装置
２  ＰＣ
３  タブレット端末
４  ネットワーク
５  画像処理システム
１０  ＣＰＵ
２０  ＲＡＭ
３０  ＲＯＭ
４０  ＨＤＤ
５０  Ｉ／Ｆ
６０  ＬＣＤ
７０  操作部
８０  バス
１００  コントローラ
１０１  ＡＤＦ
１０２  スキャナユニット
１０３  排紙トレイ
１０４  ディスプレイパネル
１０５  給紙テーブル
１０６  プリントエンジン
１０７  排紙トレイ
１０８  ネットワークＩ／Ｆ
１１０  主制御部
１２０  エンジン制御部
１３０  画像処理部
１３１  ＰＤＬデータ処理部
１３２  インデックス処理部
１３３  描画処理部
１３４  インデックス化判定部
１３５  ライン結合部
１４０  操作表示制御部
１５０  入出力制御部
【先行技術文献】
【特許文献】
【０１９９】
【特許文献１】特開２０１０−１６２８０２号公報
【図１】
2018083411.tif 000003
【図２】
2018083411.tif 000004
【図３】
2018083411.tif 000005
【図４】
2018083411.tif 000006
【図５】
2018083411.tif 000007
【図６】
2018083411.tif 000008
【図７】
2018083411.tif 000009
【図８】
2018083411.tif 000010
【図９】
2018083411.tif 000011
【図１０】
2018083411.tif 000012
【図１１】
2018083411.tif 000013
【図１２】
2018083411.tif 000014
【図１３】
2018083411.tif 000015
【図１４】
2018083411.tif 000016
【図１５】
2018083411.tif 000017
【図１６】
2018083411.tif 000018
【図１７】
2018083411.tif 000019
【図１８】
2018083411.tif 000020
【図１９】
2018083411.tif 000021
【図２０】
2018083411.tif 000022
【図２１】
2018083411.tif 000023
【図２２】
2018083411.tif 000024
【図２３】
2018083411.tif 000025
【図２４】
2018083411.tif 000026
【図２５】
2018083411.tif 000027
【図２６】
2018083411.tif 000028
【図２７】
2018083411.tif 000029
【図２８】
2018083411.tif 000030
【図２９】
2018083411.tif 000031
【図３０】
2018083411.tif 000032
【図３１】
2018083411.tif 000033
【図３２】
2018083411.tif 000034
【図３３】
2018083411.tif 000035
【図３４】
2018083411.tif 000036
【図３５】
2018083411.tif 000037
【図３６】
2018083411.tif 000038
【図３７】
2018083411.tif 000039
【図３８】
2018083411.tif 000040