(57)【要約】【課題】ページ記述言語で表現された画像データに含まれる矩形図形を、矩形データとして取り扱うことが可能な画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムを提供する。【解決手段】ページ記述言語で表現された画像データから描画コマンドを抽出し、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定し、矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する。そして、矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定し、この座標点に基づいて前記描画コマンドを、前記矩形データに変換する。【選択図】        図５
2008117149.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する矩形判定手段と、
前記矩形判定手段により矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、
前記特定された座標点に基づいて前記描画コマンドを、前記矩形データに変換するデータ形式変換手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記矩形判定手段は、前記描画コマンドに含まれた座標点間を結ぶ線分方向に基づいて当該線分方向が変化する座標点を抽出し、この抽出された座標点により表される図形が矩形か否かを判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記矩形判定手段は、前記描画コマンドに含まれた座標点の個数が所定の範囲内に含まれるか否かを判定し、この所定の範囲に含まれると判定した場合、前記描画コマンドにより表される図形が矩形か否かを判定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記矩形判定部は、前記描画コマンドにより表される図形の線分の傾きが所定の誤差範囲内に含まれるか否かを判定し、この誤差範囲内に含まれると判定した場合、前記描画コマンドにより表される図形が矩形か否かを判定することを特徴とする請求項１〜３の何れか一項に記載の画像処理装置。
【請求項５】
前記矩形判定手段は、前記描画コマンドの属性情報に応じて、当該描画コマンドが表す図形が矩形か否かを判定することを特徴とする請求項１〜４の何れか一項に記載の画像処理装置。
【請求項６】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、
前記スキャンラインデータが表す図形と、前記描画コマンドが表す図形の外接矩形とを比較し、両形状が一致した場合に前記スキャンラインデータが表す図形を矩形と判定する矩形判定手段と、
前記矩形判定手段により矩形と判定されたスキャンラインデータに含まれる前記始点座標及び終点座標から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、
前記特定された座標点に基づいて、前記スキャンラインデータを前記矩形データに変換するデータ形式変換手段と、
を備えたことを特徴とする画像処理装置。
【請求項７】
前記矩形判定手段は、前記ランレングスデータ毎の始点座標及び終点座標と、前記外接矩形の主走査方向の端点座標とを比較することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、
連続する前記ランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定する矩形判定手段と、
前記矩形判定手段により矩形と判定された一連のランレングスデータ毎に、当該一連のランレングスデータにかかる前記始点座標及び終点座標から、前記矩形の対角点に対応する座標点を特定する対角点特定手段と、
前記特定された座標点に基づいて、前記一連のランレングスデータに対応する前記スキャンラインデータの座標範囲を前記矩形データに変換するデータ形式変換手段と、
を備えたことを特徴とする画像処理装置。
【請求項９】
前記矩形判定手段は、前記始点座標及び終点座標が一致するランレングスデータの個数が所定数以上か否かを判定し、当該所定数以上と判定した場合、前記一連のランレングスデータにより表される図形を矩形と判定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する矩形判定手段と、
前記矩形判定手段により矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、
前記特定された座標点に基づいて前記描画コマンドを、前記矩形データに変換するデータ形式変換手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、
前記矩形データが表す矩形図形又は前記スキャンラインデータが表す図形を二値化するハーフトーン処理手段と、
前記二値化された図形を記録媒体に印刷する画像形成エンジンと、
を備えたことを特徴とする画像形成装置。
【請求項１１】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、
前記スキャンラインデータが表す図形と、前記描画コマンドが表す図形の外接矩形とを比較し、両形状が一致した場合に前記スキャンラインデータが表す図形を矩形と判定する矩形判定手段と、
前記矩形判定手段により矩形と判定されたスキャンラインデータに含まれる前記始点座標及び終点座標から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、
前記特定された座標点に基づいて、前記スキャンラインデータを前記矩形データに変換するデータ形式変換手段と、
前記矩形データが表す矩形図形又は前記スキャンラインデータが表す図形を二値化するハーフトーン処理手段と、
前記二値化された図形を記録媒体に印刷する画像形成エンジンと、
を備えたことを特徴とする画像形成装置。
【請求項１２】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、
前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、
連続する前記ランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定する矩形判定手段と、
前記矩形判定手段により矩形と判定された一連のランレングスデータ毎に、当該一連のランレングスデータにかかる前記始点座標及び終点座標から、前記矩形の対角点に対応する座標点を特定する対角点特定手段と、
前記特定された座標点に基づいて、前記一連のランレングスデータに対応する前記スキャンラインデータの座標範囲を前記矩形データに変換するデータ形式変換手段と、
前記矩形データが表す矩形図形又は前記スキャンラインデータが表す図形を二値化するハーフトーン処理手段と、
前記二値化された図形を記録媒体に印刷する画像形成エンジンと、
を備えたことを特徴とする画像形成装置。
【請求項１３】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析工程と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定工程と、
前記コマンド判定工程により矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する矩形判定工程と、
前記矩形判定工程により矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定する対角点特定工程と、
前記特定された座標点に基づいて前記描画コマンドを、前記矩形データに変換するデータ形式変換工程と、
を含むことを特徴とする画像処理方法。
【請求項１４】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析工程と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定工程と、
前記コマンド判定工程により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換工程と、
前記スキャンラインデータが表す図形と、前記描画コマンドが表す図形の外接矩形とを比較し、両形状が一致した場合に前記スキャンラインデータが表す図形を矩形と判定する矩形判定工程と、
前記矩形判定工程により矩形と判定されたスキャンラインデータに含まれる前記始点座標及び終点座標から、当該矩形の対角点に対応する座標点を特定する対角点特定工程と、
前記特定された座標点に基づいて、前記スキャンラインデータを前記矩形データに変換するデータ形式変換工程と、
を含むことを特徴とする画像処理方法。
【請求項１５】
ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析工程と、
前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定工程と、
前記コマンド判定工程により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換工程と、
連続する前記ランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定する矩形判定工程と、
前記矩形判定工程により矩形と判定された一連のランレングスデータ毎に、当該一連のランレングスデータにかかる前記始点座標及び終点座標から、前記矩形の対角点に対応する座標点を特定する対角点特定工程と、
前記特定された座標点に基づいて前記一連のランレングスデータに対応する前記スキャンラインデータの座標範囲を、前記矩形データに変換するデータ形式変換工程と、
を含むことを特徴とする画像処理方法。
【請求項１６】
請求項１３〜１５の何れか一項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来、レーザプリンタやインクジェットプリンタ等のページプリンタでは、ページ記述言語（ＰＤＬ：Page Description Language）を利用して、印刷する画像データを表すことが行われている。このようなページプリンタでは、ＰＤＬを用いて表された画像データを構成する図形描画命令（以下、描画コマンドという）を解析し、この解析により認識された図形により構成される印刷描画イメージを生成し、ページメモリに格納した後、プリンタエンジンに転送することで画像データの印刷が行われている。
【０００３】
上記したＰＤＬでは、文字、イメージ、グラフィックス等を描画コマンドにより表現することが可能となっている。例えば、グラフィックスでは矩形図形の描画を対角点の指定により直接指示する「矩形データ」や、指定した座標位置の結線により図形を表す「ポリゴンデータ」、曲線を表す「ベジェデータ」等の描画コマンドにより、夫々対応する図形が表される。
【０００４】
ポリゴンデータ、ベジェデータ等の描画コマンドにより表された図形は、印刷描画イメージの生成時において、主走査方向（スキャンライン）毎に分割されたラスタ画像により表されるスキャンラインデータへと変換（スキャンライン変換）される。以下、スキャンライン毎に変換された各ラスタ画像をランレングスデータという。各ランレングスデータは、ディザリング等のハーフトーン処理により２値化された後、印刷描画イメージとしてページメモリに格納される。従来、描画コマンドに基づいて生成した中間コードを評価し、この評価結果に適した一の描画処理手段を複数の描画処理手段から選択して描画処理を行わせることで、描画処理の高速化を図った技術が提案されている（例えば、特許文献１参照）。
【０００５】
上述したように矩形データでは、描画対称となる矩形図形の開始座標となる左上座標と、終了座標となる右下座標とからなる対角点を指示することで、その矩形領域を一意に指示することが可能となっている。この矩形データの場合、座標（ｘ、ｙ）の各成分を夫々４バイトで表すと、２つの座標分である１６バイトで矩形図形を表現することができる。一方、スキャンライン変換されたスキャンラインデータでは、スキャンライン毎に対応するＹ座標と、ランレングスデータの始点Ｘ座標、終点Ｘ座標を指示する必要がある。そのため、矩形図形をスキャンラインデータで表した場合、上記同様座標（ｘ、ｙ）の各成分を夫々４バイトで表すと、１２バイト×矩形領域の高さ（総スキャンライン）分のデータサイズとなるため、矩形データと比較しデータ容量は増大することになる。
【０００６】
また処理速度に関しても、矩形データとして処理する場合には、全てのＹ座標に対して、その図形の幅方向を示すＸ座標の開始・終了位置は常に同じ値となるため、スキャンライン毎の計算が不要なのに対し、スキャンラインデータとして処理する場合には、スキャンライン毎（Ｙ座標毎）に、その図形の幅方向を示すＸ座標の開始・終了位置を計算する必要があるため、矩形データの場合と比較し処理速度は低下することになる。
【０００７】
そのため、印刷描画イメージの生成時においては、描画コマンドが矩形データである場合、この描画コマンドにより表される図形を矩形データのまま取り扱うことで、描画にかかる処理速度や処理負荷の効率化が図られている。
【０００８】
【特許文献１】特開２００２−０３６６３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、矩形図形の描画を指示したにもかかわらず、描画コマンドにより表された際に、矩形データではなくポリゴンデータ等の他の描画コマンドとして表現されてしまうことがある。この場合、描画コマンドは矩形データとして取り扱われないため、上述したスキャンライン変換が行われてしまい、描画にかかる処理速度や処理負荷が増加するという問題がある。また、スキャンライン変換を行った後でしか矩形と認識できないような図形や、図形の一部が矩形である場合には、上記同様矩形データとして処理されないため、処理速度や処理負荷が増加してしまうという問題がある。なお、特許文献１に記載の技術では、描画ラン（ランレングスデータの長さ）が基準値より大きいか否かで描画処理手段を選択しているのみであるため、上記の課題を解決することはできない。
【００１０】
本発明は、上記に鑑みてなされたものであって、ページ記述言語で表現された画像データに含まれる矩形図形を、矩形データとして取り扱うことが可能な画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する矩形判定手段と、前記矩形判定手段により矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、前記特定された座標点に基づいて前記描画コマンドを、前記矩形データに変換するデータ形式変換手段と、を備えたことを特徴としている。
【００１２】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記矩形判定手段は、前記描画コマンドに含まれた座標点間を結ぶ線分方向に基づいて当該線分方向が変化する座標点を抽出し、この抽出された座標点により表される図形が矩形か否かを判定することを特徴としている。
【００１３】
また、請求項３にかかる発明は、請求項１又は２にかかる発明において、前記矩形判定手段は、前記描画コマンドに含まれた座標点の個数が所定の範囲内に含まれるか否かを判定し、この所定の範囲に含まれると判定した場合、前記描画コマンドにより表される図形が矩形か否かを判定することを特徴としている。
【００１４】
また、請求項４にかかる発明は、請求項１〜３の何れか一項にかかる発明において、前記矩形判定部は、前記描画コマンドにより表される図形の線分の傾きが所定の誤差範囲内に含まれるか否かを判定し、この誤差範囲内に含まれると判定した場合、前記描画コマンドにより表される図形が矩形か否かを判定することを特徴としている。
【００１５】
また、請求項５にかかる発明は、請求項１〜４の何れか一項にかかる発明において、前記矩形判定手段は、前記描画コマンドの属性情報に応じて、当該描画コマンドが表す図形が矩形か否かを判定することを特徴としている。
【００１６】
また、請求項６にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、前記スキャンラインデータが表す図形と、前記描画コマンドが表す図形の外接矩形とを比較し、両形状が一致した場合に前記スキャンラインデータが表す図形を矩形と判定する矩形判定手段と、前記矩形判定手段により矩形と判定されたスキャンラインデータに含まれる前記始点座標及び終点座標から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、前記特定された座標点に基づいて、前記スキャンラインデータを前記矩形データに変換するデータ形式変換手段と、を備えたことを特徴としている。
【００１７】
また、請求項７にかかる発明は、請求項６にかかる発明において、前記矩形判定手段は、前記ランレングスデータ毎の始点座標及び終点座標と、前記外接矩形の主走査方向の端点座標とを比較することを特徴としている。
【００１８】
また、請求項８にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、連続する前記ランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定する矩形判定手段と、前記矩形判定手段により矩形と判定された一連のランレングスデータ毎に、当該一連のランレングスデータにかかる前記始点座標及び終点座標から、前記矩形の対角点に対応する座標点を特定する対角点特定手段と、前記特定された座標点に基づいて、前記一連のランレングスデータに対応する前記スキャンラインデータの座標範囲を前記矩形データに変換するデータ形式変換手段と、を備えたことを特徴としている。
【００１９】
また、請求項９にかかる発明は、請求項８にかかる発明において、前記矩形判定手段は、前記始点座標及び終点座標が一致するランレングスデータの個数が所定数以上か否かを判定し、当該所定数以上と判定した場合、前記一連のランレングスデータにより表される図形を矩形と判定することを特徴としている。
【００２０】
また、請求項１０にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する矩形判定手段と、前記矩形判定手段により矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、前記特定された座標点に基づいて前記描画コマンドを、前記矩形データに変換するデータ形式変換手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、前記矩形データが表す矩形図形又は前記スキャンラインデータが表す図形を二値化するハーフトーン処理手段と、前記二値化された図形を記録媒体に印刷する画像形成エンジンと、を備えたことを特徴としている。
【００２１】
また、請求項１１にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、前記スキャンラインデータが表す図形と、前記描画コマンドが表す図形の外接矩形とを比較し、両形状が一致した場合に前記スキャンラインデータが表す図形を矩形と判定する矩形判定手段と、前記矩形判定手段により矩形と判定されたスキャンラインデータに含まれる前記始点座標及び終点座標から、当該矩形の対角点に対応する座標点を特定する対角点特定手段と、前記特定された座標点に基づいて、前記スキャンラインデータを前記矩形データに変換するデータ形式変換手段と、前記矩形データが表す矩形図形又は前記スキャンラインデータが表す図形を二値化するハーフトーン処理手段と、前記二値化された図形を記録媒体に印刷する画像形成エンジンと、を備えたことを特徴としている。
【００２２】
また、請求項１２にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析手段と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定手段と、前記コマンド判定手段により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換手段と、連続する前記ランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定する矩形判定手段と、前記矩形判定手段により矩形と判定された一連のランレングスデータ毎に、当該一連のランレングスデータにかかる前記始点座標及び終点座標から、前記矩形の対角点に対応する座標点を特定する対角点特定手段と、前記特定された座標点に基づいて、前記一連のランレングスデータに対応する前記スキャンラインデータの座標範囲を前記矩形データに変換するデータ形式変換手段と、前記矩形データが表す矩形図形又は前記スキャンラインデータが表す図形を二値化するハーフトーン処理手段と、前記二値化された図形を記録媒体に印刷する画像形成エンジンと、を備えたことを特徴としている。
【００２３】
また、請求項１３にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析工程と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定工程と、前記コマンド判定工程により矩形データ以外と判定された描画コマンドに対し、当該描画コマンドに含まれた座標点により表される図形が矩形か否かを判定する矩形判定工程と、前記矩形判定工程により矩形と判定された前記描画コマンドの座標点から、当該矩形の対角点に対応する座標点を特定する対角点特定工程と、前記特定された座標点に基づいて前記描画コマンドを、前記矩形データに変換するデータ形式変換工程と、を含むことを特徴としている。
【００２４】
また、請求項１４にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析工程と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定工程と、前記コマンド判定工程により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換工程と、前記スキャンラインデータが表す図形と、前記描画コマンドが表す図形の外接矩形とを比較し、両形状が一致した場合に前記スキャンラインデータが表す図形を矩形と判定する矩形判定工程と、前記矩形判定工程により矩形と判定されたスキャンラインデータに含まれる前記始点座標及び終点座標から、当該矩形の対角点に対応する座標点を特定する対角点特定工程と、前記特定された座標点に基づいて、前記スキャンラインデータを前記矩形データに変換するデータ形式変換工程と、を含むことを特徴としている。
【００２５】
また、請求項１５にかかる発明は、ページ記述言語で表現された画像データを解析し、描画コマンドを抽出するコマンド解析工程と、前記描画コマンドが矩形図形の描画を対角点により一意に指示する矩形データか否かを判定するコマンド判定工程と、前記コマンド判定工程により矩形データ以外と判定された描画コマンドが表す図形を、主走査方向毎のランレングスデータの始点座標及び終点座標で表したスキャンラインデータに変換するスキャンライン変換工程と、連続する前記ランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定する矩形判定工程と、前記矩形判定工程により矩形と判定された一連のランレングスデータ毎に、当該一連のランレングスデータにかかる前記始点座標及び終点座標から、前記矩形の対角点に対応する座標点を特定する対角点特定工程と、前記特定された座標点に基づいて前記一連のランレングスデータに対応する前記スキャンラインデータの座標範囲を、前記矩形データに変換するデータ形式変換工程と、を含むことを特徴としている。
【００２６】
また、請求項１６にかかる発明は、請求項１３〜１５の何れか一項に記載の画像処理方法をコンピュータに実行させることを特徴としている。
【発明の効果】
【００２７】
請求項１にかかる発明によれば、ページ記述言語で表現された画像データのうち、描画コマンドが矩形データ以外と判定された描画コマンドの表す図形が矩形か否かを判定し、この図形を矩形と判定した場合に、当該描画コマンドの描画コマンドを矩形データに変換する。これにより、矩形データ以外と判定された描画コマンドにより表される図形が矩形である場合、この描画コマンドを矩形データとして取り扱うことができるため、描画にかかる処理を効率的に行うことができる。
【００２８】
また、請求項２にかかる発明によれば、描画コマンドに含まれた座標点間の線分方向に基づいて、当該線分方向が変化する座標点を抽出し、この抽出された座標点により表される図形が矩形か否かを判定する。これにより、図形形成の要となる座標点を特定することができるため、描画コマンドにより表される図形が矩形か否かをより確実に判定することができる。
【００２９】
また、請求項３にかかる発明によれば、描画コマンドに含まれた座標点の個数が所定の範囲内に含まれる場合にのみ、描画コマンドにより表される図形が矩形か否かを判定することで、不用意に矩形判定が行われてしまうことを防ぐことができる。
【００３０】
また、請求項４にかかる発明によれば、描画コマンドにより表される図形の線分の傾きが所定の誤差範囲内である場合に、この図形が矩形か否かを判定することで、外見上矩形であるが厳密には矩形とならない図形を矩形として処理することができるため、描画にかかる処理を効率的に行うことができる。
【００３１】
また、請求項５にかかる発明によれば、描画コマンドの属性情報に応じて、当該描画コマンドが表す図形が矩形か否かを判定することで描画コマンドの属性に応じて矩形か否かを判定することができる。
【００３２】
また、請求項６にかかる発明によれば、スキャンラインデータに変換された描画コマンドが表す図形と、描画コマンド自体が表す図形の外接矩形とを比較し、両形状が一致した場合にスキャンラインデータが表す図形を矩形と判定し、このスキャンラインデータを矩形データの描画コマンドに変換する。これにより、スキャンライン変換を行った後でしか矩形と判定できないような図形であっても、この図形を矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができる。
【００３３】
また、請求項７にかかる発明によれば、ランレングスデータ毎の始点座標及び終点座標と、外接矩形の主走査方向の端点座標とを比較することで、両形状が一致するか否かを確実に判定することができる。
【００３４】
また、請求項８にかかる発明によれば、連続するランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定し、矩形と判定した一連のランレングスデータ毎に、当一連のランレングスデータに対応するスキャンラインデータの座標範囲を、矩形データの描画コマンドに変換する。これにより、描画コマンドにより表される図形の一部が矩形であっても、この矩形毎に矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができる。
【００３５】
また、請求項９にかかる発明によれば、始点座標及び終点座標が一致するランレングスデータの個数が所定数以上か否かを判定し、当該所定数以上と判定した場合、ランレングスデータ群により表される図形を矩形と判定することで、不用意に矩形判定が行われてしまうことを防ぐことができる。
【００３６】
また、請求項１０にかかる発明によれば、ページ記述言語で表現された画像データのうち、描画コマンドが矩形データ以外と判定された描画コマンドの表す図形が矩形か否かを判定し、この図形を矩形と判定した場合に、当該描画コマンドの描画コマンドを矩形データに変換する。これにより、矩形データ以外と判定された描画コマンドにより表される図形が矩形である場合、この描画コマンドを矩形データとして取り扱うことができるため、描画にかかる処理を効率的に行うことができ、画像データを効率的に印刷することができる。
【００３７】
また、請求項１１にかかる発明によれば、スキャンラインデータに変換された描画コマンドが表す図形と、描画コマンド自体が表す図形の外接矩形とを比較し、両形状が一致した場合にスキャンラインデータが表す図形を矩形と判定し、このスキャンラインデータを矩形データの描画コマンドに変換する。これにより、スキャンライン変換を行った後でしか矩形と判定できないような図形であっても、この図形を矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができ、画像データを効率的に印刷することができる。
【００３８】
また、請求項１２にかかる発明によれば、連続するランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定し、矩形と判定した一連のランレングスデータ毎に、当一連のランレングスデータに対応するスキャンラインデータの座標範囲を、矩形データの描画コマンドに変換する。これにより、描画コマンドにより表される図形の一部が矩形であっても、この矩形毎に矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことが、画像データを効率的に印刷することができる。
【００３９】
また、請求項１３にかかる発明によれば、ページ記述言語で表現された画像データのうち、描画コマンドが矩形データ以外と判定された描画コマンドの表す図形が矩形か否かを判定し、この図形を矩形と判定した場合に、当該描画コマンドの描画コマンドを矩形データに変換する。これにより、矩形データ以外と判定された描画コマンドにより表される図形が矩形である場合、この描画コマンドを矩形データとして取り扱うことができるため、描画にかかる処理を効率的に行うことができる。
【００４０】
また、請求項１４にかかる発明によれば、スキャンラインデータに変換された描画コマンドが表す図形と、描画コマンド自体が表す図形の外接矩形とを比較し、両形状が一致した場合にスキャンラインデータが表す図形を矩形と判定し、このスキャンラインデータを矩形データの描画コマンドに変換する。これにより、スキャンライン変換を行った後でしか矩形と判定できないような図形であっても、この図形を矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができる。
【００４１】
また、請求項１５にかかる発明によれば、連続するランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定し、矩形と判定した一連のランレングスデータ毎に、当一連のランレングスデータに対応するスキャンラインデータの座標範囲を、矩形データの描画コマンドに変換する。これにより、描画コマンドにより表される図形の一部が矩形であっても、この矩形毎に矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができる。
【００４２】
また、請求項１６にかかる発明によれば、コンピュータに読み取らせて実行することによって、請求項１３〜１５の何れか一項に記載の画像処理方法をコンピュータの利用で実現することができ、請求項１３〜１５の何れか一項に記載の画像処理方法と同様の効果を奏する。
【発明を実施するための最良の形態】
【００４３】
以下に添付図面を参照して、本発明の最良な実施の形態を詳細に説明する。
【００４４】
［第１の実施の形態］
図１は、本実施形態の画像処理装置のハードウェア構成を示したブロック図である。図１に示すように、画像形成装置１００は、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、通信Ｉ／Ｆ４、エンジンＩ／Ｆ５、画像形成エンジン６等を備え、各部はバス７を介して相互に通信可能に接続されている。
【００４５】
ＣＰＵ１は、ＲＡＭ３の所定領域を作業領域として、ＲＯＭ２に予め記憶された各種制御プログラムとの協働により、当該ＲＯＭ２に予め記憶された各種設定情報に基づいて各種処理を実行し、画像形成装置１００を構成する各部の動作を統括的に制御する。
【００４６】
ＲＯＭ２は、画像形成装置１００の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
【００４７】
ＲＡＭ３は、ＳＤＲＡＭ（Synchronous DRAM）等の記憶装置であって、各種データを書き換え可能に記憶する性質を有していることから、ＣＰＵ１の作業エリアとして機能し、ワークメモリとしての役割を果たす。また、ＲＡＭ３は、通信Ｉ／Ｆ４を介して入力された画像データを記憶するフレームメモリとしての役割を果たす。
【００４８】
通信Ｉ／Ｆ４は、ＰＣ（Personal Computer）等の外部機器との間で通信を行うインターフェースであって、外部機器から入力された画像データをＣＰＵ１に出力する。なお、入力される画像データは、外部機器においてＰＤＬを用いて記述されているものとする。
【００４９】
エンジンＩ／Ｆ５は、画像データの印刷を行う画像形成エンジン６との間で通信を行うインターフェースであって、ＣＰＵ１から出力される画像形成エンジン６を制御するための信号を当該画像形成エンジン６に出力するとともに、画像形成エンジン６から出力される各種信号をＣＰＵ１に出力する。
【００５０】
画像形成エンジン６は、印刷対象となった画像データ（描画コマンド）により表される画像を電子写真プロセス等により記録媒体上に形成（印刷）するものである。
【００５１】
図２は、画像形成装置１００の機能構成を示すブロック図である。図２に示すように、ＣＰＵ１がＲＯＭ２に予め記憶された所定のプログラムに従って各部を制御することにより、ＰＤＬパーサ処理部１１、矩形判定部１２、スキャンライン変換部１３、ハーフトーン処理部１４が、画像処理装置１０としてＲＡＭ３に生成されるようになっている。
【００５２】
ＰＤＬパーサ処理部１１は、画像データを構成するＰＤＬを解析し、描画コマンド単位で抽出する。ここで、描画コマンドには、イメージ、テキスト、グラフィックス（図形）等の形状を表すコマンドや色調等の属性情報を表すコマンドが含まれているものとする。
【００５３】
矩形判定部１２は、ＰＤＬパーサ処理部１１により抽出された描画コマンドが、矩形図形の描画を対角点の指定により一意に指示する矩形データであるか否かを判定する。ここで、矩形判定部１２は、描画コマンドを矩形データと判定した場合、この矩形データをハーフトーン処理部１４へと出力する。また、矩形判定部１２は、描画コマンドを矩形データ以外のポリゴンデータと判定した場合、当該ポリゴンデータに含まれた座標位置の結線により表される図形が、矩形か否かを判定する。
【００５４】
具体的に、矩形判定部１２は、各描画コマンドに特有のデータ形式に基づいて各描画コマンドの種別を判定する。図３は、描画コマンドのデータ形式を模式的に示した図である。ここで、図３−１は、ポリゴンデータのデータ形式を示しており、図３−２は、矩形データのデータ形式を示している。
【００５５】
図３−１及び図３−２において、先頭の４バイト分のデータＤ１、Ｄ３に格納されるデータは、描画コマンドの種別を識別するための識別情報であり、ポリゴンデータでは「Ｐｏｌｙｇｏｎ  ＩＤ」が、矩形データでは「Ｒｅｃｔａｎｇｌｅ  ＩＤ」が夫々付与されるようになっている。矩形判定部１２は、上述した描画コマンドの識別子に基づいて、各描画コマンドの種別がポリゴンデータであるか否かを判定する。なお、図３では描画コマンドのうち、ポリゴン及び矩形にかかるデータ構造を列挙したが、他の描画コマンドにおいても、その種別毎に固有の識別情報が付与されているものとする。
【００５６】
また、図３−１において、Ｄ２で示した領域には、このポリゴンデータが表す図形の、骨子となる座標が４バイト単位で格納されている。ここで、始点Ｘ１座標、始点Ｙ１座標は、描画の際の開始点となる座標点Ｐ（１）の座標を意味しており、続くＸ２、Ｙ２、Ｘ３、Ｙ３、Ｘ４、Ｙ４・・・Ｘｎ、Ｙｎの座標は、開始点から順次直線により接続される座標点Ｐ（２）〜Ｐ（ｎ）のＸ座標とＹ座標を示している。つまり、このポリゴンデータが描画される際には、Ｐ（１）からＰ（２）に、Ｐ（２）からＰ（３）へと順次線分が描画される。なお、ポリゴンデータに含まれた最後の座標点Ｐ（ｎ）からの線分は、最初の座標点Ｐ（１）へと描画されるようになっている。
【００５７】
例えば、図４−１に示した座標点Ｐ（１）〜Ｐ（４）で構成されるポリゴンデータの各座標位置が、図４−２のように表される場合、座標点Ｐ（１）〜Ｐ（４）を結ぶ線分は矩形を表すことになる。矩形判定部１２は、後述する矩形判定処理において、ポリゴンデータに含まれた各座標点間の描画順序に応じた線分方向（ベクトル）に基づき、ポリゴンデータが表す図形の角にあたる座標点を抽出する。そして、矩形判定部１２は、抽出した座標点により表される図形が矩形であるか否かを判定する。
【００５８】
一方、矩形データには、図３−２に示すように、データＤ４に矩形図形の対角点となる左上座標（左上Ｘ座標、左上Ｙ座標）と右下座標（右下Ｘ座標、右下Ｙ座標）との２点が指示されており、この２点間を対角線とする大きさの矩形領域が一意に指定されるようになっている。
【００５９】
矩形判定部１２は、ポリゴンデータに矩形図形が含まれると判定した場合、このポリゴンデータのデータ形式を図３−２で示した矩形データのデータ形式に変換し、矩形データとしてハーフトーン処理部１４に出力する。
【００６０】
図２に戻り、スキャンライン変換部１３は、矩形判定部１２で矩形データと判定された描画コマンド又は矩形データに変換された描画コマンド以外のポリゴンデータ、ベジェデータ等の描画コマンドに基づいて、当該描画コマンドで表される図形を後述するスキャンラインデータ（ランレングスデータ）に変換する。
【００６１】
ハーフトーン処理部１４は、矩形データ又はスキャンライン変換部１３により変換されたスキャンラインデータを２値化するハーフトーン処理を施す。
【００６２】
次に、図５を参照して、本実施形態の画像形成装置１００で実行される画像処理方法について説明する。図５は、描画コマンドの矩形判定にかかる画像処理の流れを示したフローチャートである。
【００６３】
まず、画像形成装置１００にＰＤＬを用いて記述された画像データが通信Ｉ／Ｆ４を介して入力されると、ＰＤＬパーサ処理部１１は、この画像データを構成するＰＤＬを解析し、描画コマンド単位に抽出する（ステップＳ１１）。
【００６４】
次いで、矩形判定部１２は、抽出された描画コマンド毎に、当該描画コマンドが矩形データか否かを判定する（ステップＳ１２）。ここで、矩形データと判定した場合（ステップＳ１２；Ｙｅｓ）、矩形判定部１２は、この矩形データをハーフトーン処理部１４に出力することで、ハーフトーン処理部１４によりハーフトーン処理を施させ（ステップＳ２３）、本処理を終了する。
【００６５】
一方、ステップＳ１２において、描画コマンドが矩形データでないと判定した場合（ステップＳ１２；Ｎｏ）、矩形判定部１２は、さらに描画コマンドがポリゴンデータか否かを判定する（ステップＳ１３）。ここで、ポリゴンデータでないと判定した場合（ステップＳ１３；Ｎｏ）、矩形判定部１２は、描画コマンドをスキャンライン変換部１３に出力することで、スキャンライン変換部１３によりスキャンライン変換処理を施させる（ステップＳ２１）。
【００６６】
また、ステップＳ１３において、描画コマンドがポリゴンデータと判定した場合（ステップＳ１３；Ｙｅｓ）、矩形判定部１２は、このポリゴンデータに含まれた座標点の総数ｎが４以上か否かを判定する（ステップＳ１４）。ここで、座標点の総数ｎが４未満と判定した場合には（ステップＳ１４；Ｎｏ）、ステップＳ２１へと直ちに移行する。
【００６７】
一方、ステップＳ１４において、座標点の総数ｎが４以上と判定した場合（ステップＳ１４；Ｙｅｓ）、矩形判定部１２は、ポリゴンデータから座標点Ｐ（ｎ）とＰ（１）に対応する座標を取得した後（ステップＳ１５）、ステップＳ１６の線分方向判定処理へと移行する。以下、図６を参照して、ステップＳ１６の線分方向判定処理を説明する。
【００６８】
まず、矩形判定部１２は、取得した二つの座標点のうち、線分の描画元となる座標点のｙ座標（Ａｙ）が、線分の描画先となる座標点のｙ座標（Ｂｙ）と等しいか否かを判定する（ステップＳ１６１）。ここで、ＡｙとＢｙとが等しいと判定した場合（ステップＳ１６１；Ｙｅｓ）、矩形判定部１２は、さらに線分の描画元となる座標点のｘ座標（Ａｘ）が、線分の描画先となる座標点のｘ座標（Ｂｘ）より小さいか否かを判定する（ステップＳ１６２）。
【００６９】
ステップＳ１６２において、ＡｘがＢｘより小さいと判定した場合（ステップＳ１６２；Ｙｅｓ）、矩形判定部１２は、この二つの座標点を結ぶ線分のベクトルを「Ｘ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥ」と判定し（ステップＳ１６３）、図５のステップＳ１７へと移行する。
【００７０】
また、ステップＳ１６２において、ＡｘがＢｘ以上と判定した場合（ステップＳ１６２；Ｎｏ）、矩形判定部１２は、ＡｘがＢｘより大きいか否かを判定する（ステップＳ１６４）。ここで、ＡｘがＢｘより大きいと判定した場合には（ステップＳ１６４；Ｙｅｓ）、矩形判定部１２は、この二つの座標点を結ぶ線分のベクトルを「Ｘ＿ＡＸＩＳ＿ＦＯＲ＿ＮＥＧＡＴＩＶＥ」と判定し（ステップＳ１６５）、図５のステップＳ１７へと移行する。
【００７１】
なお、ステップＳ１６４において、ＡｘとＢｘとが等しいと判定した場合には（ステップＳ１６４；Ｎｏ）、二つの座標点は同位置に存在するものと判断し、図５のステップＳ２１へと移行する。
【００７２】
一方、ステップＳ１６１において、ＡｙとＢｙとが等しくないと判定した場合（ステップＳ１６１；Ｎｏ）、矩形判定部１２は、ＡｘとＢｘとが等しいか否かを判定する（ステップＳ１６６）。ここで、ＡｘとＢｘとが等しくないと判定した場合（ステップＳ１６６；Ｎｏ）、二つの座標点を結ぶ線分はＸ軸又はＹ軸に対して平行でないと判断し、図５のステップＳ１７へと移行する。
【００７３】
ステップＳ１６６において、ＡｘとＢｘとが等しいと判定した場合（ステップＳ１６６；Ｙｅｓ）、矩形判定部１２は、ＡｙがＢｙより小さいか否かを判定する（ステップＳ１６７）。ここで、ＡｙがＢｙより小さいと判定した場合（ステップＳ１６７；Ｙｅｓ）、矩形判定部１２は、この二つの座標点を結ぶ線分のベクトルを「Ｙ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥ」と判定し（ステップＳ１６８）、図５のステップＳ１７へと移行する。
【００７４】
また、ステップＳ１６７において、ＡｙがＢｙ以上と判定した場合（ステップＳ１６７；Ｎｏ）、矩形判定部１２は、この二つの座標点を結ぶ線分のベクトルを「Ｙ＿ＡＸＩＳ＿ＦＯＲ＿ＮＥＧＡＴＩＶＥ」と判定し（ステップＳ１６９）、図５のステップＳ１７へと移行する。
【００７５】
図７は、線分方向判定処理での動作を説明するための図である。なお、図中右方向をＸ軸の正方向、図中下方向をＹ軸の正方向としている。図７−１に示すように、座標点Ｐ（１）からＰ（２）に向かう線分のベクトル、及び、座標点Ｐ（２）からＰ（３）に向かう線分のベクトルはＸ軸の正方向となる。そのため、線分方向判定処理では、このＰ（１）−Ｐ（２）間、Ｐ（２）−Ｐ（３）間のベクトルをＸ軸の正方向を意味する「Ｘ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥ」と判定する。
【００７６】
また、図７−２に示すように、座標点Ｐ（１）から座標点Ｐ（２）に向かう線分のベクトルはＸ軸の正方向となるため、座標点Ｐ（１）−Ｐ（２）間のベクトルを「Ｘ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥ」と設定するが、座標点Ｐ（２）からＰ（３）に、座標点Ｐ（３）からＰ（１）に向かう線分のベクトルはＸ軸の負方向となる。そのため、線分方向判定処理では、座標点Ｐ（２）−Ｐ（３）間、座標点Ｐ（３）−Ｐ（１）間のベクトルをＸ軸の負方向を意味する「Ｘ＿ＡＸＩＳ＿ＦＯＲ＿ＮＥＧＡＴＩＶＥ」と判定する。
【００７７】
Ｙ軸に関してもＸ軸と同様に二つの座標点間を結ぶ線分のベクトルが判定される。図７−３に示すように、座標点Ｐ（１）から座標点Ｐ（２）に向かう線分のベクトルはＹ軸の正方向となるため、座標点Ｐ（１）−Ｐ（２）間のベクトルを「Ｙ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥ」と判定する。また、座標点Ｐ（２）からＰ（３）に、座標点Ｐ（３）からＰ（１）に向かう線分のベクトルは共にＹ軸の負方向となる。そのため、線分方向判定処理では、座標点Ｐ（２）−Ｐ（３）間、座標点Ｐ（３）−Ｐ（１）間のベクトルをＹ軸の負方向を意味する「Ｙ＿ＡＸＩＳ＿ＦＯＲ＿ＮＥＧＡＴＩＶＥ」と判定する。
【００７８】
図５に戻り、ステップＳ１７では、矩形判定部１２がステップＳ１６の線分方向判定処理で判定された二つの座標点間を結ぶ線分のベクトルをｐＶｅｃｔｏｒに設定した後（ステップＳ１７）、ステップＳ１８の変化点抽出処理へと移行する。以下、図８を参照して、ステップＳ１８の変化点抽出処理について説明する。
【００７９】
まず、矩形判定部１２は、本変化点抽出処理の初期値として座標点の番数を指示するパラメータａの値を１に設定する（ステップＳ１８０１）。そして、矩形判定部１２は、ベクトルデータから座標点Ｐ（ａ）及びＰ（ａ＋１）に対応する座標を夫々取得する（ステップＳ１８０２）。
【００８０】
次いで、矩形判定部１２は、ステップＳ１８０２で取得した二つの座標点の座標に基づいて、線分方向判定処理を実行することにより、この二つの座標点間のベクトルを判定する（ステップＳ１８０３）。なお、ステップＳ１８０３の線分方向判定処理は、上述したステップＳ１６の線分方向判定処理と同様であるため、その説明は省略する。
【００８１】
続いて、矩形判定部１２は、ステップＳ１８０３で判定した二つの座標間のベクトルを、変数ｃＶｅｃｔｏｒに設定した後（ステップＳ１８０４）、このｃＶｅｃｔｏｒと先に設定したｐＶｅｃｔｏｒとが一致するか否かを判定する（ステップＳ１８０５）。
【００８２】
ステップＳ１８０５において、ｐＶｅｃｔｏｒとｃＶｅｃｔｏｒとが一致しないと判定した場合には（ステップＳ１８０５；Ｙｅｓ）、矩形判定部１２は、座標点Ｐ（ａ）に対応する座標をＲＡＭ３の所定領域に格納し（ステップＳ１８０６）、ｃＶｅｃｔｏｒに設定された値をｐＶｅｃｔｏｒとして設定し直した後（ステップＳ１８０７）、ステップＳ１８０８の処理へと移行する。
【００８３】
一方、ステップＳ１８０５において、ｐＶｅｃｔｏｒとｃＶｅｃｔｏｒとが一致すると判定した場合には（ステップＳ１８０５；Ｎｏ）、ステップＳ１８０８の処理へと直ちに移行する。
【００８４】
ステップＳ１８０８において、矩形判定部１２は、現在のａの値が、ポリゴンデータに含まれた座標点Ｐの総数ｎから１減算した値、即ちｎ−１に達したか否かを判定し、達していないと判定した場合（ステップＳ１８０８；Ｎｏ）、ａを１インクリメントした後（ステップＳ１８０９）、ステップＳ１８０２の処理へと再び戻る。
【００８５】
また、ステップＳ１８０８において、現在のａの値が、ｎ−１に達したと判定した場合には（ステップＳ１８０８；Ｙｅｓ）、座標点Ｐ（ｎ）と座標点Ｐ（１）に対応する座標をポリゴンデータから取得する（ステップＳ１８１０）。
【００８６】
次いで、矩形判定部１２は、ステップＳ１８１０で取得した二つの座標点（Ｐ（ｎ）とＰ（１））の座標に基づいて、線分方向判定処理を実行することにより、この二つの座標点間のベクトルを判定する（ステップＳ１８１１）。なお、ステップＳ１８１１の線分方向判定処理は、上述したステップＳ１６の線分方向判定処理と同様であるため、その説明は省略する。
【００８７】
続いて、矩形判定部１２は、ステップＳ１８１１で判定した二つの座標間のベクトルを、変数ｃＶｅｃｔｏｒに設定した後（ステップＳ１８１２）、このｃＶｅｃｔｏｒと先に設定したｐＶｅｃｔｏｒとが一致するか否かを判定する（ステップＳ１８１３）。
【００８８】
ステップＳ１８１３において、ｐＶｅｃｔｏｒとｃＶｅｃｔｏｒとが一致しないと判定した場合には（ステップＳ１８１３；Ｙｅｓ）、矩形判定部１２は、座標点Ｐ（ｎ）に対応する座標をＲＡＭ３の所定領域に格納し（ステップＳ１８１４）、図５のステップＳ１９へと移行する。
【００８９】
一方、ステップＳ１８１３において、ｐＶｅｃｔｏｒとｃＶｅｃｔｏｒとが一致すると判定した場合には（ステップＳ１８１３；Ｎｏ）、図５のステップＳ１９へと直ちに移行する。
【００９０】
図９は、変化点抽出処理での動作を説明するための図である。ここで、ポリゴンデータに含まれる座標点Ｐ（１）〜Ｐ（８）が図９−１に示す位置に存在し、上述した線分方向判定処理により各座標点間のベクトルが図９−１に示したように判定されたとする。上述した変化点抽出処理では、ポリゴンデータに含まれた各座標点に対し、一の座標点とこの座標点の前後に位置する他の座標点とのベクトルを比較することで、ベクトルが変化する座標点を判定し、この変化する座標点の座標をＲＡＭ３に格納することで抽出を行う。
【００９１】
例えば、図９−１において、座標点Ｐ（２）、Ｐ（３）にかかるベクトルは、前後に位置する座標点との関係から、共にＸ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥとなるため、座標点Ｐ（２）、Ｐ（３）は図８のステップＳ１８０５〜Ｓ１８０８で抽出されない。また、同様に座標点Ｐ（５）、Ｐ（６）にかかるベクトルは、前後に位置する座標点との関係から、共にＹ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥとなるため、座標点Ｐ（５）、Ｐ（６）は図８のステップＳ１８０５〜Ｓ１８０８で抽出されない。
【００９２】
一方、図９−１において、座標点（４）にかかるベクトルは、前後に位置する座標点（Ｐ（３）、Ｐ（５））との関係から、Ｘ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥ→Ｙ＿ＡＸＩＳ＿ＦＯＲ＿ＰＯＳＩＴＩＶＥとなるため、図８のステップＳ１８０５〜Ｓ１８０８で抽出されることになる。また、座標点Ｐ（７）、Ｐ（８）、Ｐ（１）についても同様、これらの座標点を境にベクトルが異なることになるため、図８のステップＳ１８０５〜Ｓ１８０８で抽出されることになる。そのため、図９−１で示した各座標点は、変化点抽出処理を経ることで、図９−２に示すようにベクトルの変化にかかる座標点のみが抽出されることになる。
【００９３】
図５に戻り、ステップＳ１９では、矩形判定部１２が矩形判定処理を実行する。以下、図１０を参照して、ステップＳ１９の矩形判定処理について説明する。
【００９４】
まず、矩形判定部１２は、ＲＡＭ３に格納された各座標（座標点）を参照し（ステップＳ１９０１）、ｘ、ｙの値が最小となる座標点Ｐｍｉｎの座標（Ｘｍｉｎ、Ｙｍｉｎ）を特定する（ステップＳ１９０２）。なお、本実施形態においてＰｍｉｎの特定は、ｘ座標、ｙ座標の夫々を二乗し、これら値の和が最小となる座標点をＰｍｉｎとする。
【００９５】
次いで、矩形判定部１２は、特定したＰｍｉｎは唯一か否かを判定する（ステップＳ１９０３）。ここで、Ｐｍｉｎが二つ以上特定できた場合（ステップＳ１９０３；Ｎｏ）、矩形判定部１２は、ＲＡＭ３に格納された座標（座標点）、即ちポリゴンデータを非矩形と判定した後（ステップＳ１９０４）、図５のステップＳ２０へと移行する。
【００９６】
一方、ステップＳ１９０３において、一のＰｍｉｎが特定できた場合には（ステップＳ１９０３；Ｙｅｓ）、続いてＲＡＭ３からｘ、ｙの値が最大となる座標点Ｐｍａｘの座標（Ｘｍａｘ、Ｙｍａｘ）を特定する（ステップＳ１９０５）。なお、本実施形態においてＰｍａｘの特定は、ｘ座標、ｙ座標の夫々を二乗し、これら値の和が最大となる座標点をＰｍａｘとする。
【００９７】
そして、矩形判定部１２は、特定したＰｍａｘは唯一か否かを判定する（ステップＳ１９０６）。ここで、Ｐｍａｘが二つ以上特定できた場合（ステップＳ１９０６；Ｎｏ）、矩形判定部１２は、ＲＡＭ３に格納された座標（座標点）、即ちポリゴンデータを非矩形と判定した後（ステップＳ１９０４）、図５のステップＳ２０へと移行する。
【００９８】
また、ステップＳ１９０６において、一のＰｍａｘが特定できた場合には（ステップＳ１９０６；Ｙｅｓ）、（Ｘｍｉｎ、Ｙｍａｘ）に対応する座標点がＲＡＭ３に格納されているか否かを判定する（ステップＳ１９０７）。ここで、（Ｘｍｉｎ、Ｙｍａｘ）に対応する座標点がＲＡＭ３に格納されていないと判定した場合（ステップＳ１９０７；Ｎｏ）、矩形判定部１２は、ＲＡＭ３に格納された座標（座標点）、即ちポリゴンデータを非矩形と判定した後（ステップＳ１９０４）、図５のステップＳ２０へと移行する。
【００９９】
一方、ステップＳ１９０７において、（Ｘｍｉｎ、Ｙｍａｘ）に対応する座標点が格納されていると判定した場合（ステップＳ１９０７；Ｙｅｓ）、矩形判定部１２は、続いて（Ｘｍａｘ、Ｙｍｉｎ）に対応する座標点がＲＡＭ３に格納されているか否かを判定する（ステップＳ１９０８）。
【０１００】
ステップＳ１９０８において、（Ｘｍａｘ、Ｙｍｉｎ）に対応する座標点がＲＡＭ３に格納されていないと判定した場合（ステップＳ１９０８；Ｎｏ）、矩形判定部１２は、ＲＡＭ３に格納された座標（座標点）、即ちポリゴンデータを非矩形と判定した後（ステップＳ１９０４）、図５のステップＳ２０へと移行する。
【０１０１】
また、（Ｘｍａｘ、Ｙｍｉｎ）に対応する座標点がＲＡＭ３に格納されていると判定した場合（ステップＳ１９０８；Ｙｅｓ）、矩形判定部１２は、ＲＡＭ３に上記した（Ｘｍｉｎ、Ｙｍｉｎ）、（Ｘｍａｘ、Ｙｍａｘ）、（Ｘｍｉｎ、Ｙｍａｘ）、（Ｘｍａｘ、Ｙｍｉｎ）以外の他の座標点に対応する座標が格納されているか否かを判定する（ステップＳ１９０９）。
【０１０２】
ステップＳ１９０９において、ＲＡＭ３に他の座標点が格納されていると判定した場合（ステップＳ１９０９；Ｙｅｓ）、矩形判定部１２は、ＲＡＭ３に格納された座標（座標点）、即ちポリゴンデータを非矩形と判定した後（ステップＳ１９０４）、図５のステップＳ２０へと移行する。
【０１０３】
一方、ステップＳ１９０９において、ＲＡＭ３に他の座標点が格納されていないと判定した場合（ステップＳ１９０９；Ｎｏ）、矩形判定部１２は、ＲＡＭ３に格納された座標（座標点）、即ちポリゴンデータを矩形と判定し（ステップＳ１９１０）、図５のステップＳ２０へと移行する。
【０１０４】
図５に戻り、ステップＳ２０では、矩形判定部１２がステップＳ１９の矩形判定処理での判定結果に基づいて、処理対象となったポリゴンデータに矩形図形が含まれているか否かを判定する（ステップＳ２０）。ここで、非矩形と判定されたポリゴンデータは（ステップＳ２０；Ｎｏ）、ステップＳ２１において、スキャンライン変換部１３によりスキャンライン処理が施された後（ステップＳ２１）、ハーフトーン処理部１４に出力されステップＳ２３へと移行する。
【０１０５】
一方、ステップＳ２０において、矩形と判定した場合（ステップＳ２０；Ｙｅｓ）、矩形判定部１２は、ＲＡＭ３に格納された各座標（座標点）から、この矩形領域の対角点に対応する座標を特定し、この特定した二つの座標に基づいて、処理対象となったポリゴンデータのデータ形式を、図３−２に示した矩形データのデータ形式に変換し、矩形データとしてハーフトーン処理部１４に出力する（ステップＳ２２）。
【０１０６】
続くステップＳ２３では、ハーフトーン処理部１４が、入力された矩形データ又はスキャンライン処理されたデータを二値化するスキャンライン処理を施し（ステップＳ２３）、本処理を終了する。
【０１０７】
以上のように、本実施形態によれば、ページ記述言語で表現された画像データのうち、描画コマンドが矩形データ以外と判定された描画コマンドの表す図形が矩形か否かを判定し、この図形を矩形と判定した場合に、当該描画コマンドの描画コマンドを矩形データに変換する。これにより、矩形データ以外と判定された描画コマンドにより表される図形が矩形である場合、この描画コマンドを矩形データとして取り扱うことができるため、描画にかかる処理を効率的に行うことができ、画像データを効率的に印刷することができる。
【０１０８】
なお、本実施形態では、ポリゴンデータに含まれた座標点の個数ｎが４個以上の時、当該ポリゴンデータにより表される図形の矩形判定を行う態様としたが（図５、ステップＳ１４参照）、これに限らず、例えば、ポリゴンデータに含まれた座標点の個数ｎが所定の範囲内（４≦ｎ≦８等）に含まれる場合にのみ、当該ポリゴンデータにより表される図形が矩形か否かを判定する態様としてもよい。なお、所定の範囲を指示する情報は、設定情報としてＲＯＭ２に予め記憶されているものとする。
【０１０９】
また、本実施形態では、ポリゴンデータにより表される図形の線分が、Ｘ軸又はＹ軸に平行な図形についてのみ、当該図形の矩形判定を行う態様としたが、これに限らず、例えば、画像データにより表される図形の線分の傾きが所定の誤差範囲内に収まる場合、当該図形の矩形判定を行う態様としてもよい。この場合、図６に示したフローチャートのステップＳ１６１の判定条件を｜Ａｙ−Ｂｙ｜＜ｖａｌと置き換え、また、ステップＳ１６６の判定条件を｜Ａｘ−Ｂｘ｜＜ｖａｌと置き換えることで対応することができる。ここで、ｖａｌは許容誤差の値を示すパラメータであり、設定情報としてＲＯＭ２に予め記憶されているものとする。
【０１１０】
このように、描画コマンドにより表される図形の線分の傾きが所定の誤差範囲内である場合、当該描画コマンドにより表される図形が矩形か否かを判定することで、外見上矩形であるが厳密には矩形とならない図形を矩形として処理することができるため、描画にかかる処理を効率的に行うことができる。
【０１１１】
［第２の実施形態］
次に、画像処理装置の第２の実施形態について説明する。なお、上述した第１の実施形態と同様の要素については、同一の符号を用いて示し、その説明は適宜省略する。
【０１１２】
上述した第１の実施形態では、スキャンライン変換前のポリゴンデータに基づいて、当該ポリゴンデータが表す図形が矩形か否かを判定したが、本実施形態では、スキャンライン変換後のポリゴンデータが表す図形に基づいて矩形か否かの判定を行う。
【０１１３】
図１１は、本実施形態の画像形成装置１００の機能構成を示すブロック図である。図１１に示すように、ＣＰＵ１がＲＯＭ２に予め記憶された所定のプログラムに従って各部を制御することにより、ＰＤＬパーサ処理部１１、スキャンライン変換部１３、矩形判定部１５、ハーフトーン処理部１４が、画像処理装置２０としてＲＡＭ３に生成されるようになっている。
【０１１４】
ここで、矩形判定部１５は、スキャンライン変換部１３によりスキャンライン変換されたランレングスデータに基づいて、当該ランレングスデータが表す図形が矩形か否かを判定する。以下、矩形判定部１５の動作について説明する。
【０１１５】
まず、図１２を参照してスキャンライン変換されたランレングスデータの状態について説明する。ここで、ポリゴンデータに含まれた座標点Ｐ（１）〜Ｐ（５）により表される図形が、図１２の左図に示したものであるとすると、スキャンライン毎に変換された後の状態は、図１２の右図のように表される。
【０１１６】
図１２の右図において、ＳＸ及びＥＸは、各スキャンラインにおいて始点となるＸ座標（以下、始点Ｘ座標という）と、終点となるＸ座標（以下、終点Ｘ座標という）を夫々表しており、スキャンラインの高さを成分表すＹ座標毎（Ｙ＝ａ〜Ｙ＝ａ＋ｎ；ａは任意の整数、ｎはＹ座標の総数）に設定されるようになっている。ここで、ＳＸからＥＸまでの範囲は、ポリゴンデータが表す図形の各Ｙ座標位置における幅方向の大きさを表し、この範囲を表すデータが上述したランレングスデータに対応している。このランレングスデータをＹ＝ａからＹ＝ａ＋ｎまで蓄積することで、図１２の右図に示したように、ポリゴンデータに対応する図形を表すようになっている。以下、複数のランレングスデータからなるデータ群をスキャンラインデータという。
【０１１７】
スキャンライン変換部１３により生成されたスキャンラインデータのデータ形式は、図１３のように表される。図１３において、先頭の４バイト分のデータＤ５はスキャンラインデータであることを識別させるためのデータ領域であり、続くデータＤ６にはランレングスデータにかかるデータが４バイト単位で格納されるようになっている。
【０１１８】
Ｄ６のデータ領域において、Ｄ６１にはランレングスデータにより表された図形に外接する矩形の左上座標（外接左上Ｘ座標、外接左上Ｙ座標）が格納されており、またＤ６２にはランレングスデータにより表された図形に外接する矩形の右下座標（外接右下Ｘ座標、外接右下Ｙ座標）が格納される。続く、Ｄ６３・・・Ｄ６ｎには、各ランレングスデータに対応するＹ座標（例えば、Ｙ（ａ）座標）、始点となるＸ座標（例えば、ＳＸ（ａ））、終点となるＸ座標（例えば、ＥＸ（ａ））が夫々格納される。
【０１１９】
矩形判定部１５は、上述したスキャンラインデータに含まれる外接左上Ｘ座標と各ランレングスデータにかかる始点Ｘ座標とを比較し、また、外接右下Ｘ座標と各ランレングスデータにかかる終点Ｘ座標とを比較することで、当該スキャンラインデータが表す図形が矩形図形か否かを判定する。
【０１２０】
次に、図１４を参照して、本実施形態の画像形成装置１００で実行される画像処理方法について説明する。図１４は、本実施形態の描画コマンドの矩形判定にかかる画像処理の流れを示したフローチャートである。
【０１２１】
まず、画像形成装置１００にＰＤＬを用いて記述された画像データが入力されると、ＰＤＬパーサ処理部１１は、この画像データを構成するＰＤＬを解析し、描画コマンド単位に抽出する（ステップＳ３１）。
【０１２２】
次いで、スキャンライン変換部１３は、抽出された描画コマンド毎に、当該描画コマンドが矩形データか否かを判定する（ステップＳ３２）。ここで、スキャンライン変換部１３は、上述した第1の実施形態の矩形判定部１２と同様、各描画コマンドの識別情報に基づいて矩形データの判定を行うものとする。なお、本実施形態では、スキャンライン変換部１３が矩形データか否かの判定を行う態様としたが、これに限らず、矩形判定部１５が行う態様としてもよい。
【０１２３】
ステップＳ３２において、描画コマンドを矩形データと判定した場合（ステップＳ３２；Ｙｅｓ）、スキャンライン変換部１３は、この矩形データをハーフトーン処理部１４に出力することで、ハーフトーン処理部１４によりハーフトーン処理を施させ（ステップＳ３７）、本処理を終了する。
【０１２４】
一方、ステップＳ３２において、描画コマンドが矩形データでないと判定した場合（ステップＳ３２；Ｎｏ）、スキャンライン変換部１３は、描画コマンドにより表される図形をスキャンラインデータに変換する（ステップＳ３３）。
【０１２５】
続いて、矩形判定部１５は、スキャンライン変換部１３により変換されたスキャンラインデータに基づいて、矩形判定処理を実行する（ステップＳ３４）。以下、図１５を参照して、ステップＳ３４の矩形判定処理について説明する。
【０１２６】
まず、矩形判定部１５は、スキャンライン毎のＹ座標を表わすパラメータｉを、初期値であるａ（ａは任意の整数）に設定する（ステップＳ３４１）。続いて矩形判定部１５は、このｉに対応する始点Ｘ座標ＳＸ（ｉ）が外接左上Ｘ座標に一致し、且つ、終点Ｘ座標ＥＸ（ｉ）が外接右下Ｘ座標に一致するか否かを判定する（ステップＳ３４２）。
【０１２７】
ステップＳ３４２において、始点Ｘ座標ＳＸ（ｉ）が外接左上Ｘ座標に一致しない、及び／又は、終点Ｘ座標ＥＸ（ｉ）が外接右下Ｘ座標に一致しないと判定した場合には（ステップＳ３４２；Ｎｏ）、矩形判定部１５は、スキャンラインデータを非矩形と判定した後（ステップＳ３４３）、図１４のステップＳ３５へと移行する。
【０１２８】
一方、ステップＳ３４３において、始点Ｘ座標ＳＸ（ｉ）が外接左上Ｘ座標に一致し、且つ、終点Ｘ座標ＥＸ（ｉ）が外接右下Ｘ座標に一致すると判定した場合には（ステップＳ３４２；Ｙｅｓ）、矩形判定部１５は、現在のｉの値がスキャンラインデータの最後のＹ座標（ａ＋ｎ）と一致するか否かを判定する（ステップＳ３４４）。ここで、ｉの値がａ＋ｎを下回ると判定した場合には（ステップＳ３４４；Ｎｏ）、矩形判定部１５は、ｉの値を１インクリメントした後（ステップＳ３４５）、ステップＳ３４２の処理へと再び戻る。
【０１２９】
また、ステップＳ３４４において、ｉの値がａ＋ｎと一致すると判定した場合（ステップＳ３４４；Ｙｅｓ）、矩形判定部１５は、スキャンラインデータに矩形図形が含まれると判定した後（ステップＳ３４３）、図１４のステップＳ３５へと移行する。
【０１３０】
図１４に戻り、ステップＳ３５では、矩形判定部１５が、ステップＳ３４４の判定結果に基づいて、処理対象となったスキャンラインデータに矩形図形が含まれているか否かを判定する（ステップＳ３５）。ここで、非矩形と判定されたスキャンラインデータは（ステップＳ３５；Ｎｏ）、ハーフトーン処理部１４に出力され後述するステップＳ３７の処理へと移行する。
【０１３１】
一方、ステップＳ３５において、矩形図形が含まれていると判定した場合（ステップＳ３５；Ｙｅｓ）、矩形判定部１５は、処理対象となったスキャンラインデータに含まれる外接矩形の対角点、即ち左上座標（外接左上Ｘ座標、外接左上Ｙ座標）と外接矩形の右下座標（外接右下Ｘ座標、外接右下Ｙ座標）を特定し、この対角点に基づいて処理対象となったスキャンラインデータを、図３−２に示した矩形データのデータ形式に変換し、矩形データとしてハーフトーン処理部１４に出力する（ステップＳ３６）。
【０１３２】
続くステップＳ３７では、ハーフトーン処理部１４が、入力された矩形データ又はスキャンライン処理されたデータを二値化するスキャンライン処理を施し（ステップＳ３７）、本処理を終了する。
【０１３３】
以上のように、本実施形態によれば、スキャンラインデータに変換された描画コマンドが表す図形と、描画コマンド自体が表す図形の外接矩形とを比較し、両形状が一致した場合にスキャンラインデータが表す図形を矩形と判定し、このスキャンラインデータを矩形データの描画コマンドに変換する。これにより、スキャンライン変換を行った後でしか矩形と判定できないような図形であっても、この図形を矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができ、画像データを効率的に印刷することができる。
【０１３４】
［第３の実施形態］
次に、画像処理装置の第３の実施形態について説明する。なお、上述した第１、２の実施形態と同様の要素については、同一の符号を用いて示し、その説明は適宜省略する。
【０１３５】
上述した第２の実施形態では、スキャンラインデータにより表される図形が、矩形である場合を判定することとしたが、図形の一部分が矩形であるような場合には、この矩形部分を判定することができない。例えば、ポリゴンデータに含まれた各座標点の位置が図１６−1で表される場合、当該ポリゴンデータに基づいて生成されたスキャンラインデータは図１６−２のようになる。
【０１３６】
この場合、スキャンラインデータが表す形状は矩形ではないため、当該形状が部分的に矩形で表せるような場合であっても非矩形と判定されることになる。そのため本実施形態では、スキャンラインデータに含まれたランレングスデータ間の関係に基づいて、ポリゴン図形の一部分が矩形であるような場合でも、該当する部分を矩形として判定することが可能な態様について説明する。
【０１３７】
まず、図１１を参照して本実施形態の矩形判定部１５について説明する。本実施形態の矩形判定部１５は、スキャンラインデータに含まれた連続するランレングスデータ間の始点Ｘ座標ＳＸと終点Ｘ座標ＥＸとを比較し、両値が一致した場合に、当該ランレングスデータにより表される図形を矩形と判定する。
【０１３８】
また、本実施形態の矩形判定部１５は、矩形と判定した一連するランレングスデータ単位で矩形データのデータ形式に変換し、矩形データとしてハーフトーン処理部１４に出力する。
【０１３９】
以下、図１７を参照して、本実施形態の矩形判定処理について説明する。なお、本処理は図１４で示した画像処理の矩形判定処理（ステップＳ３４）に対応するものである。
【０１４０】
まず、矩形判定部１５は、スキャンライン毎のＹ座標を表わすパラメータｉを、初期値であるａ（ａは任意の整数）に設定する（ステップＳ４１）。続いて矩形判定部１５は、このｉに対応するＹ座標Ｙ（ｉ）を、Ｙｓと設定した後（ステップＳ４２）、ｉを１インクリメントすることで、比較対象を次のＹ座標へと移行させる（ステップＳ４３）。
【０１４１】
次いで、矩形判定部１５は、一つ前のＹ（ｉ−1）における始点Ｘ座標ＳＸ（ｉ−1）と、現在のＹ（ｉ）における始点Ｘ座標ＳＸ（ｉ）とが一致し、且つ、一つ前のＹ（ｉ−1）における終点Ｘ座標ＥＸ（ｉ−1）と、現在のＹ（ｉ）における終点Ｘ座標ＥＸ（ｉ）とが一致するか否かを判定する（ステップＳ４４）。
【０１４２】
ステップＳ４４において、始点Ｘ座標ＳＸ（ｉ−１）が始点Ｘ座標ＳＸ（ｉ）に一致し、且つ、終点Ｘ座標ＥＸ（ｉ−1）が終点Ｘ座標ＥＸ（ｉ）に一致すると判定した場合には（ステップＳ４４；Ｙｅｓ）、ステップＳ４３に戻り、比較対象を次のＹ座標へと移行させる。
【０１４３】
一方、ステップＳ４４において、始点Ｘ座標ＳＸ（ｉ−１）が始点Ｘ座標ＳＸ（ｉ）に一致しない、及び／又は、終点Ｘ座標ＥＸ（ｉ−1）が終点Ｘ座標ＥＸ（ｉ）に一致しないと判定した場合（ステップＳ４４；Ｎｏ）、矩形判定部１５は、ＹｓからＹ（ｉ−１）のランレングスデータにより表される図形を矩形と判定する（ステップＳ４５）。
【０１４４】
続いて、矩形判定部１５は、現在のｉの値がスキャンラインデータの最後のＹ座標（ａ＋ｎ）と一致するか否かを判定する（ステップＳ４６）。ここで、ｉの値がａ＋ｎを下回ると判定した場合には（ステップＳ４６；Ｎｏ）、ステップＳ４２へと再び戻り、現在のｉにかかるＹ（ｉ）をＹｓと設定した後、ステップＳ４３〜Ｓ４５を再び実行する。
【０１４５】
また、ステップＳ４５において、ｉの値がａ＋ｎと一致すると判定した場合には（ステップＳ４６；Ｙｅｓ）、図１４のステップＳ３５へと移行し、本矩形判定処理を終了する。
【０１４６】
上述した矩形判定処理において、矩形と判定された一連のランレングスデータは、図１４のステップＳ３５、Ｓ３６において、一連するランレングスデータ毎に矩形データのデータ形式へと変換され、続くハーフトーン処理部１４へと出力されることになる。具体的には、矩形と判定された一連のランレングスデータの始点Ｘ座標と終点Ｘ座標に基づいて、矩形領域の対角点に対応する座標点を特定し、この対角点に基づいて一連のランレングスデータに対応するスキャンラインデータの座標範囲を、図３−２に示した矩形データのデータ形式に変換し、矩形データとしてハーフトーン処理部１４に出力する。
【０１４７】
このように、スキャンラインデータに含まれた連続するランレングスデータ間の開始・終了座標に基づいて、矩形図形の判定を行うことにより、例えば、複数の矩形図形で表される図１６−２のようなスキャンラインデータであっても、図１６−３に示すように、三つの矩形図形として判定することができる。
【０１４８】
以上のように、本実施形態によれば、連続するランレングスデータ間の始点座標及び終点座標を比較し、両座標が一致する一連のランレングスデータにより表される図形を矩形と判定し、矩形と判定した一連のランレングスデータ毎に、当一連のランレングスデータに対応するスキャンラインデータの座標範囲を、矩形データの描画コマンドに変換する。これにより、描画コマンドにより表される図形の一部が矩形であっても、この矩形毎に矩形データの描画コマンドとして取り扱うことができるため、描画にかかる処理を効率的に行うことができ、画像データを効率的に印刷することができる。
【０１４９】
［第４の実施形態］
次に、画像処理装置の第４の実施形態について説明する。なお、上述した第１〜３の実施形態と同様の要素については、同一の符号を用いて示し、その説明は適宜省略する。
【０１５０】
上述した第３の実施形態では、スキャンラインデータにより表される図形がＸ軸又はＹ軸に対して傾斜した線分を有する場合、その傾斜部分を構成するランレングスデータを夫々矩形図形として処理することになる。例えば、図１８で示したスキャンラインデータを処理対象とする場合、傾斜部分を構成するランレングスデータ夫々を矩形データに変換することになるため、効率的な処理の妨げとなる場合がある。
【０１５１】
そのため本実施形態では、スキャンラインデータに含まれたランレングスデータの開始Ｘ座標と終点Ｘ座標とが一致した状態で所定数連続した場合に、一連するランレングスデータを矩形図形として判定する態様を説明する。
【０１５２】
まず、図１１を参照して本実施形態の矩形判定部１５について説明する。本実施形態の矩形判定部１５は、スキャンラインデータに含まれた連続するランレングスデータ間の始点Ｘ座標ＳＸと終点Ｘ座標ＥＸとを比較し、両値が一致した状態で所定のランレングスデータ数（Ｙ座標数）連続した場合に、当該ランレングスデータ群により表される図形を矩形と判定する。
【０１５３】
また、本実施形態の矩形判定部１５は、矩形と判定した一連するランレングスデータ単位で矩形データに変換し、矩形データとしてハーフトーン処理部１４に出力する。
【０１５４】
以下、図１９を参照して、本実施形態の矩形判定処理について説明する。なお、本処理は図１４で示した画像処理の矩形判定処理（ステップＳ３４）に対応するものである。
【０１５５】
まず、矩形判定部１５は、スキャンライン毎のＹ座標を表わすパラメータｉを、初期値であるａ（ａは任意の整数）に設定する（ステップＳ５１）。続いて矩形判定部１５は、このｉに対応するＹ座標Ｙ（ｉ）を、Ｙｓと設定した後（ステップＳ５２）、ｉを１インクリメントすることで、比較対象を次のＹ座標へと移行させる（ステップＳ５３）。
【０１５６】
次いで、矩形判定部１５は、一つ前のＹ（ｉ−1）における始点Ｘ座標ＳＸ（ｉ−1）と、現在のＹ（ｉ）における始点Ｘ座標ＳＸ（ｉ）とが一致し、且つ、一つ前のＹ（ｉ−1）における終点Ｘ座標ＥＸ（ｉ−1）と、現在のＹ（ｉ）における終点Ｘ座標ＥＸ（ｉ）とが一致するか否かを判定する（ステップＳ５４）。
【０１５７】
ステップＳ４４において、始点Ｘ座標ＳＸ（ｉ−１）が始点Ｘ座標ＳＸ（ｉ）に一致し、且つ、終点Ｘ座標ＥＸ（ｉ−1）が終点Ｘ座標ＥＸ（ｉ）に一致すると判定した場合には（ステップＳ５４；Ｙｅｓ）、ステップＳ５３に戻り、比較対象を次のＹ座標へと移行させる。
【０１５８】
一方、ステップＳ５４において、始点Ｘ座標ＳＸ（ｉ−１）が始点Ｘ座標ＳＸ（ｉ）に一致しない、及び／又は、終点Ｘ座標ＥＸ（ｉ−1）が終点Ｘ座標ＥＸ（ｉ）に一致しないと判定した場合（ステップＳ５４；Ｎｏ）、矩形判定部１５は、Ｙ（ｉ−１）からＹｓを減算した値が所定値ＭＩＮ＿Ｙ（例えば、２等）より大きいか否かを判定する（ステップＳ５５）。ここで、所定値ＭＩＮ＿Ｙは任意の値を設定できるものとする。
【０１５９】
ステップＳ５５において、Ｙ（ｉ−１）からＹｓを減算した値が所定値ＭＩＮ＿Ｙ（例えば、２等）より大きいと判定した場合（ステップＳ５５；Ｙｅｓ）、矩形判定部１５は、ＹｓからＹ（ｉ−１）のランレングスデータにより表される図形を矩形と判定し（ステップＳ５６）、ステップＳ５７の処理へと移行する。
【０１６０】
一方、ステップＳ５５において、Ｙ（ｉ−１）からＹｓを減算した値が所定値ＭＩＮ＿Ｙ（例えば、２等）以下と判定した場合には（ステップＳ５５；Ｎｏ）、ステップＳ５７の処理へと直ちに移行する。
【０１６１】
ステップＳ５７では、矩形判定部１５が、現在のｉの値がスキャンラインデータの最後のＹ座標（ａ＋ｎ）と一致するか否かを判定する（ステップＳ５７）。ここで、ｉの値がａ＋ｎを下回ると判定した場合には（ステップＳ５７；Ｎｏ）、ステップＳ５２へと再び戻り、現在のｉにかかるＹ（ｉ）をＹｓと設定した後、ステップＳ５３〜Ｓ５７を再び実行する。
【０１６２】
また、ステップＳ４５において、ｉの値がａ＋ｎと一致すると判定した場合には（ステップＳ４６；Ｙｅｓ）、図１４のステップＳ３５へと移行し、本矩形判定処理を終了する。
【０１６３】
上述した矩形判定処理において、矩形と判定された一連のランレングスデータは、図１４のステップＳ３５、Ｓ３６において、一連するランレングスデータ毎に矩形データへと変換され、続くハーフトーン処理部１４へと出力されることになる。具体的には、矩形と判定された一連のランレングスデータの始点Ｘ座標と終点Ｘ座標に基づいて、矩形領域の対角点に対応する座標点を特定し、この対角点に基づいて一連のランレングスデータに対応するスキャンラインデータの座標範囲を、図３−２に示した矩形データのデータ形式に変換し、矩形データとしてハーフトーン処理部１４に出力する。
【０１６４】
以上のように、本実施形態によれば、始点座標及び終点座標が一致するランレングスデータの個数が所定数以上か否かを判定し、当該所定数以上と判定した場合、ランレングスデータ群により表される図形を矩形と判定することで、不用意に矩形判定が行われてしまうことを防ぐことができる。
【０１６５】
以上、本発明を第１〜第４の実施形態を用いて説明してきたが、上述した実施形態に多様な変更または改良を加えることができる。また、上述した第１〜第４の実施形態において説明した構成や機能は、自由に組み合わせることができる。
【０１６６】
例えば、上記実施形態の画像形成装置（画像処理装置）で実行される画像処理にかかるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１６７】
また、上記実施形態の画像形成装置（画像処理装置）で実行される画像処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上記実施形態の画像形成装置（画像処理装置）で実行される画像処理にかかるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【産業上の利用可能性】
【０１６８】
以上のように、本発明にかかる画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムは、ページ記述言語を用いて表現された画像データの描画を行う場合に有効であり、特に、矩形図形が含まれる画像データを描画する場合に適している。
【図面の簡単な説明】
【０１６９】
【図１】画像処理装置のハードウェア構成を示したブロック図である。
【図２】第１の実施形態における画像処理装置の機構構成を示したブロック図である。
【図３−１】ポリゴンデータのデータ構造の一例を示した図である。
【図３−２】矩形データのデータ構造の一例を示した図である。
【図４−１】ポリゴンデータのデータ構造の一例を示した図である。
【図４−２】ポリゴンデータにより表される図形の一例を示した図である。
【図５】第１の実施形態における画像処理の手順を示したフローチャートである。
【図６】線分方向判定処理の手順を示したフローチャートである。
【図７−１】線分方向判定処理の動作を説明するための図である。
【図７−２】線分方向判定処理の動作を説明するための図である。
【図７−３】線分方向判定処理の動作を説明するための図である。
【図８】変化点抽出処理の手順を示したフローチャートである。
【図９−１】変化点抽出処理の動作を説明するための図である。
【図９−２】変換点抽出処理の動作を説明するための図である。
【図１０】第１の実施形態における矩形判定処理の手順を示したフローチャートである。
【図１１】第２の実施形態における画像処理装置の機能構成を示したブロック図である。
【図１２】スキャンライン変換を説明するための図である。
【図１３】スキャンラインデータのデータ構造の一例を示した図である。
【図１４】第２の実施形態における画像処理の手順を示したフローチャートである。
【図１５】第２の実施形態における矩形判定処理の手順を示したフローチャートである。
【図１６−１】ポリゴンデータにより表される図形の一例を示した図である。
【図１６−２】図１６−１で示した図形をスキャンラインデータで表した図である。
【図１６−３】図１６−２で示した図形の矩形判定処理後の状態を示した図である。
【図１７】第３の実施形態における矩形判定処理の手順を示したフローチャートである。
【図１８】スキャンラインデータにより表される図形の一例を示した図である。
【図１９】第４の実施形態における矩形判定処理の手順を示したフローチャートである。
【符号の説明】
【０１７０】
１００  画像形成装置
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  通信Ｉ／Ｆ
５  エンジンＩ／Ｆ
６  画像形成エンジン
７  バス
１０  画像処理装置
１１  ＰＤＬパーサ処理部
１２  矩形判定部
１３  スキャンライン変換部
１４  ハーフトーン処理部
１５  矩形判定部
２０  画像処理装置
【図１】
2008117149.tif 000003
【図２】
2008117149.tif 000004
【図３−１】
2008117149.tif 000005
【図３−２】
2008117149.tif 000006
【図４−１】
2008117149.tif 000007
【図４−２】
2008117149.tif 000008
【図５】
2008117149.tif 000009
【図６】
2008117149.tif 000010
【図７−１】
2008117149.tif 000011
【図７−２】
2008117149.tif 000012
【図７−３】
2008117149.tif 000013
【図８】
2008117149.tif 000014
【図９−１】
2008117149.tif 000015
【図９−２】
2008117149.tif 000016
【図１０】
2008117149.tif 000017
【図１１】
2008117149.tif 000018
【図１２】
2008117149.tif 000019
【図１３】
2008117149.tif 000020
【図１４】
2008117149.tif 000021
【図１５】
2008117149.tif 000022
【図１６−１】
2008117149.tif 000023
【図１６−２】
2008117149.tif 000024
【図１６−３】
2008117149.tif 000025
【図１７】
2008117149.tif 000026
【図１８】
2008117149.tif 000027
【図１９】
2008117149.tif 000028