JP3774425B2 - Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program - Google Patents
Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program Download PDFInfo
- Publication number
- JP3774425B2 JP3774425B2 JP2002250994A JP2002250994A JP3774425B2 JP 3774425 B2 JP3774425 B2 JP 3774425B2 JP 2002250994 A JP2002250994 A JP 2002250994A JP 2002250994 A JP2002250994 A JP 2002250994A JP 3774425 B2 JP3774425 B2 JP 3774425B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- encoded
- encoding
- generation block
- buffer
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、与えられた品質基準を保証する通信において用いられるデータ符号化・復号化方法及び装置に関し、特に、過去の系列の乱雑さを利用して、可能な限り短い符号長を達成するデータ符号化・復号化方法及び装置に関する。
【0002】
【従来の技術】
データ通信では、通信網上でのデータ転送量を圧縮し、また転送に必要な帯域幅を低減するために、情報源符号化を行う各種のデータ符号化・復号化方法及び装置が用いられている。
【0003】
このような情報源符号化の一つに、「フィードバックを持つビッツバック符号化」と呼ばれる手法がある。以下、「フィードバックを持つビッツバック符号化」を利用した従来の符号化システムについて説明する。図1は、フィードバックを持つビッツバック符号化を行う符号器の構成の概略を示しており、図2はこの符号器と対をなして使用される復号器の構成の概略を示している。
【0004】
図1に示すように、符号器10は、バッファ11、符号語選択装置12、算術復号器13及び多値情報源符号器14より構成されている。ここで、バッファ11には、あらかじめ適当な初期値が格納されている。この符号器による符号化では、まず最初に、符号語選択装置12が、入力データ15 vに対して、あらかじめ定められた条件つき確率分布
【0005】
【数1】
【0006】
を求め、これを算術復号器13へ伝える。次に、算術復号器13は、バッファ11に格納されたもっとも古いデータを取り出し、これを元に符号語選択装置12から与えられた分布{Q(h|v)}h ∈ Hを仮定して復号を行い、変換後のデータhを多値情報源符号器14に伝える。取り出されたデータは、バッファ11から削除される。次に、多値情報源符号器14は、その入力(v,h)(入力データ15 v及び算術復号器から出力されるh)に対して、可変長の記号列を与えて、これをバッファ11に格納する。多値情報源符号器14は、一対の入力(v,h)に対して、可変長の記号列(これをb*とする)を与える全単射の写像で記述されるものであるので、b*に対して、対応する(v,h)が存在すれば、それは一意に定まる。上記の動作をあらかじめ定められた個数の入力データに関して行い、入力データがなくなって時点で、バッファ11に残されたデータを復号器20(図2参照)に伝える。
【0007】
図2に示すように、復号器20は、バッファ21、符号語選択装置22、算術復号器23および多値情報源復号器24より構成されている。ここで、バッファ21の初期状態として、相手側の符号器10の動作が終了した時点でのその符号器10のバッファ11の状態を与える。なお、バッファ21内のデータ新しさとは、バッファ11に格納された時間で決まるものとする。多値情報源復号器24は、多値情報源符号器14での写像の逆写像を実行するものであり、可変長の記号列b*に対して一意に定まる(v,h)を出力する。
【0008】
復号を行う場合、最初に多値情報源復号器24は、バッファ21にある最も新しいデータを取り出し、これから(v,h)を出力する。多値情報源復号器24から出力されるデータのうち、vは、再生データ25として外部にも出力される。取り出されたデータは、バッファ21から削除される。(v,h)のうち、hは算術符号器23へ伝えられる。vは、再生データ25として出力されるとともに、符号語選択装置22へも伝えられる。符号語選択装置22は、入力データvに対して、あらかじめ定められた条件つき確率分布{Q(h|v)}h ∈ Hを求め、これを算術符号器23へ伝える。算術符号器23は、多値情報源復号器24から送られたvをもとに、符号語選択装置22から与えられた分布{Q(h|v)}h ∈ Hを仮定して符号化を行う。変換後のデータはバッファ21に格納される。上記の動作をあらかじめ定められた回数行う。このようにして再生データ25が逐次得られるが、再生データ25は、入力データ15とは逆順の時系列として出力される。
【0009】
図1、図2に示すような従来の符号化装置および復号化装置について、参考文献[1]、pp. 104-128に詳しく記されている。
【0010】
なお、この技術分野に関する参考文献としては、例えば、
[1] B. J. Frey, Graphical models for machine learning and digital communication, MIT Press, 1998.
[2] J. Rissanen and G. G. Langdon, "Arithmetic coding," IBM Journal of Research and Development, vol. 23, pp. 149-162, 1976.
[3] S. Arimoto, "An algorithm for calculating the capacity of an arbitrary discrete memoryless channel," IEEE Trans. Inform. Theory, vol. IT-18, pp. 14-20, Jan. 1972.
[4] R. E. Blahut, "Comptation of channel capacity and rate-distortion functions," IEEE Trans. Inform. Theory, vol. IT-18, pp. 460-473, Jul. 1972.
[5] N. Tishby, F. C. Pereira, and W. Bialek," The information bottleneck method," Proc. of the 37-th Annual Allerton Conference on Comunication, Control and Computing, pp. 368-377, 1999.がある。
【0011】
【発明が解決しようとする課題】
上述した従来の符号化システムでは、符号器10内の多値情報源符号器14と復号器20内の多値情報源復号器24とが互いに逆写像の関係にあり、また、符号器10内の算術復号器13と復号器20内の算術符号器23が互いに逆写像の関係にあることから、復号器のバッファ21の状態は、符号器のバッファ11の状態を、逆順の時間で完全に再現する。したがって、上述した従来の符号化システムでは、入力データと再生データの間に歪み(データの食い違い)が全くないことを前提としており、入力データと再生データの間に歪みを許す場合の動作は保証されていない。
【0012】
ところが、より短い符号語長を実現するために、入力データと再生データとの間に歪みを許す必要がある場合がある。例えば、以下に述べるような多端子情報源符号化、有歪み情報源符号化、復号器に部分補助情報を伴う情報源符号化などにおいては、入力データと再生データとの間に歪みを許す必要がある。
【0013】
多端子情報源符号化:
多端子情報源符号化では、離れたところにある複数の入力データをそれぞれ別々の符号器を用いて符号化して、復号器はそれらの符号語を元に、入力データの組を再生する。図3は、2つの入力データX,ZをそれぞれレートRX,RZで符号化する装置を表している。すなわち、fX、fZでそれぞれ表される符号器30X、30Zが設けられており、これらからの符号語が、gで表されている復号器31に入力し、入力データの組(X,Z)を出力する。ここでは、X,Zは、入力データもしくは再生データを表す確率変数である。また、H(X|Z)、H(Z|X)はそれぞれ条件つきエントロピーであり、H(XZ)はエントロピーであって、いずれもアルゴリズムが達成する符号化レート下限を表している。そして、この多端子情報源符号化のシステムにおいては、RX≧H(X|Z)、RZ≧H(Z|X)、RX+RZ≧H(XZ)の関係が成り立っている。多端子情報源符号化では、入力データと再生データの間の歪みをできる限り小さく、それぞれの符号器の符号化レートをできる限り小さくすることが望ましい。
【0014】
有歪み情報源符号化:
有歪み情報源符号化では、入力データYと再生データZの間に、歪み尺度ρで計ることのできるあらかじめ定められた歪みを許容したうえで、符号化レートをできる限り小さくする符号化を行う。図4は、入力データYをレートRYで符号化して、再生データZの間の歪みがEYZρ(Y,Z)(Eは平均を表す)以下となるような装置を表している。すなわち、fYで表される符号器40が設けられており、これからの符号語が、gで表されている復号器41に入力して、再生データZが得られるようになっている。ここでは、Yは入力データを表す確率変数であり、Zは再生データを表す確率変数であり、I(Y;Z)は相互情報量すなわちアルゴリズムが達成する符号化レートであり、EYZρ(Y,Z)はアルゴリズムが達成する平均歪みである。
【0015】
復号器に部分補助情報を伴う情報源符号化:
復号器に部分補助情報を伴う情報源符号化では、復号器においてもう一つの情報Yが利用できることを前提として、入力データXを再生する。図5は補助情報YをレートI(Y;Z)で符号化し、入力データXをレートH(X|Z)で符号化してXを再生する装置を表している。X,Yを入力データもしくは出力データを表す確率変数、Zを事前に与える確率変数として、fX、fYでそれぞれ表される符号器50X、50Yが設けられており、符号器50Xからは条件付エントロピーH(X|Z)、すなわちアルゴリズムが達成する符号レートで符号語が出力され、符号器50Yからは相互情報量I(Y;Z)、すなわちアルゴリズムが達成する符号化レートで符号語が出力され、gで表される復号器51はこれらの符号語に基づいて再生データを出力する。ここでも、入力データと再生データの間の歪みをできる限り小さく、それぞれの符号器の符号化レートをできる限り小さくすることが望ましい。
【0016】
本発明は、上記の従来システムの欠点に鑑みてなされたものであり、歪みを許す符号化を行うことを可能とすることによって、より小さい符号化レートを実現することができる、データ符号化・復号化方法及び装置を提供することを目的とする。
【0017】
【課題を解決するための手段】
本発明のデータ符号化方法は、入力データを符号化する方法であって、複数のブロックに分割された入力データの一つのブロックを、符号化写像生成ブロックと符号化対象ブロックに分割するステップと、符号器バッファに格納された符号化写像生成ブロックと符号化対象ブロックから符号化写像を用いて符号化対象ブロックの符号語を得るステップと、無歪み符号器によって符号化写像生成ブロックを用いて符号化写像生成ブロックの符号語を得るステップと、符号器バッファに残るもっとも古い符号化写像生成ブロックを破棄し、符号化写像生成ブロックを新たに符号器バッファに蓄積するステップと、これらの各ステップを複数のブロックがなくなるまで繰り返し実行するステップと、を有する。
【0018】
本発明のデータ復号化方法は、例えば上述のようにして生成された符号化対象ブロックの符号語と符号化写像生成ブロックの符号語とから再生データを獲得する復号化方法であって、符号化対象ブロックの符号語を取り出し、その符号化対象ブロックの符号語と復号器バッファに格納された符号化写像生成ブロックとに基づいて復号化写像によって符号化対象ブロックの再生データを得るステップと、符号化写像生成ブロックの符号語を取り出して無歪み復号器によって符号化写像生成ブロックを得るステップと、復号器バッファに残るもっとも古い符号化写像生成ブロックを破棄し、復号した符号化写像生成ブロックを新たに復号器バッファに蓄積するステップと、符号化対象ブロックの再生データと復号した符号化写像生成ブロックを連結して出力するステップと、これらの各ステップを全ての符号語がなくなるまで繰り返し実行するステップと、を有する。
【0019】
本発明のデータ符号化装置は、入力データを符号化するデータ符号化装置であって、複数のブロックに分割された入力データの各ブロックを、符号化写像生成ブロックと符号化対象ブロックに分割するブロック分割装置と、符号化写像生成ブロックを一時的に格納する符号器バッファと、符号器バッファの内容と符号化対象ブロックから符号化写像を用いて符号化対象ブロックの符号語を得る符号化写像部と、符号化写像生成ブロックから符号化写像生成ブロックの符号語を得る無歪み符号器と、を有し、新たな符号化写像生成ブロックが入力するつど符号器バッファにおいて最も古い符号化写像生成ブロックが破棄され、その新たな符号化写像生成ブロックが符号器バッファに蓄積される。
【0020】
本発明のデータ復号化装置は、
符号化対象ブロックの符号語と符号化写像生成ブロックの符号語とから再生データを獲得するデータ復号化装置であって、符号化写像生成ブロックの符号語を一時的に格納する復号器バッファと、符号化対象ブロックの符号語を取り出し、その符号化対象ブロックの符号語と復号器バッファの内容とに基づいて復号化写像によって符号化対象ブロックの再生データを得る復号化写像部と、符号化写像生成ブロックの符号語を取り出して符号化写像生成ブロックを得る無歪み復号器と、符号化対象ブロックの再生データと復号した符号化写像生成ブロックを連結して出力するブロック連結装置と、を有し、新たな符号化写像生成ブロックが復号されるつど復号器バッファにおいて最も古い符号化写像生成ブロックが破棄され、その新たな符号化写像生成ブロックが復号器バッファに蓄積される。
【0021】
最適な符号化レートを達成するために符号をランダムに構成しているが、その場合には、符号器と復号器の間で、同期した乱数が必要となる。そこで本発明では、乱数を得るために、過去に符号化した系列の一部をバッファに蓄えておき、そこから符号をランダムに構成する。さらに、乱数の同期を取るために、観測データを符号化する際に、「符号化対象ブロック」と「符号化写像生成ブロック」の2つに分割して、別々の符号化を行う。
【0022】
本発明による符号化・復号化方法と従来法との違いは以下の点である。
【0023】
従来法では、符号語の全てがバッファに蓄えられていたが、本発明では、効率よく符号化されるデータとバッファに蓄えるデータとに入力データを分割して別々に符号化することによって、バッファの同期を保ちつつ、より小さな符号化レートを持つ歪みを許す符号化を実現している。
【0024】
また、従来法では、固定された符号化写像・復号化写像(従来法では多値情報源符号器・多値情報源復号器が該当する)を用いて、バッファの内容を無歪みで符号化していたが、本発明では、バッファの内容を用いて符号化写像・復号化写像を動的に変更させることによって、より小さな符号化レートを持つ歪みを許す符号化を実現している。
【0025】
【発明の実施の形態】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。図6は、本発明の実施の一形態の符号化・復号化装置における符号化装置(符号器)の構成を示すブロック図であり、図7は図6の符号化装置と組み合わされて使用される復号化装置(復号器)の構成を示すブロック図である。以下の説明では、説明を分かりやすくするために、一つの情報源出力に関して記述しているが、実際には以下に述べる操作は複数の情報源出力に関して行われる。
【0026】
図6に示す符号器60は、入力データ65が入力し入力データ65をブロックに分割して各ブロックを符号化対象ブロック66と符号化写像生成ブロック67に分割するブロック分割装置61と、符号化写像生成ブロック67を一時的に格納するバッファ(すなわち符号器バッファ)62と、バッファ62の内容及び符号化対象ブロック66に基づいて符号化対象ブロックの符号語68を計算して出力する符号化写像部63と、符号化写像生成ブロック67から符号化写像生成ブロックの符号語69を計算して出力する無歪み符号器64と、から構成されている。ここで、符号化写像部63は、後述するような符号化写像を実行するものであり、無歪み符号器64とは、単射の写像で表されるものである。また、バッファ62には、適当な初期値が格納されている。
【0027】
次に、この符号器60の動作を説明する。最初に、ブロック分割装置61は、入力データ65をブロックに分割し、各ブロックを符号化対象ブロック66と符号化写像生成ブロック67とに分割する。次に、符号化写像部63は、バッファ62の内容を読み取り、情報源に即した符号化写像を用いて符号化対象ブロック66を符号化して符号化対象ブロックの符号語68を出力し、これを図7に示す復号器70に送信する。また、無歪み符号器64は、符号化写像生成ブロック67を符号化して符号化写像生成ブロック符号語69を出力し、これを復号器70に送信する。最後に、バッファ62は、その記録しているもっとも古いデータを破棄し、ブロック分割装置61から送られてきた符号化写像生成ブロック67を記録する。これらの処理は、入力データにおける処理すべきブロックがなくなるまで、繰り返して実行される。
【0028】
実際に符号化・復号化システムを構成する場合には、上述したような符号器60を必要な数だけ用意する。
【0029】
次に、復号器70について説明する。図7に示す復号器70は、複数の符号器60のそれぞれから符号化対象ブロックの符号語68及び符号化写像生成ブロックの符号語69を受け入れることができるようになっている。もちろん、単一の符号器60のみから符号化対象ブロックの符号語68及び符号化写像生成ブロックの符号語69が復号器70に入力してもよい。そして復号器70は、バッファ(すなわち復号器バッファ)71と、符号化対象ブロックの符号語68とバッファ71の内容とに基づき、復号化写像によって符号化対象ブロックの再生データ75を得る復号化写像部72と、符号化写像生成ブロックの符号語69を再生して符号化写像生成ブロック67を得る無歪み復号器73と、符号化対象ブロックの再生データ75と符号化写像生成ブロック67とを連結して再生データ76を得るブロック連結装置74と、から構成されている。ここで、無歪み復号器73は、図6で示される各符号器60の無歪み符号器64の表す写像の逆写像の集合体である。また、バッファ71は、各符号器60に対応するバッファ62の集合体として構成されており、各符号器のバッファ62と同じ初期値が格納され、初期値が格納された後は、無歪み復号器73から入力する符号化写像生成ブロック67を格納するようになっている。実際には、後述するように、符号器60のバッファ62に格納される初期値と復号器70のバッファ71に格納される初期値が一致するように、符号器60と復号器70の間で初期化処理が行われることになる。
【0030】
次に、この復号器70の動作を説明する。復号化写像部72は、バッファ71の内容を読み取り、図6に示すような各符号器60より符号化対象ブロックの符号語68を受信し、これらを用いて復号化写像により符号化対象ブロックの再生データ75を出力する。一方、無歪み復号器73は、各符号器60より符号化写像生成ブロック符号語69を受信し、これらより各符号器60の符号化写像生成ブロック67を再生する。続いて、ブロック連結装置74は、符号化対象ブロックの再生データ75と無歪み復号器から送られてきた符号化写像生成ブロック67を連結して、再生データ76とする。最後に、バッファ71は、その記録しているもっとも古いデータを破棄し、無歪み復号器73から送られてきた符号化写像生成ブロック67を記録する。
【0031】
以下、本発明の符号化・復号化方法及び装置について、多端子情報源符号化、有歪み情報源符号化、復号器に部分補助情報を伴う情報源符号化のそれぞれについて応用した場合を説明することにより、さらに詳しく説明する。最初に、以下の説明中に現れる記号の説明をする。
【0032】
集合
【0033】
【数2】
【0034】
の補集合と要素数をそれぞれ
【0035】
【数3】
【0036】
と書き、集合
【0037】
【数4】
【0038】
の差集合を
【0039】
【数5】
【0040】
と書く。集合
【0041】
【数6】
【0042】
を有限集合とし、
【0043】
【数7】
【0044】
とする。
【0045】
【数8】
【0046】
のi番目の要素をxiもしくは[xn]iと記す。またxn≡x1*…*xnに対してxi j≡xi*…*xjとする。 文字列の結合を与える演算を*とする。例えば、xn=(x1,...,xn),ym=(y1,...,ym)に対してxn*ym≡(x1,...,xn,y1,...,ym)である。符号器
【0047】
【数9】
【0048】
、復号器
【0049】
【数10】
【0050】
、の復号誤り文字数d(xn)を次のように定義する。
【0051】
【数11】
【0052】
これは、系列xnと再生された系列φn -1(φn(xn))との間の異なる文字の個数を表す。
【0053】
【数12】
【0054】
を
【0055】
【数13】
【0056】
桁で2進数表記したものとその逆写像とを、それぞれ、
【0057】
【数14】
【0058】
と記述する。同様に、
【0059】
【数15】
【0060】
を
【0061】
【数16】
【0062】
桁で2進数表記したものとその逆写像とを、それぞれ、
【0063】
【数17】
【0064】
と記述する。
【0065】
【数18】
【0066】
値の確率変数Xが与えられた時、対応する確率分布をμXと書く。また
【0067】
【数19】
【0068】
と書く。XのエントロピーH(X)を
【0069】
【数20】
【0070】
と定義する。X,Yの結合エントロピーをH(XY)、Yが与えられたときのXの条件つきエントロピーをH(X|Y)≡H(XY)−H(Y)、X,Yの相互情報量をI(X;Y)≡H(X)+H(Y)−H(XY)とする。
【0071】
【数21】
【0072】
上の確率分布ν、μのダイバージェンスD(ν‖μ)を以下のように定義する。
【0073】
【数22】
【0074】
【数23】
【0075】
から得られる経験分布
【0076】
【数24】
【0077】
を次のように定義する。
【0078】
【数25】
【0079】
これは、
【0080】
【数26】
【0081】
が、系列xn中のaの出現頻度を表すことを意味する。
【0082】
【数27】
【0083】
から得られる条件つき経験分布
【0084】
【数28】
【0085】
は任意の
【0086】
【数29】
【0087】
に対して、
【0088】
【数30】
【0089】
を満たす条件つき確率分布として定義される。これはyi=bが成り立つようなiであってさらにxi=aが成り立つiの頻度を表す。
【0090】
実数0<α<∞,γ>0、自然数kに対して、ζ(α,γ),λ(α,k)を次のように定義する。これらは数式の記述を簡潔にするために用いられる。
【0091】
【数31】
【0092】
iをnで割った余りをi%n,0≦i%n≦n−1とする。ここでiは2進数で表現されている場合もあることを注意しておく.
《多端子情報源符号化への応用》
ここで、本実施形態による符号化・復号化方法を多端子情報源符号化に適用した例を説明する。相関のある複数の情報源X,ZをそれぞれレートRX,RZで独立に符号化して復号器に送り、復号器がXとZを復号するものとする。システム構成としては、上述の図3に示したようなシステムを使用し、符号器30X、30Zとして、それぞれ、図6に示した符号器60を使用して情報源X,Yの符号化を行わせ、復号器31として図7に示した復号器70を使用してXとYとの復号を行わせるようにする。
【0093】
以下では、
【0094】
【数32】
【0095】
を仮定し、次の定義を用いる。
【0096】
【数33】
【0097】
【数34】
【0098】
を次のように定義する。
【0099】
【数35】
【0100】
そして
【0101】
【数36】
【0102】
に適当な順序を与えたときの
【0103】
【数37】
【0104】
の番号を
【0105】
【数38】
【0106】
と記す。
【0107】
【数39】
【0108】
を簡単に計算する方法として、算術符号(参考文献[2]参照)のアルゴリズム等が挙げられる。実際には、並べる順序は、性能の解析に影響しないので、任意に取ることができる。関数
【0109】
【数40】
【0110】
を以下のように定義する。
【0111】
【数41】
【0112】
πkは、
【0113】
【数42】
【0114】
の元を
【0115】
【数43】
【0116】
個ずつ束にして数字を割り当て、
【0117】
【数44】
【0118】
の元にはそれらとは異なる数字を割り当てる写像である。大雑把に言うと、
【0119】
【数45】
【0120】
等分されている。同様に
【0121】
【数46】
【0122】
を定義し、
【0123】
【数47】
【0124】
を用いてπk'を同様に定義する。
【0125】
qk≡Mk+k22kとする。全体の系列長
【0126】
【数48】
【0127】
に対して
【0128】
【数49】
【0129】
を、それぞれ重なりのない、長さk+2のサブブロックに分割する。サブブロック
【0130】
【数50】
【0131】
を次のように定義する。
【0132】
【数51】
【0133】
【数52】
【0134】
についても同様に定義する。
【0135】
【数53】
【0136】
の要素を
【0137】
【数54】
【0138】
桁の2進数で表記する写像をNXとし、その逆写像をNX -1とする。同様に、
【0139】
【数55】
【0140】
の要素を
【0141】
【数56】
【0142】
桁の2進数で表記する写像をNZとし、その逆写像をNZ -1とする。
【0143】
ここで、情報源Xを符号化する符号器(図3での符号器30X)での処理を説明する。上述したようにこの符号器には、図6に示した本発明による符号器60が使用される。図8は、符号化処理を説明するフローチャートである。なお、後述するように、情報源Zを符号化する符号器の動作も情報源Xを符号化する符号器の動作とほぼ同じであるから、図8は両方の符号器の動作を示しており、この図では、ステップA1〜A12は情報源Xを符号化する符号器の動作を表し、ステップB1〜B12は情報源Zを符号化する符号器の動作を表している。
【0144】
符号器60は、
【0145】
【数57】
【0146】
で表されるバッファ62を持っているものとする。ステップA1〜A6は、符号器60のバッファ62及び復号器70のバッファ71を初期化するために符号器60で実施されるステップであり、初めてステップA8を実行する時点(i=0)では、符号器のバッファ62と復号器のバッファ71の内容が同一となる。ステップA7〜A12は、本発明の方法による符号化のステップである。
【0147】
まず、ステップA1においてi←−Mkとし、ステップA2において、情報源Xに対応した集合を用いてバッファ62の全てに適当な初期値を格納する。そして、ステップA3において、i番目のサブブロックについての符号語を復号器70に送り、ステップA4において、i番目のサブブロック(ただし符号化写像生成ブロックに対応する部分)を用いてバッファ62を更新する。その後、iをインクリメントし(ステップA5)、ステップA6においてi=0であるかどうかを判断し、i=0であればステップA7に移行するものとし、i<0であればステップA3に戻る。
【0148】
ステップA7において、ブロック分割装置61は入力データ65のブロックを符号化写像生成ブロック67と符号化対象ブロック66に分割し、ステップA8において、符号化写像部63は、情報源Xに対応した符号化写像を用いることにより、バッファ62の内容と符号化対象ブロック66とに基づいて、符号化対象ブロックの符号語68を計算し、復号器70に送信する。一方、無歪み符号器64は情報源Xに対応する単射写像で表されており、ステップA9において無歪み符号器64は、符号化写像生成ブロックの符号語69を計算して復号器70に送信する。その後、ステップA10において、i番目のサブブロックの符号化写像生成ブロックを使用して、バッファ62内の最も古いデータを破棄してバッファ62を更新する。その後、iをインクリメントし(ステップA11)、ステップA12において、処理対象のブロック(入力データ65)がなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップA7へ戻る。
【0149】
下表に、アルゴリズムとして、以上説明したXを符号化する符号器での処理を詳細に示す。
【0150】
【表1】
【0151】
次に、情報源Zを符号化する符号器(図3での符号器30Z)での処理を説明する。上述したようにこの符号器には、図6に示した本発明による符号器60が使用される。実際には、Zの符号化に用いられる符号器での処理とXの符号器に用いられる符号器での処理は、情報源がXであるかZであるかの違いを除けばほとんど同じである。
【0152】
符号器60は、
【0153】
【数58】
【0154】
を持っているものとする。図8におけるステップB1〜B6は、符号器60のバッファ62及び復号器70のバッファ71を初期化するために符号器60で実施されるステップであり、初めてステップB8を実行する時点(i=0)では、符号器のバッファ62と復号器のバッファ71の内容が同一となる。ステップB7〜B12は、本発明の方法による符号化のステップである。
【0155】
下表に、アルゴリズムとして、以上説明したZを符号化する符号器での処理を詳細に示す。ここで、Xの符号器でのアルゴリズムとの本質的な相違点は、バッファの更新に[x(i)]1を用いていた代わりに[z(i)]2を用いている点である。これは、
【0156】
【数59】
【0157】
の独立性を保つためである。
【0158】
【表2】
【0159】
次に、Xの符号語とZの符号語とが入力してこれらを復号して出力する復号器(図3での復号器31)での処理を説明する。上述したようにこの復号器には、図7に示した本発明による復号器70が使用される。図9は復号化処理を説明するフローチャートである。
【0160】
最初に、
【0161】
【数60】
【0162】
を次のように定義する。
【0163】
【数61】
【0164】
復号器のバッファ71は、
【0165】
【数62】
【0166】
で表されるXの符号器のバッファ62と、
【0167】
【数63】
【0168】
で表されるZの符号器のバッファ62と、で構成されている。さらに復号器70は、データベース
【0169】
【数64】
【0170】
を持っているとする。
【0171】
ステップC1〜C7は、バッファ71の初期化するために復号器70で実施されるステップであり、初めてステップC8を実行する時点(i=0)では、符号器60のバッファ62と復号器70のバッファ71の内容が同一となる。ステップC8〜C15は、本発明の方法による復号化のステップである。
【0172】
まず、ステップC1においてi←−Mkとし、ステップC2において情報源X,Zのそれぞれごとにバッファ71に符号器60のバッファ62で用いたものと同じ集合の元を用いて初期値を格納する。そして、ステップC3において、XとZについてのそれぞれのi番目のサブブロックについての符号語を各符号器60から受信し、これを復号する。ステップC4では、XとZについて正しく復号されたサブブロック(符号化写像生成ブロックに対応する部分)を用いてバッファ71を更新する。さらにステップC5においては、情報源ごとにそのときのiの値に関してデータベースに対応する項目がある場合に、データベースも更新する。その後、iをインクリメントし(ステップC6)、ステップC7においてi=0であるかどうかを判断し、i=0であればステップC8に移行するものとし、i<0であればステップC3に戻る。
【0173】
ステップC8において、復号化写像部72は、ステップC5またはステップC10〜C12においてバッファ71から計算されたデータベースを用いて、符号化対象ブロックの再生データ75を計算する。すなわち、情報源ごとに符号化対象ブロックの符号語68を受信し、これに、その情報源に応じた復号化写像を適用して結果を求め、それらの結果に応じてデータベースを検索して符号化対象ブロックの再生データ75を決定する。
【0174】
ステップC9において、無歪み復号器73は、Xの符号器においてステップA9で符号化された符号化写像生成ブロックの符号語69を受信して、符号化写像生成ブロック67を復号し、同様に、Zの符号器においてステップB9で符号化された符号化写像生成ブロックの符号語69を受信して、符号化写像生成ブロック67を復号する。これらは常に正しく復号される。
【0175】
ステップC10においては、ステップC11におけるバッファ71の更新に先立って、その更新に関係する項目をデータベースから削除し、ステップC11においては、XとZについての正しく復号された符号化写像生成ブロックを用いて、バッファ71内の最も古いデータを破棄してバッファ71の更新を行い、ステップC12では、バッファ71での更新値に基づいてデータベースの更新を行う。その後、ステップC13において、ブロック連結装置74は、ステップC8で得られた符号化対象ブロックの再生データ75とステップC9で得られた符号化写像生成ブロック67を連結して再生データ76を得る。続いて、iをインクリメントし(ステップC14)、ステップC15において、処理対象のブロックがなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップC8へ戻る。
【0176】
下表に、アルゴリズムとして、以上説明した復号器での処理を詳細に示す。
【0177】
【表3】
【0178】
【表4】
【0179】
次に、上述した多端子情報源符号化への応用の一例について説明する。
【0180】
全体の系列
【0181】
【数65】
【0182】
に対する符号器の総符号長をそれぞれ
【0183】
【数66】
【0184】
とする。そして、復号誤り文字数を
【0185】
【数67】
【0186】
とする。
【0187】
その結果、X,Zを上述の条件(1)〜(3)を満たす相関のある定常無記憶情報源とする。このとき、次の性質が成り立つ。
【0188】
【数68】
【0189】
《有歪み情報源符号化への応用》
次に、本実施形態による符号化・復号化方法を有歪み情報源符号化に適用した例を説明する。ここでは、情報源YをレートRYで符号化し復号後に生じる歪みを許容するものとする。システム構成としては、上述の図4に示したようなシステムを使用し、符号器40として図6に示した符号器60を使用し、復号器41として図7に示した復号器70を使用するものとする。
【0190】
ここでは、歪み関数を
【0191】
【数69】
【0192】
として、
【0193】
【数70】
【0194】
を仮定する。そして、
【0195】
【数71】
【0196】
とする。
【0197】
【数72】
【0198】
を満たす結合分布
【0199】
【数73】
【0200】
を取る。そして、Zを周辺分布
【0201】
【数74】
【0202】
と対応する確率変数としたとき、I(y;z)>0を満たしていると仮定する。
【0203】
以下では、
【0204】
【数75】
【0205】
とする。
【0206】
【数76】
【0207】
を次のように定義する。
【0208】
【数77】
【0209】
【数78】
【0210】
を辞書式順序に並べた順序を与える関数をそれぞれ
【0211】
【数79】
【0212】
とする。
【0213】
そして関数
【0214】
【数80】
【0215】
を以下のように定義する。
【0216】
【数81】
【0217】
σkは、
【0218】
【数82】
【0219】
の元を
【0220】
【数83】
【0221】
個ずつ束にして割り当てた数字を
【0222】
【数84】
【0223】
によって
【0224】
【数85】
【0225】
の元に移し、
【0226】
【数86】
【0227】
の元にはあらかじめ定めた
【0228】
【数87】
【0229】
を割り当てる写像である。ここで、
【0230】
【数88】
【0231】
は以後の解析に影響しない。
【0232】
qk≡Mk+k22kとする。全体の系列長
【0233】
【数89】
【0234】
に対して、
【0235】
【数90】
【0236】
を重なりのない長さk+1のサブブロックに分割し、サブブロック
【0237】
【数91】
【0238】
を次のように定義する。
【0239】
【数92】
【0240】
【数93】
【0241】
の要素を
【0242】
【数94】
【0243】
桁の2進数で表記する写像をNYとし、その逆写像をNY -1とする。
【0244】
ここで符号器(図4での符号器40)での処理を説明する。上述したようにこの符号器には、図6に示した本発明による符号器60が使用される。図10は、符号化処理を説明するフローチャートである。
【0245】
符号器60は、
【0246】
【数95】
【0247】
で表されるバッファ62を持っているものとする。ステップF1〜F6は、符号器60のバッファ62及び復号器70のバッファ71を初期化するために符号器60で実施されるステップであり、初めてステップF8を実行する時点(i=0)では、符号器のバッファ62と復号器のバッファ71の内容が同一となる。ステップF7〜F12は、本発明の方法による符号化のステップである。
【0248】
まず、ステップF1においてi←−Mkとし、ステップF2において情報源Yに対応する集合を用いてバッファ62の全てに適当な初期値を格納する。そして、ステップF3において、i番目のサブブロックについての符号語を復号器70に送り、ステップF4において、i番目のサブブロック(ただし符号化写像生成ブロックに対応する部分)を用いてバッファ62を更新する。その後、iをインクリメントし(ステップF5)、ステップF6においてi=0であるかどうかを判断し、i=0であればステップF7に移行するものとし、i<0であればステップF3に戻る。
【0249】
ステップF7において、ブロック分割装置61は入力データ65のブロックを符号化写像生成ブロック67と符号化対象ブロック66に分割し、ステップF8において、符号化写像部63は、情報源Yに対応した符号化写像を用いることにより、バッファ62の内容と符号化対象ブロック66とに基づいて、符号化対象ブロックの符号語68を計算し、復号器70に送信する。一方、無歪み符号器64は情報源Yに対応する単射写像で表されるから、ステップF9においてこの無歪み符号器64は、符号化写像生成ブロックの符号語69を計算して復号器70に送信する。その後、ステップF10において、i番目のサブブロックの符号化写像生成ブロックを使用して、バッファ62内の最も古いデータを破棄してバッファ62を更新する。その後、iをインクリメントし(ステップF11)、ステップF12において、処理対象のブロック(入力データ65)がなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップF7へ戻る。
【0250】
下表に、アルゴリズムとして、以上説明した符号器での処理を詳細に示す。
【0251】
【表5】
【0252】
次に、復号器(図3での復号器31)での処理を説明する。上述したようにこの復号器には、図7に示した本発明による復号器70が使用される。図11は復号化処理を説明するフローチャートである。
【0253】
復号器のバッファ71は、
【0254】
【数96】
【0255】
で表される符号器のバッファ62で構成されている。
【0256】
ステップG1〜G6は、バッファ71の初期化するために復号器70で実施されるステップであり、初めてステップG8を実行する時点(i=0)では、符号器60のバッファ62と復号器70のバッファ71の内容が同一となる。ステップG7〜G12は、本発明の方法による復号化のステップである。
【0257】
まず、ステップG1においてi←−Mkとし、ステップG2においてバッファ71に符号器60のバッファ62で用いたものと同じ集合の元を用いて初期値を格納する。そして、ステップG3において、i番目のサブブロックについての符号語を各符号器60から受信し、これを復号する。ステップG4では、正しく復号されたサブブロック(符号化写像生成ブロックに対応する部分)を用いてバッファ71を更新する。その後、iをインクリメントし(ステップG5)、ステップG6においてi=0であるかどうかを判断し、i=0であればステップG7に移行するものとし、i<0であればステップG3に戻る。
【0258】
ステップG7において、復号化写像部72は、符号器60のステップF8で符号化された符号化対象ブロックの符号語68を受信し、この符号語とバッファ71の内容とに基づいて、情報源Yの復号化写像を用い、符号化対象ブロックの再生データ75を計算する。ステップG8において、無歪み復号器73は、符号器60においてステップF9で符号化された符号化写像生成ブロックの符号語69を受信して、符号化写像生成ブロック67を復号する。これは常に正しく復号される。ステップG9において、正しく復号された符号化写像生成ブロックを用いて、バッファ71内の最も古いデータを破棄してバッファ71の更新を行う。その後、ステップG10において、ブロック連結装置74は、ステップG7で得られた符号化対象ブロックの再生データ75とステップG8で得られた符号化写像生成ブロック67を連結して再生データ76を得る。続いて、iをインクリメントし(ステップG11)、ステップG12において、処理対象のブロックがなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップG7へ戻る。
【0259】
下表に、アルゴリズムとして、以上説明した復号器での処理を詳細に示す。
【0260】
【表6】
【0261】
次に、上述した有歪み情報源符号化への応用の一例について説明する。
【0262】
全体の系列
【0263】
【数97】
【0264】
に対する符号器の総符号長を
【0265】
【数98】
【0266】
とする。そして、復号の際に生じた歪みを
【0267】
【数99】
【0268】
とする。このとき、次の性質が成り立つ。
【0269】
性質:I(Y;Z)>0を満たす任意の分布pYZを取れば、
【0270】
【数100】
【0271】
ところで、レートと歪みはトレードオフの関係があり、最適な組合せは、レート歪み曲線と呼ばれる次の曲線上にある。
【0272】
【数101】
【0273】
分布pYZをArimoto-Blahutのアルゴリズム(参考文献[3],[4])を用いて、(I(Y;Z),EYZρ(Y,Z))がレート歪み曲線(歪みレート曲線)上にあるように取れば、次の性質が成立する。
【0274】
性質:(I(Y;Z),EYZρ(Y,Z))がレート歪み曲線(歪みレート曲線)上にあるように分布pYZを取れば、本実施形態によるアルゴリズムは漸近的に最適な有歪符号となる。
【0275】
《復号器に部分補助情報を伴う情報源符号化への応用》
次に、本実施形態による符号化・復号化方法を復号器に部分補助情報を伴う情報源符号化に適用した例を説明する。ここでは、情報源Yを部分補助情報としてレートRYで復号器に送り、Yと相関のある情報源XをレートRXで復号器に送って再生するものとする。システム構成としては、上述の図5に示したようなシステムを使用し、符号器50X、50Yとして、それぞれ、図6に示した符号器60を使用して情報源X,Yの符号化を行わせ、復号器51として図7に示した復号器70を使用してXの復号を行わせるようにする。
【0276】
ここでは、次の条件1〜4を満たす同時確率分布
【0277】
【数102】
【0278】
を用意する。
【0279】
【表7】
【0280】
【数103】
【0281】
を以下のように定義する。
【0282】
【数104】
【0283】
全体の系列長
【0284】
【数105】
【0285】
に対して、
【0286】
【数106】
【0287】
を、それぞれ重なりのない長さk+2のサブブロックに分割する。サブブロック
【0288】
【数107】
【0289】
を次のように定義する。
【0290】
【数108】
【0291】
【数109】
【0292】
についても上記と同様に定義する。
【0293】
【数110】
【0294】
の要素を
【0295】
【数111】
【0296】
桁の2進数で表記する写像をNXとし、その逆写像をNX -1とする。
【0297】
【数112】
【0298】
の要素を
【0299】
【数113】
【0300】
桁の2進数で表記する写像をNYとし、その逆写像をNY -1とする。
【0301】
ここで、情報源Xを符号化する符号器(図5での符号器50X)での処理を説明する。上述したようにこの符号器には、図6に示した本発明による符号器60が使用される。図12は、符号化処理を説明するフローチャートである。
【0302】
上記と同様に、
【0303】
【数114】
【0304】
を定義する。Xの符号器は、Slepian-Wolfの符号器とほとんど同じである。
【0305】
符号器は、
【0306】
【数115】
【0307】
で表されるバッファ62を持っているものとする。ステップP1〜P6は、符号器60のバッファ62及び復号器70のバッファ71を初期化するために符号器60で実施されるステップであり、初めてステップP8を実行する時点(i=0)では、符号器のバッファ62と復号器のバッファ71の内容が同一となる。ステップP7〜P12は、本発明の方法による符号化のステップである。
【0308】
まず、ステップP1においてi←−Mkとし、ステップP2において情報源Xに対応する集合を用いてバッファ62の全てに適当な初期値を格納する。そして、ステップP3において、i番目のサブブロックについての符号語を復号器70に送り、ステップP4において、i番目のサブブロック(ただし符号化写像生成ブロックに対応する部分)を用いてバッファ62を更新する。その後、iをインクリメントし(ステップP5)、ステップP6においてi=0であるかどうかを判断し、i=0であればステップP7に移行するものとし、i<0であればステップP3に戻る。
【0309】
ステップP7において、ブロック分割装置61は入力データ65のブロックを符号化写像生成ブロック67と符号化対象ブロック66に分割し、ステップP8において、符号化写像部63は、情報源Xに対応した符号化写像を用いることにより、バッファ62の内容と符号化対象ブロック66とに基づいて、符号化対象ブロックの符号語68を計算し、復号器70に送信する。一方、情報源Xに対応する単射写像で表される無歪み符号器64は、ステップP9において、符号化写像生成ブロックの符号語69を計算して復号器70に送信する。その後、ステップP10において、i番目のサブブロックの符号化写像生成ブロックを使用して、バッファ62内の最も古いデータを破棄してバッファ62を更新する。その後、iをインクリメントし(ステップP11)、ステップP12において、処理対象のブロック(入力データ65)がなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップP7へ戻る。
【0310】
下表に、アルゴリズムとして、以上説明した情報源Xを符号化する符号器での処理を詳細に示す。
【0311】
【表8】
【0312】
次に、部分補助情報源Yを符号化する符号器(図5での符号器50Y)での処理を説明する。上述したようにこの符号器には、図6に示した本発明による符号器60が使用される。実際には、この符号器での処理は、上述した有歪み情報源符号化での符号器での処理と、ほとんど同じである。図13は復号化処理を説明するフローチャートである。
【0313】
有歪み情報源符号化の場合と同様に、
【0314】
【数116】
【0315】
を定義し、さらに、
【0316】
【数117】
【0317】
を次のように定義する。
【0318】
【数118】
【0319】
符号器60は、
【0320】
【数119】
【0321】
で表されるバッファ62を持っているものとする。ステップQ1〜Q6は、符号器60のバッファ62を初期化するために符号器60で実施されるステップであり、初めてステップQ8を実行する時点(i=0)では、符号器のバッファ62と復号器のバッファ71の内容が同一となる。ステップQ7〜Q12は、本発明の方法による符号化のステップである。
【0322】
まず、ステップQ1においてi←−Mkとし、ステップQ2において部分補助情報源Yに対応する集合を用いてバッファ62の全てに適当な初期値を格納する。そして、ステップQ3において、i番目のサブブロックについての符号語を復号器70に送り、ステップQ4において、i番目のサブブロックを用いてバッファ62を更新する。その後、iをインクリメントし(ステップQ5)、ステップQ6においてi=0であるかどうかを判断し、i=0であればステップQ7に移行するものとし、i<0であればステップQ3に戻る。
【0323】
ステップQ7において、ブロック分割装置61は入力データ65のブロックを符号化写像生成ブロック67と符号化対象ブロック66に分割し、ステップQ8において、符号化写像部63は、部分補助情報源Yに応じた符号化写像を用いることにより、バッファ62の内容と符号化対象ブロック66とに基づいて、符号化対象ブロックの符号語68を計算し、復号器70に送信する。一方、ステップQ9において、部分補助情報源Yに対応する単射写像で表される無歪み符号器64は、符号化写像生成ブロックの符号語69を計算して復号器70に送信する。その後、ステップQ10において、i番目のサブブロックを使用して、バッファ62内の最も古いデータを破棄してバッファ62を更新する。その後、iをインクリメントし(ステップQ11)、ステップQ12において、処理対象のブロック(入力データ65)がなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップQ7へ戻る。
【0324】
下表に、アルゴリズムとして、以上説明した部分補助情報源Yを符号化する符号器での処理を詳細に示す。
【0325】
【表9】
【0326】
次に、復号器(図3での復号器31)での処理を説明する。上述したようにこの復号器には、図7に示した本発明による復号器70が使用される。図14は復号化処理を説明するフローチャートである。
【0327】
【数120】
【0328】
を次のように定義する。
【0329】
【数121】
【0330】
復号器70のバッファ71は、
【0331】
【数122】
【0332】
で表されるXの符号器のバッファ62と、
【0333】
【数123】
【0334】
で表されるYの符号器のバッファ62と、で構成される。さらに復号器70は、データベース
【0335】
【数124】
【0336】
を持っているとする。このデータベースは情報源Xに関するものである。
【0337】
ステップR1〜R7は、バッファ71の初期化するために復号器70で実施されるステップであり、初めてステップR8を実行する時点(i=0)では、符号器60のバッファ62と復号器70のバッファ71の内容が同一となる。ステップR8〜R15は、本発明の方法による復号化のステップである。
【0338】
まず、ステップR1においてi←−Mkとし、ステップR2において、情報源X及び部分補助情報源Yの双方に関しバッファ71に符号器60のバッファ62で用いたものと同じ集合の元を用いて初期値を格納する。そして、ステップR3において、XとYについてのそれぞれのi番目のサブブロックについての符号語を各符号器60から受信し、これを復号する。ステップR4では、XとYについて正しく復号されたサブブロックを用いてバッファ71を更新する。さらにステップR5においては、そのときのiの値に関して情報源Xについてのデータベースに対応する項目がある場合に、そのデータベースも更新する。その後、iをインクリメントし(ステップR6)、ステップR7においてi=0であるかどうかを判断し、i=0であればステップR8に移行するものとし、i<0であればステップR3に戻る。
【0339】
ステップR8において、復号化写像部72は、ステップR5またはステップR10〜R12においてバッファ71から計算されたデータベースを用いて、符号化対象ブロックの再生データ75を計算する。すなわち、情報源Xと部分補助情報源Yのそれぞれの符号化対象ブロックの符号語68を受信し、これに、それぞれに応じた復号化写像を適用して結果を求め、Xについての結果に応じてデータベースを検索し、これらから符号化対象ブロックの再生データ75を決定する。
【0340】
ステップR9において、無歪み復号器73は、Xの符号器においてステップP9で符号化された符号化写像生成ブロックの符号語69を受信して、符号化写像生成ブロック67を復号し、同様に、Yの符号器においてステップQ9で符号化された符号化写像生成ブロックの符号語69を受信して、符号化写像生成ブロック67を復号する。これらは常に正しく復号される。
【0341】
ステップR10においては、ステップR11におけるバッファ71の更新に先立って、その更新に関係する項目を情報源Xについてのデータベースから削除し、ステップR11においては、XとYについての正しく復号された符号化写像生成ブロックを用いて、バッファ71内の最も古いデータを破棄してバッファ71の更新を行い、ステップR12では、バッファ71での更新値に基づいて情報源Xについてのデータベースの更新を行う。その後、ステップR13において、ブロック連結装置74は、ステップR8で得られた符号化対象ブロックの再生データ75とステップR9で得られた符号化写像生成ブロック67を連結して再生データ76を得る。続いて、iをインクリメントし(ステップR14)、ステップR15において、処理対象のブロックがなくなったかどうかを判断するためにi=qk−Mkかどうかを判断し、i=qk−Mkならば処理を終了し、そうでなければステップR8へ戻る。
【0342】
下表に、アルゴリズムとして、以上説明した復号器での処理を詳細に示す。
【0343】
【表10】
【0344】
【表11】
【0345】
次に、上述した復号器に部分補助情報を伴う情報源符号化への応用の一例について説明する。
【0346】
全体の系列
【0347】
【数125】
【0348】
に対するXの符号器の総符号長とYの符号器の総符号長とをそれぞれ
【0349】
【数126】
【0350】
する。そして、復号誤り文字数を
【0351】
【数127】
【0352】
とする。このとき、次の性質が成り立つ。
【0353】
性質:X,Yを相関のある定常無記憶情報源として、同時分布pXYZは上述の条件1〜4を満たしているとする。このとき、
【0354】
【数128】
【0355】
一般に、最適なRXとRYの選択にはトレードオフの関係があり、双方を自由に小さくすることはできない。最適な(RX,RY)は、以下の関数の曲線上にある。
【0356】
【数129】
【0357】
ここでinfの中のpXYZは、条件1〜4のうちの条件1〜3を満たしているものとする。
【0358】
このとき、次の性質が成り立つ。
【0359】
性質:RX>0,RY>0に対して(H(X|Z),I(Y;Z))が曲線RX(RY),RY(RX)上にあるように分布pXYZを取れば、本実施形態のアルゴリズムは漸近的に最適な復号器に部分情報を伴う情報源符号化アルゴリズムとなる。
【0360】
なお、既知の分布μXYから上記曲線上にあるpXYZを見つける方法として、参考文献[5]による近似解法がある。
【0361】
以上説明した本発明の手法による符号器と復号器とは、いずれも、それらを実現するためのコンピュータプログラムをマイクロプロセッサなどのコンピュータに読み込ませ、そのプログラムを実行させることによっても実現できる。本発明の手法によってデータの符号化や復号化を行うためのプログラムは、CD−ROMやフラッシュメモリなどの記録媒体によって、コンピュータに読み込まれる。
【0362】
このようなコンピュータは、一般に、CPU(中央処理装置)と、プログラムやデータを格納するためのハードディスク装置あるいは不揮発性メモリなどの外部記憶装置と、主メモリと、キーボードやマウスや各種スイッチなどの入力装置と、CRTや各種表示ランプなどの表示装置と、CD−ROMやフラッシュメモリなどの記録媒体を読み取る読み取り装置と、入力データを受け付けるともに符号語などを復号器に送信するために使用される(符号器を構成する場合)、あるいは符号語などを符号器から受け付けるとともに再生データを出力するために使用される(復号器を構成する場合)インタフェースと、を備えている。外部記憶装置、主メモリ、入力装置、表示装置、読み取り装置及びインタフェースは、いずれもCPUに接続している。このコンピュータでは、上述した符号化手順あるいは復号化手順を行うためのプログラムを格納した記録媒体を読み取り装置に装着し、記録媒体からプログラムを読み出して外部記憶装置に格納し、外部記憶装置に格納されたプログラムをCPUが実行することにより、上述した符号器あるいは復号器として機能して上述の符号化手順あるいは復号化手順が実行される。
【0363】
【発明の効果】
以上述べたように本発明は、入力データを分割してそれぞれ別の符号化を行い、分割されたデータの一方を符号化写像の構成に利用することにより、従来のシステムでは実現できなかった、復号誤りを許す符号化にも適用でき、過去の系列の乱雑さを利用した符号化効率の良い符号化システムを実現できる、という効果がある。
【図面の簡単な説明】
【図1】ビッツバック符号器の構成を示すブロック図である。
【図2】ビッツバック復号器の構成を示すブロック図である。
【図3】多端子情報源符号化によるシステムの構成を示すブロック図である。
【図4】有歪み情報源符号化によるシステムの構成を示すブロック図である。
【図5】復号器に部分補助情報を伴う情報源符号化によるシステムの構成を示すブロック図である。
【図6】本発明に基づく符号化方法を実行する符号器の構成を示すブロック図である。
【図7】本発明に基づく復号化方法を実行する復号器の構成を示すブロック図である。
【図8】多端子情報源符号化に適用した場合の符号化手順を説明するフローチャートである。
【図9】多端子情報源符号化に適用した場合の復号化手順を説明するフローチャートである。
【図10】有歪み情報源符号化に適用した場合の符号化手順を説明するフローチャートである。
【図11】有歪み情報源符号化に適用した場合の復号化手順を説明するフローチャートである。
【図12】復号器に部分補助情報を伴う情報源符号化に適用した場合の情報源の符号化手順を説明するフローチャートである。
【図13】復号器に部分補助情報を伴う情報源符号化に適用した場合の部分補助情報源の符号化手順を説明するフローチャートである。
【図14】復号器に部分補助情報を伴う情報源符号化に適用した場合の復号化手順を説明するフローチャートである。
【符号の説明】
10、30X、30Z、40、50X、50Y、60 符号器
11、21、62、71 バッファ
12、22 符号語選択装置
13 算術復号器
14 多値情報源符号器
15、65 入力データ
20、31、41、51、70 復号器
23 算術符号器
24 多値情報源復号器
25、76 再生データ
61 ブロック分割装置
63 符号化写像部
64 無歪み符号器
66 符号化対象ブロック
67 符号化写像生成ブロック
68 符号化対象ブロックの符号語
69 符号化写像生成ブロックの符号語
72 復号化写像部
73 無歪み復号器
74 ブロック連結装置
75 符号化対象ブロックの再生データ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data encoding / decoding method and apparatus used in communication that guarantees a given quality standard, and in particular, data that achieves the shortest possible code length by using the randomness of past sequences. The present invention relates to an encoding / decoding method and apparatus.
[0002]
[Prior art]
In data communication, various data encoding / decoding methods and apparatuses that perform information source encoding are used to compress the amount of data transferred over a communication network and reduce the bandwidth required for the transfer. Yes.
[0003]
One such information source coding is a technique called “bitsback coding with feedback”. Hereinafter, a conventional coding system using “bitsback coding with feedback” will be described. FIG. 1 shows an outline of a configuration of an encoder that performs Bitsback encoding with feedback, and FIG. 2 shows an outline of a configuration of a decoder used in a pair with the encoder.
[0004]
As shown in FIG. 1, the
[0005]
[Expression 1]
[0006]
Is transmitted to the
[0007]
As shown in FIG. 2, the
[0008]
When performing decoding, first, the multilevel
[0009]
The conventional encoding device and decoding device shown in FIGS. 1 and 2 are described in detail in Reference [1], pp. 104-128.
[0010]
In addition, as a reference regarding this technical field, for example,
[1] B. J. Frey, Graphical models for machine learning and digital communication, MIT Press, 1998.
[2] J. Rissanen and G. G. Langdon, "Arithmetic coding," IBM Journal of Research and Development, vol. 23, pp. 149-162, 1976.
[3] S. Arimoto, "An algorithm for calculating the capacity of an arbitrary discrete memoryless channel," IEEE Trans. Inform. Theory, vol. IT-18, pp. 14-20, Jan. 1972.
[4] R. E. Blahut, "Comptation of channel capacity and rate-distortion functions," IEEE Trans. Inform. Theory, vol. IT-18, pp. 460-473, Jul. 1972.
[5] N. Tishby, F. C. Pereira, and W. Bialek, "The information bottleneck method," Proc. Of the 37-th Annual Allerton Conference on Comunication, Control and Computing, pp. 368-377, 1999.
[0011]
[Problems to be solved by the invention]
In the conventional coding system described above, the multilevel
[0012]
However, in order to realize a shorter codeword length, it may be necessary to allow distortion between input data and reproduced data. For example, in multi-terminal information source coding, distortion information source coding, and information source coding with partial auxiliary information in the decoder as described below, it is necessary to allow distortion between input data and reproduction data. There is.
[0013]
Multi-terminal source coding:
In multi-terminal information source coding, a plurality of input data located at different locations are encoded using different encoders, and the decoder reproduces a set of input data based on these codewords. FIG. 3 shows that the two input data X and Z are each given a rate RX, RZRepresents an encoding device. That is, fX, FZRespectively represented by encoders 30X, 30ZThe codewords from these are input to the decoder 31 represented by g, and an input data set (X, Z) is output. Here, X and Z are random variables representing input data or reproduction data. H (X | Z) and H (Z | X) are conditional entropies, and H (XZ) is entropy, both of which represent the lower limit of the encoding rate achieved by the algorithm. In this multi-terminal information source coding system, RX≧ H (X | Z), RZ≧ H (Z | X), RX+ RZThe relationship of ≧ H (XZ) is established. In multi-terminal information source coding, it is desirable that the distortion between input data and reproduction data is as small as possible, and the coding rate of each encoder is as small as possible.
[0014]
Distorted source coding:
In the distortion information source encoding, encoding is performed so as to make the encoding rate as small as possible after allowing a predetermined distortion that can be measured by the distortion measure ρ between the input data Y and the reproduction data Z. . FIG. 4 shows that input data Y is rate RYAnd the distortion between the reproduction data Z is EYZThis represents a device that is equal to or less than ρ (Y, Z) (E represents an average). That is, fYThe code word from now is input to the
[0015]
Source coding with partial auxiliary information in the decoder:
In the information source encoding with partial auxiliary information in the decoder, the input data X is reproduced on the assumption that another information Y can be used in the decoder. FIG. 5 shows an apparatus for reproducing X by encoding auxiliary information Y at a rate I (Y; Z) and encoding input data X at a rate H (X | Z). Assuming that X and Y are random variables representing input data or output data, and Z is a random variable given in advance, fX, FYRespectively represented by
[0016]
The present invention has been made in view of the drawbacks of the above-described conventional system, and enables data encoding / encoding that can realize a smaller encoding rate by enabling encoding that allows distortion. An object is to provide a decoding method and apparatus.
[0017]
[Means for Solving the Problems]
The data encoding method of the present invention is a method for encoding input data, and a step of dividing one block of input data divided into a plurality of blocks into an encoding map generation block and an encoding target block; , Encoder bufferEncoded map generation block stored inAnd obtaining a codeword of the encoding target block using the encoding mapping from the encoding target block, and obtaining a codeword of the encoding mapping generation block using the encoding mapping generation block by a distortion-free encoder, Discarding the oldest encoded map generation block remaining in the encoder buffer, accumulating the encoded map generation block in the encoder buffer, and repeatedly executing each of these steps until there are no more blocks; Have
[0018]
The data decoding method of the present invention is a decoding method for acquiring reproduction data from, for example, a codeword of a block to be encoded generated as described above and a codeword of an encoded mapping generation block. The code word of the target block is extracted, and the code word of the target block and the decoder bufferEncoded map generation block stored inAnd a step of obtaining reproduction data of a block to be encoded by decoding mapping, a step of obtaining a code word of the encoding mapping generation block and obtaining an encoding mapping generation block by a distortion-free decoder, and a decoder buffer A step of discarding the remaining old encoded map generation block, newly storing the decoded encoded map generation block in the decoder buffer, and connecting the reproduction data of the encoding target block and the decoded encoded map generation block; A step of outputting, and a step of repeatedly executing each of these steps until all codewords are exhausted.
[0019]
A data encoding apparatus according to the present invention is a data encoding apparatus that encodes input data, and divides each block of the input data divided into a plurality of blocks into an encoded map generation block and an encoding target block. A block division device, an encoder buffer for temporarily storing an encoded map generation block, and an encoded map for obtaining a codeword of the target block using the encoded map from the content of the encoder buffer and the target block for encoding And an undistorted encoder that obtains a codeword of the encoded map generation block from the encoded map generation block, and the oldest encoded map generation in the encoder buffer each time a new encoded map generation block is input The block is discarded and the new encoded map generation block is stored in the encoder buffer.
[0020]
The data decoding apparatus of the present invention
A data decoding device for acquiring reproduction data from a codeword of a coding target block and a codeword of a coded map generation block, a decoder buffer for temporarily storing the codeword of the coded map generation block; A decoding mapping unit that extracts a code word of a block to be encoded and obtains reproduction data of the block to be encoded by decoding mapping based on the code word of the block to be encoded and the contents of the decoder buffer; A distortion-free decoder that extracts a code word of the generated block and obtains an encoded mapping generation block; and a block concatenation apparatus that connects the reproduced data of the encoding target block and the decoded encoded mapping generation block and outputs the result. Each time a new encoded map generation block is decoded, the oldest encoded map generation block is discarded in the decoder buffer and the new encoding is generated. Image generation block is accumulated in the decoder buffer.
[0021]
In order to achieve an optimal encoding rate, codes are randomly configured. In this case, synchronized random numbers are required between the encoder and the decoder. Therefore, in the present invention, in order to obtain a random number, a part of a sequence encoded in the past is stored in a buffer, and the code is randomly constructed therefrom. Furthermore, in order to synchronize the random numbers, when the observation data is encoded, it is divided into two, “encoding target block” and “encoded mapping generation block”, and separate encoding is performed.
[0022]
The difference between the encoding / decoding method according to the present invention and the conventional method is as follows.
[0023]
In the conventional method, all of the codewords are stored in the buffer. However, in the present invention, the input data is divided into data to be efficiently encoded and data to be stored in the buffer, and encoded separately. Encoding that allows distortion with a smaller encoding rate is realized.
[0024]
Also, in the conventional method, the content of the buffer is encoded without distortion using a fixed encoding map / decoding map (in the conventional method, a multi-level information source encoder / multi-level information source decoder is applicable). However, in the present invention, the encoding mapping / decoding mapping is dynamically changed using the contents of the buffer, thereby realizing encoding that allows distortion with a smaller encoding rate.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
Next, a preferred embodiment of the present invention will be described with reference to the drawings. FIG. 6 is a block diagram showing a configuration of an encoding device (encoder) in the encoding / decoding device according to the embodiment of the present invention, and FIG. 7 is used in combination with the encoding device of FIG. It is a block diagram which shows the structure of the decoding apparatus (decoder). In the following description, in order to make the explanation easy to understand, a single information source output is described. However, in practice, the operations described below are performed for a plurality of information source outputs.
[0026]
The
[0027]
Next, the operation of the
[0028]
When actually configuring an encoding / decoding system, a necessary number of
[0029]
Next, the
[0030]
Next, the operation of the
[0031]
In the following, the encoding / decoding method and apparatus of the present invention will be described in the case of applying each of multi-terminal information source encoding, distortion information source encoding, and information source encoding with partial auxiliary information to the decoder. This will be described in more detail. First, the symbols appearing in the following explanation will be explained.
[0032]
set
[0033]
[Expression 2]
[0034]
The complementary set and the number of elements
[0035]
[Equation 3]
[0036]
Write, set
[0037]
[Expression 4]
[0038]
The difference set of
[0039]
[Equation 5]
[0040]
Write. set
[0041]
[Formula 6]
[0042]
Is a finite set,
[0043]
[Expression 7]
[0044]
And
[0045]
[Equation 8]
[0046]
The i th element of xiOr [xn]i. Xn≡x1* ... * xnFor xi j≡xi* ... * xjAnd The operation that gives the concatenation of character strings is *. For example, xn= (X1, ..., xn), Ym= (Y1, ..., ym) For xn* Ym≡ (x1, ..., xn, y1, ..., ym). Encoder
[0047]
[Equation 9]
[0048]
, Decoder
[0049]
[Expression 10]
[0050]
, D (xn) Is defined as follows.
[0051]
## EQU11 ##
[0052]
This is the series xnAnd regenerated series φn -1(φn(xn)) Represents the number of different characters.
[0053]
[Expression 12]
[0054]
The
[0055]
[Formula 13]
[0056]
The binary representation in digits and its inverse map, respectively,
[0057]
[Expression 14]
[0058]
Is described. Similarly,
[0059]
[Expression 15]
[0060]
The
[0061]
[Expression 16]
[0062]
The binary representation in digits and its inverse map, respectively,
[0063]
[Expression 17]
[0064]
Is described.
[0065]
[Formula 18]
[0066]
Given a random variable X of values, the corresponding probability distributionXWrite. Also
[0067]
[Equation 19]
[0068]
Write. X entropy H (X)
[0069]
[Expression 20]
[0070]
It is defined as The combined entropy of X and Y is H (XY), and the conditional entropy of X when Y is given is H (X | Y) ≡H (XY) -H (Y), and the mutual information of X and Y is Let I (X; Y) ≡H (X) + H (Y) −H (XY).
[0071]
[Expression 21]
[0072]
The divergence D (ν‖μ) of the above probability distribution ν and μ is defined as follows.
[0073]
[Expression 22]
[0074]
[Expression 23]
[0075]
Distribution from experience
[0076]
[Expression 24]
[0077]
Is defined as follows.
[0078]
[Expression 25]
[0079]
this is,
[0080]
[Equation 26]
[0081]
Is the series xnIt means to express the appearance frequency of a.
[0082]
[Expression 27]
[0083]
Conditional experience distribution obtained from
[0084]
[Expression 28]
[0085]
Any
[0086]
[Expression 29]
[0087]
Against
[0088]
[30]
[0089]
Defined as a conditional probability distribution that satisfies This is yi= I such that = b and xi= Represents the frequency of i for which a holds.
[0090]
For a
[0091]
[31]
[0092]
Let i% n, 0 ≦ i% n ≦ n−1 be the remainder of dividing i by n. Note that i may be expressed in binary.
<Application to multi-terminal source coding>
Here, an example in which the encoding / decoding method according to the present embodiment is applied to multi-terminal information source encoding will be described. A plurality of correlated information sources X and Z, each with a rate RX, RZAre independently encoded and sent to the decoder, and the decoder decodes X and Z. As a system configuration, the system as shown in FIG.X, 30Z6 to encode the information sources X and Y using the
[0093]
Below,
[0094]
[Expression 32]
[0095]
And the following definitions are used:
[0096]
[Expression 33]
[0097]
[Expression 34]
[0098]
Is defined as follows.
[0099]
[Expression 35]
[0100]
And
[0101]
[Expression 36]
[0102]
When given an appropriate order
[0103]
[Expression 37]
[0104]
Number
[0105]
[Formula 38]
[0106]
.
[0107]
[39]
[0108]
As a method for easily calculating, an algorithm of an arithmetic code (see reference [2]) and the like can be mentioned. Actually, the arrangement order does not affect the performance analysis, and can be arbitrarily set. function
[0109]
[Formula 40]
[0110]
Is defined as follows.
[0111]
[Expression 41]
[0112]
πkIs
[0113]
[Expression 42]
[0114]
The origin of
[0115]
[Equation 43]
[0116]
Assign numbers in bundles,
[0117]
(44)
[0118]
It is a mapping that assigns different numbers to them. Roughly speaking,
[0119]
[Equation 45]
[0120]
It is equally divided. As well
[0121]
[Equation 46]
[0122]
Define
[0123]
[Equation 47]
[0124]
Using πkDefine 'as well.
[0125]
qk≡Mk+ K22kAnd Overall series length
[0126]
[Formula 48]
[0127]
Against
[0128]
[Formula 49]
[0129]
Are divided into sub-blocks of length k + 2 that do not overlap each other. Sub-block
[0130]
[Equation 50]
[0131]
Is defined as follows.
[0132]
[Formula 51]
[0133]
[Formula 52]
[0134]
Is defined in the same way.
[0135]
[53]
[0136]
Elements of
[0137]
[Formula 54]
[0138]
N is a mapping expressed in binary digits.XAnd its inverse map is NX -1And Similarly,
[0139]
[Expression 55]
[0140]
Elements of
[0141]
[56]
[0142]
N is a mapping expressed in binary digits.ZAnd its inverse map is NZ -1And
[0143]
Here, an encoder for encoding the information source X (the encoder 30 in FIG. 3).X) Will be described. As described above, the
[0144]
The
[0145]
[Equation 57]
[0146]
It is assumed that a
[0147]
First, in step A1, i ← −MkIn step A2, appropriate initial values are stored in all the
[0148]
In step A7, the
[0149]
The following table shows in detail the processing in the encoder that encodes X described above as an algorithm.
[0150]
[Table 1]
[0151]
Next, an encoder for encoding the information source Z (the encoder 30 in FIG. 3).Z) Will be described. As described above, the
[0152]
The
[0153]
[Formula 58]
[0154]
Suppose you have Steps B1 to B6 in FIG. 8 are steps performed by the
[0155]
The following table shows in detail the processing in the encoder that encodes Z described above as an algorithm. Here, the essential difference from the algorithm in the X encoder is that [x (i)]1Instead of using [z (i)]2It is a point using. this is,
[0156]
[Formula 59]
[0157]
This is in order to maintain the independence.
[0158]
[Table 2]
[0159]
Next, processing in a decoder (decoder 31 in FIG. 3) that inputs X codewords and Z codewords, decodes them, and outputs them will be described. As described above, the
[0160]
At first,
[0161]
[Expression 60]
[0162]
Is defined as follows.
[0163]
[Equation 61]
[0164]
The
[0165]
[62]
[0166]
An
[0167]
[Equation 63]
[0168]
And a
[0169]
[Expression 64]
[0170]
Suppose you have
[0171]
Steps C1 to C7 are steps performed by the
[0172]
First, in step C1, i ← −MkIn step C2, the initial values are stored in the
[0173]
In step C8, the
[0174]
In step C9, the distortion-
[0175]
In step C10, prior to updating the
[0176]
The following table shows the processing in the decoder described above in detail as an algorithm.
[0177]
[Table 3]
[0178]
[Table 4]
[0179]
Next, an example of application to the above-described multi-terminal information source encoding will be described.
[0180]
Whole series
[0181]
[Equation 65]
[0182]
The total code length of the encoder for
[0183]
[Equation 66]
[0184]
And And the number of decoding error characters
[0185]
[Expression 67]
[0186]
And
[0187]
As a result, X and Z are set as correlated steady memoryless information sources satisfying the above conditions (1) to (3). At this time, the following properties hold.
[0188]
[Equation 68]
[0189]
<Application to distortion source coding>
Next, an example in which the encoding / decoding method according to the present embodiment is applied to distortion information source encoding will be described. Here, information source Y is rate RYThe distortion that occurs after encoding and decoding is allowed. As the system configuration, the system shown in FIG. 4 is used, the
[0190]
Here, the distortion function
[0191]
[Equation 69]
[0192]
As
[0193]
[Equation 70]
[0194]
Assuming And
[0195]
[Equation 71]
[0196]
And
[0197]
[Equation 72]
[0198]
Connection distribution satisfying
[0199]
[Equation 73]
[0200]
I take the. And Z is the marginal distribution
[0201]
[Equation 74]
[0202]
, It is assumed that I (y; z)> 0 is satisfied.
[0203]
Below,
[0204]
[75]
[0205]
And
[0206]
[76]
[0207]
Is defined as follows.
[0208]
[77]
[0209]
[Formula 78]
[0210]
Function to give the order of lexicographic order
[0211]
[79]
[0212]
And
[0213]
And function
[0214]
[80]
[0215]
Is defined as follows.
[0216]
[Formula 81]
[0217]
σkIs
[0218]
[Formula 82]
[0219]
The origin of
[0220]
[Formula 83]
[0221]
Numbers assigned in bundles
[0222]
[Expression 84]
[0223]
By
[0224]
[Expression 85]
[0225]
Moved to
[0226]
[86]
[0227]
Pre-determined
[0228]
[Expression 87]
[0229]
Is a mapping that assigns here,
[0230]
[Equation 88]
[0231]
Does not affect subsequent analysis.
[0232]
qk≡Mk+ K22kAnd Overall series length
[0233]
[Expression 89]
[0234]
Against
[0235]
[90]
[0236]
Is divided into non-overlapping sub-blocks of length k + 1 and sub-blocks
[0237]
[91]
[0238]
Is defined as follows.
[0239]
[Equation 92]
[0240]
[Equation 93]
[0241]
Elements of
[0242]
[Equation 94]
[0243]
N is a mapping expressed in binary digits.YAnd its inverse map is NY -1And
[0244]
Here, the processing in the encoder (
[0245]
The
[0246]
[95]
[0247]
It is assumed that a
[0248]
First, in step F1, i ← −MkIn step F2, appropriate initial values are stored in all the
[0249]
In step F7, the
[0250]
The table below shows the processing in the encoder described above in detail as an algorithm.
[0251]
[Table 5]
[0252]
Next, processing in the decoder (decoder 31 in FIG. 3) will be described. As described above, the
[0253]
The
[0254]
[Equation 96]
[0255]
It is comprised by the
[0256]
Steps G1 to G6 are steps performed by the
[0257]
First, in step G1, i ← −MkIn step G2, the initial value is stored in the
[0258]
In step G7, the
[0259]
The following table shows the processing in the decoder described above in detail as an algorithm.
[0260]
[Table 6]
[0261]
Next, an example of application to the above-described distortion information source coding will be described.
[0262]
Whole series
[0263]
[Equation 97]
[0264]
The total code length of the encoder for
[0265]
[Equation 98]
[0266]
And And the distortion that occurred during decoding
[0267]
[99]
[0268]
And At this time, the following properties hold.
[0269]
Property: Arbitrary distribution p satisfying I (Y; Z)> 0YZIf you take
[0270]
[Expression 100]
[0271]
By the way, there is a trade-off relationship between rate and distortion, and the optimum combination is on the following curve called a rate distortion curve.
[0272]
## EQU1 ##
[0273]
Distribution pYZUsing the Arimoto-Blahut algorithm (references [3], [4]), (I (Y; Z), EYZIf ρ (Y, Z)) is on the rate distortion curve (distortion rate curve), the following properties are established.
[0274]
Properties: (I (Y; Z), EYZThe distribution p so that ρ (Y, Z)) is on the rate distortion curve (distortion rate curve).YZIf this is taken, the algorithm according to the present embodiment is asymptotically the optimal distorted code.
[0275]
<< Application to source coding with partial auxiliary information in decoder >>
Next, an example in which the encoding / decoding method according to the present embodiment is applied to information source encoding with partial auxiliary information in a decoder will be described. Here, rate R with information source Y as partial auxiliary informationYThe information source X correlated with Y is sent to the decoder at the rate RXAnd sent to the decoder for playback. As the system configuration, the system as shown in FIG.X, 50Y6, each of the information sources X and Y is encoded using the
[0276]
Here, the joint probability distribution satisfying the following
[0277]
## EQU10 ##
[0278]
Prepare.
[0279]
[Table 7]
[0280]
[Formula 103]
[0281]
Is defined as follows.
[0282]
[Formula 104]
[0283]
Overall series length
[0284]
[Formula 105]
[0285]
Against
[0286]
[Formula 106]
[0287]
Are divided into sub-blocks of length k + 2 that do not overlap each other. Sub-block
[0288]
[Expression 107]
[0289]
Is defined as follows.
[0290]
[Formula 108]
[0291]
[Formula 109]
[0292]
Is defined in the same manner as described above.
[0293]
## EQU1 ##
[0294]
Elements of
[0295]
[Formula 111]
[0296]
N is a mapping expressed in binary digits.XAnd its inverse map is NX -1And
[0297]
## EQU1 ##
[0298]
Elements of
[0299]
[Formula 113]
[0300]
N is a mapping expressed in binary digits.YAnd its inverse map is NY -1And
[0301]
Here, an encoder for encoding the information source X (the
[0302]
As above,
[0303]
[Formula 114]
[0304]
Define The X encoder is almost the same as the Slepian-Wolf encoder.
[0305]
The encoder is
[0306]
[Expression 115]
[0307]
It is assumed that a
[0308]
First, in step P1, i ← −MkIn step P2, appropriate initial values are stored in all the
[0309]
In step P7, the
[0310]
The following table shows in detail the processing in the encoder that encodes the information source X described above as an algorithm.
[0311]
[Table 8]
[0312]
Next, an encoder for encoding the partial auxiliary information source Y (the
[0313]
As with distortion source coding,
[0314]
[Formula 116]
[0315]
Define
[0316]
[Expression 117]
[0317]
Is defined as follows.
[0318]
[Formula 118]
[0319]
The
[0320]
[Formula 119]
[0321]
It is assumed that a
[0322]
First, in step Q1, i ← −MkIn step Q2, appropriate initial values are stored in all the
[0323]
In step Q7, the
[0324]
The following table shows in detail the processing in the encoder that encodes the partial auxiliary information source Y described above as an algorithm.
[0325]
[Table 9]
[0326]
Next, processing in the decoder (decoder 31 in FIG. 3) will be described. As described above, the
[0327]
[Expression 120]
[0328]
Is defined as follows.
[0329]
[Equation 121]
[0330]
The
[0331]
[Equation 122]
[0332]
An
[0333]
[Formula 123]
[0334]
[0335]
[Expression 124]
[0336]
Suppose you have This database relates to the information source X.
[0337]
Steps R1 to R7 are steps performed by the
[0338]
First, in step R1, i ← −MkIn step R2, initial values are stored in the
[0339]
In step R8, the
[0340]
In step R9, the distortion-
[0341]
In step R10, prior to updating the
[0342]
The following table shows the processing in the decoder described above in detail as an algorithm.
[0343]
[Table 10]
[0344]
[Table 11]
[0345]
Next, an example of application to information source coding with partial auxiliary information in the above-described decoder will be described.
[0346]
Whole series
[0347]
[Expression 125]
[0348]
The total code length of the X encoder and the total code length of the Y encoder for
[0349]
[Expression 126]
[0350]
To do. And the number of decoding error characters
[0351]
[Expression 127]
[0352]
And At this time, the following properties hold.
[0353]
Property: Simultaneous distribution p with X and Y as correlated steady memoryless information sourcesXYZAssume that the
[0354]
[Expression 128]
[0355]
In general, optimal RXAnd RYThere is a trade-off relationship between the choices, and both cannot be reduced freely. Optimal (RX, RY) Is on the curve of the following function.
[0356]
[Expression 129]
[0357]
P in inf hereXYZSatisfies the conditions 1-3 of the conditions 1-4.
[0358]
At this time, the following properties hold.
[0359]
Property: RX> 0, RY(H (X | Z), I (Y; Z)) is curve R for> 0X(RY), RY(RX) Distribution p as aboveXYZIf this is taken, the algorithm of this embodiment will be an information source encoding algorithm with partial information in an asymptotically optimal decoder.
[0360]
The known distribution μXYTo p on the above curveXYZThere is an approximate solution according to the reference [5].
[0361]
Both the encoder and the decoder according to the method of the present invention described above can be realized by reading a computer program for realizing them into a computer such as a microprocessor and executing the program. A program for encoding and decoding data by the method of the present invention is read into a computer by a recording medium such as a CD-ROM or a flash memory.
[0362]
Such a computer generally has a CPU (central processing unit), an external storage device such as a hard disk device or a nonvolatile memory for storing programs and data, a main memory, and inputs such as a keyboard, a mouse, and various switches. It is used to display a device, a display device such as a CRT or various display lamps, a reading device that reads a recording medium such as a CD-ROM or a flash memory, and accepts input data and transmits a code word or the like to a decoder ( An interface for receiving a code word or the like from the encoder and outputting reproduction data (for configuring a decoder). The external storage device, main memory, input device, display device, reading device, and interface are all connected to the CPU. In this computer, a recording medium storing a program for performing the above-described encoding procedure or decoding procedure is loaded into a reading device, the program is read from the recording medium, stored in an external storage device, and stored in the external storage device. When the program is executed by the CPU, the above-described encoding procedure or decoding procedure is executed by functioning as the above-described encoder or decoder.
[0363]
【The invention's effect】
As described above, the present invention divides the input data and performs separate encoding, and one of the divided data is used for the configuration of the encoded map, which cannot be realized in the conventional system. The present invention can also be applied to encoding that allows decoding errors, and has an effect of realizing an encoding system with high encoding efficiency that uses the randomness of past sequences.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a Bitsback encoder.
FIG. 2 is a block diagram showing a configuration of a Bitsback decoder.
FIG. 3 is a block diagram showing a system configuration based on multi-terminal information source encoding.
FIG. 4 is a block diagram showing a system configuration based on distortion information source coding.
FIG. 5 is a block diagram showing the configuration of a system based on information source coding with partial auxiliary information in a decoder.
FIG. 6 is a block diagram showing a configuration of an encoder that executes an encoding method according to the present invention.
FIG. 7 is a block diagram showing a configuration of a decoder that executes a decoding method according to the present invention.
FIG. 8 is a flowchart illustrating an encoding procedure when applied to multi-terminal information source encoding.
FIG. 9 is a flowchart illustrating a decoding procedure when applied to multi-terminal information source encoding.
FIG. 10 is a flowchart illustrating an encoding procedure when applied to distortion information source encoding.
FIG. 11 is a flowchart illustrating a decoding procedure when applied to distortion information source encoding.
FIG. 12 is a flowchart for explaining an information source encoding procedure when applied to information source encoding with partial auxiliary information in a decoder;
FIG. 13 is a flowchart illustrating an encoding procedure of a partial auxiliary information source when applied to information source encoding with partial auxiliary information in a decoder.
FIG. 14 is a flowchart for explaining a decoding procedure when the decoder is applied to information source coding with partial auxiliary information.
[Explanation of symbols]
10, 30X, 30Z, 40, 50X, 50Y60 encoder
11, 21, 62, 71 buffer
12, 22 Codeword selection device
13 Arithmetic decoder
14 Multi-level information source encoder
15, 65 Input data
20, 31, 41, 51, 70 Decoder
23 Arithmetic encoder
24 Multi-level information source decoder
25, 76 Playback data
61 Block divider
63 Coding map part
64 Undistorted encoder
66 Encoding target block
67 Encoded Map Generation Block
68 Codeword of the encoding target block
69 Codeword of encoded map generation block
72 Decoding mapping unit
73 Undistorted decoder
74 Block connecting device
75 Playback data of encoding target block
Claims (14)
複数のブロックに分割された入力データの一つのブロックを、符号化写像生成ブロックと符号化対象ブロックに分割するステップと、
符号器バッファに格納された符号化写像生成ブロックと前記符号化対象ブロックから符号化写像を用いて符号化対象ブロックの符号語を得るステップと、
無歪み符号器によって前記符号化写像生成ブロックを用いて符号化写像生成ブロックの符号語を得るステップと、
前記符号器バッファに残るもっとも古い符号化写像生成ブロックを破棄し、符号化写像生成ブロックを新たに前記符号器バッファに蓄積するステップと、
前記各ステップを前記複数のブロックがなくなるまで繰り返し実行するステップと、
を有する、データ符号化方法。A method for encoding input data, comprising:
Dividing one block of input data divided into a plurality of blocks into an encoding map generation block and an encoding target block;
Obtaining a codeword of the encoding target block from the encoding mapping generation block stored in the encoder buffer and the encoding target block using the encoding mapping;
Obtaining a codeword of the encoded map generation block using the encoded map generation block by a distortion-free encoder;
Discarding the oldest encoded mapping generation block remaining in the encoder buffer and newly storing the encoded mapping generation block in the encoder buffer;
Repeatedly executing each step until the plurality of blocks disappears;
A data encoding method comprising:
前記符号化対象ブロックの符号語を取り出し、当該符号化対象ブロックの符号語と復号器バッファに格納された符号化写像生成ブロックとに基づいて復号化写像によって符号化対象ブロックの再生データを得るステップと、
前記符号化写像生成ブロックの符号語を取り出して無歪み復号器によって符号化写像生成ブロックを得るステップと、
前記復号器バッファに残るもっとも古い符号化写像生成ブロックを破棄し、復号した符号化写像生成ブロックを新たに前記復号器バッファに蓄積するステップと、
前記符号化対象ブロックの再生データと前記復号した符号化写像生成ブロックを連結して出力するステップと、
前記各ステップを全ての符号語がなくなるまで繰り返し実行するステップと、
を有するデータ復号化方法。A decoding method for acquiring reproduction data from a codeword of a block to be encoded and a codeword of an encoded map generation block,
A step of taking out a code word of the encoding target block and obtaining reproduction data of the encoding target block by decoding mapping based on the code word of the encoding target block and the encoded mapping generation block stored in the decoder buffer When,
Extracting a codeword of the encoded map generation block and obtaining an encoded map generation block by a distortion-free decoder;
Discarding the oldest encoded map generation block remaining in the decoder buffer and newly storing the decoded encoded map generation block in the decoder buffer;
Concatenating and outputting the reproduction data of the encoding target block and the decoded encoded mapping generation block;
Repeatedly executing each step until all codewords are exhausted;
A data decoding method comprising:
複数のブロックに分割された入力データの各ブロックを、符号化写像生成ブロックと符号化対象ブロックに分割するブロック分割装置と、
前記符号化写像生成ブロックを一時的に格納する符号器バッファと、
前記符号器バッファの内容と前記符号化対象ブロックから符号化写像を用いて符号化対象ブロックの符号語を得る符号化写像部と、
前記符号化写像生成ブロックから前記符号化写像生成ブロックの符号語を得る無歪み符号器と、
を有し、
新たな符号化写像生成ブロックが入力するつど前記符号器バッファにおいて最も古い符号化写像生成ブロックが破棄され、当該新たな符号化写像生成ブロックが前記符号器バッファに蓄積される、データ符号化装置。A data encoding device for encoding input data,
A block dividing device that divides each block of input data divided into a plurality of blocks into an encoded mapping generation block and an encoding target block;
An encoder buffer for temporarily storing the encoded map generation block;
An encoding mapping unit that obtains a codeword of an encoding target block using an encoding mapping from the content of the encoder buffer and the encoding target block;
A distortionless encoder for obtaining a codeword of the encoded map generation block from the encoded map generation block;
Have
A data encoding apparatus, wherein each time a new encoded map generation block is input, the oldest encoded map generation block in the encoder buffer is discarded, and the new encoded map generation block is stored in the encoder buffer.
前記符号化写像生成ブロックの符号語を一時的に格納する復号器バッファと、
前記符号化対象ブロックの符号語を取り出し、該符号化対象ブロックの符号語と前記復号器バッファの内容とに基づいて復号化写像によって符号化対象ブロックの再生データを得る復号化写像部と、
前記符号化写像生成ブロックの符号語を取り出して符号化写像生成ブロックを得る無歪み復号器と、
前記符号化対象ブロックの再生データと前記復号した符号化写像生成ブロックを連結して出力するブロック連結装置と、
を有し、
新たな符号化写像生成ブロックが復号されるつど前記復号器バッファにおいて最も古い符号化写像生成ブロックが破棄され、当該新たな符号化写像生成ブロックが前記復号器バッファに蓄積される、データ復号化装置。A data decoding device for acquiring reproduction data from a codeword of a block to be encoded and a codeword of an encoded mapping generation block,
A decoder buffer for temporarily storing codewords of the encoded map generation block;
A decoding mapping unit that extracts a code word of the encoding target block and obtains reproduction data of the encoding target block by decoding mapping based on the code word of the encoding target block and the content of the decoder buffer;
A distortion-free decoder that obtains an encoded map generation block by extracting a codeword of the encoded map generation block;
A block concatenation device for concatenating and outputting the reproduction data of the encoding target block and the decoded encoded map generation block;
Have
A data decoding device in which each time a new encoded map generation block is decoded, the oldest encoded map generation block is discarded in the decoder buffer, and the new encoded map generation block is stored in the decoder buffer. .
複数のブロックに分割された入力データの一つのブロックを、符号化写像生成ブロックと符号化対象ブロックに分割する処理と、
符号器バッファに格納された符号化写像生成ブロックと前記符号化対象ブロックから符号化写像を用いて符号化対象ブロックの符号語を得る処理と、
無歪み符号器によって前記符号化写像生成ブロックを用いて符号化写像生成ブロックの符号語を得る処理と、
前記符号器バッファに残るもっとも古い符号化写像生成ブロックを破棄し、符号化写像生成ブロックを新たに前記符号器バッファに蓄積する処理と、
前記各処理を前記複数のブロックがなくなるまで繰り返し実行する処理と、
を実行させる、データ符号化プログラム。On the computer,
A process of dividing one block of input data divided into a plurality of blocks into an encoding map generation block and an encoding target block;
A process of obtaining a code word of the encoding target block using the encoding mapping from the encoding mapping generation block stored in the encoder buffer and the encoding target block;
A process of obtaining a codeword of the encoded map generation block using the encoded map generation block by a distortion-free encoder;
Discarding the oldest encoded map generation block remaining in the encoder buffer and newly storing the encoded map generation block in the encoder buffer;
A process of repeatedly executing each of the processes until the plurality of blocks disappear;
A data encoding program for executing
符号化対象ブロックの符号語と符号化写像生成ブロックの符号語とを受信する処理と、
前記符号化対象ブロックの符号語を取り出し、当該符号化対象ブロックの符号語と復号器バッファに格納された符号化写像生成ブロックとに基づいて復号化写像によって符号化対象ブロックの再生データを得る処理と、
前記符号化写像生成ブロックの符号語を取り出して無歪み復号器によって符号化写像生成ブロックを得る処理と、
前記復号器バッファに残るもっとも古い符号化写像生成ブロックを破棄し、復号した符号化写像生成ブロックを新たに前記復号器バッファに蓄積する処理と、
前記符号化対象ブロックの再生データと前記復号した符号化写像生成ブロックを連結して出力する処理と、
前記各処理を全ての符号語がなくなるまで繰り返し実行する処理と、
を実行させる、データ復号化プログラム。On the computer,
A process of receiving a codeword of an encoding target block and a codeword of an encoding mapping generation block;
Processing for extracting a code word of the encoding target block and obtaining reproduction data of the encoding target block by decoding mapping based on the code word of the encoding target block and the encoded mapping generation block stored in the decoder buffer When,
A process of taking a codeword of the encoded map generation block and obtaining an encoded map generation block by a distortion-free decoder;
Discarding the oldest encoded map generation block remaining in the decoder buffer and newly storing the decoded encoded map generation block in the decoder buffer;
A process of concatenating and outputting the reproduction data of the encoding target block and the decoded encoded mapping generation block;
A process of repeatedly executing each process until all codewords are exhausted;
A data decryption program for executing
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002250994A JP3774425B2 (en) | 2002-08-29 | 2002-08-29 | Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002250994A JP3774425B2 (en) | 2002-08-29 | 2002-08-29 | Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004096174A JP2004096174A (en) | 2004-03-25 |
| JP3774425B2 true JP3774425B2 (en) | 2006-05-17 |
Family
ID=32057689
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002250994A Expired - Fee Related JP3774425B2 (en) | 2002-08-29 | 2002-08-29 | Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3774425B2 (en) |
-
2002
- 2002-08-29 JP JP2002250994A patent/JP3774425B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004096174A (en) | 2004-03-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101841103B1 (en) | Vlsi efficient huffman encoding apparatus and method | |
| JP4905562B2 (en) | Data compression apparatus and data restoration apparatus | |
| US8456332B2 (en) | Systems and methods for compression of logical data objects for storage | |
| US5703581A (en) | Method and apparatus for data compression and decompression | |
| JPH08228342A (en) | Compression method and context modeler | |
| JP2005217842A (en) | Data compression method, data restoration method and program thereof | |
| JP4179640B2 (en) | Arithmetic coding and decoding of information signals | |
| CN103702133B (en) | A kind of compression of images methods of exhibiting and its device | |
| JP5656593B2 (en) | Apparatus and method for decoding encoded data | |
| JPH07295785A (en) | Data compressing method | |
| Saravanan et al. | Enhancing efficiency of huffman coding using Lempel Ziv coding for image compression | |
| JP2836467B2 (en) | Binary symbol encoding / decoding circuit | |
| US20060170574A1 (en) | Method and apparatus for compressing and decompressing data, and computer product | |
| JP2011114546A (en) | Data compressor, data decompressor, data compression program, and data decompression program | |
| JP3774425B2 (en) | Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program | |
| JP4758494B2 (en) | Circuit and method for converting bit length to code | |
| TW516326B (en) | Data transformation for explicit transmission of control information | |
| KR101256893B1 (en) | Apparatus and method for encoding/coding data | |
| JP3429623B2 (en) | High-speed variable-length code decoding device | |
| JP2002185331A (en) | How to filter digital data | |
| JP2005521324A (en) | Method and apparatus for lossless data compression and decompression | |
| JP4953145B2 (en) | Character string data compression apparatus and method, and character string data restoration apparatus and method | |
| Alwahab | New Technology to improve an Image Compression using the LZW Algorithm | |
| Chandrasekhar et al. | Compressing feature sets with digital search trees | |
| JP3688064B2 (en) | Image compression method and image compression apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040728 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040728 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040728 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050614 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051114 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051116 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060116 |
|
| 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: 20060208 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060217 |
|
| 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: 20090224 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |