DE10140507A1 - Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers - Google Patents

Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers

Info

Publication number
DE10140507A1
DE10140507A1 DE10140507A DE10140507A DE10140507A1 DE 10140507 A1 DE10140507 A1 DE 10140507A1 DE 10140507 A DE10140507 A DE 10140507A DE 10140507 A DE10140507 A DE 10140507A DE 10140507 A1 DE10140507 A1 DE 10140507A1
Authority
DE
Germany
Prior art keywords
coefficients
combinations
tracks
group
speech signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10140507A
Other languages
English (en)
Inventor
Dietmar Gradl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Philips Intellectual Property and Standards GmbH
Original Assignee
Philips Corporate Intellectual Property GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Corporate Intellectual Property GmbH filed Critical Philips Corporate Intellectual Property GmbH
Priority to DE10140507A priority Critical patent/DE10140507A1/de
Priority to US10/218,219 priority patent/US20030046067A1/en
Priority to EP02102146A priority patent/EP1286331B1/de
Priority to DE50201604T priority patent/DE50201604D1/de
Priority to AT02102146T priority patent/ATE283531T1/de
Priority to JP2002237901A priority patent/JP4261142B2/ja
Publication of DE10140507A1 publication Critical patent/DE10140507A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • G10L2019/0008Algebraic codebooks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers, vorzugsweise nach dem Code Excited Linear Prediction-Verfahren, bei dem zur Berechnung von Koeffizienten der Dreieckmatrix der Autokorrelationsmatrix vom Toeplitz-Typ ein n Sprachsignalabtastungen umfassender Zeitabschnitt in eine ganzzahlige Anzahl Tracks t mit je p möglichen Pulspositionen zerlegt wird, wobei die Koeffizienten gruppiert nach Kombinationen benachbarter Tracks, Kombinationen nicht benachbarter Tracks, Kombinationen gleicher Tracks und Koeffizienten der Hauptdiagonale der Autokorrelationsmatrix in einem Speicher abgelegt werden.

Description

  • Die Erfindung betrifft ein Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers, vorzugsweise nach dem Code Excited Linear Prediction-Verfahren, bei dem zur Berechnung von Koeffizienten der Dreieckmatrix der Autokorrelationsmatrix vom Toeplitz-Typ ein n Sprachsignalabtastungen umfassender Zeitabschnitt in eine ganzzahlige Anzahl Tracks t mit je p möglichen Pulspositionen zerlegt wird. Die Erfindung bezieht sich ebenfalls auf eine Kommunikationseinrichtung, insbesondere ein Mobiltelefon, mit einem Sprachsignalkodierer.
  • Derartige Verfahren kommen bei digitalen Sprachübertragungsverfahren zum Einsatz. Wird ein analoges Sprachsignal mit einer bestimmten Abtastrate in ein digitales Signal umgewandelt, so entsteht eine sehr große Datenmenge, die über einen im Durchsatz begrenzten Funkkanal nicht vollständig übertragen werden kann. Aus diesem Grund muss nach der Digitalisierung des Sprachsignals eine Kompression der Signale vorgenommen werden. Ein Signal wird komprimiert, indem man nichtrelevante Elemente weglässt, sich wiederholende Elemente mit einer Kurzbezeichnung versieht und nur noch diese Kurzbezeichnungen als Kodierungen überträgt. Auf dem Gebiet der Kodierverfahren für Mobilfunkanwendungen hat das CELP-Verfahren (Code Excited Linear Prediction) besondere Bedeutung erlangt. Bei diesem effizienten Kodierverfahren werden als Koeffizienten in einer Autokorrelationsmatrix hinterlegte Klangelemente erkannt und übertragen. Die Autokorrelationsmatrix kann dabei mit einem Notizbuch oder Codebook verglichen werden, von dem nur die Notizbuchadresse übertragen wird. Der Empfänger benötigt zwangsläufig das gleiche Notizbuch, um das empfangene Digitalsignal in ein dem ursprünglichen Signal möglichst ähnliches, analoges Sprachsignal umzuwandeln.
  • Eine Reihe von Kodierern/Dekodierern sind von der ITU international standardisiert, zu diesen gehören die Verfahren CS-ACELP und ACELP, die mit Bitraten von bis zu 8 kbps arbeiten.
  • Bei dem CELP-Verfahren wird zunächst eine LPC-Analyse (linear prediction coeffcient) vorgenommen. Das verbleibende Signal wird anschließend durch einen Suchvorgang in einem adaptiven Codebook quantifiziert. Auf diese Weise werden periodische Anteile des Sprachsignals in einer LTP-Analyse (long term prediction) herausgefiltert. Das verbleibende Signal wird in einem zweiten Codebook quantifiziert, für dieses Verfahren gibt es bereits eine Reihe von Lösungen. Bei dem AMR-Verfahren (adaptive multirate speech codec) wird ein algebraisches Codebook benutzt. Das Prinzip der algebraischen Codebook- Suche beruht darauf, einen Codevektor zu suchen, der einen bestimmten Zeitabschnitt repräsentiert und bei dem eine begrenzte Anzahl von Pulsen eine Amplitude von + 1 oder - 1 besitzt. Diese Codevektor wird durch einen Synthesefilter gefiltert, das heißt auf der Seite des Senders wird der Dekodiervorgang durchgeführt, der nach der Übermittlung des Signals auf der Empfängerseite vorgenommen wird. Eine sehr große Anzahl von möglichen Codevektoren wird durch geschachtelte Suchschleifen systematisch geprüft um denjenigen Codevektor zu bestimmen, der die geringste Fehlerenergie aufweist, d. h. der dem Ursprungssignal möglichst ähnlich ist. Diese iterative Bestimmung des Codevektors beansprucht den größten Teil der Berechnungskapazität eines Mobiltelefons, sodass eine Optimierung dieses Suchalgorithmus besonders effizient ist. Einerseits ist es wünschenswert, die Anzahl der benötigten Speicherstellen zu reduzieren, da die dafür benötigten RAM-Bausteine relativ teuer sind, andererseits wird auch angestrebt, die benötigte Anzahl der Rechenoperationen des Suchalgorithmus zu verringern.
  • Die Autokorrelationsmatrix ist eine Toeplitz-Matrix, das heißt sie ist symmetrisch bezüglich ihrer Hauptdiagonale und ihre obere oder die damit identische untere Dreieckmatrix enthält sämtliche Koeffizienten. Es ist daher bereits vorgeschlagen worden, anstelle der vollständigen Autokorrelationsmatrix lediglich eine der Dreieckmatrizen zu speichern, um Speicherplatz einzusparen. Dieses Verfahren führt jedoch zu einer komplizierteren Adressierung der einzelnen Koeffizienten, sodass der Einsparung von Speicherplatz eine Erhöhung des Rechenaufwands gegenübersteht.
  • Der Erfindung liegt daher das Problem zugrunde, ein Verfahren anzugeben, bei dem der Speicherplatzbedarf und der Berechnungsaufwand verringert sind.
  • Zur Lösung dieses Problems ist bei einem Verfahren der eingangs genannten Art erfindungsgemäß vorgesehen, dass die Koeffizienten gruppiert nach Kombinationen benachbarter Tracks; Kombinationen nicht benachbarter Tracks; Kombinationen gleicher Tracks; und Koeffizienten der Hauptdiagonale der Autokorrelationsmatrix in einem Speicher abgelegt werden.
  • Bei dem erfindungsgemäßen Verfahren werden die benötigten Koeffizienten der Autokorrelationsmatrix in einer Weise gespeichert, die einen schnellen, sequentiellen Zugriff erlaubt. Die ansonsten zusätzlich erforderliche, relativ aufwändige Berechnung der Speicheradressen der Koeffizienten der Dreieckmatrix kann wesentlich vereinfacht werden. Einige Koeffizienten werden sehr häufig benötigt, andere dagegen sehr selten. Dieser Umstand wird bei der optimierten Gruppierung der ausgenutzt, sodass die häufig benötigten Koeffizienten der Autokorrelationsmatrix einfacher adressiert werden können, was in einem sehr schnellen Zugriff resultiert.
  • Die Erfindung sieht vor, dass für die Gruppen der Kombinationen benachbarter und nicht benachbarter Tracks jeweils t Datensätze mit je p × p Koeffizienten gespeichert werden. Eine in der Praxis sehr wichtige Betriebsart des CELP- bzw. ACELP-Verfahrens sieht vor, dass die Positionen zweier benachbarter Pulse gleichzeitig festgelegt werden, so dass sich bei p möglichen Pulspositionen pro Codevektor p × p Durchläufe der Suchschleife ergeben.
  • Ein äußerst schneller und einfacher Zugriff auf die in der Suchschleife benötigten Koeffizienten lässt sich erzielen, wenn die Koeffizienten sequentiell in einem Speicher abgelegt werden.
  • In weiterer Ausgestaltung der Erfindung ist vorgesehen, dass eine einen horizontalen oder vertikalen Vektor der Autokorrelationsmatrix darstellende Untergruppe eines Datensatzes mit p Koeffizienten durch eine Programmschleife ausgelesen wird, wobei ein die Speicherstelle des ersten Koeffizienten bezeichnender Wert und eine konstante Schrittweite bis zur nächsten Speicherstelle vorgegeben werden. Demnach genügt es, einen Anfangs- oder Startwert für die erste Speicheradresse und die Schrittweite, d. h. die Anzahl der Speicherstellen bis zur jeweils nächsten Speicherstelle festzulegen. Es kann vorgesehen sein, dass die Startwerte einer in einem Festspeicher abgelegten Nachschlagetabelle entnommen werden, alternativ werden sie jeweils berechnet.
  • Zweckmäßig wird für die Datensätze der Gruppe der Kombinationen benachbarter Tracks die Schrittweite eins gewählt. Die Koeffizienten werden sequentiell gespeichert und lassen sich besonders einfach auslesen.
  • Für die Datensätze der Gruppe der Kombinationen nicht benachbarter Tracks empfiehlt es sich, die Schrittweite p zu wählen.
  • Zur Verringerung des Speicherplatzbedarfs können für die Gruppe der Kombinationen gleicher Tracks t Dreieckmatrizen sequentiell gespeichert werden. Jeder Kombination gleicher Tracks entspricht dabei eine Dreieckmatrix und alle t Dreieckmatrizen werden in einem Block gespeichert. Da diese Koeffizienten verhältnismäßig selten benötigt werden ist es kein Nachteil, wenn der Zugriff etwas aufwändiger ist. Um den Rechenaufwand weiter zu reduzieren, kann der Zugriff auch über eine Nachschlagetabelle erfolgen.
  • Die Koeffizienten der Hauptdiagonale werden in einer Gruppe zusammengefasst und sequentiell gespeichert.
  • Es hat sich als günstig herausgestellt, wenn innerhalb eines Zeitabschnitts 40 Sprachsignalabtastungen erfasst werden. Wenn dieser Wert gewählt wird ist das Verfahren mit den international festgelegten Regelungen kompatibel. Bei einer typischen Abtastrate von 8 kHz für das Sprachsignal dauert ein Zeitabschnitt 20 msec, innerhalb dieses kurzen Zeitabschnittes kann das Sprachsignal als quasistationär angesehen und durch einen Codevektor wiedergegeben werden.
  • Die Autokorrelationsmatrix ist vorzugsweise eine 40 × 40-Matrix, entsprechend den 40 Sprachsignalabtastungen in einem Zeitfenster.
  • Zur Verringerung der Anzahl der Iterationen ist bei dem erfindungsgemäßen Verfahren vorgesehen, dass ein Zeitabschnitt in eine ganzzahlige Anzahl gleichlanger Tracks zerlegt wird. Bevorzugt wird dabei die Zerlegung eines Zeitabschnitts in 5 Tracks mit je 8 Pulspositionen oder die Zerlegung in 4 Tracks mit je 10 Pulspositionen.
  • Ein besonders schneller Zugriff auf die Koeffizienten wird ermöglicht, wenn die Koeffizientengruppen der Kombinationen benachbarter und nicht benachbarter Tracks aus einer Mehrzahl von je 64 Koeffizienten umfassenden Blöcken gebildet werden. Auf diese Koeffizientengruppen muss während der Iteration besonders oft zurückgegriffen werden. Diese Gruppen werden daher in der Reihenfolge gespeichert, in der sie für die Berechnung benötigt werden, sodass auf sie schnell zugegriffen werden kann, was zu einer Verringerung des Rechenaufwands führt.
  • Besonders gute Ergebnisse lassen sich erzielen, wenn für die Koeffizientengruppe der Kombinationen benachbarter Tracks 320 Werte ermittelt werden. Für die Koeffizientengruppe der Kombinationen nicht benachbarter Tracks werden zweckmäßig ebenfalls 320 Werte ermittelt. Die Koeffizientengruppe der Kombinationen gleicher Tracks enthält 140 Werte, zusammen mit den Koeffizienten der Hauptdiagonale werden insgesamt 820 Koeffizienten ermittelt.
  • Eine weitere Steigerung der Berechnungsgeschwindigkeit lässt sich erzielen, wenn der Speicher mehrere RAM-Speicherbänke aufweist und Koeffizientengruppen in unterschiedlichen RAM-Speicherbänken gespeichert werden. Sind Koeffizientengruppen in unterschiedlichen RAM-Speicherbänken gespeichert, so kann parallel darauf zugegriffen werden, d. h. zwei Koeffizienten können gleichzeitig gelesen werden. Die Speicherzugriffszeit lässt sich dadurch annähernd halbieren.
  • Das erfindungsgemäße Verfahren kann mit besonderem Vorteil in das Betriebssystem eines Mobiltelefons integriert werden.
  • Weitere Vorteile und Einzelheiten der Erfindung ergeben sich aus der Beschreibung eines besonders geeigneten Ausführungsbeispiels und den Figuren. Die Figuren sind schematische Darstellungen und zeigen:
  • Fig. 1 die Zerlegung eines Zeitabschnitts in 4 Tracks mit je 10 möglichen Pulspositionen;
  • Fig. 2 eine Tabelle der zu testenden Track-/Pulskombinationen;
  • Fig. 3 eine Tabelle der benachbarten und nicht benachbarten Tracks;
  • Fig. 4 eine Dreieckmatrix mit Koeffizienten einer Kombination gleicher Tracks;
  • Fig. 5 die Koeffizienten der Hauptdiagonale;
  • Fig. 6 eine Gesamtübersicht aller zu berechnenden Koeffizienten;
  • Fig. 7 die Berechnung der Gruppe der Kombinationen benachbarter Tracks (Block 1);
  • Fig. 8 die Speicherreihenfolge von Block 1 nach dem ersten Schritt;
  • Fig. 9 die Speicherreihenfolge von Block 1 nach dem zweiten Schritt;
  • Fig. 10 die Berechnung der Gruppe der Kombinationen nicht benachbarter Tracks (Block 2);
  • Fig. 11 die Speicherreihenfolge von Block 2 nach dem ersten Schritt;
  • Fig. 12 die Speicherreihenfolge von Block 2 nach dem zweiten Schritt;
  • Fig. 13 die Berechnung des Blocks mit den Werten gleicher Tracks (Block 3); und
  • Fig. 14 die Speicherplatzreihenfolge von Block 3.
  • Durch einen iterativen Suchvorgang soll derjenige Codevektor ermittelt werden, der mit dem echten Signal am besten übereinstimmt, d. h. dessen Fehlerenergie minimal ist. Innerhalb des Suchvorgangs werden die Pulse nacheinander festgelegt, sodass sich die Anzahl der Variablen im Laufe der Suche verringert.
  • Die Tabelle von Fig. 1 zeigt die Zerlegung eines 40 Sprachsignalabtastungen umfassenden Zeitabschnitts in vier Tracks mit je zehn Pulspositionen. Eine andere Zerlegung, die in der Praxis von Bedeutung ist, sieht eine Zerlegung in fünf Tracks mit je acht möglichen Pulspositionen vor. Für jeden Puls ist festgelegt, in welchen Track er gesetzt werden kann. Der erste Puls kann daher nur an 10 (bzw. 8) Positionen gesetzt werden, anstatt an allen 40 Positionen. Iterativ wird diejenige Pulsposition ausgewählt, die den geringsten Energiefehler aufweist. Anschließend wird die nächste Pulsposition unter Berücksichtigung der bereits festgelegten ersten Pulsposition iterativ bestimmt. Dieses Verfahren wird für alle Pulse durchgeführt.
  • Bei bestimmten häufig vorkommenden Betriebsarten werden zwei benachbarte Pulse gleichzeitig bestimmt. Dazu werden alle Kombinationen zweier Pulse berechnet und das beste Pulspaar unter Berücksichtigung der bereits gesetzten Pulspaare bestimmt. Bei einer Betriebsart, bei der ein Track acht Pulspositionen umfasst, sind 8 × 8 = 64 Berechnungen erforderlich, bei einem Track mit 10 Pulspositionen müssen 10 × 10 = 100 Berechnungen für jedes Pulspaar durchgeführt werden. Das folgenden Beispiel bezieht sich auf das Verfahren, bei dem ein Pulspaar gleichzeitig bestimmt wird.
  • Fig. 2 zeigt eine Tabelle der zu testenden Track-/Pulskombinationen für die Betriebsart, bei der acht Pulse gesetzt werden. Der erste Puls Ip0 wird in den Track gesetzt, in dem sich das Maximum des zurückgefilterten Zielsignals befindet. Diese Festlegung erfolgt vor der eigentlichen Suchschleife, sie gilt für die gesamte Suchschleife. In dem dargestellten Ausführungsbeispiel befand sich das Maximum des zurückgefilterten Zielsignals in Track 2. Daher wird dieser Wert für den Puls Ip0 bei allen Iterationen festgehalten. Der zweite Puls Ip1 wird bestimmt, indem alle 8 möglichen Pulspositionen eines Tracks bestimmt werden. Wie Fig. 2 entnommen werden kann, werden in Iteration 1 die 8 Positionen von Track 3 getestet. Diejenige Pulsposition von Track 3 mit dem geringsten Energiefehler wird ausgewählt. Nach der Festlegung von Ip0 und Ip1 werden die 64 möglichen Kombination der Pulse Ip2 und Ip3 getestet. Wie Fig. 2 entnommen werden kann, muss Ip2 für die erste Iteration in Track 4 und Ip3 in Track 0 gefunden werden. Anschließend werden die Pulspaare Ip4-Ip5, Ip6-Ip7 und Ip8-Ip9 nach dem gleichen Verfahren festgelegt. Nachdem alle Kombinationen geprüft sind, der Codevektor mit minimalem Energiefehler gespeichert und Iteration 2 wird analog durchgeführt. Der Puls mit dem geringsten Energiefehler wird ausgewählt. Der Codevektor dieser Iteration ist dem Zielvektor am ähnlichsten. Für jede Iteration sind vier Pulspaare zu überprüfen, insgesamt also 4 × 64 = 256 Berechnungen. Bei vier Iterationen sind somit 1024 Berechnungen durchzuführen.
  • Fig. 3 zeigt eine Tabelle der benachbarten und nicht benachbarten Tracks, die gemeinsam geprüft werden. Aus Fig. 2 ist ersichtlich, dass bestimmte Kombinationen von Tracks häufig auftreten, z. B. Tr0-Tr1, Tr1-Tr3, während andere überhaupt nicht vorkommen. Von allen denkbaren Codevektoren wird nur eine kleine Auswahl geprüft. Die linke Spalte von Fig. 3 enthält die für den Suchvorgang erforderlich benachbarten Tracks. Der Suchvorgang gliedert sich in die eigentliche Suchschleife, in der auf einen Block von 64 Werten der Autokorrelationsmatrix zugegriffen wird, wobei für vier Iterationen mit je vier Pulspaaren mit je 64 Werten insgesamt 1024 Matrixzugriffe erfolgen.
  • Außerhalb der Suchschleife wird auf je acht Werte zugegriffen, insgesamt erfolgen 1280 Zugriffe auf die Autokorrelationsmatrix. Bei herkömmlichen Verfahren wird die gesamte Autokorrelationsmatrix mit 40 × 40 = 1600 Werten gespeichert. Da jedoch jeweils Blocks von 64 Werten benötigt werden, werden sie gemeinsam gespeichert. Die Reihenfolge innerhalb des Blocks wird so gewählt, dass auf die Werte durch eine Programmschleife konstanter Schrittweite zugegriffen werden kann, ohne dass eine umständliche Berechnung von Speicheradressen erforderlich ist.
  • Wie der linken Spalte von Fig. 3 zu entnehmen ist, existieren fünf Gruppen mit je 64 Werten benachbarter Tracks mit insgesamt 320 Werten. Ebenso gibt es fünf Kombinationen von nicht benachbarten Tracks gibt, die jeweils 64 Werte umfassen, sodass auch hier insgesamt 320 Werte berechnet werden müssen.
  • Fig. 4 zeigt eine Diagonalmatrix mit den Koeffizienten einer Kombination zweier gleicher Tracks, beispielsweise Tr0-Tr0. Diese Dreiecksmatrix enthält 28 Koeffizienten. Aus den fünf Kombinationen gleicher Tracks wird ein Block von insgesamt 140 Werten gebildet.
  • Der Zugriff auf diesen Block erfolgt nur relativ selten, lediglich 10% aller Zugriffe fallen in diese Kategorie. Aus diesem Grund ist es kein Nachteil, dass der Zugriff, das heißt die Adressierung der Koeffizienten etwas umständlicher ist. Es ist auch denkbar, für den Zugriff eine Zuordnungstabelle zu verwenden.
  • Fig. 5 zeigt die Koeffizienten der Hauptdiagonalen. Da insgesamt 40 Signalabtastungen in einem Zeitabschnitt vorgenommen werden, enthält die Hauptdiagonale 40 Elemente, die in einem Block sequentiell gespeichert werden.
  • Insgesamt sind 320 Koeffizienten der Kombinationen benachbarter Tracks, 320 Koeffizienten der Kombinationen nicht benachbarter Tracks, 140 Koeffizienten der Kombinationen gleicher Tracks und 40 Koeffizienten der Hauptdiagonale zu berechnen, zusammen 820 Koeffizienten.
  • In Fig. 6 sind sämtliche zu berechnenden Koeffizienten gruppenweise dargestellt. Jedes der ellipsenförmigen Symbole bezeichnet eine Untergruppe mit einer bestimmten Anzahl von Koeffizienten. Bei den Blocks 1 und 2 umfasst jede Untergruppe acht Koeffizienten, im Block 4 jeweils fünf Koeffizienten. Die Anzahl der Koeffizienten im Block 3 ist wegen der Diagonalmatrix unterschiedlich.
  • Die Berechnung der einzelnen Blocks wird nun näher erläutert. Jeder der Blocks 1 bis 4 kann getrennt berechnet werden. Die Erzeugung der Blocks 1 und 2 ist praktisch identisch, sie erfolgt in zwei Schritten. In Fig. 7 sind diese Schritte für Block 1 dargestellt. Der erste Schritt beginnt bei dem Wert (38/39) der Autokorrelationsmatrix. Die Matrix wird dabei diagonal durchlaufen, bis die in Fig. 7 eingezeichnete Diagonale den Wert (0/1) erreicht. Dieser Endwert ist mit 'A' bezeichnet und setzt sich bei dem mit 'A' gekennzeichneten Wert (33/39) auf der rechten Seite fort. Entsprechendes gilt für das Symbol 'B'.
  • Die Speicherreihenfolge von Block 1 nach dem ersten Schritt ist in Fig. 8 dargestellt, die Pfeile geben dabei an, in welcher Reihenfolge die Koeffizienten aus der Autokorrelationsmatrix in die 8 × 8 Werte umfassenden Blocks gespeichert werden. Der zweite Teilschritt beginnt bei dem Wert (35/39), wie in Fig. 7 gezeigt ist. Diese Diagonale läuft zum Wert (0/4), der zweite Teil beginnt bei dem Wert (30/39) usw.
  • In Fig. 9 ist die Speicherreihenfolge von Block 1 nach dem zweiten Teilschritt dargestellt. Alle Werte, die bereits in dem ersten Schritt gespeichert wurden, sind in Fig. 9 mit schwarzen Punkten markiert. Durch diese zwei Schritte wird der gesamte Block gefüllt. Die erste Zeile enthält die Korrelationswerte von Track0-Track1 die zweite Zeile die Korrelationswerte von Track1-Track2 usw., entsprechend Fig. 7.
  • Fig. 10 zeigt die Berechnung des Blocks 2 mit den Werten nicht benachbarter Tracks, der auf die gleiche Weise erzeugt werden kann. Analog zu Block 1 sind in Fig. 10 die benötigten Diagonalen eingezeichnet. Der erste Teil beginnt bei dem Wert (37/39). Diese Diagonale läuft bis zum Wert (0/2), der erste Teil wird bei dem Wert (32/39) fortgesetzt.
  • Fig. 11 stellt die Speicherplatzreihenfolge von Block 2 nach diesem ersten Schritt dar. Der zweite Teil beginnt bei dem Wert (36/39). Die Diagonale läuft bis zum Wert (0/3), der zweite Teil wird bei dem Wert (31/39) fortgesetzt.
  • In Fig. 12 ist die Speicherplatzreihenfolge von Block 2 nach dem zweiten Schritt dargestellt. Alle Werte, die bereits in dem ersten Schritt gespeichert wurden, sind mit Punkten markiert.
  • Fig. 13 stellt die Berechnung des Blocks der Kombinationen gleicher Tracks dar. Analog zu den vorherigen Beispielen sind die benötigten Diagonalen eingezeichnet. Block 3 kann in einem einzigen Durchlauf berechnet werden. Die Speicherplatzreihenfolge von Block 3 ist in Fig. 14 dargestellt.
  • Bei den Koeffizienten für Block 4 handelt es sich um die Werte der Hauptdiagonalen der Autokorrelationsmatrix.
  • Im Vergleich zu der herkömmlichen Lösung, bei der 1600 Koeffizienten berechnet und gespeichert werden, sind bei diesem Verfahren lediglich 820 Koeffizienten zu berechnen. Dadurch ergibt sind eine Verringerung des Rechenaufwands von annähernd 30%. Der RAM-Speicherbedarf wird um etwa 40% verkürzt.
  • Zur weiteren Verkürzung der Rechenzeit werden die Blocks 1 und 2 in separaten RAM- Speicherbänken eines Speichers abgelegt, so dass zwei Werte gleichzeitig ausgelesen werden können.

Claims (19)

1. Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers, vorzugsweise nach dem Code Excited Linear Prediction-Verfahren, bei dem zur Berechnung von Koeffizienten der Dreieckmatrix der Autokorrelationsmatrix vom Toeplitz-Typ ein n Sprachsignalabtastungen umfassender Zeitabschnitt in eine ganzzahlige Anzahl Tracks t mit je p möglichen Pulspositionen zerlegt wird, dadurch gekennzeichnet, dass die Koeffizienten gruppiert nach
Kombinationen benachbarter Tracks;
Kombinationen nicht benachbarter Tracks;
Kombinationen gleicher Tracks; und
Koeffizienten der Hauptdiagonale der Autokorrelationsmatrix in einem Speicher abgelegt werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für die Gruppen der Kombinationen benachbarter und nicht benachbarter Tracks jeweils t Datensätze mit je p × p Koeffizienten gespeichert werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Koeffizienten sequentiell in einem Speicher abgelegt werden.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass eine einen horizontalen oder vertikalen Vektor der Autokorrelationsmatrix darstellende Untergruppe eines Datensatzes mit p Koeffizienten durch eine Programmschleife ausgelesen wird, wobei ein die Speicherstelle des ersten Koeffizienten bezeichnender Wert und eine konstante Schrittweite bis zur nächsten Speicherstelle vorgegeben werden.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass für die Datensätzen der Gruppe der Kombinationen benachbarter Tracks die Schrittweite eins gewählt wird.
6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass für die Datensätzen der Gruppe der Kombinationen nicht benachbarter Tracks die Schrittweite p gewählt wird.
7. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für die Gruppe der Kombinationen gleicher Tracks t Dreieckmatrizen sequentiell gespeichert werden.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Zugriff auf die Koeffizienten der Gruppe gleicher Tracks über eine Nachschlagetabelle erfolgt.
9. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Koeffizienten der Hauptdiagonale sequentiell gespeichert werden.
10. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass innerhalb eines Zeitabschnitts 40 Sprachsignalabtastungen erfasst werden.
11. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Autokorrelationsmatrix eine 40 × 40-Matrix ist.
12. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass ein Zeitabschnitt in fünf Tracks mit je acht möglichen Pulspositionen zerlegt wird.
13. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass ein Zeitabschnitt in vier Tracks mit je zehn möglichen Pulspositionen zerlegt wird.
14. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für die Gruppe der Kombinationen benachbarter Tracks 320 Koeffizienten ermittelt werden.
15. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für die Gruppe der Kombinationen nicht benachbarter Tracks 320 Koeffizienten ermittelt werden.
16. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für die Gruppe der Kombinationen gleicher Tracks 140 Koeffizienten ermittelt werden.
17. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass insgesamt 820 Koeffizienten ermittelt werden.
18. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Koeffizientengruppen in verschiedenen RAM-Speicherbänken eines mehrere RAM Speicherbänke aufweisenden Speichers gespeichert werden.
19. Kommunikationseinrichtung mit einem Sprachsignalkodierer, insbesondere Mobiltelefon, dadurch gekennzeichnet, dass es ein Betriebssystem mit einem Verfahren nach einem der Ansprüche 1 bis 18 aufweist.
DE10140507A 2001-08-17 2001-08-17 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers Withdrawn DE10140507A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE10140507A DE10140507A1 (de) 2001-08-17 2001-08-17 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
US10/218,219 US20030046067A1 (en) 2001-08-17 2002-08-13 Method for the algebraic codebook search of a speech signal encoder
EP02102146A EP1286331B1 (de) 2001-08-17 2002-08-16 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
DE50201604T DE50201604D1 (de) 2001-08-17 2002-08-16 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
AT02102146T ATE283531T1 (de) 2001-08-17 2002-08-16 Verfahren für die algebraische codebook-suche eines sprachsignalkodierers
JP2002237901A JP4261142B2 (ja) 2001-08-17 2002-08-19 音声信号符号化器の代数的符号ブック検索方法および音声信号符号化器を有する通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10140507A DE10140507A1 (de) 2001-08-17 2001-08-17 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers

Publications (1)

Publication Number Publication Date
DE10140507A1 true DE10140507A1 (de) 2003-02-27

Family

ID=7695835

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10140507A Withdrawn DE10140507A1 (de) 2001-08-17 2001-08-17 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
DE50201604T Expired - Lifetime DE50201604D1 (de) 2001-08-17 2002-08-16 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE50201604T Expired - Lifetime DE50201604D1 (de) 2001-08-17 2002-08-16 Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers

Country Status (5)

Country Link
US (1) US20030046067A1 (de)
EP (1) EP1286331B1 (de)
JP (1) JP4261142B2 (de)
AT (1) ATE283531T1 (de)
DE (2) DE10140507A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698132B2 (en) * 2002-12-17 2010-04-13 Qualcomm Incorporated Sub-sampled excitation waveform codebooks
US7249014B2 (en) * 2003-03-13 2007-07-24 Intel Corporation Apparatus, methods and articles incorporating a fast algebraic codebook search technique
JP3981399B1 (ja) 2006-03-10 2007-09-26 松下電器産業株式会社 固定符号帳探索装置および固定符号帳探索方法
JP4353202B2 (ja) 2006-05-25 2009-10-28 ソニー株式会社 韻律識別装置及び方法、並びに音声認識装置及び方法
US20080120098A1 (en) * 2006-11-21 2008-05-22 Nokia Corporation Complexity Adjustment for a Signal Encoder
WO2008134804A1 (en) * 2007-05-03 2008-11-13 Kevin Loughrey Large number id tagging system
CN100530357C (zh) * 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
CN100578619C (zh) * 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
TWI384767B (zh) * 2008-11-21 2013-02-01 Univ Nat Chiao Tung 用以分群一編碼簿以及自該編碼簿選取一預編碼字之方法、裝置及其電腦程式產品
US20100153100A1 (en) * 2008-12-11 2010-06-17 Electronics And Telecommunications Research Institute Address generator for searching algebraic codebook
KR101551046B1 (ko) 2011-02-14 2015-09-07 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 저-지연 통합 스피치 및 오디오 코딩에서 에러 은닉을 위한 장치 및 방법
KR101525185B1 (ko) 2011-02-14 2015-06-02 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 트랜지언트 검출 및 품질 결과를 사용하여 일부분의 오디오 신호를 코딩하기 위한 장치 및 방법
ES2639646T3 (es) * 2011-02-14 2017-10-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificación y decodificación de posiciones de impulso de pistas de una señal de audio
CN103477387B (zh) 2011-02-14 2015-11-25 弗兰霍菲尔运输应用研究公司 使用频谱域噪声整形的基于线性预测的编码方案
BR112013020482B1 (pt) 2011-02-14 2021-02-23 Fraunhofer Ges Forschung aparelho e método para processar um sinal de áudio decodificado em um domínio espectral
PL2676264T3 (pl) 2011-02-14 2015-06-30 Fraunhofer Ges Forschung Koder audio estymujący szum tła podczas faz aktywnych
MY166394A (en) 2011-02-14 2018-06-25 Fraunhofer Ges Forschung Information signal representation using lapped transform
MX347921B (es) * 2012-10-05 2017-05-17 Fraunhofer Ges Forschung Un aparato para la codificacion de una señal de voz que emplea prediccion lineal excitada por codigos algebraico en el dominio de autocorrelacion.
US11016844B2 (en) * 2019-03-15 2021-05-25 Toshiba Memory Corporation Error correction code structure

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69131779T2 (de) * 1990-12-21 2004-09-09 British Telecommunications P.L.C. Sprachcodierung
FR2729245B1 (fr) * 1995-01-06 1997-04-11 Lamblin Claude Procede de codage de parole a prediction lineaire et excitation par codes algebriques
US5956757A (en) * 1996-03-22 1999-09-21 Adaptec, Inc. Method and apparatus for generating addresses
US5751901A (en) * 1996-07-31 1998-05-12 Qualcomm Incorporated Method for searching an excitation codebook in a code excited linear prediction (CELP) coder
US5924062A (en) * 1997-07-01 1999-07-13 Nokia Mobile Phones ACLEP codec with modified autocorrelation matrix storage and search
KR100510399B1 (ko) * 1998-02-17 2005-08-30 모토로라 인코포레이티드 고정 코드북내의 최적 벡터의 고속 결정 방법 및 장치
US6556966B1 (en) * 1998-08-24 2003-04-29 Conexant Systems, Inc. Codebook structure for changeable pulse multimode speech coding
US6545833B1 (en) * 1999-05-07 2003-04-08 Seagate Technology Llc Method to eliminate reassignments
US6415255B1 (en) * 1999-06-10 2002-07-02 Nec Electronics, Inc. Apparatus and method for an array processing accelerator for a digital signal processor
US6847929B2 (en) * 2000-10-12 2005-01-25 Texas Instruments Incorporated Algebraic codebook system and method

Also Published As

Publication number Publication date
ATE283531T1 (de) 2004-12-15
JP4261142B2 (ja) 2009-04-30
EP1286331A1 (de) 2003-02-26
EP1286331B1 (de) 2004-11-24
US20030046067A1 (en) 2003-03-06
DE50201604D1 (de) 2004-12-30
JP2003108199A (ja) 2003-04-11

Similar Documents

Publication Publication Date Title
EP1286331B1 (de) Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
DE69604729T2 (de) Verfahren zur sprachkodierung mittels linearer prädiktion und anregung durch algebraische kodes
DE19604273C2 (de) Verfahren und Vorrichtung zum Durchführen einer Suche in einem Kodebuch im Hinblick auf das Kodieren eines Klangsignales, Zellkommunikationssystem, Zellnetzwerkelement und mobile Zell-Sender-/Empfänger-Einheit
DE69613360T2 (de) Linear-prädiktiver analyse-durch-synthese sprachkodierer
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE69838305T2 (de) Orthogonalisierungssuche für die CELP basierte Sprachkodierung
DE69420431T2 (de) Sprachkodierungssystem
DE69412294T2 (de) System zur prädiktiven Kodierung/Dekodierung eines digitalen Sprachsignals mittels einer adaptiven Transformation mit eingebetteten Kodes
DE69531642T2 (de) Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE69900786T2 (de) Sprachkodierung
DE69214969T2 (de) Verfahren und Vorrichtung zur Erzeugung von Hilfsinformationen zur Ausführung einer Suche in einem Kodebuch mit geringer Dichte
DE69426860T2 (de) Sprachcodierer und Verfahren zum Suchen von Codebüchern
DE19609170A1 (de) Verfahren zur Durchführung einer "Tiefe-Zuerst"-Suche in einem Codebuch zur Codierung eines Geräusch- bzw. Klangsignals, Vorrichtung zur Durchführung dieses Verfahrens sowie zellulares Kommunikationssystem mit einer derartigen Vorrichtung
DE69033510T3 (de) Numerischer sprachcodierer mit verbesserter langzeitvorhersage durch subabtastauflösung
DE69124210T2 (de) Einrichtung zur Signalcodierung
EP0285221A2 (de) Verfahren zum Erkennen kontinuierlich gesprochener Wörter
EP1080464B1 (de) Verfahren und anordnung zur sprachcodierung
DE69609089T2 (de) Sprachkodierer mit aus aktuellen und vorhergehenden Rahmen extrahierten Merkmalen
DE69624449T2 (de) Vorrichtung zur Sprachkodierung
DE69126347T2 (de) Methode zur Verminderung der Schwierigkeit der Suchen in Analyse-durch-Synthese-Kodierung
DE60016305T2 (de) Verfahren zum Betrieb eines Sprachkodierers
DE69232166T2 (de) Fehlerschutz für vielfachmodensprachkodierer
DE69324732T2 (de) Selektive Anwendung von Sprachkodierungstechniken
DE69026843T2 (de) Linearer Prädiktivkodierer mit Code-Anregung für Sprach- oder Audiosignale mit niedriger Verzögerung
DE69321444T2 (de) Verfahren und Vorrichtung für Sprachkodierung auf der Basis von Analyse-durch-Synthesetechniken

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: PHILIPS INTELLECTUAL PROPERTY & STANDARDS GMBH, 20

8139 Disposal/non-payment of the annual fee