説明

符号化復号化システム、符号化装置、復号化装置、符号化復号化方法、符号化プログラム及び復号化プログラム

【課題】量子化誤差をより低減することができる符号化復号化システム、符号化装置、復号化装置、符号化復号化方法、符号化プログラム及び復号化プログラムを提供すること。
【解決手段】本発明にかかる符号化復号化システムは、入力値に対して、特定の量子化幅で符号化を行って符号化値を生成して送信する符号化装置と、符号化装置から送信された符号化値を復号化して入力値を生成する復号化装置とを備える。符号化装置は、第1の入力値の次に入力される第2の入力値までを積分した第2の積分値と、第1の入力値までを積分した第1の積分値との積分差分値を算出するとともに、第2の入力値と第1の入力値との入力差分値を算出する差分算出手段と、積分差分値及び入力差分値に基づいて、積分差分値及び入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する符号化手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化復号化システム、符号化装置、復号化装置、符号化復号化方法、符号化プログラム及び復号化プログラムに関する。
【背景技術】
【0002】
近年、リアルタイム性が高い携帯電話等の音声装置において、高効率及び低負荷で処理可能な音声圧縮方式の需要が高まってきている。そこで、効率的な圧縮が可能な音声圧縮方式であるADPCM(Adaptive Differential Pulse Code Modulation)圧縮方式が注目されている。ADPCM圧縮方式はリアルタイム性に優れている圧縮方式である。ADPCM圧縮方式は、MP3(MPEG Audio Layer-3)等の音声圧縮方式と比較した場合に、リアルタイム性において有利である。ADPCM圧縮方式は、様々な音声装置に採用されている。そのため、ADPCM圧縮方式による音質向上の需要が高っている。
【0003】
特許文献1には、入力信号のADPCM圧縮による符号化時に量子化誤差を減少させることができる符号化復号化装置が開示されている。図6は、特許文献1に開示されている符号化復号化装置の構成図である。特許文献1に開示されている符号化復号化装置は、積分器100、ADPCM符号化部101、ADPCM復号化部102及び微分器103を有する。
【0004】
積分器100は、入力信号を積分してADPCM符号化部101に出力する。ADPCM符号化部101は、積分器100から出力された信号をADPCMによって符号化して出力する。つまり、ADPCM復号化部102は、一般的なADPCMのように入力信号の差分を符号化するのではなく、入力信号を積分した信号の差分を符号化することになる。ADPCM復号化部102は、ADPCM符号化部101から出力された信号をADPCMによって復号化して出力する。微分器103は、ADPCM復号化部102から出力された信号を微分する。特許文献1では、このように、積分器100によって信号の変動幅を減少することで、ADPCMによる符号化における予測誤差を小さくすることができ、それによって、量子化誤差を減少することができる、としている。
【0005】
しかし、特許文献1に開示の技術では、一般的なADPCMによる符号化と比較して、量子化誤差が増加してしまう場合があるという問題がある。ここで、特許文献1では積分時に信号を1/2の大きさにしているため厳密には異なるが、問題の理解を容易にするために、入力信号の積分値の差分値を|ΣP(t)(t:1〜i+1)−ΣP(t)(t:1〜i)|とし、入力信号の差分値を|P(i+1)−P(i)|として説明する。入力信号の積分値の差分値|ΣP(t)(t:1〜i+1)−ΣP(t)(t:1〜i)|は、入力信号P(1)から入力信号P(i+1)までの積分値と、入力信号P(1)から入力信号P(i)までの積分値との差分値を示す。入力信号の差分値|P(i+1)−P(i)|は、入力信号P(i+1)と入力信号P(i)との差分値を示す。iは、1以上の正整数である。P(1)、P(2)、P(3)・・・の順に入力信号が入力される場合について説明する。
【0006】
例えば、入力信号P(i)と入力信号P(i+1)とで、値が大きく、かつ、同程度の大きさの入力信号が続いた場合、入力信号の積分値の差分値の方が、値が大きくなってしまう。つまり、ADPCMにおいて、入力信号の差分値を符号化する場合に比べて、入力信号の積分値の差分値を符号化する場合の方が、予測誤差が大きくなってしまうことがある。この場合、例えば、ADPCMにおける量子化幅が、入力信号P(i)及び入力信号P(i+1)の大きさに追従して適応的に変更しきれてない場合は、入力信号の差分値を符号化する場合と比較して、入力信号の積分値の差分値を符号化する場合の方が、量子化誤差が大きくなってしまう。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平05−289699号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に開示する技術のように、入力値の積分値の差分値のみを符号化する技術では、量子化誤差を十分に低減することができていないという課題がある。
【課題を解決するための手段】
【0009】
本発明の第1の態様にかかる符号化復号化システムは、第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行って、当該符号化によって生成された符号化値を送信する符号化装置と、当該符号化装置から送信された符号化値を復号化して前記入力値を生成する復号化装置と、を備え、前記符号化装置は、前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出する差分算出手段と、前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する符号化手段と、を有するものである。
【0010】
本発明の第2の態様にかかる符号化装置は、第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行う符号化装置であって、前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出する差分算出手段と、前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する符号化手段と、を備えたものである。
【0011】
本発明の第3の態様にかかる復号化装置は、第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化が行われて生成された符号化値を復号化して前記入力値を生成する復号化装置であって、前記第2の入力値までの入力値を積分した第2の積分値と前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値、及び、前記第2の入力値と前記第1の入力値との差分である入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなると判定された差分値が符号化された符号化値を復号化するものである。
【0012】
本発明の第4の態様にかかる符号化復号化方法は、第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行って符号化値を生成し、当該符号化値を復号化して前記入力値を生成する符号化復号化方法であって、前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出し、前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化するものである。
【0013】
本発明の第5の態様にかかる符号化プログラムは、第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行う処理をコンピュータに実行させる符号化プログラムであって、前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出する処理と、前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する処理と、をコンピュータに実行させるものである。
【0014】
本発明の第5の態様にかかる復号化プログラムは、第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化が行われて生成された符号化値を復号化して前記入力値を生成する処理をコンピュータに実行させる復号化プログラムであって、前記第2の入力値までの入力値を積分した第2の積分値と前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値、及び、前記第2の入力値と前記第1の入力値との差分である入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなると判定された差分値が符号化された符号化値を復号化する処理をコンピュータに実行させるものである。
【0015】
上述した本発明の各態様によれば、入力値の積分値の差分値と入力値の差分値とのうち、量子化誤差がより小さくなる差分値によって、符号化及び復号化を行うことができる。
【発明の効果】
【0016】
上述した本発明の各態様によれば、量子化誤差をより低減することができる符号化復号化システム、符号化装置、復号化装置、符号化復号化方法、符号化プログラム及び復号化プログラムを提供することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態にかかる符号化復号化システムのブロック図である。
【図2】本発明の実施の形態にかかるADPCM符号化部の処理を示すフローチャートである。
【図3】本発明の実施の形態にかかる量子化差分値とADPCM値の対応表を示す図である。
【図4】本発明の実施の形態にかかる量子化差分値と量子化パラメータとの対応表を示す図である。
【図5】本発明の実施の形態にかかるADPCM復号化部の処理を示すフローチャートである。
【図6】特許文献1に開示されている符号化復号化装置の構成図である。
【発明を実施するための形態】
【0018】
図1を参照して、本実施の形態にかかる符号化復号化システム1の構成について説明する。図1は、本発明の実施の形態にかかる符号化復号化システムのブロック図である。
【0019】
符号化復号化システム1は、ADPCM符号化部10及びADPCM復号化部20を有する。ADPCM符号化部10は、PCM(Pulse Code Modulation)値入力手段11、ADPCM値算出手段12、ADPCM値記憶手段13、次回量子化幅・予測値算出手段14及び量子化パラメータ差分情報記憶手段15を有する。ADPCM復号化部20は、ADPCM値入力手段21、PCM値算出手段22、PCM値出力手段23及び量子化パラメータ差分情報記憶手段24を有する。符号化復号化システム1は、様々な用途に適用可能である。
【0020】
ADPCM符号化部10は、複数のPCM値が順次入力される。ADPCM符号化部10は、PCM値に対して、特定の量子化幅で符号化を行う。ADPCM符号化部10は、ADPCMによる符号化を行う。ADPCM符号化部10は、復号化によって生成したADPCM値をADPCM復号化部20に送信する。ADPCM符号化部10は、例えば、入力された音声からPCM値を生成して、生成したPCM値を符号化する符号化装置に含まれる。
【0021】
ADPCM復号化部20は、ADPCM符号化部10から送信されたADPCM値を復号化してPCM値を生成する。ADPCM復号化部20は、ADPCMによる復号化を行う。ADPCM復号化部20は、例えば、ADPCM符号化された情報をPCM値に復号化して、復号化したPCM値に基づいて音声を再生する復号化装置に含まれる。
【0022】
PCM値入力手段11は、外部からPCM値が順次入力される。PCM値入力手段11は、入力されたPCM値をADCPM値算出手段12に出力する。
【0023】
ADPCM値算出手段12は、PCM値入力手段11から出力されたPCM値に基づいて、PCM値の積分値の差分値と、PCM値の差分値とを算出する。ADPCM値算出手段12は、算出したPCM値の積分値の差分値とPCM値の差分値とに基づいて、それらの差分値のうち、量子化誤差がより小さくなる差分値を判定する。ADPCM値算出手段12は、量子化誤差がより小さくなると判定した差分値を符号化してADPCM値を生成する。ここで、ADPCM値算出手段12は、PCM値入力手段11から出力されたPCM値と、次回量子化幅・予測値算出手段14から出力された量子化幅及び予測値とに基づいて、差分値を所望のビット幅に圧縮したADPCM値を生成する。予測値については、後に詳述する。ADPCM値算出手段12は、生成したADPCM値をADPCM値記憶手段13及び次回量子化幅・予測値算出手段14に出力する。ADPCM値算出手段12は、差分算出手段及び符号化手段に対応する。
【0024】
ADPCM値記憶手段13は、ADPCM値算出手段12から出力されたADPCM値を記憶する。ADPCM値記憶手段13は、記憶したADPCM値をADPCM復号化部20に送信する。
【0025】
次回量子化幅・予測値算出手段14は、ADPCM値算出手段12から出力されたADPCM値と、量子化パラメータ差分情報記憶手段15に格納された量子化パラメータとに基づいて、次回のADPCM値の生成に使用される量子化幅及び予測値を算出する。差分情報、量子化パラメータ及び予測値については、後に詳述する。次回量子化幅・予測値算出手段14は、算出した量子化幅及び予測値をADPCM値算出手段12及び自身に出力する。ADPCM符号化部10に含まれる各手段11〜14における処理は、外部から入力されるPCM値数分、繰り返して実行される。
【0026】
量子化パラメータ差分情報記憶手段15は、量子化パラメータ及び差分情報が格納される。量子化パラメータは、今回のADPCM値の生成に使用された量子化幅に基づいて、次回のADPCM値の生成に使用される量子化幅を算出するための係数である。差分情報は、ADPCM値算出手段12によって量子化誤差がより小さくなると判定された差分値を、符号化して復号化した差分値である。つまり、差分情報は、符号化後の差分値の予測値となる。
【0027】
ADPCM値入力手段21は、ADPCM符号化部10から送信されたADPCM値が入力される。ADPCM値入力手段21は、入力されたADPCM値をPCM値算出手段22に出力する。
【0028】
PCM値算出手段22は、量子化パラメータ差分情報記憶手段24に格納された量子化パラメータに基づいて、量子化幅を算出する。PCM値算出手段22は、算出した量子化幅に基づいて、ADPCM値入力手段21から出力されたADPCM値を復号化してPCM値を生成する。PCM値算出手段22は、生成したPCM値をPCM値出力手段23に出力する。
【0029】
PCM値出力手段23は、PCM値算出手段22から出力されたPCM値を外部に出力する。例えば、ADPCM復号化部20が音声を再生する再生装置に含まれる場合、再生装置は、PCM値出力手段23から出力されたPCM値に基づいて音声を再生する。
量子化パラメータ差分情報記憶手段24は、量子化パラメータが格納される。
【0030】
本実施の形態にかる符号化復号化システム1は、上述した構成によって、PCM値の積分値の差分値とPCM値の差分値とのうち、量子化誤差がより小さくなる差分値を符号化する。これによって、量子化誤差を低減したADPCM符号化を行うことができるようにしている。
【0031】
続いて、図2を参照して、本発明の実施の形態にかかるADPCM符号化部10の処理について説明する。図2は、本発明の実施の形態にかかるADPCM符号化部10の処理を示すフローチャートである。
【0032】
なお、PCM値を4ビットに圧縮して符号化する例について説明する。以下の説明において、iは、PCM値サンプル番号を示し、P(i)は、i番目のPCM値を示し、A(i)は、i番目のADPCM値を示す。iは、1〜N−1の正整数である。Nは、PCM値のサンプル数を示し、2以上の正整数である。
【0033】
ADPCM値算出手段12は、PCM値入力手段11から出力されたPCM値P(1)〜P(i+1)に基づいて、積分PCM値ΣP(t)(t:1〜i+1)を算出する(S100)。ΣP(t)(t:1〜i+1)は、P(1)からP(i+1)までの積分値を示す。ここで、本実施の形態の積分PCM値の算出における積分は、定積分である。つまり、ΣP(t)(t:1〜i+1)は、P(1)からP(i+1)までのPCM値の総和を示す。例えば、ADPCM値算出手段12は、PCM値入力手段11からPCM値P(i+1)が入力された場合に、ΣP(t)(t:1〜i+1)を算出する。
【0034】
ADPCM値算出手段12は、算出したΣP(t)(t:1〜i+1)と、次回量子化幅・予測値算出手段14から出力された予測値X(i)に基づいて、PCM値の積分値の差分値D(i,X1(i))と、PCM値の差分値D(i,X2(i))とを算出する(S101)。PCM値の積分値の差分値D(i,X1(i))とPCM値の差分値D(i,X2(i))は、共に式(1)によって示される。
【0035】
D(i,X(i)) = ΣP(t)(t:1〜i+1)−X(i) ・・・ (1)
【0036】
ここで、X(i)は、前回に生成したADPCM値に基づいて、次回量子化幅・予測値算出手段14が算出した予測値である。式(1)におけるX(i)は、予測値X1(i)又は予測値X2(i)のいずれかを示す(以下も同様である)。なお、式(1)中における全てのX(i)は、X1(i)又はX2(i)のうちのいずれかによって示される。ここで、X1(i)は、積分PCM値ΣP(t)(t:1〜i)の予測値であり、X2(i)は、積分PCM値ΣP(t)(t:1〜i)とPCM値P(i)との加算値の予測値である。
【0037】
したがって、PCM値の積分値の差分値D(i,X1(i))は、積分PCM値ΣP(t)(t:1〜i+1)と、積分PCM値ΣP(t)(t:1〜i)との差分値となる。つまり、D(i,X1(i))は、PCM値(i+1)に相当する。また、PCM値の差分値D(i,X2(i))は、積分PCM値ΣP(t)(t:1〜i+1)と、積分PCM値ΣP(t)(t:1〜i)及びPCM値P(i)の加算値との差分値となる。つまり、D(i,X2(i))は、PCM値P(i+1)とPCM値P(i)との差分値に相当する。したがって、D(i,X1(i))は、PCM値の積分値の差分値を示し、D(i,X2(i))は、PCM値の差分値を示す。
【0038】
次に、X1(i)及びX2(i)について詳細に説明する。X1(i)は、式(2)によって示され、X2(i)は、式(3)又は式(4)によって示される。なお、式(2)中における全てのX(i)は、X1(i)又はX2(i)のうちのいずれかによって示される。
【0039】
X1(i) = X(i−1)+Q(i−1,X(i−1)) ・・・ (2)
X2(i) = X1(i−1)+2・Q(i−1,X1(i−1)) ・・・ (3)
X2(i) = 2・X2(i−1)+2・Q(i−1,X2(i−1))−X1(i−1) ・・・ (4)
【0040】
ここで、差分情報Q(i−1,X(i−1))は、後に詳述するが、差分値D(i−1,X(i−1))を符号化して復号化した値となる。
したがって、上述したことを考慮すると、差分情報Q(i−1,X1(i−1))は、PCM値(i)を符号化して復号化した値の予測値となる。つまり、式(2)の右辺のX(i−1)がX1(i−1)である場合、X1(i)は、積分PCM値ΣP(t)(t:1〜i−1)の予測値と、PCM値(i)の予測値との加算値となる。そのため、上述したように、X1(i)は、復号化後のPCM値による積分PCM値ΣP(t)(t:1〜i)の予測値となる。
【0041】
また、差分情報Q(i−1,X2(i−1))は、PCM値P(i)とPCM値P(i−1)との差分値を符号化して復号化した値を予測したものとなる。つまり、式(2)の右辺のX(i−1)がX2(i−1)である場合、X1(i)は、積分PCM値ΣP(t)(t:1〜i−1)とPCM値P(i−1)との加算値の予測値と、PCM値P(i)とPCM値P(i−1)との差分値の予測値との加算値となる。そのため、上述したように、X1(i)は、復号化後のPCM値による積分PCM値ΣP(t)(t:1〜i)の予測値となる。
【0042】
このように、X1(i)は、式(2)の右辺のX(i−1)が、X1(i−1)である場合も、X2(i−1)である場合も、PCM値ΣP(t)(t:1〜i)の予測値となる。なお、X1において、差分情報Q(i−1,X(i−1))をQ(i−1,X1(i−1))又はQ(i−1,X2(i−1))のいずれによって算出するかについては後述する。
【0043】
また、上述したことを考慮すると、式(3)のX2(i)は、積分PCM値ΣP(t)(t:1〜i−1)の予測値と、PCM値(i)の予測値を2倍した値との加算値となる。そのため、上述したように、X2(i)は、復号化後のPCM値による積分PCM値ΣP(t)(t:1〜i)とPCM値P(i)との加算値の予測値となる。
【0044】
また、式(4)のX2(i)は、積分PCM値ΣP(t)(t:1〜i−1)とPCM値P(i−1)との加算値の予測値を2倍した値と、PCM値P(i)とPCM値P(i−1)との差分値の予測値を2倍した値と、を加算して、積分PCM値ΣP(t)(t:1〜i−1)の予測値を減算した値となる。そのため、上述したように、X2(i)は、復号化後のPCM値による積分PCM値ΣP(t)(t:1〜i)とPCM値P(i)との加算値の予測値となる。なお、X2を式(3)又は式(4)のいずれによって算出するかについては後述する。
【0045】
ここで、初期予測値X1(1)、X2(1)は、予め式(5)及び式(6)のように定めておく。ここでは、P(1)の値がIVとして予め分かっている場合について示す。
【0046】
X1(1) = IV ・・・ (5)
X2(1) = 2・IV ・・・ (6)
【0047】
ADPCM値算出手段12は、次回量子化幅・予測値算出手段14から出力された量子化幅Δ(i)に基づいて、算出した差分値D(i,X(i))を量子化した量子化差分値L(i,X(i))を算出する(S102)。量子化差分値L(i,X(i))は、式(7)によって算出される。ここで、〔 〕は、ガウス記号である。
【0048】
L(i,X(i)) = 〔D(i,X(i))/Δ(i)〕 ・・・ (7)
【0049】
ADPCM値算出手段12は、量子化幅Δ(i)と、算出した量子化差分値L(i,X(i))とに基づいて、量子化誤差QD(i,X(i))を算出する。差分情報Q(i,X(i))は、式(8)によって算出され、量子化誤差QD(i,X(i))は、式(8)によって算出される。
【0050】
Q(i,X(i)) = (L(i,X(i)+0.5)・Δ(i) ・・・ (8)
QD(i,X(i)) = |D(i,X(i))−Q(i,X(i))| ・・・ (9)
【0051】
差分情報Q(i,X(i))は、差分値D(i,X(i))を量子化して圧縮した量子化差分値L(i,X(i))を伸張した値である。つまり、差分情報Q(i,X(i))は、差分値D(i,X(i))を符号化して復号化した値である。QD(i,X(i))は、差分値D(i,X(i))から差分情報Q(i,X(i))を減算した値の絶対値である。そのため、QD(i,X(i))は、量子化誤差となる。
【0052】
ADPCM値算出手段12は、QD(i,X1(i))とQD(i,X2(i))のそれぞれを算出する。ADPCM値算出手段12は、算出したQD(i,X1(i))とQD(i,X2(i))の大小を比較する(S103)。ADPCM値算出手段12は、小さいほうのQD(i,X1(i))に対応するL(i,X(i))に基づいて、ADPCM値A(i)を決定する(S104)。具体的には、QD(i,X1(i))が小さい場合、L(i,X1(i))からADPCM値A(i)を決定し、QD(i,X2(i))が小さい場合、L(i,X2(i))からADPCM値A(i)を決定する。
【0053】
ここで、ADPCM値算出手段12は、量子化差分値とADPCM値の対応表に基づいて、ADPCM値A(i)を決定する。図3に、量子化差分値とADPCM値の対応表を例示する。例えば、量子化差分値とADPCM値の対応表は、予め量子化パラメータ差分情報記憶手段15に格納しておく。そして、ADPCM値算出手段12は、量子化パラメータ差分情報記憶手段15に格納された対応表を参照して、ADPCM値A(i)を決定する。
【0054】
量子化差分値とADPCM値の対応表は、量子化差分値L(i,X1(i))が取り得る複数の量子化差分値及び量子化差分値L(i,X2(i))が取り得る複数の量子化差分値のそれぞれについて、量子化差分値と、量子化差分値のADPCM値A(i)とを対応付けた情報である。例えば、ADPCM値算出手段12は、QD(i,X1(i))が小さく、かつ、L(i,X1(i))が1である場合、A(i)を1として決定する。例えば、ADPCM値算出手段12は、QD(i,X2(i))が小さく、かつ、L(i,X2(i))が1である場合、A(i)を9として決定する。
【0055】
ADPCM値算出手段12は、決定したADPCM値A(i)をADPCM値記憶手段13に格納する(S105)。なお、量子化差分値とADPCM値の対応表は、図3に例示するものに限られず、任意の量子化差分値とADPCM値とを対応させてもよい。また、情報の形式は、対応表に限られず、量子化差分値と量子化差分値のADPCM値とを対応付けた情報であればどのような形式の情報であってもよい。ADPCM値算出手段12は、決定したADPCM値A(i)を次回量子化幅・予測値算出手段14に出力する。
【0056】
次回量子化幅・予測値算出手段14は、ADPCM値算出手段12が小さいと判定したQD(i,X1(i))に対応するL(i,X(i))に基づいて、次回i+1の符号化に使用される量子化幅Δ(i+1)を算出する。具体的には、次回の量子化幅Δ(i+1)とは、次回のL(i+1,X(i+1))及びQ(i+1,X(i+1))を算出するときに使用される量子化幅である。量子化幅Δ(i+1)は、式(10)によって算出される。
【0057】
Δ(i+1) = Δ(i)・M(L(i,X(i))) ・・・ (10)
【0058】
量子化幅Δ(i)は、次回量子化幅・予測値算出手段14が前回i−1の符号化時に算出して自身に出力したものである。なお、Δ(1)は、量子化幅やPCM値範囲を考慮して、任意の値を予め定めておく。例えば、次回量子化幅・予測値算出手段14は、量子化パラメータ差分情報記憶手段15に格納された、量子化差分値とADPCM値の対応表に基づいて、ADPCM値算出手段12から出力されたADPCM値A(i)に対応するL(i,X(i))を決定する。次回量子化幅・予測値算出手段14は、決定したL(i,X(i))に基づいて、次回の量子化幅Δ(i+1)を決定するための量子化パラメータM(L(i,X(i))を決定する(S106)。
【0059】
ここで、次回量子化幅・予測値算出手段14は、量子化パラメータ差分情報記憶手段15に格納された量子化差分値と量子化パラメータとの対応表に基づいて、量子化パラメータM(L(i,X(i)))を決定する。図4に、量子化差分値と量子化パラメータとの対応表を示す。例えば、次回量子化幅・予測値算出手段14は、L(i,X(i))が1である場合、M(L(i,X(i)))を0.9として決定し、L(i,X(i))が7以上の場合、M(L(i,X(i)))を2.4として決定する。予測値X(i)の値に関わらず、量子化差分値L(i,X(i))の値から量子化パラメータM(L(i,X(i)))の値が決定される。
【0060】
なお、量子化差分値と量子化パラメータとの対応表は、図4に例示するものに限られず、任意の量子化差分値と量子化パラメータとを対応させてもよい。また、情報の形式は、対応表に限られず、量子化差分値と量子化パラメータとを対応付けた情報であればどのような形式の情報であってもよい。ここで、量子化差分値と量子化パラメータとの対応表におけるM(L(i,X(i)))の値は、任意に予め決定しておく。次回量子化幅・予測値算出手段14は、決定したM(L(i,X(i)))を使用して次回の量子化幅Δ(i+1)を算出する(S107)。
【0061】
また、次回量子化幅・予測値算出手段14は、小さいほうのQD(i,X(i))に対応するQ(i,X(i))と、今回iの予測値X(i)に基づいて、次回i+1の予測値X1(i+1)及びX2(i+1)を算出する(S108)。予測値X(i)は、次回量子化幅・予測値算出手段14が前回i−1の符号化時に算出して自身に出力したものである。X1(i)は、式(11)によって示され、X2(i)は、式(12)又は式(13)によって示される。なお、式(11)〜(13)は、iがi+1、i−1がiとなっていること以外は、式(2)〜(4)と同様であるため、説明を省略する。
【0062】
X1(i+1) = X(i)+Q(i,X(i)) ・・・ (11)
X2(i+1) = X1(i)+2・Q(i,X1(i)) ・・・ (12)
X2(i+1) = 2・X2(i)+2・Q(i,X2(i))−X1(i) ・・・ (13)
【0063】
ADPCM値算出手段12は、iがN−1か否かを判定する(S109)。
N−1でない場合(S109:NO)、ADPCM値算出手段12は、再度、ステップS100に戻って処理を実行する。
N−1である場合(S109:YES)、ADPCM値算出手段12は、ADPCM符号化処理を終了する。
【0064】
続いて、図5を参照して、本発明の実施の形態にかかるADPCM復号化部20の処理について説明する。図5は、本発明の実施の形態にかかるADPCM復号化部20の処理を示すフローチャートである。
【0065】
PCM値算出手段22は、ADPCM値入力手段21から出力されたADPCM値A(i)に対応する量子化差分値L(i,X(i))を決定する(S201)。ここで、PCM値算出手段22は、量子化パラメータ差分情報記憶手段24に格納された量子化差分値とADPCM値の対応表に基づいて、量子化差分値L(i,X(i))を決定する。量子化パラメータ差分情報記憶手段24には、図3に例示する、量子化差分値とADPCM値の対応表が格納される。
【0066】
また、PCM値算出手段22は、次回i+1の復号化に使用される量子化幅Δi+1と、差分情報Q(i,X(i))とを算出する(S202)。ここで、PCM値算出手段22は、決定したL(i,X(i))に基づいて、次回i+1の量子化幅Δ(i+1)を算出する。量子化幅Δ(i+1)は、上述した式(10)によって算出される。なお、Δ(1)は、量子化幅やPCM値範囲を考慮して、任意の値を予め定めておく。
【0067】
また、PCM値算出手段22は、決定したL(i,X(i))と、量子化幅Δiとに基づいて、L(i,X(i))を伸張した差分情報Q(i,X(i))を算出する(S202)。差分情報Q(i,X(i))は、式(8)によって算出される。ここで、差分情報Q(i,X(i))を算出するときに、次回i+1の量子化幅Δ(i+1)を算出している。つまり、量子化幅Δ(i)は、前回i−1に算出された量子化幅が使用される。例えば、PCM値算出手段22は、前回i−1の符号化時に、量子化幅Δ(i)算出して自身に出力しておくようにしてもよい。また、PCM値算出手段22は、前回に算出した量子化幅Δ(i)を量子化パラメータ差分情報記憶手段24に格納しておくようにしてもよい。そして、PCM値算出手段22は、次回i+1の量子化幅Δ(i+1)を算出するときに、量子化パラメータ差分情報記憶手段24から量子化幅Δ(i)を取得して使用するようにしてもよい。
【0068】
PCM値算出手段22は、算出した差分情報Q(i,X(i))に基づいて、iにおける復号化されたPCM値DP(i)を算出する(S203)。PCM値DP(i)は、式(14)又は式(15)によって算出される。なお、PCM値DP(i)は、ADPCM値A(i)が8より小さい場合、式(14)によって算出され、ADPCM値A(i)が8以上の場合、式(15)によって算出される。言い換えると、PCM値算出手段22は、ADPCM値A(i)が量子化差分値L(i,X1(i))から決定されている場合、PCM値DP(i)を式(14)によって算出し、ADPCM値A(i)が量子化差分値L(i,X2(i))から決定されている場合、PCM値DP(i)を式(15)によって算出する。
【0069】
ADPCM値A(i)が量子化差分値L(i,X1(i))から決定されている場合、ADPCM値A(i)に基づいて算出したQ(i,X1(i))は、PCM値(i+1)に相当する。したがって、この場合、PCM値算出手段22は、DP(i)をPCM値(i+1)としてPCM値出力手段23に出力する。
【0070】
ADPCM値A(i)が量子化差分値L(i,X2(i))から決定されている場合、ADPCM値A(i)に基づいて算出したQ(i,X2(i))は、PCM値P(i+1)とPCM値P(i)との差分値に相当する。ここで、DP(i−1)は、前回i−1に算出したPCM値P(i)となる。したがって、この場合、PCM値算出手段22は、Q(i,X2(i))とDP(i−1)とを加算したDP(i)をPCM値(i+1)としてPCM値出力手段23に出力する。
【0071】
DP(i) = Q(i,X(i)) ・・・ (14)
DP(i) = Q(i,X(i))+DP(i−1) ・・・ (15)
【0072】
PCM値算出手段22は、iがN−1か否かを判定する(S204)。
N−1でない場合(S204:NO)、PCM値算出手段22は、再度、ステップS100に戻って処理を実行する。
N−1である場合(S204:YES)、PCM値算出手段22は、ADPCM符号化処理を終了する。
【0073】
以上に説明したように、本実施の形態では、入力値の積分値の差分値と、入力値の差分値とのうち、量子化誤差がより小さくなる差分値を判定するようにしている。そして、量子化誤差がより小さくなると判定した差分値によって、符号化及び復号化を行うことができる。したがって、量子化誤差をより低減することができる。
【0074】
本実施の形態では、PCM値をADPCM値から復元可能とするために、入力信号の積分値の差分値ΣP(t)(t:1〜i+1)−ΣP(t)(t:1〜i)のΣP(t)(t:1〜i)を式(2)で置き換えており、ΣP(t)(t:1〜i+1)−(P(i)+ΣP(t)(t:1〜i))の(P(i)+ΣP(t)(t:1〜i))を式(3)又は(4)で置き換えている。これによって、ADPCMによる符号化・復号化における計算を可能としている。
【0075】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0076】
本実施の形態は、情報を符号化して送信する符号化装置と、送信装置から送信された情報を受信して復号化する復号化装置を含むシステムに適用することができる。例えば、本実施の形態は、PHS(Personal Handy-phone System)、IP(Internet Protocol)網、IP電話及び携帯電話等の用途に適用することができる。つまり、符号化装置及び復号化装置は、例えば、PHS、PC(Personal Computer)、IP電話及び携帯電話等である。
【0077】
本実施の形態は、情報を符号化して任意の記録媒体に記録する符号化装置と、記録媒体に記録された情報を復号化する復号化装置と、に適用することもできる。例えば、符号化装置は、光ディスク記録装置であり、復号化装置は、光ディスク再生装置である。
【0078】
本実施の形態では、音声を示すPCM値を符号化する場合について例示したが、これに限られない。例えば、画像等の音声以外の情報を示す入力値を符号化するようにしてもよい。
【0079】
本実施の形態では、量子化幅を適応的に変更しての符号化・復号化に、本発明を適用した場合について例示したが、これに限られない。例えば、量子化幅が適応的に変更されない符号化・復号化に適用するようにしてもよい。
【0080】
本発明の実施の形態にかかる符号化復号化システム、符号化装置及び復号化装置は、上述の実施の形態の機能を実現するプログラムを、コンピュータ又はコンピュータが有するCPU(Central Processing Unit)、MPU(Micro Processing Unit)が実行することによって、構成することが可能である。
【0081】
また、このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0082】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現される場合だけでなく、このプログラムが、コンピュータ上で稼動しているOS(Operating System)もしくはアプリケーションソフトウェアと共同して、上述の実施の形態の機能を実現する場合も、本発明の実施の形態に含まれる。さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによって行われて、上述の実施の形態の機能が実現される場合も、本発明の実施の形態に含まれる。
【符号の説明】
【0083】
1 符号化復号化システム
10 ADPCM符号化部
11 PCM値入力手段
12 ADPCM値算出手段
13 ADPCM値記憶手段
14 次回量子化幅・予測値算出手段
15、24 量子化パラメータ差分情報記憶手段
20 ADPCM復号化部
21 ADPCM値入力手段
22 PCM値算出手段
23 PCM値出力手段

【特許請求の範囲】
【請求項1】
第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行って、当該符号化によって生成された符号化値を送信する符号化装置と、当該符号化装置から送信された符号化値を復号化して前記入力値を生成する復号化装置と、を備え、
前記符号化装置は、
前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出する差分算出手段と、
前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する符号化手段と、
を有する符号化復号化システム。
【請求項2】
前記符号化手段は、前記積分差分値に基づいて、当該積分差分値と、当該積分差分値を符号化して復号化した復号積分差分値との差分を示す第1の量子化誤差値を算出するとともに、前記入力差分値に基づいて、当該入力差分値と、当該入力差分値を符号化して復号化した復号入力差分値との差分を示す第2の量子化誤差値を算出し、算出した第1の量子化誤差値及び第2の量子化誤差値に基づいて、前記量子化誤差がより小さくなる差分値を判定する請求項1に記載の符号化復号化システム。
【請求項3】
前記複数の入力値は、前記第1の入力値の前に入力される第3の入力値を含み、
前記符号化装置は、前記第1の入力値と前記第3の入力値との積分差分値と、前記第1の入力値と前記第3の入力値との入力差分値のうち、前記符号化手段が符号化した差分値を符号化して復号化した復号差分値に基づいて、前記第1の積分値と、前記第1の積分値と前記第1の入力値との加算値とを予測する予測手段を更に有し、
前記差分算出手段は、前記入力値を加算して前記第2の積分値を算出し、当該第2の積分値と、前記予測手段が予測した第1の積分値との差分を前記積分差分値として算出するとともに、当該第2の積分値と、前記予測手段が予測した加算値との差分を前記入力差分値として算出する請求項2に記載の符号化復号化システム。
【請求項4】
前記符号化装置は、前記積分差分値を量子化した積分量子化値が取り得る複数の第1の量子化値及び前記入力差分値を量子化した入力量子化値が取り得る複数の第2の量子化値のそれぞれについて、当該量子化値と、当該量子化値の符号化値とを対応付けた対応情報を格納する記憶手段を更に有し、
前記符号化手段は、当該対応情報に基づいて、前記量子化誤差がより小さくなると判定した差分値の符号化値を生成する請求項2又は3のいずれか1項に記載の符号化復号化システム。
【請求項5】
前記復号化装置は、
前記対応情報を格納する記憶手段と、
当該対応情報に基づいて、前記符号化装置から送信された符号化値が前記積分量子化値及び前記入力量子化値のいずれに対応するかを判定し、前記積分量子化値に対応すると判定した場合、当該符号化値を復号化した積分差分値を前記第2の入力値として決定するとともに、前記入力量子化値に対応すると判定した場合、当該符号化値を復号化した入力差分値と、前回の復号化で生成した第1の入力値との加算値を前記第2の入力値とする復号化手段と、
を有する請求項4に記載の符号化復号化システム。
【請求項6】
前記符号化装置は、前記符号化手段が符号化した差分値に応じて、前記量子化幅を適応的に変更する請求項1乃至5のいずれか1項に記載の符号化復号化システム。
【請求項7】
前記符号化復号化システムは、ADPCM(Adaptive Differential Pulse Code Modulation)によって、前記符号化及び前記復号化を行う請求項1乃至6のいずれか1項に記載の符号化復号化システム。
【請求項8】
第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行う符号化装置であって、
前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出する差分算出手段と、
前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する符号化手段と、
を備えた符号化装置。
【請求項9】
第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化が行われて生成された符号化値を復号化して前記入力値を生成する復号化装置であって、
前記第2の入力値までの入力値を積分した第2の積分値と前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値、及び、前記第2の入力値と前記第1の入力値との差分である入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなると判定された差分値が符号化された符号化値を復号化する復号化装置。
【請求項10】
第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行って符号化値を生成し、当該符号化値を復号化して前記入力値を生成する符号化復号化方法であって、
前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出し、
前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する符号化復号化方法。
【請求項11】
第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化を行う処理をコンピュータに実行させる符号化プログラムであって、
前記第2の入力値までの入力値を積分した第2の積分値と、前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値を算出するとともに、前記第2の入力値と前記第1の入力値との差分である入力差分値を算出する処理と、
前記積分差分値及び前記入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなる差分値を判定し、判定した差分値を符号化する処理と、
をコンピュータに実行させる符号化プログラム。
【請求項12】
第1の入力値と当該第1の入力値の次に入力される第2の入力値とを含む複数の入力値が順次入力され、当該入力された入力値に対して、特定の量子化幅で符号化が行われて生成された符号化値を復号化して前記入力値を生成する処理をコンピュータに実行させる復号化プログラムであって、
前記第2の入力値までの入力値を積分した第2の積分値と前記第1の入力値までの入力値を積分した第1の積分値との差分である積分差分値、及び、前記第2の入力値と前記第1の入力値との差分である入力差分値に基づいて、当該積分差分値及び当該入力差分値のうち、差分値を符号化した場合における量子化誤差がより小さくなると判定された差分値が符号化された符号化値を復号化する処理をコンピュータに実行させる復号化プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate