"時系列データを符号化するための符号表を選択する符号表選択方法であって、予め定められた離散時間区間における時系列データのデータ値xの頻度hを求めるステップと、各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた複数種類の符号表Tと、前記ステップで求められた各頻度hとを用い、少なくとも一部のデータ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbと、の積和SPΣxhΔbを、各符号表Tについてそれぞれ算出するステップと、前記ステップで算出された積和SPを用い、複数種類の符号表T及び基準符号表Tから、前記離散時間区間における時系列データを符号化するための符号表を選択するステップと、を有する符号表選択方法。時系列データを符号化するための符号表を選択して時系列データの符号化を行う符号化装置であって、予め定められた離散時間区間における時系列データのデータ値xの頻度hを求める頻度算出部と、各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた基準符号表Tと、各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた複数種類の符号表Tと、前記頻度算出部で求められた各頻度hとを用い、少なくとも一部のデータ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbと、の積和SPΣxhΔbを、各符号表Tについてそれぞれ算出する積和算出部と、前記積和算出部で算出された積和SPを用い、複数種類の符号表T及び基準符号表Tから、前記離散時間区間における時系列データを符号化するための符号表を選択する符号表選択部と、を有する符号化装置。請求項1の符号表選択方法の各ステップをコンピュータに実行させるためのプログラム。従来の方法では、符号化に用いる符号表Tを選択するために、離散時間区間ごとに平均平均Njmax回の探索処理とNjmax回の演算とを行う必要があり、符号表を選択するための処理量が多いという問題点がある。本発明は、複数種類の符号表から時系列データを符号化するための符号表を選択するための処理量を削減することが可能な技術を提供することを目的とする。本発明では、予め定められた離散時間区間における時系列データのデータ値xの頻度hを求め、各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた複数種類の符号表Tと、求められた各頻度hとを用い、少なくとも一部のデータ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbとの積和SPΣxhΔbを、各符号表Tについてそれぞれ算出し、算出された積和SPを用い、複数種類の符号表Tから、離散時間区間における時系列データを符号化するための符号表を選択する。本発明では、複数種類の符号表Tから時系列データを符号化するための符号表を選択するための処理量を削減することができる。以下、図面を参照して本発明の実施形態を説明する。原理まず、本形態の原理を説明する。本形態では、予め定められた離散時間区間0N1N≧2における時系列データDATAのデータ値xの頻度hを求めるステップと、各データ値xと各データ値xにそれぞれ対応する各符号cj1jmaxjmax≧2とが少なくとも対応付けられた複数種類の符号表Tと、ステップで求められた各頻度hとを用い、少なくとも一部のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbを、各符号表Tについてそれぞれ算出するステップと、ステップで算出された積和SPを用い、複数種類の符号表Tから、離散時間区間n0N1における時系列データDATAを符号化するための符号表Tを選択するステップとを実行する。これらの処理をベクトル表現すると以下のようになる。まず、ステップでは、予め定められた離散時間区間0N1N≧2における時系列データDATAのデータ値xの頻度hを求める。次のステップでは、各データ値xx0x1xL1LL≧2は予め設定されたデータ値xの全種類数と各データ値xにそれぞれ対応する各符号cj1jmaxjmax≧2とが少なくとも対応付けられた複数種類の符号表Tと、ステップで求められた各頻度hとを用い、少なくとも一部のデータ値xx0x1xW1WはW≦Lを満たす整数の頻度hを要素とするヒストグラムHhhと、当該データ値xに対応する符号cのビット数bを要素とするヒストグラムBbbとの内積HBTBTはBの転置を示すを各符号表Tについてそれぞれ算出し、各積和SPHBTを求める。そして、ステップでは、ステップで算出された積和SPHBTを用い、複数種類の符号表Tから、離散時間区間n0N1における時系列データDATAを符号化するための符号表Tを選択する。なお、時系列データDATAが0以上の値しかとらないのであれば、時系列データDATAがとり得る振幅値を各データ値xとすればよい。また、時系列データDATAが正負の値をとり得るのであれば、DATAがとり得る値を各データ値xとすればよい。また、時系列データDATAに対応するインデックスを各データ値xとしてもよい。上述のように算出される積和SPは、符号表Tを用いて離散時間区間n0N1における時系列データDATAを符号化した場合の総符号量E又はその推定値となる。本形態では、データ値xの頻度hを求めてから積和SPを求めるため、総符号量E又はその推定値を効率よく求めることができる。以下にその理由を説明する。まず、本形態では、符号表Tからのビット数bの探索を、各離散時刻n0N1の時系列データDATAについてそれぞれ行う必要はなく、多くても頻度がh≧1となるデータ値xについてそれぞれ行えばよい。よって、本形態では、離散時間区間n0N1におけるビット数bの平均探索回数をLjmax以下とすることができる。これによる探索回数の削減効果は、時系列データDATAがデータ値xに偏りが存在するデータである場合音響信号やその予測残差などや、データ値xの種類数Lが離散時間区間長Nよりも小さい場合に特に大きい。例えば、jmax16N160L32であれば、本形態で必要な平均検索回数は8192回以下となり、従来の40960回よりも大幅に削減できる。また、本形態のデータ値xの頻度hを求めるための演算回数はN回となり、積和SPを求めるために必要な加算や乗算の回数はそれぞれLjmax回以下となる。例えば、jmax16N160L32であれば、本形態で必要となる演算回数の合計は5125121601184回以下となり、従来の2560回よりも大幅に削減できる。また、L種類すべてのデータ値xについての積和SPを求めるのではなく、その一部UUL種類のデータ値xのみについての積和SPを求めた場合、離散時間区間n0N1ごとの平均探索回数はUjmax以下となり、積和SPを求めるために必要な加算や乗算の回数はそれぞれUjmax回以下となる。例えば、jmax16N160L32U16であれば、平均探索回数は2048回となり、演算回数の合計は256256160672回以下となる。また、積和SPを求めるための一部UUL種類のデータ値xの選択方法を工夫することで、符号表Tの選択精度をさほど落とすことなく、探索回数や演算回数を削減できる。例えば、頻度hが大きい順に選択された一部のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbを各符号表Tについてそれぞれ算出し、それらを用いて符号表Tを選択する。また、例えば、各符号表Tからそれぞれビット数bが小さい順に選択された一部の符号cのビット数bと当該符号cに対応するデータ値xの頻度hとの積和SPΣxhbを、各符号表Tについてそれぞれ算出し、それらを用いて符号表Tを選択する。このようにした場合、符号表Tの選択精度をさほど落とすことなく、探索回数や演算回数をさらに削減できる。また、一部のデータ値xのみについての積和SPpreを各符号表Tについて求め、基準符号表Tに対する積和SPpreとの差が予め定められた閾値を超えるほど大きくなる積和SPpreに対応する符号表Tを候補から除外し、候補として残った符号表についてのみ、より多くのデータ値xについての積和SPpreを求めてもよい。すなわち、時系列データDATAのデータ値xがL種類存在し、m2m1がL≧m2>m1を満たす1以上の整数であり、ステップが、m1種類のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPpreΣxhbを、各符号表Tについてそれぞれ算出するステップと、基準符号表Tについて算出された積和SPpreと各符号表Tについてそれぞれ算出された積和SPpreとを比較し、積和SPpreよりも小さいか、又は、積和SPpreとの差が予め定められた閾値以下である積和SPpreを選択するステップと、ステップで選択された積和SPpreに対応する符号表Tのみについて、m2種類のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbをそれぞれ算出するステップと、を含んでもよい。また、ステップの例は、頻度hが大きい順に選択されたm1種類のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPpreΣxhbを、各符号表Tについてそれぞれ算出するステップ、又は、各符号表Tからそれぞれビット数bが小さい順に選択されたm1種類の符号cのビット数bと当該符号cに対応するデータ値xの頻度hとの積和SPpreΣxhbを、各符号表Tについてそれぞれ算出するステップである。なお、基準符号表Tは、1つであってもよいし複数であってもよい。また、基準符号表Tは、各積和SPpreの閾値判定に対して同一であってもよいし、異なっていてもよい。このようにした場合、符号表Tの選択精度を高く維持しつつ、探索回数や演算回数を削減できる。また、データ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbではなく、データ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbと、の積和SPΣxhΔbを用いてもよい。すなわち、予め定められた離散時間区間における時系列データのデータ値xの頻度hを求めるステップと、各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた基準符号表Tと、各データ値xと各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた複数種類の符号表Tと、ステップで求められた各頻度hとを用い、少なくとも一部のデータ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbと、の積和SPΣxhΔbを、各符号表Tについてそれぞれ算出するステップと、ステップで算出された積和SPを用い、複数種類の符号表T及び基準符号表Tから、離散時間区間における時系列データを符号化するための符号表を選択するステップとを実行してもよい。この場合、積和SPΣxhΔbのΔb0となる項については乗算や加算が不要となるため、演算量をさらに削減できる。なお、この場合も、一部UUL種類のデータ値xのみについての積和SPを求めてもよいし、一部のデータ値xのみについての積和SPpreを各符号表Tについて求め、基準符号表Tに対する積和SPpreとの差が予め定められた閾値を超えるほど大きくなる積和SPpreに対応する符号表Tを候補から除外し、候補として残った符号表についてのみ、より多くのデータ値xについての積和SPpreを求めてもよい。また、基準符号表Tは、1つであってもよいし複数であってもよい。また、基準符号表Tは、各積和SPpreの閾値判定に対して同一であってもよいし、異なっていてもよい。また、時系列データDATAのデータ値xの頻度分布に偏りがあってその偏りに傾向がある場合、その傾向に沿った符号表Tとその傾向から外れた例外的な符号表Tとを用意しておいてもよい。そして、時系列データDATAのデータ値xの頻度分布が当該傾向に沿ったものである場合には上記の何れかの方法によって符号表Tを特定し、時系列データDATAのデータ値xの頻度分布が当該傾向から外れたものであった場合には符号表Tを符号表Tとしてもよい。例えば、時系列データDATAの性質によっては、データ値xの頻度分布がx0のとき最も高くなり、xの絶対値が大きくなるにつれて小さくなるような傾向例えば、ラプラス分布Laplacedistributionに近似する傾向がある。このような場合には、例えば、データ値xの絶対値が大きくなるにつれてビット数bが大きくなる符号表例えば、α符号に近似する符号表を傾向に沿った各符号表Tとし、その傾向から外れた符号表を符号表Tとする。そして、例えば、最大のデータ値xL1の頻度hと予め定められた閾値とを比較し、頻度hが当該閾値以下の場合には、上記の何れかの方法によって各符号表Tから符号表Tを選択し、頻度hが当該閾値を超えた場合には例外処理として符号表Tを符号表Tとする。第1実施形態次に、本発明の第1実施形態を説明する。図2Aは、第1実施形態の符号化装置10の機能構成を例示した図である。また、図2Bは、符号表の一例を説明するための図であり、図2Cは、データ値の頻度を例示した図である。また、図3は、第1実施形態の復号装置20の機能構成を例示した図である。なお、図2Aにおいて図1Aと共通する部分については、図1Aと同じ符号を用いた。また、図4Aは、第1実施形態の符号化方法を説明するためのフローチャートであり、図4Bは、第1実施形態の復号方法を説明するためのフローチャートである。図5は、図4AのステップS20の一例を説明するためのフローチャートである。<構成>図2Aに示すように、本形態の符号化装置10は、制御部1011、一時メモリ1012、記憶部1013、パラメータ符号化部1016、符号化部1017、頻度算出部12、積和算出部13、及び、符号表選択部14を有する。また、符号化装置10は、例えば、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。すなわち、一時メモリ1012や記憶部1013は、例えば、RAM、磁気記録装置、光磁気記録媒体やそれらの少なくとも一部の結合によって構成される記憶領域である。また、制御部1011、パラメータ符号化部1016、符号化部1017、頻度算出部12、積和算出部13、及び、符号表選択部14は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、符号化装置10は、制御部1011の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ1012に格納され、その他の演算処理の際に読み出されて利用される。図3に示すように、本形態の復号装置20は、制御部21、一時メモリ22、記憶部23、パラメータ復号部24、及び、復号部25を有する。また、復号装置20は、例えば、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。すなわち、一時メモリ22及び記憶部23は、例えば、RAM、磁気記録装置、光磁気記録媒体やそれらの少なくとも一部の結合によって構成される記憶領域である。また、制御部21、パラメータ復号部24及び復号部25は、例えば、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、復号装置20は、制御部21の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ22に格納され、その他の演算処理の際に読み出されて利用される。<事前設定>事前設定として、予め定められた範囲のL種類のデータ値xx0x1xL1と、各データ値xにそれぞれ対応する各符号cと、各符号cのビット数bとが少なくとも対応付けられた複数種類の符号表Tが記憶部1013に格納される。なお、図2Bの例のデータ値xは、0以上L1以下の整数x01N1である。また、各符号表Tの一例はハフマン符号表である。また、記憶部1013に格納されたのと同様な符号表Tが復号装置20の記憶部23にも格納される。<符号化処理>まず、予め定められた離散時間区間における時系列データDATAが符号化装置10図2Aに入力される。なお、離散時間区間の例は、データ処理単位であるフレームやフレームをさらに複数に区分したサブフレームである。入力された各時系列データDATAは頻度算出部12に入力され、頻度算出部12は、離散時間区間における時系列データDATAの各データ値xx0x1xL1の頻度hをそれぞれ求めるステップS10。図2Cの例では、各データ値x01234L1の各頻度h50h25h13h6h4h1が求められる。各頻度hは、それぞれに対応するデータ値xを特定可能な状態で積和演算部13に入力される。積和演算部13は、入力された各頻度hと、記憶部1013に格納された各符号表Tとを用い、少なくとも一部のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbを、各符号表Tについてそれぞれ算出するステップS20。[ステップS20の具体例]以下に、ステップS20の具体例を示す。≪具体例11≫積和演算部13は、入力された各頻度hに対応する各データ値xx0x1xL1に対応する各符号cのビット数bを記憶部1013に格納された符号表Tから抽出する。次に、積和演算部13は、データ値xx0x1xL1の各頻度hと当該データ値xに対応する符号cのビット数bとの積和SPhbhb...hbを、各符号表Tについてそれぞれ算出する。≪具体例12≫まず、積和演算部13は、入力された各頻度hを互いに比較し、頻度hが大きい順にUUL個のデータ値xx0x1xU1が選択される。次に、積和演算部13は、選択した各データ値xx0x1xU1に対応する各符号cのビット数bを記憶部1013に格納された符号表Tから抽出する。次に、積和演算部13は、選択されたデータ値xx0x1xU1の各頻度hと当該データ値xに対応する符号cのビット数bとの積和SPhbhb...hbを、各符号表Tについてそれぞれ算出する。≪具体例13≫まず、積和演算部13は、記憶部1013に格納された各符号表Tから、それぞれビット数bが小さい順にUUL個の符号cccを選択する。次に、積和演算部13は、入力された各頻度hから、選択したU個の符号cに対応するデータ値xx0x1xU1に対応する各頻度hhhを選択する。そして、積和演算部13は、選択した各符号cccのビット数bbbと各頻度hhhとの積和SPhbhb...hbを、各符号表Tについてそれぞれ算出する。≪具体例14≫m2m1がL≧m2>m1を満たす1以上の整数であり、積和SPがm2種類のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbであるとする。なお、以下で添え字として使用するm1やm2は、それぞれm2やm1を意味する。図5に示すように、まず、積和演算部13は、m1種類のデータ値xx0x1xm11の頻度hと当該データ値xに対応する符号cのビット数bとの積和SPprehbhb...hbを、各符号表Tについてそれぞれ算出するステップS21。なお、ステップS21は、頻度hが大きい順に選択されたm1種類のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和を、各符号表Tについてそれぞれ算出するステップであってもよいし、各符号表Tからそれぞれビット数bが小さい順に選択されたm1種類の符号cのビット数bと当該符号cに対応するデータ値xの頻度hとの積和SPpreを、各符号表Tについてそれぞれ算出するステップであってもよいし、その他の基準で選択されたm1種類のデータ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和を、各符号表Tについてそれぞれ算出するステップであってもよい。次に、積和演算部13は、符号表Tから選択された基準符号表Tについて算出された積和SPpreと各符号表Tについてそれぞれ算出された積和SPpreとを比較し、積和SPpreよりも小さいか、又は、積和SPpreとの差が予め定められた閾値以下である積和SPpreを選択するステップS22。そして、積和演算部13は、選択した積和SPpreに対応する符号表Tのみについて、m2種類のデータ値xx0x1xm21の頻度hと当該データ値xに対応する符号cのビット数bとの積和SPhbhb...hbをそれぞれ算出するステップS23。なお、これらの具体例における積和SPは、前述のようにの頻度hを要素とするベクトルと、対応するビット数bを要素とするベクトルとの内積と等価である。よって、ベクトル間の内積を高速に演算できるアルゴリズムがあるのであれば、内積演算によって各積和SPを求めてもよい[ステップS20の具体例]の説明終わり。算出された積和SPは、符号表選択部14に入力される。符号表選択部14は、積和SPを用い、複数種類の符号表Tから、離散時間区間における時系列データDATAを符号化するための符号表Tを選択するステップS30。[ステップS30の具体例]以下に、ステップS30の具体例を示す。≪具体例21≫各積和SPを相互に比較し、最小の積和SPに対応する符号表Tを、離散時間区間における時系列データDATAを符号化するための符号表Tとして選択する。≪具体例22≫各符号表Tを相互に順次比較していき、大きさが小さいほうから所定番目以内であると最初に判定された積和SPに対応する符号表Tを、離散時間区間における時系列データDATAを符号化するための符号表Tとして選択する。≪具体例23≫データ値xx0x1xL1から選択されたデータ値X例えば、XxL1の頻度hを予め定められた閾値と比較し、頻度hが当該閾値以下の場合には具体例21や22などの原則的な方法で各符号表Tから符号表Tを選択し、頻度hが当該閾値を越える場合には、例外的な方法として特定の符号表Tを符号表Tとして選択する。なお、データ値Xは、時系列データDATAの特定に依存して選択される。例えば、データ値xの頻度分布hがラプラス分布に近似する傾向がある場合、データ値xの絶対値が大きくなるにつれてビット数bが大きくなるα符号に近似する符号表を各符号表Tとし、その傾向から外れた符号表を符号表Tとする。そして、例えば、最大のデータ値xL1の頻度hと予め定められた閾値とを比較し、頻度hが当該閾値以下の場合には、上記の何れかの方法によって各符号表Tから符号表Tを選択し、頻度hが当該閾値を超えた場合には例外処理として符号表Tを符号表Tとする。≪具体例24≫データ値xx0x1xL1から選択されたデータ値Xの大きさに応じ、探索する符号表を変える。例えば、データ値xx0x1xL1から選択されたデータ値X例えば、XxL1の頻度hを予め定められた閾値と比較し、頻度hが当該閾値以下の場合には具体例21や22などの方法で各符号表Tから符号表Tを選択し、頻度hが当該閾値を越える場合には、具体例21や22などの方法で特定の複数種類の符号表Tから符号表Tとして選択する[ステップS30の具体例]の説明終わり。符号表選択部14で選択された符号表Tを特定するパラメータhが符号化部1017に入力される。符号化部1017には、さらに離散時間区間における時系列データDATAが入力される。そして、符号化部1017は、記憶部1013に格納された各符号表Tからパラメータhによって特定される符号表Tを選択し、選択した符号表Tを用い、各時系列データDATAを符号化し、符号Cdを生成するステップS40。すなわち、符号化部1017は、符号表Tを参照して時系列データDATAに対応する符号cをそれぞれ選択し、それを時系列データDATAに対応する符号Cdとする。また、符号化選択部14で選択されたた符号表Tを特定するパラメータhは、パラメータ符号化部1016にも入力される。パラメータ符号化部1016は、パラメータhを符号化したパラメータ符号Ccを生成する。このパラメータ符号Ccは離散時間区間ごとに生成されるステップS50。なお、パラメータ符号化部1016で行われる符号化方法の例は、ゴロムライスGolombRice符号化などである。そして、符号化装置10は、上記のように生成された各符号Cdとパラメータ符号Ccを出力するステップS60。出力された各符号Cdとパラメータ符号Ccは、ネットワークや可搬型記録媒体を用いて復号装置20に伝送される。<復号処理>離散時間区間における各符号Cdとパラメータ符号Ccは復号装置20に入力される。パラメータ符号Ccはパラメータ復号部24に入力され、パラメータ復号部24はパラメータ符号Ccを復号してパラメータhを生成するステップS110。生成されたパラメータhは復号部25に入力される。復号部25は、記憶部23に格納された各符号表Tから符号表Tを特定するステップS120。復号部25には、各符号Cdも入力され、復号部25は特定した符号表Tを用いて各符号Cdを復号し、時系列データDATAを生成して出力するステップS130。第2実施形態次に、本発明の第2実施形態を説明する。第1実施形態では、データ値xの頻度hと当該データ値xに対応する符号cのビット数bとの積和SPΣxhbを、各符号表Tについてそれぞれ算出し、算出された積和SPを用い、複数種類の符号表Tから、離散時間区間における時系列データDATAを符号化するための符号表Tを選択することとした。しかし、第2実施形態では、データ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbと、の積和SPΣxhΔbを、各符号表Tについてそれぞれ算出し、算出された積和SPを用い、複数種類の符号表Tから、離散時間区間における時系列データDATAを符号化するための符号表Tを選択する。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。図6Aは、第2実施形態の符号化装置110の機能構成を例示した図である。また、図6Bは、基準符号表Tの一例を説明するための図であり、図6Cは、符号表Tの一例を説明するための図である。なお、図6Aにおいて図1Aや図2Aと共通する部分については、それらと同じ符号を用いた。また、図7は、第2実施形態の符号化方法を説明するためのフローチャートである。なお、図7において図4Aと共通するステップについては、それと同じ符号を用いた。<構成>図6Aに示すように、本形態の符号化装置110は、制御部1011、一時メモリ1012、記憶部1013、パラメータ符号化部1016、符号化部1017、頻度算出部12、積和算出部113、及び、符号表選択部14を有する。また、符号化装置110は、例えば、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。例えば、積和算出部113は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、符号化装置110は、制御部1011の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ1012に格納され、その他の演算処理の際に読み出されて利用される。復号装置の構成は第1実施形態と同じである。ここでは説明を省略する。<事前設定>事前設定として、予め定められた範囲のL種類のデータ値xx0x1xL1と、各データ値xにそれぞれ対応する各符号cとが少なくとも対応付けられた基準符号表Tと、各データ値xx0x1xL1と、各データ値xにそれぞれ対応する各符号cと、各符号cのビット数bと基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbが少なくとも対応付けられた複数種類の符号表Tが記憶部1013に格納される。なお、図6BCの例のデータ値xは、0以上L1以下の整数x01N1である。また、基準符号表Tや各符号表Tやの一例はハフマン符号表である。<符号化処理>まず、第1実施形態で説明したステップS10が実行される。ステップS10で算出された各頻度hは、それぞれに対応するデータ値xを特定可能な状態で積和演算部113に入力される。積和演算部113は、入力された各頻度hと、記憶部1013に格納された各符号表Tとを用い、少なくとも一部のデータ値xの頻度hと、符号表Tで当該データ値xに対応付けられた符号cのビット数bと基準符号表Tで当該データ値xに対応付けられた符号cのビット数bとの差Δbと、の積和SPΣxhΔbを、各符号表Tについてそれぞれ算出するステップS320。なお、ステップS320の具体例は、第1実施形態で説明したステップS20の具体例のビット数bを差Δbに置換したものとなる。また、T=Tの場合には、計算をしなくても積和SP0とすればよい。そして、j1からjmaxまでのjmax個の積和SPの中で積和SPを最小とするようなjを選択する。もし、積和SPを除くすべての積和SPが正であればJを選択する。ここで、Jがj1からjmaxに含まれないのであれば、jmax回の積和SPの計算でjmax1個の中から最も望ましい符号表を選択することになる。すなわち、この場合には選択すべき符号表の個数より1回少ない関和の回数で符号表を選択できる。その後、第1実施形態で説明したステップS30からS60の処理が実行される。<復号処理>第1実施形態と同じである。第3実施形態次に、本発明の第3実施形態を説明する。本形態は第1実施形態の応用例である。本形態では、dを1以上の整数とし、パラメータsをd以上の整数とし、パラメータssdとし、yを整数とした場合における、0以上の整数からなる時系列データe第2時系列データに相当を2syで割った商、及び、当該第2時系列データを2syで割った商を時系列データのデータ値xとし、パラメータs及びsに対してそれぞれ第1実施形態を適用する。そして、パラメータs及びsについてそれぞれ選択された符号表を用いて符号化した場合の符号量を比較し、パラメータs及びsの一方を選択する。以下では、第1実施形態との相違点を中心に説明する。図8は、第3実施形態の符号化装置210の機能構成を例示した図である。また、図9は、第3実施形態の復号装置220の機能構成を例示した図である。なお、図8において上述の実施形態と共通する部分については、それらと同じ符号を用いた。また、図10及び図11は、第3実施形態の符号化方法を説明するためのフローチャートである。また、図12は、図11のステップS470の具体例を説明するためのフローチャートである。また、図13Aは、第3実施形態の復号方法を説明するためのフローチャートであり、図13Bは、図13AのステップS530の具体例を説明するためのフローチャートである。また、図14は、整数eを法2sで割った商を示した表である。<構成>図8に示すように、本形態の符号化装置210は、制御部1011、一時メモリ1012、記憶部1013、符号化部1017、頻度算出部12、積和算出部13、符号表選択部14、パラメータ算出部211,212、選択部213,217、分離演算部214、頻度併合部215、パラメータ符号化部216、比較部218、及び合成部219を有する。また、符号化装置210は、例えば、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。例えば、パラメータ算出部211,212、選択部213,217、分離演算部214、頻度併合部215、パラメータ符号化部216、比較部218、及び合成部219は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、符号化装置210は、制御部1011の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ1012に格納され、その他の演算処理の際に読み出されて利用される。図9に示すように、本形態の復号装置220は、制御部21、一時メモリ22、記憶部23、復号部25、分離部221、合成演算部222、及びパラメータ復号部224を有する。また、復号装置220は、例えば、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。例えば、分離部221、合成演算部222、及びパラメータ復号部224は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、復号装置220は、制御部21の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ22に格納され、その他の演算処理の際に読み出されて利用される。<事前設定>事前設定として、第1実施形態で説明したように、複数種類の符号表Tが、符号化装置210の記憶部1013と復号装置220の記憶部23とに格納される。<符号化処理>まず、離散時間区間における時系列データeが符号化装置210に入力される。なお、時系列データeの例は、音響信号を線形予測分析や長期予測分析して得られた予測残差である。入力された時系列データeはパラメータ算出部211に入力され、パラメータ算出部211は、離散時間区間の時系列データeを用い、当該離散時間区間に対応するパラメータsを算出するステップS401。例えば、パラメータ算出部211は、d以上d≧1のライスパラメータをパラメータsとする。具体的には、log2ln2をd以上d≧1の整数に整数化したものをパラメータsとする。なお、Dee...eであり、整数化の例は四捨五入、切り上げ、切捨てなどである。また、式を整数化したしたものがd未満であった場合にはsdとしてもよい。また、dの一例は定数であり、その値の例は1である。生成されたパラメータsは、パラメータ算出部212に入力される。パラメータ算出部212は、ssdの演算によってパラメータsを算出するステップS402。次に、パラメータsは選択部213に入力され、選択部213はパラメータsを分離演算部214に入力させる。分離演算部214にはさらに離散時間区間における時系列データeが入力され、分離演算部214は、時系列データeを2syで割った商qを算出するステップS403。離散時間区間の各商qは頻度算出部12に入力される。頻度算出部12は、商qであるデータ値xz2dz2d1...z2d2d1の各頻度hを、1種類以上の各整数zz≧0についてそれぞれ求めるステップS411。ステップS411で得られた各頻度hxz2dz2d1...z2d2d1は、頻度併合部215に入力される。頻度併合部215は、各整数zについてそれぞれhhh...hの演算を行ってデータ値xzの各頻度hを求めるステップS412。このステップS412で得られる頻度hは、時系列データeを2syで割った商qの各頻度となる図14参照。例えば、d1s3s2z0y0の場合を考えると、時系列データe07を23で割った各商qデータ値zはすべて0となるのに対し、時系列データe03を22で割った商qデータ値xは0となり、時系列データe47を22で割った商qデータ値xは1となる。これより、時系列データe07を23で割った各商qデータ値zが0になる頻度hは、時系列データe03を22で割った商qデータ値xが0となる頻度hと、時系列データe47を22で割った商qデータ値xが1となる頻度hとの合計によって算出できることがわかる。これにより、時系列データeを2syで割った商qの各頻度を容易に算出することができる。次に、選択部217の制御に基づき、頻度算出部12で算出された各整数zに対応するデータ値xz2dz2d1...z2d2d1の各頻度hが積和算出部13に入力される。積和算出部13は、記憶部1013に格納された各符号表Tを参照し、各整数zに対応するデータ値xz2dz2d1...z2d2d1の各頻度hと当該データ値xに対応する各符号cの各ビット数bとの積和SPΣxhbを、各符号表Tについてそれぞれ算出するステップS421。また、選択部217の制御に基づき、頻度併合部215で算出された各整数zに対応するデータ値xzの各頻度hが積和算出部13に入力される。積和算出部13は、記憶部1013に格納された各符号表Tを参照し、各整数zに対応するデータ値xzの各頻度hと当該データ値xzに対応する各符号cの各ビット数bとの積和SPΣzhbを、各符号表Tについてそれぞれ算出するステップS422。ステップS421で生成された積和SPは符号表選択部14に入力される。符号表選択部14は、積和SPを用い、複数種類の符号表Tから、時系列データeを2syで割った商qを符号化するための符号表Tを選択するステップS431。また、ステップS422で生成された積和SPも符号表選択部14に入力される。符号表選択部14は、積和SPを用い、複数種類の符号表Tから、時系列データeを2syで割った商qを符号化するための符号表Tを選択するステップS432。なお、積和を用いて商時系列データ符号化するための符号表を選択する具体的な方法は第1実施形態で説明した通りである。次に、少なくとも、符号表選択部14で選択された符号表Tを特定するためのパラメータhと、符号表Tを特定するためのパラメータhとが、それぞれ、比較部218に入力される。比較部218は、パラメータsを分離パラメータsとし、かつ、ステップS431で選択された符号表Tを用いて時系列データeを符号化した場合の総符号量E又はその推定値と、パラメータsを分離パラメータsとし、かつ、ステップS432で選択された符号表Tを用いて時系列データeを符号化した場合の総符号量E又はその推定値とを比較するステップS441。ステップS441の具体例以下に、ステップS441の具体例を示す。《具体例31》比較部218には、それぞれ、符号表選択部14で選択された符号表Tを特定するためのパラメータhとそれに対応する積和SPと、符号表Tを特定するためのパラメータhとそれに対応する積和SPとが入力される。比較部218は、積和SPを総符号量Eの推定値とし、積和SPを総符号量Eの推定値とし、これらを比較する。《具体例32》比較部218には、それぞれ、符号表選択部14で選択された符号表Tを特定するためのパラメータhとそれに対応する積和SPと、符号表Tを特定するためのパラメータhとそれに対応する積和SPとが入力される。さらに、選択部213の制御のもと、分離演算部214にパラメータsとパラメータsとが入力される。また、分離演算部214には離散時間区間n0N1における時系列データeが入力される。分離演算部214は、時系列データeを2syで割った場合の剰余を特定する情報subと、時系列データeを2syで割った場合の剰余を特定するための情報subとを求め、それら又はそれらのビット数を比較部218に送る。なお、時系列データeを2syや2syで割った場合の剰余を特定する情報subやsubの算出は、例えば、参考文献1ISOIEC144963AMENDMENT2AudioLosslessCordingnewaudioprofilesandBSACextensionsのP59に記載された方法によって行う。比較部218は、積和SPsubのビット数を総符号量E又はその推定値とし、積和SPsubのビット数を総符号量E又はその推定値とし、それらを比較する。《具体例33》具体例31又は具体例32に加え、パラメータのビット数も比較する。すなわち、選択部213の制御のもと、パラメータ符号化部216にはパラメータssが入力される。また、パラメータ符号化部216にはさらにパラメータhhが入力される。パラメータ符号化部216は、パラメータshに対応する符号又は当該符号のビット数と、パラメータshに対応する符号又は当該符号のビット数とを比較部218に送る。比較部218は、積和SPパラメータshに対応する符号のビット数を総符号量E又はその推定値とし、積和SPパラメータshに対応する符号のビット数を総符号量E又はその推定値とし、それらを比較する。又は、比較部218は、積和SPsubのビット数パラメータshに対応する符号のビット数を総符号量E又はその推定値とし、積和SPsubのビット数パラメータshに対応する符号のビット数を総符号量E又はその推定値とし、それらを比較する。《具体例34》その他、上記の具体例具体例31、32、33において、積和SPの代わりに、時系列データeを2syで割った場合の商qを実際に符号表Tを用いて符号化した場合のビット数を用い、積和SPの代わりに、時系列データeを2syで割った場合の商qを実際に符号表Tを用いて符号化した場合のビット数を用いてもよいステップS441の具体例の説明終わり。ステップS441の比較で、総符号量E又はその推定値<総符号量E又はその推定値であった場合ステップS442、比較部218は、パラメータsとステップS431で選択された符号表Tとを、それぞれ時系列データeを符号化するための分離パラメータs及び符号表Tとして選択し、分離パラメータsを特定するための情報と符号表Tを特定するためのパラメータhとを出力するステップS451。一方、ステップS441の比較で、総符号量E又はその推定値≧総符号量E又はその推定値であった場合ステップS442、比較部218は、パラメータsとステップS432で選択された符号表Tとを、それぞれ時系列データeを符号化するための分離パラメータs及び符号表Tとして選択し、分離パラメータsを特定するための情報と符号表Tを特定するためのパラメータhとを出力するステップS452。比較部218から出力された分離パラメータsを特定するための情報は選択部213に入力される。選択部213は、分離パラメータsを特定するための情報を用いた制御により、分離パラメータsとして選択された分離パラメータs又はsを、分離演算部214及びパラメータ符号化部216に入力させる。また、比較部218から出力されたパラメータhは、符号化部1017及びパラメータ符号化部216に入力される。パラメータ符号化部216は、分離パラメータsとパラメータhとを符号化したパラメータ符号Ccを離散時間区間ごとに生成するステップS460。また、分離演算部214、合成部219及び符号化部1017は、分離パラメータs及びパラメータhで特定される符号表Tを用いて時系列データeを符号化した符号Ceを生成するステップS470。ステップS470の符号化は、時系列データeを選択された分離パラメータsに対する2syで割った商qを、符号表符号表Tを用いて符号化した情報prefixと、時系列データeを分離パラメータsに対する2syで割った剰余を特定する情報subとを含む符号を生成する処理である。なお、時系列データを分離パラメータsに対する2syで割った剰余を特定する情報subはnull情報をも含む概念である。ステップS470の具体例以下に、ステップS470の具体例を示す。図12に示すように、まず、分離演算部214は、入力された分離パラメータsが0であるか否かを判定するステップS471。ここで、s0でなかった場合、分離演算部214は、入力された時系列データeが0以上であるか否かを判定しステップS472a、e≧0であると判定された場合、qfloor2s-1≧0に従って整数の商qを生成しステップS473a、sube-2s-1q2s-1≧0に従って剰余を特定するための情報subを生成して出力するステップS474a。一方、ステップS472aでe≧0でないと判定された場合、分離演算部214はsubfloor-12s-1<0に従って整数の商qを生成しステップS473b、sub-1-2s-1q<0に従って剰余を特定するための情報subを生成して出力するステップS474b。一方、ステップS471でs0であると判定された場合、分離演算部214は、入力された時系列データeが0以上であるか否かを判定しステップS472b、e≧0であると判定された場合、q2e≧0に従って剰余を特定するための情報subを生成しステップS473c、subをnullとして出力するステップS474c。一方、ステップS472bでe≧0でないと判定された場合、分離演算部214は、q-2e-1<0に従って整数の商qを生成しステップS473d、subをnullとして出力するステップS474c。次に、分離演算部214から出力された商qと比較部218から出力されたパラメータhとが符号化部1017に入力される。符号化部1017は、記憶部1013に格納された符号表Tからパラメータhに対応する符号表Tを特定し、符号表Tを用いて商qを符号化し、商qに対応する情報prefixを生成するステップS475。次に、分離演算部214から出力された情報subと符号化部1017から出力された情報prefixとが合成部219に入力される。合成部219は、情報prefixと情報subとを合成して符号Ceを生成するステップS476/ステップS470の具体例の説明終わり。<復号処理>離散時間区間における各符号Ceとパラメータ符号Ccは復号装置220に入力される。パラメータ符号Ccはパラメータ復号部224に入力される。パラメータ復号部224は、パラメータ符号Ccを復号して分離パラメータsとパラメータhとを生成するステップS510。生成された分離パラメータsは合成演算部222に入力され、パラメータhは復号部25に入力される。復号部25は、パラメータhを用い、記憶部23に格納された各符号表Tから符号表Tを特定するステップS520。また、分離部221、合成演算部222及び復号部25は、分離パラメータs及び符号表Thを用いて各符号Ceを復号し、時系列データeを生成して出力するステップS530。ステップS530の具体例まず、符号Ceが分離部221に入力される。分離部221は、入力された符号Ceを分離し、情報prefixと、情報subとを生成するステップS531。分離部221から出力された情報prefixは、復号部25に入力される。復号部25は、符号表Tを用いて情報prefixを復号し、商qを生成するステップS532。また、合成演算部222は、入力された分離パラメータsが0であるか否かを判定するステップS533。ここで、s0でないと判定された場合、次に合成演算部222は、分離部221から出力された情報subが2s-1以上であるか否かを判定するステップS534a。この判定は時系列データeが0以上であるか否かを判定することに相当する。ステップS534aでsub≧2s-1と判定された場合、合成演算部222は、esub2s-1q-2s-1によって時系列データeを算出するステップS535a。一方、ステップS534aでsub<2s-1と判定された場合、合成演算部222は、e-sub-1-2s-1qによって時系列データeを算出するステップS535b。一方、ステップS533でs0と判定された場合、次に合成演算部222は、情報qが偶数であるか否かを判定するステップS534b。この判定は時系列データeが0以上であるか否かを判定することに相当する。ステップS534bでqが偶数であると判定された場合、合成演算部222は、eq2によって時系列データeを算出するステップS535c。一方、ステップS534bでqが奇数であると判定された場合、合成演算部222は、e-12によって時系列データeを算出するステップS535d。以上のように生成された時系列データeは、合成演算部222から出力される[ステップS530の詳細の例示]の説明終わり。第3実施形態の変形例次に、本発明の第3実施形態の変形例を説明する。第3実施形態のステップS432では、符号表選択部14が、積和SPを用い、複数種類の符号表Tから、時系列データeを2syで割った商qを符号化するための符号表Tを選択することとした。しかし、ステップS432において、符号表選択部14が、ステップS431で選択された符号表Tとの距離が予め定められた閾値以下の符号表Tから、時系列データeを2sで割った商を符号化するための符号表Tを選択することにしてもよい。最適な符号表Tと符号表Tとは近いものであることが多く、このように符号表Tを探索することで、精度をさほど落とすことなく、符号表Tの探索数を削減できる。また、符号表Tと符号表Tとの距離を事前計算しておけば、符号表Tの探索時に符号表Tと符号表Tとの距離を計算する必要もない。なお、符号表Tと符号表Tとの距離は、例えば、符号表Tにおいてデータ値kに対応付けられる符号のビット数をbuとし、符号表Tにおいてデータ値kに対応付けられる符号のビット数をbxとし、fu05buとし、fx05bxとした場合における、-bx-fxの各kについての総和に対して単調増加する値として定義できる。その他の変形例等なお、本発明は上述の実施の形態に限定されるものではない。例えば、上記の各実施形態では、各符号のビット数を各符号表に格納しておくこととした。しかし、積和の演算のたびに各符号のビット数を計算してもよい。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASPApplicationServiceProvider型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるものコンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等を含むものとする。また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。"