JP3648944B2 - データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置 - Google Patents

データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置 Download PDF

Info

Publication number
JP3648944B2
JP3648944B2 JP27726597A JP27726597A JP3648944B2 JP 3648944 B2 JP3648944 B2 JP 3648944B2 JP 27726597 A JP27726597 A JP 27726597A JP 27726597 A JP27726597 A JP 27726597A JP 3648944 B2 JP3648944 B2 JP 3648944B2
Authority
JP
Japan
Prior art keywords
prediction
bit
encoding
decoding
bits
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.)
Expired - Fee Related
Application number
JP27726597A
Other languages
English (en)
Other versions
JPH10308673A (ja
Inventor
政一 磯村
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP27726597A priority Critical patent/JP3648944B2/ja
Publication of JPH10308673A publication Critical patent/JPH10308673A/ja
Application granted granted Critical
Publication of JP3648944B2 publication Critical patent/JP3648944B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、2値の情報をそのまま2値のビット列にし、圧縮したり、2値以上の多値情報源を2値のビット列に変換し、その2値のビット列を圧縮するデータ符号化方法およびデータ符号化装置ならびに圧縮された2値のデータを伸長するデータ復号化方法およびデータ復号化装置に関する。
【0002】
【従来の技術】
従来、“0”と“1”からなる2値信号を扱う情報理論の世界では、算術符号化方式と呼ばれるものが知られている。この算術符号化方式は、エントロピー符号化方式であり、本質的に可逆符号化(ロスレス)の性質を持つものである。そして、その原理は、エライアスの符号化として知られている無記憶情報源に対する理想的符号化方式を実用可能な形に再編成したものとなっている。すなわち、算術符号とは、“0”と“1”の直線上の対応区間を各シンボルの生起確率に応じて不等長に分割していき、対象シンボル系列を対応する部分区間に割り当て、再帰的に分割を繰り返していくことにより得られた区間内に含まれる点の座標を、少なくとも他の区間と区別できる2進小数で表現してそのまま符号とするものである。
【0003】
この算術符号化方式は、有限個の情報源シンボルに特定の符号語を対応させるブロック符号に比べ、符号器の規模、例えば必要メモリ量などのハードウェアが小さくて済むこと、高い効率を期待できることおよび適応符号化が容易なこと等の利点がある。このこと等から、2値信号を扱う情報理論の世界では、この算術符号化方式がその情報の持つエントロピーに最も近いレベルに圧縮できるとされ、最も効率の良い符号化方式と言われている。なお、この算術符号化方式は、特に、マルコア情報源の符号化に適するものとなっている。
【0004】
この算術符号化方式として、Qコーダ、算術符号型MELコード、Mini−Maxコーダ等が提案されている。そして、これらの算術符号を改善したものとして、QMコーダと呼ばれている方式が知られている。このQMコーダは、カラー静止画符号化標準(JPEG)および2値画像符号化標準(JBIG)の両標準において、共通に使用されている。なお、このQMコーダは、2値情報源用の符号であり、JPEGのような多値情報源の符号化にあたっては、その多値情報源を2値化するための前処理を必要としている。このような場合、符号化すべき2値シンボル数は増大するが、多値情報源としての情報量を増大させることなしに2値系列に変換することが可能となっている。
【0005】
このQMコーダは、JPEGおよびJBIGの規定の中にその仕組みについて詳細に述べられているが、ここでは後述する本発明との比較のために、その概要を図21に基づき簡単に説明する。なお、算術復号型のエントロピー復号器の構成は、エントロピー符号器の構成と実質的に同一であるので、ここではその説明は省略する。
【0006】
この算術符号型のエントロピー符号器となるQMコーダ101は、算術演算部102と、状態記憶器として機能する発生確率生成手段103とを含んで構成される。この発生確率生成手段103内には、符号化に必要なシンボル発数確率を決定するために必要な状態パラメータテーブルが書き込まれている。上記の状態パラメータは、入力される状態信号106によって特定される。そして、この状態信号106によって特定された状態パラメータのテーブルに対し、発生確率生成手段103の発生確率演算パラメータが算術演算部104へ向けて出力される。
【0007】
算術演算部102は、このようにして入力される発生確率に基づき、エントロピー符号化を行い、入力されるデータ104を符号化データ105に圧縮し、符号化して出力する。そして、入力されるデータ104の値により、状態信号に対する発生確率を再計算し、演算パラメータ更新値として、発生確率生成手段103へ入力する。この更新結果が次のデータの発生確率としてテーブルに記憶されることで、QMコーダ101の圧縮効率が向上することとなる。なお、発生確率生成手段103には、状態信号106が入力される。これは例えば、マルコフモデルと呼ばれるような手法等により求められる参照画素データ等であり、圧縮率を高めるために利用される信号である。
【0008】
このように構成されるQMコーダの動作について、図22のフローチャートに基づき説明する。まず、QMコーダ101内のレジスタAに0xFFFFを、レジスタCに0x0000を代入する。また、確率推定のためのインデックスSTを初期化する(ステップS100)。次に、符号化対象のシンボル(1ビット)を取り込む(ステップS101)。そして、取り込んだシンボルが、優勢シンボルか劣勢シンボルかを判定する(ステップS102)。優勢シンボルの時はステップS103に進み、劣勢シンボルの時はステップS106に進む。
【0009】
インデックスSTによって確率推定テーブルLSZを参照し、劣勢シンボルの生起確率を求め、さらに、それをレジスタAから減じることにより優勢シンボルの生起確率を求め、その値をレジスタAに代入する(ステップS103)。その後、レジスタAの最上位ビットが“1”かどうか調べる(ステップS104)。“1”ならステップS105に進み、“0”ならステップS114に進む。そして、“1”のときは、インデックスSTによって確率推定テーブルNMPSを参照し、次のシンボルの符号化のためのインデックスSTを求めておく(ステップS105)。
【0010】
ステップS102において、劣勢シンボルのときは、インデックスSTによって確率推定テーブルLSZを参照し、劣勢シンボルの生起確率を求め、それをレジスタAに代入する(ステップS106)。その後、レジスタCにレジスタAの値を加える(ステップS107)。そして、インデックスSTによって確率推定テーブルSWITCHを参照し(ステップS108)、これが“1”のときはステップS109に進み、優勢シンボルを変更する。
【0011】
一方、ステップS110では、インデックスSTによって確率推定テーブルNLPSを参照し、次のシンボルの符号化のためのインデックスSTを求めておく。そして、ステップS111ではレジスタA,レジスタCを共に1ビット左シフトする。この左シフトにより、レジスタCから溢れた最上位ビットを符号語として出力する(ステップS112)。そして、ステップS113において、レジスタAの最上位ビットが“1”かどうか調べ、“1”のときは、ステップS111に戻ってシフトを繰り返す。最上位ビットが“0”のときはステップS114にいき、符号化したシンボルが最後のシンボルなら終了する。そうでなければステップS101に戻る。
【0012】
このようにして、QMコーダ101は、確率推定テーブルLSZ,NMPS,NLPSを利用して入力されてくる2値のビット列を圧縮して符号化する。
【0013】
【発明が解決しようとする課題】
しかしながら、このQMコーダ101等の算術符号化方式は、符号化効率は良いものの図22に示すフローチャートに示されるように、1ビットずつ符号化するため符号化速度が遅いものとなっている。このため、実用面では、レンベル・ジブ系(=LZ系)の符号化方式が優勢となっている。しかし、このLZ系の符号化方式は、符号化効率が算術符号化方式にくらべ、かなり落ちるものとなっている。このように、従来の技術には、符号化効率が算術符号化方式程度に良く、しかも符号加速度がLZ系程度に速いものが存在していない状況である。また、画像符号化やユニバーサル符号化等多くの符号化の対象は、多値情報源であり、多値情報源の効率の良い圧縮、伸長が要望されている。
【0014】
本発明は、算術符号化方式とほぼ同程度の符号化および復号化効率を達成すると共に符号化および復号化速度を大幅に向上させ、LZ系の速度に近づけた新しいデータ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
かかる目的を達成するため、請求項1記載のデータ符号化方法では、“0”および“1”からなる2値のビット列を入力する際、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する予測設定工程と、入力された予測ビット数からなる注目系列について予測が当たったときに符号語として“0”または“1”のいずれか一方の信号を予測当たり信号として出力かつ符号化し、次のn個のビット列を符号化する作業に移り、はずれたときに符号語として“0”または“1”のいずれか他方の信号を予測はずれ信号として出力すると共に、n個の予測ビット数より小さい数の区切りビット数で入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化する予測結果符号化工程とを備え、予測が所定回数はずれたときに予測ビット数をn個より少ない新減少予測ビット数として同様の予測設定工程と予測結果符号化工程とを再帰的に繰り返している。
【0016】
このように、優勢シンボルがn個連続することを予測し、予測が当たったときには、n個のビットが1つの予測当たり信号等で表示されることとなり、圧縮効率が高まると共に符号化速度が速くなる。しかも、予測がはずれると、予測ビット数を減少させ、次の予測を行うようにしたので、予測がはずれても圧縮効率や符号化速度はそれ程減少しない。加えて、予測ビット数より少ない区切りビット数で、段階的に符号化するので、符号化時のバッファを小さくすることができる。
【0017】
また、請求項2記載の発明では、“0”および“1”からなる2値のビット列を入力する際、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する予測設定工程と、入力されたn個のビット列からなる注目系列について予測が当たったときに符号語として“0”または“1”のいずれか一方の信号を予測当たり信号として出力かつ符号化し、次のn個のビット列を符号化する作業に移り、はずれたときに符号語として“0”または“1”のいずれか他方の信号を予測はずれ信号として出力すると共に、n個の予測ビット数より小さい数の区切りビット数で入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化する予測結果符号化工程とを備え、予測が規定回数当たったときに、予測ビット数をn個より多い新増加予測ビット数として同様の予測設定工程と予測結果符号化工程とを繰り返している。
【0018】
このように、優勢シンボルがn個連続することを予測し、予測が当たったときには、n個のビットが1つの予測当たり信号等で表示されることとなり、圧縮効率が高まると共に符号化速度が速くなる。しかも、予測が当たれば当たる程、データの圧縮効率が一層高まると共に符号化速度が一層早くなる。加えて、予測ビット数より少ない区切りビット数で、段階的に符号化するので、符号化時のバッファを小さくすることができる。
【0019】
また、請求項3記載の発明では、請求項1記載のデータ符号化方法において、予測が規定回数当たったときに、予測ビット数をn個より多い新増加予測ビット数としている。このため、予測が当たれば当たる程、圧縮効率が高まりかつ符号化速度が速くなる。
【0020】
さらに、請求項4記載の発明では、請求項2または3記載のデータ符号化方法において、規定回数を2回とし、新増加予測ビット数を予測ビット数の2倍としている。このため、予測の当たりが続くこと、すなわち、一定の傾向が出始めてから予測ビット数を変えているので、データの圧縮効率を高めることができる。しかもその値を従前の2倍としているので、当たりによって連続した優勢シンボルのビット数と同一となり、次の予測も当たる確率が高くなる。この結果、圧縮効率を高めることができると共に符号化速度を速くすることができる。
【0021】
さらに、請求項5記載の発明では、請求項1記載のデータ符号化方法において、新減少予測ビット数が1となり、かつそのビットが劣勢シンボルのとき、以降の符号化において従来の劣勢シンボルを優勢シンボルとし、従来の優勢シンボルを劣勢シンボルとして符号化するようにしている。その結果、入力データの実態に合わせ、適切な予測ができることとなり、高い符号化速度や効率を維持できることとなる。
【0022】
さらに、請求項6記載の発明では、請求項1、2、3、4または5記載のデータ符号化方法において、区切りビット数を固定の所定値pとし、n≦pのときは、まとめて符号化するビット数をn個としている。この結果、固定の所定値pより大きな予測ビット数の場合、段階的に符号化が可能となり、符号化時のバッファを小さくすることができる。
【0023】
加えて、請求項7記載の発明では、請求項6記載のデータ符号化方法において、所定値を4としている。このため、符号化速度をそれ程落とすことなく、符号化時のバッファを小さくできると共に、このシステムに対応する復号化システムにおけるバッファを小さくでき、しかも復号速度を速くすることができる。
【0024】
加えて、請求項8記載の発明では、“0”および“1”からなる2値のビット列を入力する際、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する予測設定工程と、入力された予測ビット数からなる注目系列について予測が当たったときに符号語として“0”または“1”のいずれか一方の信号を予測当たり信号として出力かつ符号化し、次のn個のビット列を符号化する作業に移り、はずれたときに符号語として“0”または“1”のいずれか他方の信号を予測はずれ信号として出力し符号化する予測結果符号化工程とを備え、この符号化工程において、符号化されるビットのパターンに対応した符号化データが予め記憶された符号化テーブルに基づいて符号化処理すると共に、予測が所定回数はずれたときに予測ビット数をn個より少ない新減少予測ビット数として同様の予測設定工程と予測結果符号化工程とを再帰的に繰り返している。
【0025】
このように、優勢シンボルがn個連続することを予測し、予測が当たったときには、n個のビットが1つの予測当たり信号等で表示されることとなり、圧縮効率が高まると共に符号化速度が速くなる。しかも、予測がはずれると、予測ビット数を減少させ、次の予測を行うようにしたので、予測がはずれても圧縮効率や符号化速度はそれ程減少しない。加えて、符号化処理を予め用意されたテーブルによって行っているので、符号化処理の速度が向上する。
【0026】
また、請求項9記載の発明では、請求項8記載のデータ符号化方法において、符号化テーブルには、8ビット以下のパターンに対応した符号化データが書き込まれ、8ビットを超える符号化対応ビットに対しては符号化テーブルを用いずに符号化している。このように、8ビット以下の小さいパターンに対して符号化テーブルを用意しているので、そのテーブル用のメモリをそれ程増加させずに符号化速度を大幅に向上させることができる。
【0027】
また、請求項10記載の発明では、“0”および“1”からなる2値の入力ビット列を圧縮して符号化するデータ符号化装置において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共にその優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する符号化制御部と、入力ビット列を一時記憶すると共に符号化すべきビット数とパターンを出力するビット列分解部と、入力ビット列のパターンに対応する符号化データを記憶した符号化テーブルを内蔵し、符号化制御部から入力する選択すべき上記符号化テーブルを示す信号ならびにビット列分解部から入力する符号化すべきビット数およびパターンから所定の圧縮ビット列とそのビット長とを出力する符号化テーブル部と、圧縮ビット列を一旦バッファリングして固定のビット長にならして出力するストリーム生成部とを備え、予測が所定回数はずれたときに、予測ビット数をn個より少ない新減少予測ビット数として符号化制御部で設定し、予測が規定回数当たったときに、予測ビット数をn個より多い新増加予測ビット数として符号化制御部で設定している。
【0028】
この結果、予測が当たればn個のビットが1つの予測当たり信号等で表示されることとなり、圧縮効率が高まると共に符号化速度が速くなる。しかも、予測が当たれば当たる程、予測ビット数を多くしているので、一層圧縮効率が高まることとなる。加えて、予測がはずれると、予測ビット数を減少させているので、予測がはずれても圧縮効率や符号化速度はそれ程減少することはない。さらに、入力してきたパターンに対応する符号化データを記憶した符号化テーブルを用意して処理するため、符号化速度が向上する。
【0029】
さらに、請求項11記載のデータ符号化装置では、請求項10記載のデータ符号化装置において、n個の予測ビット数より小さい数の区切りビット数で入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化している。このため、予測ビット数より小さい区切りビット数で、段階的に符号化することとなるので、符号化時のバッファを小さくすることができる。
【0030】
また、請求項12記載の発明では、“0”および“1”からなる2値の入力ビット列を圧縮して符号化するデータ符号化装置において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共にその優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する符号化制御部と、入力ビット列を一時記憶すると共に、n個の予測ビット数より小さい数の区切りビット数で入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化する符号化部とを有している。
【0031】
この結果、予測が当たればn個のビットが1つの予測当たり信号等で表示されることとなり、圧縮効率が高まると共に符号化速度が速くなる。さらに、予測ビット数より小さい区切りで、段階的に符号化するので符号化時のバッファを小さいものとすることができる。
【0032】
また、請求項13記載のデータ復号化方法では、符号化されたデータを入力し、“0”および“1”からなる2値のビット列に復号化するデータ復号化方法において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個(nは1以上の整数)連続すると予測したその予測結果が“0”および“1”からなる2値のビット列で表わされた符号語を入力する入力工程と、その符号語を復号する復号工程とを有し、入力工程では、n個の予測ビットより小さい区切りビット数で区切られて符号化されたデータを入力し、復号工程では、入力された符号語が予測当たりの値のとき優勢シンボルをn個連続して復号すると共に、予測はずれのときは、区切られた中に劣勢シンボルが含まれていたら、その区切られた部分を含むそれまで続いた優勢シンボルの部分をまとめて復号し、予測当たりが所定回数連続したときはn個より多い数の優勢シンボルが連続すると新たに予測するようにしている。
【0033】
この結果、予測が当たっている場合、1つの符号語でn個の優勢シンボルを復号できるので、伸長効率が高くなり、復号速度が速くなる。しかも予測が当たっていればいる程、1つの符号語で復号できる優勢シンボルの数を多くできるので一層伸長効率が高くなると共に、復号速度が速くなる。さらに、予測はずれのときは、予測ビット数より小さな区切りで復号することになるので、復号速度は一層高まる。
【0034】
さらに、請求項14記載のデータ復号化方法では、符号化されたデータを入力し、“0”および“1”からなる2値のビット列に復号化するデータ復号化方法において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個(nは1以上の整数)連続すると予測したその予測結果が“0”および“1”からなる2値のビット列で表わされた符号語を入力する入力工程と、その符号語を復号する復号工程とを有し、入力工程では、所定の数で区切られて符号化されたデータを入力し、復号工程では、入力された符号語と予測ビットの数とから復号されるビットパターンが指定される復号テーブルに基づいて復号し、予測当たりが所定回数連続したときは、n個より多い数の優勢シンボルが連続すると新たに予測したその予測結果を入力し、予測はずれが規程回数連続したときは、n個より少ない数の優勢シンボルが連続すると新たに予測したその予測結果を入力するようにしている。
【0035】
この結果、予測が当たっている場合、1つの符号語でn個の優勢シンボルを復号できるので、伸長効率が高くなり、復号速度が速くなる。しかも予測が当たっていればいる程、1つの符号語で復号できる優勢シンボルの数を多くできるので一層伸長効率が高くなると共に、復号速度が速くなる。また、予測が外れると、予測ビット数が減少していくので、予測が外れても復号効率はそれ程落ちない。しかも、復号ビットが、予め記憶された復号テーブルに基づいて復号されるので、復号速度を高めることができる。
【0036】
また、請求項15記載の発明では、請求項14記載のデータ復号化方法において、入力工程では、n個の予測ビットより小さい区切りビット数で区切られて符号化されたデータを入力し、復号工程では、予測はずれのとき、区切られた中に劣勢シンボルが含まれていたら、その区切られた部分を含むそれまで続いた優勢シンボルの部分をまとめて復号している。
【0037】
この結果、予測ビット数より小さいビット数で復号されていくことになるので、使用するバッファを小さくできると共に復号速度を速くすることができる。
【0038】
さらに、請求項16記載の発明では、符号化されたデータとなる符号ビットを入力し、“0”および“1”からなる2値のビット列からなる復号ビットに復号化するデータ復号化装置において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとしたとき、符号ビットの優勢シンボルと予測ビット長n個を設定する復号制御部と、入力される符号語に対応する復号パターンを各予測ビット長毎に表化した復号テーブルを有する復号テーブル部と、この復号テーブル部からの復号パターンと復合するビット数を入力し記憶すると共に所定ビット数毎に出力するデコードバッファ部とを備え、入力された符号ビットが予測当たり信号の場合、優勢シンボルを復号すると共に、予測当たり信号が所定回数連続したときは予測ビット長をn個より多い数に変更している。このため、予測が当たっている場合、1つの符号語でn個の優勢シンボルを復号できるので、伸長効率が高くなり、復号速度が速くなる。しかも予測が当たっていればいる程、1つの符号語で復号できる優勢シンボルの数を多くできるので一層伸長効率が高くなると共に、復号速度が速くなる。加えて、入力される符号語に対応する復号パターンを予め表化したテーブルに基づいて復号処理を行っているので、復号速度が一層速くなる。
【0039】
また、請求項17記載の発明では、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルすると共にそのシンボルがn個(nは1以上の整数)連続すると予測したその予測結果が“0”および“1”からなる2値のビット列で表された符号ビットを復号する復号化装置において、符号ビットの予測ビット長と優勢シンボルを設定する復号制御部と、符号ビットを入力し、その符号ビットの値に応じて復号ビットを出力する復号化部と、復号ビットを入力し、一時保持すると共に復号ビットとして出力するデコードバッファ部とを備え、復号化部での復号を予測ビット長より少ない数の区切りビット数で行い、デコードバッファ部の容量を小さなものにすると共に、予測結果が所定回数連続して当たったとき、予測ビット長をn個より大きな数に変更し、予測結果が規程回数連続して外れたとき、予測ビット長をn個より小さい数に変更し、その予測ビット長が所定値となったとき、優勢シンボルと劣勢シンボルを逆転させるようにしている。
【0040】
このため、予測が当たっている場合、1つの符号語でn個の優勢シンボルを復号できるので、伸長効率が高くなり、復号速度が速くなる。しかも予測が当たっていればいる程、1つの符号語で復号できる優勢シンボルの数を多くできるので一層伸長効率が高くなると共に、復号速度が速くなる。加えて、予測が外れると、予測ビット長を短くしていき、所定の長さになると優勢シンボルと劣勢シンボルを逆転させているので、予測が外れ続けることを防止でき、復号効率を高く維持できると共に復号速度の一層の向上を図ることができる。
【0041】
さらに、請求項18記載の発明では、請求項17記載のデータ復号化装置において、復号化部に、入力される符号語に対応する復号パターンを各予測ビット長毎に表化した復号テーブルを有する復号テーブル部を設けている。このため、入力される符号語に対応する復号パターンを予め表化したテーブルに基づいて復号処理を行っているので、復号速度が一層速くなる。
【0042】
本発明のデータ符号化方法およびデータ符号化装置では、2値のビット列を入力する際、“0”か“1”を優勢シンボルと定め、その優勢シンボルがn個連続すると予測する。この予測が当たったときは、符号語として“0”または“1”のいずれか一方を出力し、符号化を完了する。はずれた場合は、“0”または“1”のいずれか他方を出力すると共に、その注目系列を分割し、それぞれの分割された系列の信号状態を上述と同様な方法で確認し符号化していく。そして、予測が当たるか分割が所定値のビット数となるまで、同様の分割と予測を繰り返し符号化する。
【0043】
このような原理に基づく符号化に当たり、本発明では、予測ビット長nで定まるビット列を一度に符号化せず、何段階にも分けて符号化をしている。このため、予測ビット長nが大きくなっても、デコードバッファ部の容量を大きくする必要がなくなる。また、本発明では、符号化を行うに当たり、入力される信号に対する出力信号を予め表化した符号化テーブルを設けている。この結果、符号化の速度が向上する。
【0044】
また、本発明のデータ復号化方法およびデータ復号化装置では、先に示したデータ符号化方法およびデータ符号化装置とは、逆のアルゴリズムを使用して復号している。このため、復号速度を速くできると共にデコードバッファ部の容量を小さくできるものとなる。
【0045】
【発明の実施の形態】
以下、本発明の実施の形態の例を図1から図20に基づき説明する。なお、本発明の前提となるアルゴリズムの概要について、図1から図3に基づいて説明すると共に、本発明の基礎となる基本的な符号化方法等を図4から図6に基づいて説明する。
【0046】
この発明のアルゴリズムは、QMコーダと同様、2値のビット列を圧縮の対象としている。まず初期値として、“0”か“1”のいずれかを優勢シンボルと定め、そのシンボルが連続すると予測する個数runを設定する。入力系列の出現確率が不明の場合は、runを1に設定するのが良い。その上で、以下に示すようなルールに従い符号化を進める。なお、個数runが予測ビット数に相当する。
【0047】
図1に示すように、runで示される注目系列がすべて優勢シンボルであると予測し、予測が当たったとき、符号語として“0”を出力し、この系列の符号化を完了する。はずれた場合は“1”を出力し、次の分割符号化工程を実行する。
予測がはずれた場合は、図2に示すように注目系列を前半部系列と後半部系列の2つに分け、前半部がすべて優勢シンボルのときは符号語として“0”を出力して、前半部系列の符号化を完了する。前半部系列に劣勢シンボルが存在するときは、符号語として“1”を出力し、次の再分割の工程を実行する。前半部系列の符号化が完了したら注目系列を後半部に移し、前半部系列と同様に符号化する。劣勢シンボルが存在する系列は、可能な限り系列を分割して上述の分割符号化工程を繰り返す。
【0048】
なお、分割は必ずしも2つの均等分割とする必要はなく、不均等な分割としたり3つ以上の分割としても良い。また、予測が当たったとき“0”ではなく、優勢シンボルを出力し、はずれた場合“1”ではなく、劣勢シンボルを出力するようにしたり、予測当たりで“1”を、予測はずれで“0”を出力するようにしても良い。
【0049】
以上がこの発明の前提となるデータ符号化の基本アルゴリズムであるが、さらに、入力系列の出現確率の変化に追随し、符号化効率を向上させるため、以下の処理を加えるようにしても良い。
【0050】
すなわち、runで予測した系列が続けて所定回数、例えば、2回当たったとき、runを2倍等に増加させる。なお、予測が的中し続けた場合、さらに予測範囲を拡大していくようにしても良い。また、runで予測した系列の後半部系列に劣勢シンボルが存在するとき、runを1/4等に減少させるようにしても良い。これは、後半部に劣勢シンボルが存在するときは、次に続く系列に劣勢シンボルが多く含まれると判断されているためである。このため、runで予測した系列の前半部系列のみに劣勢シンボルが存在するときは、後半部に劣勢シンボルが存在するときより多い値、例えばrunを1/2倍するようにしても良い。そして、runが1で、それが劣勢シンボルのときは、以降の入力系列を反転させる。すなわち、優勢シンボルを変更させる。
【0051】
この発明の符号化プロセスは、次に説明する図4および図5の符号化プロセスを改良したものであり、まずその符号化プロセスについて説明する。改良前の符号化プロセスは、図4の符号化メインルーチンと図5の符号化サブルーチンにより構成される。なお、図5中の符号化サブルーチンは、サブルーチンから同じサブルーチンを呼び出すいわゆる関数の再帰読出しを行っている。
【0052】
まず、図4の符号化メインルーチンの各ステップについて説明する。なお、符号化の対象は2値のビット列からなる入力系列となっている。最初に、予測の初期値runの設定と優勢シンボルの選択(“0”または“1”)を行う(ステップS0)。次に、ローカル変数ofsに0を、widthにrunを代入する(ステップS1)。ここでofsは、符号化のために予め定義した配列Aのポインタで、予測開始ビット位置を示す。したがって初期値は0となる。widthはofsで示したビット位置から何ビットを予測の対象にするかを示す値で、ここでは、予測の初期値runが代入される。その後、予め定義した配列AのA〔ofs〕からA〔width−1〕までに入力ビットを書き込む(ステップS2)。そして、A〔ofs〕からA〔width−1〕のすべての要素が優勢シンボルのときステップS4へ進み、ひとつでも劣勢シンボルが含まれているときは、ステップS5へ進む。
【0053】
予測が的中した場合、符号語として予測当たり信号“0”を出力し、配列Aに取り込んだ系列の符号化を完了する(ステップS4)。一方、予測はずれた場合、符号語として予測はずれ信号“1”を出力する(ステップS5)。そして、widthが1以上か否かを検出する(ステップS6)。widthが1以下ならこれ以上分割できないので、ステップS7の符号化サブルーチンへは移行せずステップS8へ移行する。一方、widthが1を超えていると、図5の符号化サブルーチンを呼び出す(ステップS7)。
【0054】
ステップS8では、予測runの再設定と必要ならば優勢シンボルの変更を行う。すなわち、このステップS8においては、基本的には予測が的中すれば、runを大きくし、はずれれば小さくする。そしてrunを小さくしても予測が所定回数はずれ続けるようなら、優勢シンボルの変更を行う。なお、予測の的中や予測のはずれをどのように評価するかについては、さまざまな方法を採用することができる。たとえば、予測がはずれた場合、直ちにrunを小さくしたり、2回以上連続してはずれたとき、初めてrunを小さくする等の方法を採用することができる。さらに、前半部系列もしくは後半部系列のみはずれた場合と、両方はずれた場合とでrunの縮小の度合いを異ならせる方法も採用できる。また、符号済みビット系列で所定の確率テーブルを引き、次の予測runを設定する等の方式も採用可能である。
【0055】
符号化メインルーチンで1次予測がはずれた場合は、ステップS7で図5に示す符号化サブルーチンを呼び出す。符号化サブルーチンへ渡す引き数は、ofsとwidthである。以下、符号化サブルーチンの各ステップについて説明する。
【0056】
符号化サブルーチンでは、予測を前半部系列と後半部系列に分けて行うため、予測の範囲を半分にする(ステップS10)。すなわち、親ルーチンから引き数として受け取ったwidthを1/2にする。そして、次のステップS11で、前半部系列(配列のA〔ofs〕からA〔ofs+width−1〕まで)がすべて優勢シンボルか否かをチェックする。すべて優勢シンボルならステップS12へ進む。ひとつでも劣勢シンボルが存在したら、直ちにステップS14へ進む。
【0057】
前半部系列がすべて優勢シンボルなら、符号語として“0”を出力する(ステップS12)。そして、前半部系列の先頭位置を示すポインタofsにwidthを加え、後半部系列の先頭位置を示すように変更する。また、前半部系列がすべて優勢シンボルのときは、後半部系列に必ず劣勢シンボルが存在するので、後半部系列の予測がはずれたことを示す符号語“1”を出力する必要がない。したがって、後述するステップS20はスキップし、ステップS21に進む。
【0058】
一方、前半部系列に劣勢シンボルが存在する場合、符号語として“1”を出力する(ステップS14)。次に、widthが1を超えているか否かをチェックする(ステップS15)。1以下の場合、これ以上分割できないので、子の符号化サブルーチン(ステップS16)の呼び出しをスキップし、ステップS17へ移行する。なお、widthが2以上なら、さらに系列を2つに分け、それぞれを符号化しなければならない。そのための子の符号化サブルーチンを呼び出す(ステップS16)。子の符号化サブルーチンは、図5に示した符号化サブルーチンと全く同一となっている。つまり、ここでは、同一ルーチン(関数)の再帰呼び出しを行う。
【0059】
符号化サブルーチンの再帰呼び出しによって前半部系列の符号化を終了すると、前半部系列の先頭位置を示すポインタofsにステップS10で設定したwidthを加え、後半部系列の先頭位置を示すように変更する(ステップS17)。その後、後半部系列(配列のA〔ofs〕からA〔ofs+width−1〕まで)がすべて優勢シンボルか否かをチェックする(ステップS18)。すべて優勢シンボルならステップS19へ進む。ひとつでも劣勢シンボルが存在したら、直ちにステップS20へ進む。そして、後半部系列がすべて優勢シンボルなら、符号語として“0”を出力する(ステップS19)。
【0060】
一方、前半部系列に劣勢シンボルが存在する場合、符号語として“1”を出力する(ステップS20)。そして、次に、widthが1を超えているか否かをチェックする(ステップS21)。1以下の場合、これ以上分割できないので、子の符号化サブルーチンを実行するステップS22をスキップし、次の注目系列の符号化工程へリターンする。なお、後半部系列についても、widthが2以上なら、さらに系列を2つに分け、それぞれ符号化する。そのため図5に示す符号化サブルーチンと同一の子の符号化サブルーチンを呼び出す(ステップS22)。この符号化サブルーチンの再帰呼び出しによって後半部系列の符号化を実行する。
【0061】
以上のような符号化プロセスの具体例を次に説明する。すなわち、符号化の具体例として、予測の初期値runを8、優勢シンボルを“0”として、“00001001”として表される入力ビットを符号化する場合について説明する。
【0062】
まず、図4の符号化メインルーチンのステップS2で、A〔0〕からA〔7〕に、上記の入力ビットを入力する。ステップS3では、A〔0〕からA〔7〕のすべてが“0”かどうか判定する。上の例の場合、ビット列に“1”が含まれているので、ステップS5に移行し、まず符号語として“1”を出力する。続いてステップS6では、widthの大きさをチェックするが、widthはこのとき8なので、符号化サブルーチン(ステップS7)に進む。
【0063】
符号化サブルーチンでは、まずステップS10で、widthを1/2の4に設定する。そしてステップS11で、入力ビットの前半部、つまりA〔0〕からA〔3〕がすべて0かどうかチェックする。この場合、すべて“0”なのでステップS12に進み、符号語として“0”を出力する。以上で前半部系列の符号化が完了する。続いてステップS13を実行し、後半部系列の符号化に移るが、前半部系列がすべて“0”の場合、後半部系列に“1”が含まれるのは明らかである。したがって、ステップS21でwidthが1以下でない限り後半部系列をさらに分割して符号化しなければならない。そこで、符号化サブルーチンを子プロセスとしてステップS22で再び呼び出す。なお、そのための前処理として、上述したようにステップS13では、ofsにwidthを加え、ofsを後半部系列の先頭位置にセットする。
【0064】
ステップS22では、ofsとwidthを引き数として子の符号化サブルーチンを呼び出す。子の符号化サブルーチンを実行するステップS22では、まず、図5に示す符号化サブルーチンのステップS10でwidthをさらに半分にして2に変更する。次のステップS11では、前半部系列、すなわちA〔4〕とA〔5〕が共に“0”であるか否かをチェックする。この場合、A〔4〕が“1”なので、次のステップS14に移行し、符号語として“1”を出力する。そしてステップS15でwidthが1を超えていると判断し、孫プロセスをステップS16で呼び出す。孫の符号化サブルーチンでは、まずステップS10においてwidthが1となる。A〔4〕は“1”なのでステップS11からステップS14へ処理が移り、符号語“1”を出力する。ステップS15では、widthが1以下なので、ステップS16をスキップし、ステップS17でofsを5に変更する。A〔5〕は“0”なのでステップS18からステップS19に処理が移り、符号語“0”を出力する。
【0065】
次に、この孫の符号化サブルーチンから抜けて、子の符号化サブルーチンのステップS17に戻る。子の符号化サブルーチンのofsは4、widthは2であるから、ステップS17でofsは6に変更される。したがってステップS18では、A〔6〕とA〔7〕をチェックすることになる。この場合、A〔7〕が“1”なのでステップS20へ移行し、符号語“1”を出力する。そして、再び孫の符号化サブルーチンをステップS22で呼び出す。孫の符号化サブルーチンでは、A〔6〕が“0”なのでステップS12で符号語“0”を出力する。そして、widthが1なので、ステップS22をスキップして子の符号化サブルーチンに復帰する。
【0066】
子の符号化サブルーチンに復帰したプロセスは、さらに符号化メインルーチンに復帰し、ステップS8で予測runの再設定と、優勢シンボルの再設定を行う。この例の場合、1次予測ははずれたが、2次予測で前半部が的中したので、runを8から4に変更し、優勢シンボルは引き続き“0”とする処理を施す。なお、予測runの設定は、2回続けてはずれたときに変更する等の設定にしても良い。
【0067】
このような符号化プロセスによって、入力ビットである“00001001”が“1011010”の符号化系列となる。したがってこの場合、8ビットの入力系列が7ビットに圧縮されたことになる。
【0068】
以上のような符号化プロセスを実行した場合の圧縮率と符号化時間を、図6に示す。この図6は、4種類のファイルについてこの符号化プロセスを使用した場合の圧縮率と符号化時間を示すと共に参考として、従来のQMコーダの圧縮率と符号化時間も示すものとなっている。図6に示されるようにこの符号化方法は、圧縮率がQMコーダと同レベルであり、符号化時間は大幅に短縮されたものとなっている。
【0069】
なお、復号化プロセスについては、符号化プロセスと逆のアルゴリズムによって、入力されてくる符号語を復号している。すなわち、復号化プロセスも、復号化メインルーチンと復号化サブルーチンにより構成され、符号化と逆のアルゴリズムによって復号している。
【0070】
このように、図4および図5に示す符号化プロセスおよびその符号化プロセスと逆のアルゴリズムを使用して行う復号化プロセスでは、圧縮率が従来のQMコーダ101と同レベルであり、一方、符号化時間や復号化時間は大幅に短縮されたものとなっている。しかし、この符号化プロセスおよび復号化プロセスにおいては、予測ビット数であるrunで定まるビット列を一度に符号化しているため、圧縮率を高めるために、runの最大値を大きく設定すると、runの個数分のビットを保存しておくためのバッファが大きくなるという問題が生じる。
【0071】
この問題は、図21に示す状態信号108をマルコフモデル化から得るような場合、そのバッファが非常に大きくなり、さらに大きな問題となる。すなわち、仮にrunをnとしたとき、バッファとしてはnビット分必要となり、さらにm状態のマルコフモデル化を行うと、バッファは各状態毎に必要となるため、n×mビットの容量になる。この容量は、runの値が大きくなると無視できなくなる大きさとなる。
【0072】
また、図4および図5に示す符号化プロセスおよびその符号化プロセスと逆のアルゴリズムを使用する復号化プロセスでは、その各処理時間は、QMコーダに比べ大幅に短縮されているものの、符号化や復号化のサブルーチンを再帰的に呼び出して符号化や復号化を行っており、このサブルーチンの再帰的呼び出しのプロセスで時間を有するものとなっている。
【0073】
このため、本発明では、図1から図5に示す符号化プロセスおよび復号化プロセスを生かしつつ、デコード用のバッファを小さくしたり、符号化や復号化の時間をさらに減少できるデータ符号化方法等を提案している。以下、その提案である本発明の実施の形態を、図7から図20に基づき説明する。
【0074】
まず、改良された本発明の第1の実施の形態のデータ符号化装置1を、図7に基づき説明する。
【0075】
このデータ符号化装置1は、エントロピー符号化装置となっており、符号化すべき2値ビット列を入力するビット列分解部2と、各予測ビット長run毎に符号化テーブルを内蔵する符号化テーブル部3と、符号化テーブル部3から入力される可変長符号を一旦バッファリングして固定のビット幅にならして出力するストリーム生成部4と、後述する状態遷移表を内蔵し、予測ビット長run等を設定する符号化制御部5とから主に構成される。ここで、符号化テーブル部3と符号化制御部5とで符号化部を構成している。
【0076】
ビット列分解部2は、符号化制御部5から予測ビット長runを指示する信号RUNと、優勢シンボルを指示する信号SWを入力する。ここで、信号RUNは、1からn(nは最大予測ビット長)の値を取る。また、信号SWは、その値が「0」のとき、“0”を優勢シンボルとし、「1」のとき、“1”を優勢シンボルとするが、その逆でも構わない。
【0077】
さらに、ビット列分解部2は、デコードすべきビット数の信号DECNUMと、デコードすべきビットのパターンとなる信号パターンDECPATNを符号化テーブル部3に出力する。信号DECNUMは、入力ビット列に、劣勢シンボルを含む4ビットのパターンが現れたとき、その4ビットとそれまで続いた優勢シンボル個数の合計数となる。なお、信号RUNが「4」未満のときは、信号RUNと同じ値が出力される。これは、この実施の形態では、区切りビット数pを「4」としているためである。
【0078】
このようにして、ビット列分解部2は、入力したビット列が信号RUNで指定されたビット数分、すべて信号SWで指定された優勢シンボルが続いたとき、すなわち、予測が的中したとき、信号DECNUMとして信号RUNの値を、信号パターンDECPATNとして“0”を出力する。
【0079】
符号化テーブル部3は、図8から図11に示すような符号化テーブルを内蔵しており、どのテーブルを用いるかは、符号化制御部5からのテーブル番号指示信号TABLEにより選択される。そして、この符号化テーブル部3は、ビット列分解部2からの信号DECNUMと信号パターンDECPATNにより所定のテーブル内を検索し、所定の圧縮ビット列DECBITとそのビット長LENGTHおよび予測の当たり外れを示すFAILを出力する。なお、信号TABLEは、信号RUNと1対1の関係を有するものとなっている。
【0080】
図8の符号化テーブルは、テーブル番号は「0」で、信号RUNの値が「1」、すなわちrunが「1」の場合を示している。図8に示されるように、runが「1」のときは、2種類の信号となっている。すなわち、デコードすべきビット数は1個であり、信号パターンは“0”と“1”の2種類となる。この2種類の入力信号に対して、圧縮ビット列DECBITと、そのビット長LENGTHと、予測の列外れを示すフラグFAILの組み合わせからなる2種類の信号が対応する。例えば、信号DECNUMが「1」で、信号パターンDECPATNが“0”の場合は、予測当たりとなり、フラグFAILは当たり信号の「0」となり、圧縮ビット列DECBITは“0”となり、ビット長LENGTHは「1」となる。
【0081】
図9の符号化テーブルは、テーブル番号が「1」で、runが2の場合を示している。なお、各符号化テーブルの信号パターンDECPATNと圧縮ビット列DECBITは、共に右側から左側に入力してくる信号を示している。この図9の場合、その信号形態は4種類となる。デコードすべきビット数はすべて2個であり、そのときの信号パターンDECPATNは“00”“10”“01”“11”の4種類となる。信号パターンDECPATNが“00”のときは、2つとも優勢シンボルのため予測が当たったこととなり、フラグFAILは当たり信号の「0」となると共に、そのときの圧縮ビット列DECBITは“0”となり、ビット長LENGTHは「1」となる。一方、信号パターンDECPATNが“10”のときは、劣勢シンボル“1”が入っており、予測が外れたこととなる。この結果、フラグFAILは、外れ信号の「1」となり、圧縮ビット列DECBITは、最初に“1”がくる。次に、“10”の前半部が“0”であるため、予測が当たり圧縮ビット列DECBITの2番目は“0”となり、“01”となる。ここで、最初に予測外れとなっているので、後半部に“1”があることとなる。このため、圧縮ビット列DECBITは、この“01”がそのまま採用される。
【0082】
信号パターンDECPATNが“01”のときは、劣勢シンボル“1”が入っており、予測が外れたこととなる。この結果、フラグFAILは外れ信号の「1」となり、圧縮ビット列DECBITは最初に“1”がくる。次に、“01”の前半部が“1”であるため、予測がまたも外れたこととなり、圧縮ビット列DECBITの2番目は“1”となる。信号パターンDECPATN“01”の後半部は“0”であるため、予測当たりとなり、圧縮ビット列DECBITの3番目は“0”となる。すなわち、信号パターンDECPATN“01”に対応する圧縮ビット列DECBITは、“011”となる。そして、ビット長LENGTHは「3」となる。同様にして、信号パターンDECPATN“11”に対する圧縮ビット列DECBITは、“111”となる。以上の9種類の信号の対応表が図9となっている。
【0083】
同様にして、テーブル番号が「2」で、runが「4」の16種類の信号の対応関係が図10に示され、テーブル番号「3」でrunが「8」の計31種類の信号の対応関係が図11に示されている。なお、図10のrunが「4」の場合では、runの値が区切りビット数pと同じとなるので、図8および図9と全く同じ関係のみのものとなるが、図11のrunが「8」の場合は、区切りビット数p(この実施の形態ではp=4)より大きくなるため、少し変更された表となる。
【0084】
次に、他の表とは若干異なるこの図11の符号化テーブルの内容を説明する。この符号化テーブルでは、デコードすべき信号のビット数DECNUMは、「8」のものと「4」のものが存在する。「8」のものは、前半部がすべて“0000”のものであり、「4」のものは、runが「8」で前半部に劣勢シンボル“1”がきた場合のものを示している。
デコードすべき信号のビット数DECNUM(以下単にDECNUMとして示す)が「8」で、信号パターンDECPATN(以下単にDECPATNとして示す)が“0000”のときは“00000000”であることを示し、予測が当たったこととなり、フラグFAIL(以下単にFAILとして示す)は当たり信号の「0」となる。そして、圧縮ビット列DECBIT(以下単にDECBITとして示す)は“0”で、ビット長LENGTH(以下単にLENGTHとして示す)は「1」となる。DECNUMが「8」で、DECPATNが“1000”のときは、“10000000”であることを示し、予測が外れたこととなり、FAILは外れ信号の「1」となる。そして、DECBITの1番目には“1”がくる。次に、前半部“0000”は予測当たりとなり、DECBITの2番目には“0”がくる。このとき、後半部“1000”に劣勢シンボル“1”が当然くることとなるため、後半部の4つの信号に対するDECBITは、特に発生しない。
【0085】
後半部“1000”の中の前半部“00”は、予測当たりであり、3番目のDECBITは“0”となる。このとき、後半部“10”に劣勢シンボル“1”が当然くることとなるため、後半部の2つの信号に対するDECBITは特に発生しない。そして、この後半部“10”の前半部“0”は予測当たりとなり、4番目のDECBITは“0”となる。こうなると、最後尾に“1”があることが当然となり、特にDECBITは発生しない。よって、DECPATN“1000”に対応するDECBITは“0001”となる。そして、LENGTHは「4」となる。これが、図11のテーブル番号「3」の表の上から2番目の状態に対応する。
【0086】
このような関係は、図11の符号化テーブルの第3番目から第16番目にも当てはまる。一方、図11のテーブル番号「3」の上から第17番目から第31番目までは、DECNUMが「4」となり、図10のテーブル番号「2」のものに近似する。すなわち、図10の符号化テーブルの第2番目から第16番目のものに、runが「8」として見たときの予測外れの“1”がすべて最初に付加されたものと、図11のDECNUM「4」のものとは同一となる。なお、符号化テーブル部3より出力される符号は、LENGTHによって指定される可変長符号になっている。
【0087】
ストリーム生成部4は、入力の可変長符号を一旦バッファリングして、出力の伝送路で定められた固定のビット幅にならして出力するものとなっている。
【0088】
符号化制御部5の基本動作は、信号RUN(以下単にRUNという)によってビット列分解部2にビットの切り出し方法を指示し、同時に信号TABLE(以下単にTABLEという)により符号化テーブルの選択を行うものとなる。そして、符号化テーブル部3からフィードバックされるFAILにより、次の符号化のためのRUNとTABLEを設定する。なお、この実施の形態では、区切りビット数pを利用した段階的な符号化を導入したため、ある予測ビット長runで符号化した際、必要に応じて途中の段階であることをこの符号化制御部5は記憶する必要がある。
【0089】
この符号化制御部5の具体的な動作は、図12に示す状態遷移表に基づくものとなっている。この状態遷移表の動作について、予測当たりが続く場合を例にして説明する。ここで、初期状態は、SS1となっている。まず、状態SS1のとき、runが「1」で、TABLEは「0」である。このため、図8に示すテーブル番号「0」の符号化テーブルが使用される。そして、予測が当たる場合は、優勢シンボルが“0”が続くことであるため、入力されるビット列入力からそのDECNUMの数である「1」個分の“0”のみを符号化テーブル部3に送り、テーブル番号「0」のテーブル(=図8の表)に基づいて、FAIL「0」と、DECBIT“0”と、LENGTH「1」とが出力される。そして、そのFAIL「0」が符号化制御部5に伝えられる。
【0090】
符号化制御部5は、図12の状態遷移表に基づき、SS1中のFAIL「0」となるものを見つけ、次の状態として状態SS0を選択する(図12の状態遷移表の上から3番目)。このとき、信号SWは“0”となるので、シンボルの逆転はなく、そのまま“0”が優勢シンボルとなる。状態SS0においても、同様な動作の結果、状態遷移表の第1番目が選択され、状態SS3が次の状態となる。これによって、2回予測が当たったこととなる。
【0091】
この状態遷移表では、2回予測が当たると、runが2倍になる。すなわち、上から7番目および8番の状態SS3となり、runが「2」となる。このように予測が当たり続けると、すなわち、入力ビット列がこの場合であると“0”であり続けると、runが「2」「2」「4」「4」「8」「8」と増えていく。また、一方、予測が外れ続けるときは、2回毎、同一runで行い小さくなっていく。すなわち、runが「8」「8」「6」「6」「4」「4」「2」「2」と小さくなっていく。そして、runが「1」のときに、予測が外れると、信号SWは反転する。
【0092】
このような状態遷移表の動作のルールをまとめると、次のとおりとなる。
【0093】
(1)同一の予測ビット長runでの予測が2回連続して的中したとき、予測ビット長runを2倍する。
【0094】
(2)同一の予測ビット長runでの予測が2回連続して外れたとき、予測ビット長runを1/2倍する。
【0095】
(3)予測ビット長runが4以下のときは、1回で符号化を実行する。
【0096】
(4)予測ビット長runが8で、DECNUM=4のときは、2回に分けて符号化を実行する。
【0097】
(5)このときは、状態SS5に遷移して、予測ビット長runを「4」で、後半のビットを符号化する。
【0098】
なお、信号SWの反転とは、この値が1のとき、信号SWを反転させるという意味である。
【0099】
なお、図12で示す状態遷移表は、runが「8」までしか示していないが、この実施の形態では、runを最大「16」としているので、run「16」のものも、図示していないが同様に作成されている。また、状態遷移表としては、runが「32」以上のものにしても良い。さらに、当たりや外れが2回続いたらrunを増加させたり減少させたりするのではなく、1回毎に変えたり3回以上の数としたり、種々のパターンを採用することができる。また、このような符号化テーブルとしては、ビット数の少ないものだけを用意し、大きなビット数、例えば、16ビット以上の場合は符号化テーブルを持たないようにすることもできる。
【0100】
次に、以上のような構成を有するデータ符号化装置1の動作を具体例を使用して説明する。
【0101】
例えば、予測が当たり続けて、run=16となった状態で、“0000010000111100………」のような形で入力してきたビット列を符号化する場合、4ビットの区切りビット数pで区切り、まず、最初は“00000100”までを符号化することとなる。これは、劣勢シンボル“1”が第1番目の区切りビット数(=最初の4ビット)部分にはなく、第2番目(=次の4ビット)に出てくるためである。そして、次に“0011”を、そして最後に“1100”を符号化することとなる。
【0102】
このため、ビット列分解部2から出力されるDECNUMは、「8」「4」「4」となる。一方、DECPATNは、“0100”“0011”“1100”(ここでは、いずれのパターンも左の数値から入力されてくるとする)となる。このような条件において、DECBITは、まず、run=16としたときの予測外れの“1”がくる。次に、“00000100”は、RUN「8」、TABLE「3」、DECNUM「8」のため、図11に示す上から5番目に相当するものであり(図11に示す各数値の場合、それぞれ右端側から入力されてくることに注意)、DECBITは“10100”となる。このため、先の“1”と合わせられた“110100”(この数値は左端から順に出力)のDECBITとLENGTH「6」が符号化テーブル部3からストリーム生成部4に出力される。
【0103】
一方、符号化制御部5内の状態遷移表でいえば、状態SS6でDECNUM「8」のとき、FAIL「1」となったこととなり、次の状態は状態SS7となる。そして、次の“0011”は、run=8でDECNUM「4」なので、テーブル番号「3」のテーブル(=図11の符号化テーブル)が採用され、その上から19番目のものが該当し、“11011”のDECNUMとLENGTH「5」が符号テーブル3から出力される。
【0104】
最後の“1100”については、前の状態が状態SS7のrun「8」、DECNUM「4」で、FAIL「1」となったため(図12の1番下の状態)、状態SS5が採用される。このため、run「4」、TABLE「2」となり、図10に示すテーブル番号「2」の符号化テーブルが使用される。そして、このテーブル番号「2」のテーブルにおいて、下から4番目が該当し“11110”のDECBITと、LENGTH「5」が符号化テーブル3からストリーム生成部4に出力される。なお、状態SS5で、FAILは「1」となるので、次は状態SS2に移る。すなわち、次の入力ビット列に対しては、run=2である図9の符号化テーブルが使用されることとなる。
【0105】
以上をまとめると、入力ビット列“0000010000111100”が“110100”,“11011”,“11110”の3つの圧縮ビット列として符号化されたこととなる。なお、入力ビット列や3つの圧縮ビット列は、共に先頭側から入力され、出力されていくものとする。この点、図8から図11の各符号化テーブルとは異なることに注意する必要がある。すなわち、各符号化テーブルでは、その表示の各値は、その表示の右端から順に入力し、出力するものとなっている。
【0106】
そして、runは、当初「16」であったのが、この4ビットの区切りビットpで段階的に符号化していく中で、runは「2」となり、次の入力ビット列に対しては、「2」の予測ビット長runで符号化されることとなる。
【0107】
一方、先に示した本発明の元となる基本的プロセスで、同じ入力ビット列“0000010000111100”を符号化すると、まずrun=16での予測外れの“1”、次に前半の8ビットを注目し、2番目に予測外れの“1”がきて、さらに前半の4ビット“0000”に注目し、予測当たりの“0”が3番目にくる。すると、後半部の4ビット“0100”に劣勢シンボルがくるとは確実なので、すぐに2つに分割し、前半の2ビット“01”に注目する。このため、予測外れの“1”が4番目にくる。次は、さらにこれを2分割し、前半の“0”に注目し、5番目に予測当たりの“0”がくる。すると、後半の“1”は劣勢シンボルが確実なので、すぐに後半の2ビット“00”に注目し、予測当たりの“0”が6番目にくる。
【0108】
以上の前半8ビットの符号化をまとめると、“110100”となる。これは、本発明による符号化ビットと全く同じとなる。続く8ビットも同様な方法で進めていくと、これらも本発明による符号化ビットと同一となる。本発明の元となる基本的プロセスと本発明とが異なる点は、符号化されたビット自体ではなく、▲1▼符号化の区切り方、▲2▼予測ビット表の変更の仕方、▲3▼符号化テーブルの活用の3点にある。
【0109】
すなわち、改良した本発明では、入力ビット列に対しrunより小さい区切りビット数p(この実施の形態ではp=4)で区切り、劣勢シンボルが存在する区切り部分までで一旦符号化を区切るようにしている。先の例では、16ビットの入力ビット列が3つに区切られて符号化されている。また、本発明では、次の入力ビット列に対し予測ビット長runは「2」となるのに対し、基本的プロセスの考え方では、予測外れは1回であり、runは「16」のままとなる。さらに、本発明の基本的プロセスの考え方では、符号化サブルーチンを再帰的に呼び出して符号化しているが、改良した本発明では、符号化テーブル、具体的には予測ビット長run毎に符号化テーブルを用いている。
【0110】
以上の3つの点は、それらが同時に利用されることによって大きな効果を生ずるが、それぞれ単独で使用されても十分効果を有する。例えば、第1の点の段階的に符号化する方法を採用すると、バッファ、例えば、ビット列分解部2やストリーム生成部4内の各バッファを小さくできるばかりか後述するマルコフモデル化によって圧縮ビット列を得ようとするときにそのバッファの容量を減少させることができる。
【0111】
第2の点の予測ビット長runの変更については、入力ビット列が途中からがらっとその性質が変わるような場合に特に有効となる。先の例では、予測が当たり続けてrun=16となったのに対し、次に性質ががらっと変わったビット列、すなわち劣勢シンボルを多く含む“0000010000111100”がきたとき、改良された本発明では、その性質に合わせrunは「2」となり、続く入力ビット列の性質に合う確率が高いものとなり、圧縮率が高くなる。しかし、本発明の基本的プロセスで処理した場合、runは「16」のままであり、次の入力ビット列の性質にそぐわない確率の高いものとなる。なお、圧縮率の向上は、具体的には0.5%から数%程度であるが、各プログラムソフト等が大容量化している現在では、このようなわずかな数値の向上効果も無視し得ないものとなっている。
【0112】
第3の点の符号化テーブルについては、サブルーチンの再帰的呼び出しによる符号化に比べ、符号化テーブルのためのメモリ容量は若干増えるものの、符号化速度が極めて速くなる。
【0113】
次に、本発明の第1の実施の形態のデータ復号化装置10について、図13に基づき説明する。
【0114】
このデータ復号化装置10は、符号化された信号のストリームを入力するストリーム切り出し部11と、予測ビット長runに応じた複数の復号テーブルを内蔵する復号テーブル部12と、復号されたビットをストアし、所定のシンボルを出力するデコードバッファ部13と、データ符号化装置1の符号化制御部5内の状態遷移表と同じ状態遷移表を有する復号制御部14とから主に構成されている。なお、復号テーブル部12と復号制御部14とで復号化部を構成している。
【0115】
ストリーム切り出し部11は、復号テーブル部12から、復号したビット数を後述するLENGTHにより指示されるので、その値に基づき、復号済みビットを廃棄して、未復号ビットの先頭が、符号化されたデータとなる復号予定の符号語信号CODE(以下単にCODEという)の最下位ビット(または最上位)に来るようにストリームを切り出す。なお、LENGTHを評価して、復号済みビットを廃棄するのは、デコードバッファ部13から廃棄指示DECREQ(以下単にDECREQという)があったときのみである。また、CODEは8ビット単位で送信される。
【0116】
復号テーブル部12は、図14から図17に示す各復号テーブルを内蔵し、復号制御部14が出力するテーブル番号指示信号TABLE(以下単にTABLEという)によりそれらを切り替えて使用する。そして、復号テーブル部12は、次の信号を出力する。
【0117】
(1)何ビット復号したかを示す信号LENGTH(以下単にLENGTHという)で、データ符号化装置1におけるLENGTHに相当するもの
(2)予測の当たり外れを示す信号FAIL(以下単にFAILという)で、データ符号化装置1におけるFAILに相当するもの
(3)復号したビット・パターン信号DECPATN(以下単にDECPATNという)で、データ符号化装置1におけるDECPATNに相当するもの
(4)復号結果が何ビットかを示す信号DECNUM(以下単にDECNUMという)で、データ符号化装置1におけるDECNUMに相当するもの
図14に示すrun=1の復号テーブルは、CODEが“0”“1”の2種類に対応する各出力が記載されている。この復号テーブルは、図8のrun=1の符号化テーブルに相当するもので、符号化テーブル中のDECBITに相当するものが、この復号テーブルではCODEとなっている。図15に示すrun=2の復号テーブルは、同様に図9のrun=2の符号化テーブルに相当するものとなっている。また、図16に示すrun=4の復号テーブルでは、図10のrun=4の符号化テーブルに相当し、図17に示すrun=8の復号テーブルは、図11のrun=8の符号化テーブルに相当している。なお、各復号テーブルにおける各数値も、符号化テーブルと同様に、各数値の右端側から入力し、出力する表示となっている。
【0118】
デコードバッファ部13は、4ビット(この実施例の場合)以下のDECPATNとDECNUMを直接的にストアし、それぞれデコードバッファ部13内のPATNREG(以下単にPATNREGという)とナンバーレジスタNUMREG(以下単にNUMREGという)にストアする。そして、デコードバッファ部13の出力がqビット幅の場合、デコードバッファ部13は、1回デコード・データを出力する度にストアしたNUMREGからqを減じる。そして、NUMREGがqより小さくなったら、DECREQをアクティブにして、新たなデータのデコード要求を発する。また、NUMREGが5以上のときは、信号SWで定まる優勢シンボルをデコード出力として出力する。一方、NUMREGが4以下になったら、PATREGの値を出力する。
【0119】
例えば、図17の上から5番目のCODE“00101”が復号テーブル部12に入力された場合、DECNUM=8、DECPATN=“0010”がデコードバッファ部13に入力されてくる。このとき、信号SWが「0」となっていたとし、出力を2ビット単位(これはq=2に相当)で行うとした場合、最初の2回の出力は優勢シンボルを出力すればよい。この場合SW=0なので、優勢シンボルは“0”である。したがって、“0000”を出力する。この4ビットを出力した時点で、NUMREGは4(=8−4)になっている。そこで、次のサイクルは、PATNREGの値を、順に出力する。すなわち、“0100”をこの表示の左端側から出力する。
【0120】
復号制御部14は、符号化制御部5と同じ状態遷移表を保有している。そして、状態の初期値は、SS1であり、FAILとDECNUMにより、次の遷移先が決定され、DECREQがアクティブのとき、その遷移先へ遷移する。
【0121】
以上のように構成されるデータ復号化装置10は、先に示したデータ符号化装置1と逆のアルゴリズムによって動作する。なお、このデータ復号化装置10は、デコードバッファ部13の出力状態によって制御されるものとなっている。すなわち、デコードバッファ部13のNUMREGが出力ビット幅qより小さくなると、DECREQがストリーム切り出し部11と復号制御部14へ出力される。ストリーム切り出し部11は、そのDECREQにより復号済みビットをそのLENGTH分廃棄する
先の例のrun=8でCODE“00101”の場合、NUMREGが「8」から「4」へ、「4」から「2」、「2」から「0」へと下がる。この「2」から「0」へ下がったときに、DECREQが発生する。そして、LENGTHが「5」であるので、CODEから復号済みの5ビットを廃棄する。このため、ストリーム切り出し部11内のCODEには、未復号ビットが最下位または最上位にきて、次の復号に備える。一方、復号制御部14では、run=8、DECNUM=8で、FAIL=1なので、状態SS7へ遷移する。このため、run=8に相当するTABLE=3を復号テーブル部12に向けて出力する。
【0122】
この結果、復号テーブル部12は、図17のテーブル番号「3」であるrun=8の復号テーブルを準備する。そして、入力してくるCODEからLENGTH、DECNUM、DECPATNおよびFAILが確定し、出力される。例えば、そのCODEの最初が“0”であれば、CODE“0”であることが確定し、LENGTH=1、DECNUM=8、DECPATN=“0000”、FAIL=「0」を出力する。一方、CODEが“01011”の場合、CODEの最初が“1”であるので、まだ確定せず、次の“1”でも、3番目の“0”でも、4番目の“1”でも確定しない。しかし、5番目の“0”が入った段階で“01011”であることが確定する。この確定によって、LENGTH=5、DECNUM=4、DECPATN=“0100”、FAIL=1がそれぞれ出力される。このようにして、順次、復号されていく。
【0123】
このデータ復号化装置10は、データ符号化装置1と同様に、本発明の基本的プロセスに基づく復号に比べると、▲1▼段階的な復号によるバッファ容量の減少化▲2▼信号の性質にあった予測ビット長runの変更▲3▼復号テーブルによる復号速度の向上という各種の有利な効果を有するものとなる。
【0124】
次に、以上のようなデータ符号化装置1やデータ復号化装置10をマルコフモデル化のような条件付き符号化や条件付き復号化を行う場合に適用した、本発明の第2の実施の形態について説明する。
【0125】
まず、条件付き符号化を行うためのデータ符号化装置を図18に基づいて説明する。なお、説明に当たり、データ符号装置1と同一部材および同一信号には、同一符号および同一名称を付し、説明を省略または簡略化する。
【0126】
このデータ符号化装置20は、ビット列分解部2と、符号化テーブル部3と、ストリーム生成部4と、データ符号化装置1の符号化制御部5内の状態遷移表と同じ表を有する状態遷移部21と、マルコフモデル等により生成される符号化条件を入力し、その条件毎に現在の状態の信号を状態遷移部21に与え、符号化後に次の状態の信号を入力し、その符号化条件の状態を記憶しておく状態記憶部22とから主に構成される。すなわち、条件付き符号化を行うためには、データ符号化装置1の符号化制御部5の状態を条件毎に管理することになる。
【0127】
したがって、マルコフモデルのような条件付き符号化を行うときは、図18に示す構成とし、条件をインデックスとして、状態記憶部22から該当する状態を取り出し、その状態を図12に示した状態遷移表により遷移させ、次の状態を再び状態記憶部22の元の番地にストアしておけば、条件毎に、状態を管理できることとなる。したがって、予測ビット長run等のパラメータも条件毎に個別に設定できることとなる。なお、マルコフモデル化する場合、ビット列分解部2には、各符号化条件毎に切り換えるバッファが複数必要となるが、この実施の形態では、予測ビット長runの数ではなく、より小さい固定の区切りビット数pで段階的に符号化しているので、そのバッファの容量はそれ程大きくならず、実用面で適したものとなっている。
【0128】
次に、条件付き復号化を行うためのデータ復号化装置30を図19に基づいて説明する。なお、説明に当たり、データ復号化装置10と同一部材および同一信号には、同一符号および同一名称を付し、説明を省略または簡略化する。
【0129】
このデータ復号化装置30は、ストーム切り出し部11と、復号テーブル部12と、デコードバッファ部13と、データ復号化装置10の復号制御部14内の状態遷移表と同じ表を有する状態遷移部31と、マルコフモデル等により生成される復号条件を入力し、その条件毎に現在の状態の信号を状態遷移部31に与え、復号後に次の状態の信号を入力し、その復号条件の状態を記憶しておく状態記憶部32とから主に構成される。
【0130】
なお、デコードバッファ部13は、復号条件が入力し、その条件毎に個別に管理されるものとなっている。このため、マルコフモデルのような条件付き復号化の場合、バッファとして非常に大きなものが必要になる。しかし、本実施の形態のデータ復号化装置30では、先に示したように段階的な復号を行うので、各バッファは小さいものでも十分対応でき、マルコフモデルのような条件付きの復号化でもデコードバッファ部13はそれ程大きな容量を必要としなくなる。
【0131】
このデータ復号化装置30においては、状態遷移を条件毎に個別に管理する点で、データ符号化装置20と同様である。ただし、このデータ復号化装置30の場合は、上述したようにさらにデコードバッファ部13も個別に管理しなければならない。このため、デコードバッファ部13は、NUMREG、PATNREGに相当するレジスタを有り得る条件数分内蔵し、復号条件によって切り換えるものとなっている。
【0132】
以上のような、本発明の第2の実施の形態の、条件付き符号化および復号化を行うデータ符号化装置20および符号化方法ならびにデータ復号化装置30および復号化方法は、先に示した第1の実施の形態のデータ符号化装置1やデータ復号化装置10の場合と同様な効果を有する。加えて、マルコフモデルのような条件付きの符号化や復号化が行え、圧縮率が高くなり、復号効率も良くなる。しかも、マルコフモデル化等の場合の大きな障害となるバッファ容量の大幅な増大という問題を防止でき、実用化に適したものとなる。
【0133】
なお、上述の各実施の形態は、本発明の好適な実施の形態の例であるが、これに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々変形実施可能である。例えば、予測が当たったときに出力する符号語としては“0”ではなく“1”とし、予測がはずれたときは“1”ではなく0”としたり、予測が当たったときは優勢シンボルを出力し、予測がはずれたときは劣勢シンボルを出力するようにしても良い。
【0134】
また、新減少予測ビット数を元の予測ビット数の1/2ではなく、1/3や1/4等にしたり、元の予測ビット数から所定数を差し引いた数等とすることができる。一方、新増加予測ビット数も元の予測ビット数の2倍ではなく、3倍や4倍等にしたり、元の予測ビット数に所定数を加えた数等とすることができる。なお、新増加予測ビット数を無制限とせず、所定の値、例えば256ビット等、2の倍数を最大値とするようにしても良い。また、新減少予測ビット数の最小値としては1ではなく、2や3等他の数値としても良い。
【0135】
また、データ符号化装置1,20やデータ復号化装置10,30をハード構成ではなく、ソフトウェアで対応するようにしても良い。すなわち、本発明のデータ符号化方法やデータ復号化方法をすべてソフトウェアで対応したり、例えば、データ符号化方法はソフトウェアで対応し、データ復号化方法は、先に示したデータ復号化装置10,30等のハードで対応するようにしても良い。
【0136】
また、本発明はいわば予測ランレングス符号化方式とも言えるものであるが、この予測ランレングス符号化方式は、2値の系列データ以外に多値系列についても適用することができる。すなわち、多値系列のデータを工夫によって2値のビット列として扱うようにすれば本発明の予測ランレングス符号化方式および復号化方式を適用することができる。例えば、ビット・プレーンに分けて、各ビット・プレーンをこの予測ランレングス符号化方式で符号化するようにしても良い。また、最上位ビットからプレーン毎にこの予測ランレングス符号化方式にて符号化を行い、“1”が出現した時点で続く下位ビットを直接ストリームに出力するようにしても良い。
【0137】
また、この予測ランレングス符号化方式を多値系列に適用する方式としては、ビット・プレーンではなくレベル・プレーン、例えばシンボルが8ビットの場合、256のレベル・プレーンに分けて行う方法もある。例えば、入力シンボルをグループに分け、グループ番号をこの予測ランレングス符号化方式で符号化する方法が考えられる。具体的には、例えば、入力シンボルを図20に示すように、グループ分けし、まず入力シンボルがグループ番号0か0以外かを示す判定ビットをこの予測ランレングス符号化方式で符号化する。もし入力シンボルが0ならこのシンボルの符号化を完了するが、そうでない場合はさらにグループ番号が1か1以外かを示す判定ビットをこの予測ランレングス符号化方式で符号化する。このようにして、グループ番号が確定するまで、判定ビットを予測ランレングス符号化方式で符号化し、確定したグループ番号が2以上の場合は、必要とする付加ビットを直接ストリームに出力する。この方法は、グループ番号が確定した時点で、上位の判定ビットの符号化を行わないので、処理速度が向上する。
【0138】
以上のような、多値系列への本発明の適用は、データ符号化の場合に限らず当然のことながら、データ復号化の場合にも同様なアルゴリズムによって適用することができる。
【0139】
【発明の効果】
以上説明したように、本発明のデータ符号化方法およびデータ符号化装置では、QMコーダ並みの符号化効率が得られる一方、符号化速度がQMコーダに比べ非常に速いものとなる。このため、現在使用されている各種の2値ビット列圧縮方式の中で最も実用性の面で優れたものとなる。しかも、段階的な符号化を行う場合は、バッファの容量を減少させることができ、マルコフモデル化等へ条件付き符号化に際し特に有利となる。また、符号化テーブル使用の場合は、符号化の速度を向上させることができる。
【0140】
また、本発明のデータ復号化方法およびデータ復号化装置では、同様に、QMコーダ並みの伸長効率が得られる一方、復号化速度がQMコーダに比べ非常に速いものとなる。このため、現在利用されている各種の2値ビット列復号方式の中で、実用上最も優れたものとなり、利便性が向上する。しかも、段階的な復号化を採用した場合は、バッファの容量を減少させることができ、マルコフモデル化等の条件付き復号化に際し特に有利となる。また、復号テーブル使用の場合は、復号化の速度を向上させることができる。
【図面の簡単な説明】
【図1】本発明の基本原理となるアルゴリズムの概要を説明するための図で、注目系列と予測ビット数runとの関係を示す図である。
【図2】本発明の基本原理となるアルゴリズムの概要を説明するための図で、図1の注目系列を分割した状態を示す図である。
【図3】本発明の基本原理となるアルゴリズムの概要を説明するための図で、図2の前半部注目系列をさらに分割した状態を示す図である。
【図4】本発明の前提となる基本的な符号化プロセスを説明するためのフローチャートで、符号化メインルーチンを示すフローチャートである。
【図5】本発明の前提となる基本的な符号化プロセスを説明するためのフローチャートで、符号化サブルーチンを示すフローチャートである。
【図6】本発明の前提となる基本的なデータ符号化方法による圧縮率と符号化時間を示す図である。
【図7】本発明のデータ符号化装置の第1の実施の形態の構成を示すブロック図である。
【図8】図7のデータ符号化装置の符号化テーブル部内の符号化テーブルを示す図で、予測ビット長が「1」の場合のテーブルを示す図である。
【図9】図7のデータ符号化装置の符号化テーブル部内の符号化テーブルを示す図で、予測ビット長が「2」の場合のテーブルを示す図である。
【図10】図7のデータ符号化装置の符号化テーブル部内の符号化テーブルを示す図で、予測ビット長が「4」の場合のテーブルを示す図である。
【図11】図7のデータ符号化装置の符号化テーブル部内の符号化テーブルを示す図で、予測ビット長が「8」の場合のテーブルを示す図である。
【図12】図7のデータ符号化装置の符号化制御部内の状態遷移表を示す図である。
【図13】本発明のデータ復号化装置の第1の実施の形態の構成を示すブロック図である。
【図14】図13のデータ復号化装置の復号テーブル部内の復号テーブルを示す図で、予測ビット長が「1」の場合のテーブルを示す図である。
【図15】図13のデータ復号化装置の復号テーブル部内の復号テーブルを示す図で、予測ビット長が「2」の場合のテーブルを示す図である。
【図16】図13のデータ復号化装置の復号テーブル部内の復号テーブルを示す図で、予測ビット長が「4」の場合のテーブルを示す図である。
【図17】図13のデータ復号化装置の復号テーブル部内の復号テーブルを示す図で、予測ビット長が「8」の場合のテーブルを示す図である。
【図18】本発明のデータ符号化装置の第2の実施の形態の構成を示すブロック図である。
【図19】本発明のデータ復号化装置の第2の実施の形態の構成を示すブロック図である。
【図20】本発明のアルゴリズムを多値系列データに適用する場合の1列を説明するための図で、入力シンボルを複数のグループに分けた状態を示す図である。
【図21】従来の算術符号型のエントロピー符号器であるQMコーダの構成を示す図である。
【図22】図21のQMコーダの動作を示すフローチャートである。
【符号の説明】
1 データ符号化装置
2 ビット列分解部
3 符号化テーブル部(符号化部の一部)
4 ストリーム生成部
5 符号化制御部(符号化部の一部)
10 データ復号化装置
11 ストリーム切り出し部
12 復号テーブル部(復号化部の一部)
13 デコードバッファ部
14 復号制御部(復号化部の一部)
CODE 復号予定の符号語信号(符号化されたデータ)
DECBIT 圧縮ビット列を示す信号
DECNUM デコードすべきビット数を示す信号
DECPATN デコードすべきパターンを示す信号
FAIL 予測の当たり外れを示す信号(フラグ)
LENGTH 圧縮ビット列のビット長および復号されたビット長を示す信号
RUN 予測ビット長を指示する信号
SW 優勢シンボルを指示する信号
TABLE 符号化テーブルや復号テーブルのテーブル番号を指定する信号

Claims (18)

  1. “0”および“1”からなる2値のビット列を入力する際、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する予測設定工程と、入力された上記予測ビット数からなる注目系列について予測が当たったときに符号語として“0”または“1”のいずれか一方の信号を予測当たり信号として出力かつ符号化し、次のn個のビット列を符号化する作業に移り、はずれたときに符号語として“0”または“1”のいずれか他方の信号を予測はずれ信号として出力すると共に、上記n個の予測ビット数より小さい数の区切りビット数で上記入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化する予測結果符号化工程とを備え、予測が所定回数はずれたときに上記予測ビット数をn個より少ない新減少予測ビット数として同様の予測設定工程と予測結果符号化工程とを再帰的に繰り返すことを特徴とするデータ符号化方法。
  2. “0”および“1”からなる2値のビット列を入力する際、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する予測設定工程と、入力されたn個のビット列からなる注目系列について予測が当たったときに符号語として“0”または“1”のいずれか一方の信号を予測当たり信号として出力かつ符号化し、次のn個のビット列を符号化する作業に移り、はずれたときに符号語として“0”または“1”のいずれか他方の信号を予測はずれ信号として出力すると共に、上記n個の予測ビット数より小さい数の区切りビット数で上記入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化する予測結果符号化工程とを備え、予測が規定回数当たったときに、上記予測ビット数をn個より多い新増加予測ビット数として同様の予測設定工程と予測結果符号化工程とを繰り返し行うことを特徴とするデータ符号化方法。
  3. 前記予測が規定回数当たったときに、前記予測ビット数をn個より多い新増加予測ビット数とすることを特徴とする請求項1記載のデータ符号化方法。
  4. 前記規定回数を2回とし、前記新増加予測ビット数を前記予測ビット数の2倍としたことを特徴とする請求項2または3記載のデータ符号化方法。
  5. 前記新減少予測ビット数が1となり、かつそのビットが劣勢シンボルのとき、以降の符号化において従来の劣勢シンボルを優勢シンボルとし、従来の優勢シンボルを劣勢シンボルとして符号化するようにしたことを特徴とする請求項1記載のデータ符号化方法。
  6. 前記区切りビット数を固定の所定値pとし、n≦pのときは、まとめて符号化するビット数をn個としたことを特徴とする請求項1、2、3、4または5記載のデータ符号化方法。
  7. 前記所定値pを4としたことを特徴とする請求項6記載のデータ符号化方法。
  8. “0”および“1”からなる2値のビット列を入力する際、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する予測設定工程と、入力された上記予測ビット数からなる注目系列について予測が当たったときに符号語として“0”または“1”のいずれか一方の信号を予測当たり信号として出力かつ符号化し、次のn個のビット列を符号化する作業に移り、はずれたときに符号語として“0”または“1”のいずれか他方の信号を予測はずれ信号として出力し符号化する予測結果符号化工程とを備え、この符号化工程において、符号化されるビットのパターンに対応した符号化データが予め記憶された符号化テーブルに基づいて符号化処理すると共に、予測が所定回数はずれたときに上記予測ビット数をn個より少ない新減少予測ビット数として同様の予測設定工程と予測結果符号化工程とを再帰的に繰り返すことを特徴とするデータ符号化方法。
  9. 前記符号化テーブルには、8ビット以下のパターンに対応した符号化データが書き込まれ、8ビットを超える符号化対応ビットに対しては前記符号化テーブルを用いずに符号化することを特徴とする請求項8記載のデータ符号化方法。
  10. “0”および“1”からなる2値の入力ビット列を圧縮して符号化するデータ符号化装置において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共にその優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する符号化制御部と、上記入力ビット列を一時記憶すると共に符号化すべきビット数とパターンを出力するビット列分解部と、上記入力ビット列のパターンに対応する符号化データを記憶した符号化テーブルを内蔵し、上記符号化制御部から入力する選択すべき上記符号化テーブルを示す信号ならびに上記ビット列分解部から入力する符号化すべきビット数およびパターンから所定の圧縮ビット列とそのビット長とを出力する符号化テーブル部と、上記圧縮ビット列を一旦バッファリングして固定のビット長にならして出力するストリーム生成部とを備え、上記予測が所定回数はずれたときに、上記予測ビット数をn個より少ない新減少予測ビット数として上記符号化制御部で設定し、上記予測が規定回数当たったときに、上記予測ビット数をn個より多い新増加予測ビット数として上記符号化制御部で設定することを特徴とするデータ符号化装置。
  11. 前記n個の予測ビット数より小さい数の区切りビット数で前記入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化することを特徴とする請求項10記載のデータ符号化装置。
  12. “0”および“1”からなる2値の入力ビット列を圧縮して符号化するデータ符号化装置において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共にその優勢シンボルがn個連続すると予測し、そのn個を予測ビット数として設定する符号化制御部と、上記入力ビット列を一時記憶すると共に、上記n個の予測ビット数より小さい数の区切りビット数で上記入力ビット列を区切り、その区切られたパターンに劣勢シンボルが含まれていたら、そのパターンを含むそれまでに続いた優勢シンボルのパターンをまとめて符号化する符号化部とを有することを特徴とするデータ符号化装置。
  13. 符号化されたデータを入力し、“0”および“1”からなる2値のビット列に復号化するデータ復号化方法において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個(nは1以上の整数)連続すると予測したその予測結果が“0”および“1”からなる2値のビット列で表わされた符号語を入力する入力工程と、その符号語を復号する復号工程とを有し、上記入力工程では、上記n個の予測ビットより小さい区切りビット数で区切られて符号化されたデータを入力し、上記復号工程では、入力された符号語が予測当たりの値のとき上記優勢シンボルをn個連続して復号すると共に、予測はずれのときは、上記区切られた中に劣勢シンボルが含まれていたら、その区切られた部分を含むそれまで続いた優勢シンボルの部分をまとめて復号し、予測当たりが所定回数連続したときは上記n個より多い数の優勢シンボルが連続すると新たに予測するようにしたことを特徴とするデータ復号化方法。
  14. 符号化されたデータを入力し、“0”および“1”からなる2値のビット列に復号化するデータ復号化方法において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとすると共に、その優勢シンボルがn個(nは1以上の整数)連続すると予測したその予測結果が“0”および“1”からなる2値のビット列で表わされた符号語を入力する入力工程と、その符号語を復号する復号工程とを有し、上記入力工程では、所定の数で区切られて符号化されたデータを入力し、上記復号工程では、入力された符号語と予測ビットの数とから復号されるビットパターンが指定される復号テーブルに基づいて復号し、予測当たりが所定回数連続したときは、上記n個より多い数の優勢シンボルが連続すると新たに予測したその予測結果を入力し、予測はずれが規程回数連続したときは、上記n個より少ない数の優勢シンボルが連続すると新たに予測したその予測結果を入力するようにしたことを特徴とするデータ復号化方法。
  15. 前記入力工程では、上記n個の予測ビットより小さい区切りビット数で区切られて符号化されたデータを入力し、前記復号工程では、予測はずれのとき、上記区切られた中に劣勢シンボルが含まれていたら、その区切られた部分を含むそれまで続いた優勢シンボルの部分をまとめて復号することを特徴とする請求項14記載のデータ復号化方法。
  16. 符号化されたデータとなる符号ビットを入力し、“0”および“1”からなる2値のビット列からなる復号ビットに復号するデータ復号化装置において、“0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルとしたとき、上記符号ビットの優勢シンボルと予測ビット長n個を設定する復号制御部と、入力される符号語に対応する復号パターンを各予測ビット長毎に表化した復号テーブルを有する復号テーブル部と、この復号テーブル部からの復号パターンと復号するビット数を入力し記憶すると共に所定ビット数毎に出力するデコードバッファ部とを備え、入力された符号ビットが予測当たり信号の場合、優勢シンボルを復号すると共に、上記予測当たり信号が所定回数連続したときは上記予測ビット長をn個より多い数に変更することを特徴とするデータ復号化装置。
  17. “0”または“1”のいずれか一方を優勢シンボルとし、いずれか他方を劣勢シンボルすると共にそのシンボルがn個(nは1以上の整数)連続すると予測したその予測結果が“0”および“1”からなる2値のビット列で表された符号ビットを復号する復号化装置において、上記符号ビットの予測ビット長と上記優勢シンボルを設定する復号制御部と、上記符号ビットを入力し、その符号ビットの値に応じて復号ビットを出力する復号化部と、上記復号ビットを入力し、一時保持すると共に復号ビットとして出力するデコードバッファ部とを備え、上記復号化部での復号を上記予測ビット長より少ない数の区切りビット数で行い、上記デコードバッファ部の容量を小さなものにすると共に、上記予測結果が所定回数連続して当たったとき、上記予測ビット長をn個より大きな数に変更し、上記予測結果が規程回数連続して外れたとき、上記予測ビット長をn個より小さい数に変更し、その予測ビット長が所定値となったとき、優勢シンボルと劣勢シンボルを逆転させるようにしたことを特徴とするデータ復号化装置。
  18. 前記復号化部に、入力される符号語に対応する復号パターンを各予測ビット長毎に表化した復号テーブルを有する復号テーブル部を設けたことを特徴とする請求項17記載のデータ復号化装置。
JP27726597A 1997-03-07 1997-10-09 データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置 Expired - Fee Related JP3648944B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27726597A JP3648944B2 (ja) 1997-03-07 1997-10-09 データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5341397 1997-03-07
JP9-53413 1997-03-07
JP27726597A JP3648944B2 (ja) 1997-03-07 1997-10-09 データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置

Publications (2)

Publication Number Publication Date
JPH10308673A JPH10308673A (ja) 1998-11-17
JP3648944B2 true JP3648944B2 (ja) 2005-05-18

Family

ID=26394123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27726597A Expired - Fee Related JP3648944B2 (ja) 1997-03-07 1997-10-09 データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置

Country Status (1)

Country Link
JP (1) JP3648944B2 (ja)

Also Published As

Publication number Publication date
JPH10308673A (ja) 1998-11-17

Similar Documents

Publication Publication Date Title
KR100950607B1 (ko) 허프만 코딩
US5572206A (en) Data compression method and system
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
JP2766302B2 (ja) 可変長符号並列解読方法および装置
JP3294026B2 (ja) 高速可変長復号化装置
GB2305089A (en) Method and apparatus for compressing arbitrary data
JPH09275349A (ja) データ圧縮装置及びデータ復元装置
US5877711A (en) Method and apparatus for performing adaptive data compression
US5594435A (en) Permutation-based data compression
JP2746109B2 (ja) ハフマン符号復号化回路
US5392036A (en) Efficient optimal data recopression method and apparatus
US6055273A (en) Data encoding and decoding method and device of a multiple-valued information source
JPH08167852A (ja) データ圧縮方法及び装置
JPH10320172A (ja) プログラム圧縮方法およびプログラム復号方法ならびにプログラム格納装置
JP3648944B2 (ja) データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置
JP2001136075A (ja) データ圧縮/復元装置及びデータ圧縮/復元プログラムを記録した記憶媒体
JP2537551B2 (ja) 可変長符号復号回路
JPH05252051A (ja) 直列データ・デコーダ
JP3482820B2 (ja) データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置
GB2311704A (en) Compression of arbitrary data using context modelling and entropy coding
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
KR100462060B1 (ko) 유니버셜 가변 길이 코드 부호어 다중 추출 방법 및 그를위한 룩-업 테이블 구성 방법
JPH05241776A (ja) データ圧縮方式
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050207

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080225

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090225

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090225

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100225

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110225

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110225

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120225

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130225

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130225

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees