(57)【要約】【課題】回転の対象となっている画像に適用可能な高速ランレングス圧縮描画処理を実現する。【解決手段】描画処理装置は、差分圧縮方式で符号化された画像データを復号し、角度データが１８０度回転を示しているときにおいて、第１の特定部分と直後の第２の特定部分の双方が同一タイプであるとの判定が肯定的な場合には、双方の色情報を角度データが非回転を示しているときとは逆方向に連結して生成して中間コードを生成し、複数の中間コードを角度データが非回転を示しているときとは逆方向に連結して画素ラインを形成し、複数の画素ラインを角度データが非回転を示しているときは逆方向に連結して画像を描画する。【選択図】図１
2020203432.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述されたＰＤＬデータを解析し、複数の画素の色情報を含む少なくとも１つの第１のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも１つの第２のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第２の特定部分と、第２の特定部分の直前に先行する第１の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するＰＤＬ解析部と、
前記角度データが非回転を示しているときには第１の中間コードを生成し、前記角度データが１８０度回転を示しているときには第２の中間コードを生成する中間コード生成部と、
前記角度データが非回転を示しているときには第１の描画処理を実行し、前記角度データが１８０度回転を示しているときには第２の描画処理を実行する画像描画部と、
を備え、
前記第１の中間コードは、第１のタイプのノードと第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が第１の方向に連結されて前記画素ラインを構成し、
前記第１のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを第１の方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、
前記第２のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、
前記第２の中間コードは、前記第１のタイプのノードと前記第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が前記第１の方向と逆方向に連結されて前記画素ラインを構成し、
前記第１のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを前記第１の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、
前記第２のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、
前記第１の描画処理は、前記第１の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向に連結して前記画像データによって表される画像を描画し、
前記第２の描画処理は、前記第２の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向と逆方向に連結して前記画像データによって表される画像を描画する描画処理装置。
【請求項２】
請求項１記載の描画処理装置であって、
前記第１の中間コードは、前記第２のタイプの部分画像の反復数の前記画素ライン毎の平均値が第１の閾値よりも小さいとの判定に応じて、前記画素ラインを構成する単一の前記第１のタイプのノードとして生成され、
前記第２の中間コードは、前記平均値が第２の閾値よりも小さいとの判定に応じて、前記画素ラインを構成する単一の前記第１のタイプのノードとして生成される描画処理装置。
【請求項３】
請求項２記載の描画処理装置であって、
前記画像データは、処理対象である処理対象画素ラインと、前記画素ラインの直前に先行する先行画素ラインとを含み、
前記第１の中間コードは、前記先行画素ラインにおける前記平均値が前記第１の閾値よりも小さいとの判定に応じて、前記処理対象画素ラインを構成する前記単一の第１のタイプのノードとして生成され、
前記第２の中間コードは、前記平均値が前記第２の閾値よりも小さいとの判定に応じて、前記処理対象画素ラインを構成する前記単一の第１のタイプのノードとして生成される描画処理装置。
【請求項４】
請求項３記載の描画処理装置であって、
前記第１の閾値は、前記第２の閾値と同一の値を有している描画処理装置。
【請求項５】
ページ記述言語で記述されたＰＤＬデータを解析し、複数の画素の色情報を含む少なくとも１つの第１のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも１つの第２のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第２の特定部分と、第２の特定部分の直前に先行する第１の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するＰＤＬ解析工程と、
前記角度データが非回転を示しているときには第１の中間コードを生成し、前記角度データが１８０度回転を示しているときには第２の中間コードを生成する中間コード生成工程と、
前記角度データが非回転を示しているときには第１の描画処理を実行し、前記角度データが１８０度回転を示しているときには第２の描画処理を実行する画像描画工程と、
を備え、
前記第１の中間コードは、第１のタイプのノードと第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が第１の方向に連結されて前記画素ラインを構成し、
前記第１のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを第１の方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、
前記第２のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、
前記第２の中間コードは、前記第１のタイプのノードと前記第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が前記第１の方向と逆方向に連結されて前記画素ラインを構成し、
前記第１のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを前記第１の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、
前記第２のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、
前記第１の描画処理は、前記第１の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向に連結して前記画像データによって表される画像を描画し、
前記第２の描画処理は、前記第２の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向と逆方向に連結して前記画像データによって表される画像を描画する描画処理方法。
【請求項６】
ページ記述言語で記述されたＰＤＬデータを解析し、複数の画素の色情報を含む少なくとも１つの第１のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも１つの第２のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第２の特定部分と、第２の特定部分の直前に先行する第１の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するＰＤＬ解析部、
前記角度データが非回転を示しているときには第１の中間コードを生成し、前記角度データが１８０度回転を示しているときには第２の中間コードを生成する中間コード生成部、及び
前記角度データが非回転を示しているときには第１の描画処理を実行し、前記角度データが１８０度回転を示しているときには第２の描画処理を実行する画像描画部として描画処理装置を機能させ、
前記第１の中間コードは、第１のタイプのノードと第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が第１の方向に連結されて前記画素ラインを構成し、
前記第１のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを第１の方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、
前記第２のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、
前記第２の中間コードは、前記第１のタイプのノードと前記第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が前記第１の方向と逆方向に連結されて前記画素ラインを構成し、
前記第１のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを前記第１の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、
前記第２のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、
前記第１の描画処理は、前記第１の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向に連結して前記画像データによって表される画像を描画し、
前記第２の描画処理は、前記第２の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向と逆方向に連結して前記画像データによって表される画像を描画する描画処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画処理装置、描画処理方法及び描画処理プログラムに関し、特に画像データの連長圧縮技術（ランレングス圧縮技術とも呼ばれる。）の高速化技術に関する。
【背景技術】
【０００２】
画像形成装置（たとえばプリンター、多機能プリンター、又は複合機（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ））は、大きなメモリ領域を使用して高解像度で画像を処理する。メモリ領域は、各ページの印刷ジョブを複数のバンドに分割した後に中間コードに変換することによって節約される。中間コードは、メモリ領域に記憶される一方、記憶された中間コードをビットマップ画像にラスタライズすることによってページ毎に印刷を実行する。中間コードの生成方法として、たとえば特許文献１において、本願発明者は、非回転の画像に適用可能な非回転高速ランレングス描画処理（ＦＡＳＴ  ＤＲＡＷＩＮＧ  ＯＦ  ＵＮＲＯＴＡＴＥＤ  ＲＵＮ−ＬＥＮＧＴＨ  ＥＮＣＯＤＥＤ  ＩＭＡＧＥＳ）を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９７１０２０４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明者は、さらに研究を進め、ページ記述言語で記述されている印刷ジョブに含まれている画像に適用可能な高速ランレングス圧縮描画処理を創作した。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、回転の対象となっている画像に適用可能な高速ランレングス圧縮描画処理を実現するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の描画処理装置は、ページ記述言語で記述されたＰＤＬデータを解析し、複数の画素の色情報を含む少なくとも１つの第１のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも１つの第２のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第２の特定部分と、第２の特定部分の直前に先行する第１の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するＰＤＬ解析部と、前記角度データが非回転を示しているときには第１の中間コードを生成し、前記角度データが１８０度回転を示しているときには第２の中間コードを生成する中間コード生成部と、前記角度データが非回転を示しているときには第１の描画処理を実行し、前記角度データが１８０度回転を示しているときには第２の描画処理を実行する画像描画部とを備え、前記第１の中間コードは、第１のタイプのノードと第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が第１の方向に連結されて前記画素ラインを構成し、前記第１のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを第１の方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、前記第２のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、前記第２の中間コードは、前記第１のタイプのノードと前記第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が前記第１の方向と逆方向に連結されて前記画素ラインを構成し、前記第１のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを前記第１の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、前記第２のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、前記第１の描画処理は、前記第１の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向に連結して前記画像データによって表される画像を描画し、前記第２の描画処理は、前記第２の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向と逆方向に連結して前記画像データによって表される画像を描画する。
【０００７】
本発明の描画処理方法は、ページ記述言語で記述されたＰＤＬデータを解析し、複数の画素の色情報を含む少なくとも１つの第１のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも１つの第２のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第２の特定部分と、第２の特定部分の直前に先行する第１の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するＰＤＬ解析工程と、前記角度データが非回転を示しているときには第１の中間コードを生成し、前記角度データが１８０度回転を示しているときには第２の中間コードを生成する中間コード生成工程と、前記角度データが非回転を示しているときには第１の描画処理を実行し、前記角度データが１８０度回転を示しているときには第２の描画処理を実行する画像描画工程とを備え、前記第１の中間コードは、第１のタイプのノードと第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が第１の方向に連結されて前記画素ラインを構成し、前記第１のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを第１の方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、前記第２のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、前記第２の中間コードは、前記第１のタイプのノードと前記第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が前記第１の方向と逆方向に連結されて前記画素ラインを構成し、前記第１のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを前記第１の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、前記第２のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、前記第１の描画処理は、前記第１の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向に連結して前記画像データによって表される画像を描画し、前記第２の描画処理は、前記第２の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向と逆方向に連結して前記画像データによって表される画像を描画する。
【０００８】
本発明は、描画処理装置を制御するための描画処理プログラムを提供する。前記描画処理プログラムは、ページ記述言語で記述されたＰＤＬデータを解析し、複数の画素の色情報を含む少なくとも１つの第１のタイプの部分画像と、単一の画素の色情報と反復数とを含む少なくとも１つの第２のタイプの部分画像とを含む複数の部分画像を有し、前記複数の部分画像を構成する画素ラインの少なくとも一部が第２の特定部分と、第２の特定部分の直前に先行する第１の特定部分とを有している画像データと、前記画像データの回転角度を表す角度データとを取得するＰＤＬ解析部、前記角度データが非回転を示しているときには第１の中間コードを生成し、前記角度データが１８０度回転を示しているときには第２の中間コードを生成する中間コード生成部、及び前記角度データが非回転を示しているときには第１の描画処理を実行し、前記角度データが１８０度回転を示しているときには第２の描画処理を実行する画像描画部として描画処理装置を機能させ、前記第１の中間コードは、第１のタイプのノードと第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が第１の方向に連結されて前記画素ラインを構成し、前記第１のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを第１の方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、前記第２のタイプのノードは、前記角度データが非回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、前記第２の中間コードは、前記第１のタイプのノードと前記第２のタイプのノードとを含み、前記第１のタイプのノードと前記第２のタイプのノードの少なくとも一方が前記第１の方向と逆方向に連結されて前記画素ラインを構成し、前記第１のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第１のタイプであるとの判定が肯定的な場合に前記第１の特定部分の色情報と前記第２の特定部分の色情報とを前記第１の方向と逆方向に結合して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報を使用して生成され、前記第２のタイプのノードは、前記角度データが１８０度回転を示しているときには前記第１の特定部分と前記第２の特定部分の双方が前記第２のタイプであって前記双方の色情報が一致するとの判定が肯定的な場合に前記単一の画素の色情報と前記双方の反復数の和とを使用して生成され、前記判定が否定的な場合に前記第２の特定部分の色情報と反復数とを使用して生成され、前記第１の描画処理は、前記第１の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向に連結して前記画像データによって表される画像を描画し、前記第２の描画処理は、前記第２の中間コードを使用して前記画素ラインを生成し、前記画素ラインを第２の方向と逆方向に連結して前記画像データによって表される画像を描画する。
【発明の効果】
【０００９】
本発明によれば、回転の対象となっている画像に適用可能な高速ランレングス圧縮描画処理を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る画像形成システム１０の機能構成を示すブロック図である。
【図２】一実施形態に係るレンダリング処理の内容を示すフローチャートである。
【図３】ＲＵＮ−ＬＥＮＧＴＨ符号化画像ＲＬＤ１の一例を表す模式図である。
【図４】一実施形態に係る非回転高速ＲＬ描画処理の概要を示す説明図である。
【図５】典型的な画像ノード生成処理の内容の一例を表す模式図である。
【図６】一実施形態に係る画像復号処理の一例を示すフローチャートである。
【図７】一実施形態に係る画像ノード生成の内容を示すフローチャートである。
【図８】一実施形態に係る第１の画像ノード生成処理の内容を示すフローチャートである。
【図９】一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。
【図１０】一実施形態に係る部分画像結合処理の内容を示すフローチャートである。
【図１１】一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。
【図１２】一実施形態に係る第２の画像ノード生成処理の内容を示すフローチャートである。
【図１３】ＲＬ符号化画像ＲＬＤ２の画像ノードが生成される様子を示している。
【図１４】一実施形態に係る平均連続数更新処理の内容を示すフローチャートである。
【図１５】第３の画素ラインＬ３に係る画像ノード生成処理の内容の一例を表す模式図である。
【図１６】一実施形態に係る非回転復号画像描画処理（ステップＳ７７００）の内容を示すフローチャートである。
【図１７】一実施形態に係る画像描画処理の内容を表す概略図である。
【図１８】一実施形態に係る画像描画処理の内容を表す概略図である。
【図１９】一実施形態に係る画像描画処理の内容を表す概略図である。
【図２０】一実施形態に係る１８０度回転高速ＲＬ描画処理の概要を示す説明図である。
【図２１】ＲＬ符号化画像ＲＬＤ３の画像ノードが生成される様子を示している。
【図２２】第３の画素ラインＬ３に係る画像ノード生成処理の内容の一例を表す模式図である。
【図２３】一実施形態に係る１８０度回転復号画像描画処理の内容を示すフローチャートである。
【図２４】一実施形態に係る画像描画処理の内容を表す概略図である。
【図２５】一実施形態に係る画像描画処理の内容を表す概略図である。
【発明を実施するための形態】
【００１１】
Ａ．実施形態：
以下、本発明を実施するための形態（以下、「実施形態」という）を、図面を参照して説明する。
【００１２】
図１は、本発明の一実施形態に係る画像形成システム１０の機能構成を示すブロック図である。画像形成システム１０は、画像形成装置１００とパーソナルコンピュータ２００とを備える。パーソナルコンピュータ２００は、ネットワーク（この例ではＬＡＮ）を介して画像形成装置１００と接続されている。
【００１３】
画像形成装置１００は、制御部１１０と、画像形成部１２０と、操作表示部１３０と、記憶部１４０と、通信インターフェース部１５０とを備える。パーソナルコンピュータ２００は、制御部２１０と、ＲＬ符号化部２２０と、操作表示部２３０と、記憶部２４０と、通信インターフェース部２５０とを備える。
【００１４】
パーソナルコンピュータ２００のＲＬ符号化部２２０は、ＲＬ符号化を用いてＲＧＢ画像データを符号化し、符号化画像データを生成する。ＲＧＢ画像データは、単に画像データとも呼ばれ、２次元的に配列された複数の画素を示すＲＧＢの各色のビットマップ（ピクセルマップとも呼ばれる。）データである。制御部２１０は、符号化画像データを使用してＰＤＬデータを生成し、ＰＤＬデータを格納する印刷ジョブを生成する。
【００１５】
通信インターフェース部１５０と通信インターフェース部２５０とは、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルを用いて通信する。画像形成装置１００は、通信インターフェース部１５０と通信インターフェース部２５０とを介してパーソナルコンピュータ２００から印刷ジョブを受信する。
【００１６】
制御部１１０は、ＰＤＬ解析部１１１を有している。ＰＤＬ解析部１１１は、ＰＤＬ解析処理を実行し、ＰＤＬデータを含む印刷ジョブの受信に応じて、ページ記述言語で記述されたＰＤＬデータを解析する。これにより、制御部１０は、ＰＤＬデータに含まれるテキスト（文字）やイメージ、ベクターグラフィックス、ソフトマスクといったオブジェクトを抽出し、２５６階調のＲＧＢ画像データやフィルタ（制御データ）を生成することができる。この例では、オブジェクトは、符号化画像データを含んでいる。
【００１７】
画像形成部１２０は、ＲＬ復号部１２１、画像描画部１２２、画像処理部１２３及び画像出力部１２４を有している。ＲＬ復号部１２１は、逆ＲＬ符号化によって符号化画像データを復号する。画像描画部１２２は、復号された画像データに対して画像描画処理を実行して画像のビットマップデータを生成する。画像処理部１２３は、印刷設定に従ってスキャンデータを処理する。画像出力部１２４は、復号された印刷データに基づいて印刷媒体に画像を印刷する。ＲＬ復号部１２１は、中間コード生成部とも呼ばれる。
【００１８】
画像形成装置１００の操作表示部１３０は、ディスプレイ１３１と操作処理部１３２とを有している。パーソナルコンピュータ２００の操作表示部２３０は、ディスプレイ２３１と操作処理部２３２と有している。ディスプレイ１３１は、タッチパネルとして機能し、操作入力画面として各種メニューを表示する。操作処理部１３２，２３２は、タッチパネルとして機能するディスプレイ１３１や、図示しない各種ボタンやスイッチ等を介してユーザーの操作入力を受け付ける。
【００１９】
制御部１１０，２１０は、ＲＡＭやＲＯＭ等の主記憶装置、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の制御装置を有している。制御部１１０，２１０は、各種Ｉ／Ｏ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、バス、その他のハードウェアなどのインターフェースに関する制御機能を備え、画像形成装置１００全体およびパーソナルコンピュータ２００全体を制御する。
【００２０】
記憶部１４０，２４０は、ハードディスクドライブやフラッシュメモリーなどの非一時的な記録媒体であり、制御プログラム（描画処理プログラムを含む。）や制御部１１０，２１０が実行する処理のデータなどをそれぞれ記憶する。
【００２１】
図２は、一実施形態に係るレンダリング処理の内容を示すフローチャートである。レンダリング処理は、パーソナルコンピュータ２００からの印刷ジョブの受信に応じて画像形成装置１００において起動される。印刷ジョブの受信は、通信インターフェース部２５０及び通信インターフェース部１５０を介して実行される。印刷ジョブには、ＰＤＬデータが含まれている。
【００２２】
ステップＳ１０００では、画像形成装置１００が有する制御部１１０のＰＤＬ解析部１１１は、ＰＤＬ解析処理を実行し、ページ記述言語で記述されたＰＤＬデータを解析する。この例では、ＰＤＬ解析部１１１は、ＰＤＬデータから描画オブジェクトと、描画オブジェクトの描画方向、すなわち印刷媒体上における画像の向き（指定方向）を指定している方向指定データとを取得する。方向指定データは、角度データとも呼ばれ、たとえば非回転（０度）、時計方向９０度、１８０度及び２７０度の回転角度を指定している。この例では、描画オブジェクトには、符号化画像データが含まれている。
【００２３】
ステップＳ２０００では、画像形成部１２０は、描画オブジェクトを解析し、受信した描画オブジェクトがＲＧＢやＣＭＹＫといった各画素の画素値を含んでいる画像オブジェクトであるか否かを判定する。受信した描画オブジェクトがテキストやベクターデータ等でなく画像オブジェクトであると判定された場合、画像形成部１２０は、処理をステップＳ４０００に進める。画像形成部１２０は、受信した描画オブジェクトがテキストやベクトルデータ等の画像オブジェクト以外のオブジェクトであると判断した場合、処理をステップＳ３０００に進める。
【００２４】
ステップＳ３０００では、画像形成部１２０は、通常の描画処理により描画オブジェクトを描画する。通常の描画処理は、たとえば後述の非回転高速ＲＬ描画処理（ステップＳ７０００）や１８０度回転高速ＲＬ描画処理（ステップＳ８０００）を含まない描画処理である。
【００２５】
ステップＳ４０００では、画像描画部１２２は、画像オブジェクトを解析し、画像オブジェクトがＲＬ符号化により圧縮されている符号化画像データであるか否かを判定する。画像オブジェクトがＲＬ符号化により圧縮されていると判定された場合、画像形成部１２０は、処理をステップＳ５０００に進める。画像オブジェクトがＲＬ符号化により圧縮されていない場合、画像形成部１２０は、画像形成部１２０は、通常の画像描画処理により画像オブジェクトを描画する（ステップＳ３０００）。
【００２６】
図３は、ＲＵＮ−ＬＥＮＧＴＨ符号化画像（ＲＬ符号化画像とも呼ばれる。）の一例を表す模式図である。ＲＬ符号化画像ＲＬＤ１は、パーソナルコンピュータ２００において、ＲＬ符号化処理によって元画像ＣＩが圧縮された画像である。画素内のアルファベットは、ピクセルの各色を意味している。同一のアルファベットは、同一色を表している。第１乃至第４列目の画素には、それぞれ「Ａ」、「Ｂ」、「Ｃ」及び「Ｄ」のアルファベットが含まれている。
【００２７】
ＲＬ符号化処理は、連続する同一データをデータ１つ分と連続した長さとで表して圧縮する可逆圧縮方法である。この例では、元画像ＣＩは、ＲＬ符号化画像ＲＬＤ１にランレングス圧縮（連長圧縮とも呼ばれる。）されている。ＲＬ符号化画像ＲＬＤ１では、たとえば画像のラインＬ１は、４個の部分画像Ｌ１１乃至Ｌ１４に分割され、圧縮されている。
【００２８】
部分画像Ｌ１１及びＬ１４は、直接色部分ＤＣＰとも呼ばれ、各要素に色情報を格納している。部分画像Ｌ１２及びＬ１３は、反復色部分ＲＣＰとも呼ばれ、第１の要素に色情報を格納し、第２の要素に反復数（連続数とも呼ばれる。）を格納している。これにより、部分画像Ｌ１２は、２要素で４画素の色情報を格納し、部分画像Ｌ１３は、２要素で１０画素の色情報を格納することができる。この結果、ＲＬ符号化処理は、データ量を削減することができる。
【００２９】
ＲＬ符号化処理には、データが連続していないと、符号化後のデータが元のデータより膨らんでしまうという欠点がある。このような欠点を回避するために、たとえばＳｗｉｔｃｈｅｄ  Ｒｕｎ  Ｌｅｎｇｔｈ符号化方式（ＳＲＬ符号化方式とも呼ばれる。）も提案されている。ＳＲＬ符号化方式は、コードの変わり目で連続データとして扱うか非連続データとして扱うかを交互に切り替えていく方法である。ただし、ＳＲＬ符号化方式は、表現可能な最大連続数が２５６個に制限される。
【００３０】
ステップＳ５０００では、画像描画部１２２は、方向指定データに基づいて、画像が描画ページの向きと同一の方向、すなわち非回転であるか否かを判断する。画像の向きが同じである場合、画像形成部１２０は、処理をステップＳ７０００に進める。画像の向きが同じでない場合、画像形成部１２０は、処理をステップＳ６０００に進める。
【００３１】
ステップＳ６０００では、画像描画部１２２は、方向指定データに基づいて、画像の指定方向が１８０度回転、すなわち上下左右反転であるか否かを判断する。１８０度回転である場合、画像形成部１２０は、処理をステップＳ８０００に進める。１８０度回転でない場合、画像形成部１２０は、通常の画像描画処理により画像オブジェクトを描画する（ステップＳ３０００）。
【００３２】
図４は、一実施形態に係る非回転高速ＲＬ描画処理の概要を示す説明図である。図４（ａ）は、非回転高速ＲＬ描画処理の内容を示すフローチャートである。ステップＳ７０００では、画像描画部１２２は、高速ＲＬ描画処理（ＲＬ描画処理とも呼ばれる。）を実行する。非回転ＲＬ描画処理は、画像を復号して中間コード（画像ノード）を生成する画像復号処理（ステップＳ７１００）と、復号された画像である復号画像を描画する復号画像描画処理（ステップＳ７７００）と、画像出力処理（ステップＳ７９００）とを含んでいる。
【００３３】
図４（ｂ）は、非回転高速ＲＬ描画処理のデータフローを示している。非回転高速ＲＬ描画処理では、画像形成部１２０のＲＬ復号部１２１は、パーソナルコンピュータ２００のＲＬ符号化部２２０で圧縮されたＲＬ符号化画像ＲＬＤ１を受信する。ＲＬ符号化画像ＲＬＤ１には、複数の直接色部分ＤＣＰと複数の反復色部分ＲＣＰとが含まれている。ＲＬ復号部１２１は、直接色部分ＤＣＰと反復色部分ＲＣＰとからそれぞれ直接色ノードＤＣＰｎと反復色ノードＲＣＰｎとを生成し、画像描画部１２２に送信する。画像描画部１２２は、複数の直接色ノードＤＣＰｎと複数の反復色ノードＲＣＰｎとを使用して描画画像ＤＩを生成する。直接色ノードＤＣＰｎ及び反復色ノードＲＣＰｎは、第１の中間コードとも呼ばれる。
【００３４】
図５は、典型的な画像ノード生成処理の内容の一例を表す模式図である。図５では、ＲＬ復号部１２１は、ＲＬ符号化画像ＲＬＤ１の画素ラインＬ１を構成する４個の部分画像Ｌ１１乃至Ｌ１４に対して、直接色部分ＤＣＰ及び反復色部分ＲＣＰを直接色ノードＤＣＰｎ及び反復色ノードＲＣＰｎに変換している。
【００３５】
画像ノードは、タイプフィールド（タイプとも呼ばれる。）、反復数／長さフィールド（カウント数／長さとも呼ばれる。）、ノードポインタフィールド及び色情報ポインタフィールドを有している。タイプフィールドは、画像ノードのタイプを示している。タイプフィールドは、たとえば直接色ノードＤＣＰｎ又は反復色ノードＲＣＰｎを示している。反復数／長さフィールドは、反復色ノードＲＣＰｎの画素の反復数又は直接色ノードＤＣＰｎの画素数（画素幅）を示している。ノードポインタフィールドは、画素ライン内の次のノードを示している。直接色ノードＤＣＰｎの色情報ポインタフィールドは、複数の画素の色情報（たとえばＲＧＢデータやＣＭＹＫデータ）を示している。反復色ノードＲＣＰｎの色情報ポインタフィールドは、単一の画素の色情報（たとえばＲＧＢデータやＣＭＹＫデータ）を示している。
【００３６】
具体的には、ＲＬ復号部１２１は、直接色部分ＤＣＰである部分画像Ｌ１１（ＤＣＰ＿Ｌ１１）をＬ１１ノードに変換している。たとえばＬ１１ノードは、タイプフィールドがＤＣＰなので直接色ノードＤＣＰｎを示し、反復数／長さフィールドの値が３なので画素数３を示し、ノードポインタフィールドがＬ１２ノードを示し、そして色情報ポインタが色情報Ａ、色情報Ｂ及び色情報Ｃの３画素分の色情報を示している。タイプフィールドがＤＣＰのノードは、第１のタイプであることを示している。タイプフィールドがＲＣＰのノードは、第２のタイプであることを示している。
【００３７】
図６は、一実施形態に係る画像復号処理（ステップＳ７１００）の一例を示すフローチャートである。ステップＳ７１１０では、ＲＬ復号部１２１は、パラメータ入力処理を実行する。パラメータ入力処理では、ＲＬ復号部１２１は、平均連続数インジケータとスケールＳとを入力する。平均連続数インジケータは、レンダリング処理に平均連続数を使用するか否かを示し、たとえばユーザー入力によって設定される。スケールＳは、入力画像に対する出力画像のサイズ比である。サイズ比は、１より大きい場合には拡大を示し、１未満の場合には縮小を示している。スケールＳは、水平方向のスケールＳＨと垂直方向のスケールＳＨと含んでいる。
【００３８】
ステップＳ７１２０では、ＲＬ復号部１２１は、スケールＳが１未満、すなわち縮小であるか否かを判断する。ＲＬ復号部１２１は、縮小である場合には処理をステップＳ７１７０に進め、拡大である場合には処理をステップＳ７１３０に進める。
【００３９】
ステップＳ７１３０では、ＲＬ復号部１２１は、画像バッファＩＢ割当試行処理を実行する。画像バッファＩＢ割当試行処理では、ＲＬ復号部１２１は、拡大された出力画像サイズを想定し、色変換後の画像データサイズを推定して画像バッファＩＢの割当を試行する。
【００４０】
ステップＳ７１４０では、ＲＬ復号部１２１は、画像バッファＩＢの割当が可能であるか否かを判断する。ＲＬ復号部１２１は、可能であると判断した場合には処理をステップＳ７１５０に進め、可能でないと判断した場合には処理をステップＳ７１７０に進める。
【００４１】
ステップＳ７１５０では、ＲＬ復号部１２１は、ＲＬ復号部１２１によって色変換処理を実行するか否かを表す色変換インジケータをＹｅｓ（色変換有り）に設定する。ステップＳ７１６０では、ＲＬ復号部１２１は、画像バッファＩＢを割り当てるか否かを表す画像バッファインジケータをＹｅｓ（割当有り）に設定する。一方、ステップＳ７１７０では、ＲＬ復号部１２１は、色変換インジケータをＮｏ（色変換無し）に設定する。
【００４２】
ステップＳ７１８０では、ＲＬ復号部１２１は、入力画像サイズを想定して画像バッファＩＢ割当試行処理を実行する。画像バッファＩＢ割当試行処理では、ＲＬ復号部１２１は、入力画像サイズを想定し、色変換前の画像データサイズを推定して画像バッファＩＢの割当を試行する。
【００４３】
ステップＳ７１９０では、ＲＬ復号部１２１は、画像バッファＩＢの割当が可能であるか否かを判断する。ＲＬ復号部１２１は、可能であると判断した場合には処理をステップＳ７１６０に進めてＲＬ復号部１２１によって画像バッファインジケータをＹｅｓに設定し、可能でないと判断した場合には処理をステップＳ７１９５に進めて画像バッファインジケータをＮｏに設定する（ステップＳ７１９５）。
【００４４】
図７は、一実施形態に係るノード生成処理（ステップＳ７２００）の内容を示すフローチャートである。ステップＳ７２１０では、ＲＬ復号部１２１は、インジケータ入力処理を実行する。インジケータ入力処理では、ＲＬ復号部１２１は、画像バッファ割当インジケータと、平均連続数インジケータと、色変換インジケータとを入力する。
【００４５】
ステップＳ７２２０では、ＲＬ復号部１２１は、画像バッファ割当インジケータに基づいてバッファ割当が可能であるか否かを判断する。ＲＬ復号部１２１は、可能であると判断した場合には処理をステップＳ７２３０に進め、可能でないと判断した場合には処理をステップＳ７２４０に進める。
【００４６】
ステップＳ７２３０では、ＲＬ復号部１２１は、復号処理のために画像バッファＩＢを割り当てる。ステップＳ７２４０では、ＲＬ復号部１２１は、復号処理のためにシステムバッファ（たとえばヒープ領域）を割り当てる。
【００４７】
ステップＳ７２５０では、ＲＬ復号部１２１は、平均連続数インジケータに基づいて平均連続数を使用するか否かを判断する。ＲＬ復号部１２１は、使用と判断した場合には処理をステップＳ７４００に進め、不使用と判断した場合には処理をステップＳ７３００に進める。
【００４８】
ステップＳ７３００では、ＲＬ復号部１２１は、平均連続数を使用しない第１のノード生成処理でノードを生成する。ステップＳ７４００では、ＲＬ復号部１２１は、平均連続数を使用する第２のノード生成処理でノードを生成する。ステップＳ７５００では、ＲＬ復号部１２１は、第１のノード生成処理又は第２のノード生成処理で生成されたノードを出力する。
【００４９】
図８は、一実施形態に係る第１の画像ノード生成処理（ステップＳ７３００）の内容を示すフローチャートである。図９は、一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。図９は、第２の画素ラインＬ２の部分画像Ｌ２１乃至Ｌ２６の画像ノードが生成される様子を示している。この例では、説明を分かりやすくするためにＲＬ符号化画像ＲＬＤ１をＲＬ符号化画像ＲＬＤ１ａに変更している。ＲＬ符号化画像ＲＬＤ１ａは、部分画像ＤＣＰ＿Ｌ２４と部分画像ＤＣＰ＿Ｌ２５の双方の色情報が一致している点でＲＬ符号化画像ＲＬＤ１と相違している（図９（ａ）参照）。
【００５０】
ステップＳ７３２０では、ＲＬ復号部１２１は、ＲＬ符号化画像ＲＬＤ１ａから部分画像Ｌ１１乃至Ｌ１４及び部分画像Ｌ２１乃至Ｌ１６を順に受信する。ＲＬ復号部１２１は、たとえば部分画像Ｌ２１を受信すると、部分画像Ｌ２１を処理対象の部分画像Ｐとする。
【００５１】
ステップＳ７３４０では、ＲＬ復号部１２１は、先行画像Ｐ１を設定する。ＲＬ復号部１２１は、たとえば部分画像Ｌ２２を受信すると、部分画像Ｌ２２を処理対象の部分画像Ｐとし、部分画像Ｌ２１を先行画像Ｐ１とし（図９（ｂ））、部分画像Ｌ２３を受信すると、部分画像Ｌ２３を処理対象の部分画像Ｐとし、部分画像Ｌ２２を先行画像Ｐ１とする（図９（ｃ））。部分画像Ｐは、第２の特定部分とも呼ばれる。先行画像Ｐ１は、第２の特定部分の直前に先行し、第１の特定部分とも呼ばれる。
【００５２】
図１０は、一実施形態に係る部分画像結合処理（ステップＳ７３５０）の内容を示すフローチャートである。ステップＳ７３５１では、ＲＬ復号部１２１は、処理対象の部分画像Ｐが反復色部分ＲＣＰであるか否かを判断する。ＲＬ復号部１２１は、反復色部分ＲＣＰであると判断した場合には処理をステップＳ７３５５に進め、反復色部分ＲＣＰでないと判断した場合には処理をステップＳ７３５２に進める。
【００５３】
ステップＳ７３５２では、ＲＬ復号部１２１は、先行画像Ｐ１が直接色部分ＤＣＰであるか否かを判断する。ＲＬ復号部１２１は、直接色部分ＤＣＰであると判断した場合には処理をステップＳ７３５４に進め、直接色部分ＤＣＰでないと判断した場合には処理をステップＳ７３５３に進める。
【００５４】
ステップＳ７３５３では、ＲＬ復号部１２１は、部分画像Ｐに対してバッファを割り当ててＤＣＰノードを生成する。ＲＬ復号部１２１は、さらに、色変換インジケータがＹｅｓの場合には、部分画像Ｐに対して色変換処理を実行する。具体的には、たとえば部分画像Ｐが直接色部分ＤＣＰ＿Ｌ２２であり、先行画像Ｐ１が反復色部分ＲＣＰである場合には、ＲＬ復号部１２１は、直接色部分ＤＣＰ＿Ｌ２２からＤＣＰノードであるＬ２２ノードを生成し、色変換処理を実行する（図９（ｂ）参照）。
【００５５】
ステップＳ７３５４では、ＲＬ復号部１２１は、部分画像Ｐに対して先行画像Ｐ１のバッファを延長して部分画像Ｐの色情報を格納する。ＲＬ復号部１２１は、さらに、色変換インジケータがＹｅｓの場合には、部分画像Ｐに対して色変換処理を実行する。具体的には、たとえば部分画像Ｐが直接色部分ＤＣＰ＿Ｌ２３であり、先行画像Ｐ１が直接色部分ＤＣＰ＿Ｌ２２である場合には、ＲＬ復号部１２１は、直接色部分ＤＣＰ＿Ｌ２２から生成されたＤＣＰノードであるＬ２２ノードのバッファを延長し、直接色部分ＤＣＰ＿Ｌ２３の色情報に対して色変換処理を実行し、色変換処理が実行された色情報を格納する。（図９（ｃ）参照）。
【００５６】
すなわち、直接色部分ＤＣＰ＿Ｌ２３は、Ｌ２２ノードに結合され、Ｌ２２ノードの一部となる。これにより、Ｌ２２ノードのカウント／長さフィールドの値は２から４に変更される。これにより、ＲＬ復号部１２１は、ノード数を削減して処理効率を向上させることができる。
【００５７】
図１１は、一実施形態に係る画像ノード生成処理の内容の一例を表す模式図である。ステップＳ７３５５では、ＲＬ復号部１２１は、先行画像Ｐ１が部分画像Ｐと色情報が一致する反復色部分ＲＣＰであるか否かを判断する。ＲＬ復号部１２１は、判断が肯定的である場合には処理をステップＳ７３５７に進め、判断が否定的である場合には処理をステップＳ７３５６に進める。
【００５８】
ステップＳ７３５６では、ＲＬ復号部１２１は、部分画像Ｐに対してバッファを割り当ててＲＣＰノードを生成する。ＲＬ復号部１２１は、さらに、色変換インジケータがＹｅｓの場合には、部分画像Ｐに対して色変換処理を実行する。具体的には、たとえば部分画像Ｐが反復色部分ＲＣＰ＿Ｌ２４であり、先行画像Ｐ１が直接色部分ＤＣＰである場合には、ＲＬ復号部１２１は、反復色部分ＲＣＰ＿Ｌ２４からＲＣＰノードであるＬ２４ノードを生成し、色変換処理を実行する（図１１（ａ）参照）。
【００５９】
ステップＳ７３５７では、ＲＬ復号部１２１は、部分画像Ｐのカウント／長さフィールドのカウント数を先行画像Ｐ１のカウント／長さフィールドの値に加算して和とする。具体的には、たとえば部分画像Ｐが反復色部分ＲＣＰ＿Ｌ２５であり、色情報が一致する先行画像Ｐ１が反復色部分ＲＣＰ＿Ｌ２４である場合には、ＲＬ復号部１２１は、反復色部分ＲＣＰ＿Ｌ２４のカウント／長さフィールドの値を５から１０に変更する（図１１（ｂ）参照）。
【００６０】
すなわち、反復色部分ＲＣＰ＿Ｌ２５は、Ｌ２４ノードに結合され、Ｌ２４ノードの一部となる。これにより、Ｌ２４ノードのカウント／長さフィールドの値は５から１０に変更される。これにより、ＲＬ復号部１２１は、ノード数を削減して処理効率を向上させることができる。
【００６１】
このような処理（ステップＳ７３２０乃至ステップＳ７３５０）は、画像を構成する画素ラインＬ１，Ｌ２毎に全ての部分画像に対して実行され（ステップＳ７３８０）、全ての画素ラインＬ１，Ｌ２に対して実行される（ステップＳ７３９０）。
【００６２】
図１２は、一実施形態に係る第２の画像ノード生成処理（ステップＳ７４００）の内容を示すフローチャートである。第２の画像ノード生成処理は、平均連続数と閾値とを使用して画素ラインをＤＣＰノードに変換し、さらに効率的にノード数を減らすことができる。平均連続数は、ＲｕｎＰｉｘｅｌｓ値／ＲｕｎＳｕｍ値（平均値）として定義される。ＲｕｎＳｕｍ値は、入力画像の現在行を再現するために使用される反復色部分ＲＣＰの数である。ＲｕｎＰｉｘｅｌｓ値は、入力画像の現在行を再現するために使用される各反復色部分ＲＣＰで反復される画素の総数である。閾値（ＲｕｎＴＨＲ値）は、入力画像の反復色部分ＲＣＰ毎に反復される画素の平均数を示す閾値（第１の閾値）である。
【００６３】
ステップＳ７４１０では、ＲＬ復号部１２１は、初期設定処理を実行する。初期設定処理では、ＲＬ復号部１２１は、３つの値（ＲｕｎＳｕｍ値，ＲｕｎＰｉｘｅｌｓ値及びＲｕｎＴＨＲ値）を初期化する。ＲｕｎＳｕｍ値及びＲｕｎＰｉｘｅｌｓ値は、いずれもゼロに初期化される。ＲｕｎＴＨＲ値（平均連続数閾値）は、たとえば３．３３３、５、１０又は２０に所定の方法で初期設定される。この例では、平均連続数閾値は５である。
【００６４】
平均連続数（ＲｕｎＰｉｘｅｌｓ値／ＲｕｎＳｕｍ値）は、ランレングス圧縮による圧縮の効果を示すことができる。すなわち、大きな平均連続数は、ランレングス圧縮による圧縮の効果が大きいことを示し、小さな平均連続数は、ランレングス圧縮による圧縮の効果が小さいことを示している。本願発明者は、ランレングス圧縮された画像の複合処理の負担とデータ圧縮のトレードオフを考慮し、ハードウェアリソース毎にＲｕｎＴＨＲ値を変更可能とすることによって効率的な処理を実現する技術を創作した。
【００６５】
図１３は、ＲＬ符号化画像ＲＬＤ２の画像ノードが生成される様子を示している。図１３（ａ）は、ＲＬ符号化画像ＲＬＤ２を示している。図１３（ｂ）は、第１の画素ラインＬ１の部分画像Ｌ１１乃至Ｌ１５を示している。第１の画素ラインＬ１は、ＲＬ符号化画像ＲＬＤ２の最初の画素ラインなので、第１の画素ラインＬ１の処理の際には、ＲｕｎＳｕｍ値＝０である。
【００６６】
ステップＳ７４２０では、ＲＬ復号部１２１は、直前に先行し、処理対象となった画素ラインの平均連続数（ＲｕｎＰｉｘｅｌｓ値／ＲｕｎＳｕｍ値）が閾値（ＲｕｎＴＨＲ値）よりも小さいか否かを判断する。ＲＬ復号部１２１は、平均連続数が閾値よりも小さいと判断した場合（又は例外処理としてＲｕｎＳｕｍ値＝０の場合）には処理をステップＳ７４３０に進め、平均連続数が閾値よりも小さくないと判断した場合には処理をステップＳ７４７０に進める。第１の画素ラインＬ１の処理では、ＲＬ復号部１２１は、処理をステップＳ７４３０に進める。
【００６７】
ステップＳ７４３０では、ＲＬ復号部１２１は、初期化処理を実行する。初期化処理では、ＲＬ復号部１２１は、直前に処理対象となった画素ライン（先行画素ラインとも呼ばれる。）のＲｕｎＳｕｍ値及びＲｕｎＰｉｘｅｌｓ値をリセットしてゼロにする。処理対象となる現画素ラインは、処理対象画素ラインとも呼ばれる。
【００６８】
ステップＳ７４４０では、ＲＬ復号部１２１は、画素ライン用のＤＣＰノードを生成する。この例では、第１の画素ラインＬ１の全体がＤＣＰノードＬ１１に変換される。ＤＣＰノードＬ１１は、第１の画素ラインＬ１の全画素の色情報を指定する長さ２０のノードである。ステップＳ７４５０では、ＲＬ復号部１２１は、第１の画素ラインＬ１の全画素の色情報を格納するための画像バッファＩＢを割り当てる。
【００６９】
図１４は、一実施形態に係る平均連続数更新処理（ステップＳ７４６０）の内容を示すフローチャートである。ステップＳ７４６１では、ＲＬ復号部１２１は、部分画像Ｌ１１を受信し、処理対象の部分画像Ｐとする。
【００７０】
ステップＳ７４６２では、ＲＬ復号部１２１は、部分画像Ｐ（部分画像Ｌ１１）がＲＣＰであるか否かを判断する。ＲＬ復号部１２１は、部分画像ＰがＲＣＰである場合には、処理をステップＳ７４６３に進め、部分画像ＰがＲＣＰでない場合には、処理をステップＳ７４６５に進める。この例では、部分画像Ｌ１１はＤＣＰなので、ＲＬ復号部１２１は、処理をステップＳ７４６５に進める。ステップＳ７４６５では、ＲＬ復号部１２１は、色変換インジケータがＹｅｓの場合には、部分画像Ｐに対して色変換処理を実行する。
【００７１】
ステップＳ７４６３では、ＲＬ復号部１２１は、ＲｕｎＳｕｍ値を１だけインクリメントする。ステップＳ７４６４では、ＲＬ復号部１２１は、ＲｕｎＰｉｘｅｌｓ値に対して部分画像Ｌ１１の画素幅（カウント／長さ）を加算する。これにより、ＲＬ復号部１２１は、平均連続数（ＲｕｎＰｉｘｅｌｓ値／ＲｕｎＳｕｍ値）を更新することができる。
【００７２】
具体的には、第１の画素ラインＬ１の処理では、部分画像Ｌ１２乃至Ｌ１４の３つのＲＣＰでＲｕｎＳｕｍ値が３となるとともに、ＲｕｎＰｉｘｅｌｓ値が１４（＝４＋５＋５）となる。これにより、ＲＬ復号部１２１は、平均連続数を４．６７に更新することができる。次に、第２の画素ラインＬ２の処理では、部分画像Ｌ２２乃至Ｌ２４の３つのＲＣＰでＲｕｎＳｕｍ値が３となるとともに、ＲｕｎＰｉｘｅｌｓ値が１４（＝５＋６＋５）となる。これにより、ＲＬ復号部１２１は、平均連続数を５．３３に更新することができる。
【００７３】
図１５は、第３の画素ラインＬ３に係る画像ノード生成処理の内容の一例を表す模式図である。第３の画素ラインＬ３の処理では、ＲＬ復号部１２１は、直前ライン（第２の画素ラインＬ２）の平均連続数（５．３３）が閾値（５）よりも大きいので、処理をステップＳ７４７０に進める（ステップＳ７４２０）。ステップＳ７４８０では、ＲＬ復号部１２１は、平均連続数更新処理を実行する。平均連続数更新処理は、ステップＳ７４６０で実行される平均連続数更新処理と同一の内容である。
【００７４】
ステップＳ７３５０では、ＲＬ復号部１２１は、部分画像結合処理（図１０及び図１１参照）を実行する。直接色部分ＤＣＰ＿Ｌ３１に対しては、先行画像Ｐ１が存在しないので、ＲＬ復号部１２１は、直接色部分ＤＣＰ＿Ｌ３１からＤＣＰノードであるＬ３１ノードを生成し、色変換処理を実行する（ステップＳ７３５１、ステップＳ７３５２及びステップＳ７３５３）。
【００７５】
反復色部分ＲＣＰ＿Ｌ３２に対しては、先行画像Ｐ１がＤＣＰなので、ＲＬ復号部１２１は、反復色部分ＲＣＰからＲＣＰノードであるＬ３２ノードを生成し、色変換処理を実行する（ステップＳ７３５１、ステップＳ７３５２及びステップＳ７３５４）。反復色部分ＲＣＰ＿Ｌ３３に対しては、先行画像Ｐ１がＲＣＰではあるが色情報が相違するので、ＲＬ復号部１２１は、反復色部分ＲＣＰ＿Ｌ３３からＲＣＰノードであるＬ３３ノードを生成し、色変換処理を実行する（ステップＳ７３５１、ステップＳ７３５５及びステップＳ７３５６）。
【００７６】
反復色部分ＲＣＰ＿Ｌ３４に対しては、先行画像Ｐ１がＲＣＰで色情報が一致するので、ＲＬ復号部１２１は、ＲＣＰノードであるＬ３３ノードのカウント数／長さの値に反復色部分ＲＣＰ＿Ｌ３４のカウント数／長さの値を加算する（ステップＳ７３５１、ステップＳ７３５５及びステップＳ７３５７）。
【００７７】
直接色部分ＤＣＰ＿Ｌ３５に対しては、先行画像Ｐ１がＲＣＰなので、ＲＬ復号部１２１は、直接色部分ＤＣＰ＿Ｌ３５からＤＣＰノードであるＬ３５ノードを生成し、色変換処理を実行する（ステップＳ７３５１、ステップＳ７３５２及びステップＳ７３５３）。
【００７８】
図１６は、一実施形態に係る非回転復号画像描画処理（ステップＳ７７００）の内容を示すフローチャートである。図１７は、一実施形態に係る画像描画処理の内容を表す概略図である。ステップＳ７７１０では、画像描画部１２２は、バッファ割当処理を実行する。バッファ割当処理では、画像描画部１２２は、ワンラインバッファＯＬＢと、ページバッファＰＢとに画像バッファＩＢを割り当てる。
【００７９】
ステップＳ７７２０では、画像描画部１２２は、ノード取得処理を実行する。ノード取得処理では、画像描画部１２２は、画像ノード生成処理（ステップＳ７２００）で生成された画像ノードを画像バッファＩＢから順に読み出す。
【００８０】
ステップＳ７７３０では、画像描画部１２２は、取得したノードがＤＣＰノードであるか否かを判断する。ＲＬ復号部１２１は、ＤＣＰノードであると判断した場合には処理をステップＳ７７４１に進め、ＤＣＰノードでないと判断した場合には処理をステップＳ７７５１に進める。
【００８１】
ステップＳ７７４１では、画像描画部１２２は、取得したノードのカウント／長さフィールドの値（画素数）と水平方向のスケールＳＨとの積として、同一の色情報が格納される出力画像の水平方向の画素数を算出する。ステップＳ７７４２では、画像描画部１２２は、色変換インジケータがＮｏ、すなわちＲＬ復号部１２１で色変換処理を実行しない設定である場合には、必要に応じて色変換処理を実行する。ステップＳ７７４３では、画像描画部１２２は、ワンラインバッファ格納処理を実行する。ワンラインバッファ格納処理では、画像描画部１２２は、ステップＳ７７４１で算出した画素数の画素にＲＣＰノードの色情報をワンラインバッファＯＬＢにコピーする。
【００８２】
ステップＳ７７５１では、画像描画部１２２は、色変換インジケータがＮｏ、すなわちＲＬ復号部１２１で色変換処理を実行しない設定である場合には、必要に応じてＤＣＰノードの色変換処理を実行する。ステップＳ７７５２では、画像描画部１２２は、スケールＳＨに基づいて各画素を左側から順に水平方向にコピー又はスキップしてスケーリング（拡大又は縮小）する。
【００８３】
ステップＳ７７５３では、スケールＳＨに基づいてスケーリングされた画素にＤＣＰノードの色情報を格納してワンラインバッファＯＬＢにコピーする。このように、ＲＬ復号部１２１は、第１の方向、すなわち画素ラインの左側から順に全てのＤＣＰノード及びＲＣＰノードを連結してワンラインバッファＯＬＢにコピーする（ステップＳ７７６０）。
【００８４】
図１８は、一実施形態に係る画像描画処理の内容を表す概略図である。この例では、スケールＳＨ及びスケールＳＶは、いずれも２である。第１の画素ラインＬ１は、ＤＣＰノードＬ１１に基づいて再現される。ＤＣＰノードＬ１１は、第１の画素ラインＬ１の全画素の色情報を指定する長さ２０のノードである。画像描画部１２２は、スケールＳＨに基づき、各画素を水平方向に１回コピーし、４０画素の画素ラインを形成し、ワンラインバッファＯＬＢにコピーする。
【００８５】
第１の画素ラインＬ１はＤＣＰノードＬ１１のみで構成されているので、画像描画部１２２は、処理をステップＳ７７７０に進める（Ｓ７７６０）。ステップＳ７７７０では、画像描画部１２２は、ページバッファコピー処理を実行する。ページバッファコピー処理では、画像描画部１２２は、画像の上から順に、すなわち先ず第１の画素ラインＬ１を選択し、スケールＳＶに基づき、ワンラインバッファＯＬＢ内の画素ラインをページバッファＰＢ内で垂直方向に各２回コピーし、２つの画素ラインＲＤ１，ＲＤ２を形成する。
【００８６】
図１９は、一実施形態に係る画像描画処理の内容を表す概略図である。第２の画素ラインＬ２は、ＤＣＰノードＬ２１に基づいて第１の画素ラインＬ１と同様にページバッファＰＢ内に２回コピーし、２つの画素ラインＲＤ３，ＲＤ４を形成する。第３の画素ラインＬ３は、ＤＣＰノードＬ３１、ＲＣＰノードＬ３２、ＲＣＰノードＬ３３及びＤＣＰノードＬ３４に基づいて第１の画素ラインＬ１と同様にページバッファＰＢに２回コピーし、２つの画素ラインＲＤ５，ＲＤ６を形成する。画像描画部１２２は、全ての画素ラインの処理が完了すると、処理をステップＳ７９００に進める（ステップＳ７７８０）。
【００８７】
ステップＳ７９００では、画像出力部１２４は、ページバッファＰＢ内にコピーされた画像データに対してハーフトーン処理を実行してトナードットの形成状態を表すドットデータを生成し、ドットデータに基づいて印刷媒体上に画像を形成する。
【００８８】
図２０は、一実施形態に係る１８０度回転高速ＲＬ描画処理の概要を示す説明図である。ステップＳ８０００では、画像描画部１２２は、１８０度回転高速ＲＬ描画処理（ＲＬ描画処理とも呼ばれる。）を実行する。１８０度回転ＲＬ描画処理は、画像を復号して第２の中間コードを生成する画像復号処理（ステップＳ８１００）と、復号された画像である復号画像を描画する復号画像描画処理（ステップＳ８７００：第２の描画処理）とが非回転高速ＲＬ描画処理（第１の描画処理）と相違する。なお、平均連続数の閾値（第２の閾値とも呼ばれる。）は、処理の構成が実質的に同一なので、第１の閾値と同一でも良い。
【００８９】
図２１は、ＲＬ符号化画像ＲＬＤ３の画像ノードが生成される様子を示している。図２１（ａ）は、ＲＬ符号化画像ＲＬＤ３を示している。図２１（ｂ）は、第１の画素ラインＬ１用の単一のＤＣＰノードＬ１５を示している。１８０度回転高速ＲＬ描画処理は、ノード生成時の部分画像Ｐの取得順序が画素ライン毎に逆方向となっている点で非回転高速ＲＬ描画処理と相違する。
【００９０】
１８０度回転高速ＲＬ描画処理では、ＲＬ復号部１２１は、第１の画素ラインＬ１においては、部分画像Ｌ１５、部分画像Ｌ１４、部分画像Ｌ１３、部分画像Ｌ１２及び部分画像Ｌ１１の順（非回転高速ＲＬ描画処理（第１の方向とも呼ばれる。）とは逆順）に選択して部分画像結合処理（ステップＳ７３５０）を実行する。具体的には、第１の画素ラインＬ１及び第２の画素ラインＬ２は、それぞれ図２１（ｂ）及び図２１（ｃ）に示されるように画素の順序が水平方向に左右逆となっている。
【００９１】
図２２は、第３の画素ラインＬ３に係る画像ノード生成処理の内容の一例を表す模式図である。第３の画素ラインＬ３の処理では、ＲＬ復号部１２１は、第１に部分画像Ｌ３５を取得してＤＣＰノードＬ３５を生成する（ステップＳ７３５３）。ＤＣＰノードＬ３５は、「Ｒ」及び「Ｓ」の色情報を有する２つの画素を規定している（図２２（ａ）参照）。描画処理では、「Ｒ」及び「Ｓ」の色情報は、非回転高速ＲＬ描画処理とは逆順に読み取られることになる。すなわち、描画処理では、第３の画素ラインＬ３は、左の画素から順に「Ｓ」と「Ｒ」の色情報を有することになる。
【００９２】
第２にＲＬ復号部１２１は、部分画像Ｌ３４を取得してＤＣＰノードＬ３５のバッファを延長し、部分画像Ｌ３４の色情報をＤＣＰノードＬ３５に格納する（ステップＳ７３５４）。描画処理では、非回転高速ＲＬ描画処理とは逆順に読み取られるので、バッファの延長方向も逆方向（右側から左側）となる。これにより、ＤＣＰノードＬ３５は、「Ｐ」、「Ｑ」、「Ｒ」及び「Ｓ」の色情報を有する４つの画素を規定するものとなる（図２２（ｂ）参照）。
【００９３】
第３にＲＬ復号部１２１は、部分画像Ｌ３３を取得してＲＣＰノードＬ３３を生成する（ステップＳ７３５６）。ＲＣＰノードＬ３３は、「Ｅ」の色情報を有する３つの画素を規定している。第４にＲＬ復号部１２１は、部分画像Ｌ３２を取得してＲＣＰノードＬ３２のカウント／長さフィールドの値（３）を、ＲＣＰノードＬ３２のカウント／長さフィールドの値（３）に加算して和（６）とする（図２２（ｃ）参照）。
【００９４】
第５にＲＬ復号部１２１は、部分画像Ｌ３１を取得してＤＣＰノードＬ３１を生成する（ステップＳ７３５７）。ＤＣＰノードＬ３５は、「Ａ」及び「Ｂ」の色情報を有する２つの画素を規定している。
【００９５】
図２３は、一実施形態に係る１８０度回転復号画像描画処理（ステップＳ７７００ａ）の内容を示すフローチャートである。図２４は、一実施形態に係る画像描画処理の内容を表す概略図である。１８０度回転復号画像描画処理は、水平スケーリング処理（ステップＳ７７５２ａ）、ワンラインバッファ格納処理（ステップＳ７７５３ａ）及びページバッファコピー処理（ステップＳ７７７０ａ）が非回転復号画像描画処理の処理を相違する。
【００９６】
水平スケーリング処理（ステップＳ７７５２ａ）では、画像描画部１２２は、スケールＳＨに基づいて各画素を右側から順に、すなわち非回転復号画像描画処理での水平スケーリング処理（ステップＳ７７５２）の方向（第１の方向とも呼ばれる。）とは逆順に、水平方向にコピー又はスキップしてスケーリング（拡大又は縮小）する。
【００９７】
ワンラインバッファ格納処理（ステップＳ７７５３ａ）では、ＲＬ復号部１２１は、画素ラインの右側から順に、すなわち非回転復号画像描画処理でのワンラインバッファ格納処理（ステップＳ７７５３）とは逆順に、全てのＤＣＰノード及びＲＣＰノードを連結してワンラインバッファＯＬＢにコピーする（ステップＳ７７６０）。
【００９８】
ページバッファコピー処理（ステップＳ７７７０ａ）では、画像描画部１２２は、画像の下から順に、すなわち非回転復号画像描画処理でのワンラインバッファ格納処理（ステップＳ７７５３）での方向（第２の方向とも呼ばれる。）とは逆順（第３の画素ラインＬ３、第２の画素ラインＬ２及び第１の画素ラインＬ１）に選択する。画像描画部１２２は、最初に第３の画素ラインＬ３を選択し、スケールＳＶ（２）に基づき、ワンラインバッファＯＬＢ内の画素ラインをページバッファＰＢ内で垂直方向に２回コピーし、２つの画素ラインＲＤ１，ＲＤ２を形成する（図２４参照）。
【００９９】
図２５は、一実施形態に係る画像描画処理の内容を表す概略図である。画像描画部１２２は、次に第２の画素ラインＬ２を選択し、ワンラインバッファＯＬＢ内の画素ラインをページバッファＰＢ内で垂直方向に２回コピーし、２つの画素ラインＲＤ３，ＲＤ４を形成する。画像描画部１２２は、最後に第１の画素ラインＬ１を選択し、ワンラインバッファＯＬＢ内の画素ラインをページバッファＰＢ内で垂直方向に２回コピーし、２つの画素ラインＲＤ５，ＲＤ６を形成する。
【０１００】
このように、本実施形態に係る画像形成装置１００は、描画処理装置として機能し、非回転の復号処理と非回転の画像描画処理の処理方向を逆転（反対の方向とする）させるだけで、画像の１８０度回転処理を実行することなく１８０度回転の画像描画処理実現させることができる。
【０１０１】
本発明は、さらに他の中間コード（ＤＣＰノード及びＲＣＰノード）を導入することによって差分圧縮画像データを効率的に処理する。この新しい中間コードは、効率的にノード数を削減してハードウェア資源を効率的に使用することができる。
【０１０２】
Ｂ．変形例：
本発明は、上記各実施形態だけでなく、以下のような変形例でも実施することができる。
【０１０３】
上記実施形態では、平均連続数閾値を予め設定していたが、画像処理用に使用可能なメモリ領域のサイズやＣＰＵの処理能力を含むハードウェア資源に基づいて比率を自動的または半自動的に変更してもよい。
【符号の説明】
【０１０４】
１００  画像形成装置
１１０，２１０  制御部
１２０  画像形成部
１２１  ＲＬ復号部
１２２  画像描画部
１２３  画像処理部
１２４  画像出力部
１３０，２３０  操作表示部
１３１，２３１  ディスプレイ
１３２，２３２  操作処理部
１４０，２４０  記憶部
１５０，２５０  通信インターフェース部
２００  パーソナルコンピュータ
２２０  ＲＬ符号化部
【図１】
2020203432.tif 000003
【図２】
2020203432.tif 000004
【図３】
2020203432.tif 000005
【図４】
2020203432.tif 000006
【図５】
2020203432.tif 000007
【図６】
2020203432.tif 000008
【図７】
2020203432.tif 000009
【図８】
2020203432.tif 000010
【図９】
2020203432.tif 000011
【図１０】
2020203432.tif 000012
【図１１】
2020203432.tif 000013
【図１２】
2020203432.tif 000014
【図１３】
2020203432.tif 000015
【図１４】
2020203432.tif 000016
【図１５】
2020203432.tif 000017
【図１６】
2020203432.tif 000018
【図１７】
2020203432.tif 000019
【図１８】
2020203432.tif 000020
【図１９】
2020203432.tif 000021
【図２０】
2020203432.tif 000022
【図２１】
2020203432.tif 000023
【図２２】
2020203432.tif 000024
【図２３】
2020203432.tif 000025
【図２４】
2020203432.tif 000026
【図２５】
2020203432.tif 000027