JPH08195680A - 算術符号復号化装置 - Google Patents

算術符号復号化装置

Info

Publication number
JPH08195680A
JPH08195680A JP377295A JP377295A JPH08195680A JP H08195680 A JPH08195680 A JP H08195680A JP 377295 A JP377295 A JP 377295A JP 377295 A JP377295 A JP 377295A JP H08195680 A JPH08195680 A JP H08195680A
Authority
JP
Japan
Prior art keywords
code
register
value
bit
symbol
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
Application number
JP377295A
Other languages
English (en)
Inventor
Tomoo Tsuda
智夫 津田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JFE Steel Corp
Original Assignee
Kawasaki Steel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kawasaki Steel Corp filed Critical Kawasaki Steel Corp
Priority to JP377295A priority Critical patent/JPH08195680A/ja
Publication of JPH08195680A publication Critical patent/JPH08195680A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】 算術符号の復号化を高速で行えるようにす
る。 【構成】 処理手順を変更し、レジスタの更新回数を減
らす。コードレジスタのスタッフィングビットの幅を増
やし、符号入力に伴うループを完全に無くす。データを
先読みし、先行する未確定の画素に依存した2つの文脈
を用意して処理を行い、先行する画素が確定した段階で
1つを選択するようにし、処理の二重化を行って、先行
する画素が確定するまでの待ち時間を減らす。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、算術符号復号化装置に
係り、特に、算術符号化された2値画像を復号化する際
に用いるのに好適な、高速で復号化を行うことが可能な
算術符号復号化装置に関するものである。
【0002】
【従来の技術】伝送路を用いた情報伝達や、データベー
スへの情報の保存に際しては、伝送あるいは保存される
情報のデータ量が少ない方が望ましい。例えば、画像情
報は一般に膨大な情報量となるものであるため、その情
報の伝達や保存に際して、様々な手法によるデータ圧縮
がなされている。
【0003】データ圧縮には、非可逆符号化によるもの
と、可逆符号化によるものがあり、可逆符号化のうち、
エントロピ符号化と呼ばれるものは、有限個のシンボル
を持つ情報源出力に対し、出現確率の偏り利用してデー
タ圧縮している。即ち、出現確率の高いシンボルには、
より短い符号を割り当てることによって、生成される符
号の平均符号長を短くするようにし、純数な統計的性質
によって情報圧縮を図っている。
【0004】このエントロピ符号化のうち、算術符号化
は、エライアス符号化として知られている無記憶情報源
に対する理想的符号化方式を、実用可能な形に再編成し
たものと言える。この算術符号化では、符号化すべきシ
ンボル系列を、劣勢シンボル及び優勢シンボルの出現確
率に応じて分割した確率数直線上にマッピングし、その
位置に従って符号化することによって、算術符号を作成
している(「インターフェース′91.12月号」15
4頁〜157頁参照)。
【0005】例えば、図1の算術符号の概念図では、
“1”のシンボルが、出現確率がPの劣勢シンボルとさ
れ、一方、“0”のシンボルは、出現確率が(1−P)
の優勢シンボルとされている。例えば、“0,1,0,
0,1”のシンボル系列を符号化する際には、まず、第
1番目のシンボル“0”に対応して、(1−P)の優勢
シンボルの幅(オージェンド値と称する)A0 が得られ
る。第2番目のシンボル“1”に対応して、(1−P)
Pのオージェンド値A01が得られる。第3番目のシンボ
ル“0”に対応して、(1−P)2 Pのオージェンド値
A010 が得られる。第4番目のシンボル“0”に対応し
て、(1−P)3 Pのオージェンド値A0100が得られ
る。第5番目のシンボル“1”に対応して、(1−P)
3 2 のオージェンド値A01001 が得られる。第6番目
のシンボル“1”に対応して、“(1−P)3 3 ”の
オージェンド値A010011が得られる。
【0006】これらのオージェンド値は、図1に示され
るような確率数直線上での符号の範囲に対応しており、
図1の一点鎖線Cで示されるものは、その確率数直線上
での符号の位置(コードと称する)である。このコード
に応じて、一般に2進小数値で表現されるものが、算術
符号の符号化された結果となる。
【0007】このような算術符号化を行う符号化処理、
あるいは、算術符号化されたものを復号する復号化処理
に際しては、一般に、前記のような確率数直線上での符
号の範囲を示すオージェンド値を記憶するオージェンド
レジスタと、同じく確率数直線上での符号の位置を示す
コード値を記憶するコードレジスタを用いた処理を繰り
返す、ループ処理となっている。
【0008】更に、算術符号では、符号を数値と見做
し、加算によって逐次的に符号を作成していくため、桁
上がりが生じて、既に決定した上位ビットに影響を及ぼ
す場合がある。この桁上がりによるビット反転波及の範
囲を所定範囲内に抑えるために、ビット・スタッフィン
グ法が用いられている。
【0009】これは、図2に示すように、例えばVビッ
トのコードレジスタCの上位にWビットの監視レジスタ
Pを用意しておき、この監視レジスタPの内容が全て1
になったら、監視レジスタPとコードレジスタCの間に
1ビットの“0”を挿入するというものである。このよ
うにして、例えば監視レジスタPが全て“1”のとき
に、コードレジスタCで桁上がりが起こっても、挿入ビ
ットが反転して“1”になるだけであり、それより上位
のビットは影響を受けることなく、出力される。
【0010】算術符号の復号化は、具体的には、次のよ
うにして行われる。 (1)直前の画素を含む復号済みの何画素かを、任意の
形に並べて、ビットレスと見做して整数化し、現在の文
脈CXを得る。 (2)この文脈CXから状態STを得る。 (3)この状態STから確率(劣勢分割幅LSZ)等を
求める。 (4)確率に従って、オージェンドを分割し、コード値
と比較して復号する。 (5)必要に応じて、文脈CXに対応する状態STを更
新する。 (6)以上を繰り返す。
【0011】以下、図3に示されるようなレジスタ構造
を有する例について、上記手順を実施するための、IS
O/IEC DIS 11544(CCITT Re
c,T.82(1993E)P41〜P46参照)によ
る復号化処理の具体的なアルゴリズムを説明する。ここ
で、コードレジスタの例えば上位16ビットを保持する
Chighレジスタと、コードレジスタの例えば下位1
6ビットを保持するClowレジスタは、1つの32ビ
ットのコードレジスタと考えることができ、コード値C
の正規化(リノーマライズ)によって、Clowレジス
タの第15ビット(図の左端)からの新データのビット
が、Chighレジスタの第0ビット(右端)にシフト
される。しかしながら、復号化のための比較は、Chi
ghレジスタのみを用いて行われる。Clowレジスタ
は、“b”が記入された上位8ビットのみが使用され
る、繰り上がり対処用のレジスタであり、新しいデータ
は、Clowレジスタの“b”ビットに同時に1バイト
ずつ格納される。“a”が記入されたビットは、現在の
オージェンド値を示すビットであり、“x”が記入され
たビットは、コード値を表わすビットである。オージェ
ンドレジスタAの17番目のビットは、概念的に存在し
ているが、16ビットの処理が必要な場合には、取り除
くことができる。
【0012】復号化処理に際しては、図4に示す流れ図
のように、まず、初期化ルーチンを呼び出し(ステップ
100)、初期化を行う。
【0013】この初期化ルーチンのアルゴリズムは、例
えば図5に示す如くである。この初期化ルーチンにおい
ては、まず、画像の最初のストライプ又は強制リセット
であるか否かが判定され(ステップ200)、画像の最
初のストライプ又は強制リセットである場合には、全て
の可能な文脈CXの値(例えば12ビット)に対応する
確率評価状態STの値(例えば7ビット)及び現在の優
勢シンボルMPSの値(例えば1ビット)を“0”にセ
ットする(ステップ202)。一方、画像の最初のスト
ライプ又は強制リセットでない場合には、全ての可能な
CXの値に対して、STとMPXの値を、先行ストライ
プの終わりの値にセットする(ステップ204)。
【0014】ステップ202又は204終了後、まず、
コードレジスタCの値を“0”として、後出の符号バイ
ト入力(BYTE IN)ルーチン(図6参照)を呼び
出し、符号入力処理を行う。次いで、コードレジスタC
の値を、最下位ビットLSB側から最上位ビットMSB
側へ左に8ビットシフトし、再び符号バイト入力ルーチ
ンを呼び出して、次のバイトの符号入力処理を行う。更
に、コードレジスタCの値を左に8ビットシフトし、再
び符号バイト入力ルーチンを呼び出して、更に次のバイ
トの符号入力処理を行う。これにより、3バイトがコー
ドレジスタCに読み込まれる。更にオージェンドレジス
タAに“0x10000”(16進数)をセットして、
この初期化ルーチンを抜ける。
【0015】前記初期化ルーチンのステップ206等で
実行される符号バイト入力ルーチンのアルゴリズムは、
例えば図6に示す如くである。この符号バイト入力ルー
チンにおいては、まず、符号化ビットストリームデータ
SCD(例えば16ビット)から、全てのデータがバイ
ト単位で読み出されるまで(ステップ300)、SCD
から1バイトずつ読み出し、最新のバイトデータを一時
的に保持するためのバッファレジスタBUFFERをこ
れと同じ値にセットする(ステップ302)。SCDか
ら全データを読み出した後は、バッファレジスタBUF
FERを“0”にセットする(ステップ304)。ステ
ップ302又は304終了後、バッファレジスタBUF
FERを8ビット左へシフトして、コードレジスタCに
加えることにより、読み出されたバイトが、コードレジ
スタの下位ビットClowの上位8ビットに挿入され、
カウンタCTが8にリセットされる(ステップ30
6)。
【0016】ここで、CTは、コードレジスタCの下位
ビットClow中の圧縮ビット数の経過(1ビット毎の
シフト回数)を保持しているカウンタであり、CTが
“0”になると、新しいバイトがClowに挿入され
る。
【0017】初期化ルーチンを抜けた後、図4のステッ
プ102に戻り、符号化ビットストリームデータSCD
を読み出す。次いで、文脈(contex)CXを読み
出し(ステップ104)、該文脈CXに応じた状態ST
の値ST[CX]に基づいて、予め準備された、例えば
図7に示すような、各状態STの値に対応する、劣勢分
割幅LSZの値、次の確率評価状態をそれぞれ与える劣
勢アレイNLPS、優勢アレイNMPSの値、及び優勢
と劣勢を入れ換えるための入換フラグSWTCHの値が
記載された確率評価テーブル(ISO/IEC 115
44:1993(E)のTable24;CCITT
Rec,T.82(1993E)のP33参照)から、
状態ST[CX]を指標として読み出された劣勢分割幅
LSZの値を、そのときのオージェンドレジスタAの値
から引くことによって、オージェンドを分割する(ステ
ップ106)。次いで、分割されたオージェンド値A
と、コード値が格納されたコードレジスタの上位ビット
Chighを比較し(ステップ108)、図8に実線で
示す如く、オージェンド値Aの方がコード値Cを含んで
いる場合には、オージェンド値Aが“0x8000”未
満であるか否かを判定する(ステップ110)。オージ
ェンドレジスタAのMSBが“1”であり、ステップ1
10の判定結果が否である場合には、その時の優勢シン
ボルMPS(1ビット値)を画素Pixに入れる(ステ
ップ112)。一方、オージェンドレジスタAのMSB
が“0”であり、ステップ110の判定結果が正である
場合には、後出MPS入換ルーチン(図9参照)及び正
規化ルーチン(図11参照)を呼び出す(ステップ11
4)。
【0018】一方、前出ステップ108の判定結果が否
であり、図8に破線で示す如く、オージェンド値Aの範
囲にコード値Cが存在しない場合には、後出LPS(劣
勢シンボル)入換ルーチン(図10参照)及び正規化ル
ーチンを呼び出す(ステップ116)。
【0019】即ち、次の復号化の時に行われるオージェ
ンドレジスタとコードレジスタの桁位置を揃える必要が
あるため、コードレジスタCも、オージェンドレジスタ
Aをシフトしたビット数と同じビット数だけ左側にシフ
トして、正規化(リノーマライズ)を行う。
【0020】前記ステップ104乃至116の処理を、
全画素について終了するまで行う(ステップ118)。
【0021】前記復号化処理のステップ114で呼び出
されるMPS入換ルーチンの具体的なアルゴリズムは、
図9に示す如くである。即ち、オージェンド値Aと劣勢
分割幅LSZを比較し、判定結果が否であれば、優勢シ
ンボルMPSの値を画素Pixに入れ、MPSに対応す
る、次の確率評価状態を与える優勢アレイNMPSの値
(例えば7ビット)を状態STに入れて、状態STを更
新する(ステップ402)。一方、ステップ400の判
定結果が正である場合には、優勢シンボルMPSを反転
して、劣勢シンボルLPS(=1−MPS)を画素Pi
xに入れ(ステップ404)、入換フラグSWTCHが
1であるか否か判定する(ステップ406)。ステップ
406の判定結果が正である場合には、優勢シンボルM
PSを反転し(ステップ408)、LPSに対応する、
次の確率評価状態を与える劣勢アレイNLPSの値(例
えば7ビット)を状態STに入れて、状態STを更新す
る(ステップ410)。
【0022】又、前記復号化処理のステップ116で呼
び出されるLPS入換ルーチンの具体的なアルゴリズム
は図8に示す如くである。即ち、オージェンド値Aと劣
勢分割幅LSZが比較され(ステップ500)、判定結
果が正である場合には、そのときのコードレジスタ上位
ビット値Chighからオージェンド値Aを引いたもの
を新たなコードレジスタの上位ビット値Chighとし
てコード値を変えると共に、劣勢分割幅LSZをオージ
ェンド値Aとし(ステップ502)、そのときの優勢シ
ンボルMPSを画素Pixに入れると共に、優勢アレイ
NMPSの値を状態STに入れて状態STを更新する
(ステップ504)。
【0023】一方、ステップ500の判定結果が否であ
る場合には、ステップ502と同様の処理(ステップ5
06)を行った後、優勢シンボルMPSを反転した値
(1−MPS)を画素Pixに入れ(ステップ50
8)、入換フラグSWTCHが“1”であるかどうか判
定する(ステップ510)。ステップ510の判定結果
が正である場合には、優勢シンボルMPSの反転を行い
(ステップ512)、劣勢アレイNLPSの値を状態S
Tに入れて状態STを更新する(ステップ514)。
【0024】前記復号化処理のステップ114及び11
6で呼び出される正規化ルーチンの具体的アルゴリズム
は図11に示す如くである。即ち、コードレジスタCの
下位ビットClow中の圧縮ビット数の経過(1ビット
毎のシフト回数)を保持するためのカウンタCTが
“0”であるか否か判定し(ステップ600)、カウン
タCTの値が“0”である場合には、前記符号バイト入
力ルーチン(図6)を呼び出して、新しいバイトを下位
ビットClowに挿入する(ステップ602)。次い
で、レジスタA及びCの値を1ビットずつ左にシフトす
ると共に、カウンタCTの値を1だけデクリメントし
(ステップ604)、オージェンド値Aが“0x080
00”となるまで、即ち、オージェンドレジスタAのM
SBが“1”となるまで、オージェンドレジスタAの値
とコードレジスタCの値を1ビットずつシフトする(ス
テップ606)。ステップ606の判定結果が否であっ
ても、カウンタCTの値が0でない場合には(ステップ
608)、再び符号バイト入力ルーチンを呼び出す(ス
テップ610)。
【0025】
【発明が解決しようとする課題】しかしながら従来は、
中間値BUFFER等もレジスタに入れていたため、レ
ジスタの更新回数が多く、処理速度が低下してしまう。
又、図11に示した如く、正規化ルーチンに、ステップ
606から600に戻る、符号入力に併うループが存在
し、オージェンド値A及びコード値Cを1ビットずつシ
フトしていたため、やはり処理速度が低下する。更に、
文脈CXが、直前に復号化した画素Pixの値に依存す
るため、直前の画素の復号化が終了しないと、次の画素
の復号化を始めることができない等の問題点を有してい
た。
【0026】本発明は、前記従来の問題点を解消するべ
くなされたもので、処理速度を速めて、高速で復号する
ことが可能な算術符号復号化装置を提供することを目的
とする。
【0027】
【問題点を解決するための手段】本発明は、符号化すべ
きシンボル系列を、劣勢シンボル及び優勢シンボルの出
現確率に応じて分割した確率数直線上にマッピングし、
その位置に従って符号化することによって作成された算
術符号を、前記確率数直線上での符号の範囲を示すオー
ジェンド値を記憶するオージェンドレジスタ、及び、同
じく確率数直線上での符号の位置を示すコード値を記憶
するコードレジスタを用いて復号化するための算術符号
復号化装置において、先行するデータから、現在の文脈
を生成する手段と、該文脈を指標として、状態及び現在
の優勢シンボルを決定する手段と、前記状態を指標とし
て、リード・オンリー・メモリに記憶された確率評価テ
ーブルの値を読み出す手段と、該確率評価テーブルから
読み出された確率に従ってオージェンドを分割し、正規
化する場合のシフト量、及び、コード値の更新される可
能性のある値を計算する手段と、分割の結果、コード値
が優劣どちらの領域に含まれ、どちらの領域が大きいか
を判別し、処理を振り分けて、データを生成する手段
と、振り分けられた結果に応じて、予め計算しておいた
前記シフト量を用いてシフトを行い、オージェンドレジ
スタ及びコードレジスタを更新する手段と、必要に応じ
て、ランダム・アクセス・メモリに記憶された状態や現
在の優勢シンボルを更新する手段とを備えることによ
り、前記目的を達成したものである。
【0028】更に、実際にシフトした量を、コードレジ
スタの隙間の大きさに加算する手段と、該コードレジス
タの隙間に次の符号を入れてビットスタッフィングを行
う手段とを備え、前記コードレジスタが、コード値に対
応するビット長の上位ビットと、シフト量に対応する有
効ビット長に加えて、前記隙間の最大量を収容可能なビ
ット長の、拡張された下位ビットを含み、該下位ビット
がスタッフィングビットとして使われるようにして、同
じく前記目的を達成したものである。
【0029】又、同様の算術符号復号化装置において、
先行するデータの内、未確定のデータに依存した、複数
の文脈を生成する手段と、該複数の文脈のそれぞれを指
標として、それぞれに対応する状態及び現在の優勢シン
ボルの候補を生成する手段と、先行するデータが確定し
た段階で、前記候補中から、実際に用いる状態及び現在
の優勢シンボルを決定する手段とを備えることにより、
同じく前記目的を達成したものである。
【0030】
【作用】本発明は、処理手順を変更し、レジスタの更新
回数を減らすことにより、処理速度を高速化したもので
ある。
【0031】これに加えて、コードレジスタの幅を拡大
することにより、符号入力に伴なうループを完全になく
して、処理速度を高速化したものである。
【0032】又、先行する未確定のデータに依存した2
つの文脈を用意して、先読みによる処理の二重化を行
い、先行するデータが確定した段階で1つを選択するよ
うにして、処理速度を高速化したものである。
【0033】
【実施例】以下図面を参照して、本発明の実施例を詳細
に説明する。
【0034】本実施例における復号化処理は、図12乃
至図14に示す手順に従って実行される。この図12乃
至図14は、図4に示した従来例のステップ102以降
に対応するもので、まず、図12のステップ700乃至
704で、文脈CXを指標としてランダムアクセスメモ
リ(RAM)を参照することにより、状態ST及び優勢
シンボルMPSを生成する。具体的には、文脈CXは直
前の画素の復号値に依存するので、直前の画素が“0”
の場合と“1”の場合を考えて、RAMを2つ使用し、
それぞれの場合の文脈CXを、CX0、CX1(例えば
12ビット)とする(ステップ700)。次いで、文脈
CX0、CX1を用いて、それぞれに対応する状態ST
0、ST1(例えば7ビット)を生成し、STの候補と
する。又、直前のデコードで用いた劣勢アレイNLPS
及び優勢アレイNMPS(例えば7ビット)も状態ST
の候補とする(ステップ702)。更に、状態STと同
様に、文脈CX0、CX1から、それぞれに対応する優
勢シンボルMPS0、MPS1(例えば1ビット)を生
成し、優勢シンボルMPSの候補とする。又、直前のデ
コードに用いた優勢シンボルMPSと、その反転も、M
PSの候補とする(ステップ704)。上記のステップ
700乃至704が、RAMから読み出す手順である。
【0035】次いで、ステップ706に進み、後述する
「判別」により、直前の画素値等から、実際に用いる状
態ST及び優勢シンボルMPSを決定する(選択)。
【0036】次いでステップ708に進み、決定された
状態STを指標として、リードオンリーメモリ(RO
M)に予め記憶されている、図7に示したような確率評
価テーブルを参照することにより、劣勢分割幅LSZ、
劣勢アレイNLPS、優勢アレイNMPS、入換フラグ
SWTCHを決定する(ROMの読み出し)。
【0037】次いで図13のステップ710に進み、劣
勢分割幅LSZをレジスタp(例えば15ビット)に入
れ、そのときのオージェンド値Aから劣勢分割幅LSZ
を引いた値をレジスタq(例えば16ビット)に入れる
ことにより、オージェンドを分割する。次いでステップ
712に進み、レジスタpを正規化するべく、pを“0
x8000”以上とするためのシフト量ps(例えば4
ビット)と、レジスタqを正規化するべく、qを“0x
8000”以上とするためのシフト量qs(例えば4ビ
ット)を求めると共に、コード値Cからqを引くことに
よって、スタッフィングビットが30ビットに拡張され
たコードレジスタC(例えば46ビット)の更新される
可能性のある値C′(例えば46ビット)を計算する
(分割など)。
【0038】次いでステップ714乃至718で、コー
ド値Chighが、劣勢領域pと優勢領域qのどちらの
領域に含まれるのか、更に、劣勢領域pと優勢領域qの
どちらが大きいのかに応じて、4通りの処理に振り分け
られる。
【0039】又、この時点で、例えば図15及び図16
に示すような関係を用いて、次の画素を復号化するとき
に用いる選択信号を生成する。図13及び図14におい
て、Xは、“0”、“1”のどちらでもかまわないドン
ト・ケア(Don´t care )状態である。
【0040】ステップ714及び716の判定結果がい
ずれも正であるとき、即ち、図17に実線で示す如く、
Chigh(=C)が優勢領域qに含まれ、且つ、優勢
領域qが劣勢領域pより小さいときには、ステップ72
0に進み、そのときの劣勢シンボルLPSを画素Pix
とする。次いでステップ722で、レジスタqを予め計
算しておいたシフト量qsだけまとめて左にシフトし
て、オージェンド値Aとし、コード値C(=Chig
h)をシフト量qsだけまとめて左にシフトして、新し
いコード値Cとする(シフト及びレジスタの更新)。
【0041】次いでステップ724に進み、入換フラグ
SWTCHがセットされていれば、ステップ726で優
勢シンボルMPSを反転し、ステップ728で劣勢アレ
イNLPSを状態STとする(RAMの更新)。
【0042】一方、ステップ714の判定結果が正で、
ステップ716の判定結果が否である場合、即ち、図1
8に実線で示す如く、コード値Cが優勢領域qに含ま
れ、優勢領域qが劣勢領域pより小さくないときには、
ステップ730に進み、そのときの優勢シンボルMPS
の値を画素Pixに入れる。次いでステップ732に進
み、ステップ722と同様にシフト量qsだけまとめた
シフトを行って、オージェンドレジスタ及びコードレジ
スタを更新する(シフト及びレジスタの更新)。
【0043】次いでステップ734に進み、qを正規化
するためのシフト量qsが“0”でない場合には、ステ
ップ736で優勢アレイNMPSを状態STに入れる
(RAMの更新)。
【0044】又、前述ステップ714の判定結果が否
で、ステップ718の判定結果が正である場合、即ち、
図17に破線で示す如く、コード値Cが優勢領域qに含
まれず、且つ、優勢領域qが劣勢領域pより小さいとき
には、ステップ740に進み、ステップ730と同様
に、そのときの優勢シンボルMPSの値を画素Pixに
入れ、ステップ742で、レジスタpを予め計算してお
いたシフト量psだけまとめて左にシフトしたものを新
しいオージェンド値Aとし、ステップ712で求めてお
いたコード値の候補C′を、シフト量qsだけまとめて
左にシフトしたものを新しいコード値Cとして、レジス
タを更新する(シフト及びレジスタの更新)。
【0045】次いでステップ744に進み、そのときの
優勢アレイNMPSの値を状態STに入れる(RAMの
更新)。
【0046】又、前記ステップ714及び718の判定
結果がいずれも否である場合、即ち、図18に破線で示
す如く、コード値Cが優勢領域qに含まれず、且つ、優
勢領域qが劣勢領域pより小さくないときには、ステッ
プ750に進み、そのときの劣勢シンボルLPSを画素
Pixに入れ、ステップ752で、レジスタpをシフト
量psだけまとめて左にシフトしたものを新しいオージ
ェンド値Aとし、コード値の候補C′をシフト量qsだ
けまとめて左にシフトしたものを新しいコード値Cとし
て、レジスタを更新する(シフト及びレジスタの更
新)。
【0047】次いでステップ754に進み、入換フラグ
SWTCHが“1”であれば、ステップ756で、優勢
シンボルMPSを反転し、ステップ758で、そのとき
の劣勢アレイNLPSの値を状態STに入れる(RAM
の更新)。
【0048】次いで図14のステップ760乃至768
で、符号のバイト単位での入力及び正規化を行う(符号
バイト入力:BYTE IN)。具体的には、ステップ
760で、シフト量ps及びqsのうち、実際にシフト
に用いた量をS(例えば4ビット)とし、ステップ76
2で、シフトによってコードレジスタに生じた隙間の大
きさを保持しているカウンタCS(例えば5ビット)を
Sだけ加算する。このカウンタCSは、従来のカウンタ
CTに相当する。
【0049】次いでステップ764に進み、この隙間の
大きさCSが16以上になったときは、ステップ766
で、コード値Cに、次の符号化データSCD(例えば1
6ビット)を(CS−16)だけ左にまとめてシフトし
たものを加えると共に、入力分に対応させてカウンタC
Sを“16”だけ減算したものを新しいCSとして、ス
テップ768で、新しい符号化データSCDを読み込ん
で、次のデータの処理に移行する。
【0050】本実施例におけるコードレジスタCは、図
19に示す如く、従来と同様の、コード値を格納する上
位16ビットChighと、図3に示したような従来例
においては16ビットにすぎなかったスタッフィングビ
ットを30ビットに拡張したClowの合計46ビット
とされている。このようにスタッフィングビットを15
ビット×2=30ビットとすることにより、上記処理手
順と合せて、処理の簡略化を図ることができる。
【0051】即ち、正規化に従って、コードレジスタ
が、例えば実際のシフト量S=5、S=6、S=7の順
で、シフトしたとすると、図19中にVで示した有効な
ビットの隙間に“0”が入っていく。今、初期値とし
て、隙間カウンタCS=0、即ち隙間がないとすると、
まず5ビットシフトするので、隙間が5ビットになり、
次に6ビットシフトするので、隙間が5+6=11ビッ
トになり、更に、7ビットシフトするので、隙間が11
+7=18ビットとなる。この3回目のシフトによっ
て、隙間が16ビット以上になるので、ここに次の符号
データSCDを入れ、ビットスタッフィングを行う。
【0052】ここで、Clowを30ビットとしている
のは、次の理由による。即ち、Clowのビット長を
W、隙間をCSとすると、Clow中の有効ビット長L
は、 L=W−CS で表わされる。
【0053】一方、シフト量Sは最大15なので、有効
ビット長Lは15以上でなければならない。又、隙間C
Sは最大15なので、Lが15以上という条件を満足す
るためには、図20に示す如く、W(=L+CS)が3
0以上でなければならない。図20は、CS=15、即
ち隙間が最大で、有効ビットが最小となった状態を示し
たものである。
【0054】本実施例における処理のタイムチャートを
図21に示す。画素nを復号する場合、まずRAMの読
み出し(図12のステップ700〜704に相当)を行
う。この時点では、直前の画素n−1の復号は終了して
いないので、文脈CXは一意に決まらない。そこで、R
AMを2つ用いて、画素n−1が0の場合と、1の場合
のどちらにも対応できるようにする。
【0055】画素nのRAMの読み出しが終了した時点
では、直前の画素n−1の判別(図13のステップ71
4〜718に相当)が終わっており、画素n−1が0か
1に決まっている。そこで、画素n−1の値に従って、
RAMの読み出し結果から、適当な状態を選択(図12
のステップ706に相当)する。この選択結果に従っ
て、ROMの読み出し(図12のステップ708に相
当)を行う。このROMの読み出しには2クロックかか
り、確率(劣勢分割幅LSZ)等が得られる。得られた
確率やレジスタ値を基に、画素nの分割(図13のステ
ップ710〜712に相当)等を行う。分割結果を基に
判別(画素生成を含む)を行う(図13のステップ71
4〜720、730、740、750に相当)。
【0056】次いで、レジスタ更新のため、シフト処理
(図13のステップ722、732、742、752に
相当)を行い、必要であれば、RAMの更新(図13の
ステップ724〜728、734〜736、744、7
54〜758)を行い、レジスタを更新する。
【0057】更に、必要であれば符号バイト入力(BY
TE IN:図14のステップ760〜768に相当)
を行う。
【0058】本実施例では、コードレジスタの下位ビッ
ト(スタッフィングビット)が30ビットに拡張されて
いるので、16ビット単位で迅速に処理を行うことがで
きる。これに対して従来は8ビット単位で時間がかかっ
ていた。
【0059】本実施例においては、図21に示す如く、
直前の画素n−1の判別が終了して画素が生成される前
にRAMの読み出しを先行して行っているので、処理速
度を高速化することができる。これに対して従来は、直
前の画素の符号バイト入力(コードレジスタCへの書き
込み)が終了した時点で、初めて次の画素のRAMの読
み出しを開始していたため、図21の例では5クロック
分、余計に時間がかかっていたものである。
【0060】図22は、本発明を用いた装置の実施例の
構成を示す。
【0061】本実施例は、減算、比較、シフト、レジス
タ処理等を行う演算処理部10と、2つのRAMを持
ち、先行する画素値が“0”又は“1”のいずれの場合
にも対応できるように、2つの状態ST0、ST1及び
優勢シンボルMPS0、MPS1を生成する状態発生部
60と、先行する画素に従って生成される選択信号に応
じて、正しい状態ST及び優勢シンボルMPSを選択す
るマルチプレクサ70と、確率評価テーブルが収納され
たROMを用いて、確率等を生成する確率推定部80と
から構成されている。
【0062】前記演算処理部10は、具体的には、図2
3に示す如く、オージェンド値A及び劣勢分割幅LSZ
を一時的に保持するラッチ12、14と、該ラッチ1
2、14を介して入力されるAからLSZを引くことに
よって、図13のステップ710に相当する分割処理を
行い、p及びqを出力する減算回路16と、該減算回路
16から出力されるp及びqの値をそれぞれ一時的に保
持するラッチ18、20と、該ラッチ18、20から出
力されるp、qの値に応じて、シフト量ps、qsを計
算するシフト量計算回路22と、コードレジスタの上位
16ビットに格納されたコード値Cからqの値を引くこ
とによって、コード値の候補C′を計算する減算回路2
4と、前記コード値C及びラッチ18、20に保持され
たp、qの値に応じて、図13のステップ714〜71
8に相当する判別処理を行い、画素や選択信号等を生成
する判別回路26と、該判別回路26の判別結果に従っ
て、前記シフト量計算回路22、ラッチ18、20、減
算回路24の出力をそれぞれ選択するマルチプレクサ2
8、30、32と、該マルチプレクサ28、30、3
2、前記判別回路26の出力を一時的に保持するラッチ
34、36、38、40と、前記ラッチ36から入力さ
れるp又はqの値に対して、ラッチ34から入力される
シフト量ps又はqsだけシフトするためのシフト回路
42と、前記ラッチ38から入力されるコード値C又は
その候補C′に対してqsのシフトを行うシフト回路4
4と、前記ラッチ34から入力されるシフト量に応じ
て、図19の隙間カウンタCSの処理を行い、符号をバ
イト入力するか否か判定するコードレジスタ制御回路4
6と、前記シフト回路42、44の出力をそれぞれラッ
チするラッチ48、50と、該ラッチ48の出力により
内容が更新されるオージェンドレジスタ52と、前記コ
ードレジスタ制御回路46の出力に応じて、符号化デー
タSCDを入力し、ファーストイン・ファーストアウト
(FIFO)メモリに保存するメモリ54と、前記コー
ドレジスタ制御回路46からの制御信号により、必要に
応じて、前記メモリ54の出力により内容が更新される
コードレジスタ56とから構成されている。
【0063】前記シフト量計算回路22としては、例え
ばプライオリティエンコーダを有効に用いることができ
る。即ち、シフト量は、「何ビット左(MSBの方向)
にシフトすれば“0x8000”以上になるか?」を意
味する。又、“0x8000”以上とは、MSBが
“1”であることを意味する。従って、シフト量の計算
は、「MSBから数えて、何ビット目に“1”があるの
か?」という問題に帰着する。この問題は、図24に示
すような論理を持つプライオリティエンコーダで解決で
きる。例えば、入力の第15ビットが“1”であれば、
他の入力にかかわらず、“0”が出力される。又、例え
ば、第15ビット〜第13ビットが“0”で、第12ビ
ットが“1”であれば、同様に“3”が出力され、どち
らの場合も、シフト量を得ることができる。
【0064】本実施例においては、レジスタの更新回数
が少ない処理手順、スタッフィングビットが拡張された
コードレジスタ、及び未確定画素の先読みによる処理の
二重化を行っているので、処理速度が非常に高速化する
ことができる。なお、これらの処理を組合せることな
く、単独で用いることも可能である。
【0065】
【発明の効果】以上説明したとおり、本発明によれば、
処理速度を高速化して高速で復号することができ、従来
に比べて、数倍から数十倍の高速化を達成することがで
きる。
【図面の簡単な説明】
【図1】算術符号における確率数直線の例を示す線図
【図2】ビットスタッフィングの原理を説明する線図
【図3】従来の復号用レジスタの構成の例を示す線図
【図4】従来の復号化処理の基本的な手順を示す流れ図
【図5】同じく初期化ルーチンの例を示す流れ図
【図6】同じく符号バイト入力ルーチンの例を示す流れ
【図7】同じく確率評価テーブルの例を示す線図
【図8】同じくオージェンドとコード値の関係の例を示
す線図
【図9】同じく優勢シンボル(MPS)入換ルーチンの
例を示す流れ図
【図10】同じく劣勢シンボル(LPS)入換ルーチン
の例を示す流れ図
【図11】同じく正規化(リノーマライズ)ルーチンの
例を示す流れ図
【図12】本発明に係る算術復号化処理装置の実施例の
処理手順の一部を示す流れ図
【図13】図12に続く処理手順の一部を示す流れ図
【図14】図13に続く処理手順の残りを示す流れ図
【図15】前記処理手順における状態STの選択基準の
例を示す線図
【図16】同じく優勢シンボルMPSの選択基準の例を
示す線図
【図17】同じく、分割されたオージェンドとコード値
の関係の一例を示す線図
【図18】同じく、分割されたオージェンドとコード値
の関係の他の例を示す線図
【図19】前記実施例で用いられているコードレジスタ
の構成、及び、そのシフト状態の例を示す線図
【図20】同じく、隙間が最大で有効ビットが最小の場
合のコードレジスタの状態の例を示す線図
【図21】前記実施例における各画素毎の処理手順の時
間的な関係の例を示すタイムチャート
【図22】前記実施例の全体構成を示すブロック線図
【図23】前記実施例の演算処理部の具体的な構成例を
示すブロック線図
【図24】前記演算処理部のシフト量計算回路として用
いられるプライオリティエンコーダの論理を示す線図
【符号の説明】
A…オージェンド値 C…コード値 SCD…符号化ビットストリームデータ CX…文脈 ST…状態 Pix…画素 LSZ…劣勢分割幅 MPS…優勢シンボル LPS…劣勢シンボル p、q…レジスタ ps、qs…シフト量 10…演算処理部 16、24…減算回路 22…シフト量計算回路 26…判別回路 28、30、32…マルチプレクサ 42…シフト回路 46…コードレジスタ制御回路 52…オージェンドレジスタ 54…メモリ 56…コードレジスタ 60…状態発生部 70…マルチプレクサ 80…確率推定部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】符号化すべきシンボル系列を、劣勢シンボ
    ル及び優勢シンボルの出現確率に応じて分割した確率数
    直線上にマッピングし、その位置に従って符号化するこ
    とによって作成された算術符号を、前記確率数直線上で
    の符号の範囲を示すオージェンド値を記憶するオージェ
    ンドレジスタ、及び、同じく確率数直線上での符号の位
    置を示すコード値を記憶するコードレジスタを用いて復
    号化するための算術符号復号化装置において、 先行するデータから、現在の文脈を生成する手段と、 該文脈を指標として、状態及び現在の優勢シンボルを決
    定する手段と、 前記状態を指標として、リード・オンリー・メモリに記
    憶された確率評価テーブルの値を読み出す手段と、 該確率評価テーブルから読み出された確率に従ってオー
    ジェンドを分割し、正規化する場合のシフト量、及び、
    コード値の更新される可能性のある値を計算する手段
    と、 分割の結果、コード値が優劣どちらの領域に含まれ、ど
    ちらの領域が大きいかを判別し、処理を振り分けて、デ
    ータを生成する手段と、 振り分けられた結果に応じて、予め計算しておいた前記
    シフト量を用いてシフトを行い、オージェンドレジスタ
    及びコードレジスタを更新する手段と、 必要に応じて、ランダム・アクセス・メモリに記憶され
    た状態や現在の優勢シンボルを更新する手段と、 を備えたことを特徴とする算術符号復号化装置。
  2. 【請求項2】請求項1において、更に、 実際にシフトした量を、コードレジスタの隙間の大きさ
    に加算する手段と、 該コードレジスタの隙間に次の符号を入れてビットスタ
    ッフィングを行う手段とを備え、 前記コードレジスタが、コード値に対応するビット長の
    上位ビットと、シフト量に対応する有効ビット長に加え
    て、前記隙間の最大量を収容可能なビット長の、拡張さ
    れた下位ビットを含み、 該下位ビットがスタッフィングビットとして使われるこ
    とを特徴とする算術符号復号化装置。
  3. 【請求項3】符号化すべきシンボル系列を、劣勢シンボ
    ル及び優勢シンボルの出現確率に応じて分割した確率数
    直線上にマッピングし、その位置に従って符号化するこ
    とによって作成された算術符号を、前記確率数直線上で
    の符号の範囲を示すオージェンド値を記憶するオージェ
    ンドレジスタ、及び、同じく確率数直線上での符号の位
    置を示すコード値を記憶するコードレジスタを用いて復
    号化するための算術符号復号化装置において、 先行するデータの内、未確定のデータに依存した、複数
    の文脈を生成する手段と、 該複数の文脈のそれぞれを指標として、それぞれに対応
    する状態及び現在の優勢シンボルの候補を生成する手段
    と、 先行するデータが確定した段階で、前記候補中から、実
    際に用いる状態及び現在の優勢シンボルを決定する手段
    と、 を備えたことを特徴とする算術符号復号化装置。
JP377295A 1995-01-13 1995-01-13 算術符号復号化装置 Pending JPH08195680A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP377295A JPH08195680A (ja) 1995-01-13 1995-01-13 算術符号復号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP377295A JPH08195680A (ja) 1995-01-13 1995-01-13 算術符号復号化装置

Publications (1)

Publication Number Publication Date
JPH08195680A true JPH08195680A (ja) 1996-07-30

Family

ID=11566477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP377295A Pending JPH08195680A (ja) 1995-01-13 1995-01-13 算術符号復号化装置

Country Status (1)

Country Link
JP (1) JPH08195680A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022095015A (ja) * 2020-12-16 2022-06-28 株式会社日立製作所 受信したデータを処理する装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022095015A (ja) * 2020-12-16 2022-06-28 株式会社日立製作所 受信したデータを処理する装置
US11640265B2 (en) 2020-12-16 2023-05-02 Hitachi, Ltd. Apparatus for processing received data
JP2023130405A (ja) * 2020-12-16 2023-09-20 株式会社日立製作所 受信したデータを処理する装置
US12019921B2 (en) 2020-12-16 2024-06-25 Hitachi, Ltd. Apparatus for processing received data

Similar Documents

Publication Publication Date Title
EP0260462B1 (en) Arithmetic coding for data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US4633490A (en) Symmetrical optimized adaptive data compression/transfer/decompression system
US4905297A (en) Arithmetic coding encoder and decoder system
US4286256A (en) Method and means for arithmetic coding utilizing a reduced number of operations
EP0231736B1 (en) Method and apparatus for arithmetic compression coding of binary numbers
US6351569B1 (en) Coding method, decoding method, coding device and decoding device
JPH06222904A (ja) n配列ストリングにおける記号確率の適応計算
JP3684128B2 (ja) 算術符号化/復号化方法ならびに算術符号化/復号化装置
US5008668A (en) Method and apparatus for encoding and decoding data in residue number system
EP0260461B1 (en) Arithmetic coding encoding and decoding method
US4799242A (en) Multi-mode dynamic code assignment for data compression
JP3459759B2 (ja) 算術復号化装置
JP2003188736A (ja) 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
JP3018990B2 (ja) 算術符号化装置
CN119625087B (zh) 一种jbig算术编码和解码方法及系统
US20020076113A1 (en) Image coding device
JP2891818B2 (ja) 符号化装置
JP3336537B2 (ja) 符号化装置、復号化装置、符号化・復号化装置及び算術符号化装置
JP3221252B2 (ja) ハフマン復号器
US5673216A (en) Process and system for adding or subtracting symbols in any base without converting to a common base
JP3223118B2 (ja) 画像符号化装置、画像復号化装置、及び画像符号化・復号化装置
JPS636172B2 (ja)
JPH0810835B2 (ja) 符号伝送装置の符号化部及び復号化部
JPH09148941A (ja) 算術符号化・復号化装置
JP3484900B2 (ja) 画像データ符号化装置