(57)【要約】【課題】２値算術符号化のスループットを向上する。【解決手段】入力されたコンテクスト番号ＣＸが非圧縮コンテクストである場合には、Ａｕｇｅｎｄレジスタの下位１２ｂｉｔを０とし、Ａｕｇｅｎｄレジスタをサイズ分右シフトし、入力シンボル列をＳｉｚｅ分の桁を持った数値とみなしてＡｕｇｅｎｄレジスタと乗算する。この結果をＣｏｄｅレジスタに加算して新しいＣｏｄｅレジスタの値とする。次いで、ＡｕｇｅｎｄレジスタのＭＳＢ（ｂｉｔ１５）が１になるまで、ＡｕｇｅｎｄレジスタとＣｏｄｅレジスタを同時に左シフトし、この左シフトで桁あふれしたＣｏｄｅレジスタのデータを符号データとして出力し、次のシンボルの処理に移行する。一方、入力されたコンテクスト番号ＣＸが非圧縮コンテクストでない場合には、従来通りの符号化処理を行う。【選択図】　　　　図１
2004128619.tif 000002
【特許請求の範囲】
【請求項１】
シンボル列、コンテクスト番号、及び非圧縮シンボルのビット長であるサイズが入力され、
前記シンボル列が非圧縮コンテクストである場合は、領域幅レジスタを前記サイズ分右シフトし、前記シンボル列を前記サイズ分の桁を持った数値とみなして領域幅レジスタと乗算し、領域幅レジスタと符号レジスタを同時に前記サイズ分左シフトするとともに、この左シフトで桁あふれした符号レジスタのデータを符号データとして出力して次のシンボル列の処理に移行し、
前記シンボル列が非圧縮コンテクストでない場合は、シンボル列を構成する各シンボルについて、コンテクスト番号毎のシンボルの生起確率を更新しつつ符号化処理を行い、符号データを出力する
ことを特徴とする符号化方法。
【請求項２】
シンボル列が非圧縮コンテクストである場合は、領域幅レジスタをサイズ分右シフトする前に、前記領域幅レジスタの所定の下位ビットを０とする
ことを特徴とする請求項１記載の符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、算術符号化を実行する符号化方法に関する。
【０００２】
【従来の技術】
従来、画像圧縮技術において、画像データを周波数変換（変換符号化）し、量子化した後、符号を効率良く割り当て、すなわち符号の冗長度を削減して圧縮する符号化（符号割当）技術が用いられている。そして、この符号化技術としては、エントロピー符号化が知られ、さらに、このエントロピー符号化のひとつとして、算術符号化（Ａｒｉｔｈｍｅｔｉｃ　Ｃｏｄｅｒ）が知られている。
【０００３】
ここで、２値算術符号化は、図３に概念図を示すように、数値直線上の［０，１］の区間を、２値のシンボルのみからなる入力系列とその各シンボルの生起確率とに応じて不等分割していくことにより実現するものである。そして、この符号化処理に用いる符号化器は、Ａｕｇｅｎｄレジスタ（領域幅レジスタ）とＣｏｄｅレジスタ（符号レジスタ）とを備え、２値シンボル”０”または”１”が入力されると、それぞれのシンボルの生起確率（Ｐ（０）、Ｐ（１））の値が新しいＡｕｇｅｎｄレジスタの幅となり、優勢シンボル（確率の高いほうのシンボル）が入力された場合にのみＣｏｄｅレジスタの位置が劣勢シンボルの確率幅の分上に移動する。このように、符号化処理は分割後の幅を表すＡｕｇｅｎｄレジスタおよびその下辺の位置を表すＣｏｄｅレジスタを操作することにより実現されるが、その操作方法に関しては計算の簡素化のために様々な手法が提案されている（例えば、特許文献１参照）。ここではＪＰＥＧ２０００等の画像圧縮技術の標準方式のなかで採用されているＭＱ−Ｃｏｄｅｒと呼ばれる符号化方式を例にとり説明する。
【０００４】
図４にＭＱ−Ｃｏｄｅｒの符号化の処理フローチャートを、図５にＭＱ−Ｃｏｄｅｒの復号化の処理フローチャートを示す。なお、本質的に本発明の説明に関係のない処理の説明は省略している。
【０００５】
また、図４及び図５のフローチャート中、
ＣＸ：入力コンテクスト番号
Ｄ：入力シンボル（０または１）
Ａ［１５：０］：１６ｂｉｔのＡｕｇｅｎｄレジスタ
Ｃ［３１：０］：３２ｂｉｔのＣｏｄｅレジスタ
Ｑｅ（ＣＸ）［１５：０］：当該コンテクストにおける劣性シンボルの生起確率
として説明する。
【０００６】
そして、ＭＱ−Ｃｏｄｅｒの符号化器の入力は、図４に示すように、”０”、”１”の２値のシンボルＤと、そのシンボルＤが発生した状況を分類したコンテクスト番号ＣＸである。そして、算術符号化器のなかでは、コンテクスト番号毎に”０”または”１”の生起確率（Ｑｅ（ＣＸ））が管理されており、シンボルが入力されるたびに、その生起確率が再計算され（ステップ１０１〜１０５，１０８〜１１３）、更新される（ステップ１０６）。そして、この生起確率に基づいて、ＡｕｇｅｎｄレジスタおよびＣｏｄｅレジスタの計算が行われる。一方、復号化時には、図５に示すように、コンテクスト番号ＣＸが入力され、シンボルＤが復号される（ステップ１２０〜１３５）。ここで、図４のステップ１０７及び図５のステップ１３０に示す正規化処理とは、ＡｕｇｅｎｄレジスタのＭＳＢ（ｂｉｔ１５）が１になるまで、ＡｕｇｅｎｄレジスタとＣｏｄｅレジスタを同時に左シフトする処理を表す。そして、符号化時には、この左シフトで桁あふれしたＣｏｄｅレジスタのデータが符号データとして出力される。また、復号化時には、ＣｏｄｅレジスタのＬＳＢ側（左シフトにより、空いた部分）に符号データが挿入される。
【０００７】
ここで、画像データを圧縮するような場合には、ある状況では、入力シンボル”０”または”１”がランダムに発生し、Ｐ（０）が１／２に近くなるようなデータを、そうでないデータとともに符号化したいケースが存在する。そして、ＭＱ−Ｃｏｄｅｒでは、Ｐ（０）が１／２になる状況ではコンテクストを特別な値とし、その特別なコンテクスト（非圧縮コンテクスト）が入力された場合は算術符号化器内で生起確率Ｑｅを１／２に固定し、すなわち、Ｑｅの更新をせず、確率が遷移しないように制御している。
【０００８】
【特許文献１】
特開平６−１５２４３３号
【０００９】
【発明が解決しようとする課題】
さて、２値算術符号化の課題は、そのスループットの低さにある。すなわち、原理的に１回のフローでひとつのシンボルしか圧縮することはできない。
【００１０】
以下、画像データの周波数変換後の係数を圧縮する場合を例として説明する。例えば、係数データが０か否かの情報を２値シンボルとして圧縮し、その係数が０でなかったら、ＭＳＢ以外のｂｉｔ列を圧縮するという処理フローがあったとする。高周波成分の係数は、量子化により、ほとんどのデータが０となるので、このような処理フローが使われることが多い。例えば、係数の値が０ｘ３Ａという８ｂｉｔの値だったとすると、この値は０ではないので、まず０でないことを示すシンボル”１”が符号化される。その後、０ｘ３Ａを２進表現した”００１１１０１０”のうち、ＭＳＢ以外のｂｉｔ（”１１０１０”）が非圧縮モードで符号化される。この例では係数データが０か否かの情報はその係数の周りの状況（コンテクスト）に応じて圧縮がなされるが、ＭＳＢ以外のｂｉｔ列は”０”と”１”がランダムに発生するので非圧縮コンテクストで圧縮される。このケースを見てもわかるように、一般的に非圧縮コンテクストは複数の連続したｂｉｔとして発生するケースが多い。ところが、従来の算術符号化手法ではこのようなケースでも１ｂｉｔづつ符号化するしか手段がないため、スループットを向上する上で障害になっている。
【００１１】
本発明は、このような点に鑑みなされたもので、処理速度を向上できる符号化方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
請求項１記載の符号化方法は、シンボル列、コンテクスト番号、及び非圧縮シンボルのビット長であるサイズが入力され、前記シンボル列が非圧縮コンテクストである場合は、領域幅レジスタを前記サイズ分右シフトし、前記シンボル列を前記サイズ分の桁を持った数値とみなして領域幅レジスタと乗算し、領域幅レジスタと符号レジスタを同時に前記サイズ分左シフトするとともに、この左シフトで桁あふれした符号レジスタのデータを符号データとして出力して次のシンボル列の処理に移行し、前記シンボル列が非圧縮コンテクストでない場合は、シンボル列を構成する各シンボルについて、コンテクスト番号毎のシンボルの生起確率を更新しつつ符号化処理を行い、符号データを出力するものである。
【００１３】
そして、この構成では、従来どおりの算術符号化の処理として各シンボルの生起確率を更新しつつ符号化処理を行い符号データを出力する通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数ｂｉｔ一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の２値算術符号化のスループットを大幅に向上し、算術符号化が高速化される。
【００１４】
請求項２記載の符号化方法は、請求項１記載の符号化方法において、シンボル列が非圧縮コンテクストである場合は、領域幅レジスタをサイズ分右シフトする前に、前記領域幅レジスタの所定の下位ビットを０とするものである。
【００１５】
そして、この構成では、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくすることが可能になり、符号化を実行する回路規模の大型化を抑制し、製造コストが低減される。また、０にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、０にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性が向上する。
【００１６】
【発明の実施の形態】
以下、本発明の符号化方法の一実施の形態を図面を参照して説明する。
【００１７】
なお、本実施の形態においても、図３に示す概念により、領域幅レジスタとしてのＡｕｇｅｎｄレジスタと符号レジスタとしてのＣｏｄｅレジスタとを備えた符号化器を用い、図４に示すＭＱ−Ｃｏｄｅｒの符号化の処理と、図５に示すＭＱ−Ｃｏｄｅｒの復号化の処理とを一部に用いるものである。また、正規化処理についても、上記と同様であり、ＡｕｇｅｎｄレジスタのＭＳＢ（ｂｉｔ１５）が１になるまで、ＡｕｇｅｎｄレジスタとＣｏｄｅレジスタを同時に左シフトする処理をし、符号化時には、この左シフトで桁あふれしたＣｏｄｅレジスタのデータが符号データとなり、復号化時の場合にはＣｏｄｅレジスタのＬＳＢ側（左シフトにより、空いた部分）に符号データが挿入されるものである。
【００１８】
図１に符号化処理のフローチャートを示し、図２に復号化処理のフローチャートを示す。
【００１９】
また、図１及び図２のフローチャート中、
ＣＸ：入力コンテクスト番号
Ｄ［７：０］：入力シンボル列。なお、ＣＸが非圧縮コンテクストでない場合はＤ［０］のみ意味を有する。
【００２０】
Ａ［１５：０］：１６ｂｉｔのＡｕｇｅｎｄレジスタ
Ｃ［３１：０］：３２ｂｉｔのＣｏｄｅレジスタ
Ｑｅ（ＣＸ）［１５：０］：当該コンテクストにおける劣性シンボルの生起確率
となっている。
【００２１】
まず、図１のフローチャートを参照して、非圧縮コンテクストが入力された場合の符号化処理を説明する。
【００２２】
非圧縮コンテクストが入力される場合は圧縮したいシンボル系列とその長さ（サイズ、Ｓｉｚｅ）が符号化装置の入力となる。一回に処理できるＳｉｚｅの大きさはＡｕｇｅｎｄレジスタのｂｉｔ長より小さくなければならない。ここでは説明のために上限を８ｂｉｔとする。
【００２３】
まず、入力されたコンテクスト番号ＣＸが非圧縮コンテクストか否かを判断する（ステップ１）。
【００２４】
そして、入力されたコンテクスト番号ＣＸが非圧縮コンテクストである場合には、Ａｕｇｅｎｄレジスタの下位１２ｂｉｔを０とし（ステップ２）、Ａｕｇｅｎｄレジスタをサイズ分右シフトし（ステップ３）、入力シンボル列をＳｉｚｅ分の桁を持った数値とみなしてＡｕｇｅｎｄレジスタと乗算する。この結果をＣｏｄｅレジスタに加算して新しいＣｏｄｅレジスタの値とする（ステップ４）。
【００２５】
次いで、正規化処理を行い、すなわち、ＡｕｇｅｎｄレジスタのＭＳＢ（ｂｉｔ１５）が１になるまで、ＡｕｇｅｎｄレジスタとＣｏｄｅレジスタを同時に左シフトし、この左シフトで桁あふれしたＣｏｄｅレジスタのデータを符号データとして出力し（ステップ５）、次のシンボルの処理に移行する。
【００２６】
一方、ステップ１で、入力されたコンテクスト番号ＣＸが非圧縮コンテクストでない場合には、Ｄ［０］のみ意味をもつため、Ｄ＝Ｄ［０］として、図４に示す従来通りの算術符号化処理を行う。
【００２７】
次に、図２のフローチャートを参照して、復号化処理を説明する。
【００２８】
まず、入力されたコンテクスト番号ＣＸが非圧縮コンテクストか否かを判断する（ステップ１１）。
【００２９】
そして、入力されたコンテクスト番号ＣＸが非圧縮コンテクストである場合には、Ａｕｇｅｎｄレジスタの下位１２ｂｉｔを０とし（ステップ１２）、Ａｕｇｅｎｄレジスタをサイズ分右シフトし（ステップ１３）、ＣｏｄｅレジスタのＨｉｇｈ側をＡｕｇｅｎｄレジスタで除算する。その商のうちＳｉｚｅ分の値が復号化されたシンボル系列となり、その剰余が新しいＣｏｄｅレジスタのＨｉｇｈ側となる（ステップ１４）。
【００３０】
次いで、正規化処理を行い、すなわち、ＡｕｇｅｎｄレジスタのＭＳＢ（ｂｉｔ１５）が１になるまで、ＡｕｇｅｎｄレジスタとＣｏｄｅレジスタを同時に左シフトし、ＣｏｄｅレジスタのＬＳＢ側（左シフトにより空いた部分）に符号データを詰め込み、複合化したシンボルＤを出力し（ステップ１５）、次のシンボルの処理に移行する。
【００３１】
そして、上記の符号化処理及び復号化処理において、非圧縮フロー（ステップ２〜５，１２〜１５）と通常の圧縮フロー（ステップ６，１６）では両方とも共通のＡｕｇｅｎｄレジスタとＣｏｄｅレジスタが使用される。また、この非圧縮フローが導入された場合でも非圧縮コンテクストでない場合の圧縮フローは従来とまったく同じでよい。
【００３２】
なお、上記の図１及び図２に示す実施の形態において、ステップ２及びステップ１２に示すＡｕｇｅｎｄレジスタの下位ｂｉｔを０とする処理は省略することも可能である。すなわち、この処理は、ステップ４及びステップ１４に示すＡｕｇｅｎｄレジスタのシフト処理の乗算器／除算器のｂｉｔ長を少なくするために導入されるもので、多ｂｉｔの乗算器／除算器を備えたＣＰＵ等にて上記フローを実行する場合は不要となる。例えば、ステップ２，１２に示す処理を導入しない場合は、乗算器（除算器）として１６×８ｂｉｔ（２４／１６ｂｉｔ）が必要となるが、この処理を導入することにより、４×８ｂｉｔ（１２／４ｂｉｔ）の乗算器（除算器）で上記フローを実現することができる。また、ステップ２，１２に示す処理において、０にするｂｉｔ数を増やすことにより、さらに乗算器（除算器）のｂｉｔ数を減らすことも可能であるが、圧縮率が数パーセントから１割程度低下するという副作用があるため、圧縮率と回路規模とのトレードオフで決定する必要がある。
【００３３】
そして、本実施の形態の符号化方法及びこの符号化方法を実行する符号化装置によれば、通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数ｂｉｔ一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の２値算術符号化のスループットを大幅に向上し、算術符号化を高速化することができる。
【００３４】
また、回路規模や演算速度の観点から、乗算器／除算器のｂｉｔ長を選択することが可能なアルゴリズムのため、応用の場に応じた回路を選択することができ、汎用性を向上できる。すなわち、シンボル列が非圧縮コンテクストである場合は、Ａｕｇｅｎｄレジスタをサイズ分右シフトする前に、このＡｕｇｅｎｄレジスタの所定の下位ビットを０とすることにより、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくするでき、符号化を実行する回路規模の大型化を抑制し、製造コストを低減できる。また、０にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、０にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性を向上できる。
【００３５】
さらに、シンボル列が非圧縮コンテクストである場合の処理と、シンボル列が非圧縮コンテクストでない場合の処理とで、ＡｕｇｅｎｄレジスタとＣｏｄｅレジスタを共用するため、符号化を実行する回路規模の大型化を抑制し、製造コストを抑制できる。
【００３６】
【発明の効果】
請求項１記載の符号化方法によれば、従来どおりの算術符号化の処理として各シンボルの生起確率を更新しつつ符号化処理を行い符号データを出力する通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数ｂｉｔ一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の２値算術符号化のスループットを大幅に向上し、算術符号化を高速化できる。
【００３７】
請求項２記載の符号化方法によれば、請求項１記載の効果に加え、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくでき、符号化を実行する回路規模の大型化を抑制し、製造コストを低減できる。また、０にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、０にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性を向上できる。
【図面の簡単な説明】
【図１】本発明の符号化方法の一実施の形態を示す符号化処理のフローチャートである。
【図２】同上符号化方法の複合化処理のフローチャートである。
【図３】符号化方法の概念図である。
【図４】従来の符号化方法の符号化処理のフローチャートである。
【図５】同上符号化方法の複合化処理のフローチャートである。
【符号の説明】
Ａ　　領域幅レジスタ
Ｃ　　符号レジスタ
Ｄ　　シンボル
ＣＸ　　コンテクスト番号
Ｓｉｚｅ　　非圧縮シンボルのビット長であるサイズ
【図１】
2004128619.tif 000003
【図２】
2004128619.tif 000004
【図３】
2004128619.tif 000005
【図４】
2004128619.tif 000006
【図５】
2004128619.tif 000007