(57)【要約】【課題】出力画像情報をビットマップデータに変換する装置であって、メモリ容量を少なく抑えつつ高品質の画像出力を可能とする画像処理装置等を提供する。【解決手段】出力画像情報を出力ビットマップデータに変換する画像処理装置が、イメージ画像の入力ビットマップデータを出力ビットマップデータとするための拡大率を決定する手段と、出力領域を一方向に分割した各小領域毎に中間コードを生成して登録する手段であって、拡大率に従って入力ビットマップデータを前記一方向に拡大したビットマップデータの、各小領域に出力される部分を、各小領域の中間コードに含める手段と、小領域毎に、その小領域の中間コードから出力ビットマップデータを生成する手段であって、中間コードに含まれるビットマップデータを拡大率に従って前記一方向と直交方向に拡大して出力ビットマップデータを生成する手段とを有する。【選択図】  図３
2008173946.tif 000002
【特許請求の範囲】
【請求項１】
出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置であって、
前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定手段と、
前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する手段であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定手段が決定したスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録手段と、
前記小領域毎に、処理対象の前記小領域の、前記中間コード登録手段が登録した中間コードから、前記出力ビットマップデータを生成する手段であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定手段が決定したスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開手段と、を有する
ことを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記展開手段による前記所定の一方向と直交する方向にスケーリングは、補間する各画素のデータを決定する際に、当該画素の、前記所定の一方向と直交する方向に位置する複数の画素のデータを参照して行われる
ことを特徴とする画像処理装置。
【請求項３】
請求項２において、
前記所定の一方向と直交する方向へのスケーリングは、バイリニア法を用いて行われる
ことを特徴とする画像処理装置。
【請求項４】
請求項１乃至請求項３のいずれかにおいて、
前記所定の一方向のスケーリングは、補間する各画素のデータを決定する際に、当該画素の周辺に位置する複数の画素のデータを参照して行われる
ことを特徴とする画像処理装置。
【請求項５】
請求項４において、
前記所定の一方向へのスケーリングは、バイリニア法あるいはバイキュービック法を用いて行われる
ことを特徴とする画像処理装置。
【請求項６】
出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置における画像処理方法であって、
前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、
前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、
前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を有する
ことを特徴とする画像処理方法。
【請求項７】
出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を画像処理装置に実行させる画像処理プログラムであって、
前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、
前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、
前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を前記画像処理装置に実行させる
ことを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力対象の画像情報をバンド単位の中間コードに変換した後にビットマップデータに変換する画像処理装置等に関し、特に、使用するメモリ容量を少なく抑えつつ高品質の画像出力を可能とする画像処理装置等に関する。
【背景技術】
【０００２】
一般に、レーザプリンタなどのプリンタでは、印刷対象の画像データを印刷要求元のホスト装置からＰＤＬ（ページ記述言語）などで受信し、それを解釈して一旦中間コードに変換し、その後、その中間コードから出力解像度のビットマップデータを生成する処理を行っている。そして、この中間コードの生成の処理からは、通常、印刷ページを副走査方向に複数に分割した領域であるバンドの単位で実行される。具体的には、一つの画像オブジェクトが複数のバンドに跨っている場合には、当該画像オブジェクトを各バンドに分割して、バンド毎に当該画像オブジェクトの中間コードを生成する。そして、当該中間コードを用いた上記ビットマップデータへの展開処理もバンド毎に行われる。
【０００３】
また、画像オブジェクトとしてイメージ画像を印刷する場合には、通常、ＰＤＬに含まれる入力イメージ画像の解像度とプリンタなど出力デバイスでの出力解像度が異なるので、上記ビットマップデータ生成までに、イメージ画像のサイズを変更するスケーリングの処理を実行する。イメージ画像のサイズを大きくする場合には、入力イメージ画像の画素間を補間する処理を行うことになる。
【０００４】
従来、上記スケーリング処理は以下のいずれかの方法で行われていた。その一つの方法は、上記中間コードの生成までは入力イメージ画像をそのままのサイズで処理し、その後の展開処理時にニアレストネイバー法でスケーリング（補間）するものである。二つ目の方法は、同様に、中間コードの生成までは入力イメージ画像をそのままのサイズで処理し、その後の展開処理時にバイリニア法又はバイキュービック法でスケーリング（補間）するものである。また、三つ目の方法は、上記中間コードの生成前に、バイリニア法又はバイキュービック法で入力イメージ画像をスケーリング（補間）し、その後に、出力解像度（出力サイズ）となったイメージ画像をバンド毎に分割して中間コードを生成するものである。
【０００５】
なお、下記特許文献１に画像データの補間方法について一つの提案がなされている。当該文献では、画像の変化度合いの小さいところではニアレスト法による補間処理を実行し、画像の変化度合いの大きいところではキュービック法による補間処理を実行することなどが記載されている。
【特許文献１】特開平１１−２９８７２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した一つ目の方法では、補間処理にニアレストネイバー法を用いているため画質の荒さが目立つ場合があるなど、出力画像品質に課題がある。また、上記二つ目の方法では、補間処理にバイリニア法又はバイキュービック法が用いられるので出力画像品質は高くなるが、イメージ画像が複数のバンドに跨る場合に、展開されたビットマップデータにおいて、バンド間の境界でイメージが不連続になってしまうという問題がある。これは、バイリニア法又はバイキュービック法では対象画素の周辺に位置する複数の画素を参照して処理を行う必要があり、また、上述のように、中間コードが生成された時点でイメージ画像の画像オブジェクトが既にバンド毎に分割されており、バンド毎にそのバンドの中間コードを用いて処理を行う展開の時点、すなわち、スケーリング（補間）を行う時点では、他のバンドの中間コード（イメージ画像の画素）にアクセスできない、ことに起因するものである。また、上記三つ目の方法では、良好な出力画像品質が得られるが、スケーリング処理でサイズを拡大する場合には、中間コード生成までの時点で大きなメモリ容量を必要としメモリ効率を大幅に低下させてしまうという問題がある。
【０００７】
また、上記特許文献１に記載の方法を用いても、前述したバンド境界でイメージが不連続になってしまうという問題等は解消し得ない。
【０００８】
そこで、本発明の目的は、出力対象の画像情報をバンド単位の中間コードに変換した後にビットマップデータに変換する画像処理装置であって、使用するメモリ容量を少なく抑えつつ高品質の画像出力を可能とする画像処理装置、等を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の一つの側面は、出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置が、前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定手段と、前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する手段であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定手段が決定したスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録手段と、前記小領域毎に、処理対象の前記小領域の、前記中間コード登録手段が登録した中間コードから、前記出力ビットマップデータを生成する手段であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定手段が決定したスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開手段と、を有することである。
【００１０】
更に、上記の発明において、好ましい態様は、前記展開手段による前記所定の一方向と直交する方向にスケーリングは、補間する各画素のデータを決定する際に、当該画素の、前記所定の一方向と直交する方向に位置する複数の画素のデータを参照して行われることを特徴とする。
【００１１】
更に、上記の発明において、一つの態様は、前記所定の一方向と直交する方向へのスケーリングは、バイリニア法を用いて行われることを特徴とする。
【００１２】
更にまた、上記の発明において、好ましい態様は、前記所定の一方向のスケーリングは、補間する各画素のデータを決定する際に、当該画素の周辺に位置する複数の画素のデータを参照して行われることを特徴とする。
【００１３】
更に、上記の発明において、一つの態様は、前記所定の一方向へのスケーリングは、バイリニア法あるいはバイキュービック法を用いて行われることを特徴とする。
【００１４】
上記の目的を達成するために、本発明の別の側面は、出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置における画像処理方法が、前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を有することである。
【００１５】
上記の目的を達成するために、本発明の更に別の側面は、出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を画像処理装置に実行させる画像処理プログラムが、前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を前記画像処理装置に実行させることである。
【００１６】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１８】
図１は、本発明を適用した画像処理装置を備えるプリンタの実施の形態例にかかる構成図である。図１に示すプリンタ２のコントローラ３が本発明を適用した画像処理装置である。本発明を適用した画像処理装置は、印刷対象の画像にイメージ画像が含まれている場合には、１ページ印刷分の出力対象画像を複数の小領域に分割したバンド毎の中間コードを生成する際にイメージ画像を副走査方向（垂直方向）にスケーリングし、生成した中間コードからビットマップデータに展開する際にはイメージ画像を主走査方向（水平方向）にスケーリングすることにより所望のスケーリングを実行し、使用するメモリ容量を少なく抑えつつ高品質の画像出力を可能にしようとするものである。
【００１９】
図１に示すホストコンピュータ１は、プリンタ２に対して印刷要求を行なうホスト装置であり、ユーザ操作等に基づいてプリンタドライバ１１が画像データと制御コマンドを含む印刷データを、例えば、ＰＤＬでプリンタ２に送信する。なお、画像データにイメージ画像が含まれる場合には、当該イメージ画像のサイズ、出力時の描画範囲、イメージ画像データ自身（画素毎の色の濃度値、入力されるビットマップデータ）に係る情報がＰＤＬとしてプリンタ２に送信される。なお、ホストコンピュータ１は、所謂パーソナルコンピュータなどで構成することができる。また、プリンタドライバ１１は、処理手順を指示するプログラムと、当該プログラムに従って処理を実行する制御装置等によって構成することができ、当該プログラムは、ＣＤなどの記憶媒体からホストコンピュータ１にインストールされる、あるいは、インターネット等のネットワークを介して所定のサイトからホストコンピュータ１にダウンロードされてインストールされる。
【００２０】
次に、プリンタ２は、一例として４サイクルのレーザプリンタであり、図１に示すように、コントローラ３、エンジン４等で構成される。
【００２１】
コントローラ３は、前記ホストコンピュータ１から送信されるＰＤＬによる印刷データを受信し、当該ＰＤＬを解釈して所定の画像処理を実行し、エンジン４側へ提供する信号を生成する部分である。画像処理では、ＰＤＬからのバンド毎中間コードの生成、中間コードからの展開処理（出力ビットマップ生成処理）、色変換処理、圧縮処理、２値化処理などが実行される。図１に示すように、コントローラ３には、Ｉ／Ｆ５、ＣＰＵ８、ＲＯＭ６、ＲＡＭ７、及びエンジンＩ／Ｆ９等が備えられる。
【００２２】
Ｉ／Ｆ５は、ホストコンピュータ１から送信される前記印刷データを受信する部分であり、ＲＯＭ６は、プリンタ２を制御するための各種プログラムを記憶する部分である。また、ＲＡＭ７は、前記受信した印刷データ（ＰＤＬ）、中間コード、展開後のビットマップデータ等を格納するメモリであり、エンジン４で印刷処理が行われる各ページの画像データは、ここからエンジンＩ／Ｆ９に引き渡される。なお、受信した印刷データは、Ｉ／Ｆ５にメモリを設けてそこに格納するようにしても良い。
【００２３】
図２は、ＲＡＭ７内の中間コードバッファ７１とバンドバッファ７２を概念的に示した図である。図２の（ａ）は、中間コードバッファ７１を例示しており、中間コードバッファ７１には、コード領域７１１とソースイメージ領域７１２がある。本実施の形態例におけるプリンタ２においても、印刷ページを副走査方向に複数に分割した領域であるバンド毎に中間コードを生成し、バンド毎に、対応するバンドの中間コードから展開処理を実行する。従って、印刷ページは、例えば、バンド１〜バンドｎの領域に分割される。図２には、１ページ分のデータについて示しており、上記コード領域７１１には、バンド１〜バンドｎの各中間コードが収められる。中間コードには、印刷対象（出力対象）の画像オブジェクト（文字、グラフィックス、イメージ）そのものを示すコードのほか、色などの設定を行う制御系のコードが含まれるが、イメージ画像を示す中間コードについては、このコード領域７１１に収められるコードとソースイメージ領域７１２に収められるソースイメージによって中間コードが構成される。
【００２４】
ソースイメージ領域７１２には、画像オブジェクトがイメージの場合のイメージ画像（ビットマップデータ）がバンド毎に分割されて収められている。図２の（ａ）に示す例では、ソースイメージＡは、バンド１に属するイメージのイメージ画像であり、バンド１のコード領域７１１においてポインタでバンド１のコードとリンクされている。なお、当該イメージが、元々ＰＤＬにおいて複数のバンドに跨って描画される画像オブジェクトであった場合には、バンド１に描画される部分のデータのみがソースイメージＡとして収められる。同様に、図２の（ａ）に示す例では、ソースイメージＢは、バンド２に属するイメージのイメージ画像であり、ポインタでバンド２のコードとリンクされている。本プリンタ２では、イメージ画像のスケーリングが必要な場合に、このソースイメージ領域７１２に、元画像を副走査方向（垂直方向）にスケーリングしたイメージ画像として収めることを特徴としており、具体的な内容については後述する。
【００２５】
また、図２の（ｂ）に示すバンドバッファ７２は、中間コードを展開した後の出力ビットマップデータをバンド毎に格納する部分である。各バンドのビットマップデータは、印刷用紙の描画領域に対応しており、対応するバンドの中間コードから生成される。図２において、例えば、バンド１のビットマップデータは、コード領域７１１のバンド１のコードとソースイメージ領域７１２のソースイメージＡから生成される。
【００２６】
ＣＰＵ８は、本プリンタ２において行われる各種処理を制御する部分であるが、特に、前記受信した印刷データの解釈、中間コードの登録、展開処理、色変換処理、圧縮処理、等を司る。本プリンタ２では、このＣＰＵ８が実行する、イメージ画像のスケーリング処理を含む中間コードの登録及び展開処理に特徴があり、その具体的な内容については後述する。なお、ＣＰＵ８が実行する処理は、主に前記ＲＯＭ６に記憶されたプログラムに従って行われるものである。
【００２７】
次に、エンジンＩ／Ｆ９は、エンジン４で印刷を実行する際に、所定のタイミングで前述したＲＡＭ７に格納されているビットマップデータを読み出し、２値化処理等を実行してエンジン４に出力する信号を生成して出力する部分である。なお、エンジンＩ／Ｆ９は、具体的には、ＡＳＩＣで構成されている。
【００２８】
図３は、コントローラ３の機能構成を例示した図である。言語解釈部３１は、前記受信した印刷データを解釈する部分であり、倍率設定部３２は、印刷対象にイメージ画像が含まれる場合に当該イメージの拡大倍率（スケーリング率）を決定する部分であり、中間コード登録部３３は、前記中間コードの生成と登録を行う部分であり、展開部３４は、前記展開処理を実行する部分であり、色変換部３５は、展開後のビットマップデータの色変換処理を実行する部分であり、圧縮部３６は、色変換後のビットマップデータを圧縮する部分である。なお、これら各部は、前述したＣＰＵ８、ＲＯＭ６内のプログラム、及びＲＡＭ７等で構成される。
【００２９】
次に、エンジン４は、前記エンジンＩ／Ｆ９から出力される信号に従って印刷媒体に印刷処理を実行する部分であり、図示されていないが、ＣＰＵ、ＲＯＭ、ＲＡＭ等で構成される制御部と、当該制御部の指示に従って動作する機構部が備えられる。機構部は、本実施の形態例ではレーザプリンタであるので、帯電ユニット、露光ユニット、現像装置、転写ユニット等で構成される。
【００３０】
以上説明したような構成を有する本実施の形態例に係るプリンタ２では、印刷を実行する際の中間コード登録処理及び展開処理に特徴を有し、以下、それらの処理内容について具体的に説明する。
【００３１】
まず、印刷時にコントローラ３が実行する処理の全体について説明する。図４は、印刷時にコントローラ３が実行する処理を例示したフローチャートである。以下、図４に基づいて、印刷ページ、１ページ分の処理について説明する。
【００３２】
まず、Ｉ／Ｆ５を介して受信したＰＤＬの印刷データを言語解釈部３１が逐次読み出して解釈する（ステップＳ１）。ＰＤＬのデータには、印刷対象の画像オブジェクトの描画を示す画像系のコマンド、画像オブジェクト毎に設定しない、例えば、色の設定やフォントの設定などを行う、各種設定のための制御系のコマンド、及びそのページの最後を示す改ページコマンドが含まれる。
【００３３】
言語解釈部３１で解釈されたＰＤＬのコマンドが画像オブジェクトの描画を示す画像系のコマンドである場合には（ステップＳ２のＹｅｓ）、処理がステップＳ３に移行し、中間コード登録部３３が、後で詳述する画像系中間コードの登録処理を行う。一方、解釈されたＰＤＬのコマンドが画像系のコマンドでない場合には（ステップＳ２のＮｏ）、ステップＳ４に移行し、当該コマンドが改ページコマンドでない場合には（ステップＳ４のＮｏ）、ステップＳ５に移行して中間コード登録部３３が制御系中間コードの登録処理を行う。
【００３４】
このようにして、各コマンドの解釈、中間コードの登録が順次行われて、最後に、改ページコマンドまで処理が進むと（ステップＳ４のＹｅｓ）、展開部３４、色変換部３５、及び圧縮部３６が、後で詳述する画像展開処理を実行する（ステップＳ６）。当該画像展開処理では、バンド毎にビットマップデータの生成、色変換処理、及び圧縮処理が実行される。そして、処理中のページについて上記圧縮処理後のビットマップデータが生成されると、エンジンＩ／Ｆ９によりエンジン４用信号が生成されてエンジン４へ出力される（ステップＳ７）。
【００３５】
以上のようにして、１ページ分のコントローラ３による処理が実行されるが、以下、本プリンタ２の特徴部分である画像系中間コードの登録処理及び画像展開処理について詳しく説明する。
【００３６】
本プリンタ２では、前述の通り、印刷対象にイメージ画像が含まれている場合のスケーリング処理に特徴を有するので、そのような場合の処理について説明する。図５は、以下の説明で想定している印刷対象を説明するための図である。図５の（ａ）は、ホストコンピュータ１から送信されるＰＤＬに含まれる元のイメージ画像であるソースイメージＳＩを示している。このソースイメージＳＩは、幅がｓｗピクセル（画素）、高さがｓｈピクセルの矩形のデータから成り、各ピクセル（画素）は、ＲＧＢ各８ビット、計２４ビットの濃度階調情報から構成されている。なお、このソースイメージＳＩの段階では、ピクセルの物理的なサイズは規定されていない。
【００３７】
図５の（ｂ）は、デバイス座標系とイメージ描画領域等を示している。図に示すｘｙ座標系はデバイス座標系、すなわち、プリンタ２のエンジン４から出力される解像度でのピクセル単位の座標系である。当該座標系では１ピクセルの物理的なサイズが認識できるので、印刷媒体の用紙サイズ（図中のＣ）、その中の描画可能領域（図中のＢ）が当該座標系で規定される。図５の（ｂ）におけるＡは、図５の（ａ）で示したソースイメージＳＩの描画領域を示しており、具体的には、上記デバイス座標系の（ｘ１，ｙ１）を始点として、幅ｄｗピクセル、高さｄｈピクセルの領域を示している。
【００３８】
従って、ここで想定している例では、図５の（ａ）に示す、サイズｓｗ×ｓｈのソースイメージＳＩをｄｗ×ｄｈのサイズにスケーリング（拡大）して出力する。前述したように、印刷ページは、正確には図５の（ｂ）の描画可能領域Ｂは、バンドに分割されており、図５には示していないが、図２に示したように上から順番にバンド１、２、・・・ｎの領域となっている。そして、当該描画するイメージ例では、バンド１〜バンド４に跨ってイメージが出力（描画）されるものとする。すなわち、図５の（ｂ）におけるイメージ描画領域Ａは、バンド１〜バンド４に亘っている。従って、当該ソースイメージＳＩについては、スケーリング処理後の、４つのバンドに亘る出力ビットマップデータを、展開処理の結果として生成する必要がある。なお、ソースイメージＳＩの描画開始位置（ｘ１，ｙ１）、描画サイズ（ｄｗ×ｄｈ）についてはＰＤＬ中で指示される。
【００３９】
以上説明したイメージ描画を例として、まず、画像系中間コードの登録処理について説明する。図６は、画像系中間コード登録処理の手順を例示したフローチャートである。
【００４０】
ここで説明する処理は図４に示したステップＳ３の処理に対応しており、まず、中間コード登録部３３は、解釈された画像オブジェクトの描画に係るコマンドがイメージ画像のものであるか否かを判断する（ステップＳ３１）。ここで、イメージ画像のものでない場合には（ステップＳ３１のＮｏ）、すなわち、文字やグラフィックスの場合には、従来どおりの方法により中間コードの登録処理を実行する（ステップＳ３２）。その結果、その画像オブジェクトが描画されるべきバンドの前記コード領域７１１に中間コードが適宜登録される。
【００４１】
一方、解釈されたコマンドがイメージ画像の描画に係るものである場合には（ステップＳ３１のＹｅｓ）、処理がステップＳ３３に移行する。
【００４２】
図７は、イメージの画像オブジェクトを示すＰＤＬのコマンドを例示した図である。図７には、前記想定したソースイメージＳＩの描画についてのコマンドであり、「ｓｗ」及び「ｓｈ」は前述したソースイメージＳＩのサイズを、「ｘ１」及び「ｙ１」は前述した描画開始位置を、「ｘ２」及び「ｙ２」は描画終了位置を示している。言い換えれば、「ｘ１」及び「ｙ１」と「ｘ２」及び「ｙ２」は、それぞれ、図５の（ｂ）に示したイメージ描画領域Ａ（矩形）の左上と右下の位置を示している。また、図７の「ｘ２」及び「ｙ２」以降（「・・・」の部分）には、ソースイメージＳＩのデータ（入力ビットマップデータ）が示される。このように、描画するイメージのスケーリングに係る情報はホストコンピュータ１側から指示される。なお、図７に示したコマンド情報は一例であって、例えば、イメージの描画領域を描画開始位置（ｘ１，ｙ１）と描画サイズ（ｄｗ×ｄｈ）で表すようにしてもよい。
【００４３】
図６に戻って、ステップＳ３３では、倍率設定部３２が、描画するイメージ、すなわち、ここではソースイメージＳＩの垂直方向の拡大率を決定する。具体的には、ソースイメージＳＩを描画サイズ（出力サイズ）にスケーリングする際の副走査方向の倍率を決定する。想定している例では、ｓｗ×ｓｈのサイズをｄｗ×ｄｈのサイズに拡大するので、ｄｈ／ｓｈの倍率に決定する。
【００４４】
次に、中間コード登録部３３は、対象のイメージ画像が描画される先頭のバンドから最終バンドまで、バンド毎に、前記ソースイメージの生成及び記憶（Ｓ３５）とイメージ中間コードの登録（Ｓ３６）を実行する（ステップＳ３４からＳ３７）。想定している例では、ソースイメージＳＩについて、バンド１〜バンド４まで、バンド毎にステップＳ３５及びＳ３６の処理を実行する。
【００４５】
ステップＳ３５では、具体的には、そのバンド用の中間コードソース（ソースイメージ）を、元のイメージ画像（ソースイメージＳＩ）の、出力時にそのバンド内に描画される部分について、上記決定した拡大率で拡大（補間処理）したイメージ（ビットマップデータ）として生成し、生成した中間コードソースを前述した中間コードバッファ７１のソースイメージ領域７１２に記憶する。すなわち、中間コード登録の際に、出力ビットマップデータを生成するために必要なスケーリング（補間）処理のうち、垂直方向（副走査方向）のスケーリングを行う。そして、この垂直方向の補間処理には、具体的にはバイキュービック法を用い、元のイメージデ画像（ソースイメージＳＩ）の当該バンド内に描画される部分のピクセルデータだけでなく、他のバンド内に描画される部分も用いて（参照して）補間処理を行う。
【００４６】
図８は、当該中間コードソースの生成を説明するための図である。図８の（ａ）は、想定しているソースイメージＳＩについて、当該イメージが描画されるバンド１〜バンド４の各バンドの処理で生成される各中間コードソースを示している。図５の（ａ）に示したイメージ画像と比較して明らかなように、各中間コードソースのイメージは、垂直方向にのみ拡大されている。バンド１に着目すると、バンド１用中間コードソースのビットマップデータは、図８の（ａ）に示すように、幅がソースイメージＳＩと同じｓｗピクセルであり、高さが出力ビットマップデータと同じｂｈピクセルのサイズとなっている。
【００４７】
そして、このバンド１用中間コードソースは、前述したように、ソースイメージＳＩをバイキュービック法によって補間処理して生成される。図８の（ｂ）は、ソースイメージＳＩのビットマップデータを、出力時に各バンド内に描画される部分に分割して示している。バイキュービック法は、補間する画素の値を決定する際に当該画素の周囲に位置する複数の画素の値を参照するため、バンド１について補間処理を行う場合には、図８の（ｂ）に示すバンド１の範囲（一番上）の元データだけでなく、イで指し示すバンド２の範囲の元データも参照して処理を行う。同様に、バンド２についての補間処理では、バンド１の元データ及びバンド３の元データも参照される。
【００４８】
当該処理の時点（ステップＳ３５）では、ソースイメージＳＩの元データは、ＲＡＭ７に分割されずに記憶されているので、このような処理が可能であり、また、このように処理することにより、バンド間で連続的な画像を生成することができる。前述したとおり、従来の一つの方法においては、図８の（ｂ）に示したような状態に分割された後に、そのバンド内の元データのみを用いて補間処理を行うことになるため、バンド間において不連続な画像となってしまうという問題があった。
【００４９】
図８の（ｃ）は、元のソースイメージＳＩの全体をバイキュービック法で垂直方向に前記拡大率で拡大した結果を示しているが、上記各バンド用の中間コードソースは、このイメージ画像をバンド毎に分割したものと同じである。なお、上記の説明では、各バンドの処理において、バンド毎に垂直方向の補間処理を行うが、各バンドの処理に入る前に、図８の（ｃ）に示す拡大イメージを生成し、各バンドの処理では、当該拡大イメージのそのバンドに該当する部分を切り出して記憶するようにしてもよい。
【００５０】
なお、上記垂直方向の補間方法としてバイリニア法を用いてもよい。
【００５１】
次に、ステップＳ３６では、前述のとおり、当該イメージオブジェクト（ソースイメージＳＩ）の中間コードの登録処理を行う。具体的には、前記中間コードバッファ７１のコード領域７１１における該当バンドの位置に、当該イメージの書き込み先座標等の情報を中間コードとして登録する。
【００５２】
図９は、イメージ中間コードを説明するための図である。図９の（ａ）は、ソースイメージＳＩについて、バンド１のコード領域７１１に登録されるコードの内容を例示している。図中「オペコード：ＩＭＡＧＥ」は、当該中間コードがイメージ描画に係るものであることを示し、「書き込み先ｘ座標：ｘ１」、「書き込み先ｙ座標：ｙ１」、「書き込み幅：ｄｗ」、及び「書き込み高さ：ｂｈ」は、ソースイメージＳＩのバンド１における書き込み領域を示している。図９の（ｃ）は、図５の（ｂ）に示したイメージ描画領域Ａのバンド１部分を示しており、上記書き込み領域を示す情報はこの部分を指定する情報となっている。言い換えれば、図２の（ｂ）に示したバンドバッファ７２内の書き込み領域を指定している。
【００５３】
また、「ソースイメージ幅：ｓｗ」及び「ソースイメージへのポインタ」は、当該バンド部分について、中間コードを展開処理してバンドバッファ７２に書き込むためのソースイメージについて示している。前述のとおり、各バンドのソースイメージ自身は生成されてソースイメージ領域７１２に記憶されているので、これらのコードでは、ソースイメージの幅と上記記憶されているソースイメージへのポインタを示している。図９に示す例はバンド１についてのものであるので、図９の（ｂ）に示すバンド１用の中間コードソース（図８（ａ）の一番上に示すものに相当）が記憶されている箇所へのポインタが示される。なお、ソースイメージの高さは、前述のとおり、既にソースイメージが垂直方向に拡大済みであり、書き込み先の高さと同じ値（ｂｈ）になっているので、当該情報は中間コードに含めない。
【００５４】
このようにして、バンド毎に、各ソースイメージを指し示すポインタを含むコードがコード領域７１１に登録され、一つのイメージオブジェクトについての中間コード登録処理が終了する。
【００５５】
以上説明したようにして画像系中間コード登録の処理（図４のＳ３）が実行される。
【００５６】
次に、画像展開処理（図４のＳ６）について説明する。図１０は、画像展開処理の内容について例示したフローチャートである。
【００５７】
この画像展開処理では、前述のとおり、バンド毎に処理が実行されるので、ページの先頭バンド（バンド１）からページの最終バンド（バンドｎ）まで、順次、バンド毎に中間コード展開処理（ステップＳ６２〜Ｓ６６）、色変換処理、及び圧縮処理（ステップＳ６７）が実行される（ステップＳ６１〜Ｓ６８）。
【００５８】
まず、中間コード展開処理では、前記展開部３４が、そのバンドに登録されている先頭の中間コードから登録順に最後の中間コードまで、中間コード毎に、以下の処理を実行する（ステップＳ６２〜Ｓ６６）。
【００５９】
展開部３４は、まず、その中間コードがイメージの描画に係るイメージ中間コードであるか否かを見て（ステップＳ６３）、イメージ中間コードである場合には（ステップＳ６３のＹｅｓ）、当該中間コードに従って、当該イメージの展開処理を実行する（ステップＳ６４）。
【００６０】
具体的には、当該中間コードの前述したポインタが示す対応ソースイメージ（ビットマップデータ）をバイリニア法で水平方向（走査方向）に拡大（補間処理）して、バンドバッファ７２に展開する処理を行う。すなわち、出力ビットマップを生成するために必要なスケーリングの水平方向の補間処理を展開処理時に実行する。
【００６１】
より具体的には、中間コードに示されるバンドバッファ７２の書き込み領域（描画領域）について、その書き込み開始位置から、順次、画素（ピクセル）毎に値（各色の濃度階調値）を決定して出力ビットマップデータを書き込んでいく。そして、その際、参照するソースイメージのデータでは、水平方向の画素数が足りないので、その分を補間しながら処理を行なう。すなわち、図８の（ａ）、図９の（ｂ）に示すように、参照するソースデータは、その高さは書き込み先に対して足りているものの、幅は不足しているので、倍率設定部３２が決定する、ｄｗ／ｓｗの倍率で水平方向の拡大をしつつ上記画素毎の展開処理を行っていく。
【００６２】
また、この補間処理では、上述のとおり、バイリニア法を用いる。当該方法では、水平方向にのみ補間する場合に、対象画素の水平方向に位置する画素の値のみを参照するため、そのバンドの最上部又は最下部においても他のバンドのデータ（画素の値）を参照する必要がない。従って、他のバンドのソースイメージを参照できない展開処理の時点においても正確な補間処理が行なえ、かつ、ニアレストネイバー法よりも画像品質の高い補間を行なうことができる。なお、水平方向にのみ拡大する場合に、補間対象画素の水平方向に位置する複数の画素のみを参照する補間方法であれば、バイリニア法でなくてもよい。
【００６３】
図１１は、展開処理後のバンド１を例示した図である。想定している例においては、バンド１の中間コードを構成するソースイメージは、前述のとおり、図９の（ｂ）に示すような状態（サイズ）となっているが、上述のような水平方向への拡大（補間）が行われてバンドバッファ７２に展開されるので、図１１のように出力時のサイズとなって、ビットマップデータが格納される。そして、上述のとおり、補間処理には、水平方向の画素のみが参照されればよいので、図９の（ｂ）に示すソースイメージのみが用いられれば十分である。図示していないが、バンド２〜バンド４についても同様の処理が実行されることになり、元のソースイメージＳＩについて出力サイズのビットマップデータが生成される。
【００６４】
一方、処理対象の中間コードがイメージ中間コードでない場合には（ステップＳ６３のＮｏ）、展開部３４は、その中間コードの内容に従って適宜処理を実行する（ステップＳ６５）。制御系中間コードの場合には、各種の設定を行い、文字やグラフィックスの画像系中間コードの場合には、それらのオブジェクトについて、バンドバッファ７２の所定箇所にビットマップデータを書き込んでいく。
【００６５】
このようにして、そのバンドの全ての中間コードについて展開処理が終了すると、処理がステップＳ６７に移行し、まず、そのバンドの生成された出力ビットマップデータに対し、色変換部３５による色変換処理が実行される。ここでは、例えば、ＲＧＢで表現された各画素の階調値がＣＭＹＫの階調値に変換される。その後、変換されたビットマップデータを、圧縮部３６が圧縮処理してサイズの小さいデータとし、ＲＡＭ７の所定箇所に記憶する。
【００６６】
このようにして、対象としていたバンドについての画像展開処理が終了し、その他のバンドについても同様の処理を実行すると、当該画像展開処理が終了する。
【００６７】
以上説明したように、本実施の形態例に係るコントローラ３においては、ＰＤＬなどの出力対象画像の入力情報からバンド毎の中間コードを生成し、バンド毎の中間コードからそのバンドの出力ビットマップデータを生成する際に、入力情報にイメージ画像のビットマップデータが含まれ、そのサイズを変えて出力ビットマップを生成する必要がある場合に、中間コードの生成の際に当該イメージ画像の垂直（副走査）方向のスケーリングを実行し、その後の出力ビットマップ生成時（展開処理時）に水平（走査）方向のスケーリングを実行する。
【００６８】
従って、入力イメージ画像の全てを参照できる中間コード生成時の段階で、高品質な補間処理のために他のバンドのデータも参照する必要がある垂直方向のスケーリングを行ない、他のバンドのデータを参照できない展開処理の段階で、他のバンドのデータを参照しなくても高品質な補間処理が可能な水平方向のスケーリングを行うことになる。
【００６９】
これにより、バンド境界での不連続性という問題のない高品質な出力画像を得られるスケーリング処理を実行可能であると共に、中間コード登録時には、イメージ画像が最終的な出力ビットマップのサイズになっていないので、中間コードソースとしてそれほど大きなメモリ領域を必要とせず、メモリ効率も比較的良好に保つことができる。
【００７０】
また、上記垂直方向の補間処理として、バイリニア法又はバイキュービック法を用い、上記水平方向の補間処理として、バイリニア法を用いることにより、上述の高品質な出力画像を実現することができる。なお、垂直方向の補間方法としては、補間対象の画素の周辺に位置する複数の画素を参照する、高品質な結果が得られるものであれば他の方法を用いてもよい。
【００７１】
なお、本実施の実施の形態例では、ホストコンピュータ１からＰＤＬで印刷データが送信される場合で説明したが、ホストコンピュータ１側で中間コードを生成して、その中間コードをプリンタ２に送信する場合、及び、いわゆるホストベースプリンタシステムであって、ホストコンピュータ１側で展開処理までを実行し、生成された出力ビットマップデータをプリンタ２に送信する場合、においても本発明を適用することが可能である。
【００７２】
前者の場合には、ホストコンピュータ１のプリンタドライバ１１とプリンタ２のコントローラ３が本発明を適用した画像処理装置に相当し、この場合にも、上述のとおりの効果を得ることができる。また、後者の場合においては、ホストコンピュータ１のプリンタドライバ１１が本発明を適用した画像処理装置に相当し、やはり、上述のとおりの効果を得ることができる。
【００７３】
また、前記実施の形態例では、プリンタ用の画像処理装置であったが、本発明を適用した画像処理装置を複写機など他の画像形成装置に用いることもできる。
【００７４】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００７５】
【図１】本発明を適用した画像処理装置の実施の形態例にかかる構成図である。
【図２】中間コードバッファ７１とバンドバッファ７２を概念的に示した図である。
【図３】コントローラ３の機能構成を例示した図である。
【図４】印刷時にコントローラ３が実行する処理を例示したフローチャートである。
【図５】想定している印刷対象を説明するための図である。
【図６】画像系中間コード登録処理の手順を例示したフローチャートである。
【図７】イメージの画像オブジェクトを示すＰＤＬのコマンドを例示した図である。
【図８】中間コードソースの生成を説明するための図である。
【図９】イメージ中間コードを説明するための図である。
【図１０】画像展開処理の内容について例示したフローチャートである。
【図１１】展開処理後のバンド１を例示した図である。
【符号の説明】
【００７６】
１  ホストコンピュータ、  ２  プリンタ、  ３  コントローラ、  ４  エンジン、  ５  Ｉ／Ｆ、  ６  ＲＯＭ、  ７  ＲＡＭ、  ８  ＣＰＵ、  ９  エンジンＩ／Ｆ、  １１  プリンタドライバ、  ７１  中間コードバッファ、  ７２  バンドバッファ、  ３１  言語解釈部、  ３２  倍率設定部（倍率設定手段）、  ３３  中間コード登録部（中間コード登録手段）、  ３４  展開部（展開手段）、  ３５  色変換部、  ３６  圧縮部
【図１】
2008173946.tif 000003
【図２】
2008173946.tif 000004
【図３】
2008173946.tif 000005
【図４】
2008173946.tif 000006
【図５】
2008173946.tif 000007
【図６】
2008173946.tif 000008
【図７】
2008173946.tif 000009
【図８】
2008173946.tif 000010
【図９】
2008173946.tif 000011
【図１０】
2008173946.tif 000012
【図１１】
2008173946.tif 000013