以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、圧縮処理された複数の画像データの合成処理を含む各種画像処理を実行する画像処理装置を例として説明する。
図1は、本実施形態に係る画像処理装置1のハードウェア構成を例示するブロック図である。図1に示すように、本実施形態に係る画像処理装置1は、コントローラ100、オペレーションパネル140、FCU(Facsimile Control Unit)160及び専用エンジン180を含む。
また、コントローラ100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、ASIC(Application Specific Integrated Circuit)120、HDD(Hard Disk Drive)103、ROM(Read Only Memory)104、NIC(Network Interface Card)105を含む。また、ASIC120には、CPU101、RAM102、HDD103、ROM104及びNIC105がバスを介して接続されている。
また、オペレーションパネル140は、LCD(Liquid Crystal Display)141及び操作部142を含む。また、LCD141、操作部142、FCU160及び専用エンジン180は、バスを介してASIC120に接続されている。
LCD141は、ユーザが画像処理装置1の状態を確認するための視覚的ユーザインタフェースである。操作部142は、キーボードやマウス、タッチパネル等、ユーザが画像処理装置1に情報を入力するためのユーザインタフェースである。FCU160は、メモリを有し、例えば画像処理装置1の電源がオフのときに受信したファクシミリデータが一時的に格納される。
専用エンジン180は、スキャナ、プリンタ等の画像処理装置1に搭載される機能を実現するための構成であり、スキャナユニット181及びプリントエンジン182を含む。スキャナユニット181は、コントローラ100の制御に従い、セットされた原稿を撮像する。撮像動作においては、スキャナユニット181に含まれるCCD等の撮像素子が原稿を光学的に走査し、光学情報に基づいて撮像画像が生成される。プリントエンジン182は、描画情報に基づいて用紙に画像形成を施す。
CPU101は演算手段であり、画像処理装置1全体の動作を制御する。RAM102は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU101が情報を処理する際の作業領域として用いられる。HDD103は、情報の読み書きが可能な不揮発性の記憶媒体であり、画像データや文書データ等の各種のデータ及びプログラム等を格納する。また、本実施形態において、HDD103は、他の画像データに合成される合成用画像データを格納する。合成用画像データは、例えば、日付、ページ番号、機密管理番号、「マル秘」等の文字、「丸秘」等のスタンプ形状を示す。
ROM104は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムを格納する。NIC105は、Ethernet(登録商標)やLAN(Local Area Network)等のネットワークを介して接続されているクライアント端末等の他の装置との通信制御を行うコントローラである。
ASIC120は、CPU101の制御に従い画像処理に必要な機能を実現する画像処理用途向けの集積回路である。ASIC120には、スキャナユニット181により撮像されて生成された読取画像データ、HDD103に記憶されている画像データ、NIC105を介して接続された他の装置から送信された画像データが入力される。ASIC120は、入力された画像データに対して各種の画像処理を行うとともに、本実施形態においては、入力された画像データを合成する画像合成処理を実行する機能を有する。
以下、ASIC120による画像合成処理を含む画像処理動作を説明する。本説明においては、コピー対象の原稿の画像データにHDD103に格納されている合成用画像データを合成して印刷出力する場合を例として説明する。ユーザがオペレーションパネル140を介してコピー動作を開始する操作を行うと、まず、コピー対象の原稿がスキャナユニット181により撮像されて読み取られることにより読取画像データが生成される。ASIC120は、生成された読取画像データをRAM102に記憶させる。
次に、ASIC120は、HDD103に格納されている合成用画像データを読み出して、RAM102に記憶させる。そして、ASIC120は、RAM102に格納された読取画像データと合成用画像データとを合成する画像合成処理を実行する。画像合成処理を実行したASIC120は、合成された画像データをプリントエンジン182に対して出力する。これにより、プリントエンジン182は、合成された画像データに基づいて紙面上に画像形成を施して出力する。
なお、上述の説明においては、コピー動作における画像合成処理を例として説明したが、コピー動作に限らず、プリント動作、ファクシミリ送信動作、ファクシミリ受信動作、スキャナ動作等の各種の画像処理動作において画像合成処理が行われてもよい。
本実施形態に係るASIC120は、このような画像合成処理において、選択型GBTC(Generalized Block Truncation Coding)により圧縮された複数の画像データを合成する機能を有する。選択型GBTCは、画像データに対して所定の大きさに分割された複数の領域ごとに領域の画像の情報に応じた圧縮率で圧縮処理を行う圧縮方式であり、詳細は後述する。この機能が本実施形態の要旨の1つであり、以下、本実施形態に係るASIC120の機能構成を説明する。
図2は、本実施形態に係るASIC120の機能構成を例示するブロック図である。図2に示すように、本実施形態に係るASIC120は、圧縮伸張部121、RAM記憶処理部122、画像編集部123、画像回転部124及び出力部125を含む。圧縮伸張部121は、スキャナユニット181により撮像されて生成された読取画像データ、HDD103に記憶されている画像データ、NIC105を介して接続された他の装置から送信された画像データ等を圧縮する。また、圧縮伸張部121は、圧縮された画像データを伸張する。
本実施形態に係る圧縮伸張部121は、選択型GBTCによる圧縮伸張を行う。図3は、選択型GBTCによる圧縮処理対象の画像データの一部を例示する図である。図3(a)に示すように、選択型GBTCによる圧縮処理は、画像データを所定の大きさに分割したブロック単位ごとに行われる。
図3(b)は、図3(a)に示したブロックのうちの1つを拡大した図である。図3(b)に示すように、各ブロックは、例えば4×4画素で構成される。本実施形態においては、図3(b)に示すように、i方向及びj方向の座標位置を定め、ブロックの1画素の画素値をXijとする。また、本実施形態においては、画素値Xijは8bitで示されるものとする。
選択型GBTCにおいては、例えば、元の画像データから4/8圧縮、3/8圧縮、2/8圧縮等の複数の圧縮率が定められている。圧縮伸張部121は、各ブロックの画像の情報(例えば、エッジを含む画像、平坦領域の画像)応じてブロックごとに使用する圧縮率を選択する。
図4は、選択型GBTCの4/8圧縮による圧縮態様を例示する図である。圧縮伸張部121は、4/8圧縮の場合、図4に示すように画素値Xijを3bitの符号化データφij(000〜111)で符号化する。以下、圧縮伸張部121によりブロックを構成する各画素の画素値を4/8圧縮により符号化するための処理を、図4を参照して説明する。図4に示すLminは、ブロックを構成する画素の画素値の最小値であり、Lmaxは、ブロックを構成する画素の画素値の最大値である。
Lmin及びLmaxに基づいて、以下の式(1)、(2)により値P1、P2が求められる。
P1=(Lmax+7Lmin)/8 ・・・(1)
P2=(7Lmax+Lmin)/8 ・・・(2)
上記の式(1)、(2)により求められたP1及びP2に基づいて、ブロックを構成する各画素の画素値のうちP1以下である画素値の平均値Qmin及びP2より大きい画素値の平均値Qmaxが求められる。
Qmin及びQmaxに基づいて、以下の式(3)、(4)により平均値LA及び階調幅指標LDが求められる。
LA=(Qmin+Qmax)/2 ・・・(3)
LD=Qmax−Qmin ・・・(4)
上記式(3)、(4)により求められたLA及びLDに基づいて、以下のようにLminからLmaxまでの階調を区分する図4に示した境界値L1〜L6が求められる。
L1=LA−LD/8
L2=LA−2LD/8
L3=LA−3LD/8
L4=LA+LD/8
L5=LA+2LD/8
L6=LA+3LD/8
このように求められた各値に基づいて、ブロックを構成する画素の各画素値Xijを符号化データφijで符号化する。具体的には、図4に示すように、L6<Xij≦Lmaxの場合φij=111であり、L5<Xij≦L6の場合φij=110であり、L4<Xij≦L5の場合φij=101であり、LA<Xij≦L4の場合φij=100である。また、L1<Xij≦LAの場合φij=000であり、L2<Xij≦L1の場合φij=001であり、L3<Xij≦L2の場合φij=010であり、Lmin>Xij≦L3の場合φij=011である。
ブロックを構成する各画素の元の画素値が8bitで構成されていることから、ブロック全体のデータ量は、4×4(画素)×8(bit)=128bitである。上述した4/8圧縮による圧縮処理により、ブロックを構成する各画素の画素値は3bitの符号化データで符号化されるので、ブロック全体の符号化データ量は、4×4(画素)×3(bit)=48bitである。すなわち、ブロック全体のデータ量は、符号化データ量(48bit)に、伸張処理に必要なLAのデータ量(8bit)及びLDのデータ量(8bit)を加算した64bitである。よって、元の画像は64(bit)/128(bit)=4/8圧縮されることになる。
なお、4/8圧縮により圧縮された画像データが伸張される場合、伸張された画素値X´ijは、圧縮された画像データに含まれるLA及びLDの値に基づいて、以下のように算出される。
φij=111の場合、X´ij=LA+LD/2
φij=110の場合、X´ij=LA+LD*23/64
φij=101の場合、X´ij=LA+LD*14/64
φij=100の場合、X´ij=LA+LD*5/64
φij=000の場合、X´ij=LA−LD*5/64
φij=001の場合、X´ij=LA−LD*14/64
φij=010の場合、X´ij=LA−LD*23/64
φij=011の場合、X´ij=LA−LD/2
図5は、選択型GBTCの3/8圧縮による圧縮態様を例示する図である。圧縮伸張部121は、3/8圧縮の場合、図5に示すように画素値Xijを2bitの符号化データφij(00〜01)で符号化する。図4に示した場合と同様の手順により、LA、L1、L3が求められる。
このように求められた各値に基づいて、ブロックを構成する各ブロックを構成する画素の各画素値Xijを符号化データφijで符号化する。具体的には、図5に示すように、L2<Xij≦Lmaxの場合φij=11であり、LA<Xij≦L2の場合φij=10であり、L1<Xij≦LAの場合φij=00であり、Lmin<Xij≦L1の場合φij=01である。
上述した3/8圧縮による圧縮処理により、ブロックを構成する各画素の画素値は2bitの符号化データで符号化されるので、ブロック全体の符号化データ量は、4×4(画素)×2(bit)=32bitである。すなわち、ブロック全体のデータ量は、符号化データ量(32bit)に、伸張処理に必要なLAのデータ量(8bit)及びLDのデータ量(8bit)を加算した48bitである。よって、元の画像は48(bit)/128(bit)=3/8圧縮されることになる。
なお、3/8圧縮により圧縮された画像データを伸張する場合、伸張された画素値X´ijは、圧縮された画像データに含まれるLA及びLDの値に基づいて、以下のように算出される。
φij=11の場合、X´ij=LA+LD/2
φij=10の場合、X´ij=LA+LD/6
φij=00の場合、X´ij=LA−LD/6
φij=01の場合、X´ij=LA−LD/2
図6は、2/8圧縮による圧縮態様を例示する図である。圧縮伸張部121は、2/8圧縮の場合、図6に示すように画素値Xijを1bitの符号化データφij(0又は1)で符号化する。図6に示した場合と同様の手順によりLAが求められる。
このように求められた各値に基づいて、ブロックを構成する各ブロックを構成する画素の各画素値Xijを符号化データφijで符号化する。具体的には、図6に示すように、LA<Xij≦Lmaxの場合φij=1であり、Lmin<Xij≦LAの場合φij=0である。
上述した2/8圧縮による圧縮処理により、ブロックを構成する各画素の画素値は1bitの符号化データで符号化されるので、ブロック全体の符号化データ量は、4×4(画素)×1(bit)=16bitである。すなわち、ブロック全体のデータ量は、符号化データ量(16bit)に、伸張処理に必要なLA(8bit)及びLD(8bit)を加算した32bitである。よって、元の画像は32(bit)/128(bit)=2/8圧縮されることになる。
なお、2/8圧縮により圧縮された画像データを伸張する場合、伸張された画素値X´ijは、圧縮された画像データに含まれるLA及びLDの値に基づいて、以下のように算出される。
φij=1の場合、X´ij=LA+LD/2
φij=0の場合、X´ij=LA−LD/2
圧縮伸張部121は、ブロックを構成する画像の複雑度に応じて、このような複数の異なる圧縮率の中からいずれかの圧縮率を選択して、ブロックごとに異なる圧縮率で圧縮処理を行う。複雑度は、例えば、ブロック内の各画素の画素値の標準偏差であるとする。例えば、ブロックがエッジを含む画像である場合、ブロックの複雑度が高いので、このブロックを高圧縮率で圧縮処理すると、画質が大きく落ちる。
そこで、例えば、圧縮伸張部121は、ブロックを構成する画像の複雑度が予め定められた閾値(以降、「低圧閾値」とする)よりも高い場合、最も圧縮率の低い4/8圧縮でブロックを圧縮処理する。
一方、例えば、ブロックが平坦領域である場合、ブロックの複雑度が低いので、このブロックを高圧縮率で圧縮処理しても画質が大きく落ちることはない。そこで、圧縮伸張部121は、ブロックを構成する画像の複雑度が予め定められた閾値(以降、「高圧縮閾値」とする)よりも低い場合、最も圧縮率の高い2/8圧縮でブロックを圧縮処理する。
また、圧縮伸張部121は、ブロックを構成する画像の複雑度が高圧縮閾値以上で低圧縮閾値以下である場合、3/8圧縮でブロックを圧縮処理する。
図7は、選択型GBTCにより圧縮された画像データ(以降、「圧縮画像データ」とする)のデータ構成を例示する図である。図7に示すように、圧縮画像データは、例えば、符号ヘッダ、LA、LD、ピクセルコード、符号ヘッダ(後)から構成される。符号ヘッダは、どの圧縮率により圧縮されたかを識別する識別値である。圧縮伸張部121は、圧縮処理を行う際に、圧縮画像データの符号ヘッダとして識別値を付与する。
LA及びLDは、符号化データを生成する際に用いられた上述したLA及びLDの値である。ピクセルコートは、上述した圧縮処理により生成された符号化データである。すなわち、圧縮率に応じてピクセルコードの長さが変動する。符号ヘッダ(後)は、後述する画像回転部124により回転処理された圧縮画像を後ろから復号する際に、どの圧縮率により圧縮されたかを識別する識別値である。
図2に戻り、RAM記憶処理部122は、RAM記憶処理部122に入力された画像データをRAM102に記憶させる。RAM記憶処理部122には、例えば、圧縮伸張部121により圧縮又は伸張された画像データが入力される。その他、RAM記憶処理部122には、スキャナユニット181により撮像されて生成された読取画像データ、NIC105を介して接続された他の装置から送信された画像データ等、ASIC120に入力されるあらゆる画像データが入力される。
また、RAM記憶処理部122は、圧縮伸張部121を介することなく、圧縮済の画像データをHDD103やNIC105を介して直接取得する場合もある。例えば、圧縮済の合成用画像データがHDD103に格納されている場合、RAM記憶処理部122は、画像合成処理が行われる場合に、HDD103に格納されている圧縮済の合成用画像データをRAM102に記憶させる。
画像編集部123は、CPU101の制御に従って、RAM102に記憶されている画像データの各種編集処理を行う。画像回転部124は、CPU101の制御に従って、RAM102に記憶されている画像データの回転処理を行う。
出力部125は、CPU101の制御に従って、RAM102に記憶されている画像データをプリントエンジン182やHDD103等の各部に出力する。また、出力部125は、CPU101の制御に従って、RAM102に記憶されている画像データ及び合成用画像データを合成して各部に出力する。
例えば、画像編集、画像回転、画像合成等の各画像処理が施された画像データがプリントエンジン182に出力された場合、プリントエンジン182は画像データに基づいて画像を紙面上に画像形成して出力する。また、例えば、各画像処理が施された画像データがHDD103に出力された場合、HDD103に画像処理が施された画像データが格納される。また、出力部125は、各画像処理が施された画像データを、ネットワークに接続された他の装置へNIC105を介して出力してもよい。
図8は、出力部125の機能構成を例示するブロック図である。図8に示すように、出力部125は、画像合成処理部130及び選択出力部126を含む。画像合成処理部130は、複数の画像データが入力されると、入力された複数の画像データを合成する。
図9は、RAM記憶処理部122によりRAM102に記憶されているスキャナユニット181により原稿が読み取られて生成された読取画像の一部を例示する図である。図10は、図9に示した読取画像と、RAM記憶処理部122によりRAM102に記憶されている合成用画像との合成画像の一部を例示する図である。なお、図9及び図10に示す点線は処理単位となる分割ブロックを示すが、実際の画像に点線は表示されていない。
例えば、ユーザがオペレーションパネル140を介して、図10に示すように読取画像上に合成画像を付加する操作を行う。この操作が行われると、CPU101の制御に従って、合成画像が配置された位置で読取画像のブロックの画像データ及び合成用画像のブロックの画像データが画像合成処理部130に入力される。その際、CPU101は、合成用画像のブロックと読取画像のブロックとの位置が一致するよう制御し、合成用画像の1つのブロックが読取画像の複数のブロックをまたいで位置することがないよう制御する。
画像合成処理部130は、ブロック単位の複数の画像データが入力されると、これらの画像データを合成する処理を行う。その際、入力された複数の画像データが選択型GBTCによる圧縮画像データである場合、画像合成処理部130は、入力された圧縮画像データを伸張することなく圧縮画像データを合成する。この処理が、本実施形態の要旨の1つであり、詳細は後述する。
一方、合成画像が付加された位置以外の位置のブロック画像データは、画像合成処理部130に入力されることなく、直接選択出力部126へ入力される。選択出力部126は、画像データそのもの又は画像合成処理部130により合成された画像データ(以降、「合成画像データ」)を出力するマルチプレクサ(MUX)である。すなわち、選択出力部126は、合成画像が付加された位置では合成画像データのブロックを出力し、それ以外の位置では画像データのブロックを出力する。
次に、画像合成処理部130による画像合成処理の詳細を説明する。図11は、画像合成処理部130の機能構成を例示するブロック図である。図11に示した機能構成においては、HDD103に予め格納されている2/8圧縮で圧縮処理された合成用画像データが画像合成処理部130により合成処理される場合を例として説明する。
なお、以降、圧縮処理された合成用画像データを単に「合成用画像データ」と記載する。また、合成用画像データが合成される圧縮処理された画像データを「被合成画像データ」とする。また、画像合成処理部130における処理単位は、1ブロック(4×4画素)であり、「合成用画像データ」及び「被合成画像データ」と記載している場合も1ブロックの画像データであるとする。
図11に示すように、画像合成処理部130は、圧縮率判定部131、2/8×2/8合成部132−1、3/8×2/8合成部132−2、4/8×2/8合成部132−3及び合成出力部133を含む。なお、以降、2/8×2/8合成部132−1、3/8×2/8合成部132−2、4/8×2/8合成部132−3をそれぞれ「合成部132−1」、「合成部132−2」、「合成部132−3」と記載し、総じて「合成部132」と記載する場合がある。
圧縮率判定部131は、画像合成処理部130に入力された被合成画像データの圧縮率を判定する。すなわち、圧縮率判定部131は、圧縮画像データの圧縮率を取得する圧縮率取得部として機能する。具体的には、例えば、圧縮率判定部131は、被合成画像データの図7に示した符号ヘッダを参照して圧縮率を判定する。圧縮率判定部131は、判定した圧縮率に基づいて、合成部132のうちのいずれか1つに被合成画像データを入力するとともに、合成出力部133に対して判定した圧縮率の情報を入力する。
具体的には、圧縮率判定部131は、被合成画像データが2/8圧縮で圧縮処理されている場合、被合成画像データを合成部132−1に入力する。また、圧縮率判定部131は、被合成画像データが3/8圧縮で圧縮処理されている場合、被合成画像データを合成部132−2に入力する。また、圧縮率判定部131は、被合成画像データが4/8圧縮で圧縮処理されている場合、被合成画像データを合成部132−3に入力する。
合成部132は、被合成画像データの圧縮率及び合成用画像データの圧縮率の組み合わせに応じてそれぞれ複数の圧縮画像データを構成する符号化データを合成する合成回路であり、被合成画像データ及び合成用画像データの両方が入力されると、合成画像データを出力する。具体的には、合成部132は、合成用画像データを合成画像データとして出力する。すなわち、本実施形態においては、図10に示したように、被合成画像データのブロックが合成用画像データのブロックに置き換えられる。
合成用画像データの圧縮率と被合成画像データの圧縮率とが異なる場合、合成部132は、合成用画像データを構成する各画素の符号化データを、合成対象の複数の圧縮画像データのいずれかの圧縮率に合わせて変換する必要がある。本実施形態においては、最も低い圧縮率に合わせて符号化データが変換される場合を例として説明する。
合成部132−1は、両画像データの圧縮率が同じであるので、合成用画像データの符号化データを変換する必要がなく、合成用画像データをそのまま合成出力部133に入力する。合成部132−2は、合成用画像データの1bitの符号化データを、3/8圧縮の2bitの符号化データに変換する。
図12は、各圧縮率の符号化データの対応関係を例示する図である。例えば、合成部132−2は、合成用画像の符号化データが“1”である場合、図12に示すように、符号化データを“11”又は“10”に変換して合成出力部133に入力する。いずれの符号化データに変換するかは、合成部132−2において予め設定されているものとする。
合成部132−3は、合成用画像データの1bitの符号化データを、4/8圧縮の3bitの符号化データに変換する。例えば、合成部132−3は、合成用画像の符号化データが“1”である場合、図12に示すように、“111”、“110”、“101”、“100”のいずれかに変換して合成出力部133に入力する。いずれの符号化データに変換するかは、合成部132−3において予め設定されているものとする。
合成出力部133は、圧縮率判定部131から入力された圧縮率の情報に基づいて、いずれかの合成部132から入力される合成画像データを出力するマルチプレクサ(MUX)である。例えば、合成出力部133は、入力された圧縮率の情報が3/8圧縮を示す場合、合成部132−2から入力された合成画像データを出力する。上述した画像合成処理部130の各部による処理がブロックごとに繰り返される。
次に、合成用画像の圧縮率がブロックごとに異なる場合の画像合成処理部130の構成を説明する。図13は、合成用画像の圧縮率がブロックごとに異なる場合の画像合成処理部130の機能構成を例示するブロック図である。図13に示すように、画像合成処理部130は、圧縮率判定部134、合成用画像圧縮率判定部135、2/8×2/8合成部132−1、3/8×2/8合成部132−2、4/8×2/8合成部132−3、3/8×3/8合成部132−4、4/8×3/8合成部132−5及び4/8×4/8合成部132−6及び合成出力部136を含む。
なお、2/8×2/8合成部132−1、3/8×2/8合成部132−2、4/8×2/8合成部132−3は、図11に示した合成部132−1、132−2、132−3と同様の構成である。また、以降、3/8×3/8合成部132−4、4/8×3/8合成部132−5及び4/8×4/8合成部132−6をそれぞれ「合成部132−4」、「合成部132−5」、「合成部132−6」と記載し、合成部132−1〜132−6を総じて「合成部132」と記載する場合がある。
圧縮率判定部134は、図11に示した圧縮率判定部131と同様に、被合成画像データの圧縮率を判定する。また、圧縮率判定部134は、合成部132のうち判定した圧縮率の圧縮画像データを受け付ける合成部132に被合成画像データを入力する。例えば、圧縮率判定部131は、被合成画像データが2/8圧縮で圧縮処理されている場合、被合成画像データを合成部132−1、132−2、132−3に入力する。また、圧縮率判定部134は、合成出力部136に対して判定した圧縮率の情報を入力する。
合成用画像圧縮率判定部135は、画像合成処理部130に入力された合成用画像データの圧縮率を判定する。すなわち、合成用画像圧縮率判定部135は、圧縮画像データの圧縮率を取得する圧縮率取得部として機能する。具体的には、例えば、合成用画像圧縮率判定部135は、合成用画像データの図7に示した符号ヘッダを参照して圧縮率を判定する。また、合成用画像圧縮率判定部135は、合成部132のうち判定した圧縮率の圧縮画像データを受け付ける合成部132に合成用画像データを入力する。また、合成用画像圧縮率判定部135は、合成出力部136に対して判定した圧縮率の情報を入力する。
合成部132は、図11に示した合成部132と同様な処理を行う合成回路であり、被合成画像データ及び合成用画像データの両方が入力されると、合成画像データを出力する。本実施形態においては、合成用画像データの圧縮率が被合成画像データの圧縮率よりも高い場合、合成部132は、合成用画像データの符号化データを被合成画像データの符号化データの長さに合わせて変換し、それ以外の場合、合成用画像データをそのまま合成出力部136に入力する。
合成出力部136は、圧縮率判定部134及び合成用画像圧縮率判定部135から入力された圧縮率に基づいて、いずれかの合成部132から入力される合成画像データを出力するマルチプレクサ(MUX)である。図14は、被合成画像の圧縮率と合成用画像の圧縮率の組み合わせに応じた合成出力部136への入力情報を例示する図である。
図14に示したA〜Fは、図13に示した合成部132−1〜132−6からの入力A〜Fにそれぞれ対応する。すなわち、図14に示すように、例えば、被合成画像データの圧縮率が4/8圧縮であり、合成用画像データの圧縮率が2/8圧縮である場合、合成出力部136は、合成部132−3(入力C)から入力される合成画像データを出力する。
図15は、画像合成処理部130における画像合成処理の具体例を例示する図である。ここでは、4/8圧縮で圧縮処理された被合成画像データ及び2/8圧縮で圧縮処理された合成用画像データが画像合成処理部130に入力された場合を例として説明する。圧縮率判定部134は、圧縮率の判定結果に基づいて、4/8圧縮の画像データが入力される合成部132−3、132−5、132−6に被合成画像データを入力する。
合成用画像圧縮率判定部135は、圧縮率の判定結果に基づいて、2/8圧縮の画像データが入力される合成部132−1、132−2、132−3に合成用画像データを入力する。合成出力部136は、図14に示した入力情報に基づいて、入力Cすなわち合成部132−3からの入力を合成画像データとして出力する。なお、合成部132−3には、被合成画像データ及び合成用画像データの両方が入力されている。また、出力された合成画像データは、合成用画像データの符号化データが4/8圧縮の符号長の符号化データに変換されたものである。
以上説明したように、本実施形態に係る画像処理装置1は、選択型GBTCによる圧縮率の組み合わせに応じた複数の合成部を備え、合成対象の複数の画像データそれぞれのブロックごとの圧縮率の組み合わせに応じた合成部を選択して合成画像を出力する。これにより、ブロックごとに選択型GBTCにより異なる符号長で圧縮処理された複数の圧縮画像データを伸張することなく合成することが可能になる。すなわち、本実施形態により、画像データのブロックの複雑度に応じてブロックごとに異なる圧縮率で圧縮処理された複数の画像データを合成する際に使用するメモリ容量を削減することが可能になる。
なお、上記実施形態においては、合成用画像データがHDD103に予め格納されている場合を例として説明した。しかしながら、これは一例であり、合成用画像データはNIC105を介して他の装置から取得されたり、スキャナユニット181により原稿が読み取られて生成されたり、適宜フォントデータから生成されたり等、何らかの方法で取得可能であればよい。
また、本実施形態に係る合成部132は、合成対象の複数の画像データの圧縮率が異なる場合、最も低い圧縮率に合わせて合成用画像データの符号化データを変換する場合を例として説明した。この場合、画質の劣化をできるだけ抑えた合成画像を出力することが可能になる。
その他、合成部132は、最も高い圧縮率に合わせて合成用画像データの符号化データを変換するようにしてもよい。この場合、合成部132は、例えば、合成用画像データの符号化データが“11”である場合、図12に示すように符号化データを“1”に変換することで、2/8圧縮の圧縮率に合わせることができる。このような構成により、合成用画像データの符号化データの符号長が変換により長くなることがないので、画像合成処理において必要なメモリ量を最小限に抑えることが可能になる。