JP2004128619A - 符号化方法 - Google Patents
符号化方法 Download PDFInfo
- Publication number
- JP2004128619A JP2004128619A JP2002286544A JP2002286544A JP2004128619A JP 2004128619 A JP2004128619 A JP 2004128619A JP 2002286544 A JP2002286544 A JP 2002286544A JP 2002286544 A JP2002286544 A JP 2002286544A JP 2004128619 A JP2004128619 A JP 2004128619A
- Authority
- JP
- Japan
- Prior art keywords
- register
- context
- symbol
- code
- size
- 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
Links
Images
Abstract
【課題】2値算術符号化のスループットを向上する。
【解決手段】入力されたコンテクスト番号CXが非圧縮コンテクストである場合には、Augendレジスタの下位12bitを0とし、Augendレジスタをサイズ分右シフトし、入力シンボル列をSize分の桁を持った数値とみなしてAugendレジスタと乗算する。この結果をCodeレジスタに加算して新しいCodeレジスタの値とする。次いで、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトし、この左シフトで桁あふれしたCodeレジスタのデータを符号データとして出力し、次のシンボルの処理に移行する。一方、入力されたコンテクスト番号CXが非圧縮コンテクストでない場合には、従来通りの符号化処理を行う。
【選択図】 図1
【解決手段】入力されたコンテクスト番号CXが非圧縮コンテクストである場合には、Augendレジスタの下位12bitを0とし、Augendレジスタをサイズ分右シフトし、入力シンボル列をSize分の桁を持った数値とみなしてAugendレジスタと乗算する。この結果をCodeレジスタに加算して新しいCodeレジスタの値とする。次いで、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトし、この左シフトで桁あふれしたCodeレジスタのデータを符号データとして出力し、次のシンボルの処理に移行する。一方、入力されたコンテクスト番号CXが非圧縮コンテクストでない場合には、従来通りの符号化処理を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、算術符号化を実行する符号化方法に関する。
【0002】
【従来の技術】
従来、画像圧縮技術において、画像データを周波数変換(変換符号化)し、量子化した後、符号を効率良く割り当て、すなわち符号の冗長度を削減して圧縮する符号化(符号割当)技術が用いられている。そして、この符号化技術としては、エントロピー符号化が知られ、さらに、このエントロピー符号化のひとつとして、算術符号化(Arithmetic Coder)が知られている。
【0003】
ここで、2値算術符号化は、図3に概念図を示すように、数値直線上の[0,1]の区間を、2値のシンボルのみからなる入力系列とその各シンボルの生起確率とに応じて不等分割していくことにより実現するものである。そして、この符号化処理に用いる符号化器は、Augendレジスタ(領域幅レジスタ)とCodeレジスタ(符号レジスタ)とを備え、2値シンボル”0”または”1”が入力されると、それぞれのシンボルの生起確率(P(0)、P(1))の値が新しいAugendレジスタの幅となり、優勢シンボル(確率の高いほうのシンボル)が入力された場合にのみCodeレジスタの位置が劣勢シンボルの確率幅の分上に移動する。このように、符号化処理は分割後の幅を表すAugendレジスタおよびその下辺の位置を表すCodeレジスタを操作することにより実現されるが、その操作方法に関しては計算の簡素化のために様々な手法が提案されている(例えば、特許文献1参照)。ここではJPEG2000等の画像圧縮技術の標準方式のなかで採用されているMQ−Coderと呼ばれる符号化方式を例にとり説明する。
【0004】
図4にMQ−Coderの符号化の処理フローチャートを、図5にMQ−Coderの復号化の処理フローチャートを示す。なお、本質的に本発明の説明に関係のない処理の説明は省略している。
【0005】
また、図4及び図5のフローチャート中、
CX:入力コンテクスト番号
D:入力シンボル(0または1)
A[15:0]:16bitのAugendレジスタ
C[31:0]:32bitのCodeレジスタ
Qe(CX)[15:0]:当該コンテクストにおける劣性シンボルの生起確率
として説明する。
【0006】
そして、MQ−Coderの符号化器の入力は、図4に示すように、”0”、”1”の2値のシンボルDと、そのシンボルDが発生した状況を分類したコンテクスト番号CXである。そして、算術符号化器のなかでは、コンテクスト番号毎に”0”または”1”の生起確率(Qe(CX))が管理されており、シンボルが入力されるたびに、その生起確率が再計算され(ステップ101〜105,108〜113)、更新される(ステップ106)。そして、この生起確率に基づいて、AugendレジスタおよびCodeレジスタの計算が行われる。一方、復号化時には、図5に示すように、コンテクスト番号CXが入力され、シンボルDが復号される(ステップ120〜135)。ここで、図4のステップ107及び図5のステップ130に示す正規化処理とは、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトする処理を表す。そして、符号化時には、この左シフトで桁あふれしたCodeレジスタのデータが符号データとして出力される。また、復号化時には、CodeレジスタのLSB側(左シフトにより、空いた部分)に符号データが挿入される。
【0007】
ここで、画像データを圧縮するような場合には、ある状況では、入力シンボル”0”または”1”がランダムに発生し、P(0)が1/2に近くなるようなデータを、そうでないデータとともに符号化したいケースが存在する。そして、MQ−Coderでは、P(0)が1/2になる状況ではコンテクストを特別な値とし、その特別なコンテクスト(非圧縮コンテクスト)が入力された場合は算術符号化器内で生起確率Qeを1/2に固定し、すなわち、Qeの更新をせず、確率が遷移しないように制御している。
【0008】
【特許文献1】
特開平6−152433号
【0009】
【発明が解決しようとする課題】
さて、2値算術符号化の課題は、そのスループットの低さにある。すなわち、原理的に1回のフローでひとつのシンボルしか圧縮することはできない。
【0010】
以下、画像データの周波数変換後の係数を圧縮する場合を例として説明する。例えば、係数データが0か否かの情報を2値シンボルとして圧縮し、その係数が0でなかったら、MSB以外のbit列を圧縮するという処理フローがあったとする。高周波成分の係数は、量子化により、ほとんどのデータが0となるので、このような処理フローが使われることが多い。例えば、係数の値が0x3Aという8bitの値だったとすると、この値は0ではないので、まず0でないことを示すシンボル”1”が符号化される。その後、0x3Aを2進表現した”00111010”のうち、MSB以外のbit(”11010”)が非圧縮モードで符号化される。この例では係数データが0か否かの情報はその係数の周りの状況(コンテクスト)に応じて圧縮がなされるが、MSB以外のbit列は”0”と”1”がランダムに発生するので非圧縮コンテクストで圧縮される。このケースを見てもわかるように、一般的に非圧縮コンテクストは複数の連続したbitとして発生するケースが多い。ところが、従来の算術符号化手法ではこのようなケースでも1bitづつ符号化するしか手段がないため、スループットを向上する上で障害になっている。
【0011】
本発明は、このような点に鑑みなされたもので、処理速度を向上できる符号化方法を提供することを目的とする。
【0012】
【課題を解決するための手段】
請求項1記載の符号化方法は、シンボル列、コンテクスト番号、及び非圧縮シンボルのビット長であるサイズが入力され、前記シンボル列が非圧縮コンテクストである場合は、領域幅レジスタを前記サイズ分右シフトし、前記シンボル列を前記サイズ分の桁を持った数値とみなして領域幅レジスタと乗算し、領域幅レジスタと符号レジスタを同時に前記サイズ分左シフトするとともに、この左シフトで桁あふれした符号レジスタのデータを符号データとして出力して次のシンボル列の処理に移行し、前記シンボル列が非圧縮コンテクストでない場合は、シンボル列を構成する各シンボルについて、コンテクスト番号毎のシンボルの生起確率を更新しつつ符号化処理を行い、符号データを出力するものである。
【0013】
そして、この構成では、従来どおりの算術符号化の処理として各シンボルの生起確率を更新しつつ符号化処理を行い符号データを出力する通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数bit一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の2値算術符号化のスループットを大幅に向上し、算術符号化が高速化される。
【0014】
請求項2記載の符号化方法は、請求項1記載の符号化方法において、シンボル列が非圧縮コンテクストである場合は、領域幅レジスタをサイズ分右シフトする前に、前記領域幅レジスタの所定の下位ビットを0とするものである。
【0015】
そして、この構成では、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくすることが可能になり、符号化を実行する回路規模の大型化を抑制し、製造コストが低減される。また、0にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、0にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性が向上する。
【0016】
【発明の実施の形態】
以下、本発明の符号化方法の一実施の形態を図面を参照して説明する。
【0017】
なお、本実施の形態においても、図3に示す概念により、領域幅レジスタとしてのAugendレジスタと符号レジスタとしてのCodeレジスタとを備えた符号化器を用い、図4に示すMQ−Coderの符号化の処理と、図5に示すMQ−Coderの復号化の処理とを一部に用いるものである。また、正規化処理についても、上記と同様であり、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトする処理をし、符号化時には、この左シフトで桁あふれしたCodeレジスタのデータが符号データとなり、復号化時の場合にはCodeレジスタのLSB側(左シフトにより、空いた部分)に符号データが挿入されるものである。
【0018】
図1に符号化処理のフローチャートを示し、図2に復号化処理のフローチャートを示す。
【0019】
また、図1及び図2のフローチャート中、
CX:入力コンテクスト番号
D[7:0]:入力シンボル列。なお、CXが非圧縮コンテクストでない場合はD[0]のみ意味を有する。
【0020】
A[15:0]:16bitのAugendレジスタ
C[31:0]:32bitのCodeレジスタ
Qe(CX)[15:0]:当該コンテクストにおける劣性シンボルの生起確率
となっている。
【0021】
まず、図1のフローチャートを参照して、非圧縮コンテクストが入力された場合の符号化処理を説明する。
【0022】
非圧縮コンテクストが入力される場合は圧縮したいシンボル系列とその長さ(サイズ、Size)が符号化装置の入力となる。一回に処理できるSizeの大きさはAugendレジスタのbit長より小さくなければならない。ここでは説明のために上限を8bitとする。
【0023】
まず、入力されたコンテクスト番号CXが非圧縮コンテクストか否かを判断する(ステップ1)。
【0024】
そして、入力されたコンテクスト番号CXが非圧縮コンテクストである場合には、Augendレジスタの下位12bitを0とし(ステップ2)、Augendレジスタをサイズ分右シフトし(ステップ3)、入力シンボル列をSize分の桁を持った数値とみなしてAugendレジスタと乗算する。この結果をCodeレジスタに加算して新しいCodeレジスタの値とする(ステップ4)。
【0025】
次いで、正規化処理を行い、すなわち、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトし、この左シフトで桁あふれしたCodeレジスタのデータを符号データとして出力し(ステップ5)、次のシンボルの処理に移行する。
【0026】
一方、ステップ1で、入力されたコンテクスト番号CXが非圧縮コンテクストでない場合には、D[0]のみ意味をもつため、D=D[0]として、図4に示す従来通りの算術符号化処理を行う。
【0027】
次に、図2のフローチャートを参照して、復号化処理を説明する。
【0028】
まず、入力されたコンテクスト番号CXが非圧縮コンテクストか否かを判断する(ステップ11)。
【0029】
そして、入力されたコンテクスト番号CXが非圧縮コンテクストである場合には、Augendレジスタの下位12bitを0とし(ステップ12)、Augendレジスタをサイズ分右シフトし(ステップ13)、CodeレジスタのHigh側をAugendレジスタで除算する。その商のうちSize分の値が復号化されたシンボル系列となり、その剰余が新しいCodeレジスタのHigh側となる(ステップ14)。
【0030】
次いで、正規化処理を行い、すなわち、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトし、CodeレジスタのLSB側(左シフトにより空いた部分)に符号データを詰め込み、複合化したシンボルDを出力し(ステップ15)、次のシンボルの処理に移行する。
【0031】
そして、上記の符号化処理及び復号化処理において、非圧縮フロー(ステップ2〜5,12〜15)と通常の圧縮フロー(ステップ6,16)では両方とも共通のAugendレジスタとCodeレジスタが使用される。また、この非圧縮フローが導入された場合でも非圧縮コンテクストでない場合の圧縮フローは従来とまったく同じでよい。
【0032】
なお、上記の図1及び図2に示す実施の形態において、ステップ2及びステップ12に示すAugendレジスタの下位bitを0とする処理は省略することも可能である。すなわち、この処理は、ステップ4及びステップ14に示すAugendレジスタのシフト処理の乗算器/除算器のbit長を少なくするために導入されるもので、多bitの乗算器/除算器を備えたCPU等にて上記フローを実行する場合は不要となる。例えば、ステップ2,12に示す処理を導入しない場合は、乗算器(除算器)として16×8bit(24/16bit)が必要となるが、この処理を導入することにより、4×8bit(12/4bit)の乗算器(除算器)で上記フローを実現することができる。また、ステップ2,12に示す処理において、0にするbit数を増やすことにより、さらに乗算器(除算器)のbit数を減らすことも可能であるが、圧縮率が数パーセントから1割程度低下するという副作用があるため、圧縮率と回路規模とのトレードオフで決定する必要がある。
【0033】
そして、本実施の形態の符号化方法及びこの符号化方法を実行する符号化装置によれば、通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数bit一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の2値算術符号化のスループットを大幅に向上し、算術符号化を高速化することができる。
【0034】
また、回路規模や演算速度の観点から、乗算器/除算器のbit長を選択することが可能なアルゴリズムのため、応用の場に応じた回路を選択することができ、汎用性を向上できる。すなわち、シンボル列が非圧縮コンテクストである場合は、Augendレジスタをサイズ分右シフトする前に、このAugendレジスタの所定の下位ビットを0とすることにより、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくするでき、符号化を実行する回路規模の大型化を抑制し、製造コストを低減できる。また、0にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、0にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性を向上できる。
【0035】
さらに、シンボル列が非圧縮コンテクストである場合の処理と、シンボル列が非圧縮コンテクストでない場合の処理とで、AugendレジスタとCodeレジスタを共用するため、符号化を実行する回路規模の大型化を抑制し、製造コストを抑制できる。
【0036】
【発明の効果】
請求項1記載の符号化方法によれば、従来どおりの算術符号化の処理として各シンボルの生起確率を更新しつつ符号化処理を行い符号データを出力する通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数bit一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の2値算術符号化のスループットを大幅に向上し、算術符号化を高速化できる。
【0037】
請求項2記載の符号化方法によれば、請求項1記載の効果に加え、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくでき、符号化を実行する回路規模の大型化を抑制し、製造コストを低減できる。また、0にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、0にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性を向上できる。
【図面の簡単な説明】
【図1】本発明の符号化方法の一実施の形態を示す符号化処理のフローチャートである。
【図2】同上符号化方法の複合化処理のフローチャートである。
【図3】符号化方法の概念図である。
【図4】従来の符号化方法の符号化処理のフローチャートである。
【図5】同上符号化方法の複合化処理のフローチャートである。
【符号の説明】
A 領域幅レジスタ
C 符号レジスタ
D シンボル
CX コンテクスト番号
Size 非圧縮シンボルのビット長であるサイズ
【発明の属する技術分野】
本発明は、算術符号化を実行する符号化方法に関する。
【0002】
【従来の技術】
従来、画像圧縮技術において、画像データを周波数変換(変換符号化)し、量子化した後、符号を効率良く割り当て、すなわち符号の冗長度を削減して圧縮する符号化(符号割当)技術が用いられている。そして、この符号化技術としては、エントロピー符号化が知られ、さらに、このエントロピー符号化のひとつとして、算術符号化(Arithmetic Coder)が知られている。
【0003】
ここで、2値算術符号化は、図3に概念図を示すように、数値直線上の[0,1]の区間を、2値のシンボルのみからなる入力系列とその各シンボルの生起確率とに応じて不等分割していくことにより実現するものである。そして、この符号化処理に用いる符号化器は、Augendレジスタ(領域幅レジスタ)とCodeレジスタ(符号レジスタ)とを備え、2値シンボル”0”または”1”が入力されると、それぞれのシンボルの生起確率(P(0)、P(1))の値が新しいAugendレジスタの幅となり、優勢シンボル(確率の高いほうのシンボル)が入力された場合にのみCodeレジスタの位置が劣勢シンボルの確率幅の分上に移動する。このように、符号化処理は分割後の幅を表すAugendレジスタおよびその下辺の位置を表すCodeレジスタを操作することにより実現されるが、その操作方法に関しては計算の簡素化のために様々な手法が提案されている(例えば、特許文献1参照)。ここではJPEG2000等の画像圧縮技術の標準方式のなかで採用されているMQ−Coderと呼ばれる符号化方式を例にとり説明する。
【0004】
図4にMQ−Coderの符号化の処理フローチャートを、図5にMQ−Coderの復号化の処理フローチャートを示す。なお、本質的に本発明の説明に関係のない処理の説明は省略している。
【0005】
また、図4及び図5のフローチャート中、
CX:入力コンテクスト番号
D:入力シンボル(0または1)
A[15:0]:16bitのAugendレジスタ
C[31:0]:32bitのCodeレジスタ
Qe(CX)[15:0]:当該コンテクストにおける劣性シンボルの生起確率
として説明する。
【0006】
そして、MQ−Coderの符号化器の入力は、図4に示すように、”0”、”1”の2値のシンボルDと、そのシンボルDが発生した状況を分類したコンテクスト番号CXである。そして、算術符号化器のなかでは、コンテクスト番号毎に”0”または”1”の生起確率(Qe(CX))が管理されており、シンボルが入力されるたびに、その生起確率が再計算され(ステップ101〜105,108〜113)、更新される(ステップ106)。そして、この生起確率に基づいて、AugendレジスタおよびCodeレジスタの計算が行われる。一方、復号化時には、図5に示すように、コンテクスト番号CXが入力され、シンボルDが復号される(ステップ120〜135)。ここで、図4のステップ107及び図5のステップ130に示す正規化処理とは、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトする処理を表す。そして、符号化時には、この左シフトで桁あふれしたCodeレジスタのデータが符号データとして出力される。また、復号化時には、CodeレジスタのLSB側(左シフトにより、空いた部分)に符号データが挿入される。
【0007】
ここで、画像データを圧縮するような場合には、ある状況では、入力シンボル”0”または”1”がランダムに発生し、P(0)が1/2に近くなるようなデータを、そうでないデータとともに符号化したいケースが存在する。そして、MQ−Coderでは、P(0)が1/2になる状況ではコンテクストを特別な値とし、その特別なコンテクスト(非圧縮コンテクスト)が入力された場合は算術符号化器内で生起確率Qeを1/2に固定し、すなわち、Qeの更新をせず、確率が遷移しないように制御している。
【0008】
【特許文献1】
特開平6−152433号
【0009】
【発明が解決しようとする課題】
さて、2値算術符号化の課題は、そのスループットの低さにある。すなわち、原理的に1回のフローでひとつのシンボルしか圧縮することはできない。
【0010】
以下、画像データの周波数変換後の係数を圧縮する場合を例として説明する。例えば、係数データが0か否かの情報を2値シンボルとして圧縮し、その係数が0でなかったら、MSB以外のbit列を圧縮するという処理フローがあったとする。高周波成分の係数は、量子化により、ほとんどのデータが0となるので、このような処理フローが使われることが多い。例えば、係数の値が0x3Aという8bitの値だったとすると、この値は0ではないので、まず0でないことを示すシンボル”1”が符号化される。その後、0x3Aを2進表現した”00111010”のうち、MSB以外のbit(”11010”)が非圧縮モードで符号化される。この例では係数データが0か否かの情報はその係数の周りの状況(コンテクスト)に応じて圧縮がなされるが、MSB以外のbit列は”0”と”1”がランダムに発生するので非圧縮コンテクストで圧縮される。このケースを見てもわかるように、一般的に非圧縮コンテクストは複数の連続したbitとして発生するケースが多い。ところが、従来の算術符号化手法ではこのようなケースでも1bitづつ符号化するしか手段がないため、スループットを向上する上で障害になっている。
【0011】
本発明は、このような点に鑑みなされたもので、処理速度を向上できる符号化方法を提供することを目的とする。
【0012】
【課題を解決するための手段】
請求項1記載の符号化方法は、シンボル列、コンテクスト番号、及び非圧縮シンボルのビット長であるサイズが入力され、前記シンボル列が非圧縮コンテクストである場合は、領域幅レジスタを前記サイズ分右シフトし、前記シンボル列を前記サイズ分の桁を持った数値とみなして領域幅レジスタと乗算し、領域幅レジスタと符号レジスタを同時に前記サイズ分左シフトするとともに、この左シフトで桁あふれした符号レジスタのデータを符号データとして出力して次のシンボル列の処理に移行し、前記シンボル列が非圧縮コンテクストでない場合は、シンボル列を構成する各シンボルについて、コンテクスト番号毎のシンボルの生起確率を更新しつつ符号化処理を行い、符号データを出力するものである。
【0013】
そして、この構成では、従来どおりの算術符号化の処理として各シンボルの生起確率を更新しつつ符号化処理を行い符号データを出力する通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数bit一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の2値算術符号化のスループットを大幅に向上し、算術符号化が高速化される。
【0014】
請求項2記載の符号化方法は、請求項1記載の符号化方法において、シンボル列が非圧縮コンテクストである場合は、領域幅レジスタをサイズ分右シフトする前に、前記領域幅レジスタの所定の下位ビットを0とするものである。
【0015】
そして、この構成では、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくすることが可能になり、符号化を実行する回路規模の大型化を抑制し、製造コストが低減される。また、0にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、0にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性が向上する。
【0016】
【発明の実施の形態】
以下、本発明の符号化方法の一実施の形態を図面を参照して説明する。
【0017】
なお、本実施の形態においても、図3に示す概念により、領域幅レジスタとしてのAugendレジスタと符号レジスタとしてのCodeレジスタとを備えた符号化器を用い、図4に示すMQ−Coderの符号化の処理と、図5に示すMQ−Coderの復号化の処理とを一部に用いるものである。また、正規化処理についても、上記と同様であり、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトする処理をし、符号化時には、この左シフトで桁あふれしたCodeレジスタのデータが符号データとなり、復号化時の場合にはCodeレジスタのLSB側(左シフトにより、空いた部分)に符号データが挿入されるものである。
【0018】
図1に符号化処理のフローチャートを示し、図2に復号化処理のフローチャートを示す。
【0019】
また、図1及び図2のフローチャート中、
CX:入力コンテクスト番号
D[7:0]:入力シンボル列。なお、CXが非圧縮コンテクストでない場合はD[0]のみ意味を有する。
【0020】
A[15:0]:16bitのAugendレジスタ
C[31:0]:32bitのCodeレジスタ
Qe(CX)[15:0]:当該コンテクストにおける劣性シンボルの生起確率
となっている。
【0021】
まず、図1のフローチャートを参照して、非圧縮コンテクストが入力された場合の符号化処理を説明する。
【0022】
非圧縮コンテクストが入力される場合は圧縮したいシンボル系列とその長さ(サイズ、Size)が符号化装置の入力となる。一回に処理できるSizeの大きさはAugendレジスタのbit長より小さくなければならない。ここでは説明のために上限を8bitとする。
【0023】
まず、入力されたコンテクスト番号CXが非圧縮コンテクストか否かを判断する(ステップ1)。
【0024】
そして、入力されたコンテクスト番号CXが非圧縮コンテクストである場合には、Augendレジスタの下位12bitを0とし(ステップ2)、Augendレジスタをサイズ分右シフトし(ステップ3)、入力シンボル列をSize分の桁を持った数値とみなしてAugendレジスタと乗算する。この結果をCodeレジスタに加算して新しいCodeレジスタの値とする(ステップ4)。
【0025】
次いで、正規化処理を行い、すなわち、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトし、この左シフトで桁あふれしたCodeレジスタのデータを符号データとして出力し(ステップ5)、次のシンボルの処理に移行する。
【0026】
一方、ステップ1で、入力されたコンテクスト番号CXが非圧縮コンテクストでない場合には、D[0]のみ意味をもつため、D=D[0]として、図4に示す従来通りの算術符号化処理を行う。
【0027】
次に、図2のフローチャートを参照して、復号化処理を説明する。
【0028】
まず、入力されたコンテクスト番号CXが非圧縮コンテクストか否かを判断する(ステップ11)。
【0029】
そして、入力されたコンテクスト番号CXが非圧縮コンテクストである場合には、Augendレジスタの下位12bitを0とし(ステップ12)、Augendレジスタをサイズ分右シフトし(ステップ13)、CodeレジスタのHigh側をAugendレジスタで除算する。その商のうちSize分の値が復号化されたシンボル系列となり、その剰余が新しいCodeレジスタのHigh側となる(ステップ14)。
【0030】
次いで、正規化処理を行い、すなわち、AugendレジスタのMSB(bit15)が1になるまで、AugendレジスタとCodeレジスタを同時に左シフトし、CodeレジスタのLSB側(左シフトにより空いた部分)に符号データを詰め込み、複合化したシンボルDを出力し(ステップ15)、次のシンボルの処理に移行する。
【0031】
そして、上記の符号化処理及び復号化処理において、非圧縮フロー(ステップ2〜5,12〜15)と通常の圧縮フロー(ステップ6,16)では両方とも共通のAugendレジスタとCodeレジスタが使用される。また、この非圧縮フローが導入された場合でも非圧縮コンテクストでない場合の圧縮フローは従来とまったく同じでよい。
【0032】
なお、上記の図1及び図2に示す実施の形態において、ステップ2及びステップ12に示すAugendレジスタの下位bitを0とする処理は省略することも可能である。すなわち、この処理は、ステップ4及びステップ14に示すAugendレジスタのシフト処理の乗算器/除算器のbit長を少なくするために導入されるもので、多bitの乗算器/除算器を備えたCPU等にて上記フローを実行する場合は不要となる。例えば、ステップ2,12に示す処理を導入しない場合は、乗算器(除算器)として16×8bit(24/16bit)が必要となるが、この処理を導入することにより、4×8bit(12/4bit)の乗算器(除算器)で上記フローを実現することができる。また、ステップ2,12に示す処理において、0にするbit数を増やすことにより、さらに乗算器(除算器)のbit数を減らすことも可能であるが、圧縮率が数パーセントから1割程度低下するという副作用があるため、圧縮率と回路規模とのトレードオフで決定する必要がある。
【0033】
そして、本実施の形態の符号化方法及びこの符号化方法を実行する符号化装置によれば、通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数bit一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の2値算術符号化のスループットを大幅に向上し、算術符号化を高速化することができる。
【0034】
また、回路規模や演算速度の観点から、乗算器/除算器のbit長を選択することが可能なアルゴリズムのため、応用の場に応じた回路を選択することができ、汎用性を向上できる。すなわち、シンボル列が非圧縮コンテクストである場合は、Augendレジスタをサイズ分右シフトする前に、このAugendレジスタの所定の下位ビットを0とすることにより、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくするでき、符号化を実行する回路規模の大型化を抑制し、製造コストを低減できる。また、0にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、0にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性を向上できる。
【0035】
さらに、シンボル列が非圧縮コンテクストである場合の処理と、シンボル列が非圧縮コンテクストでない場合の処理とで、AugendレジスタとCodeレジスタを共用するため、符号化を実行する回路規模の大型化を抑制し、製造コストを抑制できる。
【0036】
【発明の効果】
請求項1記載の符号化方法によれば、従来どおりの算術符号化の処理として各シンボルの生起確率を更新しつつ符号化処理を行い符号データを出力する通常の圧縮フローに加え、非圧縮コンテクストの符号化を複数bit一括して処理可能な非圧縮フローを導入したため、圧縮率を犠牲にすることなく、簡易な回路により、非圧縮コンテクスト入力時の2値算術符号化のスループットを大幅に向上し、算術符号化を高速化できる。
【0037】
請求項2記載の符号化方法によれば、請求項1記載の効果に加え、領域幅レジスタのシフト処理に必要な乗算器あるいは除算器のビット長を少なくでき、符号化を実行する回路規模の大型化を抑制し、製造コストを低減できる。また、0にするビット数を増やすことにより、さらにビット長を小さくして回路規模を縮小することが可能になるとともに、0にするビット数を減らすことにより、圧縮率の向上が可能になる。このように、乗算器あるいは除算器のビット長を選択可能であり、圧縮率と回路規模との関係を選択可能であるため、汎用性を向上できる。
【図面の簡単な説明】
【図1】本発明の符号化方法の一実施の形態を示す符号化処理のフローチャートである。
【図2】同上符号化方法の複合化処理のフローチャートである。
【図3】符号化方法の概念図である。
【図4】従来の符号化方法の符号化処理のフローチャートである。
【図5】同上符号化方法の複合化処理のフローチャートである。
【符号の説明】
A 領域幅レジスタ
C 符号レジスタ
D シンボル
CX コンテクスト番号
Size 非圧縮シンボルのビット長であるサイズ
Claims (2)
- シンボル列、コンテクスト番号、及び非圧縮シンボルのビット長であるサイズが入力され、
前記シンボル列が非圧縮コンテクストである場合は、領域幅レジスタを前記サイズ分右シフトし、前記シンボル列を前記サイズ分の桁を持った数値とみなして領域幅レジスタと乗算し、領域幅レジスタと符号レジスタを同時に前記サイズ分左シフトするとともに、この左シフトで桁あふれした符号レジスタのデータを符号データとして出力して次のシンボル列の処理に移行し、
前記シンボル列が非圧縮コンテクストでない場合は、シンボル列を構成する各シンボルについて、コンテクスト番号毎のシンボルの生起確率を更新しつつ符号化処理を行い、符号データを出力する
ことを特徴とする符号化方法。 - シンボル列が非圧縮コンテクストである場合は、領域幅レジスタをサイズ分右シフトする前に、前記領域幅レジスタの所定の下位ビットを0とする
ことを特徴とする請求項1記載の符号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002286544A JP2004128619A (ja) | 2002-09-30 | 2002-09-30 | 符号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002286544A JP2004128619A (ja) | 2002-09-30 | 2002-09-30 | 符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004128619A true JP2004128619A (ja) | 2004-04-22 |
Family
ID=32279571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002286544A Pending JP2004128619A (ja) | 2002-09-30 | 2002-09-30 | 符号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004128619A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009025281A1 (ja) * | 2007-08-20 | 2009-02-26 | Ntt Electronics Corporation | 2値算術符号化装置 |
JP2012178892A (ja) * | 2012-06-22 | 2012-09-13 | Sony Corp | 符号化装置、符号化方法及び記録媒体 |
US9558109B2 (en) | 2014-04-04 | 2017-01-31 | Samsung Israel Research Corporation | Method and apparatus for flash memory arithmetic encoding and decoding |
-
2002
- 2002-09-30 JP JP2002286544A patent/JP2004128619A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009025281A1 (ja) * | 2007-08-20 | 2009-02-26 | Ntt Electronics Corporation | 2値算術符号化装置 |
US8072359B2 (en) | 2007-08-20 | 2011-12-06 | Ntt Electronics Corporation | Binary arithmetic coding device |
JP2012178892A (ja) * | 2012-06-22 | 2012-09-13 | Sony Corp | 符号化装置、符号化方法及び記録媒体 |
US9558109B2 (en) | 2014-04-04 | 2017-01-31 | Samsung Israel Research Corporation | Method and apparatus for flash memory arithmetic encoding and decoding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2800880B2 (ja) | 高速復号算術符号化装置 | |
US5045852A (en) | Dynamic model selection during data compression | |
US7365658B2 (en) | Method and apparatus for lossless run-length data encoding | |
JP3017379B2 (ja) | 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置及び遷移マシン生成方法 | |
US7548176B2 (en) | Data coding buffer for electrical computers and digital data processing systems | |
US7602316B2 (en) | Data coding/decoding for electrical computers and digital data processing systems | |
US7907068B2 (en) | FIFO radix coder for electrical computers and digital data processing systems | |
US20090019128A1 (en) | Lifo radix coder for electrical computers and digital data processing systems | |
JP2007228582A (ja) | 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置 | |
JPH0366227A (ja) | 圧縮符号化方法及びシステム並びに復号方法 | |
US11115049B1 (en) | Hardware friendly data decompression | |
US20100321218A1 (en) | Lossless content encoding | |
Yang et al. | Universal lossless data compression with side information by using a conditional MPM grammar transform | |
EP2962396A1 (en) | Entropy modifier and method | |
Al-Bahadili | A novel lossless data compression scheme based on the error correcting Hamming codes | |
JP4758494B2 (ja) | ビット長を符号に変換する回路及び方法 | |
JP2004128619A (ja) | 符号化方法 | |
US7683809B2 (en) | Advanced lossless bit coding | |
CN114866091A (zh) | 基于划分组参考数的差值编码压缩及解压缩方法 | |
KR100852220B1 (ko) | 가변길이 다중비트 코딩을 이용하여 최소 부호수를 구하는방법 | |
US8754791B1 (en) | Entropy modifier and method | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
WO2020186535A1 (zh) | 点云属性编码方法和装置以及点云属性解码方法和装置 | |
US20100295713A1 (en) | Coding apparatus, decoding apparatus, code transforming apparatus, and program | |
US11115050B1 (en) | Hardware friendly data decompression |