符号化方法、符号化装置、プログラム及び記録媒体
【課題】フレームの符号長の増加を抑えることのできる符号化技術を提供する。
【解決手段】
整数値系列を入力とし、[1]整数(規定整数)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(拡張符号)を記録した符号テーブルが複数個、予め決められており、整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、規定整数に対応する符号を符号化結果の符号とし、整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、拡張符号と、拡張符号に対応する予め定めておいた符号化方法を符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果の符号とする符号化を行う。この符号化では、複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力する。
【解決手段】
整数値系列を入力とし、[1]整数(規定整数)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(拡張符号)を記録した符号テーブルが複数個、予め決められており、整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、規定整数に対応する符号を符号化結果の符号とし、整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、拡張符号と、拡張符号に対応する予め定めておいた符号化方法を符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果の符号とする符号化を行う。この符号化では、複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号の符号化技術に関し、より詳しくは、整数値系列の可逆符号化技術に関する。
【背景技術】
【0002】
音声周波数信号(voice-frequency signals)に対する符号化(encoding)の国際標準として、ITU−T(International Telecommunication Union - Telecommunication Standardization Sector) G.711が存在する(非特許文献1参照)。ITU−T G.711は、符号化方式として非線形PCM(Non-uniform Pulse Code Modulation)を採用しており、非線形量子化方式としてμ則(μ-law)とA則(A-law)の二種類を規定している。以下、「音声周波数信号」を音響信号と呼称する。
【0003】
また、動画(Visual)と音響(Audio)の符号化の国際標準としてISO/IEC JTC 1/SC 29/WG 11が策定したMPEG−4が存在し、その第3部が音響ロスレス符号化技術などを規定している(非特許文献2参照)。
【0004】
整数に対する符号化方法として、アルファ符号化(unary coding)が知られている(非特許文献3参照)。アルファ符号化は、0以上の整数kを、k個の連続する整数Aとこれに続く1個の整数Bで表現する符号化方法である。整数Bは整数Aと異なり、整数Aが1の場合に整数Bは0とされ、整数Aが0の場合に整数Bは1とされる。
【0005】
例えば、k=0のアルファ符号化による符号は0(または1)、k=1のアルファ符号化による符号は10(または01)、k=2のアルファ符号化による符号は110(または001)、k=3のアルファ符号化による符号は1110(または0001)、k=4のアルファ符号化による符号は11110(または00001)、k=5のアルファ符号化による符号は111110(または000001)となる。
【0006】
アルファ符号化の特徴として、(1)どんなに大きな整数kであっても符号化可能である、(2)符号化・復号の際に、符号化対象である整数kと符号とを対応付けたテーブルを使わないので、テーブルを保存するためのメモリを必要としない、(3)整数kは、k+1ビットで符号化される、(4)大きな整数kを表現する場合、整数kを2進数で表現する場合と比較して多くのビットを必要とする、ということが挙げられる。
【0007】
エントロピー符号化方法として、ハフマン符号化(Huffman coding)が知られている(非特許文献3参照)。ハフマン符号化は、符号化対象である入力値の出現頻度に応じて可変長符号を割り当てる符号化方法であり、出現頻度がより高い入力値に対してより短い符号を与える。
【0008】
ハフマン符号化の特徴として、(1)符号化・復号の際に、符号化対象である入力値と符号とを対応付けたテーブルを使用する、(2)テーブルサイズによって符号化できる最大値が決まる(従って、符号化対象である入力値の種類が多ければ大きなテーブルが必要となる)、(3)テーブルサイズが大きい場合に、出現頻度の低い入力値のハフマン符号が、入力値を2進数で表現する符号化と比較して多くのビットを必要とする場合がある、が挙げられる。
【0009】
整数に対する符号化方法として、ゴロム‐ライス符号化(Golomb-Rice coding)が知られている(非特許文献3参照)。0以上の整数tのゴロム‐ライス符号は、所定の整数s(Riceパラメータ)を用いて式(1)で求まる商qをアルファ符号化し、式(2)で求まる余りrをsビットの二進符号で符号化して、さらに商qのアルファ符号と余りrの二進符号を連結することで得られる。記号└・┘は床関数を表す。
【数1】
【0010】
ゴロム‐ライス符号の特徴として、(1)ゴロム‐ライス符号の符号長は整数sに依存する、(2)整数tのゴロム‐ライス符号はq+s+1ビットで表せる、(3)商qをアルファ符号化するため、整数tが大きくなると整数tのゴロム‐ライス符号の符号長は長くなる、(4)入力値が正負の値を取る場合は、入力値を0以上の整数tにしてからゴロム‐ライス符号化を行う、が挙げられる。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】ITU-T Recommendation G.711, "Pulse Code Modulation (PCM) of voice frequencies," ITU-T, 1993.
【非特許文献2】ISO/IEC 14496-3 AMENDMENT 2: Audio Lossless Coding (ALS), new audio profiles and BSAC extensions, 2005.
【非特許文献3】David Salomon, "Data Compression : The Complete Reference," 3rdedition, Springer-Verlag, ISBN-10: 0-387-40697-2, 2004.
【発明の概要】
【発明が解決しようとする課題】
【0012】
この明細書に用いる用語は、特に断りの無い限り、ITU−T G.701(参考文献1)に準拠する。しかし、これは本発明の適用範囲をITU−TのGシリーズ勧告が適用される技術分野に限定する意図ではない。この技術分野以外の技術分野、例えば上記非特許文献2に関わる技術分野に本発明を適用する場合には、この明細書に用いる用語を、(もし在れば)当該技術分野の対応する用語に読み替えればよい。
(参考文献1)ITU-T Recommendation G.701, "Vocabulary of Digital Transmission and Multiplexing, and Pulse Code Modulation (PCM) Terms," ITU-T, 1993.
【0013】
所定の複数のサンプルをまとめたフレーム単位で符号化処理を行う場合に、フレームに含まれるサンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従うならば、ゴロム‐ライス符号は、整数符号の中で最適符号である。これは、サンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従うならば、商qの確率分布が(離散的に)1/2,1/4,1/8,1/16,・・・,1/2h,・・・となりアルファ符号が最適になることによる。
【0014】
フレームに含まれるサンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従わない場合、もしくは、統計的にサンプル数が十分ではない場合、ゴロム‐ライス符号は必ずしも最適符号にならない。これは、商qの確率分布がアルファ符号で最適となる確率分布に従わないため、アルファ符号の符号長が大きくなることによる。
【0015】
ハフマン符号化は、符号化対象となるサンプル値の統計的な出現頻度に応じて、統計的に学習されたハフマン符号テーブルを用いることで、Laplace分布に限らず任意の出現頻度分布のサンプル値を高能率に符号化することができることが知られている。しかし、符号化対象となる整数値の取りうる範囲が広範にわたる場合には、大きなハフマン符号テーブルを具備する必要があり、ハフマン符号テーブルの記録容量が実施の制約になるという問題がある。
【0016】
そこで、本発明は、フレームに含まれるサンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従わない場合や統計的にサンプル数が十分ではない場合であっても、フレームの符号長の増加を抑えることのできる符号化に関わる技術を提供することを目的とする。
【課題を解決するための手段】
【0017】
本発明の符号化方法は、[1]整数(以下、規定整数という。)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(以下、拡張符号という。)を記録した符号テーブルが複数個、予め決められており、整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、当該規定整数に対応する符号を符号化結果とし、整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、拡張符号と、拡張符号に対応するあらかじめ定めておいた符号化方法を符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果とする、符号化を行う符号化ステップを含み、符号化ステップでは、複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力することを特徴とする。
【発明の効果】
【0018】
本発明によれば、限定されたサイズの符号テーブルで広い範囲の入力を扱って高能率に符号化することができる。
また、本発明によれば、所定数のサンプルごとにフレームとして、複数の異なる出現頻度分布に対応した複数の符号テーブルの中から最適なものをフレームごとに選択的に用いることで、入力信号を高能率に符号化することができる。
また、本発明によれば、フレームの各サンプルの商がアルファ符号化されないので、フレームに含まれるサンプルxi(i=1,2,・・・,N)の出現頻度分布がLaplace分布に従わない場合や統計的にサンプル数が十分ではない場合であっても、各サンプルの符号の符号長ひいてはフレームの符号長の増加を抑えることができる。
【図面の簡単な説明】
【0019】
【図1】実施形態1に係る符号化装置の機能構成例を示すブロック図。
【図2】実施形態1に係る符号化処理の処理フローを示す図。
【図3】実施形態1に係る復号装置の機能構成例を示すブロック図。
【図4】実施形態1に係る復号処理の処理フローを示す図。
【図5】実施形態2に係る符号化装置の機能構成例を示すブロック図。
【図6】実施形態2に係る符号化処理の処理フローを示す図。
【図7】実施形態2に係る復号装置の機能構成例を示すブロック図。
【図8】実施形態2に係る復号処理の処理フローを示す図。
【図9】実施形態4に係る符号化装置の機能構成例を示すブロック図。
【図10】商信号の値の分布例を示す図。
【図11】符号テーブルの例を示す図。
【図12】分離パラメータB=0の場合に出力される誤差符号の例を示す図。
【図13】分離パラメータB>0の場合に出力される誤差符号の例を示す図。
【図14】実施形態4に係る復号装置の機能構成例を示すブロック図。
【図15】図11に示したn≧80の符号テーブル0に対応する復号テーブルの例を示す図。
【図16】実施形態4に係る復号処理の処理フローを示す図。
【図17】実施形態3に係る符号化装置の機能構成例を示すブロック図。
【図18】実施形態3に係る符号化処理の処理フローを示す図。
【図19】実施形態3に係る復号装置の機能構成例を示すブロック図。
【図20】実施形態3に係る復号処理の処理フローを示す図。
【図21】符号テーブルの一例(表1)。
【図22】符号テーブルの一例(表2)。
【図23】符号テーブルの一例(表3)。
【図24】符号テーブルの一例(表4)。
【図25】符号テーブルの一例(表5)。
【図26】符号テーブルの一例(表6)。
【図27】符号テーブルの一例(表7)。
【図28】符号テーブルの一例(表8)。
【発明を実施するための形態】
【0020】
<本発明の実施形態1の符号化の概要>
実施形態1で扱う入力信号は0以上の整数値系列とする。この整数値系列は、例えば、上記非特許文献1の音響ロスレス符号化技術で行っているように、音響信号に線形予測分析を適用して得られる線形予測残差の値を、振幅の絶対値が小さなものが小さな値に割り当てられるように0以上の整数値へ一意の線形写像を行って得られる整数値系列であっても良い。
【0021】
本発明の実施形態1の符号化は、入力信号が0以上の整数値系列であり、且つ、入力信号の整数値が、特定の範囲の値において比較的出現確率が高いという統計的な性質を有する場合に、高能率に圧縮することができる。
【0022】
符号化装置は、[1]整数(以下、規定整数という。)とこれに対応する符号との組み合わせ、並びに、[2]規定整数以外の複数の整数による組とこの組に対応する一つの符号(以下、拡張符号という。)との組み合わせを少なくとも1つ、を記録した符号テーブルを具備し、上記入力信号の整数値系列中の符号化対象となる整数値を逐次符号化して符号を出力する。規定整数以外の整数を以下では規定外整数という。
【0023】
この符号化処理において、上記入力信号の整数値系列中の符号化対象となる整数値が、規定整数に該当する場合には、当該規定整数に対応する符号を上記符号テーブルから選択して符号化結果の符号とし、上記整数値系列中の符号化対象となる整数値が、規定外整数に該当する場合には、上記符号テーブルに記録された上記拡張符号と、あらかじめ定めておいた上記拡張符号に対応する符号化方法を上記規定外整数に対して適用して得られる符号とを連結した符号を符号化結果の符号とする符号化が行われる。
【0024】
実施形態1の符号化装置600Eの機能的構成例を図1に示す。
符号化装置600Eは、符号テーブル622を記憶する記憶部620Eと、整数値系列を入力として符号テーブル622を用いて符号系列を出力する符号化部610Eとを含む。
符号化処理手順を図2に示す。
まず、未処理の整数値が存在するか否か判定する(ステップS600)。存在しないならば処理を終了する。存在すれば、整数値系列のうち、未処理の整数値の先頭のものをXとする(ステップS602)。そして、符号テーブル622にXが規定整数として登録されているか否かを検索する(ステップS604)。Xが規定整数か否か判定する(ステップS606)。Xが規定整数ならば、符号テーブル622に登録されている規定整数Xに対応する符号を出力する(ステップS608)。Xが規定整数でないならば、拡張符号と拡張符号に対応する符号化方式でXを符号化した符号を結合して出力する(拡張符号が複数存在する場合には、最も符号量が少なくなるものを用いる)(ステップS610)。
【0025】
符号テーブル622の一例を表1〜表6に示す。
表1〜表6に示す各符号テーブルでは、記号:の右側の符号が、その左側の規定整数に対応付けられている。規定外整数pに対応する符号は、拡張符号と、拡張符号で特定される符号化方法で規定外整数pを符号化した結果の符号と、の連結で得られる。記号‖は、符号同士の連結を表す。
【0026】
拡張符号によって特定される、拡張符号に対応する符号化方式は、符号化装置と復号化装置のそれぞれにおいてあらかじめ決定しておく。なお、可逆符号化を行うためには、符号化装置と復号化装置とで同一の符号化方式を用いる必要があるため、拡張符号に対応する符号化方式は、符号化装置と復号化装置との間で一意に決定しておく。以下、表1〜表6の例では、簡便のために、Uはアルファ符号化を、Rはゴロム‐ライス符号化を、Fは固定長符号化を表す記号として用い、それらの符号化方法で数値kを符号化して得られた符号をcode(U,k)、code(R,s,k)、code(F,g,k)等であらわすこととする。
【0027】
表1の例(図21参照)では、1種類の拡張符号が規定されており1111である。拡張符号1111に対応した符号化方式はアルファ符号code(U,p-4)であり、あらかじめ符号化装置と復号化装置の間で一意に決定しておく。
code(U,p-4)は、符号化対象となる整数値が規定外整数pであるとき、整数pから4を引いたp−4をアルファ符号化して得られる符号をあらわしている。但し、この例ではp≧4である。
入力信号中の符号化対象となる整数値が規定整数に相当する0〜3あれば、表1に登録された0〜3に対応する符号が選択されて出力される。たとえば、規定整数である整数値3の符号は1110となる。
また、規定外整数p=6の符号は拡張符号1111とp−4をアルファ符号化して得られる110を連結した1111 110となる。
【0028】
表2の例(図22参照)では、2種類の拡張符号が規定されており11110および11111である。拡張符号11110に対応した符号化方式はアルファ符号で、拡張符号11111に対応した符号化方式は固定長符号とライス符号との連結である。拡張符号と対応する符号化方式の組み合わせは、あらかじめ符号化装置と復号化装置の間で一意に決定しておく。
この例のcode(U,p-4)は、拡張符号11110に対応する符号化方式が出力する符号で、符号化対象となる整数値が規定外整数pであるとき、整数pから4を引いたp−4をアルファ符号化して得られる符号をあらわしている。code(F,g,s-1)‖code(R,s,p-4)は、拡張符号11110に対応する符号化方式が出力する符号であり、符号化対象となる整数値が規定外整数pであるとき、Riceパラメータsのgビットの固定長符号code(F,g,s-1)と、Riceパラメータsのゴロム・ライス符号化によって得られる整数p−4の符号code(R,s,p-4)を連結した符号を表す。但し、p≧4である。採りえるsの値の個数Wについてg=┌log2W┐である。また、code(R,s,p-4)は、p-4の二進表現の下位sビットを出力した後に、(p-4)/(2^s)の商をアルファ符号で出力するものとする。この順序は符号化処理部と、復号処理部の間であらかじめ一意に決めておいたものを用いる。
例えばRiceパラメータsが1≦s≦4と設定されている場合、g=2であり、規定外整数p=12の符号は
11110 111111110または
11111 00 011110(s=1;2ビット符号00)または
11111 01 00110(s=2;2ビット符号01)または
11111 10 00010(s=3;2ビット符号10)または
11111 11 10000(s=4;2ビット符号11)となる。
2種類以上の拡張符号が規定されている場合には、少なくとも2つの符号が得られるから、規定外整数の符号は、得られた符号のうち最小の符号長を持つものとする(上記の例では、s=2,3,4のいずれでも符号長は同じになるので、いずれでもよい。たとえば最初のエントリーのs=2を用いる。)
【0029】
表3の例(図23参照)では、4種類の拡張符号が規定されており111100、111101、111110、111111である。code(U,p-4)は、アルファ符号化によって得られる整数p−4の符号を表す。code(F,g,s-3)は、Riceパラメータsのgビットの固定長符号を表す。採りえるsの値の個数Wについてg=┌log2W┐である。code(R,s,p-4)はRiceパラメータsのゴロム‐ライス符号化によって得られる整数p−4の符号を表す。但し、p≧4である。拡張符号が111101の場合はRiceパラメータsが1、拡張符号が111110の場合はRiceパラメータsが2に固定されている。
この例では、拡張符号が111111の場合には、Riceパラメータsは3≦s≦6の4通りの値をとり、s-3をg=2ビットの固定長符号code(F,g,s-3)であらわし、固定長符号code(F,g,s-3)とRiceパラメータsを用いたゴロム・ライス符号によりp−4を符号化した符号code(R,s,p-4)と連結する。
たとえばp=12の符号は
111100 111111110または
111101 011110(s=1)または
111110 00110(s=2)または
111111 00 00010(s=3;2ビット符号00)または
111111 01 10000(s=4;2ビット符号01)または
111111 10 001000(s=5;2ビット符号10)または
111111 11 0001000(s=6;2ビット符号11)となる。
2種類以上の拡張符号が規定されている場合には、少なくとも2つの符号が得られるから、規定外整数の符号は、得られた符号のうち最小の符号長を持つものとする。
【0030】
表4の例(図24参照)では、2種類の拡張符号が規定されており11110、11111である。code(U,p-4:4≦p≦6)はアルファ符号化によって得られる整数p−4(但し、4≦p≦6)の符号を表す。code(U,p-12:15≦p)はアルファ符号化によって得られる整数p−12(但し、15≦p)の符号を表す。code(F,h,p-7:7≦p≦14)は、固定長符号化によって得られる整数p−7のhビット符号を表す。採りえるpの値の個数Qについてh=┌log2Q┐である。pが7≦p≦14を満たす整数である場合、h=3である。表4の例は、小さい整数ほどその出現頻度(出現確率)が高い場合に、これらの整数にできるだけ短い符号を割り当てるように工夫したものであり、表1の例の符号テーブルを改良したものに相当する。例えばp(4≦p≦19)の符号は
11110 0(p=4)、
11110 10(p=5)、
11110 110(p=6)、
11111 000(p=7)、
11111 001(p=8)、
11111 010(p=9)、
11111 011(p=10)、
11111 100(p=11)、
11111 101(p=12)、
11111 110(p=13)、
11111 111(p=14)、
11110 1110(p=15)、
11110 11110(p=16)、
11110 111110(p=17)、
11110 1111110(p=18)、
11110 11111110(p=19)である。
【0031】
表5の例(図25参照)では、3種類の拡張符号が規定されており111101、111110、111111である。code(U,p-5)はアルファ符号化によって得られる整数p−5の符号を表す。code(F,3,p-5)は固定長符号化によって得られる整数p−5の3ビット符号を表す。code(F,4,p-5)は固定長符号化によって得られる整数p−5の4ビット符号を表す。但し、p≧5である。
【0032】
表6の例(図26参照)では、2種類の拡張符号が規定されており1110、110である。code(U,p-3:p=3)はアルファ符号化によって得られる整数p−3の符号0を表す。code(U,p-4:5≦p)はアルファ符号化によって得られる整数p−4(但し、5≦p)の符号を表す。code(F,3,p-4:5≦p)は、固定長符号化によって得られる整数p−4(但し、5≦p)の3ビット符号を表す。表1〜表5の例では、規定外整数pの符号が規定整数の符号の符号長よりも長い符号長を持つものであったが、この表6の例のように、規定外整数pの符号の符号長が規定整数の符号の符号長と同じか短くなるように規定外整数pの符号を割り当てることもできる。規定整数の出現頻度と比較して、規定外整数の出現頻度が相対的に高い場合に、規定外整数に対応する拡張符号長が短い符号テーブルを用いる。このように、符号テーブルは、あらかじめ統計的な出現頻度の期待値を計測して設計する。
【0033】
<本発明の実施形態1の復号化の概要>
本発明の実施形態1の復号化では、実施形態1の符号化により生成された符号系列を入力とし、元の整数値系列を得る。
符号系列中の符号は元の整数値に対応した可変長符号化により符号化されており、先頭から逐次復号することによって元の整数系列を得る。
【0034】
実施形態1の復号装置650Dの機能的構成例を図3に示す。
復号装置650Dは、符号テーブル622を記憶する記憶部670Dと、符号系列を入力として符号テーブル622を用いて整数値系列を出力する復号部660Dを含む。
復号処理手順を図4に示す。
まず、未処理の符号が存在するか否か判定する(ステップS650)。存在しないならば処理を終了する。存在すれば、符号系列のうち、未処理の符号の先頭のビットを処理開始点とする(ステップS652)。そして、符号テーブル622に登録されている符号のうち、符号系列と一致するものを探索する(ステップS654)。規定整数に対応する符号であるか否かを判定する(ステップS656)。規定整数に対応する符号である場合、符号テーブル622に登録されている符号に対応する規定整数を整数値Xとして出力する(ステップS658)。規定整数に対応する符号でない場合、拡張符号と拡張符号に対応する符号化方式を判別し、判別された符号化方式で拡張符号に続く符号を復号して得られる整数値Xを出力する(ステップS660)。
【0035】
つまり、符号系列の先頭のビットから順に、符号テーブルに記録されている規定整数に対応する符号、もしくは、拡張符号と特定できるまで、符号ビットを逐次読み込む。
読み込んだ符号が、規定整数に対応する符号と一致した場合には、当該符号に対応する規定整数を復号された整数値として出力する。
読み込んだ符号が、拡張符号である場合には、拡張符号に対応してあらかじめ一意に定められた符号化方式の符号を、拡張符号に続く符号系列から読み込んで復号し、結果の整数値を出力する。
【0036】
例えば、表2(図22参照)を用いて符号化された符号列から、元の整数値系列を復号する場合に、入力符号系列が以下のようであった場合を例にとって説明する。
010111101011111010110
ただし、g=2とする。
図4のステップに従えば、未処理の符号を先頭のビットより逐次調べて、表2に記録された符号中の一致する符号を見つける。表2より、上記入力符号系列は以下のように解析される。
0,10,11110‖10,11111‖01‖01 10
したがって、復号により得られる整数値系列は、0,1,5,5,9となる。
【0037】
<本発明の実施形態2の符号化の概要>
本発明の実施形態2の符号化装置700Eの機能的構成例を図5に示す。
符号化装置700Eは、複数の符号テーブル722を記憶する記憶部730Eと、整数値系列を入力として所定のサンプル数ごとにまとめたフレームのサンプルを出力するフレーム分割部710Eと、フレームのサンプルを入力として符号テーブル722を用いて符号系列と符号テーブル指定符号を出力する符号化部720Eを含む。
【0038】
符号化処理を図6に示す。
まず、未処理のフレームが存在するか否か判定する(ステップS700)。存在しないならば処理を終了する。存在すれば、当該フレームに用いる符号テーブルを選択し符号テーブル指定符号を出力する(ステップS702)。それぞれの符号テーブルを用いて整数値系列を符号化した場合の符号量を推定し、最も符号量が少なくなる符号テーブルを選択する。また各符号テーブルを用いた場合の符号量を推定して符号テーブルを選択することとしてもよい。次に、選択された符号テーブルを用いて整数値系列の符号化処理を行う(ステップS704)。フレーム内に未処理の整数値が存在するか否かを判定する(ステップS706)。フレーム内に未処理の整数値が存在しない場合、ステップS700の処理を行う。フレーム内に未処理の整数値が存在する場合、整数値系列のうち、未処理の整数値の先頭のものをXとする(ステップS708)。そして、符号テーブル722にXが規定整数として登録されているか否かを検索する(ステップS710)。Xが規定整数か否か判定する(ステップS712)。Xが規定整数ならば、符号テーブル722に登録されている規定整数Xに対応する符号を出力する(ステップS714)。Xが規定整数でないならば、拡張符号と拡張符号に対応する符号化方式でXを符号化した符号を結合して出力する(拡張符号が複数存在する場合には、最も符号量が少なくなるものを用いる)(ステップS716)。ステップS714とS716の後、ステップS706の処理を行う。
【0039】
入力される整数値系列中の整数値を、先頭から逐次、あらかじめ定めておいた個数ごとにフレームとしてまとめて処理する点、および、複数の符号テーブルを備え、フレーム単位でフレームの符号量が最も小さくなるように符号テーブルを切り替える点、選択された符号テーブルを特定する符号テーブル指定符号をフレームごとに出力する点が実施形態1と異なる。
【0040】
<本発明の実施形態2の復号の概要>
本発明の実施形態2の復号装置750Dの機能的構成例を図7に示す。
復号装置750Dは、複数の符号テーブル722を記憶する記憶部780Dと、符号テーブル指定符号を入力として符号テーブル722の選択制御を行う符号テーブル選択制御部760Dと、符号系列を入力として符号テーブル722を用いて整数値系列を出力する復号部770Dを含む。
【0041】
復号処理を図8に示す。
まず、未処理の符号が存在するか否か判定する(ステップS750)。存在しないならば処理を終了する。存在すれば、符号系列から符号テーブル指定符号を読み込み、符号テーブルを選択する(ステップS752)。そして、フレーム内の整数値の復号が完了したかを判定する(ステップS754)。完了した場合は、ステップS750の処理を行う。完了していない場合、符号系列のうち、未処理の符号の先頭のビットを処理開始点とする(ステップS756)。そして、符号テーブル722に登録されている符号のうち、符号系列と一致するものを探索する(ステップS758)。規定整数に対応する符号であるか否かを判定する(ステップS760)。規定整数に対応する符号である場合、符号テーブル722に登録されている符号に対応する規定整数を整数値Xとして出力する(ステップS762)。規定整数に対応する符号でない場合、拡張符号と拡張符号に対応する符号化方式を判別し、判別された符号化方式で拡張符号に続く符号を復号して得られる整数値Xを出力する(ステップS764)。
【0042】
実施形態2の復号処理は,フレーム単位で復号処理を行う。
先ず、符号テーブル指定符号を復号し、指定された符号テーブル(もしくは符号テーブルに対応する復号テーブル)を用いて復号する点が実施形態1の復号方法と異なる。
符号系列の先頭のビットから順に、符号テーブルに記録されている規定整数に対応する符号、もしくは、拡張符号と特定できるまで、符号ビットを逐次読み込む。
読み込んだ符号が、規定整数に対応する符号と一致した場合には、当該符号に対応する規定整数を復号された整数値として出力する点は実施形態1の復号方法と同じである。
【0043】
<本発明の実施形態3の符号化の概要>
上記の実施形態1および2を、ゴロム‐ライス符号化に類似の符号化と組み合わせた実施形態を以下に示す。
本実施形態で扱う入力信号は、音響信号に何らかの符号化方式を適用して符号化することで得られた信号とする。但し、入力信号の各サンプルは整数で表されているとする。このような符号化方式として、例えば上記非特許文献1のITU−T G.711などが挙げられる。また、入力信号は、音響信号に何らかの符号化方式を適用して符号化することで得られた信号(元信号)そのものに限定されず、例えば、元信号に線形予測分析を適用して得られる線形予測残差であってもよい。
【0044】
符号化装置は、入力信号をフレーム単位で符号化する。まず、符号化装置の分離パラメータ計算部が、1フレームの入力信号から当該フレームの各サンプルに対する分離パラメータBを求める。分離パラメータBは様々な方法で決定することができる。たとえば本実施形態3ではゴロム‐ライス符号化のRiceパラメータと類似の方法で決定する。
【0045】
Riceパラメータsの算出について説明する。Riceパラメータsは、1フレームの入力信号の各サンプルをゴロム‐ライス符号化して得られる当該入力信号の符号長(つまり、各サンプルのゴロム‐ライス符号の合計符号長)を最小にするように定められる。なお、入力信号が例えば符号化方式ITU−T G.711で得られている場合、この入力信号の各サンプルは正負の整数で表される場合がある。このように各サンプルが正負の整数で表される場合には、Riceパラメータsは、0以上の整数に変換した1フレームの入力信号の各サンプルを符号化して得られる当該入力信号の符号長(つまり、各サンプルのゴロム‐ライス符号の合計符号長)を最小にするように定められる。以下の例では、入力信号の各サンプルが正負の整数で表されているとする。
【0046】
入力信号に含まれる或るサンプルxi(i=1,2,・・・,N;Nは1フレームに含まれるサンプル数)について、0以上の整数に変換したこのサンプルxiのRiceパラメータsを用いた商qiは式(3)、式(4)で与えられる。式(3)により商qiを求める場合は、余りを表す符号を、余りを表すs−1ビットの二進符号にサンプルxiの正負を識別するための1ビットの符号が付加されたsビットの固定長を持つ符号とする。式(4)により商qiを求める場合は、商qiを表す符号のLSB(Least Significant Bit)によってサンプルxiの正負が識別される。
【数2】
【0047】
或るサンプルxiを表す符号の符号長Cは式(5)で得られる。ただし、aは0または1または2である。記号|・|は絶対値を表す。式(5)の第1項と第2項の合計は商qiのアルファ符号の符号長を表し、第3項は余りを表す二進符号の符号長を表している。
【数3】
【0048】
従って、0以上の整数に変換された入力信号の符号長、つまり0以上の整数に変換された各サンプルのゴロム‐ライス符号の符号長の合計C(s,xi,N)は式(6)で与えられる。なお、式(6)に現れるDは式(7)で与えられる。
【数4】
【0049】
C(s,xi,N)を最小にするs(以下、s0とする。)は、式(8)をsについて解くことで得られる。つまりs0は、式(9)で与えられる。記号lnは自然対数を表す。所望のRiceパラメータsは、s=└s0┘またはs=┌s0┐で得られる。記号┌・┐は天井関数を表す。なお、数値計算を実行することによる処理速度の低下を避けるため、予めD、N、aとの組み合わせでs0を求めておき、D、N、aの組み合わせにsを対応付けたテーブルを記憶部に記憶しておいてもよい。D、N、aが定まればテーブルを参照することでRiceパラメータsを決定できるから処理速度の低下を回避できる。テーブルにD、N、aの組み合わせが無い場合には数値計算でs0を求めればよい。
【数5】
【0050】
D/Nがaよりも十分に大きい場合、式(9)は式(10)に書き改められる。
【数6】
【0051】
フレームのライス符号長C(s,xi,N)の最小値C(xi,N)は式(11)で与えられる。
【数7】
【0052】
結局、分離パラメータ計算部は、式(9)または式(10)を用いて1フレームの入力信号からRiceパラメータs=└s0┘またはs=┌s0┐を求めることで、分離パラメータBを求める。
【0053】
分離パラメータBが求まると、符号化装置の商余計算部は、1フレームの入力信号の各サンプルを0以上の整数に変換してその商yiと余りziを求める。商yiの算出は、分離パラメータBに応じて式(12)または式(13)に従う。B=0の場合、除数は20=1であるため、商yiの算出は、実質的には、サンプルxiが0以上であるならば偶数に置換し、サンプルxiが負であるならば奇数に置換する処理に相当する。
【数8】
【0054】
余りziは、式(14)で得られる。B=0の場合、余りziは得られない。
【数9】
【0055】
余りziは、Bビットの二進符号で表現される。商yiを式(12)で得る場合、余りziはB−1ビットの二進符号で表されるが、サンプルxiの正負を識別するための1ビットを付加してBビットの二進符号としている。例えば、この識別用の1ビットを余りziを表す二進符号のMSB(Most Significant Bit)とし、サンプルxiが0以上であれば1とし、サンプルxiが0未満であれば0とする。
【0056】
符号化装置の商符号化部は、少なくとも一つの符号テーブルを用いて商yiを符号化する。符号テーブルはそれぞれ、(1)整数とこれに対応する符号との組み合わせ、並びに(2)前記組み合わせに規定される整数以外の複数の整数の組とこの組に対応する少なくとも一つの符号(以下、拡張符号という。)との組み合わせを記録したデータベースである。なお、ここで整数は0以上の値を持つ。以下、上記組み合わせに規定される整数を規定整数と云い、規定整数以外の整数を規定外整数と云い、拡張符号に対応する符号化方法を拡張符号化方法と云うことにする。
【0057】
商符号化部は、符号テーブルを用いて、商yが規定整数のいずれかに相当する場合は、その対応する符号を出力し、商yが規定外整数に相当する場合は、拡張符号と、拡張符号に対応する予め定められた符号化方法で得られる規定外整数pの符号とを連結した符号を出力する。
【0058】
上記の各表1−6に示した符号テーブルの例において、規定整数および規定整数に対応する符号は例示に過ぎない。これらは、好ましくは、事前に用意された入力信号(学習用入力信号)を用いた学習によって設定される。例えば、学習用入力信号から得られるRiceパラメータsを用いて0以上の整数に変換された学習用入力信号の各サンプルの商を求め、これら商のハフマン符号を作成する。これら商のうち出現頻度(出現確率)の高いものとそのハフマン符号が規定整数とその符号として採用される。拡張符号は、規定整数の符号とは異なる二進符号であればよく、任意に設定される。拡張符号に対応する符号化方法も任意に設定される。
【0059】
また、学習に用いるRiceパラメータsを学習用入力信号から得られるRiceパラメータsに限定せず、任意に定めた2種類以上のパラメータs(好ましくは、学習用入力信号から得られるRiceパラメータsに近い値とする。)を用いて、パラメータsごとに、0以上の整数に変換された学習用入力信号の各サンプルの商とこれら商の符号(例えばハフマン符号)を作成することで、1種類の学習用入力信号から複数の符号テーブルを作成してもよい。
【0060】
学習用入力信号から得られるRiceパラメータsと学習用入力信号の各サンプルの商の出現頻度(出現確率)は、学習用入力信号の統計的性質に依存するから、学習用入力信号を複数用意し、各学習用入力信号から複数の符号テーブルを作成してもよい。
【0061】
符号化対象の入力信号の統計的性質が既知である場合には、この統計的性質と同じか良く似た統計的性質を持つ学習用入力信号を用いて、1つの符号テーブルを作成しておくことで足りる。しかし、符号化対象の入力信号の統計的性質が未知である場合や変動することなどが予想される場合には、複数の学習用入力信号から複数の符号テーブルを作成しておくことが望ましい。
【0062】
入力信号の統計的性質によっては、sビットで二進符号化された余りzのMSBと商yのLSBとの間に強い相関関係が認められるような場合がある。このような場合、余りzのMSBを商yに含めて符号化を行うことが良い。そこで、学習用入力信号から求められたRiceパラメータがs(s≧1)であるとき、s−1をRiceパラメータと看做して、0以上の整数に変換された学習用入力信号の各サンプルの商yと余りzを求める。これにより、余りzの符号長はs−1ビットに短縮される。一方、商yの符号長は二進符号で1ビット増えるものの、例えば商yにハフマン符号化を適用することにより、必ずしも商yの符号長は増加しない。また、商yの値はRiceパラメータがsの場合と比べて2倍になるから、規定整数の個数も2倍になりえる。このような場合であっても、規定整数に対応する符号の符号長が2倍になる訳ではない。余りzの符号長を短縮することで節約できた1ビット(0,1)を規定整数に対応する符号に付加することで2倍の個数の規定整数に対応できる。例えば表1の例において規定整数に対応する符号に1ビットを付加することで、表7(図27参照)に示すように、0から7までの8個の規定整数に対応できる(規定整数7に対応する符号が4ビット×2=8ビットではなく5ビットである。)。さらに、商yの出現頻度(出現確率)によっては、Riceパラメータがsの場合と比べて2倍の個数の規定整数を規定する必然性はなく、表8の例(図28参照)のように2倍の個数よりも少ない個数の規定整数を規定することができ、この場合、表1の例と比較して、規定整数に対応する符号の符号長は4ビットで同じであるが、余りzの符号の符号長が1ビット短くなっている。
【0063】
<符号化処理>
次に、図17と図18を参照して、符号化装置1における符号化処理の流れを叙述的に説明する。
【0064】
[ステップSc1]
符号化装置1のバッファ部30は、入力信号をバッファして、入力信号をフレーム単位で出力する。
【0065】
[ステップSc2]
符号化装置1の分離パラメータ計算部110は、1フレームの入力信号の各サンプルxi(i=1,2,・・・,N)を用いて、式(9)または式(10)に従いRiceパラメータs=└s0┘またはs=┌s0┐を求める。そして分離パラメータ計算部110は、求めたsまたはs−1を分離パラメータBとして、分離パラメータBを表す符号を出力する。なお、分離パラメータBをB=s−1によって得る場合、s=0のときB=0とする。
【0066】
ここで、分離パラメータBを表す符号は、例えばBの値の存在可能な範囲が0≦B≦7である場合、一例として、3ビットの符号ないし正整数表現を用いて0から7までの値を表すようにしても良いし、分離パラメータBの値の出現頻度に応じて、出現確率の高い値ほど短い一意の符号を割り当てるようにしてもよい。
後者の場合には、例えば2と3の出現確率が最も高い場合には以下のようなハフマン符号を符号化装置、復号化装置で共通に用いて符号化と復号化を行うことで、分離パラメータBの値を一意に解決できる。
B=0: 100
B=1: 101
B=2: 00
B=3: 01
B=4: 110
B=5: 1110
B=6: 11110
B=7: 11111
また、日本国特許出願番号2009-056017(国際出願番号PCT/JP2010/053676)に開示された方法を用いて分離パラメータBを符号化しても良い。
【0067】
[ステップSc3]
符号化装置1の商余計算部120は、ステップSc2で決定された分離パラメータBに応じて、0以上の整数に変換した1フレームの入力信号の各サンプルxiの商yiと余りzi求める。
商余計算部120は、まず、ステップSc2で決定された分離パラメータBが0と等しいか否かを判定する(ステップSc3−1)。B=0である場合には、商余計算部120は、0以上の整数に変換した1フレームの入力信号の各サンプルxiについて式(13)に従い商yiを求める(ステップSc3−2)。この場合、余りziは算出されない。B≧1である場合には、商余計算部120は、0以上の整数に変換した1フレームの入力信号の各サンプルxiについて、式(12)に従い商yiを求め、式(14)に従い余りziを算出する(ステップSc3−3)。余りziは、サンプルxiの正負を識別するための1ビットをMSBに付加してBビットの二進符号で表現される。
【0068】
[ステップSc4]
符号化装置1の商符号化部130は、ステップSc3で得られた商yiを記憶部70に記憶された符号テーブルを参照して符号化し、この商yiに対応する符号を出力する。この符号は実施形態1と同様の手順で求められる。
【0069】
商符号化部130は、複数の符号テーブルが存在する場合、分離パラメータBを与えたRiceパラメータsと同じ値のRiceパラメータを用いて作成された符号テーブルを用いて商yiの符号化を行う。複数の符号テーブルを用いて商yiの符号化を行った場合、得られた複数の符号のうち符号長が最小の符号を商符号化部130は出力する。この場合、商符号化部130は、出力する符号を得るために用いた符号テーブルを表す符号(符号テーブル特定符号)も出力する。記憶部に記憶された符号テーブルが一つだけの場合は、符号テーブル特定符号を出力する必要は無い。
【0070】
また、商符号化部130は、符号テーブルを用いた上述の符号化の他に、ステップSc3で得られた商yiに対して符号テーブルを用いない符号化を適用して符号を得てもよい。例えば、符号テーブルを用いない符号化方法として、ゴロム符号化、ゴロム‐ライス符号化、アルファ符号化などが例示される。この場合、符号テーブルを用いた符号化で得られた符号と符号テーブルを用いない符号化で得られた符号のうち符号長が最小の符号を商符号化部130は出力する。この場合、商符号化部130は、符号化方法を特定するための符号(符号化方法特定符号)と、符号化方法が符号テーブルを用いた符号化方法である場合には符号テーブル特定符号も出力する。
【0071】
合成部50は、出力された符号や符号テーブル特定符号などを多重化する。つまり、合成部50は、出力された、1フレームにつき一つ求められた分離パラメータBを表す符号、1フレームの各サンプルにつき商の符号と余りを表す二進符号を連結したビット列、必要に応じて、1フレームの各サンプルに対応する符号テーブル特定符号、符号化方法特定符号などをフレームごとにまとめて更にフレームの順番に従ってこれらを連結したビットストリームを出力する。ビットストリームは、図19に示す分離部40に入力される。分離部40は、ビットストリームを逆多重化して、符号化装置1から出力されたフレームごとの分離パラメータBを表す符号、フレームに含まれるサンプルごとの符号、フレームに含まれるサンプルごとの符号テーブル特定符号、符号化方法特定符号などを得る。
【0072】
<復号処理>
次に、図19と図20を参照して、本発明の実施形態3の復号装置2における復号処理の流れを叙述的に説明する。
【0073】
[ステップSd1]
復号装置2の商復号部210は、分離部40から送られたフレームに含まれる各サンプルの商の符号を復号する。この復号処理は、符号テーブル(分離部40によって符号テーブル特定符号が得られている場合には符号テーブル特定符号で特定される符号テーブルであり、符号テーブル特定符号が得られていない場合には既定の符号テーブルである。)を用いて、商の符号に拡張符号が含まれていなければ当該符号に対応する規定整数を出力し、商の符号に拡張符号が含まれていれば、拡張符号に対応する予め定められた符号化方法に対応する復号方法に従って当該符号から拡張符号を除いた部分を復号して得た整数を出力する処理である。出力された整数は商yiに相当する。
【0074】
例えば符号テーブルが表1で示したものである場合、商yiの符号が110であるならば、この商yiの符号に拡張符号1111が含まれていないので、符号110に対応する規定整数2を商yiとして出力する。また、商yiの符号が1111 110であるならば、この商yiの符号に拡張符号1111が含まれているので、拡張符号1111に対応するアルファ符号化code(U,p-4)の復号方法に従って当該符号1111 110から拡張符号1111を除いた部分110を復号して得られる整数2に4を加えた6を商yiとして出力する。ゴロム符号化、ゴロム-ライス符号化、アルファ符号化などに対応する各復号処理は、例えば上記非特許文献3に詳しいので、詳細な説明を略する。
【0075】
商復号部210は、分離部40によって符号化方法特定符号が得られている場合には、符号化方法特定符号で特定される符号化方法に対応する復号方法で商の符号を復号する。符号化方法特定符号で特定される符号化方法が符号テーブルを用いる符号化方法である場合には、商復号部210は上述したような復号処理を行い、符号化方法特定符号で特定される符号化方法が符号テーブルを用いない符号化方法である場合には、商復号部210は符号化方法特定符号で特定される例えばゴロム符号化、ゴロム-ライス符号化、アルファ符号化などの符号化方法に対応する復号方法で商の符号を復号する。
【0076】
[ステップSd2]
復号装置2の判定部220は、分離部40から送られた分離パラメータBを表す符号から、分離パラメータBが0に等しいか1以上であるかを判定する。B=0である場合、判定部220は、分離部40から送られたフレームに含まれる各サンプルの商の符号を第1復号部230へ送る制御を行う。B≧1である場合、判定部220は、分離部40から送られたフレームに含まれる各サンプルの商の符号を第2復号部240へ送る制御を行う。
【0077】
[ステップSd3]
復号装置2の第1復号部230は、(1)ステップSd1で得られた整数yiの二進符号のLSBが0の場合、当該整数yiを1/2倍した整数を得、(2)ステップSd1で得られた整数yiの二進符号のLSBが1の場合、当該整数yiについて正負を表す符号を負に反転した負整数から1を減算した整数を1/2倍した整数を得る。この得られた整数が、B=0である場合における、復号されたサンプルxiの値である。図中の記号≫は右シフト演算を表している。
【0078】
[ステップSd4]
復号装置2の第2復号部240は、(1)分離部40から送られたフレームに含まれる商yiに対応する余りziを表す二進符号のMSBが1であれば、ステップSd1で得られた整数yiを分離部40から送られた分離パラメータBを用いて2B−1倍した値の二進符号に、余りziを表す二進符号の下位B−1ビットを加算した整数を得、(2)分離部40から送られたフレームに含まれる商yiに対応する余りziを表す二進符号のMSBが0であれば、ステップSd1で得られた整数yiを分離部40から送られた分離パラメータBを用いて2B−1倍した値の二進符号に、余りziを表す二進符号の下位B−1ビット(または余りziを表すBビットの二進符号)を加算して得られる整数について正負を表す符号を負に反転した負整数から1を減算した整数を得る。この得られた整数が、復号されたサンプルxiの値である。図中の記号≪は左シフト演算を、記号&はビット単位の論理積演算を、記号|はビット単位の論理和演算を表している。
【0079】
これまでの説明では、入力信号を、その各サンプルが正または負の整数で表されるものとして説明した。例えば、音声信号に適用する符号化方式によって入力信号の各サンプルが正の符号を持つ整数で表されているような場合、各サンプルの正負の符号を識別する必要が無い。このような場合には、分離パラメータBを式(10)を利用して求め、商yiを式(15)または式(16)で、余りziを式(17)で求めればよい。
【数10】
【0080】
<本発明の実施形態4の符号化の概要>
実施形態4では、本発明の符号化を、G.711であらかじめ符号化された音響信号のロスレス符号化に適用する場合の別の例を図9を用いて示す。
入力はG.711符号化された音響信号で、サンプルあたり8ビットの符号により構成される符号列であり、以下ではG.711符号列と呼ぶ。入力されたG.711符号列は、符号化装置800Eにて、指定されたフレーム処理単位ごとに符号化処理される。
フレーム処理単位は、40サンプル、80サンプル、160サンプル、240サンプル、320サンプルの5通りのうちのいずれかで、符号化時に外部から指定されることとする。
【0081】
入力されたG.711符号列はバッファ部802Eで、指定されたフレーム処理単位(たとえば40サンプル)ごとに分割され、変換部804Eに渡される。また、バッファ部802Eでは指定されたフレーム処理単位を識別するための符号を、フレーム処理単位指定符号として出力する。
【0082】
変換部804Eでは、フレーム処理単位毎のG.711符号列中の各符号を、対応するPCM値に変換し、フレーム処理単位毎のPCM値列を出力する。
【0083】
予測分析部806Eでは、変換部804Eが出力したPCM値列に対して予測分析を行い、予測係数を決定する。(このとき、予測分析部806Eでは線形予測分析等用いることができるが、必ずしも線形予測分析に限る必要は無く、何らかの予測を用いてPCM値列に対する予測係数を得ればよい。)
【0084】
予測係数量子化部808Eでは、予測分析部806Eで決定された予測係数を量子化して、量子化予測係数を得ると同時に、量子化予測係数に対応する量子化予測係数符号を出力する。
【0085】
予測部810Eでは、量子化予測係数と過去のPCM値列を用いて、フレーム処理単位毎の現在のサンプルのPCM値の列を推定する。
【0086】
逆変換・変形部812Eでは、予測部810Eで推定されたPCM値の列の各PCM値をG.711符号化し、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(推定サンプル値)に変換する。ここで、たとえば日本国特許出願番号2007-319805(国際出願番号PCT/JP2008/072513)に記載されているような変形を行うこととしても良い。
【0087】
例えば、次のような変形を行う。特定の範囲に含まれる番号であって、G.711符号列Λ={λ(1),λ(2),…,λ(N)}内に発生していない番号があるかを確認する。Nは1フレームのサンプル数である。特定の範囲とは、例えば、正の絶対値が最小の値を示す番号と負の絶対値が最小の値を示す番号である。具体的には、ITU−T G.711のμ則の場合であれば“+0”と“−0”、A則の場合であれば“+8”と“−8”である。発生していない番号があると分かった場合には、当該発生していない番号が示す元の信号の大きさを除いて、元の信号の大きさを示す番号を付加しなおした番号に、G.711符号列の各番号を置き換えた番号の列T(Λ)={T(λ(1)),T(λ(2)),…,T(λ(N))}を出力する。例えば、ITU−T G.711のμ則の場合を考える。μ則では8ビットで“−127”から“+127”の番号を示しているが、“0”を示す番号には“+0”と“−0”の2つがある。そして、元の信号と線形な関係の値との関係では、“−127”は「−8031」、“+127”は「+8031」、“+0”と“−0”は「0」を示している。ここでは、“ ”は元の信号の大きさ(大小関係)を示す番号を示しており、「 」は元の信号と線形な関係の信号の振幅を示している。このように、“+0”と“−0”とは重複した番号なので、符号化装置によってはどちらか一方だけを出力する装置もある。そこで、例えば特定の範囲を“+0”と“−0”にする。そして、“−0”が発生しないのであれば、負の番号は1つずつずらし、“−0”が「−1」を示す番号、“−126”が「−8031」を示す番号として用いる。“+0”が発生しないのであれば、正の番号は1つずつずらし、“+0”が「+1」を示す番号とすればよい。また、“+0”も“−0”も存在しないのであれば、負の番号も正の番号も1つずつずらし、“−0”が「−1」を示す番号、“+0”が「+1」を示す番号とすればよい。
【0088】
変形部814Eでは、フレーム処理単位毎のG.711符号列中の各符号を、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(変形入力サンプル値)に変換する。ここでも、たとえば日本国特許出願番号2007-319805(国際出願番号PCT/JP2008/072513)に記載されているような変形を行うこととしても良く、その一例は上述したとおりである。
【0089】
誤差計算部816Eでは、逆変換・変形部812Eから得られた8ビット表現された推定サンプル値と、変形部814Eから得られた8ビット表現された変形入力サンプル値との差分を求めることで、変形入力サンプル値と推定サンプル値との誤差を計算する。この誤差の系列が本発明の符号化方法に入力される整数値系列xiである。
【0090】
分離パラメータ計算部818Eは、誤差の系列をフレーム処理単位のサンプル数だけ入力として誤差計算部816Eから受け取り、フレーム処理単位ごとに分離パラメータBを決定する。
また、分離パラメータ計算部818Eは分離パラメータBに対応する符号を分離パラメータ符号として出力する。実施形態3で説明したように、たとえば、分離パラメータBの出現頻度に応じて可変長符号化したハフマンテーブルをあらかじめ定めておき、そのハフマンテーブルを用いて分離パラメータBの符号を得る。
【0091】
商余計算部820Eは、分離パラメータ計算部818Eで決定した分離パラメータBを用いて、誤差系列xを商系列yと余系列zに分離する。また、商余計算部820Eは余系列に含まれる各余りをBビットで符号化して得られる余符号列を出力する。
【0092】
誤差系列xに含まれるサンプルxi(i=1,2,・・・,N;Nは1フレームに含まれるサンプル数)について、0以上の整数に変換したこのサンプルxiの分離パラメータBを用いた商yiおよび余ziを実施形態3の場合と同様に、式(12)、式(13)で求める。式(12)により商yiを求める場合は、余りを表す符号を、余りを表すB−1ビットの二進符号にサンプルxiの正負を識別するための1ビットの符号が付加されたBビットの固定長を持つ符号とする。式(13)により商yiを求める場合は、商yiを表す符号のLSB(Least Significant Bit)によってサンプルyiの正負が識別される。ここで、分離パラメータBを用いた商yiおよび余ziの分離方法は、一意に分離、合成が可能であれば別の分離方法を用いることとしても良い。
【0093】
本実施形態4では、フレーム処理単位に応じて符号テーブルの個数をフレーム処理単位が40サンプルの場合には1種類、フレーム処理単位が80サンプル以上の場合には4種類の中から1つを選択して用いるように切り替える。
これは、フレーム処理単位として、比較的小さな40サンプルが指定された場合には、誤差系列の分散が異なる4種類の符号テーブルの中から1つを選択するために、符号化テーブル指定符号に情報量を割り当てても、符号化対象となる誤差係数のサンプル数が少ない(40サンプル)ために、増加した符号テーブル指定符号分の情報量を補うほど誤差系列に対応する符号列の符号量の減少が見込めないため、結果的に符号テーブルを複数用いるメリットが無いためである。
これに対してフレーム処理単位が80サンプル以上の場合には、符号テーブル指定符号を用いて4種類の符号テーブルから誤差系列の統計的な性質に最も適した符号テーブルを選択することで、符号テーブル指定符号に用いる符号量を考慮したとしても、誤差系列に対応する符号列の符号量を減少させることが出来ることから、結果として総符号量をより少なくすることが出来る。
図10に商余計算部820Eでの計算によって得られた商系列に含まれる値の分布例を示す。
振幅の小さな値は比較的出現頻度が高いが、破線で示すラプラス分布とは異なる場合もあるため、複数の符号テーブルの中で、当該フレーム内の商系列に含まれる値の出現頻度分布に最も近い頻度分布をあらわしているものを選択して用いる。また、振幅の大きな値の出現頻度がラプラス分布と比較して大きくなっていると、アルファ符号では非常に長い符号が必要となる場合がある。
図11に、実施形態4でフレーム処理単位が40サンプルの場合に用いる符号テーブルの例、およびフレーム処理単位80以上の場合の符号テーブルの例を示す。フレームサイズおよび分割パラメータBによって符号テーブルおよび拡張符号に対応する符号化方式を切り替える。
【0094】
符号テーブル選択部822Eでは、商系列を入力として、出力される符号量が最小となるように記憶部824Eに記憶された符号テーブル8241を選択し、選択された符号テーブルに対応する符号テーブル指定符号を出力する。フレーム処理単位が80サンプル以上の場合には、テーブル0からテーブル3に示した4種類の符号テーブル(図11参照)の中から、当該フレームの商符号列の総符号量が最も少なくなる符号テーブルを選択し対応する符号テーブル指定符号を出力する。フレーム処理単位が40サンプルの場合には、符号テーブルは1種類に限定されているため、符号テーブル指定符号は出力されない。
【0095】
商符号化部826Eは、符号テーブル選択部822Eで選択された符号テーブルおよび、フレーム処理単位と分離パラメータBによって一意に決定された、拡張符号に対応する符号化方式を用いて商系列を符号化し、商符号列を出力する。
【0096】
このとき、分離パラメータBの値に応じてB=0の場合には、図11の上段のテーブル0からテーブル3に示すように、フレーム処理単位にかかわらず、拡張符号に対応した符号化方式として、アルファ符号code(U, p1-maxCode)を用いる。フレーム処理単位が40サンプルでB=0の場合に出力される商符号列に含まれる商符号の例を図12に示す。
B>0の場合には、図11の下段のテーブル0からテーブル3に示すように、フレーム処理単位にかかわらず、拡張符号に対応した符号化方式として、ライスパラメータs=1のゴロム‐ライス符号code(R, 1, p2-maxCode)を用いる。フレーム処理単位が40サンプルでB>0の場合に出力される商符号列に含まれる商符号の例を図13に示す。
分離パラメータBの計算式より、誤差系列の振幅が小さい場合に分離パラメータB=0となり、誤差系列の振幅が大きい場合に分離パラメータB>0となる。
誤差系列の振幅が小さい場合、すなわち分離パラメータB=0の場合には、ラプラス分布に近いが、誤差系列の振幅が大きい場合、すなわち分離パラメータB>0の場合には必ずしもラプラス分布に従わないことが実験的に観測されている。
観測によれば、分離パラメータB>0となるような場合には、ラプラス分布よりも相対的に振幅の大きな商の値の出現確率が高いことがわかっている。
本実施形態4では、このことを考慮して、分離パラメータB>0の場合には、誤差符号を分離パラメータBにより商と余りに分離し、その商のうち、値があらかじめ符号テーブルごとに定められた値maxCode以上のものに対して、さらにライスパラメータs=1のゴロム‐ライス符号化を用いて符号化する。
一方で、分離パラメータB=0の場合には、商をアルファ符号code(U, p-maxCode)で符号化する。ここで、誤差系列を分離パラメータBにより商と余りに分離する処理は、B=0では余りは存在しないので商系列のみが出力される。
このように、分離パラメータBの値と商系列の各値の出現確率の間には相関関係が存在しているので、分離パラメータBの値に応じて符号テーブルおよび拡張符号に対応する符号化方式の一方もしくは両方を切り替えることで符号化効率を向上させることができる。
同様にフレーム処理単位に応じて符号テーブルおよび拡張符号に対応する符号化方式を切り替える。
【0097】
合成部830Eでは、上記各処理部より出力された、フレーム処理単位指定符号、量子化予測係数符号、分離パラメータ符号、符号テーブル指定符号、商符号列、余符号列をフレーム毎にまとめて符号系列として出力する。
【0098】
<本発明の実施形態4の復号化の概要>
本発明の実施形態4の復号処理について図14を用いて説明する。
復号装置850Dの入力は、前記実施形態4の符号化により生成した符号系列である。
【0099】
分離部860Dでは符号系列を入力として受け取り、フレーム処理単位指定符号、量子化予測係数符号、分離パラメータ符号、符号テーブル指定符号、商符号列、余符号列、に分離して各処理部に送る。
【0100】
商復号部870Dでは、符号テーブル指定符号、および、フレーム処理単位指定符号により当該フレームの商符号列の復号に用いる符号テーブル8721(記憶部872Dに記憶されている)を選択する。また、商復号部870Dは、前記選択した符号テーブルを用いて、入力された商符号列の各商符号に対応する整数値の系列を商系列として出力する。
商系列は、商余合成部874Dに送られる。
【0101】
商余合成部874Dでは、分離パラメータ符号を復号して分離パラメータBを得て、余符号列を復号して得られる各余りziと、商系列に含まれる商yiとを用いて次式の計算により誤差系列に含まれる各サンプルxiを得る。ここで、y%2はyを2で除算した余りを表す。得られた誤差系列は、誤差加算部876Dに送られる。
【数11】
【0102】
量子化予測係数復号部878Dでは、分離部860Dから受け取った量子化予測係数符号を復号して、量子化予測係数を得る。
【0103】
予測部880Dでは、変換部884Dにより復号された過去のG.711符号列に対応する8ビットの整数値を、対応するPCM値に変換した系列を保持しており、この過去のPCM値列と、量子化予測係数を用いて、フレーム処理単位毎の当該PCM値の列を推定する。
逆変換・変形部882Dでは、予測部880Dで推定されたPCM値の列の各PCM値を、G.711符号化し、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(推定サンプル値)に変換する。ここで、符号化処理時に、日本国特許出願番号2007-319805(国際出願番号PCT/JP2008/072513)に記載されているような変形を行った場合には、復号処理時にも対応する処理を行う。
【0104】
誤差加算部876Dでは、逆変換・変形部882Dから得られた推定サンプル値と誤差系列中の当該誤差値を加算して、符号化処理時の「変形入力サンプル値」に相当する、元のG.711符号に対応し、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(復号変形入力サンプル値)を得る。
誤差加算部876Dでは、さらに、当該フレーム処理単位内の全てのサンプルについて同様の処理を行い、復号変形入力サンプル値系列を得る。
【0105】
逆変形部886Dでは前記復号された復号変形入力サンプル値系列から、元のG.711符号列を復元する。
【0106】
<商復号部での復号処理の詳細>
商復号部870Dにおいて、商符号列から商系列を得るに際して、復号テーブルを利用することにしても良い。本実施形態では、商符号列の復号に復号テーブルを用いる場合の好適な実施の形態について説明する。
例えば、フレーム処理単位の80サンプル以上の場合の符号テーブル0に対応する復号テーブルの例を図15に示す。復号処理手順の例を図16に示す。
【0107】
まず、商符号列のうち、未処理の商符号の先頭のビットを処理開始点とする(ステップS850)。未処理の商符号が存在するか否か判定する(ステップS852)。存在しないならば処理を終了する。存在すれば、符号テーブル指定符号に基づき、当該フレーム処理単位内(フレーム内)の商符号の復号に用いる復号テーブルvalue[],Len[]を選択する(ステップS854)。そして、フレーム内の商符号列の復号が完了したかを判定する(ステップS856)。完了した場合は、ステップS852の処理を行う。完了していない場合、商符号列のうち、未処理の商符号の先頭のビットを処理開始点とする(ステップS858)。商符号列から、1つの商符号に許容されている最長符号長に相当するビット数(実施例では6ビット)を読み込み0以上の整数値として変数vに設定する(ステップS860)。変数vの値で復号テーブルvalue[]を参照し商の値をq=value[v]とする(ステップS862)。商qの値で復号テーブルLen[]を参照し、当該符号のビット長I=Len[q]を得る(ステップS864)。商符号列の処理地点を当該符号長に相当するIビットだけ進め、未処理の商符号の先頭に移動する(ステップS866)。規定整数に対応する商符号かどうか確認(q−codeMax<0)する(ステップS868)。規定整数であれば、qを商の値として出力する(ステップS870)。規定整数でなければ、拡張符号から拡張符号に対応する符号化方式を判別し、判別された符号化方式で拡張符号に続く符号を復号して得られる整数値を商の値として出力する(ステップS872)。当該符号に対応する符号も含めて読み込んだビット数だけ読み込み位置を移動し、未処理の商符号の先頭のビットを処理開始点とする(ステップS874)。ステップS870およびS874の後に、ステップS856の処理を行う。
【0108】
つまり、商復号部870Dでは、符号系列から符号テーブル指定符号を読み込み、符号テーブル指定符号に対応する復号テーブルを選択する。
この復号テーブルには、符号テーブルに対応した値が登録されている。
【0109】
商符号は、先頭から連続するビット列として入力され、可変ビット長の符号である。
商復号部は、先頭より最大符号長に相当するビット数だけ整数値として読み込む。
この例では、符号テーブルに登録された符号のうち、最長の符号長は6ビットであるので、6ビットを読み込んで、0以上の整数とみなして変数vに設定する。
ここで、もし読むべき符号が存在しない場合には、最長符号長に達するまでLSB側に値0のビットを付与して、最長符号長にしてから配列を参照すればよい。
【0110】
次に、符号テーブル指定符号により選択された符号テーブルに対応する復号テーブルであるvalue[]テーブルを用いてこの6ビットの商符号に対応する値qを復号する。
すなわち、配列の添え字に前記設定したvを用いてq=value[v]とすれば復号後の値qが求まる。
【0111】
次に、実際の当該符号の符号長Iを求める。符号長はI=len[v]もしくはI=Len[q]として容易に求めることが出来る。
得られたIビット分だけ商符号の処理位置を移動することで、未処理の商符号の先頭位置に移動することが出来る。
【0112】
このように、可変符号長の符号の復号にもかかわらず、最長符号長のビットを無条件に読み込んで、その値を元に配列を参照するだけで、複雑な復号処理を行うことなく高速に復号結果を得ることが出来る。
同様に、当該符号長も配列を参照するだけで得ることが出来る。
また、符号テーブルの設計に際して、最長符号長のサイズを一定にすることで、復号テーブルのデータ保持に必要なメモリサイズを制限することが出来る。
本実施例では、図15の符号テーブルの設計に際して、各符号テーブルに登録される符号のうち、最長の符号長が6ビットに収まるように制約することで、復号テーブルのサイズを制限している。
【0113】
次に、得られた復号値qが、codeMaxよりも大きいかどうかを判定することで、当該商符号が、規定整数に対応した符号であるかどうかを確認する。(q-codeMax)<0であれば、当該商符号は規定整数に対応する符号であり、(q-codeMax)>=0であれば当該当該符号は拡張符号である。
【0114】
当該商符号が規定整数に対応する符号である場合には、得られたqを商の値として出力し、処理開始点を当該符号長分だけ移動させる。当該符号長Iは、前述のようにI=Len[q]として求めることが出来る。
【0115】
当該商符号が拡張符号に対応する符号である場合には、得られたqに対応する拡張符号を特定する。(図の例の場合はq=7のとき拡張符号p1)
また、同様に拡張符号の符号長Iだけ符号読み込み位置を移動させることで、処理開始点を未処理の商符号の先頭に移動させる。当該符号長Iは、前述のようにI=Len[q]として求めることが出来る。
続いて、拡張符号に対応する復号方式を用いて、拡張符号に続く符号を復号することで、商qを得る。
当該拡張符号に対応する符号化符号も含めて、読み込んだビット数だけ読み込み位置を移動し、未処理の商符号の先頭ビットを処理開始点とする。
【0116】
上記の処理を当該フレームのサンプル数に相当する数だけ商符号列を復号できた時点で、当該フレーム分の処理を終了する。
【0117】
以上の各実施形態の他、本発明である符号化装置・方法、復号装置・方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上述の説明に現れる技術的特徴を互いに矛盾しない範囲で自由に組み合わせて実施できる。
【0118】
また、上記符号化装置、復号装置における処理機能をコンピュータによって実現する場合、符号化装置、復号装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記符号化装置、復号装置における処理機能がコンピュータ上で実現される。
【0119】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0120】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0121】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0122】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、符号化装置、復号装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【技術分野】
【0001】
本発明は、信号の符号化技術に関し、より詳しくは、整数値系列の可逆符号化技術に関する。
【背景技術】
【0002】
音声周波数信号(voice-frequency signals)に対する符号化(encoding)の国際標準として、ITU−T(International Telecommunication Union - Telecommunication Standardization Sector) G.711が存在する(非特許文献1参照)。ITU−T G.711は、符号化方式として非線形PCM(Non-uniform Pulse Code Modulation)を採用しており、非線形量子化方式としてμ則(μ-law)とA則(A-law)の二種類を規定している。以下、「音声周波数信号」を音響信号と呼称する。
【0003】
また、動画(Visual)と音響(Audio)の符号化の国際標準としてISO/IEC JTC 1/SC 29/WG 11が策定したMPEG−4が存在し、その第3部が音響ロスレス符号化技術などを規定している(非特許文献2参照)。
【0004】
整数に対する符号化方法として、アルファ符号化(unary coding)が知られている(非特許文献3参照)。アルファ符号化は、0以上の整数kを、k個の連続する整数Aとこれに続く1個の整数Bで表現する符号化方法である。整数Bは整数Aと異なり、整数Aが1の場合に整数Bは0とされ、整数Aが0の場合に整数Bは1とされる。
【0005】
例えば、k=0のアルファ符号化による符号は0(または1)、k=1のアルファ符号化による符号は10(または01)、k=2のアルファ符号化による符号は110(または001)、k=3のアルファ符号化による符号は1110(または0001)、k=4のアルファ符号化による符号は11110(または00001)、k=5のアルファ符号化による符号は111110(または000001)となる。
【0006】
アルファ符号化の特徴として、(1)どんなに大きな整数kであっても符号化可能である、(2)符号化・復号の際に、符号化対象である整数kと符号とを対応付けたテーブルを使わないので、テーブルを保存するためのメモリを必要としない、(3)整数kは、k+1ビットで符号化される、(4)大きな整数kを表現する場合、整数kを2進数で表現する場合と比較して多くのビットを必要とする、ということが挙げられる。
【0007】
エントロピー符号化方法として、ハフマン符号化(Huffman coding)が知られている(非特許文献3参照)。ハフマン符号化は、符号化対象である入力値の出現頻度に応じて可変長符号を割り当てる符号化方法であり、出現頻度がより高い入力値に対してより短い符号を与える。
【0008】
ハフマン符号化の特徴として、(1)符号化・復号の際に、符号化対象である入力値と符号とを対応付けたテーブルを使用する、(2)テーブルサイズによって符号化できる最大値が決まる(従って、符号化対象である入力値の種類が多ければ大きなテーブルが必要となる)、(3)テーブルサイズが大きい場合に、出現頻度の低い入力値のハフマン符号が、入力値を2進数で表現する符号化と比較して多くのビットを必要とする場合がある、が挙げられる。
【0009】
整数に対する符号化方法として、ゴロム‐ライス符号化(Golomb-Rice coding)が知られている(非特許文献3参照)。0以上の整数tのゴロム‐ライス符号は、所定の整数s(Riceパラメータ)を用いて式(1)で求まる商qをアルファ符号化し、式(2)で求まる余りrをsビットの二進符号で符号化して、さらに商qのアルファ符号と余りrの二進符号を連結することで得られる。記号└・┘は床関数を表す。
【数1】
【0010】
ゴロム‐ライス符号の特徴として、(1)ゴロム‐ライス符号の符号長は整数sに依存する、(2)整数tのゴロム‐ライス符号はq+s+1ビットで表せる、(3)商qをアルファ符号化するため、整数tが大きくなると整数tのゴロム‐ライス符号の符号長は長くなる、(4)入力値が正負の値を取る場合は、入力値を0以上の整数tにしてからゴロム‐ライス符号化を行う、が挙げられる。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】ITU-T Recommendation G.711, "Pulse Code Modulation (PCM) of voice frequencies," ITU-T, 1993.
【非特許文献2】ISO/IEC 14496-3 AMENDMENT 2: Audio Lossless Coding (ALS), new audio profiles and BSAC extensions, 2005.
【非特許文献3】David Salomon, "Data Compression : The Complete Reference," 3rdedition, Springer-Verlag, ISBN-10: 0-387-40697-2, 2004.
【発明の概要】
【発明が解決しようとする課題】
【0012】
この明細書に用いる用語は、特に断りの無い限り、ITU−T G.701(参考文献1)に準拠する。しかし、これは本発明の適用範囲をITU−TのGシリーズ勧告が適用される技術分野に限定する意図ではない。この技術分野以外の技術分野、例えば上記非特許文献2に関わる技術分野に本発明を適用する場合には、この明細書に用いる用語を、(もし在れば)当該技術分野の対応する用語に読み替えればよい。
(参考文献1)ITU-T Recommendation G.701, "Vocabulary of Digital Transmission and Multiplexing, and Pulse Code Modulation (PCM) Terms," ITU-T, 1993.
【0013】
所定の複数のサンプルをまとめたフレーム単位で符号化処理を行う場合に、フレームに含まれるサンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従うならば、ゴロム‐ライス符号は、整数符号の中で最適符号である。これは、サンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従うならば、商qの確率分布が(離散的に)1/2,1/4,1/8,1/16,・・・,1/2h,・・・となりアルファ符号が最適になることによる。
【0014】
フレームに含まれるサンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従わない場合、もしくは、統計的にサンプル数が十分ではない場合、ゴロム‐ライス符号は必ずしも最適符号にならない。これは、商qの確率分布がアルファ符号で最適となる確率分布に従わないため、アルファ符号の符号長が大きくなることによる。
【0015】
ハフマン符号化は、符号化対象となるサンプル値の統計的な出現頻度に応じて、統計的に学習されたハフマン符号テーブルを用いることで、Laplace分布に限らず任意の出現頻度分布のサンプル値を高能率に符号化することができることが知られている。しかし、符号化対象となる整数値の取りうる範囲が広範にわたる場合には、大きなハフマン符号テーブルを具備する必要があり、ハフマン符号テーブルの記録容量が実施の制約になるという問題がある。
【0016】
そこで、本発明は、フレームに含まれるサンプルxi(i=1,2,・・・,N)の値の出現頻度分布がLaplace分布に従わない場合や統計的にサンプル数が十分ではない場合であっても、フレームの符号長の増加を抑えることのできる符号化に関わる技術を提供することを目的とする。
【課題を解決するための手段】
【0017】
本発明の符号化方法は、[1]整数(以下、規定整数という。)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(以下、拡張符号という。)を記録した符号テーブルが複数個、予め決められており、整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、当該規定整数に対応する符号を符号化結果とし、整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、拡張符号と、拡張符号に対応するあらかじめ定めておいた符号化方法を符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果とする、符号化を行う符号化ステップを含み、符号化ステップでは、複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力することを特徴とする。
【発明の効果】
【0018】
本発明によれば、限定されたサイズの符号テーブルで広い範囲の入力を扱って高能率に符号化することができる。
また、本発明によれば、所定数のサンプルごとにフレームとして、複数の異なる出現頻度分布に対応した複数の符号テーブルの中から最適なものをフレームごとに選択的に用いることで、入力信号を高能率に符号化することができる。
また、本発明によれば、フレームの各サンプルの商がアルファ符号化されないので、フレームに含まれるサンプルxi(i=1,2,・・・,N)の出現頻度分布がLaplace分布に従わない場合や統計的にサンプル数が十分ではない場合であっても、各サンプルの符号の符号長ひいてはフレームの符号長の増加を抑えることができる。
【図面の簡単な説明】
【0019】
【図1】実施形態1に係る符号化装置の機能構成例を示すブロック図。
【図2】実施形態1に係る符号化処理の処理フローを示す図。
【図3】実施形態1に係る復号装置の機能構成例を示すブロック図。
【図4】実施形態1に係る復号処理の処理フローを示す図。
【図5】実施形態2に係る符号化装置の機能構成例を示すブロック図。
【図6】実施形態2に係る符号化処理の処理フローを示す図。
【図7】実施形態2に係る復号装置の機能構成例を示すブロック図。
【図8】実施形態2に係る復号処理の処理フローを示す図。
【図9】実施形態4に係る符号化装置の機能構成例を示すブロック図。
【図10】商信号の値の分布例を示す図。
【図11】符号テーブルの例を示す図。
【図12】分離パラメータB=0の場合に出力される誤差符号の例を示す図。
【図13】分離パラメータB>0の場合に出力される誤差符号の例を示す図。
【図14】実施形態4に係る復号装置の機能構成例を示すブロック図。
【図15】図11に示したn≧80の符号テーブル0に対応する復号テーブルの例を示す図。
【図16】実施形態4に係る復号処理の処理フローを示す図。
【図17】実施形態3に係る符号化装置の機能構成例を示すブロック図。
【図18】実施形態3に係る符号化処理の処理フローを示す図。
【図19】実施形態3に係る復号装置の機能構成例を示すブロック図。
【図20】実施形態3に係る復号処理の処理フローを示す図。
【図21】符号テーブルの一例(表1)。
【図22】符号テーブルの一例(表2)。
【図23】符号テーブルの一例(表3)。
【図24】符号テーブルの一例(表4)。
【図25】符号テーブルの一例(表5)。
【図26】符号テーブルの一例(表6)。
【図27】符号テーブルの一例(表7)。
【図28】符号テーブルの一例(表8)。
【発明を実施するための形態】
【0020】
<本発明の実施形態1の符号化の概要>
実施形態1で扱う入力信号は0以上の整数値系列とする。この整数値系列は、例えば、上記非特許文献1の音響ロスレス符号化技術で行っているように、音響信号に線形予測分析を適用して得られる線形予測残差の値を、振幅の絶対値が小さなものが小さな値に割り当てられるように0以上の整数値へ一意の線形写像を行って得られる整数値系列であっても良い。
【0021】
本発明の実施形態1の符号化は、入力信号が0以上の整数値系列であり、且つ、入力信号の整数値が、特定の範囲の値において比較的出現確率が高いという統計的な性質を有する場合に、高能率に圧縮することができる。
【0022】
符号化装置は、[1]整数(以下、規定整数という。)とこれに対応する符号との組み合わせ、並びに、[2]規定整数以外の複数の整数による組とこの組に対応する一つの符号(以下、拡張符号という。)との組み合わせを少なくとも1つ、を記録した符号テーブルを具備し、上記入力信号の整数値系列中の符号化対象となる整数値を逐次符号化して符号を出力する。規定整数以外の整数を以下では規定外整数という。
【0023】
この符号化処理において、上記入力信号の整数値系列中の符号化対象となる整数値が、規定整数に該当する場合には、当該規定整数に対応する符号を上記符号テーブルから選択して符号化結果の符号とし、上記整数値系列中の符号化対象となる整数値が、規定外整数に該当する場合には、上記符号テーブルに記録された上記拡張符号と、あらかじめ定めておいた上記拡張符号に対応する符号化方法を上記規定外整数に対して適用して得られる符号とを連結した符号を符号化結果の符号とする符号化が行われる。
【0024】
実施形態1の符号化装置600Eの機能的構成例を図1に示す。
符号化装置600Eは、符号テーブル622を記憶する記憶部620Eと、整数値系列を入力として符号テーブル622を用いて符号系列を出力する符号化部610Eとを含む。
符号化処理手順を図2に示す。
まず、未処理の整数値が存在するか否か判定する(ステップS600)。存在しないならば処理を終了する。存在すれば、整数値系列のうち、未処理の整数値の先頭のものをXとする(ステップS602)。そして、符号テーブル622にXが規定整数として登録されているか否かを検索する(ステップS604)。Xが規定整数か否か判定する(ステップS606)。Xが規定整数ならば、符号テーブル622に登録されている規定整数Xに対応する符号を出力する(ステップS608)。Xが規定整数でないならば、拡張符号と拡張符号に対応する符号化方式でXを符号化した符号を結合して出力する(拡張符号が複数存在する場合には、最も符号量が少なくなるものを用いる)(ステップS610)。
【0025】
符号テーブル622の一例を表1〜表6に示す。
表1〜表6に示す各符号テーブルでは、記号:の右側の符号が、その左側の規定整数に対応付けられている。規定外整数pに対応する符号は、拡張符号と、拡張符号で特定される符号化方法で規定外整数pを符号化した結果の符号と、の連結で得られる。記号‖は、符号同士の連結を表す。
【0026】
拡張符号によって特定される、拡張符号に対応する符号化方式は、符号化装置と復号化装置のそれぞれにおいてあらかじめ決定しておく。なお、可逆符号化を行うためには、符号化装置と復号化装置とで同一の符号化方式を用いる必要があるため、拡張符号に対応する符号化方式は、符号化装置と復号化装置との間で一意に決定しておく。以下、表1〜表6の例では、簡便のために、Uはアルファ符号化を、Rはゴロム‐ライス符号化を、Fは固定長符号化を表す記号として用い、それらの符号化方法で数値kを符号化して得られた符号をcode(U,k)、code(R,s,k)、code(F,g,k)等であらわすこととする。
【0027】
表1の例(図21参照)では、1種類の拡張符号が規定されており1111である。拡張符号1111に対応した符号化方式はアルファ符号code(U,p-4)であり、あらかじめ符号化装置と復号化装置の間で一意に決定しておく。
code(U,p-4)は、符号化対象となる整数値が規定外整数pであるとき、整数pから4を引いたp−4をアルファ符号化して得られる符号をあらわしている。但し、この例ではp≧4である。
入力信号中の符号化対象となる整数値が規定整数に相当する0〜3あれば、表1に登録された0〜3に対応する符号が選択されて出力される。たとえば、規定整数である整数値3の符号は1110となる。
また、規定外整数p=6の符号は拡張符号1111とp−4をアルファ符号化して得られる110を連結した1111 110となる。
【0028】
表2の例(図22参照)では、2種類の拡張符号が規定されており11110および11111である。拡張符号11110に対応した符号化方式はアルファ符号で、拡張符号11111に対応した符号化方式は固定長符号とライス符号との連結である。拡張符号と対応する符号化方式の組み合わせは、あらかじめ符号化装置と復号化装置の間で一意に決定しておく。
この例のcode(U,p-4)は、拡張符号11110に対応する符号化方式が出力する符号で、符号化対象となる整数値が規定外整数pであるとき、整数pから4を引いたp−4をアルファ符号化して得られる符号をあらわしている。code(F,g,s-1)‖code(R,s,p-4)は、拡張符号11110に対応する符号化方式が出力する符号であり、符号化対象となる整数値が規定外整数pであるとき、Riceパラメータsのgビットの固定長符号code(F,g,s-1)と、Riceパラメータsのゴロム・ライス符号化によって得られる整数p−4の符号code(R,s,p-4)を連結した符号を表す。但し、p≧4である。採りえるsの値の個数Wについてg=┌log2W┐である。また、code(R,s,p-4)は、p-4の二進表現の下位sビットを出力した後に、(p-4)/(2^s)の商をアルファ符号で出力するものとする。この順序は符号化処理部と、復号処理部の間であらかじめ一意に決めておいたものを用いる。
例えばRiceパラメータsが1≦s≦4と設定されている場合、g=2であり、規定外整数p=12の符号は
11110 111111110または
11111 00 011110(s=1;2ビット符号00)または
11111 01 00110(s=2;2ビット符号01)または
11111 10 00010(s=3;2ビット符号10)または
11111 11 10000(s=4;2ビット符号11)となる。
2種類以上の拡張符号が規定されている場合には、少なくとも2つの符号が得られるから、規定外整数の符号は、得られた符号のうち最小の符号長を持つものとする(上記の例では、s=2,3,4のいずれでも符号長は同じになるので、いずれでもよい。たとえば最初のエントリーのs=2を用いる。)
【0029】
表3の例(図23参照)では、4種類の拡張符号が規定されており111100、111101、111110、111111である。code(U,p-4)は、アルファ符号化によって得られる整数p−4の符号を表す。code(F,g,s-3)は、Riceパラメータsのgビットの固定長符号を表す。採りえるsの値の個数Wについてg=┌log2W┐である。code(R,s,p-4)はRiceパラメータsのゴロム‐ライス符号化によって得られる整数p−4の符号を表す。但し、p≧4である。拡張符号が111101の場合はRiceパラメータsが1、拡張符号が111110の場合はRiceパラメータsが2に固定されている。
この例では、拡張符号が111111の場合には、Riceパラメータsは3≦s≦6の4通りの値をとり、s-3をg=2ビットの固定長符号code(F,g,s-3)であらわし、固定長符号code(F,g,s-3)とRiceパラメータsを用いたゴロム・ライス符号によりp−4を符号化した符号code(R,s,p-4)と連結する。
たとえばp=12の符号は
111100 111111110または
111101 011110(s=1)または
111110 00110(s=2)または
111111 00 00010(s=3;2ビット符号00)または
111111 01 10000(s=4;2ビット符号01)または
111111 10 001000(s=5;2ビット符号10)または
111111 11 0001000(s=6;2ビット符号11)となる。
2種類以上の拡張符号が規定されている場合には、少なくとも2つの符号が得られるから、規定外整数の符号は、得られた符号のうち最小の符号長を持つものとする。
【0030】
表4の例(図24参照)では、2種類の拡張符号が規定されており11110、11111である。code(U,p-4:4≦p≦6)はアルファ符号化によって得られる整数p−4(但し、4≦p≦6)の符号を表す。code(U,p-12:15≦p)はアルファ符号化によって得られる整数p−12(但し、15≦p)の符号を表す。code(F,h,p-7:7≦p≦14)は、固定長符号化によって得られる整数p−7のhビット符号を表す。採りえるpの値の個数Qについてh=┌log2Q┐である。pが7≦p≦14を満たす整数である場合、h=3である。表4の例は、小さい整数ほどその出現頻度(出現確率)が高い場合に、これらの整数にできるだけ短い符号を割り当てるように工夫したものであり、表1の例の符号テーブルを改良したものに相当する。例えばp(4≦p≦19)の符号は
11110 0(p=4)、
11110 10(p=5)、
11110 110(p=6)、
11111 000(p=7)、
11111 001(p=8)、
11111 010(p=9)、
11111 011(p=10)、
11111 100(p=11)、
11111 101(p=12)、
11111 110(p=13)、
11111 111(p=14)、
11110 1110(p=15)、
11110 11110(p=16)、
11110 111110(p=17)、
11110 1111110(p=18)、
11110 11111110(p=19)である。
【0031】
表5の例(図25参照)では、3種類の拡張符号が規定されており111101、111110、111111である。code(U,p-5)はアルファ符号化によって得られる整数p−5の符号を表す。code(F,3,p-5)は固定長符号化によって得られる整数p−5の3ビット符号を表す。code(F,4,p-5)は固定長符号化によって得られる整数p−5の4ビット符号を表す。但し、p≧5である。
【0032】
表6の例(図26参照)では、2種類の拡張符号が規定されており1110、110である。code(U,p-3:p=3)はアルファ符号化によって得られる整数p−3の符号0を表す。code(U,p-4:5≦p)はアルファ符号化によって得られる整数p−4(但し、5≦p)の符号を表す。code(F,3,p-4:5≦p)は、固定長符号化によって得られる整数p−4(但し、5≦p)の3ビット符号を表す。表1〜表5の例では、規定外整数pの符号が規定整数の符号の符号長よりも長い符号長を持つものであったが、この表6の例のように、規定外整数pの符号の符号長が規定整数の符号の符号長と同じか短くなるように規定外整数pの符号を割り当てることもできる。規定整数の出現頻度と比較して、規定外整数の出現頻度が相対的に高い場合に、規定外整数に対応する拡張符号長が短い符号テーブルを用いる。このように、符号テーブルは、あらかじめ統計的な出現頻度の期待値を計測して設計する。
【0033】
<本発明の実施形態1の復号化の概要>
本発明の実施形態1の復号化では、実施形態1の符号化により生成された符号系列を入力とし、元の整数値系列を得る。
符号系列中の符号は元の整数値に対応した可変長符号化により符号化されており、先頭から逐次復号することによって元の整数系列を得る。
【0034】
実施形態1の復号装置650Dの機能的構成例を図3に示す。
復号装置650Dは、符号テーブル622を記憶する記憶部670Dと、符号系列を入力として符号テーブル622を用いて整数値系列を出力する復号部660Dを含む。
復号処理手順を図4に示す。
まず、未処理の符号が存在するか否か判定する(ステップS650)。存在しないならば処理を終了する。存在すれば、符号系列のうち、未処理の符号の先頭のビットを処理開始点とする(ステップS652)。そして、符号テーブル622に登録されている符号のうち、符号系列と一致するものを探索する(ステップS654)。規定整数に対応する符号であるか否かを判定する(ステップS656)。規定整数に対応する符号である場合、符号テーブル622に登録されている符号に対応する規定整数を整数値Xとして出力する(ステップS658)。規定整数に対応する符号でない場合、拡張符号と拡張符号に対応する符号化方式を判別し、判別された符号化方式で拡張符号に続く符号を復号して得られる整数値Xを出力する(ステップS660)。
【0035】
つまり、符号系列の先頭のビットから順に、符号テーブルに記録されている規定整数に対応する符号、もしくは、拡張符号と特定できるまで、符号ビットを逐次読み込む。
読み込んだ符号が、規定整数に対応する符号と一致した場合には、当該符号に対応する規定整数を復号された整数値として出力する。
読み込んだ符号が、拡張符号である場合には、拡張符号に対応してあらかじめ一意に定められた符号化方式の符号を、拡張符号に続く符号系列から読み込んで復号し、結果の整数値を出力する。
【0036】
例えば、表2(図22参照)を用いて符号化された符号列から、元の整数値系列を復号する場合に、入力符号系列が以下のようであった場合を例にとって説明する。
010111101011111010110
ただし、g=2とする。
図4のステップに従えば、未処理の符号を先頭のビットより逐次調べて、表2に記録された符号中の一致する符号を見つける。表2より、上記入力符号系列は以下のように解析される。
0,10,11110‖10,11111‖01‖01 10
したがって、復号により得られる整数値系列は、0,1,5,5,9となる。
【0037】
<本発明の実施形態2の符号化の概要>
本発明の実施形態2の符号化装置700Eの機能的構成例を図5に示す。
符号化装置700Eは、複数の符号テーブル722を記憶する記憶部730Eと、整数値系列を入力として所定のサンプル数ごとにまとめたフレームのサンプルを出力するフレーム分割部710Eと、フレームのサンプルを入力として符号テーブル722を用いて符号系列と符号テーブル指定符号を出力する符号化部720Eを含む。
【0038】
符号化処理を図6に示す。
まず、未処理のフレームが存在するか否か判定する(ステップS700)。存在しないならば処理を終了する。存在すれば、当該フレームに用いる符号テーブルを選択し符号テーブル指定符号を出力する(ステップS702)。それぞれの符号テーブルを用いて整数値系列を符号化した場合の符号量を推定し、最も符号量が少なくなる符号テーブルを選択する。また各符号テーブルを用いた場合の符号量を推定して符号テーブルを選択することとしてもよい。次に、選択された符号テーブルを用いて整数値系列の符号化処理を行う(ステップS704)。フレーム内に未処理の整数値が存在するか否かを判定する(ステップS706)。フレーム内に未処理の整数値が存在しない場合、ステップS700の処理を行う。フレーム内に未処理の整数値が存在する場合、整数値系列のうち、未処理の整数値の先頭のものをXとする(ステップS708)。そして、符号テーブル722にXが規定整数として登録されているか否かを検索する(ステップS710)。Xが規定整数か否か判定する(ステップS712)。Xが規定整数ならば、符号テーブル722に登録されている規定整数Xに対応する符号を出力する(ステップS714)。Xが規定整数でないならば、拡張符号と拡張符号に対応する符号化方式でXを符号化した符号を結合して出力する(拡張符号が複数存在する場合には、最も符号量が少なくなるものを用いる)(ステップS716)。ステップS714とS716の後、ステップS706の処理を行う。
【0039】
入力される整数値系列中の整数値を、先頭から逐次、あらかじめ定めておいた個数ごとにフレームとしてまとめて処理する点、および、複数の符号テーブルを備え、フレーム単位でフレームの符号量が最も小さくなるように符号テーブルを切り替える点、選択された符号テーブルを特定する符号テーブル指定符号をフレームごとに出力する点が実施形態1と異なる。
【0040】
<本発明の実施形態2の復号の概要>
本発明の実施形態2の復号装置750Dの機能的構成例を図7に示す。
復号装置750Dは、複数の符号テーブル722を記憶する記憶部780Dと、符号テーブル指定符号を入力として符号テーブル722の選択制御を行う符号テーブル選択制御部760Dと、符号系列を入力として符号テーブル722を用いて整数値系列を出力する復号部770Dを含む。
【0041】
復号処理を図8に示す。
まず、未処理の符号が存在するか否か判定する(ステップS750)。存在しないならば処理を終了する。存在すれば、符号系列から符号テーブル指定符号を読み込み、符号テーブルを選択する(ステップS752)。そして、フレーム内の整数値の復号が完了したかを判定する(ステップS754)。完了した場合は、ステップS750の処理を行う。完了していない場合、符号系列のうち、未処理の符号の先頭のビットを処理開始点とする(ステップS756)。そして、符号テーブル722に登録されている符号のうち、符号系列と一致するものを探索する(ステップS758)。規定整数に対応する符号であるか否かを判定する(ステップS760)。規定整数に対応する符号である場合、符号テーブル722に登録されている符号に対応する規定整数を整数値Xとして出力する(ステップS762)。規定整数に対応する符号でない場合、拡張符号と拡張符号に対応する符号化方式を判別し、判別された符号化方式で拡張符号に続く符号を復号して得られる整数値Xを出力する(ステップS764)。
【0042】
実施形態2の復号処理は,フレーム単位で復号処理を行う。
先ず、符号テーブル指定符号を復号し、指定された符号テーブル(もしくは符号テーブルに対応する復号テーブル)を用いて復号する点が実施形態1の復号方法と異なる。
符号系列の先頭のビットから順に、符号テーブルに記録されている規定整数に対応する符号、もしくは、拡張符号と特定できるまで、符号ビットを逐次読み込む。
読み込んだ符号が、規定整数に対応する符号と一致した場合には、当該符号に対応する規定整数を復号された整数値として出力する点は実施形態1の復号方法と同じである。
【0043】
<本発明の実施形態3の符号化の概要>
上記の実施形態1および2を、ゴロム‐ライス符号化に類似の符号化と組み合わせた実施形態を以下に示す。
本実施形態で扱う入力信号は、音響信号に何らかの符号化方式を適用して符号化することで得られた信号とする。但し、入力信号の各サンプルは整数で表されているとする。このような符号化方式として、例えば上記非特許文献1のITU−T G.711などが挙げられる。また、入力信号は、音響信号に何らかの符号化方式を適用して符号化することで得られた信号(元信号)そのものに限定されず、例えば、元信号に線形予測分析を適用して得られる線形予測残差であってもよい。
【0044】
符号化装置は、入力信号をフレーム単位で符号化する。まず、符号化装置の分離パラメータ計算部が、1フレームの入力信号から当該フレームの各サンプルに対する分離パラメータBを求める。分離パラメータBは様々な方法で決定することができる。たとえば本実施形態3ではゴロム‐ライス符号化のRiceパラメータと類似の方法で決定する。
【0045】
Riceパラメータsの算出について説明する。Riceパラメータsは、1フレームの入力信号の各サンプルをゴロム‐ライス符号化して得られる当該入力信号の符号長(つまり、各サンプルのゴロム‐ライス符号の合計符号長)を最小にするように定められる。なお、入力信号が例えば符号化方式ITU−T G.711で得られている場合、この入力信号の各サンプルは正負の整数で表される場合がある。このように各サンプルが正負の整数で表される場合には、Riceパラメータsは、0以上の整数に変換した1フレームの入力信号の各サンプルを符号化して得られる当該入力信号の符号長(つまり、各サンプルのゴロム‐ライス符号の合計符号長)を最小にするように定められる。以下の例では、入力信号の各サンプルが正負の整数で表されているとする。
【0046】
入力信号に含まれる或るサンプルxi(i=1,2,・・・,N;Nは1フレームに含まれるサンプル数)について、0以上の整数に変換したこのサンプルxiのRiceパラメータsを用いた商qiは式(3)、式(4)で与えられる。式(3)により商qiを求める場合は、余りを表す符号を、余りを表すs−1ビットの二進符号にサンプルxiの正負を識別するための1ビットの符号が付加されたsビットの固定長を持つ符号とする。式(4)により商qiを求める場合は、商qiを表す符号のLSB(Least Significant Bit)によってサンプルxiの正負が識別される。
【数2】
【0047】
或るサンプルxiを表す符号の符号長Cは式(5)で得られる。ただし、aは0または1または2である。記号|・|は絶対値を表す。式(5)の第1項と第2項の合計は商qiのアルファ符号の符号長を表し、第3項は余りを表す二進符号の符号長を表している。
【数3】
【0048】
従って、0以上の整数に変換された入力信号の符号長、つまり0以上の整数に変換された各サンプルのゴロム‐ライス符号の符号長の合計C(s,xi,N)は式(6)で与えられる。なお、式(6)に現れるDは式(7)で与えられる。
【数4】
【0049】
C(s,xi,N)を最小にするs(以下、s0とする。)は、式(8)をsについて解くことで得られる。つまりs0は、式(9)で与えられる。記号lnは自然対数を表す。所望のRiceパラメータsは、s=└s0┘またはs=┌s0┐で得られる。記号┌・┐は天井関数を表す。なお、数値計算を実行することによる処理速度の低下を避けるため、予めD、N、aとの組み合わせでs0を求めておき、D、N、aの組み合わせにsを対応付けたテーブルを記憶部に記憶しておいてもよい。D、N、aが定まればテーブルを参照することでRiceパラメータsを決定できるから処理速度の低下を回避できる。テーブルにD、N、aの組み合わせが無い場合には数値計算でs0を求めればよい。
【数5】
【0050】
D/Nがaよりも十分に大きい場合、式(9)は式(10)に書き改められる。
【数6】
【0051】
フレームのライス符号長C(s,xi,N)の最小値C(xi,N)は式(11)で与えられる。
【数7】
【0052】
結局、分離パラメータ計算部は、式(9)または式(10)を用いて1フレームの入力信号からRiceパラメータs=└s0┘またはs=┌s0┐を求めることで、分離パラメータBを求める。
【0053】
分離パラメータBが求まると、符号化装置の商余計算部は、1フレームの入力信号の各サンプルを0以上の整数に変換してその商yiと余りziを求める。商yiの算出は、分離パラメータBに応じて式(12)または式(13)に従う。B=0の場合、除数は20=1であるため、商yiの算出は、実質的には、サンプルxiが0以上であるならば偶数に置換し、サンプルxiが負であるならば奇数に置換する処理に相当する。
【数8】
【0054】
余りziは、式(14)で得られる。B=0の場合、余りziは得られない。
【数9】
【0055】
余りziは、Bビットの二進符号で表現される。商yiを式(12)で得る場合、余りziはB−1ビットの二進符号で表されるが、サンプルxiの正負を識別するための1ビットを付加してBビットの二進符号としている。例えば、この識別用の1ビットを余りziを表す二進符号のMSB(Most Significant Bit)とし、サンプルxiが0以上であれば1とし、サンプルxiが0未満であれば0とする。
【0056】
符号化装置の商符号化部は、少なくとも一つの符号テーブルを用いて商yiを符号化する。符号テーブルはそれぞれ、(1)整数とこれに対応する符号との組み合わせ、並びに(2)前記組み合わせに規定される整数以外の複数の整数の組とこの組に対応する少なくとも一つの符号(以下、拡張符号という。)との組み合わせを記録したデータベースである。なお、ここで整数は0以上の値を持つ。以下、上記組み合わせに規定される整数を規定整数と云い、規定整数以外の整数を規定外整数と云い、拡張符号に対応する符号化方法を拡張符号化方法と云うことにする。
【0057】
商符号化部は、符号テーブルを用いて、商yが規定整数のいずれかに相当する場合は、その対応する符号を出力し、商yが規定外整数に相当する場合は、拡張符号と、拡張符号に対応する予め定められた符号化方法で得られる規定外整数pの符号とを連結した符号を出力する。
【0058】
上記の各表1−6に示した符号テーブルの例において、規定整数および規定整数に対応する符号は例示に過ぎない。これらは、好ましくは、事前に用意された入力信号(学習用入力信号)を用いた学習によって設定される。例えば、学習用入力信号から得られるRiceパラメータsを用いて0以上の整数に変換された学習用入力信号の各サンプルの商を求め、これら商のハフマン符号を作成する。これら商のうち出現頻度(出現確率)の高いものとそのハフマン符号が規定整数とその符号として採用される。拡張符号は、規定整数の符号とは異なる二進符号であればよく、任意に設定される。拡張符号に対応する符号化方法も任意に設定される。
【0059】
また、学習に用いるRiceパラメータsを学習用入力信号から得られるRiceパラメータsに限定せず、任意に定めた2種類以上のパラメータs(好ましくは、学習用入力信号から得られるRiceパラメータsに近い値とする。)を用いて、パラメータsごとに、0以上の整数に変換された学習用入力信号の各サンプルの商とこれら商の符号(例えばハフマン符号)を作成することで、1種類の学習用入力信号から複数の符号テーブルを作成してもよい。
【0060】
学習用入力信号から得られるRiceパラメータsと学習用入力信号の各サンプルの商の出現頻度(出現確率)は、学習用入力信号の統計的性質に依存するから、学習用入力信号を複数用意し、各学習用入力信号から複数の符号テーブルを作成してもよい。
【0061】
符号化対象の入力信号の統計的性質が既知である場合には、この統計的性質と同じか良く似た統計的性質を持つ学習用入力信号を用いて、1つの符号テーブルを作成しておくことで足りる。しかし、符号化対象の入力信号の統計的性質が未知である場合や変動することなどが予想される場合には、複数の学習用入力信号から複数の符号テーブルを作成しておくことが望ましい。
【0062】
入力信号の統計的性質によっては、sビットで二進符号化された余りzのMSBと商yのLSBとの間に強い相関関係が認められるような場合がある。このような場合、余りzのMSBを商yに含めて符号化を行うことが良い。そこで、学習用入力信号から求められたRiceパラメータがs(s≧1)であるとき、s−1をRiceパラメータと看做して、0以上の整数に変換された学習用入力信号の各サンプルの商yと余りzを求める。これにより、余りzの符号長はs−1ビットに短縮される。一方、商yの符号長は二進符号で1ビット増えるものの、例えば商yにハフマン符号化を適用することにより、必ずしも商yの符号長は増加しない。また、商yの値はRiceパラメータがsの場合と比べて2倍になるから、規定整数の個数も2倍になりえる。このような場合であっても、規定整数に対応する符号の符号長が2倍になる訳ではない。余りzの符号長を短縮することで節約できた1ビット(0,1)を規定整数に対応する符号に付加することで2倍の個数の規定整数に対応できる。例えば表1の例において規定整数に対応する符号に1ビットを付加することで、表7(図27参照)に示すように、0から7までの8個の規定整数に対応できる(規定整数7に対応する符号が4ビット×2=8ビットではなく5ビットである。)。さらに、商yの出現頻度(出現確率)によっては、Riceパラメータがsの場合と比べて2倍の個数の規定整数を規定する必然性はなく、表8の例(図28参照)のように2倍の個数よりも少ない個数の規定整数を規定することができ、この場合、表1の例と比較して、規定整数に対応する符号の符号長は4ビットで同じであるが、余りzの符号の符号長が1ビット短くなっている。
【0063】
<符号化処理>
次に、図17と図18を参照して、符号化装置1における符号化処理の流れを叙述的に説明する。
【0064】
[ステップSc1]
符号化装置1のバッファ部30は、入力信号をバッファして、入力信号をフレーム単位で出力する。
【0065】
[ステップSc2]
符号化装置1の分離パラメータ計算部110は、1フレームの入力信号の各サンプルxi(i=1,2,・・・,N)を用いて、式(9)または式(10)に従いRiceパラメータs=└s0┘またはs=┌s0┐を求める。そして分離パラメータ計算部110は、求めたsまたはs−1を分離パラメータBとして、分離パラメータBを表す符号を出力する。なお、分離パラメータBをB=s−1によって得る場合、s=0のときB=0とする。
【0066】
ここで、分離パラメータBを表す符号は、例えばBの値の存在可能な範囲が0≦B≦7である場合、一例として、3ビットの符号ないし正整数表現を用いて0から7までの値を表すようにしても良いし、分離パラメータBの値の出現頻度に応じて、出現確率の高い値ほど短い一意の符号を割り当てるようにしてもよい。
後者の場合には、例えば2と3の出現確率が最も高い場合には以下のようなハフマン符号を符号化装置、復号化装置で共通に用いて符号化と復号化を行うことで、分離パラメータBの値を一意に解決できる。
B=0: 100
B=1: 101
B=2: 00
B=3: 01
B=4: 110
B=5: 1110
B=6: 11110
B=7: 11111
また、日本国特許出願番号2009-056017(国際出願番号PCT/JP2010/053676)に開示された方法を用いて分離パラメータBを符号化しても良い。
【0067】
[ステップSc3]
符号化装置1の商余計算部120は、ステップSc2で決定された分離パラメータBに応じて、0以上の整数に変換した1フレームの入力信号の各サンプルxiの商yiと余りzi求める。
商余計算部120は、まず、ステップSc2で決定された分離パラメータBが0と等しいか否かを判定する(ステップSc3−1)。B=0である場合には、商余計算部120は、0以上の整数に変換した1フレームの入力信号の各サンプルxiについて式(13)に従い商yiを求める(ステップSc3−2)。この場合、余りziは算出されない。B≧1である場合には、商余計算部120は、0以上の整数に変換した1フレームの入力信号の各サンプルxiについて、式(12)に従い商yiを求め、式(14)に従い余りziを算出する(ステップSc3−3)。余りziは、サンプルxiの正負を識別するための1ビットをMSBに付加してBビットの二進符号で表現される。
【0068】
[ステップSc4]
符号化装置1の商符号化部130は、ステップSc3で得られた商yiを記憶部70に記憶された符号テーブルを参照して符号化し、この商yiに対応する符号を出力する。この符号は実施形態1と同様の手順で求められる。
【0069】
商符号化部130は、複数の符号テーブルが存在する場合、分離パラメータBを与えたRiceパラメータsと同じ値のRiceパラメータを用いて作成された符号テーブルを用いて商yiの符号化を行う。複数の符号テーブルを用いて商yiの符号化を行った場合、得られた複数の符号のうち符号長が最小の符号を商符号化部130は出力する。この場合、商符号化部130は、出力する符号を得るために用いた符号テーブルを表す符号(符号テーブル特定符号)も出力する。記憶部に記憶された符号テーブルが一つだけの場合は、符号テーブル特定符号を出力する必要は無い。
【0070】
また、商符号化部130は、符号テーブルを用いた上述の符号化の他に、ステップSc3で得られた商yiに対して符号テーブルを用いない符号化を適用して符号を得てもよい。例えば、符号テーブルを用いない符号化方法として、ゴロム符号化、ゴロム‐ライス符号化、アルファ符号化などが例示される。この場合、符号テーブルを用いた符号化で得られた符号と符号テーブルを用いない符号化で得られた符号のうち符号長が最小の符号を商符号化部130は出力する。この場合、商符号化部130は、符号化方法を特定するための符号(符号化方法特定符号)と、符号化方法が符号テーブルを用いた符号化方法である場合には符号テーブル特定符号も出力する。
【0071】
合成部50は、出力された符号や符号テーブル特定符号などを多重化する。つまり、合成部50は、出力された、1フレームにつき一つ求められた分離パラメータBを表す符号、1フレームの各サンプルにつき商の符号と余りを表す二進符号を連結したビット列、必要に応じて、1フレームの各サンプルに対応する符号テーブル特定符号、符号化方法特定符号などをフレームごとにまとめて更にフレームの順番に従ってこれらを連結したビットストリームを出力する。ビットストリームは、図19に示す分離部40に入力される。分離部40は、ビットストリームを逆多重化して、符号化装置1から出力されたフレームごとの分離パラメータBを表す符号、フレームに含まれるサンプルごとの符号、フレームに含まれるサンプルごとの符号テーブル特定符号、符号化方法特定符号などを得る。
【0072】
<復号処理>
次に、図19と図20を参照して、本発明の実施形態3の復号装置2における復号処理の流れを叙述的に説明する。
【0073】
[ステップSd1]
復号装置2の商復号部210は、分離部40から送られたフレームに含まれる各サンプルの商の符号を復号する。この復号処理は、符号テーブル(分離部40によって符号テーブル特定符号が得られている場合には符号テーブル特定符号で特定される符号テーブルであり、符号テーブル特定符号が得られていない場合には既定の符号テーブルである。)を用いて、商の符号に拡張符号が含まれていなければ当該符号に対応する規定整数を出力し、商の符号に拡張符号が含まれていれば、拡張符号に対応する予め定められた符号化方法に対応する復号方法に従って当該符号から拡張符号を除いた部分を復号して得た整数を出力する処理である。出力された整数は商yiに相当する。
【0074】
例えば符号テーブルが表1で示したものである場合、商yiの符号が110であるならば、この商yiの符号に拡張符号1111が含まれていないので、符号110に対応する規定整数2を商yiとして出力する。また、商yiの符号が1111 110であるならば、この商yiの符号に拡張符号1111が含まれているので、拡張符号1111に対応するアルファ符号化code(U,p-4)の復号方法に従って当該符号1111 110から拡張符号1111を除いた部分110を復号して得られる整数2に4を加えた6を商yiとして出力する。ゴロム符号化、ゴロム-ライス符号化、アルファ符号化などに対応する各復号処理は、例えば上記非特許文献3に詳しいので、詳細な説明を略する。
【0075】
商復号部210は、分離部40によって符号化方法特定符号が得られている場合には、符号化方法特定符号で特定される符号化方法に対応する復号方法で商の符号を復号する。符号化方法特定符号で特定される符号化方法が符号テーブルを用いる符号化方法である場合には、商復号部210は上述したような復号処理を行い、符号化方法特定符号で特定される符号化方法が符号テーブルを用いない符号化方法である場合には、商復号部210は符号化方法特定符号で特定される例えばゴロム符号化、ゴロム-ライス符号化、アルファ符号化などの符号化方法に対応する復号方法で商の符号を復号する。
【0076】
[ステップSd2]
復号装置2の判定部220は、分離部40から送られた分離パラメータBを表す符号から、分離パラメータBが0に等しいか1以上であるかを判定する。B=0である場合、判定部220は、分離部40から送られたフレームに含まれる各サンプルの商の符号を第1復号部230へ送る制御を行う。B≧1である場合、判定部220は、分離部40から送られたフレームに含まれる各サンプルの商の符号を第2復号部240へ送る制御を行う。
【0077】
[ステップSd3]
復号装置2の第1復号部230は、(1)ステップSd1で得られた整数yiの二進符号のLSBが0の場合、当該整数yiを1/2倍した整数を得、(2)ステップSd1で得られた整数yiの二進符号のLSBが1の場合、当該整数yiについて正負を表す符号を負に反転した負整数から1を減算した整数を1/2倍した整数を得る。この得られた整数が、B=0である場合における、復号されたサンプルxiの値である。図中の記号≫は右シフト演算を表している。
【0078】
[ステップSd4]
復号装置2の第2復号部240は、(1)分離部40から送られたフレームに含まれる商yiに対応する余りziを表す二進符号のMSBが1であれば、ステップSd1で得られた整数yiを分離部40から送られた分離パラメータBを用いて2B−1倍した値の二進符号に、余りziを表す二進符号の下位B−1ビットを加算した整数を得、(2)分離部40から送られたフレームに含まれる商yiに対応する余りziを表す二進符号のMSBが0であれば、ステップSd1で得られた整数yiを分離部40から送られた分離パラメータBを用いて2B−1倍した値の二進符号に、余りziを表す二進符号の下位B−1ビット(または余りziを表すBビットの二進符号)を加算して得られる整数について正負を表す符号を負に反転した負整数から1を減算した整数を得る。この得られた整数が、復号されたサンプルxiの値である。図中の記号≪は左シフト演算を、記号&はビット単位の論理積演算を、記号|はビット単位の論理和演算を表している。
【0079】
これまでの説明では、入力信号を、その各サンプルが正または負の整数で表されるものとして説明した。例えば、音声信号に適用する符号化方式によって入力信号の各サンプルが正の符号を持つ整数で表されているような場合、各サンプルの正負の符号を識別する必要が無い。このような場合には、分離パラメータBを式(10)を利用して求め、商yiを式(15)または式(16)で、余りziを式(17)で求めればよい。
【数10】
【0080】
<本発明の実施形態4の符号化の概要>
実施形態4では、本発明の符号化を、G.711であらかじめ符号化された音響信号のロスレス符号化に適用する場合の別の例を図9を用いて示す。
入力はG.711符号化された音響信号で、サンプルあたり8ビットの符号により構成される符号列であり、以下ではG.711符号列と呼ぶ。入力されたG.711符号列は、符号化装置800Eにて、指定されたフレーム処理単位ごとに符号化処理される。
フレーム処理単位は、40サンプル、80サンプル、160サンプル、240サンプル、320サンプルの5通りのうちのいずれかで、符号化時に外部から指定されることとする。
【0081】
入力されたG.711符号列はバッファ部802Eで、指定されたフレーム処理単位(たとえば40サンプル)ごとに分割され、変換部804Eに渡される。また、バッファ部802Eでは指定されたフレーム処理単位を識別するための符号を、フレーム処理単位指定符号として出力する。
【0082】
変換部804Eでは、フレーム処理単位毎のG.711符号列中の各符号を、対応するPCM値に変換し、フレーム処理単位毎のPCM値列を出力する。
【0083】
予測分析部806Eでは、変換部804Eが出力したPCM値列に対して予測分析を行い、予測係数を決定する。(このとき、予測分析部806Eでは線形予測分析等用いることができるが、必ずしも線形予測分析に限る必要は無く、何らかの予測を用いてPCM値列に対する予測係数を得ればよい。)
【0084】
予測係数量子化部808Eでは、予測分析部806Eで決定された予測係数を量子化して、量子化予測係数を得ると同時に、量子化予測係数に対応する量子化予測係数符号を出力する。
【0085】
予測部810Eでは、量子化予測係数と過去のPCM値列を用いて、フレーム処理単位毎の現在のサンプルのPCM値の列を推定する。
【0086】
逆変換・変形部812Eでは、予測部810Eで推定されたPCM値の列の各PCM値をG.711符号化し、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(推定サンプル値)に変換する。ここで、たとえば日本国特許出願番号2007-319805(国際出願番号PCT/JP2008/072513)に記載されているような変形を行うこととしても良い。
【0087】
例えば、次のような変形を行う。特定の範囲に含まれる番号であって、G.711符号列Λ={λ(1),λ(2),…,λ(N)}内に発生していない番号があるかを確認する。Nは1フレームのサンプル数である。特定の範囲とは、例えば、正の絶対値が最小の値を示す番号と負の絶対値が最小の値を示す番号である。具体的には、ITU−T G.711のμ則の場合であれば“+0”と“−0”、A則の場合であれば“+8”と“−8”である。発生していない番号があると分かった場合には、当該発生していない番号が示す元の信号の大きさを除いて、元の信号の大きさを示す番号を付加しなおした番号に、G.711符号列の各番号を置き換えた番号の列T(Λ)={T(λ(1)),T(λ(2)),…,T(λ(N))}を出力する。例えば、ITU−T G.711のμ則の場合を考える。μ則では8ビットで“−127”から“+127”の番号を示しているが、“0”を示す番号には“+0”と“−0”の2つがある。そして、元の信号と線形な関係の値との関係では、“−127”は「−8031」、“+127”は「+8031」、“+0”と“−0”は「0」を示している。ここでは、“ ”は元の信号の大きさ(大小関係)を示す番号を示しており、「 」は元の信号と線形な関係の信号の振幅を示している。このように、“+0”と“−0”とは重複した番号なので、符号化装置によってはどちらか一方だけを出力する装置もある。そこで、例えば特定の範囲を“+0”と“−0”にする。そして、“−0”が発生しないのであれば、負の番号は1つずつずらし、“−0”が「−1」を示す番号、“−126”が「−8031」を示す番号として用いる。“+0”が発生しないのであれば、正の番号は1つずつずらし、“+0”が「+1」を示す番号とすればよい。また、“+0”も“−0”も存在しないのであれば、負の番号も正の番号も1つずつずらし、“−0”が「−1」を示す番号、“+0”が「+1」を示す番号とすればよい。
【0088】
変形部814Eでは、フレーム処理単位毎のG.711符号列中の各符号を、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(変形入力サンプル値)に変換する。ここでも、たとえば日本国特許出願番号2007-319805(国際出願番号PCT/JP2008/072513)に記載されているような変形を行うこととしても良く、その一例は上述したとおりである。
【0089】
誤差計算部816Eでは、逆変換・変形部812Eから得られた8ビット表現された推定サンプル値と、変形部814Eから得られた8ビット表現された変形入力サンプル値との差分を求めることで、変形入力サンプル値と推定サンプル値との誤差を計算する。この誤差の系列が本発明の符号化方法に入力される整数値系列xiである。
【0090】
分離パラメータ計算部818Eは、誤差の系列をフレーム処理単位のサンプル数だけ入力として誤差計算部816Eから受け取り、フレーム処理単位ごとに分離パラメータBを決定する。
また、分離パラメータ計算部818Eは分離パラメータBに対応する符号を分離パラメータ符号として出力する。実施形態3で説明したように、たとえば、分離パラメータBの出現頻度に応じて可変長符号化したハフマンテーブルをあらかじめ定めておき、そのハフマンテーブルを用いて分離パラメータBの符号を得る。
【0091】
商余計算部820Eは、分離パラメータ計算部818Eで決定した分離パラメータBを用いて、誤差系列xを商系列yと余系列zに分離する。また、商余計算部820Eは余系列に含まれる各余りをBビットで符号化して得られる余符号列を出力する。
【0092】
誤差系列xに含まれるサンプルxi(i=1,2,・・・,N;Nは1フレームに含まれるサンプル数)について、0以上の整数に変換したこのサンプルxiの分離パラメータBを用いた商yiおよび余ziを実施形態3の場合と同様に、式(12)、式(13)で求める。式(12)により商yiを求める場合は、余りを表す符号を、余りを表すB−1ビットの二進符号にサンプルxiの正負を識別するための1ビットの符号が付加されたBビットの固定長を持つ符号とする。式(13)により商yiを求める場合は、商yiを表す符号のLSB(Least Significant Bit)によってサンプルyiの正負が識別される。ここで、分離パラメータBを用いた商yiおよび余ziの分離方法は、一意に分離、合成が可能であれば別の分離方法を用いることとしても良い。
【0093】
本実施形態4では、フレーム処理単位に応じて符号テーブルの個数をフレーム処理単位が40サンプルの場合には1種類、フレーム処理単位が80サンプル以上の場合には4種類の中から1つを選択して用いるように切り替える。
これは、フレーム処理単位として、比較的小さな40サンプルが指定された場合には、誤差系列の分散が異なる4種類の符号テーブルの中から1つを選択するために、符号化テーブル指定符号に情報量を割り当てても、符号化対象となる誤差係数のサンプル数が少ない(40サンプル)ために、増加した符号テーブル指定符号分の情報量を補うほど誤差系列に対応する符号列の符号量の減少が見込めないため、結果的に符号テーブルを複数用いるメリットが無いためである。
これに対してフレーム処理単位が80サンプル以上の場合には、符号テーブル指定符号を用いて4種類の符号テーブルから誤差系列の統計的な性質に最も適した符号テーブルを選択することで、符号テーブル指定符号に用いる符号量を考慮したとしても、誤差系列に対応する符号列の符号量を減少させることが出来ることから、結果として総符号量をより少なくすることが出来る。
図10に商余計算部820Eでの計算によって得られた商系列に含まれる値の分布例を示す。
振幅の小さな値は比較的出現頻度が高いが、破線で示すラプラス分布とは異なる場合もあるため、複数の符号テーブルの中で、当該フレーム内の商系列に含まれる値の出現頻度分布に最も近い頻度分布をあらわしているものを選択して用いる。また、振幅の大きな値の出現頻度がラプラス分布と比較して大きくなっていると、アルファ符号では非常に長い符号が必要となる場合がある。
図11に、実施形態4でフレーム処理単位が40サンプルの場合に用いる符号テーブルの例、およびフレーム処理単位80以上の場合の符号テーブルの例を示す。フレームサイズおよび分割パラメータBによって符号テーブルおよび拡張符号に対応する符号化方式を切り替える。
【0094】
符号テーブル選択部822Eでは、商系列を入力として、出力される符号量が最小となるように記憶部824Eに記憶された符号テーブル8241を選択し、選択された符号テーブルに対応する符号テーブル指定符号を出力する。フレーム処理単位が80サンプル以上の場合には、テーブル0からテーブル3に示した4種類の符号テーブル(図11参照)の中から、当該フレームの商符号列の総符号量が最も少なくなる符号テーブルを選択し対応する符号テーブル指定符号を出力する。フレーム処理単位が40サンプルの場合には、符号テーブルは1種類に限定されているため、符号テーブル指定符号は出力されない。
【0095】
商符号化部826Eは、符号テーブル選択部822Eで選択された符号テーブルおよび、フレーム処理単位と分離パラメータBによって一意に決定された、拡張符号に対応する符号化方式を用いて商系列を符号化し、商符号列を出力する。
【0096】
このとき、分離パラメータBの値に応じてB=0の場合には、図11の上段のテーブル0からテーブル3に示すように、フレーム処理単位にかかわらず、拡張符号に対応した符号化方式として、アルファ符号code(U, p1-maxCode)を用いる。フレーム処理単位が40サンプルでB=0の場合に出力される商符号列に含まれる商符号の例を図12に示す。
B>0の場合には、図11の下段のテーブル0からテーブル3に示すように、フレーム処理単位にかかわらず、拡張符号に対応した符号化方式として、ライスパラメータs=1のゴロム‐ライス符号code(R, 1, p2-maxCode)を用いる。フレーム処理単位が40サンプルでB>0の場合に出力される商符号列に含まれる商符号の例を図13に示す。
分離パラメータBの計算式より、誤差系列の振幅が小さい場合に分離パラメータB=0となり、誤差系列の振幅が大きい場合に分離パラメータB>0となる。
誤差系列の振幅が小さい場合、すなわち分離パラメータB=0の場合には、ラプラス分布に近いが、誤差系列の振幅が大きい場合、すなわち分離パラメータB>0の場合には必ずしもラプラス分布に従わないことが実験的に観測されている。
観測によれば、分離パラメータB>0となるような場合には、ラプラス分布よりも相対的に振幅の大きな商の値の出現確率が高いことがわかっている。
本実施形態4では、このことを考慮して、分離パラメータB>0の場合には、誤差符号を分離パラメータBにより商と余りに分離し、その商のうち、値があらかじめ符号テーブルごとに定められた値maxCode以上のものに対して、さらにライスパラメータs=1のゴロム‐ライス符号化を用いて符号化する。
一方で、分離パラメータB=0の場合には、商をアルファ符号code(U, p-maxCode)で符号化する。ここで、誤差系列を分離パラメータBにより商と余りに分離する処理は、B=0では余りは存在しないので商系列のみが出力される。
このように、分離パラメータBの値と商系列の各値の出現確率の間には相関関係が存在しているので、分離パラメータBの値に応じて符号テーブルおよび拡張符号に対応する符号化方式の一方もしくは両方を切り替えることで符号化効率を向上させることができる。
同様にフレーム処理単位に応じて符号テーブルおよび拡張符号に対応する符号化方式を切り替える。
【0097】
合成部830Eでは、上記各処理部より出力された、フレーム処理単位指定符号、量子化予測係数符号、分離パラメータ符号、符号テーブル指定符号、商符号列、余符号列をフレーム毎にまとめて符号系列として出力する。
【0098】
<本発明の実施形態4の復号化の概要>
本発明の実施形態4の復号処理について図14を用いて説明する。
復号装置850Dの入力は、前記実施形態4の符号化により生成した符号系列である。
【0099】
分離部860Dでは符号系列を入力として受け取り、フレーム処理単位指定符号、量子化予測係数符号、分離パラメータ符号、符号テーブル指定符号、商符号列、余符号列、に分離して各処理部に送る。
【0100】
商復号部870Dでは、符号テーブル指定符号、および、フレーム処理単位指定符号により当該フレームの商符号列の復号に用いる符号テーブル8721(記憶部872Dに記憶されている)を選択する。また、商復号部870Dは、前記選択した符号テーブルを用いて、入力された商符号列の各商符号に対応する整数値の系列を商系列として出力する。
商系列は、商余合成部874Dに送られる。
【0101】
商余合成部874Dでは、分離パラメータ符号を復号して分離パラメータBを得て、余符号列を復号して得られる各余りziと、商系列に含まれる商yiとを用いて次式の計算により誤差系列に含まれる各サンプルxiを得る。ここで、y%2はyを2で除算した余りを表す。得られた誤差系列は、誤差加算部876Dに送られる。
【数11】
【0102】
量子化予測係数復号部878Dでは、分離部860Dから受け取った量子化予測係数符号を復号して、量子化予測係数を得る。
【0103】
予測部880Dでは、変換部884Dにより復号された過去のG.711符号列に対応する8ビットの整数値を、対応するPCM値に変換した系列を保持しており、この過去のPCM値列と、量子化予測係数を用いて、フレーム処理単位毎の当該PCM値の列を推定する。
逆変換・変形部882Dでは、予測部880Dで推定されたPCM値の列の各PCM値を、G.711符号化し、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(推定サンプル値)に変換する。ここで、符号化処理時に、日本国特許出願番号2007-319805(国際出願番号PCT/JP2008/072513)に記載されているような変形を行った場合には、復号処理時にも対応する処理を行う。
【0104】
誤差加算部876Dでは、逆変換・変形部882Dから得られた推定サンプル値と誤差系列中の当該誤差値を加算して、符号化処理時の「変形入力サンプル値」に相当する、元のG.711符号に対応し、符号の表す値の大小関係を保存した形の、例えば−128から+127までの2の補数表現された8ビットの値(復号変形入力サンプル値)を得る。
誤差加算部876Dでは、さらに、当該フレーム処理単位内の全てのサンプルについて同様の処理を行い、復号変形入力サンプル値系列を得る。
【0105】
逆変形部886Dでは前記復号された復号変形入力サンプル値系列から、元のG.711符号列を復元する。
【0106】
<商復号部での復号処理の詳細>
商復号部870Dにおいて、商符号列から商系列を得るに際して、復号テーブルを利用することにしても良い。本実施形態では、商符号列の復号に復号テーブルを用いる場合の好適な実施の形態について説明する。
例えば、フレーム処理単位の80サンプル以上の場合の符号テーブル0に対応する復号テーブルの例を図15に示す。復号処理手順の例を図16に示す。
【0107】
まず、商符号列のうち、未処理の商符号の先頭のビットを処理開始点とする(ステップS850)。未処理の商符号が存在するか否か判定する(ステップS852)。存在しないならば処理を終了する。存在すれば、符号テーブル指定符号に基づき、当該フレーム処理単位内(フレーム内)の商符号の復号に用いる復号テーブルvalue[],Len[]を選択する(ステップS854)。そして、フレーム内の商符号列の復号が完了したかを判定する(ステップS856)。完了した場合は、ステップS852の処理を行う。完了していない場合、商符号列のうち、未処理の商符号の先頭のビットを処理開始点とする(ステップS858)。商符号列から、1つの商符号に許容されている最長符号長に相当するビット数(実施例では6ビット)を読み込み0以上の整数値として変数vに設定する(ステップS860)。変数vの値で復号テーブルvalue[]を参照し商の値をq=value[v]とする(ステップS862)。商qの値で復号テーブルLen[]を参照し、当該符号のビット長I=Len[q]を得る(ステップS864)。商符号列の処理地点を当該符号長に相当するIビットだけ進め、未処理の商符号の先頭に移動する(ステップS866)。規定整数に対応する商符号かどうか確認(q−codeMax<0)する(ステップS868)。規定整数であれば、qを商の値として出力する(ステップS870)。規定整数でなければ、拡張符号から拡張符号に対応する符号化方式を判別し、判別された符号化方式で拡張符号に続く符号を復号して得られる整数値を商の値として出力する(ステップS872)。当該符号に対応する符号も含めて読み込んだビット数だけ読み込み位置を移動し、未処理の商符号の先頭のビットを処理開始点とする(ステップS874)。ステップS870およびS874の後に、ステップS856の処理を行う。
【0108】
つまり、商復号部870Dでは、符号系列から符号テーブル指定符号を読み込み、符号テーブル指定符号に対応する復号テーブルを選択する。
この復号テーブルには、符号テーブルに対応した値が登録されている。
【0109】
商符号は、先頭から連続するビット列として入力され、可変ビット長の符号である。
商復号部は、先頭より最大符号長に相当するビット数だけ整数値として読み込む。
この例では、符号テーブルに登録された符号のうち、最長の符号長は6ビットであるので、6ビットを読み込んで、0以上の整数とみなして変数vに設定する。
ここで、もし読むべき符号が存在しない場合には、最長符号長に達するまでLSB側に値0のビットを付与して、最長符号長にしてから配列を参照すればよい。
【0110】
次に、符号テーブル指定符号により選択された符号テーブルに対応する復号テーブルであるvalue[]テーブルを用いてこの6ビットの商符号に対応する値qを復号する。
すなわち、配列の添え字に前記設定したvを用いてq=value[v]とすれば復号後の値qが求まる。
【0111】
次に、実際の当該符号の符号長Iを求める。符号長はI=len[v]もしくはI=Len[q]として容易に求めることが出来る。
得られたIビット分だけ商符号の処理位置を移動することで、未処理の商符号の先頭位置に移動することが出来る。
【0112】
このように、可変符号長の符号の復号にもかかわらず、最長符号長のビットを無条件に読み込んで、その値を元に配列を参照するだけで、複雑な復号処理を行うことなく高速に復号結果を得ることが出来る。
同様に、当該符号長も配列を参照するだけで得ることが出来る。
また、符号テーブルの設計に際して、最長符号長のサイズを一定にすることで、復号テーブルのデータ保持に必要なメモリサイズを制限することが出来る。
本実施例では、図15の符号テーブルの設計に際して、各符号テーブルに登録される符号のうち、最長の符号長が6ビットに収まるように制約することで、復号テーブルのサイズを制限している。
【0113】
次に、得られた復号値qが、codeMaxよりも大きいかどうかを判定することで、当該商符号が、規定整数に対応した符号であるかどうかを確認する。(q-codeMax)<0であれば、当該商符号は規定整数に対応する符号であり、(q-codeMax)>=0であれば当該当該符号は拡張符号である。
【0114】
当該商符号が規定整数に対応する符号である場合には、得られたqを商の値として出力し、処理開始点を当該符号長分だけ移動させる。当該符号長Iは、前述のようにI=Len[q]として求めることが出来る。
【0115】
当該商符号が拡張符号に対応する符号である場合には、得られたqに対応する拡張符号を特定する。(図の例の場合はq=7のとき拡張符号p1)
また、同様に拡張符号の符号長Iだけ符号読み込み位置を移動させることで、処理開始点を未処理の商符号の先頭に移動させる。当該符号長Iは、前述のようにI=Len[q]として求めることが出来る。
続いて、拡張符号に対応する復号方式を用いて、拡張符号に続く符号を復号することで、商qを得る。
当該拡張符号に対応する符号化符号も含めて、読み込んだビット数だけ読み込み位置を移動し、未処理の商符号の先頭ビットを処理開始点とする。
【0116】
上記の処理を当該フレームのサンプル数に相当する数だけ商符号列を復号できた時点で、当該フレーム分の処理を終了する。
【0117】
以上の各実施形態の他、本発明である符号化装置・方法、復号装置・方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上述の説明に現れる技術的特徴を互いに矛盾しない範囲で自由に組み合わせて実施できる。
【0118】
また、上記符号化装置、復号装置における処理機能をコンピュータによって実現する場合、符号化装置、復号装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記符号化装置、復号装置における処理機能がコンピュータ上で実現される。
【0119】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0120】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0121】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0122】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、符号化装置、復号装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【特許請求の範囲】
【請求項1】
整数値系列の符号化方法であって、
[1]整数(以下、規定整数という。)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(以下、拡張符号という。)を記録した符号テーブルが複数個、予め決められており、
上記整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、当該規定整数に対応する符号を符号化結果とし、上記整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、上記拡張符号と、上記拡張符号に対応するあらかじめ定めておいた符号化方法を上記符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果とする、符号化を行う符号化ステップを含み、
上記符号化ステップでは、上記複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力する
ことを特徴とする符号化方法。
【請求項2】
請求項1に記載の符号化方法であって、
上記複数の符号テーブルには、上記規定整数に対応する符号の最大の符号長よりも上記拡張符号の符号長が短い符号テーブルが少なくとも1つ含まれる
ことを特徴とする符号化方法。
【請求項3】
整数値系列の符号化装置であって、
[1]整数(以下、規定整数という。)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(以下、拡張符号という。)を記録した符号テーブルが複数個、予め決められており、
上記整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、当該規定整数に対応する符号を符号化結果とし、上記整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、上記拡張符号と、上記拡張符号に対応するあらかじめ定めておいた符号化方法を上記符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果とする、符号化を行う符号化部を含み、
上記符号化部は、上記複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力する
ことを特徴とする符号化装置。
【請求項4】
請求項3に記載の符号化装置であって、
上記複数の符号テーブルには、上記規定整数に対応する符号の最大の符号長よりも上記拡張符号の符号長が短い符号テーブルが少なくとも1つ含まれる
ことを特徴とする符号化装置。
【請求項5】
請求項1または請求項2に記載された符号化方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項6】
請求項1または請求項2に記載された符号化方法の各ステップをコンピュータに実行させるためのプログラムを記録した、コンピュータが読み取り可能な記録媒体。
【請求項1】
整数値系列の符号化方法であって、
[1]整数(以下、規定整数という。)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(以下、拡張符号という。)を記録した符号テーブルが複数個、予め決められており、
上記整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、当該規定整数に対応する符号を符号化結果とし、上記整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、上記拡張符号と、上記拡張符号に対応するあらかじめ定めておいた符号化方法を上記符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果とする、符号化を行う符号化ステップを含み、
上記符号化ステップでは、上記複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力する
ことを特徴とする符号化方法。
【請求項2】
請求項1に記載の符号化方法であって、
上記複数の符号テーブルには、上記規定整数に対応する符号の最大の符号長よりも上記拡張符号の符号長が短い符号テーブルが少なくとも1つ含まれる
ことを特徴とする符号化方法。
【請求項3】
整数値系列の符号化装置であって、
[1]整数(以下、規定整数という。)に対応する符号、並びに、[2]規定整数以外の複数の整数の組に対応する符号(以下、拡張符号という。)を記録した符号テーブルが複数個、予め決められており、
上記整数値系列中の符号化対象となる整数値が規定整数に該当する場合には、当該規定整数に対応する符号を符号化結果とし、上記整数値系列中の符号化対象となる整数値が規定整数に該当しない場合には、上記拡張符号と、上記拡張符号に対応するあらかじめ定めておいた符号化方法を上記符号化対象となる整数値に対して適用して得られる符号とを連結した符号を符号化結果とする、符号化を行う符号化部を含み、
上記符号化部は、上記複数の符号テーブルのうち、所定個数の整数値をまとめたフレームごとに総符号量が最小となる符号テーブルを選択し、選択された符号テーブルを特定する符号も符号化結果として出力する
ことを特徴とする符号化装置。
【請求項4】
請求項3に記載の符号化装置であって、
上記複数の符号テーブルには、上記規定整数に対応する符号の最大の符号長よりも上記拡張符号の符号長が短い符号テーブルが少なくとも1つ含まれる
ことを特徴とする符号化装置。
【請求項5】
請求項1または請求項2に記載された符号化方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項6】
請求項1または請求項2に記載された符号化方法の各ステップをコンピュータに実行させるためのプログラムを記録した、コンピュータが読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【公開番号】特開2013−110763(P2013−110763A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2013−27432(P2013−27432)
【出願日】平成25年2月15日(2013.2.15)
【分割の表示】特願2012−93207(P2012−93207)の分割
【原出願日】平成22年5月19日(2010.5.19)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願日】平成25年2月15日(2013.2.15)
【分割の表示】特願2012−93207(P2012−93207)の分割
【原出願日】平成22年5月19日(2010.5.19)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]