(57)【要約】      （修正有）【課題】画像データに対する処理を高速化することができる画像処理装置及びプログラムを提供する。【解決手段】主走査方向に連長圧縮された主走査方向連長データと、同一の主走査方向画像データが副走査方向に連続する数で表現される副走査方向連長データとを有する画像データを受け付ける受付手段と、主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記受付手段によって受け付けられた画像データを処理する処理手段と、前記受付手段によって受け付けられた副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理手段によって処理される画像データの副走査方向連長データを算出する算出手段と、前記算出手段により算出された算出結果を、前記処理手段によって処理された画像データに付加する付加手段とを有する。【選択図】図２
2013055509.tif 000002
【特許請求の範囲】
【請求項１】
主走査方向に連長圧縮された主走査方向連長データと、同一の主走査方向画像データが副走査方向に連続する数で表現される副走査方向連長データとを有する画像データを受け付ける受付手段と、
主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記受付手段によって受け付けられた画像データを処理する処理手段と、
前記受付手段によって受け付けられた副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理手段によって処理される画像データの副走査方向連長データを算出する算出手段と、
前記算出手段による算出結果を、前記処理手段によって処理された画像データに付加する付加手段と
を有する画像処理装置。
【請求項２】
前記処理手段によってなされる処理は、ウィンドウ処理である
請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記受付手段によって受け付けられた画像データを行ごとに処理し、
前記算出手段は、前記処理手段によって処理される画像データが先頭行、最終行及びこれらの行以外のいずれであるか並びに前記受付手段によって受け付けられた副走査方向連長データが前記処理手段の処理領域の副走査幅より大きいか否かに応じて、前記処理手段によって処理される画像データの副走査方向連長データを算出する
請求項１に記載の画像処理装置。
【請求項４】
前記算出手段によって算出された副走査方向連長データに応じて、前記受付手段によって受け付けられた画像データを記憶する記憶手段
をさらに有し、
前記処理手段は、前記記憶手段に記憶された画像データを処理する
請求項１に記載の画像処理装置。
【請求項５】
画像データを、この画像データを主走査方向に連長圧縮した主走査方向画像データと、同一の主走査方向画像データを副走査方向に連長圧縮した副走査方向画像データとを有する画像データに圧縮する圧縮手段と、
主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記圧縮手段によって圧縮された画像データを処理する処理手段と、
前記圧縮手段によって圧縮された副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理手段によって処理される画像データの副走査方向連長データを算出する算出手段と、
前記算出手段による算出結果を、前記処理手段によって処理された画像データに付加する付加手段と
を有する画像処理装置。
【請求項６】
前記付加手段が前記算出手段による算出結果を付加した、前記処理手段によって処理された画像データを復号する復号手段
をさらに有する請求項５に記載の画像処理装置。
【請求項７】
コンピュータを備える画像処理装置において、
主走査方向に連長圧縮された主走査方向連長データと、同一の主走査方向画像データが副走査方向に連続する数で表現される副走査方向連長データとを有する画像データを受け付けるステップと、
主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記受け付けられた画像データを処理するステップと、
前記受け付けられた副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理される画像データの副走査方向連長データを算出するステップと、
前記算出された結果を、前記処理された画像データに付加するステップと
を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、行単位のランレングス形式で表現された行データで構成される画像データに対して、空間フィルタ処理を施す画像処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１３６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、画像データに対する処理を高速化することができる画像処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
[画像処理装置]
上記目的を達成するために、本発明に係る画像処理装置は、主走査方向に連長圧縮された主走査方向連長データと、同一の主走査方向画像データが副走査方向に連続する数で表現される副走査方向連長データとを有する画像データを受け付ける受付手段と、主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記受付手段によって受け付けられた画像データを処理する処理手段と、前記受付手段によって受け付けられた副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理手段によって処理される画像データの副走査方向連長データを算出する算出手段と、前記算出手段による算出結果を、前記処理手段によって処理された画像データに付加する付加手段とを有する。
【０００６】
好適には、前記処理手段によってなされる処理は、ウィンドウ処理である。
【０００７】
好適には、前記処理手段は、前記受付手段によって受け付けられた画像データを行ごとに処理し、前記算出手段は、前記処理手段によって処理される画像データが先頭行、最終行及びこれらの行以外のいずれであるか並びに前記受付手段によって受け付けられた副走査方向連長データが前記処理手段の処理領域の副走査幅より大きいか否かに応じて、前記処理手段によって処理される画像データの副走査方向連長データを算出する。
【０００８】
好適には、前記算出手段によって算出された副走査方向連長データに応じて、前記受付手段によって受け付けられた画像データを記憶する記憶手段をさらに有し、前記処理手段は、前記記憶手段に記憶された画像データを処理する。
【０００９】
上記目的を達成するために、本発明に係る画像処理装置は、画像データを、この画像データを主走査方向に連長圧縮した主走査方向画像データと、同一の主走査方向画像データを副走査方向に連長圧縮した副走査方向画像データとを有する画像データに圧縮する圧縮手段と、主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記圧縮手段によって圧縮された画像データを処理する処理手段と、前記圧縮手段によって圧縮された副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理手段によって処理される画像データの副走査方向連長データを算出する算出手段と、前記算出手段による算出結果を、前記処理手段によって処理された画像データに付加する付加手段とを有する。
【００１０】
好適には、前記付加手段が前記算出手段により算出された算出結果を付加した、前記処理手段によって処理された画像データを復号する復号手段をさらに有する。
【００１１】
[プログラム]
また、本発明に係るプログラムは、コンピュータを備える画像処理装置において、
主走査方向に連長圧縮された主走査方向連長データと、同一の主走査方向画像データが副走査方向に連続する数で表現される副走査方向連長データとを有する画像データを受け付けるステップと、主走査方向及び副走査方向にそれぞれ予め定められた画素幅を有する処理領域に基づいて、前記受け付けられた画像データを処理するステップと、前記受け付けられた副走査方向連長データ及び前記処理手段の処理領域の副走査幅に基づいて、前記処理される画像データの副走査方向連長データを算出するステップと、前記算出された結果を、前記処理された画像データに付加するステップとを前記コンピュータに実行させる。
【発明の効果】
【００１２】
請求項１に係る本発明によれば、本構成を有しない場合に比べ、画像データに対する処理を高速化することができる画像処理装置を提供することができる。
【００１３】
請求項２に係る本発明によれば、請求項１に係る本発明による効果に加え、本構成を有しない場合に比べ、画像データに対するウィンドウ処理を高速化することができる画像処理装置を提供することができる。
【００１４】
請求項３に係る本発明によれば、請求項１に係る本発明による効果に加え、本構成を有しない場合に比べ、簡易な方法によって画像データの副走査方向連長データを算出することができる画像処理装置を提供することができる。
【００１５】
請求項４に係る本発明によれば、請求項１に係る本発明による効果に加え、本構成を有しない場合に比べ、画像データに対する処理の前処理を高速化することができる画像処理装置を提供することができる。
【００１６】
請求項５に係る本発明によれば、本構成を有しない場合に比べ、画像データに対する処理を高速化することができる画像処理装置を提供することができる。
【００１７】
請求項６に係る本発明によれば、請求項５に係る本発明による効果に加え、本構成を有しない場合に比べ、復号された画像データを利用することができる画像処理装置を提供することができる。
【００１８】
請求項７に係る本発明によれば、本構成を有しない場合に比べ、画像データに対する処理を高速化することができるプログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る画像処理装置を示す図である。
【図２】画像処理部で動作する画像処理プログラムの構成を示す図である。
【図３Ａ】ランレングス変換前の画像データの一例である。
【図３Ｂ】ランレングス変換（主走査方向）済み画像データの一例である。
【図３Ｃ】ランレングス変換済み画像データの一例である。
【図４Ａ】画像処理プログラムの構成の変形例を説明するための図である。
【図４Ｂ】画像処理プログラムの構成の変形例を説明するための図である。
【図４Ｃ】画像処理プログラムの構成の変形例を説明するための図である。
【図４Ｄ】画像処理プログラムの構成の変形例を説明するための図である。
【図５】ウィンドウ処理に用いられるウィンドウの一例である。
【図６】算出部が同一ウィンドウ処理行を算出する手順を示すフローである。
【図７】ウィンドウ処理部によるウィンドウ処理の手順を示すフローチャートである。
【図８】乗算部による乗算の手順を示すフローチャートである。
【図９】シフト部によるシフトの手順を示すフローチャートである。
【図１０】加算部による加算の手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を説明する。なお、以下の説明は本発明を実施するのにあたっての一例に過ぎず、本発明が以下に説明される事項に限定されるわけではなく、必要に応じて適宜変更可能である。
例えば、以下、画像処理は、ウィンドウ処理であるとして説明しているが、ウィンドウ（バッファ）を利用する他の処理であってもかまわない。例えば、フィルタ処理及び検知処理であってもかまわない。
【００２１】
図１は、本発明の第１の実施形態に係る画像処理装置１を示す図である。
図１に示すように、本発明の実施形態に係る画像処理装置１は、画像処理部１００及びマーキングエンジン１０２を有する。
このような構成により、画像処理装置１は、入力された画像データに所定の処理を施し、記録用紙上にプリントする。
【００２２】
画像処理部１００は、例えば、ＣＰＵ及びメモリなどの記憶装置（ともに不図示）を備える制御基板である。
画像処理部１００は、ケーブルなどにより通信可能に接続されたクライアントＰＣ２から画像データを受け取り、予め定められた画像処理を施す。さらに、画像処理部１００は、予め定められた画像処理が施された画像データが記録用紙にプリントされるよう、マーキングエンジン１０２を制御する。
【００２３】
マーキングエンジン１０２は、例えば、直接転写方式のデジタルカラープリンタであり、露光装置１０４、画像形成ユニット１０６、用紙搬送ベルト１０８及び定着器１１０を備える。
露光装置１０４は、帯電した感光体ドラム１１２の表面に向けてＬＥＤを照射して、感光体ドラム２０の表面に静電潜像を形成する。
【００２４】
画像形成ユニット１０６は、静電潜像を形成してトナー像を担持させる像担持体である感光体ドラム１１２、感光体ドラム１１２の表面を一様に帯電する帯電器１１４、カラー画像を構成する色ごとに設けられた現像ロール１１６Ｙ（Ｙｅｌｌｏｗ；イエロー）、１１６Ｍ（Ｍａｇｅｎｔａ；マゼンタ）、１１６Ｃ（Ｃｙａｎ；シアン）及び１１６Ｋ（ｂｌａｃＫ；ブラック）、及び、感光体ドラム１１２の表面に形成されたトナー像を記録用紙に転写させる転写ロール１１８を備える。画像形成ユニット１０６は、現像ロール１１６Ｙ、１１６Ｍ、１１６Ｃ及び１１６Ｋから、出力画像に応じたトナーを感光体ドラム１１２に供給し、感光体ドラム１１２の表面の静電潜像からトナー像を作像し、記録用紙上に、順次、転写する。
用紙搬送ベルト１０８は、感光体ドラム１１２及び転写ロール１１８によって形成される転写位置に対して、記録用紙を搬送する。
定着器１１０は、記録用紙上に転写されたトナー像を定着させる。
【００２５】
次に、図１の画像処理部１００をさらに説明する。
図２は、画像処理部１００で動作する画像処理プログラム１２０の構成を示す図である。画像処理部１００は、ＣＰＵに対し、メモリに記憶された画像処理プログラム１２０を読み出して実行させる。
図２に示すように、画像処理プログラム１２０は、受付部１２２、算出部１２４、生成部１２６、記憶部１２８、ウィンドウ処理部１３０及び付加部１３８から構成される。ウィンドウ処理部１３０は、さらに、乗算部１３２、シフト部１３４及び加算部１３６から構成される。
【００２６】
なお、画像処理プログラム１２０は、メモリに記憶されるものとして説明したが、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及びＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの記憶装置に記憶されていてもよいし、フロッピーディスク（登録商標）などの外部記録媒体に記憶されていてもよい。また、ネットワークを介して図１の画像処理装置１に接続されるサーバなどの他の装置に記憶されていてもよい。
画像処理プログラム１２０による画像処理は、画像処理装置１内で実行されるものとして説明したが、複数の装置（例えば、画像処理装置１及びネットワークを介して接続されるサーバ）内で実行されてもよい。また、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのハードウェアによって実現されてもよい。
【００２７】
[受付部]
受付部１２２は、図１のクライアントＰＣ２から、ランレングス変換済み画像データを受け付ける。
ここで、ランレングス変換済み画像データとは、主走査方向及び副走査方向のランレングス変換が施された画像データである。ランレングス変換済み画像データは、例えば、ビットマップ画像データ（例えば、図３Ａに示す８ビットの画像データ）に対して主走査方向のランレングス変換を施した画像データ（例えば、図３Ｂに示す画像データ）に対し、さらに、副走査方向のランレングス変換を施した画像データであり、例えば、図３Ｃに示す画像データである。
【００２８】
図３Ａは、主走査方向及び副走査方向のランレングス変換前の画像データ（以下、「ランレングス変換前の画像データ」）である。
ランレングス変換前の画像データは、例えば、同一の画素値によって構成される同色の画像データと、複数の画素値によって構成されるグラデーションの画像データとからなる。ここでは、同色の画像データは、主走査方向に１６つ並んだ画素値８６の画素からなる行が副走査方向に９つ連続しているものとする。また、グラデーションの画像データは、画素値２５５の画素、画素値２３０の画素、画素値２１５の画素、画素値２００の画素、・・・、画素値０の画素からなる行が副走査方向に７つ連続しているものとする。
【００２９】
図３Ｂに示す画像データは、図３Ａのランレングス変換前の画像データに対し、主走査方向のランレングス変換が施されてできる。
図３Ｂに示すように、主走査方向のランレングス変換が施された画像データ（以下、「ランレングス変換（主走査方向）済み画像データ」）は、主走査方向ラン長及び画素値からなるランデータを少なくとも１つ含む行によって構成される。
【００３０】
図３Ｃに示す画像データは、図３Ｂのランレングス変換（主走査方向）済み画像データに対し、副走査方向のランレングス変換が施されてできる。
図３Ｃに示すように、ランレングス変換済み画像データは、副走査方向ラン長及び少なくとも１つのランデータ（主走査方向ラン長及び画素値）を含む行によって構成される。
ランレングス変換済み画像データの１行目は、ランレングス変換（主走査方向）済み画像データの１〜９行目に対応し、ランレングス変換済み画像データの２行目は、ランレングス変換（主走査方向）済み画像データの１０〜１７行目に対応する。
【００３１】
なお、図４Ａに示すように、画像処理プログラム１２０は、受付部１２２のない構成であってもかまわない。
この場合、クライアントＰＣ２からのランレングス変換済み画像データは、メモリなどにいったん記憶され、算出部１２４に出力されるとともに、記憶部１２８に適宜格納される。
【００３２】
また、図４Ｂに示すように、画像処理プログラム１２０は、受付部１２２の代わりに変換部１４０を設ける構成であってもかまわない。
この場合、クライアントＰＣ２からはランレングス変換前の画像データが送信され、クライアントＰＣ２からのランレングス変換前の画像データはメモリなどにいったん記憶され、変換部１４０によって主走査方向及び副走査方向のランレングス変換が施される。主走査方向及び副走査方向のランレングス変換が施された画像データは、算出部１２４に出力されるとともに、記憶部１２８に適宜格納される。
【００３３】
また、図４Ｃに示すように、画像処理プログラム１２０は、受付部１２２の後段に変換部１４０を設ける構成であってもかまわない。
この場合、受付部１２２は、クライアント２からランレングス変換前の画像データを受け付け、変換部１４０は、受付部１２２によって受け付けられたランレングス変換前の画像データに対して主走査方向及び副走査方向のランレングス変換を施す。主走査方向及び副走査方向のランレングス変換が施された画像データは、算出部１２４に出力されるとともに、記憶部１２８に適宜格納される。
【００３４】
また、図４Ｄに示すように、画像処理プログラム１２０は、付加部１３８の後段に逆変換部１４２を設ける構成であってもかまわない。
この場合、逆変換部１４２は、付加部１３８から出力される画像データ（後述するように、ランレングス変換済み画像データにウィンドウ処理が施された画像データ）に対し、主走査方向及び副走査方向のランレングス逆変換を施す。
【００３５】
[算出部]
算出部１２４は、図２の受付部１２２によって受け付けられたランレングス変換済み画像データの元になる画像データ（つまり、ランレングス変換前の画像データ及びランレングス変換（主走査方向）済み画像データ）において、同じウィンドウ処理が可能である行（以下、「同一ウィンドウ処理行」）を算出する。ここで、「同じウィンドウ処理が可能である」とは、ウィンドウ処理の対象が同じであり、ウィンドウ処理の結果が同じになることを意味する。
ウィンドウ処理には、例えば、図５に示すウィンドウが用いられる。図５に示すように、ウィンドウは、３×３の９画素によって構成され、各画素には重み付け係数Ｋ（ｉ，ｊ）が予め設定される。網掛けされた画素は注目画素である。ランレングス変換前の画像データにウィンドウ処理が施される場合、ウィンドウを構成する画素の少なくとも一部がランレングス変換前の画像データを構成する画素に重なるよう、ウィンドウが走査される。
後述するように、１〜Ｎ行（Ｎは１以上の整数。以下、Ｎが常に同じものを指し、同じ値であるとは限らない）からなるランレングス変換（主走査方向）済み画像データにウィンドウ処理を施す場合、実際には存在しない０行目は１行目と同じランデータからなるものとし、実際に存在しない（Ｎ＋１）行目はＮ行目と同じランデータからなるものとするので、２行目は１行目と同じウィンドウ処理が可能となり、Ｎ行目は（Ｎ−１）行目と同じウィンドウ処理が可能となる。１〜Ｎ行からなるランレングス変換前の画像データにウィンドウ処理を施す場合もこれと同様である。つまり、実際には存在しない０行目は１行目と同じ画素からなるものとし、実際に存在しない（Ｎ＋１）行目はＮ行目と同じ画素からなるものとするので、２行目は１行目と同じウィンドウ処理が可能となり、Ｎ行目は（Ｎ−１）行目と同じウィンドウ処理が可能となる。
【００３６】
例えば、図５に示すウィンドウが図３Ａに示すランレングス変換前の画像データを走査する場合、２行目は１行目と同じウィンドウ処理が可能であり、３〜８行目は２行目と同じウィンドウ処理が可能であるので、１〜８行目は同じウィンドウ処理が可能である。９〜１０行目は８行目と同じウィンドウ処理はできない。１２〜１６行目は１１行目と同じウィンドウ処理が可能であり、１７行目は１６行目と同じウィンドウ処理が可能であるので、１１〜１７行目は同じウィンドウ処理が可能である。
つまり、図３Ａに示すランレングス変換前の画像データのうち同色の画像データは、同一ウィンドウ処理可能な部分（１〜８行目）及び同一ウィンドウ処理ができない部分（９行目）からなる。また、図３Ａに示すランレングス変換前の画像データのうちグラデーションの画像データは、同一ウィンドウ処理ができない部分（１０行目）及び同一ウィンドウ処理可能である部分（１１〜１７行目）からなる。
同一ウィンドウ処理ができない部分は、同一ウィンドウ処理可能な部分の境界にあたる。以下、このように同一ウィンドウ処理ができず、同一ウィンドウ処理可能な部分の境界にある行を「境界行」と記載する。ウィンドウ幅が３の場合、境界行の数は２であり、ウィンドウ幅が５の場合、境界行の数は４である。つまり、ウィンドウ幅から１を減じることにより、境界行の数を求めることができる。
【００３７】
図６は、図２の算出部１２４が同一ウィンドウ処理行を算出する手順を示すフローである。
算出部１２４がこの手順によって算出した同一ウィンドウ処理行は、図２の生成部１２６及び付加部１３８に出力される。
【００３８】
図６に示すように、算出部１２４は、図２の受付部１２２によって受け付けられたランレングス変換済み画像データを構成する１〜Ｎ行それぞれについて、ステップ１０２〜１２４の処理を実行する。なお、境界行の数は、予め０に設定されているものとする。
ステップ１００（Ｓ１００）において、ｉに１を設定する。
ステップ１０２（Ｓ１０２）において、ｉ行目の副走査ラン長を取得する。
【００３９】
ステップ１０４（Ｓ１０４）において、境界行の数が０であるか否かを判定する。境界行の数が０である場合には、ステップ１０６の処理に進み、境界行の数が０でない場合には、ステップ１２２の処理に進む。
ステップ１０６（Ｓ１０６）において、ステップ１０２において取得した副走査ラン長がウィンドウ幅以上であるか否かを判定する。副走査ラン長がウィンドウ幅以上である場合には、ステップ１０８の処理に進み、副走査ラン長がウィンドウ幅より小さい場合には、ステップ１２４の処理に進む。
なお、このように処理行に含まれる副走査方向ラン長がウィンドウ幅以上であるか否かを判定するのは、処理行に含まれる副走査方向ラン長がウィンドウ幅以上である場合には、ウィンドウ処理の結果を利用することにより、ウィンドウ処理全体を高速化することができるからである。
【００４０】
ステップ１０８（Ｓ１０８）において、ｉが１の場合、ステップ１１０の処理に進み、１＜ｉ＜Ｎの場合、ステップ１１２の処理に進み、ｉがＮの場合、ステップ１１８の処理に進む。
ステップ１１０（Ｓ１１０）において、ステップ１０２において取得した副走査ラン長から（ウィンドウ幅−１）／２を減じた値を同一ウィンドウ処理行に設定し、ステップ１１４の処理に進む。ｉが１の場合、副走査ラン長から境界行を２で除した値を減じた値が同一ウィンドウ処理行となる。
【００４１】
ステップ１１２（Ｓ１１２）において、ステップ１０２において取得した副走査ラン長から（ウィンドウ幅−１）を減じた値を同一ウィンドウ処理行に設定し、ステップ１１４の処理に進む。１＜ｉ＜Ｎの場合、副走査ラン長から境界行を減じた値が同一ウィンドウ処理行となる。
ステップ１１４（Ｓ１１４）において、ウィンドウ幅から１を減じた値を境界行の数に設定し、ステップ１１６の処理に進む。
【００４２】
ステップ１１６（Ｓ１１６）において、ｉをインクリメントして、ステップ１０２の処理に戻る。
ステップ１１８（Ｓ１１８）において、ステップ１０２において取得した副走査ラン長から（ウィンドウ幅−１）／２を減じた値を同一ウィンドウ処理行に設定し、ステップ１２０の処理に進む。ｉがＮの場合、ｉが１の場合と同様、副走査ラン長から境界行を２で除した値を減じた値が同一ウィンドウ処理行となる。
【００４３】
ステップ１２０（Ｓ１２０）において、境界行の数を０に設定する。
ステップ１２２（Ｓ１２２）において、境界行の数をデクリメントし、ステップ１２４の処理に進む。
ステップ１２４（Ｓ１２４）において、同一ウィンドウ処理行を１に設定し、ステップ１０４の処理に戻る。
【００４４】
ここで、算出部１２４が図３Ｃに示すランレングス変換済み画像データについて同一ウィンドウ処理行を算出する場合を考える。図３Ｃに示すランレングス変換済み画像データを構成する１行目及び２行目それぞれについて、ステップ１０２〜１２４の処理を実行する。
【００４５】
[１行目の処理]
ステップ１００（Ｓ１００）において、ｉに１を設定する。
ステップ１０２（Ｓ１０２）において、１行目の副走査ラン長である９を取得する。
【００４６】
ステップ１０４（Ｓ１０４）において、境界行の数が０なので、ステップ１０６の処理に進む。
ステップ１０６（Ｓ１０６）において、副走査ラン長である９はウィンドウ幅である３以上なので、ステップ１０８の処理に進む。
【００４７】
ステップ１０８（Ｓ１０８）において、ｉは１なので、ステップ１１０の処理に進む。
ステップ１１０（Ｓ１１０）において、副走査ラン長から（ウィンドウ幅−１）／２を減じた値（９−（３−１）／２＝８）を同一ウィンドウ処理行に設定し、ステップ１１４の処理に進む。
【００４８】
ステップ１１４（Ｓ１１４）において、ウィンドウ幅である３から１を減じた値（＝２）を境界行の数に設定し、ステップ１１６の処理に進む。
ステップ１１６（Ｓ１１６）において、ｉである１に１を加え、ステップ１０２の処理に戻る。
【００４９】
[２行目の処理]
ステップ１０２（Ｓ１０２）において、２行目の副走査ラン長である８を取得する。
ステップ１０４（Ｓ１０４）において、境界行の数が２なので、ステップ１２２の処理に進む。
【００５０】
ステップ１２２（Ｓ１２２）において、境界行の数である２から１を減じて、ステップ１２４の処理に進む。
ステップ１２４（Ｓ１２４）において、同一ウィンドウ処理行を１に設定し、ステップ１０４の処理に戻る。
【００５１】
ステップ１０４（Ｓ１０４）において、境界行の数が１なので、ステップ１２２の処理に進む。
ステップ１２２（Ｓ１２２）において、境界行の数である１から１を減じて、ステップ１２４の処理に進む。
【００５２】
ステップ１２４（Ｓ１２４）において、同一ウィンドウ処理行を１に設定し、ステップ１０４の処理に戻る。
ステップ１０４（Ｓ１０４）において、境界行の数が０なので、ステップ１０６の処理に進む。
【００５３】
ステップ１０６（Ｓ１０６）において、副走査ラン長である８はウィンドウ幅である３以上なので、ステップ１０８の処理に進む。
ステップ１０８（Ｓ１０８）において、ｉが２なので、ステップ１１８の処理に進む。
【００５４】
ステップ１１０（Ｓ１１０）において、副走査ラン長から（ウィンドウ幅−１）／２を減じた値（８−（３−１）／２＝７）を同一ウィンドウ処理行に設定し、ステップ１２０の処理に進む。
ステップ１２０（Ｓ１２０）において、境界行の数を０に設定する。
このように、図３Ｃに示すランレングス変換済み画像データの１行目について、同一ウィンドウ処理行８が設定され、同画像データの２行目について、同一ウィンドウ処理行１，１，７が設定される。
【００５５】
[生成部，記憶部]
図２に戻り、生成部１２６は、算出部１２４が図６の手順によって算出した同一ウィンドウ処理行に基づいて、後段のウィンドウ処理部１３０に用いられる画像データが記憶部１２８に格納される際の制御信号を生成する。
記憶部１２８は、例えば、ラインバッファであり、ランレングス変換（主走査方向）済み画像データを行ごとに一時的に格納する。
【００５６】
具体的には、生成部１２６は、同一ウィンドウ処理行が１である場合には、同一ウィンドウ処理行が算出されたランレングス変換済み画像データに対応するランレングス変換（主走査方向）済み画像データが記憶部１２８に格納されるよう、制御信号を生成する。
生成部１２６は、同一ウィンドウ処理行が１より大きい場合には、同一ウィンドウ処理行が算出されたランレングス変換済み画像データの行に対応するランレングス変換（主走査方向）済み画像データの行のうち、先頭行が同一ウィンドウ処理行だけコピーされて記憶部１２８に格納されるよう、制御信号を生成する。
なお、記憶部１２８に画像データが格納されていないときには、同一ウィンドウ処理行が算出されたランレングス変換済み画像データの行に対応するランレングス変換（主走査方向）済み画像データの行のうち、先頭行が同一ウィンドウ処理行だけ一斉に記憶部１２８に格納されるよう、制御信号を生成する。
【００５７】
このように、同一ウィンドウ処理行によっては、行ごとにランレングス変換（主走査方向）済み画像データを格納するのではなく、同一ウィンドウ処理行だけランレングス変換（主走査方向）済み画像データをコピーして格納又は一斉に格納することにより、すべての行ごとにランレングス変換（主走査方向）済み画像データを格納する場合に比べて、ウィンドウ処理の前処理を高速化することができるので、ウィンドウ処理全体を高速化することができる。
さらに、生成部１２６は、同一ウィンドウ処理行だけ画像データをコピーして格納又は一斉に格納する場合には、このことを示すフラグ等を対応付けて格納する。
【００５８】
[ウィンドウ処理部]
ウィンドウ処理部１３０は、記憶部１２８に格納されたランレングス変換（主走査方向）済み画像データに対して行ごとにウィンドウ処理を施す。
なお、同一ウィンドウ処理行が１より大きく、画像データが同一ウィンドウ処理行だけコピーして格納又は一斉に格納されたことを示すフラグ等が対応付けられている場合には、ウィンドウ処理部１３０は、このように格納された画像データのうち先頭行に対応する画像データにのみ、ウィンドウ処理を施し、残りの行に対応する画像データについては、先頭行に対応する画像データのウィンドウ処理結果を利用する。
このように、同一ウィンドウ処理行が１より大きい場合には、ウィンドウ処理結果を利用することにより、すべての行ごとにウィンドウ処理を施す場合に比べて、ウィンドウ処理を高速化することができる。
【００５９】
ウィンドウ処理部１３０は、上述したように、乗算部１３２、シフト部１３４及び加算部１３６から構成される。
乗算部１３２は、記憶部１２８に格納された画像データを行ごとに読み出し、画素値に重み付け係数を乗算する。
シフト部１３４は、記憶部１２８に格納された画像データを行ごとに読み出し、右又は左にｎ画素シフトする。
加算部１３６は、記憶部１２８に格納された画像データの複数行を読み出し、加算する。
【００６０】
図７は、ウィンドウ処理部１３０によるウィンドウ処理の手順を示すフローチャートである。
以下、図２の記憶部１２８には、（ｎ−１）行目のランレングス変換（主走査方向）済み画像データ（以下「Ｄｎ−１」）、ｎ行目のランレングス変換（主走査方向）済み画像データ（以下Ｄｎ）、及び、（ｎ＋１）行目のランレングス変換（主走査方向）済み画像データ（以下「Ｄｎ＋１」）が格納されており、これらの画像データを記憶部１２８から読み出し、図４に示したウィンドウを用いてウィンドウ処理を実行するものとする。
なお、ｎのとりうる値は１〜Ｎ（Ｎはランレングス変換（主走査方向）済み画像データを構成する行の数）であり、ｎのとりうる値ごとに、ステップ２００〜２１８の処理を実行する。
ただし、ｎ＝１の場合、実際には存在しない０行目のランレングス変換（主走査）済み画像データＤ０にウィンドウ処理を実行することになり、ｎ＝Ｎの場合、実際には存在しない（Ｎ＋１）行目のランレングス変換（主走査）済み画像データＤＮ＋１にウィンドウ処理を実行することになる。このため、Ｄ０を記憶部１２８から読み出す際には、Ｄ１を記憶部１２８から読み出し、ＤＮ＋１を記憶部１２８から読み出す際には、ＤＮを記憶部１２８から読み出す。つまり、Ｄ０はＤ１であるものとしてウィンドウ処理を実行し、ＤＮ＋１はＤＮであるものとしてウィンドウ処理を実行する。
【００６１】
ステップ２００〜２０４（Ｓ２００〜２０４）において、Ｄｎ＋１への乗算及びシフトがなされる。
ステップ２００（Ｓ２００）に示すように、図２の乗算部１３２は、Ｄｎ＋１に重み付け係数Ｋ（−１，１）＝Ｋ（１，１）＝０．０５を乗算する。乗算部１３２による乗算の詳細は後述する。
ステップ２０２（Ｓ２０２）において、図２のシフト部１３４は、ステップ２００において乗算されたＤｎ＋１を左右に１画素シフトする。シフト部１３４によるシフトの詳細は後述する。
なお、以下、乗算及びシフトされた画像データは、乗じた値及びシフトした画素数（右にシフトした画素数は正の数。左にシフトした画素数は負の数）を付加して記載する。例えば、Ｄｎ＋１に０．０５を乗じて右に１画素シフトした場合には、Ｄｎ＋１（０．０５，１）と記載する。
ステップ２０４（Ｓ２０４）において、乗算部１３２は、Ｄｎ＋１に重み付け係数Ｋ（０，１）＝０．１を乗算する。
【００６２】
ステップ２０６〜２１０（Ｓ２０６〜２１０）において、Ｄｎへの乗算及びシフトがなされる。
ステップ２０６（Ｓ２０６）において、乗算部１３２は、Ｄｎに重み付け係数Ｋ（−１，０）＝Ｋ（１，０）＝０．１を乗算する。
ステップ２０８（Ｓ２０８）において、シフト部１３４は、ステップ２０６において乗算されたＤｎを左右に１画素シフトする。
ステップ２１０（Ｓ２１０）において、乗算部１３２は、Ｄｎに重み付け係数Ｋ（０，０）＝０．４を乗算する。
【００６３】
ステップ２１２〜２１６（Ｓ２１２〜２１６）において、Ｄｎ＋１への乗算及びシフトがなされる。
ステップ２１２（Ｓ２１２）において、乗算部１３２は、Ｄｎ−１に重み付け係数Ｋ（−１，−１）＝Ｋ（１，−１）＝０．０５を乗算する。
ステップ２１４（Ｓ２１４）において、シフト部１３４は、ステップ２１２において乗算されたＤｎ−１を左右に１画素シフトする。
ステップ２１６（Ｓ２１６）において、乗算部１３２は、Ｄｎ−１に重み付け係数Ｋ（０，−１）＝０．１を乗算する。
ステップ２１８（Ｓ２１８）において、加算部１３６は、ステップ２００〜２１６において求められた画像データを加算する。加算部１３６は、Ｄｎ＋１（０．０５，−１）、Ｄｎ＋１（０．１，０）、Ｄｎ＋１（０．０５，１）、Ｄｎ（０．１，−１）、Ｄｎ（０．４，０）、Ｄｎ（０．１，１）、Ｄｎ−１（０．０５，−１）、Ｄｎ−１（０．１，０）、Ｄｎ−１（０．０５，１）を加算した結果を付加部１３８に出力する。加算部１３６による加算の詳細は後述する。
【００６４】
図８は、図２の乗算部１３２による乗算の手順を示すフローチャートである。
ステップ３００（Ｓ３００）において、乗算部１３２は、処理対象の行に含まれるランデータのうち、先頭のランデータの画素値を取り出す。
ステップ３０２（Ｓ３０２）において、乗算部１３２は、ステップ３００（又はステップ３０６）において取り出した画素値に重み付け係数を乗算する。
【００６５】
ステップ３０４（Ｓ３０４）において、乗算部１３２は、処理対象の行に含まれるランデータすべてについて、画素値に重み付け係数を乗算したか否かを判定する。処理対象の行に含まれるランデータすべてについて、画素値に重み付け係数を乗算した場合には、処理を終了し、そうでない場合には、ステップ３０６の処理に進む。
ステップ３０６（Ｓ３０６）において、乗算部１３２は、処理対象の行に含まれるランデータのうち、ステップ３０２において画素値が乗算されたランデータより後方にあるランデータから画素値を取り出し、ステップ３０２の処理に戻る。
【００６６】
図９は、図２のシフト部１３４によるシフトの手順を示すフローチャートである。
ここでは、処理対象の行を右方向にシフトする場合を説明するが、左方向にシフトする場合には、先頭のランデータに対する処理と最後尾のランデータに対する処理とを逆にすればよい。
【００６７】
ステップ４００（Ｓ４００）において、シフト部１３４は、処理対象の行に含まれるランデータのうち、先頭のランデータの主走査方向ラン長を取り出す。
ステップ４０２（Ｓ４０２）において、シフト部１３４は、ステップ４００において取り出した主走査方向ラン長にシフト量Ｎ（Ｎは非ゼロの整数）を加算する。
【００６８】
ステップ４０４（Ｓ４０４）において、シフト部１３４は、処理対象の行に含まれるランデータのうち、最後尾のランデータの主走査方向ラン長を取り出す。
ステップ４０６（Ｓ４０６）において、シフト部１３４は、ステップ４０４において取り出した主走査方向ラン長と、ステップ４０２におけるシフト量Ｎとの大小関係を判定する。主走査方向ラン長がシフト量Ｎよりも小さい場合には、ステップ４０８の処理に進み、主走査方向ラン長がシフト量Ｎと等しい場合には、ステップ４１２の処理に進み、主走査方向ラン長がシフト量Ｎよりも大きい場合には、ステップ４１４の処理に進む。
【００６９】
ステップ４０８（Ｓ４０８）において、シフト部１３４は、シフト量Ｎからステップ４０４において取り出した主走査方向ラン長を減じた値をシフト量Ｎに設定する。
ステップ４１０（Ｓ４１０）において、シフト部１３４は、ステップ４０４において主走査方向ラン長が取り出されたランデータそのものを削除し、ステップ４０４の処理に戻る。
【００７０】
ステップ４１２（Ｓ４１２）において、シフト部１３４は、ステップ４０４において主走査方向ラン長が取り出されたランデータそのものを削除し、処理を終了する。
ステップ４１４（Ｓ４１４）において、シフト部１３４は、ステップ４０４において取り出された主走査方向ラン長からシフト量Ｎを減じ、処理を終了する。
【００７１】
図１０は、図２の加算部１３６による加算の手順を示すフローチャートである。
加算部１３６は、図２の乗算部１３２及びシフト部１３４によって乗算及びシフトされた画像データ（Ｄｎ＋１（０．０５，−１）、Ｄｎ＋１（０．１，０）、Ｄｎ＋１（０．０５，１）、Ｄｎ（０．１，−１）、Ｄｎ（０．４，０）、Ｄｎ（０．１，１）、Ｄｎ−１（０．０５，−１）、Ｄｎ−１（０．１，０）、Ｄｎ−１（０．０５，１））から２つずつ選んで加算することを繰り返す。
以下、Ｄｎ＋１（０．０５，−１）及びＤｎ＋１（０．１，０）のうち２つが選ばれる場合について説明するが、これ以外の２つが選ばれた場合についても同様の手順で加算する。
【００７２】
ステップ５００（Ｓ５００）において、加算部１３６は、Ｄｎ＋１（０．０５，−１）に含まれるランデータのうち、先頭のランデータの主走査方向ラン長をＬ１とし、先頭のランデータの画素値をＶ１とする。また、Ｄｎ＋１（０．１，０）に含まれるランデータのうち、先頭のランデータの主走査方向ラン長をＬ２とし、先頭のランデータの画素値をＶ２とする。
ステップ５０２（Ｓ５０２）において、加算部１３６は、Ｌ１及びＬ２のいずれか小さい値をＬ０とし、Ｖ１及びＶ２のいずれか小さい値をＶ０とする。
【００７３】
ステップ５０４（Ｓ５０４）において、加算部１３６は、Ｌ０が主走査方向ラン長であって、Ｖ０が画素値であるランデータを出力する。
ステップ５０６（Ｓ５０６）において、加算部１３６は、Ｌ１からＬ０を減じた値をＬ１に設定し、Ｌ２からＬ０を減じた値をＬ２に設定する。
【００７４】
ステップ５０８（Ｓ５０８）において、加算部１３６は、Ｌ１が０より大きいか否かを判定する。Ｌ１が０である場合には、ステップ５１０の処理に進み、Ｌ１が０より大きい場合には、ステップ５１４の処理に進む。
ステップ５１０（Ｓ５１０）において、加算部１３６は、Ｄｎ＋１（０．０５，−１）に次のランデータがあるか否かを判定する。次のランデータがある場合には、ステップ５１２の処理に進み、次のランデータがない場合には、処理を終了する。
【００７５】
ステップ５１２（Ｓ５１２）において、加算部１３６は、Ｄｎ＋１（０．０５，−１）に含まれる次のランデータについて、このランデータの主走査方向ラン長をＬ１とし、先頭のランデータの画素値をＶ１とし、ステップ５１４の処理に進む。
ステップ５１４（Ｓ５１４）において、加算部１３６は、Ｌ２が０より大きいか否かを判定する。Ｌ２が０である場合には、ステップ５１６の処理に進み、Ｌ２が０より大きい場合には、ステップ５０２の処理に戻る。
【００７６】
ステップ５１６（Ｓ５１６）において、加算部１３６は、Ｄｎ＋１（０．１，０）に次のランデータがあるか否かを判定する。次のランデータがある場合には、ステップ５１８の処理に進み、次のランデータがない場合には、処理を終了する。
ステップ５１８（Ｓ５１８）において、加算部１３６は、Ｄｎ＋１（０．１，０）に含まれる次のランデータについて、このランデータの主走査方向ラン長をＬ２とし、先頭のランデータの画素値をＶ２とし、ステップ５０２の処理に戻る。
【００７７】
[付加部]
図２に戻り、付加部１３８は、算出部１２４が図６の手順によって求めた同一ウィンドウ処理行を、ウィンドウ処理部１３０が図７〜１０の手順によって求めた画像データに付加する。同一ウィンドウ処理行が、ランレングス変換済み画像データの行ごとに求められるのに対し、ウィンドウ処理部１３０は、ランレングス変換（主走査方向）済み画像データにウィンドウ処理を施しており、画像データの種別が異なる。そこで、ウィンドウ処理部１３０によって求められた画像データ（ランレングス変換（主走査方向）済み画像データ）に対し、副走査方向のランレングス変換を施し、ランレングス変換済み画像データとした後、同一ウィンドウ処理行を付加する。
【符号の説明】
【００７８】
１      画像処理装置
１００  画像処理部
１２０  画像処理プログラム
１２２  受付部
１２４  算出部  
１２６  生成部
１２８  記憶部
１３０  ウィンドウ処理部
１３２  乗算部
１３４  シフト部
１３６  加算部
１３８  付加部
１４０  変換部
【図１】
2013055509.tif 000003
【図２】
2013055509.tif 000004
【図３Ａ】
2013055509.tif 000005
【図３Ｂ】
2013055509.tif 000006
【図３Ｃ】
2013055509.tif 000007
【図４Ａ】
2013055509.tif 000008
【図４Ｂ】
2013055509.tif 000009
【図４Ｃ】
2013055509.tif 000010
【図４Ｄ】
2013055509.tif 000011
【図５】
2013055509.tif 000012
【図６】
2013055509.tif 000013
【図７】
2013055509.tif 000014
【図８】
2013055509.tif 000015
【図９】
2013055509.tif 000016
【図１０】
2013055509.tif 000017