(57)【要約】【課題】画像を複数の領域に分割して圧縮符号化する際に、符号化後の符号列を短時間で復号できるようにする。【解決手段】画像データを圧縮符号化する際には、画像は複数のタイルに分割する。そして、タイルごとに圧縮符号化したときに、その符号化後の符号列の復号に要する時間を、タイルごとに算出する。そして、この算出した各時間を所定の閾値と比較する。これにより、所定時間が閾値を超えるタイルをさらに所定時間より短い時間でそれぞれ復号できる複数のサブタイルに分割する。各タイルおよびサブタイルへの分割を行なったときは各サブタイルを圧縮符号化して符号列を得る。【選択図】    図１０
2004228964.tif 000002
【特許請求の範囲】
【請求項１】
画像データを複数の領域に分割する第１の領域分割手段と、前記領域ごとに圧縮符号化できる所定の圧縮符号化方式で圧縮符号化したときに、その符号化後の符号列の復号に要する時間を、前記領域ごとに算出する復号時間見積手段と、
この算出した各時間を所定の閾値と比較する比較手段と、
前記時間が前記閾値を超える前記領域をさらに前記時間より短い時間でそれぞれ復号できる複数の小領域に分割する第２の分割手段と、
前記各領域および前記小領域への分割を行なったときは前記各小領域を前記圧縮符号化方式で圧縮符号化して符号列を得る第１の符号化手段と、
を備えている画像処理装置。
【請求項２】
前記画像データを複数の領域に分割することなく圧縮符号化して符号列を得る第２の符号化手段と、
この符号列を量子化する量子化手段と、
この量子化後の符号列を復号する第１の復号手段と、
を備え、
前記第１の符号化手段は、前記復号後の画像データに対して量子化を行なうことなく符号化を行う、
請求項１に記載の画像処理装置。
【請求項３】
前記量子化手段は、前記第１の符号化手段によって生成される符号列が所定の符号量以下となるように前記量子化を行う、請求項２に記載の画像処理装置。
【請求項４】
第１の符号化手段で圧縮符号化後の符号列を対象に複数の符号を同時並行して復号する第２の復号手段と、
前記算出した時間および前記各小領域の復号に要する時間から、前記各領域および前記各小領域について前記同時並行の復号の分配を行なう分配手段と、
を備えている請求項１〜３のいずれかの一に記載の画像処理装置。
【請求項５】
前記圧縮符号化方式は、画像データを１または複数の領域に分割し、ウェーブレット変換を用いて前記領域ごとに独立して階層的に圧縮符号化する方式である、請求項１〜４のいずれかの一に記載の画像処理装置。
【請求項６】
画像データを処理する請求項４に記載の画像処理装置と、
この画像処理装置により前記第２の復号手段で復号後の画像データに基づいて画像形成を行なうプリンタエンジンと、
を備えている画像形成装置。
【請求項７】
画像データを複数の領域に分割する第１の領域分割処理と、前記領域ごとに圧縮符号化できる所定の圧縮符号化方式で圧縮符号化したときに、その符号化後の符号列の復号に要する時間を、前記領域ごとに算出する復号時間見積処理と、
この算出した各時間を所定の閾値と比較する比較処理と、
前記時間が前記閾値を超える前記領域をさらに前記時間より短い時間でそれぞれ復号できる複数の小領域に分割する第２の分割処理と、
前記各領域および前記小領域への分割を行なったときは前記各小領域を前記圧縮符号化方式で圧縮符号化して符号列を得る第１の符号化処理と、
をコンピュータに実行させるコンピュータに読み取り可能なプログラム。
【請求項８】
前記画像データを複数の領域に分割することなく圧縮符号化して符号列を得る第２の符号化処理と、
この符号列を量子化する量子化処理と、
この量子化後の符号列を復号する第１の復号処理と、
をコンピュータに実行させ、
前記第１の符号化処理は、前記復号後の画像データに対して量子化を行なうことなく符号化を行う、
請求項７に記載のプログラム。
【請求項９】
請求項７または８に記載のプログラムを記憶している記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像を圧縮符号化する画像処理装置、画像形成装置、プログラムおよび記憶媒体に関する。
【０００２】
【従来の技術】
従来、符号化された画像データの編集性を高めるために、画像データを複数の領域に分割し、各領域を独立に符号化して圧縮符号とし、この圧縮符号を復号する際に、復号後の処理内容に応じて復号する領域の順序を変える処理が知られている。ここで「独立して」とは、各領域を復号する際に他の領域の情報を利用することがなく、従って、他の領域の画像データが復号されているか否かに関わりなく復号することが可能であることを意味する。
【０００３】
画像データを複数の領域に分割して符号化することで編集性を高める例としては、例えば、復号する領域の順序を変えることで画像の回転処理（例えば、９０°回転）を実行可能とする技術がある（特許文献１，２を参照）。
【０００４】
また、国際標準となった画像圧縮方式ＪＰＥＧ２０００においてもタイルと言う概念が導入されており、画像データをタイル分割してタイルごとに符号化することにより領域分割された画像データを得ることが可能となる。タイルは独立に符号化される単位であるので、読み出すタイルの順序を変えることで容易に画像の回転処理等を実行できる。
【０００５】
特許文献３には、レンダリングの並列処理において、各色の各バンドのレンダリングに必要な時間を見積もって効率よく割り振ることで、所定時間内にレンダリングを終了させる技術が開示されている。
【０００６】
また、特許文献４には、画像の圧縮に際し、タイル単位に符号上限を設定しながら符号化を実施する技術が開示されている。
【０００７】
【特許文献１】特開２００１−１６０９０４公報（０００３の欄を参照）
【特許文献２】特開２００２−１２５１１６公報
【特許文献３】特開２０００−１３４６２３公報
【特許文献４】特開２００１−４５３０４公報
【０００８】
【発明が解決しようとする課題】
ところで、電子写真方式の画像形成装置など、画像形成を開始すると途中で一時停止ができないプロセスにおいては、圧縮符号を時間内に復号することが重要である。そのため、圧縮された画像データを高速に復号するため、タイルに分割して並列処理を行うことが考えられる。タイル分割して並列処理を行う例としては、特許文献３の技術のように、タイル単位に符号上限を設定しながら符号化を実施することが考えられる。
【０００９】
しかし、復号に要する時間は画像ごとに異なり、網点画像など複雑な画像を含むタイルを復号する際には時間がかかる一方、文字画像のみ、あるいは平坦な背景画像のみなど、単純な画像を含むタイルを復号する際には短時間の処理ですむ。そのため、並列処理をタイル単位で実行すると、単純な画像を含むタイルの復号は終了しているのに、複雑な画像を含むタイルの復号が終了するまでは全体として復号が完了せず、次段の処理を待つ必要が生じてしまう不具合がある。
【００１０】
一方、特許文献４のレンダリングの場合と異なり、圧縮符号の復号の場合は、一連の復号処理を分割して異なる復号器に分担させるということは容易ではない。
【００１１】
すなわち、まず、符号化／復号処理は近接画素との相関を参照しながら実行される処理であるために、同じタイル内の復号処理を異なる復号器で分担しようとしても、符号化時に先に符号化された画素が復号されるまではそれ以降の復号処理を実行できない場合が多く、結局処理時間の短縮にならない。
【００１２】
また、エントロピー符号化時に予測テーブルを書き換えていくタイプの符号化においては、タイル内の途中の画素（これを画素Ａとする）から復号を実行するためには、符号化器がその画素を符号化した時点での予測テーブルが必要であるが、この予測テーブルは一般に、画素Ａまでの復号処理が終了した時点でなければ得ることができない。
【００１３】
そのため、従来は、復号処理を分割するためには符号化時からそのための準備をする必要があり、容易に処理を分割できないという不具合があった。
【００１４】
本発明の目的は、画像を複数の領域に分割して圧縮符号化する際に、符号化後の符号列を短時間で復号できるようにすることである。
【００１５】
本発明の別の目的は、この場合に領域の境界歪が発生することを防止することである。
【００１６】
【課題を解決するための手段】
請求項１に記載の発明は、画像データを複数の領域に分割する第１の領域分割手段と、この分割された領域ごとに所定の符号化方式で圧縮符号化したときにその符号化後の符号列の復号に要する時間を算出する復号時間見積手段と、この算出した各時間を所定の閾値と比較する比較手段と、前記時間が前記閾値を超える前記領域をさらに前記時間より短い時間でそれぞれ復号できる複数の小領域に分割する第２の分割手段と、前記各領域および前記小領域への分割を行なったときは前記各小領域を圧縮符号化して符号列を得る第１の符号化手段と、を備えている画像処理装置である。
【００１７】
したがって、圧縮符号化した際に復号に時間を要する領域については、より短時間で復号できる小領域に分割して圧縮符号化するので、各領域または各小領域ごとの復号時間を短縮でき、複数の各領域または各小領域について同時並行的に復号すれば符号列の全体の復号時間を短縮することができる。
【００１８】
請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記画像データを複数の領域に分割することなく圧縮符号化して符号列を得る第２の符号化手段と、この符号列を量子化する量子化手段と、この量子化後の符号列を復号する第１の復号手段と、を備え、前記第１の符号化手段は、前記復号後の画像データに対して量子化を行なうことなく符号化を行う。
【００１９】
したがって、あらかじめ画像の領域の分割を行なうことなく量子化しておいて、その後、領域および小領域の分割を行なって量子化することなく画像を圧縮符号化するので、領域の境界歪が発生することを防止できる。
【００２０】
請求項３に記載の発明は、請求項２に記載の画像処理装置において、前記量子化手段は、前記第１の符号化手段によって生成される符号列が所定の符号量以下となるように前記量子化を行う。
【００２１】
したがって、所定の符号量以下となる符号列を最終的に生成することができる。
【００２２】
請求項４に記載の発明は、請求項１〜３のいずれかの一に記載の画像処理装置において、第１の符号化手段で圧縮符号化後の符号列を対象に複数の符号を同時並行して復号する第２の復号手段と、前記算出した時間および前記各小領域の復号に要する時間から、前記各領域および前記各小領域について前記同時並行の復号の分配を行なう分配手段と、を備えている。
【００２３】
したがって、各領域および各小領域について同時並行して行なう復号の分配により、符号列全体として復号に要する時間を短縮することができる。
【００２４】
請求項５に記載の発明は、請求項１〜４のいずれかの一に記載の画像処理装置において、前記圧縮符号化の方式は、画像データを１または複数の領域に分割し、ウェーブレット変換を用いて前記領域ごとに独立して階層的に圧縮符号化する方式である。
【００２５】
したがって、ＪＰＥＧ２０００方式などの圧縮符号化を用いて、本発明を実現することができる。
【００２６】
請求項６に記載の発明は、画像データを処理する請求項４に記載の画像処理装置と、この画像処理装置により前記第２の復号手段で復号後の画像データに基づいて画像形成を行なうプリンタエンジンと、を備えている画像形成装置である。
【００２７】
したがって、請求項４に記載の発明と同様の作用、効果を奏することができる。
【００２８】
請求項７に記載の発明は、画像データを複数の領域に分割する第１の領域分割処理と、前記領域ごとに圧縮符号化できる所定の圧縮符号化方式で圧縮符号化したときに、その符号化後の符号列の復号に要する時間を、前記領域ごとに算出する復号時間見積処理と、この算出した各時間を所定の閾値と比較する比較処理と、前記時間が前記閾値を超える前記領域をさらに前記時間より短い時間でそれぞれ復号できる複数の小領域に分割する第２の分割処理と、前記各領域および前記小領域への分割を行なったときは前記各小領域を前記圧縮符号化方式で圧縮符号化して符号列を得る第１の符号化処理と、をコンピュータに実行させるコンピュータに読み取り可能なプログラムである。
【００２９】
したがって、圧縮符号化した際に復号に時間を要する領域については、より短時間で復号できる小領域に分割して圧縮符号化するので、各領域または各小領域ごとの復号時間を短縮でき、複数の各領域または各小領域について同時並行的に復号すれば符号列の全体の復号時間を短縮することができる。
【００３０】
請求項８に記載の発明は、請求項７に記載のプログラムにおいて、前記画像データを複数の領域に分割することなく圧縮符号化して符号列を得る第２の符号化処理と、この符号列を量子化する量子化処理と、この量子化後の符号列を復号する第１の復号処理と、をコンピュータに実行させ、前記第１の符号化処理は、前記復号後の画像データに対して量子化を行なうことなく符号化を行う。
【００３１】
したがって、あらかじめ画像の領域の分割を行なうことなく量子化しておいて、その後、領域および小領域の分割を行なって量子化することなく画像を圧縮符号化するので、領域の境界歪が発生することを防止できる。
【００３２】
請求項９に記載の発明は、請求項７または８に記載のプログラムを記憶している記憶媒体である。
【００３３】
したがって、請求項７または８に記載の発明と同様の作用、効果を奏する。
【００３４】
【発明の実施の形態】
本発明の一実施の形態について説明する。
【００３５】
図１は、本実施の形態であるデジタル複写機１の概略構成を示すブロック図である。このデジタル複写機１は、本発明の画像形成装置を実施するもので、周知の電子写真プロセスにより用紙上などに画像形成を行なうプリンタエンジン２と、原稿の画像を読み取るスキャナ３とを備えている。このデジタル複写機１は、マイクロコンピュータを有するコントローラ５を備えている。このコントローラ５５は、具体的には、デジタル複写機１の全体を制御するメインコントローラと、メインコントローラ５各部をそれぞれ制御する複数のサブコントローラとからなるが、ここでは、単一のコントローラ５として図示する。このコントローラ５のＣＰＵは、ＲＯＭ（記憶媒体）に記憶されている制御プログラムに基づいて後述する処理を実行する。
【００３６】
プリンタエンジン２は、それぞれ感光体、現像装置、クリーニング装置、帯電装置を有していて、Ｋ，Ｍ，Ｃ，Ｙ（ブラック、マゼンタ、シアン、イエロー）各色の乾式トナー像を形成するためのプロセスカートリッジ１１Ｋ，１１Ｍ，１１Ｃ，１１Ｙと、転写ベルト１２と、定着装置１３と、プロセスカートリッジ１１Ｋ，１１Ｍ，１１Ｃ，１１Ｙの各感光体にＫ，Ｍ，Ｃ，Ｙ各色の画像の静電潜像を光書込みする光書込装置１４Ｋ，１４Ｍ，１４Ｃ，１４Ｙとを備えている。また、デジタル複写機１は、カラー画像を記録されるための転写材（記録用紙やＯＨＰなど）を収納する給紙トレイ１５ａ〜１５ｃを備えている。各プロセスカートリッジ１１Ｋ，１１Ｍ，１１Ｃ，１１Ｙは、Ｋ，Ｍ，Ｃ，Ｙ各色のトナー像を転写ベルト１２に重ね合わせて形成し、この重ね合わされたトナー像は、給紙トレイ１５ａ〜１５ｃから供給される転写材に転写されて、定着装置１３により定着される。
【００３７】
また、デジタル複写機１は、バンドバッファ２２、符号化部２３、復号部２４、ページメモリ２５からなる、画像処理装置２６を備えている。
【００３８】
図１において、バンドバッファ２２は、１ページ分の画像データを構成する複数のバンドのうち、一つのバンドに含まれる画素のデータを格納するためのバッファである。ここでバンドとは、所定数の画素ラインから構成される画像データの一領域である。
【００３９】
デジタル複写機１は、ＬＡＮなどの所定のネットワーク４から図示しない通信インターフェイスを介して画像データを受け取ることができる。ＲＩＰ部２１は、ネットワーク４を介して入力された画像データがＰＤＬ（ページ記述言語）形式のデータであるとき、これをバンド単位に描画処理してビットマップ形式に変換して、画像処理装置２６に出力する。
【００４０】
本例では、バンドバッファ２２に格納された画像データを符号化するための符号化装置である符号化部２３ａ，２３ｂと、圧縮符号を復号するための復号化装置である復号部２４ａ，２４ｂを備えている。符号化部２３ａ，２３ｂは、静止画圧縮の国際標準であるＪＰＥＧ２０００を使用して実施する。したがって、その圧縮符号化方式は、静止画像を１又は複数の矩形領域（タイル）に分割し、この各矩形領域ごとに独立して階層的に圧縮符号化するものである。すなわち、ＪＰＥＧ２０００方式においては画像をタイル分割して符号化することができ、また、タイル数＝１はタイル分割しない場合に該当するので、符号化部２４ａはタイル数＝１としてＪＰＥＧ２０００方式で画像データを符号化し、一方、符号化部２４ｂはタイル数＝１６としてＪＰＥＧ２０００方式で画像データを符号化する。
【００４１】
本例においては、記憶される画像データはタイル及びサブタイルに分割されていればよく、その点で、符号化部２４ａは必ずしも必要ないが、タイル分割された圧縮符号列が量子化された際に生じるタイル境界歪を無くすために、本例では好適な実施例として符号化部２４ａを備えている。
【００４２】
ページメモリ２５は所定ページ分の画像データを圧縮符号として格納（記憶）するためのメモリである。本例のページメモリ２５は、Ａ４サイズの画像データ１ページ分の圧縮符号列を格納可能とする。ハードディスク２７はページメモリ２５に格納された圧縮符号列を取得して格納し、必要に応じてその圧縮符号列をページメモリ２５に再格納するために設けられたメモリである。
【００４３】
ＲＧＢ→ＣＭＹＫ変換部２８は、後述のようにして復号化部２４ｂで復号された、ＲＧＢ（レッド、グリーン、ブルー）色の信号で表現された画像データを受け取り、これをＣＭＹＫ信号に変換する。Ｋ，Ｍ，Ｃ，Ｙ色階調処理部２９Ｋ、２９Ｍ，２９Ｃ，２９Ｙは、それぞれＫ，Ｍ，Ｃ，Ｙ色の多値データを少値化して書込データに変換する機能を果たす。本例では、バンドバッファ２２では１画素８ビットの６００ｄｐｉ画像データを格納し、これをＫ，Ｍ，Ｃ，Ｙ色階調処理部２９Ｋ，２９Ｍ，２９Ｃ，２９Ｙで１画素１ビットの１２００ｄｐｉ画像データへと変換する。
【００４４】
Ｋ，Ｍ，Ｃ色の書込みデータは、画像形成開始タイミングを調節するためにラインメモリ１６Ｋ，１６Ｍ，１６Ｃに格納され、各色の画像が転写材上で重なり合うようにタイミングを合わせてＫ、Ｍ、Ｃ，Ｙ，の色書込装置１４Ｋ、１４Ｍ，１４Ｃ，１４Ｙに送られる。
【００４５】
次に、本例における符号化部２３ａが実施する符号化方式のブロック図を図２（ａ）に示す。すなわちＲＧＢ信号からなる画像データはＤＣレベルシフト部３１でレベルシフトされ、色変換部３２で色変換され、各色変換係数はウェーブレット変換部３３でウェーブレット変換され、エントロピー符号化部３４でウェーブレット係数がエントロピー符号化される。エントロピー符号化された符号は符号フォーマットに従い最終的に必要とされる符号順序に並べ替えて出力される。
【００４６】
ＪＰＥＧ２０００の符号フォーマットの概略構成を図３に示す。符号フォーマットは符号データの始まりを示すＳＯＣ（Ｓｔａｒｔ  ｏｆ  Ｃｏｄｅｓｔｒｅａｍ）マーカで始まる。ＳＯＣマーカの後には、符号化のパラメータや量子化のパラメータ等を記述したメインヘッダが続き、その後に実際の符号データが続く。
【００４７】
メインヘッダの構成を図４に示す。メインヘッダはＣＯＤ，ＱＣＤの必須マーカセグメントとＣＯＣ，ＱＣＣ，ＲＧＮ，ＰＯＣ，ＰＰＭ，ＴＬＭ，ＰＬＭ，ＣＲＧ，ＣＯＭのオプションマーカセグメントで構成される。ここでＳＩＺマーカには、タイルサイズの情報が記述されている。またＣＯＭマーカはコメント等の情報を付加したいときに利用するマーカで、メインヘッダ、タイルヘッダの双方で使用することが可能である。
【００４８】
実際の符号データは、ＳＯＴ（Ｓｔａｒｔ  ｏｆ  Ｔｉｌｅ−ｐａｒｔ）マーカで始まり、タイルヘッダ、ＳＯＤ（Ｓｔａｒｔ  ｏｆ  ｄａｔａ）マーカ、タイルデータ（符号）で構成される。これら画像全体に相当する符号データの後に、符号の終了を示すＥＯＣ（Ｅｎｄ  ｏｆ  Ｃｏｄｅｓｔｒｅａｍ）マーカが付加される。メインヘッダはＣＯＤ，ＱＣＤの必須マーカセグメントとＣＯＣ，ＱＣＣ，ＲＧＮ，ＰＯＣ，ＰＰＭ，ＴＬＭ，ＰＬＭ，ＣＲＧ，ＣＯＭのオプションマーカセグメントで構成される。
【００４９】
タイルヘッダ構成を図５、図６に示す。図５は、タイルデータの先頭に付加されるマーカセグメント列で、ＣＯＤ，ＣＯＣ，ＱＣＤ，ＱＣＣ，ＲＧＮ，ＰＯＣ，ＰＰＴ，ＰＬＴ，ＣＯＭのマーカセグメントが使用可能である。一方、図６は、タイル内が複数に分割されている場合における分割されたタイル部分列の先頭に付加されるマーカセグメント列であり、ＰＯＣ，ＰＰＴ，ＰＬＴ，ＣＯＭのマーカセグメントが使用可能である。タイルヘッダでは必須マーカセグメントはなく、すべてオプションである。
【００５０】
ＤＣレベルシフト部３２は、画像信号がＲＧＢ信号値のような正の数（符号なし整数）である場合には、各信号値から信号のダイナミックレンジの半分を減算するレベルシフトを、逆変換では各信号値に信号のダイナミックレンジの半分を加算するレベルシフトを行う。なお、レベルシフトは画像信号がＹＣｂＣｒ信号におけるＣｂ及びＣｒのような符号付き整数の場合には適用しない。
【００５１】
ＪＰＥＧ２０００で使用される色変換の方式はＹＣｒＣｂ等公知の技術なので説明は省略する。ウェーブレット変換としては９×７フィルタ、５×３フィルタのいずれを使用してもよい。いずれのフィルタも隣接画素とオーバーラップするフィルタである。隣接画素とオーバーラップするフィルタを使用する場合、量子化時にブロック歪が発生することがないという利点がある。なお、本例ではバンド境界においても隣接画素とのオーバーラップを行わせるために、バンドを構成する画素と併せて隣接する画素も必要な分だけバンドバッファ２２に格納しておく。また、本例での量子化は後述するようにビットプレーン単位でポスト量子化を行うので、ここでは実施しない。
【００５２】
ＪＰＥＧ２０００のエントロピー符号化は、係数モデリング処理と算術符号化処理とで実行される。この方式は国際標準として周知であるため、詳しい説明は省略するが、以下の説明に必要な範囲で概要を示す。
【００５３】
符号化方式は、ＥＢＣＯＴ（Ｅｍｂｅｄｄｅｄ  Ｂｌｏｃｋ  Ｃｏｄｉｎｇ  ｗｉｔｈ  Ｏｐｔｉｍｉｚｅｄ  ｒｕｎｃａｔｉｏｎ）と呼ばれるブロックベースのビットプレーン符号化である。ＥＢＣＯＴの特徴としては、各サブバンドを同一サイズにブロック分割して符号化する点と、ポスト処理による符号量制御が可能な点が挙げられる。ＥＢＣＯＴは、ブロック分割、係数モデリング、算術符号化という順で符号化が実行される。すなわち符号化は、Ｃｏｄｅ  ｂｌｏｃｋと称するブロック単位で行われるのでまずウェーブレット係数はブロックに分割され係数モデリングされる。
【００５４】
係数モデリングは、符号化対象となる多値Ｗａｖｅｌｅｔ係数から、後段の２値算術符号化用のビットモデルを作成することが目的である。言い換えれば、符号化方法を決定する部分である。符号化対象となるＷａｖｅｌｅｔ  係数は正負の符号を持った整数（あるいは実数表現された整数）であり、それらを決められた順序で走査しながら、係数を絶対値表現したものに対して、上位ビットから下位ビットへと、ビットプレーン単位で処理を行う。ビットプレーン内の各ビットは３つの処理パスによって４つの符号化を行う。
【００５５】
すなわち、まず、各Ｃｏｄｅ  ｂｌｏｃｋにおけるビットプレーン上のビット走査順序は、垂直方向に４ビットまとめた単位でのラスター走査で行われる。符号化は、ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓ（有意な係数が周囲にある有意でない係数の符号化）、ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ  ｐａｓｓ（有意な係数の符号化）、ｃｌｅａｎｕｐ  ｐａｓｓ  （残りの係数情報の符号化）の３つの処理パスで実行される。各処理パスで実行される符号化方法は、ｓｉｇｎｉｆｉｃａｎｃｅ  ｃｏｄｉｎｇ、ｓｉｇｎ  ｃｏｄｉｎｇ、ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ  ｃｏｄｉｎｇ、ｃｌｅａｎｕｐ  ｃｏｄｉｎｇの４種類がある。なお、ここで、“ｓｉｇｎｉｆｉｃａｎｃｅ”とは、該当ビット（係数）が“有意である／ない”ことを示しており、以下のような解釈によって行われる。
【００５６】
・有意である
これまでの符号化処理において注目係数が０でないとわかっている状態のこと。言い換えれば、すでに１であるビットを符号化済みであること。
【００５７】
・有意でない
係数値が０であるか、０の可能性がある状態のこと。言い換えれば、未だ１であるビットを符号化していない状態のこと。
【００５８】
符号化は、まず、ビットプレーンのＭＳＢより走査を行い、ビットプレーン中に有意でない係数（０でないビット）が存在するかを判定する。有意である係数が登場するまでは３つの符号化処理パスは実行されない。有意でない係数のみで構成されるビットプレーンは、そのビットプレーン数をパケットヘッダに記述する。この値は復号時に利用され、有意でないビットプレーンを形成するために使われるとともに、係数のダイナミックレンジを復元するためにも必要である。有意であるビットが最初に登場したビットプレーンから実際の符号化は開始され、該ビットプレーンは、まずｃｌｅａｎｕｐ  ｐａｓｓで処理される。その後、下位のビットプレーンに対して順次、３つのパスを用いて処理が進められる。
【００５９】
ａ）Ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓ（有意な係数が周囲にある有意でない係数の符号化）
周囲の所定の８近傍の係数値に少なくとも１つの有意な係数があり、かつ注目する係数（Ｘ位置の係数値）がまだ有意でない場合にのみ、本パスにて処理される。それ以外の場合には本パスでは処理されない。
【００６０】
ｂ）Ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ  ｐａｓｓ（有意な係数の符号化）
注目する係数値（Ｘ）がすでに有意である状態の場合には、Ｍａｇｎｉｔｕｄｅｒｅｆｉｎｅｍｅｎｔ  ｐａｓｓによって処理される。本パスでは状態変化後（有意でない→有意である）に行う最初のパスであるかどうか、周囲の８近傍に有意な係数値が存在するかどうかによって、３つのコンテクストモデルを算出する。
【００６１】
ｃ）Ｃｌｅａｎｕｐ  ｐａｓｓ（残りの係数情報の符号化）
上記２つのパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓとＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ  ｐａｓｓ）に該当しない残りのビットは、Ｃｌｅａｎｕｐ  ｐａｓｓにて処理される。
【００６２】
本パスで作成するコンテクストは、上記２つのパスのように８近傍の係数値を参照するコンテクストに加えて、ランレングス符号化用のコンテクストを作成する。符号化はランレングス符号化を行うかどうかを判断しながら符号化処理を行う。まず、垂直方向に連続する４つの係数値がすべて本パスに属しており、かつ４つすべての係数値における周囲の８近傍に有意な係数値が存在しないか否かを判断する。もし、本条件に該当する場合には、ランレングス符号化を行う。一方、本条件に該当しない場合には、４つの係数値の中に少なくとも１つの有意である係数が存在するので、各係数値をＳｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓで符号化する。ランレングス符号化は、４つの注目係数のビットがすべて０であるならば、シンボル０を符号化して終了する。そうでない場合にはシンボル１を符号化する。シンボル１を符号化した場合には、続いて４ビット中の最初の１になっているビット位置を２ビットで符号化し、その直後に正負の符号をＳｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓと同様に符号化をする。ここでビット位置を示す２ビットを符号化する際にはＵＮＩＦＯＲＭコンテクストと称するコンテクストを用いる。これ以降の係数に対しては、Ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓで符号化を行う。以上の処理が完了すると、次の４つの係数処理に入り、順次符号化処理を行う。なお、算術符号化については公知の技術であるので説明を省略する。
【００６３】
本例では，以上説明した方式により符号化、復号を行うが、上述の説明により、有意である係数が存在しないビットプレーンは非常に早く係数モデリングが終了するのに対し、３パスを実施するビットプレーンは処理時間が長い。３パスのそれぞれにどのくらい時間がかかるかは回路の組み方やソフトウェアとハードウェアとの役割分担のあり方などに依存するが、どのパスを使用するかによっても処理時間は異なる。例えば、有意でないビットプレーンのみからなるタイルは非常に高速に処理ができるが、ＭＳＢから有意であるウェーブレット係数を多く含むタイルの処理には時間がかかる。
【００６４】
このため、後述する並列処理において、一つの復号部２３ａが一つのタイルを処理するように処理を行なうと、処理時間が最も長いタイルの処理によって１バンドの処理時間が決定されてしまう。そうなると、コントローラ５は係数モデリング時間が最長の場合にあわせて処理をプログラムしなければならなくなるが、全てのタイルにおいて処理時間が長い画像は少なく、係数モデリング時間が最長の場合にあわせて処理をプログラムすることは，出力の際に必要以上にユーザを待たせることとなり好ましくない。本例は以上のような点を後述のように改良するものである。
【００６５】
次に、復号部２４ａ，２４ｂについて説明する。図２（ｂ）は、復号部２４ａ，２４ｂが実施する復号方式の機能ブロック図である。復号部２４ａ，２４ｂが実行するのは、それぞれ符号化部２３ａ，２３ｂの逆変換であり、符号化部２３ａ，２３ｂで使用するＤＣレベルシフト、色変換、ウェーブレット変換、エントロピー符号化の各処理の逆変換をそれぞれ実行する逆ＤＣレベルシフト部３６、逆色変換部３７、ウェーブレット逆変換部３８、エントロピー復号部３９からなる。圧縮符号がタイル分割されている場合には、かかる処理を各タイルについて実行する。
【００６６】
符号化部２３ｂについて説明する。図２（ｃ）は、符号化部２３ｂが実施する復号方式の機能ブロック図である。符号化部２３ｂは、バンドバッファ２２に格納された画像データをタイル分割して符号化するための符号化装置である。以下、符号化部２３ａによって符号化された圧縮符号列を「第一の符号列」、符号化部２３ｂによって符号化された圧縮符号列を「第二の符号列」と記す。
【００６７】
本例における符号化部２３ｂが実施する符号化方式のブロック図を図２（ｃ）に示すが、符号化部２３ｂは、符号化部２３ａと比べてタイル分割部４０がＤＣレベルシフト部３１の前段に追加されている点が異なる。すなわち画像データはまず、タイル分割部４０で複数のタイルに分割され、タイルごとに独立に、符号化部２３ａにおけると同様な処理が施される。ここで「独立」とは、符号化時に他のタイル内の画素情報を利用することなく符号化を実施すると言う意味である。なお、符号化部２３ｂは色変換を施してからタイル分割してもよい。
次に、デジタル複写機１の動作について説明する。
【００６８】
本例のデジタル複写機１は、Ａ４サイズの出力時に電子ソート機能を実行することができる。電子ソート機能の実行時には、第一部数目の画像の出力時には給紙トレイ１５ａ（又は給紙トレイ１５ｂ）に収納されたＡ４用紙に画像が記録され、第二部数目の画像の出力時には給紙トレイ１５ｂ（又は給紙トレイ１５ａ）に収納されたＡ４用紙に画像が記録され、その後順次、奇数部数目の画像の出力時には給紙トレイ１５ａ（又は給紙トレイ１５ｂ）に収納されたＡ４用紙に画像が記録され、偶数部数目の出力時には給紙トレイ１５ｂ（又は給紙トレイ１５ａ）に収納されたＡ４用紙に画像が記録され、というように交互に画像が記録される。このとき、奇数部数目の出力時には画像は回転されずに出力され、偶数部数目の出力時には画像が９０度回転されて出力される。
【００６９】
また、本例のデジタル複写機１は、給紙トレイ１５ａ、１５ｂのうち一方に収納された転写材が消費されると、他方に収納された転写材上に画像を形成する給紙トレイ自動切換機能を有するが、このときも、画像を９０度回転させることによって切り替え先の給紙トレイに収納された転写材に適合した向きで画像を出力する。
【００７０】
この電子ソート機能または給紙トレイ自動切換機能を実現するために、本例の画像処理装置２６がコントローラ５に制御されて行なう処理について、図７のフローチャートを参照して説明する。
【００７１】
図７において、コントローラ５は、スキャナ３から読み込まれた、または、ネットワーク４から図示しない通信インターフェイスを介して受信した画像データを、バンド単位にバンドバッファ２２に格納する（ステップＳ１）。本例のバンドバッファ２２が格納可能な画像データの容量は、６００ｄｐｉの１画素あたり８ビットのＲＧＢの３色からなる画像データをＡ４サイズの４分の１だけ格納できる容量である。但し、上述したように、ウェーブレット変換のオーバーラップ時に参照する隣接画素分の画像データはこれとは別に格納可能である。なお、本発明を実施する際にバンドバッファ２２の記憶容量は適宜選択できることは言うまでもない。
【００７２】
バンドバッファ２２に格納された１バンド分の画像データは、符号化部２３ａでタイル分割せずに符号化されてページメモリ２５に格納される（ステップＳ２）。ここで符号化部２３ａは、まず、色変換によってＲＧＢ信号を輝度色差信号に変換し、輝度色差をそれぞれウェーブレット変換し、ウェーブレット変換係数をエントロピー符号化する。本例では、６階層のウェーブレット変換を水平垂直方向に実施し、その結果、画像データは、図８に示すようにオクターブ分割される。図８において、インデックスの数字はウェーブレット変換の階層数を意味し、数字が小さくなるに従い高周波となっている。ＬＬは低周波係数で第６階層にしか存在せず、ＨＬ，ＬＨ，ＨＨは高周波成分で各階層に存在する（煩雑さを避けるため、図８においては第２階層までしか表示しない）。このように分割されたウェーブレット変換係数に対して上述のエントロピー符号化が実施されることになるが、より重要な情報を優先的に符号化するべく、エントロピー符号化の実行時にはウェーブレット変換係数を図９のようにシフトして符号化する。ここで、図９において、左右方向は各係数のビットプレーンの広がりを意味し、一つの係数においては最左側がＭＳＢ（最上位ビット）、最右側がＬＳＢ（最下位ビット）である。重要な情報を優先的に符号化するとは、具体的には、重要度の高いＬＬ６のみを含むビットプレーン群Ａをまず符号化し、次いで、ビットプレーン群Ｂ，Ｃ，Ｄ，Ｅの順で順次符号化していくことを意味する。なお、本例においては簡単の為に輝度色差の量子化方法を全く同じとし、かつ、各ビットプレーン群の重要度も輝度色差で異ならないものとする。すなわち輝度のビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅはそれぞれ色差のビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅと同じ重要度として認識され、以下において、例えば「ビットプレーン群Ｅを削減する」と記したときには、輝度と色差のそれぞれからビットプレーン群Ｅを削減することを意味する。但し、本例と異なり、輝度色差の重要度の違いを利用して輝度色差の重要度に相対的に差を設け、あるいは、ビットプレーン群の構成を変えてもよい。
【００７３】
次に、量子化の動作について説明する。符号化部２３ａによって符号化された第一の符号列は、コントローラ５の指示によって、あらかじめ設定された量子化率に従って量子化される（ステップＳ２）。ここで量子化率は、符号化開始当初は量子化を全く行わないように設定されているが、ページメモリ２５の容量と第一の符号列の符号量との関係に基づき、必要に応じて設定が変更されていく。
【００７４】
この量子化は、図９に示したビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅの単位で実行される。具体的には、圧縮符号列から情報を削減する際に、各ビットプレーン群を符号化して得られる符号を単位として情報を削減する。例えば、量子化率の設定がビットプレーン群Ｅを量子化するように設定されている場合には、エントロピー符号化されたデータのうちからビットプレーン群Ｅに該当する情報であるＨＨ１係数およびＬＨ１，ＨＬ１，ＨＨ２，ＬＨ２，ＨＬ２，ＨＨ３の下位ビットプレーンの情報を削除する。このとき、本例の圧縮符号列はビットプレーン単位に符号化されているために圧縮符号状態のまま容易に情報の削減が可能である。あるいは、量子化対象であるビットプレーン群については初めからエントロピー符号化しないという方法も取り得る。
【００７５】
次いで、量子化後の第一の符号列の符号量をコントローラ５内の図示せぬメモリに記憶する（ステップＳ２）。本例で、コントローラ５は、第一の符号列の符号量をそのメモリに格納する際、ビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅの単位で符号量を格納する。以下、ビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅの符号量をそれぞれ量ａＡ、ａＢ、ａＣ、ａＤ、ａＥと記し、全ての符号量の和をａと記す。すなわち、“ａ＝ａＡ＋ａＢ＋ａＣ＋ａＤ＋ａＥ”である。
【００７６】
また、符号化部２３ｂはバンドバッファ２２に格納された画像データを符号化して第二の符号列を得、第二の符号列自体はそのまま破棄して符号量のみをコントローラ５内のメモリに記憶する（ステップＳ３）。
【００７７】
一方、符号化部２３ｂは、この段階で、ＪＰＥＧ２０００アルゴリズムで符号化を行いつつ、その復号にかかる時間を見積もっていく。
【００７８】
具体的に説明すると、まず、符号化部２３ｂは図１０（ａ）に示すように１バンドを４つのタイルに分割して、符号化処理を開始する。４つのバンドに分割するのは、後述するよう本例の復号部２４ｂは４つの復号器５１〜５４から構成されているので、４つに分けて並列処理による復号を実施するためである。復号時間の見積もりは、各タイルの符号化処理において、上述した係数モデリング処理のどの処理が何回実施されたかによって見積もる（複合時間見積手段、複合時間見積処理）。例えば、タイル１，２では画像の背景領域であるために有意でないビットプレーンが多く３つの符号化処理パスがほとんど実行されなかったのに対して、タイル３，４は写真画像を含んでいるためにほとんどのビットプレーンが３パス符号化されたものとする。この結果、もしも各タイルを一つの復号器で処理すると、図１０（ｂ）に示すように復号時間がタイル１では１［ｍｓｅｃ］、タイル２では２［ｍｓｅｃ］、タイル３では１８［ｍｓｅｃ］、タイル４では２１［ｍｓｅｃ］かかるとする。このような処理では、タイル１が１［ｍｓｅｃ］で復号されているにも関わらずバンド全体での復号時間は２１［ｍｓｅｃ］となってしまう。
【００７９】
そこで，本例では、各タイルについて１タイルの処理に要する時間を予め設定されている所定の時間と比較し（比較手段、比較処理）、例えば、１０［ｍｓｅｃ］を超えたタイルについては、このタイルを復号するのに所定の時間（この例では、１０［ｍｓｅｃ］）を超えない複数のサブタイルに分割する（第２の分割手段、第２の分割処理）。すなわち図１０（ｃ）に示すように、タイル３は、復号時間が１０［ｍｓｅｃ］と８［ｍｓｅｃ］の２つのサブタイルに、タイル４は、復号時間が１０［ｍｓｅｃ］と１０［ｍｓｅｃ］と１［ｍｓｅｃ］の３つのサブタイルに分割する。
【００８０】
具体的なサブタイルの分割処理および各サブタイルの復号時間見積り処理は以下のように行なうことが好適である。まず、一つのタイルに符号化処理を実施しつつ同時に復号時間を見積もり、この見積もられた復号時間が所定の時間を超えた時点で、それまで符号化された部分を１つ目のサブタイルに関する符号列とする。このとき復号時間は０［ｓｅｃ］にリセットする。ついで、そのタイル内の残りの画素に関して、復号時間を新たに見積もりつつ２つ目のサブタイルとして符号化処理を行う。この２つ目のサブタイルの処理において見積もられた復号時間が所定の時間を超過した場合には、その時点で２つ目のサブタイルの符号列を確定し、残りの画素は３つ目のサブタイルとして符号化処理を続ける。このように符号化処理を実施しつつ、同時にサブタイルに分割していくと効率的である。なお、各サブタイルの形を長方形とすればサブタイルの境界情報を２次元情報ではなく１次元情報で持つことが出来るので、サブタイルの境界情報を格納するためのメモリ量を少なくできる。そこで本例では、ある行の途中で復号時間が所定の時間を超過した場合には、次のサブタイルの符号化処理はその行の最初から開始する。
【００８１】
このようにして得られた、サブタイル分割の情報（タイル番号、サブタイル数）は、メインヘッダやタイルヘッダのコメント欄に記録する、あるいはコントローラ５内のメモリに記憶しておく、等の方法で管理する。本例ではコントローラ５内のメモリにサブタイル分割の情報を記憶しておくものとする。また、サブタイル、あるいは、サブタイルに分割しない各タイルの復号時間についても、コントローラ５内のメモリなどに記憶しておく。
【００８２】
ところで、本例のコントローラ５は、第二の符号列の符号量をコントローラ５のメモリに格納する際、第一の符号列の場合と同様、ビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅの単位で符号量を格納する。本例では、全てのタイル、サブタイルはビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅの単位で量子化されるので、各タイル／サブタイル別に符号量を記憶しておくのではなく、１バンド全体として各ビットプレーンの符号量を記憶しておけばよい。以下、ビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅの符号量をそれぞれ量ｂＡ，ｂＢ，ｂＣ，ｂＤ，ｂＥと記し、全ての符号量の和をｂと記す。すなわち、“ｂ＝ｂＡ＋ｂＢ＋ｂＣ＋ｂＤ＋ｂＥ”である。この符号化部２３ｂによる符号化は、符号化部２３ａによる符号化と同時に実行すると処理時間を短縮化することができる。また、このときにサブタイル分割を実施するか否かについて決定することで、効率的な処理を行なうことができる。
【００８３】
次に、量子化率の設定ついて説明する。量子化率の再設定とは、ページ全体の量子化度合いをより強くするように量子化率を設定しなおすことを意味する。具体的には、ページメモリ２５に格納された符号化済みのバンドの総符号量Ｆ２を取得し、またページメモリ２５の容量Ｆ１、画像データ１ページ分を構成する全バンド数Ｎ、および符号化済みのバンド数ｎから（Ｆ１／Ｎ×ｎ）を計算する（ステップＳＳ４）。
【００８４】
ついで、コントローラ５は、“（Ｆ１／Ｎ×ｎ）＜Ｆ２”の関係が成立するか否かを判断し（ステップＳ５）、“（Ｆ１／Ｎ×ｎ）＜Ｆ２”の関係が成立すれば量子化率を再設定する（ステップＳ６）。この判定式の意味を以下説明すると、（Ｆ１／Ｎ×ｎ）は各バンドの情報量が等しいと仮定した場合にページメモリ２５に格納されるべき情報量の上限である。例えば、Ｎが４、ｎが３のときは、“Ｆ１／Ｎ×ｎ＝Ｆ１×０．７５”となり、圧縮符号はページメモリ２５の７５％以下の容量を占めるべきであることを意味する。すなわち“（Ｆ１／Ｎ×ｎ）＜Ｆ２の関係が成立すれば量子化率を再設定する”とは、各バンドの情報量が等しいと仮定した場合の予想情報量（Ｆ１／Ｎ×ｎ）に対して、実際に符号化済みのバンドの総符号量Ｆ２が少しでも上回れば量子化率を再設定することを意味する。
【００８５】
“（Ｆ１／Ｎ×ｎ）＜Ｆ２”の関係が成立して量子化率を再設定した場合、再設定後に符号化するバンドの量子化率を新たに設定された量子化率で量子化する（ステップＳ２）だけではなく、ページメモリ２５に格納済みの圧縮符号についても再量子化を実行する（ステップＳ７）必要がある（量子化手段、量子化処理）。その理由は、１ページの画像内で量子化率が変動すると画像品質がページ内で変動し、見る者に違和感を感じさせる恐れがあるためである。
【００８６】
図１１を用いてページメモリ２５に格納された圧縮符号の量子化について説明する。図１１では、ページメモリ２５の容量を外枠とし、この容量を各バンドの情報が埋めていく様子を模式的に示している。図１１（ａ）には第１バンド、第２バンドまでをページメモリ２５に格納した状態が示されている。このとき、当初は量子化を全く行わないように量子化率が設定されているため、各バンド内にはビットプレーン群Ａ，Ｂ，Ｃ，Ｄ，Ｅを表わす情報がすべて格納されている。図１１（ａ）の第一バンドでは、この情報を単にＡ，Ｂ，Ｃ，Ｄ，Ｅと記している。図１１（ａ）の第二バンドおよび図１１、図１２内のその他の図においては、特にＡ，Ｂ，Ｃ，Ｄ，Ｅとは記さないが、図１１又は図１２において、バンド又はタイル内部の情報を点線で区切って示した場合には、上方から順に情報Ａ，Ｂ，Ｃ，Ｄ，Ｅを意味するものとする。
【００８７】
図１１（ａ）の状態において、“（Ｆ１／Ｎ×ｎ）＜Ｆ２”の関係が成立した場合、コントローラ５は量子化処理を実行し、ページメモリ２５内の符号列から情報Ｅを削減する。削減後の図を図１１（ｂ）に示すが、情報Ｅが削減された結果、各バンドとも符号量が減少している。
【００８８】
図７に戻って、ページメモリ２５に格納済みの圧縮符号について量子化を実行した（ステップＳ７）後、コントローラ５は処理対象であったバンドが１ページを構成するバンドのうち最後のバンドであったかを判定し（ステップＳ８）、最後のバンドでなければ（ステップＳ８のＮ）、コントローラ５はバンドバッファ２２をクリアする。ただし、符号化対象であるバンドのウェーブレット変換に必要な画素値はクリアせずにバンドバッファ２２内に残して、これを符号化に利用する。これにより、量子化を実施したときにバンド境界に境界歪が発生することを防止できる。次いで、コントローラ５は次のバンドの画像データをバンドバッファ２２に読み込ませ（ステップＳ１に戻る）、符号化部２３ａは新たに読み込まれたバンドを構成する画像データの符号化を開始する。
【００８９】
最後のバンドであれば（ステップＳ８のＹ）、符号化部２３ａによる符号化処理が終了する。このときには図１１（ｃ）に示すように、１ページを構成する全バンドがページメモリ２５に格納されている。そして、ステップＳ９において、コントローラ５は、ａｓｕｍ、ｂｓｕｍを計算する。ここで、ａｓｕｍとは符号量ａＡ，ａＢ，ａＣ，ａＤ，ａＥのうちから第一の符号列を作成する際に量子化されなかったビットプレーン群に関する符号量のみを抽出し、これを全バンドにわたって加算した値である。また、ｂｓｕｍとは、符号量ａＡ，ａＢ，ａＣ，ａＤ，ａＥのうちから第一の符号列を作成する際に量子化されなかったビットプレーン群に関する符号量のみを抽出し、これを全バンドにわたって加算した値である。例えば、第一の符号列がビットプレーン群Ｅ，Ｄ，Ｃを量子化された状態でページメモリ２５に格納されていればａｓｕｍは（ａＡ＋ａＢ）を全バンドにわたって加算した値であり、ｂｓｕｍは（ｂＡ＋ｂＢ）を全バンドにわたって加算した値である。
【００９０】
ステップＳ１０では、ページメモリ２５に格納された第一の符号列の符号量Ｆ２、またページメモリ２５の容量Ｆ１を用いて“Ｆ１×ａｓｕｍ／ｂｓｕｍ＜Ｆ２”が成立するか否かが確認される。この条件が成立することは（ステップＳ１０のＹ）、第一の符号列を第二の符号列に変換した場合に第二の符号列がページメモリ２５の容量を超えることを意味するので、“Ｆ１×ａｓｕｍ／ｂｓｕｍ＜Ｆ２”が成立しなくなるように量子化率の再設定が行なわれる（ステップＳ１１）。具体的には、ページメモリ２５内の第一の符号列をさらに量子化した場合に“Ｆ１×ａｓｕｍ／ｂｓｕｍ＜Ｆ２”が成立するか否かを再計算し、この式が成立しなくなるまで量子化を繰り返す。この再計算においては、ａｓｕｍ，ｂｓｕｍとして量子化後の値を使用し、例えばビットプレーン群Ａ、Ｂによって構成される第一の符号列からビットプレーン群Ｂをさらに量子化する場合にはａｓｕｍとしてａＡを全バンド分加算した値を、ｂｓｕｍとしてｂＡを全バンド分加算した値を使用する。これによって、量子化後に第一の符号列から変換される第二の符号列の正確な符号量を得ることができる。なお、ビットプレーン群がＡのみとなっても“Ｆ１×ａｓｕｍ／ｂｓｕｍ＜Ｆ２”が成立する場合には、所定のエラー報知によって、画像の回転処理を必要とする機能が実行できない旨をユーザに知らせるか、解像度を落として画像データを再圧縮する。
【００９１】
そして、“Ｆ１×ａｓｕｍ／ｂｓｕｍ＜Ｆ２”が成立しない量子化率が得られた場合、再設定された量子化率に従ってページメモリ２５内の第一の符号列を量子化する（量子化手段、量子化処理）（ステップＳ１２）。以上の処理によって、第一の符号列を第二の符号列に変換しても、第二の符号列の符号量がページメモリ２５の容量を超えないことが確実となったことになる。
【００９２】
続いて、ページメモリ２５から１バンド分の第一の符号列を読み出し、これを復号化部２４ａで復号して、得られた画像データをバンドバッファ２２に格納する（ステップＳ１３）。格納された画像データは符号化部２３ｂによって符号化されるが、上述したように本例におけるタイル分割は、図１３（ａ）に示すように各バンドを４つのタイルに分割して行う。すなわちＡ４サイズの画像データは１６のタイルに分割される（第１の領域分割手段、第１の領域分割処理）。符号化部２３ｂは各タイルを符号化し（第１の符号化手段、第１の符号化処理）、得られた圧縮符号をページメモリ２５に格納する（ステップＳ１４）。このとき、ステップＳ１０，Ｓ１１，Ｓ１２の処理によって第二の符号列はさらに量子化しなくともページメモリ２５に格納可能であることが分かっているので、ステップＳ１４の符号化処理において量子化は実行しない。
【００９３】
また、ここで、符号化部２３ｂは各タイルを符号化する際、コントローラ５内のメモリを参照して前述のサブタイル分割の情報を取得し、この情報に従って各タイルをサブタイルに分割する（第２の領域分割手段、第２の領域分割処理）。すなわち、図１０に例示したようなバンドにおいては、タイル３は２つのサブタイルに、タイル４は３つのサブタイルに分割して、それぞれ符号化を行う（第１の符号化手段、第１の符号化処理）。ここで「サブタイルに分割して符号化を行う」とは、一つのタイルを符号化する際に、サブタイル同士が別のタイルであるかのごとく処理を行うことを意味する。具体的にはウェーブレット変換時や係数モデリング時には隣接するサブタイルの画素値を参照せず、算術符号器は各サブタイルを符号化する際にコンテクストを初期化する。
【００９４】
符号化部２３ａは、タイルがサブタイルに分割されていない場合には各タイルの先頭アドレスを、サブタイル分割されていれば各サブタイルの先頭アドレスをコントローラ５内のメモリに記憶する。
【００９５】
なお、どのバンドから「第一の符号列」を「第二の符号列」に変換するかという順序は、コントローラ５が各バンドについて第一の符号列の状態での符号量αおよび第二の符号列の状態での符号量βから“γ＝α÷β”という値γを計算し、このγが大きなバンドから順に変換するものとする。この理由は以下の通りである。
【００９６】
一般に画像データを符号化する際には、タイル分割して符号化する方が、タイル分割しないで符号化する方よりも符号量が大きくなる。しかし、タイルの境界部分での拡張仮想画素の取り方や画像データによっては、タイル分割して符号化する方が、タイル分割しないで符号化する方よりも符号量が小さくなることが起こり得る。かかる事態が生じた場合、第二の符号列の符号量が全体としてページメモリ２５の容量以下であったとしても、「第一の符号列を第二の符号列に変換することによって符号量が減少するバンド」よりも「第一の符号列を第二の符号列に変換することによって符号量が増加するバンド」を先に処理してしまうと、一時的にページメモリ２５に格納できないという事態が起こり得る。例えば、ページメモリ２５が圧縮符号を格納可能な容量を１００％としたとき、第一バンドが第一の符号列として２０％、第二の符号列として２４％を占め、第二バンドが第一の符号列として３０％、第二の符号列として２５％を占め、第三バンドが第一の符号列として２５％、第二の符号列として３０％を占め、第四バンドが第一の符号列として２３％、第二の符号列として２０％を占めるとき、第一の符号列は１ページ全体として９８％、第二の符号列は１ページ全体として９９％となり、どちらもページメモリ２５に格納可能な容量である。しかし、初めに第一バンドについて第一の符号列を第二の符号列に変換すると、その時点で符号量が全体で１０２％となりメモリ容量をオーバーしてしまう。
【００９７】
そこで本例では、γの値が大きなバンド、すなわち「第二の符号列の符号量に対する第一の符号列の符号量が相対的に大きなバンド」を優先的に処理することでかかる不具合を回避し、１ページ分のページメモリしか持たない場合においても確実に量子化せずに第一の符号列を第二の符号列に変換可能である。上述の例でいえば、第一バンドではγ＝０．８３、第二バンドではγ＝１．２０、第三バンドではγ＝０．８３、第四バンドではγ＝１．１５であり、第二、第四、第一、第三バンドの順で処理を行えばよい。あるいは、上記のような不具合が生じるのはγの値が１を超えるバンドのみであるので、γ＞１であるバンドについて優先的に処理を行うようにしてもよい。
【００９８】
そして、ステップＳ１５においては、全てのバンドについて符号化部２３ｂによる符号化処理が終了したか否かを確認し、処理が終了する。
【００９９】
符号化部２３ｂによる符号化処理が終了した時、ページメモリ２５には第二の符号列が第一の符号列から量子化せずに変換されて格納されている。従って、この符号は、タイルごとに圧縮された非可逆圧縮符号でありながらタイル境界歪はまったく発生しない。
【０１００】
符号化部２３ｂによる符号化処理が終了した時、ページメモリ２５には第二の符号列が図１１（ｄ）の状態で格納されている（この図にはサブタイルについては記述しない）。図１１（ｄ）では、第一の符号列から量子化せずに第二の符号列へと変換されたために、タイルごとに圧縮された非可逆圧縮符号でありながらタイル境界歪はまったく発生していない。これに対し、初めからタイル分割して符号化を行い、これを適宜量子化した場合の模式図を、図３と同じ要領で図１２に示す。図１２では圧縮符号がページメモリ２５に格納できなかった場合に、（ａ）から（ｂ）に量子化されることによって圧縮符号が大きく量子化される。これによって最終的に得られた圧縮符号（ｃ）では、タイル境界歪が目立った画像が生成されることになる。
【０１０１】
このように本例では、タイルに分割しない状態で符号化した第一の符号列に対して必要な量子化を施し、これを量子化せずにタイルに分割符号化された第二の符号列に変換することにより、タイル境界歪が発生しない圧縮符号を得ることができる。この圧縮符号はコントローラ５内のメモリに記憶されたタイルごとの先頭アドレス値を参照することでタイル単位に読み出すことができるので、必要な順序で各タイルを読み出して電子ソート機能または給紙トレイ自動切換機能を実現することができる。
【０１０２】
次に、画像を９０°回転する動作について詳細に説明する。
【０１０３】
まず、Ａ４用紙の長辺が搬送方向となるように搬送する場合には、図１３（ｂ）に示すように、コントローラ５内のメモリを参照して第一〜第四タイル（インデックス１〜４）の圧縮符号をページメモリ２５から読み出し、この圧縮符号を復号化部２４ｂで復号してバンドバッファ２２に画像データを展開する。そして、この画像データを図１３（ｂ）に示す矢印方向に読み出して次工程の処理を行う。一方、Ａ４用紙の短辺が搬送方向となるように搬送する場合には、図１３（ｃ）に示すように、コントローラ５内のメモリを参照して第一、第五、第九、第十三タイル（インデックス１、５、９、１３）の圧縮符号をページメモリ２５から読み出し、この圧縮符号を復号化部２４ｂで復号してバンドバッファ２２に画像データを展開する。そしてこの画像データを図１３（ｃ）に示す矢印方向に読み出して次工程の処理を行う。
【０１０４】
なお、本例では、各タイルがサブタイル分割されている場合があるが、この場合においても１タイルを構成するサブタイルを個別に読み出すことができるので、バンドバッファに展開するタイル／サブタイルの読み出し順序を変えて回転処理が容易に実行できる。
【０１０５】
また、本例では、最終的に得られる圧縮符号がタイル／サブタイル単位で独立に復号可能であるので、復号化部２４ｂは並列処理によって復号を行なう。具体的には、図１４に示すように復号化部２４ｂは、復号器５１〜５４という４つの復号器から構成され、各復号器５１〜５４がタイル単位で復号を行う。したがって、並列処理が可能となり、復号処理ひいてはデジタル複写機１の処理が高速化するが、タイルごとに復号時間に差があると最も処理時間がかかるタイルにひきずられてバンド全体の処理時間が長くなってしまうことがある。そこで、本例では復号時間が長いタイルをサブタイルに分割し、適宜４つの復号器に復号を委ねることによってさらに効率よく復号を行う。
【０１０６】
具体的には図１５に示すように、コントローラ５がページメモリ２５から読み出す１バンド分のタイルまたはサブタイルを決定する（ステップＳ２１）。この決定は回転処理の有無などによって決定される。ついでコントローラ５は各タイル／サブタイルを復号する復号器を決定する（ステップＳ２２）。復号器が決定されたら並列処理によって復号を行って（第２の復号手段）、トナー画像をプリンタエンジン２で形成し（ステップＳ２３）、最終バンドまで処理が終われば（ステップＳ２４のＹ）、一連の処理を終了する。
【０１０７】
図１５のステップＳ２２における復号器の決定は、図１６のフローチャートに示すように行なわれる。まず、ステップＳ３１において、１タイルに１つの復号器が分配される。このとき、タイルがサブタイルに分割されている場合には、１つのサブタイルの復号を行う復号器が決定される。図１０（ｃ）に示した例で説明すると、第一タイルが復号器５１、第２タイルが復号器５２、第３タイルの第一のサブタイルが復号器５３、第４タイルの第一のサブタイルが復号器５４に分配される（ステップＳ３１）。
【０１０８】
次に、Ｉ＝１が設定され（ステップＳ３２）、第Ｉタイル内に復号器が決定されていないサブタイルが存在するかが判定される（ステップＳ３３）。この例では、タイル１，２ではサブタイル分割されていないので、この結果が否定（ステップＳ３３のＮ）となり、Ｉがカウントアップされ（ステップＳ３５）、タイル３では第二のサブタイルが復号器に分配されていないために（ステップＳ３５のＹ）、ステップＳ３４へと処理が移行する。
【０１０９】
ステップＳ３４では、復号時間が最も早く終了する復号器にサブタイルの復号が分配する（分配手段）（なお、各タイルや、サブタイルの復号時間については、前述のとおり、コントローラ５内のメモリなどに記憶しているので、このデータを利用して前記の処理を行なう）。すなわち、図１０の例では、タイル１を復号する復号器５１が復号時間＝１［ｍｓｅｃ］で最も処理時間が短く、したがって、第３タイルの第２サブタイルは復号器５１に分配される。なお復号時間が等しい復号器が２つある場合には、復号器５１→５２→５３→５４の順で優先的に分配される。サブタイルが分配されたらステップＳ３３に戻って同様に処理が続き、この例では、第４タイルの第２サブタイルは復号器５２に、第４タイルの第３サブタイルは第１の復号器５１に分配される。全てのタイルについて処理が終了すると（Ｓ３６のＹ）、復号器の分配は終了となる。
【０１１０】
図１０の例における本実施の形態の効果を、図１０（ｄ）を参照して説明する。すなわち、タイルをサブタイルに分割して復号器を分配したことにより、各タイルを各復号器で復号した場合には２１［ｍｓｅｃ］の復号時間を必要としたのに対し、本例では最長１２［ｍｓｅｃ］で各復号器の復号が終了している。したがって処理時間が半分近くに減少し、高速処理が可能となっている。
【０１１１】
このような処理の高速化が可能であることに鑑み、本例ではデフォルトではＡ４サイズにおける各バンドの復号時間を１８［ｍｓｅｃ］と設定しておく。そして全面の網点画像など、全タイルにおいて復号時間が長くサブタイル分割によっても１８［ｍｓｅｃ］以内に処理が終了しない画像に対しては、解像度を落として処理を実行することで対応する。
【０１１２】
なお、高速処理という利点は回転処理とは関係がないので、Ａ３サイズの画像を形成する場合にも画像データを第二の符号列として保持することで復号処理の高速化という利点を得ることができる。
【０１１３】
ただし、本例の場合、並列処理の実行は同一画像を多くの部数出力する際に有効である一方で、一部数しか画像を出力しない場合には第一の符号化処理を前段で実行することによってかえって処理時間が伸びてしまうので、出力部数が所定の数を超えた場合にのみ画像データを第二の符号列として保持するようにしてもよい。
【０１１４】
なお，本例のページメモリ２５を、互いに等しい容量を有し、それぞれＡ４サイズ１ページ分の圧縮符号を格納するために設けられた二つのメモリとし、ページメモリ２５全体としてはＡ４サイズ２ページ分の画像データを圧縮符号として格納することができるようにしてもよい。かかる構成とすることにより、画像の連続出力の際には２つのメモリのいずれか一方に格納された１ページ分の圧縮符号を読み出して画像形成しつつ、他方にはハードディスク２７から読み出した次のページの圧縮符号を格納することが可能となる。また、後述するように第一の符号列を復号して得た画像データを符号化部２３ｂで符号化して第二の符号列を得る場合には、２つのメモリのいずれか一方に第一の符号列を格納し、第二の符号化部で符号化された第二の符号列は他方に格納することによって、煩雑なメモリ管理を行うことなく第二の符号列を得ることができる。また、Ａ３サイズの画像を扱う場合には、２つのメモリの両方でＡ３サイズ１枚分の画像データを格納する。
【０１１５】
さらに、バンドバッファ２２に格納された画像データに対して、まず、符号化部２３ｂが符号化処理を行ない、そして第二の符号列がページメモリ２５のふたつのメモリの一方に格納されれば画像形成動作を開始する一方、第二の符号列がページメモリ２５のメモリの一方に格納できなかった場合には、量子化せずに格納できないことが判明した時点で図７に示した処理を実施してもよい。かかる構成とすれば、初めからタイル分割して第二の符号列とした場合でも符号量が充分小さくなるような画像データに対しては、符号化部２３ａによる符号化処理および復号化部２４ａによる復号処理を実施しないですむため、高圧縮が可能な画像に対しては処理時間を短縮化することができる。
【０１１６】
なお、以上の例では、本発明をデジタル複写機に適用する例で説明したが、コンピュータやデジタルＴＶ内の処理であっても、並列処理によって画像を復号する処理において本発明は適用可能である。
【０１１７】
また、復号器はハードウェアでもソフトウェアでも良く、複数の復号回路によって画像を復号する場合にも複数のＣＰＵによって画像を復号する場合にも本発明は適用可能である。
【０１１８】
さらに、本発明を適用できる符号化方式は領域分割が可能な符号化方式であれば良く、ＪＰＥＧ２０００方式の符号でなくともよい。
【０１１９】
なお、本発明は並列処理を行なう復号器の数とタイルの数が一致していない場合でも適用可能である。ここでは、前述の例とほぼ同じ画像処理装置２６を備えたほぼ同一のデジタル複写機において、第二の復号器の数が３つ、タイルの数が１０である場合の例を示す。
【０１２０】
この例では、画像の符号化時に算出したタイル／サブタイルの復号時間が図１７に示すようであるとする。デジタル複写機１のコントローラ５はすべてのタイル／サブタイルの復号時間が１０７［ｍｓｅｃ］であることから、これを復号器の数３で割って、１復号器あたり約３６［ｍｓｅｃ］と復号時間の目安をつける。そしてまず第二の復号器１にタイル／サブタイルを順番に分配し、総復号時間が３４［ｍｓｅｃ］を超えた時点で次のタイル／サブタイルからは第二の復号器２に分配する。この結果、復号時間が平均化され、全体として高速復号が可能となる。
【０１２１】
【発明の効果】
請求項１に記載の発明は、圧縮符号化した際に復号に時間を要する領域については、より短時間で復号できる小領域に分割して圧縮符号化するので、各領域または各小領域ごとの復号時間を短縮でき、複数の各領域または各小領域について同時並行的に復号すれば符号列の全体の復号時間を短縮することができる。
【０１２２】
請求項２に記載の発明は、請求項１に記載の発明において、あらかじめ画像の領域の分割を行なうことなく量子化しておいて、その後、領域および小領域の分割を行なって量子化することなく画像を圧縮符号化するので、領域の境界歪が発生することを防止できる。
【０１２３】
請求項３に記載の発明は、請求項２に記載の発明において、所定の符号量以下となる符号列を最終的に生成することができる。
【０１２４】
請求項４に記載の発明は、請求項１〜３のいずれかの一に記載の発明において、各領域および各小領域について同時並行して行なう復号の分配により、符号列全体として復号に要する時間を短縮することができる。
【０１２５】
請求項５に記載の発明は、請求項１〜４のいずれかの一に記載の発明において、ＪＰＥＧ２０００方式などの圧縮符号化を用いて、本発明を実現することができる。
【０１２６】
請求項６に記載の発明は、請求項４に記載の発明と同様の作用、効果を奏することができる。
【０１２７】
請求項７に記載の発明は、圧縮符号化した際に復号に時間を要する領域については、より短時間で復号できる小領域に分割して圧縮符号化するので、各領域または各小領域ごとの復号時間を短縮でき、複数の各領域または各小領域について同時並行的に復号すれば符号列の全体の復号時間を短縮することができる。
【０１２８】
請求項８に記載の発明は、請求項７に記載の発明において、あらかじめ画像の領域の分割を行なうことなく量子化しておいて、その後、領域および小領域の分割を行なって量子化することなく画像を圧縮符号化するので、領域の境界歪が発生することを防止できる。
【０１２９】
請求項９に記載の発明は、請求項７または８に記載の発明と同様の作用、効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施の形態であるデジタル複写機の概略構成を示す説明図である。
【図２】デジタル複写機の符号化部（ａ）、復号化部（ｂ）、符号化部（ｃ）の機能ブロック図である。
【図３】ＪＰＥＧ２０００の符号フォーマットの概略構成を示す説明図である。
【図４】ＪＰＥＧ２０００の符号フォーマットのメインヘッダの構成を示す説明図である。
【図５】ＪＰＥＧ２０００の符号フォーマットのタイルヘッダの構成を示す説明図である。
【図６】ＪＰＥＧ２０００の符号フォーマットのタイルヘッダの構成を示す説明図である。
【図７】デジタル複写機が行なう処理のフローチャートである。
【図８】ＪＰＥＧ２０００によるオクターブ分割の説明図である。
【図９】エントロピー符号化の実行時に行なうウェーブレット変換係数のシフトについて説明する説明図である。
【図１０】画像データの復号について説明する説明図である。
【図１１】圧縮符号の量子化について説明する説明図である。
【図１２】圧縮符号の量子化について説明する説明図である。
【図１３】タイル分割について説明する説明図である。
【図１４】復号化部の構成について説明する説明図である。
【図１５】デジタル複写機が行なう復号化、画像形成の処理について説明するフローチャートである。
【図１６】ステップＳ２２のサブルーチンのフローチャートである。
【図１７】復号化処理を説明する説明図である。
【符号の説明】
１  画像形成装置
２  プリンタエンジン
２６  画像処理装置
【図１】
2004228964.tif 000003
【図２】
2004228964.tif 000004
【図３】
2004228964.tif 000005
【図４】
2004228964.tif 000006
【図５】
2004228964.tif 000007
【図６】
2004228964.tif 000008
【図７】
2004228964.tif 000009
【図８】
2004228964.tif 000010
【図９】
2004228964.tif 000011
【図１０】
2004228964.tif 000012
【図１１】
2004228964.tif 000013
【図１２】
2004228964.tif 000014
【図１３】
2004228964.tif 000015
【図１４】
2004228964.tif 000016
【図１５】
2004228964.tif 000017
【図１６】
2004228964.tif 000018
【図１７】
2004228964.tif 000019