(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-04
(45)【発行日】2023-04-12
(54)【発明の名称】描画処理装置、描画処理方法及び描画処理プログラム
(51)【国際特許分類】
B41J 21/00 20060101AFI20230405BHJP
G06T 11/20 20060101ALI20230405BHJP
H04N 1/387 20060101ALI20230405BHJP
B41J 5/30 20060101ALI20230405BHJP
【FI】
B41J21/00 Z
G06T11/20 300
H04N1/387 700
B41J5/30 Z
(21)【出願番号】P 2019112266
(22)【出願日】2019-06-17
【審査請求日】2022-05-31
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100115831
【氏名又は名称】藤岡 隆浩
(72)【発明者】
【氏名】中原 英雄
(72)【発明者】
【氏名】山代谷 真之
(72)【発明者】
【氏名】辻 俊太郎
(72)【発明者】
【氏名】坡山 聡志
【審査官】大浜 登世子
(56)【参考文献】
【文献】米国特許第09710204(US,B1)
【文献】特開2000-158724(JP,A)
【文献】特開2001-287413(JP,A)
【文献】特開平10-293667(JP,A)
【文献】特開2008-301029(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 21/00
G06T 11/20
H04N 1/387
B41J 5/30
(57)【特許請求の範囲】
【請求項1】
ページ記述言語で記述されたPDLデータを解析し、複数の画素の色情報を含む少なくとも1つの第1のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも1つの第2のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第2の特定部分と、第2の特定部分の直前に先行する第1の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するPDL解析部と、
前記角度データが非回転を示しているときには第1の中間コードを生成し、前記角度データが180度回転を示しているときには第2の中間コードを生成する中間コード生成部と、
前記角度データが非回転を示しているときには第1の描画処理を実行し、前記角度データが180度回転を示しているときには第2の描画処理を実行する画像描画部と、
を備え、
前記第1の中間コードは、第1のタイプのノードと第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が第1の方向に連結されて前記画素ラインを構成し、
前記第1のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを第1の方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、
前記第2のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、
前記第2の中間コードは、前記第1のタイプのノードと前記第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が前記第1の方向と逆方向に連結されて前記画素ラインを構成し、
前記第1のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを前記第1の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、
前記第2のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、
前記第1の描画処理は、前記第1の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向に連結して前記画像データによって表される画像を描画し、
前記第2の描画処理は、前記第2の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向と逆方向に連結して前記画像データによって表される画像を描画する描画処理装置。
【請求項2】
請求項1記載の描画処理装置であって、
前記第1の中間コードは、前記第2のタイプの部分画像の反復数の前記画素ライン毎の平均値が第1の閾値よりも小さいとの判定に応じて、前記画素ラインを構成する単一の前記第1のタイプのノードとして生成され、
前記第2の中間コードは、前記平均値が第2の閾値よりも小さいとの判定に応じて、前記画素ラインを構成する単一の前記第1のタイプのノードとして生成される描画処理装置。
【請求項3】
請求項2記載の描画処理装置であって、
前記画像データは、処理対象である処理対象画素ラインと、前記画素ラインの直前に先行する先行画素ラインとを含み、
前記第1の中間コードは、前記先行画素ラインにおける前記平均値が前記第1の閾値よりも小さいとの判定に応じて、前記処理対象画素ラインを構成する前記単一の第1のタイプのノードとして生成され、
前記第2の中間コードは、前記平均値が前記第2の閾値よりも小さいとの判定に応じて、前記処理対象画素ラインを構成する前記単一の第1のタイプのノードとして生成される描画処理装置。
【請求項4】
請求項3記載の描画処理装置であって、
前記第1の閾値は、前記第2の閾値と同一の値を有している描画処理装置。
【請求項5】
ページ記述言語で記述されたPDLデータを解析し、複数の画素の色情報を含む少なくとも1つの第1のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも1つの第2のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第2の特定部分と、第2の特定部分の直前に先行する第1の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するPDL解析工程と、
前記角度データが非回転を示しているときには第1の中間コードを生成し、前記角度データが180度回転を示しているときには第2の中間コードを生成する中間コード生成工程と、
前記角度データが非回転を示しているときには第1の描画処理を実行し、前記角度データが180度回転を示しているときには第2の描画処理を実行する画像描画工程と、
を備え、
前記第1の中間コードは、第1のタイプのノードと第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が第1の方向に連結されて前記画素ラインを構成し、
前記第1のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを第1の方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、
前記第2のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、
前記第2の中間コードは、前記第1のタイプのノードと前記第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が前記第1の方向と逆方向に連結されて前記画素ラインを構成し、
前記第1のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを前記第1の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、
前記第2のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、
前記第1の描画処理は、前記第1の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向に連結して前記画像データによって表される画像を描画し、
前記第2の描画処理は、前記第2の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向と逆方向に連結して前記画像データによって表される画像を描画する描画処理方法。
【請求項6】
ページ記述言語で記述されたPDLデータを解析し、複数の画素の色情報を含む少なくとも1つの第1のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも1つの第2のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第2の特定部分と、第2の特定部分の直前に先行する第1の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するPDL解析部、
前記角度データが非回転を示しているときには第1の中間コードを生成し、前記角度データが180度回転を示しているときには第2の中間コードを生成する中間コード生成部、及び
前記角度データが非回転を示しているときには第1の描画処理を実行し、前記角度データが180度回転を示しているときには第2の描画処理を実行する画像描画部として描画処理装置を機能させ、
前記第1の中間コードは、第1のタイプのノードと第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が第1の方向に連結されて前記画素ラインを構成し、
前記第1のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを第1の方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、
前記第2のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、
前記第2の中間コードは、前記第1のタイプのノードと前記第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が前記第1の方向と逆方向に連結されて前記画素ラインを構成し、
前記第1のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを前記第1の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、
前記第2のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、
前記第1の描画処理は、前記第1の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向に連結して前記画像データによって表される画像を描画し、
前記第2の描画処理は、前記第2の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向と逆方向に連結して前記画像データによって表される画像を描画する描画処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、描画処理装置、描画処理方法及び描画処理プログラムに関し、特に画像データの連長圧縮技術(ランレングス圧縮技術とも呼ばれる。)の高速化技術に関する。
【背景技術】
【0002】
画像形成装置(たとえばプリンター、多機能プリンター、又は複合機(Multifunction Peripheral))は、大きなメモリ領域を使用して高解像度で画像を処理する。メモリ領域は、各ページの印刷ジョブを複数のバンドに分割した後に中間コードに変換することによって節約される。中間コードは、メモリ領域に記憶される一方、記憶された中間コードをビットマップ画像にラスタライズすることによってページ毎に印刷を実行する。中間コードの生成方法として、たとえば特許文献1において、本願発明者は、非回転の画像に適用可能な非回転高速ランレングス描画処理(FAST DRAWING OF UNROTATED RUN-LENGTH ENCODED IMAGES)を提案している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願発明者は、さらに研究を進め、ページ記述言語で記述されている印刷ジョブに含まれている画像に適用可能な高速ランレングス圧縮描画処理を創作した。
【0005】
本発明は、このような状況に鑑みてなされたものであり、回転の対象となっている画像に適用可能な高速ランレングス圧縮描画処理を実現するための技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の描画処理装置は、ページ記述言語で記述されたPDLデータを解析し、複数の画素の色情報を含む少なくとも1つの第1のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも1つの第2のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第2の特定部分と、第2の特定部分の直前に先行する第1の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するPDL解析部と、前記角度データが非回転を示しているときには第1の中間コードを生成し、前記角度データが180度回転を示しているときには第2の中間コードを生成する中間コード生成部と、前記角度データが非回転を示しているときには第1の描画処理を実行し、前記角度データが180度回転を示しているときには第2の描画処理を実行する画像描画部とを備え、前記第1の中間コードは、第1のタイプのノードと第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が第1の方向に連結されて前記画素ラインを構成し、前記第1のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを第1の方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、前記第2のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、前記第2の中間コードは、前記第1のタイプのノードと前記第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が前記第1の方向と逆方向に連結されて前記画素ラインを構成し、前記第1のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを前記第1の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、前記第2のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、前記第1の描画処理は、前記第1の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向に連結して前記画像データによって表される画像を描画し、前記第2の描画処理は、前記第2の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向と逆方向に連結して前記画像データによって表される画像を描画する。
【0007】
本発明の描画処理方法は、ページ記述言語で記述されたPDLデータを解析し、複数の画素の色情報を含む少なくとも1つの第1のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも1つの第2のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第2の特定部分と、第2の特定部分の直前に先行する第1の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するPDL解析工程と、前記角度データが非回転を示しているときには第1の中間コードを生成し、前記角度データが180度回転を示しているときには第2の中間コードを生成する中間コード生成工程と、前記角度データが非回転を示しているときには第1の描画処理を実行し、前記角度データが180度回転を示しているときには第2の描画処理を実行する画像描画工程とを備え、前記第1の中間コードは、第1のタイプのノードと第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が第1の方向に連結されて前記画素ラインを構成し、前記第1のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを第1の方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、前記第2のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、前記第2の中間コードは、前記第1のタイプのノードと前記第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が前記第1の方向と逆方向に連結されて前記画素ラインを構成し、前記第1のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを前記第1の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、前記第2のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、前記第1の描画処理は、前記第1の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向に連結して前記画像データによって表される画像を描画し、前記第2の描画処理は、前記第2の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向と逆方向に連結して前記画像データによって表される画像を描画する。
【0008】
本発明は、描画処理装置を制御するための描画処理プログラムを提供する。前記描画処理プログラムは、ページ記述言語で記述されたPDLデータを解析し、複数の画素の色情報を含む少なくとも1つの第1のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも1つの第2のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第2の特定部分と、第2の特定部分の直前に先行する第1の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するPDL解析部、前記角度データが非回転を示しているときには第1の中間コードを生成し、前記角度データが180度回転を示しているときには第2の中間コードを生成する中間コード生成部、及び前記角度データが非回転を示しているときには第1の描画処理を実行し、前記角度データが180度回転を示しているときには第2の描画処理を実行する画像描画部として描画処理装置を機能させ、前記第1の中間コードは、第1のタイプのノードと第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が第1の方向に連結されて前記画素ラインを構成し、前記第1のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを第1の方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、前記第2のタイプのノードは、前記角度データが非回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、前記第2の中間コードは、前記第1のタイプのノードと前記第2のタイプのノードとを含み、前記第1のタイプのノードと前記第2のタイプのノードの少なくとも一方が前記第1の方向と逆方向に連結されて前記画素ラインを構成し、前記第1のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第1のタイプであるとの判定が肯定的な場合に前記第1の特定部分の色情報と前記第2の特定部分の色情報とを前記第1の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報を使用して生成され、前記第2のタイプのノードは、前記角度データが180度回転を示しているときには前記第1の特定部分と前記第2の特定部分の双方が前記第2のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第2の特定部分の色情報と反復数とを使用して生成され、前記第1の描画処理は、前記第1の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向に連結して前記画像データによって表される画像を描画し、前記第2の描画処理は、前記第2の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第2の方向と逆方向に連結して前記画像データによって表される画像を描画する。
【発明の効果】
【0009】
本発明によれば、回転の対象となっている画像に適用可能な高速ランレングス圧縮描画処理を実現することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係る画像形成システム10の機能構成を示すブロック図である。
【
図2】一実施形態に係るレンダリング処理の内容を示すフローチャートである。
【
図3】RUN-LENGTH符号化画像RLD1の一例を表す模式図である。
【
図4】一実施形態に係る非回転高速RL描画処理の概要を示す説明図である。
【
図5】典型的な画像ノード生成処理の内容の一例を表す模式図である。
【
図6】一実施形態に係る画像復号処理の一例を示すフローチャートである。
【
図7】一実施形態に係る画像ノード生成の内容を示すフローチャートである。
【
図8】一実施形態に係る第1の画像ノード生成処理の内容を示すフローチャートである。
【
図9】一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。
【
図10】一実施形態に係る部分画像結合処理の内容を示すフローチャートである。
【
図11】一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。
【
図12】一実施形態に係る第2の画像ノード生成処理の内容を示すフローチャートである。
【
図13】RL符号化画像RLD2の画像ノードが生成される様子を示している。
【
図14】一実施形態に係る平均連続数更新処理の内容を示すフローチャートである。
【
図15】第3の画素ラインL3に係る画像ノード生成処理の内容の一例を表す模式図である。
【
図16】一実施形態に係る非回転復号画像描画処理(ステップS7700)の内容を示すフローチャートである。
【
図17】一実施形態に係る画像描画処理の内容を表す概略図である。
【
図18】一実施形態に係る画像描画処理の内容を表す概略図である。
【
図19】一実施形態に係る画像描画処理の内容を表す概略図である。
【
図20】一実施形態に係る180度回転高速RL描画処理の概要を示す説明図である。
【
図21】RL符号化画像RLD3の画像ノードが生成される様子を示している。
【
図22】第3の画素ラインL3に係る画像ノード生成処理の内容の一例を表す模式図である。
【
図23】一実施形態に係る180度回転復号画像描画処理の内容を示すフローチャートである。
【
図24】一実施形態に係る画像描画処理の内容を表す概略図である。
【
図25】一実施形態に係る画像描画処理の内容を表す概略図である。
【発明を実施するための形態】
【0011】
A.実施形態:
以下、本発明を実施するための形態(以下、「実施形態」という)を、図面を参照して説明する。
【0012】
図1は、本発明の一実施形態に係る画像形成システム10の機能構成を示すブロック図である。画像形成システム10は、画像形成装置100とパーソナルコンピュータ200とを備える。パーソナルコンピュータ200は、ネットワーク(この例ではLAN)を介して画像形成装置100と接続されている。
【0013】
画像形成装置100は、制御部110と、画像形成部120と、操作表示部130と、記憶部140と、通信インターフェース部150とを備える。パーソナルコンピュータ200は、制御部210と、RL符号化部220と、操作表示部230と、記憶部240と、通信インターフェース部250とを備える。
【0014】
パーソナルコンピュータ200のRL符号化部220は、RL符号化を用いてRGB画像データを符号化し、符号化画像データを生成する。RGB画像データは、単に画像データとも呼ばれ、2次元的に配列された複数の画素を示すRGBの各色のビットマップ(ピクセルマップとも呼ばれる。)データである。制御部210は、符号化画像データを使用してPDLデータを生成し、PDLデータを格納する印刷ジョブを生成する。
【0015】
通信インターフェース部150と通信インターフェース部250とは、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルを用いて通信する。画像形成装置100は、通信インターフェース部150と通信インターフェース部250とを介してパーソナルコンピュータ200から印刷ジョブを受信する。
【0016】
制御部110は、PDL解析部111を有している。PDL解析部111は、PDL解析処理を実行し、PDLデータを含む印刷ジョブの受信に応じて、ページ記述言語で記述されたPDLデータを解析する。これにより、制御部10は、PDLデータに含まれるテキスト(文字)やイメージ、ベクターグラフィックス、ソフトマスクといったオブジェクトを抽出し、256階調のRGB画像データやフィルタ(制御データ)を生成することができる。この例では、オブジェクトは、符号化画像データを含んでいる。
【0017】
画像形成部120は、RL復号部121、画像描画部122、画像処理部123及び画像出力部124を有している。RL復号部121は、逆RL符号化によって符号化画像データを復号する。画像描画部122は、復号された画像データに対して画像描画処理を実行して画像のビットマップデータを生成する。画像処理部123は、印刷設定に従ってスキャンデータを処理する。画像出力部124は、復号された印刷データに基づいて印刷媒体に画像を印刷する。RL復号部121は、中間コード生成部とも呼ばれる。
【0018】
画像形成装置100の操作表示部130は、ディスプレイ131と操作処理部132とを有している。パーソナルコンピュータ200の操作表示部230は、ディスプレイ231と操作処理部232と有している。ディスプレイ131は、タッチパネルとして機能し、操作入力画面として各種メニューを表示する。操作処理部132,232は、タッチパネルとして機能するディスプレイ131や、図示しない各種ボタンやスイッチ等を介してユーザーの操作入力を受け付ける。
【0019】
制御部110,210は、RAMやROM等の主記憶装置、MPU(Micro Processing Unit)、CPU(Central Processing Unit)等の制御装置を有している。制御部110,210は、各種I/O、USB(Universal Serial Bus)、バス、その他のハードウェアなどのインターフェースに関する制御機能を備え、画像形成装置100全体およびパーソナルコンピュータ200全体を制御する。
【0020】
記憶部140,240は、ハードディスクドライブやフラッシュメモリーなどの非一時的な記録媒体であり、制御プログラム(描画処理プログラムを含む。)や制御部110,210が実行する処理のデータなどをそれぞれ記憶する。
【0021】
図2は、一実施形態に係るレンダリング処理の内容を示すフローチャートである。レンダリング処理は、パーソナルコンピュータ200からの印刷ジョブの受信に応じて画像形成装置100において起動される。印刷ジョブの受信は、通信インターフェース部250及び通信インターフェース部150を介して実行される。印刷ジョブには、PDLデータが含まれている。
【0022】
ステップS1000では、画像形成装置100が有する制御部110のPDL解析部111は、PDL解析処理を実行し、ページ記述言語で記述されたPDLデータを解析する。この例では、PDL解析部111は、PDLデータから描画オブジェクトと、描画オブジェクトの描画方向、すなわち印刷媒体上における画像の向き(指定方向)を指定している方向指定データとを取得する。方向指定データは、角度データとも呼ばれ、たとえば非回転(0度)、時計方向90度、180度及び270度の回転角度を指定している。この例では、描画オブジェクトには、符号化画像データが含まれている。
【0023】
ステップS2000では、画像形成部120は、描画オブジェクトを解析し、受信した描画オブジェクトがRGBやCMYKといった各画素の画素値を含んでいる画像オブジェクトであるか否かを判定する。受信した描画オブジェクトがテキストやベクターデータ等でなく画像オブジェクトであると判定された場合、画像形成部120は、処理をステップS4000に進める。画像形成部120は、受信した描画オブジェクトがテキストやベクトルデータ等の画像オブジェクト以外のオブジェクトであると判断した場合、処理をステップS3000に進める。
【0024】
ステップS3000では、画像形成部120は、通常の描画処理により描画オブジェクトを描画する。通常の描画処理は、たとえば後述の非回転高速RL描画処理(ステップS7000)や180度回転高速RL描画処理(ステップS8000)を含まない描画処理である。
【0025】
ステップS4000では、画像描画部122は、画像オブジェクトを解析し、画像オブジェクトがRL符号化により圧縮されている符号化画像データであるか否かを判定する。画像オブジェクトがRL符号化により圧縮されていると判定された場合、画像形成部120は、処理をステップS5000に進める。画像オブジェクトがRL符号化により圧縮されていない場合、画像形成部120は、画像形成部120は、通常の画像描画処理により画像オブジェクトを描画する(ステップS3000)。
【0026】
図3は、RUN-LENGTH符号化画像(RL符号化画像とも呼ばれる。)の一例を表す模式図である。RL符号化画像RLD1は、パーソナルコンピュータ200において、RL符号化処理によって元画像CIが圧縮された画像である。画素内のアルファベットは、ピクセルの各色を意味している。同一のアルファベットは、同一色を表している。第1乃至第4列目の画素には、それぞれ「A」、「B」、「C」及び「D」のアルファベットが含まれている。
【0027】
RL符号化処理は、連続する同一データをデータ1つ分と連続した長さとで表して圧縮する可逆圧縮方法である。この例では、元画像CIは、RL符号化画像RLD1にランレングス圧縮(連長圧縮とも呼ばれる。)されている。RL符号化画像RLD1では、たとえば画像のラインL1は、4個の部分画像L11乃至L14に分割され、圧縮されている。
【0028】
部分画像L11及びL14は、直接色部分DCPとも呼ばれ、各要素に色情報を格納している。部分画像L12及びL13は、反復色部分RCPとも呼ばれ、第1の要素に色情報を格納し、第2の要素に反復数(連続数とも呼ばれる。)を格納している。これにより、部分画像L12は、2要素で4画素の色情報を格納し、部分画像L13は、2要素で10画素の色情報を格納することができる。この結果、RL符号化処理は、データ量を削減することができる。
【0029】
RL符号化処理には、データが連続していないと、符号化後のデータが元のデータより膨らんでしまうという欠点がある。このような欠点を回避するために、たとえばSwitched Run Length符号化方式(SRL符号化方式とも呼ばれる。)も提案されている。SRL符号化方式は、コードの変わり目で連続データとして扱うか非連続データとして扱うかを交互に切り替えていく方法である。ただし、SRL符号化方式は、表現可能な最大連続数が256個に制限される。
【0030】
ステップS5000では、画像描画部122は、方向指定データに基づいて、画像が描画ページの向きと同一の方向、すなわち非回転であるか否かを判断する。画像の向きが同じである場合、画像形成部120は、処理をステップS7000に進める。画像の向きが同じでない場合、画像形成部120は、処理をステップS6000に進める。
【0031】
ステップS6000では、画像描画部122は、方向指定データに基づいて、画像の指定方向が180度回転、すなわち上下左右反転であるか否かを判断する。180度回転である場合、画像形成部120は、処理をステップS8000に進める。180度回転でない場合、画像形成部120は、通常の画像描画処理により画像オブジェクトを描画する(ステップS3000)。
【0032】
図4は、一実施形態に係る非回転高速RL描画処理の概要を示す説明図である。
図4(a)は、非回転高速RL描画処理の内容を示すフローチャートである。ステップS7000では、画像描画部122は、高速RL描画処理(RL描画処理とも呼ばれる。)を実行する。非回転RL描画処理は、画像を復号して中間コード(画像ノード)を生成する画像復号処理(ステップS7100)と、復号された画像である復号画像を描画する復号画像描画処理(ステップS7700)と、画像出力処理(ステップS7900)とを含んでいる。
【0033】
図4(b)は、非回転高速RL描画処理のデータフローを示している。非回転高速RL描画処理では、画像形成部120のRL復号部121は、パーソナルコンピュータ200のRL符号化部220で圧縮されたRL符号化画像RLD1を受信する。RL符号化画像RLD1には、複数の直接色部分DCPと複数の反復色部分RCPとが含まれている。RL復号部121は、直接色部分DCPと反復色部分RCPとからそれぞれ直接色ノードDCPnと反復色ノードRCPnとを生成し、画像描画部122に送信する。画像描画部122は、複数の直接色ノードDCPnと複数の反復色ノードRCPnとを使用して描画画像DIを生成する。直接色ノードDCPn及び反復色ノードRCPnは、第1の中間コードとも呼ばれる。
【0034】
図5は、典型的な画像ノード生成処理の内容の一例を表す模式図である。
図5では、RL復号部121は、RL符号化画像RLD1の画素ラインL1を構成する4個の部分画像L11乃至L14に対して、直接色部分DCP及び反復色部分RCPを直接色ノードDCPn及び反復色ノードRCPnに変換している。
【0035】
画像ノードは、タイプフィールド(タイプとも呼ばれる。)、反復数/長さフィールド(カウント数/長さとも呼ばれる。)、ノードポインタフィールド及び色情報ポインタフィールドを有している。タイプフィールドは、画像ノードのタイプを示している。タイプフィールドは、たとえば直接色ノードDCPn又は反復色ノードRCPnを示している。反復数/長さフィールドは、反復色ノードRCPnの画素の反復数又は直接色ノードDCPnの画素数(画素幅)を示している。ノードポインタフィールドは、画素ライン内の次のノードを示している。直接色ノードDCPnの色情報ポインタフィールドは、複数の画素の色情報(たとえばRGBデータやCMYKデータ)を示している。反復色ノードRCPnの色情報ポインタフィールドは、単一の画素の色情報(たとえばRGBデータやCMYKデータ)を示している。
【0036】
具体的には、RL復号部121は、直接色部分DCPである部分画像L11(DCP_L11)をL11ノードに変換している。たとえばL11ノードは、タイプフィールドがDCPなので直接色ノードDCPnを示し、反復数/長さフィールドの値が3なので画素数3を示し、ノードポインタフィールドがL12ノードを示し、そして色情報ポインタが色情報A、色情報B及び色情報Cの3画素分の色情報を示している。タイプフィールドがDCPのノードは、第1のタイプであることを示している。タイプフィールドがRCPのノードは、第2のタイプであることを示している。
【0037】
図6は、一実施形態に係る画像復号処理(ステップS7100)の一例を示すフローチャートである。ステップS7110では、RL復号部121は、パラメータ入力処理を実行する。パラメータ入力処理では、RL復号部121は、平均連続数インジケータとスケールSとを入力する。平均連続数インジケータは、レンダリング処理に平均連続数を使用するか否かを示し、たとえばユーザー入力によって設定される。スケールSは、入力画像に対する出力画像のサイズ比である。サイズ比は、1より大きい場合には拡大を示し、1未満の場合には縮小を示している。スケールSは、水平方向のスケールSHと垂直方向のスケールSHと含んでいる。
【0038】
ステップS7120では、RL復号部121は、スケールSが1未満、すなわち縮小であるか否かを判断する。RL復号部121は、縮小である場合には処理をステップS7170に進め、拡大である場合には処理をステップS7130に進める。
【0039】
ステップS7130では、RL復号部121は、画像バッファIB割当試行処理を実行する。画像バッファIB割当試行処理では、RL復号部121は、拡大された出力画像サイズを想定し、色変換後の画像データサイズを推定して画像バッファIBの割当を試行する。
【0040】
ステップS7140では、RL復号部121は、画像バッファIBの割当が可能であるか否かを判断する。RL復号部121は、可能であると判断した場合には処理をステップS7150に進め、可能でないと判断した場合には処理をステップS7170に進める。
【0041】
ステップS7150では、RL復号部121は、RL復号部121によって色変換処理を実行するか否かを表す色変換インジケータをYes(色変換有り)に設定する。ステップS7160では、RL復号部121は、画像バッファIBを割り当てるか否かを表す画像バッファインジケータをYes(割当有り)に設定する。一方、ステップS7170では、RL復号部121は、色変換インジケータをNo(色変換無し)に設定する。
【0042】
ステップS7180では、RL復号部121は、入力画像サイズを想定して画像バッファIB割当試行処理を実行する。画像バッファIB割当試行処理では、RL復号部121は、入力画像サイズを想定し、色変換前の画像データサイズを推定して画像バッファIBの割当を試行する。
【0043】
ステップS7190では、RL復号部121は、画像バッファIBの割当が可能であるか否かを判断する。RL復号部121は、可能であると判断した場合には処理をステップS7160に進めてRL復号部121によって画像バッファインジケータをYesに設定し、可能でないと判断した場合には処理をステップS7195に進めて画像バッファインジケータをNoに設定する(ステップS7195)。
【0044】
図7は、一実施形態に係るノード生成処理(ステップS7200)の内容を示すフローチャートである。ステップS7210では、RL復号部121は、インジケータ入力処理を実行する。インジケータ入力処理では、RL復号部121は、画像バッファ割当インジケータと、平均連続数インジケータと、色変換インジケータとを入力する。
【0045】
ステップS7220では、RL復号部121は、画像バッファ割当インジケータに基づいてバッファ割当が可能であるか否かを判断する。RL復号部121は、可能であると判断した場合には処理をステップS7230に進め、可能でないと判断した場合には処理をステップS7240に進める。
【0046】
ステップS7230では、RL復号部121は、復号処理のために画像バッファIBを割り当てる。ステップS7240では、RL復号部121は、復号処理のためにシステムバッファ(たとえばヒープ領域)を割り当てる。
【0047】
ステップS7250では、RL復号部121は、平均連続数インジケータに基づいて平均連続数を使用するか否かを判断する。RL復号部121は、使用と判断した場合には処理をステップS7400に進め、不使用と判断した場合には処理をステップS7300に進める。
【0048】
ステップS7300では、RL復号部121は、平均連続数を使用しない第1のノード生成処理でノードを生成する。ステップS7400では、RL復号部121は、平均連続数を使用する第2のノード生成処理でノードを生成する。ステップS7500では、RL復号部121は、第1のノード生成処理又は第2のノード生成処理で生成されたノードを出力する。
【0049】
図8は、一実施形態に係る第1の画像ノード生成処理(ステップS7300)の内容を示すフローチャートである。
図9は、一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。
図9は、第2の画素ラインL2の部分画像L21乃至L26の画像ノードが生成される様子を示している。この例では、説明を分かりやすくするためにRL符号化画像RLD1をRL符号化画像RLD1aに変更している。RL符号化画像RLD1aは、部分画像DCP_L24と部分画像DCP_L25の双方の色情報が一致している点でRL符号化画像RLD1と相違している(
図9(a)参照)。
【0050】
ステップS7320では、RL復号部121は、RL符号化画像RLD1aから部分画像L11乃至L14及び部分画像L21乃至L16を順に受信する。RL復号部121は、たとえば部分画像L21を受信すると、部分画像L21を処理対象の部分画像Pとする。
【0051】
ステップS7340では、RL復号部121は、先行画像P1を設定する。RL復号部121は、たとえば部分画像L22を受信すると、部分画像L22を処理対象の部分画像Pとし、部分画像L21を先行画像P1とし(
図9(b))、部分画像L23を受信すると、部分画像L23を処理対象の部分画像Pとし、部分画像L22を先行画像P1とする(
図9(c))。部分画像Pは、第2の特定部分とも呼ばれる。先行画像P1は、第2の特定部分の直前に先行し、第1の特定部分とも呼ばれる。
【0052】
図10は、一実施形態に係る部分画像結合処理(ステップS7350)の内容を示すフローチャートである。ステップS7351では、RL復号部121は、処理対象の部分画像Pが反復色部分RCPであるか否かを判断する。RL復号部121は、反復色部分RCPであると判断した場合には処理をステップS7355に進め、反復色部分RCPでないと判断した場合には処理をステップS7352に進める。
【0053】
ステップS7352では、RL復号部121は、先行画像P1が直接色部分DCPであるか否かを判断する。RL復号部121は、直接色部分DCPであると判断した場合には処理をステップS7354に進め、直接色部分DCPでないと判断した場合には処理をステップS7353に進める。
【0054】
ステップS7353では、RL復号部121は、部分画像Pに対してバッファを割り当ててDCPノードを生成する。RL復号部121は、さらに、色変換インジケータがYesの場合には、部分画像Pに対して色変換処理を実行する。具体的には、たとえば部分画像Pが直接色部分DCP_L22であり、先行画像P1が反復色部分RCPである場合には、RL復号部121は、直接色部分DCP_L22からDCPノードであるL22ノードを生成し、色変換処理を実行する(
図9(b)参照)。
【0055】
ステップS7354では、RL復号部121は、部分画像Pに対して先行画像P1のバッファを延長して部分画像Pの色情報を格納する。RL復号部121は、さらに、色変換インジケータがYesの場合には、部分画像Pに対して色変換処理を実行する。具体的には、たとえば部分画像Pが直接色部分DCP_L23であり、先行画像P1が直接色部分DCP_L22である場合には、RL復号部121は、直接色部分DCP_L22から生成されたDCPノードであるL22ノードのバッファを延長し、直接色部分DCP_L23の色情報に対して色変換処理を実行し、色変換処理が実行された色情報を格納する。(
図9(c)参照)。
【0056】
すなわち、直接色部分DCP_L23は、L22ノードに結合され、L22ノードの一部となる。これにより、L22ノードのカウント/長さフィールドの値は2から4に変更される。これにより、RL復号部121は、ノード数を削減して処理効率を向上させることができる。
【0057】
図11は、一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。ステップS7355では、RL復号部121は、先行画像P1が部分画像Pと色情報が一致する反復色部分RCPであるか否かを判断する。RL復号部121は、判断が肯定的である場合には処理をステップS7357に進め、判断が否定的である場合には処理をステップS7356に進める。
【0058】
ステップS7356では、RL復号部121は、部分画像Pに対してバッファを割り当ててRCPノードを生成する。RL復号部121は、さらに、色変換インジケータがYesの場合には、部分画像Pに対して色変換処理を実行する。具体的には、たとえば部分画像Pが反復色部分RCP_L24であり、先行画像P1が直接色部分DCPである場合には、RL復号部121は、反復色部分RCP_L24からRCPノードであるL24ノードを生成し、色変換処理を実行する(
図11(a)参照)。
【0059】
ステップS7357では、RL復号部121は、部分画像Pのカウント/長さフィールドのカウント数を先行画像P1のカウント/長さフィールドの値に加算して和とする。具体的には、たとえば部分画像Pが反復色部分RCP_L25であり、色情報が一致する先行画像P1が反復色部分RCP_L24である場合には、RL復号部121は、反復色部分RCP_L24のカウント/長さフィールドの値を5から10に変更する(
図11(b)参照)。
【0060】
すなわち、反復色部分RCP_L25は、L24ノードに結合され、L24ノードの一部となる。これにより、L24ノードのカウント/長さフィールドの値は5から10に変更される。これにより、RL復号部121は、ノード数を削減して処理効率を向上させることができる。
【0061】
このような処理(ステップS7320乃至ステップS7350)は、画像を構成する画素ラインL1,L2毎に全ての部分画像に対して実行され(ステップS7380)、全ての画素ラインL1,L2に対して実行される(ステップS7390)。
【0062】
図12は、一実施形態に係る第2の画像ノード生成処理(ステップS7400)の内容を示すフローチャートである。第2の画像ノード生成処理は、平均連続数と閾値とを使用して画素ラインをDCPノードに変換し、さらに効率的にノード数を減らすことができる。平均連続数は、RunPixels値/RunSum値(平均値)として定義される。RunSum値は、入力画像の現在行を再現するために使用される反復色部分RCPの数である。RunPixels値は、入力画像の現在行を再現するために使用される各反復色部分RCPで反復される画素の総数である。閾値(RunTHR値)は、入力画像の反復色部分RCP毎に反復される画素の平均数を示す閾値(第1の閾値)である。
【0063】
ステップS7410では、RL復号部121は、初期設定処理を実行する。初期設定処理では、RL復号部121は、3つの値(RunSum値,RunPixels値及びRunTHR値)を初期化する。RunSum値及びRunPixels値は、いずれもゼロに初期化される。RunTHR値(平均連続数閾値)は、たとえば3.333、5、10又は20に所定の方法で初期設定される。この例では、平均連続数閾値は5である。
【0064】
平均連続数(RunPixels値/RunSum値)は、ランレングス圧縮による圧縮の効果を示すことができる。すなわち、大きな平均連続数は、ランレングス圧縮による圧縮の効果が大きいことを示し、小さな平均連続数は、ランレングス圧縮による圧縮の効果が小さいことを示している。本願発明者は、ランレングス圧縮された画像の複合処理の負担とデータ圧縮のトレードオフを考慮し、ハードウェアリソース毎にRunTHR値を変更可能とすることによって効率的な処理を実現する技術を創作した。
【0065】
図13は、RL符号化画像RLD2の画像ノードが生成される様子を示している。
図13(a)は、RL符号化画像RLD2を示している。
図13(b)は、第1の画素ラインL1の部分画像L11乃至L15を示している。第1の画素ラインL1は、RL符号化画像RLD2の最初の画素ラインなので、第1の画素ラインL1の処理の際には、RunSum値=0である。
【0066】
ステップS7420では、RL復号部121は、直前に先行し、処理対象となった画素ラインの平均連続数(RunPixels値/RunSum値)が閾値(RunTHR値)よりも小さいか否かを判断する。RL復号部121は、平均連続数が閾値よりも小さいと判断した場合(又は例外処理としてRunSum値=0の場合)には処理をステップS7430に進め、平均連続数が閾値よりも小さくないと判断した場合には処理をステップS7470に進める。第1の画素ラインL1の処理では、RL復号部121は、処理をステップS7430に進める。
【0067】
ステップS7430では、RL復号部121は、初期化処理を実行する。初期化処理では、RL復号部121は、直前に処理対象となった画素ライン(先行画素ラインとも呼ばれる。)のRunSum値及びRunPixels値をリセットしてゼロにする。処理対象となる現画素ラインは、処理対象画素ラインとも呼ばれる。
【0068】
ステップS7440では、RL復号部121は、画素ライン用のDCPノードを生成する。この例では、第1の画素ラインL1の全体がDCPノードL11に変換される。DCPノードL11は、第1の画素ラインL1の全画素の色情報を指定する長さ20のノードである。ステップS7450では、RL復号部121は、第1の画素ラインL1の全画素の色情報を格納するための画像バッファIBを割り当てる。
【0069】
図14は、一実施形態に係る平均連続数更新処理(ステップS7460)の内容を示すフローチャートである。ステップS7461では、RL復号部121は、部分画像L11を受信し、処理対象の部分画像Pとする。
【0070】
ステップS7462では、RL復号部121は、部分画像P(部分画像L11)がRCPであるか否かを判断する。RL復号部121は、部分画像PがRCPである場合には、処理をステップS7463に進め、部分画像PがRCPでない場合には、処理をステップS7465に進める。この例では、部分画像L11はDCPなので、RL復号部121は、処理をステップS7465に進める。ステップS7465では、RL復号部121は、色変換インジケータがYesの場合には、部分画像Pに対して色変換処理を実行する。
【0071】
ステップS7463では、RL復号部121は、RunSum値を1だけインクリメントする。ステップS7464では、RL復号部121は、RunPixels値に対して部分画像L11の画素幅(カウント/長さ)を加算する。これにより、RL復号部121は、平均連続数(RunPixels値/RunSum値)を更新することができる。
【0072】
具体的には、第1の画素ラインL1の処理では、部分画像L12乃至L14の3つのRCPでRunSum値が3となるとともに、RunPixels値が14(=4+5+5)となる。これにより、RL復号部121は、平均連続数を4.67に更新することができる。次に、第2の画素ラインL2の処理では、部分画像L22乃至L24の3つのRCPでRunSum値が3となるとともに、RunPixels値が14(=5+6+5)となる。これにより、RL復号部121は、平均連続数を5.33に更新することができる。
【0073】
図15は、第3の画素ラインL3に係る画像ノード生成処理の内容の一例を表す模式図である。第3の画素ラインL3の処理では、RL復号部121は、直前ライン(第2の画素ラインL2)の平均連続数(5.33)が閾値(5)よりも大きいので、処理をステップS7470に進める(ステップS7420)。ステップS7480では、RL復号部121は、平均連続数更新処理を実行する。平均連続数更新処理は、ステップS7460で実行される平均連続数更新処理と同一の内容である。
【0074】
ステップS7350では、RL復号部121は、部分画像結合処理(
図10及び
図11参照)を実行する。直接色部分DCP_L31に対しては、先行画像P1が存在しないので、RL復号部121は、直接色部分DCP_L31からDCPノードであるL31ノードを生成し、色変換処理を実行する(ステップS7351、ステップS7352及びステップS7353)。
【0075】
反復色部分RCP_L32に対しては、先行画像P1がDCPなので、RL復号部121は、反復色部分RCPからRCPノードであるL32ノードを生成し、色変換処理を実行する(ステップS7351、ステップS7352及びステップS7354)。反復色部分RCP_L33に対しては、先行画像P1がRCPではあるが色情報が相違するので、RL復号部121は、反復色部分RCP_L33からRCPノードであるL33ノードを生成し、色変換処理を実行する(ステップS7351、ステップS7355及びステップS7356)。
【0076】
反復色部分RCP_L34に対しては、先行画像P1がRCPで色情報が一致するので、RL復号部121は、RCPノードであるL33ノードのカウント数/長さの値に反復色部分RCP_L34のカウント数/長さの値を加算する(ステップS7351、ステップS7355及びステップS7357)。
【0077】
直接色部分DCP_L35に対しては、先行画像P1がRCPなので、RL復号部121は、直接色部分DCP_L35からDCPノードであるL35ノードを生成し、色変換処理を実行する(ステップS7351、ステップS7352及びステップS7353)。
【0078】
図16は、一実施形態に係る非回転復号画像描画処理(ステップS7700)の内容を示すフローチャートである。
図17は、一実施形態に係る画像描画処理の内容を表す概略図である。ステップS7710では、画像描画部122は、バッファ割当処理を実行する。バッファ割当処理では、画像描画部122は、ワンラインバッファOLBと、ページバッファPBとに画像バッファIBを割り当てる。
【0079】
ステップS7720では、画像描画部122は、ノード取得処理を実行する。ノード取得処理では、画像描画部122は、画像ノード生成処理(ステップS7200)で生成された画像ノードを画像バッファIBから順に読み出す。
【0080】
ステップS7730では、画像描画部122は、取得したノードがDCPノードであるか否かを判断する。RL復号部121は、DCPノードであると判断した場合には処理をステップS7741に進め、DCPノードでないと判断した場合には処理をステップS7751に進める。
【0081】
ステップS7741では、画像描画部122は、取得したノードのカウント/長さフィールドの値(画素数)と水平方向のスケールSHとの積として、同一の色情報が格納される出力画像の水平方向の画素数を算出する。ステップS7742では、画像描画部122は、色変換インジケータがNo、すなわちRL復号部121で色変換処理を実行しない設定である場合には、必要に応じて色変換処理を実行する。ステップS7743では、画像描画部122は、ワンラインバッファ格納処理を実行する。ワンラインバッファ格納処理では、画像描画部122は、ステップS7741で算出した画素数の画素にRCPノードの色情報をワンラインバッファOLBにコピーする。
【0082】
ステップS7751では、画像描画部122は、色変換インジケータがNo、すなわちRL復号部121で色変換処理を実行しない設定である場合には、必要に応じてDCPノードの色変換処理を実行する。ステップS7752では、画像描画部122は、スケールSHに基づいて各画素を左側から順に水平方向にコピー又はスキップしてスケーリング(拡大又は縮小)する。
【0083】
ステップS7753では、スケールSHに基づいてスケーリングされた画素にDCPノードの色情報を格納してワンラインバッファOLBにコピーする。このように、RL復号部121は、第1の方向、すなわち画素ラインの左側から順に全てのDCPノード及びRCPノードを連結してワンラインバッファOLBにコピーする(ステップS7760)。
【0084】
図18は、一実施形態に係る画像描画処理の内容を表す概略図である。この例では、スケールSH及びスケールSVは、いずれも2である。第1の画素ラインL1は、DCPノードL11に基づいて再現される。DCPノードL11は、第1の画素ラインL1の全画素の色情報を指定する長さ20のノードである。画像描画部122は、スケールSHに基づき、各画素を水平方向に1回コピーし、40画素の画素ラインを形成し、ワンラインバッファOLBにコピーする。
【0085】
第1の画素ラインL1はDCPノードL11のみで構成されているので、画像描画部122は、処理をステップS7770に進める(S7760)。ステップS7770では、画像描画部122は、ページバッファコピー処理を実行する。ページバッファコピー処理では、画像描画部122は、画像の上から順に、すなわち先ず第1の画素ラインL1を選択し、スケールSVに基づき、ワンラインバッファOLB内の画素ラインをページバッファPB内で垂直方向に各2回コピーし、2つの画素ラインRD1,RD2を形成する。
【0086】
図19は、一実施形態に係る画像描画処理の内容を表す概略図である。第2の画素ラインL2は、DCPノードL21に基づいて第1の画素ラインL1と同様にページバッファPB内に2回コピーし、2つの画素ラインRD3,RD4を形成する。第3の画素ラインL3は、DCPノードL31、RCPノードL32、RCPノードL33及びDCPノードL34に基づいて第1の画素ラインL1と同様にページバッファPBに2回コピーし、2つの画素ラインRD5,RD6を形成する。画像描画部122は、全ての画素ラインの処理が完了すると、処理をステップS7900に進める(ステップS7780)。
【0087】
ステップS7900では、画像出力部124は、ページバッファPB内にコピーされた画像データに対してハーフトーン処理を実行してトナードットの形成状態を表すドットデータを生成し、ドットデータに基づいて印刷媒体上に画像を形成する。
【0088】
図20は、一実施形態に係る180度回転高速RL描画処理の概要を示す説明図である。ステップS8000では、画像描画部122は、180度回転高速RL描画処理(RL描画処理とも呼ばれる。)を実行する。180度回転RL描画処理は、画像を復号して第2の中間コードを生成する画像復号処理(ステップS8100)と、復号された画像である復号画像を描画する復号画像描画処理(ステップS8700:第2の描画処理)とが非回転高速RL描画処理(第1の描画処理)と相違する。なお、平均連続数の閾値(第2の閾値とも呼ばれる。)は、処理の構成が実質的に同一なので、第1の閾値と同一でも良い。
【0089】
図21は、RL符号化画像RLD3の画像ノードが生成される様子を示している。
図21(a)は、RL符号化画像RLD3を示している。
図21(b)は、第1の画素ラインL1用の単一のDCPノードL15を示している。180度回転高速RL描画処理は、ノード生成時の部分画像Pの取得順序が画素ライン毎に逆方向となっている点で非回転高速RL描画処理と相違する。
【0090】
180度回転高速RL描画処理では、RL復号部121は、第1の画素ラインL1においては、部分画像L15、部分画像L14、部分画像L13、部分画像L12及び部分画像L11の順(非回転高速RL描画処理(第1の方向とも呼ばれる。)とは逆順)に選択して部分画像結合処理(ステップS7350)を実行する。具体的には、第1の画素ラインL1及び第2の画素ラインL2は、それぞれ
図21(b)及び
図21(c)に示されるように画素の順序が水平方向に左右逆となっている。
【0091】
図22は、第3の画素ラインL3に係る画像ノード生成処理の内容の一例を表す模式図である。第3の画素ラインL3の処理では、RL復号部121は、第1に部分画像L35を取得してDCPノードL35を生成する(ステップS7353)。DCPノードL35は、「R」及び「S」の色情報を有する2つの画素を規定している(
図22(a)参照)。描画処理では、「R」及び「S」の色情報は、非回転高速RL描画処理とは逆順に読み取られることになる。すなわち、描画処理では、第3の画素ラインL3は、左の画素から順に「S」と「R」の色情報を有することになる。
【0092】
第2にRL復号部121は、部分画像L34を取得してDCPノードL35のバッファを延長し、部分画像L34の色情報をDCPノードL35に格納する(ステップS7354)。描画処理では、非回転高速RL描画処理とは逆順に読み取られるので、バッファの延長方向も逆方向(右側から左側)となる。これにより、DCPノードL35は、「P」、「Q」、「R」及び「S」の色情報を有する4つの画素を規定するものとなる(
図22(b)参照)。
【0093】
第3にRL復号部121は、部分画像L33を取得してRCPノードL33を生成する(ステップS7356)。RCPノードL33は、「E」の色情報を有する3つの画素を規定している。第4にRL復号部121は、部分画像L32を取得してRCPノードL32のカウント/長さフィールドの値(3)を、RCPノードL32のカウント/長さフィールドの値(3)に加算して和(6)とする(
図22(c)参照)。
【0094】
第5にRL復号部121は、部分画像L31を取得してDCPノードL31を生成する(ステップS7357)。DCPノードL35は、「A」及び「B」の色情報を有する2つの画素を規定している。
【0095】
図23は、一実施形態に係る180度回転復号画像描画処理(ステップS7700a)の内容を示すフローチャートである。
図24は、一実施形態に係る画像描画処理の内容を表す概略図である。180度回転復号画像描画処理は、水平スケーリング処理(ステップS7752a)、ワンラインバッファ格納処理(ステップS7753a)及びページバッファコピー処理(ステップS7770a)が非回転復号画像描画処理の処理を相違する。
【0096】
水平スケーリング処理(ステップS7752a)では、画像描画部122は、スケールSHに基づいて各画素を右側から順に、すなわち非回転復号画像描画処理での水平スケーリング処理(ステップS7752)の方向(第1の方向とも呼ばれる。)とは逆順に、水平方向にコピー又はスキップしてスケーリング(拡大又は縮小)する。
【0097】
ワンラインバッファ格納処理(ステップS7753a)では、RL復号部121は、画素ラインの右側から順に、すなわち非回転復号画像描画処理でのワンラインバッファ格納処理(ステップS7753)とは逆順に、全てのDCPノード及びRCPノードを連結してワンラインバッファOLBにコピーする(ステップS7760)。
【0098】
ページバッファコピー処理(ステップS7770a)では、画像描画部122は、画像の下から順に、すなわち非回転復号画像描画処理でのワンラインバッファ格納処理(ステップS7753)での方向(第2の方向とも呼ばれる。)とは逆順(第3の画素ラインL3、第2の画素ラインL2及び第1の画素ラインL1)に選択する。画像描画部122は、最初に第3の画素ラインL3を選択し、スケールSV(2)に基づき、ワンラインバッファOLB内の画素ラインをページバッファPB内で垂直方向に2回コピーし、2つの画素ラインRD1,RD2を形成する(
図24参照)。
【0099】
図25は、一実施形態に係る画像描画処理の内容を表す概略図である。画像描画部122は、次に第2の画素ラインL2を選択し、ワンラインバッファOLB内の画素ラインをページバッファPB内で垂直方向に2回コピーし、2つの画素ラインRD3,RD4を形成する。画像描画部122は、最後に第1の画素ラインL1を選択し、ワンラインバッファOLB内の画素ラインをページバッファPB内で垂直方向に2回コピーし、2つの画素ラインRD5,RD6を形成する。
【0100】
このように、本実施形態に係る画像形成装置100は、描画処理装置として機能し、非回転の復号処理と非回転の画像描画処理の処理方向を逆転(反対の方向とする)させるだけで、画像の180度回転処理を実行することなく180度回転の画像描画処理実現させることができる。
【0101】
本発明は、さらに他の中間コード(DCPノード及びRCPノード)を導入することによって差分圧縮画像データを効率的に処理する。この新しい中間コードは、効率的にノード数を削減してハードウェア資源を効率的に使用することができる。
【0102】
B.変形例:
本発明は、上記各実施形態だけでなく、以下のような変形例でも実施することができる。
【0103】
上記実施形態では、平均連続数閾値を予め設定していたが、画像処理用に使用可能なメモリ領域のサイズやCPUの処理能力を含むハードウェア資源に基づいて比率を自動的または半自動的に変更してもよい。
【符号の説明】
【0104】
100 画像形成装置
110,210 制御部
120 画像形成部
121 RL復号部
122 画像描画部
123 画像処理部
124 画像出力部
130,230 操作表示部
131,231 ディスプレイ
132,232 操作処理部
140,240 記憶部
150,250 通信インターフェース部
200 パーソナルコンピュータ
220 RL符号化部