JP5579932B2 - 符号化方法、装置、プログラム及び記録媒体 - Google Patents
符号化方法、装置、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP5579932B2 JP5579932B2 JP2013522884A JP2013522884A JP5579932B2 JP 5579932 B2 JP5579932 B2 JP 5579932B2 JP 2013522884 A JP2013522884 A JP 2013522884A JP 2013522884 A JP2013522884 A JP 2013522884A JP 5579932 B2 JP5579932 B2 JP 5579932B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- gain
- error
- encoding
- sequence
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 82
- 238000013139 quantization Methods 0.000 claims description 263
- 238000004364 calculation method Methods 0.000 claims description 56
- 238000010606 normalization Methods 0.000 claims description 30
- 238000001228 spectrum Methods 0.000 description 96
- 230000008569 process Effects 0.000 description 35
- 239000013598 vector Substances 0.000 description 23
- 230000006870 function Effects 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 8
- 238000009499 grossing Methods 0.000 description 7
- 230000008707 rearrangement Effects 0.000 description 7
- 238000009825 accumulation Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 5
- 241000209094 Oryza Species 0.000 description 5
- 235000007164 Oryza sativa Nutrition 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 235000009566 rice Nutrition 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
この発明は、音響信号の符号化技術に関する。より詳しくは、音響信号を周波数領域に変換して得られた周波数領域のサンプル列の符号化に関する。
低ビット(例えば10kbit/s〜20kbit/s程度)の音声信号や音響信号の符号化方法として、DFT(離散フーリエ変換)やMDCT(変形離散コサイン変換)などの直交変換係数に対する適応符号化が知られている。例えば標準規格技術であるAMR-WB+(Extended Adaptive Multi-Rate Wideband)は、TCX(transform coded excitation:変換符号化励振)符号化モードを持ち、この中ではDFT係数を8サンプルごとに正規化してベクトル量子化している(例えば、非特許文献1参照。)。
一方、例えば非特許文献2に記載されたMPEG-1、MPEG-2オーディオではMDCT係数を複数の帯域に区分し、区分した帯域ごとに利得であるステップ幅を決めてスカラ量子化をし、可変長符号化を行っている。ステップ幅が大きいと量子化後の系列の振幅が小さくなり、可変長符号化後の情報量は小さくなり、ステップ幅が小さい場合には量子化後の系列の振幅が大きくなり、可変長符号化後の情報量は大きくなる。与えられたビット数の制約のもとにステップ幅を決めるために、試しにステップ幅を決めて、可変長符号化後の情報量を測定して、所望の情報量範囲になるようにステップ幅を微調整するように繰り返しループを組む。
ETSI TS 126 290 V6.3.0 (2005-06)
Marina Bosi, Richard E. Goldberg, "Introduction to Digital Audio Coding and Standard", 2003
このように、量子化後のサンプルを可変長符号化する際には、最終的な情報量は利得である量子化ステップ幅に依存して、符号化処理を行ってみるまで確定しない。したがって、フレームあたりに割り当てられるビット数が固定、または制約がある場合には、試しにステップ幅の候補を定め、並べ替えなどの処理を含んだあとの最終的な情報量、すなわち符号量を調べて、その結果を使ってステップ幅を繰り返して調整する必要があり、演算量が必ずしも低くなかった。
この発明は、このような技術的背景に鑑みて、最終的な符号量を調べる必要がない符号化方法、装置、プログラム及び記録媒体を提供することを目的とする。
この発明の一態様による符号化方法は、所定の時間区間の音響信号に由来する周波数領域のサンプル列を所定の個数のビットで符号化する符号化方法であって、周波数領域サンプルの値の絶対値についての、一定の幅を有し、かつ、互いに重複しない複数の範囲のそれぞれに属する上記周波数領域のサンプル列中のサンプルの個数を計数し、隣接する2つの範囲のそれぞれに属するサンプルの個数の差が最大である隣接する2つの範囲の境界値の2倍以上の値を持つ利得を得る正規化利得計算ステップと、周波数領域のサンプル列の各サンプルの値を利得で割り算して得られる除算値の整数値を取得する量子化ステップと、整数値を可変長符号化して所定の個数以下のビット数の可変長符号を得る符号化ステップと、除算値から整数値を減算した誤差値の列を得る誤差算出ステップと、余剰ビットを用いて、誤差値の列を符号化して誤差符号を得る誤差符号化ステップと、を含む。
この発明の他の態様による符号化方法は、所定の時間区間の音響信号に由来する周波数領域のサンプル列を所定の個数のビットで符号化する符号化方法であって、2個以上の利得候補が正規化利得候補記憶部に記憶されており、周波数領域のサンプル列の各サンプルの値を正規化利得候補記憶部から読み込んだ各利得候補で割り算して得られる除算値の整数値を取得する量子化ステップと、誤差算出ステップは、除算値から整数値を減算することにより各利得候補に対応する誤差値の列を算出する誤差算出ステップと、各利得候補に対応する整数値を可変長符号化して各利得候補に対応する所定の個数以下のビット数の可変長符号を得る符号化ステップと、余剰ビットを用いて、各利得候補に対応する誤差値の列を符号化して各利得候補に対応する誤差符号と復号量子化誤差の列とを生成する誤差符号化ステップと、復号量子化誤差の列と誤差値の列とが最も近い利得候補に対応する利得情報、可変長符号及び誤差符号を出力する最適利得選択ステップと、を含む。
最終的な符号量を調べることなく符号化を行うことができる。
図面を参照しながらこの発明の実施形態を説明する。なお、重複する構成要素には同じ参照符号を当てて重複説明を省略する。
〔第一実施形態〕
この実施形態は、所定の時間区間をフレームとし、フレーム内の音響信号に由来する周波数領域のサンプル列を量子化する枠組みの中で、周波数領域のサンプルの重み付け平坦化後の系列の可変長符号化を行うことと、その可変長符号化によって節約できた余剰ビットを用いて優先度を決めて誤差信号を量子化することで符号化の歪を少なくするという符号化の改善を特徴の一つとする。特にフレームあたりの割り当てビット数が固定である場合にでも可変長符号化の利点が生かせる。
この実施形態は、所定の時間区間をフレームとし、フレーム内の音響信号に由来する周波数領域のサンプル列を量子化する枠組みの中で、周波数領域のサンプルの重み付け平坦化後の系列の可変長符号化を行うことと、その可変長符号化によって節約できた余剰ビットを用いて優先度を決めて誤差信号を量子化することで符号化の歪を少なくするという符号化の改善を特徴の一つとする。特にフレームあたりの割り当てビット数が固定である場合にでも可変長符号化の利点が生かせる。
音響信号に由来する周波数領域のサンプル列、換言すれば音響信号に基づく周波数領域のサンプル列として、例えば、フレーム単位の音声音響ディジタル信号を時間領域から周波数領域に変換して得られるDFT係数列やMDCT係数列、このような係数列に対して正規化や重み付けや量子化などの処理が適用された係数列などを例示することができる。以下、MDCT係数列を例にとって実施形態を説明する。
[符号化]
最初に図1から図4を参照して符号化処理を説明する。
最初に図1から図4を参照して符号化処理を説明する。
図1に示すように、符号化装置1は、周波数領域変換部11、線形予測分析部12、線形予測係数量子化符号化部13、パワースペクトル包絡算出部14、重み付け包絡正規化部15、正規化利得候補蓄積部16、量子化部17、誤差算出部18、符号化部19、誤差符号化部110、最適利得選択部112を例えば備える。符号化装置1は、図2に例示された符号化方法の各処理を行う。以下、符号化装置1の各処理を説明する。
「周波数領域変換部11」
まず、周波数領域変換部11がフレーム単位で音声音響ディジタル信号を周波数領域のN点のMDCT係数列に変換する(ステップS11)。
まず、周波数領域変換部11がフレーム単位で音声音響ディジタル信号を周波数領域のN点のMDCT係数列に変換する(ステップS11)。
一般論として、符号化側ではMDCT係数列を量子化して、量子化されたMDCT係数列を符号化して、得られた符号列を復号側へ伝送し、復号側では当該符号列から量子化されたMDCT係数列を再構成し、さらに逆MDCT変換によって時間領域の音声音響ディジタル信号を再構成することができる。
ところで、MDCT係数の振幅は近似的に通常のDFTのパワースペクトルと同じ振幅包絡(パワースペクトル包絡)を持つ。このため、振幅包絡の対数値に比例する情報割り当てを行うことによって、全帯域のMDCT係数の量子化歪(量子化誤差)を均一に分散させることができ、全体の量子化歪を小さくすることができ、加えて情報圧縮も実現される。なお、パワースペクトル包絡は線形予測分析によって求められた線形予測係数を使って効率よく推定することができる。
このような量子化誤差を制御する方法としては、各MDCT係数の量子化ビットを適応的に割り当てる(振幅を平坦にした後で量子化のステップ幅を調整する)方法や、重み付けベクトル量子化により適応的に重みをつけて符号を決定する方法がある。ここでは、本発明の実施形態において実行される量子化方法の一例を説明するが、説明する量子化方法に限定されるものではないことに留意されたい。
「線形予測分析部12」
線形予測分析部12は、フレーム単位で音声音響ディジタル信号を線形予測分析し、予め定めた次数までの線形予測係数を求めて出力する(ステップS12)。
線形予測分析部12は、フレーム単位で音声音響ディジタル信号を線形予測分析し、予め定めた次数までの線形予測係数を求めて出力する(ステップS12)。
「線形予測係数量子化符号化部13」
線形予測係数量子化符号化部13は、線形予測分析部12が求めた線形予測係数に対応する符号と、量子化済み線形予測係数とを求めて出力する(ステップS13)。
線形予測係数量子化符号化部13は、線形予測分析部12が求めた線形予測係数に対応する符号と、量子化済み線形予測係数とを求めて出力する(ステップS13)。
その際、線形予測係数をLSP(Line Spectral Pairs)に変換し、LSPに対応する符号と量子化済みLSPとを求め、量子化済みLSPを量子化済み線形予測係数に変換する処理を行ってもよい。
線形予測係数に対応する符号である線形予測係数符号は、復号装置2に送信される符号の一部とされる。
「パワースペクトル包絡算出部14」
パワースペクトル包絡算出部14は、線形予測係数量子化符号化部13が出力した量子化済み線形予測係数を周波数領域に変換してパワースペクトル包絡を求める(ステップS14)。求まったパワースペクトル包絡は、重み付け包絡正規化部15に送信される。また、必要に応じて、図1に破線で示すように誤差符号化部110に送信される。
パワースペクトル包絡算出部14は、線形予測係数量子化符号化部13が出力した量子化済み線形予測係数を周波数領域に変換してパワースペクトル包絡を求める(ステップS14)。求まったパワースペクトル包絡は、重み付け包絡正規化部15に送信される。また、必要に応じて、図1に破線で示すように誤差符号化部110に送信される。
N点のMDCT係数列の各係数X(1),・・・,X(N)に対応するパワースペクトル包絡係数列の各係数W(1),・・・,W(N)は、量子化済み線形予測係数を周波数領域に変換して得ることができる。例えば、全極型モデルであるp次自己回帰過程により、時刻tの時間信号y(t)は、p時点まで遡った過去の自分自身の値y(t-1),・・・,y(t-p)と予測残差e(t)と量子化済み線形予測係数α1,・・・,αpによって式(1)で表される。このとき、パワースペクトル包絡係数列の各係数W(n)[1≦n≦N]は式(2)で表される。exp(・)はネイピア数を底とする指数関数、jは虚数単位、σ2は予測残差エネルギーである。
なお、上記の次数pは、線形予測係数量子化符号化部13が出力した量子化済み線形予測係数の次数と同一であってもよいし、線形予測係数量子化符号化部13が出力した量子化済み線形予測係数の次数未満であってもよい。
また、パワースペクトル包絡算出部14では、パワースペクトル包絡値の代わりにパワースペクトル包絡値の概算値やパワースペクトル包絡値の推定値を算出してもよい。パワースペクトル包絡値とは、パワースペクトル包絡係数列の各係数W(1),・・・,W(N)のことである。
例えば、パワースペクトル包絡値の概算値を算出する場合は、パワースペクトル包絡算出部14は、1≦n≦N/4について式(2)により各係数W(n)を求め、W'(4n-3)= W'(4n-2)=W'(4n-1)= W'(4n)=W(n) [1≦n≦N/4]として求めた、N個のW'(n)をパワースペクトル包絡値の概算値として出力する。
「重み付け包絡正規化部15」
重み付け包絡正規化部15は、パワースペクトル包絡算出部14が出力したパワースペクトル包絡によって、MDCT係数列の各係数を正規化する(ステップS15)。ここでは聴覚的に歪が小さくなるような量子化の実現のために、重み付け包絡正規化部15は、パワースペクトル包絡値の系列やその平方根の系列を周波数方向で平滑化した重み付けスペクトル包絡係数を用いてフレーム単位でMDCT係数列の各係数を正規化する。この結果、フレーム単位の重み付け正規化MDCT係数列の各係数x(1),・・・,x(N)が得られる。重み付け正規化MDCT係数列は、量子化部17及び誤差算出部18に送信される。重み付け正規化MDCT係数列は一般には低周波領域にやや大きな振幅を持ち、ピッチ周期に起因する微細構造をもつものの、元のMDCT係数列ほどの大きな振幅傾きや振幅の凹凸を持たない。
重み付け包絡正規化部15は、パワースペクトル包絡算出部14が出力したパワースペクトル包絡によって、MDCT係数列の各係数を正規化する(ステップS15)。ここでは聴覚的に歪が小さくなるような量子化の実現のために、重み付け包絡正規化部15は、パワースペクトル包絡値の系列やその平方根の系列を周波数方向で平滑化した重み付けスペクトル包絡係数を用いてフレーム単位でMDCT係数列の各係数を正規化する。この結果、フレーム単位の重み付け正規化MDCT係数列の各係数x(1),・・・,x(N)が得られる。重み付け正規化MDCT係数列は、量子化部17及び誤差算出部18に送信される。重み付け正規化MDCT係数列は一般には低周波領域にやや大きな振幅を持ち、ピッチ周期に起因する微細構造をもつものの、元のMDCT係数列ほどの大きな振幅傾きや振幅の凹凸を持たない。
この実施形態では、重み付け正規化MDCT係数列が特許請求の範囲の周波数領域のサンプル列に対応する。ただし、重み付け正規化MDCT係数列は、周波数領域のサンプル列の一例に過ぎない。周波数領域のサンプル列であれば、重み付け正規化MDCT係数列以外の系列を採用してよい。
「正規化利得候補蓄積部16」
正規化利得候補蓄積部16には、Mを2以上の整数として、M個の利得候補g1,…,gm,…,gMが予め記憶されている。利得候補は、利得及び利得候補を表すための情報である利得情報と一対一で対応する。例えば利得情報が4ビットで構成される場合にはM=24=16であり、利得情報が8ビットで構成される場合にはM=28=256である。
正規化利得候補蓄積部16には、Mを2以上の整数として、M個の利得候補g1,…,gm,…,gMが予め記憶されている。利得候補は、利得及び利得候補を表すための情報である利得情報と一対一で対応する。例えば利得情報が4ビットで構成される場合にはM=24=16であり、利得情報が8ビットで構成される場合にはM=28=256である。
利得候補g1,…,gm,…,gMは、量子化部17、誤差算出部18、最適利得選択部112に適宜出力される。
「量子化部17」
次に、量子化部17が、フレームごとに、重み付け正規化MDCT係数列の各係数x(1),・・・,x(N)を正規化利得候補蓄積部16から読み込んだ各利得候補で量子化する(ステップS17)。すなわち、重み付け正規化MDCT係数列の各係数x(n)[1≦n≦N]を各利得候補gm(m=1,…,M)で割り算して得られる除算値x(n)/gmの値の小数点以下を四捨五入して得られる整数値um(n)を量子化MDCT係数とする。フレーム単位の量子化MDCT係数列は、誤差算出部18及び符号化部19に送信される。なお、除算値x(n)/gmの値の小数点以下を切り上げ又は切り下げして得られる値を、整数値um(n)としてもよい。このように、整数値um(n)は除算値xm(n)/gmの値に対応する値であればよい。
次に、量子化部17が、フレームごとに、重み付け正規化MDCT係数列の各係数x(1),・・・,x(N)を正規化利得候補蓄積部16から読み込んだ各利得候補で量子化する(ステップS17)。すなわち、重み付け正規化MDCT係数列の各係数x(n)[1≦n≦N]を各利得候補gm(m=1,…,M)で割り算して得られる除算値x(n)/gmの値の小数点以下を四捨五入して得られる整数値um(n)を量子化MDCT係数とする。フレーム単位の量子化MDCT係数列は、誤差算出部18及び符号化部19に送信される。なお、除算値x(n)/gmの値の小数点以下を切り上げ又は切り下げして得られる値を、整数値um(n)としてもよい。このように、整数値um(n)は除算値xm(n)/gmの値に対応する値であればよい。
このように、量子化部17は、利得候補g1,…,gm,…,gMのそれぞれに対して上記の処理を行うことにより、利得候補g1,…,gm,…,gMにそれぞれ対応する整数値u1(n)[1≦n≦N],…,um(n)[1≦n≦N],…,uM(n)[1≦n≦N]を計算する。
「誤差算出部18」
ステップS15の処理で得られた重み付け正規化MDCT系列と、正規化利得候補蓄積部16から読み込まれた利得候補gmと、ステップS17の処理で得られたフレーム単位の量子化MDCT係数列とが、誤差算出部18の入力となる。量子化による誤差はrm(n)=xm(n)/gm-um(n)[1≦n≦N]で求められる。すなわち、重み付け正規化MDCT係数列の各係数xm(n)を利得候補gmで除算した値からその各係数xm(n)に対応する量子化MDCT係数um(n)を減算した値をその各係数xm(n)に対応する量子化誤差rm(n)とする。
ステップS15の処理で得られた重み付け正規化MDCT系列と、正規化利得候補蓄積部16から読み込まれた利得候補gmと、ステップS17の処理で得られたフレーム単位の量子化MDCT係数列とが、誤差算出部18の入力となる。量子化による誤差はrm(n)=xm(n)/gm-um(n)[1≦n≦N]で求められる。すなわち、重み付け正規化MDCT係数列の各係数xm(n)を利得候補gmで除算した値からその各係数xm(n)に対応する量子化MDCT係数um(n)を減算した値をその各係数xm(n)に対応する量子化誤差rm(n)とする。
このように、誤差算出部18は、利得候補g1,…,gm,…,gMのそれぞれに対して上記の処理を行うことにより、利得候補g1,…,gm,…,gMにそれぞれ対応する量子化誤差r1(n) [1≦n≦N],…,rm(n) [1≦n≦N],…,rM(n) [1≦n≦N]を計算する。
量子化誤差rm(n)の列が、特許請求の範囲の誤差値の列に対応する。
「符号化部19」
次に、符号化部19が、フレームごとに、量子化部17が出力した量子化MDCT係数列(量子化MDCT係数um(n)の列)を符号化し、得られた符号とその符号のビット数を出力する(ステップS19)。
次に、符号化部19が、フレームごとに、量子化部17が出力した量子化MDCT係数列(量子化MDCT係数um(n)の列)を符号化し、得られた符号とその符号のビット数を出力する(ステップS19)。
符号化部19は、例えば量子化MDCT係数列の値の頻度に応じた長さの符号を割り当てる可変長符号化により、平均符号量を小さくできる。可変長符号としてはライス符号、ハフマン符号、算術符号、ランレングス符号などがある。
なお、ここで例示したライス符号化、ランレングス符号化はいずれも周知であるからその詳細な説明を省略する(例えば参考文献1参照)。
(参考文献1)David Salomon, "Data Compression : The Complete Reference," 3rd edition, Springer-Verlag, ISBN-10: 0-387-40697-2, 2004.
このように、符号化部19は、利得候補g1,…,gm,…,gMにそれぞれ対応する可変長符号を計算する。
このように、符号化部19は、利得候補g1,…,gm,…,gMにそれぞれ対応する可変長符号を計算する。
生成された可変長符号は、最適利得選択部112に送信される。
どのような可変長符号化方法が実行されたかは選択情報によって特定される。この選択情報が、復号装置2に送信されるようにしてもよい。
「誤差符号化部110」
整数値である量子化MDCT係数列の各係数um(1),…,um(N)の可変長符号化の結果、量子化MDCT係数列を表現するに必要なビット数がわかり、想定されたビット数から圧縮によって得られた余剰ビットがわかる。もし、フレームをまたがってビットをやりくりできるならば、余剰ビットは次のフレーム以降で有効利用できる。もし、フレーム内では固定のビット数が割り当てられる場合には別の符号化で有効利用する必要があり、そうでなければ可変長符号化による平均ビット数の削減の意味がなくなる。
整数値である量子化MDCT係数列の各係数um(1),…,um(N)の可変長符号化の結果、量子化MDCT係数列を表現するに必要なビット数がわかり、想定されたビット数から圧縮によって得られた余剰ビットがわかる。もし、フレームをまたがってビットをやりくりできるならば、余剰ビットは次のフレーム以降で有効利用できる。もし、フレーム内では固定のビット数が割り当てられる場合には別の符号化で有効利用する必要があり、そうでなければ可変長符号化による平均ビット数の削減の意味がなくなる。
そこで、本実施形態では、誤差符号化部110が、余剰ビットの全部又は一部を使って、量子化誤差rm(n)=xm(n)/gm-um(n)を符号化する。なお、余剰ビットの全部又は一部を用いることを、余剰ビットを用いると略記することにする。量子化誤差r(n)の符号化に使われなかった余剰ビットは、他の用途、例えば利得gの補正に用いられる。量子化誤差rm(n)は、量子化による四捨五入での誤差であるので、-0.5から+0.5までにほぼ均等に分布する。任意のビット数ですべてのサンプル(例えば256点)を符号化するために、余剰ビットによって符号化方法、対象とするサンプルの位置の規則を決めておく。余剰ビットで再構成する系列をqm(n)とし、フレーム全体の誤差E=Σn∈N(rm(n)-qm(n))2を最小化することが目的である。
誤差符号化部110は、まず、重み付け正規化MDCT係数列の符号量として予め設定されたビット数から符号化部19が出力した可変長符号のビット数を減算したものを余剰ビット数として算出する。次に、誤差算出部18で得られた量子化誤差列を余剰ビット数で符号化し、得られた誤差符号と誤差符号に対応する復号量子化誤差の列とを出力する(ステップS110)。
誤差符号化部110は、利得候補g1,…,gm,…,gMにそれぞれ対応する誤差符号と誤差符号に対応する復号量子化誤差の列(q1(1),…,q1(N)),…, (qm(1),…,qm(N)),…, (qM(1),…,qM(N))とを生成する。誤差符号は、最適利得選択部112に送信される。
それぞれの利得候補に対する誤差符号化の具体例を以下に示す。
<誤差符号化の具体例1>
具体例1は、量子化誤差の値を符号化する際に、複数のサンプルをまとめてベクトル量子化を行うものである。具体例1の動作は下記の通りである。
具体例1は、量子化誤差の値を符号化する際に、複数のサンプルをまとめてベクトル量子化を行うものである。具体例1の動作は下記の通りである。
誤差符号化部110内の符号帳記憶部に、余剰ビット数の取り得る値ごとの符号帳を予め格納しておく。各符号帳には、その各符号帳に対応する余剰ビット数で表現可能な個数の量子化誤差の系列と同じサンプル数のベクトルと、そのベクトルに対応する符号とが対応付けて予め格納されている。
誤差符号化部110は、余剰ビット数を算出した後に、算出された余剰ビット数に対応する符号帳を符号帳記憶部に格納された符号帳から選択し、選択された符号帳を用いてベクトル量子化を行なう。符号帳を選択した後の符号化処理は一般的なベクトル量子化と同じである。すなわち、選択された符号帳の各ベクトルと入力された量子化誤差の系列との距離が最小となるか、それらの相関が最大となるベクトルを復号量子化誤差の列(qm(1),…,qm(N))として出力するとともに、当該ベクトルに対応する符号を誤差符号として出力する。
なお、上記の説明では、符号帳に格納されるベクトルは、量子化誤差の系列と同じサンプル数としたが、符号帳に格納されるベクトルのサンプル数を量子化誤差の系列の整数分の1とし、量子化誤差の系列を複数の部分毎にベクトル量子化し、得られる複数のベクトルを並べたものを復号量子化誤差の列(qm(1),…,qm(N))として出力するとともに、得られる複数の符号を誤差符号としても良い。
<誤差符号化部110の具体例2>
具体例2は、量子化誤差列に含まれる量子化誤差を1サンプルずつ符号化する方法であって、量子化誤差列に含まれる量子化誤差サンプルについての優先順位をきめて、優先順位の高い量子化誤差サンプルから余剰ビット数で符号化可能なもののみを符号化するものである。例えば、量子化誤差の絶対値又はエネルギーが大きい量子化誤差サンプルから優先的に符号化する。具体例2の方法は、具体例1の方法のようにテーブル(符号帳)中に符号系列を蓄積したり、入力と符号系列の距離計算をしたりする必要が無い。このため、具体例2の方法には、具体例1の方法よりもメモリ量と演算量が少なくて済むという利点がある。具体例2の方法は、具体例1の方法のような任意のビット数に対応するために個別の符号帳も不要である。このため、具体例2の方法には、簡易な構成で実装できるという利点もある。
具体例2は、量子化誤差列に含まれる量子化誤差を1サンプルずつ符号化する方法であって、量子化誤差列に含まれる量子化誤差サンプルについての優先順位をきめて、優先順位の高い量子化誤差サンプルから余剰ビット数で符号化可能なもののみを符号化するものである。例えば、量子化誤差の絶対値又はエネルギーが大きい量子化誤差サンプルから優先的に符号化する。具体例2の方法は、具体例1の方法のようにテーブル(符号帳)中に符号系列を蓄積したり、入力と符号系列の距離計算をしたりする必要が無い。このため、具体例2の方法には、具体例1の方法よりもメモリ量と演算量が少なくて済むという利点がある。具体例2の方法は、具体例1の方法のような任意のビット数に対応するために個別の符号帳も不要である。このため、具体例2の方法には、簡易な構成で実装できるという利点もある。
優先順位を決める際に例えばパワースペクトル包絡値を参考にすることができる。もちろん、パワースペクトル包絡値と同様に、パワースペクトル包絡値の概算値、パワースペクトル包絡値の推定値、これらの何れかの値を周波数方向で平滑化した値、これらの何れかの値の複数サンプルについての平均値、これらの値の少なくとも何れか1つと大小関係が同一となる値を参考にすることもできるが、以下ではパワースペクトル包絡値を用いる場合についてのみ説明する。図3の例のように、音声や楽音などの音響信号では、量子化対象の周波数領域のサンプル列の振幅傾向(図3の重み付け平坦化後のスペクトル包絡に対応)を音響信号のパワースペクトル包絡(図3の原音のスペクトル包絡に対応)と類似させることにより聴覚的歪を小さくできるので、結果としてパワースペクトル包絡値が大きい場合には、対応する重み付け正規化MDCT係数xm(n)の値も大きい傾向にある。重み付け正規化MDCT係数xm(n)が大きくても量子化誤差rm(n)は-0.5から+0.5の範囲内である。
一方、重み付け正規化MDCT係数xm(n)が非常に小さい値である場合、すなわちステップ幅の1/2より小さい値である場合には重み付け正規化MDCT係数xm(n)を利得候補gmで割り算した結果は0で、量子化誤差rm(n)も0.5より大幅に小さい。すなわち、パワースペクトル包絡値がある程度小さい場合には、重み付け正規化MDCT係数xm(n)の他に量子化誤差rm(n)の符号化をしたところで聴覚品質への影響は小さいので、誤差符号化部110での符号化対象から除外してもよい。パワースペクトル包絡値がある程度大きい場合にはどのサンプルの量子化誤差が大きいかはわからないので、例えばもとのサンプルの周波数軸上での位置の小さい順(周波数が低い順)、又は、パワースペクトル包絡値の大きい順に余剰ビット分だけ、量子化誤差のサンプルrm(n)の符号化を各1ビットで行う。また、パワースペクトル包絡値が一定以下の場合を除外するだけでもよい。
量子化誤差系列を符号化するにあたって、ある量子化誤差サンプルの値rm(n)=xとして、その量子化による歪をE=∫0 0.5f(x)(x-μ)2dxとする。ここでf(x)は確率分布関数、μは復号装置での再構成値の絶対値である。量子化による歪Eを最小化するためには、dE/dμ=0とするようにμを決めればよい。すなわち、μは量子化誤差rm(n)の確率分布の重心点とすればよい。
重み付け正規化MDCT係数xm(n)を利得候補gmで割り算して四捨五入した結果、すなわち対応する量子化MDCT係数um(n)の値が0でないなら、量子化誤差rm(n)の分布はほぼ均一であり、μ=0.25とできる。
重み付け正規化MDCT係数xm(n)を利得候補gmで割り算して四捨五入した結果、すなわち対応する量子化MDCT係数um(n)の値が0なら、量子化誤差rm(n)の分布は0に集中する傾向があるので、その分布の重心をμの値として使う必要がある。
この場合、対応する量子化MDCT係数um(n)の値が0となる複数の量子化誤差サンプルごとに、符号化の対象とする量子化誤差サンプルを選択して、その選択された量子化誤差サンプルの複数の量子化誤差サンプルにおける位置と、その選択された量子化誤差サンプルの値とを符号化して誤差符号として復号装置2に送信してもよい。例えば、対応する量子化MDCT係数um(n)の値が0となる4個の量子化誤差サンプルのうち、値の絶対値が最も大きい量子化誤差サンプルを選択し、その選択された量子化誤差サンプルの値を量子化(例えば+か−かを決定)してその情報を1ビットで送るとともに、その選択された量子化誤差サンプルの位置を2ビットで送る。選択されなかった量子化誤差サンプルは符号が復号装置2に送られないので、復号装置2における復号値は0とする。一般に、2s個のサンプルの何れの位置のサンプルを選択したかを復号装置に伝えるためにはsビット必要である。
この際のμは、複数サンプル単位で量子化誤差の値の絶対値が最も大きいサンプルだけの分布の重心の値を使えばよい。
余剰ビット数が多い場合には図4のように複数の系列の組み合わせでまばらなサンプルを表現できる。第1の系列は4個の位置のどれか1個のみ(指定に2ビット)に+か−のパルスをたて、他の位置は0とすることができる。すなわち、第1の系列の表現に3ビット必要になる。同様に第2の系列、第5の系列までで計15ビットで符号化できる。
余剰ビット数をU、量子化誤差列を構成する量子化誤差サンプルの個数のうち、対応する量子化MDCT係数um(n)の値が0でないものの量子化誤差サンプルの個数をT、対応する量子化MDCT係数um(n)の値が0である量子化誤差サンプルの個数をSとするとき、次のような手順で符号化を行うことができる。
(A)U≦Tの場合
誤差符号化部110は、量子化誤差列のうちの対応する量子化MDCT係数um(n)の値が0でないT個の量子化誤差サンプルのうち、対応するパワースペクトル包絡値が大きいものからU個選択して、選択されたそれぞれの量子化誤差サンプルに対して、量子化誤差サンプルの正負を表わす情報である1ビットの符号を生成して、生成したUビットの符号を誤差符号として出力する。また、選択されたそれぞれの量子化誤差サンプルに対しては、量子化誤差サンプルの正負を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25を復号量子化誤差qm(n)とし、選択されなかったそれぞれの量子化誤差サンプルに対しては0を復号量子化誤差qm(n)として、得られる復号量子化誤差の列(qm(1),…,qm(N))を出力する。なお、対応するパワースペクトル包絡値が同一である場合は、例えば、より周波数軸上での位置の小さい量子化誤差サンプル(周波数が低い量子化誤差サンプル)を選択する等の予め定めた規則に従って選択する。
誤差符号化部110は、量子化誤差列のうちの対応する量子化MDCT係数um(n)の値が0でないT個の量子化誤差サンプルのうち、対応するパワースペクトル包絡値が大きいものからU個選択して、選択されたそれぞれの量子化誤差サンプルに対して、量子化誤差サンプルの正負を表わす情報である1ビットの符号を生成して、生成したUビットの符号を誤差符号として出力する。また、選択されたそれぞれの量子化誤差サンプルに対しては、量子化誤差サンプルの正負を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25を復号量子化誤差qm(n)とし、選択されなかったそれぞれの量子化誤差サンプルに対しては0を復号量子化誤差qm(n)として、得られる復号量子化誤差の列(qm(1),…,qm(N))を出力する。なお、対応するパワースペクトル包絡値が同一である場合は、例えば、より周波数軸上での位置の小さい量子化誤差サンプル(周波数が低い量子化誤差サンプル)を選択する等の予め定めた規則に従って選択する。
(B)T<U≦T+Sの場合
誤差符号化部110は、量子化誤差列のうちの対応する量子化MDCT係数um(n)の値が0でないT個の量子化誤差サンプルのそれぞれについて、量子化誤差サンプルの正負を表わす情報である1ビットの符号を生成するとともに、それぞれの量子化誤差サンプルに対して、量子化誤差サンプルの正負を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25を復号量子化誤差qm(n)とする。
誤差符号化部110は、量子化誤差列のうちの対応する量子化MDCT係数um(n)の値が0でないT個の量子化誤差サンプルのそれぞれについて、量子化誤差サンプルの正負を表わす情報である1ビットの符号を生成するとともに、それぞれの量子化誤差サンプルに対して、量子化誤差サンプルの正負を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25を復号量子化誤差qm(n)とする。
誤差符号化部110はまた、U-Tビットで量子化誤差系列のうちの対応する量子化MDCT係数um(n)の値が0である量子化誤差サンプルを符号化する。対応する量子化MDCT係数um(n)の値が0である量子化誤差サンプルが複数ある場合には、対応するパワースペクトル包絡値が大きいものから優先して符号化する。具体的には、対応する量子化MDCT係数um(n)の値が0である量子化誤差サンプルのうち、対応するパワースペクトル包絡値が大きいものからU-T個のそれぞれについて、量子化誤差サンプルの正負を表わす1ビットの符号を生成するとともに、0.25より小さい予め定められた正の値である再構成値の絶対値Aに量子化誤差サンプルの正負を与えて得られる再構成値+A又は-Aを復号量子化誤差qm(n)とする。または、対応する量子化MDCT係数um(n)の値が0である量子化誤差サンプルのうち、対応するパワースペクトル包絡値が大きいものから複数個を取り出し、複数個の量子化誤差サンプルごとにベクトル量子化して、U-Tビットの符号を生成するとともに、符号に対応するベクトルを当該複数個の量子化誤差サンプルに対応する復号量子化誤差qm(n)とする。なお、対応するパワースペクトル包絡値が同一である場合は、例えば、より周波数軸上での位置の小さい量子化誤差サンプル(周波数が低い量子化誤差サンプル)を選択する等の予め定めた規則に従って選択する。
誤差符号化部110はさらに、生成したUビットの符号とU-Tビットの符号とを合わせたものを誤差符号として出力するとともに、各復号量子化誤差qm(n)により構成される復号量子化誤差の列(qm(1),…,qm(N))を出力する。
(C)T+S<Uの場合
誤差符号化部110は、量子化誤差系列に含まれるすべての量子化誤差サンプルのそれぞれについて、量子化誤差サンプルの正負を表わす1ビットの1巡目符号を生成するとともに、量子化誤差サンプルの正負を1巡目の再構成値の絶対値0.25に与えて得られる1巡目の再構成値+0.25又は-0.25をその量子化誤差サンプルに対応する1巡目復号量子化誤差qm1(n)とする。
誤差符号化部110は、量子化誤差系列に含まれるすべての量子化誤差サンプルのそれぞれについて、量子化誤差サンプルの正負を表わす1ビットの1巡目符号を生成するとともに、量子化誤差サンプルの正負を1巡目の再構成値の絶対値0.25に与えて得られる1巡目の再構成値+0.25又は-0.25をその量子化誤差サンプルに対応する1巡目復号量子化誤差qm1(n)とする。
また、誤差符号化部110は、残りのU-(T+S)ビットを使って(A)や(B)の手順で量子化誤差サンプルを更に符号化する。すなわち、U-(T+S)を新たなUとして1巡目の符号化の誤差についてさらに2巡目の(A)を実行する。すなわち、結果的には、少なくとも一部の量子化誤差サンプルについて、量子化誤差サンプルあたり2ビットの量子化を行うことになる。1巡目の符号化では量子化誤差rm(n)の値は-0.5から+0.5の範囲内で一様であったが、2巡目の符号化の対象となる1巡目の誤差の値は-0.25から+0.25の範囲内になる。
具体的には、誤差符号化部110は、量子化誤差系列を構成する量子化誤差サンプルのうち、対応する量子化MDCT係数um(n)の値が0でなく、かつ、量子化誤差rm(n)の値が正である量子化誤差サンプルについては、量子化誤差サンプルの値から1巡目の再構成値である0.25を減算して得られた値について、その正負を表わす1ビットの2巡目符号を生成するとともに、量子化誤差サンプルの値から1巡目の再構成値である0.25を減算して得られた値の正負を2巡目の再構成値の絶対値0.125に与えて得られる2巡目の再構成値+0.125または-0.125を2巡目復号量子化誤差qm2(n)とする。
また、誤差符号化部110は、量子化誤差系列を構成する誤差サンプルのうち、対応する量子化MDCT係数um(n)の値が0でなく、かつ、量子化誤差rm(n)の値が負である量子化誤差サンプルについては、量子化誤差サンプルの値から1巡目の再構成値である-0.25を減算して得られた値について、その正負を表わす1ビットの2巡目符号を生成するとともに、量子化誤差サンプルの値から1巡目の再構成値である-0.25を減算して得られた値の正負を2巡目の再構成値の絶対値0.125に与えて得られる2巡目の再構成値+0.125または-0.125を2巡目復号量子化誤差qm2(n)とする。
また、誤差符号化部110は、量子化誤差系列を構成する誤差サンプルのうち、対応する量子化MDCT係数um(n)の値が0であり、かつ、量子化誤差rm(n)の値が正である量子化誤差サンプルについては、量子化誤差サンプルの値から1巡目の再構成値であるA(Aは、0.25より小さい予め定められた正の値)を減算して得られた値について、その正負を表わす1ビットの2巡目符号を生成するとともに、量子化誤差サンプルの値から1巡目の再構成値であるAを減算して得られた値の正負を2巡目の再構成値の絶対値A/2に与えて得られる2巡目の再構成値+A/2または-A/2を2巡目復号量子化誤差qm2(n)とする。
さらに、誤差符号化部110は、量子化誤差系列を構成する誤差サンプルのうち、対応する量子化MDCT係数um(n)の値が0であり、かつ、量子化誤差rm(n)の値が負である量子化誤差サンプルについては、量子化誤差サンプルの値から1巡目の再構成値である-A(Aは、0.25より小さい予め定められた正の値)を減算して得られた値について、その正負を表わす1ビットの2巡目符号を生成するとともに、量子化誤差サンプルの値から1巡目の再構成値である-Aを減算して得られた値の正負を2巡目の再構成値の絶対値A/2に与えて得られる2巡目の再構成値+A/2または-A/2を2巡目復号量子化誤差qm2(n)とする。
さらに、誤差符号化部110は、生成した1巡目符号と2巡目符号とを合わせたものを誤差符号として出力するとともに、1巡目復号量子化誤差qm1(n)と2巡目復号量子化誤差qm2(n)とを加算して得られる復号量子化誤差qm(n) により構成される復号量子化誤差の列(qm(1),…,qm(N))を出力する。
量子化誤差系列のうちのT+S個の量子化誤差サンプルのすべてを符号化しない場合や、対応する量子化MDCT係数um(n)の値が0である量子化誤差サンプルを複数まとめてサンプルあたり1ビット以下で符号化する場合は、Uビットより少ないUUビットで量子化誤差系列を符号化することになるので、(C)の条件はT+S<UUの場合とすればよい。
なお、上記の(A)及び(B)のパワースペクトル包絡値の代わりに、パワースペクトル包絡値の概算値又はパワースペクトル包絡値の推定値を用いてもよい。
また、上記の(A)及び(B)のパワースペクトル包絡値の代わりに、パワースペクトル包絡値、パワースペクトル包絡値の概算値又はパワースペクトル包絡値の推定値を周波数方向で平滑化して得られる値を用いてもよい。平滑化して得られる値として、重み付け包絡正規化部15で得られた重み付けスペクトル包絡係数を誤差符号化部110に入力して用いてもよいし、誤差符号化部110で算出してもよい。
また、上記の(A)及び(B)のパワースペクトル包絡値の代わりに、複数のパワースペクトル包絡値を平均した値を用いてもよい。例えば、W''(4n-3)= W''(4n-2)=W''(4n-1)= W''(4n)=(W(4n-3) + W(4n-2)+ W(4n-1) + W(4n))/4 [1≦n≦N/4]として求めた、N個のW''(n)を用いてもよい。また、パワースペクトル包絡値W(n) [1≦n≦N]の代わりに、パワースペクトル包絡値の概算値の平均値、パワースペクトル包絡値の推定値の平均値を用いてもよい。さらに、パワースペクトル包絡値、パワースペクトル包絡値の概算値又はパワースペクトル包絡値の推定値を周波数方向で平滑化して得られる値の平均値を用いてもよい。ここでの平均値は、対象となる値を複数サンプルについて平均した値、すなわち複数サンプルの対象となる値を平均した値である。
また、上記の(A)及び(B)のパワースペクトル包絡値の代わりに、パワースペクトル包絡値と、パワースペクトル包絡値の概算値と、パワースペクトル包絡値の推定値と、これらの何れかの値を平滑化して得られる値と、これらの何れかの値を複数のサンプルについて平均して得られる値との少なくとも何れか1つと大小関係が同一となる値を用いてもよい。この場合は、大小関係が同一となる値を誤差符号化部110で算出して用いる。大小関係が同一となる値とは、二乗値や平方根などである。例えば、パワースペクトル包絡値W(n)[1≦n≦N]と大小関係が同一となる値はパワースペクトル包絡値の二乗値である(W(n))2[1≦n≦N]やパワースペクトル包絡値の平方根である(W(n))1/2[1≦n≦N]である。
なお、パワースペクトル包絡値の平方根やその平滑化後の値が重み付け包絡正規化部15で得られている場合は、重み付け包絡正規化部15で得られたものを誤差符号化部110に入力して用いてもよい。
なお、図1に破線で例示するように、並び替え部111を設けて、量子化MDCT係数列を並び替えてもよい。この場合、符号化部19は、並び替え部111により並び替えられた量子化MDCT係数列を可変長符号化する。特に周期性に基づく量子化MDCT係数列の並び替えでは可変長符号化でビット数を大きく削減できる場合があるので、誤差の符号化による改善が期待できる。
並び替え部111は、フレームごとに、(1)量子化MDCT係数列の全てのサンプルを含み、かつ、(2)サンプルの大きさを反映する指標が同等か同程度のサンプルが集まるように量子化MDCT係数列に含まれる少なくとも一部のサンプルを並べ替えたもの、を並べ替え後のサンプル列として出力する(ステップS111)。ここで「サンプルの大きさを反映する指標」とは、例えばサンプルの振幅の絶対値やパワー(自乗値)であるが、これらに限定されない。並び替え部111の詳細は、特願2010−225949号(PCT/JP2011/072752)を参照のこと。
このように、並び替え部111は、除算値u1(n),…,um(n),…,uM(n)のそれぞれを並び替える。
「最適利得選択部112」
最適利得選択部112には、量子化誤差r1(n),…,rm(n),…,rM(n)、復号量子化誤差q1(n),…,qm(n),…,qM(n)、利得候補g1,…,gm,…,gM、M個の可変長符号及びM個の誤差符号が例えば入力される。
最適利得選択部112には、量子化誤差r1(n),…,rm(n),…,rM(n)、復号量子化誤差q1(n),…,qm(n),…,qM(n)、利得候補g1,…,gm,…,gM、M個の可変長符号及びM個の誤差符号が例えば入力される。
最適利得選択部112は、復号量子化誤差の列に最も近い誤差値の列を有する利得候補を最適利得として、最適利得に対応する利得情報、可変長符号及び誤差符号を出力する(ステップS112)。出力された利得情報、可変長符号及び誤差符号は、復号装置2に送信される符号の一部となる。
例えば、量子化誤差rm(n)と復号量子化誤差qm(n)との差分の二乗の和Σn∈N(rm(n)-qm(n))2を最小にする利得候補gmを最適利得とする。また、量子化誤差rm(n)と復号量子化誤差qm(n)との相関、すなわち量子化誤差の列(rm(1),…,rm(N))と復号量子化誤差の列(qm(1),…,qm(N))との相関を最大にする利得候補gmを最適利得としてもよい。また、量子化誤差の列(rm(1),…,rm(N))と復号量子化誤差の列(qm(1),…,qm(N))との内積を最大にする利得候補gmを最適利得としてもよい。さらに、量子化誤差の列(rm(1),…,rm(N))の形状と復号量子化誤差の列(qm(1),…,qm(N))の形状が最も似ている利得候補gmを最適利得としてもよい。
このように、復号量子化誤差の列に最も近い誤差値の列を有する利得候補である最適利得に対応する利得情報、可変長符号及び誤差符号を出力することにより、最終的な符号量を調べることなく符号化を行うことができる。
[復号]
続いて図5から図6を参照して復号処理を説明する。
続いて図5から図6を参照して復号処理を説明する。
復号装置2では、符号化装置1による符号化処理と逆順の処理でMDCT係数が再構成される。この実施形態では、復号装置2に入力される符号は、可変長符号、誤差符号、利得情報、線形予測係数符号を含む。なお、符号化装置1から選択情報が出力された場合にはこの選択情報も復号装置2に入力される。
図5に示すように、復号装置2は、復号部21、パワースペクトル包絡算出部22、誤差復号部23、利得復号部24、加算部25、重み付け包絡逆正規化部26、時間領域変換部27を例えば備える。復号装置2は、図6に例示された復号方法の各処理を行う。以下、復号装置2の各処理を説明する。
「復号部21」
まず、復号部21が、フレームごとに、入力された符号に含まれる可変長符号を復号して、復号量子化MDCT係数u(n)の列と、可変長符号のビットの個数とを出力する(ステップS21)。当然であるが、符号列を得るために実行された可変長符号化方法に対応する可変長復号方法が実行される。復号部21による復号処理の詳細は符号化装置1の符号化部19による符号化処理の詳細に対応するので、当該符号化処理の説明をここに援用し、実行された符号化に対応する復号が復号部21の行う復号処理であることを明記し、これをもって復号処理の詳細な説明とする。
まず、復号部21が、フレームごとに、入力された符号に含まれる可変長符号を復号して、復号量子化MDCT係数u(n)の列と、可変長符号のビットの個数とを出力する(ステップS21)。当然であるが、符号列を得るために実行された可変長符号化方法に対応する可変長復号方法が実行される。復号部21による復号処理の詳細は符号化装置1の符号化部19による符号化処理の詳細に対応するので、当該符号化処理の説明をここに援用し、実行された符号化に対応する復号が復号部21の行う復号処理であることを明記し、これをもって復号処理の詳細な説明とする。
なお、どのような可変長符号化方法が実行されたかは選択情報によって特定される。選択情報に、例えば、ライス符号化の適用領域とライスパラメータを特定する情報と、ランレングス符号化の適用領域を表す情報と、エントロピー符号化の種類を特定する情報が含まれている場合には、これらの符号化方法に応じた復号方法が入力された符号列の対応する領域に適用される。ライス符号化に対応する復号処理、エントロピー符号化に対応する復号処理、ランレングス符号化に対応する復号処理はいずれも周知であるから説明を省略する(例えば上記参考文献1参照)。
「パワースペクトル包絡算出部22」
パワースペクトル包絡算出部22は、符号化装置1から入力された線形予測係数符号を復号して量子化済み線形予測係数を得て、得られた量子化済み線形予測係数を周波数領域に変換してパワースペクトル包絡を求める(ステップS22)。量子化済み線形予測係数からパワースペクトル包絡を求める処理は符号化装置1のパワースペクトル包絡算出部14と同じである。
パワースペクトル包絡算出部22は、符号化装置1から入力された線形予測係数符号を復号して量子化済み線形予測係数を得て、得られた量子化済み線形予測係数を周波数領域に変換してパワースペクトル包絡を求める(ステップS22)。量子化済み線形予測係数からパワースペクトル包絡を求める処理は符号化装置1のパワースペクトル包絡算出部14と同じである。
また、パワースペクトル包絡の代わりに、パワースペクトル包絡値の概算値やパワースペクトル包絡値の推定値を算出してもよいことも符号化装置1のパワースペクトル包絡算出部14と同じである。ただし、符号化装置1のパワースペクトル包絡算出部14と同一種類の値を求める必要がある。例えば、符号化装置1のパワースペクトル包絡算出部14でパワースペクトル包絡値の概算値を求めた場合には、復号装置2のパワースペクトル包絡算出部22でもパワースペクトル包絡値の概算値を求める。
復号装置2の別手段で線形予測係数符号に対応する量子化済み線形予測係数が求められている場合はその量子化済み線形予測係数を用いてパワースペクトル包絡を算出すれば良い。また、復号装置2の別手段でパワースペクトル包絡が算出されている場合は、復号装置2はパワースペクトル包絡算出部22を備えていなくてもよい。
「誤差復号部23」
誤差復号部23は、まず、量子化MDCT係数列の符号量として予め設定されたビット数から復号部21が出力したビット数を減算した数を余剰ビット数として算出する。次に符号化装置1の誤差符号化部110が出力した誤差符号を、符号化装置1の誤差符号化部110に対応する復号方法で復号して復号量子化誤差q(n)を得る(ステップS23)。符号化装置1において量子化誤差列に与えられたビット数は、復号部21でわかる可変長符号化によるビット数に基づく余剰ビット数から求める。余剰ビット数ごとに符号、復号でサンプルや手順を符号化装置1と復号装置2とで対応するように決めておくので、一意に復号できる。
誤差復号部23は、まず、量子化MDCT係数列の符号量として予め設定されたビット数から復号部21が出力したビット数を減算した数を余剰ビット数として算出する。次に符号化装置1の誤差符号化部110が出力した誤差符号を、符号化装置1の誤差符号化部110に対応する復号方法で復号して復号量子化誤差q(n)を得る(ステップS23)。符号化装置1において量子化誤差列に与えられたビット数は、復号部21でわかる可変長符号化によるビット数に基づく余剰ビット数から求める。余剰ビット数ごとに符号、復号でサンプルや手順を符号化装置1と復号装置2とで対応するように決めておくので、一意に復号できる。
<誤差復号の具体例1>(符号化装置1の<誤差符号化の具体例1>に対応)
誤差復号部23内の符号帳記憶部に、余剰ビット数の取り得る値ごとの符号帳を予め格納しておく。各符号帳には、その各符号帳に対応する余剰ビット数で表現可能な個数の復号量子化誤差の系列と同じサンプル数のベクトルと、そのベクトルに対応する符号、とが対応付けて予め格納される。
誤差復号部23内の符号帳記憶部に、余剰ビット数の取り得る値ごとの符号帳を予め格納しておく。各符号帳には、その各符号帳に対応する余剰ビット数で表現可能な個数の復号量子化誤差の系列と同じサンプル数のベクトルと、そのベクトルに対応する符号、とが対応付けて予め格納される。
誤差復号部23は、余剰ビット数を算出した後に、算出された余剰ビット数に対応する符号帳を符号帳記憶部に格納された符号帳から選択し、選択された符号帳を用いてベクトル逆量子化を行なう。符号帳を選択した後の復号処理は一般的なベクトル逆量子化と同じである。すなわち、選択された符号帳の各ベクトルのうち、入力された誤差符号に対応するベクトルを復号量子化誤差q(n)として出力する。
なお、上記の説明では、符号帳に格納されるベクトルは、復号量子化誤差の系列と同じサンプル数としたが、符号帳に格納されるベクトルのサンプル数を復号量子化誤差の系列の整数分の1とし、復号量子化誤差の系列を複数の部分毎に入力された誤差符号に含まれる複数の符号それぞれをベクトル逆量子化しても良い。
<誤差復号部23の具体例2>(符号化装置1の<誤差符号化の具体例2>に対応)
余剰ビット数をU、復号部21が出力した復号量子化MDCT係数u(n)の値が0でないもののサンプル数をT、復号部21が出力した復号量子化MDCT係数u(n)の値が0であるサンプル数をSとするとき、次のような復号手順が好ましい。
余剰ビット数をU、復号部21が出力した復号量子化MDCT係数u(n)の値が0でないもののサンプル数をT、復号部21が出力した復号量子化MDCT係数u(n)の値が0であるサンプル数をSとするとき、次のような復号手順が好ましい。
(A)U≦Tの場合
誤差復号部23は、復号量子化MDCT係数u(n)の値が0でないT個サンプルのうち、対応するパワースペクトル包絡値が大きいものからU個選択して、選択されたそれぞれのサンプルに対して、入力された誤差符号に含まれる1ビットの符号を復号してサンプルの正負の情報を得て、得られた正負の情報を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25を、その復号量子化MDCT係数u(n)に対応する復号量子化誤差q(n)として出力する。なお、対応するパワースペクトル包絡値が同一である場合は、例えば、より周波数軸上での位置の小さい量子化誤差サンプル(周波数が低い量子化誤差サンプル)を選択する等の予め定めた規則に従って選択する。例えば、符号化装置1の誤差符号化部110で用いた規則に対応する規則を誤差復号部23に予め保持しておく。
誤差復号部23は、復号量子化MDCT係数u(n)の値が0でないT個サンプルのうち、対応するパワースペクトル包絡値が大きいものからU個選択して、選択されたそれぞれのサンプルに対して、入力された誤差符号に含まれる1ビットの符号を復号してサンプルの正負の情報を得て、得られた正負の情報を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25を、その復号量子化MDCT係数u(n)に対応する復号量子化誤差q(n)として出力する。なお、対応するパワースペクトル包絡値が同一である場合は、例えば、より周波数軸上での位置の小さい量子化誤差サンプル(周波数が低い量子化誤差サンプル)を選択する等の予め定めた規則に従って選択する。例えば、符号化装置1の誤差符号化部110で用いた規則に対応する規則を誤差復号部23に予め保持しておく。
(B)T<U≦=T+Sの場合
誤差復号部23は、復号量子化MDCT係数u(n)の値が0でないサンプルに対して、入力された誤差符号に含まれる1ビットの符号を復号して復号量子化誤差サンプルの正負の情報を得て、得られた正負の情報を再構成値の絶対値0.25に与えて得られる再構成値+0.25または-0.25を、その復号量子化MDCT係数u(n)に対応する復号量子化誤差q(n)として出力する。
誤差復号部23は、復号量子化MDCT係数u(n)の値が0でないサンプルに対して、入力された誤差符号に含まれる1ビットの符号を復号して復号量子化誤差サンプルの正負の情報を得て、得られた正負の情報を再構成値の絶対値0.25に与えて得られる再構成値+0.25または-0.25を、その復号量子化MDCT係数u(n)に対応する復号量子化誤差q(n)として出力する。
誤差復号部23はまた、復号量子化MDCT係数u(n)の値が0であるサンプルのうち、対応するパワースペクトル包絡値が大きいものからU-T個のそれぞれについて、入力された誤差符号に含まれる1ビットの符号を復号して復号量子化誤差サンプルの正負の情報を得て、得られた正負の情報を0.25より小さい予め定められた正の値である再構成値の絶対値Aに与えて得られる再構成値+A又は-Aを、その復号量子化MDCT係数u(n)に対応する復号量子化誤差q(n)として出力する。
または、復号量子化MDCT係数u(n)の値が0であるサンプルのうち、対応するパワースペクトル包絡値が大きいものから複数個に対して、誤差符号に含まれるU-Tビットの符号をベクトル逆量子化して、対応する復号量子化誤差サンプル値の列を得て、得られた各復号量子化誤差サンプル値を、その復号量子化MDCT係数u(n)に対応する復号量子化誤差q(n)として出力する。
このように、量子化MDCT係数u(n)の値及び復号量子化MDCT係数u(n)の値が0でない場合の再構成値の絶対値を例えば0.25とし、量子化MDCT係数u(n)の値及び復号量子化MDCT係数u(n)の値が0である場合の再構成値の絶対値をA(0<A<0.25)とする。これらの再構成値の絶対値は一例であり、量子化MDCT係数u(n)の値及び復号量子化MDCT係数u(n)の値が0でない場合の再構成値の絶対値は、量子化MDCT係数u(n)の値及び復号量子化MDCT係数u(n)の値が0である場合の再構成値の絶対値よりも大きければよい。
なお、対応するパワースペクトル包絡値が同一である場合は、例えば、より周波数軸上での位置の小さいサンプル(周波数が低いサンプル)を選択する等の予め定めた規則に従って選択する。
(C)T+S<Uの場合
誤差復号部23は、復号量子化MDCT係数u(n)の値が0でないサンプルについては、以下の処理を行う。
誤差復号部23は、復号量子化MDCT係数u(n)の値が0でないサンプルについては、以下の処理を行う。
入力された誤差符号に含まれる1ビットの1巡目符号を復号して正負の情報を得て、得られた正負の情報を再構成値の絶対値0.25に与えて得られる再構成値+0.25又は-0.25をその復号量子化MDCT係数u(n)に対応する1巡目復号量子化誤差q1(n)とする。さらに、入力された誤差符号に含まれる1ビットの2巡目符号を復号して正負の情報を得て、得られた正負の情報を再構成値の絶対値0.125に与えて得られる再構成値+0.125または-0.125を2巡目復号量子化誤差q2(n)とする。1巡目復号量子化誤差q1(n)と2巡目復号量子化誤差q2(n)とを加算して復号量子化誤差q(n)とする。
また、誤差復号部23は、復号量子化MDCT係数u(n)の値が0であるサンプルについては、以下の処理を行う。
入力された誤差符号に含まれる1ビットの1巡目符号を復号して正負の情報を得て、得られた正負の情報を0.25より小さい正の値である再構成値の絶対値Aに与えて得られる再構成値+Aまたは-Aを、その復号量子化MDCT係数u(n)に対応する1巡目復号量子化誤差q1(n)とする。さらに、入力された誤差符号に含まれる1ビットの2巡目符号を復号して正負の情報を得て、得られた正負の情報を再構成値の絶対値A/2に与えて得られる再構成値+A/2または-A/2を2巡目復号量子化誤差q2(n)とする。1巡目復号量子化誤差q1(n)と2巡目復号量子化誤差q2(n)とを加算して復号量子化誤差q(n)とする。
このように、対応する量子化MDCT係数u(n)の値及び復号量子化MDCT係数u(n)の値が0である場合もそうでない場合も、2巡目符号に対応する再構成値の絶対値を1巡目符号に対応する再構成値の絶対値の1/2とする。
なお、上記の(A)及び(B)のパワースペクトル包絡値の代わりに、パワースペクトル包絡値の概算値、パワースペクトル包絡値の推定値、これらの何れかの値を平滑化して得られる値、これらの何れかの値を複数のサンプルについて平均して得られる値又はこれらの何れかの値と大小関係が同一となる値の何れかを用いてもよい。ただし、符号化装置1の誤差符号化部110と同一種類の値を用いる必要がある。
「利得復号部24」
利得復号部24は、入力された利得情報を復号して利得gを得て出力する(ステップS24)。利得gは、加算部25に送信される。
利得復号部24は、入力された利得情報を復号して利得gを得て出力する(ステップS24)。利得gは、加算部25に送信される。
「加算部25」
加算部25は、フレームごとに、復号部21が出力した復号量子化MDCT係数列の各係数u(n)と、誤差復号部23が出力した復号量子化誤差系列の対応する各係数q(n)とを加算した加算値を計算する。そして、この加算値に、利得復号部24が出力した利得gを乗じた系列を生成し復号重み付け正規化MDCT係数列とする(ステップS25)。復号重み付け正規化MDCT係数列の各係数をx^(n)と表記する。x^(n)=(u(n)+q(n))*gである。
加算部25は、フレームごとに、復号部21が出力した復号量子化MDCT係数列の各係数u(n)と、誤差復号部23が出力した復号量子化誤差系列の対応する各係数q(n)とを加算した加算値を計算する。そして、この加算値に、利得復号部24が出力した利得gを乗じた系列を生成し復号重み付け正規化MDCT係数列とする(ステップS25)。復号重み付け正規化MDCT係数列の各係数をx^(n)と表記する。x^(n)=(u(n)+q(n))*gである。
「重み付け包絡逆正規化部26」
次に、重み付け包絡逆正規化部26が、フレームごとに、復号重み付け正規化MDCT係数列の各係数x^(n)にパワースペクトル包絡値を除算することでMDCT係数列を得る(ステップS26)。
次に、重み付け包絡逆正規化部26が、フレームごとに、復号重み付け正規化MDCT係数列の各係数x^(n)にパワースペクトル包絡値を除算することでMDCT係数列を得る(ステップS26)。
「時間領域変換部27」
次に、時間領域変換部27が、フレームごとに、重み付け包絡逆正規化部26が出力したMDCT係数列を時間領域に変換してフレーム単位の音声音響ディジタル信号を得る(ステップS27)。
次に、時間領域変換部27が、フレームごとに、重み付け包絡逆正規化部26が出力したMDCT係数列を時間領域に変換してフレーム単位の音声音響ディジタル信号を得る(ステップS27)。
ステップS26からS27の各処理は従来的処理であるから詳細な説明を省略した。
なお、符号化装置1において並び替え部111による並び替え処理が行われている場合には、復号部21が生成した復号量子化MDCT係数u(n)の列は、復号装置2の並び替え部により並び替えられて(ステップS28)、この並び替えられた復号量子化MDCT係数u(n)の列が、誤差復号部23及び加算部25に送信される。この場合、誤差復号部23及び加算部25は、復号部21が生成した復号量子化MDCT係数u(n)の列に代えて、並び替えられた復号量子化MDCT係数u(n)の列に対して上記と同様の処理を行う。
このように、可変長符号化による圧縮効果を利用することにより、フレーム内のビット数の総計が一定の場合にでも、量子化歪の軽減や符号量の削減が可能である。
[符号化装置、復号装置のハードウェア構成例]
上述の実施形態に関わる符号化装置1、復号装置2は、キーボードなどが接続可能な入力部と、液晶ディスプレイなどが接続可能な出力部と、CPU(Central Processing Unit)、メモリであるRAM(Random Access Memory)やROM(Read Only Memory)と、ハードディスクである外部記憶装置と、これらの入力部、出力部、CPU、RAM、ROM、外部記憶装置間のデータのやり取りが可能なように接続するバスとを例えば備えている。また、必要に応じて、符号化装置1、復号装置2に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けてもよい。
上述の実施形態に関わる符号化装置1、復号装置2は、キーボードなどが接続可能な入力部と、液晶ディスプレイなどが接続可能な出力部と、CPU(Central Processing Unit)、メモリであるRAM(Random Access Memory)やROM(Read Only Memory)と、ハードディスクである外部記憶装置と、これらの入力部、出力部、CPU、RAM、ROM、外部記憶装置間のデータのやり取りが可能なように接続するバスとを例えば備えている。また、必要に応じて、符号化装置1、復号装置2に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けてもよい。
符号化装置1、復号装置2の外部記憶装置には、符号化、復号を実行するためのプログラム又はこのプログラムの処理において必要となるデータなどが記憶されている。外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。以下、データやその格納領域のアドレスなどを記憶する記憶装置を単に「記憶部」と呼ぶことにする。
符号化装置1の記憶部には、音声音響信号に由来する周波数領域のサンプル列の符号化、誤差の符号化のためのプログラムなどが記憶されている。
復号装置2の記憶部には、入力された符号を復号するためのプログラムなどが記憶されている。
符号化装置1では、記憶部に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAMに読み込まれて、CPUで解釈実行・処理される。この結果、CPUが所定の機能(例えば、誤差算出部18、誤差符号化部110、符号化部19)を実現することで符号化が実現される。
復号装置2では、記憶部に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAMに読み込まれて、CPUで解釈実行・処理される。この結果、CPUが所定の機能(例えば、復号部21)を実現することで復号が実現される。
〔第二実施形態〕
第二実施形態の符号化装置1は、M個の利得候補g1,…,gm,…,gMを記憶する正規化利得候補蓄積部16に代えて、最適な利得を計算する正規化利得計算部113を備え、この最適な利得に基づいて符号化を行う。以下、第一実施形態と異なる部分を中心に説明をする。第一実施形態と同様の部分については重複説明を省略する。
第二実施形態の符号化装置1は、M個の利得候補g1,…,gm,…,gMを記憶する正規化利得候補蓄積部16に代えて、最適な利得を計算する正規化利得計算部113を備え、この最適な利得に基づいて符号化を行う。以下、第一実施形態と異なる部分を中心に説明をする。第一実施形態と同様の部分については重複説明を省略する。
第二実施形態の符号化装置1は、図7に例示するように、正規化利得候補蓄積部16に代えて正規化利得計算部113を備える。第二実施形態の符号化装置1は、図8に例示された各処理を行う。
周波数領域変換部11によるステップS11の処理、線形予測分析部12によるステップS12の処理、線形予測係数量子化符号化部13によるステップS13の処理、パワースペクトル包絡算出部14によるステップS14の処理、重み付け包絡正規化部15によるステップS15の処理は、第一実施形態と同様であるため説明を省略する。
図9の例のように、利得(ステップ幅)の値によって量子化後の系列の周期的成分が大きく異なる場合がある。図9の紙面の上に示した量子化前の系列を、相対的に小さい利得で量子化した後の系列である第一の量子化後の系列を図9の紙面の中央に示し、相対的に大きい利得で量子化した後の系列である第二の量子化後の系列を図9の紙面の下に示す。図9の横軸は周波数サンプル番号であり縦軸は振幅である。第一の量子化後の系列では利得が小さいため、量子化後の系列でも0でないサンプルが多い。ところが、第二の量子化後の系列では利得が大きいため、周期的成分以外のサンプルはほとんど0となり、連続する0の系列が非常に多くなり、可変長符号化による符号量が大幅に少なくなる。すなわち、可変長符号化の圧縮効率が高くなる。周期性を考慮したサンプルの並び替えをした場合には、可変長符号化の圧縮効率の向上の効果は更に大きくなる。この性質を利用して、数多くの利得を試さなくとも、重み付け正規化MDCT係数列から好ましい利得を推定できる。
具体的にはフレーム毎にサンプル列のサンプル値の絶対値について重複がないように一定幅の範囲に区切り、範囲ごとにサンプル値の絶対値が出現する回数を集計する。すなわち、振幅のヒストグラムを作る。出現回数が急に小さくなるサンプル値の絶対値の2倍付近の値又はその値以上の値が最適な利得の候補となる。例えば、ある範囲における出現回数と絶対値が小さい側の隣の範囲における出現回数との差が最大となる範囲を見つけ、その範囲の下限の値の2倍以上の値を利得とすればよい。換言すれば、その範囲と隣の範囲との境界値の2倍以上の値を利得とすればよい。例えば、境界値の2倍の値を利得とする。図10の例では、範囲Aの出現回数と範囲Bの出現回数との差が最大となる。したがって、範囲Aと範囲Bの境界値の2倍の値を利得としている。
その利得では、割り算と四捨五入により量子化後の値が0をとるサンプルが急に多くなり、特に並び替えによって可変長符号の情報量を大きく削減でき、削減できた情報で誤差信号の追加の量子化を行うことで歪を削減できる。
上記知見に基づいて、正規化利得計算部113は、重み付け包絡正規化部15が出力した正規化MDCT係数列の各サンプルの値の絶対値が、これらのサンプル値の絶対値についての、一定の幅を有し、かつ、互いに重複しない複数の範囲のそれぞれに属する個数を計数する。そして、隣接する2つの範囲のそれぞれに属するサンプルの個数の差が最大になる隣接する2つの範囲の境界値の2倍の値を得て、境界値の2倍以上の値であり、かつ、境界値の2倍の値と一番近い量子化値に対応する利得情報を生成するとともに、当該量子化値を利得gとする(ステップS113)。得られた利得gは、量子化部17及び誤差算出部18に送信される。また、利得情報は復号装置2に送信される符号の一部とされる。ここで、利得情報とは、例えば、利得gを二進数で表現したものと一対一に対応する符号や、利得gを可変長符号化して得られる符号である。なお、量子化精度を高くした場合は、境界値の2倍の値そのものが利得gとなる場合もある。また、利得gは、境界値の2倍の値そのものまたはその量子化値であることが好ましいが、境界値の2倍の値そのものまたはその量子化値であることは必須ではなく、境界値の2倍以上の値またはその量子化値であれば良い。
第一実施形態では、量子化部17、誤差算出部18、符号化部19、誤差符号化部110及び並び替え部111は、利得候補g1,…,gm,…,gMのそれぞれに対して処理を行ったが、第二実施形態では、これらの部のそれぞれは、正規化利得計算部113により計算された利得gのみに対する処理を行う。その結果生成された利得gに対応する可変長符号及び誤差符号が、復号装置2に送信される。
すなわち、量子化部17は、第一実施形態と同様にして、重み付け正規化MDCT係数列の各係数x(n)[1≦n≦N]を、利得gで割り算して得られる除算値x(n)/gの値の小数点以下を四捨五入して得られる整数値u(n)を量子化MDCT係数とする。(ステップS17)。
誤差算出部18は、第一実施形態と同様にして、量子化誤差r(n)=x(n)/g-u(n)を計算する(ステップS18)。
符号化部19は、第一実施形態と同様にして、量子化MDCT係数um(n)の列を可変長符号化して可変長符号を生成する(ステップS19)。可変長符号は、復号装置2に送信される符号の一部とされる。
誤差符号化部110は、第一実施形態と同様にして、余剰ビットを使って、量子化誤差r(n)の列を符号化して誤差符号を生成する(ステップS110)。誤差符号は、復号装置2に送信される符号の一部とされる。なお、本実施形態の誤差符号化部110は、第一実施形態とは異なり、復号量子化誤差の列は生成しないでよい。
第二実施形態の復号装置2は、第一実施形態の復号装置1と同様である。
〔第三実施形態〕
第三実施形態の符号化装置1は、M個の利得候補g1,…,gm,…,gMを記憶する正規化利得候補蓄積部16に代えて、M個の利得候補g1,…,gm,…,gMを計算により求める正規化利得候補計算部114を備える。他の部分は、第一実施形態と同様である。以下、第一実施形態と異なる部分を中心に説明する。
第三実施形態の符号化装置1は、M個の利得候補g1,…,gm,…,gMを記憶する正規化利得候補蓄積部16に代えて、M個の利得候補g1,…,gm,…,gMを計算により求める正規化利得候補計算部114を備える。他の部分は、第一実施形態と同様である。以下、第一実施形態と異なる部分を中心に説明する。
第三実施形態の符号化装置1は、図11に例示するように、正規化利得候補蓄積部16に代えて正規化利得候補計算部114を備える。第三実施形態の符号化装置1は、図12に例示された各処理を行う。
周波数領域変換部11によるステップS11の処理、線形予測分析部12によるステップS12の処理、線形予測係数量子化符号化部13によるステップS13の処理、パワースペクトル包絡算出部14によるステップS14の処理、重み付け包絡正規化部15によるステップS15の処理は、第一実施形態と同様であるため説明を省略する。
正規化利得候補計算部114は、まず第二実施形態の正規化利得計算部113のステップS113の処理と同様にして、利得gを得て利得候補の代表値とする。そして、正規化利得候補計算部114は、利得候補の代表値を含む予め定められた範囲に含まれるM個の値を利得候補g1,…,gm,…,gMとする(ステップS114)。生成された利得候補g1,…,gm,…,gMは、正規化利得候補計算部114に備えられた記憶部に記憶される。この記憶部が、第一実施形態の正規化利得候補蓄積部16に対応する。その後の処理は、第一実施形態と同様であるため説明を省略する。
利得候補の代表値Dを含む予め定められた範囲Hは、例えば、利得候補の代表値Dから所定の値α(α>0)を減算した値から、利得候補の代表値に所定の値β(β)を加算した値までの範囲H=[D-α,D+β]である。α=βであっても、α≠βであってもよい。αはD-αが0より大となるように設定され、βはD+βが重み付けMDCT係数x(n)の最大値を超えないように設定される。なお、第二実施形態で説明した通り、利得gは、正規化利得計算部113で得られた境界値の2倍以上の値であることが好ましい。したがって、α=0、すなわち、利得候補の代表値Dを含む予め定められた範囲Hを利得候補の代表値D以上の予め定められた範囲Hとすることが好ましい。
例えば、M個の利得候補g1,…,gm,…,gMは、利得候補の代表値を含む予め定められた範囲から等間隔に選択される。もちろん、利得候補の代表値を含む予め定められた範囲に含まれていれば、M個の利得候補g1,…,gm,…,gMは等間隔でなくてもよい。例えば、利得候補の値が小さいほど多くの利得候補が分布するように、利得候補g1,…,gm,…,gMを選択してもよい。具体的には、利得候補g1,…,gm,…,gMの対数値が等間隔になるように利得候補g1,…,gm,…,gMを選択してもよい。
このように、第二実施形態と同様の方法で求めた利得を含む予め定められた範囲に含まれるM個の値を利得候補g1,…,gm,…,gMとすることで、更に適切な利得を選択することができる。
〔その他の変形例等〕
第一実施形態及び第三実施形態の符号化装置1の量子化部17では、x(n)/gmではなく、x(n)/gmの値を所定の関数Gで伸縮させた値G(x(n)/gm)を用いてもよい。具体的には、量子化部17は、重み付け正規化MDCT係数列の各係数x(n)[1≦n≦N]を利得候補gmで割り算して得られるx(n)/gmを関数Gで伸縮させた値G(x(n)/gm)に対応する整数値、例えばG(x(n)/gm)の小数点以下を四捨五入又は切り上げ又は切り下げして得られる整数値um(n)を量子化MDCT係数とする。この量子化MDCT係数が符号化部19の符号化の対象となる。この場合、誤差算出部18が得る量子化誤差rm(n)は、G(x(n)/gm)-um(n)である。この量子化誤差rm(n)が誤差符号化部110で符号化の対象となる。
第一実施形態及び第三実施形態の符号化装置1の量子化部17では、x(n)/gmではなく、x(n)/gmの値を所定の関数Gで伸縮させた値G(x(n)/gm)を用いてもよい。具体的には、量子化部17は、重み付け正規化MDCT係数列の各係数x(n)[1≦n≦N]を利得候補gmで割り算して得られるx(n)/gmを関数Gで伸縮させた値G(x(n)/gm)に対応する整数値、例えばG(x(n)/gm)の小数点以下を四捨五入又は切り上げ又は切り下げして得られる整数値um(n)を量子化MDCT係数とする。この量子化MDCT係数が符号化部19の符号化の対象となる。この場合、誤差算出部18が得る量子化誤差rm(n)は、G(x(n)/gm)-um(n)である。この量子化誤差rm(n)が誤差符号化部110で符号化の対象となる。
関数Gは、非減少関数であり、例えばG(h)=sign(h)×|h|aである。sign(h)は、入力されたhの正負の符号を出力する極性符号関数である。sign(h)は、例えば、入力されたhが正の数であれば1を出力し、入力されたhが負の数であれば−1を出力する。|h|は、hの絶対値を表す。aは、所定の数であり、例えば0.75である。
同様に、第二実施形態の符号化装置1の量子化部17では、x(n)/gではなく、x(n)/gの値を所定の関数Gで伸縮させた値G(x(n)/g)を用いてもよい。具体的には、量子化部17は、重み付け正規化MDCT係数列の各係数x(n)[1≦n≦N]を利得gで割り算して得られるx(n)/gを関数Gで伸縮させた値G(x(n)/g)に対応する整数値、例えばG(x(n)/g)の小数点以下を四捨五入又は切り上げ又は切り下げして得られる整数値u(n)を量子化MDCT係数とする。この量子化MDCT係数が符号化部19の符号化の対象となる。
これらの場合、復号装置2の加算部25は、加算により得られたu(n)+q(n)に対して関数Gの逆関数であるG-1=sign(h)×|h|1/aの処理を行った値G-1(u(n)+q(n))に利得gを乗じることにより、復号重み付け正規化MDCT係数系列x^(n)を得る。すなわち、x^(n)=G-1(u(n)+q(n))*gとする。なお、a=0.75である場合には、G-1(h)=sign(h)×|h|1.33とする。
この発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
また、上記実施形態において説明したハードウェアエンティティ(符号化装置1、復号装置2)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
Claims (12)
- 所定の時間区間の音響信号に由来する周波数領域のサンプル列を所定の個数のビットで符号化する符号化方法であって、
周波数領域サンプルの値の絶対値についての、一定の値の幅を有し、かつ、互いに重複しない複数の範囲のそれぞれに属する上記周波数領域のサンプル列中のサンプルの個数を計数し、隣接する2つの範囲のそれぞれに属するサンプルの個数の差が最大である隣接する2つの範囲の境界値の2倍以上の値を持つ利得を得る正規化利得計算ステップと、
上記周波数領域のサンプル列の各サンプルの値を上記利得で割り算して得られる除算値の整数値を取得する量子化ステップと、
上記整数値を可変長符号化して上記所定の個数以下のビット数の可変長符号を得る符号化ステップと、
上記除算値から上記整数値を減算した誤差値の列を得る誤差算出ステップと、
余剰ビットを用いて、上記誤差値の列を符号化して誤差符号を得る誤差符号化ステップと、
を含む符号化方法。 - 請求項1の符号化方法において、
上記正規化利得計算ステップは、上記境界値の2倍以上であり、かつ、上記境界値に最も近い量子化値を利得として得る、
符号化方法。 - 請求項1の符号化方法において、
上記正規化利得計算ステップで計算した利得を含む所定の範囲に含まれる2個以上の利得を利得候補とする正規化利得候補計算ステップを更に含み、
上記量子化ステップは、上記周波数領域のサンプル列の各サンプルの値を各上記利得候補で割り算して得られる除算値の整数値を取得するステップであり、
上記誤差算出ステップは、上記除算値から上記整数値を減算することにより各上記利得候補に対応する誤差値の列を算出するステップであり、
上記符号化ステップは、各上記利得候補に対応する整数値を可変長符号化して各上記利得候補に対応する上記所定の個数以下のビット数の可変長符号を得るステップであり、
上記誤差符号化ステップは、余剰ビットを用いて、各上記利得候補に対応する誤差値の列を符号化して各上記利得候補に対応する誤差符号と復号量子化誤差の列とを得るステップであり、
上記復号量子化誤差の列と上記誤差値の列とが最も近い利得候補に対応する利得情報、可変長符号及び誤差符号を出力する最適利得選択ステップを更に含む、
符号化方法。 - 所定の時間区間の音響信号に由来する周波数領域のサンプル列を所定の個数のビットで符号化する符号化方法であって、
2個以上の利得候補が正規化利得候補記憶部に記憶されており、
上記周波数領域のサンプル列の各サンプルの値を上記正規化利得候補記憶部から読み込んだ各利得候補で割り算して得られる除算値の整数値を取得する量子化ステップと、
上記除算値から上記整数値を減算することにより各上記利得候補に対応する誤差値の列を算出する誤差算出ステップと、
各上記利得候補に対応する整数値を可変長符号化して各上記利得候補に対応する上記所定の個数以下のビット数の可変長符号を得る符号化ステップと、
余剰ビットを用いて、各上記利得候補に対応する誤差値の列を符号化して各上記利得候補に対応する誤差符号と復号量子化誤差の列とを得る誤差符号化ステップと、
上記復号量子化誤差の列と上記誤差値の列とが最も近い利得候補に対応する利得情報、可変長符号及び誤差符号を出力する最適利得選択ステップと、
を含む符号化方法。 - 請求項1から4の何れかの符号化方法において、
上記整数値を並び替える並び替えステップを更に含み、
上記符号化ステップは、上記並び替えられた整数値、又は、各上記利得候補に対応する上記並び替えられた整数値を可変長符号化して可変長符号を得るステップである、
符号化方法。 - 所定の時間区間の音響信号に由来する周波数領域のサンプル列を所定の個数のビットで符号化する符号化装置であって、
周波数領域サンプルの値の絶対値についての、一定の値の幅を有し、かつ、互いに重複しない複数の範囲のそれぞれに属する上記周波数領域のサンプル列中のサンプルの個数を計数し、隣接する2つの範囲のそれぞれに属するサンプルの個数の差が最大である隣接する2つの範囲の境界値の2倍以上の値を持つ利得を得る正規化利得計算部と、
上記周波数領域のサンプル列の各サンプルの値を上記利得で割り算して得られる除算値の整数値を取得する量子化部と、
上記整数値を可変長符号化し上記所定の個数以下のビット数の可変長符号を得る符号化部と、
上記除算値から上記整数値を減算した誤差値の列を得る誤差算出部と、
余剰ビットを用いて、上記誤差値の列を符号化して誤差符号を得る誤差符号化部と、
を含む符号化装置。 - 請求項6の符号化装置において、
上記正規化利得計算部は、上記境界値の2倍以上であり、かつ、上記境界値に最も近い量子化値を利得として得る、
符号化装置。 - 請求項6の符号化装置において、
上記正規化利得計算部で計算した利得を含む所定の範囲に含まれる2個以上の利得を利得候補とする正規化利得候補計算部を更に含み、
上記量子化部は、上記周波数領域のサンプル列の各サンプルの値を各上記利得候補で割り算して得られる除算値の整数値を取得し、
上記誤差算出部は、上記除算値から上記整数値を減算することにより各上記利得候補に対応する誤差値の列を算出し、
上記符号化部は、各上記利得候補に対応する整数値を可変長符号化して各上記利得候補に対応する上記所定の個数以下のビット数の可変長符号を得て、
上記誤差符号化部は、余剰ビットを用いて、各上記利得候補に対応する誤差値の列を符号化して各上記利得候補に対応する誤差符号と復号量子化誤差の列とを得て、
上記復号量子化誤差の列と上記誤差値の列とが最も近い利得候補に対応する利得情報、可変長符号及び誤差符号を出力する最適利得選択部を更に含む、
符号化装置。 - 所定の時間区間の音響信号に由来する周波数領域のサンプル列を所定の個数のビットで符号化する符号化装置であって、
2個以上の利得候補が記憶された正規化利得候補記憶部と、
上記周波数領域のサンプル列の各サンプルの値を上記正規化利得候補記憶部から読み込んだ各利得候補で割り算して得られる除算値の整数値を取得する量子化部と、
上記除算値から上記整数値を減算することにより各上記利得候補に対応する誤差値の列を算出する誤差算出部と、
各上記利得候補に対応する整数値を可変長符号化して各上記利得候補に対応する上記所定の個数以下のビット数の可変長符号を生成する符号化部と、
余剰ビットを用いて、各上記利得候補に対応する誤差値の列を符号化して各上記利得候補に対応する誤差符号と復号量子化誤差の列とを得る誤差符号化部と、
上記復号量子化誤差の列と上記誤差値の列とが最も近い利得候補に対応する利得情報、可変長符号及び誤差符号を出力する最適利得選択部と、
を含む符号化装置。 - 請求項6から9の何れかの符号化装置において、
上記整数値を並び替える並び替え部を更に含み、
上記符号化部は、上記並び替えられた整数値、又は、各上記利得候補に対応する上記並び替えられた整数値を可変長符号化して可変長符号を得る、
符号化装置。 - 請求項1から5の何れかに記載された方法の各ステップをコンピュータに実現させるためのプログラム。
- 請求項1から5の何れかに記載された方法の各ステップをコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013522884A JP5579932B2 (ja) | 2011-06-29 | 2012-06-27 | 符号化方法、装置、プログラム及び記録媒体 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011143773 | 2011-06-29 | ||
JP2011143773 | 2011-06-29 | ||
JP2013522884A JP5579932B2 (ja) | 2011-06-29 | 2012-06-27 | 符号化方法、装置、プログラム及び記録媒体 |
PCT/JP2012/066330 WO2013002238A1 (ja) | 2011-06-29 | 2012-06-27 | 符号化方法、装置、プログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5579932B2 true JP5579932B2 (ja) | 2014-08-27 |
JPWO2013002238A1 JPWO2013002238A1 (ja) | 2015-02-23 |
Family
ID=47424129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013522884A Active JP5579932B2 (ja) | 2011-06-29 | 2012-06-27 | 符号化方法、装置、プログラム及び記録媒体 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5579932B2 (ja) |
WO (1) | WO2013002238A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148926A (ja) * | 1988-11-29 | 1990-06-07 | Toshiba Corp | 予測符号化方式 |
JPH0556282A (ja) * | 1990-08-23 | 1993-03-05 | Fuji Xerox Co Ltd | 画像符号化装置 |
JPH06319133A (ja) * | 1993-04-30 | 1994-11-15 | Fuji Xerox Co Ltd | 画像符号化装置 |
JP2005283692A (ja) * | 2004-03-29 | 2005-10-13 | Korg Inc | オーディオ信号圧縮方法 |
-
2012
- 2012-06-27 JP JP2013522884A patent/JP5579932B2/ja active Active
- 2012-06-27 WO PCT/JP2012/066330 patent/WO2013002238A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148926A (ja) * | 1988-11-29 | 1990-06-07 | Toshiba Corp | 予測符号化方式 |
JPH0556282A (ja) * | 1990-08-23 | 1993-03-05 | Fuji Xerox Co Ltd | 画像符号化装置 |
JPH06319133A (ja) * | 1993-04-30 | 1994-11-15 | Fuji Xerox Co Ltd | 画像符号化装置 |
JP2005283692A (ja) * | 2004-03-29 | 2005-10-13 | Korg Inc | オーディオ信号圧縮方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013002238A1 (ja) | 2013-01-03 |
JPWO2013002238A1 (ja) | 2015-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11024319B2 (en) | Encoding method, decoding method, encoder, decoder, program, and recording medium | |
US10083703B2 (en) | Frequency domain pitch period based encoding and decoding in accordance with magnitude and amplitude criteria | |
JP5612698B2 (ja) | 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体 | |
JP5596800B2 (ja) | 符号化方法、周期性特徴量決定方法、周期性特徴量決定装置、プログラム | |
WO2014054556A1 (ja) | 符号化方法、符号化装置、プログラム、および記録媒体 | |
JP6595687B2 (ja) | 符号化方法、符号化装置、プログラム、および記録媒体 | |
JP5694751B2 (ja) | 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体 | |
JP5579932B2 (ja) | 符号化方法、装置、プログラム及び記録媒体 | |
JP5714172B2 (ja) | 符号化装置、この方法、プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140701 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140709 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5579932 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |