(57)【要約】【課題】符号化が打ち切られるブロックの発生確率を下げることができ、スキャンしながらページメモリを介さずに符号化できるようにすること。【解決手段】カラー画像を色差成分と輝度成分に変換すると共にブロック単位で分割してブロック単位で算術符号化を行う符号化装置である。予め色差成分及び輝度成分の各々に符号化シンボル数の上限値が定められ、色差成分の次に輝度成分が符号化されるように符号化順序を制御する。色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配する。【選択図】      図１
2004328407.tif 000002
【特許請求の範囲】
【請求項１】
データ列を所定の長さに区切ってビット列に符号化する場合、所定区間に含まれる符号化すべきシンボルの数を制御することによって符号化処理速度を制御することを特徴とする符号化速度制御方法。
【請求項２】
画像をブロック単位で分割し、ブロック単位で算術符号化する際に、１ブロックの符号化すべきシンボルの数を制御することによって符号化処理速度を制御することを特徴とする符号化速度制御方法。
【請求項３】
画像をブロック単位で分割し、ブロック単位で符号化を行う場合、１ブロックの符号化時に実際の符号化シンボル数を計数し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配することを特徴とする符号化速度制御方法。
【請求項４】
先行ブロックで余った符号化シンボル数を後続のブロックに分配させる範囲は、複数ブロックで構成される１ストライプ内に限ることを特徴とする請求項３記載の符号化速度制御方法。
【請求項５】
予め色差成分及び輝度成分の各々に符号化シンボル数の上限値を定め、色差成分の次に輝度成分が符号化されるように符号化順序を制御し、色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算することを特徴とする符号化速度制御方法。
【請求項６】
カラー画像を色差成分と輝度成分に変換すると共にブロック単位で分割し、ブロック単位で符号化を行う場合、予め色差成分及び輝度成分の各々に符号化シンボル数の上限値を定め、色差成分の次に輝度成分が符号化されるように符号化順序を制御し、色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配することを特徴とする符号化速度制御方法。
【請求項７】
各ブロックに符号化シンボルの上限値を直前のストライプの符号化シンボル数の積算値によって適応化することを特徴とする請求項３から請求項６のいずれかに記載の符号化速度制御方法。
【請求項８】
画像をブロック単位で分割してブロック単位で符号化を行う符号器と、前記符号器による１ブロックの符号化時に実際の符号化シンボル数を計数し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配する符号化速度制御手段と、を具備する符号化装置。
【請求項９】
カラー画像を色差成分と輝度成分とに変換すると共にブロック単位で分割して各色成分についてブロック単位で符号化を行う符号器と、予め色差成分及び輝度成分の各々に符号化シンボル数の上限値を定め、色差成分の次に輝度成分が符号化されるように符号化順序を制御し、色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算する符号化速度制御手段と、を具備する符号化装置。
【請求項１０】
原稿をスキャンして得られた画像データを符号化してからメモリに格納するスキャナ装置であって、請求項８又は請求項９記載の符号化装置を用いて画像データを符号化することを特徴とするスキャナ装置。
【請求項１１】
スキャナ機能、プリンタ機能及び通信機能を備えた複合機であって、請求項８又は請求項９記載の符号化装置を用いて画像データを符号化することを特徴とする複合機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カラー画像を符号化する際の符号化速度制御方法及び符号化装置に関し、特に符号器の処理速度の上限を制御する符号化速度制御方法及び符号化装置に関する。
【０００２】
【従来の技術】
カラー画像の符号化方式ではＪＰＥＧが一般的である。ＪＰＥＧ符号化方式では、ＲＧＢカラー画像を輝度と２つの色差成分とに変換し、各カラー成分を８×８画素を１ブロックとして、ブロック毎に符号化する。ブロックの符号化は離散コサイン変換（ＤＣＴ）処理、変換係数の量子化処理、量子化係数の可変長符号化処理の順に実行される。画像をＤＣＴ変換すると周波数成分に分離できる。その周波数成分は、ブロックの平均輝度を表すＤＣ成分と、その他のＡＣ成分とに分けられる。ＡＣ成分はジグザグスキャンと呼ばれるスキャン順序で低周波成分から高周波成分に向かって符号化されるが、通常は高周波成分が粗く量子化されるため、ブロックの最後の方はゼロが並ぶことになる。そこで、あるところから後ろは全てゼロであることを示すシンボルをＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）と定義し、これらのゼロランを一括して符号化する（例えば、特許文献１参照）。図１１にこの様子を示す。図１１では主走査周波数をｕ、副走査周波数をｖとし、座標（ｕ、ｖ）によって変換係数を表すものとする。非ゼロ成分を（０，０）、  （１，０）、  （０，１）、  （０，２）とし、その他をゼロとするとＡＣ成分の符号化は矢印の順に（１，０）、  （０，１）、  （０，２）、  ＥＯＢの情報を符号化して終了する。
【０００３】
【特許文献１】
特開平１０−２２４６３８号公報
【０００４】
【発明が解決しようとする課題】
このような画像データの符号化装置（ＣＯＤＥＣ）の処理速度は、符号量に依存するのが普通である。そうすると、画像の複雑な部分や量子化ステップ幅を小さくして画質を上げるとＣＯＤＥＣの処理時間は遅くなる傾向にある。従って、一定速度で画像をスキャンしながら画像データを符号化（圧縮）する場合に、しかも画像の複雑さや量子化の条件によらず所定の処理速度を実現しなければならない場合には、画像１ページ分をメモリに一旦蓄積してから符号化を開始しなければならない。または、ＣＯＤＥＣの処理が充分に間に合うであろうと思われる速度まで、スキャン速度を下げる必要がある。前者の場合は、特に高解像度のカラー画像であればメモリコストの増大が課題であり、後者の場合は、その速度を見積るには限られた実験データによって判断することになり、そこから一般的な結論を見出すことは一般に困難で、設計に対して不明確さを伴うことが問題である。
【０００５】
本発明は、以上のような実情に鑑みてなされたものであり、発生符号量が１ブロックに割り当てた上限値に到達することにより符号化が打ち切られるブロックの発生確率を下げることができ、符号量に制限をかけながらも高い画質を得ることのできる符号化速度制御方法及び符号化装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明は、データ列を所定の長さに区切ってビット列に符号化する場合、所定区間に含まれる符号化すべきシンボルの数を制御することによって符号化処理速度を制御するものとした。
【０００７】
【発明の実施の形態】
本発明の第１の態様は、データ列を所定の長さに区切ってビット列に符号化する場合、所定区間に含まれる符号化すべきシンボルの数を制御することによって符号化処理速度を制御することを特徴とする符号化速度制御方法である。
【０００８】
これにより、所定区間に含まれる符号化すべきシンボルの数を制御するので、符号化処理速度を制御することができ、符号化シンボル数が１ブロックに割り当てた上限値に到達することにより符号化が打ち切られるブロックの発生確率を下げることができ、符号化シンボル数を制御するだけでスキャンしながらページメモリを介さずに符号化することができる。
【０００９】
本発明の第２の態様は、画像をブロック単位で分割し、ブロック単位で算術符号化する際に、１ブロックの符号化すべきシンボルの数を制御することによって符号化処理速度を制御することを特徴とする符号化速度制御方法である。
【００１０】
これにより、ブロック単位の算術符号化に際して、１ブロックの符号化すべきシンボルの数を制御するので、符号化シンボル数が１ブロックに割り当てた上限値に到達することにより符号化が打ち切られるブロックの発生確率を下げることができる。
【００１１】
本発明の第３の態様は、画像をブロック単位で分割し、ブロック単位で符号化を行う場合、１ブロックの符号化時に実際の符号化シンボル数を計数し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配することを特徴とする符号化速度制御方法である。
【００１２】
これにより、余白部分や画像の平坦部分など、比較的複雑さの低い画像領域では割り当て符号化シンボル数が加算され、それを複雑な画像領域に割り当てることができるので、符号化シンボル数の上限値によってＥＯＢで打ち切られるブロックの発生確率が下がり画質を上げることができる。
【００１３】
本発明の第４の態様は、第３の態様の符号化速度制御方法において、先行ブロックで余った符号化シンボル数を後続のブロックに分配させる範囲は、複数ブロックで構成される１ストライプ内に限るものとした。
【００１４】
これにより、ストライプ単位でストライプのシンボル数の上限値を制御でき、結果としてＣＯＤＥＣの処理速度の上限値を制御できる。スキャナよりＣＯＤＥＣの処理速度が速くなるようにシンボル数を決めると、スキャンしながらページメモリを介さずに符号化することができる。
【００１５】
本発明の第５の態様は、予め色差成分及び輝度成分の各々に符号化シンボル数の上限値を定め、色差成分の次に輝度成分が符号化されるように符号化順序を制御し、色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算することを特徴とする符号化速度制御方法である。
【００１６】
これにより、符号化順序は色差成分から輝度成分の順に符号化することし、色差信号にも符号化シンボル数の上限を設け、その余りを輝度成分の符号化シンボル数の割り当て値に加算するよう構成したので、一般に色差信号は輝度信号に比べて符号量は少ないので、輝度信号に対する符号化シンボル数割り当て値を大きく取れる。
【００１７】
本発明の第６の態様は、カラー画像を色差成分と輝度成分に変換すると共にブロック単位で分割し、ブロック単位で符号化を行う場合、予め色差成分及び輝度成分の各々に符号化シンボル数の上限値を定め、色差成分の次に輝度成分が符号化されるように符号化順序を制御し、色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配することを特徴とする符号化速度制御方法である。
【００１８】
これにより、色差信号は輝度信号に比べて符号量は少ないので、輝度信号に対する符号化シンボル数割り当て値を大きく取れ、且つ余白部分や画像の平坦部分など、比較的複雑さの低い画像領域では割り当て符号化シンボル数が加算され、それを複雑な画像領域に割り当てることができるので、符号化シンボル数の上限値によってＥＯＢで打ち切られるブロックの発生確率が下がり画質を上げることができる。
【００１９】
本発明の第７の態様は、第３から第６のいずれかの態様の符号化速度制御方法において、各ブロックに符号化シンボルの上限値を直前のストライプの符号化シンボル数の積算値によって適応化するものとした。
【００２０】
これにより、ストライプ単位で符号化シンボル数の上限を最適化することができる。
【００２１】
本発明の第８の態様は、画像をブロック単位で分割してブロック単位で符号化を行う符号器と、前記符号器による１ブロックの符号化時に実際の符号化シンボル数を計数し、１ブロックの符号化終了時に計数された符号化シンボル数が、当該ブロックに割り振られた符号化シンボル数の上限値に到達していなければ、残余のシンボル数を後続のブロックに配分し、先行ブロックで余った符号化シンボル数を順次後続のブロックに分配する符号化速度制御手段と、を具備する符号化装置である。
【００２２】
本発明の第９の態様は、カラー画像を色差成分と輝度成分とに変換すると共にブロック単位で分割して各色成分についてブロック単位で符号化を行う符号器と、予め色差成分及び輝度成分の各々に符号化シンボル数の上限値を定め、色差成分の次に輝度成分が符号化されるように符号化順序を制御し、色差成分の符号化で余ったシンボル数を輝度成分の符号化シンボル数の上限値に加算する符号化速度制御手段と、を具備する符号化装置である。
【００２３】
本発明の第１０の態様は、原稿をスキャンして得られた画像データを符号化してからメモリに格納するスキャナ装置であって、第８又は第９の態様の符号化装置を用いて画像データを符号化するものとした。
【００２４】
本発明の第１１の態様は、スキャナ機能、プリンタ機能及び通信機能を備えた複合機であって、第８又は第９の態様の符号化装置を用いて画像データを符号化するものとした。
【００２５】
本発明で用いる符号器は典型的には算術符号器である。算術符号器はシンボルの逐次処理の繰り返しで符号化を行うので、処理速度は符号化のシンボル数に比例する。例えば、８×８画素のブロックに対して上限のシンボル数を割り当て、符号化しながらシンボル数を計数し、その設定値に達したときにはＥＯＢを符号化してブロックの符号化を終了する。
【００２６】
１ブロック符号化しても符号化シンボル数が当該ブロックの設定値に達しないときは、設定値と符号化シンボル数の差分（余り）を次のブロックのシンボル数割り当て値に加算する。このようにすると余白部分や画像の平坦部分など、比較的複雑さの低い画像領域では割り当て符号化シンボル数が加算され、それを複雑な画像領域で使うことができるので、割り当てたシンボル数の上限値に達しＥＯＢで打ち切られるブロックの発生確率が下がり、画質を上げることができる。
【００２７】
更に、１つのカラーブロック内部では、符号化順序は色差信号から輝度信号の順に符号化することとし、色差信号にもシンボル数の上限を設け、その余りを輝度信号のシンボル数の割り当て値に加算するよう構成する。
【００２８】
一般に、色差信号は輝度信号に比べて符号量は少なくシンボル数も少ないので、輝度信号に対するシンボル数割り当て値を大きくとれる。
【００２９】
以上の２つの方法によって、符号化シンボル数、即ちＣＯＤＥＣ処理速度に制限を加えながら高い画質も得ることができる。
【００３０】
例えば、隣ブロックへの、シンボル数の余りの伝播範囲は８ラインまたは１６ラインの内部とする。この短冊状の画像をストライプと呼ぶ。従って、ストライプ単位でストライプの上限が制御でき、結果としてＣＯＤＥＣの処理速度の上限値を制御することができる。
【００３１】
スキャナよりＣＯＤＥＣの処理速度が速くなるようにシンボル数を決めると、スキャンしながらページメモリを介さずに符号化することができる。
【００３２】
ＪＰＥＧに代表されるようなカラー画像符号化方式は、直交変換によって画像の特徴を抽出する処理と、その情報をある種の確率モデルのもとでハフマン符号や算術符号のような可変長符号でシリアルデータ列にコード化するエントロピー符号化処理とに分けられる。特徴抽出処理は画像のモデル化処理とも呼ばれ、ＪＰＥＧではＤＣＴ変換と量子化からなり、画像の複雑さによらず処理速度を一定にすることは比較的容易である。それに対して、エントロピー符号化処理は、符号化する情報量、即ち画質に比例して処理速度が増大する傾向にある。このように構成される符号器全体の処理速度は、符号器への入力と出力の充分な高速性を仮定すると、モデル化処理とエントロピー符号化処理のうち、処理時間の遅い方で抑えられることになる。従って、高画質を条件とすると符号器全体の処理時間はエントロピー符号化処理時間を制御することによって実現できるものと考えられる。以下において、実施の形態の説明ではこのエントロピー符号化処理時間の制御方法を主に説明する。
【００３３】
以下、本発明の実施の形態にかかる符号化速度制御方法及び画像符号化装置について図面を参照しながら具体的に説明する。
【００３４】
図１は本実施の形態にかかる符号化速度制御方法の原理説明図である。画像は８×８画素または１６×１６画素からなるブロックを処理の基本単位にする。カラー画像の符号化では、通常は色差信号を主走査、副走査方向に１／２にサブサンプリングして符号化する。この場合には符号化速度制御は、１６×１６画素を処理の単位とする。このマクロブロック内部には８×８画素のブロックが輝度成分で４個、色差成分では各１個含まれるので、これをサブサンプリング比４：１：１と呼ぶ。これに対して、サブサンプリングしない場合は、処理の単位を８×８画素とする。これをサブサンプリング比１：１：１と呼ぶ。
【００３５】
図１において、１０１は、ストライプの先頭から第ｉ番目のカラーブロックを示しており、Ｙを輝度成分、Ｃ１とＣ２を色差成分とする。同図はこれらを同一サイズで表現しているので、１：１：１の場合にあたる。各カラーブロックに対して、予め定めた固定して割り当てられるシンボル数をＳｙｍｂｏｌＳｉｚｅ  １０３  とする。また、図示していないが左隣のｉ−１番目ブロックから伝播するシンボル数の余りをＲ（ｉ−１）とする。そうすると、ｉ番目のブロックへのシンボル数割り当て値ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）は、式１で表される。
【００３６】
ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）  ＝  ＳｙｍｂｏｌＳｉｚｅ  ＋  Ｒ（ｉ−１）          （式１）
これはカラー成分Ｙ、  Ｃ１、  Ｃ２全てに割り当てられるシンボル数である。
【００３７】
これを色差成分Ｃ１、Ｃ２と輝度成分に配分する必要がある。通常、色差成分の符号量は少ないので、本実施の形態では全体の１／４をそれぞれＣ１、Ｃ２のシンボル数の上限値とした。これをＣｈｒｏｍＳｙｍｂｏｌＳｉｚｅとする。この値はＳｙｍｂｏｌＳｉｚｅ同様、外部から設定できるように構成してもよい。
【００３８】
カラーブロック内部の符号化は、まずＣ２成分、Ｃ１成分、最後にＹ成分の順序で行う。このとき、Ｃ１、  Ｃ２のシンボル数を｜Ｃ１｜、  ｜Ｃ２｜で表すことにすると、Ｙ成分のシンボル数の上限値ｍａｘ｜Ｙ｜は式２のように定める。
【００３９】
ｍａｘ｜Ｙ｜  ＝  ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）  −  （  ｜Ｃ１｜  ＋  ｜Ｃ２｜）        （式２）
このようにすると、ＣｈｒｏｍＳｙｍｂｏｌＳｉｚｅと｜Ｃ１｜、  ｜Ｃ２｜との差分（余り）が輝度成分Ｙに割り当てられることになる。こうして第ｉ番目の符号化が終了すると、シンボル数が｜Ｙ｜＋｜Ｃ１｜＋｜Ｃ２｜と確定する。割り当てシンボル数はＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）なので、余りＲ（ｉ）は式３のようになる。
【００４０】
Ｒ（ｉ）  ＝  ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）  −  （  ｜Ｙ｜＋｜Ｃ１｜＋｜Ｃ２｜  ）              （式３）
これが次のブロックに渡される。以下同様にして処理が継続する。
【００４１】
サブサンプリング比４：１：１の場合は、１６×１６画素のマクロブロックを処理の単位とする。この中には８×８画素のブロックが４個あるので、マクロブロック全体のシンボル数は４×ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）だけ割り当てられる。サブサンプリング後、色差成分は各１ブロック、輝度成分は４ブロックとなるので、輝度成分へのシンボル数割り当ては、各Ｙ成分へ均等に次のように定める。
【００４２】
ｍａｘ｜Ｙ｜  ＝    ［４×ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）  −  （｜Ｃ１｜  ＋  ｜Ｃ２｜）  ］／４      （式４）
また隣のブロックに引き渡す余りも、８×８画素のブロックに換算して次のように計算する。
【００４３】
Ｒ（ｉ）  ＝  ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）  −  （  ｜Ｙ｜＋｜Ｃ１｜＋｜Ｃ２｜  ）  ／４            （式５）
他の処理は１：１：１の場合と同様である。以上が、シンボル数割り当ての原理である。
【００４４】
図２は本実施の形態に係る符号化装置のブロック構成図である。当該符号化装置による符号化はＪＰＥＧのようにＤＣＴ  ２０１を用いた直交変換符号化とする。ＲＧＢカラー信号は輝度と色差に分離されて、このブロック図に入力するものとする。
【００４５】
各カラー成分画像はＤＣＴ係数を量子化テーブル２０３を参照して周波数成分毎に量子化器２０２で量子化され、係数メモリ２０４に書き込まれる。その後ＤＣ成分は、隣接相関が高いので直前のＤＣ成分との予測誤差信号に変換される。ＡＣ成分はランダム信号に近いので、そのままの値が符号化の対象となる。信号予測器２０５の出力Ｖｉにはこれらの値がジグザグスキャン順に出力される。次にこれらの数値列は符号器２１０によって可変長ビット列に変換される。符号器２１０は算術符号器である。なお、算術符号化以外の符号化を実行する符号器であっても良い。
【００４６】
符号器２１０は、２進分解回路２１１、コンテクスト生成器２１２、算術符号器２１３で構成されている。本実施の形態では、算術符号器２１３は２シンボル算術符号器を用いたので、整数Ｖｉを２進シンボル列に変換する必要があり、このために２進分解回路２１１が必要になる。コンテクスト生成器２１２が算術符号器には必要な機能で、シンボルの属するコンテクストを識別するインデックスを出力する。算術符号器２１３からは、シンボルを符号化する毎に符号化タイミングを示す信号が出力される。
【００４７】
ＥＯＢ検出器２０６は、６４個の周波数成分内でのＥＯＢの位置を検出し、そのアドレスを出力する。例えば、ジグザグスキャン順に３０番目がＥＯＢ、即ち、それ以降が全てゼロであれはＥＯＢアドレス＝３０が出力される。係数カウンタ２０９は、次に符号化する数値のアドレス、即ち、初めから何番目の数値かを出力する。
【００４８】
速度制御回路２０８は、符号化タイミング信号を内部で係数してブロックで符号化されたシンボル数を数える。またレジスタ２０７には、原理説明の記号を用いるとＳｙｍｂｏｌＳｉｚｅが制御部２１４によって書かれ、それが速度制御回路２０８に入力する。速度制御回路２０８では、これらの情報を参照してブロックの符号化シンボル数が割り当てたシンボル数に達したときに、ＥＯＢ付加信号を出力する。出力信号のシンボル数積算値は１ストライプの符号化シンボル数の積算値である。この値は制御部２１４に入力し、ブロックへの符号化シンボル数割り当て値の適応化処理に使われる。
【００４９】
ＥＯＢ検出器２０６では、ＥＯＢ付加信号を受けると、ＥＯＢアドレスを係数アドレスとし、符号化中の数値の次をＥＯＢの位置として、符号器２１０の２進分解回路２１１に知らせる。２進分解回路２１１では、後に説明するが各数値を符号化する時に、ＥＯＢアドレスと係数アドレスを比較して、これから符号化するシンボルがＥＯＢかどうかを第１に判定する。今の場合は、ＥＯＢアドレスと係数アドレスは一致しているので、この判定によってＥＯＢシンボルを符号化して、そのブロックの符号化が終わる。
【００５０】
符号器２１０内部のコンテクスト生成器２１２では、算術符号器２１３にシンボルが属するコンテクストのインデックスを出力すると同時に、各数値の符号化が終わったかどうかを示す同期信号となる係数同期信号を出力する。この信号によって、２進分解回路２１１では判定条件の順序を初期化し、係数カウンタでは係数のアドレスを知ることができるように構成している。制御部２１４は、この符号器全体のタイミングを制御している。
【００５１】
図３は速度制御回路２０８のブロック構成図を示す。各画素ブロックには予め定めたシンボル数ＳｙｍｂｏｌＳｉｚｅを割り当てるが、この値はレジスタ２０７に制御部２１４が書き込んでいる。もう一つの入力信号は、符号化タイミング信号である。この信号は１シンボル符号化される毎に算術符号器２１３から出力される。カウンタ３１１では、ブロック毎にこの信号を係数しブロックから生成されたシンボル数を知る。カウンタ３１１はブロックの符号化に先立ってリセットされるものとする。リセット信号は示していないが、制御部２１４によって制御されている。
【００５２】
加算器３１２はブロックのシンボル数を加算する。符号化は既に説明したように、色差成分Ｃ２、色差成分Ｃ１、輝度成分Ｙの順に行うので、加算器３１２の出力はＣ２の符号化終了時点では、｜Ｃ２｜が出力され、次に  ｜Ｃ２｜＋｜Ｃ１｜、  最後に  ｜Ｃ２｜＋｜Ｃ１｜＋｜Ｙ｜が出力される。
【００５３】
加算器３１３はブロックのシンボル数  ｜Ｃ２｜＋｜Ｃ１｜＋｜Ｙ｜をストライプ内部で積算する。積算値は制御部２１４に知らされ、後に説明する適応制御のために使用される。
【００５４】
加算器３０１は、ＳｙｍｂｏｌＳｉｚｅにＲ（ｉ−１）を加えて、そのブロックに割り当てられたシンボル数の上限値ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）を算出する。上限値ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）はレジスタ３０２に書き込まれる。減算器３０４は、輝度成分の符号化終了時にＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）と｜Ｃ２｜＋｜Ｃ１｜＋｜Ｙ｜の差分を計算する。セレクタ３０３では、その値が負であればゼロを選択し、そうでなければ減算器３０４の出力を選択する。セレクタ３０３の出力が次のブロックへの余りＲ（ｉ）となる。
【００５５】
減算器３０５では、色差成分の符号化終了時点で、ＢｌｏｃｋＳｙｍｂｏｌＳｉｚｅ（ｉ）と｜Ｃ２｜＋｜Ｃ１｜との差分を計算し、それがサブサンプリング１：１：１のときの輝度成分の符号バイト数上限値Ｙｓｙｍｂｏｌ（１：１：１）となる。一方、サブサンプリング４：１：１のときは、減算器３０６で同様の計算を行う。記号＜＜２と＞＞２は、それぞれ２ビットの左シフトと右シフトである。セレクタ３０７の右側には、４：１：１のときのＹｓｙｍｂｏｌ（４：１：１）が得られる。それらを選択し、レジスタ３０８にＹｓｙｍｂｏｌが格納される。同様にして、色差成分のシンボル数上限値もレジスタ３０９に記憶される。
【００５６】
比較回路３１０は、それぞれのカラー成分の符号化時、これらの値とシンボル数を計数するカウンタ３１１の値とが等しくなったらＥＯＢ付加信号を出力する。
【００５７】
図４は１ブロック６４個の係数の符号化手順を示すフローである。係数アドレスは１〜６４とすると、処理４０１でアドレスを初期化する。処理４０２で係数アドレスとＥＯＢアドレスが等しいかどうか判定する。そうであれば、処理４１２でＥＯＢを符号化して、このブロックの符号化を終了する。等しくなければ処理４０３でＥＯＢではないことを符号化する。次に処理４０４で数値Ｖがゼロかどうかを判定する。そうであれば、処理４１１でゼロであることを符号化し、そうでなければ処理４０５で、ゼロではないことを符号化する。処理４０５の後では、数値Ｖの絶対値｜Ｖ｜は１以上であることが分かったので、まず処理４０６で正負を符号化し、処理４０７ではＳｚ  ＝｜Ｖ｜−１として、処理４０８でＳｚの大きさのクラスを符号化する。クラスとはＳｚ  ＞  ２＊＊ｎ  −１    （＊＊はべき乗）  による数値の分類分けである。例えば、７  ≧  Ｓｚ  ＞  ３のように識別される。この範囲の数値は４〜７なので、２進数表示で３桁でしかもＭＳＢは１であることが確定する。後は下位２ビットを判定して符号化すればよい。これが処理４０９である。判定４１０で１ブロックの符号化が終了したかどうかを判定する。終わっていなければ、処理４１３で係数アドレスを＋１して、次の数値の符号化を行う。
【００５８】
図５は符号器２１０内部の２進分解回路２１１における、数値の２進分解フローである。数値はＶとして、図の上側から入力する。左側が何を判定するかを示している。六角形の記号は、判定を示す。
【００５９】
図４のフローでも説明したように、最初の判定はＥＯＢである。これは係数アドレスとＥＯＢアドレスの比較である。ＥＯＢであれば”１”をＥＯＢという名前のコンテクストで符号化する。これを１（ＥＯＢ）と表している。以下同様に、Ｖがゼロか、正負の符号、Ｓｚの大きさのクラスと下位ビットを符号化する。２進分解回路２１１は、このような判定を行う比較器の集合体で構成されている。
【００６０】
今までは算術符号器の処理速度は符号化したシンボル数に比例するとして説明してきた。より正確に処理速度を制御するには、符号化処理速度が符号化シンボル数によって一意的に決定できることが望ましい。本出願の発明者は、既に特開２００２−３３９２５号公報”算術符号化・復号化方法および算術符号化復号化装置”にて高速算術符号器の構成方法を開示している。この特開２００２−３３９２５号公報記載の算術符号器は算術符号化要素処理のパイプラインで構成され、その処理速度はシンボル数と同じクロックサイクル数で表される。従って、この算術符号器を用いるとシンボル数を制御することによって可変長符号化処理時間が正確に制御できる。
【００６１】
以上によって符号化速度制御方法と、その実施例である符号器の全体構成と各構成要素の動作を説明してきた。今までの説明では、ブロックに割り当てられるシンボル数ＳｙｍｂｏｌＳｉｚｅは予め定めた固定値であった。この値は次のように計算する。例えば、カラー画像は、３３ＭＨｚのクロックで輝度と色差３バイトのデータが入力するものとする。１ラインの長さを８１９２画素とすると、８ラインのストライプデータが入力するクロック数は、８１９２×８＝６５５２６（クロック）である。１ストライプは１０２４個のブロックから構成されるので、１ブロックあたりの入力時間は６４入力クロックとなる。ＬＳＩではデータ入力速度は、外部インタフェースの制約で高く取れないが、ＬＳＩ内部の符号器部分はインタフェース部分よりも高いクロック周波数で動かすことができる。例えば、ＣＯＤＥＣのクロックを入力クロックの４倍と仮定すると、６４入力クロックは２５６ＣＯＤＥＣクロックに相当することになる。
【００６２】
特開２００２−３３９２５号公報の算術符号器では、２５６ＣＯＤＥＣクロックは２５６符号化シンボルに相当する。これが、ＳｙｍｂｏｌＳｉｚｅとして設定できる上限値である。
【００６３】
しかし、このような値を設定しても、簡単な画像領域ではシンボル数は少ないので、１ストライプを合計すると、その処理時間は規定値よりも小さくなるのが普通である。そこで、ストライプの処理速度、即ち符号化したシンボル数を監視しながらＳｙｍｂｏｌＳｉｚｅをストライプ毎に適応化することが考えられる。例えば、先ほどの例では、ＳｙｍｂｏｌＳｉｚｅ＝２５６にしたが、実際に符号化してみると、シンボル数の上限値には充分な余裕があったとする。画像の複雑さは８ラインや１６ライン程度のストライプ幅では、通常は急激には変化しないので、次のストライプでは、ＳｙｍｂｏｌＳｉｚｅ＝前のＳｙｍｂｏｌＳｉｚｅ  ＋１６にするなど、割り当て量を増やすことができる。こうすると、ストライプ内部の複雑なブロックで、ＥＯＢによって強制的に符号化を終了させられるブロックが少なくなり画質をより改善できる。
【００６４】
図６はこのような考えでＳｙｍｂｏｌＳｉｚｅを適応化したときのフローである。１ストライプに対するシンボル数の許容範囲（最小値〜最大値）を予め設定し、１ストライプのシンボル数を監視する。ストライプのシンボル数が最小値よりも小さくなった場合は、前ストライプの割当て値にシンボル数αを加算して再設定する。また、ストライプのシンボル数が最大値よりも大きくなった場合は、前ストライプの割当て値からシンボル数βを引いて再設定する。これにより、最小値と最大の範囲に入るようにＳｙｍｂｏｌＳｉｚｅを最大化できる。図中のαやβは上の例では１６にあたる。
【００６５】
図７はネットワークスキャナのブロック図を示している。当該ネットワークスキャナの符号器に上記実施形態の符号化装置を適用した。同図において、原稿７０１はイメージセンサ７０２によって読み取られ、その後、画像処理部７０３によってイメージセンサの補正処理やエッジ強調など、画質を向上させる処理が施される。そのデータがストライプメモリ７０４に格納される。ストライプメモリ７０４は、１６ラインの数倍程度の容量を持ったメモリ２セットからなる。従来の高速スキャナでは、ここに圧縮速度とスキャン速度の整合をとるため最低１ページ分のメモリが必要であった。ストライプメモリ７０４のデータは、本発明による符号器７０５によって圧縮され、その符号データは符号メモリ７０６に格納される。それが、ネットワークインタフェース部７０７を経て、外部のパソコンなどネットワーク接続端末７０９に送られる。制御部７０８は全体の動作を制御する。
【００６６】
本発明による符号化速度制御方法を用いると、符号化処理時間が常にスキャン時間より速くなるように設定できるため、符号化処理に必要なストライプ単位のメモリが最低２組あれば充分である。カラーの高解像度画像では、大幅にメモリコストを削減した、しかも高速のスキャナが構成できるという特徴がある。
【００６７】
またネットワークスキャナ以外に、スキャナ機能、プリンタ機能、ＦＡＸ機能を統合した複合機にも本発明による符号器を応用できる。図８は上記実施の形態の符号化装置を適用した複合機のブロック構成図である。図７と同様のルートを経て、読み取りデータは符号メモリ１１０９に蓄積される。それ以後、ネットワーク１１１３に送られたり、ＦＡＸモデム１１１１を介してＦＡＸ伝送される。また、蓄積した画像をプリントするときは、符号メモリ１１０９のデータは復号器１１０６で画像データに復元され、画像処理部２（１１０７）で、記録用の画像処理が施されプリンタ１１０８に送られる。このような複合機であっても、読み取った画像データを圧縮するために本発明による符号化装置を用いると、画像処理部１（１１０３）と符号器１１０５の間にはストライプメモリがあればよい。
【００６８】
最後にシミュレーション結果を説明する。図９は図２の符号化装置の処理速度シミュレーション結果である。ここでは、ＤＣＴ変換と量子化処理は１ブロックが３２クロック、算術符号器は１シンボル／サイクルで、これらは並列動作できるものと仮定した。図９で横軸は１画素あたりの符号化ビット数、縦軸は１ストライプの処理時間の最大値（上側の菱形プロット）と最小値（下側の星型プロット）を示す。その単位は符号化処理に要したサイクル数を画像の入力サイクル数で正規化した処理速度である。画像の入力速度はカラー１画素３バイトが３３ＭＨｚのクロックに同期して入力するものとした。符号器のクロックは、画像入力クロックの４倍の１３３ＭＨｚとした。１ストライプの上限処理速度は４．０を目標とした。これは１ブロックのシンボル数の上限値を２５６シンボルに設定することにあたる。このような仮定のもとで、量子化ステップ幅を変えて図９のプロットを作成した。
【００６９】
図９で横軸が右に行くほど画質があがり、それにつれてストライプ処理時間の最大値が比例的に上がっていく様子が分かる。何も制御しないとＣＯＤＥＣ処理速度は、画像入力速度の４倍を軽く超えている。速度制御した場合のプロットは、正方形で示したものである。目標とした速度以下に抑えられている様子が分かる。
【００７０】
図１０は復元画像のピークＳＮ比をビットレートに対してプロットしたものである。図中、菱形は速度制御しない場合、星印は速度制御した場合を示す。画質を上げていくと、ＥＯＢで符号化を打ち切るブロックが増えるので、量子化ステップ幅とＣＯＤＥＣ処理速度はトレードオフの関係にあることを示している。
【００７１】
以上説明したように、本実施の形態によれば、１つのブロックにシンボル数の上限を割り当て、符号化したシンボル数がそこに達したときにはＥＯＢで符号化を終了し、符号化シンボル数がその設定値に達しないときは、設定値と符号化シンボル数の差分（余り）を次のブロックの符号化シンボル数割り当て値に加算する。こうすると余白部分や画像の平坦部分など、比較的複雑さの低い画像領域では割り当て符号化シンボル数が加算され、それを複雑な画像領域に割り当てることができるので、符号化シンボル数の上限値によってＥＯＢで打ち切られるブロックの発生確率が下がり画質を上げることができる。
【００７２】
更に１つのカラーブロック内部では、符号化順序は色差信号から輝度信号の順に符号化することし、色差信号にも符号化シンボル数の上限を設け、その余りを輝度信号の符号化シンボル数の割り当て値に加算するよう構成した。一般に色差信号は輝度信号に比べて符号量は少ないので、輝度信号に対する符号化シンボル数割り当て値を大きく取れる。
【００７３】
また、高速のネットワークスキャナや高速のスキャナ機能を持った複合機を、メモリコストを低く抑えて実現できるという効果がある。
【００７４】
【発明の効果】
以上詳記したように本発明によれば、発生符号量が１ブロックに割り当てた上限値に到達することにより符号化が打ち切られるブロックの発生確率を下げることができ、符号量に制限をかけながらも高い画質を得ることのできる符号化速度制御方法及び符号化装置を提供できる。
【図面の簡単な説明】
【図１】本実施の形態による符号化速度制御方法の原理説明図
【図２】本実施の形態による符号化速度制御方法を用いた符号化装置のブロック構成図
【図３】速度制御回路のブロック構成図
【図４】数値の符号化フロー図
【図５】２進分解の判定列と符号化フローの詳細図
【図６】シンボル数の適応化処理フロー図
【図７】本実施の形態による符号器を用いたネットワークスキャナのブロック図
【図８】本実施の形態による符号化装置を用いた複合機のブロック図
【図９】符号化速度に関するシミュレーションデータの図
【図１０】画質に関するシミュレーションデータの図
【図１１】従来のブロック毎の符号化打ち切り方法の説明図
【符号の説明】
２０２  量子化器
２０３  量子化テーブル
２０４  係数メモリ
２０５  信号予測器
２０６  ＥＯＢ検出器
２０７  レジスタ
２０８  速度制御回路
２０９  係数カウンタ
２１０  符号器
２１１  ２進分解回路
２１２  コンテクスト生成器
２１３  算術符号器
２１４  制御部
【図１】
2004328407.tif 000003
【図２】
2004328407.tif 000004
【図３】
2004328407.tif 000005
【図４】
2004328407.tif 000006
【図５】
2004328407.tif 000007
【図６】
2004328407.tif 000008
【図７】
2004328407.tif 000009
【図８】
2004328407.tif 000010
【図９】
2004328407.tif 000011
【図１０】
2004328407.tif 000012
【図１１】
2004328407.tif 000013