JP4469400B2 - Speech coding apparatus, speech decoding apparatus, speech coding method, and speech decoding method - Google Patents
Speech coding apparatus, speech decoding apparatus, speech coding method, and speech decoding method Download PDFInfo
- Publication number
- JP4469400B2 JP4469400B2 JP2008087555A JP2008087555A JP4469400B2 JP 4469400 B2 JP4469400 B2 JP 4469400B2 JP 2008087555 A JP2008087555 A JP 2008087555A JP 2008087555 A JP2008087555 A JP 2008087555A JP 4469400 B2 JP4469400 B2 JP 4469400B2
- Authority
- JP
- Japan
- Prior art keywords
- pulse
- noise
- diffusion pattern
- codebook
- sound source
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
本発明は、音声信号を符号化して伝送する移動通信システムなどにおいて低ビットレートを実現する音声符号化装置、音声復号化装置、音声符号化方法および音声復号化方法、特に音声信号を声道情報と音源情報とに分離して表現するようなCELP(Code Excited Linear Prediction)型の音声符号化装置、音声復号化装置、音声符号化方法および音声復号化方法に関する。 The present invention relates to a voice encoding device , a voice decoding device, a voice encoding method and a voice decoding method that realize a low bit rate in a mobile communication system that encodes and transmits a voice signal, and in particular, a voice signal of vocal tract information. The present invention relates to a CELP (Code Excited Linear Prediction) type speech coding apparatus , speech decoding apparatus, speech coding method, and speech decoding method , which are expressed separately in sound source information.
ディジタル移動通信や音声蓄積の分野においては、電波や記憶媒体の有効利用のために音声情報を圧縮し、高能率で符号化するための音声符号化装置が用いられている。中でもCELP(Code Excited Linear Prediction:符号励振線形予測符号化)方式をベースにした方式が中・低ビットレートにおいて広く実用化されている。CELPの技術については、非特許文献1に示されている。
In the fields of digital mobile communication and voice storage, voice coding apparatuses for compressing voice information and coding with high efficiency for effective use of radio waves and storage media are used. Among them, a method based on the CELP (Code Excited Linear Prediction) method has been widely put into practical use at medium and low bit rates. The CELP technique is disclosed in
CELP型音声符号化方式は、音声をある一定のフレーム長(5ms〜50ms程度)に区切り、各フレーム毎に音声の線形予測を行い、フレーム毎の線形予測による予測残差(励振信号)を、既知の波形からなる適応符号ベクトルと雑音符号ベクトルを用いて符号化するものである。適応符号ベクトルは、過去に生成した駆動音源ベクトルを格納している適応符号帳から選択されて使用され、雑音符号ベクトルは、予め用意された定められた数の定められた形状を有するベクトルを格納している雑音符号帳から選択されて使用される。雑音符号帳に格納される雑音符号ベクトルには、ランダムな雑音系列のベクトルや何本かのパルスを異なる位置に配置することによって生成されるベクトルなどが用いられる。 The CELP speech coding method divides speech into a certain frame length (about 5 ms to 50 ms), performs speech linear prediction for each frame, and calculates a prediction residual (excitation signal) by linear prediction for each frame, Encoding is performed using an adaptive code vector and a noise code vector having a known waveform. The adaptive code vector is selected and used from the adaptive code book storing the drive excitation vector generated in the past, and the noise code vector stores a vector having a predetermined number of predetermined shapes prepared in advance. The selected noise codebook is used. As the noise code vector stored in the noise code book, a random noise sequence vector, a vector generated by arranging several pulses at different positions, or the like is used.
数本のパルスを異なる位置に配置するタイプの雑音符号帳の代表的なものの一つに代数符号帳がある。代数符号帳については「ITU−T勧告G.729」などに具体的内容が示されている。 An algebraic codebook is one of the typical types of noise codebooks in which several pulses are arranged at different positions. Specific contents of the algebraic codebook are shown in “ITU-T recommendation G.729” and the like.
代数符号帳を用いた雑音符号ベクトル生成器の従来例を図40を参照して以下に具体的に説明する。 A conventional example of a random code vector generator using an algebraic codebook will be specifically described below with reference to FIG.
図40は、代数符号帳を用いた雑音符号ベクトル生成器の基本的なブロック図である。図において、第1のパルス発生器1,第2のパルス発生器2から発生されたパルスを加算器3で加算して、2本のパルスを異なる位置に立てることによって雑音符号ベクトルを生成している。代数符号帳の具体例を図41及び図42に示す。図41は、80サンプルの中に2本のパルスを立てる一例、図42は80サンプルの中に3本のパルスを立てる一例、をそれぞれ示している。なお、図41及び図42において、表の下部に記載されている数はパルス位置の組み合わせの数である。
しかしながら、上記従来の代数符号帳を用いた雑音符号ベクトル生成器においては、各音源パルスの探索位置が独立しており、ある音源パルスと別の音源パルスとの相対的位置関係を利用することはない。このため、様々な形状の雑音符号ベクトルを生成することが可能である一方、十分なパルス位置を表現するために多くのビット数が必要となり、生成されるべき雑音符号ベクトルの形状に偏りが見られる場合には、必ずしも効率的な符号帳ではないという問題がある。また、代数符号帳に必要なビット数を減らすために、音源パルス数を減らす手法が考えられるが、この場合は音源パルスが少ないために無声部や定常雑音部での主観的品質が大きく劣化するという問題がある。 However, in the noise code vector generator using the conventional algebraic codebook, the search position of each excitation pulse is independent, and it is possible to use the relative positional relationship between a certain excitation pulse and another excitation pulse. Absent. For this reason, while it is possible to generate random code vectors of various shapes, a large number of bits are required to express a sufficient pulse position, and there is a bias in the shape of the random code vector to be generated. However, there is a problem that it is not necessarily an efficient codebook. In addition, in order to reduce the number of bits required for the algebraic codebook, a method of reducing the number of sound source pulses can be considered, but in this case, the subjective quality in the unvoiced part and the stationary noise part greatly deteriorates because the number of sound source pulses is small. There is a problem.
本発明はかかる点に鑑みてなされたものであり、拡散パタンを用いて音源ベクトルを拡散させるため、雑音符号帳のサイズを削減することができるとともに、無声部や定常雑音部に対する音声品質を改善することができる音声符号化装置、音声復号化装置、音声符号化方法および音声復号化方法を提供することを目的とする。 The present invention has been made in view of the above points, and since the sound source vector is diffused using the diffusion pattern, the size of the noise codebook can be reduced, and the voice quality for the unvoiced part and the stationary noise part is improved. An object of the present invention is to provide a speech encoding apparatus , speech decoding apparatus, speech encoding method, and speech decoding method that can be used.
本発明の音声符号化装置は、音源パルスで構成された音源ベクトルを生成する音源ベクトル生成手段と、拡散パタンを生成する拡散パタン生成手段と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散手段と、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する誤差最小化手段と、を具備する音声符号化装置であって、前記拡散パタン生成手段は、音源信号のパワを計算するパワ算出手段と、前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出手段と、1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換手段と、前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工手段と、を備え、前記変換手段は、前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、構成を採る。また、本発明の音声復号化装置は、音源パルスで構成された音源ベクトルを生成する音源ベクトル生成手段と、拡散パタンを生成する拡散パタン生成手段と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散手段と、を具備する音声復号化装置であって、前記拡散パタン生成手段は、音源信号のパワを計算するパワ算出手段と、前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出手段と、1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換手段と、前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工手段と、を備え、前記変換手段は、前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、構成を採る。 The speech coding apparatus according to the present invention includes a sound source vector generating unit that generates a sound source vector composed of sound source pulses, a diffusion pattern generating unit that generates a diffusion pattern, and the sound source generated according to the generated diffusion pattern. A speech encoding apparatus comprising: pulse spreading means for spreading a pulse of a vector; and error minimizing means for determining the excitation vector that minimizes the energy of an error signal after perceptual weighting, wherein the spreading pattern generation The means includes power calculation means for calculating the power of the sound source signal, noise section average power calculation means for calculating the average power of the noise section using the power, and a multiplication coefficient for processing one type of diffusion pattern. Conversion means for calculating as a function of the average power in the noise interval, and the multiplication value on the amplitude value of at least the first sample of the one type of diffusion pattern; A diffusion pattern processing means for processing the one type of diffusion pattern by multiplying by a number to generate a new diffusion pattern, and the conversion means has an average power in the noise interval larger than a predetermined threshold value. Is configured such that the multiplication coefficient is reduced and the multiplication coefficient is increased when the average power in the noise interval is smaller than the threshold value. Also, the speech decoding apparatus of the present invention is configured to generate the excitation vector generating means for generating the excitation vector composed of excitation pulses, the diffusion pattern generating means for generating the diffusion pattern, and the generation according to the generated diffusion pattern. A speech spreader that spreads a pulse of a sound source vector, wherein the spread pattern generation means includes a power calculation means for calculating the power of the sound source signal, and a noise interval using the power. Noise section average power calculating means for calculating the average power of the noise section, conversion means for calculating a multiplication coefficient for processing one type of diffusion pattern as a function of the average power of the noise section, and at least one of the one type of diffusion pattern A diffusion that generates a new diffusion pattern by processing the one type of diffusion pattern by multiplying the amplitude value of the first sample by the multiplication coefficient. Pattern processing means, wherein the conversion means reduces the multiplication coefficient when the average power in the noise interval is larger than a predetermined threshold value, and reduces the multiplication coefficient when the average power in the noise interval is smaller than the threshold value. A configuration is adopted in which the multiplication coefficient is increased.
本発明の音声符号化方法は、音源パルスで構成された音源ベクトルを生成する音源ベクトル生成工程と、拡散パタンを生成する拡散パタン生成工程と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散工程と、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する誤差最小化工程と、を具備する音声符号化方法であって、前記拡散パタン生成工程では、音源信号のパワを計算するパワ算出工程と、前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出工程と、1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換工程と、前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工工程と、を行い、前記変換工程では、前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、方法を採る。また、本発明の音声復号化方法は、音源パルスで構成された音源ベクトルを生成する音源ベクトル生成工程と、拡散パタンを生成する拡散パタン生成工程と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散工程と、を具備する音声復号化方法であって、前記拡散パタン生成工程では、音源信号のパワを計算するパワ算出工程と、前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出工程と、1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換工程と、前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工工程と、を行い、前記変換工程では、前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、方法を採る。 The speech coding method of the present invention includes a sound source vector generation step for generating a sound source vector composed of excitation pulses, a diffusion pattern generation step for generating a diffusion pattern, and the generated sound source according to the generated diffusion pattern. A speech encoding method comprising: a pulse diffusion step of spreading a pulse of a vector; and an error minimization step of determining the sound source vector that minimizes the energy of an error signal after perceptual weighting, wherein the diffusion pattern generation In the process, a power calculation step for calculating the power of a sound source signal, a noise interval average power calculation step for calculating an average power of a noise interval using the power, and a multiplication coefficient for processing one kind of diffusion pattern A conversion step of calculating as a function of an average power in a noise interval, and multiplying an amplitude value of at least a first sample of the one type of diffusion pattern by the multiplication A diffusion pattern processing step of processing the one type of diffusion pattern by multiplying by a coefficient to generate a new diffusion pattern, and in the conversion step, the average power of the noise interval is greater than a predetermined threshold In the method, the multiplication coefficient is reduced and the multiplication coefficient is increased when the average power in the noise interval is smaller than the threshold. Also, the speech decoding method of the present invention is generated in accordance with a sound source vector generation step for generating a sound source vector composed of sound source pulses, a diffusion pattern generation step for generating a diffusion pattern, and the generated diffusion pattern. A speech spreading method for diffusing a pulse of a sound source vector, wherein in the diffusion pattern generation step, a power calculation step for calculating power of a sound source signal, and a noise interval using the power A noise interval average power calculation step for calculating the average power of the noise interval, a conversion step for calculating a multiplication coefficient for processing one type of diffusion pattern as a function of the average power of the noise interval, and at least one of the one type of diffusion pattern By multiplying the amplitude value of the first sample by the multiplication coefficient, the one type of diffusion pattern is processed to generate a new diffusion pattern. In the conversion step, when the average power in the noise interval is larger than a predetermined threshold, the multiplication coefficient is decreased, and when the average power in the noise interval is smaller than the threshold. A method of increasing the multiplication coefficient is adopted.
本発明によれば、拡散パタンを用いて音源ベクトルを拡散させるため、雑音符号帳のサイズを削減することができるとともに、無声部や定常雑音部に対する音声品質を改善することができる。 According to the present invention, since the excitation vector is diffused using the spreading pattern, the size of the noise codebook can be reduced, and the voice quality for the unvoiced part and the stationary noise part can be improved.
本発明の骨子は、部分的代数符号帳を用いて雑音符号ベクトルを生成することにより、すなわち代数符号帳から生成される複数の音源パルスのうち、少なくとも2本は近接するような組合わせのみを生成する雑音符号ベクトルを用いることにより、代数符号帳サイズを効率的に削減する。また、無声音声や定常雑音信号に対応したランダム符号帳を部分的代数符号帳と併用することにより、すなわち無声部や定常雑音部に有効な音源ベクトルを格納することによって、無声部や定常雑音部に対する主観的品質を改善する。さらに、モード判定結果によって、部分的代数符号帳サイズと、併用するランダム符号帳のサイズとの比率を切換えることにより、モード判定誤り時の品質劣化を抑えつつ、無声音声や背景雑音に対する符号化性能を改善して主観的品質を改善する。 The essence of the present invention is that by generating a noise code vector using a partial algebraic codebook, that is, only a combination in which at least two of the plurality of excitation pulses generated from the algebraic codebook are close to each other. By using the generated noise code vector, the algebraic codebook size is efficiently reduced. Also, by using a random codebook corresponding to unvoiced speech or stationary noise signal together with a partial algebraic codebook, that is, by storing a valid sound source vector in the unvoiced part or stationary noise part, the unvoiced part or stationary noise part Improve subjective quality of In addition, by switching the ratio between the partial algebraic codebook size and the size of the random codebook to be used together according to the mode determination result, encoding performance for unvoiced speech and background noise while suppressing quality degradation at the time of mode determination error To improve subjective quality.
ここで、近接するパルスとは、あるパルスからの距離が1.25ms以下、すなわち8kHzサンプリングのディジタル信号において、10サンプル程度以下であるパルスのことをいう。 Here, the adjacent pulse means a pulse whose distance from a certain pulse is 1.25 ms or less, that is, about 10 samples or less in a digital signal of 8 kHz sampling.
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
(実施の形態1)
図1は、本発明に係る音声符号化及び/又は復号化装置を備えた音声信号送信機及び/又は受信機を示すブロック図である。
(Embodiment 1)
FIG. 1 is a block diagram showing an audio signal transmitter and / or receiver equipped with an audio encoding and / or decoding apparatus according to the present invention.
図1に示す音声信号送信機では、音声信号101が音声入力装置102によって電気的アナログ信号に変換され、A/D変換器103に出力される。アナログ音声信号は、A/D変換器103によってディジタル音声信号に変換され、音声符号化装置104に出力される。音声符号化装置104は、音声符号化処理を行い、符号化した情報をRF変調装置105に出力する。RF変調装置105においては、符号化された音声信号に対して、変調・増幅・符号拡散などの電波として送出するための処理を行い、符号化された音声信号を送信アンテナ106に出力する。最後に送信アンテナ106から電波(RF信号)が送出される。
In the audio signal transmitter shown in FIG. 1, the
一方、受信機においては、電波(RF信号)を受信アンテナ107で受信する。受信信号は、RF復調装置108に送られる。RF復調器108は、符号逆拡散・復調など電波信号を符号化情報に変換するための処理を行い、符号化情報を音声復号化装置109に出力する。音声復号化装置109は、符号化情報の復号処理を行ってディジタル復号音声信号をD/A変換器110へ出力する。D/A変換器110は、音声復号化装置109から出力されたディジタル復号音声信号をアナログ復号音声信号に変換して音声出力装置111に出力する。最後に音声出力装置111が電気的アナログ復号音声信号を復号音声に変換して出力する。
On the other hand, the receiver receives radio waves (RF signals) by the
次に、上記構成を有する音声信号送信機及び/又は受信機における雑音符号ベクトル生成器について説明する。図2は、実施の形態1に係る雑音符号ベクトル生成器を備えた音声符号化装置を示すブロック図である。同図に示す音声符号化装置は、前処理器201、LPC分析器202、LPC量子化器203、適応符号帳204、乗算器205、部分的代数符号帳206、乗算器207、加算器208、LPC合成フィルタ209、加算器210、聴覚重みづけ器211、誤差最小化器212を備える。
Next, a noise code vector generator in the voice signal transmitter and / or receiver having the above configuration will be described. FIG. 2 is a block diagram showing a speech encoding apparatus including the random code vector generator according to
この雑音符号ベクトル生成器においては、入力音声データは、音声信号をA/D変換して得られるディジタル信号であり、処理単位時間(フレーム)毎に前処理器201に入力される。前処理器201は、入力音声データを主観的に高品質化したり符号化に適した状態の信号に変換するための処理を行うもので、例えば直流成分をカットするためのハイパスフィルタ処理や音声信号の特徴を強調するようなプリエンファシス処理などを行う。
In this random code vector generator, the input speech data is a digital signal obtained by A / D converting a speech signal, and is input to the
前処理後の信号は、LPC分析器202と加算器210とに出力される。LPC分析器202は、前処理器201から入力した信号を用いてLPC分析(線形予測分析)を行い、得られたLPC(線形予測係数)をLPC量子化器203に出力する。LPC量子化器203は、LPC分析器202から入力したLPCの量子化を行い、量子化LPCをLPC合成フィルタ209へ出力し、量子化LPCの符号化データを伝送路を通じて復号器側へ出力する。
The preprocessed signal is output to the
適応符号帳204は、過去に生成した励振ベクトル(加算器208から出力されるベクトル)のバッファであり、誤差最小化器212によって指定された位置から適応符号ベクトルを切り出して乗算器205へ出力する。乗算器205は適応符号帳204から出力された適応符号ベクトルに適応符号ベクトル利得を乗じて加算器208へ出力する。適応符号ベクトル利得は、誤差最小化器によって指定される。部分的代数符号帳206は、後述する図4や図10又はこれに類する構成を有する符号帳であり、少なくとも2本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトルを乗算器207へ出力する。
The
乗算器207は、部分的代数符号帳206から出力された雑音符号ベクトルに雑音符号ベクトル利得を乗じて加算器208へ出力する。加算器208は、乗算器205から出力された適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器207から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳204とLPC合成フィルタ209とに出力する。
適応符号帳204へ出力された励振ベクトルは、適応符号帳204を更新する場合に用いられ、LPC合成フィルタ209に出力された励振ベクトルは、合成音声を生成するために用いられる。LPC合成フィルタ209は、LPC量子化器203から出力された量子化LPCを用いて構成される線形予測フィルタであって、加算器208から出力された励振ベクトルを用いてLPC合成フィルタを駆動し、合成信号を加算器210に出力する。
The excitation vector output to the
加算器210は、前処理器201から出力された前処理後の入力音声信号とLPC合成フィルタ209から出力された合成信号との差分(誤差)信号を計算し、聴覚重みづけ器211に出力する。聴覚重みづけ器211は、加算器210から出力される差分信号を入力として、聴覚的な重みづけを行い、誤差最小化器212へ出力する。誤差最小化器212は、聴覚重みづけ器211から出力された聴覚重みづけ後の差分信号を入力として、例えばその2乗和が最小となるように適応符号帳204から適応符号ベクトルを切り出す位置と、部分的代数符号帳206から生成する雑音符号ベクトルと、乗算器205で乗じる適応符号ベクトル利得と、乗算器207で乗じる雑音符号ベクトル利得との値を調整し、各々を符号化し音源パラメータ符号化データとして伝送路を通じて復号器側に出力する。
The
図3は、実施の形態1に係る雑音符号ベクトル生成器を備えた音声復号化装置を示すブロック図である。同図に示す音声復号化装置は、LPC復号器301、音源パラメータ復号器302、適応符号帳303、乗算器304、部分的代数符号帳305、乗算器306、加算器307、LPC合成フィルタ308、後処理器309を備える。
FIG. 3 is a block diagram showing a speech decoding apparatus including the random code vector generator according to the first embodiment. The speech decoding apparatus shown in the figure includes an
伝送路を通じてLPC符号化データと音源パラメータ符号化データがフレーム単位でLPC復号器301と音源パラメータ復号器302とにそれぞれ入力される。LPC復号器301は、量子化LPCを復号してLPC合成フィルタ308に出力する。後処理器309で量子化LPCを使用する場合は、後処理器309にも同時に出力される。音源パラメータ復号器302は、適応符号ベクトルを切り出す位置情報と、適応符号ベクトル利得と、雑音符号ベクトルを指定するインデックス情報と、雑音符号ベクトル利得とを、適応符号帳303と、乗算器304と、部分的代数符号帳305と、乗算器306とにそれぞれ出力する。
The LPC encoded data and the excitation parameter encoded data are input to the
適応符号帳303は、過去に生成した励振ベクトル(加算器307から出力されるベクトル)のバッファであり、音源パラメータ復号器302から入力した切り出し位置から適応符号ベクトルを切り出して乗算器304に出力する。乗算器304は、適応符号帳303から出力された適応符号ベクトルに、音源パラメータ復号器302から入力した適応符号ベクトル利得を乗じて加算器307へ出力する。
The
部分的代数符号帳305は、後述する図4や図10又はこれに類する構成を有する図2の206に示したものと同一の部分的代数符号帳であり、音源パラメータ復号器304から入力したインデックスで指定される少なくとも2本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトルを乗算器306へ出力する。
The partial
乗算器306は、部分的代数符号帳から出力された雑音符号ベクトルに、音源パラメータ復号器302から入力される雑音符号ベクトル利得を乗じて、加算器307へ出力する。加算器307は、乗算器306から出力される適応符号ベクトル利得乗算後の適応符号ベクトルと、乗算器306から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳303とLPC合成フィルタ308とに出力する。
適応符号帳303へ出力された励振ベクトルは、適応符号帳303を更新する場合に用いられ、LPC合成フィルタ308に出力された励振ベクトルは、合成音声を生成するために用いられる。LPC合成フィルタ308は、LPC復号器301から出力された量子化LPCを用いて構成される線形予測フィルタであって、加算器307から出力された励振ベクトルを用いてLPC合成フィルタを駆動し、合成信号を後処理器309に出力する。
The excitation vector output to the
後処理器309は、LPC合成フィルタ308から出力される合成音声に対して、ホルマント強調処理やピッチ強調処理やスペクトル傾斜補正処理などから成るポストフィルタ処理や定常的な背景雑音を聞きやすくするための処理など主観的品質を改善するための処理を行い、復号音声データとして出力する。
The post-processor 309 makes it easy to hear post-filter processing and stationary background noise including formant emphasis processing, pitch emphasis processing, and spectrum tilt correction processing on the synthesized speech output from the
次に、本発明に係る雑音符号ベクトル生成器について詳細に説明する。図4は、本発明の実施の形態1に係る雑音符号ベクトル生成装置の構成を示すブロック図である。
Next, the random code vector generator according to the present invention will be described in detail. FIG. 4 is a block diagram showing the configuration of the random code vector generation apparatus according to
第1のパルス発生器401は、例えば図5(a)のパルス番号1の欄に示されるような予め定められた位置候補の一つに第1のパルスを立て、加算器404に出力する。また同時に、第1のパルス発生器401は、第1のパルスを立てた位置情報をパルス位置限定器402に出力する。パルス位置限定器402は、第1のパルス発生器401から第1のパルス位置を入力し、その位置を基準にして第2のパルスの位置候補を決定する。
The
第2のパルスの位置候補は、例えば図5(a)のパルス番号2の欄に示されるように第1のパルスの位置(=P1)からの相対表現で表される。パルス位置限定器402は、第2のパルスの位置候補を第2のパルス発生器403へ出力する。第2のパルス発生器403は、パルス位置限定器402から入力された第2のパルスの位置候補の一つに第2のパルスを立て、加算器404に出力する。
The position candidate of the second pulse is represented by a relative expression from the position (= P1) of the first pulse as shown in the column of
加算器404は、第1のパルス発生器401から出力された第1のパルスと第2のパルス発生器403から出力された第2のパルスとを入力して2本のパルスから成る第1の雑音符号ベクトルを切換えスイッチ409に出力する。
The
一方、第2のパルス発生器407は、例えば図5(b)のパルス番号2の欄に示されるような予め定められた位置候補の一つに第2のパルスを立て、加算器408に出力する。また同時に、第2のパルス発生器407は、第2のパルスを立てた位置情報をパルス位置限定器406に出力する。パルス位置限定器406は、第2のパルス発生器407から第2のパルス位置を入力し、その位置を基準にして第1のパルスの位置候補を決定する。
On the other hand, the
第1のパルスの位置候補は、例えば図5(b)のパルス番号1の欄に示されるように第2のパルスの位置(=P2)からの相対表現で表される。パルス位置限定器406は、第1のパルスの位置候補を第1のパルス発生器405へ出力する。第1のパルス発生器405は、パルス位置限定器406から入力された第1のパルスの位置候補の一つに第1のパルスを立て、加算器408に出力する。
The position candidate of the first pulse is represented by a relative expression from the position of the second pulse (= P2) as shown in the column of
加算器408は、第1のパルス発生器405から出力された第1のパルスと第2のパルス発生器407から出力された第2のパルスとを入力して2本のパルスから成る第2の雑音符号ベクトルを切換えスイッチ409に出力する。
The
切換えスイッチ409は、加算器404から出力される第1の雑音符号ベクトルと、加算器408から出力される第2の雑音符号ベクトルのどちらか一方を選択して最終的な雑音符号ベクトル410として出力する。この選択は外部からの制御によって指定される。
The
なお、2本のパルスのうち一方を上記のように絶対位置で表し、他方を上記のように相対位置で表現した場合、絶対位置で表されるパルスがフレーム末尾付近にある場合に相対位置で表現されるパルスがフレーム外にはみ出す場合がある。このため、実際の探索アルゴリズムにおいては、はみ出す組合わせが生じる部分のみ別パターンとし、図5に示すように3種類の探索位置パターン(a〜c)に分けて探索することが考えられる。図5はフレーム長を80サンプル(0〜79)とし、1フレームの中に2本のパルスを立てる場合の一例を示す。図5に示した符号帳からは、図40に示す従来の代数符号帳から生成できる雑音符号ベクトルの総エントリの一部のみを生成できる。この意味で、図5に示すような本発明の代数符号帳を部分的代数符号帳と呼ぶこととする。 If one of the two pulses is expressed as an absolute position as described above and the other is expressed as a relative position as described above, the relative position is determined when the pulse expressed by the absolute position is near the end of the frame. There are cases where the represented pulse protrudes out of the frame. For this reason, in the actual search algorithm, it is conceivable that only the portion where the combination that protrudes is a different pattern, and the search is divided into three types of search position patterns (ac) as shown in FIG. FIG. 5 shows an example in which the frame length is 80 samples (0 to 79), and two pulses are set in one frame. From the code book shown in FIG. 5, only a part of the total entries of the noise code vector that can be generated from the conventional algebraic code book shown in FIG. 40 can be generated. In this sense, the algebraic codebook of the present invention as shown in FIG. 5 is called a partial algebraic codebook.
以下に図6〜図8を参照して図5の符号帳を用いた上記実施の形態における雑音符号ベクトル生成方法(符号化方法、雑音符号帳探索方法)の処理の流れについて説明する。図6では、パルスの極性(+、−)は別途符号化されること想定してパルスの位置のみを符号化する場合について具体的に示している。 The process flow of the noise code vector generation method (encoding method, noise codebook search method) in the above embodiment using the codebook of FIG. 5 will be described below with reference to FIGS. FIG. 6 specifically shows a case where only the pulse position is encoded on the assumption that the polarity (+, −) of the pulse is separately encoded.
まず、ステップ(以下、STと省略する)601において、ループ変数i、誤差関数最大値Max、インデックスidx、出力インデックスindex、第1のパルス位置position1、第2のパルス位置position2の初期化が行われる。 First, in step (hereinafter abbreviated as ST) 601, initialization of the loop variable i, the error function maximum value Max, the index idx, the output index index, the first pulse position position1, and the second pulse position position2 is performed. .
ここで、ループ変数iは、絶対位置で表現されるパルスのループ変数として使われ、初期値は0である。誤差関数最大値Maxは、表現可能な最小値(例えば「−10^32」)に初期化され、探索ループで計算される誤差評価関数の最大化を行うために用いられる。インデックスidxは、本雑音符号ベクトル生成方法によって生成されるコードベクトルの各々に付与されるインデックスで、初期値は0であり、パルスの位置を一つ変えるたびにインクリメントされる。indexは、最終的に出力される雑音符号ベクトルのインデックス、position1は、最終的に決定される第1のパルスの位置、position2は、最終的に決定される第2のパルスの位置である。
Here, the loop variable i is used as a loop variable of a pulse expressed by an absolute position, and an initial value is zero. The error function maximum value Max is initialized to a representable minimum value (for example, “−10 ^ 32”), and is used to maximize the error evaluation function calculated in the search loop. The index idx is an index assigned to each code vector generated by the present random code vector generation method. The initial value is 0, and is incremented every time the pulse position is changed by one. index is the index of the finally output random code vector,
次に、ST602において、第1のパルス位置(p1)をpos1a[j]にセットする。pos1a[ ]は、図5(a)のパルス番号1の欄に示される位置(0、2、・・、72)である。ここでは、第1のパルスが絶対位置で表現されるパルスである。
Next, in ST602, the first pulse position (p1) is set to pos1a [j]. pos1a [] is the position (0, 2,..., 72) shown in the column of
次に、STプ603においてループ変数jの初期化が行われる。ループ変数jは相対位置で表現されるパルスのループ変数で、初期値は0である。ここでは、第2のパルスが相対位置で表現される。 Next, in step ST603, the loop variable j is initialized. The loop variable j is a pulse loop variable represented by a relative position, and its initial value is zero. Here, the second pulse is expressed as a relative position.
次に、ST604において、第2のパルス位置(p2)をp1+pos2a[j]にセットする。p1は既にST602においてセットされている第1のパルス位置であり、pos2a[4]={1、3、5、7}である。pos2a[ ]の要素数を減らすことにより部分的代数符号帳のサイズ(雑音符号ベクトルの総エントリ数)を減らすことができる。この場合、減らした数に応じて図5(c)の内容を変更する必要がある。また、増やす場合も同様である。 Next, in ST604, the second pulse position (p2) is set to p1 + pos2a [j]. p1 is the first pulse position already set in ST602, and pos2a [4] = {1, 3, 5, 7}. The size of the partial algebraic codebook (total number of entries in the noise code vector) can be reduced by reducing the number of elements of pos2a []. In this case, it is necessary to change the contents of FIG. 5C according to the reduced number. The same applies to the increase.
次に、ST605において、セットされた2本のパルス位置にパルスを立てた場合の誤差評価関数Eの計算を行う。誤差評価関数は、ターゲットとなるベクトルと雑音符号ベクトルから合成されるベクトルとの誤差を評価するためのもので、例えば下記式(1)が用いられる。なお、CELP符号化器で一般的によく用いられるように、適応符号ベクトルに対して雑音符号ベクトルを直交化する場合には式(1)を変形した式を用いることになる。式(1)の値が最大になるときにターゲットとしているベクトルと雑音符号ベクトルで合成フィルタを駆動して得られる合成ベクトルとの誤差が最小となる。
次に、ST606において、誤差評価関数Eの値が誤差評価関数最大値Maxを越えているかどうかの判定を行う。E値が最大値Maxを越えていれば、ST607に進み、越えていなければST607をスキップしてST608に進む。 Next, in ST606, it is determined whether or not the value of the error evaluation function E exceeds the error evaluation function maximum value Max. If the E value exceeds the maximum value Max, the process proceeds to ST607, and if not, the process skips ST607 and proceeds to ST608.
ST607では、indexとMaxとposition1とposition2の更新が行われる。即ち、誤差評価関数最大値MaxをST605にて計算された誤差評価関数Eに更新し、indexをidxに更新し、position1を第1のパルスの位置p1に更新し、position2を第2のパルスの位置p2に更新する。 In ST607, index, Max, position1, and position2 are updated. That is, the error evaluation function maximum value Max is updated to the error evaluation function E calculated in ST605, the index is updated to idx, position1 is updated to the position p1 of the first pulse, and position2 is updated to the second pulse. Update to position p2.
次に、ST608において、ループ変数jとインデックス番号idxをそれぞれインクリメントする。ループ変数jをインクリメントすることによって第2のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。 Next, in ST608, the loop variable j and the index number idx are respectively incremented. By incrementing the loop variable j, the position of the second pulse is moved and the random code vector of the next index number is evaluated.
次に、ST609において、ループ変数jが第2のパルスの位置候補の総数NUM2a未満かどうかのチェックを行う。図5に示す部分的代数符号帳では、NUM2a=4である。ループ変数jがNUM2a未満の場合はjのループを繰り返すためにST604に戻る。ループ変数jがNUM2aに達していれば、jのループは終了しST610に進む。 Next, in ST609, it is checked whether the loop variable j is less than the total number NUM2a of second pulse position candidates. In the partial algebraic codebook shown in FIG. 5, NUM2a = 4. If the loop variable j is less than NUM2a, the process returns to ST604 to repeat the loop of j. If loop variable j has reached NUM2a, the loop for j ends and proceeds to ST610.
ST610では、ループ変数iのインクリメントが行われる。ループ変数iをインクリメントすることによって第1のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。 In ST610, the loop variable i is incremented. By incrementing the loop variable i, the position of the first pulse is moved and the random code vector of the next index number is evaluated.
次に、ST611において、ループ変数iが第1のパルスの位置候補の総数NUM1a未満かどうかのチェックを行う。図5に示す部分的代数符号帳では、NUM1a=37である。ループ変数iがNUM1a未満の場合はiのループを繰り返すためにST602に戻る。ループ変数iがNUM1aに達していれば、iのループは終了し、図7のST701に進む。ST612に進んだ時点で図5(a)の探索は終了し、図5(b)の探索ループが開始される。 Next, in ST611, it is checked whether the loop variable i is less than the total number NUM1a of first pulse position candidates. In the partial algebraic codebook shown in FIG. 5, NUM1a = 37. If the loop variable i is less than NUM1a, the process returns to ST602 to repeat the loop of i. If the loop variable i has reached NUM1a, the loop for i ends, and the process proceeds to ST701 in FIG. When the process proceeds to ST612, the search in FIG. 5A is terminated, and the search loop in FIG. 5B is started.
次に、ST701では、ループ変数iがクリアされて0になる。ST702において、第2のパルス位置(p2)をpos2b[i]にセットする。pos2b[ ]は図5(b)のパルス番号2の欄に示される位置(1、3、・・、61)である。ここでは第2のパルスが絶対位置で表現されるパルスである。
Next, in ST701, the loop variable i is cleared to zero. In ST702, the second pulse position (p2) is set to pos2b [i]. pos2b [] is a position (1, 3,..., 61) shown in the column of
次に、ST703においてループ変数jの初期化が行われる。ループ変数jは相対位置で表現されるパルスのループ変数で、初期値は0である。ここでは、第1のパルスが相対位置で表現される。 Next, in ST703, the loop variable j is initialized. The loop variable j is a pulse loop variable represented by a relative position, and its initial value is zero. Here, the first pulse is expressed as a relative position.
次に、ST704において第1のパルス位置(p1)をp2+pos1b[j]にセットする。p2は既にST702においてセットされている第2のパルス位置、pos1b[4]={1、3、5、7}である。pos1b[ ]の要素数を減らすことにより部分的代数符号帳のサイズ(雑音符号ベクトルの総エントリ数)を減らすことができる。この場合、減らした数に応じて図5(c)の内容を変更する必要がある。また、pos1b[ ]の要素数を増やす場合も同様である。 Next, in ST704, the first pulse position (p1) is set to p2 + pos1b [j]. p2 is the second pulse position already set in ST702, pos1b [4] = {1, 3, 5, 7}. By reducing the number of elements of pos1b [], the size of the partial algebraic codebook (total number of entries of the noise code vector) can be reduced. In this case, it is necessary to change the contents of FIG. 5C according to the reduced number. The same applies when increasing the number of elements of pos1b [].
次に、ST705において、セットされた2本のパルス位置にパルスを立てた場合の誤差評価関数Eの計算を行う。誤差評価関数は、ターゲットとなるベクトルと雑音符号ベクトルから合成されるベクトルとの誤差を評価するためのもので、例えば式(1)に示されるような式が用いられる。なお、CELP符号化器で一般的によく用いられるように、適応符号ベクトルに対して雑音符号ベクトルを直交化する場合には式(1)を変形した式を用いることになる。式(1)の値が最大になるときにターゲットとしているベクトルと雑音符号ベクトルで合成フィルタを駆動して得られる合成ベクトルとの誤差が最小となる。 Next, in ST705, an error evaluation function E is calculated when a pulse is set at the two set pulse positions. The error evaluation function is used to evaluate an error between a target vector and a vector synthesized from a noise code vector. For example, an expression shown in Expression (1) is used. As generally used in CELP encoders, when the noise code vector is orthogonalized with respect to the adaptive code vector, an expression obtained by modifying Expression (1) is used. When the value of Expression (1) is maximized, the error between the target vector and the synthesized vector obtained by driving the synthesis filter with the noise code vector is minimized.
次に、ST706において、誤差評価関数Eの値が誤差評価関数最大値Maxを越えているかどうかの判定を行う。E値が最大値Maxを越えていればST707に進み、越えていなければST707をスキップしてST708に進む。 Next, in ST706, it is determined whether or not the value of the error evaluation function E exceeds the error evaluation function maximum value Max. If the E value exceeds the maximum value Max, the process proceeds to ST707, and if not, ST707 is skipped and the process proceeds to ST708.
ST707では、indexとMaxとposition1とposition2の更新が行われる。即ち、誤差評価関数最大値MaxをST705にて計算された誤差評価関数Eに更新し、indexをidxに更新し、position1を第1のパルスの位置p1に更新し、position2を第2のパルスの位置p2に更新する。 In ST707, index, Max, position1, and position2 are updated. That is, the error evaluation function maximum value Max is updated to the error evaluation function E calculated in ST705, the index is updated to idx, position1 is updated to the position p1 of the first pulse, and position2 is updated to the second pulse. Update to position p2.
次に、ST708において、ループ変数jとインデックス番号idxをそれぞれインクリメントする。ループ変数jをインクリメントすることによって第1のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。 Next, in ST708, the loop variable j and the index number idx are respectively incremented. By incrementing the loop variable j, the position of the first pulse is moved and the random code vector of the next index number is evaluated.
次に、ST709において、ループ変数jが第1のパルスの位置候補の総数NUM1b未満かどうかのチェックを行う。図5に示す部分的代数符号帳では、NUM1b=4である。ループ変数jがNUM1b未満の場合は、jのループを繰り返すためにST704に戻る。ループ変数jがNUM1bに達していれば、jのループは終了しST710に進む。 Next, in ST709, it is checked whether the loop variable j is less than the total number NUM1b of first pulse position candidates. In the partial algebraic codebook shown in FIG. 5, NUM1b = 4. If the loop variable j is less than NUM1b, the process returns to ST704 to repeat the loop of j. If the loop variable j has reached NUM1b, the loop for j ends and proceeds to ST710.
ST701では、ループ変数iのインクリメントが行われる。ループ変数iをインクリメントすることによって第2のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。 In ST701, the loop variable i is incremented. By incrementing the loop variable i, the position of the second pulse is moved and the random code vector of the next index number is evaluated.
次に、ST711において、ループ変数iが第2のパルスの位置候補の総数NUM2b未満かどうかのチェックを行う。図5に示す部分的代数符号帳では、NUM2b=36である。ループ変数iがNUM2b未満の場合は、iのループを繰り返すためにST702に戻る。ループ変数iがNUM2bに達していれば、iのループは終了し、図8のST801に進む。ST801に進んだ時点で図5(b)の探索は終了し、図5(c)の探索ループが開始される。 Next, in ST711, it is checked whether the loop variable i is less than the total number NUM2b of second pulse position candidates. In the partial algebraic codebook shown in FIG. 5, NUM2b = 36. If the loop variable i is less than NUM2b, the process returns to ST702 to repeat the loop of i. If the loop variable i has reached NUM2b, the loop for i ends, and the process proceeds to ST801 in FIG. When the process proceeds to ST801, the search in FIG. 5B is terminated, and the search loop in FIG. 5C is started.
ST801では、ループ変数iがクリアされて0になる。次に、ST802において第1のパルス位置(p1)をpos1c[i]にセットする。pos1c[ ]は図5(c)のパルス番号1の欄に示される位置(74、76、78)である。ここでは第1第2双方のパルスが絶対位置で表現される。
In ST801, the loop variable i is cleared to zero. Next, in ST802, the first pulse position (p1) is set to pos1c [i]. pos1c [] is a position (74, 76, 78) shown in the column of
次に、ST803においてループ変数jの初期化が行われる。ループ変数jは第2のパルスのループ変数で、初期値は0である。 Next, in ST803, the loop variable j is initialized. The loop variable j is the loop variable of the second pulse, and the initial value is 0.
次に、ST804において、第2のパルス位置(p2)をpos2c[j]にセットする。pos2c[ ]は図5(c)のパルス番号2の欄に示される位置{73、75、77、79}である。
Next, in ST804, the second pulse position (p2) is set to pos2c [j]. pos2c [] is the position {73, 75, 77, 79} shown in the column of
次に、ST805において、セットされた2本のパルス位置にパルスを立てた場合の誤差関数Eの計算を行う。誤差関数は、ターゲットとなるベクトルと雑音符号ベクトルから合成されるベクトルとの誤差を評価するためのもので、例えば式(1)に示されるような式が用いられる。なお、CELP符号化器で一般的によく用いられるように、適応符号ベクトルに対して雑音符号ベクトルを直交化する場合には、式(1)を変形した式を用いることになる。式(1)の値が最大になるときにターゲットとしているベクトルと雑音符号ベクトルで合成フィルタを駆動して得られる合成ベクトルとの誤差が最小となる。 Next, in ST805, an error function E is calculated when a pulse is set at the set two pulse positions. The error function is for evaluating an error between a target vector and a vector synthesized from the noise code vector, and an equation such as shown in Equation (1) is used, for example. Note that, as commonly used in CELP encoders, when orthogonalizing a noise code vector to an adaptive code vector, a formula obtained by modifying formula (1) is used. When the value of Expression (1) is maximized, the error between the target vector and the synthesized vector obtained by driving the synthesis filter with the noise code vector is minimized.
次に、ST806において、誤差評価関数Eの値が誤差評価関数最大値Maxを越えているかどうかの判定を行う。越えていればST807に進み、越えていなければST807をスキップしてST808に進む。ST807では、indexとMaxとposition1とposition2の更新が行われる。即ち、誤差評価関数最大値MaxをST805にて計算された誤差評価関数Eに更新し、indexをidxに更新し、position1を第1のパルスの位置p1に更新し、position2を第2のパルスの位置p2に更新する。 Next, in ST806, it is determined whether or not the value of the error evaluation function E exceeds the error evaluation function maximum value Max. If exceeded, the process proceeds to ST807, and if not exceeded, ST807 is skipped and the process proceeds to ST808. In ST807, index, Max, position1, and position2 are updated. That is, the error evaluation function maximum value Max is updated to the error evaluation function E calculated in ST805, the index is updated to idx, position1 is updated to the position p1 of the first pulse, and position2 is updated to the second pulse. Update to position p2.
次に、ST808において、ループ変数jとインデックス番号idxをそれぞれインクリメントする。ループ変数jをインクリメントすることによって第2のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。 Next, in ST808, the loop variable j and the index number idx are respectively incremented. By incrementing the loop variable j, the position of the second pulse is moved and the random code vector of the next index number is evaluated.
次に、ST809において、ループ変数jが第2のパルスの位置候補の総数NUM2c未満かどうかのチェックを行う。図5に示す部分的代数符号帳では、NUM2c=4である。ループ変数jがNUM2c未満の場合はjのループを繰り返すためにST804に戻る。ループ変数jがNUM2cに達していれば、jのループは終了しST810に進む。 Next, in ST809, it is checked whether the loop variable j is less than the total number NUM2c of second pulse position candidates. In the partial algebraic codebook shown in FIG. 5, NUM2c = 4. If the loop variable j is less than NUM2c, the process returns to ST804 to repeat the loop of j. If loop variable j has reached NUM2c, the loop for j ends and proceeds to ST810.
ST810では、ループ変数iのインクリメントが行われる。ループ変数iをインクリメントすることによって第1のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。 In ST810, the loop variable i is incremented. By incrementing the loop variable i, the position of the first pulse is moved and the random code vector of the next index number is evaluated.
次に、ST811において、ループ変数iが第1のパルスの位置候補の総数NUM1c未満かどうかのチェックを行う。図5に示した部分的代数符号帳では、NUM1c=3である。ループ変数iがNUM1c未満の場合はiのループを繰り返すためにST802に戻る。ループ変数iがNUM1cに達していれば、iのループは終了しST812に進む。ST812に進んだ時点で図5(c)の探索は終了し、全ての探索が終了する。 Next, in ST811, it is checked whether the loop variable i is less than the total number NUM1c of first pulse position candidates. In the partial algebraic codebook shown in FIG. 5, NUM1c = 3. If the loop variable i is less than NUM1c, the process returns to ST802 to repeat the loop of i. If loop variable i has reached NUM1c, the loop for i ends and proceeds to ST812. When the process proceeds to ST812, the search in FIG. 5C ends, and all searches end.
最後に、ST812において、探索結果であるindexが出力される。indexに対応する2本のパルス位置position1とposition2は出力する必要はないが、局部復号用に使用することができる。なお、各パルスの極性(+か−か)は、式(1)におけるベクトルxHと合わせることにより(式(1)におけるxHとcの相関が正のときのみを考えることにより)、予め決定しておくことが可能であるので、上記実施の形態では省略している。 Finally, in ST812, the index that is the search result is output. The two pulse positions position1 and position2 corresponding to the index do not need to be output, but can be used for local decoding. Note that the polarity (+ or-) of each pulse is determined in advance by combining it with the vector xH in equation (1) (by considering only when the correlation between xH and c in equation (1) is positive). Since it can be stored, it is omitted in the above embodiment.
以下に図9を参照して図5の符号帳を用いた上記実施の形態における雑音符号ベクトル生成方法(復号化方法)の処理の流れを説明する。図9では、パルスの極性(+、−)は別途復号化されること想定してパルスの位置のみを復号化する場合について具体的に示している。 The process flow of the random code vector generation method (decoding method) in the above embodiment using the codebook of FIG. 5 will be described below with reference to FIG. FIG. 9 specifically shows a case where only the pulse position is decoded assuming that the polarity (+, −) of the pulse is separately decoded.
まず、ST901において、符号器から受け取った雑音符号ベクトルのインデックスindexがIDX1未満かどうかをチェックする。IDX1は図5の符号帳における(a)の部分の符号帳サイズで、図6のST601における時点でのidxの値である。より具体的にはIDX1=32×4=128である。indexがIDX1未満であれば、2本のパルス位置は図5(a)で表現される部分であるので、ST602に進む。indexがIDX1以上である場合は、図5(b)又は(c)の部分になるのでさらにチェックを行うため、ST905に進む。 First, in ST901, it is checked whether the index index of the random code vector received from the encoder is less than IDX1. IDX1 is the codebook size of the part (a) in the codebook of FIG. 5, and is the value of idx at the time of ST601 in FIG. More specifically, IDX1 = 32 × 4 = 128. If the index is less than IDX1, the two pulse positions are portions represented in FIG. 5A, and the process proceeds to ST602. If the index is greater than or equal to IDX1, the process proceeds to ST905 for further checking because the part is the part of FIG. 5B or 5C.
ST902では、indexをNum2aで割った商idx1を求める。idx1は第1のパルスのインデックス番号となる。ST902においてint()は( )内の整数部を求める関数である。 In ST902, a quotient idx1 obtained by dividing index by Num2a is obtained. idx1 is the index number of the first pulse. In ST902, int () is a function for obtaining an integer part in ().
次に、ST903において、indexをNum2aで割った余りidx2を求める。idx2は第2のパルスのインデックス番号となる。 Next, in ST903, the remainder idx2 obtained by dividing the index by Num2a is obtained. idx2 is the index number of the second pulse.
次に、ST904において、ST902で求められたidx1を用いた第1のパルスの位置position1を、ST903で求められたidx2を用いて第2のパルスの位置position2を、それぞれ図5(a)の符号帳を用いて決定する。決定されたposition1とposition2はST914で用いられる。 Next, in ST904, the first pulse position position1 using idx1 obtained in ST902 is used, and the second pulse position position2 is used using idx2 obtained in ST903. Make a decision using a book. The determined position1 and position2 are used in ST914.
ST901でindexがIDX1以上である場合は、ST905に進む。ST905では、indexがIDX2未満かどうかをチェックする。IDX2は図5の符号帳における(a)の部分と(b)の部分を合わせた符号帳サイズで、図6のST801における時点でのidxの値である。より具体的にはIDX2=32×4+31×4=252である。indexがIDX2未満であれば、2本のパルス位置は図5(b)で表現される部分であるので、ST906に進む。indexがIDX2以上である場合は、図5(c)で表現される部分であるので、ST910に進む。 If the index is greater than or equal to IDX1 in ST901, the process proceeds to ST905. In ST905, it is checked whether the index is less than IDX2. IDX2 is a codebook size combining the part (a) and the part (b) in the codebook of FIG. 5, and is the value of idx at the time of ST801 in FIG. More specifically, IDX2 = 32 × 4 + 31 × 4 = 252. If the index is less than IDX2, the two pulse positions are portions represented in FIG. 5B, and the process proceeds to ST906. If the index is IDX2 or more, it is a part expressed in FIG. 5C, and the process proceeds to ST910.
ST906では、indexからIDX1を減じて、ST907に進む。ST907では、IDX1減算後のindexをNum1bで割った商idx2を求める。このidx2は第2のパルスのインデックス番号となる。ST907においてint( )は( )内の整数部を求める関数である。 In ST906, IDX1 is subtracted from the index, and the process proceeds to ST907. In ST907, the quotient idx2 obtained by dividing the index after IDX1 subtraction by Num1b is obtained. This idx2 is the index number of the second pulse. In ST907, int () is a function for obtaining the integer part in ().
次に、ST908において、IDX1減算後のindexをNum1bで割った余りidx1を求める。このidx1は第1のパルスのインデックス番号となる。 Next, in ST908, the remainder idx1 obtained by dividing the index after IDX1 subtraction by Num1b is obtained. This idx1 is the index number of the first pulse.
次に、ST909において、ST907で求められたidx2を用いた第2のパルスの位置position2を、ST908で求められたidx1を用いて第1のパルスの位置position1を、それぞれ図5(b)の符号帳を用いて決定する。決定されたposition1とposition2はST914で用いられる。 Next, in ST909, the second pulse position position2 using idx2 obtained in ST907 is used, and the first pulse position position1 is used using idx1 obtained in ST908. Make a decision using a book. The determined position1 and position2 are used in ST914.
ST905でindexがIDX2以上である場合は、ST910に進む。ST910では、indexからIDX2を減じて、ST911に進む。ST911では、IDX2減算後のindexをNum2cで割った商idx1を求める。このidx1は第1のパルスのインデックス番号となる。ST911においてint( )は( )内の整数部を求める関数である。 If the index is greater than or equal to IDX2 in ST905, the process proceeds to ST910. In ST910, IDX2 is subtracted from the index, and the process proceeds to ST911. In ST911, a quotient idx1 obtained by dividing the index after IDX2 subtraction by Num2c is obtained. This idx1 is the index number of the first pulse. In ST911, int () is a function for obtaining the integer part in ().
次に、ST912において、IDX2減算後のindexをNum2cで割った余りidx2を求める。このidx2は第2のパルスのインデックス番号となる。 Next, in ST912, a remainder idx2 is obtained by dividing the index after IDX2 subtraction by Num2c. This idx2 is the index number of the second pulse.
次に、ST913において、ST911で求められたidx1を用いた第1のパルスの位置position1を、ST912で求められたidx2を用いて第2のパルスの位置position2を、それぞれ図5(c)の符号帳を用いて決定する。決定されたposition1とposition2はST914で用いられる。 Next, in ST913, the first pulse position position1 using idx1 obtained in ST911 is used, and the second pulse position position2 using idx2 obtained in ST912 is shown in FIG. 5C. Make a decision using a book. The determined position1 and position2 are used in ST914.
ST914では、第1のパルスの位置position1と第2のパルスの位置position2とを用いて雑音符号ベクトルcode[ ]を生成する。即ち、code[position1]とcode[position2]以外は0であるベクトルを生成する。code「position1」とcode「position2」は別途復号されている極性sign1とsign2によって+1又は1となる(sign1及びsign2は+1又は1の値をとる)。code[ ]が復号される雑音符号ベクトルである。
In ST914, a random code vector code [] is generated using the
次に、パルス数が3本である部分的代数符号帳の構成例を図10に示す。 Next, FIG. 10 shows a configuration example of a partial algebraic codebook having three pulses.
図10における構成例は、3本のうち少なくとも2本は近接した位置に配置されるようにパルス探索位置を限定する構成を採る。この構成に対応する符号帳を図11に示す。 The configuration example in FIG. 10 adopts a configuration in which the pulse search position is limited so that at least two of the three are arranged at close positions. A codebook corresponding to this configuration is shown in FIG.
図10を用いて以下に説明を加える。第1のパルス発生器1001は、例えば図11(a)のパルス番号1の欄に示されるような予め定められた位置候補の一つに第1のパルスを立て、加算器1005に出力する。また同時に、第1のパルス発生器1001は、第1のパルスを立てた位置情報をパルス位置限定器1002に出力する。パルス位置限定器1002は、第1のパルス発生器1001から第1のパルスの位置情報を入力し、その位置を基準にして第2のパルスの位置候補を決定する。第2のパルスの位置候補は例えば図11(a)のパルス番号2の欄に示されるように第1のパルスの位置(=P1)からの相対表現で表される。
A description will be added below with reference to FIG. The
パルス位置限定器1002は、第2のパルス位置の候補を第2のパルス発生器1003へ出力する。第2のパルス発生器1003は、パルス位置限定器1002から入力された第2のパルスの位置候補の一つに第2のパルスを立て、加算器1005へ出力する。第3のパルス発生器1004は、例えば図11(a)のパルス番号3の欄に示されるような予め定められた位置候補の一つに第3のパルスを立て、加算器1005に出力する。加算器1005は、1001、1003、1004の各パルス発生器から出力された合計3つのインパルスベクトルのベクトル加算を行い、3本のパルスから成る雑音符号ベクトルを切換スイッチ1031に出力する。
The
第1のパルス発生器1006は、例えば図11(d)のパルス番号1の欄に示されるような予め定められた位置候補の一つに第1のパルスを立て、加算器1010に出力する。また同時に、第1のパルス発生器1006は、第1のパルスを立てた位置情報をパルス位置限定器1007に出力する。パルス位置限定器1007は、第1のパルス発生器1006から第1のパルスの位置情報を入力し、その位置を基準として第3のパルスの位置候補を決定する。第3のパルスの位置候補は例えば図11(d)のパルス番号3の欄に示されるように第1のパルスの位置(=P1)からの相対表現で表される。
The
パルス位置限定器1007は、第3のパルス位置の候補を第3のパルス発生器1008へ出力する。第3のパルス発生器1008は、パルス位置限定器1007から入力された第3のパルスの位置候補の一つに第3のパルスを立て、加算器1010へ出力する。第2のパルス発生器1009は、例えば図11(d)のパルス番号2の欄に示されるような予め定められた位置候補の一つに第2のパルスを立て、加算器1010に出力する。加算器1010は、1006、1008、1009の各パルス発生器から出力された合計3つのインパルスベクトルのベクトル加算を行い、3本のパルスから成る雑音符号ベクトルを切換スイッチ1031に出力する。
The
第3のパルス発生器1011は、例えば図11(b)のパルス番号3の欄に示されるような予め定められた位置候補の一つに第3のパルスを立て、加算器1015に出力する。第2のパルス発生器1012は、例えば図11(b)のパルス番号2の欄に示されるような予め定められた位置候補の一つに第2のパルスを立て、加算器1015に出力する。また同時に、第2のパルス発生器1012は、第2のパルスを立てた位置をパルス位置限定器1013に出力する。パルス位置限定器1013は、第2のパルス発生器1012から第2のパルスの位置を入力し、その位置を基準として第1のパルスの位置候補を決定する。第1のパルスの位置候補は例えば図11(b)のパルス番号1の欄に示されるように第2のパルスの位置(=P2)からの相対表現で表される。
For example, the
パルス位置限定器1013は、第1のパルスの位置候補を第1のパルス発生器1014へ出力する。第1のパルス発生器1014は、パルス位置限定器1013から入力された第1のパルスの位置候補の一つに第1のパルスを立て、加算器1015へ出力する。加算器1015は、1011、1012、1014の各パルス発生器から出力された合計3つのインパルスベクトルのベクトル加算を行い、3本のパルスから成る雑音符号ベクトルを切換えスイッチ1031に出力する。
The
第1のパルス発生器1016は、例えば図11(g)のパルス番号1の欄に示されるような予め定められた位置候補の一つに第1のパルスを立て、加算器1020に出力する。第2のパルス発生器1017は、例えば図11(g)のパルス番号2の欄に示されるような予め定められた位置候補の一つに第2のパルスを立て、加算器1020に出力する。また同時に、第2のパルス発生器1017は、第2のパルスを立てた位置をパルス位置限定器1018に出力する。パルス位置限定器1018は、第2のパルス発生器1017から第2のパルスの位置を入力し、その位置を基準として第3のパルスの位置候補を決定する。第3のパルスの位置候補は例えば図11(g)のパルス番号3の欄に示されるように第2のパルスの位置(=P2)からの相対表現で表される。
For example, the
パルス位置限定器1018は、第3のパルスの位置候補を第3のパルス発生器1019へ出力する。第3のパルス発生器1019は、パルス位置限定器1018から入力された第3のパルスの位置候補の一つに第3のパルスを立て、加算器1020へ出力する。加算器1020は、1016、1017、1019の各パルス発生器から出力された合計3つのインパルスベクトルのベクトル加算を行い、3本のパルスから成る雑音符号ベクトルを切換スイッチ1031に出力する。
The
第2のパルス発生器1021は、例えば図11(e)のパルス番号2の欄に示されるような予め定められた位置候補の一つに第2のパルスを立て、加算器1025に出力する。第3のパルス発生器1024は、例えば図11(e)のパルス番号3の欄に示されるような予め定められた位置候補の一つに第3のパルスを立て、加算器1025に出力する。また同時に、第3のパルス発生器1024は、第3のパルスを立てた位置をパルス位置限定器1023に出力する。パルス位置限定器1023は、第3のパルス発生器1024から第3のパルスの位置を入力し、その位置を基準として第1のパルスの位置候補を決定する。第1のパルスの位置候補は例えば図11(e)のパルス番号1の欄に示されるように第3のパルスの位置(=P3)からの相対表現で表される。
For example, the
パルス位置限定器1023は、第1のパルスの位置候補を第1のパルス発生器1022へ出力する。第1のパルス発生器1022は、パルス位置限定器1023から入力された第1のパルスの位置候補の一つに第1のパルスを立て、加算器1025へ出力する。加算器1025は、1021、1022、1024の各パルス発生器から出力された合計3つのインパルスベクトルのベクトル加算を行い、3本のパルスから成る雑音符号ベクトルを切換スイッチ1031に出力する。
The
第1のパルス発生器1026は、例えば図11(h)のパルス番号1の欄に示されるような予め定められた位置候補の一つに第1のパルスを立て、加算器1030に出力する。第3のパルス発生器1029は、例えば図11(h)のパルス番号3の欄に示されるような予め定められた位置候補の一つに第3のパルスを立て、加算器1030に出力する。また同時に、第3のパルス発生器1029は、第3のパルスを立てた位置をパルス位置限定器1028に出力する。パルス位置限定器1028は、第3のパルス発生器1029から第3のパルスの位置を入力し、その位置を基準として第2のパルスの位置候補を決定する。第2のパルスの位置候補は、例えば図11(h)のパルス番号2の欄に示されるように第3のパルスの位置(=P3)からの相対表現で表される。
For example, the
パルス位置限定器1028は、第2のパルスの位置候補を第2のパルス発生器1027へ出力する。第2のパルス発生器1027は、パルス位置限定器1028から入力された第2のパルスの位置候補の一つに第2のパルスを立て、加算器1030へ出力する。加算器1030は、1026、1027、1029の各パルス発生器から出力された合計3つのインパルスベクトルのベクトル加算を行い、3本のパルスから成る雑音符号ベクトルを切換スイッチ1031に出力する。
The
切換スイッチ1031は、1005、1010、1015、1020、1025、1030の各加算器から入力される、合計6種類の雑音符号ベクトルの中から1つを選び、雑音符号ベクトル1032を出力する。この選択は外部からの制御によって指定される。
The
なお、図5及び図11においては、相対位置で表現されるパルスがフレームからはみ出す場合を想定して、図5(c)や図11(c)(f)(i)を設けているが、絶対位置で表現されるパルスの位置候補の範囲がフレームの前方に偏っているために相対位置で表現されるパルスがフレームからはみ出すことが有り得ない場合には、これらの部分(図5(c)など)は省略可能である。 In FIGS. 5 and 11, assuming that the pulse represented by the relative position protrudes from the frame, FIGS. 5C and 11C, 11F, and 11I are provided. If the pulse position candidate range expressed by the absolute position is biased to the front of the frame and the pulse expressed by the relative position cannot be out of the frame, these portions (FIG. 5C) Etc.) can be omitted.
(実施の形態2)
図12は、実施の形態2に係る雑音符号ベクトル生成器を備えた音声符号化装置を示すブロック図である。同図に示す音声符号化装置は、前処理器1201、LPC分析器1202、LPC量子化器1203、適応符号帳1204、乗算器1205、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1206、乗算器1207、加算器1208、LPC合成フィルタ1209、加算器1210、聴覚重みづけ器1211、誤差最小化器1212を備える。
(Embodiment 2)
FIG. 12 is a block diagram showing a speech coding apparatus including a random code vector generator according to the second embodiment. The speech coding apparatus shown in FIG. 1 includes a
この音声符号化装置において、入力音声データは、音声信号をA/D変換して得られるディジタル信号であり、処理単位時間(フレーム)毎に前処理器1201に入力される。前処理器1201は、入力音声データを主観的に高品質化したり符号化に適した状態の信号に変換するための処理を行うもので、例えば直流成分をカットするためのハイパスフィルタ処理や音声信号の特徴を強調するようなプリエンファシス処理などを行う。
In this speech coding apparatus, input speech data is a digital signal obtained by A / D converting a speech signal, and is input to the
前処理後の信号は、LPC分析器1202と加算器1210とに出力される。LPC分析器1202は、前処理器1201から入力した信号を用いてLPC分析(線形予測分析)を行い、得られたLPC(線形予測係数)をLPC量子化器1203に出力する。LPC量子化器1203は、LPC分析器1202から入力したLPCの量子化を行い、量子化LPCをLPC合成フィルタ1209へ出力し、量子化LPCの符号化データを伝送路を通じて復号器側へ出力する。
The preprocessed signal is output to the
適応符号帳1204は、過去に生成した励振ベクトル(加算器1208から出力されるベクトル)のバッファであり、誤差最小化器1212によって指定された位置から適応符号ベクトルを切り出して乗算器1205へ出力する。乗算器1205は、適応符号帳1204から出力された適応符号ベクトルに適応符号ベクトル利得を乗じて加算器1208へ出力する。適応符号ベクトル利得は、誤差最小化器によって指定される。
The
部分的代数符号帳とランダム符号帳から成る雑音符号帳1206は、後述する図14に示す構成を有した符号帳であり、少なくとも2本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率(フレーム全体のサンプル数に対する振幅ゼロのサンプル数の割合)90%程度以下の雑音符号ベクトルのいずれかを乗算器1207へ出力する。
A
乗算器1207は、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1206から出力された雑音符号ベクトルに雑音符号ベクトル利得を乗じて加算器1208へ出力する。加算器1208は、乗算器1205から出力された適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器1207から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳1204とLPC合成フィルタ1209とに出力する。
適応符号帳1204へ出力された励振ベクトルは、適応符号帳1204を更新するのに用いられ、LPC合成フィルタ1209に出力された励振ベクトルは合成音声を生成するために用いられる。LPC合成フィルタ1209は、LPC量子化器1203から出力された量子化LPCを用いて構成される線形予測フィルタであって、加算器1208から出力された励振ベクトルを用いてLPC合成フィルタを駆動し、合成信号を加算器1210に出力する。加算器1210は、前処理器1201から出力された前処理後の入力音声信号とLPC合成フィルタ1209から出力された合成信号との差分(誤差)信号を計算し、聴覚重みづけ器1211に出力する。
The excitation vector output to
聴覚重みづけ器1211は、加算器1210から出力される差分信号を入力として、聴覚的な重みづけを行い、誤差最小化器1212へ出力する。誤差最小化器1212は、聴覚重みづけ器1211から出力された聴覚重みづけ後の差分信号を入力として、例えばその2乗和が最小となるように適応符号帳1204から適応符号ベクトルを切り出す位置と部分的代数符号帳とランダム符号帳とから成る雑音符号帳1206から生成する雑音符号ベクトルと乗算器1205で乗じる適応符号ベクトル利得と乗算器1207で乗じる雑音符号ベクトル利得との値を調整し、各々を符号化し音源パラメータ符号化データ1214として伝送路を通じて復号器側に出力する。
The
図13は、実施の形態2にかかる雑音符号ベクトル生成器を備えた音声復号化装置を示すブロック図である。同図に示す音声復号化装置は、LPC復号器1301、音源パラメータ復号器1302、適応符号帳1303、乗算器1304、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1305、乗算器1306、加算器1307、LPC合成フィルタ1308、後処理器1309を備える。
FIG. 13 is a block diagram of a speech decoding apparatus including a random code vector generator according to the second embodiment. The speech decoding apparatus shown in the figure includes an
この音声復号化装置において、伝送路を通じてLPC符号化データと音源パラメータ符号化データがフレーム単位でLPC復号器1301と音源パラメータ復号器1302とにそれぞれ入力される。LPC復号器1301は、量子化LPCを復号してLPC合成フィルタ1308に出力する。後処理器1309で量子化LPCを使用する場合は、後処理器1309にも同時に量子化LPCがLPC復号器1301から出力される。音源パラメータ復号器1302は、適応符号ベクトルを切り出す位置情報と、適応符号ベクトル利得と、雑音符号ベクトルを指定するインデックス情報と、雑音符号ベクトル利得とを、適応符号帳1303と、乗算器1304と、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1305と、乗算器1306とにそれぞれ出力する。
In this speech decoding apparatus, the LPC encoded data and the excitation parameter encoded data are input to the
適応符号帳1303は、過去に生成した励振ベクトル(加算器1307から出力されるベクトル)のバッファであり、音源パラメータ復号器1302から入力した切り出し位置から適応符号ベクトルを切り出して乗算器1304に出力する。乗算器1304は、適応符号帳1303から出力された適応符号ベクトルに、音源パラメータ復号器1302から入力した適応符号ベクトル利得を乗じて加算器1307へ出力する。
The
部分的代数符号帳とランダム符号帳とから成る雑音符号帳1305は、図14に示す構成を有した雑音符号帳であり、図12の1206に示したものと同一の雑音符号帳であり、音源パラメータ復号器1302から入力したインデックスで指定される少なくとも2本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率90%程度以下の雑音符号ベクトルのいずれかを乗算器1306へ出力する。
A
乗算器1306は、部分的代数符号帳から出力された雑音符号ベクトルに、音源パラメータ復号器1302から入力される雑音符号ベクトル利得を乗じて、加算器1306へ出力する。加算器1307は、乗算器1304から出力される適応符号ベクトル利得乗算後の適応符号ベクトルと、乗算器1306から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳1303とLPC合成フィルタ1308とに出力する。
適応符号帳1303へ出力された励振ベクトルは、適応符号帳1303を更新する場合に用いられ、LPC合成フィルタ1308に出力された励振ベクトルは、合成音声を生成するために用いられる。LPC合成フィルタ1308は、LPC復号器1301から出力された量子化LPCを用いて構成される線形予測フィルタであって、加算器1307から出力された励振ベクトルを用いてLPC合成フィルタを駆動し、合成信号を後処理器1309に出力する。
The excitation vector output to
後処理器1309は、LPC合成フィルタ1308から出力される合成音声に対して、ホルマント強調処理やピッチ強調処理やスペクトル傾斜補正処理などから成るポストフィルタ処理や定常的な背景雑音を聞きやすくするための処理など主観的品質を改善するための処理を行い、復号音声データとして出力する。
The post-processor 1309 is for making it easy to hear the post-filter processing composed of formant emphasis processing, pitch emphasis processing, spectral tilt correction processing, etc., and stationary background noise on the synthesized speech output from the
図14に本発明の実施の形態2にかかる雑音符号ベクトル生成装置の構成を示す。同図に示す雑音符号ベクトル生成装置は、実施の形態1に示した部分的代数符号帳1401とランダム符号帳1402を備える。
FIG. 14 shows a configuration of a random code vector generation device according to the second exemplary embodiment of the present invention. The random code vector generation apparatus shown in the figure includes partial
部分的代数符号帳1401は、2本以上の単位パルスから構成される少なくとも2本のパルスが近接している雑音符号ベクトルを生成し、切換えスイッチ1403に出力する。部分的代数符号帳1401の雑音符号ベクトルの生成方法は実施の形態1に具体的に示されている。
The partial
ランダム符号帳1402は、部分的代数符号帳1401から生成される雑音符号ベクトルよりも多いパルス本数から成る雑音符号ベクトルを格納しており、格納している雑音符号ベクトルの中から一つのベクトルを選んで切換スイッチ1403に出力する。
The
ランダム符号帳1402は、複数のチャンネルから構成する方が単独の符号帳を用いるよりも演算量、メモリ量の面で有利である。また、2本のパルスが接近しているような雑音符号ベクトルは部分的代数符号帳1401によって生成できるため、全てのパルスが接近していないようなフレーム全体に均などにパルスが立っている雑音符号ベクトルをランダム符号帳1402に格納することによって、無声子音や定常雑音に対する性能を改善することができる。
The
また、ランダム符号帳1401が格納する雑音符号ベクトルのパルス本数は、フレーム長が80サンプルの場合で、演算量を少なくするためには、8〜16本程度にすることが好ましい。この場合、ランダム符号帳1401を2チャンネル構成にすると、各チャンネル4〜8本程度のパルスから成るベクトルを格納すれば良い。また、この様なスパースベクトルにおいて各パルスの振幅を+1か−1にすることにより、さらに演算量、メモリ量の節約を図ることも可能である。
In addition, the number of pulses of the random code vector stored in the
切換スイッチ1403は、外部からの制御によって(例えば本雑音符号ベクトルを符号化器に用いる場合はターゲットとの誤差最小化を行うブロックから制御を受け、復号化器に用いる場合は復号した雑音符号ベクトルのインデックスによって制御される)部分的代数符号帳1401から出力された雑音符号ベクトルとランダム符号帳1402から出力された雑音符号ベクトルとのどちらかを選択して、雑音符号ベクトル生成器の出力雑音符号ベクトル1404として出力する。
The
ここで、ランダム符号帳1402から出力される雑音符号ベクトルと、部分的代数符号帳1401から出力される雑音符号ベクトルの割合(ランダム:代数)は、1:1〜2:1、すなわちランダム50〜66%、代数34〜50%であることが望ましい。
Here, the ratio of the random code vector output from the
以下に図15を参照して上記実施の形態における雑音符号ベクトル生成方法(符号化方法、雑音符号帳探索方法)の処理の流れについて説明する。まず、ST1501において部分的代数符号帳の探索を行う。具体的な探索方法の詳細については実施の形態1に示されるように、式(1)の最大化を行うことによって実現される。部分的代数的符号帳のサイズはIDXaであり、本ステップでは、部分的代数符号帳の中からの最適候補のインデックスindex(0≦index<IDXa)が決定される。 The flow of processing of the random code vector generation method (encoding method, random codebook search method) in the above embodiment will be described below with reference to FIG. First, in ST1501, a partial algebraic codebook is searched. The specific details of the search method are realized by maximizing Expression (1) as shown in the first embodiment. The size of the partial algebraic codebook is IDXa. In this step, the index index (0 ≦ index <IDXa) of the optimal candidate from the partial algebraic codebook is determined.
次に、ST1502においてランダム符号帳の探索を行う。ランダム符号帳の探索はCELP符号化器で一般に行われてる方法を用いて行う。具体的には、式(1)に示される評価式をランダム符号帳に格納されている全ての雑音符号ベクトルに対して計算し、最大となるベクトルに対するインデックスindexを決定する。ただし、既にST1501において、式(1)の最大化が行われているので、ST1501で決定された式(1)の最大値を上回る雑音符号ベクトルが存在する場合のみ、ST1501で決定されたindexを新たなインデックスindex(IDXa≦index<(IDXa+IDXr))に更新する。ST1501で決定された式(1)の最大値を上回る雑音符号ベクトルがランダム符号帳に格納されていない場合は、ST1501で決定された符号化データ(インデックスindex)を雑音符号ベクトルの符号化情報として出力する。 Next, in ST1502, a random codebook search is performed. The random codebook search is performed using a method generally performed by a CELP encoder. Specifically, the evaluation formula shown in Formula (1) is calculated for all the noise code vectors stored in the random codebook, and the index index for the maximum vector is determined. However, since the maximization of Equation (1) has already been performed in ST1501, the index determined in ST1501 is used only when there is a noise code vector exceeding the maximum value of Equation (1) determined in ST1501. The index is updated to a new index (IDXa ≦ index <(IDXa + IDXr)). When the random code book exceeding the maximum value of the equation (1) determined in ST1501 is not stored in the random codebook, the encoded data (index index) determined in ST1501 is used as the encoding information of the noise code vector. Output.
以下に図16を参照して上記実施の形態における雑音符号ベクトル生成方法(復号化方法)の処理の流れを説明する。 The flow of processing of the random code vector generation method (decoding method) in the above embodiment will be described below with reference to FIG.
まずST1601において、符号器から伝送され復号された雑音符号ベクトルの符号化情報indexがIDXa未満かどうかを判定する。IDXaは部分的雑音符号帳のサイズである。本雑音符号ベクトル生成器は、サイズIDXaの部分的代数符号帳とサイズIDXrのランダム符号帳とから成る雑音符号帳から雑音符号ベクトルを生成しており、本雑音符号帳はインデックスが0〜(IDXa−1)に部分的代数符号帳を、IDXa〜(IDXa+IDXr−1)にランダム符号帳を備えている。したがって、受け取ったindexがIDXa未満であれば部分的代数符号帳によって雑音符号ベクトルが生成され、IDXa以上((IDXa+IDXr)未満)であればランダム符号帳によって雑音符号ベクトルが生成されることになる。本ステップでindexがIDXa未満であれば、ST1602に進み、IDXa以上であればST1604に進む。 First, in ST1601, it is determined whether or not the encoding information index of the noise code vector transmitted from the encoder and decoded is less than IDXa. IDXa is the size of the partial noise codebook. The random code vector generator generates a random code vector from a random codebook composed of a partial algebraic codebook of size IDXa and a random codebook of size IDXr, and the random codebook has an index of 0 to (IDXa -1) includes a partial algebraic codebook, and IDXa to (IDXa + IDXr-1) include a random codebook. Therefore, if the received index is less than IDXa, a noise code vector is generated by the partial algebraic codebook, and if it is greater than or equal to IDXa (less than (IDXa + IDXr)), a noise code vector is generated by the random codebook. If the index is less than IDXa in this step, the process proceeds to ST1602, and if it is greater than or equal to IDXa, the process proceeds to ST1604.
ST1602では、部分的代数符号帳パラメータの復号が行われる。具体的な復号方法は、実施の形態1に示されている。例えばパルスが2本の場合はインデックスindexから第1のパルスの位置position1と第2のパルスの位置position2とが復号される。また、パルスの極性情報もindexに含まれる場合は、第1のパルスの極性sign1と第2のパルスの極性sign2も併せて復号される。ここでsign1及びsign2は+1か−1である。
In ST1602, partial algebraic codebook parameters are decoded. A specific decoding method is shown in the first embodiment. For example, when there are two pulses, the
次にST1603において、復号した部分的代数符号帳パラメータから雑音符号ベクトルが生成される。具体的には、例えばパルスが2本の場合はposition1の位置に極性がsign1で振幅が1のパルスを立て、position2の位置に極性がsign2で振幅が1のパルスを立て、それ以外の点は全て0としたベクトルcode[0〜Num−1]を雑音符号ベクトルとして出力する。ここで、Numはフレーム長又は雑音符号ベクトル長(サンプル)である。 Next, in ST1603, a random code vector is generated from the decoded partial algebraic codebook parameters. Specifically, for example, when there are two pulses, a pulse with a polarity of sign1 and an amplitude of 1 is set at the position of position1, a pulse with a polarity of sign2 and an amplitude of 1 is set at the position of position2, and the other points are as follows. A vector code [0 to Num-1], all set to 0, is output as a noise code vector. Here, Num is a frame length or a noise code vector length (sample).
一方、ST1601において、indexがIDXa以上であった場合は、ST1604に進む。ST1604において、indexからIDXaを減じる。これは単にindexを0〜IDXr−1の範囲に変換するためである。ここでIDXrはランダム符号帳のサイズである。 On the other hand, if the index is greater than or equal to IDXa in ST1601, the process proceeds to ST1604. In ST1604, IDXa is subtracted from the index. This is simply to convert the index into the range of 0 to IDXr-1. Here, IDXr is the size of the random codebook.
次にST1605において、ランダム符号帳パラメータの復号が行われる。具体的には、例えば2チャンネル構成のランダム符号帳の場合第1チャンネルのランダム符号帳インデックスindexR1と第2チャンネルのランダム符号帳インデックスindexR2をindexから復号する。また、indexに各チャンネルの極性情報が含まれる場合は第1チャンネルの極性sign1と第2チャンネルの極性sign2も併せて復号される。sign1及びsign2は+1又は1である。 Next, in ST1605, random codebook parameters are decoded. Specifically, for example, in the case of a random codebook having a two-channel configuration, the random codebook index indexR1 of the first channel and the random codebook index indexR2 of the second channel are decoded from the index. If the index includes polarity information of each channel, the polarity sign1 of the first channel and the polarity sign2 of the second channel are also decoded. sign1 and sign2 are +1 or 1.
次にST1606において、復号したランダム符号帳パラメータから雑音符号ベクトルが生成される。具体的には、例えばランダム符号帳が2チャンネル構成の場合は第1チャンネルRCB1からRCB1[indexR1][0〜Num−1]を、第2チャンネルRCB2からRCB2[indexR2][0〜Num−1]をそれぞれ取り出し、2つのベクトルを加算したものを雑音符号ベクトルcode[0〜Num−1]として出力する。ここで、Numはフレーム長又は雑音符号ベクトル長(サンプル)である。 Next, in ST1606, a random code vector is generated from the decoded random codebook parameters. Specifically, for example, when the random codebook has a two-channel configuration, the first channels RCB1 to RCB1 [indexR1] [0-Num-1] and the second channels RCB2 to RCB2 [indexR2] [0-Num-1] are used. Are obtained by adding the two vectors and output as a random code vector code [0-Num-1]. Here, Num is a frame length or a noise code vector length (sample).
(実施の形態3)
図17は、実施の形態3に係る雑音符号ベクトル生成器を備えた音声符号化装置を示したブロック図である。同図に示す音声符号化装置は、前処理器1701、LPC分析器1702、LPC量子化器1703、適応符号帳1704、乗算器1705、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1706、乗算器1707、加算器1708、LPC合成フィルタ1709、加算器1710、聴覚重みづけ器1711、誤差最小化器1712、モード判定器1713を備える。
(Embodiment 3)
FIG. 17 is a block diagram showing a speech encoding apparatus including a random code vector generator according to the third embodiment. The speech encoding apparatus shown in the figure includes a
この音声符号化装置においては、入力音声データは、音声信号をA/D変換して得られるディジタル信号であり、処理単位時間(フレーム)毎に前処理器1701に入力される。前処理器1701は、入力音声データを主観的に高品質化したり符号化に適した状態の信号に変換するための処理を行うもので、例えば直流成分をカットするためのハイパスフィルタ処理や音声信号の特徴を強調するようなプリエンファシス処理などを行う。
In this speech coding apparatus, input speech data is a digital signal obtained by A / D converting a speech signal, and is input to the
前処理後の信号は、LPC分析器1702と加算器1710とに出力される。LPC分析器1702は、前処理器1701から入力した信号を用いてLPC分析(線形予測分析)を行い、得られたLPC(線形予測係数)をLPC量子化器1703に出力する。LPC量子化器904は、LPC分析器903から入力したLPCの量子化を行い、量子化LPCをLPC合成フィルタ1709及びモード判定器1713へ出力し、量子化LPCの符号化データを伝送路を通じて復号器側へ出力する。
The preprocessed signal is output to the
モード判定器1713は、入力した量子化LPCの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け(モード判定)を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳1716に出力する。より具体的には、量子化LPCの動的特徴を用いることにより音声区間/非音声区間の切り分けを行い、量子化LPCの静的特徴を用いることにより有声/無声区間の切り分けを行う。量子化LPCの動的特徴としてはフレーム間の変動量や過去に非音声区間と判定された区間における平均的な量子化LPCと現フレームにおける量子化LPCとの距離(差)などを用いることができる。また、量子化LPCの静的特徴としては1次の反射係数などを用いることができる。
The
なお、量子化LPCはLSPや反射係数やLPC予測残差パワなど他の領域のパラメータに変換することによってより有効に利用できる。また、モード情報を伝送することが可能な場合は、量子化LPCのみからモード判定を行うのではなく、入力音声データを分析して得られる様々なパラメータを利用してより正確かつ細かいモード判定を行うこともできる。この場合、モード情報は符号化されてLPC符号化データ1714及び音源パラメータ符号化データ1715とともに伝送路を通じて復号器側に出力される。 Note that the quantized LPC can be used more effectively by converting it into parameters of other regions such as LSP, reflection coefficient, and LPC prediction residual power. In addition, when mode information can be transmitted, mode determination is not performed only from quantized LPC, but more accurate and detailed mode determination is performed using various parameters obtained by analyzing input voice data. It can also be done. In this case, the mode information is encoded and output to the decoder side through the transmission path together with the LPC encoded data 1714 and the excitation parameter encoded data 1715.
適応符号帳1704は、過去に生成した励振ベクトル(加算器1708から出力されるベクトル)のバッファであり、誤差最小化器1712によって指定された位置から適応符号ベクトルを切り出して乗算器1705へ出力する。乗算器1705は、適応符号帳1704から出力された適応符号ベクトルに適応符号ベクトル利得を乗じて加算器1708へ出力する。
The
適応符号ベクトル利得は、誤差最小化器によって指定される。部分的代数符号帳とランダム符号帳から成る雑音符号帳1706は、モード判定器1713から入力したモード情報によって部分的代数符号帳とランダム符号帳の比率が切り替わる雑音符号帳であり、図9に示すように、モード情報によって部分的代数符号帳のエントリ数とランダム符号帳のエントリ数が適応的に制御される(切換えられる)構成を有しており、少なくとも2本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率(フレーム全体のサンプル数に対する振幅ゼロのサンプル数の割合)90%程度以下の雑音符号ベクトルのいずれかを乗算器1707へ出力する。
The adaptive code vector gain is specified by the error minimizer. A
乗算器1707は、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1706から出力された雑音符号ベクトルに雑音符号ベクトル利得を乗じて加算器1708へ出力する。加算器1708は、乗算器1705から出力された適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器1707から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳1704とLPC合成フィルタ1709とに出力する。
適応符号帳1704へ出力された励振ベクトルは、適応符号帳1704を更新するのに用いられ、LPC合成フィルタ1709に出力された励振ベクトルは合成音声を生成するために用いられる。LPC合成フィルタ1709は、LPC量子化器1703から出力された量子化LPCを用いて構成される線形予測フィルタであって、加算器1708から出力された励振ベクトルを用いてLPC合成フィルタを駆動し、合成信号を加算器1710に出力する。
The excitation vector output to
加算器1710は、前処理器1701から出力された前処理後の入力音声信号とLPC合成フィルタ1709から出力された合成信号との差分(誤差)信号を計算し、聴覚重みづけ器1711に出力する。聴覚重みづけ器1711は、加算器1710から出力される差分信号を入力として、聴覚的な重みづけを行い、誤差最小化器1712へ出力する。
The
誤差最小化器1712は、聴覚重みづけ器1711から出力された聴覚重みづけ後の差分信号を入力として、例えばその2乗和が最小となるように適応符号帳1704から適応符号ベクトルを切り出す位置と部分的代数符号帳とランダム符号帳とから成る雑音符号帳1706から生成する雑音符号ベクトルと、乗算器1705で乗じる適応符号ベクトル利得と、乗算器1707で乗じる雑音符号ベクトル利得との値を調整し、各々を符号化し音源パラメータ符号化データとして伝送路を通じて復号器側に出力する。
The
図18は、実施の形態3にかかる雑音符号ベクトル生成器を備えた音声復号化装置を示す。同図に示す音声復号化装置は、LPC復号器1801、音源パラメータ復号器1802、適応符号帳1803、乗算器1804、部分的代数符号帳とランダム符号帳とから成る雑音符号帳1805、乗算器1806、加算器1807、LPC合成フィルタ1808、後処理器1809、モード判定器1810を備える。
FIG. 18 illustrates a speech decoding apparatus including the random code vector generator according to the third embodiment. The speech decoding apparatus shown in the figure includes an
この音声復号化装置において、伝送路を通じてLPC符号化データと音源パラメータ符号化データがフレーム単位でLPC復号器1801と音源パラメータ復号器1802とにそれぞれ入力される。LPC復号器1801は、量子化LPCを復号してLPC合成フィルタ1808及びモード判定器1810に出力する。後処理器1809で量子化LPCを使用する場合は、後処理器1809にも同時に量子化LPCがLPC復号器1801から出力される。モード判定器1810は、図17のモード判定器1713と同一の構成であり、入力した量子化LPCの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け(モード判定)を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳1805及び後処理器1809に出力する。
In this speech decoding apparatus, the LPC encoded data and the excitation parameter encoded data are input to the
より具体的には、量子化LPCの動的特徴を用いることにより音声区間/非音声区間の切り分けを行い、量子化LPCの静的特徴を用いることにより有声/無声区間の切り分けを行う。量子化LPCの動的特徴としてはフレーム間の変動量や過去に非音声区間と判定された区間における平均的な量子化LPCと現フレームにおける量子化LPCとの距離(差)などを用いることができる。また、量子化LPCの静的特徴としては1次の反射係数などを用いることができる。 More specifically, the voice segment / non-speech segment is separated by using the dynamic feature of the quantized LPC, and the voiced / unvoiced segment is separated by using the static feature of the quantized LPC. As dynamic characteristics of the quantized LPC, a variation amount between frames, a distance (difference) between an average quantized LPC in a section determined as a non-voice section in the past and a quantized LPC in the current frame, and the like are used. it can. Further, as a static feature of the quantized LPC, a primary reflection coefficient or the like can be used.
なお、量子化LPCはLSPや反射係数やLPC予測残差パワなど他の領域のパラメータに変換することによってより有効利用できる。また、モード情報を別情報として伝送することが可能な場合は、別途伝送されるモード情報を復号し、復号モード情報を雑音符号帳1805及び後処理器1809に出力する。
Note that the quantized LPC can be used more effectively by converting it into parameters of other regions such as LSP, reflection coefficient, and LPC prediction residual power. If the mode information can be transmitted as separate information, the mode information transmitted separately is decoded, and the decoded mode information is output to the
音源パラメータ復号器1802は、適応符号ベクトルを切り出す位置情報と、適応符号ベクトル利得と、雑音符号ベクトルを指定するインデックス情報と、雑音符号ベクトル利得とを、適応符号帳1803と、乗算器1804と、部分的代数符号帳と、ランダム符号帳とから成る雑音符号帳1805と、乗算器1806とにそれぞれ出力する。
The
適応符号帳1803は、過去に生成した励振ベクトル(加算器1807から出力されるベクトル)のバッファであり、音源パラメータ復号器1802から入力した切り出し位置から適応符号ベクトルを切り出して乗算器1804に出力する。乗算器1804は、適応符号帳1803から出力された適応符号ベクトルに、音源パラメータ復号器1802から入力した適応符号ベクトル利得を乗じて加算器1807へ出力する。
The
部分的代数符号帳とランダム符号帳とから成る雑音符号帳1807は、図9に示す構成を有した雑音符号帳であり、図17の1706に示したものと同一の雑音符号帳であり、音源パラメータ復号器1802から入力したインデックスで指定される少なくとも2本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率90%程度以下の雑音符号ベクトルのいずれかを乗算器1806へ出力する。
A
乗算器1806は、部分的代数符号帳から出力された雑音符号ベクトルに、音源パラメータ復号器1802から入力される雑音符号ベクトル利得を乗じて、加算器1806へ出力する。加算器1807は、乗算器1804から出力される適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器1806から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳1803とLPC合成フィルタ1808とに出力する。
適応符号帳1803へ出力された励振ベクトルは、適応符号帳1803を更新するのに用いられ、LPC合成フィルタ1808に出力された励振ベクトルは合成音声を生成するために用いられる。LPC合成フィルタ1808は、LPC復号器1801から出力された量子化LPCを用いて構成される線形予測フィルタであって、加算器1807から出力された励振ベクトルを用いてLPC合成フィルタを駆動し、合成信号を後処理器1809に出力する。
The excitation vector output to
後処理器1809は、LPC合成フィルタ1808から出力される合成音声に対して、ホルマント強調処理やピッチ強調処理やスペクトル傾斜補正処理などから成るポストフィルタ処理や定常的な背景雑音を聞きやすくするための処理など主観的品質を改善するための処理を行い、復号音声データ1810として出力する。これらの後処理は、モード判定器1808から入力するモード情報を用いて適応的に行われる。即ち、モード毎に適した後処理を切替えて適用したり、後処理の強弱を適応的に変化させる。
The post-processor 1809 makes it easy to hear the post-filter processing including the formant emphasis processing, the pitch emphasis processing, the spectral tilt correction processing, and the stationary background noise on the synthesized speech output from the
図19は、本発明の実施の形態3にかかる雑音符号ベクトル生成装置の構成を示すブロック図である。同図に示す雑音符号ベクトル生成器は、パルス位置限定器制御器1901、部分的代数符号帳1902、ランダム符号帳エントリ数制御器1903、ランダム符号帳1904を備える。
FIG. 19 is a block diagram illustrating a configuration of a random code vector generation device according to the third embodiment of the present invention. The random code vector generator shown in the figure includes a pulse
パルス位置限定器制御器1901は、外部から入力されるモード情報に応じてパルス位置限定器の制御信号を部分的代数符号帳1902に出力する。この制御は部分的代数符号帳のサイズを(モードに応じて)増減させるために行うもので、例えばモードが無声/定常雑音モードのような場合は限定を強くする(パルス位置の候補数を少なくする)ことによって部分的代数符号帳のサイズを小さくする(その代わりにランダム符号帳1904のサイズが大きくなるようにランダム符号帳エントリ数制御器1903で制御を行う)。
The pulse
このようにすることによって、無声部や定常雑音部など数本のパルスから成る雑音符号ベクトルを用いると主観的品質が劣化するような信号に対して性能改善を図ることが可能となる。パルス位置限定器は部分的代数符号帳1902に組み込まれており、その具体的動作は実施の形態1に示されている。
By doing so, it is possible to improve the performance of a signal whose subjective quality deteriorates when a noise code vector composed of several pulses such as a silent part and a stationary noise part is used. The pulse position limiter is incorporated in the partial
部分的代数符号帳1902は、パルス位置限定器制御器1901から入力した制御信号によって内部に組み込まれたパルス位置限定器の動作が制御される部分的代数符号帳であり、パルス位置限定器によるパルス位置候補の限定度合いにより符号帳サイズが増減する。部分的代数符号帳の具体的動作については実施の形態1に示されている。本符号帳から生成される雑音符号ベクトルは切換スイッチ1905に出力される。
The partial
ランダム符号帳エントリ数制御器1903は、外部から入力されたモード情報に応じてランダム符号帳1904のサイズを増減する制御を行う。本制御は、パルス位置限定器制御器1901の制御と連動して行われる。即ち、パルス位置限定器制御器1901によって部分的代数符号帳1902のサイズを増加させた場合は、ランダム符号帳エントリ数制御器1903は、ランダム符号帳1904のサイズを減少させ、パルス位置限定器制御器1901によって部分的代数符号帳1902のサイズを減少させた場合は、ランダム符号帳エントリ数制御器1903は、ランダム符号帳1904のサイズを増加させるような制御を行う。そして、部分的代数符号帳1902とランダム符号帳1904を合わせた総エントリ数(本雑音符号ベクトル生成器における全符号帳サイズ)は常に一定の値に保たれる。
The random codebook
ランダム符号帳1904は、ランダム符号帳エントリ数制御器1903からの制御信号を入力して指定されたサイズのランダム符号帳を用いて雑音符号ベクトルを生成し、切換スイッチ1905に出力する。ここで、ランダム符号帳1904は、複数の異なるサイズのランダム符号帳から構成されていても良いが、共用する1種類のある定められたサイズのランダム符号帳のみから構成されていてこれを部分的に使用することによって複数サイズのランダム符号帳として使用する方がメモリ量の面から有効である。
The
また、ランダム符号帳1904は、1チャンネル単独の符号帳でも良いが、2チャンネル以上の複数チャンネルから構成される符号帳を用いた方が演算量やメモリ量の面から有利である。
Further, the
切換スイッチ1905は、外部からの制御(本雑音符号ベクトル生成器を符号化器に用いる場合はターゲットベクトルとの誤差を最小化するブロックからの制御信号、復号化器に用いる場合は復号した雑音符号帳のパラメータ情報など)により、部分的代数符号帳1902又はランダム符号帳1904から出力される雑音符号ベクトルのどちらか一方を選択して、本雑音符号ベクトル生成器の出力雑音符号ベクトル1906として出力する。
The change-
ここで、ランダム符号帳1904から出力される雑音符号ベクトルと、部分的代数符号帳1902から出力される雑音符号ベクトルの割合(ランダム:代数)は、有声モードにおいては、0:1〜1:2、すなわちランダム0〜34%、代数66〜100%であることが望ましい。また、上記割合(ランダム:代数)は、非有声モードにおいては、2:1〜4:1、すなわちランダム66〜80%、代数20〜34%であることが望ましい。
Here, the ratio of the random code vector output from the
以下に図20を参照して上記実施の形態における雑音符号ベクトル生成方法(符号化方法)の処理の流れについて説明する。 The flow of processing of the random code vector generation method (encoding method) in the above embodiment will be described below with reference to FIG.
まず、ST2001において、別途入力したモード情報に基づいて部分的代数符号帳とランダム符号帳のサイズの設定を行う。このとき、部分的代数符号帳のサイズの設定は実施の形態1に示される相対位置表現されるパルスの位置候補数を増減することによって行われる。 First, in ST2001, the sizes of the partial algebraic codebook and the random codebook are set based on separately input mode information. At this time, the size of the partial algebraic codebook is set by increasing or decreasing the number of pulse position candidates expressed in relative positions shown in the first embodiment.
この相対位置表現されるパルスの増減は機械的に行うことができ、相対位置が離れる部分から削減することによって減少させる。より具体的には、相対位置が{1、3、5、7}である場合{1、3、5}、{1、3}、{1}というように位置候補数を減らす。逆に増やす場合は{1}から{1、3}、{1、3、5}というように増やす。 The increase / decrease of the pulse represented by the relative position can be mechanically performed, and is decreased by reducing the relative position from the part away from the part. More specifically, when the relative position is {1, 3, 5, 7}, the number of position candidates is reduced as {1, 3, 5}, {1, 3}, {1}. Conversely, when increasing, it increases from {1} to {1, 3}, {1, 3, 5}.
また、部分的代数符号帳とランダム符号帳のサイズの総和が一定値になるように部分的代数符号帳とランダム符号帳のサイズの設定が行われる。より具体的には、有声(定常)部に対応するようなモードにおいては部分的代数符号帳のサイズ(比率)が大きく、無声部や雑音部に対応するようなモードにおいてはランダム符号帳のサイズ(比率)が大きくなるように、両符号帳のサイズの設定を行う。 In addition, the sizes of the partial algebraic codebook and the random codebook are set so that the sum of the sizes of the partial algebraic codebook and the random codebook becomes a constant value. More specifically, the size (ratio) of the partial algebraic codebook is large in the mode corresponding to the voiced (stationary) part, and the random codebook size in the mode corresponding to the unvoiced part or the noise part. The size of both codebooks is set so that (ratio) increases.
本ブロックにおいて、modeは入力したモード情報、IDXaは部分的代数符号帳のサイズ(雑音符号ベクトルエントリ数)、IDXrはランダム符号帳サイズ(雑音符号ベクトルエントリ数)であり、IDXa+IDXr=一定値、である。また、ランダム符号帳のエントリ数の設定は例えば参照するランダム符号帳の範囲を設定することで実現できる。例えば2チャンネルのランダム符号帳のサイズを128×128=16384と64×64=4096とで切換えて使用するような制御においては、各チャンネル128種類のベクトルを格納する(インデックス0〜127)ランダム符号帳をそれぞれ備え、探索するインデックスの範囲を0〜127と0〜63の2種類で切換えることにより簡単に実現できる。
In this block, mode is the input mode information, IDXa is the size of the partial algebraic codebook (number of noise code vector entries), IDXr is the random codebook size (number of noise code vector entries), and IDXa + IDXr = constant value is there. Further, the setting of the number of random codebook entries can be realized, for example, by setting the range of the random codebook to be referenced. For example, in control where the size of the random codebook of 2 channels is switched between 128 × 128 = 16384 and 64 × 64 = 4096, 128 types of vectors for each channel are stored (
なお、この場合インデックス0〜127のベクトルが存在するベクトル空間とインデックス0〜63のベクトルが存在するベクトル空間とはできるだけ一致していることが望ましく、インデックス0〜63のベクトルでインデックス64〜127のベクトルを全く表現できない、即ちインデックス0〜63のベクトル空間とインデックス64〜127のベクトル空間とが全く異なると、上記のようなランダム符号帳サイズの変更はランダム符号帳の符号化性能を大きく劣化させる場合があるので、そのようなことを考慮してランダム符号帳を作成する必要がある。
In this case, it is desirable that the vector space in which the vectors with the
なお、部分的代数符号帳とランダム符号帳のエントリ数の総和を一定に保つ場合は必然的に両符号帳のサイズ設定の仕方(組合わせ)は数種類に限定されるため、サイズ設定の制御とはこれら数種類の設定を切換えることとなど価となる。本STにおいて、入力されたモード情報modeから部分的代数符号帳サイズIDXaとランダム符号帳サイズIDXrとが設定される。 Note that when the sum of the numbers of entries in the partial algebraic codebook and the random codebook is kept constant, the size setting methods (combinations) of both codebooks are inevitably limited to several types. Is equivalent to switching between these several settings. In this ST, a partial algebraic codebook size IDXa and a random codebook size IDXr are set from the input mode information mode.
次に、ST2002において、部分的代数符号帳(サイズIDXa)とランダム符号帳(IDXr)の中からターゲットベクトルとの誤差を最も小さくする雑音符号ベクトルが選択され、そのインデックスを求める。インデックスindexは例えば部分的代数符号帳から雑音符号ベクトルが選択されれば0〜(IDXa−1)、ランダム符号帳から選択されれば(IDXa−1)〜(IDXa+IDXr−1)の範囲になるように定められる。 Next, in ST2002, a noise code vector that minimizes an error from the target vector is selected from the partial algebraic codebook (size IDXa) and the random codebook (IDXr), and its index is obtained. For example, the index index is in the range of 0 (IDXa-1) when a random codebook is selected from the partial algebraic codebook, and (IDXa-1) to (IDXa + IDXr-1) when selected from the random codebook. Determined.
次に、ST2003において、求められたインデックスindexを符号化データとして出力する。indexはさらに必要に応じて伝送路に出力される形に符号化される。 Next, in ST2003, the obtained index index is output as encoded data. The index is further encoded in a form that is output to the transmission path as necessary.
以下に図21を参照して上記実施の形態における雑音符号ベクトル生成方法(復号化方法)の処理の流れについて説明する。 The flow of processing of the random code vector generation method (decoding method) in the above embodiment will be described below with reference to FIG.
まず、ST2101において、別途復号されたモード情報modeに基づいて部分的代数符号帳とランダム符号帳のサイズの設定を行う。具体的な設定の方法は、図20を参照して説明した前述の通りである。モード情報modeから部分的代数符号帳のサイズIDXa及びランダム符号帳のサイズIDXrが設定される。 First, in ST2101, the sizes of the partial algebraic codebook and random codebook are set based on separately decoded mode information mode. A specific setting method is as described above with reference to FIG. A partial algebraic codebook size IDXa and a random codebook size IDXr are set from the mode information mode.
次に、ST2102において、部分的代数符号帳又はランダム符号帳を用いて雑音符号ベクトルが復号される。どちらの符号帳を用いて復号されるかは、別途復号された雑音符号ベクトルのインデックスindexの値によって決定され、0≦index<IDXaの場合は、部分的代数符号帳から、IDXa≦index<(IDXa+IDXr)の場合は、ランダム符号帳から復号される。具体的には例えば実施の形態3にて図16を参照して説明したようにして復号される。 Next, in ST2102, a random code vector is decoded using a partial algebraic codebook or a random codebook. Which codebook is used for decoding is determined by the value of the index index of the separately decoded noise code vector. When 0 ≦ index <IDXa, IDXa ≦ index <( In the case of (IDXa + IDXr), it is decoded from the random codebook. Specifically, for example, decoding is performed as described with reference to FIG. 16 in the third embodiment.
なお、上記のようなインデックスの付与を行うと、異なるモードで共有される雑音符号ベクトルのエントリに対して異なるインデックスが付与され(即ち、全く同じ形状を有する雑音符号ベクトルでもモードが異なると異なるインデックスになってしまう)、伝送路誤りが生じたときの影響を受けやすくなるので、これを回避するために異なるモードで共有される雑音符号ベクトルのエントリに対しては同じインデックスが付与されるようにすると誤り耐性のある前記雑音符号ベクトル生成装置を実現できる。一例を図22及び図23に示す。 When the above-described index assignment is performed, different indexes are assigned to the entries of the noise code vectors shared in different modes (that is, different indexes are used even when the noise code vectors have the same shape but have different modes. In order to avoid this, the same index is assigned to the entries of the noise code vector shared in different modes. Then, the noise code vector generation apparatus having error tolerance can be realized. An example is shown in FIGS.
図22は、雑音符号帳サイズ32、(サブ)フレーム長11サンプル以上、パルス数2の部分的代数符号帳と2チャンネルランダムCBを組合わせた例であり、(サブ)フレーム末尾においてパルスが近接するベクトルは考慮しないタイプである。 FIG. 22 shows an example in which a noise codebook size of 32, a (sub) frame length of 11 samples or more, a partial algebraic codebook with 2 pulses and a 2-channel random CB are combined. This type is not considered.
一方、図23は、雑音符号帳サイズ16、(サブ)フレーム長8サンプル、パルス数2の部分的代数符号帳と2チャンネルランダムCBを組合わせた例であり、(サブ)フレーム末尾においてパルスが近接するベクトルも考慮されているタイプである。
On the other hand, FIG. 23 shows an example in which a
図22及び図23の両図において、1列目の欄は第1のパルス又はランダム符号帳の第1チャンネルを、2列目の欄は第2のパルス又はランダム符号帳の第2チャンネルを、3列目の欄はそれぞれの組合わせに対する雑音符号帳インデックスをそれぞれ示している。 22 and 23, the first column indicates the first channel of the first pulse or the random codebook, the second column indicates the second pulse or the second channel of the random codebook, The column in the third column shows the noise codebook index for each combination.
また、両図の(a)はランダム符号帳の比率が低く(エントリ数が多く)部分的代数符号帳の比率が高い(エントリ数が多い)場合を、(b)はランダム符号帳の比率が高く(エントリ数が多く)部分的代数符号帳の比率が低い(エントリ数が少ない)場合をそれぞれ示しており、斜線の網掛けされたインデックスに対応する雑音符号ベクトルのみが(a)と(b)で異なるようになっている。 Further, (a) in both figures shows a case where the ratio of the random codebook is low (the number of entries is large) and the ratio of the partial algebraic codebook is high (the number of entries is large). Each shows a case where the ratio of the partial algebraic codebook is high (the number of entries is large) and the partial algebraic codebook is low (the number of entries is small), and only the noise code vectors corresponding to the hatched shaded indexes are (a) and (b ) Is different.
図22及び図23において、表中の数字(インデックスを除く)は部分的代数符号帳におけるパルス位置を、P1,P2は第1及び第2のパルス位置を、Ra,Rbはランダム符号帳の第1及び第2チャンネルを、Ra,Rbに付した数字は両チャンネルに格納されているランダム符号ベクトルの番号を、それぞれ示している。図5の部分的代数符号帳に対応させると、図23のインデックス0〜5及び図22のインデックス0〜7が図5(a)に、図23のインデックス6〜9及び図23のインデックス8〜15が図5(b)に、図23のインデックス10〜11が図5(c)に、それぞれ対応する(図22において図5(c)に対応する部分はない)。
22 and 23, the numbers in the table (excluding the index) indicate the pulse positions in the partial algebraic codebook, P1 and P2 indicate the first and second pulse positions, and Ra and Rb indicate the first positions in the random codebook. The numbers given to Ra and Rb for the first and second channels indicate the numbers of random code vectors stored in both channels, respectively. When corresponding to the partial algebraic codebook of FIG. 5, the
図22及び図23の両図において、斜線で網掛けされたインデックスは限定された範囲内で規則的に並んでいることから、例えば復号する場合、図23(a)のインデックス11以下では、図9を用いて説明したように、復号し(IDX1=6,IDX2=10)、図23(b)ではインデックスが11以下でかつ偶数である場合のみ図23(a)の場合と同じ復号を行い、奇数である場合はインデックスを2で割った商をランダム符号帳に対応するインデックスと見立ててランダム符号帳の各チャンネルのベクトル番号を復号することが可能である。
22 and FIG. 23, since the hatched indexes are regularly arranged within a limited range, for example, when decoding, the
同様のことは図22においても言え、定められたインデックスの範囲内において規則的にインデックスとランダム符号帳のベクトル番号を対応させることができる。また、符号化する場合も同様に考えてモードの変化によってランダム符号帳と部分的代数符号帳とが切り替わるインデックスの部分のみ別扱いして符号化することが可能である。 The same thing can be said in FIG. 22, and the index and the vector number of the random codebook can be regularly associated with each other within the defined index range. Similarly, when encoding, it is possible to separately encode only the index portion where the random codebook and the partial algebraic codebook are switched according to the mode change.
このようにすることによって、一部のインデックスに対応する雑音符号ベクトルのみがモードの切替えの影響を受けるようにできるので、伝送路誤りによってモードが誤った場合の影響を最小限に抑えることも可能である。この様な場合は、上記フロー図(図6、9、15、16、20、21)を参照して説明した場合と比べるとインデックスindexの付け方が変わるが、基本的な符号帳探索方法は同じである。 By doing so, only the noise code vectors corresponding to some indexes can be affected by the mode switching, so that it is possible to minimize the influence when the mode is wrong due to a transmission path error. It is. In such a case, the index indexing method changes compared to the case described with reference to the flowcharts (FIGS. 6, 9, 15, 16, 20, and 21), but the basic codebook search method is the same. It is.
このように、モード判定により代数符号帳とランダム符号帳の利用割合を変化させることにより、モード判定誤り時の品質劣化を抑えつつ、無声音声や背景雑音に対する符号化性能を改善することができる。 As described above, by changing the utilization ratio of the algebraic codebook and the random codebook by mode determination, it is possible to improve the coding performance for unvoiced speech and background noise while suppressing quality degradation at the time of mode determination error.
(実施の形態4)
本実施の形態では、音源信号のパワを算出し、音声モードがノイズモードである場合に音源信号のパワから平均パワを算出して、この平均パワに基づいて所定のパルス位置候補の数を増減させる場合について説明する。
(Embodiment 4)
In this embodiment, the power of the sound source signal is calculated, and when the sound mode is the noise mode, the average power is calculated from the power of the sound source signal, and the number of predetermined pulse position candidates is increased or decreased based on the average power. The case where it is made to explain is demonstrated.
図24は、本発明の実施の形態4に係る音声符号化装置の構成を示すブロック図である。図24に示す音声符号化装置は、図17に示す音声符号化装置とほぼ同じ構成を有する。図24に示す構成においては、音源信号から現パワを算出する現パワ算出器2402と、モード判定器1713からのモード判定情報及び現パワ算出器2402からの現パワに基づいて、音声モードがノイズモードである場合に音源信号のパワから平均パワを算出するノイズ区間平均パワ算出器2401とを備える。
FIG. 24 is a block diagram showing the configuration of the speech coding apparatus according to
モード判定器1713は、実施の形態3で説明したように、入力した量子化LPCの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け(モード判定)を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳1716に出力する。また、モード判定器1713からのモード情報は、ノイズ区間平均パワ算出器2401に送られる。
As described in the third embodiment, the
一方、現パワ算出器2402では、音源信号のパワを算出する。このようにして音源信号のパワを監視する。この現パワ算出結果は、ノイズ区間平均パワ算出器2401に送られる。
On the other hand, the
ノイズ区間平均パワ算出器2401では、現パワ算出器2402からの算出結果とモード判定結果に基づいてノイズ区間の平均パワを算出する。ノイズ区間平均パワ算出器2401には、現パワ算出器2402から逐次現パワの算出結果が入力される。そして、ノイズ区間平均パワ算出器2401では、モード判定器1713からノイズ区間であるとの情報が入力されたときに、入力された現パワの算出結果を用いてノイズ区間の平均パワを算出する。
The noise section
この平均パワの算出結果は、可変型部分代数符号帳/ランダム符号帳1706に送られる。可変型部分代数符号帳/ランダム符号帳1706では、平均パワの算出結果に基づいて代数符号帳とランダム符号帳の利用比率を制御する。この制御の方法については、実施の形態3と同じである。
This average power calculation result is sent to the variable partial algebraic codebook /
なお、ノイズ区間平均パワ算出器2401では、算出されたノイズ区間平均パワと逐次入力される現パワとの比較を行う。そして、ノイズ区間の平均パワが現パワよりも大きい場合には、平均パワ値に問題があると考えられるので、ノイズ区間の平均パワを現パワに更新する。これにより、より精度良く代数符号帳とランダム符号帳の利用比率を制御することができる。
The noise interval
また、図25は、本発明の実施の形態4に係る音声復号化装置の構成を示すブロック図である。図25に示す音声復号化装置は、図18に示す音声復号化装置とほぼ同じ構成を有する。図25に示す構成においては、音源信号から現パワを算出する現パワ算出器2502と、モード判定器1810からのモード判定情報及び現パワ算出器2502からの現パワに基づいて、音声モードがノイズモードである場合に音源信号のパワから平均パワを算出するノイズ区間平均パワ算出器2501とを備える。
FIG. 25 is a block diagram showing the configuration of the speech decoding apparatus according to
モード判定器1810は、実施の形態3で説明したように、入力した量子化LPCの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け(モード判定)を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳1805及び後処理器1809に出力する。また、モード判定器1810からのモード情報は、ノイズ区間平均パワ算出器2501に送られる。
As described in the third embodiment, the
一方、現パワ算出器2502では、音源信号のパワを算出する。このようにして音源信号のパワを監視する。この現パワ算出結果は、ノイズ区間平均パワ算出器2501に送られる。
On the other hand, the
ノイズ区間平均パワ算出器2501では、現パワ算出器2502からの算出結果とモード判定結果に基づいてノイズ区間の平均パワを算出する。ノイズ区間平均パワ算出器2501には、現パワ算出器2502から逐次現パワの算出結果が入力される。そして、ノイズ区間平均パワ算出器2501では、モード判定器1810からノイズ区間であるとの情報が入力されたときに、入力された現パワの算出結果を用いてノイズ区間の平均パワを算出する。
The noise section
この平均パワの算出結果は、可変型部分代数符号帳/ランダム符号帳1805に送られる。可変型部分代数符号帳/ランダム符号帳1805では、平均パワの算出結果に基づいて代数符号帳とランダム符号帳の利用比率を制御する。この制御の方法については、実施の形態3と同じである。
This average power calculation result is sent to the variable partial algebraic codebook /
なお、ノイズ区間平均パワ算出器2501では、算出されたノイズ区間平均パワと逐次入力される現パワとの比較を行う。そして、ノイズ区間の平均パワが現パワよりも大きい場合には、平均パワ値に問題があると考えられるので、ノイズ区間の平均パワを現パワに更新する。これにより、より精度良く代数符号帳とランダム符号帳の利用比率を制御することができる。
The noise interval
ここで、ランダム符号帳から出力される雑音符号ベクトルと、部分的代数符号帳から出力される雑音符号ベクトルの割合(ランダム:代数)は、ノイズ区間のレベルが大きい場合に、有声モードにおいては、2:1、すなわちランダム約66%、代数約34%であることが望ましい。また、上記割合(ランダム:代数)は、非有声モードにおいては、ランダム約98%、代数約2%であることが望ましい。 Here, the ratio of the random code vector output from the random codebook and the random code vector output from the partial algebraic codebook (random: algebra) is in the voiced mode when the level of the noise interval is large. It is desirable that the ratio is 2: 1, that is, about 66% random and about 34% algebra. The ratio (random: algebra) is desirably about 98% random and about 2% algebra in the non-voiced mode.
このように、ノイズ区間を監視してモード判定により代数符号帳とランダム符号帳の利用割合を変化させることにより、モード判定誤り時の品質劣化を抑えつつ、無声音声や背景雑音に対する符号化性能を向上させることができる。 In this way, by monitoring the noise interval and changing the usage rate of the algebraic codebook and random codebook by mode determination, the coding performance for unvoiced speech and background noise can be reduced while suppressing quality degradation at the time of mode determination error. Can be improved.
なお、図24及び図25においては、音源信号から現パワを算出する場合について説明しているが、本発明においては、LPC合成後の合成信号のパワを用いて現パワを算出するようにしても良い。 24 and 25 describe the case where the current power is calculated from the sound source signal. However, in the present invention, the current power is calculated using the power of the synthesized signal after LPC synthesis. Also good.
上記音声符号化装置及び/又は音声復号化装置は、携帯電話などの移動通信機器の移動機などの通信端末装置又は基地局装置に利用することが可能である。なお、情報を伝送する媒体は本実施の形態に示したような電波に限らず、光信号などを利用することも可能であり、さらには有線の伝送路を使用することも可能である。 The speech encoding device and / or speech decoding device can be used for a communication terminal device or a base station device such as a mobile device of a mobile communication device such as a mobile phone. Note that the medium for transmitting information is not limited to the radio wave as shown in this embodiment mode, and an optical signal or the like can be used, and a wired transmission path can also be used.
なお、上記実施の形態に示した音声符号化/復号化装置は、磁気ディスク、光磁気ディスク、ROMカートリッジなどの記録媒体にソフトウェアとして記録して実現することも可能である。その記録媒体を使用することにより、このような記録媒体を使用するパーソナルコンピュータなどにより音声符号化装置/復号化装置及び送信装置/受信装置を実現するとができる。 Note that the speech encoding / decoding device described in the above embodiment can be realized by recording as software on a recording medium such as a magnetic disk, a magneto-optical disk, or a ROM cartridge. By using the recording medium, a speech encoding apparatus / decoding apparatus and a transmitting apparatus / receiving apparatus can be realized by a personal computer using such a recording medium.
(実施の形態5)
本実施の形態では、音源パルスが3本である代数符号帳を雑音符号帳として用いる場合について説明する。ここでは、雑音符号帳には、サブフレーム当り16ビットを割り当てた場合について説明する。なお、本実施の形態においては、代数符号帳と音源パルスをサブフレーム全体に均一に配置したランダム符号帳とを併用する。
(Embodiment 5)
In the present embodiment, a case will be described in which an algebraic codebook having three excitation pulses is used as a noise codebook. Here, a case where 16 bits per subframe are assigned to the noise codebook will be described. In the present embodiment, an algebraic codebook and a random codebook in which excitation pulses are uniformly arranged over the entire subframe are used in combination.
この場合、雑音符号帳全体のビット数を変えずにランダム符号帳を併用するため、代数符号帳のサイズの削減が必要となる。単純に代数符号帳サイズを削減すると、各パルスの探索位置候補を減らさなければならず、広範囲の探索が難しくなる。そこで、音源パルスの探索範囲を維持したまま、代数符号帳サイズを削減する。 In this case, since the random codebook is used together without changing the number of bits of the entire noise codebook, it is necessary to reduce the size of the algebraic codebook. If the algebraic codebook size is simply reduced, the search position candidates of each pulse must be reduced, and a wide range search becomes difficult. Therefore, the algebraic codebook size is reduced while maintaining the search range of the excitation pulse.
具体的には、代数符号帳から生成される音源ベクトルの形状に着目し、使用頻度の低い形状を有する音源ベクトルは代数符号帳から生成されないように制限を加えることにより、代数符号帳のサイズを削減する。音源ベクトルの形状を示す特徴量として、各音源パルスの相対的位置関係を用いる。すなわち、図26に示すように、3本の音源パルス2601〜2603によって構成された音源ベクトルの先頭のパルス2601と2番目のパルス2602の間隔Aと、2番目のパルス2602と3番目のパルス2603の間隔Bを用いる。このような特徴量に基づいて使用頻度の低いベクトルを決定し、代数符号帳のサイズを削減して、ランダム符号帳を併用する。このようにしてサイズを削減した代数符号帳は、代数符号帳を部分的に使用していることから、部分的代数符号帳と呼ぶこととする。
Specifically, paying attention to the shape of the excitation vector generated from the algebraic codebook, the size of the algebraic codebook is reduced by adding a restriction so that the excitation vector having a less frequently used shape is not generated from the algebraic codebook. Reduce. The relative positional relationship of each sound source pulse is used as a feature quantity indicating the shape of the sound source vector. That is, as shown in FIG. 26, the interval A between the
部分的代数符号帳の構成法を検討するため、図26に示す間隔A及び間隔Bを用いて使用頻度の低いベクトル形状を調査した。間隔Aと間隔Bを有する音源ベクトルは複数存在するため、部分的代数符号帳から生成され得る組合せの数で正規化した。また、有声部と非有声部とでは傾向が異なることが考えられるので、1次の反射係数などを利用して有声部と非声部とを分類し、それぞれについて使用頻度分布を調べた。 In order to examine the configuration method of the partial algebraic codebook, the vector shape with low frequency of use was investigated using the interval A and the interval B shown in FIG. Since there are a plurality of excitation vectors having an interval A and an interval B, normalization is performed with the number of combinations that can be generated from the partial algebraic codebook. In addition, since it is considered that the tendency is different between the voiced part and the non-voiced part, the voiced part and the non-voiced part are classified using a first-order reflection coefficient and the usage frequency distribution is examined for each.
調査の結果、音声部では間隔A又は間隔Bの少なくとも一方が狭いベクトルの使用傾度が高いこと、及び非有声部では有声部に比べて全体的に均一な頻度分布となることが分かった。この調査結果より、少なくとも1組の音源パルス間隔が狭いベクトルのみを生成するように制限を加えることによって、部分的代数符号帳を構成した。 As a result of the investigation, it was found that the use inclination of a vector having a narrow at least one of the interval A and the interval B is high in the voice part, and that the non-voiced part has a uniform frequency distribution as a whole compared to the voiced part. From this investigation result, a partial algebraic codebook was constructed by adding a restriction to generate only a vector having a narrow interval between at least one set of sound source pulses.
少なくとも1組の音源パルス間隔が狭いベクトルのみを生成する方法としては、以下の2つの方法が挙げられる。
(方法1)
部分的代数符号帳において、全探索を行い、探索ループの中で現在探索中の音源パルス間隔が所定の距離より狭いかどうかを判定し、狭いもののみを探索対象とする。
(方法2)
部分的代数符号帳において、各音源パルスのインデックスの差が所定の範囲内(K)になるような組合せのみを探索する。具体的には、図27(a)〜(c)に示すような3種類のパターン(図27(a):3パルスとも近い場合、図27(b):前の2パルスが近い場合、図27(c):後の2パルスが近い場合)に分類して部分的代数符号帳の探索を行う。ただし、図27(a)〜(c)では、パルス2601〜2603の順に並ぶ場合のみを示しており、実際にはこれら3本のパルスが並ぶ順番として考え得る全て組合せが考慮される。
The following two methods can be cited as a method for generating only a vector having a narrow interval between at least one set of sound source pulses.
(Method 1)
In the partial algebraic codebook, a full search is performed, it is determined whether or not the excitation pulse interval currently being searched in the search loop is narrower than a predetermined distance, and only narrow ones are searched.
(Method 2)
In the partial algebraic codebook, a search is made only for a combination in which the difference in index of each excitation pulse is within a predetermined range (K). Specifically, three types of patterns as shown in FIGS. 27A to 27C (FIG. 27A: when close to 3 pulses, FIG. 27B: when the previous 2 pulses are close, FIG. 27 (c): When the subsequent two pulses are close), the partial algebraic codebook is searched. However, FIGS. 27A to 27C show only the case where the
方法1を用いた場合は、厳密にパルス間隔の距離による制限が可能であるが、探索ループ内で毎回、条件分岐が必要となる。一方、方法2では不均一な探索位置候補の場合には、厳密なパルス間隔距離による制限ではなくなるが、代数符号帳の必要な部分のみを規則的に探索することが可能となり、探索ループ内での条件分岐が不要となる。
When
このようにして音源パルスを3パルスに設定して部分的代数符号帳を構成することにより、基本性能の高い部分的代数符号帳を実現することができる。 In this way, a partial algebraic codebook having a high basic performance can be realized by configuring the partial algebraic codebook by setting the excitation pulse to 3 pulses.
次に、上記部分的代数符号帳と併用するランダム符号帳について説明する。このランダム符号帳は、サブフレーム全体にパワが分散しているようなベクトルの表現性を良くするため、なるべく音源パルスがサブフレーム全体に均などに配置されるように構成する。このランダム符号帳では、パルス振幅は±1とし、各チャネル(ch)間で音源パルスが重ならないようにパルス位置を制限している。また、音源パルスの位置と振幅(極性)は乱数によって生成する。図28に、音源パルス数が合計で8本で2ch構成のランダム符号帳を示す。 Next, a random codebook used in combination with the partial algebraic codebook will be described. This random codebook is configured so that sound source pulses are evenly distributed over the entire subframe as much as possible in order to improve the expression of the vector in which power is distributed throughout the subframe. In this random codebook, the pulse amplitude is ± 1, and the pulse position is limited so that the sound source pulses do not overlap between channels (ch). The position and amplitude (polarity) of the sound source pulse are generated by random numbers. FIG. 28 shows a random codebook having a total of 8 excitation pulses and a 2ch configuration.
このランダム符号帳は、チャネル数及びパルス数の設定を行い、各パルスの配置範囲の設定を行い、各パルスの位置/極性の決定を行うことにより作成する。このランダム符号帳の作成方法において、まず、チャネル数及びパルス数の設定を行った後に各パルスの配置範囲の設定する。すなわち、各パルスが配置される範囲長(N_Range[i][j])を設定する。この設定は図29に示すようにして行う。 This random codebook is created by setting the number of channels and the number of pulses, setting the arrangement range of each pulse, and determining the position / polarity of each pulse. In this random codebook creation method, first, after setting the number of channels and the number of pulses, the arrangement range of each pulse is set. That is, a range length (N_Range [i] [j]) in which each pulse is arranged is set. This setting is performed as shown in FIG.
まず、サブフレーム長をパルス数(1チャネル分)で分割してN_Range0を求め、剰余はN_Restとして保存する(ST2901)。次いで、N_Range0をチャネル数で分割してN_Range[i][j]を設定する(ST2902)。ここで、iはチャネル番号を示し、jはパルス番号を示す。このとき、N_Range0がチャネル数(N_ch)で割り切れない場合には、その余りをチャネル番号の若い方から順番に割り当てる(ST2902)。 First, the subframe length is divided by the number of pulses (for one channel) to obtain N_Range0, and the remainder is stored as N_Rest (ST2901). Next, N_Range0 is divided by the number of channels to set N_Range [i] [j] (ST2902). Here, i indicates a channel number, and j indicates a pulse number. At this time, if N_Range0 is not divisible by the number of channels (N_ch), the remainder is assigned in order from the lowest channel number (ST2902).
次いで、N_Restをサブフレーム最後尾に配置されるパルスのN_Range[N_ch−1][N_Pulse−1]から順番に割り当てる(ST2903)。これにより、N_Range[i][j]の設定を完了する。 Next, N_Rest is assigned in order from N_Range [N_ch-1] [N_Pulse-1] of pulses arranged at the end of the subframe (ST2903). Thereby, the setting of N_Range [i] [j] is completed.
各パルスの配置範囲の設定においては、N_Range[i][j]の開始点(S_Range[i][j])の設定を行う。すなわち、N_Range[i][j]をサブフレーム先頭から順に配置した場合に、それぞれの先頭位置を求める。この開始点の設定は、図30に示すようにして行う。まず、各チャネルの先頭パルスのS_Range[i][0]を決定する。この場合、パルス番号の若い方から順番に行う(ST3001)。次いで、残りのS_Range[i][0]を同様に決定する(ST3002)。このようにしてS_Range[i][j]の設定を完了する。 In setting the arrangement range of each pulse, the start point (S_Range [i] [j]) of N_Range [i] [j] is set. That is, when N_Range [i] [j] are arranged in order from the top of the subframe, the respective top positions are obtained. This starting point is set as shown in FIG. First, S_Range [i] [0] of the first pulse of each channel is determined. In this case, processing is performed in order from the smallest pulse number (ST3001). Next, the remaining S_Range [i] [0] is similarly determined (ST3002). In this way, the setting of S_Range [i] [j] is completed.
上述したように各パルスの配置範囲の設定を行った後に、各パルスの位置/極性の決定を行う。この各パルスの位置/極性は、図31に示すようにして行う。まず、チャネルのループカウンタをリセットする(ST3101)。次いで、ループカウンタiがN_chより小さいかどうかを判断する(ST3102)。ループカウンタiがN_chより小さければ、カウンタと閾値をリセットする(ST3103)。すなわち、決定したランダム符号ベクトルの数(counter)、ランダム符号ベクトルの生成を繰り返した数(counter_r)、及び位置が異なることを許すパルス数(thresh)をリセットする。一方、ループカウンタiがN_chより小さくなければ、ランダム符号帳の作成を終了する。 After setting the arrangement range of each pulse as described above, the position / polarity of each pulse is determined. The position / polarity of each pulse is determined as shown in FIG. First, the channel loop counter is reset (ST3101). Next, it is determined whether or not the loop counter i is smaller than N_ch (ST3102). If loop counter i is smaller than N_ch, the counter and threshold value are reset (ST3103). That is, the determined number of random code vectors (counter), the number of repeated random code vector generations (counter_r), and the number of pulses that allow the positions to be different (thresh) are reset. On the other hand, if the loop counter i is not smaller than N_ch, the creation of the random codebook is terminated.
次いで、ランダム符号ベクトルの生成を繰り返した数(counter_r)が最大値MAX_rであるかどうかを判断する(ST3104)。counter_rがMAX_rでなければ、コードベクトルの生成や乱数によるパルス位置及び極性の生成を行い(ST3106)、counter_rがMAX_rであれば、閾値(thresh)をインクリメントし、繰り返しカウンタ(counter_r)をリセットする(ST3105)。そして、コードベクトルの生成や乱数によるパルス位置及び極性の生成を行う(ST3106)。なお、乱数によるパルス位置及び極性の生成において、rand( )は整数乱数生成関数を表す。 Next, it is determined whether or not the number (counter_r) of repeated random code vector generation is the maximum value MAX_r (ST3104). If counter_r is not MAX_r, a code vector is generated or a pulse position and polarity are generated by random numbers (ST3106). If counter_r is MAX_r, a threshold (thresh) is incremented and a repeat counter (counter_r) is reset ( ST3105). Then, a code vector is generated and a pulse position and polarity are generated by random numbers (ST3106). In the generation of the pulse position and polarity by random numbers, rand () represents an integer random number generation function.
次いで、パルス位置及び極性を生成した後に、コードベクトルをチェックする(ST3107)。ここでは、生成したコードベクトルと既にランダム符号帳に登録したすべてのコードベクトルとを比較し、パルス位置が重なるコードベクトルが存在しないかをチェックする。そして、コードベクトル毎に位置が重なっているパルス数をカウントする。 Next, after generating the pulse position and polarity, the code vector is checked (ST3107). Here, the generated code vector is compared with all code vectors already registered in the random codebook, and it is checked whether there is a code vector with overlapping pulse positions. Then, the number of pulses whose positions overlap for each code vector is counted.
次いで、ランダム符号帳内に、位置の重なるパルス数が閾値を越えたコードベクトルがあるかどうかを判断する(ST3108)。位置の重なるパルス数が閾値を越えたコードベクトルがあれば、繰り返すカウンタ(counter_r)をインクリメントし(ST3109)、その後、ST3104に進む。一方、位置の重なるパルス数が閾値を越えたコードベクトルがなければ、そのコードベクトルをランダム符号帳に登録する(ST3110)。すなわち、乱数により生成したコードベクトルをランダム符号帳に格納し、カウンタ(counter)をインクリメントする。 Next, it is determined whether or not there is a code vector in which the number of pulses with overlapping positions exceeds a threshold in the random codebook (ST3108). If there is a code vector in which the number of pulses with overlapping positions exceeds the threshold, the repeat counter (counter_r) is incremented (ST3109), and then the process proceeds to ST3104. On the other hand, if there is no code vector whose number of overlapping pulses exceeds the threshold, the code vector is registered in the random codebook (ST3110). That is, a code vector generated by random numbers is stored in a random codebook, and a counter is incremented.
次いで、カウンタ(counter)がランダム符号帳のサイズ以上かどうかを判断する(ST3111)。カウンタ(counter)が作成するランダム符号帳のサイズ以上であれば、チャネルのループカウンタをインクリメントし(ST3112)、ST3102に進む。カウンタ(counter)がランダム符号帳のサイズ以上でなければ、ST3104に進む。 Next, it is determined whether or not the counter is equal to or larger than the random codebook size (ST3111). If the counter is larger than the size of the random codebook to be created, the channel loop counter is incremented (ST3112), and the process proceeds to ST3102. If the counter is not larger than the random codebook size, the process proceeds to ST3104.
このランダム符号帳の作成においては、乱数により、コードベクトルのパルス位置及び極性を決定し、既に決定済みのパルスと位置が重ならないようにチェックする。このようにして、初めは全く位置が重ならないものを生成し、順次位置が重なるパルス数を増加させてゆく。 In creating the random codebook, the pulse position and polarity of the code vector are determined by a random number, and a check is made so that the position of the already determined pulse does not overlap. In this way, the ones whose positions do not overlap at all are generated at first, and the number of pulses whose positions overlap sequentially is increased.
また、ランダム符号帳の作成においては、サブフレーム全体を均などに分割し、完全に均など分割できない場合は、ch2からch1の範囲を広くし、またサブフレーム末尾の方から範囲を広くする。例えば、図32を用いて説明する。図32において、数字は各パルス(パルス番号j)の配置範囲(N_Range[i][j])と開始点(S_Range[i][j])を示しており、上から下に向ってサブフレームの末尾に向うように記載している。図32(a)では、4パルスであるので、サブフレーム全体の80サンプルを均などに分割することができる。図32(b)では、6パルスであるので、サブフレーム全体の80サンプルを均などに分割することができない。この場合には、ch1(7)をch2(6)より広くし、しかもサブフレーム末尾(ch1:8、ch2:7)を広くしている。ch1の範囲をch2より広くしているのは、ch1のコードベクトル数(符号帳サイズ)をch2のコードベクトル数より多くすることを想定しているためである。なお、ch1とch2のN_Range[i][j]の値はなどしくなるようにし、半端な部分はサブフレーム後半に各チャネル均などに割り当てることも考えられる。 In the creation of a random codebook, the entire subframe is divided into equal parts, and if it cannot be divided into equal parts, the range from ch2 to ch1 is widened, and the range is widened from the end of the subframe. This will be described with reference to FIG. In FIG. 32, the numbers indicate the arrangement range (N_Range [i] [j]) and the start point (S_Range [i] [j]) of each pulse (pulse number j), and the subframe from top to bottom. It is written so that it goes to the end of. In FIG. 32A, since there are four pulses, 80 samples of the entire subframe can be divided equally. In FIG. 32B, since there are 6 pulses, 80 samples of the entire subframe cannot be divided equally. In this case, ch1 (7) is made wider than ch2 (6) and the end of the subframe (ch1: 8, ch2: 7) is made wider. The reason why the range of ch1 is made wider than ch2 is because it is assumed that the number of code vectors (codebook size) of ch1 is larger than the number of code vectors of ch2. It is also conceivable that the values of N_Range [i] [j] for ch1 and ch2 are made equal, and the odd-numbered portion is assigned to each channel evenly in the latter half of the subframe.
このようにしてランダム符号帳を作成することにより、サブフレーム全体に音源パルスが分布するランダム符号帳を効率的に作成することができる。また、符号帳の後半になるほど重なる音源パルスが多くなるので、符号帳サイズを小さくする場合は後半部から削減することにより、望ましい符号帳を作成することができる。 By creating a random codebook in this way, it is possible to efficiently create a random codebook in which excitation pulses are distributed over the entire subframe. In addition, since the sound source pulses that overlap in the latter half of the codebook increase, a desirable codebook can be created by reducing the codebook size from the latter half when reducing the codebook size.
次に、部分的代数符号帳とランダム符号帳の併用において、モード切換えを適用する場合について説明する。この場合、部分的代数符号帳を音源パルス形状にしたがってブロック分けして、そのブロックに対応して段階的に削減を行い、それにランダム符号帳を段階的に(適応的に)増加させる。 Next, a case where mode switching is applied in the combined use of a partial algebraic codebook and a random codebook will be described. In this case, the partial algebraic codebook is divided into blocks according to the excitation pulse shape, and reduction is performed step by step corresponding to the block, and the random codebook is increased stepwise (adaptively).
図33は、部分的代数符号帳をブロック分けした状態を示す図である。ブロック分けは、音源パルスの形状と対応して行われている。このブロックは、図34(a)に示す音源パルスのパルス間の間隔(より正しくはインデックスの差)A,Bにより決定される。すなわち、ブロックX〜Zは、図34(b)に示す領域に対応している。 FIG. 33 is a diagram showing a state in which the partial algebraic codebook is divided into blocks. The block division is performed corresponding to the shape of the sound source pulse. This block is determined by the interval (more correctly, index difference) A and B between the pulses of the sound source pulse shown in FIG. That is, the blocks X to Z correspond to the area shown in FIG.
このようにしてブロック分けして部分的代数符号帳のサイズを削減することにより、サイズの制御を容易に行うことができる。具体的には、該当するブロックの探索ループをOFFにするだけで良い。 By thus dividing the block into blocks and reducing the size of the partial algebraic codebook, the size can be easily controlled. Specifically, it is only necessary to turn off the search loop of the corresponding block.
このように部分的代数符号帳をブロックに分割すると共に、ランダム符号帳を段階分けする。ここでは、図35(a)に示すように、ch1,ch2で3段階に段階分けする。具体的には、第1段階はa,bとし、第2段階はc,dとし、第3段階はe,fとする。これらを利用して部分的代数符号帳をブロック単位で削減し、その分だけランダム符号帳を段階的に増加してランダム符号帳の割合を大きくする。部分的代数符号帳の削減及びランダム符号帳の増加に対応してモードが決定される。具体的には、図33(a)〜(c)に示すモードが決定される。なお、このモード数については例示であり、図33より粗くモード設定する場合には、2モードを用いても良く、図33より細かくモード設定する場合には、4以上のモードを用いても良い。 In this way, the partial algebraic codebook is divided into blocks and the random codebook is divided into stages. Here, as shown in FIG. 35A, ch1 and ch2 are divided into three stages. Specifically, the first stage is a, b, the second stage is c, d, and the third stage is e, f. Using these, the partial algebraic codebook is reduced in units of blocks, and the random codebook is increased stepwise to increase the proportion of the random codebook. The mode is determined corresponding to the reduction of the partial algebraic codebook and the increase of the random codebook. Specifically, the modes shown in FIGS. 33A to 33C are determined. This number of modes is an example, and when mode setting is coarser than in FIG. 33, two modes may be used, and when mode setting is finer than in FIG. 33, four or more modes may be used. .
このモード毎に用いるランダム符号帳について、図33及び図35を用いて説明する。ランダム符号帳サイズが最も小さいモードを(a)、最も大きいモードを(c)、中間のモードを(b)とする。モード(a)→(b)→(c)と変化させる場合、図35において、ch1のランダム符号帳はa→(a+c)→(a+c+e)、ch2のランダム符号帳はb→(b+d)→(b+d+f)というようにサイズが増える。このとき、各モードで共通のコードベクトルに対してはどのモードでも同じインデックスが付与されるようにするため、以下のようなインデックスの割り当て方を用いる。 The random codebook used for each mode will be described with reference to FIG. 33 and FIG. The mode with the smallest random codebook size is (a), the largest mode is (c), and the intermediate mode is (b). When changing the mode (a) → (b) → (c), in FIG. 35, the random codebook for ch1 is a → (a + c) → (a + c + e), and the random codebook for ch2 is b → (b + d) → ( b + d + f) increases in size. At this time, in order to assign the same index to the code vector common to each mode in any mode, the following index allocation method is used.
まず、a×bにより生成されるベクトルのインデックスを割り当てる。続いてc×b及び(a+c)×dにより生成されるベクトルのインデックスを割り当てる。最後に(a+c+e)×f及びe×(b+d)により生成されるベクトルのインデックスを割り当てる。この割当て法の一例を図33に示す。 First, an index of a vector generated by a × b is assigned. Subsequently, an index of a vector generated by c × b and (a + c) × d is assigned. Finally, the index of the vector generated by (a + c + e) × f and e × (b + d) is assigned. An example of this allocation method is shown in FIG.
したがって、部分的段数符号帳とランダム符号帳を併用する場合において、部分的代数符号帳がブロックX,Y,Zからなるとき、ランダム符号帳は、図33(a)に示すように、ランダム符号帳の図35(b)に示す部分となる。また、部分的代数符号帳がブロックX,Yから成る場合、ランダム符号帳は、図33(b)に示すように、ランダム符号帳の図35(b)〜(d)に示す部分となる。また、部分的代数符号帳がブロックXからなる場合、ランダム符号帳は、図33(c)に示すように、ランダム符号帳の図35(b)〜(f)に示す部分となる。 Therefore, in the case where the partial stage codebook and the random codebook are used in combination, when the partial algebraic codebook is composed of blocks X, Y, and Z, the random codebook is a random code as shown in FIG. This is the part of the book shown in FIG. When the partial algebraic codebook is composed of blocks X and Y, the random codebook is a portion shown in FIGS. 35 (b) to (d) of the random codebook, as shown in FIG. 33 (b). When the partial algebraic codebook is composed of the block X, the random codebook is a portion shown in FIGS. 35 (b) to (f) of the random codebook, as shown in FIG. 33 (c).
このモード切換えは、モード判定器からの制御信号であるモード情報にしたがって行われる。このモード情報は、符号器側から送信されてくる種々の情報(LPCパラメータ、ゲインパラメータなど)を復号し、その情報に応じて生成しても良く、符号器側から送信されたモード情報を用いても良い。 This mode switching is performed according to mode information which is a control signal from the mode determiner. This mode information may be generated in accordance with various information (LPC parameters, gain parameters, etc.) transmitted from the encoder side, and generated according to the information. The mode information transmitted from the encoder side is used. May be.
このように、部分的代数符号帳をブロック単位で削減し、ランダム符号帳を段階的に増加することにより、部分的代数符号帳とランダム符号帳のサイズを容易に制御できる。さらに、異なるモードにおいても共有コードベクトルインデックスを同じにできるのでモード誤りの影響を抑えることができる。 In this way, the size of the partial algebraic codebook and the random codebook can be easily controlled by reducing the partial algebraic codebook in units of blocks and increasing the random codebook in stages. Furthermore, since the shared code vector index can be the same even in different modes, the influence of mode errors can be suppressed.
ここで、モードが有声/無声/定常雑音の3種類のモードから構成される場合を例として、それぞれのモードにおける部分的代数符号帳とランダム符号帳の構成比の具体例を示す。ビット配分によってこの最適比率は変わりうるが、16ビットのランダム符号帳の例においては、有声モードで(部分的代数符号帳:ランダム符号帳=約50%:約50%)、無声モードで(同=約10%:約90%)、定常雑音モードで(同=約10%:約90%、モード誤りが極めて少なければ同=約0%:約100%までランダム符号帳の比率を上げてもよい)といった比率であることが望ましい。なお、復号器側で定常雑音信号の主観品質を高めるような後処理が加えられる場合は、定常雑音モードにおけるランダム符号帳の比率を特に高くする必要がなくなる場合もある。 Here, a specific example of the composition ratio of the partial algebraic codebook and the random codebook in each mode will be shown by taking as an example a case where the mode is composed of three types of modes: voiced / unvoiced / stationary noise. This optimal ratio may vary depending on the bit allocation, but in the case of a 16-bit random codebook, in the voiced mode (partial algebraic codebook: random codebook = about 50%: about 50%), in the unvoiced mode (same = About 10%: About 90%) Even if the ratio of the random codebook is increased to about 0%: About 100% in the stationary noise mode (the same = about 10%: about 90%, if the mode error is very small) It is desirable that the ratio is good. If post-processing is performed on the decoder side to increase the subjective quality of the stationary noise signal, it may not be necessary to particularly increase the ratio of the random codebook in the stationary noise mode.
(実施の形態6)
本実施の形態においては、ノイズパワ(過去のノイズモード区間における平均パワ)の高低によって、拡散パタンの雑音性を切換える、あるいはノイズパワの高低によって、拡散パタンの1サンプル目のサンプル値を操作する場合について説明する。
(Embodiment 6)
In the present embodiment, the noise characteristics of the diffusion pattern are switched depending on the level of the noise power (average power in the past noise mode section), or the sample value of the first sample of the diffusion pattern is manipulated depending on the level of the noise power. explain.
図36は、本発明の実施の形態6に係る音声符号化装置の構成を示すブロック図であり、図37は、本発明の実施の形態6に係る音声復号化装置の構成を示すブロック図である。図36において、図24と同じ部分については、図24と同じ符号を付して、詳細な説明は省略する。また、図37において、図25と同じ部分については、図25と同じ符号を付して、詳細な説明は省略する。
FIG. 36 is a block diagram showing the configuration of the speech encoding apparatus according to
図36に示す音声符号化装置においては、可変型部分的代数符号帳/ランダム符号帳3601を有しており、この可変型部分的代数符号帳/ランダム符号帳3601から出力された音源ベクトルのパルスを拡散するパルス拡散器3602を備えている。この音源ベクトルのパルスの拡散は、拡散パタン生成器3603において生成された拡散パタンにしたがって行われる。この拡散パタンは、ノイズ区間平均パワ算出器2401で求められたノイズ区間平均パワの高低や、モード判定器1713からのモード情報により決定する。
The speech coding apparatus shown in FIG. 36 has a variable partial algebraic codebook /
図37に示す音声復号化装置においては、図36に示す音声符号化装置に対応して可変型部分的代数符号帳/ランダム符号帳3701を有しており、この可変型部分的代数符号帳/ランダム符号帳3701から出力された音源ベクトルのパルスを拡散するパルス拡散器3702を備えている。この音源ベクトルのパルスの拡散は、拡散パタン生成器3703において生成された拡散パタンにしたがって行われる。この拡散パタンは、ノイズ区間平均パワ算出器2501で求められたノイズ区間平均パワの高低や、モード判定器1810からのモード情報により決定する。
The speech decoding apparatus shown in FIG. 37 has a variable partial algebraic codebook /
図36に示す音声符号化装置及び図37に示す音声復号化装置における拡散パタン生成器3603,3703では、図38及び図39に示すようにして拡散パタンを生成する。
The spreading
まず、音声符号化装置においては、過去にノイズ区間と判定された(サブ)フレームのパワを用いてノイズ区間平均パワ算出器2401でノイズ区間平均パワを算出する。過去のノイズ区間パワは、現パワ算出器2402により出力されたパワを用いて逐次更新される。ここで算出されたノイズ区間の平均パワが拡散パタン生成器3603に出力される。拡散パタン生成器3603では、ノイズ区間の平均パワに基づいて拡散パタンの雑音性を切換える。すなわち、図38に示すように、拡散パタン生成器3603では、ノイズ区間の平均パワの高低に対応して複数の雑音性が設定されており、平均パワの高低に応じて雑音性が選択される。具体的には、ノイズ区間の平均パワが大きい場合には、拡散パタンの雑音性が高い(強い)ものを選択し、ノイズ区間の平均パワが小さい場合には、拡散パタンの雑音性が低い(弱い)ものを選択する。
First, in the speech encoding apparatus, the noise section
また、ノイズ区間と音声区間とで拡散パタンの雑音性を切換えるようにしても良い。なお、音声区間は、さらに有声区間と無声区間に分けても良い。この場合、切換えは、ノイズ区間では拡散パタンの雑音性が高く、音声区間では拡散パタンの雑音性が低くなるように行われる。なお、音声区間を有声区間と無声区間に分けた場合は、有声区間では拡散パタンの雑音性が低く、無声区間では拡散パタンの雑音性が高くなるように行われる。ノイズ区間、音声区間(有声区間、無声区間)の分類は別途モード判定器1713などによって行われ、拡散パタンの選択はモード判定器1713から出力されたモード情報によって拡散パタン生成器3603で行う。
Further, the noise characteristics of the diffusion pattern may be switched between the noise section and the voice section. The voice section may be further divided into a voiced section and a voiceless section. In this case, switching is performed such that the noise characteristics of the diffusion pattern are high in the noise section and the noise characteristics of the diffusion pattern are low in the voice section. When the voice section is divided into a voiced section and an unvoiced section, the noise characteristics of the diffusion pattern are low in the voiced section, and the noise characteristics of the diffusion pattern are high in the voiceless section. Classification of the noise section and the voice section (voiced section, unvoiced section) is performed separately by the
すなわち、モード判定器1713で判定されたモードがモード情報として拡散パタン生成器3603に出力され、拡散パタン生成器3603では、モード情報に基づいて拡散パタンの雑音性を切換える。この場合、図38に示すように、拡散パタン生成器3603では、モードに対応して複数の雑音性が設定されており、モードに応じて雑音性の強弱が選択される。具体的には、ノイズモードの場合には、拡散パタンの雑音性が強いものを選択し、音声(有声)モードの場合には、拡散パタンの雑音性が弱いものを選択する。
That is, the mode determined by the
また、別の構成の拡散パタン生成器3603では、拡散パタンは、ノイズ区間の平均パワの高低に対応して拡散パタンの1サンプル目の振幅値を変えることにより、前記の切換えに相当する操作を連続的に行う。具体的には、図39に示すように、ノイズ区間の平均パワが大きい場合には、1サンプルめの振幅値を小さくする係数が乗ぜられ、ノイズ区間の平均パワが小さい場合には、1サンプルめの振幅値を大きくする係数が乗ぜられる。これらの係数については、ノイズ区間の平均パワの値を用いて決定できるように予め変換関数や変換ルールを定めておく。なお、振幅値を変えるサンプルについては、1サンプルに限定されない。また、係数を乗じた後の拡散パタンは、係数を乗じる前のパタンと同じベクトルパワとなるように正規化される。
Further, in the
次に、音声復号化装置においては、過去にノイズ区間と判定された(サブ)フレームのパワを用いてノイズ区間平均パワ算出器2501でノイズ区間平均パワを算出する。過去のノイズ区間パワは、現パワ算出器2502から出力されたパワを用いて逐次更新される。ここで算出されたノイズ区間の平均パワが拡散パタン生成器3703に出力される。拡散パタン生成器3703では、ノイズ区間の平均パワに基づいて拡散パタンの雑音性を切換える。すなわち、図38に示すように、拡散パタン生成器3703では、ノイズ区間の平均パワの高低に対応して複数の雑音レベルが設定されており、平均パワの高低に応じて雑音性が選択される。具体的には、ノイズ区間の平均パワが大きい場合には、拡散パタンの雑音性が高い(強い)ものを選択し、ノイズ区間の平均パワが小さい場合には、拡散パタンの雑音性が低い(弱い)ものを選択する。
Next, in the speech decoding apparatus, the noise section average power is calculated by the noise section
また、この場合にも、ノイズ区間と音声区間とで拡散パタンの雑音性を切換えるようにしても良い。なお、音声区間は、さらに有声区間と無声区間に分けても良い。この場合、切換えは、ノイズ区間では拡散パタンの雑音性が高く、音声区間では拡散パタンの雑音性が低くなるように行われる。なお、音声区間を有声区間と無声区間に分けた場合は、有声区間では拡散パタンの雑音性が低く、無声区間では拡散パタンの雑音性が高くなるように行われる。ノイズ区間、音声区間(有声区間、無声区間)の分類は、別途モード判定器1810などによって行われ、拡散パタンの選択はモード判定器1810から出力されたモード情報によって拡散パタン生成器3703で行う。
Also in this case, the noise characteristics of the diffusion pattern may be switched between the noise section and the voice section. The voice section may be further divided into a voiced section and a voiceless section. In this case, switching is performed such that the noise characteristics of the diffusion pattern are high in the noise section and the noise characteristics of the diffusion pattern are low in the voice section. When the voice section is divided into a voiced section and an unvoiced section, the noise characteristics of the diffusion pattern are low in the voiced section, and the noise characteristics of the diffusion pattern are high in the voiceless section. The classification of the noise section and the voice section (voiced section, unvoiced section) is separately performed by the
すなわち、モード判定器1810で判定されたモードがモード情報として拡散パタン生成器3703に出力され、拡散パタン生成器3703では、モード情報に基づいて拡散パタンの雑音性を切換える。この場合、図38に示すように、拡散パタン生成器3703では、モードに対応して複数の雑音性が設定されており、モードに応じて雑音性の強弱が選択される。具体的には、ノイズモードの場合には、拡散パタンの雑音性の強いものを選択し、音声(有声)モードの場合には、拡散パタンの雑音性の弱いものを選択する。
That is, the mode determined by the
また、別の構成の拡散パタン生成器3703では、拡散パタンは、ノイズ区間の平均パワの高低に対応して拡散パタンの1サンプル目の振幅値を変えることによって連続的に拡散パタンの雑音性を変化させる。具体的には、図39に示すように、ノイズ区間の平均パワが大きい場合には、1サンプル目の振幅値が小さくする係数を乗じ、ノイズ区間の平均パワが小さい場合には、1サンプルめの振幅値が大きくなる係数を乗じる。この係数とノイズ区間の平均パワとの間には、予め定められた変換関数や変換ルールが介在し、平均パワの情報から振幅変換係数を求めることができるようになっている。なお、振幅値を変えるサンプルについては、1サンプルに限定されない。また、振幅値が変えられた拡散パタンは、振幅値を変える前の拡散パタンと同じベクトルパワとなるように正規化される。
Further, in another configuration of the
ノイズ区間の平均パワによる拡散パタンの雑音性の切換えについては、モード情報によって複数種類用意するなどして、モード情報と平均ノイズパワ情報との双方を組合わせて拡散パタンの切換えを行えば、ノイズパワが大きい場合でも、音声区間(有声区間)では拡散パタンの雑音性を中程度以下にすることなどが可能となり、ノイズ中の音声品質を改善することができる。 For switching the noise characteristics of the diffusion pattern depending on the average power in the noise interval, the noise power can be increased by switching the diffusion pattern by combining both mode information and average noise power information, such as by preparing multiple types according to the mode information. Even if it is large, the noise characteristics of the diffusion pattern can be reduced to a moderate level or less in the voice section (voiced section), and the voice quality in the noise can be improved.
本実施の形態においては、ノイズ区間のパワの高低に関係なく、ノイズ区間と音声区間とで拡散パタンの雑音性を切換えるようにしても良い。この場合、切換えは、上記と同様に、雑音区間では拡散パタンの雑音性が高く、音声区間では拡散パタンの雑音性が低くなるように行われる。なお、音声区間をさらに有声区間と無声区間に分けた場合は、切換えは、有声区間では拡散パタンの雑音性を低く、無声区間では拡散パタンの雑音性が高くなるように行われる。 In the present embodiment, the noise characteristics of the diffusion pattern may be switched between the noise section and the voice section regardless of the power level of the noise section. In this case, switching is performed so that the noise characteristics of the diffusion pattern are high in the noise section and the noise characteristics of the diffusion pattern are low in the voice section, as described above. When the speech section is further divided into a voiced section and an unvoiced section, switching is performed so that the noise characteristics of the spreading pattern are low in the voiced section and the noise characteristics of the spreading pattern are high in the unvoiced section.
上記実施の形態6においては、可変型部分的代数符号帳/ランダム符号帳を用いた場合について説明しているが、本発明においては、一般的な代数符号帳を用いた場合にも適用することができる。 In the sixth embodiment, the case where the variable partial algebraic codebook / random codebook is used has been described. However, the present invention is also applicable to the case where a general algebraic codebook is used. Can do.
本発明は、音声信号を符号化して伝送する音声符号化装置、および、伝送された符号化音声信号を復号化する音声復号化装置等に用いるに好適である。 The present invention is suitable for use in a speech encoding device that encodes and transmits a speech signal, a speech decoding device that decodes a transmitted encoded speech signal, and the like.
201 前処理器
202 LPC分析器
203 LPC量子化器
204,303 適応符号帳
206,305 部分的代数符号帳
209,308 LPC合成フィルタ
211 聴覚重みづけ器
212 誤差最小化器
301 LPC復号器
302 音源パラメータ復号器
309 後処理器
401,405 第1のパルス発生器
402,406 パルス位置限定器
403,407 第2のパルス発生器
DESCRIPTION OF
Claims (4)
前記拡散パタン生成手段は、
音源信号のパワを計算するパワ算出手段と、
前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出手段と、
1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換手段と、
前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工手段と、
を備え、
前記変換手段は、
前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、
音声符号化装置。 Sound source vector generation means for generating a sound source vector composed of sound source pulses, diffusion pattern generation means for generating a diffusion pattern, and pulse diffusion means for diffusing the generated pulse of the excitation vector according to the generated diffusion pattern And an error minimizing means for determining the sound source vector that minimizes the energy of the error signal after auditory weighting, and a speech encoding device comprising:
The diffusion pattern generation means includes
Power calculating means for calculating the power of the sound source signal;
A noise interval average power calculating means for calculating an average power of a noise interval using the power;
Conversion means for calculating a multiplication coefficient for processing one type of diffusion pattern as a function of average power in the noise interval ;
A diffusion pattern processing means for processing the one type of diffusion pattern by multiplying the amplitude value of at least the first sample of the one type of diffusion pattern by the multiplication coefficient, and generating a new diffusion pattern;
With
The converting means includes
When the average power of the noise section is larger than a predetermined threshold, the multiplication coefficient is decreased, and when the average power of the noise section is smaller than the threshold, the multiplication coefficient is increased.
Speech encoding device.
前記拡散パタン生成手段は、
音源信号のパワを計算するパワ算出手段と、
前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出手段と、
1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換手段と、
前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工手段と、
を備え、
前記変換手段は、
前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、
音声復号化装置。 Sound source vector generating means for generating a sound source vector composed of sound source pulses, diffusion pattern generating means for generating a diffusion pattern, and pulse spreading means for diffusing the pulses of the generated sound source vector according to the generated diffusion pattern A speech decoding apparatus comprising:
The diffusion pattern generation means includes
Power calculating means for calculating the power of the sound source signal;
A noise interval average power calculating means for calculating an average power of a noise interval using the power;
Conversion means for calculating a multiplication coefficient for processing one kind of diffusion pattern as a function of average power in the noise interval ;
Diffusion pattern processing means for processing the one type of diffusion pattern by multiplying the amplitude value of at least the first sample of the one type of diffusion pattern by the multiplication coefficient, and generating a new diffusion pattern;
With
The converting means includes
When the average power of the noise section is larger than a predetermined threshold, the multiplication coefficient is decreased, and when the average power of the noise section is smaller than the threshold, the multiplication coefficient is increased.
Speech decoding device.
前記拡散パタン生成工程では、
音源信号のパワを計算するパワ算出工程と、
前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出工程と、
1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換工程と、
前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工工程と、
を行い、
前記変換工程では、
前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、
音声符号化方法。 A sound source vector generation step for generating a sound source vector composed of sound source pulses, a diffusion pattern generation step for generating a diffusion pattern, and a pulse diffusion step for diffusing the pulses of the generated sound source vector according to the generated diffusion pattern And an error minimizing step for determining the sound source vector that minimizes the energy of the error signal after auditory weighting, and a speech encoding method comprising:
In the diffusion pattern generation step,
A power calculation process for calculating the power of the sound source signal;
A noise interval average power calculating step of calculating an average power of a noise interval using the power;
A conversion step of calculating a multiplication coefficient for processing one type of diffusion pattern as a function of the average power in the noise interval ;
A diffusion pattern processing step of processing the one type of diffusion pattern by multiplying the amplitude value of at least the first sample of the one type of diffusion pattern by the multiplication coefficient to generate a new diffusion pattern;
And
In the conversion step,
When the average power of the noise section is larger than a predetermined threshold, the multiplication coefficient is decreased, and when the average power of the noise section is smaller than the threshold, the multiplication coefficient is increased.
Speech encoding method.
前記拡散パタン生成工程では、
音源信号のパワを計算するパワ算出工程と、
前記パワを用いてノイズ区間の平均パワを算出するノイズ区間平均パワ算出工程と、
1種類の拡散パタンを加工するための乗算係数を前記ノイズ区間の平均パワの関数として算出する変換工程と、
前記1種類の拡散パタンの少なくとも1サンプル目の振幅値に前記乗算係数を乗じることにより前記1種類の拡散パタンを加工して、新たな拡散パタンを生成する拡散パタン加工工程と、
を行い、
前記変換工程では、
前記ノイズ区間の平均パワが所定の閾値より大きい場合には前記乗算係数を小さくし、前記ノイズ区間の平均パワが前記閾値より小さい場合には前記乗算係数を大きくする、
音声復号化方法。 A sound source vector generation step for generating a sound source vector composed of sound source pulses, a diffusion pattern generation step for generating a diffusion pattern, and a pulse diffusion step for diffusing the pulses of the generated sound source vector according to the generated diffusion pattern A speech decoding method comprising:
In the diffusion pattern generation step,
A power calculation process for calculating the power of the sound source signal;
A noise interval average power calculating step of calculating an average power of a noise interval using the power;
A conversion step of calculating a multiplication coefficient for processing one type of diffusion pattern as a function of the average power in the noise interval ;
A diffusion pattern processing step of processing the one type of diffusion pattern by multiplying the amplitude value of at least the first sample of the one type of diffusion pattern by the multiplication coefficient to generate a new diffusion pattern;
And
In the conversion step,
When the average power of the noise section is larger than a predetermined threshold, the multiplication coefficient is decreased, and when the average power of the noise section is smaller than the threshold, the multiplication coefficient is increased.
Speech decoding method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008087555A JP4469400B2 (en) | 1999-03-05 | 2008-03-28 | Speech coding apparatus, speech decoding apparatus, speech coding method, and speech decoding method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5952099 | 1999-03-05 | ||
JP2008087555A JP4469400B2 (en) | 1999-03-05 | 2008-03-28 | Speech coding apparatus, speech decoding apparatus, speech coding method, and speech decoding method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31427199A Division JP4173940B2 (en) | 1999-03-05 | 1999-11-04 | Speech coding apparatus and speech coding method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008165259A JP2008165259A (en) | 2008-07-17 |
JP4469400B2 true JP4469400B2 (en) | 2010-05-26 |
Family
ID=37484222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008087555A Expired - Fee Related JP4469400B2 (en) | 1999-03-05 | 2008-03-28 | Speech coding apparatus, speech decoding apparatus, speech coding method, and speech decoding method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4469400B2 (en) |
CN (1) | CN1873779B (en) |
-
2000
- 2000-03-02 CN CN2006100850590A patent/CN1873779B/en not_active Expired - Fee Related
-
2008
- 2008-03-28 JP JP2008087555A patent/JP4469400B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008165259A (en) | 2008-07-17 |
CN1873779B (en) | 2011-06-01 |
CN1873779A (en) | 2006-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4173940B2 (en) | Speech coding apparatus and speech coding method | |
US6574593B1 (en) | Codebook tables for encoding and decoding | |
JP3346765B2 (en) | Audio decoding method and audio decoding device | |
US6735567B2 (en) | Encoding and decoding speech signals variably based on signal classification | |
US6581032B1 (en) | Bitstream protocol for transmission of encoded voice signals | |
WO2001052241A1 (en) | Multi-mode voice encoding device and decoding device | |
KR100566713B1 (en) | Speech parameter coding and decoding methods, coder and decoder, and programs, and speech coding and decoding methods, coder and decoder, and programs | |
KR100350340B1 (en) | Voice encoder, voice decoder, voice encoder/decoder, voice encoding method, voice decoding method and voice encoding/decoding method | |
WO1998006091A1 (en) | Voice encoder, voice decoder, recording medium on which program for realizing voice encoding/decoding is recorded and mobile communication apparatus | |
JPH08263099A (en) | Encoder | |
JP3955179B2 (en) | Speech coding apparatus, speech decoding apparatus, and methods thereof | |
CA2261956A1 (en) | Method and apparatus for searching an excitation codebook in a code excited linear prediction (clep) coder | |
JPH08272395A (en) | Voice encoding device | |
JP3746067B2 (en) | Speech decoding method and speech decoding apparatus | |
KR20040104750A (en) | Method and device for code conversion between audio encoding/decoding methods and storage medium thereof | |
KR100561018B1 (en) | Sound encoding apparatus and method, and sound decoding apparatus and method | |
JP2000132197A (en) | Celp type voice encoder | |
JP3806344B2 (en) | Stationary noise section detection apparatus and stationary noise section detection method | |
JP4299676B2 (en) | Method for generating fixed excitation vector and fixed excitation codebook | |
JP3888097B2 (en) | Pitch cycle search range setting device, pitch cycle search device, decoding adaptive excitation vector generation device, speech coding device, speech decoding device, speech signal transmission device, speech signal reception device, mobile station device, and base station device | |
JP4469400B2 (en) | Speech coding apparatus, speech decoding apparatus, speech coding method, and speech decoding method | |
JP3887598B2 (en) | Coding method and decoding method for sound source of probabilistic codebook | |
JP3579276B2 (en) | Audio encoding / decoding method | |
JP3916934B2 (en) | Acoustic parameter encoding, decoding method, apparatus and program, acoustic signal encoding, decoding method, apparatus and program, acoustic signal transmitting apparatus, acoustic signal receiving apparatus | |
JP3954716B2 (en) | Excitation signal encoding apparatus, excitation signal decoding apparatus and method thereof, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091222 |
|
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: 20100202 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4469400 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140305 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |