(57)【特許請求の範囲】
【請求項１】
データ記憶の余裕量に係る判定条件に従ってデータ量の保障が必要か不要かを判定する判定部と、
データ量の保障が必要な場合に、データ処理の複数候補から各候補のデータ量を比較して保障用のデータ処理を選択する選択部と、
を有し、
データ量の保障が必要な場合に、前記余裕量に応じて、複数ラインで構成される処理対象データのラインごとに保障用のデータ処理を選択するライン単位の処理、または、前記各ライン内のオブジェクトごとに保障用のデータ処理を選択するオブジェクト単位の処理を選択して実行する、
ことを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記余裕量が第１の判定閾値以下の場合に前記ライン単位の処理を実行し、
前記余裕量が前記第１の判定閾値より大きく第２の判定閾値以下（但し第２の判定閾値は第１の判定閾値よりも大きい）の場合に前記オブジェクト単位の処理を実行し、
前記余裕量が前記第２の判定閾値よりも大きい場合にデータ量の保障が不要であると判定する、
ことを特徴とするデータ処理装置。
【請求項３】
請求項１または２に記載のデータ処理装置において、
前記判定部は、前記余裕量が判定基準を満たさない不十分な量である場合に、データ量の保障が必要であると判定し、前記余裕量が判定基準を満たす十分な量である場合に、データ量の保障が不要であると判定し、
前記選択部は、データ量の保障が不要な場合に、データ処理の複数候補から、各候補のデータ量よりも処理性能を優先してデータ処理を選択する、
ことを特徴とするデータ処理装置。
【請求項４】
請求項１から３のいずれか１項に記載のデータ処理装置において、
データ処理の複数候補には、標準データ処理と当該標準データ処理よりも高性能な高性能データ処理とが含まれ、
前記選択部は、データ量の保障が必要な場合に、標準データ処理と高性能データ処理のうちデータ量の小さい方、又は、前記複数候補のうち標準データ処理と高性能データ処理よりもデータ量の小さいデータ処理を保障用のデータ処理とする、
ことを特徴とするデータ処理装置。
【請求項５】
請求項１から４のいずれか１項に記載のデータ処理装置において、
データ処理の複数候補には、標準データ処理と当該標準データ処理よりも高性能な高性能データ処理とが含まれ、
前記選択部は、データ量の保障が不要な場合に高性能データ処理を選択する、
ことを特徴とするデータ処理装置。
【請求項６】
請求項１から５のいずれか１項に記載のデータ処理装置において、
データ処理に許容される記憶容量のうちの空き容量を前記余裕量として参照することにより、前記記憶容量を超えないようにデータ処理のデータ量を保障する、
ことを特徴とするデータ処理装置。
【請求項７】
コンピュータに、
データ記憶の余裕量を参照してデータ量の保障が必要か不要かを判定する判定機能と、
データ量の保障が必要な場合に、データ処理の複数候補から各候補のデータ量を比較して保障用のデータ処理を選択する選択機能と、
データ量の保障が必要な場合に、前記余裕量に応じて、複数ラインで構成される処理対象データのラインごとに保障用のデータ処理を選択するライン単位の処理、または、前記各ライン内のオブジェクトごとに保障用のデータ処理を選択するオブジェクト単位の処理を選択して実行する機能と、
を実現させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびプログラムに関する。
【背景技術】
【０００２】
データに対して例えば画像処理等のデータ処理を行うデータ処理装置が知られており、従来から画像処理等のデータ処理に係る装置がいくつか提案されている。
【０００３】
例えば、特許文献１には、使用可能メモリ量をチェックして、複数バンドを同時にレンダリングするためのメモリサイズを検知することにより、メモリ不足を発生させないようにする画像形成装置が記載されている。
【０００４】
また、特許文献２には、ＰＤＬデータが所定の条件を満たす場合に、ＰＤＬデータが増加しないようＰＤＬデータを中間データに変換することにより、中間データの生成および中間データを用いたイメージ描画を容易に行うことができ、少ないフレームメモリ量で迅速に画像のラスタライズを行うことが可能な画像処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１２５７１３号公報
【特許文献２】特開２００９−３８５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、データ処理のデータ量を保障することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、データ記憶の余裕量に係る判定条件に従ってデータ量の保障が必要か不要かを判定する判定部と、データ量の保障が必要な場合に、データ処理の複数候補から各候補のデータ量を比較して保障用のデータ処理を選択する選択部と、を有し、データ量の保障が必要な場合に、前記余裕量に応じて、複数ラインで構成される処理対象データのラインごとに保障用のデータ処理を選択するライン単位の処理、または、前記各ライン内のオブジェクトごとに保障用のデータ処理を選択するオブジェクト単位の処理を選択して実行する、ことを特徴とするデータ処理装置である。
【０００８】
請求項２に係る発明は、請求項１に記載のデータ処理装置において、前記余裕量が第１の判定閾値以下の場合に前記ライン単位の処理を実行し、前記余裕量が前記第１の判定閾値より大きく第２の判定閾値以下（但し第２の判定閾値は第１の判定閾値よりも大きい）の場合に前記オブジェクト単位の処理を実行し、前記余裕量が前記第２の判定閾値よりも大きい場合にデータ量の保障が不要であると判定する、ことを特徴とするデータ処理装置である。
【０００９】
請求項３に係る発明は、請求項１または２に記載のデータ処理装置において、前記判定部は、前記余裕量が判定基準を満たさない不十分な量である場合に、データ量の保障が必要であると判定し、前記余裕量が判定基準を満たす十分な量である場合に、データ量の保障が不要であると判定し、前記選択部は、データ量の保障が不要な場合に、データ処理の複数候補から、各候補のデータ量よりも処理性能を優先してデータ処理を選択する、ことを特徴とするデータ処理装置である。
【００１０】
請求項４に係る発明は、請求項１から３のいずれか１項に記載のデータ処理装置において、データ処理の複数候補には、標準データ処理と当該標準データ処理よりも高性能な高性能データ処理とが含まれ、前記選択部は、データ量の保障が必要な場合に、標準データ処理と高性能データ処理のうちデータ量の小さい方、又は、前記複数候補のうち標準データ処理と高性能データ処理よりもデータ量の小さいデータ処理を保障用のデータ処理とする、ことを特徴とするデータ処理装置である。
【００１１】
請求項５に係る発明は、請求項１から４のいずれか１項に記載のデータ処理装置において、データ処理の複数候補には、標準データ処理と当該標準データ処理よりも高性能な高性能データ処理とが含まれ、前記選択部は、データ量の保障が不要な場合に高性能データ処理を選択する、ことを特徴とするデータ処理装置である。
【００１２】
請求項６に係る発明は、請求項１から５のいずれか１項に記載のデータ処理装置において、データ処理に許容される記憶容量のうちの空き容量を前記余裕量として参照することにより、前記記憶容量を超えないようにデータ処理のデータ量を保障する、ことを特徴とするデータ処理装置である。
【００１３】
請求項７に係る発明は、コンピュータに、データ記憶の余裕量を参照してデータ量の保障が必要か不要かを判定する判定機能と、データ量の保障が必要な場合に、データ処理の複数候補から各候補のデータ量を比較して保障用のデータ処理を選択する選択機能と、データ量の保障が必要な場合に、前記余裕量に応じて、複数ラインで構成される処理対象データのラインごとに保障用のデータ処理を選択するライン単位の処理、または、前記各ライン内のオブジェクトごとに保障用のデータ処理を選択するオブジェクト単位の処理を選択して実行する機能と、を実現させることを特徴とするプログラムである。
【発明の効果】
【００１４】
請求項１に係る発明によれば、データ処理のデータ量を保障することができる。また、例えば、データ量の保障が必要な場合に、ライン単位の処理またはオブジェクト単位の処理を選択的に実行できるようになる。
【００１５】
請求項２に係る発明によれば、データ記憶の余裕量に応じて、データ量の保障が必要であるか否かを判定し、さらに、ライン単位の処理またはオブジェクト単位の処理を選択的に実行できるようになる。
【００１６】
請求項３に係る発明によれば、データ記憶の余裕量が十分な場合にデータ処理の処理性能を優先することができる。また、例えば、データ記憶の余裕量が不十分か否かに応じてデータ量を保障することができる。
【００１７】
請求項４に係る発明によれば、データ量の保障が必要な場合に、標準データ処理と高性能データ処理のうちデータ量の小さい方、又は、標準データ処理と高性能データ処理よりもデータ量の小さいデータ処理を利用することができる。
【００１８】
請求項５に係る発明によれば、データ量の保障が不要な場合に、標準データ処理よりも高性能な高性能データ処理を利用することができる。
【００１９】
請求項６に係る発明によれば、データ処理に許容される記憶容量を超えないようにデータ量を保障することができる。
【００２０】
請求項７に係る発明によれば、データ処理のデータ量を保障することができる。また、例えば、データ量の保障が必要な場合に、ライン単位の処理またはオブジェクト単位の処理を選択的に実行できるようになる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施において好適なデータ処理装置の具体例を示す図である。
【図２】ラスタ処理とベクタ処理の比較例を示す図である。
【図３】データ量の保障における処理単位の具体例を説明するための図である。
【図４】図１のデータ処理装置による処理の具体例を示す図である。
【図５】累積データ量と余裕メモリ量の具体例を示す図である。
【図６】ライン単位の処理に係る具体例を示す図である。
【図７】オブジェクト単位の処理に係る具体例を示す図である。
【図８】画像処理結果の具体例を示す図である。
【発明を実施するための形態】
【００２２】
図１は、本発明の実施において好適なデータ処理装置１００の具体例を示す図である。図１のデータ処理装置１００は、処理対象となるデータに対してデータ処理を施す。処理対象となるデータの好適な具体例は画像データ（文字や数字や記号のみのデータを含む）であり、例えばコンピュータなどの外部の装置から図示しないデータバス等を介して、画像データがデータ処理装置１００内のロードバッファ１０に送られる。
【００２３】
また、図１のデータ処理装置１００が、画像読み取り機能（スキャン機能）等を備えた画像処理装置内に組み込まれ、画像読み取り機能を介して紙などの媒体から得られた画像データがロードバッファ１０に入力されてもよい。さらに、データ処理装置１００による処理後の画像データがストアバッファ９０から出力され、処理後の画像データに対応した画像が紙などに印刷されてもよいし、処理後の画像データが外部の装置に提供されてもよい。このように、図１のデータ処理装置１００により画像処理装置が実現されてもよい。
【００２４】
図１のデータ処理装置１００が実行するデータ処理の具体例は、ガンマ補正，ＲＧＢ−ＣＭＹＫ変換，ノズル不吐出補正，スクリーニングなどの画像処理である。なお、行列計算やデータ圧縮などのデータ処理が実行されてもよい。
【００２５】
図１のデータ処理装置１００は、処理対象となる画像データ（例えば中間言語のデータ）を画像処理するにあたり、画像データをラスタライズしてからラスタデータで当該画像処理を実現する機能と、画像データをラスタライズせずにベクタデータで当該画像処理を実現する機能を備えている。
【００２６】
ラスタ／ベクタ選択部２０は、ロードバッファ１０から得られる画像データに対する画像処理において、ラスタ処理とベクタ処理のどちらを適用するのかを選択する。
【００２７】
余裕メモリ量判定部３０は、画像処理後の画像データが記憶されるメモリの余裕量（余裕メモリ）を参照し、データ量の保障が必要か不要か等を判定する。
【００２８】
余裕メモリ量算出部４０は、画像処理後の画像データが記憶されるメモリに関するメモリ情報に基づいて、メモリの余裕量（余裕メモリ）を算出する。
【００２９】
画像データに対してラスタ処理を適用する場合、ラスタ展開部５０は、画像データをラスタデータに展開（ラスタライズ）する。ラスタ処理部６０は、ラスタデータに展開された画像データをラスタ処理して画像処理後の画像データを得る。そして、ラスタ処理部６０により得られた画像処理後の画像データが、セレクタ８０を介して、ストアバッファ９０に送られる。
【００３０】
一方、画像データに対してベクタ処理を適用する場合、ベクタ処理部７０は、画像データをベクタ処理して画像処理後の画像データを得る。なお、ベクタ処理部７０において実行されるベクタ処理の具体例には、定められた規則に基づいてデータを変換する処理、例えば、ｊｐｅｇやｈｕｆｆｍａｎ符号やランレングスベクタ等のデータ処理が含まれる。そして、ベクタ処理部７０により得られた画像処理後の画像データが、セレクタ８０を介して、ストアバッファ９０に送られる。
【００３１】
なお、画像データは、図１のデータ処理装置１００において処理が可能な好適な具体例の一つに過ぎず、図１のデータ処理装置１００が画像データ以外のデータを処理してもよい。
【００３２】
図１のデータ処理装置１００は、例えばＤＲＰ（Dynamic Reconfigurable Processor：動的再構成可能プロセッサ）などにより実現することができるものの、例えば、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）などにより実現されてもよいし、ＡＳＩＣ（Application Specific Integrated Circuit）で実現されてもよい。なお、データ処理装置１００を実現するための上述したハードウェアはあくまでも一例に過ぎず、他のハードウェアによりデータ処理装置１００が実現されてもよい。
【００３３】
例えば、図１のデータ処理装置１００の機能をコンピュータにより実現してもよい。データ処理装置１００をコンピュータにより実現する場合には、後に詳述するデータ処理装置１００内の各部における処理に対応したプログラムが、例えば、ディスクやメモリなどのコンピュータが読み取り可能な記憶媒体に記憶され、その記憶媒体を介してコンピュータに提供される。もちろん、インターネット等の電気通信回線を介して当該プログラムがコンピュータに提供されてもよい。そして、コンピュータが備えるＣＰＵやメモリ等のハードウェア資源と、提供された当該プログラム（ソフトウェア）との協働により、データ処理装置１００の機能が実現される。
【００３４】
図１のデータ処理装置１００の概要は以上のとおりである。次に、図１のデータ処理装置１００内の各部における処理の具体例について説明する。なお、図１に示した構成（符号を付した各部）については、以下の説明において図１の符号を利用する。
【００３５】
図２は、ラスタ処理とベクタ処理の比較例を示す図である。図２＜Ａ＞には、ラスタ処理（Ａ１）とベクタ処理（Ａ２）の処理性能に関する比較例が示されている。
【００３６】
ラスタ処理（Ａ１）では、画像データがラスタデータに展開される。例えば（Ａ１）に示す具体例のように、ＡＡＡＡＡＢＢＢの順に並ぶ複数の画素データからなるラスタデータに展開される。
【００３７】
そして、ラスタ処理（Ａ１）においては、ラスタデータを構成する複数の画素データに対して、各画素データごとに画像処理が実行される。例えば（Ａ１）に示すラスタデータの具体例では、８画素（８ピクセル）分の画像処理が必要になる。
【００３８】
一方、ベクタ処理（Ａ２）では、画像データがラスタデータに展開されず、例えば（Ａ２）に示す具体例のように、画素データＡに対応したランデータ５と画素データＢに対応したランデータ３からなるベクタデータが処理対象となる。なお、ランデータは、画素データの連続長（連続個数）に対応している。例えば（Ａ２）に示すベクタデータの具体例は、画素データＡが５画素連続し、画素データＢが３画素連続することを示している。つまり、（Ａ２）のベクタデータは、（Ａ１）のラスタデータと同じ画像データに対応している。
【００３９】
そして、ベクタ処理（Ａ２）においては、ベクタデータを構成する各画素データに対して画像処理が実行され、その画像処理結果が各画素データのランデータに応じた連続個数だけ利用される。例えば（Ａ２）に示すベクタデータの具体例では、画素データＡと画素データＢの２画素（２ピクセル）分の画像処理のみが必要とされ、画素データＡの画像処理結果が５画素分だけコピーされ、画素データＢの画像処理結果が３画素分だけコピーされる。
【００４０】
このように、図２＜Ａ＞に示す具体例では、ラスタ処理（Ａ１）について８画素分の画像処理が必要になるのに対し、ベクタ処理（Ａ２）については２画素分の画像処理で済むため、ラスタ処理（Ａ１）との比較においてベクタ処理（Ａ２）は４倍の高速化が可能になる。
【００４１】
図２＜Ｂ＞には、ラスタ処理（Ｂ１）とベクタ処理（Ｂ２）のデータ量に関する比較例が示されている。
【００４２】
ラスタ処理（Ｂ１）では、画像データがラスタデータに展開される。例えば（Ｂ１）に示す具体例のように、ＡＢＣＤＥＦＧＨの順に並ぶ複数の画素データからなるラスタデータに展開される。例えば、各画素データのデータ量が１Ｂｙｔｅ（バイト）であれば、（Ｂ１）に示す具体例におけるラスタデータのデータ量は８Ｂｙｔｅとなる。
【００４３】
一方、ベクタ処理（Ｂ２）では、各画素データとそれに対応したランデータからなるベクタデータが利用される。例えば（Ｂ２）に示す具体例のように、ＡＢＣＤＥＦＧＨの順に並ぶ複数の画素データと、各画素データに対応した各ランデータからなるベクタデータが処理対象となる。（Ｂ２）のベクタデータは、（Ｂ１）のラスタデータと同じ画像データに対応している。そして、例えば、各画素データのデータ量が１Ｂｙｔｅ（バイト）であり、各ランデータのデータ量が２Ｂｙｔｅであれば、（Ｂ２）に示す具体例におけるベクタデータのデータ量は２４Ｂｙｔｅとなる。
【００４４】
図２＜Ｂ＞に示す具体例では、ラスタ処理（Ｂ１）におけるラスタデータのデータ量が８Ｂｙｔｅであるのに対し、ベクタ処理（Ｂ２）におけるベクタデータのデータ量が２４Ｂｙｔｅとなり、ラスタ処理（Ｂ１）との比較においてベクタ処理（Ｂ２）はデータ量を増大させてしまう。
【００４５】
このように、ラスタ処理との比較において、ベクタ処理は、処理性能（高速性）において優れている面がある一方で、データ量を増大させてしまう場合もある。
【００４６】
そこで、図１のデータ処理装置１００は、データ量が増大しすぎないようにデータ量を保障しつつ、可能な限り高い処理性能（例えば高速性）が得られるように、ラスタ処理とベクタ処理を選択的に利用する。
【００４７】
図３は、データ量の保障における処理単位の具体例を説明するための図である。データ量の保障における処理単位としては、ライン単位とオブジェクト単位がある。
【００４８】
図３＜Ａ＞は、ライン単位の処理の具体例を示している。複数ラインで構成される画像データ（ドキュメント）を画像処理するにあたり、ライン単位の処理では、各ライン（１ライン）ごとにベクタ処理またはラスタ処理が選択される。
【００４９】
ライン単位の処理において、ベクタ処理が選択された場合には、１ラインを構成する全ての画像データがベクタデータ（画素データとランデータ）とされてベクタ処理される。また、ライン単位の処理において、ラスタ処理が選択された場合には、１ラインを構成する全ての画像データがラスタデータに展開されてラスタ処理される。なお、図３＜Ａ＞に示す具体例において、ラスタデータは、一列に配列された複数の画素データと、１つのランデータ（ａｒ）で構成されている。ランデータ（ａｒ）は、１ラインを構成する画像データの全てがラスタデータであることを示すマーカとして機能する。
【００５０】
図３＜Ｂ＞は、オブジェクト単位の処理の具体例を示している。オブジェクト単位の処理では、各ライン（１ライン）内において、オブジェクトごとにベクタ処理またはラスタ処理が選択される。例えば、図３＜Ｂ＞に示す具体例では、１ラインが複数のオブジェクト（Obj1,Obj2,obj3）で構成されており、オブジェクト１（Obj1）においてベクタ処理が選択され、オブジェクト２（Obj2）においてラスタ処理が選択され、オブジェクト３（Obj3）においてベクタ処理が選択されている。
【００５１】
なお、図３＜Ｂ＞に示す具体例において、オブジェクト２（Obj2）のラスタデータは、一列に配列された複数の画素データと、１つのランデータで構成されている。このランデータは、オブジェクト内の画像データがラスタデータであることを示すマーカとして機能する。図３＜Ｂ＞の具体例では、オブジェクト２（Obj2）のランデータが「−５」であり５個の画素データが不連続（ベクタデータではない）ことを示している。
【００５２】
図４は、図１のデータ処理装置１００による処理の具体例を示す図である。画像処理等のデータ処理に先だって、データ処理装置１００は、初期化処理を行う（Ｓ４０１）。この初期化処理では、後の処理で利用される複数のパラメータ、例えば、現在の処理対象であるオブジェクトを示す「処理オブジェクトＮｏ」と、現在の処理対象であるラインを示す「処理ラインＮｏ」と、メモリに記憶された画像処理後のデータ量である「累積データ量」と、メモリに関するデータ記憶の余裕量である「余裕メモリ量」が初期化される。
【００５３】
図５は、累積データ量と余裕メモリ量の具体例を示す図である。図５には、データ処理装置１００による画像処理の対象となる画像データと、その画像データの画像処理後のデータ、つまりストアバッファ９０から出力されるデータを記憶するメモリが図示されている。メモリは、データ処理装置１００が備えてもよいし、他の装置に設けられたものであってもよい。
【００５４】
メモリの記憶容量（メモリ容量）は、例えば画像データの１枚分のデータ量とされる。具体的には、画像データを全てラスタ処理した場合の処理後のデータが全て記憶できる容量とされる。
【００５５】
画像データは、先頭ラインから順に最終ラインまで画像処理される。例えば図５の具体例においては最上段のラインから順に最下段のラインまで画像処理される。図５には、現在の処理対象である処理ラインが図示されている。つまり、処理ラインよりも上側にある複数のラインは既に画像処理が済んでおり（処理済）、処理ラインが現在処理中であり、処理ラインよりも下側にある複数のラインは未だ画像処理が済んでいない（未処理）。
【００５６】
累積データ量は、メモリに記憶された画像処理後のデータ量である。つまり、画像データ内の処理済のラインに関する画像処理結果のデータ量である。また、許容記憶容量は、処理ラインまでの処理において許容される容量であり、処理済のラインを全てラスタ処理した場合の処理後のデータ量、つまり、累積データを全てラスタ展開した場合のデータ量に相当する。
【００５７】
具体的には、ラスタデータに展開した場合における１ラインのデータ量を「ＬＤ」とすると、処理ラインまでの画像処理が終了した時点における許容記憶容量は、「処理ラインＮｏ」と「ＬＤ」の乗算（処理ラインＮｏ×ＬＤ）により算出される。
【００５８】
図１のデータ処理装置１００は、後に詳述するように、データ量に応じてベクタ処理とラスタ処理を適宜に選択するため、許容記憶容量よりも累積データ量を少なくすることができる。そして、許容記憶容量と累積データ量の差が余裕メモリ量となる。余裕メモリ量は、余裕メモリ量算出部４０によって算出される。
【００５９】
図４に戻り、Ｓ４０１において初期化処理が行われると、Ｓ４０２とＳ４０３において余裕メモリ量の判定が行われる。余裕メモリ量判定部３０は、Ｓ４０２において、余裕メモリ量が判定閾値（β×ＬＤ）以下であるか否かを判定し、Ｓ４０３において、余裕メモリ量が判定閾値（α×ＬＤ）以下であるか否かを判定する。なお、ＬＤは、ラスタデータに展開した場合における１ラインのデータ量であり、αとβ（α＞β）は、判定閾値の係数である。αとβは、例えば経験的に得られた値が利用されてもよいし適宜に調整が可能であってもよい。
【００６０】
そして、Ｓ４０２とＳ４０３における余裕メモリ量の判定結果に応じて、Ｓ４０４とＳ４０５とＳ４０６のいずれかのステップが選択される。余裕メモリ量（Margin）が判定閾値（β×ＬＤ）以下の場合には、現在の処理対象であるライン、つまり「処理ラインＮｏ」に対応したラインに対して、ライン単位の処理が実行される（Ｓ４０６）。
【００６１】
図６は、ライン単位の処理に係る具体例を示す図である。図６には、ライン単位の処理のフローチャートが示されている。
【００６２】
ライン単位の処理において、ラスタ／ベクタ選択部２０は、現在の処理対象であるライン内のデータを全てベクタ処理する場合におけるベクタデータ量（VecD）と、そのライン内のデータを全てラスタ処理する場合におけるラスタデータ量（RasD）を算出する（Ｓ６０１）。
【００６３】
そして、ラスタ／ベクタ選択部２０は、ベクタデータ量（VecD）とラスタデータ量（RasD）の大きさを比較し（Ｓ６０２）、データ量の小さい方の処理を選択する。つまり、ラスタデータ量（RasD）よりもベクタデータ量（VecD）の方が小さければ、ベクタ処理が選択され、ベクタ処理部７０が現在の処理対象であるラインに対してベクタ処理を実行する（Ｓ６０３）。一方、ベクタデータ量（VecD）よりもラスタデータ量（RasD）の方が小さければ、ラスタ処理が選択され、ラスタ展開部５０が現在の処理対象であるラインをラスタデータに展開してから（Ｓ６０４）、ラスタ処理部６０がラスタ処理を実行する（Ｓ６０５）。なお、ラスタデータ量（RasD）とベクタデータ量（VecD）が同じ場合には、ベクタ処理を選択することが望ましいものの、ラスタ処理が選択されてもよい。
【００６４】
図６には、ライン単位の処理におけるベクタデータ量とラスタデータ量の比較例が図示されている。図６に示す比較例では、ベクタデータ量（VecD）が１２００Ｂ（バイト）、ラスタデータ量（RasD）が１０２６Ｂ（バイト）であり、この具体例の場合には、ラスタ処理が選択される。
【００６５】
図４に戻り、Ｓ４０６におけるライン単位の処理が終了すると、つまり、現在の処理対象である「処理ラインＮｏ」に対応したラインの画像処理が終了すると、データ処理装置１００は、累積データ量を算出する（Ｓ４０８）。つまり、Ｓ４０６における画像処理前の累積データ量（SumD）に、Ｓ４０６の画像処理により得られた１ライン分のデータ量（LineD）が加算され、累積データ量（SumD）が更新される。
【００６６】
そして、データ処理装置１００は、画像データの全ラインに対する画像処理が終了したか否かを確認し（Ｓ４１１）、全ラインに対する処理が終了していなければ、次のラインに対する画像処理の準備として、「処理オブジェクトＮｏ」と「余裕メモリ量」を更新し（Ｓ４１２）、さらに「処理オブジェクトＮｏ」を更新する（Ｓ４１３）。一方、画像データの全ラインに対する画像処理が終了していれば（Ｓ４１１）、当該画像データに対する画像処理が終了する。
【００６７】
Ｓ４０２とＳ４０３に戻り、余裕メモリ量の判定において、余裕メモリ量（Margin）が判定閾値（β×ＬＤ）より大きく、さらに、余裕メモリ量（Margin）が判定閾値（α×ＬＤ）以下の場合には、オブジェクト単位の処理が実行される（Ｓ４０５）。
【００６８】
図７は、オブジェクト単位の処理に係る具体例を示す図である。図７には、オブジェクト単位の処理のフローチャートが示されている。
【００６９】
オブジェクト単位の処理において、ラスタ／ベクタ選択部２０は、現在の処理対象であるオブジェクト内のデータを全てベクタ処理する場合におけるベクタデータ量（VecD）とそのオブジェクト内のデータを全てラスタ処理する場合におけるラスタデータ量（RasD）を算出する（Ｓ７０１）。
【００７０】
そして、ラスタ／ベクタ選択部２０は、ベクタデータ量（VecD）とラスタデータ量（RasD）の大きさを比較し（Ｓ７０２）、データ量の小さい方の処理を選択する。つまり、ラスタデータ量（RasD）よりもベクタデータ量（VecD）の方が小さければ、ベクタ処理が選択され、ベクタ処理部７０が現在の処理対象であるオブジェクトに対してベクタ処理を実行する（Ｓ７０３）。一方、ベクタデータ量（VecD）よりもラスタデータ量（RasD）の方が小さければ、ラスタ処理が選択され、ラスタ展開部５０が現在の処理対象であるオブジェクトをラスタデータに展開してから（Ｓ７０４）、ラスタ処理部６０がラスタ処理を実行する（Ｓ７０５）。なお、ラスタデータ量（RasD）とベクタデータ量（VecD）が同じ場合には、ベクタ処理を選択することが望ましいものの、ラスタ処理が選択されてもよい。
【００７１】
図７には、オブジェクト単位の処理におけるベクタデータ量とラスタデータ量の比較例が図示されている。図７に示す比較例では、ベクタデータ量（VecD）が９Ｂ（バイト）、ラスタデータ量（RasD）が１１Ｂ（バイト）であり、この具体例の場合には、ベクタ処理が選択される。
【００７２】
図４に戻り、Ｓ４０５におけるオブジェクト単位の処理が終了すると、つまり、現在の処理対象である「処理オブジェクトＮｏ」に対応したオブジェクトの画像処理が終了すると、データ処理装置１００は、累積データ量を算出する（Ｓ４０７）。つまり、Ｓ４０５における画像処理前の累積データ量（SumD）に、Ｓ４０５の画像処理により得られた１オブジェクト分のデータ量（ObjD）が加算され、累積データ量（SumD）が更新される。
【００７３】
そして、データ処理装置１００は、現在の処理対象である「処理ラインＮｏ」に対応したラインの終端に達したか否かを確認し（Ｓ４０９）、ラインの終端に達していなければ当該ラインにおける次のオブジェクトに対する画像処理の準備として、「処理オブジェクトＮｏ」と「余裕メモリ量」が更新される（Ｓ４１０）。一方、ラインの終端に達していれば（Ｓ４０９）、画像データの全ラインに対する画像処理が終了したか否かが確認される（Ｓ４１１）。
【００７４】
Ｓ４０２とＳ４０３に戻り、余裕メモリ量の判定において、余裕メモリ量（Margin）が判定閾値（β×ＬＤ）より大きく、さらに、余裕メモリ量（Margin）が判定閾値（α×ＬＤ）よりも大きい場合には、データ量の保障が不要と判断され、ベクタ処理部７０がベクタ処理による画像処理を実行する（Ｓ４０４）。つまり、余裕メモリ量（Margin）が判定閾値（α×ＬＤ）よりも大きい場合には、データ量の保障よりも処理性能（例えば高速性）が優先されてベクタ処理が選択される。
【００７５】
Ｓ４０４における処理が終了すると、つまり、現在の処理対象である「処理オブジェクトＮｏ」に対応したオブジェクトに対するベクタ処理が終了すると、データ処理装置１００は、累積データ量を算出する（Ｓ４０７）。つまり、Ｓ４０４における処理前の累積データ量（SumD）に、Ｓ４０４のベクタ処理により得られた１オブジェクト分のデータ量（ObjD）が加算され、累積データ量（SumD）が更新される。
【００７６】
そして、データ処理装置１００は、現在の処理対象である「処理ラインＮｏ」に対応したラインの終端に達したか否かを確認し（Ｓ４０９）、ラインの終端に達していなければ当該ラインにおける次のオブジェクトに対する画像処理の準備として、「処理オブジェクトＮｏ」と「余裕メモリ量」が更新される（Ｓ４１０）。一方、ラインの終端に達していれば（Ｓ４０９）、画像データの全ラインに対する画像処理が終了したか否かが確認される（Ｓ４１１）。
【００７７】
以上に説明した処理により、画像データの全ラインに対する画像処理が終了すると（Ｓ４１１）、当該画像データに対する画像処理が終了する。
【００７８】
図８は、画像処理結果の具体例を示す図である。図８には、処理対象となる画像データの全画素数が１０００ピクセル（横２０ピクセル×縦５０ピクセル）、メモリ容量が１０２４Ｂｙｔｅ（バイト）の場合における画像処理結果の具体例が図示されている。
【００７９】
図８の比較例１は、画像データの全領域をラスタ処理した場合における処理結果を示している。ラスタデータを構成する各画素のデータ量を１Ｂｙｔｅ（バイト）とし、各画素に対する処理時間を１ｃｌｋ（クロック）とすると、比較例１における全画像データに関するデータ量は１０００Ｂｙｔｅとなり、全画像データに関する処理時間は１０００ｃｌｋとなる。
【００８０】
図８の比較例２は、画像データの全領域をベクタ処理した場合の処理結果、つまり、画像データ内の領域１においてベクタ処理１を実行し、画像データ内の領域２においてベクタ処理２を実行した場合の処理結果を示している。
【００８１】
ベクタ処理１におけるベクタデータのＲｕｎ長（ランデータが示す画素データの連続長）を３００とし、ベクタデータの個数を１個とする。また、ベクタ処理２におけるベクタデータのＲｕｎ長（ランデータが示す画素データの連続長）を２とし、ベクタデータの個数を３５０個とする。
【００８２】
そして、ベクタデータを構成する各画素データのデータ量を１Ｂｙｔｅ（バイト）としてランデータのデータ量を２Ｂｙｔｅ（バイト）とする。つまり、ベクタデータ１個分のデータ量を３Ｂｙｔｅ（バイト）とし、ベクタデータ１個に対する画像処理の処理時間を１ｃｌｋ（クロック）とすると、領域１のベクタ処理１におけるデータ量は３Ｂｙｔｅとなり、処理時間は１ｃｌｋとなる。また、領域２のベクタ処理２におけるデータ量は１０５０Ｂｙｔｅとなり、処理時間は３５０ｃｌｋとなる。
【００８３】
したがって、図８の比較例２における全画像データに関するデータ量は１０５３Ｂｙｔｅとなり、全画像データに関する処理時間は３５１ｃｌｋとなる。比較例１に対して、比較例２では、処理時間が約２．８５倍に向上するものの、データ量が１０５３Ｂｙｔｅとなりメモリ容量の１０２４Ｂｙｔｅを超えてしまう。
【００８４】
これに対し、図８の実施例は、図１のデータ処理装置１００による処理結果、つまり、画像データ内においてベクタ処理とラスタ処理を適宜に切り換え、領域１においてベクタ処理１を実行し、領域２においてベクタ処理２を実行し、領域３においてラスタ処理を実行した場合の処理結果を示している。
【００８５】
ベクタ処理１におけるベクタデータのＲｕｎ長（ランデータが示す画素データの連続長）を３００とし、ベクタデータの個数を１個とする。また、ベクタ処理２におけるベクタデータのＲｕｎ長（ランデータが示す画素データの連続長）を２とし、ベクタデータの個数を２５０個とする。
【００８６】
そして、ベクタデータを構成する各画素データのデータ量を１Ｂｙｔｅ（バイト）として、ランデータのデータ量を２Ｂｙｔｅ（バイト）とする。つまり、ベクタデータ１個分のデータ量を３Ｂｙｔｅ（バイト）とし、ベクタデータ１個に対する画像処理の処理時間を１ｃｌｋ（クロック）とすると、領域１のベクタ処理１におけるデータ量は３Ｂｙｔｅとなり、処理時間は１ｃｌｋとなる。また、領域２のベクタ処理２におけるデータ量は７５０Ｂｙｔｅとなり、処理時間は２５０ｃｌｋとなる。また、ラスタデータを構成する各画素のデータ量を１Ｂｙｔｅ（バイト）とし、ラスタデータの各画素に対する処理時間を１ｃｌｋ（クロック）とすると、領域３のラスタ処理におけるデータ量は２００Ｂｙｔｅとなり、処理時間は２００ｃｌｋとなる。
【００８７】
したがって、図８の実施例における全画像データに関するデータ量は９５３Ｂｙｔｅとなり、全画像データに関する処理時間は４５１ｃｌｋとなる。比較例１に対して図８の実施例では、処理時間を約２．２２倍に向上させつつ、データ量が９５３Ｂｙｔｅとなり、データ量をメモリ容量の１０２４Ｂｙｔｅ以下に抑えることができる。
【００８８】
このように、図１のデータ処理装置１００によれば、メモリ容量を超えないようにデータ量が保障されつつデータ処理が高速化される。
【００８９】
以上、本発明の好適な実施形態を説明したが、上述した実施形態は、あらゆる点で単なる例示にすぎず、本発明の範囲を限定するものではない。本発明は、その本質を逸脱しない範囲で各種の変形形態を包含する。
【符号の説明】
【００９０】
１０  ロードバッファ、２０  ラスタ／ベクタ選択部、３０  余裕メモリ量判定部、４０  余裕メモリ量算出部、５０  ラスタ展開部、６０  ラスタ処理部、７０  ベクタ処理部、８０  セレクタ、９０  ストアバッファ、１００  データ処理装置。
【図１】
0006515475.tif 000002
【図２】
0006515475.tif 000003
【図３】
0006515475.tif 000004
【図４】
0006515475.tif 000005
【図５】
0006515475.tif 000006
【図６】
0006515475.tif 000007
【図７】
0006515475.tif 000008
【図８】
0006515475.tif 000009