Die
vorliegende Erfindung betrifft einen Sprachcodierer zum effizienten
Codieren von Sprachinformationen sowie einen Sprachdecodierer zum
effizienten Decodieren derselben.The
The present invention relates to a speech coder for efficient
Coding of speech information as well as a speech decoder for
efficient decoding of the same.
Ein
Sprachcodierverfahren zum effizienten Codieren und Decodieren von
Sprachinformationen ist in den letzten Jahren entwickelt worden.
In Code Excited Linear Prediction: "High Quality Speech at Low Bit Rate", M. R. Schroeder,
Proc. ICASSP' 85,
S.937–940,
wird ein Sprachcodierer eines CELP-Typs beschrieben, der auf einem
derartigen Sprachcodierverfahren basiert.One
Speech coding method for efficiently coding and decoding
Speech information has been developed in recent years.
In Code Excited Linear Prediction: "High Quality Speech at Low Bit Rate", M.R. Schroeder,
Proc. ICASSP '85,
S.937-940,
a speech coder of a CELP type is described, which is based on a
based on such speech coding method.
Bei
diesem Sprachcodierer wird ein lineare Vorhersage bzw. Prädiktion
für eine
Eingabesprache in jedem Rahmen ausgeführt, der in festen Zeiten unterteilt
ist. Ein Prädiktions-Restfehlersignal
(Anregungssignal) wird durch die lineare Prädiktion für jeden Rahmen gewonnen. Dann
wird das Prädiktions-Restfehlersignal
unter Verwendung eines adaptiven Codebuchs, in dem ein vorangehendes
Anregungssignal gespeichert wird, sowie unter Verwendung eines Zufalls-Codebuchs
codiert, in dem eine Vielzahl zufälliger Codevektoren gespeichert
ist.at
This speech coder becomes a linear prediction or prediction
for one
Input language executed in each frame, which is divided into fixed times
is. A prediction residual error signal
(Excitation signal) is obtained by the linear prediction for each frame. Then
becomes the prediction residual error signal
using an adaptive codebook in which a previous one
Excitation signal is stored, as well as using a random codebook
in which a plurality of random codevectors are stored
is.
1 zeigt
einen Funktionsblock eines herkömmlichen
CELP-Sprachcodierers. 1 shows a functional block of a conventional CELP speech coder.
Ein
Sprachsignal 11, das in den CELP-Sprachcodierer eingegeben
wird, wird einer linearen Prädiktions-Analyse
in einem linearen Prädiktions-Analysierabschnitt 12 unterzogen.
Mit der linearen Prädiktions-Analyse
können
lineare Prädiktivkoeffizienten
gewonnen werden. Die linearen Prädiktivkoeffizienten
sind Parameter, die eine Spektrum-Hüllkurve des Sprachsignals 11 anzeigen.
Die linearen Prädiktivkoeffizienten,
die in dem linearen Prädiktions-Analyseabschnitt 12 gewonnen
werden, werden von einem Abschnitt 13 zum Codieren linearer
Prädiktivkoeffizienten
quantisiert, und die quantisierten linearen Prädiktivkoeffizienten werden
zu einem Abschnitt 14 zum Decodieren linearer Prädiktivkoeffizienten
gesendet. Zu bemerken ist, dass ein durch diese Quantisierung gewonnener
Index an einen Codeausgabeabschnitt 24 als ein linearer
Prädiktvcode
ausgegeben wird. Der Abschnitt 14 zum Decodieren linearer
Prädiktivkoeffizienten
decodiert die durch den Abschnitt 13 zum Codieren linearer
Prädiktivkoeffizienten
quantisierten linea ren Prädiktivkoeffizienten,
um so Koeffizienten eines Synthesefilters zu gewinnen. Der Abschnitt 14 zum
Decodieren linearer Prädiktivkoeffizienten gibt
diese Koeffizienten an ein Synthesefilter 15 aus.A voice signal 11 which is input to the CELP speech coder, becomes a linear prediction analysis in a linear prediction analyzing section 12 subjected. With the linear prediction analysis linear predictive coefficients can be obtained. The linear predictive coefficients are parameters that represent a spectrum envelope of the speech signal 11 Show. The linear predictive coefficients included in the linear prediction analysis section 12 will be won by a section 13 to quantize linear predictive coefficients, and the quantized linear predictive coefficients become a section 14 for decoding linear predictive coefficients. It should be noted that an index obtained by this quantization is applied to a code output section 24 is output as a linear predictive code. The section 14 for decoding linear predictive coefficients, the one decoded by the section 13 for coding linear predictive coefficients, quantized linear predictive coefficients so as to obtain coefficients of a synthesis filter. The section 14 for decoding linear predictive coefficients, these coefficients are given to a synthesis filter 15 out.
Ein
adaptives Codebuch 17 ist von einem Typ, der eine Vielzahl
von Kandidaten adaptiver Codevektoren ausgibt und der einen Puffer
zum Speichern von Anregungssignalen umfasst, die mehreren vorangehenden
Rahmen entsprechen. Die adaptiven Codevektoren sind Zeitreihenvektoren,
die periodische Komponenten in der Eingabesprache ausdrücken.An adaptive codebook 17 is of a type that outputs a plurality of candidates of adaptive code vectors and that includes a buffer for storing excitation signals corresponding to a plurality of preceding frames. The adaptive codevectors are time series vectors that express periodic components in the input language.
Ein
Zufalls-Codebuch 18 ist von dem Typ, das eine Vielzahl
von Kandidaten zufälliger
Codevektoren speichert. Die zufälligen
Codevektoren sind Zeitreihenvektoren, die nicht-periodische Komponenten in der eingegebenen
Sprache ausdrücken.A random codebook 18 is of the type that stores a plurality of random codevector candidates. The random codevectors are time series vectors that express non-periodic components in the input speech.
In
einem Abschnitt 19 zur Gewichtung von adaptiver Code-Verstärkung und
einem Abschnitt 20 zur Gewichtung zufälliger Code-Verstärkung werden
die Kandidaten-Vektoren, die von dem adaptiven Codebuch 17 und
dem Zufalls-Codebuch 18 ausgegeben werden, mit einer adaptiven
Code-Verstärkung,
die aus einem Gewicht-Codebuch 21 gelesen wird, bzw. einer
zufälligen
Code-Verstärkung
multipliziert, und die Ergebnisse werden an einen Addierabschnitt 22 ausgegeben.In a section 19 for weighting adaptive code gain and a section 20 for weighting random code amplification, the candidate vectors obtained from the adaptive codebook 17 and the random codebook 18 are output, with an adaptive code amplification consisting of a weight codebook 21 is read or multiplied by a random code gain, and the results are sent to an adder section 22 output.
Das
Gewichtungs-Codebuch speichert eine Vielzahl adaptiver Codebuch-Verstärkungen,
mit denen der adaptive Codevektor multipliziert wird, sowie eine
Vielzahl zufälliger
Zufalls-Codebuch-Verstärkungen,
mit denen die zufälligen
Codebuchvektoren multipliziert werden.The
Weighting codebook stores a plurality of adaptive codebook gains,
with which the adaptive codevector is multiplied, as well as a
Variety of random
Random codebook gains,
with which the random ones
Codebook vectors are multiplied.
Der
Addierabschnitt 22 addiert die adaptiven Codevektor-Kandidaten
und die zufälligen
Codevektor-Kandidaten, die in dem Abschnitt 19 zum Gewichten
adaptiver Code-Verstärkung
bzw. dem Abschnitt 20 zum Gewichten zufälliger Code-Verstärkung gewichtet
werden. Dann erzeugt der Addierabschnitt 22 Anregungsvektoren,
die an das Synthesefilter 15 ausgegeben werden.The adding section 22 adds the adaptive codevector candidates and the random codevector candidates listed in the section 19 for weighting adaptive code gain or section 20 weighted for weighting random code gain. Then the adding section generates 22 Excitation vectors attached to the synthesis filter 15 be issued.
Das
Synthesefilter 15 ist ein Allpol-Filter. Die Koeffizienten
des Synthesefilters werden durch den Abschnitt 14 zum Decodieren
linearer Prädiktivkoeffizienten
gewonnen. Das Synthesefilter 15 dient dazu, Eingangs-Anregungsvektoren
zu synthetisieren, um synthe tische Sprache zu erzeugen und diese
synthetische Sprache an eine Verzerrungsberechnungseinrichtung 16 auszugeben.The synthesis filter 15 is an all-pole filter. The coefficients of the synthesis filter are indicated by the section 14 for decoding linear predictive coefficients. The synthesis filter 15 serves to synthesize input excitation vectors to produce synthetic speech and this synthetic speech to a distortion calculator 16 issue.
Eine
Verzerrungsberechnungseinrichtung 16 berechnet eine Verzerrung
zwischen der synthetischen Sprache, die der Ausgang des Synthesefilters 5 ist,
und der Eingangssprache 11 und gibt den ermittelten Verzerrungswert
an einen Codeindex-Spezifizierungsabschnitt 23 aus. Der
Codeindex-Spezifizierungsabschnitt 23 spezifiziert drei
Typen von Codebuch-Indizes (Index des adaptiven Codebuchs, Index
des Zufalls-Codebuchs, Index des Gewicht-Codebuchs), um die durch
den Verzerrungsberechnungsabschnitt 16 berechnete Verzerrung
zu minimieren. Die drei Typen von Codebuch-Indizes, die durch den
Codeindex-Spezifizierungsabschnitt 23 spezifiziert werden,
werden an einen Codeausgabeabschnitt 24 ausgegeben. Der
Codeausgabeabschnitt 24 gibt den durch den Abschnitt 13 zum
Codieren linearer Prädiktivkoeffizienten
ermittelten Index des linearen prädiktiven Codebuchs, und den
Index des adaptiven Codebuchs, den Index des Zufalls-Codebuchs, den
Index des Gewicht-Codebuchs, die durch den Codeindex-Spezifizierungsabschnitt 23 spezifiziert
worden sind, jeweils an einen Sendeweg aus.A distortion calculator 16 calculates a distortion between the synthetic speech that is the output of the synthesis filter 5 is, and the input language 11 and outputs the detected distortion value to a code index specifying section 23 out. The code index specifying section 23 specifies three types of codebook indices (index of adaptive codebook, index of random codebook, index of weight codebook) by the distortion computation section 16 to minimize calculated distortion. The three types of codebook indices specified by the code index specifying section 23 are specified to a code output section 24 output. The code output section 24 Gives that through the section 13 index of the linear predictive codebook obtained to encode linear predictive coefficients, and the index of the adaptive codebook, the index of the random codebook, the index of the weight codebook indicated by the code index specifying section 23 have been specified, each to a transmission path.
2 zeigt
einen Funktionsblock eines CELP-Sprachdecodierers, der das durch
den erwähnten
Codierer codierte Sprachsignal decodiert. In dieser Sprachdecodiervorrichtung
empfängt
ein Codeeingabeabschnitt 31 von dem Sprachcodierer (1)
gesendete Codes. Die empfangenen Codes werden in den Index des linearen
prädiktiven
Codebuchs, den Index des adaptiven Codebuchs, den Index des Zufalls-Codebuchs und
den Index des Gewicht-Codebuchs zerlegt. Dann werden die mit der
oben erwähnten
Zerlegung ermittelten Indizes an einen Abschnitt 32 zum
Decodieren linearer Prädiktivkoeffizienten,
ein adaptives Codebuch 33, ein Zufalls-Codebuch 34 bzw.
ein Gewicht-Codebuch 35 ausgegeben. 2 Fig. 12 shows a functional block of a CELP speech decoder which decodes the speech signal encoded by the mentioned encoder. In this voice decoding apparatus, a code input section receives 31 from the speech coder ( 1 ) sent codes. The received codes are decomposed into the index of the linear predictive codebook, the index of the adaptive codebook, the index of the random codebook and the index of the weight codebook. Then, the indexes obtained with the above-mentioned decomposition become a section 32 for decoding linear predictive coefficients, an adaptive codebook 33 , a random codebook 34 or a weight codebook 35 output.
Dann
decodiert der Abschnitt 32 zum Decodieren linearer Prädiktivkoeffizienten,
die durch den Codeeingabeabschnitt 31 ermittelte lineare
Prädiktiv-Codenummer,
um Koeffizienten des Synthesefilters zu ermitteln, und gibt diese
Koeffizienten an ein Synthesefilter 39 aus. Dann wird ein
adaptiver Codevektor, der dem Index des adaptiven Codebuchs entspricht,
aus dem adaptiven Codebuch gelesen, und ein zufälliger Codevektor, der dem
Index des Zufalls-Codebuchs entspricht, wird aus dem Zufalls-Codebuch
gelesen. Des Weiteren werden eine adaptive Codebuch-Verstärkung sowie
eine Zufalls- Codebuch-Verstärkung aus
dem Gewicht-Codebuch gelesen. Anschließend wird in einem Abschnitt 36 zum
Gewichten des adaptiven Codevektors der adaptive Codevektor mit
der adaptiven Codebuch-Verstärkung
multipliziert, und das Ergebnis wird zu einem Addierabschnitt 38 gesendet.
Desgleichen wird in einem Abschnitt 37 zum Gewichten des
zufälligen
Codevektors der zufällige
Codevektor mit der Zufalls-Codebuch-Verstärkung multipliziert, und das
Ergebnis wird zu dem Addierabschnitt 38 gesendet.Then the section decodes 32 for decoding linear predictive coefficients passing through the code input section 31 determined linear predictive code number to determine coefficients of the synthesis filter, and outputs these coefficients to a synthesis filter 39 out. Then, an adaptive code vector corresponding to the index of the adaptive codebook is read from the adaptive codebook, and a random codevector corresponding to the index of the random codebook is read from the random codebook. Furthermore, an adaptive codebook gain and a random codebook gain are read from the weight codebook. Subsequently, in a section 36 for weighting the adaptive code vector, the adaptive code vector is multiplied by the adaptive codebook gain, and the result becomes an adding section 38 Posted. Likewise, in a section 37 for weighting the random codevector, the random codevector is multiplied by the random codebook gain, and the result is added to the adding section 38 Posted.
Der
Addierabschnitt 38 addiert die oben erwähnten zwei Codevektoren und
erzeugt einen Anregungsvektor. Dann wird der erzeugte Anregungsvektor
zu dem adaptiven Codebuch 33 gesendet, um den Puffer oder
das Synthesefilter 39 zu aktualisieren und das Filter anzuregen.
Das Synthesefilter 39, das mit den linearen Prädiktivkoeffizienten
zusammengesetzt wird, die von dem Abschnitt 32 zum Decodieren
linearer Prädiktivkoeffizienten
ausgegeben werden, wird durch den von dem Addierabschnitt 38 ermittelten
Anregungsvektor angeregt und erzeugt eine synthetische Sprache.The adding section 38 adds the above-mentioned two codevectors and generates an excitation vector. Then the generated excitation vector becomes the adaptive codebook 33 sent to the buffer or the synthesis filter 39 to refresh and to stimulate the filter. The synthesis filter 39 , which is composed with the linear predictive coefficients derived from the section 32 are outputted by the adder section for decoding linear predictive coefficients 38 determined excitation vector excited and generates a synthetic language.
Zu
bemerken ist, dass in der Verzerrungsberechnungseinrichtung 16 des
CELP-Sprachcodierers Verzerrung E im Allgemeinen mit dem folgenden
Ausdruck (1) berechnet wird: E = ||ν – (gaHP
+ gcHC)||2 (1)wobei
- v:
- ein eingegebenes Sprachsignal
(Vektor),
- H:
- eine Impulsantwort-Faltungsmatrix
für ein
Synthesefilter
wobei - h
- eine Impulsantwort
eines Synthesefilters ist und L eine Rahmenlänge ist,
- p:
- ein adaptiver Codevektor,
- c:
- ein zufälliger Codevektor,
- ga:
- eine adaptive Codebuch-Verstärkung
- gc:
- eine Zufalls-Codebuch-Verstärkung.
It should be noted that in the distortion calculator 16 of the CELP speech coder distortion E is generally calculated by the following expression (1): E = || v - (gaHP + gcHC) || 2 (1) in which - v:
- an input speech signal (vector),
- H:
- an impulse response convolution matrix for a synthesis filter
in which - H
- is an impulse response of a synthesis filter and L is a frame length,
- p:
- an adaptive code vector,
- c:
- a random codevector,
- ga:
- an adaptive codebook gain
- gc:
- a random codebook gain.
Dabei
wird, um Verzerrung E von Ausdruck (1) zu minimieren, die Verzerrung
mit einer geschlossenen Schleife in Bezug auf alle Kombinationen
der adaptiven Codezahl der zufälligen
Codezahl, der Gewicht-Codezahl berechnet, so dass es notwendig ist,
jede Codezahl zu spezifizieren.there
To minimize distortion E of expression (1), the distortion is used
with a closed loop in relation to all combinations
the adaptive code number of the random
Code number that calculates weight code number so it is necessary
to specify each code number.
Wenn
jedoch die Suche in geschlossener Schleife in Bezug auf Ausdruck
(1) durchgeführt
wird, wird eine Menge der Berechnungsbearbeitung zu groß. Aus diesem
Grund wird zuerst der Index des adaptiven Codebuchs durch Vektorquantisierung
unter Verwendung des adaptiven Codebuchs spezifiziert. Dann wird
der Index des Zufalls-Codebuchs durch Vektorquantisierung unter
Verwendung des Zufalls-Codebuchs spezifiziert. Abschließend wird
der Index des Gewicht-Codebuchs durch Vektorquantisierung unter
Verwendung des Gewicht-Codebuchs spezifiziert. Im Folgenden wird
im Einzelnen die Vektorquantisierungsverarbeitung unter Verwendung
des Zufalls-Codebuchs erläutert.If
however, the closed-loop search in terms of expression
(1)
becomes, a lot of the calculation processing becomes too large. For this
The reason for this is first the index of the adaptive codebook by vector quantization
specified using the adaptive codebook. Then it will be
the index of the random codebook by vector quantization
Use of the random codebook specified. Finally, it will
the index of the weight codebook by vector quantization below
Use of weight codebook specified. The following will be
More specifically, the vector quantization processing using
of the random codebook.
In
einem Fall, in dem der Index des adaptiven Codebuchs oder die adaptive
Codebuch-Verstärkung zuvor
oder vorübergehend
bestimmt werden, wird der Ausdruck zum Bewerten von Verzerrung,
der in Ausdruck (1) dargestellt ist, zu dem folgenden Ausdruck (2)
geändert: Ec = ||x – gcHC||2 (2)wobei Vektor
x in Ausdruck (2) ein zufälliger
Anregungs-Zielvektor zum Spezifizieren einer Zufalls-Codezahl ist,
die mit der folgenden Gleichung (3) unter Verwendung des zuvor oder
vorübergehend
spezifizierten adaptiven Codevektors und der adaptiven Codebuch-Verstärkung ermittelt
wird. x = v – gaHP (3)wobei
- ga:
- eine adaptive Codebuch-Verstärkung
- v:
- ein Sprachsignal (Vektor)
- H:
- eine Impulsantwort-Faltungsmatrix
für ein
Synthesefilter,
- p:
- ein adaptiver Codevektor
In a case where the index of the adaptive codebook or the adaptive codebook gain is previously or temporarily determined, the expression for evaluating distortion shown in Expression (1) is changed to the following expression (2): Ec = || x - gcHC || 2 (2) where vector x in expression (2) is a random excitation target vector for specifying a random code number determined by the following equation (3) using the previously or temporarily specified adaptive code vector and the adaptive codebook gain. x = v - gaHP (3) in which - ga:
- an adaptive codebook gain
- v:
- a speech signal (vector)
- H:
- an impulse response convolution matrix for a synthesis filter,
- p:
- an adaptive code vector
Um
die Zufalls-Codebuch-Verstärkung
gc nach dem Spezifizieren des Index des Zufalls-Codebuchs zu spezifizieren, kann angenommen
werden, dass gc in dem Ausdruck (2) auf einen beliebigen Wert eingestellt werden
kann. Es ist bekannt, dass aus diesem Grund eine Quantisierungsverarbeitung
zum Spezifizieren des Index des Zufalls-Codebuchs, die den Ausdruck
(2) minimiert, durch die Bestimmung des Index des Zufalls-Codebuchvektors ersetzt
werden kann, wodurch er folgende Bruchausdruck (4) maximiert wird: In order to specify the random codebook gain gc after specifying the index of the random codebook, it can be assumed that gc in the expression (2) can be set to an arbitrary value. It is known that, for this reason, quantization processing for specifying the index of the random codebook which minimizes the expression (2) can be replaced by the determination of the index of the random codebook vector, thereby maximizing the following fractional expression (4):
Das
heißt,
in einem Fall, in dem der Index des adaptiven Codebuchs und die
adaptive Codebuch-Verstärkung
im Voraus oder vorübergehend
bestimmt werden, wird Vektorquantisierungsverarbeitung für Zufalls-Anregung
zu Verarbeitung zum Spezifizieren des Index des Zufalls-Codebuchs,
wodurch Bruchausdruck (4) maximiert wird, der mit der Verzerrungsberechnungseinrichtung 16 berechnet
wird.That is, in a case where the adaptive codebook index and the adaptive codebook gain are determined in advance or temporarily, random quantization vector quantization processing becomes processing for specifying the index of the random codebook, thereby maximizing fractional expression (4) which is connected to the distortion calculator 16 is calculated.
In
dem CELP-Codierer/Decodierer wurde in den frühen Phasen ein Typ als ein
Zufalls-Codebuch
verwendet, der Arten von Zufallssequenzen speichert, die der Anzahl
von in dem Speicher zugeordneten Bits entsprechen. Es trat jedoch
ein Problem dahingehend auf, dass ein erhebliches Maß an Speicherkapazität erforderlich
war und das Maß an
Rechenverarbeitung zum Berechnen von Verzerrung von Ausdruck (4)
in Bezug auf jeden zufälligen
Codevektor stark zunahm.In
The CELP encoder / decoder was a type in the early stages
Random codebook
used, which stores types of random sequences that are the number
correspond to bits allocated in the memory. It did, however
a problem that requires a significant amount of storage capacity
was and the degree
Arithmetic processing for calculating distortion of expression (4)
in terms of every random one
Codevector increased sharply.
Als
eines der Verfahren zum Lösen
des obenstehenden Problems gibt es einen CELP-Sprachcodierer/-decodierer, der einen
algebraischen Anregungsvektorgenerator zum algebraischen Erzeugen
eines Anregungsvektors verwendet, wie er in 8KBITS/S ACELP CODING
OF SPEECH WITH 10 MS SPEECH-FRAME: A CANDIDATE FOR CCITT STANDARDISATION". R. Salami, C. Laflamme,
J-P. Adoul, ICASSP' 94,
S. II-97~II-100, 1994, beschrieben ist.As one of the methods for solving the above problem, there is a CELP speech codec rer / decoder using an algebraic excitation vector generator for algebraically generating an excitation vector as described in 8KBITS / S ACELP CODING OF SPEECH WITH 10 MS SPEECH-FRAME: A CANDIDATE FOR CCITT STANDARDIZATION ", R. Salami, C. Laflamme, JP. Adoul, ICASSP '94, p. II-97 ~ II-100, 1994.
Bei
dem oben erwähnten
CELP-Sprachcodierer/-decodierer, der einen algebraischen Anregungsvektorgenerator
verwendet, wird jedoch zufällige
Anregung (Zielvektor zum Spezifizieren eines Index des Zufalls-Codebuchs),
die durch Gleichung (3) ermittelt wird, annähernd durch wenige Impulse
mit Vorzeichen ausgedrückt.
Aus diesem Grund gibt es eine Begrenzung hinsichtlich der Verbesserung
der Sprachqualität.
Dies ergibt sich aus einer konkreten Untersuchung eines Elementes
für Zufallsanregung
x aus Ausdruck (3), wobei es wenige Fälle gibt, in denen Zufalls-Anregungen
aus lediglich wenigen Impulsen mit Vorzeichen zusammengesetzt sind.at
the above mentioned
CELP speech coder / decoder that generates an algebraic excitation vector generator
used, however, becomes random
Excitation (target vector for specifying an index of the random codebook),
which is determined by equation (3), approximately by a few pulses
expressed with a sign.
For this reason, there is a limit to the improvement
the voice quality.
This results from a concrete examination of an element
for random stimulation
x from expression (3), where there are few cases in which random excitations
are composed of only a few pulses with signs.
Das
Dokument "ACELP
Coding with Dispersed-Pulse Codebook" IEICE Spring Meeting, März 1997, Seite
253, von K. Yasunaga et al. offenbart ein Verfahren zum Modifizieren
der Vektoren, die unter Verwendung eines algebraischen Codebuchs
erzeugt werden, das ein Dispersionsmuster pro Kanal verwendet.The
Document "ACELP
Coding with Dispersed Pulse Codebook "IEICE Spring Meeting, March 1997, p
253, by K. Yasunaga et al. discloses a method for modifying
vectors generated using an algebraic codebook
which uses one dispersion pattern per channel.
Eine
Aufgabe der vorliegenden Erfindung besteht darin, einen Anregungsvektorgenerator
zu schaffen, der in der Lage ist, einen Anregungsvektor zu erzeugen,
dessen Form eine statistisch hohe Ähnlichkeit mit der Form einer
Zufalls-Anregung hat, die durch Analysieren eines Eingangs-Sprachsignals
ermittelt wird.A
The object of the present invention is an excitation vector generator
capable of generating an excitation vector,
its form has a statistically high similarity with the shape of a
Random excitation has by analyzing an input speech signal
is determined.
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, einen
CELP-Sprachcodierer/-decodierer, ein Sprachsignal-Kommunikationssystem,
ein Sprachsignal-Aufzeichnungssystem zu schaffen, die den oben genannten
Anregungsvektorgenerator als ein Zufalls-Codebuch verwenden, um
eine synthetische Sprache zu gewinnen, die eine höhere Qualität als in
dem Fall hat, in dem ein algebraischer Anregungsvektorgenerator
als ein Zufalls-Codebuch verwendet wird.A
Another object of the present invention is to provide a
CELP speech codec / decoder, a speech signal communication system,
to provide a voice signal recording system, the above
Use excitation vector generator as a random codebook to
to gain a synthetic language that is of a higher quality than in
in which case an algebraic excitation vector generator
is used as a random codebook.
Ein
erster Aspekt der vorliegenden Erfindung besteht darin, einen Anregungsvektorgenerator
zu schaffen, der einen Impulsvektor-Erzeugungsabschnitt mit N Kanälen (N ≥ 1) zum Erzeugen
von Impulsvektoren, die jeweils eine Impulseinheit mit Vorzeichen
aufweisen, die für
ein Element auf einer Vektorachse vorhanden ist, einen Speicher-und-Auswählabschnitt,
dessen Funktion darin besteht, M (M > 1) Arten von Dispersionsmustern für jeden
Kanal zu speichern, und darin, eine bestimmte Art von Dispersionsmuster
aus M Arten gespeicherter Dispersionsmuster auszuwählen, einen
Impulsvektor-Dispersionsabschnitt, dessen Funktion darin besteht,
das aus dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
ausgewählte
Dispersionsmuster auf den von dem Impulsvektor-Generator ausgegebenen Impulsvektor
mit Vorzeichen zu falten, um N dispergierte Vektoren zu erzeugen,
sowie einen Abschnitt zum Addieren dispergierter Vektoren umfasst,
dessen Funktion darin besteht, N dispergierte Vektoren zu addieren,
die durch den Impulsvektor-Dispersionsabschnitt erzeugt werden,
um einen Anregungsvektor zu erzeu gen. Die Funktion zum algebraischen
Erzeugen von (N ≥ 1)
Impulsvektoren wird dem Impulsvektor-Generator verliehen, und der
Dispersionsmuster-Speicher-und-Auswähl-Abschnitt speichert die Dispersionsmuster,
die durch vorausgehendes Training der Form (Charakteristik) des
tatsächlichen
Vektors ermittelt werden, wodurch es möglich wird, den Anregungsvektor
zu erzeugen, der der Form des tatsächlichen Anregungsvektors im
Vergleich zu dem herkömmlichen
algebraischen Anregungsgenerator sehr ähnlich ist.One
The first aspect of the present invention is an excitation vector generator
to provide a pulse vector generation section with N channels (N ≥ 1) for generating
of impulse vectors, each with a signed pulse unit
have, for
an element is present on a vector axis, a store-and-select section,
whose function is to provide M (M> 1) types of dispersion patterns for each
Save channel, and in it, a certain type of dispersion pattern
from M types of stored dispersion patterns select one
Pulse vector dispersion section whose function is to
that from the dispersion pattern storage and selection section
selected
Dispersion pattern on the output from the pulse vector generator pulse vector
prefixed to produce N dispersed vectors,
and a portion for adding dispersed vectors,
whose function is to add N dispersed vectors,
generated by the pulse vector dispersion section,
to generate an excitation vector. The function to algebraic
Generating (N ≥ 1)
Pulse vectors are given to the pulse vector generator, and the
Dispersion pattern storage and selection section stores the dispersion patterns
by the previous training of the form (characteristic) of the
actual
Vector, which makes it possible, the excitation vector
to generate the shape of the actual excitation vector in the
Compared to the conventional one
algebraic excitation generator is very similar.
Des
Weiteren besteht der zweite Aspekt der vorliegenden Erfindung darin,
einen CELP-Sprachcodierer/-decodierer
zu schaffen, der den oben erwähnten
Anregungsvektorgenerator als das Zufalls-Codebuch verwendet und
der in der Lage ist, den Anregungsvektor zu erzeugen, der näher an der
tatsächlichen
Form ist als dies bei dem herkömmlichen
Sprachcodierer/-decodierer der Fall ist, der den algebraischen Anregungsgenerator
als das Zufalls-Codebuch verwendet. So können der Sprachcodierer/-decodierer,
das Sprachsignal-Kommunikationssystem und das Sprachsignal-Aufzeichnungssystem
geschaffen werden, die die synthetische Sprache ausgeben können, die
eine höhere
Qualität
hat.Of
Furthermore, the second aspect of the present invention is
a CELP speech codec / decoder
to create the one mentioned above
Excitation vector generator is used as the random codebook and
which is capable of generating the excitation vector closer to the
actual
Form is as this with the conventional one
Speech encoder / decoder is the case that the algebraic excitation generator
used as the random codebook. So the speech encoder / decoder,
the voice signal communication system and the voice signal recording system
can be created that can output the synthetic language that
a higher one
quality
Has.
Kurze Beschreibung
der ZeichnungenShort description
the drawings
1 ist
ein Funktions-Blockschaltbild eines herkömmlichen CELP-Sprachcodierers; 1 Fig. 10 is a functional block diagram of a conventional CELP speech coder;
2 ist
ein Funktions-Blockschaltbild eines herkömmlichen CELP-Sprachdecodierers; 2 Fig. 10 is a functional block diagram of a conventional CELP speech decoder;
3 ist
ein Funktions-Blockschaltbild eines Anregungsvektorgenerators gemäß einer
ersten Ausführung
der vorliegenden Erfindung; 3 Fig. 10 is a functional block diagram of an excitation vector generator according to a first embodiment of the present invention;
4 ist
ein Funktions-Blockschaltbild eines CELP-Sprachcodierers gemäß einer
zweiten Ausführung der
vorliegenden Erfindung; 4 Fig. 10 is a functional block diagram of a CELP speech coder according to a second embodiment of the present invention;
5 ist
ein Funktions-Blockschaltbild eines CELP-Sprachdecodierers gemäß der zweiten
Ausführung
der vorliegenden Erfindung; 5 Fig. 12 is a functional block diagram of a CELP speech decoder according to the second embodiment of the present invention;
6 ist
ein Funktions-Blockschaltbild eines CELP-Sprachcodierers gemäß einer
dritten Ausführung der
vorliegenden Erfindung 6 Fig. 10 is a functional block diagram of a CELP speech coder according to a third embodiment of the present invention
7 ist
ein Funktions-Blockschaltbild eines CELP-Sprachcodierers gemäß einer
vierten Ausführung der
vorliegenden Erfindung; 7 Fig. 12 is a functional block diagram of a CELP speech coder according to a fourth embodiment of the present invention;
8 ist
ein Funktions-Blockschaltbild eines CELP-Sprachcodierers gemäß einer
fünften
Ausführung der
vorliegenden Erfindung; 8th Fig. 10 is a functional block diagram of a CELP speech coder according to a fifth embodiment of the present invention;
9 ist
ein Funktions-Blockschaltbild einer Vektorquantisierungsfunktion
gemäß der fünften Ausführung der
vorliegenden Erfindung; 9 Fig. 10 is a functional block diagram of a vector quantization function according to the fifth embodiment of the present invention;
10 ist
eine Ansicht, die einen Algorithmus für eine Zielextraktion gemäß der fünften Ausführung der
vorliegenden Erfindung erläutert; 10 Fig. 12 is a view explaining an algorithm for target extraction according to the fifth embodiment of the present invention;
11 ist
ein Funktions-Blockschaltbild einer prädiktiven Quantisierung gemäß der fünften Ausführung der
vorliegenden Erfindung; 11 Fig. 10 is a functional block diagram of predictive quantization according to the fifth embodiment of the present invention;
12 ist
ein Funktions-Blockschaltbild einer prädiktiven Quantisierung gemäß einer
sechsten Ausführung
der vorliegenden Erfindung; 12 Fig. 10 is a functional block diagram of predictive quantization according to a sixth embodiment of the present invention;
13 ist
ein Funktions-Blockschaltbild eines CELP-Sprachcodierers gemäß einer
siebten Ausführung
der vorliegenden Erfindung; und 13 Fig. 10 is a functional block diagram of a CELP speech coder according to a seventh embodiment of the present invention; and
14 ist
ein Funktions-Blockschaltbild einer Verzerrungsberechnungseinrichtung
gemäß der siebten Ausführung der
vorliegenden Erfindung. 14 FIG. 12 is a functional block diagram of a distortion calculating device according to the seventh embodiment of the present invention.
Ausführungen
werden im Folgenden unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben.versions
will be described below with reference to the accompanying drawings
described.
Erste AusführungFirst execution
3 ist
ein Funktions-Blockschaltbild eines Anregungsvektorgenerators gemäß einer
ersten Ausführung
der vorliegenden Erfindung. 3 FIG. 12 is a functional block diagram of an excitation vector generator according to a first embodiment of the present invention. FIG.
Der
Anregungsvektorgenerator umfasst einen Impulsvektorgenerator 101 mit
einer Vielzahl von Kanälen,
einen Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 mit
Dispersionsmuster-Speicherabschnitten und Schalteinrichtungen, einen
Impulsvektor-Dispersionsabschnitt 103 zum
Dispergieren der Impulsvektoren und einen Abschnitt 104 für Addition
dispergierter Vektoren zum Addieren der dispergierten Impulsvektoren
für die
Vielzahl von Kanälen.The excitation vector generator comprises a pulse vector generator 101 with a plurality of channels, a dispersion pattern storage and selection section 102 with dispersion pattern storage sections and switching devices, a pulse vector dispersion section 103 for dispersing the momentum vectors and a section 104 for addition of dispersed vectors for adding the dispersed pulse vectors for the plurality of channels.
Der
Impulsvektorgenerator 101 umfasst N (in der vorliegenden
Ausführung
wird ein Fall, in dem N = 3, erläutert)
Kanäle
zum Erzeugen von Vektoren (im Folgenden als Impulsvektoren bezeichnet),
die jeweils eine Impulseinheit mit Vorzeichen haben, die für ein Element
auf einer Vektorachse vorhanden ist.The pulse vector generator 101 includes N (in the present embodiment, a case where N = 3 is explained) includes channels for generating vectors (hereinafter referred to as pulse vectors) each having a signed pulse unit existing for an element on a vector axis.
Der
Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 umfasst
Speicherabschnitte M1 bis M3 zum Speichern von M (in der vorliegenden
Ausführung
wird ein Fall, in dem M = 2, erläutert)
Arten von Dispersionsmustern für
jeden Kanal und Schalteinrichtungen SW1 bis SW2 zum Auswählen einer
Art Schaltmuster aus M Arten von Schaltmustern, die in den jeweiligen
Speicherabschnitten M1 bis M3 gespeichert sind.The Dispersion Pattern Storage and Selection Section 102 comprises memory sections M1 to M3 for storing M (in the present embodiment, a case in which M = 2 is explained) types of dispersion patterns for each channel and switching devices SW1 to SW2 for selecting a type of switching patterns from M types of switching patterns described in US Pat the respective memory sections M1 to M3 are stored.
Der
Impulsvektor-Dispersionsabschnitt 103 führt Faltung der von dem Impulsvektorgenerator 101 ausgegebenen
Impulsvektoren und der von dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 ausgegebenen
Dispersionsmuster in jedem Kanal durch, um so N dispergierte Vektoren
zu erzeugen.The pulse vector dispersion section 103 performs convolution of the pulse vector generator 101 output pulse vectors and that of the dispersion pattern storage and selection section 102 output dispersion patterns in each channel to produce N dispersed vectors.
Der
Abschnitt 104 zum Addieren dispergierter Vektoren addiert
N dispergierte Vektoren, die durch den Impulsvektor-Dispersionsabschnitt 103 erzeugt
werden und erzeugt so einen Anwendungsvektor 105.The section 104 for adding dispersed vectors, N adds dispersed vectors which are passed through the pulse vector dispersion section 103 are generated, thus creating an application vector 105 ,
Zu
bemerken ist, dass in der vorliegenden Ausführung ein Fall erläutert wird,
in dem der Impulsvektorgenerator 101 algebraisch N (N =
3) Impulsvektoren gemäß der in
der unten stehenden Tabelle 1 beschriebenen Regel erzeugt,.It should be noted that in the present embodiment, a case is explained in which the pulse vector generator 101 Algebraic N (N = 3) generates momentum vectors according to the rule described in Table 1 below.
TABELLE
1 TABLE 1
Eine
Funktion des wie oben beschrieben aufgebauten Anregungsvektorgenerators
wird im Folgenden erläutert.A
Function of the excitation vector generator constructed as described above
is explained below.
Der
Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 wählt ein
Dispersionsmuster jeweils einer Art aus Dispersionsmustern aus,
die in jeweils zwei Arten für
jeden Kanal gespeichert sind und gibt das Dispersionsmuster aus.
In diesem Fall wird die Zahl jedem Dispersionsmuster entsprechend
den Kombinationen ausgewählter
Dispersionsmuster zugewiesen (Gesamtzahl von Kombinationen: MN = 8).The Dispersion Pattern Storage and Selection Section 102 selects a dispersion pattern of each type of dispersion patterns stored in each of two kinds for each channel, and outputs the dispersion pattern. In this case, the number is assigned to each dispersion pattern according to the combinations of selected dispersion patterns (total number of combinations: M N = 8).
Dann
erzeugt der Impulsvektorgenerator 101 algebraisch die Impulsvektoren
mit Vorzeichen entsprechend der Anzahl von Kanälen (in dieser Ausführung drei)
gemäß der in
Tabelle 1 beschriebenen Regel.Then the pulse vector generator generates 101 algebraically sign the momentum vectors corresponding to the number of channels (three in this embodiment) according to the rule described in Table 1.
Der
Impulsvektor-Dispersionsabschnitt 103 erzeugt einen dispergierten
Vektor für
jeden Kanal durch Falten der durch den Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 ausgewählten Dispersionsmuster
mit den durch den Impulsvektorgenerator 101 erzeugten Impulsen
mit Vorzeichen auf Basis des folgenden Ausdrucks (5): wobei:
- n:
- 0 ~ L – 1,
- L:
- Länge des dispergierten Vektors,
- i:
- Kanalnummer,
- j:
- Nummer des Dispersionsmusters
(j = 1 ~ M),
- ci:
- dispergierter Vektor
für den
Kanal i,
- wij:
- Dispersionsmuster
für den
Kanal i, j, wobei die Vektorlänge
von wij (m) 2L-1 (m: -(L – 1)
~ L – 1)
beträgt und
es das Element Lij ist, das den Wert spezifizieren kann, und die
anderen Elemente sind Null,
- di:
- Impulsvektor mit Vorzeichen
für Kanal
i,
di = ± δ(n – pi), n
= 0 ~ L – 1,
und
- pi:
- Impulspositionskandidat
für den
Kanal i.
The pulse vector dispersion section 103 generates a dispersed vector for each channel by convolving them through the dispersion pattern storage and selection section 102 selected dispersion pattern with the by the pulse vector generator 101 signed pulses based on the following expression (5): in which: - n:
- 0 ~ L - 1,
- L:
- Length of the dispersed vector,
- i:
- Channel number,
- j:
- Number of the dispersion pattern (j = 1 ~ M),
- ci:
- dispersed vector for the channel i,
- w ij:
- Dispersion pattern for the channel i, j, where the vector length of wij (m) is 2L-1 (m: - (L-1) ~ L - 1) and it is the element Lij that can specify the value, and the others Elements are zero,
- di:
- Signed impulse vector for channel i, di = ± δ (n - pi), n = 0 ~ L - 1, and
- pi:
- Pulse position candidate for channel i.
Der
Abschnitt 104 zum Addieren dispergierter Vektoren addiert
drei durch den Impulsvektor-Dispersionsabschnitt 103 erzeugte
dispergierte Vektoren mit der folgenden Gleichung (6), um so den
Anregungsvektor 105 zu erzeugen. wobei
- c:
- Anregungsvektor,
- ci:
- dispergierter Vektor,
- i:
- Kanalnummer (i = 1
~ N), und
- n:
- Nummer des Vektorelements
(n = 0 ~ L – 1,
wobei zu beachten ist, dass L eine Länge des Anregungsvektors ist).
The section 104 for adding dispersed vectors adds three through the pulse vector dispersion section 103 generated dispersed vectors having the following equation (6) so as to excite the vector 105 to create. in which - c:
- Excitation vector,
- ci:
- dispersed vector,
- i:
- Channel number (i = 1 ~ N), and
- n:
- Number of the vector element (n = 0 ~ L - 1, it being noted that L is a length of the excitation vector).
Der
wie oben beschriebene aufgebaute Anregungsvektorgenerator kann verschiedene
Anregungsvektoren erzeugen, indem er Variationen zu den Kombinationen
der Dispersionsmuster, die der Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 auswählt, sowie
die Impulsposition und Polarität
in dem Impulsvektor addiert, den der Impulsvektorgenerator 101 erzeugt.The excitation vector generator constructed as described above can generate various excitation vectors by making variations on the combinations of the dispersion patterns that the dispersion pattern storage and selection section 102 and adding the pulse position and polarity in the pulse vector that the pulse vector generator adds 101 generated.
Damit
ist es mit dem wie oben beschrieben aufgebauten Anregungsvektorgenerator
möglich,
Bits zweier Arten von Informationen mit den Kombinationen von Dispersionsmustern,
die durch den Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 ausgewählt werden,
und den durch den Impulsvektorgenerator 101 erzeugten Kombinationen
der Formen (der Impulspositionen und Polaritäten) zuzuordnen. Die Indizes
dieses Anregungsvektorgenerators weisen eine Eins-zu-Eins-Entsprechung
zu zwei Arten von Informationen auf. Des Weiteren wird eine Trainingsverarbeitung
auf Basis tatsächlicher
Anregungsinformationen im Voraus ausgeführt, und die als Ergebnis des
Trainings zu gewinnenden Dispersionsmuster können in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 gespeichert
werden.Thus, with the excitation vector generator constructed as described above, it is possible to use bits of two kinds of information with the combinations of dispersion patterns passing through the dispersion pattern storage and selection section 102 are selected, and by the pulse vector generator 101 generated combinations of the shapes (the pulse positions and polarities) assign. The indices of this excitation vector generator have a one-to-one correspondence to two types of information. Further, training processing based on actual excitation information is executed in advance, and the dispersion patterns to be obtained as a result of the training may be included in the dispersion pattern storage and selection section 102 get saved.
Des
Weiteren wird der oben beschriebene Anregungsvektorgenerator als
der Anregungsinformationsgenerator des Sprachcodierers/-decodierers
verwendet, um zwei Arten von Indizes einschließlich des Kombinationsindex
von durch den Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 ausgewählten Dispersionsmustern,
und des durch den Impulsvektorgenerator 101 erzeugten Kombinationsindex
der Konfiguration (der Impulspositionen und Polaritäten) zu übertragen,
wodurch es möglich
wird, Informationen über
Zufalls-Anregung zu übertragen.Further, the excitation vector generator described above is used as the excitation information generator of the speech coder / decoder to form two kinds of indices including the combination index of the dispersion pattern storage and selection section 102 selected dispersion patterns, and by the pulse vector generator 101 generated combination index of the configuration (the pulse positions and polarities) to transmit, which makes it possible to transmit information about random excitation.
Des
Weiteren ermöglicht
der Einsatz des wie oben beschrieben aufgebauten Anregungsvektorgenerators
verglichen mit dem Einsatz des algebraischen Codebuchs, dass die
Konfiguration (Charakteristik) erzeugt wird, die tatsächlichen
Anregungsinformationen gleicht.Of
Further possible
the use of the excitation vector generator constructed as described above
compared with the use of the algebraic codebook that the
Configuration (characteristic) is generated, the actual
Excitation information is similar.
Die
oben beschriebene Ausführung
diente der Erläuterung
des Falls, in dem der Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 102 zwei
Arten von Dispersionsmustern pro Kanal speicherte. Ähnliche Funktion
und Wirkung lassen sich jedoch in einem Fall erzielen, in dem andere
Dispersionsmuster als die zwei Arten jedem Kanal zugeordnet werden.The embodiment described above was to explain the case where the dispersion pattern storage and selection section 102 stored two types of dispersion patterns per channel. However, similar function and effect can be obtained in a case where other dispersion patterns than the two types are assigned to each channel.
Des
Weiteren diente die oben stehende Ausführung der Erläuterung
des Falls, in dem der Impulsvektorgenerator 101 auf der
Struktur mit drei Kanälen
und der in Tabelle beschriebenen Impulserzeugungsregel basierte. Ähnliche
Funktion und Wirkung lassen sich jedoch in einem Fall erzielen,
in dem die Anzahl von Kanälen
anders ist, sowie in einem Fall, in dem eine andere Impulserzeugungsregel
als die in Tabelle 1 als eine Impulserzeugungsregel verwendet wird.Furthermore, the above embodiment has served to explain the case where the pulse vector generator 101 was based on the three-channel structure and the pulse generation rule described in Table. However, similar function and effect can be obtained in a case where the number of channels is different and in a case where a pulse generation rule other than that in Table 1 is used as a pulse generation rule.
Ein
Sprachsignal-Kommunikationssystem oder ein Sprachsignal-Aufzeichnungssystem
wird mit dem oben beschriebenen Anregungsvektorgenerator oder dem
Sprachcodierer/-decodierer
aufgebaut, so dass die Funktionen und Wirkungen erreicht werden,
die der oben beschriebene Anregungsvektorgenerator aufweist.One
Speech signal communication system or a speech signal recording system
is used with the above-described excitation vector generator or
Speech coder / decoder
built so that the functions and effects are achieved
which has the excitation vector generator described above.
Zweite AusführungSecond execution
4 zeigt
einen Funktionsblock einen CELP-Sprachcodierers gemäß der zweiten
Ausführung
und 5 zeigt einen Funktionsblock eines CELP-Sprachdecodierers. 4 FIG. 12 shows a functional block of a CELP speech coder according to the second embodiment and FIG 5 shows a functional block of a CELP speech decoder.
Der
CELP-Sprachcodierer gemäß der vorliegenden
Ausführung
wendet den Anregungsvektorgenerator, der in der ersten Ausführung erläutert wird,
auf das Zufalls-Codebuch des CELP-Sprachcodierers in 1 an.
Des Weiteren wendet der CELP-Sprachcodierer gemäß der vorliegenden Ausführung den
Anregungsvektorgenerator, der in der ersten Ausführung erläutert wird, auf das Zufalls-Codebuch
des CELP-Sprachdecodierers in 2 an. Daher
ist die Verarbeitung mit Ausnahme der Vektorquantisierungsverarbeitung
für Zufalls-Anregung
die gleiche wie die der Vorrichtungen in 1 und 2.
Die vorliegende Ausführung
dient der Erläuterung
des Sprachcodierers und des Sprachdecodierers mit besonderer Betonung
der Vektorquantisierungsverarbeitung für Zufalls-Anregung. Desgleichen
basiert ähnlich
wie bei der ersten Ausführung
die Erzeugung von Impulsvektoren auf Tabelle 1, wobei die Anzahl
von Kanälen
N 3 beträgt
und die Anzahl von Dispersionsmustern für einen Kanal M 2 beträgt.The CELP speech coder according to the present embodiment applies the excitation vector generator explained in the first embodiment to the random codebook of the CELP speech coder 1 at. Further, the CELP speech coder according to the present embodiment applies the excitation vector generator explained in the first embodiment to the random codebook of the CELP speech decoder 2 at. Therefore, the processing other than the vector quantization processing for random excitation is the same as that of the devices in FIG 1 and 2 , The present embodiment is illustrative of the speech coder and the speech decoder with particular emphasis on vector quantization processing for random excitation. Similarly, similarly to the first embodiment, the generation of pulse vectors is based on Table 1, where the number of channels is N 3 and the number of dispersion patterns for one channel is M 2.
Die
Vektorquantisierungsverarbeitung für Zufalls-Anregung in dem in 4 dargestellten
Sprachcodierer ist von dem Typ, bei dem zwei Arten von Indizes (Kombinationsindex
für Dispersionsmuster
und Kombinationsindex für
Impulspositionen und Impulspolaritäten) spezifiziert werden, um
Bezugswerte in Ausdruck (4) zu maximieren.The vector quantization processing for random excitation in the in 4 The speech coder shown is of the type in which two kinds of indices (combination index for dispersion patterns and combination index for pulse positions and pulse polarities) are specified to maximize reference values in expression (4).
In
einem Fall, in dem der Anregungsvektorgenerator, der in 3 dargestellt
ist, als ein Zufalls-Codebuch verwendet wird, werden der Kombinationsindex
für Dispersionsmuster
(acht Arten) und der Kombinationsindex für Impulsvektoren (der Fall,
in dem die Polarität
betrachtet wird: 16384 Arten) mit einer geschlossenen Schleife durchsucht.In a case where the excitation vector generator used in 3 is used as a random codebook, the combination index for dispersion patterns (eight kinds) and the combination index for momentum vectors (the case where the polarity is considered: 16384 kinds) are searched with a closed loop.
Aus
diesem Grund wählt
ein Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 215 eine
von zwei Arten von Dispersionsmustern aus, die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
selbst gespeichert sind und gibt die ausgewählten Dispersionsmuster an
einen Impulsvektordispersionsabschnitt 217 aus. Anschließend zeugt
ein Impulsvektorgenerator 216 algebraisch Impulsvektoren,
die der Anzahl von Kanälen
(in der vorliegenden Ausführung
drei) entsprechen, gemäß der in
Tabelle 1 beschriebenen Regel, und gibt die erzeugten Impulsvektoren
an den Impulsvektor-Dispersionsabschnitt 217 aus.For this reason, select a dispersion pattern storage and selection section 215 One of two types of dispersion patterns stored in the dispersion pattern storage and selection section itself, and outputs the selected dispersion patterns to a pulse vector dispersion section 217 out. Subsequently, a pulse vector generator is generated 216 algebraically impulse vectors corresponding to the number of channels (three in the present embodiment) according to the rule described in Table 1, and outputs the generated impulse vectors to the impulse vector dispersion section 217 out.
Der
Impulsvektor-Dispersionsabschnitt 217 erzeugt einen dispergierten
Vektor für
jeden Kanal durch Faltungsberechnung. Die Faltungsberechnung wird
auf Basis des Ausdruck (5) unter Verwendung der durch den Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 215 ausgewählten Dispersionsmuster
und der durch den Impulsvektorgenerator 216 erzeugten Impulse
mit Vorzeichen durchgeführt.The pulse vector dispersion section 217 generates a dispersed vector for each channel by convolution calculation. The convolution calculation is performed on the basis of the expression (5) by using the dispersion pattern storage and selection section 215 selected dispersion pattern and by the pulse vector generator 216 generated pulses carried out with signs.
Ein
Abschnitt 218 zum Addieren von Dispersionsvektoren addiert
die durch den Impulsvektor-Dispersionsabschnitt 217 ermittelten
dispergierten Vektoren und erzeugt so Anregungsvektoren (Kandidaten
für zufällige Codevektoren).A section 218 for adding dispersion vectors, the one added by the pulse vector dispersion section 217 determined dispersed vectors and thus generates excitation vectors (candidates for random codevectors).
Dann
berechnet eine Verzerrungsberechnungseinrichtung 206 Bewertungswerte
gemäß dem Ausdruck
(4) unter Verwendung des zufälligen
Codevektor-Kandidaten, der durch den Abschnitt 218 zum
Addieren dispergierter Vektoren ermittelt wird. Die Berechnung auf
Basis des Ausdrucks (4) wird in Bezug auf alle Kombinationen der
Impulsvektoren ausgeführt,
die auf Basis der Regel aus Tabelle 1 erzeugt werden. Dann werden von
den berechneten Werten der Kombinationsindex für Dispersionsmuster und der
Kombinationsindex für
Impulsvektoren (Kombination der Impulspositionen und der Polaritäten), die
ermittelt werden, wenn der Bewertungswert durch den Ausdruck (4)
ein Maximum erreicht, und der Maximalwert an einen Codenummer-Spezifizierungsabschnitt 213 ausgegeben.Then, a distortion calculating means calculates 206 Valuation values according to the expression (4) using the random codevector candidate provided by the section 218 for adding dispersed vectors. The calculation based on the expression (4) is performed with respect to all combinations of the momentum vectors generated based on the rule of Table 1. Then, among the calculated values, the combination index for dispersion patterns and the combination index for pulse vectors (combination of the pulse positions and the polarities) which are obtained when the evaluation value reaches a maximum by the expression (4) and the maximum value are sent to a code number specifying section 213 output.
Danach
wählt der
Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 215 die
Kombination für
Dispersionsmuster aus, die sich von der zuvor ausgewählten Kombination
für die
Dispersionsmuster unterscheidet. Bezüglich der Kombination für neu ausgewählte Dispersionsmuster
wird die Berechnung des Wertes von Ausdruck (4) bezüglich aller
Kombinationen der durch den Impulsvektorgenerator 216 auf
Basis der Regel aus Tabelle erzeugten Impulsvektoren ausgeführt. Dann
werden von den berechneten Werten der Kombinationsindex für Dispersionsmuster
und der Kombinationsindex für
Impulsvektoren, die ermittelt werden, wenn der Wert von Ausdruck
(4) ein Maximum erreicht, und der Maximalwert wieder an den Codeindex-Spezifizierungsabschnitt 213 ausgegeben.Thereafter, the dispersion pattern storage and selection section selects 215 the combination for dispersion patterns which differs from the previously selected combination for the dispersion patterns. With respect to the combination for newly selected dispersion patterns, the calculation of the value of expression (4) with respect to all combinations of those by the momentum vector generator becomes 216 executed on the basis of the rule generated from table impulse vectors. Then, of the calculated values, the combination index for dispersion patterns and the combination index for pulse vectors, which are obtained when the value of expression (4) reaches a maximum, and the maximum value are returned to the code index specifying section 213 output.
Die
oben beschriebenen Verarbeitung wird bezüglich aller Kombinationen (Gesamtzahl
von Kombinationen beträgt
in dieser Ausführung
acht) wiederholt, die aus den in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 215 gespeicherten
Dispersionsmustern ausgewählt
werden können.The above-described processing is repeated with respect to all the combinations (total number of combinations is eight in this embodiment) which are the ones in the dispersion pattern storage and selection section 215 stored dispersion patterns can be selected.
Der
Codeindex-Spezifizierungsabschnitt 213 vergleicht insgesamt
acht Maximalwerte, die durch die Verzerrungsberechnungseinrichtung 206 berechnet
werden, und wählt
den höchsten
Wert von allen aus. Dann spezifiziert der Codeindex-Spezifizierungsabschnitt 213 zwei
Arten von Kombinationsindizes (Kombinationsindex für Dispersionsmuster,
Kombinationsindex für
Impulsvektoren), die ermittelt werden, wenn der Höchstwert
erzeugt wird, und gibt die spezifizierten Kombinationsindizes an
einen Codeausgabeabschnitt 214 als einen Index des Zufalls-Codebuchs
aus.The code index specifying section 213 compares a total of eight maximum values generated by the distortion calculator 206 calculated and selects the highest value of all. Then, the code index specifying section specifies 213 two kinds of combination indices (combination index for dispersion patterns, combination index for impulse vectors) which are obtained when the maximum value is generated, and outputs the specified combination indices to a code output section 214 as an index of the random codebook.
Andererseits
empfängt
in dem Sprachdecodierer in 5 ein Code-Eingabeabschnitt 301 von
dem Sprachcodierer (4) gesendete Codes, zerlegt
die empfangenen Codes in den entsprechenden Index des LPC-Codebuchs,
den Index des adaptiven Codebuchs, den Index des Zufalls-Codebuchs
(aus zwei Arten des Kombinationsindex für Dispersionsmuster und des
Kombinationsindex für
Impulsvektoren zusammengesetzt) und den Index des Gewicht-Codebuchs.
Dann gibt der Code-Eingabeabschnitt 301 die zerlegten Indizes
an einen LPC (linear prediction coefficient)-Decoder 302,
ein adaptives Codebuch, ein Zufalls-Codebuch 304 und ein
Gewicht-Codebuch 305 aus. Zu bemerken ist, dass in der
Zufalls-Codenummer der Kombinationsindex für Dispersionsmuster an einen
Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 311 ausgegeben
wird und der Kombinationsindex für
Impulsvektoren an einen Impulsvektorgenerator 312 ausgegeben
wird.On the other hand, in the speech decoder receives in 5 a code input section 301 of the Speech coder ( 4 ), the received codes are divided into the corresponding index of the LPC codebook, the index of the adaptive codebook, the index of the random codebook (composed of two types of the combination index for dispersion patterns and the combination index for momentum vectors) and the index of weight codebook. Then there is the code input section 301 the decomposed indices to a LPC (linear prediction coefficient) decoder 302 , an adaptive codebook, a random codebook 304 and a weight codebook 305 out. Note that in the random code number, the combination index for dispersion patterns is applied to a dispersion pattern storage and selection section 311 and the combination index for impulse vectors to a pulse vector generator 312 is issued.
Dann
decodiert der LPC-Decodierer 302 die LPC-Nummer, ermittelt
die Koeffizienten für
ein Synthesefilter 309 und gibt die ermittelten Koeffizienten
an das Synthesefilter 309 aus. In dem adaptiven Codebuch 303 wird
ein adaptiver Codevektor, der dem Index des adaptiven Codebuchs
entspricht, ausgelesen.Then the LPC decoder decodes 302 the LPC number, determines the coefficients for a synthesis filter 309 and gives the determined coefficients to the synthesis filter 309 out. In the adaptive codebook 303 An adaptive codevector corresponding to the index of the adaptive codebook is read out.
In
dem Zufalls-Codebuch 304 liest der Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 311 die Dispersionsmuster
aus, die dem Kombinationsindex für
Dispersionsimpulse in jedem Kanal entsprechen, und gibt das Ergebnis
an einen Impulsvektor-Dispersionsabschnitt 313 aus.
Der Impulsvektorgenerator 312 erzeugt die Impulsvektoren,
die dem Kombinationsindex für
Impulsvektoren entsprechen und der Anzahl von Kanälen entsprechen,
und gibt das Ergebnis an den Impulsvektor-Dispersionsabschnitt 313 aus.
Der Impulsvektor-Dispersionsabschnitt 313 erzeugt einen
dispergierten Vektor für
jeden Kanal durch Falten der von dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 311 empfangenen
Dispersionsmuster auf die von dem Impulsvektorgenerator 312 empfangenen
Impulse mit Vorzeichen. Dann werden die erzeugten dispergierten
Vektoren an einen Abschnitt 314 zum Addieren von Dispersionsvektoren
ausgegeben. Der Abschnitt 314 zum Addieren von Dispersionsvektoren
addiert die dispergierten Vektoren der jeweiligen Kanäle, die
durch den Impulsvektor-Dispersionsabschnitt 313 erzeugt
werden, und erzeugt so einen zufälligen
Codevektor.In the random codebook 304 reads the dispersion pattern storage and selection section 311 the dispersion patterns corresponding to the combination index for dispersion pulses in each channel, and outputs the result to a pulse vector dispersion section 313 out. The pulse vector generator 312 generates the pulse vectors corresponding to the combination index for pulse vectors corresponding to the number of channels, and outputs the result to the pulse vector dispersion section 313 out. The pulse vector dispersion section 313 generates a dispersed vector for each channel by convoluting the one from the dispersion pattern storage and selection section 311 received dispersion pattern to that of the pulse vector generator 312 received pulses with sign. Then, the generated dispersed vectors become a portion 314 for adding dispersion vectors. The section 314 for adding dispersion vectors, the dispersed vectors of the respective channels added by the pulse vector dispersion section 313 are generated, thus creating a random codevector.
Dann
werden eine adaptive Codebuch-Verstärkung und eine Zufalls-Codebuch-Verstärkung, die
dem Index des Gewicht-Codebuchs entsprechen, aus dem Gewicht-Codebuch 305 gelesen.
Anschließend
wird in einem Abschnitt 306 zum Gewichten adaptiver Codevektoren
der adaptive Codevektor mit der adaptiven Codebuch-Verstärkung multipliziert.
Desgleichen wird in einem Abschnitt 307 zum Gewichten zufälliger Codevektoren
der zufällige
Codevektor mit der Zufalls-Codebuch-Verstärkung multipliziert. Dann werden
diese Ergebnisse an einen Addierabschnitt 308 ausgegeben.Then, an adaptive codebook gain and a random codebook gain corresponding to the index of the weight codebook are extracted from the weight codebook 305 read. Subsequently, in a section 306 for adaptive codevector weighting, the adaptive codevector is multiplied by the adaptive codebook gain. Likewise, in a section 307 for weighting random codevectors, the random codevector is multiplied by the random codebook gain. Then these results are sent to an adding section 308 output.
Der
Addierabschnitt 308 addiert die oben aufgeführten mit
den Verstärkungen
multiplizierten zwei Codevektoren, um einen Anregungsvektor zu erzeugen.
Dann gibt der Addierabschnitt 308 den erzeugten Anregungsvektor
an das adaptive Codebuch 303 aus, um einen Puffer zu aktualisieren,
oder an das Synthesefilter 309, um das Synthesefilter anzuregen.The adding section 308 adds the above-mentioned two code vectors multiplied by the gains to produce an excitation vector. Then there is the adding section 308 the generated excitation vector to the adaptive codebook 303 to update a buffer or to the synthesis filter 309 to stimulate the synthesis filter.
Das
Synthesefilter 309 wird durch den von dem Addierabschnitt 308 ermittelten
Anregungsvektor angeregt und reproduziert eine synthetische Sprache 310.
Des Weiteren aktualisiert das adaptive Codebuch 303 den
Puffer mit dem von dem Addierabschnitt 308 empfangenen
Anregungsvektor.The synthesis filter 309 is by that of the adding section 308 determined excitation vector excited and reproduces a synthetic language 310 , Furthermore, the adaptive codebook updates 303 the buffer with that of the adding section 308 received excitation vector.
In
diesem Fall wird davon ausgegangen, dass die durch vorausgehendes
Training ermittelten Dispersionsmuster für jeden Kanal in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
in 4 und 5 gespeichert sind, so dass
ein Wert der Kostenfunktion kleiner wird, wobei die Kostenfunktion
ein Ausdruck (7) der Verzerrungsbewertung ist, in dem der in Ausdruck
(6) beschriebene Anregungsvektor für c in Ausdruck (2) eingesetzt
ist. wobei
- x:
- Zielvektor zum Spezifizieren
des Index des Zufalls-Codebuchs,
- gc:
- Zufalls-Codebuch-Verstärkung,
- N:
- Impulsantwort-Faltungsmatrix
für Synthesefilter,
- c:
- zufälliger Codevektor,
- ci:
- Kanalnummer (ii =
1 ~ N)
- j:
- Nummer des Dispersionsmusters
(j = 1 ~ M),
- ci:
- Dispersionsvektor
für Kanal
i,
- wij:
- Dispersionsmuster
für Kanäle i-ter,
j-ter Art,
- di:
- Impulsvektor für Kanal
i, und
- L:
- Länge des Anregungsvektors (N
= 0 ~ L – 1
).
In this case, it is assumed that the dispersion patterns obtained by prior training for each channel in the dispersion pattern storage and selection section in FIG 4 and 5 are stored so that a value of the cost function becomes smaller, the cost function being an expression (7) of the distortion score by substituting the excitation vector for c in expression (2) described in expression (6). in which - x:
- Target vector for specifying the index of the random codebook,
- gc:
- Random codebook gain,
- N:
- Impulse response convolution matrix for synthesis filters,
- c:
- random codevector,
- ci:
- Channel number (ii = 1 ~ N)
- j:
- Number of the dispersion pattern (j = 1 ~ M),
- ci:
- Dispersion vector for channel i,
- w ij:
- Dispersion pattern for i-th, j-th type channels,
- di:
- Pulse vector for channel i, and
- L:
- Length of the excitation vector (N = 0 ~ L - 1).
Die
oben stehende Ausführung
diente der Erläuterung
des Falls, in dem der durch vorausgehendes Training ermittelten
Dispersionsmuster M für
M für jeden
Kanal in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt so gespeichert
wurden, dass der Wert des Kastenfunktions-Ausdrucks (7) kleiner
wird.The
above version
served the explanation
of the case in which the one determined by prior training
Dispersion pattern M for
M for each
Channel is stored in the dispersion pattern storage and selection section so
were that the value of the box function expression (7) smaller
becomes.
Jedoch
müssen
tatsächlich
nicht alle M Dispersionsmuster durch Training ermittelt werden.
Wenn wenigstens eine Art Dispersionsmuster, die durch Training ermittelt
wird, gespeichert ist, ist es möglich,
die Funktionen und Wirkungen zum Verbessern der Qualität der synthetisierten
Sprache zu erzielen.however
have to
indeed
not all M dispersion patterns are determined by training.
If at least one kind of dispersion pattern, determined by training
is saved, it is possible
the functions and effects to improve the quality of the synthesized
To achieve language.
Des
Weiteren erläuterte
die oben aufgeführte
Ausführung
den Fall, in dem aus allen Kombinationen von Dispersionsmustern,
die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
gespeichert sind, und allen Kombinationen von Impulsvektorpositions-Kandidaten,
die durch den Impulsvektorgenerator erzeugt werden, der Kombinationsindex,
der den Bezugswert von Ausdruck (4) maximierte, durch die geschlossene Schleife
spezifiziert wurde. Die gleichen Funktionen und Wirkungen können jedoch
erzielt werden, indem eine Vorauswahl auf Basis anderer Parameter
(ideale Verstärkung für adaptiven
Codevektor usw.) ausgeführt
wird, die ermittelt wurden, bevor der Index des Zufalls-Codebuchs
spezifiziert wurde, oder durch eine Suche mit offener Schleife.Of
Further explained
the above listed
execution
the case where out of all combinations of dispersion patterns,
in the dispersion pattern storage and selection section
stored and all combinations of impulse vector position candidates,
generated by the impulse vector generator, the combination index,
which maximized the reference value of expression (4) through the closed loop
was specified. However, the same functions and effects can
be achieved by pre-selection based on other parameters
(ideal gain for adaptive
Code vector, etc.)
which was detected before the index of the random codebook
specified or through an open-loop search.
Darüber hinaus
wird ein Sprachsignal-Kommunikationssystem oder ein Sprachsignal-Aufzeichnungssystem
mit dem oben beschriebenen Sprachcodierer/-decodierer aufgebaut,
um so die Wirkungen und Effekte zu erzielen, die der Anregungsvektorgenerator
hat, der in der ersten Ausführung
beschrieben ist.Furthermore
becomes a voice signal communication system or a voice signal recording system
constructed with the speech coder / decoder described above,
so as to achieve the effects and effects that the excitation vector generator
that's in the first run
is described.
Dritte AusführungThird execution
6 ist
ein Funktionsblock eines CELP-Sprachcodierers gemäß der dritten
Ausführung.
In dieser Ausführung
wird in dem CELP-Sprachcodierer, der den Anregungsvektorgenerator
der ersten Ausführung
in dem Zufalls-Codebuch verwendet, eine Vorauswahl für Dispersionsmuster,
die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt gespeichert sind,
unter Verwendung des Wertes einer idealen adaptiven Codebuchverstärkung ausgeführt, die
vor dem Suchen des Index des Zufalls-Codebuchs ermittelt wird. Die
anderen Teile der Peripherie des Zufalls-Codebuchs sind die gleichen
wie die des CELP-Sprachcodierers in 4. Daher
erläutert
die vorliegende Ausführung
die Vektorquantisierungsbearbeitung für Zufallsanregung in dem CELP-Sprachcodierer
in 6. 6 is a functional block of a CELP speech coder according to the third embodiment. In this embodiment, in the CELP speech coder using the excitation vector generator of the first embodiment in the random codebook, a preselection for dispersion patterns stored in the dispersion pattern storage and selection section is made using the value of an ideal adaptive Codebook Gain, which is determined before finding the index of the random codebook. The other parts of the periphery of the random codebook are the same as those of the CELP speech coder in FIG 4 , Therefore, the present embodiment explains the vector quantization processing for random excitation in the CELP speech coder in FIG 6 ,
Dieser
CELP-Sprachcodierer umfasst ein adaptives Codebuch 407,
einen Abschnitt zum Gewichten einer adaptiven Codebuch-Verstärkung, ein
Zufalls-Codebuch 408, das durch den in der ersten Ausführung erläuterten
Anregungsvektorgenerator gebildet wird, einen Abschnitt 410 zum
Gewichten einer Zufalls-Codebuch-Verstärkung, ein Synthesefilter 405,
eine Verzerrungsberechnungseinrichtung 406, einen Index-Spezifzierungsabschnitt 413,
einen Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 415,
einen Impulsvektorgenerator 416, einen Impulsvektor-Dispersionsabschnitt 417,
einen Abschnitt 418 zum Addieren dispergierter Vektoren
sowie einen Verzerrungsleistungs-Feststellabschnitt 419.This CELP speech coder includes an adaptive codebook 407 , an adaptive codebook gain weighting section, a random codebook 408 which is formed by the excitation vector generator explained in the first embodiment, a section 410 for weighting a random codebook gain, a synthesis filter 405 , a distortion calculator 406 , an index specifying section 413 , a dispersion pattern storage and selection section 415 , a pulse vector generator 416 , a pulse vector dispersion section 417 , a section 418 for adding dispersed vectors, and a distortion power detection section 419 ,
In
diesem Fall wird gemäß der obenstehenden
Ausführung
davon ausgegangen, dass wenigstens eine von M (M ≥ 2) Arten
von Dispersionsmustern, die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 415 gespeichert
sind, das Dispersionsmuster ist, das aus dem Ergebnis durch Durchführen eines
vorausgehenden Trainings zum Re duzieren von Quantisierungsverzerrung
ermittelt wird, die bei Vektorquantisierungsverarbeitung für Zufalls-Anregung
erzeugt wird.In this case, according to the above embodiment, it is assumed that at least one of M (M ≥ 2) types of dispersion patterns included in the dispersion pattern storage and selection section 415 which is the dispersion pattern obtained from the result by performing a previous training for reducing quantization distortion generated in vector quantization processing for random excitation.
Bei
dieser Ausführung
wird, um die Erläuterung
zu vereinfachen, angenommen, dass die Anzahl N von Kanälen des
Impulsvektorgenerators 3 beträgt
und die Anzahl von Arten von Dispersionsmustern für jeden
Kanal, die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
gespeichert sind, 2 beträgt.
Des Weiteren wird davon ausgegangen, dass eine von M (M = 2) Arten
von Dispersionsmustern ein Dispersionsmuster ist, das durch das
oben erwähnte
Training ermittelt wird, und das andere eine Zufallsvektorsequenz
(im Folgenden als Zufallsmuster bezeichnet) ist, die durch einen
Zufallsvektor-Generator
erzeugt wird. Des Weiteren ist bekannt, dass das Dispersionsmuster,
das mit dem oben erwähnten
Training ermittelt wird, eine relativ kurze Länge und eine impulsartige Form
wie in w11 in 3 hat.In this embodiment, to simplify the explanation, it is assumed that the number N of channels of the pulse vector generator is 3 and the number of types of dispersion patterns for each channel stored in the dispersion pattern storage and selection section is 2 is. Furthermore It is assumed that one of M (M = 2) types of dispersion patterns is a dispersion pattern obtained by the above-mentioned training, and the other is a random vector sequence (hereinafter referred to as a random pattern) generated by a random vector generator becomes. Furthermore, it is known that the dispersion pattern obtained with the above-mentioned training has a relatively short length and a pulse-like shape as in w11 in FIG 3 Has.
In
dem CELP-Sprachcodierer in 6 wird Verarbeiten
zum Spezifizieren des Index des adaptiven Codebuchs vor Vektorquantisierung
von Zufalls-Anregung ausgeführt.
Daher ist es, wenn Vektorquantisierungsverarbeitung von Zufalls-Anregung
ausgeführt
wird, möglich,
auf den Index des aktiven Codebuchs und die ideale adaptive Codebuch-Verstärkung (temporär festgelegt)
Bezug zu nehmen. In dieser Ausführung
wird die Vorauswahl für
Dispersionsmuster unter Verwendung des Wertes der idealen aktiven
Codebuch-Verstärkung
ausgeführt.In the CELP speech coder in 6 Processing is performed to specify the index of the adaptive codebook before vector quantization of random excitation. Therefore, when vector quantization processing of random excitation is performed, it is possible to refer to the index of the active codebook and the ideal adaptive codebook gain (temporarily set). In this embodiment, the pre-selection for dispersion patterns is performed using the value of the ideal active codebook gain.
Das
heißt,
zuerst wird der ideale Wert der adaptiven Codebuch-Verstärkung, der
in dem Codeindex-Spezifizierungsabschnitt 413 unmittelbar
nach der Suche nach dem Index des adaptiven Codebuchs gespeichert
wird, an die Verzerrungsberechnungseinrichtung 406 ausgegeben.
Die Verzerrungsberechnungseinrichtung 406 gibt die von
dem Codeindex-Spezifizierungsabschnitt 413 empfangene adaptive
Codebuch-Verstärkung
an den Abschnitt 419 zum Feststellen der adaptiven Codebuch-Verstärkung aus.That is, first, the ideal value of the adaptive codebook gain included in the code index specifying section 413 is stored immediately after the search for the index of the adaptive codebook, to the distortion calculation means 406 output. The distortion calculator 406 gives the from the code index specifying section 413 received adaptive codebook gain to the section 419 for detecting the adaptive codebook gain.
Der
Abschnitt 419 zum Feststellen adaptiver Verstärkung führt einen
Vergleich zwischen dem von der Verzerrungsberechnungseinrichtung 409 empfangenen
Wert der idealen adaptiven Codebuch-Verstärkung und einem voreingestellten
Schwellenwert durch. Dann sendet der Abschnitt 419 zum
Feststellen der adaptiven Codebuch-Verstärkung ein Steuersignal für eine Vorauswahl
zu dem Dispersionsmuster-Speicher-und-Auswähl- Abschnitt 415 auf Basis des
Ergebnisses des Vergleichs. Der Inhalt des Steuersignals wird im
Folgenden erläutert.The section 419 for determining adaptive gain performs a comparison between that of the distortion calculating means 409 received value of the ideal adaptive codebook gain and a preset threshold. Then the section sends 419 for detecting the adaptive codebook gain, a control signal for preselecting to the dispersion pattern storage and selection section 415 based on the result of the comparison. The content of the control signal will be explained below.
Das
heißt,
wenn die adaptive Codebuch-Verstärkung
als Ergebnis des Vergleichs größer ist
als der Schwellenwert, erzeugt das Steuersignal einen Befehl zum
Auswählen
des Dispersionsmusters, das durch das vorausgehende Training ermittelt
wurde, um die Quantisierungsverzerrung bei Vektorquantisierungsverarbeitung
für Zufalls-Anregungen
zu reduzieren. Des Weiteren erzeugt, wenn die adaptive Code-Verstärkung als Ergebnis
des Vergleichs nicht größer ist
als der Schwellenwert, das Steuersignal einen Befehl zum Ausführen der
Vorauswahl für
das Dispersionsmuster, das sich von dem Dispersionsmuster unterscheidet,
das als Ergebnis des vorausgehenden Trainings ermittelt wird.The
is called,
if the adaptive codebook gain
as a result of the comparison is greater
as the threshold, the control signal generates a command to
Choose
of the dispersion pattern determined by the previous training
to quantization distortion in vector quantization processing
for random suggestions
to reduce. Furthermore, when the adaptive code gain is generated as a result
the comparison is not larger
as the threshold, the control signal commands to execute the
Preselection for
the dispersion pattern, which differs from the dispersion pattern,
which is determined as a result of the previous training.
Dadurch
kann in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 419 das
Dispersionsmuster von M (M = 2) Arten, das die jeweiligen Kanäle speichern,
entsprechend dem Wert der idealen adaptiven Codebuch-Verstärkung vorausgewählt werden,
so dass die Anzahl von Kombinationen von Dispersionsmustern erheblich
reduziert werden kann. Dadurch fällt
die Notwendigkeit der Verzerrungsberechnung für alle Kombinationen der Dispersionsmuster
weg, und es wird möglich,
die Vektorquantisierungsverarbeitung für Zufalls-Anregung mit einer
geringen Menge an Berechnungen effizient durchzuführen.Thereby, in the dispersion pattern storage and selection section 419 the dispersion pattern of M (M = 2) types storing the respective channels are preselected according to the value of the ideal adaptive codebook gain, so that the number of combinations of dispersion patterns can be significantly reduced. Thereby, the necessity of the distortion calculation for all combinations of the dispersion patterns is eliminated, and it becomes possible to efficiently perform the vector quantization processing for random excitation with a small amount of computation.
Des
Weiteren ist der Zufalls-Codevektor impulsartig geformt, wenn der
Wert der adaptiven Verstärkung
groß ist
(dieses Segment wird als stimmhaft bestimmt) und ist willkürlich geformt,
wenn der Wert der adaptiven Verstärkung gering ist (dieses Segment
wird als stimmlos bestimmt). Daher kann, da der Zufalls-Codevektor
mit einer geeigneten Form für
das stimmhafte Segment des Sprachsignals und das stimmlose Segment
verwendet werden kann, die Qualität der synthetischen Sprache
verbessert werden.Of
Furthermore, the random codevector is pulse-shaped when the
Value of adaptive gain
is great
(this segment is determined to be voiced) and is arbitrarily shaped
when the value of the adaptive gain is low (this segment
is determined as unvoiced). Therefore, since the random codevector
with a suitable form for
the voiced segment of the speech signal and the unvoiced segment
can be used, the quality of the synthetic language
be improved.
Aufgrund
der Vereinfachung der Erläuterung
erläuterte
die vorliegende Ausführung
einschränkend
den Fall, in dem die Anzahl in von Kanälen des Impulsvektorgenerators
3 betrug und die Anzahl M von Arten der Dispersionsmuster pro Kanal,
die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt gespeichert sind,
2 betrug. Ähnliche
Wirkungen und Funktionen können
jedoch in einem Fall erzielt werden, in dem die Anzahl von Kanälen des
Impulsvektorgenerators und die Anzahl von Arten der Dispersionsmuster
pro Kanal, die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
gespeichert sind, sich von dem oben erwähnten Fall unterscheiden.by virtue of
the simplification of the explanation
explained
the present embodiment
restrictive
the case where the number in channels of the pulse vector generator
3 and the number M of types of the dispersion patterns per channel,
which are stored in the dispersion pattern storage and selection section,
2 was. Similar
Effects and functions can
however, be achieved in a case where the number of channels of the
Pulse vector generator and the number of types of dispersion patterns
per channel included in the dispersion pattern storage and selection section
stored are different from the above-mentioned case.
Des
Weiteren erläuterte
die oben stehende Ausführung
aufgrund der Vereinfachung der Erläuterung den Fall, in dem eine
von M Arten (M = 2) von Dispersionsmustern, die in jedem Kanal gespeichert
sind, ein Dispersionsmuster war, das mit dem oben erwähnten Training
ermittelt wurde, und das andere ein Zufalls-Muster war. Wenn jedoch
wenigstens eine Art Dispersionsmuster, die mit dem Training ermittelt
wird, für
jeden Kanal gespeichert wird, können
anstelle des oben erläuterten
Falls gleiche Wirkungen und Funktionen erwartet werden.Further, the above embodiment explained the case in which one of M types (M = 2) of dispersion patterns stored in each channel was a dispersion pattern obtained with the above-mentioned training, and for simplification of explanation the other was a random pattern. However, if at least one kind of dispersion pattern obtained with the training is stored for each channel, the same effects and functions may be expected instead of the above-mentioned case become.
Des
Weiteren erläuterte
die vorliegende Ausführung
den Fall, in dem Informationen über
große
oder kleine adaptive Codebuch-Verstärkung in Einrichtungen zum
Durchführen
von Vorauswahl der Dispersionsmuster verwendet wurden. Wenn jedoch
andere Parameter, die einen kurzzeitigen Charakter der Eingangssprache
zeigen, zusätzlich
zu Informationen über
große
oder kleine adaptiven Codebuch-Verstärkung verwendet werden, sind
weiterhin die gleichen Wirkungen und Funktionen zu erwarten.Of
Further explained
the present embodiment
the case where information about
size
or small adaptive codebook gain in facilities for
Carry out
of pre-selection of the dispersion patterns were used. But when
other parameters that have a short-term character of the input language
show, in addition
for information about
size
or small adaptive codebook gain are used
continue to expect the same effects and functions.
Des
Weiteren wird ein Sprachsignal-Kommunikationssystem oder ein Sprachsignal-Aufzeichnungssystem
mit dem oben beschriebenen Sprachcodierer/-decodierer aufgebaut,
so dass die Funktionen und Wirkungen erzielt werden, die der in
der ersten Ausführung
beschriebene Anregungsvektorgenerator hat.Of
Another is a voice signal communication system or a voice signal recording system
constructed with the speech coder / decoder described above,
so that the functions and effects are achieved that in
the first version
has described excitation vector generator.
Bei
der Erläuterung
der oben stehenden Ausführung
wurde das Verfahren erläutert,
bei dem die Vorauswahl des Dispersionsmusters unter Verwendung der
idealen adaptiven Codebuch-Verstärkung
des aktuellen Rahmens ausgeführt
wurde, wenn Vektorquantisierungsverarbeitung von Zufalls-Anregung
durchgeführt wurde.
Die gleiche Struktur kann jedoch auch in einem Fall eingesetzt werden,
in dem eine decodierte adaptive Codebuch-Verstärkung, die in dem vorangehenden
Rahmen ermittelt wird, anstelle der idealen adaptiven Codebuch-Verstärkung in
dem aktuellen Rahmen verwendet wird. In diesem Fall können ebenfalls
die gleichen Wirkungen erzielt werden.at
the explanation
the above embodiment
the procedure was explained
in which the preselection of the dispersion pattern using the
ideal adaptive codebook gain
of the current frame
when vector quantization processing of random excitation
was carried out.
However, the same structure can also be used in a case
in which a decoded adaptive codebook gain, described in the foregoing
Frame is determined instead of the ideal adaptive codebook gain in
the current frame is used. In this case too can
the same effects are achieved.
Vierte AusführungFourth version
7 ist
ein funktionales Blockschaltbild eines CELP-Sprachcodierers gemäß der vierten
Ausführung. In
dieser Ausführung
wird in dem CELP-Sprachcodierer, der den Anregungsvektorgenerator
der ersten Ausführung
in dem Zufalls-Codebuch verwendet, eine Vorauswahl für eine Vielzahl
von Dispersionsmustern, die in dem Dispersionsmuster-Speicher-und-Auswählabschnitt
gespeichert sind, unter Verwendung verfügbarer Informationen zur Zeit
von Vektorquantisierungsverarbeitung für Zufalls-Anregungen ausgeführt. Kennzeichnend
ist, dass ein Wert einer Codierverzerrung (durch ein Signal-Rausch-Verhältnis ausgedrückt), der
beim Spezifizieren des Index des adaptiven Codebuches erzeugt wird,
als ein Bezug der Vorauswahl verwendet wird. 7 Fig. 10 is a functional block diagram of a CELP speech coder according to the fourth embodiment. In this embodiment, in the CELP speech coder using the excitation vector generator of the first embodiment in the random codebook, a preselection is made for a plurality of dispersion patterns stored in the dispersion pattern storage and selection section using available information at a time of vector quantization processing for random excitations. It is characteristic that a value of coding distortion (expressed by a signal-to-noise ratio) generated in specifying the index of the adaptive codebook is used as a reference of the preselection.
Zu
bemerken ist, dass die anderen Abschnitte der Zufalls-Codebuch-Peripherie
die gleichen sind wie die des CELP-Sprachcodierers in 4.
Daher erläutert
die vorliegende Ausführung
speziell die Vektorquantisierungsverarbeitung für Zufalls-Anregung.Note that the other portions of the random codebook peripheral are the same as those of the CELP speech coder in FIG 4 , Therefore, the present embodiment specifically explains the vector quantization processing for random excitation.
Dieser
CELP-Sprachcodierer umfasst, wie in 7 dargestellt,
ein adaptives Codebuch 507, einen Abschnitt 509 zum
Gewichten der adaptiven Codebuch-Verstärkung, ein Zufalls-Codebuch 508,
das durch den in der ersten Ausführung
erläuterten
Anregungsvektorgenerator gebildet wird, einen Abschnitt 510 zum
Gewichten der Zufalls-Codebuch-Verstärkung, ein
Synthesefilter 505, eine Verzerrungsberechnungseinrichtung 506,
einen Codeindex-Spezifizierungsabschnitt 513, einen Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 515,
einen Impulsvektorgenerator 516, einen Impulsvektor-Dispersionsabschnitt 517,
einen Abschnitt 518 zum Addieren dispergierten Vektoren,
und einen Codierverzerrungs-Feststellabschnitt 519.This CELP speech coder includes, as in 7 shown, an adaptive codebook 507 , a section 509 for weighting the adaptive codebook gain, a random codebook 508 which is formed by the excitation vector generator explained in the first embodiment, a section 510 for weighting the random codebook gain, a synthesis filter 505 , a distortion calculator 506 , a code index specifying section 513 , a dispersion pattern storage and selection section 515 , a pulse vector generator 516 , a pulse vector dispersion section 517 , a section 518 for adding dispersed vectors, and a coding distortion detecting section 519 ,
In
diesem Fall wird gemäß der oben
stehenden Ausführung
angenommen, dass wenigstens eine von M (M = ≧ 2) Arten von Dispersionsmustern,
die in dem Dispersionsmuster-Speicher-und-Auswählabschnitt 515 gespeichert
sind, das Zufalls-Muster ist.In this case, according to the above embodiment, it is assumed that at least one of M (M = ≧ 2) types of dispersion patterns included in the dispersion pattern storage and selection section 515 stored, which is random pattern.
In
der oben stehenden Ausführung
beträgt,
um die Erläuterung
zu vereinfachen, die Anzahl N von Kanälen des Impulsvektorgenerators
3, und die Anzahl M von Arten der Dispersionsmuster, die in dem
Dispersionsmuster-Speicher-und-Auswählabschnitt gespeichert sind,
beträgt
2 pro Kanal. Des Weiteren ist eine von M (M = 2) Arten von Dispersionsmustern
das Zufalls-Muster, und die andere ist das Dispersionsmuster, das
als Ergebnis von vorausgehendem Training zur Reduzierung von Quantisierungsverzerrung
ermittelt wird, die bei Vektorquantisierungsverarbeitung für Zufalls-Anregungen
erzeugt wird.In
the above embodiment
is,
for the explanation
to simplify, the number N of channels of the pulse vector generator
3, and the number M of types of the dispersion patterns used in the
Dispersion pattern storage and selection section are stored,
is
2 per channel. Further, one of M (M = 2) types of dispersion patterns
the random pattern, and the other is the dispersion pattern, the
as a result of previous training to reduce quantization distortion
which is used in vector quantization processing for random excitations
is produced.
In
dem CELP-Sprachcodierer in 7 wird Verarbeitung
zum Spezifizieren des Index des adaptiven Codebuches durchgeführt, bevor
Vektorquantisierungsbearbeitung für Zufalls-Anregung durchgeführt wird. Daher
ist es, wenn Vektorquantisierungsverarbeitung von Zufalls-Anregung
ausgeführt
wird, möglich,
auf den Index des adaptiven Codebuchs, die ideale adaptive Codebuch-Verstärkung (temporär festgelegt)
und den Zielvektor Bezug zu nehmen, um das adaptive Codebuch zu
suchen. In dieser Ausführung
wird die Vorauswahl für
Dispersionsmuster unter Verwendung der Codierverzerrung (als Signal-Rausch-Verhältnis ausgedrückt) des
adaptiven Codebuchs ausgeführt,
die aus den drei oben stehenden Informationen berechnet werden kann.In the CELP speech coder in 7 Processing for specifying the index of the adaptive codebook is performed before vector quantization processing for random excitation is performed. Therefore, when vector quantization processing of random excitation is performed, it is possible to refer to the index of the adaptive codebook, the ideal adaptive codebook gain (temporarily set), and the target vector to search the adaptive codebook. In this embodiment, the preselection for dispersion patterns is made using the coding distortion (expressed as a signal-to-noise ratio). of the adaptive codebook, which can be calculated from the three above information.
Das
heißt,
der Index des adaptiven Codebuchs und der Wert der adaptiven Codebuch-Verstärkung (ideale
Verstärkung),
die in dem Codeindex-Spezifizierungsabschnitt 513 unmittelbar
nach der Suche nach dem adaptiven Codebuch gespeichert wird, wird
an die Verzerrungsberechnungseinrichtung 506 ausgegeben. Die
Verzerrungsberechnungseinrichtung 506 berechnet die Codierverzerrung
(Signal-Rausch-Verhältnis),
die durch Spezifizieren des Index des adaptiven Codebuchs erzeugt
wird, unter Verwendung des Index des adaptiven Codebuchs, der von
dem Codeindex-Spezifizierungsabschnitt 513 empfangen wird,
der adaptiven Codebuch-Verstärkung
und des Zielvektors zum Suchen des adaptiven Codebuches. Dann gibt
die Verzerrungsberechnungseinrichtung 506 den berechneten
Signal-Rausch-Wert an den Codierverzerrungs-Feststellabschnitt 519 aus.That is, the index of the adaptive codebook and the value of the adaptive codebook gain (ideal gain) included in the code index specifying section 513 is stored immediately after the search for the adaptive codebook is sent to the distortion calculator 506 output. The distortion calculator 506 calculates the coding distortion (signal-to-noise ratio) generated by specifying the index of the adaptive codebook using the index of the adaptive codebook provided by the code index specifying section 513 is received, the adaptive codebook gain and the target vector for searching the adaptive codebook. Then, the distortion calculator gives 506 the calculated signal-to-noise value to the coding distortion detection section 519 out.
Der
Codierverzerrungs-Feststellabschnitt 519 führt einen
Vergleich zwischen dem von der Verzerrungsberechnungseinrichtung 506 empfangenen
Signal-Rausch-Wert und einem voreingestellten Schwellenwert durch.
Dann sendet der Codierverzerrungs-Feststellabschnitt 519 auf
Basis des Ergebnisses des Vergleichs ein Steuersignal für eine Vorauswahl
an den Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 515. Der
Inhalt des Steuersignals wird im Folgenden erläutert.The coding distortion detection section 519 performs a comparison between that of the distortion calculator 506 received signal-to-noise value and a preset threshold. Then, the coding distortion detection section sends 519 on the basis of the result of the comparison, a control signal for a preselection to the dispersion pattern storage and selection section 515 , The content of the control signal will be explained below.
Das
heißt,
wenn der Signal-Rausch-Wert als Ergebnis des Vergleichs größer ist
als der Schwellenwert, erzeugt das Steuersignal einen Befehl zum
Auswählen
des Dispersionsmusters, das durch das vorausgehende Training ermittelt
wird, um die Quantisierungsverzerrung zu reduzieren, die durch Codieren
des Zielvektors zum Suchen des Zufalls-Codebuchs erzeugt wird. Des Weiteren
erzeugt das Steuersignal, wenn der Signal-Rausch-Wert als Ergebnis des Vergleichs
kleiner ist als der Schwellenwert, einen Befehl zum Auswählen der
nicht impulsartigen Zufalls-Muster.The
is called,
when the signal-to-noise ratio is greater as a result of the comparison
as the threshold, the control signal generates a command to
Choose
of the dispersion pattern determined by the previous training
in order to reduce the quantization distortion caused by coding
of the destination vector for searching the random codebook. Furthermore
generates the control signal when the signal-to-noise value as a result of the comparison
is less than the threshold, a command to select the
non-impulsive random pattern.
Dadurch
wird in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt 515 nur
eine Art aus M (M = 2) Arten von Dispersionsmustern, die die jeweiligen
Kanäle
speichern, vorausgewählt,
so dass die Anzahl von Kombinationen von Dispersionsmustern erheblich
reduziert werden kann. Dadurch fällt
die Notwendigkeit der Verzerrungsberechnung für alle Kombinationen der Dispersionsmuster
weg, und es wird möglich,
den Index des Zufalls-Codebuchs effizient mit einer geringen Menge
an Berechnungen zu spezifizieren.Thereby, in the dispersion pattern storage and selection section 515 only one kind of M (M = 2) types of dispersion patterns storing the respective channels are preselected, so that the number of combinations of dispersion patterns can be significantly reduced. This eliminates the need for distortion calculation for all combinations of the dispersion patterns, and makes it possible to specify the index of the random codebook efficiently with a small amount of computation.
Des
Weiteren ist der Zufalls-Codevektor impulsartig geformt, wenn der
Signal-Rausch-Wert
groß ist, und
ist nicht impulsartig geformt, wenn der Signal-Rausch-Wert klein
ist. Daher kann, da die Form des Zufalls-Codevektors entsprechend
der Kurzzeitcharakteristik des Sprachsignals verändert werden kann, die Qualität der synthetischen
Sprache verbessert werden.Of
Furthermore, the random codevector is pulse-shaped when the
Signal-to-noise value
is big, and
is not pulse shaped if the signal-to-noise value is small
is. Therefore, since the shape of the random codevector may be appropriate
the short-term characteristic of the speech signal can be changed, the quality of the synthetic
Language to be improved.
Aufgrund
der Vereinfachung der Erläuterung
erläuterte
die vorliegende Ausführung
eingeschränkt
den Fall, in dem die Anzahl N von Kanälen des Impulsvektorgenerators
3 betrug und die Anzahl M von Arten der Dispersionsmuster, die in
dem Dispersionsmuster-Speicher-und-Auswählabschnitt gespeichert sind,
pro Kanal 2 betrug. Gleiche Wirkungen und Funktionen können jedoch
in einem Fall erzielt werden, in dem die Anzahl von Kanälen des
Impulsvektorgenerators und die Anzahl von Arten der Dispersionsmuster
pro Kanal, die in dem Dispersionsmuster-Speicher-und-Auswähl-Abschnitt
gespeichert sind, sich von dem oben erwähnten Fall unterscheiden.by virtue of
the simplification of the explanation
explained
the present embodiment
limited
the case where the number N of channels of the pulse vector generator
3 and the number M of types of the dispersion patterns disclosed in
are stored in the dispersion pattern storage and selection section,
per channel was 2. Same effects and functions can however
be achieved in a case where the number of channels of the
Pulse vector generator and the number of types of dispersion patterns
per channel included in the dispersion pattern storage and selection section
stored are different from the above-mentioned case.
Des
Weiteren erläuterte
aufgrund der Vereinfachung der Erläuterung die oben stehende Ausführung den
Fall, in dem es sich bei einer von M Arten (M = 2) von Dispersionsmustern,
die in jedem Kanal gespeichert sind, um Dispersionsmuster handelte,
mit dem oben erwähnten
vorausgehenden Training ermittelt wurden, und es sich bei dem andere
um Zufalls-Muster handelte. Wenn jedoch wenigstens eine Art Zufalls-Dispersionsmuster
für jeden
Kanal gespeichert wird, können
anstelle des oben erläuterten
Falls die gleichen Wirkungen und Funktionen erwartet werden.Of
Further explained
for simplicity of explanation, the above embodiment
Case in which one of M types (M = 2) of dispersion patterns,
stored in each channel to handle dispersion patterns,
with the above mentioned
previous training, and the other
acted by random pattern. However, if at least one kind of random dispersion pattern
for each
Channel can be saved
instead of the one explained above
If the same effects and functions are expected.
Weiterhin
erläuterte
die vorliegende Ausführung
den Fall, in dem nur Informationen über starke und geringe Codierverzerrung
(durch den Signal-Rausch-Wert ausgedrückt), die durch Spezifizieren
des Index des adaptiven Codebuchs erzeugt wurde, in Einrichtungen
zum Vorauswählen
des Dispersionsmusters verwendet wurden. Wenn jedoch andere Informationen,
die die Kurzzeitcharakteristik des Sprachsignals richtig darstellen,
zusätzlich
dazu verwendet werden, können
weiterhin die gleichen Wirkungen und Funktionen erwartet werden.Farther
explained
the present embodiment
the case where only information about strong and low coding distortion
(expressed by the signal-to-noise value) specified by
the index of the adaptive codebook was created in facilities
to preselection
of the dispersion pattern were used. However, if other information,
which correctly represent the short-term characteristic of the speech signal,
additionally
can be used
continue to expect the same effects and functions.
Des
Weiteren wird ein Sprachsignal-Kommunikationssystem oder ein Sprachsignal-Aufzeichnungssystem
mit dem oben erwähnten
Sprachcodierer/-decodierer aufgebaut, um so die Funktionen und Wirkungen zu
erzielen, die der in der ersten Ausführung beschriebene Anregungsvektorgenerator
hat. Die folgenden Ausführungen
5–7 bilden
keinen Teil der beanspruchten Erfindung. Sie dienen der Veranschaulichung
optionaler Verfahren, die bei Sprachcodierung und -decodierung gemäß dem CELP-Modell
verwendet werden können.Further, a speech signal communication system or a speech signal recording system is constructed with the above-mentioned speech coder / decoder so as to have the functions and effects to achieve the excitation vector generator described in the first embodiment. The following embodiments 5-7 form no part of the claimed invention. They serve to illustrate optional methods that can be used in speech coding and decoding according to the CELP model.
Fünfte AusführungFifth version
8 zeigt
einen Funktionsblock eines CELP-Sprachcodierers gemäß der fünften Ausführung. Bei diesem
CELP-Sprachcodierer wird in einem LPC-Analysierabschnitt 600 eine
Selbstkorrelationsanalyse und eine LPC-Analyse eingegebener Sprachdaten 601 durchgeführt, um
so LPC-Koeffizienten zu ermitteln. Des Weiteren werden die ermittelten
LPC-Koeffizienten quantisiert, um den Index des LDC-Codebuchs zu
ermitteln, und der ermittelte Index wird decodiert, um so decodierte
LPC-Koeffizienten zu ermitteln. 8th FIG. 12 shows a functional block of a CELP speech coder according to the fifth embodiment. FIG. In this CELP speech coder, in an LPC parsing section 600 a self-correlation analysis and an LPC analysis of input speech data 601 performed to determine LPC coefficients. Further, the determined LPC coefficients are quantized to obtain the index of the LDC codebook, and the obtained index is decoded so as to obtain decoded LPC coefficients.
Dann
greift ein Anregungsgenerator 602 Anregungs-Abtastwerte
heraus, die in einem adaptiven Codebuch 603 und einem Zufalls-Codebuch 640 (ein
adaptiver Codevektor (oder adaptive Anregung) und Zufalls-Codevektor
(oder adaptive Anregung) und Zufalls-Codevektor (oder eine Zufalls-Anregung))
gespeichert sind und sendet sie zu einem LPC-Synthetisierabschnitt 605.Then an excitation generator attacks 602 Excitation samples stored in an adaptive codebook 603 and a random codebook 640 (An adaptive code vector (or adaptive excitation) and random code vector (or adaptive excitation) and random code vector (or random excitation)) are stored and sent to an LPC synthesizing section 605 ,
Der
LPC-Synthetisierabschnitt 605 filtert zwei Anregungen,
die durch den Anregungsgenerator 602 ermittelt wurden,
mit dem decodierten LPC-Koeffizienten, der durch den LPC-Analysierabschnitt 600 ermittelt wurde
und ermittelt so zwei synthetisierte Anregungen.The LPC synthesizing section 605 filters two excitations by the excitation generator 602 with the decoded LPC coefficient determined by the LPC parsing section 600 was determined and thus determines two synthesized suggestions.
In
einem Komparator 606 wird die Beziehung zwischen zwei synthetisierten
Anregungen, die durch den LPC-Synthetisierabschnitt 605 ermittelt
wurden, und der Eingangssprache 601 analysiert, um einen
optimalen Wert (optimale Verstärkung)
von zwei synthetisierten Anregungen zu ermitteln. Dann werden die
jeweiligen synthetisierten Anregungen, deren Leistung durch den
optimalen Wert gesteuert wird, addiert, um eine integrierte synthetisierte
Sprache zu gewinnen, und eine Abstandsberechnung zwischen der integrierten
synthetisierten Sprache und der Eingangssprache wird ausgeführt.In a comparator 606 is the relationship between two synthesized excitations made by the LPC synthesizing section 605 and the input language 601 analyzed to determine an optimal value (optimal gain) of two synthesized excitations. Then, the respective synthesized excitations whose power is controlled by the optimum value are added to obtain an integrated synthesized speech, and a distance calculation between the integrated synthesized speech and the input speech is carried out.
Die
Abstandsberechnung zwischen jeder von vielen integrierten synthetisierten
Sprechvorgängen,
die durch Anregen des Anregungsgenerator 602 und dem LPC-Synthetisierabschnitt 605 gewonnen
werden, und der eingegebenen Sprache 601 wird in Bezug
auf alle Anregungs-Abtastwerte des adaptiven Codebuchs 603 und
des Zufalls-Codebuchs 604 ausgeführt. Dann wird ein Index des
Anregungs-Abtastwertes, der sich ergibt, wenn der Wert den geringsten
der Abstände
hat, die aus dem Ergebnis ermittelt werden können, bestimmt.The distance calculation between each of many integrated synthesized speech processes, by exciting the excitation generator 602 and the LPC synthesizing section 605 and the language entered 601 with respect to all excitation samples of the adaptive codebook 603 and the random codebook 604 executed. Then, an index of the excitation sample that results when the value has the smallest of the distances that can be determined from the result is determined.
Des
Weiteren werden die ermittelte optimale Verstärkung, der Index des Anregungs-Abtastwertes und zwei
Anregungen, die auf den Index reagieren, zu einem Parameter-Codierabschnitt 607 gesendet.
In dem Parameter-Codierabschnitt 607 wird die optimale
Verstärkung
codiert, um einen Verstärkungs-Code
zu gewinnen, und der Index des LPC-Codbuchs sowie der Index des Anregungs-Abtastwertes
werden jeweils zu einem Übertragungsweg 608 gesendet.Further, the obtained optimum gain, the index of the excitation sample and two excitations responding to the index become a parameter coding section 607 Posted. In the parameter coding section 607 the optimum gain is encoded to obtain a gain code, and the index of the LPC codebook and the index of the excitation sample become a transmission path, respectively 608 Posted.
Des
Weiteren wird ein Ist-Anregungssignal aus zwei Anregungen in Reaktion
auf den Verstärkungs-Code
und den Index erzeugt, und das erzeugte Anregungssignal wird in
dem adaptiven Codebuch 603 gespeichert, und der alte Anregungs-Abtastwert
wird gleichzeitig verworfen.Furthermore, an actual excitation signal is generated from two excitations in response to the amplification code and the index, and the generated excitation signal is stored in the adaptive codebook 603 are stored, and the old excitation sample is simultaneously discarded.
Zu
bemerken ist, dass in dem LPC-Synthetisierabschnitt 605 ein
Filter für
wahrnehmbare Gewichtung, das lineare Prädiktivkoeffizienten verwendet,
ein Hochfrequenz-Verbesserungsfilter, ein Langzeit-Prädiktivfilter
(durch Ausführen
einer Langzeit-Prädiktionsanalyse
eingegebener Sprache hergestellt) im Allgemeinen eingesetzt werden.
Des Weiteren wird im Allgemeinen die Anregungs-Suche nach dem adaptiven
Codebuch und dem Zufalls-Codebuch in Segmenten (als Teilrahmen bezeichnet)
ausgeführt,
in die ein Analysesegment weiter unterteilt wird.It should be noted that in the LPC synthesizing section 605 a perceptual weighting filter using linear predictive coefficients, a high-frequency enhancement filter, a long-term predictive filter (made by performing long-term prediction analysis of input speech) are generally used. Furthermore, in general, the excitation search for the adaptive codebook and the random codebook is performed in segments (called subframes) into which an analysis segment is further subdivided.
Im
Folgenden wird die Vektorquantisierung für die LPC-Koeffizienten in
dem LPC-Analysierabschnitt 600 gemäß dieser Ausführung erläutert.Hereinafter, the vector quantization for the LPC coefficients in the LPC analyzing section will be described 600 explained according to this embodiment.
9 zeigt
einen Funktionsblock zum Realisieren eines Vektorquantisierungsalgorithmus,
der in dem LPC-Analysierabschnitt 600 auszuführen ist.
Der Vektorquantisierungsblock, der in 9 dargestellt
ist, umfasst einen Zielextraktionsabschnitt 702, einen
Quantisierabschnitt 703, eine Verzerrungsberechnungseinrichtung 704,
einen Komparator 705, einen Decodiervektor-Speicherabschnitt 707 und
einen Vektorglättungsabschnitt 708. 9 FIG. 12 shows a functional block for implementing a vector quantization algorithm included in the LPC analyzing section. FIG 600 is to execute. The vector quantization block used in 9 includes a target extraction section 702 , a quantizer section 703 , a distortion calculator 704 , a comparator 705 , a decoding vector storage section 707 and a vector smoothing section 708 ,
In
dem Zielextraktionsabschnitt 702 wird ein Quantisierungsziel
auf Basis eines Eingangsvektors 701 berechnet. Im Folgenden
wird ein Ziel-Extrahierverfahren im Einzelnen erläutert.In the target extraction section 702 becomes a quantization target based on an input vector 701 calculated. In the following, a target extracting method will be explained in detail.
In
dieser Ausführung
umfasst der "Eingangsvektor" zwei Arten von Vektoren,
von denen jeweils einer ein Parameter-Vektor ist, der durch Analysieren
des aktuellen Rahmens ermittelt wird, und der andere ein Parameter-Vektor
ist, der aus einem zukünftigen
Rahmen auf gleiche Weise ermittelt wird. Der Zielextraktionsabschnitt 702 berechnet
ein Quantisierungs-Ziel unter Verwendung des oben erwähnten Eingangsvektors
und eines decodierten Vektors des vorangehenden Rahmens, der in
dem Abschnitt 707 zum Speichern decodierter Vektoren gespeichert
ist. Ein Beispiel des Berechnungsverfahrens wird mit der folgenden
Gleichung (8) dargestellt. X(i) = {St(i) + p(d(i)
+ St+1(i)/2}/(1 + p) (8)wobei
- X(i):
- Zielvektor,
- i:
- Nummer des Vektorelements,
- St(i),
St+1(i):
- Eingangsvektor,
- t:
- Zeit (Rahmennummer),
- p:
- Gewichtungskoeffizient
(unveränderlich),
und
- d(i):
- decodierter Vektor
des vorausgehenden Rahmens.
In this embodiment, the "input vector" includes two types of vectors, one of which is a parameter vector obtained by analyzing the current frame, and the other is a parameter vector which identifies in a similar manner from a future frame becomes. The target extraction section 702 calculates a quantization target using the above-mentioned input vector and a decoded vector of the previous frame included in the section 707 is stored for storing decoded vectors. An example of the calculation method is represented by the following equation (8). X (i) = {S t (i) + p (d (i) + S t + 1 (i) / 2} / (1 + p) (8) in which - X (i):
- Target vector,
- i:
- Number of the vector element,
- S t (i), S t + 1 (i):
- Input vector,
- t:
- Time (frame number),
- p:
- Weighting coefficient (constant), and
- d (i):
- decoded vector of the previous frame.
Im
Folgenden wird ein Konzept des oben beschriebenen Ziel-Extrahierverfahrens
dargestellt. Bei einer typischen Vektorquantisierung wird Parameter-Vektor
St(i) als Ziel X(i) verwendet, und eine
Anpassung wird durch den folgenden Ausdruck (9) durchgeführt: wobei
- En:
- Abstand zu n-ten Codevektor,
- X(i):
- Zielvektor,
- Cn(i):
- Codevektor,
- n:
- Nummer des Codevektors,
- i:
- Ordnung des Vektors,
und
- l:
- Länge des Vektors.
The following is a concept of the above-described target extracting method. In a typical vector quantization, parameter vector S t (i) is used as the target X (i) and an adaptation is made by the following expression (9): in which - en:
- Distance to nth codevector,
- X (i):
- Target vector,
- Cn (i):
- Codevector
- n:
- Number of the code vector,
- i:
- Order of the vector, and
- l:
- Length of the vector.
Daher
führt bei
der herkömmlichen
Vektorquantisierung die Codierverzerrung direkt zur Verschlechterung
der Sprachqualität.
Dies war ein großes
Problem bei der Codierung mit ultraniedriger Bit-Rate, bei der die Codierverzerrung
selbst dann in gewissem Maße
nicht vermieden werden kann, wenn Maßnahmen, wie beispielsweise
Prädiktions-Vektorquantisierung
ergriffen werden.Therefore
leads
the conventional one
Vector quantization the coding distortion directly to the deterioration
the voice quality.
This was a big one
Problem with ultra-low bit rate coding, in which the coding distortion
even then, to some extent
can not be avoided if measures, such as
Predictive vector quantization
be taken.
Aus
diesem Grund sollte gemäß der vorliegenden
Ausführung
einem mittleren Punkt des decodierten Vektors als einer Richtung
Aufmerksamkeit geschenkt werden, in der der Benutzer nicht ohne
weiteres einen Fehler wahrnimmt, und der decodierte Vektor wird
auf den mittleren Punkt induziert, um so verbesserte Wahrnehmung
zu realisieren. In dem oben stehenden Fall wird eine Charakteristik
verwendet, bei der zeitliche Kontinuität nicht ohne weiteres als Wahrnehmungsverschlechterung
zu hören
ist.Out
For this reason, according to the present
execution
a middle point of the decoded vector as a direction
Attention be paid, in which the user is not without
Another perceives an error and becomes the decoded vector
induced to the middle point, so improved perception
to realize. In the above case, a characteristic becomes
used in temporal continuity not readily as perceptual deterioration
to listen
is.
Im
Folgenden wird der oben beschriebene Zustand unter Bezugnahme auf 10 erläutert, die
einen Vektorraum zeigt.Hereinafter, the above-described state will be described with reference to FIG 10 which illustrates a vector space.
Zunächst wird
angenommen, dass der decodierte Vektor eines vorausgehenden Rahmens
d(i) ist und ein zukünftiger
Parametervektor St+1(i) ist (obwohl ein
zukünftiger
codierter Vektor eigentlich wünschenswert ist,
wird der zukünftige
Parametervektor für
den zukünftigen
codierten Vektor verwendet, da das Codieren nicht in dem aktuellen
Rahmen ausgeführt
werden kann. In diesem Fall ist, obwohl der Codevektor Cn(i): (1)
näher an
dem Parametervektor St(i) liegt als der Codevektor Cn(i): (2), der
Codevektor Cn(i): (2) tatsächlich
nahe an einer Linie, die d(i) und St+1(i)
verbindet. Aus diesem Grund ist die Verschlechterung verglichen
mit (1) nicht ohne weiteres zu hören.
Daher wird bei Verwendung der oben erwähnten Charakteristik, wenn
das Ziel X(i) als ein Vektor eingestellt ist, der an der Position
angeordnet ist, an der sich das Ziel X(i) dem mittleren Punkt zwischen
d(i) und St+1(i) von St(i) in gewissem Maße nähert, der
decodierte Vektor in eine Richtung induziert, in der der Grad an
Verzerrung nur geringfügig
wahrnehmbar ist.First, it is assumed that the decoded vector of a previous frame is d (i) and a future parameter vector is S t + 1 (i) (although a future coded vector is actually desirable, the future parameter vector will be used for the future encoded vector since In this case, although the code vector Cn (i): (1) is closer to the parameter vector St (i) than the code vector Cn (i): (2), the code vector is Cn (i): (2) is actually close to a line connecting d (i) and S t + 1 (i) For this reason, the deterioration is not readily heard as compared with (1) of the above-mentioned characteristic when the target X (i) is set as a vector located at the position where the target X (i) is at the middle point between approaches d (i) and S t + 1 (i) of St (i) to some extent, inducing the decoded vector in a direction in which the degree of distortion is only slightly perceptible.
Dann
kann gemäß dieser
Ausführung
die Bewegung des Ziels realisiert werden, indem der folgende Bewertungsausdruck
(10) verwendet wird. X(i)
= {St(i) + p(d(i) + St+1(i)/2}/(1
+ p) (10)wobei
- X(i):
- Zielvektor,
- i:
- Nummer des Vektorelements,
- St(i),
St+1(i):
- Eingangsvektor,
- t:
- Zeit (Rahmennummer),
- p:
- Gewichtungskoeffzient
(unveränderlich),
und
- d(i):
- decodierter Vektor
des vorausgehenden Rahmens.
Then, according to this embodiment, the movement of the target can be realized by using the following evaluation expression (10). X (i) = {S t (i) + p (d (i) + S t + 1 (i) / 2} / (1 + p) (10) in which - X (i):
- Target vector,
- i:
- Number of the vector element,
- S t (i), S t + 1 (i):
- Input vector,
- t:
- Time (frame number),
- p:
- Weighting coefficient (constant), and
- d (i):
- decoded vector of the previous frame.
Die
erste Hälfte
von Ausdruck (10) ist ein allgemeiner Bewertungsausdruck, und die
zweite Hälfte
ist eine Wahrnehmungskomponente. Um die Quantisierung mit dem oben
stehenden Bewertungsausdruck auszuführen, wird der Bewertungsausdruck
in Bezug auf jedes X(i) differenziert, und das differenzierte Ergebnis wird
auf 0 gesetzt, so dass Ausdruck (8) erzeugt werden kann.The
first half
of expression (10) is a general evaluation expression, and the
second half
is a perceptual component. To quantize with the above
to execute a standing evaluation expression becomes the evaluation expression
with respect to each X (i) differentiates, and becomes the differentiated result
set to 0 so that expression (8) can be generated.
Es
ist zu bemerken, dass der Gewichtungskoeffizient p eine positive
Konstante ist. Das heißt,
wenn der Gewichtungskoeffizient p 0 beträgt, gleicht das Ergebnis der
allgemeinen Quantisierung, wenn der Gewichtungskoeffizient p unendlich
ist, befindet sich das Ziel vollständig am Mittelpunkt. Wenn der
Gewichtskoeffizient p zu groß ist,
ist das Ziel weit von dem Parameter St(i)
des aktuellen Rahmens getrennt, so dass die Artikulation wahrnehmbar
verringert wird. Das Testhören
decodierter Sprache bestätigt,
dass eine gute Leistung mit 0,5 < p < 1,0 erreicht werden
kann.It should be noted that the weighting coefficient p is a positive constant. That is, when the weighting coefficient p is 0, the result of the general quantization is equal to when the weighting coefficient p is infinite, the target is completely at the midpoint. If the weight coefficient p is too large, the target is far from the parameter S t (i) of the current frame, so that the articulation is perceptibly reduced. Test listening of decoded speech confirms that good performance can be achieved with 0.5 <p <1.0.
Dann
wird in dem Quantisierungsabschnitt 703 das Quantisierungsziel,
das mit dem Zielextraktionsabschnitt 702 bestimmt wird,
quantisiert, um einen Vektorcode und einen decodierten Vektor zu
ermitteln, und der ermittelte Vektorindex sowie der decodierte Vektor
werden zu der Verzerrungsberechnungseinrichtung 704 gesendet.Then in the quantization section 703 the quantization target associated with the target extraction section 702 is determined, quantized to obtain a vector code and a decoded vector, and the detected vector index and the decoded vector become the distortion calculating means 704 Posted.
Es
ist zu bemerken, dass eine prädiktive
Vektorquantisierung als ein Quantisierungsverfahren in dieser Ausführung eingesetzt
wird. Im Folgenden wird die prädiktive
Vektorquantisierung erläutert.It
It should be noted that a predictive
Vector quantization is used as a quantization method in this embodiment
becomes. The following is the predictive
Vector quantization explained.
11 zeigt
einen Funktionsblock der prädiktiven
Vektorquantisierung. Die prädiktive
Vektorquantisierung ist ein Algorithmus, bei dem die Prädiktion
unter Verwendung des Vektors (synthetisierter Vektor) ausgeführt wird,
der durch Codieren und Decodieren in der Vergangenheit ermittelt
wird, und der prädiktive
Fehlervektor quantisiert wird. 11 shows a functional block of predictive vector quantization. Predictive vector quantization is an algorithm in which the prediction is performed using the vector (synthesized vector) obtained by encoding and decoding in the past, and the predictive error vector is quantized.
Ein
Vektor-Codebuch 800, das eine Vielzahl von Hauptabtastwerten
(Codevektoren) der Prädiktions-Fehlervektoren
speichert, wird im Voraus hergestellt. Dies wird mit einem LBG-Algorithmus
(IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. COM-28, NO. 1, S. 84–95, JANUAR
1980) hergestellt, der auf einer großen Anzahl von Vektoren basiert,
die durch Analysieren einer großen
Menge an Sprachdaten ermittelt werden.A vector codebook 800 which stores a plurality of main samples (code vectors) of the prediction error vectors is prepared in advance. This is done with an LBG algorithm (IEEE TRANSACTIONS ON COMMUNICATIONS, VOL COM-28, NO.1, pp. 84-95, JANUARY 1980) based on a large number of vectors obtained by analyzing a large amount Language data are determined.
Ein
Vektor 801 für
ein Quantisierungs-Ziel wird durch einen Prädiktionsabschnitt 802 vorhergesagt. Die
Vorhersage wird durch die bereits decodierten Vektoren ausgeführt, die
in einem Status-Speicherabschnitt 803 gespeichert sind,
und der ermittelte prädiktive
Fehlervektor wird zu einer Abstandsberechnungseinrichtung 804 gesendet.
Hier werden als eine Form der Prädiktion
eine erste Prädiktionsordnung
und ein unveränderlicher
Koeffizient verwendet. Dann wird ein Ausdruck zum Berechnen des
prädiktiven
Fehlervektors bei der Verwendung der oben beschriebenen Vorhersage
mit dem folgenden Ausdruck (11) dargestellt. Y(i) = –X(i) – βD(i) (11)wobei
- Y(i):
- prädikiver Fehlervektor,
- X(i):
- Zielvektor,
- β:
- Prädiktionskoeffizient (skalar)
- D(i):
- decodierter Vektor
eines vorausgehenden Rahmens, und
- i:
- Vektorordnung.
A vector 801 for a quantization target is determined by a prediction section 802 predicted. The prediction is performed by the already decoded vectors stored in a status storage section 803 are stored, and the determined predictive error vector becomes a distance calculating means 804 Posted. Here, as a form of prediction, a first prediction order and a fixed coefficient are used. Then, an expression for calculating the predictive error vector when using the above-described prediction is represented by the following expression (11). Y (i) = -X (i) -βD (i) (11) in which - Y (i):
- predicative error vector,
- X (i):
- Target vector,
- β:
- Prediction coefficient (scalar)
- D (i):
- decoded vector of a preceding frame, and
- i:
- Vector fine.
In
dem oben stehenden Ausdruck hat der Prädiktionskoeffizient β im Allgemeinen
einen Wert von 0 < β < 1.In
the above expression has the prediction coefficient β in general
a value of 0 <β <1.
Dann
berechnet die Abstandsberechnungseinrichtung 804 den Abstand
zwischen dem von dem Prädiktionsabschnitt 802 ermittelten
Prädiktiv-Fehlervektor
und den im Codebuch 800 gespeicherten Codevektor. Ein Ausdruck
zum Ermitteln des oben genannten Abstandes ist mit dem folgenden
Ausdruck (12) dargestellt: wobei
- En:
- Abstand zu dem n-ten
Codevektor,
- Y(i):
- Prädiktiv-Fehlervektor,
- Cn(i):
- Codevektor,
- n:
- Codevektorzahl,
- i:
- Vektorordnung, und
- l:
- Vektorlänge.
Then the distance calculation means calculates 804 the distance between that from the prediction section 802 determined predictive error vector and the codebook 800 stored codevector. An expression for determining the above-mentioned distance is represented by the following expression (12): in which - en:
- Distance to the nth codevector,
- Y (i):
- Predictive error vector,
- Cn (i):
- Codevector
- n:
- Code vector number,
- i:
- Vector Order, and
- l:
- Vector length.
Danach
werden in einem Suchabschnitt die Abstände für jeweilige Codevektoren verglichen,
und der Index des Codevektors, der den kürzesten Abstand ergibt, wird
als ein Vektorcode 806 ausgegeben.Thereafter, in a search section, the distances for respective code vectors are compared, and the index of the code vector giving the shortest distance is called a vector code 806 output.
Das
heißt,
das Vektor-Codebuch 800 und die Abstandsberechnungseinrichtung 804 werden
so gesteuert, dass der Index des Codevektors ermittelt wird, der
den kürzesten
Abstand von allen in dem Vektor-Codebuch 800 gespeicherten
Codektoren ergibt, und der ermittelte Index wird als Vektorcode 806 verwendet.That is, the vector codebook 800 and the distance calculating means 804 are controlled to determine the index of the codevector that is the shortest distance of all in the vector codebook 800 stored coders, and the determined index is called vector code 806 used.
Des
Weiteren wird der Vektor unter Verwendung des aus dem Vektor-Codebuch 800 ermittelten
Codevektors und des zuvor decodierten Vektors, der in dem Status-Speicherabschnitt 803 gespeichert
ist, auf Basis der abschließenden
Codierung codiert, und der Inhalt des Status-Speicherabschnitts 803 wird
unter Verwendung des ermittelten synthetisierten Vektors aktualisiert.
Daher wird der decodierte Vektor bei der Prädiktion verwendet, wenn eine
nächste
Quantisierung durchgeführt
wird.Furthermore, the vector is generated using the vector codebook 800 determined codevector and the previously decoded vector included in the status storage section 803 is stored, coded based on the final encoding, and the contents of the status storage section 803 is updated using the detected synthesized vector. Therefore, the decoded vector is used in the prediction when a next quantization is performed.
Das
Decodieren des Beispiels (erste Prädiktionsverordnung, unveränderlicher
Koeffizient) in der oben erwähnten
Prädiktionsform
wird mit dem folgenden Ausdruck (13) durchgeführt: Z(i) = –CN(i)
+ βD(i) (13)wobei
- Z(i):
- decodierter Vektor
(bei einem nächsten
Codieren als D(i) verwendet),
- N:
- Code für Vektor,
- CN(i):
- Codevektor,
- β:
- Prädiktionskoeffizient (skalar)
- D(i):
- decodierter Vektor
eines vorausgehenden Rahmens, und
- i:
- Vektorordnung.
The decoding of the example (first prediction order, fixed coefficient) in the above-mentioned prediction form is performed by the following expression (13): Z (i) = -CN (i) + βD (i) (13) in which - Z (i):
- decoded vector (used as D (i) in a next coding),
- N:
- Code for vector,
- CN (i):
- Codevector
- β:
- Prediction coefficient (scalar)
- D (i):
- decoded vector of a preceding frame, and
- i:
- Vector fine.
Andererseits
wird in einem Decoder der Codevektor auf Basis des Codes des übertragenen
Vektors ermittelt, um ihn zu decodieren. In dem Decodierer werden
das gleiche Vektor-Codebuch und der Status-Speicherabschnitt wie
der des Codierers im Voraus erzeugt. Dann wird das Decodieren mit
dem gleichen Algorithmus der Decodiertunktion wie der Suchfunktion
in dem erwähnten
Codieralgorithmus ausgeführt.
Oben beschrieben ist die Vektorquantisierung, die in dem Quantisierungsabschnitt 703 ausgeführt wird.On the other hand, in a decoder, the codevector is detected on the basis of the code of the transmitted vector to decode it. In the decoder, the same vector codebook and the status memory section as that of the coder are generated in advance. Then, the decoding is carried out with the same algorithm of the decoding function as the search function in the mentioned coding algorithm. Described above is the vector quantization included in the quantization section 703 is performed.
Dann
berechnet die Verzerrungsberechnungseinrichtung 704 eine
wahrnehmbare gewichtete Codierungsverzerrung aus dem decodierten
Vektor, der durch den Quantisierungsabschnitt 703 bestimmt
wird, dem Eingangsvektor 701 und dem decodierten Vektor
des vorausgehenden Rahmens, der in dem Abschnitt 707 zum
Speichern decodierter Vektoren gespeichert ist. Ein Ausdruck für die Berechnung
ist mit dem folgenden Ausdruck (14) dargestellt: Ew = Σ(V(i) – St(i))2 +
p{V(i) – (d(i)
+ St+1(i)/2}2 (14)wobei
- Ew:
- gewichtete Codierverzerrung,
- St(i),
St+1(i):
- Eingangsvektor,
- t:
- Zeit (Rahmennummer)
- i:
- Nummer des Vektorelements,
- V(i):
- decodierter Vektor,
- p:
- Gewichtungskoeffizient
(unveränderlich),
und
- d(i):
- decodierter Vektor
des vorausgehenden Rahmens.
Then, the distortion calculating means calculates 704 a perceptible weighted codie tion distortion from the decoded vector passed through the quantization section 703 is determined, the input vector 701 and the decoded vector of the previous frame contained in the section 707 is stored for storing decoded vectors. An expression for the calculation is represented by the following expression (14): Ew = Σ (V (i) - St (i)) 2 + p {V (i) - (d (i) + S t + 1 (I) / 2} 2 (14) in which - ew:
- weighted coding distortion,
- S t (i), S t + 1 (i):
- Input vector,
- t:
- Time (frame number)
- i:
- Number of the vector element,
- V (i):
- decoded vector,
- p:
- Weighting coefficient (constant), and
- d (i):
- decoded vector of the previous frame.
In
Ausdruck (14) ist der Gewichtungskoeffizient p der gleiche wie der
Koeffizient des Ausdrucks des Ziels, der in dem Zielextraktionsabschnitt 702 verwendet
wird. Dann wer den der Wert der gewichteten Codierverzerrung, der
codierte Vektor und der Code des Vektors zu dem Komparator 705 gesendet.In expression (14), the weighting coefficient p is the same as the coefficient of expression of the target included in the target extraction section 702 is used. Then the value of the weighted coding distortion, the coded vector and the code of the vector are added to the comparator 705 Posted.
Der
Komparator 705 sendet den Code des Vektors, der von der
Verzerrungsberechnungseinrichtung 704 gesendet wird, zu
dem Übertragungsweg 608 und
aktualisiert des Weiteren den Inhalt des Abschnitts 707 zum
Speichern decodierter Vektoren unter Verwendung des von der Verzerrungsberechnungseinrichtung 704 gesendeten
Vektors.The comparator 705 sends the code of the vector supplied by the distortion calculator 704 is sent to the transmission path 608 and further updates the content of the section 707 for storing decoded vectors using the from the distortion calculator 704 sent vector.
Gemäß der oben
beschriebenen Ausführung
wird der Zielvektor in dem Zielextraktionsabschnitt 702 von
St(i) auf den Vektor korrigiert, der an
der Position angeordnet ist, die sich dem Mittelpunkt zwischen D(i) und
St+1(i) in gleichem Maße nähert. Dies ermöglicht es,
die gewichtete Suche durchzuführen,
so dass es zu keiner Verschlechterung der Wahrnehmung kommt.According to the embodiment described above, the target vector becomes in the target extraction section 702 from S t (i) to the vector located at the position approaching the midpoint between D (i) and S t + 1 (i) to the same degree. This makes it possible to perform the weighted search so that there is no deterioration of the perception.
Oben
wurde der Fall erläutert,
in dem die vorliegende Erfindung bei einem Sprachcodierverfahren
mit niedriger Bitrate eingesetzt wurde, wie es beispielsweise in
einem Mobiltelefon verwendet wird. Die vorliegende Erfindung kann
jedoch nicht nur bei der Sprachcodierung, sondern auch bei der Vektorquantisierung
für einen
Parameter mit einer relativ guten Interpolation in einem Musik-Codierer
und einem Bild-Codierer eingesetzt werden.Above
the case was explained
in which the present invention in a speech coding method
was used at a low bit rate, such as in
a mobile phone is used. The present invention can
not only in speech coding, but also in vector quantization
for one
Parameter with a relatively good interpolation in a music encoder
and a picture coder.
Im
Allgemeinen wird bei der LPC-Codierung, die durch den LPC-Analysierabschnitt
in dem oben erwähnten
Algorithmus ausgeführt
wird, Umwandlung in Parametervektoren, wie beispielsweise LPS (Line Spectrum
Pairs), die leicht zu codieren sind, üblicherweise durchgeführt, und
Vektorquantisierung (VQ) wird durch Euklidischen Abstand oder gewichteten
Euklidischen Abstand ausgeführt.in the
Generally speaking, in the LPC coding performed by the LPC parsing section
in the above mentioned
Algorithm executed
, conversion into parameter vectors, such as LPS (Line Spectrum
Pairs), which are easy to code, usually performed, and
Vector quantization (VQ) is by Euclidean distance or weighted
Euclidean distance executed.
Des
Weiteren sendet gemäß der oben
erläuterten
Ausführung
der Zielextraktionsabschnitt 702 den Eingangsvektor 701 zu
dem Vektorglättungsabschnitt 708,
nachdem er Steuerung durch den Komparator 705 unterzogen
worden ist. Dann empfängt
der Zielextraktionsabschnitt 702 den durch den Vektorglättungsabschnitt 708 veränderten
Eingangsvektor und extrahiert so das Ziel erneut.Further, according to the embodiment explained above, the target extracting section sends 702 the input vector 701 to the vector smoothing section 708 after being controlled by the comparator 705 has been subjected. Then the destination extraction section receives 702 through the vector smoothing section 708 changed input vector, thus extracting the target again.
In
diesem Fall vergleicht der Komparator 705 den Wert gewichteter
Codierverzerrung, der von der Verzerrungsberechnungseinrichtung 704 gesendet
wird, mit einem in dem Komparator erzeugten Bezugswert. Die Verarbeitung
ist in Abhängigkeit
von dem Vergleichsergebnis zweigeteilt.In this case the comparator compares 705 the value of weighted coding distortion obtained by the distortion calculator 704 is sent with a reference generated in the comparator. The processing is divided into two depending on the result of the comparison.
Wenn
das Vergleichsergebnis unter dem Bezugswert liegt, sendet der Komparator 705 den
Index des von der Verzerrungsberechnungseinrichtung gesendeten Codevektors
zu dem Übertragungsweg 608 und
aktualisiert den Inhalt des Abschnitts 707 zum Speichern
decodierter Vektoren unter Verwendung des von der Verzerrungsberechnungseinrichtung 704 gesendeten
codierten Vektors. Diese Aktualisierung wird ausgeführt, indem
der Inhalt des Abschnitts 707 zum Speichern decodierter
Vektoren unter Verwendung des ermittelten codierten Vektors überschrieben
wird. Dann geht die Verarbeitung zu einem Schritt für eine Codierung
eines nächsten
Rahmenparameters zu über.If the comparison result is below the reference value, the comparator sends 705 the index of the codevector sent from the distortion calculator to the transmission path 608 and updates the contents of the section 707 for storing decoded vectors using the from the distortion calculator 704 sent coded vector. This update is performed by the content of the section 707 is overwritten to store decoded vectors using the determined coded vector. Then, the processing proceeds to a step of encoding a next frame parameter.
Hingegen
steuert, wenn das Vergleichsergebnis größer ist als der Bezugswert,
der Komparator 705 den Vektorglättungsabschnitt 708 und
fügt eine Änderung
zu dem Eingangsvektor hinzu, so dass der Zielextraktionsabschnitt 702,
der Quantisierungsabschnitt 703 und die Verzerrungsberechnungseinrichtung 704 wieder
in Funktion gesetzt werden, um erneut Codieren durchzuführen.On the other hand, if the comparison result is larger than the reference value, the comparator controls 705 the vector smoothing section 708 and adds a change to the input vector such that the destination extraction section 702 , the quantization section 703 and the distortion calculating means 704 be re-enabled to recode.
In
dem Komparator 705 wird Codierverarbeitung geholt, bis
das Vergleichsergebnis den Wert unter dem Bezugswert erreicht. Es
gibt jedoch einen Fall, in dem das Vergleichsergebnis den Wert unter
dem Bezugswert selbst dann nicht erreichen kann, wenn Codierverarbeitung
viele Male wiederholt wird. Für
diesen Fall weist der Komparator 705 einen Zähler in
seinem Inneren auf, und der Zähler
zählt,
wie oft festgestellt wird, dass das Vergleichsergebnis größer ist
als der Bezugswert. Wenn die Häufigkeit über einer
festgelegten Häufigkeit
liegt, unterbricht der Komparator 705 das wiederholte Codieren
und löscht
das Vergleichsergebnis sowie den Zählerstand und übernimmt
dann einen Anfangsindex.In the comparator 705 Coding processing is fetched until the comparison result reaches the value below the reference value. However, there is a case where the comparison result can not reach the value below the reference even if coding processing is repeated many times. For this case, the comparator points 705 a counter in its interior, and the counter counts how many times it is determined that the comparison result is greater than the reference value. If the frequency is above a specified frequency, the comparator interrupts 705 the repeated coding and deletes the comparison result and the count and then assumes a starting index.
Der
Vektorglättungsabschnitt 708 wird
der Steuerung des Komparators 705 unterwarfen und ändert Parametervektor
St(i) des aktuellen Rahmens, der einer der
Eingangsvektoren ist, gegenüber
dem durch den Zielextraktionsabschnitt 702 bestimmten Eingangsvektor
und dem decodierten Vektor des vorausgehenden Rahmens, der von dem
Abschnitt 707 zum Speichern decodierter Werte ermittelt
wird, mit dem folgenden Ausdruck (15) und sendet den geänderten
Eingangsvektor zu dem Zielextraktionsabschnitt 702. St(i) ← (1 – q)·St(i) + q(d(i) + St+1(i))/2 (15) The vector smoothing section 708 becomes the controller of the comparator 705 subverted and changed parameter vector S t (i) of the current frame, which is one of the input vectors, from that through the target extraction section 702 certain input vector and the decoded vector of the previous frame derived from the section 707 for storing decoded values, with the following expression (15) and sends the changed input vector to the target extracting section 702 , S t (i) ← (1-q) · S t (i) + q (d (i) + S t + 1 (i)) / 2 (15)
In
dem oben stehenden Ausdruck ist q ein Glättungskoeffizient, der den
Grad anzeigt, in dem der Parametervektor des aktuellen Rahmen nahe
an einem Mittelpunkt zwischen dem decodierten Vektor des vorausgehenden
Rahmens und dem Parametervektor des zukünftigen Rahmens aktualisiert
wird. Das Codierexperiment zeigt, dass gute Leistung erreicht werden
kann, wenn die obere Grenze der Anzahl von Wiederholungen, die durch
den Komparator 705 im Inneren ausgeführt wird, unter der Bedingung
0,2 < a < 0,4 5 bis 8 beträgt.In the above expression, q is a smoothing coefficient indicating the degree to which the parameter vector of the current frame is updated near a midpoint between the decoded vector of the previous frame and the parameter vector of the future frame. The coding experiment shows that good performance can be achieved if the upper limit of the number of repetitions made by the comparator 705 is carried out inside, under the condition of 0.2 <a <0.4 5 to 8.
Obwohl
die oben beschriebenen Ausführung
die prädiktive
Vektorquantisierung in dem Quantisierungsabschnitt 703 verwendet,
besteht eine große
Wahrscheinlichkeit, dass die gewichtete Codierverzernmg, die mit
der Verzerrungsberechnungseinrichtung 704 ermittelt wird,
gering wird. Dies ist darauf zurückzuführen, dass
das quantisierte Ziel durch Glätten
näher an
dem decodierten Vektor des vorausgehenden Vektors aktualisiert wird.
Daher wird die Möglichkeit,
dass das Vergleichsergebnis bei dem Verzerrungsvergleich des Komparators 705 unter
dem Bezugswert liegt, durch die Wiederholung von Decodieren des
vorausgehenden Rahmens aufgrund der Steuerung des Komparators 705 erhöht.Although the above-described embodiment is the predictive vector quantization in the quantization section 703 If there is a high probability that the weighted codebook used with the distortion calculator 704 is determined, is low. This is because the quantized target is updated by smoothing closer to the decoded vector of the previous vector. Therefore, the possibility that the comparison result in the distortion comparison of the comparator 705 is below the reference value by repeating decoding of the previous frame due to the control of the comparator 705 elevated.
Des
Weiteren wird in dem Decoder ein Decodierabschnitt, der dem Quantisierungsabschnitt
des Codierers entspricht, im Voraus erzeugt, so dass Decodieren
auf Basis des Index des über
den Übertragungsweg übertragenen
Codevektors ausgeführt
wird.Of
Further, in the decoder, a decoding section corresponding to the quantization section
the encoder corresponds, generated in advance, so that decoding
based on the index of over
transmit the transmission path
Code vector executed
becomes.
Weiterhin
wurde die Ausführung
der vorliegenden Erfindung auf Quantisierung (Quantisierungsabschnitt
ist Prädiktion
VQ) von LSP-Parametern angewendet, die im CELP-Sprachcodierer auftreten, und ein Versuch
zur Sprachcodierung und -decodierung wurde durchgeführt. Im
Ergebnis desselben wurde bestätigt, dass
nicht nur die subjektive Qualität,
sondern auch der objektive Wert (Signal-Rausch-Wert) verbessert
werden konnte. Dies liegt daran, dass eine Wirkung vorhanden ist,
durch die die Codierverzerrung von prädiktivem VQ durch Codierwiederholungsverarbeitung
mit Vektorglättung
auch dann unterdrückt
werden kann, wenn sich das Spektrum drastisch ändert. Da die Zukunfts-Prädiktion
VQ aus den bereits decodierten Vektoren vorhergesagt wurde, trat
ein Nachteil dahingehend auf, dass die spektrale Verzerrung des
Abschnitts, in dem sich das Spektrum drastisch ändert, wie beispielsweise einem
Sprechbeginn, im Gegensatz dazu zunahm. Beim Einsatz der Ausführung der
vorliegenden Erfindung jedoch wird, da Glätten ausgeführt wird, bis sich die Verzerrung
in dem Fall verringert, indem die Verzerrung groß ist, die Codierverzerung
geringer, obwohl das Ziel mehr oder weniger von dem Ist-Parametervektor getrennt
ist. So kann eine Wirkung erzielt werden, bei der Verschlechterung,
die beim Decodieren der Sprache auftritt, vollständig reduziert wird. Daher
kann gemäß der Ausführung der
vorliegenden Erfindung nicht nur die subjektive Qualität, sondern
auch der objektive Wert verbessert werden.Farther
was the execution
of the present invention on quantization (quantization section
is prediction
VQ) of LSP parameters that occur in the CELP speech coder and an attempt
for speech coding and decoding was performed. in the
Result same was confirmed that
not only the subjective quality,
but also the objective value (signal-to-noise value) improved
could be. This is because there is an effect
by the coding distortion of predictive VQ by coding repetition processing
with vector smoothing
even then suppressed
when the spectrum changes dramatically. Because the future prediction
VQ was predicted from the already decoded vectors
a disadvantage in that the spectral distortion of the
Section where the spectrum changes drastically, such as one
Speech beginning, in contrast, increased. When using the execution of
However, according to the present invention, since smoothing is performed until the distortion
in the case where the distortion is large, the coding delay is reduced
less, although the goal is more or less separate from the actual parameter vector
is. Thus, an effect can be obtained in the deterioration,
which occurs when decoding the language is completely reduced. Therefore
can according to the execution of the
present invention not only the subjective quality, but
also the objective value can be improved.
In
der oben beschriebenen Ausführung
der vorliegenden Erfindung kann durch die Charakteristiken des Komparators
und des Vektorglättungsabschnitts
die Richtung gesteuert werden, in der die Bedienungsperson die Richtung
der Verschlechterung dann nicht wahrnimmt, wenn eine Vektor-Quantisierungsverzerrung groß ist. Des
Weiteren werden, wenn prädiktive
Vektorquantisierung in dem Quantisierungsabschnitt eingesetzt wird,
Glätten
und Codieren wiederholt, bis sich die Codierverzerrung verringert,
so dass ebenfalls der objektive Wert verbessert werden kann.In the above-described embodiment of the present invention, by the characteristics of the comparator and the vector smoothing section, the direction in which the operator does not perceive the direction of degradation when a vector quantization distortion is large can be controlled. Furthermore, if predictive vector quantization is used in the quantizing section, smoothing and coding are repeated until the coding distortion decreases, so that also the ob jective value can be improved.
Oben
ist der Fall erläutert,
in dem die vorliegende Erfindung bei dem Sprachcodierverfahren mit
niedriger Bitrate eingesetzt wurde, wie es beispielsweise bei einem
Mobiltelefon verwendet wird. Die vorliegende Erfindung kann jedoch
nicht nur bei der Sprachcodierung eingesetzt werden, sondern auch
bei der Vektorquantisierung für
einen Parameter mit einer relativ guten Interpolation in einem Musik-Codierer
und einem Bild-Codierer.Above
the case is explained
in which the present invention in the speech coding with
low bit rate was used, as for example in a
Mobile phone is used. However, the present invention can
not only in speech coding, but also
in vector quantization for
a parameter with a relatively good interpolation in a music encoder
and a picture encoder.
Sechste AusführungSixth version
Im
Folgenden wird der CELP-Sprachcodierer gemäß der sechsten Ausführung erläutert. Der
Aufbau dieser Ausführung
ist der gleiche wie der der fünften
Ausführung,
wobei jedoch ein Quantisierungsalgorithmus des Quantisierungsabschnitts
eine mehrstufige prädiktive
Vektorquantisierung als Quantisierungsverfahren verwendet. Das heißt, der
Anregungsvektorgenerator der ersten Ausführung wird als ein Zufalls-Codebuch verwendet.
Im Folgenden wird der Quantisierungsalgorithmus des Quantisierungsabschnitts
im Einzelnen erläutert.in the
Next, the CELP speech coder according to the sixth embodiment will be explained. Of the
Structure of this design
is the same as the fifth
Execution,
however, a quantization algorithm of the quantization section
a multistep predictive
Vector quantization used as a quantization method. That is, the
The excitation vector generator of the first embodiment is used as a random codebook.
The quantization algorithm of the quantization section will be described below
explained in detail.
12 zeigt
den Funktionsblock des Quantisierungsabschnitts. Bei der mehrstufigen
prädiktiven
Vektorquantisierung wird die Vektorquantisierung des Ziels ausgeführt, anschließend wird
der Vektor unter Verwendung eines Codebuchs mit dem Index des quantisierten
Ziels, einer Differenz zwischen dem codierten Vektor decodiert.
Dann wird das ursprüngliche
Ziel (im Folgenden als codierter Verzerrungsvektor bezeichnet) ermittelt,
und der ermittelte codierte Verzerrungsvektor wird weiterer Vektorquantisierung
unterzogen. 12 shows the function block of the quantization section. In multistage predictive vector quantization, the vector quantization of the target is performed, then the vector is decoded using a codebook with the index of the quantized target, a difference between the coded vector. Then, the original target (hereinafter referred to as coded distortion vector) is detected, and the obtained coded distortion vector is subjected to further vector quantization.
Ein
Vektor-Codebuch 899, in dem eine Vielzahl dominanter Abtastwerte
(Codevektoren) des prädiktiven
Fehlervektors gespeichert sind, und ein Codebuch 900 werden
im Voraus erzeugt. Diese Codevektoren werden erzeugt, indem der
gleiche Algorithmus wie der des Codevektor-Erzeugungsverfahrens
der typischen "Multivektor-Quantisierung" angewendet wird.
Das heißt,
diese Codevektoren werden im Allgemeinen durch einen LBG-Algorithmus
(IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. COM-28, NO. 1, S. 84–95, JANUAR
1980) auf Basis einer großen
Anzahl von Vektoren erzeugt, die durch Analysieren vieler Sprachdaten gewonnen
werden. Zu bemerken ist, dass Trainingsdaten zum Entwickeln von
Codevektoren 899 ein Satz Fehlerzielvektoren sind, während Trainingsdaten
zum Entwickeln von Codebuch 900 ein Satz codierter Verzerrungsvektoren
ist, die ermittelt werden, wenn die oben genannten quantisierten
Ziele mit dem Vektor-Codebuch 899 codiert werden.A vector codebook 899 in which a plurality of dominant samples (code vectors) of the predictive error vector are stored, and a codebook 900 are generated in advance. These codevectors are generated using the same algorithm as that of the codevector generation method of typical "multivector quantization". That is, these code vectors are generally generated by an LBG algorithm (IEEE TRANSACTIONS ON COMMUNICATIONS, VOL COM-28, NO. 1, pp. 84-95, JANUARY 1980) based on a large number of vectors to be analyzed many voice data are obtained. It should be noted that training data for developing codevectors 899 are a set of error target vectors while training data is for developing codebook 900 is a set of coded distortion vectors, which are determined when the above-mentioned quantized targets with the vector codebook 899 be coded.
Zunächst wird
ein Vektor 901 des Zielvektors durch einen Vorhersageabschnitt 902 vorhergesagt.
Die Vorhersage bzw. Prädiktion
wird durch die bereits decodierten Vektoren ausgeführt, die
in einem Status-Speicherabschnitt 903 gespeichert sind,
und der ermittelte prädiktive
Fehlervektor wird zu Abstands-Berechnungseinrichtungen 904 und 905 gesendet.First, a vector 901 of the target vector through a prediction section 902 predicted. The prediction is performed by the already decoded vectors stored in a status storage section 903 are stored, and the determined predictive error vector becomes distance calculating means 904 and 905 Posted.
Gemäß der oben
beschriebenen Ausführung
wird als eine Form von Prädiktion
ein unveränderlicher Koeffizient
für eine
Prädiktion
erster Ordnung verwendet. Dann wird ein Ausdruck zum Berechnen des
prädiktiven
Fehlervektors bei Verwendung der oben erwähnten Prädiktion mit dem folgenden Ausdruck
(16) dargestellt. Y(i)
= X(i) – βD(i) (16)wobei
- Y(i):
- prädiktiver Fehlervektor,
- X(i):
- Zielvektor,
- β:
- prädiktiver Koeffizient (skalar)
- D(i):
- decodierter Vektor
eines vorausgehenden Rahmens, und
- i:
- Vektor-Ordnung.
According to the above-described embodiment, as a form of prediction, a fixed coefficient is used for a first order prediction. Then, an expression for calculating the predictive error vector using the above-mentioned prediction is represented by the following expression (16). Y (i) = X (i) - β D (i) (16) in which - Y (i):
- predictive error vector,
- X (i):
- Target vector,
- β:
- predictive coefficient (scalar)
- D (i):
- decoded vector of a preceding frame, and
- i:
- Vector fine.
Im
Allgemeinen ist in dem obenstehenden Ausdruck der prädiktive
Koeffizient β ein
Wert 0 < β < 1.in the
In general, in the above expression, the predictive
Coefficient β
Value 0 <β <1.
Dann
berechnet die Abstandsberechnungseinrichtung 904 den Abstand
zwischen dem prädiktiven Fehlervektor,
der durch den Prädiktionsabschnitt 902 ermittelt
wird, und einem in dem Vektor-Codebuch 899 gespeicherten
Codevektor A. Ein Ausdruck zum ermitteln des oben erwähnten Abstands
wird mit dem folgenden Ausdruck (17) dargestellt: wobei
- En:
- Abstand zu dem n-ten
Codevektor A,
- Y(i):
- prädiktiver Fehlervektor,
- C1n(i):
- Codevektor A,
- n:
- Index von Codevektor
A,
- i:
- Vektor-Ordnung, und
- l:
- Vektorlänge.
Then the distance calculation means calculates 904 the distance between the predictive error vector given by the prediction section 902 is determined, and one in the vector codebook 899 A code for determining the above-mentioned distance is represented by the following expression (17): in which - en:
- Distance to the nth code vector A,
- Y (i):
- predictive error vector,
- C1n (i):
- Codevector A,
- n:
- Index of codevector A,
- i:
- Vector order, and
- l:
- Vector length.
Dann
werden in einem Suchabschnitt 906 die jeweiligen Abstände zu dem
Codevektor A verglichen, und der Index des Codevektors A mit dem
kürzesten
Abstand wird als ein Code für
Codevektor A verwendet. Das heißt,
das Vektor-Codebuch 899 und die Abstandsberechnungseinrichtung 904 werden
so gesteuert, dass der Code von Codevektor A mit dem kürzesten
Abstand von allen in dem Codebuch 899 gespeicherten Codevektoren
ermittelt wird. Dann wird der ermittelte Code von Codevektor A als
der Index von Codebuch 899 verwendet. Anschließend werden
der Code für
Codevektor A und der decodierte Vektor A, der aus dem Codebuch 899 unter
Bezugnahme auf den Code für
Codevektor A ermittelt wird, zu der Abstandsberechnungseinrichtung 905 gesendet.
Des Weiteren wird der Code für
Codevektor A über
den Übertragungsweg
zu einem Suchabschnitt 906 gesendet.Then be in a search section 906 the respective distances to the code vector A are compared, and the index of the code vector A with the shortest distance is used as a code for code vector A. That is, the vector codebook 899 and the distance calculating means 904 are controlled so that the code of codevector A with the shortest distance of all in the codebook 899 stored codevectors is determined. Then, the determined code of codevector A becomes the index of codebook 899 used. Subsequently, the code for codevector A and the decoded vector A are extracted from the codebook 899 with reference to the code for code vector A, to the distance calculating means 905 Posted. Furthermore, the code for code vector A becomes a search section via the transmission path 906 Posted.
Die
Abstandsberechnungseinrichtung 905 ermittelt einen codierten
Verzerrungsvektor aus dem prädiktiven
Fehlervektor und dem von dem Suchabschnitt 906 ermittelten
decodierten Vektor A. Des Weiteren bestimmt die Abstandsberechnungseinrichtung 905 eine
Amplitude von einem Verstärker-Speicherabschnitt 908 unter
Bezugnahme auf den Code für
Codevektor A, der von dem Suchabschnitt 906 ermittelt wird.
Dann berechnet die Abstandsberechnungseinrichtung 905 einen
Abstand, indem sie den oben genannten codierten Verzenungsvektor
und Codevektor B, der in dem Vektor-Codebuch 900 gespeichert
ist, mit der oben genannten Amplitude multipliziert, und sendet
den ermittelten Abstand zu dem Suchabschnitt 907. Ein Ausdruck
für den
oben beschriebenen Abstand wird wie folgt dargestellt: Z(i) = Y(i) – C1N(i) wobei
- Z(i):
- decodierter Vektor,
- Y(i):
- prädiktiver Fehlervektor,
- C1N(i):
- decodierter Vektor
A,
- Em:
- Abstand zu m-ten Codevektor
B,
- aN:
- Amplitude, die dem
Code für
Codevektor A entspricht,
- C2M(i):
- Codevektor B,
- m:
- Index von Codevektor
B,
- i:
- Vektor-Ordnung, und
- l:
- Vektorlänge.
The distance calculation device 905 determines a coded distortion vector from the predictive error vector and from the search section 906 determined decoded vector A. Furthermore, determines the distance calculation device 905 an amplitude of an amplifier storage section 908 with reference to the code for code vector A that is from the search section 906 is determined. Then the distance calculation means calculates 905 a distance by passing the above encoded truncation vector and code vector B in the vector codebook 900 is stored, multiplied by the above-mentioned amplitude, and transmits the determined distance to the search section 907 , An expression for the distance described above is represented as follows: Z (i) = Y (i) -C1N (i) in which - Z (i):
- decoded vector,
- Y (i):
- predictive error vector,
- C1N (i):
- decoded vector A,
- em:
- Distance to m th code vector B,
- at:
- Amplitude corresponding to the code for code vector A,
- C2M (i):
- Codevector B,
- m:
- Index of codevector B,
- i:
- Vector order, and
- l:
- Vector length.
Dann
werden in einem Suchabschnitt 907 die jeweiligen Abstände zu dem
Codevektor B verglichen, und der Index des Codevektors B mit dem
kürzesten
Abstand wird als ein Code für
Codevektor B verwendet. Das heißt,
das Codebuch 900 und die Abstandsberechnungseinrichtung 905 werden
so gespeichert, dass der Code von Codevektor B mit der kürzesten
Distanz von allen in dem Vektor-Codebuch 900 gespeicherten
Codevektoren ermittelt wird. Dann wird der ermittelte Code des Codevektors
B als der Index von Codebuch 900 verwendet. Danach werden
Codevektor A und Codevektor B addiert und als ein Vektorcode 909 verwendet.Then be in a search section 907 the respective distances to the code vector B are compared, and the index of the code vector B with the shortest distance is used as a code for code vector B. That is, the codebook 900 and the distance calculating means 905 are stored such that the code of code vector B is the shortest distance of all in the vector codebook 900 stored codevectors is determined. Then, the obtained code of the code vector B becomes the index of the codebook 900 used. Thereafter, codevector A and codevector B are added together and as a vector code 909 used.
Des
Weiteren führt
der Suchabschnitt 907 das Decodieren des Vektors unter
Verwendung decodierter Vektoren A und B, die aus den Vektor-Codebüchern 899 und 900 auf
Basis der Codes für
Codevektor A und Codevektor B ermittelt werden, der Amplitude, die aus
einem Verstärker-Speicherabschnitt 908 ermittelt
wird, und bereits decodierter Vektoren aus, die in dem Status-Speicherabschnitt 903 gespeichert
sind. Der Inhalt des Status-Speicherabschnitts 903 wird
unter Verwendung des ermittelten decodierten Vektors aktualisiert. (Daher
wird der wie oben beschrieben decodierte Vektor bei der Prädiktion
bei einer nächsten
Codierung verwendet). Das Decodieren bei der Prädiktion (eine erste Prädiktionsordnung
und ein unveränderlicher
Koeffizient) in dieser Ausführung
werden mit dem folgenden Ausdruck (19) durchgeführt: Z(i) = C1N(i) + aN·C2M(i) + βD(i) (19)wobei
- Z(i):
- decodierter Vektor
(beim nächsten
Codieren als D(i) verwendet),
- N:
- Code für Codevektor
A,
- M:
- Code für Codevektor
B,
- C1N(i):
- decodierter Codevektor
A,
- C2M(i):
- decodierter Codevektor
B,
- aN:
- Amplitude, die dem
Code für
Codevektor A entspricht,
- β:
- prädiktiver Koeffizient (skalar),
- D(i):
- decodierter Vektor
eines vorausgehenden Rahmens, und
- m:
- Index von Codevektor
B,
- i:
- Vektor-Ordnung.
Furthermore, the search section leads 907 decoding the vector using decoded vectors A and B derived from the vector codebooks 899 and 900 are determined on the basis of codes for code vector A and code vector B, the amplitude, which consists of an amplifier memory section 908 and already decoded vectors stored in the status storage section 903 are stored. The contents of the status storage section 903 is updated using the determined decoded vector. (Therefore, the vector decoded as described above is used in the prediction at a next coding). The decoding in the prediction (a first prediction order and a fixed coefficient) in this embodiment is performed by the following expression (19): Z (i) = C1N (i) + aN * C2M (i) + βD (i) (19) in which - Z (i):
- decoded vector (used as D (i) in the next coding),
- N:
- Code for code vector A,
- M:
- Code for code vector B,
- C1N (i):
- decoded codevector A,
- C2M (i):
- decoded codevector B,
- at:
- Amplitude corresponding to the code for code vector A,
- β:
- predictive coefficient (scalar),
- D (i):
- decoded vector of a preceding frame, and
- m:
- Index of codevector B,
- i:
- Vector fine.
Des
Weiteren wird das Einstellverfahren im Folgenden erläutert, obwohl
die in dem Verstärker-Speicherabschnitt 908 gespeicherte
Amplitude voreingestellt ist. Die Amplitude wird eingestellt, indem
viele Sprachdaten codiert werden, die Summe der codierten Verzerrungen
des folgenden Ausdrucks (20) ermittelt wird und das Training so
durchgeführt
wird, dass die ermittelte Summe minimiert wird. wobei
- EN:
- codierte Verzerrung,
wenn Code für
Codevektor A N ist,
- N:
- Code für Codevektor
A,
- t:
- Zeit, zu der der Code
für Codevektor
A N ist,
- Y
- t(I):
prädiktiver
Fehlervektor zur Zeit t,
- C1N(i):
- decodierter Vektor
A,
- aN:
- Amplitude, die dem
Code für
Codevektor A entspricht,
- C2mt(i):
- Codevektor B,
- i:
- Vektor-Ordnung, und
- l:
- Vektorlänge.
Furthermore, the setting method will be explained below, although in the booster memory section 908 stored amplitude is preset. The amplitude is adjusted by encoding many voice data, determining the sum of the coded distortions of the following expression (20), and performing the training so that the determined sum is minimized. in which - EN:
- encoded distortion if code for code vector is ON,
- N:
- Code for code vector A,
- t:
- Time at which the codevector code is AN,
- Y
- t (I): predictive error vector at time t,
- C1N (i):
- decoded vector A,
- at:
- Amplitude corresponding to the code for code vector A,
- C2m t (i):
- Codevector B,
- i:
- Vector order, and
- l:
- Vector length.
Das
heißt,
nach dem Codieren wird die Amplitude so zurückgesetzt, dass der Wert, der
ermittelt worden ist, indem die Verzerrung des obenstehenden Ausdrucks
(20) in Bezug auf jede Amplitude differenziert wird, Null wird,
so dass das Training der Amplitude durchgeführt wird. Dann wird durch Wiederholen
von Codieren und Training der geeignete Wert für jede Amplitude ermittelt.The
is called,
after encoding, the amplitude is reset so that the value that
has been determined by the distortion of the above expression
(20) is differentiated with respect to each amplitude, becomes zero,
so that the training of the amplitude is performed. Then by repeating
of coding and training determines the appropriate value for each amplitude.
Andererseits
führt der
Decodierer das Decodieren durch, indem der Codevektor auf Basis
des übertragenen
Codes des Vektors ermittelt wird. Der Decodierer umfasst die gleichen
Vektor-Codebücher
(die den Codebüchern
A, B entsprechen) wie der Codierer, den Verstärker-Speicherabschnitt und
den Status-Speicherabschnitt. Dann führt der Decodierer das Decodieren
mit dem gleichen Algorithmus wie die Decodierfunktion des Suchabschnitts
(entsprechend dem Codevektor C) in dem erwähnten Codieralgorithmus durch.on the other hand
leads the
Decoder through the decoding by the codevector based
of the transferred
Codes of the vector is determined. The decoder includes the same
Vector codebooks
(the the codebooks
A, B) as the encoder, the amplifier memory section and
the status storage section. Then the decoder performs the decoding
with the same algorithm as the decoding function of the search section
(corresponding to the code vector C) in the mentioned coding algorithm.
Daher
wird gemäß der vorliegenden
Ausführung
durch die Charakteristiken des Verstärker-Speicherabschnitts und
der Abstandsberechnungseinrichtung der Codevektor der zweiten Stufe
so auf den der ersten Stufe mit einer relativ geringen Menge an
Berechnungen angewendet, so dass die codierte Verzerrung reduziert
werden kann.Therefore
is in accordance with the present
execution
by the characteristics of the amplifier memory section and
the distance calculating means is the second-level code vector
so on the first stage with a relatively small amount of
Calculations applied so that the coded distortion is reduced
can be.
Oben
ist der Fall erläutert,
in dem die vorliegende Erfindung bei dem Codierverfahren mit niedriger
Bitratengeschwindigkeit angewendet wurde, wie es beispielsweise
bei einem Mobiltelefon eingesetzt wird. Die vorliegende Erfindung
kann jedoch nicht nur bei der Sprachcodierung, sondern auch bei
der Vektorquantisierung für
einen Parameter mit relativ guter Interpolation in einem Musik-Codierer
und einem Bild-Codierer verwendet werden.Above
the case is explained
in which the present invention in the coding method with lower
Bit rate was applied, as for example
used on a mobile phone. The present invention
However, not only in speech coding, but also in
vector quantization for
a parameter with relatively good interpolation in a music encoder
and a picture coder.
Siebte AusführungSeventh version
Im
Folgenden wird der CELP-Sprachcodierer gemäß der sechsten Ausführung erläutert. Diese
Ausführung
zeigt ein Beispiel eines Codierers, das in der Lage ist, die Anzahl
von Berechnungsschritten von Vektorquantisierungsverarbeitung für ein ACELP-Zufalls-Codebuch zu reduzieren.in the
Next, the CELP speech coder according to the sixth embodiment will be explained. These
execution
shows an example of an encoder that is capable of counting
of calculating steps of vector quantization processing for an ACELP random codebook.
13 zeigt
den Funktionsblock des CELP-Sprachcodierers gemäß dieser Ausführung. In
diesem CELP-Sprachcodierer sorgt ein Filterkoeffizienten-Analyseabschnitt 1002 für die lineare
prädiktive
Analyse von Eingangssprachsignal 1001, um Koeffizienten
des Synthesefilters zu ermitteln, und gibt die ermittelten Koeffizienten
des Synthesefilters an einen Filterkoeffizienten-Quantisierungsabschnitt 1003 aus.
Der Filterkoeffizienten-Quantisierungsabschnitt 1003 quantisiert
die eingegebenen Eingangskoeffizienten des Synthesefilters und gibt
die quantisierten Koeffizienten an ein Synthesefilter 1004 aus. 13 shows the functional block of the CELP speech coder according to this embodiment. In this CELP speech coder, a filter coefficient analysis section provides 1002 for the linear predictive analysis of input speech signal 1001 to obtain coefficients of the synthesis filter, and outputs the obtained coefficients of the synthesis filter to a filter coefficient quantization section 1003 out. The filter coefficient quantization section 1003 quantizes the inputted input coefficients of the synthesis filter and applies the quantized coefficients to a synthesis filter 1004 out.
Das
Synthesefilter 1004 wird durch die von dem Filterkoeffizienten-Quantisierungsabschnitt 1003 zugeführten Filterkoeffizienten
gebildet. Das Synthesefilter 1004 wird durch ein Anregungssignal 1011 angeregt. Das
Anregungssignal 1011 wird gewonnen, indem ein Signal, das
gewonnen wird, indem ein adaptiver Codevektor 1006, d.h.
ein Ausgang von einem adaptiven Codebuch 1005, mit einer
adaptiven Codebuch-Verstärkung 1007 multipliziert
wird, und ein Signal addiert werden, das gewonnen wird, indem ein
Zufalls-Codevektor 1009,
d.h. ein Ausgang von einem Zufalls-Codebuch 1008 mit einer
Zufalls-Codebuch-Verstärkung 1010 multipliziert
wird.The synthesis filter 1004 is passed through by the filter coefficient quantization section 1003 supplied filter coefficients formed. The synthesis filter 1004 is by an excitation signal 1011 stimulated. The excitation signal 1011 is obtained by adding a signal that is obtained by an adaptive codevector 1006 ie an output from an adaptive codebook 1005 , with an adaptive codebook gain 1007 is multiplied, and a signal is added which is obtained by a random codevector 1009 ie an output from a random codebook 1008 with a random codebook gain 1010 is multiplied.
Dabei
ist das adaptive Codebuch 1005 von dem Typ, der eine Vielzahl
adaptiver Codevektoren speichert und das vorherige Anregungssignal
zum Anregen des Synthesefilters bei jedem Pitch-Zyklus extrahiert. Das
Zufalls-Codebuch 1007 ist von dem Typ, der eine Vielzahl
zufälliger
Codevektoren speichert. Das Zufalls-Codebuch 1007 kann
den Anregungsvektorgenerator der erwähnten ersten Ausführung verwenden.Where is the adaptive codebook 1005 of the type which stores a plurality of adaptive code vectors and extracts the previous excitation signal to excite the synthesis filter at each pitch cycle. The random codebook 1007 is of the type that stores a variety of random codevectors. The random codebook 1007 may use the excitation vector generator of the mentioned first embodiment.
Eine
Verzerrungsberechnungseinrichtung 1013 berechnet eine Verzerrung
zwischen einem synthetischen Sprachsignal 1012, d.h. dem
Ausgang des Synthesefilters 1004, das durch das Anregungssignal 1011 angeregt
wird, und dem Eingangs-Sprachsignal 1001, um Codesucheverarbeitung
durchzuführen.
Die Codesucheverarbeitung ist von dem Typ, der den Index des adaptiven
Codevektors 1006 zum Minimieren der Verzerrung, die durch
die Verzerrungsberechnungseinrichtung 1013 berechnet wird,
und den der Zufalls-Verstärkung 1009 spezifiziert.
Gleichzeitig ist die Codesucheverarbeitung von dem Typ, der optimale
Werte der adaptiven Codebuch-Verstärkung 1007 und der
Zu falls-Codebuch-Verstärkung 1010 berechnet,
mit denen die jeweiligen Ausgangsvektoren multipliziert werden.A distortion calculator 1013 calculates a distortion between a synthetic speech signal 1012 , ie the output of the synthesis filter 1004 that by the excitation signal 1011 is excited, and the input speech signal 1001 to perform code search processing. The code search processing is of the type that is the index of the adaptive code vector 1006 to minimize the distortion caused by the distortion calculator 1013 calculated, and that of random gain 1009 specified. At the same time, the code search processing is of the type, the optimal values of the adaptive codebook gain 1007 and the added codebook gain 1010 calculated, with which the respective output vectors are multiplied.
Ein
Codeausgabeabschnitt 10014 gibt den quantisierten Wert
der Filterkoeffizienten, der von dem Filterkoeffizienten-Quantisierungsabschnitt 1003 ermittelt
werden kann, den Index des adaptiven Codevektors 1006,
der durch die Verzerrungsberechnungseinrichtung 1013 ausgewählt wird
und den des Zufalls-Codevektors 1009 sowie die quantisierten
Werte der adaptiven Codebuch-Verstärkung 1007 und der
Zufalls-Codebuch-Verstärkung 1009 aus,
mit denen die jeweiligen Ausgangsvektoren multipliziert werden.
Die Ausgänge von
dem Codeausgabeabschnitt 1014 werden übertragen oder gespeichert.A code output section 10014 gives the quantized value of the filter coefficients, that of the filter coefficient quantization section 1003 can be determined, the index of the adaptive code vector 1006 by the distortion calculation means 1013 and that of the random codevector 1009 and the quantized values of the adaptive codebook gain 1007 and the random codebook gain 1009 from which the respective output vectors are multiplied. The outputs from the code output section 1014 are transmitted or stored.
Bei
der Codesucheverarbeitung in der Verzerrungsberechnungseinrichtung 1013 wird
zunächst
eine adaptive Codebuchkomponente des Anregungssignals gesucht, und
dann wird eine Codebuchkomponente des Anregungssignals gesucht.In the code search processing in the distortion calculator 1013 First, an adaptive codebook component of the excitation signal is searched, and then a codebook component of the excitation signal is searched.
Die
oben beschriebene Suche der Zufalls-Codebuchkomponente verwendet
eine orthogonale Suche, die unten erläutert ist.The
The search of the random codebook component described above is used
an orthogonal search explained below.
Die
orthogonale Suche spezifiziert einen Zufallsvektor c, der einen
Suchbezugswert Eort (= Nort/Dort) von Ausdruck (21) maximiert. wobei
- Nort:
- Zähler-Term für Eort,
- Dort:
- Nenner-Term für Eort,
- p:
- bereits spezifizierter
adaptiver Codevektor,
- H:
- Synthesefilter-Koeffizientenmatrix,
- Hat:
- transponierte Matrix
für H,
- X:
- Ziel-Signal (das ermittelt
wird, indem eine Null-Eingangsantwort des Synthesefilter aus dem
Eingangs-Sprachsignal differenziert wird), und
- c:
- zufälliger Codevektor.
The orthogonal search specifies a random vector c that maximizes a search reference Eort (= Nort / Dort) of Expression (21). in which - Nort:
- Counter term for Eort,
- There:
- Denominator term for Eort,
- p:
- already specified adaptive codevector,
- H:
- Synthesis filter coefficient matrix,
- Has:
- transposed matrix for H,
- X:
- Target signal (which is determined by differentiating a null input response of the synthesis filter from the input speech signal), and
- c:
- random codevector.
Die
orthogonale Suche ist ein Suchverfahren zum Orthogonalisieren zufälliger Codevektoren,
die als Kandidaten in Bezug auf den adaptiven Vektor dienen, der
im Voraus spe zifiziert wird, um den Index, der die Verzerrung minimiert,
aus der Vielzahl orthogonalisierter zufälliger Codevektoren zu spezifizieren.
Die orthogonale Suche ist dadurch charakterisiert, dass eine Genauigkeit
für die
Zufalls-Codebuchsuche verglichen mit einer nicht orthogonalen Suche
verbessert werden kann und die Qualität der synthetischen Sprache
verbessert werden kann.The
orthogonal search is a search method for orthogonalizing random codevectors,
which serve as candidates with respect to the adaptive vector, the
is specified in advance to the index that minimizes the distortion
from the plurality of orthogonalized random codevectors.
The orthogonal search is characterized by an accuracy
for the
Random codebook search compared to non-orthogonal search
can be improved and the quality of the synthetic language
can be improved.
In
dem ACELP-Sprachcodierer wird der Zufalls-Codevektor durch wenige
Impulse mit Vorzeichen gebildet. Durch Verwendung der oben erwähnten Charakteristik
wird der Nenner-Term (Nort) des Such-Bezugswertes, der in Ausdruck
(21) dargestellt ist, zu dem folgenden Ausdruck (22) umgeformt,
um die Anzahl von Berechnungsschritten an dem Nenner-Term zu reduzieren. Nort = {a0ψ(I0) + a1ψ(I1) + ..... + an-1ψ(In-1)}2 (22)wobei
- ai:
- Vorzeichen des i-ten
Impulses (+1/–1),
- Ii:
- Position des i-ten
Impulses,
- N:
- Anzahl von Impulsen,
und
- ψ:
- {(ptHtHp)x – (xtHp)Hp}H.
In the ACELP speech coder, the random codevector is formed by a few signed pulses. By using the above-mentioned characteristic, the denominator term (Nort) of the search reference value shown in Expression (21) is converted to the following Expression (22) to reduce the number of calculation steps at the denominator term. Nort = {a 0 ψ (I 0 ) + a 1 ψ (I 1 ) + ..... + a n-1 ψ (I n-1 )} 2 (22) in which - a i :
- Sign of the ith pulse (+ 1 / -1),
- I i :
- Position of the ith pulse,
- N:
- Number of pulses, and
- ψ:
- {(p t H t Hp) x - (x t Hp) Hp} H.
Wenn
der Wert ψ von
Ausdruck (22) im Voraus als Vorverarbeitung berechnet wird und auf
eine Anordnung ausgedehnt wird, werden (N – 1) Elemente aus Anordnung ψ addiert
oder substituiert, und das Ergebnis wird quadriert, so dass der
Zähler-Term
von Ausdruck (21) berechnet werden kann.If
the value ψ of
Expression (22) is calculated in advance as preprocessing and on
an arrangement is extended, (N-1) elements are added from arrangement ψ
or substituted, and the result is squared, so that the
Counter-Term
from expression (21) can be calculated.
Im
Folgenden wird im Einzelnen die Verzerrungsberechnungseinrichtung 1013 erläutert, die
in der Lage ist, die Anzahl von Berechnungsschritten an dem Nenner-Term
zu reduzieren.In the following, the distortion calculating means will be described in detail 1013 which is capable of reducing the number of calculation steps at the denominator term.
14 zeigt
den Funktionsblock der Verzerrungsberechnungseinrichtung 1013.
Der Sprachcodierer dieser Ausführung
hat den Aufbau, bei dem der adaptive Codevektor 1006 und
der Zufalls-Codevektor 1009 in dem Aufbau in 13 in
die Verzerrungsberechnungseinrichtung 1013 eingegeben werden 14 shows the functional block of the distortion calculator 1013 , The speech coder of this embodiment has the structure in which the adaptive codevector 1006 and the random codevector 1009 in the construction in 13 into the distortion calculator 1013 be entered
In 14 werden
die folgenden drei Verarbeitungsvorgänge als Vorverarbeitung bei
der Berechnung der Verzerrung für
jeden Zufalls-Codevektor ausgeführt.
- 1. Erster Matrix (N) berechnen: Potenz des
synthetisierten adaptiven Codevektors (ptHtHp) und Selbstkorrelationsmatrix der Koeffizienten
(HtH) des Synthesefilters werden berechnet
und jedes Element der Selbstkorrelationsmatrix wird mit der oben
genannten Potenz multipliziert, um Matrix N (= (ptHtHp)HtH) zu berechnen.
- 2. Zweite Matrix (M) berechnen: Zeitumkehrsynthese wird an dem
synthetisierten adaptiven Codevektor durchgeführt, um (ptHtH) zu erzeugen, und äußere Produkte des oben erwähnten resultierenden
Signals (ptHtH)
werden berechnet, um Matrix M zu erzeugen.
- 3. Dritte Matrix (L) erzeugen: Matrix M, die in Position 2.
berechnet wird, wird von Matrix N subtrahiert, die in Position 1.
berechnet wird, um Matrix L zu erzeugen.
In 14 For example, the following three processing operations are performed as preprocessing in the calculation of the distortion for each random code vector. - 1. Calculate First Matrix (N): Potency of the synthesized adaptive codevector (p t H t Hp) and self-correlation matrix of the coefficients (H t H) of the synthesis filter are calculated and each element of the self-correlation matrix is multiplied by the above power to form matrix N (= (p t H t Hp) H t H).
- 2. Calculate Second Matrix (M): Time inverse synthesis is performed on the synthesized adaptive codevector to produce (p t H t H), and outer products of the above-mentioned resultant signal (p t H t H) are calculated to be Matrix M to create.
- 3. Create third matrix (L): Matrix M, calculated in position 2, is subtracted from matrix N, which is computed in position 1 to produce matrix L.
Des
Weiteren kann der Nenner-Term (Dort) von Ausdruck (21), wie in den
folgenden Ausdrücken
(23) expandiert werden. Dort
= (ctHtHc)(ptHtHp) – (ptHtHc)2
=
ctNc – (rtc)2
= ctNc – (rtc)t(rtc)
=
ctNc – (ctrrtc)
= ctNc – (ctMc)
= ct(N – M)c
=
ctLc (23)wobei
- N:
- (ptHtHp)HtH die oben
beschriebene Vorverarbeitung (1.),
- r:
- ptHtH die oben beschriebene Vorverarbeitung
(2.),
- M:
- rrt die
oben beschriebene Vorverarbeitung (2.)
- L:
- N – M die oben beschriebene Vorverarbeitung
(3.),
- c:
- Zufalls-Codevektor.
Furthermore, the denominator term (there) of expression (21) can be expanded as in the following expressions (23). There = (c t H t Hc) (p t H t Hp) - (p t H t hc) 2 = c t Nc - (r t c) 2 = c t Nc - (r t c) t (r t c) = c t Nc - (c t rr t c) = c t Nc - (c t Mc) = c t (N - M) c = c t Lc (23) in which - N:
- (p t H t Hp) H t H the preprocessing described above (1),
- r:
- p t H t H the preprocessing described above (2.),
- M:
- rr t the preprocessing described above (2.)
- L:
- N - M the preprocessing described above (3.),
- c:
- Random code vector.
Dadurch
wird die Berechnung des Nenner-Terms (Dort) bei der Berechnung des
Such-Bezugswertes (Eort)
von Ausdruck 21 durch Ausdruck (23) ersetzt, so dass es möglich wird,
die Zufalls-Codebuchkomponente mit der geringeren Menge an Berechnungen
zu spezifizieren.Thereby
the calculation of the denominator term (there) is used in the calculation of the
Search reference (Eort)
replaced by expression 21 by expression (23) so that it becomes possible
the random codebook component with the smaller amount of computations
to specify.
Die
Berechnung des Nenner-Terms wird unter Verwendung der Matrix L,
die in der oben beschriebenen Vorverarbeitung ermittelt wird, und
des Zufalls-Codevektors 1009 ausgeführt.The calculation of the denominator term is performed using the matrix L determined in the preprocessing described above and the random codevector 1009 executed.
Dabei
wird, um die Erläuterung
zu vereinfachen, das Berechnungsverfahren des Nenner-Terms auf der Basis
von Ausdruck (23) für
einen Fall beschrieben, in dem eine Abtastfrequenz des Eingangs-Sprachsignals
8000 Hz beträgt,
das Zufalls-Codebuch algebraische Struktur hat und seine Codevektoren
durch fünf
Impulseinheiten mit Vorzeichen pro 10-ms-Rahmen konstruiert werden.there
becomes the explanation
to simplify the calculation method of the denominator term on the basis
of expression (23) for
a case is described in which a sampling frequency of the input speech signal
8000 Hz,
the random codebook has algebraic structure and its codevectors
through five
Signed pulse units are constructed per 10 ms frame.
Die
fünf Impulseinheiten
mit Vorzeichen, die den Zufallsvektor bilden, haben Impulse, die
jeweils aus den Kandidaten-Positionen ausgewählt werden, die für jede von
einer 0-ten bis zu einer vierten Gruppe definiert sind, die in Tabelle
2 dargestellt sind, so dass der Zufalls-Vektor c mit dem folgenden
Ausdruck (24) beschrieben werden kann. C = a0δ(k – 10)
+ a1δ(k – 11) + .... a4δ(k – 14) (24)(k
= 0, 1, .....79)
wobei
- ai:
- Vorzeichen (+1/–1) von
Impuls, der zur Gruppe i gehört,
und
- I
- i:
Position von Impuls, der zur Gruppe i gehört.
The five signed sign impulses forming the random vector have pulses selected respectively from the candidate positions defined for each of a 0th to a fourth group, which are shown in Table 2, so that Random vector c can be described by the following expression (24). C = a 0 δ (k - 1 0 ) + a 1 δ (k - 1 1 ) + .... a 4 δ (k - 1 4 ) (24) (k = 0, 1, ..... 79)
in which - a i :
- Sign (+ 1 / -1) of momentum belonging to group i, and
- I
- i : position of impulse belonging to group i.
Tabelle
2 Table 2
Dabei
kann der Nenner-Term (Dort), der mit Ausdruck (23) dargestellt ist,
mit dem folgenden Ausdruck (25) ermittelt werden: wobei
- ai:
- Vorzeichen (+1/–1) von
Impuls, der zur Gruppe i gehört,
- Ii:
- Position von Impuls,
der zur Gruppe i gehört,
und
- L(Ii,
Ij):
- Element (Ii-Reihe und Ij-Spalte
von Matrix L.
Here, the denominator term (there) represented by expression (23) can be obtained by the following expression (25): in which - a i :
- Sign (+ 1 / -1) of impulse belonging to group i,
- I i :
- Position of Impuls, which belongs to group i, and
- L (I i , I j ):
- Element (I i row and I j column of matrix L.
In
dem Fall, in dem das ACELP-Zufalls-Codebuch verwendet wird, kann,
wie oben erläutert,
der Zähler-Term
(Nort) des Codesuch-Bezugswertes von Ausdruck (21) mit Ausdruck
(23) berechnet werden, während der
Nenner-Term (Dort) mit Ausdruck (25) berechnet werden kann. Daher
wird beim Einsatz des ACELP-Zufalls-Codebuchs der Zähler-Term
mit Ausdruck (22) berechnet und der Nenner-Term wird mit Ausdruck
(25) berechnet, anstatt den Bezugswert von Ausdruck (21) direkt
zu berechnen. Dies ermöglicht
es, die Anzahl von Rechenschritten für Vektorquantisierungsverarbeitung
von Zufalls-Anregungen
erheblich zu reduzieren.In
In the case where the ACELP random codebook is used,
as explained above,
the counter term
(Nort) of the code search reference value of Expression (21) with Expression
(23) are calculated during the
Denominator term (there) with expression (25) can be calculated. Therefore
when using the ACELP random codebook, the counter term
is calculated by expression (22) and the denominator term is expressed by expression
(25), instead of the reference value of expression (21) directly
to calculate. this makes possible
it, the number of computing steps for vector quantization processing
from random suggestions
to reduce considerably.
Die
obenstehenden Ausführungen
erläuterten
die Zufallscodesuche ohne Vorauswahl. Die gleiche Wirkung wie oben
beschrieben kann jedoch erzielt werden, wenn die vorliegende Erfindung
auf einen Fall angewendet wird, in dem Vorauswahl auf Basis der
Werte von Ausdruck (22) eingesetzt wird, die Werte von Ausdruck
(21) lediglich für
vorausgewählte
Zufalls-Codevektoren mit Ausdruck (22) und Ausdruck (25) berechnet werden
und schließlich
ein Zufalls-Codevektor ausgewählt
wird, der den oben genannten Such-Bezugswert maximiert.The
above statements
explained
the random code search without preselection. The same effect as above
however, described can be achieved when the present invention
is applied to a case in which preselection based on the
Values of expression (22) is used, the values of expression
(21) only for
preselected
Random codevectors with expression (22) and expression (25) are calculated
and finally
a random codevector is selected
which maximizes the above search reference.