(57)【特許請求の範囲】
【請求項１】
パルス符号化装置により、T個のトラックの中で符号化される必要があるパルスを決定するステップであって、Tは２以上の整数である、ステップと、
各トラックの中で符号化される必要がある少なくとも１つのパルスについての統計値を位置に従って別々に収集し、各トラックの中で前記少なくとも１つのパルスを有する位置の数Nt、トラックの中で前記少なくとも１つのパルスを有する位置の分布、及び前記少なくとも１つのパルスを有する各位置におけるパルス数を取得するステップであって、添え字のtはt番目のトラックを表し、t∈[0,T-1]である、ステップと、
位置の数{N0,N1,...,NT-1}に従って、第１のインデックスI1tを決定するステップと、
前記位置の分布に従って別々に各トラックの第２のインデックスI2tを決定するステップと、
各位置におけるパルス数に従って別々に各トラックの第３のインデックスI3tを決定するステップと、
各トラックの前記第１のインデックスI1t、各トラックの前記第２のインデックスI2t及び各トラックの前記第３のインデックスI3tに従って、コードインデックスIndを生成するステップと
を有するパルス符号化方法。
【請求項２】
各トラックの前記第３のインデックスI3tの計算式が、
I3t=CPPTΔNNt-CPPT-q(0)ΔNNt+Σh=1ΔNNt-1[CPPT-h-q(h-1)ΔNNt-h-CPPT-h-q(h)ΔNNt-h]
であり、NNtは前記t番目のトラックの中で符号化される必要があるパルスの総数を表し、ΔNNt=NNt-Ntであり、PPT=NNt-1であり、q(h)は(h+1)番目のパルスのポジションシリアル番号を表し、h∈[0,ΔNNt-1]であり、q(h)∈[0,Nt-1]であり、q(0)≦q(1)≦．．．≦q(ΔNNt-1)又はq(0)≧q(1)≧．．．≧q(ΔNNt-1)であり、Σは総和をとることを示す、
請求項１に記載のパルス符号化方法。
【請求項３】
各トラックの前記第２のインデックスI2tの計算式が、
I2t=CMtNt-CMt-p(0)Nt+Σn=1Nt-1[CMt-p(n-1)-1Nt-n-CMt-p(n)Nt-n]
であり、Mtは前記t番目のトラックの中の位置の総数を表し、pt(n)はトラックの中でパルスを有するn番目の位置のポジションシリアル番号を表し、n∈[0,Nt-1]であり、pt(0)∈[0,Mt-Nt]であり、pt(n)∈[pt(n-1)+1,Mt-Nt+n]であり、pt(0)＜pt(1)＜．．．＜pt(Nt-1)又はpt(0)＞pt(1)＞．．．＞pt(Nt-1)である、
請求項１又は２に記載のパルス符号化方法。
【請求項４】
各トラックの中で符号化される必要があるパルスについての統計値を位置に従って別々に収集する間に、各トラックの中で前記パルスを有する各位置のパルス極性の正又は負の属性に従って、各トラックの中で前記パルスを有する各位置のパルス極性情報が取得され、
前記コードインデックスは、各トラックの中で前記パルスを有する各位置に対応する極性インデックスの情報を更に含み、前記極性インデックスは、インデックスに対応するパルスを有する位置のパルス極性情報を示す、請求項１−３の何れか１項に記載のパルス符号化方法。
【請求項５】
各トラックの中で前記パルスを有する各位置におけるパルス数に従って別々に各トラックの第３のインデックスI3tを決定するステップは、
前記t番目のトラックに関し、パルスを有するNt個の位置がNNt個のパルスを有する状態は、Nt個の位置がNNt-Nt個のパルスを有する状態に対応付けられ、NNtは前記t番目のトラックで符号化される必要があるパルスの総数を表し、及び、
所定の順序に従って、Nt個の位置に対するNNt-Nt個のパルスについて全ての可能な分布状態が配置され、配置のシリアル番号が、パルスを有する位置におけるパルス数を示す前記第３のインデックスI3tとして使用されることを有する、請求項１−４の何れか１項に記載のパルス符号化方法。
【請求項６】
T個のトラックの中で符号化される必要があるパルスを決定するように形成されるパルス統計部であって、Tは２以上の整数であり、各トラックの中で符号化される必要がある少なくとも１つのパルスについての統計値を位置に従って別々に収集し、各トラックの中で前記少なくとも１つのパルスを有する位置の数Nt、トラックの中で前記少なくとも１つのパルスを有する位置の分布、及び前記少なくとも１つのパルスを有する各位置におけるパルス数を取得し、添え字のtはt番目のトラックを表し、t∈[0,T-1]である、パルス統計部と、
第１、第２及び第３のインデックス部を有するインデックス演算部であって、前記第１のインデックス部は、位置の数{N0,N1,...,NT-1}に従って、第１のインデックスI1tを出力するように形成され、前記第２のインデックス部は、前記位置の分布に従って別々に各トラックの第２のインデックスI2tを出力するように形成され、前記第３のインデックス部は、パルス数に従って別々に各トラックの第３のインデックスI3tを出力するように形成される、インデックス演算部と、
各トラックの前記第１のインデックスI1t、各トラックの前記第２のインデックスI2t及び各トラックの前記第３のインデックスI3tに従って、コードインデックスIndを生成するように形成されるインデックス合成部と
を有するパルス符号化装置。
【請求項７】
各トラックの前記第３のインデックスI3tの計算式が、
I3t=CPPTΔNNt-CPPT-q(0)ΔNNt+Σh=1ΔNNt-1[CPPT-h-q(h-1)ΔNNt-h-CPPT-h-q(h)ΔNNt-h]
であり、NNtは前記t番目のトラックの中で符号化される必要があるパルスの総数を表し、ΔNNt=NNt-Ntであり、PPT=NNt-1であり、q(h)は(h+1)番目のパルスのポジションシリアル番号を表し、h∈[0,ΔNNt-1]であり、q(h)∈[0,Nt-1]であり、q(0)≦q(1)≦．．．≦q(ΔNNt-1)又はq(0)≧q(1)≧．．．≧q(ΔNNt-1)であり、Σは総和をとることを示す、
請求項６に記載のパルス符号化装置。
【請求項８】
各トラックの前記第２のインデックスI2tの計算式が、
I2t=CMtNt-CMt-p(0)Nt+Σn=1Nt-1[CMt-p(n-1)-1Nt-n-CMt-p(n)Nt-n]
であり、Mtは前記t番目のトラックの中の位置の総数を表し、pt(n)はトラックの中でパルスを有するn番目の位置のポジションシリアル番号を表し、n∈[0,Nt-1]であり、pt(0)∈[0,Mt-Nt]であり、pt(n)∈[pt(n-1)+1,Mt-Nt+n]であり、pt(0)＜pt(1)＜．．．＜pt(Nt-1)又はpt(0)＞pt(1)＞．．．＞pt(Nt-1)である、
請求項６又は７に記載のパルス符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
＜関連出願＞
本願は「PULSE  ENCODING  AND  DECODING  METHOD  AND  PULSE  CODEC」と題する西暦2010年1月24日付けで中国特許庁に出願された中国特許出願番号第201010213451.5による優先的利益を享受し、その中国特許出願の内容全体は本願のリファレンスに組み入れられる。
【０００２】
技術分野
本発明はパルス符号化及び復号化方法並びにパルスコーデック等に関連する。
【背景技術】
【０００３】
ベクトル符号化技術では、代数コードブックがしばしば使用され、適応フィルタリング後の残留信号について量子化符号化を実行する。トラックに関する最適な代数コードブックパルスの位置及び極性の情報が探索処理により得られた後、対応するインデックス値が符号化演算処理により取得され、デコード側がそのインデックス値に従ってパルスシーケンスを再構築できるようにする。無損失(ロスレス)再構築が保証されている前提条件がある場合、コードインデックス値に必要なビットを可能な限り減らすることができ、これが代数コードブックパルス符号化方法の研究開発を行う主な目的の１つである。
【０００４】
適切な符号化方法である音声符号化における適応マルチレートワイドバンド(AMR_WB+)符号化方法を具体的な例として、既存の代数コードブックパルスで使用されている具体的な符号化方法を説明する。異なるコードビットレートの場合、1ないしN個のパルスがトラックの各々で符号化される。各々のトラックがM=2m個の位置を有していたとすると、AMR_WB+において、各トラックで1ないし6個のパルスを符号化するプロセスはそれぞれ次のとおりである。
【０００５】
（１）１つのパルスが各トラックで符号化される。
【０００６】
トラックの各々は2m個の位置を有するので、各トラックに関し、パルスの位置のインデックス(ポジションインデックス)は符号化にmビットを必要とし、パルスの極性インデックスは符号化に1ビットを必要とする。ある極性と共に1パルスのインデックス値は、次のように符号化される：
I1p(m)＝p＋s×2m，
ここで、p∈［0，2m-1］はパルスのポジションインデックスであり；sはパルスの極性インデックスであり；パルスの極性が正の場合sは0に設定され、パルスの極性が負の場合sは1に設定され；I1p∈［0，2m+1-1］である。
【０００７】
各トラックで1パルスを符号化するのに必要なビット数は：m+1である。
【０００８】
（２）２つのパルスが各トラックで符号化される。
【０００９】
（１）の結果によれば、各トラックにおいて1パルスを符号化するのにm+1ビットが必要であり、他のパルスのポジションインデックスを符号化するのにmビット必要である。パルスの順序については如何なる条件もないので、パルスのポジションインデックスを並べることで取得される値の相互関係は、他のパルスの極性を指定するのに使用されてもよい。2つのパルスのインデックス値は次のように符号化される：
I2p(m)＝p1＋I1p0×2m＝p1＋p0×2m＋s×22m，
ここで、p0，p1∈［0，2m-1］はそれぞれ2パルスのポジションインデックスであり；sはパルスp0の極性インデックスであり；パルスp1の具体的な極性指定規則は：p0＜p1ならば2つのパルス極性が同じであることを示し、p0＞p1ならば2つのパルス極性が互いに反対であることを示し；I2p∈［0，22m+1-1］である。
【００１０】
各トラックで2パルスを符号化するのに必要なビット数は：2m+1である。
【００１１】
（３）３つのパルスが各トラックで符号化される。
【００１２】
各トラックは、セクションA及びセクションBという2つのセクションに分割される。各セクションは2m-1個の位置(ポジション)を各自有する。あるセクションは少なくとも2つのパルスを含む。（２）の結果によれば、セクションを符号化するために、2×(m-1)＋1＝2m-1ビットが必要とされる。トラック全体について別のパルスが探索され、（１）の結果によれば、m+1ビットが必要とされる。更に、2パルスを含むセクションを示すために更に1ビットが必要とされる。3パルスのインデックス値は次のように符号化される：
I3p(m)＝I2p(m-1)＋k×22m-1＋I1p(m)×22m，
ここで、kはセクションのインデックスであり；I3p∈［0，23m+1-1］である。
【００１３】
各トラックで3パルスを符号化するのに必要なビット数は：3m+1である。
【００１４】
（４）４つのパルスが各トラックで符号化される。
【００１５】
各トラックは、セクションA及びセクションBという2つのセクションに分割される。各セクションは2m-1個の位置(ポジション)を各自有する。セクション各々に含まれるパルス数の組み合わせは次の表の通りである。
【表Ａ】
0006042949.tif 000002
【００１６】
上記の表において、各タイプに対応する必要なビット数をもたらす基礎は次のとおりである：タイプ0及びタイプ4の場合、4つのパルスを含むセクションに関し、（３）のような方法が使用されるが、全体的なサーチに関するパルス数は2であり、これはI2p(m-2)＋k×22m-3＋I2p(m-1)×22m-2と等価であり；タイプ1の場合はI1p(m-1)＋I3p(m-1)×2mと等価であり；タイプ2の場合はI2p(m-1)＋I2p(m-1)×22m-1と等価であり；タイプ3の場合はI3p(m-1)＋I1p(m-1)×23m-2と等価である。
【００１７】
タイプ0及びタイプ4は予想される1つの状態と考えられ、タイプ1ないし3の各々は可能性のある状態と考えられるので、全部で4つの状態があり、従って、対応する状態を示すために2ビットが必要とされ、タイプ1ないし3の各々は4m-2+2=4ビットを必要とする。更に、タイプ0及びタイプ4を含む状態の場合、区別するために更に1ビットが必要とされ、タイプ0及びタイプ4は4m-3+2+1=4mビットを必要とする。
【００１８】
各トラックで4パルスを符号化するのに必要なビット数は：4mである。
【００１９】
（５）５つのパルスが各トラックで符号化される。
【００２０】
各トラックは、セクションA及びセクションBという2つのセクションに分割される。各セクションは2m-1個の位置(ポジション)を各自有する。あるセクションは少なくとも3つのパルスを含む。（３）の結果によれば、セクションを符号化するために、3×(m-1)+1=3m-2ビットが必要とされる。トラック全体に関して他の2つのパルスが探索され、（２）の結果によれば、2m+1ビットが必要とされる。更に、3パルスを含むセクションを指定するために更に1ビットが必要とされる。5つのパルスのインデックス値は次のように符号化される：
I5p(m)＝I3p(m-1)＋k×23m-2＋I1p(m)×23m-1，
【００２１】
各トラックで5パルスを符号化するのに必要なビット数は：5mである。
【００２２】
（６）６つのパルスが各トラックで符号化される。
【００２３】
各トラックは、セクションA及びセクションBという2つのセクションに分割される。各セクションは2m-1個の位置(ポジション)を各自有する。セクション各々に含まれるパルス数の組み合わせは次の表の通りである。
【表Ｂ】
0006042949.tif 000003
【００２４】
上記の表において、各タイプに対応する必要なビット数の基礎は（４）から導出されるので、繰り返しになるので説明しない。
【００２５】
タイプ0及び6、タイプ1及び5、タイプ2及び4はそれぞれ1つの可能な状態と考えられ、タイプ3は別の1つの状態と考えられるので、全部で4つの状態が存在し、従って、対応する状態を示すために2ビットが必要とされ、タイプ3は6m-4+2=6m-2ビットを必要とする。組み合わせられたタイプを指定した場合、区別するために更に1ビットが必要とされ、タイプ3を除く他のタイプは6m-5+2+1＝6m-2ビットを必要とする。
【００２６】
各トラックで6パルスを符号化するのに必要なビット数は：6m-2である。
【００２７】
本発明の基礎研究において、発明者等は次のことを見出した：AMR_WB+により提供される代数パルス符号化方法では、再帰処理に類似する符号化論理が使用され、符号化されるパルス数が比較的多い状態は、いくつかの状態に分割され、分割された状態では、処理を行うための符号化されるパルス数が比較的少なくなっており、従って演算処理が複雑であると共に、トラックで符号化されるパルス数が増えてくると、コードインデックスの冗長性が徐々に累積してゆき、コードビットを浪費してしまっている。
【発明の概要】
【００２８】
本発明による実施の形態は、コードビットを節約することが可能なパルス符号化方法を提供する。
【００２９】
実施の形態によるパルス符号化方法は、
Ｔ個のトラックの中で符号化される必要があるパルスを取得するステップであって、前記Ｔは２以上の整数である、ステップと、
各トラックの中で符号化される必要があるパルスについての統計情報を位置に応じて個別的に収集し、各トラックの中でパルスを有する位置の数Nt、トラックの中でパルスを有する位置の分布、及びパルスを有する各々の位置におけるパルス数を取得するステップであって、添え字のtはt番目のトラックを表し、t∈[0,T-1]である、ステップと、
各トラックの中でパルスを有する位置の数{N0,N1,...,NT-1}に従って、第１のインデックスI1を決定するステップであって、前記第１のインデックスI1は、パルスを有する位置の数に関し、各トラックの中でパルスを有する位置についての全ての可能な分布状態に対応し、前記パルスを有する位置の数はそれによって表現される、ステップと、
各トラックの中でパルスを有する位置の分布に従って別々にトラック各々の第２のインデックスI2tを決定するステップであって、前記第２のインデックスは、前記第１のインデックスI1に対応する可能性のある全ての分布状態のうち、対応するトラックの中でパルスを有する現在の位置の分布に対応する分布状態を示す、ステップと、
各トラックの中でパルスを有する位置各々におけるパルス数に従って別々に各トラックの第３のインデックスI3tを決定するステップと、
各トラックの第１のインデックス並びに第２及び第３のインデックスの情報を含むコードインデックスIndを生成するステップと
を有するパルス符号化方法である。
【００３０】
実施の形態による別のパルス符号化方法は、
Ｔ個のトラックの中で符号化される必要があるパルスを取得するステップであって、前記Ｔは２以上の整数である、ステップと、
各トラックの中で符号化される必要があるパルスについての統計情報を位置に応じて個別的に収集し、各トラックの中でパルスを有する位置の数Nt、トラックの中でパルスを有する位置の分布、及びパルスを有する各々の位置におけるパルス数を取得するステップであって、添え字のtはt番目のトラックを表し、t∈[0,T-1]である、ステップと、
各トラックの中でパルスを有する位置の数に従って、各トラックの第１のインデックスI1tを決定するステップであって、前記第１のインデックスI1tは、パルスを有する位置の数に関し、トラックの中でパルスを有する位置についての全ての可能な分布状態に対応し、前記パルスを有する位置の数はそれによって表現される、ステップと、
各トラックの中でパルスを有する位置の分布に従って別々にトラック各々の第２のインデックスI2tを決定するステップであって、前記第２のインデックスは、前記第１のインデックスに対応する可能性のある全ての分布状態のうち、前記トラックの中でパルスを有する現在の位置の分布に対応する分布状態を示す、ステップと、
各トラックの中でパルスを有する位置各々におけるパルス数に従って別々に各トラックの第３のインデックスI3tを決定するステップと、
各トラックの前記第１、第２及び第３のインデックスの情報を含むコードインデックスIndを生成するステップと
を有するパルス符号化方法である。
【００３１】
本発明による実施の形態は上記に関連するパルス復号化方法並びに関連するパルス符号化装置及び復号化装置等も提供する。
【００３２】
本発明の実施の形態によれば、例えば2つより多い数のトラックが一緒に符号化され、1トラックの符号化の場合に未使用であったコードブックスペース(free  codebook  space)は、ジョイント符号化(joint  encoding)の間に、節約されるコードビットをもたらすように合成されることが可能である。更に、トラック各々の中にありかつ符号化に必要なパルスは、場所又は位置、パルスを含む場所の数、トラックの中でパルスを含む場所の分布、及び別個に符号化されるパルスを含む位置各々におけるパルス数に従って合成され、同じ位置にある複数のパルスについて別個の符号化を実行してしまうことを回避し、コードビットを更に節約する。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施の形態による符号化方法の概略的なフローチャート。
【図２】本発明の第１の実施の形態によるパルス位置マッピング方法の概略的なフローチャート。
【図３】本発明の第２の実施の形態による符号化方法の概略的なフローチャート。
【図４】本発明の第３の実施の形態による符号化方法の概略的なフローチャート。
【図５】本発明の第４の実施の形態によるトラックパルスを重ね合わせる様子を概略的に示す図。
【図６】本発明の第４の実施の形態によるパルス分散トラックのインデックスを概略的に示す図。
【図７】本発明の第５の実施の形態による復号化方法の概略的なフローチャートを示す図。
【図８】本発明の第６の実施の形態による復号化方法の概略的なフローチャートを示す図。
【図９】本発明の第７の実施の形態による復号化方法の概略的なフローチャートを示す図。
【図１０】本発明の第８の実施の形態による符号化装置の概略的な論理構成図。
【図１１】本発明の第９の実施の形態による復号化装置の概略的な論理構成図。
【発明を実施するための形態】
【００３４】
本発明の実施の形態はパルス符号化方法を提供し、パルス符号化方法ではコードビットを節約するために2つ以上のトラックが一緒に符号化又はエンコードされる。本発明の実施の形態は対応するパルス復号化方法及びパルスコーデック等も提供する。以下、それらを詳細に説明する。
【００３５】
スピーチエンコーダ又は音声符号器では、コードブックサーチにより、各トラックの全てのパルスの位置及び極性(含まれていた場合)の情報が取得される。この情報はデコードを行う側に正しく転送される必要があり、これによりデコードを行う側は全てのパルスの位置及び極性(含まれていた場合)の情報を一意に復元できるようにする。この場合において、ビットレートをできるだけ小さくするために、できるだけ少ないビット数が情報の転送に使用されることが予想される。同じトラックにある全てのパルスの位置及び極性(含まれていた場合)の順列(又は置換)及び組み合わせの数はコードブック空間(codebook  space)の最小値となること、及び対応するコードビット数は理論的な下限値になることが、理論的な解析から知られている。トラックにおける位置の総数及びトラックにおけるパルスの総数は固有である。トラックにおける位置の総数とトラックにおけるパルスの総数とが異なる値をとる場合、全てのパルスの位置及び極性の順列及び組み合わせの数は必ずしも2のべき乗の整数にはならないので、コードビット数の理論的下限値も必ずしも整数にはならず、その場合、単独のトラックの符号化に要する実際のコードビット数は、少なくとも、その理論的下限値の整数部分プラス1であり、必然的にコードブック空間の一部を未使用にしてしまう。例えば、以下の表1は、符号化されるのに必要なパルス総数Nが1トラックに関して１ないし６である場合における(ただし、位置の総数は１６である)、コードビット数の理論的下限値及び実際の下限値と未使用部分の状態とを示す。
【表１】
0006042949.tif 000004
【００３６】
多くの場合、実際の下限値はコードブック空間をかなり浪費することを招いていることが表1から分かり、従って本発明では、2つ以上のトラックについて一緒に符号化すること、即ちジョイント符号化(joint  encoding)が実行され、これにより単独トラック符号化における未使用コードブック空間が結合され、結合された未使用空間が十分大きければ、1つの実際のコードビットを減らすことができる。当然に、(トラック内の位置の総数とトラック内のパルスの総数とが同じである)同じタイプのトラックに関し、K個のトラックについてジョイント符号化のみが実行される場合、1つのコードビットが節約され、ここでK≧1/(1-kk)であり、kkは単一トラック符号化に関する理論的な下限値の少数部分である。例えば、表1に示されているようにkkが0.5未満であるパルス総数が3、4及び5であるトラックの場合、２つを一緒にジョイント符号化すると1つのコードビットを節約できる。表１においてパルス総数が６であるトラックについては、３つを一緒にジョイント符号化すると１つのコードビットを節約できる。当然に、異なるタイプのトラックのジョイント符号化(一緒に符号化すること)も同様な効果をもたらし、２つのトラックのkkの合計が１未満である又は３つのトラックのkkの合計が２未満である場合には、１ビットが節約され；明らかに、３つのトラックのkkの合計が１未満であった場合には２ビットが節約され、それ以上についても同様に類推できる。以下の表２は同じタイプの２トラックのジョイント符号化と単独トラック符号化との比較例を示し(パルスが極性を有することを考慮に入れている)、この場合において、トラック内の位置の総数は１６であり、符号化に必要な総パルス数Ｎは３ないし５である。
【表２】
0006042949.tif 000005
【００３７】
表３は異なるタイプの２ないし３トラックのジョイント符号化と単独トラックの符号化との比較例を示し(パルスは極性を有することが考慮されている)、この場合において、トラック内の位置の総数は１６であり、符号化に必要な総パルス数Ｎは３ないし５である。
【表３】
0006042949.tif 000006
【００３８】
上記は複数のトラックを一緒に符号化(ジョイント符号化)する場合に節約できるビット数の理論的解析例を示す。理論的に予想される効果を達成するには、可能な限り効率的にコードブック空間を利用するためにコードインデックスが必要とされる。以下、複数のトラックを一緒に符号化(ジョイント符号化)する際に実際のビット下限値を使用する符号化方法を、具体的な実施の形態により個別的に示す。
【００３９】
具体例１：図１に示されているように、パルス符号化方法は以下のステップを含む：
【００４０】
Ａ１：Ｔ個のトラックの中にありかつ符号化される必要があるパルスを取得する。Ｔは２以上の整数である。
【００４１】
Ｔ個のトラックにおける各トラックで符号化される必要のある総パルス数は、通常、ビットレートに従って決定される。明らかに、符号化される必要のあるパルス数が多いほど、コードインデックスに必要なビット数は多くなり、ビットレートも高くなる。本明細書において、pulse_numtは、t番目のトラックにあるパルスであって符号化される必要のあるパルスの総数を表す。pulse_numt＝NNt、t∈［0,T-1］であることが仮定されている。ジョイント符号化におけるトラックの総パルス数は同じであっても異なっていてもよい。
【００４２】
Ａ２：各々のトラックにおける符号化される必要があるパルスについての統計情報を、位置に応じて別々に収集し、各トラックでパルスを有する位置の数Nt、トラックでパルスを有する位置の分布及びパルスを有する位置各々についてのパルス数を取得する。
【００４３】
本明細書において、pos_numtはパルスを有する位置であってt番目のトラックにある位置の数を表す。トラックにおけるNNt個のパルスの分布は位置に関して重なっていてもよく、pos_numt＝Ntであることが仮定されている。当然に、Nt∈[1,NNt]である。
【００４４】
パルス位置ベクトルPt(Nt)＝{pt(0),pt(1),...,pt(Nt-1)}はパルスを有する位置であってt番目のトラックにある位置の分布を表し、ここでpt(n)はt番目のトラックにあるパルスを有する位置のポジションシリアル番号を表し、n∈[0,Nt-1]であり、pt(n)∈[0,Mt-1]であり、本明細書におけるMtはt番目のトラックにおける位置の総数を表し、概してMtは８、１６等であってもよく、ジョイント符号化のトラックにおける位置の総数は同じであっても異なっていてもよい。
【００４５】
パルス番号ベクトルSUt(Nt)＝{sut(0),sut(1),...,sut(Nt-1)}はパルスを有する位置であってt番目のトラックにある位置各々におけるパルス数を表し、sut(n)はpt(n)の位置のパルス数を表し、明らかに、sut(0)+sut(1)+...+sut(Nt-1)=NNtである。
【００４６】
更に、符号化される必要のあるパルスは極性又はシンボル(symbol)を有していてもよく、すなわち正又は負の属性を有していてもよい。この場合において、トラックの中にあるパルスであって符号化される必要のあるパルスについての統計情報が、位置に応じて収集される場合に、パルスを有する各々の位置のパルス極性情報が取得される必要もある。
【００４７】
本明細書においては、パルス極性ベクトルSt(Nt)={st(0),st(1),...,st(Nt-1)}は、パルスを有する位置であってt番目のトラックにある位置各々のパルス極性情報を表し、st(n)はpt(n)の位置のパルス極性を表しかつpt(n)の位置の極性インデックスと呼ばれる。st(n)で表現されるパルス極性は正又は負の2進数的な性質を有することに基づいて、一般に、次のような簡易な符号化方法が使用されてよい：正のパルスを表すためにst(n)=0が使用され、負のパルスを表すためにst(n)=1が使用される。明らかに、符号化される必要のあるパルスに関し、パルス極性は必須の属性ではなく、実際のニーズによれば、パルスは位置及び数量に関する情報を有するだけでもよく、その場合、パルス極性情報に関する統計情報を収集する必要はない。
【００４８】
明らかに、Pt(Nt)、SUt(Nt)及びSt(Nt)の値は１対１の対応関係を有する。
【００４９】
トラックのジョイント符号化に必要なパラメータPt(Nt)、SUt(Nt)及びSt(Nt)が統計情報を収集することで取得された後に、パラメータはインデックスに符号化される必要があり、パラメータとインデックスとの間の対応関係が設定され、デコードする側がインデックスに従って対応するパラメータを復元できるようにする。対応関係に関し、2つの通知方法が使用されてもよい。通知方法の1つは、代数的な方法を使用して関数計算式を指定し、この場合、符号化する側がインデックスを取得するためにパラメータに対して順行計算(フォワード計算)を実行し、復号化又はデコードする側がそのパラメータを取得するためにインデックスに対して逆行計算(リバース計算)を実行する。別の通知方法は、マッピング方式を使用して問合せの関連性を指定し、この場合、符号化及び復号化する側の双方がパラメータをインデックスに関連付けるマッピングテーブルを格納しておく必要がある。パラメータの具体的な性質に応じて2種類の方法についての選択が実行されてよい。一般的に言えば、データ量が多い状況では、関数計算式によって対応関係を指定するように設計すると、符号化及び復号化する側での記憶容量を節約することができ、好ましい。以下、パラメータの各々を符号化する例をそれぞれ説明する。
【００５０】
Ａ３：パルスを有する位置であって各々のトラックにある位置の数{N0,N1,...,NT-1}に従って、第１のインデックスI1を決定し、ここで、第１のインデックスI1は、パルスを有する位置の個数の下で、パルスを有しかつ各トラックにある位置の全ての可能な分布状況に対応し、ここで、パルスを有する位置の数はそれによって表現される。
【００５１】
{N0,N1,...,NT-1}の組み合わせについての可能な状態の総数は、Πt=0T-1Ntである。
Ntの値は大きくなく、一般に、ジョイント符号化のトラックの総数Tは非常に大きくはなく、{N0,N1,...,NT-1}の組み合わせの可能な状態の総数も非常に大きくはなく、
従って、{N0,N1,...,NT-1}の組み合わせと第１のインデックスI1との間の対応関係は、関数計算式でも又は問合せの関連性でも実現可能である。
【００５２】
{N0,N1,...,NT-1}の組み合わせとI1との間に対応関係が設定されると、概して、それらとI1との間に１対１の対応関係が設定され、例えば第１のインデックスは１つの{N0,N1,...,NT-1}の組み合わせに対応する。pos_numtの値NtはPt(Nt)の全ての可能な状態の総数Wt(Nt)を決定し、Wt(Nt)=CMtNtであり、「C」は組み合わせの数を取得することを示し、I1はΠt=0T-1Wt(Nt)可能なPt(Nt)の組み合わせ{P0(N0),P1(N1),...,PT-1(NT-1)}に対応する。
【００５３】
当然に、所定のトラックの或るNtの値が少ない数の状態のPt(Nt)に対応する場合、Ntの値は同じI1に対応するように組み合わせられ、すなわち少なくとも１つのI1が2つより多い数の{N0,N1,...,NT-1}の組み合わせに対応し、この場合、別の追加的なインデックスIftが同じI1に対応する{N0,N1,...,NT-1}の組み合わせを識別するために必要とされ、すなわち、I1に対応する１でないNtの値と共にトラックの現在のNtの値を更に決定するために追加的なインデックスIftが使用される。
【００５４】
様々なI1はトラックのジョイント符号化の分類インデックスと考えてもよく、各トラックのパルス位置の数の組み合わせに従って、ジョイント符号化のコードブック空間全体を幾つかの部分(パート)に分割する。ジョイント符号化の組み合わせ分類の状態の具体例は以下に示されている。表４は３パルス２トラックのジョイント符号化に関する組み合わせ分類方法を示す。全部で３×３個のNt値の組み合わせが示されており、各々の組み合わせは１つの分類(I1)に対応する。トラック内の位置の総数Mtは全部で１６であると仮定されている。
【表４】
0006042949.tif 000007
【００５５】
表５は４パルス２トラックのジョイント符号化の組み合わせ分類方法を示す。全部で４×４個のNt値の組み合わせがあり、各々の組み合わせは１つの分類(I1)に対応する。トラック内の位置の総数Mtは全部で１６であると仮定されている。
【表５】
0006042949.tif 000008
【００５６】
表６は５パルス２トラックのジョイント符号化の組み合わせ分類方法を示す。上記２つの具体例との相違は、Nt=１，２，３の状態が分類の際に組み合わせられていることである。全部で３×３個の分類(I1)があり、いくつかの分類の各々が複数のNt値の組み合わせに対応している。トラック内の位置の総数Mtは全部で１６であると仮定されている。
【表６】
0006042949.tif 000009
【００５７】
表６から分かるように、複数のNt値(一般的には、Nt値は小さな数の位置の組み合わせに対応する)が分類の際に一緒に組み合わせられ、ジョイント符号化の分類総数を効果的に減らす(例えば、表６において分類数は９であり、これは、１対１の対応関係の場合の分類での数２５よりもかなり小さい)。従って、当然に、１でないNtの値が存在する場合、分類状態の現在のNt値を特定するために別の追加的なインデックスIftが使用される必要がある。すなわち、I1によって分割された空間は、追加的なインデックスIftによって指定された部分空間に更に分割される。
【００５８】
Ａ４：パルスを有する位置であって各々のトラックにある位置の分布Pt(Nt)に従ってトラック各々の第２のインデックスI2tを別々に決定し、第２のインデックスI2tは、第１のインデックスI1に対応する全ての可能な分布状態の中で、対応するトラックにパルスを有する現在の位置に対応する分布状態を指定する。
【００５９】
Pt(Nt)の可能な総数はWt(Nt)=CMtNtであり、データ量は多いので、第２のインデックスI2tと共に対応関係の計算式を使用することが好ましいが、当然に問合せの関係性(マッピングテーブル)を使用することも実現可能である。明らかに、Wt(Nt)はI2tについての可能な値の数である。I2tの値が0からカウントされる場合、I2t∈[0,Wt(Nt)-1]である。
【００６０】
明らかに、追加的なインデックスIftを使用する必要がある場合、第１のインデックスI1及び追加的なインデックスIftにより、I2tの範囲を決めるNt値が一緒に決定される。
【００６１】
代数計算によりPt(Nt)及びI2tの対応関係を決定するために、第２のインデックスI2tの計算式が次のように与えられる：
【数１】
0006042949.tif 000010
ここで、pt(n)はトラックの中でパルスを有するn番目の位置のポジションシリアル番号を表し、n∈[0,Nt-1]であり、pt(0)∈[0,Mt-Nt]であり、pt(n)∈[pt(n-1)+1,Mt-Nt+n]であり、pt(0)＜pt(1)＜．．．＜pt(Nt-1)又はpt(0)＞pt(1)＞．．．＞pt(Nt-1)である。
【００６２】
上記の方法を利用することで、トラック各々の第２のインデックスI2tが計算式から取得される。コードインデックスの中でI2tが占めるデータ量は多いので、この計算法を使用すると、符号化及び復号化を行う側で可能な限り多くの記憶容量を削減できる。一方、I2tは連続的に符号化されかつ厳密にPt(Nt)に１対１に対応するので、コードビットを最大限活用でき、無駄を回避できる。計算方法の原理、具体的な導出及び説明については、公開番号がCN101295506(特許文献１)である中国特許出願(公開日は西暦2008年10月29日である)を参照されたい。具体的には、その出願書類の明細書第13頁第18行ないし第15頁第9行(実施の形態2、第14図及び第15図)；及び対応する復号化計算法については、出願書類の明細書第16頁第23行ないし第17頁第12行を参照されたい(実施の形態4)。
【００６３】
Ａ５：パルスを有しかつトラックにある位置各々におけるパルスの数SUt(Nt)に従ってトラック各々の第３のインデックスI3tを別々に決定する。
【００６４】
SUt(Nt)はPt(Nt)と同じ次元数のベクトルであるが、sut(0)+  sut(1)+．．．+  sut(Nt-1)＝NNtという制限が課せられており、一般にNtの値は大きくはなく、通常は１ないし６程度の値であり、従ってSUt(Nt)の可能な総数は大きくはなく、第３のインデックスI3tとの対応関係について、関数計算式又は問合せによる関連性(マッピングテーブル)の何れを用いて実現されてもよい。留意すべきことに、極端な状況の場合、例えばNt=1又はNt=NNtであった場合、SUt(Nt)は唯１つの可能な状態しか有しておらず、如何なるI3tも通知される必要はなく、この場合I3tは最終的なコードインデックスの生成に影響を及ぼさない任意的な値となる。
【００６５】
SUt(Nt)及びI3tの間の対応関係を代数計算により決定するために、第３のインデックスI3tの計算は次のように行われる：
【００６６】
t番目のトラックに関し、Nt個の位置(ポジション)がNNt個のパルスを有している状態は、Nt個のポジションがNNt-Nt個のパルを有する状態に対応付けられ(マッピングされ)、ここでNNtは符号化される必要がありかつt番目のトラックにあるパルスの総数を表す。例えば、図２に示されているような６パルス４ポジション(NNt=６，Nt=4)の４種類に関し、SUt(Nt)は常に{1,2,1,2}であり、(各々の位置は少なくとも１つのパルスを有するので)各々の位置のパルス数から１が減算されて{0,1,0,1}が取得され、SUt(Nt)の情報は２パルス４ポジション符号化状態に対応付けられる。
【００６７】
決められた順序に従って、Nt個の位置におけるNNt-Nt個のパルスの全ての可能な分布状態が並べられ、並べられたシリアル番号が、パルスを有する位置におけるパルス数を示す第３のインデックスI3tとして使用される。
【００６８】
上記の計算法を反映する計算式は次のとおりである：
【数２】
0006042949.tif 000011
ここで、ΔNNt=NNt-Ntであり、PPT=NNt-1であり、q(h)は(h+1)番目のパルスのポジションシリアル番号を表し、h∈［0,ΔNNt-1］であり、q(h)∈［0,Nt-1］であり、q(0)≦q(1)≦．．．≦q(ΔNNt-1)又はq(0)≧q(1)≧．．．≧q(ΔNNt-1)であり、Σは総和をとることを表す。
【００６９】
計算方法の原理、具体的な導出及び説明については、公開番号がCN101388210(特許文献２)である中国特許出願(公開日は西暦2008年3月18日である)を参照されたい。具体的には、その出願書類の明細書第8頁第23行ないし第10頁第7行(実施の形態2、第6図)；及び対応する復号化計算法については、出願書類の明細書第21頁第10行ないし第21頁第27行を参照されたい(実施の形態6)。
【００７０】
Ａ６：Ｔトラックの一般コードインデックス(general  code  index)Indを生成し、コードインデックスIndは、トラック各々の第１のインデックスI1及び第２及び第３のインデックスI2tと各トラックのI3tの情報を含む。
【００７１】
I1、I2t、I3t、追加的なインデックスIft(含まれていた場合)及び極性インデックスIst(含まれていた場合)は、デコードする側で特定可能な何らかの方法でコードインデックスに置換され、最も簡易な例の場合、固定的なフィールドに別々に保存される。各トラックで符号化される必要のあるパルスの総数pulse_numtが指定されている前提条件の場合、I1により指定されるpos_numt各々の値NtはI2t及びI3tの可変範囲を決定し、すなわちI2t及びI3tにより必要とされるコードビット数を決定し(含まれていた場合、Istにより必要とされるコードビット数も決定する)、このため、コードインデックスを構築するために以下の方法が使用される。
【００７２】
（１）第１のインデックスI1が初期値として使用され、他のインデックスの情報は多重される。I1の値は、コードインデックスの独立した値の範囲に対応する。このように、デコードする側は、コードインデックスの値の範囲に応じて、pos_numtの値の組み合わせ{N0,N1,...,NT-1}を直接的に決定してもよい。明らかに、追加的なインデックスを伴う状況の場合、第１のインデックスに対応する１でないNtの値を有するトラックのNtの値の組み合わせのみが、I1に応じて決定でき、例えば表６の「１，２，３」の組み合わせである。如何なるNt値又はNt値の組み合わせが決定されるとしても、必要な符号化空間が決定され、I1により決定される値の範囲(一般的には、所定長のフィールドに対応する)は、T個のトラック各々のI2t、I3t及びIftにより使用されるT個の部分に更に分割される。
【００７３】
（２）I2t及びI3tはデコードする側で指定できる任意の方法で設定されてよく、例えば最も簡易な方法の場合、別々に保存されてもよい。I2t及びI3tは通常は2のべき乗の整数によっては表現できないので、できるだけコードビット数を節約するために、t番目のトラックのI2t及びI3tはI1によって決定される値の範囲から指定されるセクションに設けられる以下の形式に組み合わせられてもよい：
【数３】
0006042949.tif 000012
ここで、I2t及びI3tは何れも0から始まって符号化され、I2t∈[0,Wt(Nt)-1]であり、I3t∈[0,Class(Nt)-1]であり、Class(Nt)はSUt(Nt)の可能な総数である。明らかに、この方法は、I1により指定される値の範囲がWt(Nt)の長さを有するClass(Nt)セクションに分割されることと等価であり、各々のセクションはSUt(Nt)の分布状態に対応する。
【００７４】
Iftが使用されなければならない場合、明らかに、I1によりトラックについて指定される値の範囲は使用する異なるNtにIftにより先ず指定される必要があり、その後にI2t及びI3tが各Ntに指定される空間に設定され、この場合、次式が成立する。
【数４】
0006042949.tif 000013
【００７５】
（３）符号化されるパルスが極性を伴うパルスである場合、明らかに、Index(t)は各パルスの極性インデックスst(n)の情報を更に含む必要がある。例えば、ｔ番目のトラックの極性インデックスIstはI1によりトラックについて指定された値の範囲内の固定的な位置(例えば、末尾)に設けられる長さNtのフィールドとして使用されてもよく、この場合、次式が成立する。
Index(t)=(I2t+I3t×CMtNt)×2Nt+Ist(第１のインデックスに対応する１つのNt値を伴うトラックの場合)又は
Index(t)=Ift+(I2t+I3t×CMtNt)×2Nt+Ist(第１のインデックスに対応する１つでないNt値を伴うトラックの場合)
ただし、Ist=st(0)+2Nt-1+st(1)×2Nt-2+．．．+st(Nt-1)である。
【００７６】
結果的に、Ｔ個のトラックの一般コードインデックスの構成法は、次式のように表現できる：
【数５】
0006042949.tif 000014
ここで、Imax(t)はIndex(t)の上限値を表し、「Π」は乗算を表す。デコードを行う場合に、Imax(t)で除算したときの剰余を得る方法がIndex(t)を１つずつ分離するのに使用されてもよい。例えば、(Ind-I1)をImax(T-1)で除算したときの剰余を取得してIndex(T-1)を取得し、Index(T-1)を(Ind-I1)から減算したものをImax(T-1)で除算し、更にImax(T-2)で除算したときの剰余を取得してIndex(T-2)を取得し、以後同様に、Index(0)が取得されるまで行われる。
【００７７】
コードインデックスを構成する上記の方法例は実施の形態による１つの代替的な方法であるに過ぎず、当業者はコードインデックスを構成する基本情報を用いて別のコードインデックス構造の構成法を容易に取得できることが、容易に理解されるであろう。例えば、インデックスの位置は置き換わってもよいし、或いは再構築されてもよい。具体的には、異なるトラックのIt2が最初に組み合わせられ、次にI3t及びIstが組み合わせられてもよい。本発明の実施の形態はコードインデックスの具体的な構成法に限定されない。
【００７８】
具体例２：ジョイント符号化のトラック各々のインデックスが別々に計算され、図３に示されるようにコードインデックスを形成することと組み合わせられる実施の形態によるパルス符号化方法は、以下のステップを有する：
【００７９】
Ｂ１：Ｔ個のトラックの中にありかつ符号化される必要があるパルスを取得する。Ｔは２以上の整数である。
【００８０】
Ｂ２：各々のトラックにおける符号化される必要があるパルスについての統計情報を、位置に応じて個別に収集し、各トラックでパルスを有する位置の数Nt、トラックでパルスを有する位置の分布Pt(Nt)及びパルスを有する位置各々におけるパルス数SUt(Nt)を取得する。
【００８１】
ステップＢ１及びＢ２は具体例１におけるステップＡ１及びＡ２と同様に実行されてよい。
【００８２】
Ｂ３：パルスを有しかつ各々のトラックにある位置の数Ntに従って、各トラックの第１のインデックスI1tを別々に決定し、第１のインデックスI1tは、パルスを有する位置の数のうちパルスを有しかつトラックにある位置の全ての可能な分布状態に対応し、パルスを有する位置の数は第１のインデックスI1tにより表現される。
【００８３】
Ｂ４：パルスを有しかつ各々のトラックにある位置の分布Pt(Nt)に従ってトラック各々の第２のインデックスI2tを別々に決定し、第２のインデックスI2tは、第１のインデックスI1tに対応する全ての可能な分布状態のうち、パルスを有しかつトラックにある現在の位置の分布に対応する分布状態を示す。
【００８４】
Ｂ５：パルスを有しかつ各トラックにある位置各々におけるパルス数に従って各トラックの第３のインデックスI3tを別々に決定する。
【００８５】
ステップＢ３ないしＢ５は具体例１のステップＡ３ないしＡ５と同様に実行されてもよい。各トラックのインデックスを取得するための詳細な方法については、公開番号がCN101295506(特許文献１)である中国特許出願(公開日は西暦2008年10月29日である)を参照されたい。具体的には、その出願書類の明細書第6頁第13行ないし第15頁第9行(実施の形態1及び実施の形態2)；及び対応する復号化計算法については、出願書類の明細書第15頁第11行ないし第17頁第12行を参照されたい(実施の形態3及び実施の形態4)。
【００８６】
Ｂ６：Ｔ個のトラックの一般コードインデックスを生成する。コードインデックスIndはトラック各々の第１、第２及び第３のインデックスI1t、I2t及びI3tの情報を含む。
【００８７】
I1t、I2t、I3t及び極性インデックスIst(含まれていた場合)は、デコードする側で特定可能な何らかの方法でコードインデックスに置換され、最も簡易な例の場合、固定的なフィールドに別々に保存される。当然に、組み合わせが実行されてもよい。例えば、トラックのインデックスが別々に組み合わせられ、重ね合わせられてもよい。すなわち、以下に示す方法を使用してコードインデックスを構築してもよい：
【数６】
0006042949.tif 000015
ここで、Imax(t)はIndex(t)の上限値を表す。
Index(t)=I1t+I2t+I3t×CMtNt(パルスの極性が考慮されない場合)又は
Index(t)=I1t+(I2t+I3t×CMtNt)×2Nt+Ist(パルスの極性が考慮される場合)。
【００８８】
コードインデックスを構成する上記の方法例は実施の形態による１つの代替的な方法であるに過ぎず、当業者はコードインデックスを構成する基本情報を用いて別のコードインデックス構造の構成法を容易に取得できることが、容易に理解されるであろう。例えば、インデックスの位置は置き換わってもよいし、或いは各トラックの中で再構築されてもよい。本発明の実施の形態はコードインデックスの具体的な構成法に限定されない。
【００８９】
具体例３：パルス符号化方法。この具体例は、コードビットを更に節約するために具体例１又は具体例２に基づいて提案される方法である。
【００９０】
この具体例によるパルス符号化方法によりコードインデックスIndを生成する方法は、具体例１又は具体例２の方法と同様に実行されてよい。コードインデックスIndが生成されると、図４に示されているように、以下の処理が実行され、その処理は以下のステップを含む：
【００９１】
Ｃ１：コードインデックスIndと調整閾値THRとを比較する。
ここで、THR≦2Bmax-Imax（T）であり、Imax(t)はIndの上限値を表し、Bmaxはコードインデックスを符号化するのに使用されるビット数の上限値を表し、IndがTHRより小さかったならば、本方法はステップＣ２に進み、そうでなかったならば本方法はステップＣ３に進む。
【００９２】
Ｃ２：コードビットを使用することでIndを符号化する。この数は第１の数である。
【００９３】
Ｃ３：コードビットを使用することでIndにオフセット値THR0を加えたものを符号化する。この数は第２の数である。THR≦THR0≦2Bmax-Imax（T）であり、第１の数は第２の数より小さく、第２の数はBmax以下であり、第１の数及び第２の数は何れも正の整数である。
【００９４】
例えば、４パルストラックを２つジョイント符号化する場合(トラック各々における位置の総数は１６であると仮定されている)、Indの可能な総数はImax(T)=44032×44032(パルスが極性を有することを考慮に入れている)となり、31コードビットが必要とされ、未使用コードブック空間は231-44032×44032=208666624となり、THR=THR0=208666624のように設定され；Indが208666624コードビットよりも小さかった場合、第１の数である数値(30)がIndを符号化するために使用され；Indが208666624コードビットよりも大きかった場合、第２の数である数値(31)がInd+208666624を符号化するために使用される。明らかに、31ビットに基づくと更に9.7％ビットを節約できる可能性がある。当然に、更にビットを節約するために、調整閾値THRは208666624よりも小さな数に設定されてもよいが、ビットを節約できる状態が生じる確率が大幅に減少するので、比較考量する必要がある。
【００９５】
ビットを節約する方法の原理、具体的な導出及び説明については、例えば、(出願日が西暦2009年6月19日である)中国特許出願(CN200910150637.8)に示されている。
【００９６】
更に、ビットを節約できる状況が生じる確率を増やすために、以下の好適な方法を使用して、第１のインデックスI1とコードインデックスIndにおける{N0,N1,...,NT-1}の組み合わせとの間に対応関係を設定してもよい。{N0,N1,...,NT-1}の組み合わせの出現確率に関する統計情報を収集し、出現確率が高い組み合わせに対応する第１のインデックスを小さな値にし、出現確率の高い組み合わせについての符号化インデックス値を可能な限り小さくする。
【００９７】
具体例４：パルス符号化方法。この具体例は、具体例１及び具体例２とは異なる観点からトラックのジョイント符号化を行う新たな方を提案する。
【００９８】
具体例１及び具体例２では、パルスを有する位置であってトラックの中にある位置の状態についてジョイント分類が実行されるか(具体例１)或るいは第１のインデックスが各トラックに設定されるか(具体例２)によらず、各トラックのパルス位置について処理が別々に実行されなければならない。本具体例では、新たなアイディアが採用され、すなわちジョイント符号化の複数のトラックが１つのトラックを形成するように重ねられ、パルス分布情報が重ね合わせられる。例えば、図５に示されているように、２つの３パルストラックが重ね合わせられて１つの６パルストラックを形成し(各トラックの位置の数(ポジション数)は１６であると仮定されている)、（１）−（３）の以下の処理が行われる：
【００９９】
（１）(合成された)単独のトラックにおけるパルスの分布状態に従って、重ね合わせられたトラックの分布インデックスが計算される。例えば、具体例２で説明したI1t、I2t、I3t及びIstの組み合わせ方法が使用されてもよい。
【０１００】
（２）パルスが所属しているトラックの状態に応じて、トラックインデックスが設定される。例えば、図６に示されているように、図５の重ね合わせから得られた３つの位置にある６パルスは、異なるトラック分布状態を表し、対応する状態をそれぞれ指定するために異なるトラックインデックスが使用されてもよい。図６における「０」はトラック０のパルスに対応し、「×」はトラック１のパルスに対応する。
【０１０１】
（３）単独のトラックに関するものでありかつパルスを重ね合わせることで得られる分布インデックスと、パルスが所属するトラックを指定するトラックインデックスとが一緒に組み合わせられ、最終的なコードインデックスが得られる。
【０１０２】
この具体例によるジョイント符号化も具体例１及び具体例２と同様にコードビットを節約し、更に、具体例３と組み合わせて使用することでコードビットを更に節約してもよい。
【０１０３】
具体例５：パルス復号化方法。この具体例の復号化方法は具体例１の符号化方法に従って得られたコードインデックスを復号化又はデコードし、復号化方法は、符号化方法の逆プロセスであり、図７に示すように以下のステップを含む：
【０１０４】
Ｄ１：コードインデックスIndを取得し、そのコードインデックスから第１のインデックスI1を抽出し、第１のコードインデックスI1に応じて、パルスを有する位置であってＴ個のトラックの各トラックにある位置の数{N0,N1,...,NT-1}を決定する。
【０１０５】
Indから各インデックスの情報を抽出する処理は、符号化の際に複数のインデックスをIndに合成するのと逆の手順によって実行されてよい。例えば、各インデックスが固定的なフィールドに別々に保存されていた場合、各インデックスは直接的に抽出されてよい。
【０１０６】
I1を初期値として使用して他のインデックスを重ね合わせる具体例１による構造をIndが使用していた場合、先ずI1が抽出され、I1に対応する{N0,N1,...,NT-1}の組み合わせに従って各トラックのIndex(t)がIndから分離される。この場合、I1はIndの独立した値の範囲に対応するので、デコードする側は、幾つかの一群の独立した値の範囲の中でIndが所属している値の範囲を判定し、かつIndが所属している値の範囲に対応する初期値に従って第１のインデックスI1を決定する。
【０１０７】
第１のインデックスI1に対応する１でないNt値を有するトラックが存在する状況の場合、明らかに、そのトラックについて、I1はNt値の組み合わせを決定し、更に抽出された追加的なインデックスIftにより実際のNt値が決定され、この場合、分離されたIndex(t)はIftの情報を含んでいる。
【０１０８】
Ｄ２：各トラックの第２のインデックスI2t及び各トラックの第３のインデックスI3tをコードインデックスIndから抽出する。
【０１０９】
I1と同様に、I2t及びI3tの抽出も、Index(NN)への合成と逆の手順に従って実行され、独立した配置について抽出が直接的に行われてもよい。合成の後に重ね合わせが行われる具体例１の符号化方法がI2t及びI3tについて使用されていた場合、I2t、I3t、Ift(含まれていた場合)及びIst(含まれていた場合)はIndex(t)から分離され、合成プロセスに応じて逆の手順が実行される。
【０１１０】
例えば、Ift及びIstが含まれていない場合、I2t=Index(t)％Wt(Nt)及びI3t=Int[Index(t)/Wt(Nt)]であり、ここで％は剰余を求めることを表し、Intは端数処理又は丸める処理を表す。Iftが含まれている場合、I1を決定するのと同様に、Index(t)が所属する値の範囲に対応する初期値に従って追加的なインデックスIftが決定され、Iftが分離された後、決定されたNt値に従ってI2t、I3t及びIst(含まれていた場合)が更に抽出される。
【０１１１】
Ｄ３：各トラックについて、第２のインデックスI2tに従って、パルスを有する位置の数の下で、トラックの中でパルスを有する位置の分布を決定する。パルスを有する位置の分布は第１のインデックスI1及びIft(含まれていた場合)に対応する。
【０１１２】
I2tをデコードする場合、I2tをエンコードするのと逆の処理が使用される。エンコードの際にI2tがある計算式を用いて取得されている場合、デコードの際に同じ計算式を用いることで逆の処理が実行される。エンコードの際にI2tが問合せの関係(マッピングテーブル)を用いることで取得されている場合、デコードの際に同じ対応関係が使用される。
【０１１３】
Ｄ４：各トラックについて、第３のインデックスI3tに従って、パルスを有する位置各々におけるパルス数を決定する。
【０１１４】
Ｄ５：各トラックについて、トラックの中でパルスを有する位置の分布Pt(Nt)及びパルスを有する位置各々におけるパルス数SUt(Nt)に従って、トラックについてのパルスシーケンスを再構築する。
【０１１５】
パルスが極性を有する場合において、各トラックのパルスシーケンスが再構築されると、各々の極性インデックスst(n)が示すパルス極性情報に従って、パルスを有する各々の位置のパルス極性の正又は負の属性が復元される。
【０１１６】
具体例６：パルス復号化方法。この具体例の復号化方法は具体例２の符号化方法により得られたコードインデックスを復号化し、復号化の手順は符号化の手順と逆の手順であり、図８に示されているように、以下のステップを含む：
【０１１７】
Ｅ１：コードインデックスIndを取得し、コードインデックスIndから各トラックの第１のインデックスI1tを抽出し、第１のインデックスI1tに応じて各トラックについてパルスを有する位置の数Ntを決定する。
【０１１８】
各トラックのパルスの総数NNtが決定される場合(異なるビットレートの条件の下では、コードインデックスのビット総数は異なり、従って、デコードする側はコードインデックスの長さ(ビット数)に応じて各トラック伸そうパルス数NNtを直接的に決定してもよい)、Index(t)の上限値Imax(t)が決定され、従って、各トラックのIndex(t)がIndから直接的に取得され、Index(t)の値の範囲に応じてI1t及び対応するNtが決定される。
【０１１９】
Ｅ２：各トラックの第２のインデックスI2t及び各トラックの第３のインデックスI3tをコードインデックスIndから抽出する。すなわち、I2t及びI3tはIndex(t)から取得され、これは具体例５のステップＤ２のように実行されてよい。パルス極性が含まれていた場合、Istが更に取得される。
【０１２０】
Ｅ３：各トラックについて、第２のインデックスI2tに従って、パルスを有する位置の数の下で、トラックの中でパルスを有する位置の分布を決定し、パルスを有する位置の数は第１のインデックスI1tに対応する。
【０１２１】
Ｅ４：各トラックについて、第３のインデックスI3tに従って、パルスを有する位置各々におけるパルス数を決定する。
【０１２２】
Ｅ５：各トラックについて、トラックの中でパルスを有する位置の分布Pt(Nt)及びパルスを有する位置各々におけるパルス数SUt(Nt)に従って、トラックについてのパルスシーケンスを再構築する。
【０１２３】
ステップＥ３ないしＥ５は具体例５におけるステップＤ３ないしＤ５と同様に実行されてもよい。
【０１２４】
具体例７：パルス復号化方法。この具体例の復号化方法は、具体例３の符号化方法に対応し、コードインデックスを取得するために具体例３の可変長符号化によるコードストリームを復号化し、本方法は図９に示されているように以下のステップを有する：
【０１２５】
Ｆ１：符号化されているコードストリームからコードビットを抽出する。この数は第１の数である。
【０１２６】
Ｆ２：第１の数である復号化されたコードビット値が調整閾値THRよりも小さかった場合、本方法はステップＦ３に進み、そうでなかった場合はステップＦ４に進む。
【０１２７】
Ｆ３：第１の数であるデコードされたビット値をコードインデックスIndとして使用する。
【０１２８】
Ｆ４：そうでなかった場合、抽出されるコードビット数を第２の数まで増やし、コードビットの復号化された値からオフセット値THR0を減算することで得られた値(第２の数)をコードインデックスIndとして使用する。
【０１２９】
この具体例の復号化方法によれば、符号化されているコードストリームからコードインデックスIndが取得された後、コードインデックスIndは、具体例５又は具体例６の復号化方法に従って更に復号化される。
【０１３０】
具体例８：パルス符号化装置又はパルスエンコーダ。この具体例のエンコーダは具体例１の符号化方法を実行するのに使用されてもよく、図１０に示されているように、以下の要素を含む：
【０１３１】
パルス統計情報処理部101は、Ｔ個のトラックにありかつ符号化される必要のあるパルスを取得するように形成されており、Ｔは２以上の整数であり；及び各トラックにありかつ符号化される必要のあるパルスについての統計情報を、位置に応じて別々に収集し、各トラックの中でパルスを有する位置の数Ntと、トラックの中でパルスを有する位置の分布と、パルスを有する各々の位置でのパルス数とを取得し、添え字のtはt番目のトラックを表し、t∈[0,T-1]である。
【０１３２】
インデックス演算部102は以下の要素を含む：
第１のインデックス部1021は、各トラックの中でパルスを有する位置の数{N0,N1,...,NT-1}に従って、第１のインデックスI1を出力するように形成されており、I1は、パルスを有する位置の数の下で、各トラックの中でパルスを有する位置についての全ての可能な分布状態に対応し、パルスを有する位置の数はそれによって表現される。
【０１３３】
第２のインデックス部1022は、各トラックの中でパルスを有する位置の分布に従って、各トラックの第２のインデックスI2tを別々に出力するように形成されており、I2tは、I1に対応する全ての可能な分布状態の中で、対応するトラックの中でパルスを有する現在の位置の分布に対応する分布状態を示す。
【０１３４】
第３のインデックス部1023は、各トラックの中でパルスを有する位置各々におけるパルス数に従って、各トラックの第３のインデックスI3tを別々に出力するように形成されている。
【０１３５】
インデックス合成部103は、各トラックの第１のインデックスI1並びに第２、第３のインデックスI2t、I3tの情報を合成し、コードインデックスIndを生成する。
【０１３６】
少なくとも１つの第１のインデックスが２以上の{N0,N1,...,NT-1}の組み合わせに対応する場合、インデックス演算部102は追加的なインデックス部1024(図１０では破線枠のブロックで示されている)を更に有し、追加的なインデックス部1024は、第１のインデックスに対応する１でないNtの値を有するトラックについて、トラックの中でパルスを有する現在の位置の数に対応する追加的なインデックスIftを決定し、追加的なインデックスIftは、パルスを有する位置の数の下で、トラックの中でパルスを有する位置についての可能な全ての分布状態に対応し、パルスを有する位置の数はそれによって表現される。この場合、インデックス合成部103は追加的なインデックスIftの情報をコードインデックスIndに組み込む。
【０１３７】
更に、具体例３の方法を使用することでコードインデックスについて可変長符号化が実行される場合、本具体例のパルスエンコーダ10はコードビット調整部104(図１０では破線枠のブロックで示されている)を更に有し、コードビット調整部104は、インデックス合成部103がコードインデックスを生成した後にコードインデックスIndを調整閾値THRと比較するように形成されている。この場合において、
THR≦2Bmax-Imax(T)
であり、Imax(T)はIndの上限値を表し、Bmaxはコードインデックスを符号化するのに使用されるビット数の上限値を表し、
IndがTHRより小さかった場合、第１の数であるコードビットはIndを符号化するために使用され；そうでなかった場合、第２の数であるコードビットはIndにオフセット値THR0を加えたものを符号化するために使用され、ただし、THR≦THR0≦2Bmax-Imax(T)であり、使用される第１の数は第２の数より小さく、第２の数はBmax以下であり、第１の数及び第２の数は共に正の整数である。
【０１３８】
具体例９：パルス復号化装置又はパルスデコーダ20。本具体例のデコーダは具体例５の復号化方法を実行するために使用されてよく、図１１に示されているように以下の要素を含む：
【０１３９】
第１の抽出部201は、コードインデックスIndを取得し、コードインデックスIndから第１のインデックスI1を抽出し、第１のインデックスに従って、Ｔ個のトラックの各トラックの中でパルスを有する位置の数{N0,N1,...,NT-1}を決定するように形成されている。
【０１４０】
第２の抽出部202は、各トラックの第２のインデックスI2t及び各トラックの第３のインデックスI3tをコードインデックスIndから抽出するように形成されている。
【０１４１】
第１の復号化部203は、各トラックについて、第２のインデックスI2tに従って、パルスを有する位置の数の下で、トラックの中でパルスを有する位置の分布を決定するように形成されており、パルスを有する位置の数は第１のインデックスに対応する。
【０１４２】
第２の復号化部204は、各トラックについて、第３のインデックスI3tに従って、パルスを有する位置各々についてのパルス数を決定するように形成されている。
【０１４３】
パルス再構築部205は、各トラックについて、トラックの中でパルスを有する位置の分布とパルスを有する位置各々におけるパルス数とに従って、トラックについてのパルスシーケンスを再構築するように形成されている。
【０１４４】
少なくとも１つの第１のインデックスが２つ以上の{N0,N1,...,NT-1}の組み合わせに対応する場合、本具体例のデコーダは次の要素を更に含む：
【０１４５】
追加的な抽出部206(図１１において破線枠のブロックで示されている)は、第１のインデックスに対応する１でないNt値のトラックについて、トラックの中でパルスを有する現在の位置の数に対応する追加的なインデックスIftを抽出するように形成されており、追加的なインデックスIftは、パルスを有する位置の数の下で、トラックの中でパルスを有する位置についての可能な全ての分布状態に対応し、パルスを有する位置の数はそれによって表現される。この場合、第２の抽出部202は、対応するトラックの中でパルスを有する現在の位置の数に応じて、トラックの第２のインデックスI2t及びトラックの第３のインデックスI3tを抽出し、対応するトラックの中でパルスを有する現在の位置の数は追加的な抽出部206により抽出された追加的なインデックスIftによって決定される。
【０１４６】
更に、具体例７の方法を使用することで可変長符号化によるコードストリームについて復号化が行われる場合、本具体例のパルスデコーダ20は復号化ビット調整部207(図１１において破線枠のブロックで示されている)を更に有し、復号化ビット調整部207は、符号化されているコードストリームから、第１の数であるコードビットを抽出し；第１の数であるコードビットの復号後の値が調整閾値THRより小さかった場合、第１の数である符号ビットの復号後の値を、出力するコードインデックスIndとして使用し；そうでなかった場合、抽出される符号ビットの数を第２の数まで増やし、第２の数であるコードビットの復号後の値からオフセット値THR0を減算することで得られた値を、出力するコードインデックスIndとして使用する。
【０１４７】
上記の実施の形態による方法のステップの全部又は一部が関連するハードウェアの動作を制御するプログラムにより実現されてよいことを、当業者は認めるであろう。プログラムはコンピュータで読み取ることが可能な記憶媒体に保存され、記憶媒体はリードオンリメモリ、ランダムアクセスメモリ、磁気ディスク又は光ディスク等を含んでよい。
【０１４８】
以上、本発明の実施の形態によるパルスの符号化及び復号化の方法並びにパルスコーデックが詳細に説明された。本発明の原理及び実現手段は具体的な実施の形態により説明されている。上記の実施の形態に関する説明は本発明による方法及び核心的なアイディアの理解を促すように行われているに過ぎない。本発明のアイディアによる具体的な実現手段及び応用例に対して、当業者は変形を施すことができる。従って本明細書は本発明を限定するように解釈してはならない。
【図１】
0006042949.tif 000016
【図２】
0006042949.tif 000017
【図３】
0006042949.tif 000018
【図４】
0006042949.tif 000019
【図５】
0006042949.tif 000020
【図６】
0006042949.tif 000021
【図７】
0006042949.tif 000022
【図８】
0006042949.tif 000023
【図９】
0006042949.tif 000024
【図１０】
0006042949.tif 000025
【図１１】
0006042949.tif 000026