JP2003216185A - 音声復号化器においてスペクトル符号語を効率的に再順序付けする方法 - Google Patents

音声復号化器においてスペクトル符号語を効率的に再順序付けする方法

Info

Publication number
JP2003216185A
JP2003216185A JP2002010223A JP2002010223A JP2003216185A JP 2003216185 A JP2003216185 A JP 2003216185A JP 2002010223 A JP2002010223 A JP 2002010223A JP 2002010223 A JP2002010223 A JP 2002010223A JP 2003216185 A JP2003216185 A JP 2003216185A
Authority
JP
Japan
Prior art keywords
codeword
codewords
decoding
segment
reordering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002010223A
Other languages
English (en)
Inventor
Ruen Chan Wei
ルエン・チャン ウェイ
Hon Neo Sua
ホン・ネオ スア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002010223A priority Critical patent/JP2003216185A/ja
Publication of JP2003216185A publication Critical patent/JP2003216185A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 MPEG−4符号化規格において、スペクト
ル符号語を再順序付けする方法が提案された。しかしこ
の方法は、符号語を復号するために全ての可能な組み合
わせを試すので最適でないことが明白である。 【解決手段】 本発明はこの問題に取組み、ビットスト
リームから関連する情報を読み出すことで処理を最適化
する方法を提案する。復号に用いるビットの総数と、フ
レーム内に復号されずに残っている符号語の数を用い
て、スペクトル符号語を再順序付けし、復号する方法を
提案する。この方法は、セット、bitCount、numCodewor
dの数を初期化し、用いるビット数と、フレーム内に残
っている符号語数を保持しつつ、優先符号語(PCW)
の復号を再順序付けし、用いるビット数と、フレーム内
に残っている符号語数を保持しながら、非優先符号語
(非PCW)の再順序付けおよび復号を行うステップを
備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンテンツが、雑
音の多いチャネルを介した伝送のような雑音にさらされ
る場合の、音声データの復号に有用である。ISO/IEC JT
C1/SC29/WG11 MPEG-4規格のバージョン2で定義されて
いるHuffman Codeword Reordering(ハフマン符号語再
順序付け)を用いた、音声データのスペクトル符号語の
復号処理において特に有益である。
【0002】
【従来の技術】雑音を含んだ媒質を介してデータが伝送
される環境では、そのコンテンツにエラーが生じやす
い。また、圧縮した音声を伝送する場合、復号および再
生時に間違った結果や雑音を生じやすい。この問題に取
り組むために、ISO/IEC JTC1/SC29/WG11 MPEG-4規格
は、数種類のエラー抵抗ツールの使用を提案する。その
1つはHuffman Codeword Reordering(ハフマン符号語
再順序付け)として知られている。これは、エネルギの
高い符号語に高い優先順位を付け、他の符号語の状態に
無関係に復号できる形で、スペクトル符号語を優先順位
付け、再順序付けするものである。これは、エラーが発
生した場合に雑音を最小に抑える。
【0003】まず、存在するセグメントの数と、セグメ
ントの幅を計算しておく必要がある。これにより、ビッ
トストリームのどこが各セグメントの始まりで、終わり
であるかがわかる。セグメントは、復号目的で従来技術
または本発明によってそのデータが全く読み出されない
場合には満杯であると考慮される。全てのデータが復号
目的で1度読み出された場合には、空であると考慮され
る。
【0004】図1は、従来技術におけるスペクトル符号
語の再順序付けに使用する全体フローチャートを示す。
従来技術によるスペクトル再順序付けの全体フローチャ
ートは、3つの主要部分に分割することができる。すな
わち、初期化、優先符号語(PCW; priority codewor
d)の再順序付け、非優先符号語(non-PCW)の再順序付
けである。まず101において、従来技術は、存在する
セットの数を求める。これは、既に決定されている存在
する符号語の数に基づいて計算される。従来技術は、符
号語の最初のセットの符号化を試みた後、0(優先符号
語(PCW)としても公知である)を設定する(10
2)。従来技術はPCWの復号に成功すると、残りの符
号語、または非優先符号語(非PCW)の復号を試み
る。これを(103、104)に示す。
【0005】図2は、従来技術におけるPCWを再順序
付けするための詳細なフローチャートを示す。優先符号
語を再順序付けする処理は、優先符号語が各セグメント
の開始部分から復号されるループにおいて行われる。従
来技術は、第1の符号語(符号語0(201))から開
始し、202、203、204、205に示すように、
各セグメントの開始部分から全てのPCWの復号を試み
るループを実行する。いずれかのPCWの復号に失敗し
た場合には、206に示すように、エラーメッセージが
表示される。
【0006】図3に示すように、全てのPCWの復号に
成功したら、非PCWの復号を試みる。従来技術の復号
化器にて非PCWを再順序付けする処理は、ネスティン
グした数個のループで構成されており、非PCWのセッ
トを復号するために全ての可能な組み合わせを試みる。
301、302、304に示すように、第0セットはP
CWであるため、第1セットから処理を開始し、全ての
セットなくなるまで処理を続ける。303に示すよう
に、各セットの後に、書き込み方向をトグルする。
【0007】非PCWのセットは1つずつ連続的に復号
され、また、セットの復号処理には数回の試行が必要で
あるかもしれない。従来技術は、1回目の試行におい
て、第1セグメントからセット内の第1符号語の復号、
第2セグメントから第2符号語の復号を試みる。2回目
の試行において、第2セグメントから第1符号語の復号
を試み、第3セグメントから第2符号語の復号を試み
る。最終の符号語は、2回目の試行において第1セグメ
ントから復号される。全ての試行の数が、存在するセグ
メントの数と等しくなるまでループを繰り返す。これを
図3の305、306、307、309に示す。
【0008】従来の技術では、各試行中には、308、
309、311に示すように、ループを用いてセット内
の全ての符号語の復号を試みる。310に示すように、
各反復において、復号する符号語と、どのセグメントか
らこれを復号するべきかを決定する。codewordBaseと試
行カウンタを使用して、符号語とセグメントの数を以下
のように計算する。 segment = (trail + codewordBase) % Seg; codeword = codewordBase+ set * Seg; ここでは、「segment」は復号化するセグメント、「Se
g」は存在するセグメントの総数、「codeword」は復号
する符号語への指標、「set」は現在のセット数であ
る。
【0009】例えば、図14の1404では、試行の最
初の反復において、codewordBaseと試行の両方が0であ
る。従って、セグメントと符号語の数は以下のように計
算される。 segment = (trial + codewordBase) % Seg; = (0 + 0) % 6; = 0; codeword = codewordBase + set * Seg; = 0 + 2 * 6; = 12; これは、従来の技術では、1回目の試行の最初の反復に
おいて、セグメント0から符号語12に復号しようとす
ることを意味する。
【0010】符号語とセグメントの数を求めた後、その
符号語が既に復号されているかどうかを調べる(31
2)。復号されていない場合には、セグメントが空出な
いことを確認することにより、これを復号する(31
3)。次に、314に示すように、この符号語の復号を
試みる。
【0011】図14、図15は、従来技術で提案された
スペクトル符号語の再順序付けの例を示す。この例は、
従来技術を用いてスペクトル符号語を再順序付けする方
法を示す。図13は、再順序付けおよび分類後に予想さ
れる結果を示す。優先順位に基づいて符号語を分類する
ために、事前分類処理が実行される。符号語の優先順位
は、その符号語のスペクトルが表す周波数と同様に、使
用するコードブックに基づいて計算される。この処理を
実行した結果、優先符号語(PCW)と非優先符号語
(非PCW)を含んだいくつかのセットができる。セッ
ト内の符号語はPCWのみである。図13には3つのセ
ット、つまりセット0(1301)、セット1(130
2)、セット2(1303)が存在することに留意され
たい。3セットの内、セット0のみが優先符号語(PC
W)を含んでいる。残りの2セットは、非優先符号語
(non−PCW; 非PCW)を含んでいる。従来技術
は、図14の1401に示すように、各セグメントの開
始部分から全てのPCWを復号することで開始する。そ
の結果、1402に示すように、後方への読み出し方向
をトグルし、セット1を復号する。セット1は1回の試
行で復号することができるが、1403に示すように、
従来技術は残りの試行でも復号を続ける。これは明らか
に冗長なステップである。
【0012】最後に、前方への読み出し方向をトグル
し、セット2の復号を試みる。最初の試行において、1
404に示すように、符号語12をセグメント0から、
符号語13をセグメント1から、符号語14をセグメン
ト2から復号しようと試みる。符号語13、14の1部
分のみ(符号語13a、14a)がセグメント2から読
み出され、後の使用に備えて記憶される。
【0013】2回目の試行(1405)では、従来の技
術は、セグメント1、2、3からそれぞれ符号語12、
13、14の復号を試みる。符号語13a、14aは、
セグメント2、3からのコンテンツとそれぞれ組み合わ
され、符号語13、14を形成する。3つのセグメント
は全て空であるため、復号される符号語はない。
【0014】次に、セグメント2、3、4からそれぞれ
符号語12、13、14の復号を試みる3回目の試行へ
進む。符号語13a、14aが、セグメント3、4のコ
ンテンツとそれぞれ組み合わせられて、符号語13、1
4を形成する。セグメント2、3は空であるため、従来
技術は、1406に示すように、符号語14のみを復号
する。2回目の試行から、セグメント2、3が満杯であ
ることは既にわかっていることに留意されたい。そのた
め、この2つのセグメントから符号語12、13を復号
しようとすることは明らかに不要である。
【0015】ここで、まだ復号されずに残っているのは
符号語12、13のみである。4回目の試行で、セグメ
ント3、4からそれぞれ符号語12、13を復号しよう
と試みる。1407に示すように、両セグメントは空で
あるため、復号される符号語はない。次に5回目の試行
で、1408に示すように、セグメント4、5から2つ
の符号語の復号を試みる。符号語13aをセグメント5
から読み取ったコンテンツと組み合わせることで、符号
語13が復号された。
【0016】最終試行にて、セグメント5から符号語1
2の復号を試み、成功した。これを1409に示す。1
410、1411、1412には、最後に復号した符号
語を示す。これらは、図13に示した符号語の3セット
と同じである。
【0017】
【発明が解決しようとする課題】解決するべき問題がい
くつかある。第1に、従来技術は、各非優先符号語につ
いてSeg回試行を行う。ここで、Segは存在するセ
グメントの数である。復号化器では、このアルゴリズム
は、1つのセグメントからの各非優先符号語について復
号をSeg回試みる。これは、1回の試みのみでセット
内の全ての符号語を復号できる場合にも該当する。
【0018】第2に、従来技術は、符号語の復号に使用
するビットの数を調べない。符号語にエラーが生じ、正
確に復号できない場合、残りの復号されていない非優先
符号語にもエラーが伝播してしまう可能性がある。これ
により、実際に必要である以上の数のビットを使用する
ことになってしまう。これが起こると、復号化器で、符
号語を復号するためのビットが不足することになりかね
ない。従来技術は使用するビットの総数を保持していな
いため、ビットの総数がフレームのサイズと等しくなっ
ても(すなわち、フレームが空でも)復号の試みを続け
る。これは明らかに冗長である。
【0019】第3に、従来技術は、非優先符号語を再順
序付けする際に、隣接した符号語からの情報を利用しな
い。別の符号語を復号するのに必要なセグメントの数の
ような情報は記憶されないか、符号語を復号する際に従
来技術によって使用される。このような情報は、不要な
チェックを防止するために使用できる旨を後に示す。
【0020】
【課題を解決するための手段】この問題を解決する手段
は、復号化器にて非優先符号語を復号する順序を再定義
して、冗長さを減少させる。これは、コード内の不要な
チェックを防止するために、ビットストリームから収集
した情報と組み合わせられる。そのため、各非優先符号
語についてSeg回試みる代わりに、様々な情報を使用
して、セグメントから復号を試みることがまず必要であ
るかを決定する。この方法によれば、非優先符号語を復
号する際に、いくつかのセグメントを省くことが可能で
ある。
【0021】発明の進歩性を有する重要点は、新たなア
ルゴリズムを有していることである。新たなアルゴリズ
ムは、各セグメントからの非優先符号語の復号を試みな
いが、ビットストリームから収集した情報に基づいて、
特定のセグメントについてのみ復号を試みる。さらに、
必要な場合にのみ、さらに試行を実行する。従って本発
明は、セグメントからスペクトルデータを復号する場合
の冗長性を減少させる方法である。
【0022】本発明のある局面によれば、復号に使用す
るビット総数と、フレーム内に符号化のために残ってい
る符号語の数とを用いて、スペクトル符号語を再順序付
けおよび復号する方法を提供する。この方法は、1a)
セット、bitCount、numCodewordの数を初期化するステッ
プと、1b)使用するビットの数と、前記フレーム内に
符号化のために残っている符号語の数とを保持しなが
ら、優先符号語(PCW)の復号を再順序付けするステ
ップと、1c)使用するビットの数と、前記フレーム内
に符号化のために残っている符号語の数とを保持しなが
ら、非優先符号語(非PCW)の再順序付けおよび復号
を行うステップとを備える。
【0023】本発明の別の局面によれば、前記PCWの
前記再順序付けおよび復号は、2a)各セグメントの開
始部分から前記PCWを復号するステップと、2b)前
記bitCountカウンタに前記PCWの長さを追加して、使
用する前記ビットの数を保持するステップと、2c)前
記PCWを復号した後にnumCodewordsを減少させて、前
記フレーム内に復号化のために残っている符号語の数を
保持するステップとを備えていてもよい。
【0024】本発明のさらに別の局面によれば、前記非
PCWの前記再順序付けおよび復号は、3a)各セグメ
ントから前記非PCWの復号を試みるステップと、3
b)前記非PCWの長さまたは部分的長さを、前記bitC
ountカウンタに追加して、使用する前記ビットの数を保
持するステップと、3c)前記非PCWの復号後にnumC
odewordsを減少させて、前記フレーム内に残っている前
記符号語の数を保持するステップと、3d)ステップ3
b)、3c)からの前記numCodewordsと前記bitCountと
を用いて、エラーと、さらなる試行の必要性とを調べる
ステップとを備えていてもよい。
【0025】本発明の別の局面によれば、非優先符号語
を効率的に再順序付けし、復号する方法が提供される。
この方法は、4a)第2セットから開始して、ループ内
のセット内を進むステップと、4b)前記セットの各々
において、前方と後方の間で、読み出し方向をトグルす
るステップと、4c)前記セット内の符号語の数を計算
するステップと、4d)前記セットに関連付けられてい
る符号語の範囲を減少させるステップと、4f)前記セ
ットの値に従って、全てのセグメントについて1次符号
語を初期化するステップと、4g)前記セット内の第1
符号語から前記セットの最終符号語までのループにおい
て、異なるセグメントから、前記符号語を再順序付け
し、復号するステップとを備えていてもよい。
【0026】本発明の別の局面によれば、前記セット内
に含まれる前記符号語の数が、前記セグメントの数と、
前記フレーム内の前記符号語の総数に従って計算されて
もよい。
【0027】本発明の別の局面によれば、前記セット内
の前記符号語の範囲が、算出した前記符号語の数および
前記セットの値に基づいて決定されてもよい。
【0028】本発明のある局面によれば、前記セット内
に含まれる前記符号語の全てが、前記符号語の数と存在
するセグメントの総数とに従って初期化される前記curr
entSegmentポインタに関連付けられていてもよい。
【0029】本発明のある局面によれば、前記セグメン
トの全てが、計算された第1の前記currentSegment値に
従って初期設定される前記1次符号語に関連付けられて
いてもよい。
【0030】本発明の別の局面によれば、前記符号語の
前記再順序付けおよび復号は、9a)復号のために残っ
ている符号語の数を決定するステップと、9b)前記再
順序付けおよび復号する符号語を決定するステップと、
9c)前記符号語を復号する前記セグメントを探すステ
ップと、9d)前記符号語を前記セグメント内に復号す
るステップとを備えていてもよい。
【0031】本発明のさらに別の局面によれば、前記符
号語が選択されて、再順序付けおよび復号され、前記符
号語を決定するステップは、10a)復号されていない
前記符号語を探すステップと、10b)前記復号される
符号語を含んだ前記セグメントに対して、前記1次符号
語を探すステップと、10c)前記符号語が、現時点で
再順序付けおよび復号に適しているかを決定するステッ
プとを備えていてもよい。
【0032】本発明のさらに別の局面によれば、前記セ
グメントが選択され、前記セグメントを探すステップ
は、a)前記セグメントが空か否かを決定するステップ
と、b)前記セグメントが空である場合に、復号を行う
適当なセグメントを探すステップとを備えていてもよ
い。
【0033】本発明のさらに別の局面は、前記セグメン
トの前記1次符号語の値と、前記1次符号語が既に復号
されているか否かとに基づいて、前記符号語が適切また
は不適切であると決定してもよい。
【0034】本発明のさらに別の局面は、前記セグメン
トの前記1次符号語の状態と、前記1次符号語の前記cu
rrentSegmenポインタの状態とに基づいて、適切なセグ
メントが選択されてもよい。
【0035】本発明のある局面によれば、音声復号化器
における効率的なスペクトル符号語の再順序付け方法
は、14e)存在するセットの数とbitCountとを初期化
するステップと、14f)使用するビットの数を保持し
ながら、優先符号語(PCW)を再順序付けおよび復号
するステップと、14g)使用するビットの数を保持し
ながら、非優先符号語(非PCW)を再順序付けおよび
復号するステップとを備えていてもよい。
【0036】
【発明の実施の形態】様々なセクションからスペクトル
符号語を再順序付けする工程は非常に長い。従来技術か
ら理解されるように、ビットストリームからスペクトル
データのセットを復号するためには、多くの試行錯誤を
繰り返す必要がある。そのため、本発明は、復号化器に
おいてスペクトルデータを再順序付けする際に冗長性を
減少させることで、処理速度を上げるべく設計されてい
る。
【0037】ケース1:第1のアプローチは、フレーム
内にまだ復号されずに残っている符号語の数と、使用す
るビット数とを常に保持することである。図4は、本発
明によるケース1の全体フローチャートを示す。本発明
のケース1によるスペクトル再順序付けの全体フローチ
ャートは、使用するビット総数(bitCount)と、復号の
ために残される符号語の数(numCodeword)を初期化す
る処理が追加される点を除いて、図1と非常に類似して
いる。しかし、401に示すように、存在するセット数
を計算した後に、bitCountカウンタとnumCodewordカウ
ンタを初期化する(402)。bitCountカウンタは、使
用するビット総数を保持するために用いられる。numCod
ewordカウンタは、復号のために残される符号語の数を
保持するカウントダウンカウンタである。これが0にな
ると、復号する符号語は残っていない。
【0038】その後、403に示すように、優先符号語
(PCW)の復号を試みる。これが成功すると、40
4、405に示すように非優先符号語(非PCW)の復
号へと進む。
【0039】図5は、本発明のケース1におけるPCW
の再順序付けのフローチャートを示す。本発明(ケース
1)におけるPCWの再順序付けのフローチャートはま
た、使用するビット総数と復号のために残される符号語
の数とを保持するという意味で、従来の技術と異なる。
図2に示すように、これは従来技術がPCWを再順序付
けする方法と非常に類似している点に留意されたい。従
来技術と同様に本発明は、501、502、503、5
05、506に示すように、各セグメントの始めから全
てのPCWの復号を試みるループを含む。しかし本発明
は、PCWの復号後に、504に示すようにPCWの長
さをこれに追加することで、bitCountカウンタ
を更新する。506、507に示すように、PCWの復
号に失敗した場合にはエラーメッセージを表示する。
【0040】全てのPCWの復号が成功した後、フレー
ムからの非PCWの復号へと進む。図6は、本発明のケ
ース1における非PCWの復号のフローチャートを示
す。本発明(ケース1)における非PCWの再順序付け
のフローチャートは、誤った復号があるかどうかを決定
するため、そして冗長性を減少させるために、ビット総
数と残った符号語の数とを使用する。ここでも、このア
プローチと従来で使用されるアプローチとの間に類似性
が見られる。基本的に本発明は、601、602、60
4に示すように、セット1から開始して(セット0はP
CWであるため)、全てのセットの復号を試みる。各セ
ットの後に読み出し方向をトグルする(603)。
【0041】次に、従来技術の同様の非PCWを復号す
るアプローチを用いて、試行の数と存在するセグメント
の数が等しくなるまでループを実行する。これを図6の
605、606、607に示す。608、609、61
0に示すように、本発明は、各試行中に別のループを使
用して、そのセット内の全ての符号語の復号を試みる。
各反復では、本発明は、611に示すように、復号する
ための符号語を決定し、どのセグメントからこれを復号
するべきかを決定する。611の処理は、図3の310
の処理と全く同じである。符号語とセグメントの数を次
式の通り計算する。 segment = (trail + codewordBase) % Seg; codeword = codewordBase+ set * Seg ここでは、「segment」は復号を行うセグメント、「Se
g」は存在するセグメントの総数、「codeword」は復号する
符号語への指標、「set」は現在のセット数である。
【0042】次に本発明は、611で決定された符号語
が既に復号されているか否かを知るためにチェックを行
う(612)。まだ復号されておらず、そのセグメント
が空でない場合、本発明は613、614においてその
復号を試みる。
【0043】ここまで、本発明における非PCWの復号
処理は従来技術と同じである。しかし、本発明では各非
PCWを復号するために用いるビット数も保持する。本
発明は、非PCWの復号を試みた後、非PCWの長さ
(または部分長)をbitCountに追加する(617)。復
号が成功した場合、numCodewordカウンタを1だけ減少
させる。bitCountがフレームの総データサイズに達する
と、615、616に示すように、本発明ではチェック
を行い、復号されていない符号語がそれ以上ないかどう
かを確認する。618に示すように、ある場合にはエラ
ーメッセージを表示する。
【0044】復号に使用するビット総数を保持する理由
は、bitCountがフレームの総データサイズに達すると、
フレームが空になるので、まだ復号されていない符号語
があったとしても、それ以上試行を繰り返す必要がない
ためである。また本発明は、復号するために残された符
号語の数を保持することで、フレームが空で、numC
odewordがゼロでない場合に、エラーがあること
を知る。
【0045】ケース2:スペクトル符号語再順序付けの
処理を最適化するための第2アプローチは、非優先符号
語(非PCW)を復号する順序を再定義することであ
る。セット内の全ての符号語を一度に復号しようとする
のに代えて、本発明は、次の復号を開始する前に、前の
復号を可能な限り終わらせようと試みる。このアプロー
チが合理的なのは、符号語がセグメントnからn+3ま
でにわたる場合、セグメントnからn+2は空であると
できることである。
【0046】このアプローチに対する全体のフローチャ
ートと、優先符号語(PCW)の再順序付けのフローチ
ャートは、図1、図2に示した従来技術のものと同一で
ある。従来技術と同様に本発明のケース2は、フレーム
内に存在するセットの数を決定する(101)。その
後、102に示すように、全てのPCWの復号を試み
る。これが成功した場合、非PCWの復号を試みる(1
03、104)。
【0047】PCWの復号方法もまた、従来技術が提案
する方法と同じく、201、202、203、204、
205に示すように、ループを用いて各セグメントの開
始部分から全てのPCWを復号する。いずれかのPCW
の復号に失敗した場合、本発明はエラーメッセージを表
示する(206)。
【0048】全てのPCWの復号に成功すると、本発明
は非PCWの復号を試みる。図7は、本発明のケース2
における非PCWの復号のフローチャートを示す。本発
明(ケース2)は、時間消費を抑えた、非PCWを再順
序付けする方法を用いる。本発明は、(セット0はPC
Wしか含んでいないため)セット1から開始し(70
1)、ループを実行して、1度に1セットずつ非PCW
を復号する。これは、702、707、709に示す。
セット毎の復号を終了した後に、703に示すように、
本発明は読み出し方向をトグルする。
【0049】次に、704に示すように、セット内の符
号語の数と、そのセット内の符号語の範囲を計算する。
本発明は、これらの情報を用いて非PCWを再順序付け
する処理を最適化する。
【0050】1セット内の符号語の数は以下のように計
算される。
【0051】 if(n==last_set) //これが現在のフレームにおける最後のセットの場 合 { CWn = totalCodeword % Seg; if (CWn == 0) CWn = Seg; } else { CWn = Segn; } ここで、nは(0から始まる)セットの数、CWnは、
セットn内の符号語の数、Segはフレーム内のセグメン
トの数、totalCodewordはフレーム内の符号語の総数で
ある。
【0052】従って、セットnに関連した符号語の数の
範囲は次のように計算できる。
【0053】 セットn内の最初の符号語、firstCwn = n * Segn セットn内の最後の符号語、lastCwn = firstCwn + CWn - 1 例えば、図13の1302に示すセット1について、以
下のように計算する。
【0054】 CW1 = Seg = 6 firstCw1= 1 * Seg = 6 lastCw1 = firstCw1 + CW1 1 = 6 + 6 1 = 11 従って、図13、1302に示すセット1は、符号語6
〜符号語11に関連した符号語を6個含んでいる。
【0055】次に、本発明はnumCodewordを、そのセッ
ト内の符号語の総数と等しくなるように初期化する。nu
mCodewordカウンタは、そのセット内に復号されずに残
っている符号語の数を表示する。このカウンタが0にな
り次第、本発明は次の符号語のセットへと進む。そのた
め本発明は、図14の1403に示すステップのよう
な、余分な試行を削除できる。
【0056】その後、本発明は、705に示すように、
各符号語についてcurrentSegmentポインタを定義する。
このポインタは、その符号語をどのセグメントから復号
するべきかを示している。currentSegmentは以下のよう
に初期化される。
【0057】Cm = m % Seg; ここで、Cは符号語mについての現在のセグメント、
mは現在の符号語数、Segはフレーム内のセグメント
の総数である。
【0058】これに加えて、本発明はさらに、各セグメ
ントについて1次符号語を定義する。この1次符号語は
セット毎に異なる。1次符号語は、セット内の符号語の
最初のcurrentSegment値であり、また、特定のセグメン
トから復号する場合、より高い優先順位が与えられる。
【0059】例えば、図13に示すセット2内の符号語
の現在のセグメントは以下の表1のように初期化され
る。
【0060】
【表1】
【0061】これは、符号語12をセグメント0に、符
号語13をセグメント1に、符号語14をセグメント2
に書き込むべきであることを示している。さらに、以下
の表2に示すようにセグメントについて1次符号語を初
期化する。
【0062】
【表2】
【0063】セット2内には3つの符号語しかないた
め、セグメント3、4、5は1次符号語を含まない。そ
こで本発明は、706、708に示すように、セット内
の第1符号語から開始するそのセグメントからの符号語
の復号を試みる。
【0064】図8は、本発明のケース2で使用した符号
語復号アルゴリズムの、より詳細なフローチャートを示
す。符号語復号アルゴリズム(ケース2)は、同セット
の隣接する符号語からの情報を用いて、符号語の再順序
付けを行う際に冗長性を減少させる。まず、復号する符
号語を決定した後で、801に示すように、その符号語
が既に復号されているか否かを調べる。既に復号されて
いる場合は、次の復号されていない符号語へと進む(8
02)。次の符号語を入手する処理を以下に示す。
【0065】 int count; if (m <= firstCw + Cm){ // 前には復号されていない符号語を調べる for(count = firstCw+ Cm + 1; count <= lastCw; count++){ if (!decoded(count)) return count; } // 前には非復号化符号語が存在しない場合は、後ろを調べる // 後方調査−より効率的 for(count = m 1; count >= firstCw; count--){ if(!decoded(count)) return count; } } else{ // m > firstCw + Cm // 後方調査 for(count = m 1; count > firstCw + Cm; count--){ if(!decoded(count)) return count; } } ここでは、mは現在の符号語、firstCwはセット内の最
初の符号語、lastCwはセット内の最終の符号語、C
符号語mについての現在のセグメントである。
【0066】その後本発明は、セグメントの1次符号語
を決定し、この1次符号語が復号されているか否かを決
定する。現在の符号語が1次符号語でない場合には、1
次符号語はまだ復号されておらず、本発明は現在の符号
語の復号を停止して、代わりに1次符号語の処理をと
る。これは、803、804、805に示すように、符
号語を復号する際に1次符号語の優先順位が高いためで
ある。
【0067】1次符号語が既に復号されているか、また
は、現在の符号語が1次符号語である場合には、本発明
は、セグメントが空でなければ、そのセグメントからの
復号を試みる。これを806、807に示す。しかし、
そのセグメントが空であったり、または、符号語を完全
に復号できない場合には(808)、810に示すよう
に、その符号語のcurrentSegmentポインタを増加させ
る。この処理は以下のように示される。
【0068】 if((P(Cm) <= lastCwn) && (C(m) != C(P(Cm)){ //1次符号語でなく、そのセグメントに対する1次符号語が存在する場合 Cm = C(P(Cm)); //currentSegment値を、1次符号語から複写する } else { // そのセグメントに対する1次符号語であり、または、 1次符号語が存在しない場合 Cm = (Cm + 1) % Seg; // 新たなセグメントの1次符号語がすでに復号されている場合 // そのcurrentSegmentポインタjを複写する if ((decoded (P(Cm) && (P(Cm) <= lastCwn)) Cm = C(P(Cm)); } ここでは、P(x)は、セグメントxの1次符号語をリ
ターンする関数であり、C(y)は、符号語yの現在の
セグメントをリターンする関数であり、lastCw nは、セ
ットn内の最終符号語であり、Cは、符号語mの現在
のセグメントであり、Segは、フレーム内のセグメント
の総数である。
【0069】この方法でcurrentSegmentポインタを設定
することにより、本発明は、実際に1次符号語から情報
を収集し、どのセグメントを省くかを決定する。1次符
号語を復号する際に空にされた、または空であるとわか
ったセグメントは、これ以上テストされることはない。
また、1次符号語は常に最初に復号されるため、この方
法はこの処理の最適化に供する。
【0070】本発明は、非PCWの復号に成功した場
合、numCodewordカウンタを1だけ減少させ、次の符号
語を復号の処理を進める。これを809、811に示
す。図から理解されるように、このアプローチは、セッ
ト内の全ての符号語が復号され次第、処理を停止する。
セット内の近隣する符号語から情報を収集することによ
り、本発明は従来技術と比較して明らかに最適である。
【0071】ケース3:スペクトル符号語の再順序付け
処理を最適化するための第3のアプローチは、ケース1
とケース2の背景にある概念を組み合わせたものであ
る。ケース3とケース1の相違点は、ケース1では、フ
レーム内のまだ復号されないまま残っている符号語の数
に対してbitCountをチェックするのに対し、ケース3で
は、セット内のまだ復号されていないまま残っている符
号語の数に対してbitCountをチェックすることである。
【0072】図9は、ケース3の本発明の復号化器でス
ペクトル符号語を再順序付けする全体フローチャートを
示す。本発明で再順序付けするスペクトルの全体のフロ
ーチャートもまた3つの主要な部分、つまり初期化、優
先符号語(PCW)の再順序付け、非優先符号語(非P
CW)の再順序付けに分割できる。図から理解されるよ
うに、このフローチャートは、ケース1の全体フローチ
ャートと非常に類似している。まず何よりも最初に、9
01に示すように、本発明は、存在する所定数の符号語
を用いてセットの数を計算する。その後、bitCountカウ
ンタを0に設定する(902)。
【0073】次に、本発明は全ての優先符号語(PC
W)を復号する(903)。これが成功すると(90
4)、905に示すように、本発明は残りの符号語(非
PCW)を復号する処理を進める。
【0074】本発明における(図10に示す)PCWを
再順序付けする処理も、復号したPCWの数を保持しな
い点を除いて、ケース1と類似している。優先符号語を
再順序付けする処理(ケース3)は、優先符号語を各セ
グメントの開始部分から復号するループにおいて実行さ
れる。1001、1002、1005、1006に示す
ように、主として、本発明は符号語0から開始し、ルー
プ内にある全てのPCWの復号を試みる。ループの各反
復において、本発明はPCWを各セグメントの開始部分
から復号し(1003)、bitCountカウンタを更新する
(1004)。1006、1007に示すように、セグ
メントからのPCWの復号に失敗すると、ビットストリ
ームが壊れていることになるため、本発明はエラーメッ
セージを表示する。
【0075】図3から理解されるように、様々なセグメ
ントから非PCWを再順序付けする処理は、非常に長
い。この処理を最適化するために、本発明のケース3は
数ステップで実行される方法を導入しており、これらの
ステップを組み合わせることで、従来技術と比較してよ
り効率的な方法が得られる。
【0076】段階1:冗長性の排除 第1のステップは、アルゴリズムから冗長性を排除する
ことである。図15から、様々なセグメントからセット
1(1411)内の全ての符号語が、図14の1402
に示すように、1回の試行で復号できることが明らかで
ある。また、図14の1403に示すさらなる試行は、
冗長であることが明らかである。このような冗長性を除
去するために、本発明は図11に示す別のアプローチを
用いる。本発明(ケース3)は、ケース1とケース2の
概念を使用して、非PCWを再順序付けするより最適な
方法を生み出す。
【0077】基本的に本発明は、1101、1102、
1107、1109に示すように、セット1から始まり
全てのセットが終わるまで、非PCWを1度に1セット
ずつ復号する。従来技術と同様に、1セットを完了した
後に、1103に示すように、読み出し方向をトグルす
る。
【0078】非PCWのセットの復号処理を最適化する
ために、1104に示すように、本発明はまず、現在の
セット内の符号語の数と、現在のセット内に常駐する符
号語の範囲を計算する。
【0079】セット内の符号語の数は次式のように計算
する。 if (n == last_set) // これが現在のフレーム内の最終セットである場合 { CWn = totalCodeword % Seg; if (CWn == 0) CWn = Seg; } else { CWn = Segn; } ここで、nは(0から始まる)セットの数、CWnは、
セットn内の符号語の数、Segはフレーム内のセグメン
トの数、totalCodewordはフレーム内の符号語の総数で
ある。
【0080】セットnに関連した符号語数の範囲は次の
ように算出することができる。
【0081】 セットn内の最初の符号語、firstCwn = n * Segn セットn内の最後の符号語、lastCwn = firstCwn + CWn - 1 例えば、図13の1302におけるセット1について、 CW1 = Seg = 6 firstCw1= 1 * Seg = 6 lastCw1 = firstCw1 + CW1 1 = 6 + 6 1 = 11 従って、図13の1302におけるセット1は、符号語
6〜符号語11に対応した6つの符号語を含む。
【0082】この理解において、まだ復号されずに残っ
ている符号語の数のカウントダウンカウンタを保つ。こ
の数が0になると、そのセットの処理を停止し、次のセ
ットへ進む。そのため本発明は、図13の1302に示
すセット1の復号を試みる際に、1403を完全にバイ
パスできる。図16の1502に示すように、セット1
の復号に対しては、試行は1つ必要とされるだけであ
る。
【0083】さらに、ケース1と同様に、本発明はま
た、復号化器が読み出すビットの総数を保持する。この
数がフレームの総データ長と等しい場合には、それ以上
の復号を中止する。フレームの総データ長は、ビットス
トリーム内のlength_of_reordered_spectral_data要素
によって与えられる。エラーのあるデータの場合、復号
するデータビットがなくなると、たとえまだ復号されて
いない符号語が残っていたとしても、復号化器を停止す
る対策が採られている。ビットの総数が総データ長と等
しく、そのセット内に復号されていない符号語がある場
合には、1110、1111に示すように、エラーメッ
セージを表示する。この場合には、フレームではなくセ
ット内の復号されていない符号語の数に対してbitCount
を調べるとしたが、基本となる概念はケース1の概念と
同一である。
【0084】段階2: 最適化 本発明では、アルゴリズムをさらに最適化するために、
ケース2で使用したのと同じ概念を用い、セグメントか
ら符号語を復号する順序を再定義する。本発明は、同一
セット内の全符号語についてこれを1度に復号を試みる
のではなく、1つの符号語の復号を、次の符号語に進む
前に可能な限り完了しておこうと試みる。このアプロー
チが合理的なのは、符号語がセグメントnからセグメン
トn+3にわたる場合、セグメントnからセグメントn
+2は即座に空であるとできることである。
【0085】まず、符号語を復号する前に、図11の1
105に示すように、各符号語についてcurrentSegment
を定義する。各符号語についてのcurrentSegmentは以下
のように初期化される。 Cm = m % Seg; ここで、Cは符号語mについての現在のセグメント、
mは現在の符号語数、Segはフレーム内のセグメント
の総数である。
【0086】currentSegmentは、どのセグメントから符
号語を復号するべきかを示している。さらに、本発明は
また、各セグメントに1次符号語を定義する。この1次
符号語はセット毎に異なる。1次符号語は、セット内の
符号語の最初のcurrentSegment値である。特定のセグメ
ントを復号する際には、1次符号語に優先順位が与えら
れる。
【0087】ケース2の場合と同じ例を使用して、図1
3の1303に示すセット2内にある符号語の現在セグ
メントは、以下の表3のように初期化される。
【0088】
【表3】
【0089】これは、符号語12をセグメント0から、
符号語13をセグメント1から、符号語14をセグメン
ト2から復号すべきことを意味する。さらに、以下の表
4に示すように、セグメントについて1次符号語を初期
化する。
【0090】
【表4】
【0091】セット2内には3つの符号語しかないた
め、セグメント3、4、5は1次符号語を含んでいな
い。そこで本発明は、1106、1108に示すよう
に、セット内の最初の符号語から、現在のセグメントか
らの符号語の復号を試みる。
【0092】図12は、ケース3内のスペクトル符号語
を復号するためのより詳細なフローチャートを示す。符
号語復号アルゴリズム(ケース3)は、同一セットの隣
接した符号語からの情報も使用して、符号語を再順序付
けする際に冗長性を減少させる。まず、復号する符号語
を決定した後に、本発明では、1201に示すように、
その符号語が既に復号されているか否かを調べる。既に
復号されている場合は、本発明は、次の復号されていな
い符号語へと処理を進める(1202)。次の符号語を
得る処理を以下に示す。 int count; if (m <= firstCw + Cm){ // 前には書き込まれていない符号語を調べる for(count = firstCw+ Cm + 1; count <= lastCw; count++){ if (!decoded(count)) return count; } // 前には書き込まれていない符号語が存在しない場合は、後ろを調べる // 後方調査−より効率的 for(count = m 1; count >= firstCw; count--){ if(!decoded(count)) return count; } } else{ // m > firstCw + Cm // 後方調査 for(count = m 1; count > firstCw + Cm; count--){ if(!decoded(count)) return count; } } ここでは、mは現在の符号語、firstCwはセット内の最
初の符号語、lastCwはセット内の最終の符号語、C
符号語mについての現在のセグメントである。
【0093】現在の符号語が復号されていない場合は、
本発明が復号を試みているセグメントの1次符号語を決
定する処理1203へ進む。現在の符号語が1次符号語
でない場合は、その1次符号語が復号されているかどう
かを調べる(1204)。1次符号語が復号されていな
い場合には、本発明は処理を進め、そのセグメントの1
次符号語を復号する(1205)。これは、あるセグメ
ントから符号語を復号する際に、1次符号語に高い優先
順位が与えられるためである。
【0094】そのセグメントの1次符号語が既に復号さ
れている場合、そのセグメントが空であるか否かをまず
調べることにより、現在の符号語の復号を試みる(12
06)。空である場合は、1211に示すように、curr
entSegmentポインタが増加される。この処理を以下に示
す。 if((P(Cm) <= lastCwn) && (C(m) != C(P(Cm)){ // そのセグメントの1次符号語でない場合、または、1次符号語 が存在する場合 Cm = C(P(Cm)); // 1次符号語からのcurrentSegment値を複写 する } else { // そのセグメントの1次符号語である場合、または、1次符号 語が存在しない場合 Cm = (Cm + 1) % Seg; // 新たなセグメントの1次符号語がすでに復号されている場合 // その現在のcurrentSegment情報を複写する if ((decoded (P(Cm) && (P(Cm) <= lastCwn)) Cm = C(P(Cm)); } ここでは、P(x)は、セグメントxの1次符号語をリ
ターンする関数であり、C(y)は、符号語yの現セグ
メントをリターンする関数であり、lastCw は、
セットn内の最終符号語であり、Cは、符号語mの現
在のセグメントであり、Segは、フレーム内のセグメ
ントの総数である。
【0095】1次符号語は常に最初に復号されるため、
currentSegmentポインタをこのように設定することで、
1次符号語を復号する際に、空にされた、または空であ
るとわかったセグメントを読み飛ばす。
【0096】セグメントが空でない場合は、本発明は、
1207に示すように、そのセグメントから符号語を復
号しようと試みる。その後、その符号語の長さだけbitC
ountカウンタを増加する。セグメントが符号語の1部分
しか含んでいない場合には、その部分的符号語の長さだ
けbitCountが増加される。これは処理1208にて実行
される。
【0097】その後、1209に示すように、選択した
符号語の復号が完了したか否かを調べる。その符号語の
復号の完了に成功すると、1210、1212に示すよ
うに、numCodewordカウンタを減少させ、次の符号語へ
処理を進める。
【0098】図16は、本発明の復号化器内で再順序付
けするスペクトル符号語の1例を示す。この例は、同じ
セットの符号語を使用して、本発明を用いたスペクトル
符号語を再順序付けする方法を説明する。ここでは、図
14、図15で示した前の例と同じセットの符号語を使
用する。復号した符号語の結果は、図13に示す、事前
に分類した3セットの符号語からなる符号語と同一であ
る。セット0(1301)のみが優先符号語(PCW)
を含む。セット1(1302)とセット2(1303)
は非優先符号語(非PCW)を含んでいる。本発明は、
存在するセット数を算出した後、図16の1501に示
すように、各セグメントの開始部分から優先符号語(P
CW)を復号することにより開始される。全てのPCW
の復号が終了すると、1502に示すように、第1セッ
トの符号語の逆からの復号を試みる。これは1つの試行
においてのみ実行できる。そして次の符号語のセットの
処理へ進む。bitCountカウンタは、各符号語の復号の試
みが終わる度に更新される点に留意されたい。また、符
号語のセットが完了した後には、それ以上の試行を実行
しない点に留意されたい。
【0099】セット2の処理へと、本発明はここでも読
み出し方向をトグルし、セグメント0からの符号語12
の復号を試みることで処理を開始する。セグメント0が
空であることがわかると、符号語12(C12)のcurr
entSegmentポインタを、セグメント1を指すよう増加す
る。次に、セグメント1からからの符号語12の復号を
試みる。しかし、初めのチェック中に、符号語12がセ
グメント1の1次符号語でなく、また、セグメント1の
1次符号語である符号語13が復号されていないことが
わかる。さらに、ある符号語を復号する際に、1次符号
語は優先順位を与えられる必要があるため、符号語12
の処理を停止して、セグメント1からの符号語13の復
号へと進む。これを図16の1503に示す。セグメン
ト1を空にする前に、セグメント1から符号語13の1
部分のみ(符号語13a)を入手することに成功する。
次に、bitCountを、bitCountと符号語13aの長さの和
となるように設定する。続いて、符号語13(C13)
のcurrentSegmentポインタを増加して、セグメント2を
指させ、セグメント2からの符号語の復号を試みる。符
号語14(セグメント2の1次符号語)は復号されてい
ないため、符号語13の復号を中止し、代わりにセグメ
ント2からの符号語14の復号を試みる。そして、15
03に示すように、セグメント2から符号語14aを得
る。ここでも、bitCountに符号語14aの長さを追加す
る。
【0100】続いて、1504に示すように、符号語1
4のcurrentSegmentポインタを増加して、セグメント3
から符号語14の復号を試みる。セグメント3は空であ
るため、符号語14のcurrentSegmentポインタを増加
し、セグメント4から符号語14の復号を試みる。今回
はセグメントは空でなく、符号語14aをセグメント4
の内容とマージして、符号語14を形成し、復号する。
次に、符号語14が復号されたと示され、符号語14b
の長さがbitCountに追加される。続いて符号語13へ戻
って、符号語13のcurrentSegmentポインタ(C13
がセグメント2を指し、かつ、セグメント2の1次符号
語が符号語14であることがわかると、C 13をC14
と等しくなるように設定する。次に、1505に示すよ
うに、セグメント4から符号語13を復号しようと試み
る。符号語13を復号する際に、セグメント2、セグメ
ント3を読み飛ばしている点に注意されたい。
【0101】符号語13の復号を試みる一方で、セグメ
ント4が空であることがわかる。そのため、C13を増
加してセグメント5を指すようにし、そこからの復号を
試みる。無事に符号語13を復号し、更新したbitCount
を追加すると、符号語12へ戻る。C12は、符号語1
3の1次符号語を含むセグメント1を指しているため、
C13の値をC12にコピーし、セグメント1〜4は読
み飛ばして、セグメント5から符号語12の復号を試み
る。これは1506に示されており、ここでは、セット
内の全ての符号語の復号が成功し、bitCountポインタは
フレームの総データ長と等しい。
【0102】復号された符号語を、図16の1507、
1508、1509において、それぞれ対応するセット
内に示す。セット0(1507)のみが優先符号語(P
CW)を含んでいる。
【0103】
【発明の効果】本発明により、従来技術では実行されて
いた不要なチェックを省略することで、より最適な方法
において、スペクトルデータを再順序付けすることがで
きる。同時に、ビットストリームから様々な情報を抽出
する機構もまた提案された。この追加的情報は、スペク
トル符号語の再順序付け処理をさらに最適化するために
使用される。
【図面の簡単な説明】
【図1】 従来技術の復号化器でのスペクトル再順序付
けを示す全体フローチャートである。
【図2】 従来技術の復号化器において優先符号語(P
CW)を再順序付けするためのフローチャートである。
【図3】 従来技術の復号化器において非PCWを再順
序付けするためのフローチャートである。
【図4】 本発明(ケース1)におけるスペクトル再順
序付けを示す全体フローチャートである。
【図5】 本発明(ケース1)における優先符号語(P
CW)を再順序付けするためのフローチャートである。
【図6】 本発明(ケース1)における非PCWを再順
序付けするためのフローチャートである。
【図7】 本発明(ケース2)における非PCWを再順
序付けするためのフローチャートである。
【図8】 符号語復号アルゴリズム(ケース2)のため
のフローチャートである。
【図9】 本発明(ケース3)による復号化器において
スペクトル再順序付けを示す全体フローチャートであ
る。
【図10】 本発明(ケース3)による復号化器におい
て優先符号語(PCW)を再順序付けするためのフロー
チャートである。
【図11】 本発明(ケース3)の復号化器において非
PCWを再順序付けするためのフローチャートである。
【図12】 符号語復号アルゴリズム(ケース3)のフ
ローチャートである。
【図13】 符号語に事前分類処理を実行した結果の例
である。
【図14】 従来技術で提案されたHCR復号アルゴリ
ズムの例である。
【図15】 従来技術で提案されたHCR復号アルゴリ
ズムの例である。
【図16】 本発明(ケース3)によるHCR復号アル
ゴリズムの例である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スア ホン・ネオ シンガポール534415シンガポール、タイ・ セン・アベニュー、ブロック1022、04− 3530番、タイ・セン・インダストリアル・ エステイト、パナソニック・シンガポール 研究所株式会社内 Fターム(参考) 5D045 DA11 DA20 5J064 AA00 BA09 BB05 BC02 BC05 BC14 BC29 BD02

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 復号に使用するビット総数と、フレーム
    内に符号化のために残っている符号語の数とを用いて、
    スペクトル符号語を再順序付けおよび復号する方法であ
    って、該方法は、 1a) セット、bitCount、numCodewordの数を初期化
    するステップと、 1b) 使用するビットの数と、前記フレーム内に符号
    化のために残っている符号語の数とを保持しながら、優
    先符号語(PCW)の復号を再順序付けするステップ
    と、 1c) 使用するビットの数と、前記フレーム内に符号
    化のために残っている符号語の数とを保持しながら、非
    優先符号語(非PCW)の再順序付けおよび復号を行う
    ステップとを有する方法。
  2. 【請求項2】 前記PCWの前記再順序付けおよび復号
    が、 2a) 各セグメントの開始部分から前記PCWを復号
    するステップと、 2b) 前記bitCountカウンタに前記PCWの長さを追
    加して、使用する前記ビットの数を保持するステップ
    と、 2c) 前記PCWを復号した後にnumCodewordsを減少
    させて、前記フレーム内に復号化のために残っている符
    号語の数を保持するステップとを有する請求項1に記載
    の方法。
  3. 【請求項3】 前記非PCWの前記再順序付けおよび復
    号が、 3a) 各セグメントから前記非PCWの復号を試みる
    ステップと、 3b) 前記非PCWの長さまたは部分的長さを、前記
    bitCountカウンタに追加して、使用する前記ビットの数
    を保持するステップと、 3c) 前記非PCWの復号後にnumCodewordsを減少さ
    せて、前記フレーム内に残っている前記符号語の数を保
    持するステップと、 3d) ステップ3b)、3c)からの前記numCodewor
    dsと前記bitCountとを用いて、エラーと、さらなる試行
    の必要性とを調べるステップとを有する請求項1に記載
    の方法。
  4. 【請求項4】 非優先符号語を効率的に再順序付けし、
    復号する方法であって、該方法は、 4a) 第2セットから開始して、ループ内のセット内
    を進むステップと、 4b) 前記セットの各々において、前方と後方の間
    で、読み出し方向をトグルするステップと、 4c) 前記セット内の符号語の数を計算するステップ
    と、 4d) 前記セットに関連付けられている符号語の範囲
    を減少させるステップと、 4e)前記セット内の全ての符号語について、currentS
    egment ポインタを初期化するステップと、 4f) 前記セットの値に従って、全てのセグメントに
    ついて1次符号語を初期化するステップと、 4g) 前記セット内の第1符号語から前記セットの最
    終符号語までのループにおいて、異なるセグメントか
    ら、前記符号語を再順序付けし、復号するステップとを
    有する方法。
  5. 【請求項5】 前記セット内に含まれる前記符号語の数
    が、前記セグメントの数と、前記フレーム内の前記符号
    語の総数に従って計算される、請求項4に記載の方法。
  6. 【請求項6】 前記セット内の前記符号語の範囲が、算
    出した前記符号語の数および前記セットの値に基づいて
    決定される、請求項5に記載の方法。
  7. 【請求項7】 前記セット内に含まれる前記符号語の全
    てが、前記符号語の数と存在するセグメントの総数とに
    従って初期化される前記currentSegmentポインタに関連
    付けられている、請求項4に記載の方法。
  8. 【請求項8】 前記セグメントの全てが、計算された第
    1の前記currentSegment値に従って初期設定される前記
    1次符号語に関連付けられている、請求項5に記載の方
    法。
  9. 【請求項9】 前記符号語の前記再順序付けおよび復号
    が、 9a) 復号のために残っている符号語の数を決定する
    ステップと、 9b) 前記再順序付けおよび復号する符号語を決定す
    るステップと、 9c) 前記符号語を復号する前記セグメントを探すス
    テップと、 9d) 前記符号語を前記セグメント内に復号するステ
    ップとを有する、請求項4に記載の方法。
  10. 【請求項10】 前記符号語が選択されて、再順序付け
    および復号され、前記符号語を決定するステップは、 10a) 復号されていない前記符号語を探すステップ
    と、 10b) 前記復号される符号語を含んだ前記セグメン
    トに対して、前記1次符号語を探すステップと、 10c) 前記符号語が、現時点で再順序付けおよび復
    号に適しているかを決定するステップとを有する、請求
    項9に記載の方法。
  11. 【請求項11】 前記セグメントが選択され、前記セグ
    メントを探すステップが、 a) 前記セグメントが空か否かを決定するステップ
    と、 b) 前記セグメントが空である場合に、復号を行う適
    当なセグメントを探すステップとを有する請求項9に記
    載の方法。
  12. 【請求項12】 前記セグメントの前記1次符号語の値
    と、前記1次符号語が既に復号されているか否かとに基
    づいて、前記符号語が適切または不適切であると決定さ
    れる、請求項10に記載の方法。
  13. 【請求項13】 前記セグメントの前記1次符号語の状
    態と、前記1次符号語の前記currentSegmenポインタの
    状態とに基づいて、適切なセグメントが選択される請求
    項11に記載の方法。
  14. 【請求項14】 音声復号化器における効率的なスペク
    トル符号語の再順序付け方法であって、 14e) 存在するセットの数とbitCountとを初期化す
    るステップと、 14f) 使用するビットの数を保持しながら、優先符
    号語(PCW)を再順序付けおよび復号するステップ
    と、 14g) 使用するビットの数を保持しながら、非優先
    符号語(非PCW)を再順序付けおよび復号するステッ
    プとを有する、請求項2に記載の方法。
JP2002010223A 2002-01-18 2002-01-18 音声復号化器においてスペクトル符号語を効率的に再順序付けする方法 Pending JP2003216185A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002010223A JP2003216185A (ja) 2002-01-18 2002-01-18 音声復号化器においてスペクトル符号語を効率的に再順序付けする方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002010223A JP2003216185A (ja) 2002-01-18 2002-01-18 音声復号化器においてスペクトル符号語を効率的に再順序付けする方法

Publications (1)

Publication Number Publication Date
JP2003216185A true JP2003216185A (ja) 2003-07-30

Family

ID=27648021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002010223A Pending JP2003216185A (ja) 2002-01-18 2002-01-18 音声復号化器においてスペクトル符号語を効率的に再順序付けする方法

Country Status (1)

Country Link
JP (1) JP2003216185A (ja)

Similar Documents

Publication Publication Date Title
JP2923430B2 (ja) 巡回ビタビ復号器の操作方法
JP4785706B2 (ja) 復号装置及び復号方法
US6225922B1 (en) System and method for compressing data using adaptive field encoding
US6809665B2 (en) Apparatus and method for decoding variable length code
JP5656593B2 (ja) 符号化データを復号する装置及び方法
US7385533B2 (en) Encoder and decoder using run-length-limited code
US7079050B2 (en) Arithmetic decoding of an arithmetically encoded information signal
US6919827B2 (en) Method and apparatus for effectively decoding Huffman code
US20080266147A1 (en) Variable length code decoding apparatus
JPH0445017B2 (ja)
JP2001084707A (ja) 可変長符号の復号方法、復号装置及び可変長符号の復号プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003526988A (ja) ビット−スライスの順に実施したパス計量更新におけるビタービ復号化
JP2003216185A (ja) 音声復号化器においてスペクトル符号語を効率的に再順序付けする方法
US6691275B1 (en) Encoder with vector-calculated disparity logic
US6081213A (en) Method and apparatus for arithmetic coding, method and apparatus for arithmetic decoding, and storage medium
JP4191438B2 (ja) データ圧縮方法およびデータ伸長方法、該方法を実施するためのコンピュータプログラム製品と電子システム
CN115225724A (zh) 使用分区和无关位消除的数据压缩技术
US20240022260A1 (en) Low complexity optimal parallel huffman encoder and decoder
CN116527775B (zh) 使用分区和无关位消除的数据压缩技术
US6919830B1 (en) Arithmetic decoding of an arithmetically encoded information signal
JP2006166388A (ja) 空白となるビット列の前方配置による境界相殺方法
CN112671413B (zh) 基于LZSS算法和Sunday算法的数据压缩方法及系统
JP3351732B2 (ja) 算術符号化装置および方法、算術復号装置および方法、並びに記録媒体
JP2003318739A (ja) データシーケンスを圧縮するシステム、方法、およびコンピュータ読み取り可能媒体
JP2776075B2 (ja) 可変長符号化データの伝送方法