JP2008173946A - 画像処理装置、画像処理方法、及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法、及び画像処理プログラム Download PDF

Info

Publication number
JP2008173946A
JP2008173946A JP2007011997A JP2007011997A JP2008173946A JP 2008173946 A JP2008173946 A JP 2008173946A JP 2007011997 A JP2007011997 A JP 2007011997A JP 2007011997 A JP2007011997 A JP 2007011997A JP 2008173946 A JP2008173946 A JP 2008173946A
Authority
JP
Japan
Prior art keywords
image
output
intermediate code
bitmap data
scaling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007011997A
Other languages
English (en)
Inventor
Toshiaki Isobe
俊昭 磯部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2007011997A priority Critical patent/JP2008173946A/ja
Publication of JP2008173946A publication Critical patent/JP2008173946A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】出力画像情報をビットマップデータに変換する装置であって、メモリ容量を少なく抑えつつ高品質の画像出力を可能とする画像処理装置等を提供する。
【解決手段】出力画像情報を出力ビットマップデータに変換する画像処理装置が、イメージ画像の入力ビットマップデータを出力ビットマップデータとするための拡大率を決定する手段と、出力領域を一方向に分割した各小領域毎に中間コードを生成して登録する手段であって、拡大率に従って入力ビットマップデータを前記一方向に拡大したビットマップデータの、各小領域に出力される部分を、各小領域の中間コードに含める手段と、小領域毎に、その小領域の中間コードから出力ビットマップデータを生成する手段であって、中間コードに含まれるビットマップデータを拡大率に従って前記一方向と直交方向に拡大して出力ビットマップデータを生成する手段とを有する。
【選択図】 図3

Description

本発明は、出力対象の画像情報をバンド単位の中間コードに変換した後にビットマップデータに変換する画像処理装置等に関し、特に、使用するメモリ容量を少なく抑えつつ高品質の画像出力を可能とする画像処理装置等に関する。
一般に、レーザプリンタなどのプリンタでは、印刷対象の画像データを印刷要求元のホスト装置からPDL(ページ記述言語)などで受信し、それを解釈して一旦中間コードに変換し、その後、その中間コードから出力解像度のビットマップデータを生成する処理を行っている。そして、この中間コードの生成の処理からは、通常、印刷ページを副走査方向に複数に分割した領域であるバンドの単位で実行される。具体的には、一つの画像オブジェクトが複数のバンドに跨っている場合には、当該画像オブジェクトを各バンドに分割して、バンド毎に当該画像オブジェクトの中間コードを生成する。そして、当該中間コードを用いた上記ビットマップデータへの展開処理もバンド毎に行われる。
また、画像オブジェクトとしてイメージ画像を印刷する場合には、通常、PDLに含まれる入力イメージ画像の解像度とプリンタなど出力デバイスでの出力解像度が異なるので、上記ビットマップデータ生成までに、イメージ画像のサイズを変更するスケーリングの処理を実行する。イメージ画像のサイズを大きくする場合には、入力イメージ画像の画素間を補間する処理を行うことになる。
従来、上記スケーリング処理は以下のいずれかの方法で行われていた。その一つの方法は、上記中間コードの生成までは入力イメージ画像をそのままのサイズで処理し、その後の展開処理時にニアレストネイバー法でスケーリング(補間)するものである。二つ目の方法は、同様に、中間コードの生成までは入力イメージ画像をそのままのサイズで処理し、その後の展開処理時にバイリニア法又はバイキュービック法でスケーリング(補間)するものである。また、三つ目の方法は、上記中間コードの生成前に、バイリニア法又はバイキュービック法で入力イメージ画像をスケーリング(補間)し、その後に、出力解像度(出力サイズ)となったイメージ画像をバンド毎に分割して中間コードを生成するものである。
なお、下記特許文献1に画像データの補間方法について一つの提案がなされている。当該文献では、画像の変化度合いの小さいところではニアレスト法による補間処理を実行し、画像の変化度合いの大きいところではキュービック法による補間処理を実行することなどが記載されている。
特開平11−298721号公報
しかしながら、上述した一つ目の方法では、補間処理にニアレストネイバー法を用いているため画質の荒さが目立つ場合があるなど、出力画像品質に課題がある。また、上記二つ目の方法では、補間処理にバイリニア法又はバイキュービック法が用いられるので出力画像品質は高くなるが、イメージ画像が複数のバンドに跨る場合に、展開されたビットマップデータにおいて、バンド間の境界でイメージが不連続になってしまうという問題がある。これは、バイリニア法又はバイキュービック法では対象画素の周辺に位置する複数の画素を参照して処理を行う必要があり、また、上述のように、中間コードが生成された時点でイメージ画像の画像オブジェクトが既にバンド毎に分割されており、バンド毎にそのバンドの中間コードを用いて処理を行う展開の時点、すなわち、スケーリング(補間)を行う時点では、他のバンドの中間コード(イメージ画像の画素)にアクセスできない、ことに起因するものである。また、上記三つ目の方法では、良好な出力画像品質が得られるが、スケーリング処理でサイズを拡大する場合には、中間コード生成までの時点で大きなメモリ容量を必要としメモリ効率を大幅に低下させてしまうという問題がある。
また、上記特許文献1に記載の方法を用いても、前述したバンド境界でイメージが不連続になってしまうという問題等は解消し得ない。
そこで、本発明の目的は、出力対象の画像情報をバンド単位の中間コードに変換した後にビットマップデータに変換する画像処理装置であって、使用するメモリ容量を少なく抑えつつ高品質の画像出力を可能とする画像処理装置、等を提供することである。
上記の目的を達成するために、本発明の一つの側面は、出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置が、前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定手段と、前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する手段であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定手段が決定したスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録手段と、前記小領域毎に、処理対象の前記小領域の、前記中間コード登録手段が登録した中間コードから、前記出力ビットマップデータを生成する手段であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定手段が決定したスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開手段と、を有することである。
更に、上記の発明において、好ましい態様は、前記展開手段による前記所定の一方向と直交する方向にスケーリングは、補間する各画素のデータを決定する際に、当該画素の、前記所定の一方向と直交する方向に位置する複数の画素のデータを参照して行われることを特徴とする。
更に、上記の発明において、一つの態様は、前記所定の一方向と直交する方向へのスケーリングは、バイリニア法を用いて行われることを特徴とする。
更にまた、上記の発明において、好ましい態様は、前記所定の一方向のスケーリングは、補間する各画素のデータを決定する際に、当該画素の周辺に位置する複数の画素のデータを参照して行われることを特徴とする。
更に、上記の発明において、一つの態様は、前記所定の一方向へのスケーリングは、バイリニア法あるいはバイキュービック法を用いて行われることを特徴とする。
上記の目的を達成するために、本発明の別の側面は、出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置における画像処理方法が、前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を有することである。
上記の目的を達成するために、本発明の更に別の側面は、出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を画像処理装置に実行させる画像処理プログラムが、前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を前記画像処理装置に実行させることである。
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
図1は、本発明を適用した画像処理装置を備えるプリンタの実施の形態例にかかる構成図である。図1に示すプリンタ2のコントローラ3が本発明を適用した画像処理装置である。本発明を適用した画像処理装置は、印刷対象の画像にイメージ画像が含まれている場合には、1ページ印刷分の出力対象画像を複数の小領域に分割したバンド毎の中間コードを生成する際にイメージ画像を副走査方向(垂直方向)にスケーリングし、生成した中間コードからビットマップデータに展開する際にはイメージ画像を主走査方向(水平方向)にスケーリングすることにより所望のスケーリングを実行し、使用するメモリ容量を少なく抑えつつ高品質の画像出力を可能にしようとするものである。
図1に示すホストコンピュータ1は、プリンタ2に対して印刷要求を行なうホスト装置であり、ユーザ操作等に基づいてプリンタドライバ11が画像データと制御コマンドを含む印刷データを、例えば、PDLでプリンタ2に送信する。なお、画像データにイメージ画像が含まれる場合には、当該イメージ画像のサイズ、出力時の描画範囲、イメージ画像データ自身(画素毎の色の濃度値、入力されるビットマップデータ)に係る情報がPDLとしてプリンタ2に送信される。なお、ホストコンピュータ1は、所謂パーソナルコンピュータなどで構成することができる。また、プリンタドライバ11は、処理手順を指示するプログラムと、当該プログラムに従って処理を実行する制御装置等によって構成することができ、当該プログラムは、CDなどの記憶媒体からホストコンピュータ1にインストールされる、あるいは、インターネット等のネットワークを介して所定のサイトからホストコンピュータ1にダウンロードされてインストールされる。
次に、プリンタ2は、一例として4サイクルのレーザプリンタであり、図1に示すように、コントローラ3、エンジン4等で構成される。
コントローラ3は、前記ホストコンピュータ1から送信されるPDLによる印刷データを受信し、当該PDLを解釈して所定の画像処理を実行し、エンジン4側へ提供する信号を生成する部分である。画像処理では、PDLからのバンド毎中間コードの生成、中間コードからの展開処理(出力ビットマップ生成処理)、色変換処理、圧縮処理、2値化処理などが実行される。図1に示すように、コントローラ3には、I/F5、CPU8、ROM6、RAM7、及びエンジンI/F9等が備えられる。
I/F5は、ホストコンピュータ1から送信される前記印刷データを受信する部分であり、ROM6は、プリンタ2を制御するための各種プログラムを記憶する部分である。また、RAM7は、前記受信した印刷データ(PDL)、中間コード、展開後のビットマップデータ等を格納するメモリであり、エンジン4で印刷処理が行われる各ページの画像データは、ここからエンジンI/F9に引き渡される。なお、受信した印刷データは、I/F5にメモリを設けてそこに格納するようにしても良い。
図2は、RAM7内の中間コードバッファ71とバンドバッファ72を概念的に示した図である。図2の(a)は、中間コードバッファ71を例示しており、中間コードバッファ71には、コード領域711とソースイメージ領域712がある。本実施の形態例におけるプリンタ2においても、印刷ページを副走査方向に複数に分割した領域であるバンド毎に中間コードを生成し、バンド毎に、対応するバンドの中間コードから展開処理を実行する。従って、印刷ページは、例えば、バンド1〜バンドnの領域に分割される。図2には、1ページ分のデータについて示しており、上記コード領域711には、バンド1〜バンドnの各中間コードが収められる。中間コードには、印刷対象(出力対象)の画像オブジェクト(文字、グラフィックス、イメージ)そのものを示すコードのほか、色などの設定を行う制御系のコードが含まれるが、イメージ画像を示す中間コードについては、このコード領域711に収められるコードとソースイメージ領域712に収められるソースイメージによって中間コードが構成される。
ソースイメージ領域712には、画像オブジェクトがイメージの場合のイメージ画像(ビットマップデータ)がバンド毎に分割されて収められている。図2の(a)に示す例では、ソースイメージAは、バンド1に属するイメージのイメージ画像であり、バンド1のコード領域711においてポインタでバンド1のコードとリンクされている。なお、当該イメージが、元々PDLにおいて複数のバンドに跨って描画される画像オブジェクトであった場合には、バンド1に描画される部分のデータのみがソースイメージAとして収められる。同様に、図2の(a)に示す例では、ソースイメージBは、バンド2に属するイメージのイメージ画像であり、ポインタでバンド2のコードとリンクされている。本プリンタ2では、イメージ画像のスケーリングが必要な場合に、このソースイメージ領域712に、元画像を副走査方向(垂直方向)にスケーリングしたイメージ画像として収めることを特徴としており、具体的な内容については後述する。
また、図2の(b)に示すバンドバッファ72は、中間コードを展開した後の出力ビットマップデータをバンド毎に格納する部分である。各バンドのビットマップデータは、印刷用紙の描画領域に対応しており、対応するバンドの中間コードから生成される。図2において、例えば、バンド1のビットマップデータは、コード領域711のバンド1のコードとソースイメージ領域712のソースイメージAから生成される。
CPU8は、本プリンタ2において行われる各種処理を制御する部分であるが、特に、前記受信した印刷データの解釈、中間コードの登録、展開処理、色変換処理、圧縮処理、等を司る。本プリンタ2では、このCPU8が実行する、イメージ画像のスケーリング処理を含む中間コードの登録及び展開処理に特徴があり、その具体的な内容については後述する。なお、CPU8が実行する処理は、主に前記ROM6に記憶されたプログラムに従って行われるものである。
次に、エンジンI/F9は、エンジン4で印刷を実行する際に、所定のタイミングで前述したRAM7に格納されているビットマップデータを読み出し、2値化処理等を実行してエンジン4に出力する信号を生成して出力する部分である。なお、エンジンI/F9は、具体的には、ASICで構成されている。
図3は、コントローラ3の機能構成を例示した図である。言語解釈部31は、前記受信した印刷データを解釈する部分であり、倍率設定部32は、印刷対象にイメージ画像が含まれる場合に当該イメージの拡大倍率(スケーリング率)を決定する部分であり、中間コード登録部33は、前記中間コードの生成と登録を行う部分であり、展開部34は、前記展開処理を実行する部分であり、色変換部35は、展開後のビットマップデータの色変換処理を実行する部分であり、圧縮部36は、色変換後のビットマップデータを圧縮する部分である。なお、これら各部は、前述したCPU8、ROM6内のプログラム、及びRAM7等で構成される。
次に、エンジン4は、前記エンジンI/F9から出力される信号に従って印刷媒体に印刷処理を実行する部分であり、図示されていないが、CPU、ROM、RAM等で構成される制御部と、当該制御部の指示に従って動作する機構部が備えられる。機構部は、本実施の形態例ではレーザプリンタであるので、帯電ユニット、露光ユニット、現像装置、転写ユニット等で構成される。
以上説明したような構成を有する本実施の形態例に係るプリンタ2では、印刷を実行する際の中間コード登録処理及び展開処理に特徴を有し、以下、それらの処理内容について具体的に説明する。
まず、印刷時にコントローラ3が実行する処理の全体について説明する。図4は、印刷時にコントローラ3が実行する処理を例示したフローチャートである。以下、図4に基づいて、印刷ページ、1ページ分の処理について説明する。
まず、I/F5を介して受信したPDLの印刷データを言語解釈部31が逐次読み出して解釈する(ステップS1)。PDLのデータには、印刷対象の画像オブジェクトの描画を示す画像系のコマンド、画像オブジェクト毎に設定しない、例えば、色の設定やフォントの設定などを行う、各種設定のための制御系のコマンド、及びそのページの最後を示す改ページコマンドが含まれる。
言語解釈部31で解釈されたPDLのコマンドが画像オブジェクトの描画を示す画像系のコマンドである場合には(ステップS2のYes)、処理がステップS3に移行し、中間コード登録部33が、後で詳述する画像系中間コードの登録処理を行う。一方、解釈されたPDLのコマンドが画像系のコマンドでない場合には(ステップS2のNo)、ステップS4に移行し、当該コマンドが改ページコマンドでない場合には(ステップS4のNo)、ステップS5に移行して中間コード登録部33が制御系中間コードの登録処理を行う。
このようにして、各コマンドの解釈、中間コードの登録が順次行われて、最後に、改ページコマンドまで処理が進むと(ステップS4のYes)、展開部34、色変換部35、及び圧縮部36が、後で詳述する画像展開処理を実行する(ステップS6)。当該画像展開処理では、バンド毎にビットマップデータの生成、色変換処理、及び圧縮処理が実行される。そして、処理中のページについて上記圧縮処理後のビットマップデータが生成されると、エンジンI/F9によりエンジン4用信号が生成されてエンジン4へ出力される(ステップS7)。
以上のようにして、1ページ分のコントローラ3による処理が実行されるが、以下、本プリンタ2の特徴部分である画像系中間コードの登録処理及び画像展開処理について詳しく説明する。
本プリンタ2では、前述の通り、印刷対象にイメージ画像が含まれている場合のスケーリング処理に特徴を有するので、そのような場合の処理について説明する。図5は、以下の説明で想定している印刷対象を説明するための図である。図5の(a)は、ホストコンピュータ1から送信されるPDLに含まれる元のイメージ画像であるソースイメージSIを示している。このソースイメージSIは、幅がswピクセル(画素)、高さがshピクセルの矩形のデータから成り、各ピクセル(画素)は、RGB各8ビット、計24ビットの濃度階調情報から構成されている。なお、このソースイメージSIの段階では、ピクセルの物理的なサイズは規定されていない。
図5の(b)は、デバイス座標系とイメージ描画領域等を示している。図に示すxy座標系はデバイス座標系、すなわち、プリンタ2のエンジン4から出力される解像度でのピクセル単位の座標系である。当該座標系では1ピクセルの物理的なサイズが認識できるので、印刷媒体の用紙サイズ(図中のC)、その中の描画可能領域(図中のB)が当該座標系で規定される。図5の(b)におけるAは、図5の(a)で示したソースイメージSIの描画領域を示しており、具体的には、上記デバイス座標系の(x1,y1)を始点として、幅dwピクセル、高さdhピクセルの領域を示している。
従って、ここで想定している例では、図5の(a)に示す、サイズsw×shのソースイメージSIをdw×dhのサイズにスケーリング(拡大)して出力する。前述したように、印刷ページは、正確には図5の(b)の描画可能領域Bは、バンドに分割されており、図5には示していないが、図2に示したように上から順番にバンド1、2、・・・nの領域となっている。そして、当該描画するイメージ例では、バンド1〜バンド4に跨ってイメージが出力(描画)されるものとする。すなわち、図5の(b)におけるイメージ描画領域Aは、バンド1〜バンド4に亘っている。従って、当該ソースイメージSIについては、スケーリング処理後の、4つのバンドに亘る出力ビットマップデータを、展開処理の結果として生成する必要がある。なお、ソースイメージSIの描画開始位置(x1,y1)、描画サイズ(dw×dh)についてはPDL中で指示される。
以上説明したイメージ描画を例として、まず、画像系中間コードの登録処理について説明する。図6は、画像系中間コード登録処理の手順を例示したフローチャートである。
ここで説明する処理は図4に示したステップS3の処理に対応しており、まず、中間コード登録部33は、解釈された画像オブジェクトの描画に係るコマンドがイメージ画像のものであるか否かを判断する(ステップS31)。ここで、イメージ画像のものでない場合には(ステップS31のNo)、すなわち、文字やグラフィックスの場合には、従来どおりの方法により中間コードの登録処理を実行する(ステップS32)。その結果、その画像オブジェクトが描画されるべきバンドの前記コード領域711に中間コードが適宜登録される。
一方、解釈されたコマンドがイメージ画像の描画に係るものである場合には(ステップS31のYes)、処理がステップS33に移行する。
図7は、イメージの画像オブジェクトを示すPDLのコマンドを例示した図である。図7には、前記想定したソースイメージSIの描画についてのコマンドであり、「sw」及び「sh」は前述したソースイメージSIのサイズを、「x1」及び「y1」は前述した描画開始位置を、「x2」及び「y2」は描画終了位置を示している。言い換えれば、「x1」及び「y1」と「x2」及び「y2」は、それぞれ、図5の(b)に示したイメージ描画領域A(矩形)の左上と右下の位置を示している。また、図7の「x2」及び「y2」以降(「・・・」の部分)には、ソースイメージSIのデータ(入力ビットマップデータ)が示される。このように、描画するイメージのスケーリングに係る情報はホストコンピュータ1側から指示される。なお、図7に示したコマンド情報は一例であって、例えば、イメージの描画領域を描画開始位置(x1,y1)と描画サイズ(dw×dh)で表すようにしてもよい。
図6に戻って、ステップS33では、倍率設定部32が、描画するイメージ、すなわち、ここではソースイメージSIの垂直方向の拡大率を決定する。具体的には、ソースイメージSIを描画サイズ(出力サイズ)にスケーリングする際の副走査方向の倍率を決定する。想定している例では、sw×shのサイズをdw×dhのサイズに拡大するので、dh/shの倍率に決定する。
次に、中間コード登録部33は、対象のイメージ画像が描画される先頭のバンドから最終バンドまで、バンド毎に、前記ソースイメージの生成及び記憶(S35)とイメージ中間コードの登録(S36)を実行する(ステップS34からS37)。想定している例では、ソースイメージSIについて、バンド1〜バンド4まで、バンド毎にステップS35及びS36の処理を実行する。
ステップS35では、具体的には、そのバンド用の中間コードソース(ソースイメージ)を、元のイメージ画像(ソースイメージSI)の、出力時にそのバンド内に描画される部分について、上記決定した拡大率で拡大(補間処理)したイメージ(ビットマップデータ)として生成し、生成した中間コードソースを前述した中間コードバッファ71のソースイメージ領域712に記憶する。すなわち、中間コード登録の際に、出力ビットマップデータを生成するために必要なスケーリング(補間)処理のうち、垂直方向(副走査方向)のスケーリングを行う。そして、この垂直方向の補間処理には、具体的にはバイキュービック法を用い、元のイメージデ画像(ソースイメージSI)の当該バンド内に描画される部分のピクセルデータだけでなく、他のバンド内に描画される部分も用いて(参照して)補間処理を行う。
図8は、当該中間コードソースの生成を説明するための図である。図8の(a)は、想定しているソースイメージSIについて、当該イメージが描画されるバンド1〜バンド4の各バンドの処理で生成される各中間コードソースを示している。図5の(a)に示したイメージ画像と比較して明らかなように、各中間コードソースのイメージは、垂直方向にのみ拡大されている。バンド1に着目すると、バンド1用中間コードソースのビットマップデータは、図8の(a)に示すように、幅がソースイメージSIと同じswピクセルであり、高さが出力ビットマップデータと同じbhピクセルのサイズとなっている。
そして、このバンド1用中間コードソースは、前述したように、ソースイメージSIをバイキュービック法によって補間処理して生成される。図8の(b)は、ソースイメージSIのビットマップデータを、出力時に各バンド内に描画される部分に分割して示している。バイキュービック法は、補間する画素の値を決定する際に当該画素の周囲に位置する複数の画素の値を参照するため、バンド1について補間処理を行う場合には、図8の(b)に示すバンド1の範囲(一番上)の元データだけでなく、イで指し示すバンド2の範囲の元データも参照して処理を行う。同様に、バンド2についての補間処理では、バンド1の元データ及びバンド3の元データも参照される。
当該処理の時点(ステップS35)では、ソースイメージSIの元データは、RAM7に分割されずに記憶されているので、このような処理が可能であり、また、このように処理することにより、バンド間で連続的な画像を生成することができる。前述したとおり、従来の一つの方法においては、図8の(b)に示したような状態に分割された後に、そのバンド内の元データのみを用いて補間処理を行うことになるため、バンド間において不連続な画像となってしまうという問題があった。
図8の(c)は、元のソースイメージSIの全体をバイキュービック法で垂直方向に前記拡大率で拡大した結果を示しているが、上記各バンド用の中間コードソースは、このイメージ画像をバンド毎に分割したものと同じである。なお、上記の説明では、各バンドの処理において、バンド毎に垂直方向の補間処理を行うが、各バンドの処理に入る前に、図8の(c)に示す拡大イメージを生成し、各バンドの処理では、当該拡大イメージのそのバンドに該当する部分を切り出して記憶するようにしてもよい。
なお、上記垂直方向の補間方法としてバイリニア法を用いてもよい。
次に、ステップS36では、前述のとおり、当該イメージオブジェクト(ソースイメージSI)の中間コードの登録処理を行う。具体的には、前記中間コードバッファ71のコード領域711における該当バンドの位置に、当該イメージの書き込み先座標等の情報を中間コードとして登録する。
図9は、イメージ中間コードを説明するための図である。図9の(a)は、ソースイメージSIについて、バンド1のコード領域711に登録されるコードの内容を例示している。図中「オペコード:IMAGE」は、当該中間コードがイメージ描画に係るものであることを示し、「書き込み先x座標:x1」、「書き込み先y座標:y1」、「書き込み幅:dw」、及び「書き込み高さ:bh」は、ソースイメージSIのバンド1における書き込み領域を示している。図9の(c)は、図5の(b)に示したイメージ描画領域Aのバンド1部分を示しており、上記書き込み領域を示す情報はこの部分を指定する情報となっている。言い換えれば、図2の(b)に示したバンドバッファ72内の書き込み領域を指定している。
また、「ソースイメージ幅:sw」及び「ソースイメージへのポインタ」は、当該バンド部分について、中間コードを展開処理してバンドバッファ72に書き込むためのソースイメージについて示している。前述のとおり、各バンドのソースイメージ自身は生成されてソースイメージ領域712に記憶されているので、これらのコードでは、ソースイメージの幅と上記記憶されているソースイメージへのポインタを示している。図9に示す例はバンド1についてのものであるので、図9の(b)に示すバンド1用の中間コードソース(図8(a)の一番上に示すものに相当)が記憶されている箇所へのポインタが示される。なお、ソースイメージの高さは、前述のとおり、既にソースイメージが垂直方向に拡大済みであり、書き込み先の高さと同じ値(bh)になっているので、当該情報は中間コードに含めない。
このようにして、バンド毎に、各ソースイメージを指し示すポインタを含むコードがコード領域711に登録され、一つのイメージオブジェクトについての中間コード登録処理が終了する。
以上説明したようにして画像系中間コード登録の処理(図4のS3)が実行される。
次に、画像展開処理(図4のS6)について説明する。図10は、画像展開処理の内容について例示したフローチャートである。
この画像展開処理では、前述のとおり、バンド毎に処理が実行されるので、ページの先頭バンド(バンド1)からページの最終バンド(バンドn)まで、順次、バンド毎に中間コード展開処理(ステップS62〜S66)、色変換処理、及び圧縮処理(ステップS67)が実行される(ステップS61〜S68)。
まず、中間コード展開処理では、前記展開部34が、そのバンドに登録されている先頭の中間コードから登録順に最後の中間コードまで、中間コード毎に、以下の処理を実行する(ステップS62〜S66)。
展開部34は、まず、その中間コードがイメージの描画に係るイメージ中間コードであるか否かを見て(ステップS63)、イメージ中間コードである場合には(ステップS63のYes)、当該中間コードに従って、当該イメージの展開処理を実行する(ステップS64)。
具体的には、当該中間コードの前述したポインタが示す対応ソースイメージ(ビットマップデータ)をバイリニア法で水平方向(走査方向)に拡大(補間処理)して、バンドバッファ72に展開する処理を行う。すなわち、出力ビットマップを生成するために必要なスケーリングの水平方向の補間処理を展開処理時に実行する。
より具体的には、中間コードに示されるバンドバッファ72の書き込み領域(描画領域)について、その書き込み開始位置から、順次、画素(ピクセル)毎に値(各色の濃度階調値)を決定して出力ビットマップデータを書き込んでいく。そして、その際、参照するソースイメージのデータでは、水平方向の画素数が足りないので、その分を補間しながら処理を行なう。すなわち、図8の(a)、図9の(b)に示すように、参照するソースデータは、その高さは書き込み先に対して足りているものの、幅は不足しているので、倍率設定部32が決定する、dw/swの倍率で水平方向の拡大をしつつ上記画素毎の展開処理を行っていく。
また、この補間処理では、上述のとおり、バイリニア法を用いる。当該方法では、水平方向にのみ補間する場合に、対象画素の水平方向に位置する画素の値のみを参照するため、そのバンドの最上部又は最下部においても他のバンドのデータ(画素の値)を参照する必要がない。従って、他のバンドのソースイメージを参照できない展開処理の時点においても正確な補間処理が行なえ、かつ、ニアレストネイバー法よりも画像品質の高い補間を行なうことができる。なお、水平方向にのみ拡大する場合に、補間対象画素の水平方向に位置する複数の画素のみを参照する補間方法であれば、バイリニア法でなくてもよい。
図11は、展開処理後のバンド1を例示した図である。想定している例においては、バンド1の中間コードを構成するソースイメージは、前述のとおり、図9の(b)に示すような状態(サイズ)となっているが、上述のような水平方向への拡大(補間)が行われてバンドバッファ72に展開されるので、図11のように出力時のサイズとなって、ビットマップデータが格納される。そして、上述のとおり、補間処理には、水平方向の画素のみが参照されればよいので、図9の(b)に示すソースイメージのみが用いられれば十分である。図示していないが、バンド2〜バンド4についても同様の処理が実行されることになり、元のソースイメージSIについて出力サイズのビットマップデータが生成される。
一方、処理対象の中間コードがイメージ中間コードでない場合には(ステップS63のNo)、展開部34は、その中間コードの内容に従って適宜処理を実行する(ステップS65)。制御系中間コードの場合には、各種の設定を行い、文字やグラフィックスの画像系中間コードの場合には、それらのオブジェクトについて、バンドバッファ72の所定箇所にビットマップデータを書き込んでいく。
このようにして、そのバンドの全ての中間コードについて展開処理が終了すると、処理がステップS67に移行し、まず、そのバンドの生成された出力ビットマップデータに対し、色変換部35による色変換処理が実行される。ここでは、例えば、RGBで表現された各画素の階調値がCMYKの階調値に変換される。その後、変換されたビットマップデータを、圧縮部36が圧縮処理してサイズの小さいデータとし、RAM7の所定箇所に記憶する。
このようにして、対象としていたバンドについての画像展開処理が終了し、その他のバンドについても同様の処理を実行すると、当該画像展開処理が終了する。
以上説明したように、本実施の形態例に係るコントローラ3においては、PDLなどの出力対象画像の入力情報からバンド毎の中間コードを生成し、バンド毎の中間コードからそのバンドの出力ビットマップデータを生成する際に、入力情報にイメージ画像のビットマップデータが含まれ、そのサイズを変えて出力ビットマップを生成する必要がある場合に、中間コードの生成の際に当該イメージ画像の垂直(副走査)方向のスケーリングを実行し、その後の出力ビットマップ生成時(展開処理時)に水平(走査)方向のスケーリングを実行する。
従って、入力イメージ画像の全てを参照できる中間コード生成時の段階で、高品質な補間処理のために他のバンドのデータも参照する必要がある垂直方向のスケーリングを行ない、他のバンドのデータを参照できない展開処理の段階で、他のバンドのデータを参照しなくても高品質な補間処理が可能な水平方向のスケーリングを行うことになる。
これにより、バンド境界での不連続性という問題のない高品質な出力画像を得られるスケーリング処理を実行可能であると共に、中間コード登録時には、イメージ画像が最終的な出力ビットマップのサイズになっていないので、中間コードソースとしてそれほど大きなメモリ領域を必要とせず、メモリ効率も比較的良好に保つことができる。
また、上記垂直方向の補間処理として、バイリニア法又はバイキュービック法を用い、上記水平方向の補間処理として、バイリニア法を用いることにより、上述の高品質な出力画像を実現することができる。なお、垂直方向の補間方法としては、補間対象の画素の周辺に位置する複数の画素を参照する、高品質な結果が得られるものであれば他の方法を用いてもよい。
なお、本実施の実施の形態例では、ホストコンピュータ1からPDLで印刷データが送信される場合で説明したが、ホストコンピュータ1側で中間コードを生成して、その中間コードをプリンタ2に送信する場合、及び、いわゆるホストベースプリンタシステムであって、ホストコンピュータ1側で展開処理までを実行し、生成された出力ビットマップデータをプリンタ2に送信する場合、においても本発明を適用することが可能である。
前者の場合には、ホストコンピュータ1のプリンタドライバ11とプリンタ2のコントローラ3が本発明を適用した画像処理装置に相当し、この場合にも、上述のとおりの効果を得ることができる。また、後者の場合においては、ホストコンピュータ1のプリンタドライバ11が本発明を適用した画像処理装置に相当し、やはり、上述のとおりの効果を得ることができる。
また、前記実施の形態例では、プリンタ用の画像処理装置であったが、本発明を適用した画像処理装置を複写機など他の画像形成装置に用いることもできる。
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
本発明を適用した画像処理装置の実施の形態例にかかる構成図である。 中間コードバッファ71とバンドバッファ72を概念的に示した図である。 コントローラ3の機能構成を例示した図である。 印刷時にコントローラ3が実行する処理を例示したフローチャートである。 想定している印刷対象を説明するための図である。 画像系中間コード登録処理の手順を例示したフローチャートである。 イメージの画像オブジェクトを示すPDLのコマンドを例示した図である。 中間コードソースの生成を説明するための図である。 イメージ中間コードを説明するための図である。 画像展開処理の内容について例示したフローチャートである。 展開処理後のバンド1を例示した図である。
符号の説明
1 ホストコンピュータ、 2 プリンタ、 3 コントローラ、 4 エンジン、 5 I/F、 6 ROM、 7 RAM、 8 CPU、 9 エンジンI/F、 11 プリンタドライバ、 71 中間コードバッファ、 72 バンドバッファ、 31 言語解釈部、 32 倍率設定部(倍率設定手段)、 33 中間コード登録部(中間コード登録手段)、 34 展開部(展開手段)、 35 色変換部、 36 圧縮部

Claims (7)

  1. 出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置であって、
    前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定手段と、
    前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する手段であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定手段が決定したスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録手段と、
    前記小領域毎に、処理対象の前記小領域の、前記中間コード登録手段が登録した中間コードから、前記出力ビットマップデータを生成する手段であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定手段が決定したスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開手段と、を有する
    ことを特徴とする画像処理装置。
  2. 請求項1において、
    前記展開手段による前記所定の一方向と直交する方向にスケーリングは、補間する各画素のデータを決定する際に、当該画素の、前記所定の一方向と直交する方向に位置する複数の画素のデータを参照して行われる
    ことを特徴とする画像処理装置。
  3. 請求項2において、
    前記所定の一方向と直交する方向へのスケーリングは、バイリニア法を用いて行われる
    ことを特徴とする画像処理装置。
  4. 請求項1乃至請求項3のいずれかにおいて、
    前記所定の一方向のスケーリングは、補間する各画素のデータを決定する際に、当該画素の周辺に位置する複数の画素のデータを参照して行われる
    ことを特徴とする画像処理装置。
  5. 請求項4において、
    前記所定の一方向へのスケーリングは、バイリニア法あるいはバイキュービック法を用いて行われる
    ことを特徴とする画像処理装置。
  6. 出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を実行する画像処理装置における画像処理方法であって、
    前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、
    前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、
    前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を有する
    ことを特徴とする画像処理方法。
  7. 出力対象画像の入力情報を、出力解像度に合った出力ビットマップデータに変換する処理を画像処理装置に実行させる画像処理プログラムであって、
    前記出力対象画像にイメージ画像の画像オブジェクトが含まれ、当該イメージ画像の前記入力情報として入力ビットマップデータが与えられる場合に、当該入力ビットマップデータを前記出力ビットマップデータとするためのスケーリング率を決定する倍率設定工程と、
    前記出力対象画像に含まれる各画像オブジェクトについて、前記入力情報から、前記出力対象画像の出力領域を所定の一方向に分割した複数の小領域の各小領域毎に、中間コードを生成して前記画像処理装置のメモリに登録する工程であって、画像オブジェクトが前記イメージ画像である場合には、前記倍率設定工程で決定されたスケーリング率に従って、当該イメージ画像の前記入力ビットマップデータを前記所定の一方向にスケーリングしたビットマップデータの、前記各小領域に出力される部分について、前記各小領域の前記中間コードに含める中間コード登録工程と、
    前記小領域毎に、処理対象の前記小領域の、前記中間コード登録工程で登録された中間コードから、前記出力ビットマップデータを生成する工程であって、前記中間コードが前記イメージ画像に係るものである場合には、当該中間コードに含まれる前記ビットマップデータを、前記倍率設定工程で決定されたスケーリング率に従って、前記所定の一方向と直交する方向にスケーリングして前記出力ビットマップデータを生成する展開工程と、を前記画像処理装置に実行させる
    ことを特徴とする画像処理プログラム。
JP2007011997A 2007-01-22 2007-01-22 画像処理装置、画像処理方法、及び画像処理プログラム Pending JP2008173946A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007011997A JP2008173946A (ja) 2007-01-22 2007-01-22 画像処理装置、画像処理方法、及び画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007011997A JP2008173946A (ja) 2007-01-22 2007-01-22 画像処理装置、画像処理方法、及び画像処理プログラム

Publications (1)

Publication Number Publication Date
JP2008173946A true JP2008173946A (ja) 2008-07-31

Family

ID=39701324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007011997A Pending JP2008173946A (ja) 2007-01-22 2007-01-22 画像処理装置、画像処理方法、及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2008173946A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011139163A (ja) * 2009-12-25 2011-07-14 Canon Inc 画像処理装置及び画像処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212662A (ja) * 1996-02-07 1997-08-15 Fuji Xerox Co Ltd 画像出力装置
JP2004171050A (ja) * 2002-11-15 2004-06-17 Seiko Epson Corp 印刷制御装置、印刷制御装置の制御方法、印刷制御装置の制御プログラム、印刷システムおよび印刷装置
JP2006135825A (ja) * 2004-11-09 2006-05-25 Canon Inc 画像補間処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212662A (ja) * 1996-02-07 1997-08-15 Fuji Xerox Co Ltd 画像出力装置
JP2004171050A (ja) * 2002-11-15 2004-06-17 Seiko Epson Corp 印刷制御装置、印刷制御装置の制御方法、印刷制御装置の制御プログラム、印刷システムおよび印刷装置
JP2006135825A (ja) * 2004-11-09 2006-05-25 Canon Inc 画像補間処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011139163A (ja) * 2009-12-25 2011-07-14 Canon Inc 画像処理装置及び画像処理方法

Similar Documents

Publication Publication Date Title
JP5209953B2 (ja) 画像データ供給装置および画像データ供給方法
JP4757120B2 (ja) 画像処理装置及びその制御方法
JP6029344B2 (ja) 画像処理装置、画像処理方法、プログラム
US20070279705A1 (en) Image processing apparatus and control method thereof, and program
JP3745179B2 (ja) 情報処理装置及びその制御方法及び記憶媒体
JPH111029A (ja) カラープリントシステム,カラープリンタ,及びコンピュータが実行可能なプログラムを格納したコンピュータが読取可能な記録媒体
JP3902907B2 (ja) 画像処理装置及び方法と画像形成装置
JP4646703B2 (ja) 画像処理装置及びその制御方法、プログラム
JPH05342314A (ja) 画像処理装置
JP2008173946A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP6330790B2 (ja) 印刷制御システム、印刷制御装置およびプログラム
JP4336470B2 (ja) 描画制御装置および描画制御方法およびプログラム
JP2004299104A (ja) イメージデータ処理装置および画像形成装置
JP4379571B2 (ja) 画像処理装置及び画像処理方法
JP2004334533A (ja) 画像処理装置および画像処理方法
JP2002063582A (ja) 画像形成装置及び画像形成方法
JP2009194458A (ja) 画像処理装置及び画像処理方法
JP2001287413A (ja) プリンタ制御装置
JP2007081886A (ja) 描画処理装置
JPH10151815A (ja) 印刷処理装置
JPH0744687A (ja) 画像形成装置
JP3297448B2 (ja) 画像処理装置及び画像処理方法
JP3419450B2 (ja) 画素データ処理装置および方法
JP2007043461A (ja) 画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体
JP2005275671A (ja) 印刷制御装置、印刷制御方法および印刷制御プログラムを記録した媒体

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090903

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090911

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120410