DE602004012600T2 - Transcodierung zwischen den indizes von mehrimpuls-wörterbüchern zur codierung bei der digitalen signalkomprimierung - Google Patents

Transcodierung zwischen den indizes von mehrimpuls-wörterbüchern zur codierung bei der digitalen signalkomprimierung Download PDF

Info

Publication number
DE602004012600T2
DE602004012600T2 DE602004012600T DE602004012600T DE602004012600T2 DE 602004012600 T2 DE602004012600 T2 DE 602004012600T2 DE 602004012600 T DE602004012600 T DE 602004012600T DE 602004012600 T DE602004012600 T DE 602004012600T DE 602004012600 T2 DE602004012600 T2 DE 602004012600T2
Authority
DE
Germany
Prior art keywords
positions
pulse
encoder
format
subframe
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004012600T
Other languages
English (en)
Other versions
DE602004012600D1 (de
Inventor
Claude Lamblin
Mohamed Ghenania
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.)
Orange SA
Original Assignee
France Telecom SA
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 France Telecom SA filed Critical France Telecom SA
Publication of DE602004012600D1 publication Critical patent/DE602004012600D1/de
Application granted granted Critical
Publication of DE602004012600T2 publication Critical patent/DE602004012600T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/16Vocoder architecture
    • G10L19/173Transcoding, i.e. converting between two coded representations avoiding cascaded coding-decoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

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)
  • Analogue/Digital Conversion (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

  • Die vorliegende Erfindung betrifft die Codierung/Decodierung von digitalen Signalen, insbesondere in Übertragungs- oder Speicheranwendungen von Multimediasignalen wie den Audiosignalen (Sprache und/oder Töne).
  • Auf dem Gebiet der Kompressionscodierung modellisieren viele Codierer ein Signal von L Tastproben durch Impulse in einer beschränkten Anzahl, sehr viel niedriger als die Gesamtzahl von Tastproben. Dies ist zum Beispiel bei bestimmten Audiofrequenz-Codierern wie dem Audiocodierer "TDAC" der Fall, der insbesondere in der veröffentlichten Druckschrift US-2001/027393 beschrieben ist. In diesem Codierer werden die Koeffizienten einer veränderten diskreten Cosinus-Transformation, die in jedem Band normiert sind, von Vektorquantifizierern quantifiziert, die in Größe verschachtelte algebraische Wörterbücher verwenden, wobei diese algebraischen Codes im Allgemeinen einige Komponenten ungleich Null aufweisen, während die anderen Komponenten gleich Null sind. Dies ist auch der Fall beiden meisten Sprachcodierern mit Analyse durch Synthese, insbesondere vom Typ "ACELP" (für "Algebraic Code Excited Linear Prediction"), vom Typ MP-MLQ (für "MultiPulse Maximum Likelihood Quantization"), oder andere. Um das Innovationssignal zu modellisieren, verwenden diese Codierer nämlich ein Verzeichnis, das aus Wellenformen zusammengesetzt ist, die sehr wenige Komponenten ungleich Null haben, deren Positionen und die Amplituden außerdem vorbestimmten Regeln gehorchen.
  • Nachfolgend werden solche Codierer mit Analyse durch Synthese kurz beschrieben.
  • Bei diesen Codierern mit Analyse durch Synthese wird das Synthesemodell bei der Codierung verwendet, um die Parameter zu extrahieren, die die zu codierenden Signale modellisieren. Diese Signale können mit der Telefonfrequenz (Fe = 8 kHz) oder mit einer höheren Frequenz abgetastet werden, zum Beispiel mit 16 kHz für die Breitbandcodierung (Bandbreite von 50 Hz bis 7 kHz). Je nach der Anwendung und der gewünschten Qualität variiert das Kompressionsverhältnis von 1 bis 16. Diese Codierer arbeiten mit Bitraten von 2 bis 16 kbit/s im Telefonband und mit Bitraten von 6 bis 32 kbit/s im Breitband.
  • Das Prinzip einer digitalen Codierungs-/Decodierungs-Vorrichtung vom Typ CELP, welches der heute am häufigsten für die Codierung/Decodierung der Sprachsignale verwendete Codierer/Decodierer mit Analyse durch Synthese ist, wird nachfolgend kurz beschrieben. Das Sprachsignal wird abgetastet und in eine Folge von Blöcken von L Tastproben umgewandelt, die Rahmen genannt werden. Im Allgemeinen wird jeder Rahmen in kleinere Blöcke von L Tastproben aufgeteilt, die Subrahmen genannt werden. Jeder Block wird synthetisiert, indem eine Wellenform, die aus einem Verzeichnis (auch Wörterbuch genannt) extrahiert wird, multipliziert mit einer Verstärkung, über zwei in der Zeit variierende Filter gefiltert wird. Das Anregungs-Wörterbuch ist eine endliche Einheit von Wellenformen von L Tastproben. Das erste Filter ist das Langzeit-Vorhersagefilter. Eine "LTP" (für "Long Term Prediction") genannte Analyse ermöglicht es, die Parameter dieses Langzeit-Vorhersagefilters ermitteln, das die Periodizität der stimmhaften Laute nutzt (die typischerweise die Frequenz des Grundtons darstellt (Vibrationsfrequenz der Stimmbänder)). Das zweite Filter ist das Kurzzeit-Vorhersagefilter. Die Analysemethoden "LPC" (für "Linear Prediction Coding") ermöglichen es, diese Kurzzeit-Vorhersageparameter zu erhalten, die für die Übertragungsfunktion des Sprachkanals repräsentativ und für das Spektrum des Signals charakteristisch sind (das typischerweise die Modulationen darstellt, die durch die von den Lippen angenommene Form, die Stellung der Zunge und des Kehlkopfs oder andere verursacht werden).
  • Das zur Bestimmung der Innovationssequenz verwendete Verfahren ist die Methode der Analyse durch Synthese. Auf der Ebene des Codierers wird eine große Anzahl von Innovationssequenzen des Erregungs-Wörterbuchs von den zwei Filtern LTP und LPC gefiltert, und die ausgewählte Wellenform ist diejenige, die das dem Originalsignal am nächsten liegende synthetische Signal gemäß einem Kriterium der Wahrnehmungsgewichtung erzeugt, das allgemein unter dem Namen CELP-Kriterium bekannt ist.
  • Nachfolgend wird kurz die Verwendung von Multipuls-Wörterbüchern in solchen Codierern mit Analyse durch Synthese beschrieben, wobei natürlich klar ist, dass die Codierer CELP, wie auch die Decodierer CELP, dem Fachmann bekannt sind.
  • Der Multibitrate-Codierer der Norm UIT-T G.723.1 ist ein gutes Beispiel für einen Codierer mit Analyse durch Synthese, der Multipuls-Wörterbücher verwendet. Hier unterscheiden die Impulspositionen sich alle. Die zwei Bitraten des Codierers (6,3 kbit/s und 5,3 kbit/s) modellisieren das Innovationssignal durch Wellenformen, die aus Wörterbüchern extrahiert werden, die nur eine beschränkte Anzahl von Impulsen ungleich Null enthalten: 6 oder 5 für die hohe Bitrate, 4 für die niedere Bitrate. Diese Impulse haben eine Amplitude +1 oder –1. In seinem Modus mit 6,3 kbit/s verwendet der Codierer G.723,1 abwechselnd zwei Wörterbücher:
    • – im ersten, für die geradzahligen Subrahmen verwendet, weisen die Wellenformen 6 Impulse auf, und
    • – im zweiten, für die ungeradzahligen Subrahmen verwendet, weisen sie 5 Impulse auf.
  • Für diese zwei Wörterbücher wird den Positionen der Impulse jedes Code-Vektors nur eine einzige Beschränkung auferlegt. Diese Positionen müssen alle die gleiche Parität haben, d. h. dass sie alle geradzahlig oder ungeradzahlig sind. In dem Wörterbuch des Modus mit 5,3 kbit/s sind die Positionen der 4 Impulse stärker eingeschränkt. Außer der gleichen Paritätsbeschränkung wie die Wörterbücher des Modus hohe Bitrate hat jeder Impuls eine begrenzte Auswahl von Positionen.
  • Das Multipuls-Wörterbuch des Modus mit 5,3 kbit/s gehört zu der bekannten Familie der ACELP-Wörterbücher. Die Struktur eines ACELP-Verzeichnisses basiert auf der Technik ISPP (für "Interleaved Single-Pulse Permutation"), die darin besteht, die Einheit der L Positionen in K verschachtelte Spuren zu teilen, wobei jeder der N Impulse sich auf bestimmten vordefinierten Spuren befindet. Bei manchen Anwendungen kann die Größe L der Codewörter auf L + N erweitert werden. So wurde im Fall des Verzeichnisses des Modus mit niedriger Bitrate des Codierers gemäß der Norm UIT-T G.723.1 die Größe des Blocks von 60 Tastproben auf 64 Tastproben erweitert, und die 32 geradzahligen (bzw. ungeradzahligen) Positionen wurden in 4 verschachtelte Spuren einer Länge 8 geteilt, die sich nicht überlappen. Es gibt also zwei Gruppen von 4 Spuren, eine für jede Parität. Die nachfolgende Tabelle 1 stellt für jeden Impuls i0 bis i3 die Gesamtheit dieser 4 Spuren für die geradzahligen Positionen dar.
    Impuls Vorzeichen Positionen
    i0 ±1 0, 8, 16, 24, 32, 40, 48, 56
    i1 ±1 2, 10, 18, 26, 34, 42, 50, 58
    i2 ±1 4, 12, 20, 28, 36, 44, 52, (60)
    i3 ±1 6, 14, 22, 30, 38, 46, 54, (62)
    Tabelle 1: Positionen und Amplituden der Impulse des Wörterbuchs ACELP des Codierers G.723.1 mit 5,3 kbit/s
  • Die Innovations-Wörterbücher ACELP werden bei vielen Codierern mit Analyse durch Synthese verwendet, die genormt sind (UIT-T G.723.1, UIT-T G.729, IS-641, 3GPP NB-AMR, 3GPP WB-AMR). Die nachfolgenden Tabellen 2 bis 4 zeigen einige Beispiele dieser Wörterbücher ACELP für eine Blocklänge von 40 Tastproben. Man stellt fest, dass der Paritätszwang in diesen Wörterbüchern nicht verwendet wird. Die Tabelle 2 zeigt das Wörterbuch ACELP mit 17 Bits und 4 Impulsen ungleich Null der Amplitude ±1, das in dem Codierer UIT-T G.729 mit 8 kbit/s, in dem Codierer IS-641 mit 7,4 kbit/s sowie in den Modi 7,4 und 7,95 kbit/s des Codierers 3GPP NB-AMR verwendet wird.
    Impuls Vorzeichen Positionen
    i0 ±1 0, 5, 10, 15, 20, 25, 30, 35
    i1 ±1 1, 6, 11, 16, 21, 26, 31, 36
    i2 ±1 2, 7, 12, 17, 22, 27, 32, 37
    i3 ±1 3, 8, 13, 18, 23, 28, 33, 38 4, 9,14, 19, 24, 29, 34, 39
    Tabelle 2: Positionen und Amplituden der Impulse des Wörterbuchs ACELP der Codierer UIT-T G.729 mit 8 kbit/s, IS641 mit 7,4 kbit/s und 3GPP NB-AMR mit 7,4 und 7,95 kbit/s
  • Im Wörterbuch ACELP mit 35 Bits, das im Modus 12,2 kbit/s des Codierers 3GGPP NB-AMR verwendet wird, enthält jeder Codevektor 10 Impulse ungleich Null einer Amplitude ±1. Der Block von 40 Tastproben ist in 5 Spuren einer Länge 8 geteilt, die je 2 Impulse enthalten. Man stellt fest, dass die zwei Impulse der gleichen Spur sich überlappen und zu einem einzigen Impulse der Amplitude ±2 führen können. Dieses Wörterbuch ist in der Tabelle 3 dargestellt.
    Impuls Vorzeichen Positionen
    i0, i5 ±1 0, 5, 10, 15, 20, 25, 30, 35
    i1, i6 ±1 1, 6, 11, 16, 21, 26, 31, 36
    i2, i7 ±1 2, 7, 12, 17, 22, 27, 32, 37
    i3, i8 ±1 3, 8, 13, 18, 23, 28, 33, 38
    i4, i9 ±1 4, 9, 14, 19, 24, 29, 34, 39
    Tabelle 3: Positionen und Amplituden der Impulse des Wörterbuchs ACELP des Codierers 3GPP NB-AMR mit 12,2 kbit/s
  • Schließlich zeigt die Tabelle 4 das Wörterbuch ACELP mit 11 Bits und 2 Impulsen ungleich Null der Amplitude ±1, verwendet in der Erweiterung mit niederer Bitrate (6,4 kbit/s) des Codierers UIT-T G.729 und im Modus 5,9 kbit/s des Codierers 3GPP NB-AMR.
    Impuls Vorzeichen Positionen
    i0 ±1 1, 3, 6, 8, 11, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38
    i1 ±1 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39
    Tabelle 4: Positionen und Amplituden der Impulse des Wörterbuchs ACELP der Codierer UIT-T G.729 mit 6,4 kbit/s und 3GPP NB-AMR mit 5,9 kbit/s
  • Nachfolgend wird beschrieben, was unter der "Durchsuchung" der Multipuls-Wörterbücher verstanden wird.
  • Wie bei jeder Quantifizierungsoperation besteht die Suche nach der optimalen Modellisierung eines zu codierenden Vektors darin, in der Einheit (oder in einer Untereinheit) der Codevektoren des Wörterbuchs denjenigen zu suchen der ihm am meisten "ähnelt", d. h. denjenigen, der eine Abstandsmessung zwischen ihm und diesem Eingangsvektor minimiert. Hierzu wird ein so genannter "Durchsuchungs"-Schritt der Wörterbücher durchgeführt.
  • Im Fall der Multipuls-Wörterbücher läuft dieser Schritt darauf hinaus, die Kombination von Impulsen zu suchen, die die Nähe zwischen dem zu modellisierenden Signal und dem aus der Wahl der Impulse resultierenden Signal optimiert. Je nach der Größe und/oder der Struktur des Wörterbuchs kann diese Durchsuchung erschöpfend oder nicht (d. h. mehr oder weniger komplex) sein.
  • Da die im oben erwähnten Codierer TDAC verwendeten Wörterbücher Vereinigungen von Permutationscodes vom Typ II sind, nutzt der Codieralgorithmus eines Vektors von normierten Transformationskoeffizienten diese Eigenschaft, um seinen nächsten Nachbarn unter allen Codevektoren zu bestimmen, indem er nur eine begrenzte Anzahl von Abstandskriterien berechnet (mit einer Verwendung von "absolute Leader" genannten Vektoren).
  • Bei den Codierern mit Analyse durch Synthese ist die Durchsuchung der Multipuls-Wörterbücher nicht erschöpfend, außer bei den Wörterbüchern geringer Größe. Bei den Wörterbüchern mit höherer Bitrate wird nur ein kleiner Prozentsatz des Wörterbuchs durchsucht. Zum Beispiel wird die Durchsuchung der Multipuls-Wörterbücher vom Typ ACELP allgemein in zwei Schritten durchgeführt. Um diese Suche zu vereinfachen, wählt ein erster Schritt vorab für jede mögliche Impulsposition ihre Amplitude (also ihr Vorzeichen, wie oben angegeben) durch eine einfache Quantifizierung eines Signals aus, das vom Eingangssignal abhängt. Wenn die Amplituden der Impulse festgelegt sind, werden die Positionen der Impulse durch einen Technik der Analyse durch Synthese (gemäß dem Kriterium CELP) gesucht. Trotz der Nutzung der Struktur in ISPP und der beschränkten Anzahl von Impulsen wird eine erschöpfende Suche nach den Kombinationen der Positionen nur für die Wörterbücher mit niederer Bitrate (typischerweise geringer als oder gleich 12 Bits) durchgeführt. Dies ist zum Beispiel für das Wörterbuch ACELP mit 11 Bits (Tabelle 4) der Fall, das im Codierer G.729 mit 6,4 kbit/s verwendet wird, in dem die 512 Kombinationen von Positionen von 2 Impulsen alle getestet werden, um die beste auszusuchen, was darauf hinausläuft, die entsprechenden 512 Kriterien CELP zu berechnen.
  • Für die Wörterbücher mit höherer Bitrate wurden verschiedene so genannte Fokussierungsmethoden vorgeschlagen. Man spricht dann von "fokussierter Suche".
  • Manche bekannte dieser Methoden werden in den oben erwähnten genormten Codierern verwendet. Ihr Ziel ist es, die Anzahl von zu durchsuchenden Kombinationen von Positionen zu verringern, indem man sich auf die Eigenschaften des zu modellisierenden Signals stützt. Zum Beispiel kann der so genannte "depth-first tree" Algorithmus erwähnt werden, der von vielen standardisierten Codierern ACELP verwendet wird. Bei diesem Algorithmus werden bestimmte Positionen privilegiert, wie zum Beispiel die lokalen Maxima der Spuren eines Zielsignals, das vom Eingangssignal, vom vergangenen synthetischen Signal und von dem aus dem Synthesefilter und dem Filter der Wahrnehmungsgewichtung zusammengesetzten Filter abhängt. Es gibt mehrere Varianten davon, je nach der Größe des verwendeten Wörterbuchs. Um das Wörterbuch ACELP mit 35 Bits und 10 Impulsen (Tabelle 3) zu durchsuchen, wird der erste Impuls an die gleiche Position gesetzt wie das globale Maximum des Zielsignals. Dann werden vier Iterationen durch zirkulare Permutation der aufeinander folgenden Spuren durchgeführt. Bei jeder Iteration wird die Position des zweiten Impulses auf das lokale Maximum einer der 4 anderen Spuren gesetzt, während die Positionen der anderen acht verbleibenden Impulse sequentiell paarweise in verschachtelten Schleifen gesucht werden. Bei jeder Iteration werden 256 (= 4 Paarex8x8) verschiedene Kombinationen getestet, was es also ermöglicht, nur 1024 Kombinationen von Positionen der 10 Impulse unter den 225 des Wörterbuchs zu durchsuchen. Eine andere Variante wird in dem Codierer IS641 verwendet, in dem ein größerer Prozentsatz von Kombinationen des Wörterbuchs mit 17 Bits und 4 Impulsen (Tabelle 2) durchsucht wird. Man testet 768 Kombinationen von den 8192 (= 213) Kombinationen von Impulspositionen. Im Codierer G.729 mit 8 kbit/s wird dieses gleiche Wörterbuch ACELP durch eine andere Fokussierungsmethode durchsucht. Der Algorithmus führt eine iterative Suche durch, indem er vier Suchschleifen der Impulse (eine pro Impuls) verschachtelt. Die Suche wird fokussiert, indem der Eingang in die innere Schleife (Suche des letzten Impulses, der zu den Spuren 3 oder 4 gehört) von der Überschreitung einer adaptiven Schwelle abhängig gemacht wird: Diese Schwelle hängt auch von den Eigenschaften des Zielsignals ab (lokale Maxima und Mittelwerte der 3 ersten Spuren). Außerdem ist die maximale Anzahl von Durchsuchungen von Kombinationen von 4 Impulsen auf 1440 festgelegt (d. h. 17,6% der 8192 Kombinationen).
  • In dem Codierer G.723.1 mit 6,3 kbit/s werden nicht alle 2 × 25 × C 5 / 30 (bzw. 2 × 26 × C 6 / 30) Kombinationen von 5 (bzw.
  • 6) Impulsen durchsucht. Für jedes Raster verwendet der Algorithmus eine bekannte Analyse vom Typ "Multipuls", um sequentiell die Positionen und die Amplituden der Impulse zu suchen. Wie bei den Wörterbüchern ACELP gibt es Varianten, um die Anzahl von getesteten Kombinationen zu beschränken.
  • Solche Techniken haben aber die nachfolgenden Probleme.
  • Die Durchsuchung, selbst suboptimal, eines Multipuls-Wörterbuchs bildet in vielen Codierern eine bezüglich der Rechenzeit teure Operation. Zum Beispiel in den Codierern G.723.1 mit 6,3 kbit/s und G.729 mit 8 kbit/s stellt diese Suche fast die Hälfte der Gesamtkomplexität des Codierers dar. Für den NB-AMR stellt sie ein Drittel der Gesamtkomplexität des Codierers dar. Für den Codierer TDAC stellt sie ein Viertel der Gesamtkomplexität des Codierers dar.
  • Man versteht insbesondere, dass diese Komplexität kritisch wird, wenn mehrere Codierungen von der gleichen Verarbeitungseinheit durchgeführt werden müssen, wie zum Beispiel einem Gateway, das die Aufgabe hat, viele Kommunikationen parallel zu verwalten, oder einem Server, der viele Multimediainhalte verteilt. Das Problem der Komplexität wird noch vergrößert durch die Vielfalt der Kompressionsformate, die in den Netzen zirkulieren.
  • Um Mobilität und Kontinuität zu bieten, müssen die modernen und innovierenden Multimedia-Kommunikationsdienste unter einer großen Vielfalt von Bedingungen arbeiten können. Die Dynamik des Sektors der Multimedia-Kommunikation und die Heterogenität der Netze, Zugänge und Endgeräte haben zu einer starken Vermehrung von Kompressionsformaten geführt, deren Vorhandensein in den Kommunikationsketten mehrere Codierungen entweder in Kaskade (Transcodierung) oder parallel (Multiformat-Codierung oder Multimode-Codierung) erfordert.
  • Nachfolgend wird definiert, was unter "Transcodierung" verstanden wird. Die Transcodierung wird notwendig, wenn in einer Übertragungskette ein von einem Codierer gesendeter komprimierter Signalrahmen nicht mehr in diesem Format seinen Weg fortsetzen kann. Die Transcodierung ermöglicht es, diesen Rahmen in ein anderes Format umzuwandeln, das mit der Folge der Übertragungskette kompatibel ist. Die elementarste (und derzeit häufigste) Lösung ist die End-zu-End-Anordnung eines Decodierers und eines Codierers. Der komprimierte Rahmen kommt mit einem ersten Format an, er wird dekomprimiert. Dieses dekomprimierte Signal wird dann erneut in einem zweiten Format komprimiert, das von der Folge der Kommunikationskette akzeptiert wird. Diese Kaskadenanordnung eines Decodierers und eines Codierers wird "Tandem" genannt. Diese Lösung ist sehr teuer bezüglich der Komplexität (hauptsächlich aufgrund der erneuten Codierung), und sie verschlechtert die Qualität. Die zweite Codierung erfolgt nämlich an einem decodierten Signal, das eine verschlechterte Version des Originalsignals ist. Außerdem kann ein Rahmen auf mehrere Tandems treffen, ehe er am Ziel ankommt. Man kann sich leicht die Rechenkosten und den Qualitätsverlust vorstellen. Außerdem akkumulieren sich die mit jeder Tandemoperationen verbundenen Verzögerungen und können die Interaktivität der Kommunikationen beeinträchtigen.
  • Außerdem führt die Komplexität auch zu einem Problem im Rahmen eines Multiformat-Kompressionssystems, in dem der gleiche Inhalt in mehreren Formaten komprimiert wird. Dies ist der Fall bei den Inhaltsservern, die den gleichen Inhalt in mehreren Formaten senden, die an die Zugangs- und Netz-Bedingungen und an die Endgeräte der verschiedenen Kunden angepasst sind. Diese Operation der Multi-Codierung wird extrem komplex, je mehr die Anzahl von gewünschten Formaten zunimmt, was die Ressourcen des Systems schnell sättigt.
  • Ein anderer Fall der parallelen Multi-Codierung ist die Multimode-Komprimierung mit a posteriori-Entscheidung. In jedem zu codierenden Signalsegment werden mehrere Komprimierungsmodi durchgeführt, und derjenige, der ein gegebenes Kriterium optimiert oder den besten Bitrate/Verzerrungs-Kompromiss erzielt, wird gewählt. Auch hier begrenzt die Komplexität jedes der Kompressionsmodi deren Anzahl und/oder führt zur Erarbeitung einer a priori-Auswahl einer sehr beschränkten Anzahl von Modi.
  • Nachfolgend werden die bekannten Vorgehensweisen beschrieben, die angewendet wurden, um zu versuchen, die oben beschriebenen Probleme zu lösen.
  • Die neuen Anwendungen von Multimedia-Kommunikationen (wie Audio und Video) erfordert oft mehrere Codierungen entweder in Kaskade (Transcodierung) oder parallel (Multi-Codierung und Multimode-Codierung mit a posteriori-Entscheidung). Die Komplexitätsbarriere, die von allen diesen Codierungen aufgebaut wird, bleibt ein zu lösendes Problem, trotz der Erhöhung der aktuellen Verarbeitungsleistungen. Die meisten dieser bekannten Operationen der Mehrfachcodierung berücksichtigen nicht die Interaktionen zwischen den Formaten und zwischen dem Format von E und seinem Inhalt. Es wurden aber einige Techniken der intelligenten Transcodierung vorgeschlagen, die sich nicht mehr damit begnügen, zu decodieren und dann wieder zu codieren, sondern die Ähnlichkeiten zwischen Codierformaten nutzen und es so ermöglichen, die Komplexität zu reduzieren und gleichzeitig die eingeführte Verschlechterung zu begrenzen.
  • Nachfolgend werden so genannte "intelligente" Transcodiermethoden beschrieben.
  • Innerhalb der gleichen Codierer-Familie (CELP, parametrisch, durch Transformation oder andere) extrahieren alle Codierer die gleichen physikalischen Parameter aus dem Signal. Es gibt aber eine große Vielfalt der Modellisierung und/oder Quantifizierung dieser Parameter. So kann von einem Codierer zum anderen der gleiche Parameter in gleicher Weise oder aber sehr unterschiedlich codiert werden.
  • Außerdem können die Codierungen strikt gleich sein. Sie können in der Modellisierung und der Berechnung des Parameters gleich sein, sich aber einfach durch die Umsetzung der Codierung in Form von Bits unterscheiden. Schließlich können sie völlig unterschiedlich sein, sowohl durch die Modellisierung des Parameters als auch seine Quantifizierung, sogar durch seine Analyse- oder Tastfrequenz.
  • Wenn die Modellisierung und die Berechnung eines Parameters strikt gleich sind, einschließlich der binären Umsetzung, genügt es, das entsprechende binäre Feld des vom ersten Codierer erzeugten binären Bitstroms zu demjenigen des zweiten zu kopieren. Dieser sehr vorteilhafte Fall tritt zum Beispiel bei einer Transcodierung von der Norm G.729 zur Norm IS-641 für die adaptive Erregung auf (Verzögerungen LTP).
  • Wenn für den gleichen Parameter die zwei Codierer sich nur durch die binäre Umsetzung des berechneten Parameters unterscheiden, genügt es, das binäre Feld des ersten Formats zu decodieren, dann wieder in den binären Bereich zu gehen, unter Verwendung der Codierung gemäß dem zweiten Format. Diese Umwandlung kann auch von bijektiven Korrespondenztabellen durchgeführt werden. Dies ist zum Beispiel der Fall bei einer Transcodierung der festen Erregungen der Norm G.729 zur Norm AMR (7,4 und 7,95 kbit/s).
  • In den beiden vorhergehenden Fällen erfolgt die Transcodierung des Parameters, indem man auf der Ebene der Bits bleibt. Eine einfache Manipulation von Bits ermöglicht es, den Parameter mit dem zweiten Codierformat kompatibel zu machen. Wenn dagegen ein aus dem Signal extrahierter Parameter von zwei Codierformaten unterschiedlich modellisiert oder quantifiziert wird, erfolgt der Übergang von einem zum anderen nicht so einfach. Es wurden mehrere Methoden vorgeschlagen. Sie arbeiten entweder auf der Ebene des Parameters oder auf der Ebene des decodierten Signals.
  • Für die Transcodierung auf dem Gebiet der Parameter ist das Verbleiben auf der Ebene des Parameters möglich, wenn die zwei Codierformate einen Parameter in gleicher Weise berechnen, ihn aber unterschiedlich quantifizieren. Die Quantifizierungsunterschiede können mit der gewählten Präzision oder auch mit der gewählten Methode (skalar, vektoriell, prädiktiv oder andere) verbunden sein. Es genügt dann, den Parameter zu decodieren und ihn dann mit der Methode des zweiten Codierformats zu quantifizieren. Diese bekannte Methode wird derzeit insbesondere für die Transcodierung der Erregungsverstärkungen verwendet. Oft muss der decodierte Parameter vor seiner erneuten Quantifizierung verändert werden. Wenn zum Beispiel die Codierer unterschiedliche Analysefrequenzen des Parameters oder Längen von Rahmen/Subrahmen haben, ist es üblich, die Parameter zu interpolieren/dezimieren. Die Interpolation kann zum Beispiel gemäß der in der veröffentlichten Druckschrift US2003/033142 beschriebenen Methode erfolgen. Eine andere mögliche Veränderung ist das Abrunden des Parameters auf die Präzision, die ihm vom zweiten Codierformat auferlegt wird. Dieser Fall gilt vor allem für die Höhe der Grundfrequenz (oder "Pitch").
  • Wenn es nicht möglich ist, einen Parameter zu transcodieren, indem man auf dem Gebiet des Parameters bleibt, kann man auf eine höhere Ebene in der Decodierung gehen. Es handelt sich um das Gebiet der Erregung, ohne aber bis zum Gebiet des Signals zu gehen. Diese Technik wurde für die Verstärkungen in der Quelle:
    "Improving transcoding capability of speech coders in clean and frame erasured channel environments" von Hong-Goo Kang, Hong Kook Kim, Cox, R. V., in Speech Coding, 2000, Proceedings 2000, IEEE Workshop an Speech Coding, Seiten 78–80 vorgeschlagen.
  • Schließlich besteht eine letzte Lösung (die komplexeste und am wenigsten "intelligente") darin, explizit den Parameter neu zu berechnen, wie es der Codierer machen würde, aber ausgehend von einem synthetisierten Signal.
  • Diese Operation läuft auf eine Art von teilweisem Tandem hinaus, wobei nur bestimmte Parameter vollständig neu berechnet werden. Diese Methode wurde auf verschiedene Parameter angewendet, wie die feste Erregung, die Verstärkungen in der erwähnten Quelle IEEE, oder den Pitch.
  • Für die Transcodierung der Impulse, selbst wenn mehrere Techniken entwickelt wurden, um die Parameter schnell und zu geringeren Kosten zu berechnen, haben wenige dieser Lösungen heute eine intelligente Vorgehensweise, um die Impulse eines Formats ausgehend vom äquivalenten Parameter in einem anderen Format zu berechnen, siehe zum Beispiel die Druckschrift WO 3058407 . Bei der Codierung mit Analyse durch Synthese wird die intelligente Transcodierung der Impulscodes nur angewendet, wenn die Modellisierung gleich (oder nahe) ist. Wenn dagegen die Modellisierungen unterschiedlich sind, wird die Methode des teilweisen Tandems verwendet. Es ist anzumerken, dass zur Begrenzung der Komplexität dieser Operation fokussierte Vorgehensweisen vorgeschlagen wurden, die die Eigenschaften des decodierten Signals oder eines abgeleiteten Signals wie eines Zielsignals nutzen. In der oben erwähnten Druckschrift 2001/027393, in dem Ausführungsbeispiel, das einen Codierer durch MDCT-Transformation anwendet, wird eine Prozedur der Veränderung der Bitrate vorgestellt, die als ein besonderer Fall der intelligenten Transcodierung angesehen werden kann. Diese Prozedur ermöglicht es nämlich, einen Vektor eines ersten Wörterbuchs durch einen Vektor eines zweiten Wörterbuchs neu zu quantifizieren. Sie unterscheidet hierzu zwei Fälle je nach der Zugehörigkeit oder nicht des neu zu quantifizierenden Vektors zum zweiten Wörterbuch. Wenn der quantifizierte Vektor zum neuen Wörterbuch gehört, ist die Modellisierung gleich; sonst wird die Methode der teilweisen Decodierung angewendet.
  • Indem sie sich von allen diesen bekannten Techniken absetzt, schlägt die vorliegende Erfindung, wie sie in den Ansprüchen 1 und 22, 23 angeben wird, eine Multipuls-Transcodierung vor, die auf einer Auswahl einer Untereinheit von Kombinationen von Impulspositionen einer Einheit von Sätzen von Impulsen ausgehend von einer Kombination von Impulspositionen einer andern Einheit von Sätzen von Impulsen beruht, wobei die zwei Einheiten sich durch die Anzahl von Impulsen, die sie enthalten, sowie durch die Regeln unterscheiden können, die ihre Positionen und/oder ihre Amplituden regeln. Diese Transcodierung ist sehr nützlich, insbesondere für die Vielfach-Codierungen in Kaskade (Transcodierungen) oder parallel (Multi-Codierungen und Multimode-Codierungen).
  • Zu diesem Zweck schlägt die vorliegende Erfindung zunächst ein Transcodierverfahren zwischen einem ersten Kompressions-Codierer/Decodierer und mindestens einem zweiten Kompressions-Codierer/Decodierer vor. Diese erste und zweite Codierer/Decodierer sind vom Impulstyp und verwenden Multipuls-Wörterbücher, in denen jeder Impuls eine durch einen zugeordneten Index gekennzeichnete Position aufweist.
  • Das Transcodierverfahren im Sinne der Erfindung weist die folgenden Schritte auf:
    • a) gegebenenfalls Anpassung von Codierparametern zwischen dem ersten und zweiten Codierer/Decodierer,
    • b) Erhalt, ausgehend vom ersten Codierer/Decodierer, einer gewählten Anzahl von Impulspositionen und von jeweils zugeordneten Positionsindices,
    • c) für jede laufende Impulsposition mit gegebenem Index, Bildung einer Gruppe von Impulspositionen, die mindestens die laufende Impulsposition und Impulspositionen mit zugeordneten Indices aufweisen, die direkt unter und direkt über dem gegebenen Index liegen,
    • d) Auswahl, in Abhängigkeit von vom zweiten Codierer/Decodierer zugelassenen Impulspositionen, mindestens eines Teils der Impulspositionen in einer Einheit, die aus einer Vereinigung der im Schritt c) gebildeten Gruppen besteht, und
    • e) Übertragung der so ausgewählten Impulspositionen an den zweiten Codierer/Decodierer für eine Codierung/Decodierung ausgehend von den übertragenen Positionen.
  • So setzt die Auswahl des Schritts d) dann eine Anzahl von möglichen Impulspositionen ein, die geringer ist als die Gesamtanzahl von möglichen Impulspositionen des Wörterbuchs des zweiten Codierers/Decodierers.
  • Man versteht insbesondere, dass im Schritt e) in dem Fall, in dem der oben erwähnte zweite Codierer/Decodierer ein Codierer ist, die ausgewählten Impulspositionen an diesen Codierer für eine Codierung durch Suche nur unter den übertragenen Positionen übertragen werden. Wenn der oben erwähnte zweite Codierer/Decodierer ein Decodierer ist, werden diese ausgewählten Impulspositionen für eine Decodierung dieser Positionen übertragen.
  • Vorzugsweise verwendet der Schritt b) eine Teildecodierung des vom ersten Codierer/Decodierer gelieferten binären Bitstroms, um eine erste Anzahl von Impulspositionen zu identifizieren, die der erste Codierer/Decodierer in einem ersten Codierformat verwendet. So entspricht die im Schritt b) gewählte Zahl vorzugsweise dieser ersten Zahl von Impulspositionen.
  • In einer vorteilhaften Ausführung werden die obigen Schritte von einem Computerprogrammprodukt angewendet, das zu diesem Zweck Programmanweisungen enthält. In diesem Zusammenhang bezieht sich die Erfindung auch auf ein solches Computerprogrammprodukt, das dazu bestimmt ist, in einem Speicher einer Verarbeitungseinheit, insbesondere eines Computers oder eines mobilen Endgeräts, oder auf einem entfernbaren Speicherträger gespeichert zu werden, und dazu bestimmt ist, mit einem Lesegerät der Verarbeitungseinheit zusammenzuwirken.
  • Die vorliegende Erfindung bezieht sich auch auf eine Vorrichtung zur Transcodierung zwischen einem ersten und einem zweiten Kompressions-Codierer/Decodierer, die dann einen Speicher aufweist, der fähig ist, Anweisungen eines Computerprogrammmprodukts vom oben beschriebenen Typ zu speichern.
  • Weitere Merkmale und Vorteile der Erfindung gehen aus der nachfolgenden ausführlichen Beschreibung und den beiliegenden Zeichnungen hervor. Es zeigen:
  • 1a schematisch den Transcodierungskontext im Sinne der vorliegenden Erfindung in einer "Kaskaden"-Konfiguration,
  • 1b schematisch den Transcodierungskontext im Sinne der vorliegenden Erfindung in einer "parallelen" Konfiguration,
  • 2 schematisch die verschiedenen Fälle, die für die durchzuführenden Transcodierverarbeitungen vorgesehen sind,
  • 2a schematisch eine Anpassungsverarbeitung, die für den Fall vorgesehen ist, in dem die Tastfrequenzen des ersten E und zweiten Codierers S unterschiedlich sind,
  • 2b schematisch eine Variante der Verarbeitung der 2a,
  • 3 eine Zusammenfassung der Schritte des Transcodierverfahrens im Sinne der Erfindung,
  • 4 schematisch den Fall von zwei Subrahmen der Codierer E bzw. S, von unterschiedlicher Dauer Le und Ls (mit Le > Ls), aber mit den gleichen Tastfrequenzen,
  • 4b als Beispiel einen praktischen Fall der 4, indem sie die zeitliche Entsprechung zwischen einem Codierer G.723.1 und einem Codierer G.729 veranschaulicht,
  • 5 schematisch das Takten der Erregung des ersten Codierers E im Takt des zweiten Codierers S,
  • 6 den Fall, in dem einer der Pseudo-Subrahmen STE'0 leer ist,
  • 7 schematisch eine Anpassungsverarbeitung, die für den Fall vorgesehen ist, in dem die Dauern von Subrahmen des ersten E und zweiten Codierers S unterschiedlich sind.
  • Es wird zunächst gesagt, dass die vorliegende Erfindung innerhalb der Modellisierung und der Codierung der digitalen Multimediasignale, wie der Audiosignale (Sprache und/oder Töne), durch Multipuls-Wörterbücher liegt. Sie kann im Rahmen der Mehrfach-Codierung/Decodierung in Kaskade oder parallel oder jedes anderen Systems verwendet werden, das die Modellisierung eines Signals durch eine Multipuls-Darstellung verwendet, und das ausgehend von der Kenntnis eines ersten Satzes von Impulsen, die zu einer ersten Einheit gehören, mindestens einen Satz von Impulsen einer zweiten Einheit bestimmen muss. Aus Gründen der Kürze wird nur der Fall eines Übergangs einer ersten Einheit zu einer zweiten Einheit beschrieben, aber die Erfindung betrifft auch den Fall des Übergangs zu n (n ≥ 2) Einheiten. Außerdem wird nachfolgend nur der Fall einer "Transcodierung" zwischen zwei Codierern beschrieben, aber daraus leitet sich selbstverständlich die Transcodierung zwischen einem Codierer und einem Decodierer ohne größere Schwierigkeit ab.
  • Es wird also der Fall von zwei Modellisierungen eines Signals durch Sätze von Impulsen entsprechend zwei Codiersystemen betrachtet. In den 1a und 1b ist eine Transcodiervorrichtung D zwischen einem ersten Codierer E, der ein erstes Codierformat COD1 verwendet, und einem zweiten Codierer S dargestellt, der ein zweites Codierformat COD2 verwendet. Der Codierer E liefert einen codierten Binärstrom (oder "binären Bitstrom") SCE (in Form einer Folge von codierten Rahmen) an die Transcodiervorrichtung D, die einen Teildecodierungsmodul 10 aufweist, um die Anzahl Ne von Impulspositionen, die im ersten Codierformat verwendet werden, und die Positionen pe dieser Impulse wiederzugewinnen. Wie man nachfolgend im Einzelnen sehen wird, führt die Transcodiervorrichtung im Sinne der Erfindung eine Extraktion der rechten Ve d und linken Nachbarschaft Ve g jeder Impulsposition pe durch und wählt in der Vereinigung dieser Nachbarschaften Impulspositionen aus, die vom zweiten Codierer S erkannt werden. Der in den 1a und 1b dargestellte Modul 11 der Transcodiervorrichtung führt also diese Schritte aus, um diese Auswahl von Positionen (mit Sj in diesen 1a und 1b bezeichnet) an den zweiten Codierer S zu liefern. Man versteht insbesondere, dass ausgehend von dieser Auswahl Sj ein Unterverzeichnis von geringerer Größe als die Größe des Wörterbuchs gebildet wird, das üblicherweise der zweite Codierer S verwendet, gemäß einem Vorteil, den die Erfindung bietet. Durch Verwendung dieses Unterverzeichnisses ist die vom Codierer S durchgeführte Codierung selbstverständlich schneller, da beschränkter, ohne der Codierqualität deswegen zu schaden.
  • Im in 1a dargestellten Beispiel weist die Transcodiervorrichtung D außerdem einen Modul 12 der zumindest teilweisen Decodierung des codierten Stroms sCE auf, den der erste Codierer E liefert. Der Modul 12 liefert dann an den zweiten Codierer S eine mindestens teilweise decodierte Version s'0 des Ursprungssignals s0. Der zweite Codierer S liefert anschließend auf der Basis dieser Version s'0 einen codierten Binärstrom sCS.
  • In dieser Konfiguration führt die Transcodiervorrichtung D also eine Codierungsanpassung zwischen dem ersten Codierer E und dem zweiten Codierer S durch, indem sie vorteilhafterweise eine schnellere Codierung (da sie beschränkter ist) im zweiten Codierer S begünstigt. In einer Variante kann natürlich die in den 1a und 1b mit S bezeichnete Entität ein Decodierer sein, und in dieser Variante führt die Vorrichtung D im Sinne der Erfindung eine eigentliche Transcodierung zwischen einem Codierer E und einem Decodierer S durch, wobei diese Decodierung aufgrund der von der Vorrichtung D gelieferten Informationen schnell durchgeführt wird. Da der Prozess umkehrbar ist, versteht man, dass viel allgemeiner gesehen die Transcodiervorrichtung D im Sinne der vorliegenden Erfindung zwischen einem ersten Codierer/Decodierer E und einem Codierer/Decodierer S arbeitet.
  • Es wird darauf hingewiesen, dass die Anordnung des Codierers E, des Transcodierers D und des Codierers S eine "Kaskaden"-Konfiguration beachten kann, wie sie in 1a dargestellt ist. In der in 1b dargestellten Variante kann diese Anordnung eine "parallele" Konfiguration beachten. In diesem Fall empfangen die zwei Codierer E und S das Ursprungssignal s0, und die zwei Codierer E und S liefern je die codierten Ströme sCE und sCS. Natürlich muss der zweite Codierer S hier nicht mehr die Version s'0 der 1a empfangen, und der Modul der mindestens teilweisen Decodierung 12 der Transcodiervorrichtung D ist nicht mehr notwendig. Es wird außerdem darauf hingewiesen, dass, wenn der Codierer E ein Ausgangssignal liefern kann, das mit dem Eingangssignal des Moduls 11 kompatibel ist (sowohl bezüglich seiner Anzahl von Impulsen als auch bezüglich seiner Impulspositionen), der Modul 10 einfach weggelassen oder "kurzgeschlossen" werden kann.
  • Es wird außerdem darauf hingewiesen, dass die Transcodiervorrichtung D einfach mit einem Speicher, der die Anweisungen zur Durchführung der obigen Schritte speichert, und mit einem Prozessor zur Verarbeitung dieser Anweisungen ausgestattet werden kann.
  • Die Anwendung der Erfindung ordnet sich also folgendermaßen ein. Der erste Codierer E hat seine Codieroperation an einem gegebenen Signal s0 durchgeführt (zum Beispiel dem Originalsignal). Man verfügt also über die Positionen der Impulse, die vom ersten Codierer E gewählt wurden. Dieser Codierer hat diese Positionen pe durch eine ihm eigene Technik während des Codierungsprozesses bestimmt. Der zweite Codierer S muss auch seine Codierung durchführen. Im Fall der Transcodierung verfügt der zweite Codierer S nur über den binären Bitstrom, der vom ersten Codierer erzeugt wird, und die Erfindung ist hier auf die so genannte "intelligente" Transcodierung anwendbar, wie sie oben definiert wurde. Im Fall der parallelen Mehrfachcodierung verfügt der zweite Codierer S auch über das Signal, über das der erste Codierer verfügt, und die Erfindung ist hier bei der "intelligenten Mehrfachcodierung" anwendbar. Ein System, das den gleichen Inhalt in mehreren Formaten codieren möchte, kann nämlich die Informationen eines ersten Formats nutzen, um die Codieroperationen der anderen Formate zu vereinfachen. Die Erfindung kann auch auf den besonderen Fall der parallelen Mehrfachcodierung angewendet werden, nämlich die Multimode-Codierung mit a posteriori-Entscheidung.
  • Die vorliegende Erfindung erlaubt es, schnell die Positionen ps (oder unterschiedslos nachfolgend auch mit si bezeichnet) der Impulse für ein anderes Codierformat ausgehend von Positionen pe (oder unterschiedslos nachfolgend auch mit ei bezeichnet) der Impulse eines ersten Formats zu bestimmen. Sie ermöglicht es, die Rechenkomplexität dieser Operation für den zweiten Codierer beträchtlich zu verringern, indem die Anzahl von möglichen Positionen begrenzt wird. Zu diesem Zweck verwendet sie die vom ersten Codierer gewählten Positionen, um eine beschränkte Einheit von Positionen unter allen möglichen Positionen des zweiten Codierers zu definieren, eine beschränkte Einheit, in der man den besten Satz von Positionen für die Impulse sucht. Daraus resultiert eine große Ersparnis an Komplexität bei gleichzeitiger Begrenzung der Verschlechterung des Signals im Vergleich mit einer erschöpfenden oder fokussierten klassischen Suche.
  • So versteht man, dass die vorliegende Erfindung die Anzahl von möglichen Positionen begrenzt, indem sie eine beschränkte Einheit von Positionen ausgehend von den Positionen des ersten Codierformats definiert. Sie unterscheidet sich von den existierenden Lösungen insofern als diese nur die Eigenschaften des zu modellisierenden Signals nutzen, um die Anzahl von möglichen Positionen zu begrenzen, indem sie Positionen bevorzugen und/oder beseitigen.
  • Vorzugsweise werden für jeden Impuls eines Satzes einer ersten Einheit zwei Nachbarschaften (eine links und eine recht) mit einer mehr oder weniger beschränkten einstellbaren Breite definiert, und es wird daraus eine Einheit von möglichen Positionen extrahiert, aus der mindestens eine Kombination von Impulsen vorab ausgewählt wird, die die Zwänge der zweiten Einheit beachten.
  • Vorteilhafterweise ermöglicht es das Transcodierverfahren, den Kompromiss Komplexität/Qualität zu optimieren, indem die Anzahl von Impulspositionen und/oder die jeweiligen Größen (bezüglich der Kombinationen von Impulspositionen) der rechten und linken Nachbarschaft für jeden Impuls angepasst werden. Diese Anpassung kann zu Beginn der Verarbeitung oder in jedem Subrahmen in Abhängigkeit von der erlaubten Komplexität und/oder dem Satz von Ausgangspositionen durchgeführt werden. Die Erfindung ermöglicht es auch, die Anzahl von Kombinationen von Positionen anzupassen/zu begrenzen, indem vorteilhafterweise die direkten Nachbarschaften begünstigt werden.
  • Wie oben angemerkt, bezieht die vorliegende Erfindung sich auch auf ein Computerprogrammprodukt, dessen Algorithmus insbesondere für das Extrahieren von benachbarten Positionen konzipiert ist, das die Zusammensetzung der Kombinationen von Impulsen der zweiten Einheit erleichtert.
  • Wie oben angegeben, kann die Heterogenität der Netze und der Inhalte sehr unterschiedliche Codierformate konfrontieren. Die Codierer können sich durch viele Merkmale unterscheiden. Insbesondere bestimmen zwei von ihnen im Wesentlichen den Betriebsmodus der Erfindung. Es handelt sich um die Tastfrequenz und um die Dauer eines Subrahmens. Nachfolgend werden die verschiedenen möglichen Fälle in Zusammenhang mit Anwendungen der Erfindung gemäß diesen verschiedenen Fällen vorgestellt.
  • 2 synthetisiert die verschiedenen Fälle. Zuerst erhält man:
    • – die Anzahlen von Impulspositionen Ne, Ns,
    • – die jeweiligen Tastfrequenzen Fe, Fs,
    • – und die Dauern von Subrahmen Le, Ls
    die die Codierer E bzw. S verwenden (Schritt 21).
  • So versteht man bereits, dass die Schritte der Anpassung und der Wiedergewinnung der Anzahlen von Impulspositionen Ne, Ns vorteilhafterweise vertauscht oder einfach gleichzeitig durchgeführt werden.
  • Im Test 22 werden die Tastfrequenzen verglichen. Wenn die Frequenzen gleich sind, werden im Test 23 die Dauern von Subrahmen verglichen. Sonst passt man die Tastfrequenzen im Schritt 32 gemäß einem nachfolgend beschriebenen Verfahren an. Am Ende des Tests 23, wenn die Dauern von Subrahmen gleich sind, werden im Test 24 die Anzahlen von Impulspositionen Ne und Ns verglichen, die vom ersten bzw. zweiten Codierformat verwendet werden. Sonst werden die Dauern von Subrahmen im Schritt 33 gemäß einem Verfahren angepasst, das auch nachfolgend beschrieben wird. Man versteht, dass die Schritte 22, 23, 32 und 33 zusammen den oben erwähnten Schritt a) der Anpassung der Codierparameter definieren. Es wird angemerkt, dass die Schritte 22 und 32 (Anpassung der Tastfrequenzen) einerseits und die Schritte 23 und 33 (Anpassung der Dauern von Subrahmen) andererseits umgekehrt werden können.
  • Nachfolgend wird der Fall beschrieben, in dem die Tastfrequenzen gleich und die Dauern von Subrahmen gleich sind.
  • Dieser Fall ist der günstigste. Man muss aber noch den Fall, in dem das erste Format mehr Impulse verwendet als das Zweite (Ne ≥ Ns), und den gegenteiligen Fall (Ne ≤ Ns) gemäß dem Ergebnis des Tests 24 unterscheiden.
  • * Fall Ne ≥ Ns der 2
  • Das Prinzip ist wie folgt. Bei Betrachtung der zwei Codierer E und S verwenden ihre Verzeichnisse Ne bzw. Ns Impulse in jedem Subrahmen.
  • Der Codierer E hat die Positionen seiner Ne Impulse im Subrahmen se berechnet. Nachfolgend werden diese Positionen mit ei (oder unterschiedslos pe) bezeichnet. Die beschränkte Einheit Ps der privilegierten Positionen für die Impulse des Verzeichnisses des Codierers S besteht dann aus Ne Positionen ei und ihren Nachbarschaftenn.
    Figure 00260001
    wobei v i / d und v i / g ≥ 0 die Größen der rechten und linken Nachbarschaften des Impulses i sind. Die Werte von v i / d und v i / g, die im Schritt 27 der 2 gewählt werden, sind mehr oder weniger groß, je nach der gewünschten Komplexität und Qualität. Diese Größen können willkürlich zu Beginn der Verarbeitung festgelegt oder in jedem Subrahmen se gewählt werden.
  • Im Schritt 29 der 2 enthält die Einheit Ps dann jede Position ei sowie ihre v i / d rechten Nachbarn und ihre v i / g linken Nachbarn.
  • Für jeden der Ns Impulse des Verzeichnisses des Codierers S müssen anschließend die Positionen definiert werden, die dieser Impuls das Recht hat, unter den von Ps angebotenen einzunehmen.
  • Hierzu werden Regeln eingeführt, die die Konstruktion des Verzeichnisses von S bestimmen. Es wird angenommen, dass die Ns Impulse von S zu vordefinierten Untereinheiten von Positionen gehören, wobei eine gegebene Anzahl von Impulsen sich die gleiche Untereinheit von erlaubten Positionen teilt. Zum Beispiel sind die 10 Impulse des Modus 12,2 kbit/s des Codierers 3GPP NB-AMR paarweise in 5 verschiedene Untereinheiten verteilt, wie es die obige Tabelle 3 zeigt. Mit N's wird die Anzahl von Untereinheiten von unterschiedlichen Positionen (N's ≤ Ns in diesem Beispiel, da gilt N's = 5), und mit Tj (für j = 1 bei N's) werden die Untereinheiten von Positionen bezeichnet, die das Verzeichnis von S definieren.
  • Ausgehend von der Einheit PS werden die N's Untereinheiten Sj, die von der Schnittstelle von Ps mit einer der Einheiten Tj stammen, im Schritt 30 der 2 gemäß folgender Beziehung gebildet: Sj = Ps∩Tj
  • Die Nachbarschaften v i / d und v i / g müssen eine ausreichende Größe haben, damit keine Schnittstelle leer ist. So muss eine Neueinstellung der Nachbarschaftsgrößen, falls notwendig, in Abhängigkeit von dem Satz von Ausgangsimpulsen ermöglicht werden. Das ist der Gegenstand des Tests 34 der 2, mit einer Erhöhung der Größe der Nachbarschaften (Schritt 35) und Rückkehr zur Definition der Vereinigung Ps der Gruppen, die im Schritt c) gebildet wurden (Schritt 29 in 2), wenn eine der Schnittstellen leer ist.
  • Wenn dagegen keine Schnittstelle Sj leer ist, ist es das aus diesen Schnittstellen Sj bestehende Unterverzeichnis, das an den Codierer S gesendet wird (End-Schritt 31).
  • Vorteilhafterweise nutzt die Erfindung die Struktur der Verzeichnisse. Wenn zum Beispiel das Verzeichnis des Codierers S vom Typ ACELP ist, sind es die Schnittstellen der Positionen der Spuren mit Ps, die berechnet werden. Wenn das Verzeichnis des Codierers E auch vom Typ ACELP ist, nutzt die Prozedur der Extraktion der Nachbarschaften auch die Struktur in Spuren, und die zwei Schritte der Extraktion der Nachbarschaften und der Zusammensetzung der beschränkten Untereinheiten von Positionen werden sorgfältig vereint. Insbesondere ist es vorteilhaft, wenn der Extraktionsalgorithmus der Nachbarschaften die Zusammensetzung der Kombinationen von Impulsen gemäß den Zwängen der zweiten Einheit berücksichtigt. Wie man weiter unten sehen wird, werden Extraktionsalgorithmen von Nachbarschaften erarbeitet, um die Zusammensetzung der Kombinationen von Impulsen der zweiten Einheit zu vereinfachen. Ein Beispiel eines solchen Algorithmus wird von einer der Ausführungsformen veranschaulicht, die weiter unten angegeben werden (ACELP mit 2 Impulsen zu ACELP mit 4 Impulsen).
  • Die Anzahl von möglichen Kombinationen von Positionen wird so beschränkt, und die Größe der Untereinheit des Verzeichnisses des Codierers S ist allgemein sehr viel kleiner als diejenige des Originalverzeichnisses, was die Komplexität des vorletzten Schritts der Transcodierung stark reduziert. Es wird hier präzisiert, dass die Anzahl von Kombinationen von Impulspositionen die Größe der erwähnten Untereinheit definiert. Es wird weiter präzisiert, dass es die Anzahl von Impulspositionen ist, die im Sinne der Erfindung verringert wird, was zu einer Verringerung der Anzahl von Kombinationen von Impulspositionen führt und es dann ermöglicht, ein Unterverzeichnis mit beschränkter Größe zu erhalten.
  • Der mit 46 in 3 bezeichnete Schritt besteht dann darin, die Suche nach dem besten Satz von Positionen für die Ns Impulse in diesem Unterverzeichnis reduzierter Größe zu starten. Das Auswahlkriterium ist ähnlich demjenigen des Codierungsprozesses. Um die Komplexität weiter zu reduzieren, kann man die Durchsuchung dieses Unterverzeichnisses beschleunigen, indem oben beschriebene, bekannte Fokussierungstechniken verwendet werden.
  • 3 fasst die erfindungsgemäßen Schritte für den Fall zusammen, in dem der Codierer E mindestens ebenso viele Impulse verwendet wie der Codierer S. Es wird aber angemerkt, dass, wie man bereits unter Bezug auf 2 gesehen hat, wenn die Anzahl von Positionen NS im zweiten Format (das Format von S) größer ist als die Anzahl von Positionen Ne im ersten Format (das Format von E), die vorgesehene Verarbeitung sich nur durch einige vorteilhafte Varianten unterscheidet, die weiter unten beschrieben werden.
  • Kurz gesagt, werden diese Schritte der 3 wie folgt zusammengefasst. Nach einem Schritt a) eventuelle Anpassung der Codierparameter (wenn nötig und zu diesem Zweck gestrichelt in 3 im Block 41 dargestellt):
    • – Wiedergewinnung der Positionen ei der Impulse des Codierers E, und vorzugsweise einer Anzahl Ne von Positionen (Schritt 42 entsprechend dem erwähnten Schritt b)),
    • – Extraktion der Nachbarschaften und Bildung von Nachbarschaftsgruppen gemäß der Beziehung:
      Figure 00290001
      (Schritt 43 entsprechend dem oben erwähnten Schritt c))
    • – Zusammensetzung der beschränkten Untereinheiten von Positionen {Sj = Ps∩Tj}, die die Auswahl des erwähnten und dem in 3 dargestellten Schritt 44 entsprechenden Schritts d) bilden,
    • – und Übertragung dieser Auswahl an den Codierer S (Schritt 45 entsprechend dem erwähnten Schritt e)).
  • Es wird angemerkt, dass nach diesem Schritt 45 der Codierer S anschließend einen Satz von Positionen in dem beschränkten Verzeichnis wählt, das im Schritt 44 erhalten wird.
  • Das Verfahren setzt sich also durch einen Schritt 46 der Suche in diesem vom Codierer S erhaltenen Unterverzeichnis nach einem Satz von optimalen Positionen (opt(Sj)) fort, der die zweite Anzahl Ns von Positionen enthält, wie oben angegeben. Dieser Schritt 46 der Suche nach dem optimalen Satz von Positionen wird vorzugsweise von einer fokussierten Suche angewendet, um die Durchsuchung des Unterverzeichnisses zu beschleunigen. Die Verarbeitung setzt sich natürlich durch die Codierung fort, die anschließend der zweite Codierer S durchführt.
  • Nun werden die Verarbeitungen beschrieben, die für den Fall vorgesehen sind, in dem die Anzahl von Impulsen Ne, die vom ersten Codierformat verwendet werden, geringer ist als die Anzahl von Impulsen Ns, die vom zweiten Codierformat verwendet werden.
  • * Fall Ne < Ns der 2
  • Wenn das Format von S mehr Impulse verwendet als das Format von E, ist die Verarbeitung ähnlich der oben dargelegten Verarbeitung. Es kann aber vorkommen, dass Impulse des Formats von S keine Positionen im beschränkten Verzeichnis haben. In diesem Fall werden in einer ersten Ausführung alle für diese Impulse möglichen Positionen erlaubt. In einer zweiten, bevorzugten Ausführung wird einfach die Größe der Nachbarschaften zu V'd und V'g im Schritt 28 der 2 erhöht.
  • * Fall Ne < Ns < 2Ne der 2
  • Hier muss ein besonderer Fall betont werden. Wenn Ne nahe Ns ist, typischerweise Ne < Ns < 2Ne, kann eine bevorzuge Art der Bestimmung der Positionen in Betracht gezogen werden, obwohl die vorhergehende Verarbeitung absolut anwendbar bleibt. Man kann noch an Komplexität einsparen, indem direkt die Positionen der Impulse von S ausgehend von denjenigen von E festgelegt werden. Die ersten Ne Impulse von S werden nämlich auf den Positionen derjenigen von E angeordnet. Die verbleibenden Ns – Ne Impulse werden so nahe wie möglich (in direkter Nachbarschaft) der Ne ersten Impulse angeordnet. So wird im Schritt 25 der 2 getestet, ob die Anzahlen Ne und Ns nahe sind (mit Ne > Ns) und wenn ja, wird wie oben für die Wahl der Impulspositionen im Schritt 26 beschrieben vorgegangen.
  • Wenn in den zwei Fällen Ne < Ns und Ne < Ns < 2Ne trotz dieser Vorsichtsmaßnahmen eine der Schnittstellen Sj leer ist, erhöht man natürlich einfach die Größe der Nachbarschaften V+ g; V+ d im Schritt 35, wie es für den Fall Ne ≥ Ns beschrieben wurde.
  • Schließlich wird in allen Fällen, wenn keine Schnittstelle Sj leer ist, das von den Sj gebildete Unterverzeichnis an den zweiten Codierer S übertragen (Schritt 31).
  • Nun werden die Verarbeitungen beschrieben, die im Anpassungsschritt a) vorgesehen sind, wenn die Codierparameter des ersten und zweiten Formats nicht die gleichen sind, insbesondere bezüglich der Tastfrequenzen und der Dauern von Subrahmen.
  • Es werden dann die nachfolgenden Fälle unterschieden.
  • * Dauern von Subrahmen gleich, aber Tastfrequenzen unterschiedlich
  • Diese Situation entspricht dem Fall "n" für den Test 22 und "0" für den Test 23 der 2. Die Anpassung a) bezieht sich dann auf den Schritt 32 der 2.
  • Man kann hier nicht mehr direkt die vorhergehende Verarbeitung anwenden, da die zwei Formate nicht die gleiche Zeitaufteilung haben. Aufgrund der unterschiedlichen Tastfrequenzen weisen die zwei Rahmen nämlich nicht die gleiche Anzahl von Tastproben in der gleichen Dauer auf.
  • Anstatt die Positionen de Impulse des Formats des Codierers S ohne Berücksichtigung derjenigen des Formats des Codierers E zu bestimmen, wie es ein Tandem tun würde, werden hier zwei Verarbeitungen gemäß zwei unterschiedlichen Ausführungsformen vorgeschlagen. Diese Verarbeitungen sind von geringer Komplexität, indem eine Entsprechung zwischen den Positionen der zwei Formate hergestellt wird, die es dann ermöglicht, anschließend auf die vorher beschriebene Verarbeitung zurückzukommen (als ob die Tastfrequenzen gleich wären).
  • Die Verarbeitung der ersten Ausführungsform verwendet eine direkte Quantifizierung der Zeitskala des ersten Formats durch diejenige des zweiten Formats. Dieser Quantifizierungsvorgang, der tabelliert oder durch eine Formel berechnet werden kann, ermöglicht es so, für jede Position eines Subrahmens des ersten Formats ihren Gegenwert in einem Subrahmen des zweiten Formats und umgekehrt zu finden.
  • Zum Beispiel kann die Entsprechung zwischen den Positionen pe und ps in den Subrahmen der zwei Formate durch die folgende Formel definiert werden:
    Figure 00320001
    wobei Fe und Fs die Tastfrequenzen von E bzw. S und Le und Ls ihre Subrahmenlängen sind,
    ⊔ den Ganzteil bezeichnet.
  • Gemäß den Merkmalen der Verarbeitungseinheit kann diese Entsprechung die obige Formel verwenden oder vorteilhafterweise für die Le Werte tabelliert werden. Man kann auch eine Zwischenlösung wählen, indem nur die le ersten Werte
    Figure 00330001
    wobei d der größte gemeinsame Teiler von Le und Ls ist) tabelliert werden, wobei die verbleibenden Positionen sich dann leicht ableiten lassen.
  • Es ist anzumerken, dass man auch mehrere Positionen des Subrahmens von S einer Position eines Subrahmens von E entsprechen lassen kann. Zum Beispiel, indem die Positionen direkt unter und direkt über
    Figure 00330002
    genommen werden.
  • Ausgehend von der Gesamtheit der Positionen ps entsprechend den Positionen pe wird die oben beschriebene allgemeine Verarbeitung angewendet (Extraktion der Nachbarschaften, Zusammensetzung der Kombinationen von Impulsen, Auswahl der optimalen Kombination).
  • In den nachfolgenden Tabellen 5a bis 5d findet man wieder diesen Fall von gleichen Dauern von Subrahmen, aber mit unterschiedlichen Tastfrequenzen, unter Bezug auf ein Ausführungsbeispiel, in dem der Codierer E vom Typ 3GPP NB-AMR und der Codierer S vom Typ WB-AMR ist. Der Codierer NB-AMR hat einen Subrahmen von 40 Tastproben für eine Tastfrequenz von 8 kHz. Der Codierer WB-AMR verwendet seinerseits 64 Tastproben pro Subrahmen mit 12,8 kHz. In beiden Fällen hat der Subrahmen eine Dauer von 5 ms. Die Tabelle 5a zeigt die Entsprechung der Positionen in einem Subrahmen des NB-AMR zu einem Subrahmen des WB-AMR, und die Tabelle 5b die umgekehrte Entsprechung. Die Tabellen beschränkter Entsprechung sind in den Tabellen 5c und 5d angegeben.
    Figure 00340001
    Tabelle 5a: Tabelle der zeitlichen Entsprechung vom NB-AMR zum WB-AMR
    Figure 00340002
    Tabelle 5b: Tabelle der zeitlichen Entsprechung vom WB-AMR zum NB-AMR
    Positionen NB-AMR 0 1 2 3 4
    Positionen WB-AMR 0 2 3 5 6
    Tabelle 5c: Tabelle der beschränkten zeitlichen Entsprechung vom NB-AMR zum WB-AMR
    Positionen WB-AMR 0 1 2 3 4 5 6 7
    Positionen NB-AMR 0 1 1 2 2 3 4 4
    Tabelle 5d: Tabelle der beschränkten zeitlichen Entsprechung vom WB-AMR zum NB-AMR
  • Kurz gesagt, unter Bezug auf 2a, werden die nachfolgenden Schritte vorgesehen:
    • a1) direkte Quantifizierung der Zeitskala von der ersten Frequenz zur zweiten Frequenz (Schritt 51 der 2a),
    • a2) und Bestimmung, in Abhängigkeit von dieser Quantifizierung, jeder Impulsposition in einem Subrahmen im zweiten Codierformat, gekennzeichnet durch die zweite Tastfrequenz, ausgehend von einer Impulsposition in einem Subrahmen im ersten Codierformat, gekennzeichnet durch die erste Tastfrequenz (Schritt 52 der 2a).
  • Allgemein gesagt, erfolgt der Schritt a1) der Quantifizierung durch Berechnung und/oder Tabellierung ausgehend von einer Funktion, die einer Impulsposition pe in einem Subrahmen im ersten Format eine Impulsposition ps in einem Subrahmen im zweiten Format entsprechen lässt, und diese Funktion zeigt sich im Wesentlichen als eine lineare Kombination, die einen multiplikativen Koeffizienten einsetzt, der dem Verhältnis der zweiten Tastfrequenz zur ersten Tastfrequenz entspricht.
  • Außerdem, um umgekehrt von einer Impulsposition in einem Subrahmen im zweiten Format ps zu einer Impulsposition in einem Subrahmen im erstem Format pe überzugehen, wird natürlich eine umgekehrte Funktion dieser linearen Kombination angewendet, die an eine Impulsposition in einem Subrahmen im zweiten Format ps angewendet wird.
  • Man versteht, dass das Transcodierverfahren vollständig umkehrbar ist und sich in die eine Transcodierrichtung (E -> S) genauso anpasst wie in die andere (S -> E).
  • In einer zweiten Ausführungsform der Anpassung der Tastfrequenzen wird ein klassisches Prinzip der Änderung der Tastfrequenz verwendet. Es wird von dem Subrahmen ausgegangen, der die vom ersten Format gefundenen Impulse enthält. Bei der Frequenz gleich dem kleinsten gemeinsamen Vielfachen der zwei Tastfrequenzen Fe und Fs wird überabgetastet. Nach Tiefpassfilterung wird dann unterabgetastet, um wieder auf die Tastfrequenz des zweiten Formats zurückzukommen, d. h. Fs. Man erhält einen Subrahmen mit der Frequenz Fs, der die gefilterten Impulse von E enthält. Auch da kann man das Ergebnis der Operationen der Überabtastung/Tiefpassfilterung/Unterabtastung für jede mögliche Position eines Subrahmens von E tabellieren. Diese Verarbeitung kann auch durch "online"-Berechnung durchgeführt werden. Wie in der ersten Ausführungsform der Anpassung der Tastfrequenzen kann man eine einzige oder mehrere Positionen von S einer Position von E zuordnen, wie nachfolgend erläutert, und die oben beschriebene allgemeine Verarbeitung im Sinne der Erfindung anwenden.
  • Wie in der in 2b dargestellten Variante werden die nachfolgenden Schritte vorgesehen:
    • a'1) Überabtasten eines Subrahmens im ersten Codierformat, gekennzeichnet durch die erste Tastfrequenz, mit einer Frequenz Fpcm gleich dem kleinsten gemeinsamen Vielfachen der ersten und der zweiten Tastfrequenz (Schritt 53 der 2b), und
    • a'2) Anwenden an den überabgetasteten Subrahmen einer Tiefpassfilterung (Schritt 54 der 2b), gefolgt von einer Unterabtastung, um eine Tastfrequenz entsprechend der zweiten Tastfrequenz zu erreichen (Schritt 55 der 2b).
  • Das Verfahren wird durch den Erhalt, vorzugsweise durch Schwellwertbildung, einer ggf. variablen Anzahl von Positionen erhalten, wobei diese Positionen an die Impulse von E angepasst sind (Schritt 56}, wie in der obigen ersten Ausführungsform.
  • * Tastfrequenzen gleich, aber Dauern von Subrahmen unterschiedlich
  • Nun wird die Verarbeitung beschrieben, die in den Fällen vorgesehen ist, in denen die Tastfrequenzen gleich, aber die Dauern der Subrahmen unterschiedlich sind. Diese Situation entspricht dem Fall "n" für den Test 23, aber "0" für den Test 22 der 2. Die Anpassung a) bezieht sich dann auf den Schritt 33 der 2.
  • Wie im obigen Fall kann man nicht direkt den Schritt der Extraktion der Nachbarschaften als solchen anwenden. Zunächst müssen die zwei Subrahmen kompatibel gemacht werden. Hier unterscheiden sich die Subrahmen durch ihre Größe. Gegenüber dieser Inkompatibilität schlägt eine bevorzugte Ausführung anstelle der Berechnung der Positionen der Impulse, wie es das Tandem tut, eine Lösung mit geringer Komplexität vor, die es ermöglicht, ein beschränktes Verzeichnis von Kombinationen von Positionen für die Impulse des zweiten Formats ausgehend von den Positionen der Impulse des ersten Formats zu bestimmen. Da die Subrahmen von S und von E aber nicht die gleiche Größe haben, ist es nicht möglich, eine direkte zeitliche Entsprechung zwischen einem Subrahmen von S und einem Subrahmen von E herzustellen. Wie es 4 zeigt (in der die Subrahmen von E und S mit STE bzw. STS bezeichnet sind), sind die Grenzen der Subrahmen der zwei Formate nicht ausgerichtet, und im Lauf der Zeit verschieben sich diese Subrahmen zueinander.
  • In einer bevorzugten Ausführungsform wird vorgeschlagen, die Erregung von E in Pseudo-Subrahmen der Größe derjenigen von S und im Takt von S aufzuteilen. In 5 sind die Pseudo-Subrahmen dargestellt, die mit STE' bezeichnet sind. In der Praxis läuft dies auch darauf hinaus, unter Berücksichtigung des Größenunterschieds der Subrahmen eine zeitliche Entsprechung zwischen den Positionen in den zwei Formaten herzustellen, um die Positionen bezüglich eines E und S gemeinsamen Ursprungs auszurichten. Die Bestimmung dieses gemeinsamen Ursprungs wird weiter unten ausführlich erläutert.
  • Eine Position po e (bzw. po s) des ersten Formats (bzw. des zweiten Formats) bezüglich dieses Ursprungs fällt mit der Position pe (bzw. ps) des Subrahmens ie (bzw. js) von E (bzw. S) bezüglich dieses Subrahmens zusammen. So hat man: po e = pe + ieLe und po s = ps + jsLs mit 0 ≤ pe < Le und 0 ≤ ps < Ls
  • Einer Position pe des Subrahmens ie des Formats von E entspricht die Position ps des Subrahmens js des Formats von S, wobei ps und js der Rest bzw. der Quotient der euklidischen Division durch Ls der Position po e von pe bezüglich eines gemeinsamen Ursprungs O von E und S sind: js = ⌊(pe + ieLe)/Ls⌋ und ps ≡ (pe + ieLe)[Ls])mit 0 ≤ pe < Le und 0 ≤ ps < Ls
    wobei ⊔ den Ganzteil, ≡ den Modulo bezeichnet, wobei der Index eines Subrahmens von E (bzw. S) bezüglich des gemeinsamen Ursprungs O angegeben wird.
  • So werden die Positionen pe, die sich in einem Subrahmen js befinden, verwendet, um je nach der oben beschriebenen allgemeinen Verarbeitung eine beschränkte Einheit von Positionen für Impulse von S im Subrahmen js zu bestimmen. Wen aber gilt Le > Ls, kann es vorkommen, dass ein Subrahmen von S keinen Impuls enthält. Im Beispiel der 6 sind die Impulse des Subrahmens STEG durch senkrechte Striche dargestellt. Das Format von E kann sehr wohl die Impulse von STEG am Ende eines Subrahmens konzentrieren, so dass der Pseudo-Subrahmen STE'0 dann keinen Impuls enthält. Alle durch E angeordneten Impulse finden sich beim Aufteilen in STE'1 wieder. In diesem Fall wird eine klassische fokussierte Suche vorzugsweise an den Pseudo-Subrahmen STE'0 angewendet.
  • Nun werden bevorzugte Ausführungen zur Bestimmung eines den zwei Formaten gemeinsamen zeitlichen Ursprungs O beschrieben. Dieser gemeinsame Bezug bildet die Position (Nummer 0), von der aus die Positionen der Impulse in den folgenden Subrahmen nummeriert werden. Diese Position 0 kann auf verschiedene Weisen definiert werden, abhängig von dem System, das das Transcodierverfahren im Sinne der vorliegenden Erfindung nutzt. Zum Beispiel ist es für einen Transcodiermodul, der in einer Einrichtung eines Übertragungssystems enthalten ist, natürlich, als Ursprung die erste Position des ersten nach dem Start der Einrichtung empfangenen Rahmens zu nehmen.
  • Der Nachteil dieser Wahl ist es aber, dass die Positionen immer größere Werte annehmen, und es kann notwendig werden, sie zu begrenzen. Hierzu genügt es, die Position des gemeinsamen Ursprungs jedes Mal dann zu aktualisieren, wenn es möglich ist. Wenn so die jeweiligen Längen Le und Ls der Subrahmen von E und S in der Zeit konstant sind, wird die Position des gemeinsamen Ursprungs immer dann aktualisiert, wenn die Grenzen der Subrahmen von E und S ausgerichtet werden. Dies geschieht periodisch, wobei die Periode (in Tastproben) gleich dem kleinsten gemeinsamen Vielfachen von Le und Ls ist.
  • Man kann auch den Fall in Betracht ziehen, in dem Le und/oder Ls nicht in der Zeit konstant sind. Es ist nicht mehr möglich, ein gemeinsames Vielfaches der zwei Längen von Subrahmen zu finden, die jetzt mit Le(n) und Ls(n) bezeichnet werden, wobei n die Nummer des Subrahmens darstellt. In diesem Fall ist es angebracht, die Werte Le(n) und Ls(n) nach und nach zu summieren und in jedem Subrahmen die zwei erhaltenen Summen zu vergleichen:
    Figure 00390001
  • Jedes Mal, wenn man hat Te(k) = Ts(k'), wird der gemeinsame Ursprung aktualisiert (und an der Position kxLe oder auch k'xLs genommen). Bezüglich der zwei Summen Te und Ts, so werden sie vorzugsweise neu initialisiert.
  • Kurz gesagt und allgemeiner, indem erste (bzw. zweite) Dauer eines Subrahmens die Dauer eines Subrahmens des ersten (bzw. zweiten) Codierformats genannt wird, sind die Anpassungsschritte, die durchgeführt werden, wenn die Dauern von Subrahmen unterschiedlich sind, in 7 zusammengefasst und sind vorzugsweise die folgenden:
    • a20) Definition eines gemeinsamen Ursprungs O der Subrahmen des ersten und des zweiten Formats (Schritt 70),
    • a21) Aufteilen der aufeinander folgenden Subrahmen des ersten Codierformats, gekennzeichnet durch eine erste Subrahmendauer, um Pseudo-Subrahmen von Dauern L'e entsprechend der zweiten Subrahmendauer zu bilden (Schritt 71),
    • a22) Aktualisierung des gemeinsamen Ursprungs O (Schritt 79),
    • a23) und Bestimmung der Entsprechung zwischen den Impulspositionen in den Pseudo-Subrahmen p'e und in den Subrahmen im zweiten Format (Schritt 80).
  • Vorzugsweise, um den gemeinsamen Ursprung O zu bestimmen, werden im Test 72 der 7 die folgenden Fälle unterschieden:
    • – die erste und die zweite Dauer sind fest in der Zeit (Ausgang "o" des Tests 72), und
    • – die erste und die zweite Dauer variieren in der Zeit (Ausgang "n" des Tests 72).
  • Im ersten Fall wird die zeitliche Position des gemeinsamen Ursprungs in jedem Zeitpunkt periodisch aktualisiert (Schritt 74), in dem Grenzen von Subrahmen erster Dauer St(Le) bzw. zweiter Dauer St(Ls) zeitlich ausgerichtet sind (an diesen Grenzen durchgeführter Test 73).
  • Im zweiten Fall werden vorzugsweise:
    • a221) nacheinander die zwei Summierungen der Subrahmen im ersten Format Te(k) bzw. der Subrahmen im zweiten Format Ts(k') durchgeführt (Schritt 76),
    • a222) ein Vorkommen einer Gleichheit zwischen den zwei Summen erfasst, das einen Augenblick der Aktualisierung des gemeinsamen Ursprungs (Test 77) definiert,
    • a223) die zwei erwähnten Summen nach dem Vorkommen für eine zukünftige Erfassung eines nächsten gemeinsamen Ursprungs neu initialisiert (Schritt 78).
  • Nun genügt es in dem Fall, in dem die Dauern von Subrahmen und die Tastfrequenzen unterschiedlich sind, sorgfältig die Entsprechungsalgorithmen zwischen den Positionen von E und S zu kombinieren, die in den zwei vorhergehenden Fällen beschrieben wurden.
  • * AUSFÜHRUNGSBEISPIELE
  • Nun werden drei Ausführungsbeispiele der Transcodierung im Sinne der Erfindung beschrieben. Diese Ausführungsbeispiele beschreiben die Anwendung der Verarbeitungen, die in den oben dargestellten Fällen in genormten Sprachcodierern mit Analyse durch Synthese vorgesehen sind. Die zwei ersten Modi veranschaulichen den günstigen Fall, in dem die Tastfrequenzen, wie auch die Dauern der Subrahmen, gleich sind. Das letzte Beispiel veranschaulicht den Fall, in dem die Dauern der Subrahmen unterschiedlich sind.
  • * Ausführungsbeispiel Nr. 1
  • Das erste Ausführungsbeispiel wird an die intelligente Transcodierung zwischen dem Modell MP-MLQ des G.723.1 mit 6,3 kbit/s und das Modell ACELP mit 4 Impulsen des G.723.1 mit 5,3 kbit/s angewendet.
  • Eine intelligente Transcodierung der hohen Bitrate zur niederen Bitrate des G.723.1 konfrontiert ein Modell MP-MLQ mit 6 und 5 Impulsen mit einem Modell ACELP mit 4 Impulsen. Das hier vorgestellte Ausführungsbeispiel ermöglicht es, die Positionen der 4 Impulse des ACELP ausgehend von den Positionen der Impulse des MP-MLQ zu bestimmen.
  • Nachfolgend wird der Betrieb des Codierers G.723.1 in Erinnerung gerufen.
  • Der Multi-Bitrate-Codierer UIT-T G.723.1 und seine Multipuls-Verzeichnisse wurden oben vorgestellt. Es wird nur präzisiert, dass ein Rahmen des G.723.1 240 Tastproben mit 8 kHz aufweist, und dass er in vier Subrahmen von 60 Tastproben unterteilt ist. Die gleiche Beschränkung wird den Positionen der Impulse jedes Codevektors jedes der drei Multipuls-Wörterbücher auferlegt. Diese Positionen müssen alle die gleiche Parität haben (alle geradzahlig oder alle ungeradzahlig). Der Subrahmen von 60(+4) Positionen wird so in zwei Raster von 32 Positionen aufgeteilt. Das geradzahlige Raster weist die Positionen mit den Nummern [0, 2, 4, ..., 58, (60, 62)] auf. Das ungeradzahlige Raster weist die Positionen [1, 3, 5, ..., 59, (61, 63)] auf. Für jede Bitrate bleibt die Durchsuchung des Verzeichnisses, selbst wenn sie nicht erschöpfend ist, komplex, wie oben erwähnt.
  • Nun wird die Auswahl einer Untereinheit des Verzeichnisses ACELP des G.723.1 mit 5,3 kbit/s ausgehend von einem Element eines Verzeichnisses MP-MLQ des G.723.1 mit 6,3 kbit/s beschrieben.
  • Man sucht das Innovationssignal eines Subrahmens durch ein Element des Verzeichnisses ACELP des G.723.1 mit 5,3 kbit/s zu modellisieren in Kenntnis des Elements des Verzeichnisses MP-MLQ des G.723.1 mit 6,3 kbit/s, bestimmt während einer ersten Codierung. Man verfügt also über die Ne Positionen (Ne = 5 oder 6) der Impulse, die vom Codierer G.723.1 mit 6,3 kbit/s ausgewählt wurden.
  • Zum Beispiel kann man annehmen, dass die aus dem binären Bitstrom des Codierers G.723.1 mit 6,3 kbit/s für einen Subrahmen, dessen Anregung durch Ne = 5 Impulse modellisiert wird, extrahierten Positionen sind: e0 = 0; e1 = 8; e2 = 28; e3 = 38; e4 = 46
  • Es wird daran erinnert, dass keine Anpassung der Tastfrequenzen oder der Dauern von Subrahmen hier durchzuführen ist. Nach diesem Schritt der Wiedergewinnung der Positionen ei besteht ein folgender Schritt dann darin, direkt die rechten und linken Nachbarschaften dieser 5 Impulse zu extrahieren, die rechten und linken Nachbarschaften werden hier gleich 2 genommen. Die Einheit Ps der ausgewählten Positionen ist: Ps = {–2, –1, 0, 1, 2}∪{6, 7, 8, 9, 10}∪{26, 27, 28, 29, 30}∪{36, 37, 38, 39, 40}∪{44, 45, 46, 47, 48}
  • Der dritte Schritt besteht darin, die beschränkte Einheit der möglichen Positionen für jeden Impuls (hier eine Spur) des Verzeichnisses ACELP des G.723.1 mit 5,3 kbit/s zusammenzusetzen, indem Ns = 4 Schnittstellen von Ps mit den 4 Einheiten der Positionen der geradzahligen (bzw. ungeradzahligen) Spuren genommen werden, die von diesem letzten Verzeichnis erlaubt werden (wie in der Tabelle 1 dargestellt).
  • Für die geradzahlige Parität: s0 = Ps∩{0, 8, 16, ..., 56); S1 = Ps∩{2, 10, 18, ..., 58}; S2 = Ps∩{4, 12, 20, ..., 52, (60); S3 = Ps∩{6, 14, 22, ..., 54, (62)};daher: S0 = {0, 8, 40, 48}; S1 = {2, 10, 26}; S2 = {28, 36, 44}; S3 = {6, 30, 38, 46};
  • Für die ungeradzahlige Parität: S0 = Ps∩{1, 9, ..., 57}; S1 = Ps∩{3, 11, ..., 59}; S2 = Ps∩{5, 13, ..., 53, (61)}; S3 = Ps∩{7, 15, ..., 55, (63)};daher: S0 = {1, 9}; S1 = {27}; S2 = {29, 37, 45}; S3 = {7, 39, 47};
  • Die Kombination dieser ausgewählten Positionen bildet das neue beschränkte Verzeichnis, in dem die Suche durchgeführt wird. Für diesen letzten Schritt stützt sich die Prozedur der Auswahl des Satzes von optimalen Positionen auf das Kriterium CELP, wie es der G.723.1 im Modus 5,3 kbit/s tut. Die Durchsuchung kann erschöpfend oder vorzugsweise fokussiert sein.
  • Die Anzahl von Kombinationen von Positionen im beschränkten Verzeichnis ist gleich 180 (= 4·3·3·4 + 2·1·3·3) anstelle der 8192 (= 2·8·8·8·8) Kombinationen von Positionen des Verzeichnisses ACELP des G.723.1 mit 5,3 kbit/s.
  • Es wird angemerkt, dass man die Anzahl von Kombinationen weiter einschränken kann, indem nur die im Modus 6,3 kbit/s gewählte Parität betrachtet wird (im erwähnten Beispiel die geradzahlige Parität). In diesem Fall ist die Anzahl von Kombinationen des beschränkten Verzeichnisses gleich 144.
  • Es kann vorkommen (je nach der Größe der betrachteten Nachbarschaften), dass für einen der vier Impulse die Einheit Ps keine Position für eine Spur des Modells ACELP enthält (Fall, in dem eine der Einheiten Si leer ist). Für Nachbarschaften der Größe 2, wenn die Positionen der Ne Impulse alle auf der gleichen Spur sind, enthält Ps nur Positionen dieser Spur und der benachbarten Spuren, In diesem Fall, gemäß dem gewünschten Kompromiss Qualität/Komplexität, ist es möglich, entweder die Einheit Si durch Ti zu ersetzen (was darauf hinausläuft, die Einheit der Positionen dieser Spur nicht zu beschränken), oder die rechte (oder linke) Nachbarschaft der Impulse zu vergrößern. Zum Beispiel, wenn alle Impulse des Codes mit 6,3 kbit/s sich auf der Spur 2 befinden, mit rechten und linken Nachbarschaften gleich 2, hat die Spur 0 keine Positionen, unabhängig von der Parität. Es genügt, dann die Größe der linken und/oder rechten Nachbarschaft um 2 zu erhöhen, um dieser Spur 0 Positionen zuzuteilen.
  • Um diese Ausführung zu veranschaulichen, wird vom folgenden Beispiel ausgegangen: e0 = 4; e1 = 12; e2 = 20; e3 = 36; e4 = 52
  • Die Einheit Ps der ausgewählten Positionen ist: Ps = {2, 3, 4, 5, 6}∪{10, 11, 12, 13, 14}∪{18, 19, 20, 21, 22}∪{34, 35, 36, 37,38}∪{50, 51, 52, 53, 54}
  • Unter der Annahme, dass man die gleiche Parität behalten will, ist die Anfangsverteilung dieser Positionen für die 4 Impulse: S0 = ∅; S1{2, 10, 18, 34, 50}; S2 = {4, 12, 20, 36, 52}; S3 = {6, 14, 22, 38, 54}
  • Durch Erhöhen der linken Nachbarschaft der Impulse um 2 erhält man: S0 = {0, 8, 16, 32, 48}; S1 = {2, 10, 18, 34, 50}; S2 = {4, 12, 20, 36, 52}; S3 = {6, 14, 22, 38, 54}(also mit S0 ≠ ∅).
  • * Ausführungsbeispiel Nr. 2
  • Das folgende zweite Beispiel veranschaulicht die Anwendung der Erfindung auf die intelligenten Transcodierungen zwischen Modellen ACELP gleicher Länge. Insbesondere wird dieses zweite Ausführungsbeispiel an die intelligente Transcodierung zwischen dem ACELP mit 4 Impulsen des G.729 mit 8 kbit/s und dem ACELP mit 2 Impulsen des G.729 mit 6,4 kbit/s angewendet.
  • Eine intelligente Transcodierung zwischen den Modi 6,4 kbit/s und 8 kbit/s des Codierers G.729 konfrontiert ein Verzeichnis ACELP mit zwei Impulsen und mit einem zweiten mit vier Impulsen. Das hier vorgestellte Beispiel ermöglicht es, die Positionen von 4 Impulsen (8 kbit/s) ausgehend von den Positionen von 2 Impulsen (6,4 kbit/s) und umgekehrt zu bestimmen.
  • Es wird kurz an den Betrieb des Codierers UIT-T G.729 erinnert. Dieser Codierer kann mit drei Bitraten arbeiten: 6,4; 8 und 11,8 kbit/s. Es werden hier also die zwei ersten Bitraten betrachtet. Ein Rahmen von G.729 weist 80 Tastproben mit 8 kHz auf. Dieser Rahmen ist in zwei Subrahmen von 40 Tastproben aufgeteilt. Für jeden Subrahmen modellisiert der G.729 das Innovationssignal durch Impulse gemäß dem Modell ACELP. Er verwendet davon vier im Modus 8 kbit/s und zwei für den Modus 6,4 kbit/s. Die obigen Tabellen 2 und 4 geben die Positionen an, die die Impulse für diese beiden Bitraten annehmen können. Bei 6,4 kbit/s wird eine erschöpfende Suche aller Kombinationen (512) der Positionen durchgeführt. Bei 8 kbit/s wird vorzugsweise eine fokussierte Suche verwendet.
  • Die allgemeine Verarbeitung im Sinne der Erfindung wird auch hier verwendet. Aber und vorteilhafterweise, nutzt man hier die den zwei Verzeichnissen gemeinsame Struktur ACELP. Die Entsprechung der Sätze von Positionen nutzt so ein Aufteilen des Subrahmens von 40 Tastproben in 5 Spuren von 8 Positionen, die in der nachfolgenden Tabelle 6 angegeben werden.
    Spuren Positionen
    P0 0, 5, 10, 15, 20, 25, 30, 35
    P1 1, 6, 11, 16, 21, 26, 31, 36
    P2 2, 7, 12, 17, 22, 27, 32, 37
    P3 3, 8, 13, 18, 23, 28, 33, 38
    P4 4, 9, 14, 19, 24, 29, 34, 39
    Tabelle 6: Verteilung der Positionen in fünf Spuren in den Verzeichnissen ACELP des G.729
  • In den zwei Verzeichnissen teilen die Positionen der Impulse sich diese Spuren, wie es die nachfolgende Tabelle 7 zeigt.
  • Alle Impulse sind durch ihre Spur und ihren Rang in dieser Spur gekennzeichnet. Der Modus mit 8 kbit/s setzt einen Impuls auf jede der ersten drei Spuren und den letzten Impuls auf eine der anderen zwei letzten Spuren. Der Modus mit 6,4 kbit/s seinerseits setzt seinen ersten Impuls auf die Spuren P1 oder P3 und seinen zweiten Impuls auf die Spuren P0, P1, P2 oder P4.
    Modus Impulse Spuren
    6,4 kbit/s i0 P1, P3
    i1 P0, P1, P2, P4
    i0 P0
    8 kbit/s i1 P1
    i2 P2
    i3 P3, P4
    Tabelle 7: Verteilung der Impulse der Verzeichnisse ACELP des G.729 mit 8 und 6,4 kbit/s in den fünf Spuren.
  • Die Verschachtelung der Spuren (Struktur ISSP) wird in dieser Ausführung genutzt, um die Extraktion der Nachbarschaften und die Zusammensetzung der beschränkten Untereinheiten von Positionen zu vereinfachen. Um sich von einer Spur zu einer anderen bewegen, genügt es, um eine Einheit nach rechts oder nach links zu verschieben. Zum Beispiel, wenn man sich auf die 5. Position der Spur 2 setzt (mit der Absolutposition 22), lässt eine Verschiebung um 1 nach rechts (+1) auf die 5. Position der Piste 3 gehen (mit der Absolutposition 23), und eine Verschiebung nach links (–1) lässt auf die 5. Position der Spur 1 gehen (mit der Absolutposition 21).
  • Allgemeiner drückt sich eine Verschiebung um ±d einer Position hier durch die folgenden Wirkungen aus.
    • Auf der Ebene der Spuren Pi: rechte Nachbarschaft: Pi ⇒ P(i + d) ≡ 5 linke Nachbarschaft: Pi ⇒ P(i – d) ≡ 5
    • Auf der Ebene des Rangs m in der Spur: * rechte Nachbarschaft: wenn (i + d) ≤ 4: mi ⇒ mi sonst: mi ⇒ mi + 1 * linke Nachbarschaft: wenn (i – d) ≥ 0: mi ⇒ mi sonst: mi ⇒ mi – 1
  • Nun wird die Auswahl einer Untereinheit des Verzeichnisses ACELP mit 4 Impulsen des Codierers G.729 mit 8 kbit/s ausgehend von einem Element eines Verzeichnisses ACELP mit 2 Impulsen des Codierers G.729 mit 6,4 kbit/s beschrieben.
  • Es wird ein Subrahmen von G.729 im Modus 6,4 kbit/s betrachtet. Zwei Impulse werden von diesem Codierer gesetzt, aber es müssen die Positionen der anderen Impulse bestimmt werden, die der G.729 mit 8 kbit/s setzen muss. Um die Komplexität radikal zu beschränken, wird eine einzige Position pro Impuls ausgewählt und eine einzige Kombination von Positionen gewählt. Vorteilhafterweise ist der Auswahlschritt also sofort. Man wählt zwei der vier Impulse des G.729 mit 8 kbit/s in den gleichen Positionen wie diejenigen des Modus mit 6,4 kbit/s, dann setzt man die zwei restlichen Impulse in die direkte Nähe der zwei ersten. Wie oben angemerkt, wird die Struktur mit Spuren genutzt. Im ersten Schritt der Wiedergewinnung der zwei Positionen durch Decodierung des binären Index (über 9 Bits) der 2 Positionen werden die zwei entsprechenden Spuren auch bestimmt. Ausgehend von diesen zwei (ggf. gleichen) Spuren werden die drei letzten Schritte der Extraktion der Nachbarschaften, der Zusammensetzung der beschränkten Untereinheiten und der Auswahl einer Kombination von Impulsen dann sorgfältig zugeordnet. Man unterscheidet mehrere Fälle je nach den Spuren Pi (i = 0 bis 4), auf denen sich die zwei Impulse des Modus mit 6,4 kbit/s befinden.
  • Die Positionen der Impulse des Modus mit 6,4 kbit/s werden mit ek, und diejenige des Modus mit 8 kbit/s mit sk bezeichnet. Die nachfolgende Tabelle 8 präsentiert für jeden der Fälle die gewählten Positionen. Die mit "Pj+d = Pi" bezeichneten Spalten präzisieren das Nachbarschaftsgesetz auf der Ebene der Spuren und an der Spur Pi endend. Es wird daran erinnert, dass auf der Ebene der Spuren Pi:
    • – für die rechte Nachbarschaft: Pi ⇒ P(i+d) ≡ 5
    • – für die linke Nachbarschaft: Pi ⇒ P(i-d) ≡ 5
  • Figure 00500001
    Tabelle 8: Wahl des beschränkten Verzeichnisses des G.729 mit 8 kbit/s ausgehend von den zwei Impulsen des Verzeichnisses ACELP des G.729 mit 6,4 kbit/s
  • Vorzugsweise versucht man also, die Verteilung der 4 Positionen im Vergleich mit den zwei Ausgangspositionen auszugleichen, aber es wird angemerkt, dass eine andere Wahl durchgeführt werden kann. Vier Fälle (die durch einen in Klammern gesetzten Exponent in der Tabelle 8 angezeigt werden) können aber zu Randeffekt-Problemen führen:
    • Fall (1): wenn e1 = 0, kann man nicht nehmen s3 = e1 – 1. Man wählt s3 = e0 + 2.
    • Fall (2): wenn e1 = 39, kann man nicht nehmen s0 = e1 + 1. Man wählt s0 = e0 – 1.
    • Fall (3): wenn e1 = 38, kann man nicht nehmen s0 = e0 + 2. Man wählt s0 = e1 – 2.
    • Fall (4): wenn e1 = 39, kann man nicht nehmen s0 = e1 + 1. Man wählt s0 = e0 – 3.
  • Um die Komplexität weiter zu verringern, kann das Vorzeichen jedes Impulses sk gleich demjenigen des Impulses ej genommen werden, von dem er abgeleitet wird.
  • Nun wird die Auswahl einer Untereinheit des Verzeichnisses ACELP mit 2 Impulsen des G.729 mit 6,4 kbit/s ausgehend von einem Element eines Verzeichnisses ACELP mit 4 Impulsen des G.729 mit 8 kbit/s beschrieben.
  • Für einen Subrahmen von G.729 im Modus mit 8 kbit/s ist der erste Schritt die Wiedergewinnung der Positionen der vier Impulse, die vom Modus 8 kbit/s erzeugt werden. Die Decodierung des binären Index (über 13 Bits) der 4 Positionen ermöglicht es, ihren Rang in ihrer jeweiligen Spur für die drei ersten Positionen (der Spuren 0 bis 2) und die Spur (3 oder 4) des vierten Impulses sowie seinen Rang in dieser Spur zu erhalten. Jede Position ei (0 ≤ i < 4) wird durch das Paar (pi, mi) gekennzeichnet, in dem pi der Index seiner Spur und mi sein Rang in dieser Spur ist. Man hat: ei = 5mi + pi, mit 0 ≤ mi < 8 und pi = i für i < 3 und p3 = 3 oder 4
  • Wie bereits erwähnt, werden die Extraktion der Nachbarschaften und die Zusammensetzung der beschränkten Untereinheiten kombiniert und nutzen vorteilhafterweise die den zwei Verzeichnissen gemeinsame Struktur ISSP. Durch Nutzen der Eigenschaft von benachbarten Positionen, die durch die Verschachtelung der Spuren induziert wird, werden die fünf Schnittstellen T'j der Einheit PS der Nachbarschaften der 4 Positionen mit den 5 Spuren Pj konstruiert. T'j = Ps∩Pj
  • So gehört ein rechter (bzw. linker) Nachbar von +1 (bzw. –1) des Impulses (p, m) zu T'p+1, wenn p < 4 (bzw. zu T'p-1 wenn p > 0), sonst (Fall p = 4) zu T'0, vorausgesetzt, es gilt m < 7 (bzw. zu T'4 (Fall i = 0), vorausgesetzt, es gilt m > 0). Die Beschränkung auf den rechten Nachbarn für eine Position des vierten Impulses, der zur vierten Spur gehört (bzw. linken Nachbarn für eine Position der ersten Spur) ermöglicht es, sich zu versichern, dass die benachbarte Position nicht außerhalb des Subrahmens liegt.
  • Bei Verwendung der Schreibweise Modulo 5 (≡ 5) gehört so ein rechter (bzw. linker) Nachbar um +1 (bzw. –1) des Impulses (p, m) zu T'(p+1)≡5 (bzw. zu T'(p-1)≡5). Es wird daran erinnert, dass die Randeffekte berücksichtigt werden müssen. Indem auf eine Nachbarschaftsgröße d verallgemeinert wird, gehört ein rechter Nachbar um +d (bzw. linker Nachbar um –d) zu T'(p+d)≡5 (bzw. zu T'(P(p-d)≡5). Der Rang des Nachbarn zu ±d ist gleich m, wenn p + d ≤ 4 (oder p – d ≥ 0), sonst wird der Rang m für einen rechten Nachbarn inkrementiert und für einen linken Nachbarn dekrementiert. Die Berücksichtigung der Randeffekte läuft also darauf hinaus, sich zu vergewissern, dass gilt: m < 7 wenn gilt p + d > 4, und dass gilt m > 0, wenn gilt p – d < 0.
  • Ausgehend von dieser Verteilung der Nachbarn in den 5 Spuren ist es einfach, die beschränkten Untereinheiten S0 und S1 der Positionen der zwei Impulse zu bestimmen: S0 = T'1∪T'3 und S1 = T'0∪T'1∪T'2∪T'4
  • Der vierte und letzte Schritt besteht darin, die Suche nach dem optimalen Paar in den zwei erhaltenen Untereinheiten durchzuführen. Der Suchalgorithmus (wie der genormte, der die Spuren-Struktur nutzt) und die Einordnung in Spuren der Impulse vereinfachen auch hier den Suchalgorithmus. In der Praxis ist es also unnötig, ausdrücklich die beschränkten Untereinheiten S0 und S1 zu bilden, da die Einheiten T'j alleine verwendet werden können.
  • Im nachfolgenden Beispiel hat der Modus mit 8 kbit/s des G.729 seine vier Impulse auf die folgenden Positionen gesetzt: e0 = 5; e1 = 21; e2= 22; e3 = 34;
  • Diese 4 Positionen sind durch die 4 Paare (pi, mi) = (0, 1), (1, 4), (2, 4), (4, 6) gekennzeichnet.
  • Wenn man eine feste Nachbarschaft gleich 1 nimmt, werden die 5 Schnittstellen T'j wie folgt konstruiert:
    e0: (0, 1) ergibt: (4, 0) links und (1, 1) rechts
    e1: (1, 4) ergibt: (0, 4) links und (2, 4) rechts
    e2: (2, 4) ergibt: (1, 4) links und (3, 4) rechts
    e3: (4, 6) ergibt: (3, 6) links und (0, 7) rechts
  • Man hat also: T'0 = {(0, 1), (0, 4), (0, 7)}; T'1 = {(1, 4), (1, 1)}; T'2 = {(2, 4)}; T'3 = {(3, 4), (3, 6)}; T'4 = {(4, 6), (4, 0)}
  • Zurück zur Schreibweise in Positionen: T'0 = {5, 20, 35}; T'1 = {21, 6}; T'2 = {22}; T'3 = {23, 33}; T'4 = {34, 4}
  • Im letzten Schritt führt ein Algorithmus gleich demjenigen des G.729 mit 6,4 kbit/s die Suche des besten Paars von Impulsen durch. Dieser Algorithmus ist hier deutlich weniger komplex, da die Anzahl von zu durchsuchenden Kombinationen von Positionen sehr beschränkt ist. Im Beispiel gibt es nur 4 (= Kardinal(T'1) + Kardinal(T'3)) mal 8 (= Kardinal(T'0) + Kardinal(T'1) + Kardinal(T'2) + Kardinal(T'4)) zu testende Kombinationen, d. h. 32 Kombinationen anstelle von 512.
  • Für eine Nachbarschaft der Größe 1 sind weniger als 8% der Kombinationen der Positionen im Mittel zu durchsuchen, ohne 10% zu überschreiten (50 Kombinationen). Für eine Nachbarschaft der Größe 2 sind weniger als 17% der Kombinationen der Positionen im Mittel und höchstens 25% der Kombinationen zu durchsuchen. Für eine Nachbarschaft der Größe 2 stellt die Komplexität der in der Erfindung vorgeschlagenen Verarbeitung (indem die Kosten der Suche in dem beschränkten Verzeichnis mit den Kosten der Extraktion der Nachbarschaften zugeordnet zu der Zusammensetzung der Schnittstellen kumuliert werden) weniger als 30% einer erschöpfenden Suche für eine äquivalente Qualität dar.
  • * Ausführungsbeispiel Nr. 3
  • Das letzte Beispiel veranschaulicht die Übergänge zwischen dem Modell ACELP des G.729 mit 8 kbit/s und dem Modell MP-MLQ des G.723.1 mit 6,3 kbit/s.
  • Eine intelligente Transcodierung der Impulse zwischen dem G.723.1 (Modus 6,3 kbit/s) und dem G.729 (Modus 8 kbit/s) weist zwei wichtige Schwierigkeiten auf. Zuerst ist die Größe der Rahmen unterschiedlich (40 Tastproben für den G.729 gegen 60 Tastproben für den G.723.1). Die zweite Schwierigkeit ist mit der unterschiedlichen Struktur der Wörterbücher vom Typ ACELP für den G.729 und vom Typ MP-MLQ für den G.723.1 verbunden. Das hier vorgestellte Ausführungsbeispiel zeigt, wie die Erfindung diese zwei Schwierigkeiten beseitigt, um zu geringeren Kosten die Impulse zu transcodieren und die Qualität der Transcodierung beizubehalten.
  • Zunächst wird eine zeitliche Entsprechung zwischen den Positionen in den zwei Formaten durchgeführt, indem der Größenunterschied der Subrahmen berücksichtigt wird, um die Positionen bezüglich eines E und S gemeinsamen Ursprungs auszurichten. Da die Längen der Subrahmen des G.729 und des G.723.1 als kleinstes gemeinsames Vielfaches 120 haben, wird die zeitliche Entsprechung in Blöcken von 120 Tastproben, d. h. zwei Subrahmen von G.723.1 für drei Subrahmen von G.729 hergestellt, wie es das Beispiel der 4b zeigt. In einer Variante kann man bevorzugen, an Blöcken von vollständigen Rahmen zu arbeiten. In diesem Fall wählt man Blöcke von 240 Tastproben, d. h. einen Rahmen von G.723.1 (4 Subrahmen) für drei Rahmen von G.729 (6 Subrahmen).
  • Nun wird die Auswahl einer Untereinheit des Verzeichnisses MP-MLQ des G.723.1 mit 6,3 kbit/s ausgehend von Elementen des Verzeichnisses ACELP mit 4 Impulsen des G.729 mit 8 kbit/s beschrieben. Der erste Schritt besteht darin, die Positionen der Impulse in Blöcken von 3 Subrahmen (mit dem Index ie, 0 ≤ ie ≤ 2) des G.729 wiederzugewinnen. Mit pe(ie) wird eine Position des Subrahmens ie dieses Blocks bezeichnet.
  • Ehe die Nachbarschaften extrahiert werden, werden diese 12 Positionen pe(ie) in 12 mit ps(js) bezeichnete Positionen umgewandelt, die in zwei Subrahmen (mit dem Index js, 0 ≤ js ≤ 1) von G.723.1 verteilt sind. Man kann die obige allgemeine Beziehung (die den Modulo der Länge von Subrahmen einsetzt) verwenden, um die Anpassung der Dauern der Subrahmen durchzuführen. Es wird hier aber bevorzugt, einfach drei Fälle gemäß dem Index ie zu unterscheiden:
    wenn ie = 0, dann js = 0 und ps = pe
    wenn ie = 2, dann js = 1 und ps = pe + 20
    wenn ie = 1, dann wenn pe <20js = 0 und ps = pe + 40, sonst (pe ≥ 20):js = 1 und ps = pe – 20
  • So wird weder eine Teilung noch eine Operation Modulo n durchgeführt.
  • Die im Subrahmen STEG des Blocks wiedergewonnenen 4 Positionen werden direkt dem Subrahmen STS0 mit der gleichen Position zugewiesen, diejenigen des Subrahmens STE2 des Blocks werden direkt dem Subrahmen STS1 mit einem Positions-Inkrement von +20 zugewiesen, die Positionen des Subrahmens STE1 geringer als 20 werden dem Subrahmen STS0 mit einem Inkrement von +40 zugewiesen, während die anderen dem Subrahmen STS1 mit einem Dekrement von –20 zugewiesen werden.
  • Anschließend werden die Nachbarschaften dieser 12 Positionen extrahiert. Es ist anzumerken, dass man den rechten (bzw. linken) Nachbarschaften der Positionen des Subrahmens STS0 (bzw. STS1) erlauben kann, ihren Subrahmen zu verlassen, wobei diese benachbarten Positionen sich dann in dem Subrahmen STS1 (bzw. STS0) befinden.
  • Die Schritte der zeitlichen Entsprechung und der Nachbarschaft-Extraktion können umgekehrt werden. In diesem Fall kann es den rechten (bzw. linken) Nachbarschaften der Positionen des Subrahmens STEG (bzw. STE2) erlaubt werden, ihren Subrahmen zu verlassen, wobei diese benachbarten Positionen sich dann in dem Subrahmen STE1 befinden. In gleicher Weise können die rechten (bzw. linken) Nachbarschaften der Positionen in STE1 zu benachbarten Positionen in STE2 (bzw. STEG) führen.
  • Wenn die Gesamtheit der beschränkten Positionen für jeden Subrahmen STS gebildet ist, besteht der letzte Schritt darin, für jeden Subrahmen STS sein so gebildetes beschränktes Verzeichnis zu durchsuchen, um die Np (6 oder 5) Impulse gleicher Parität auszuwählen. Diese Prozedur kann von dem genormten Algorithmus abgeleitet werden oder sich von anderen Fokussierungsprozeduren beeinflussen lassen.
  • Um dieses Ausführungsbeispiel zu veranschaulichen, werden drei Subrahmen des G.729 betrachtet, die es ermöglichen, die Unterverzeichnisse von zwei Subrahmen des G.723.1 zu konstruieren. Angenommen, der G.729 gibt die folgenden Positionen:
    STEG: e00 = 5; e01 = 1; e02 = 32; e03 = 39;
    STE1: e10 = 15; e11 = 31; e12 = 22; e13 = 4;
    STE2: e20 = 0; e21 = 1; e22 = 37; e23 = 24,
    dann ist nach Anwendung des obigen Schritts der zeitlichen Entsprechung die Zuteilung dieser 12 Positionen an die Subrahmen STS0 und STS1 wie folgt:
    STS0: s00 = 5; s01 = 1; s02 = 32; s03 = 39; (s0k = e0k)
    STS0: s'10 = 55; s'13 = 44; (s'0k=e1k + 40, wenn e1k < 20)
    STS1: s'11 = 11; s'12'= 2 (s'1k = e1k – 20, wenn e1k ≥ 20)
    STS1: s20 = 20; s21 = 21; s22 = 57; s23 = 44; (s0k = e2k + 20)
  • Man hat also die Sätze von Positionen {1, 5, 32, 39, 44, 55} für den Subrahmen STS0 und {2, 11, 20, 21, 44, 57} für den Subrahmen STS1.
  • Nun müssen daraus die Nachbarschaften extrahiert werden. Indem man zum Beispiel eine auf 1 festgelegte Nachbarschaft nimmt, erhält man: Ps0 = {0, 1, 2}∪{4, 5, 6}∪{31, 32, 33}∪{38, 39, 40}∪{43, 44, 45}∪{54, 55, 56} Ps1 = {1, 2, 3}∪{10, 11, 12}∪{20, 21, 22}∪{21, 22, 23}∪{43, 44, 45}∪{56, 57, 58}
  • Der MP-MLQ schreibt den Impulsen keinen Zwang vor, abgesehen von ihrer Parität. In einem Subrahmen müssen sie alle die gleiche Parität haben. Man muss also hier Ps0 und Ps1 in zwei Untereinheiten aufspalten, mit: –Ps0: {0, 2, 4, 6, 32, 40, 44, 54, 56} und {1, 5, 31, 33, 39, 43, 45, 55} –Ps1: {2, 10, 12, 20, 22, 44, 56} und {1, 3, 11, 21, 23, 43, 45, 57}
  • Dieses Unterverzeichnis wird schließlich an den Auswahlalgorithmus übertragen, der die Np besten Positionen im Sinne des Kriteriums CELP für die Subrahmen STS0 und STS1 des G.723.1 bestimmt. Man schränkt so die Anzahl von getesteten Kombinationen beträchtlich ein. Zum Beispiel bleiben im Subrahmen STS0 nämlich 9 geradzahlige Positionen und 8 ungeradzahlige Positionen anstelle von 30 und 30.
  • Man vergewissert sich allerdings gewisser Vorsichtsmaßnahmen in den Fällen, in denen die vom G.729 gewählten Positionen so sind, dass die Extraktion der Nachbarschaften eine Anzahl N von möglichen Positionen geringer als die Anzahl von Positionen des G.723.1 (N < Np) ergibt. Dies ist insbesondere der Fall, wenn die Positionen des G.729 alle aufeinander folgen (Beispiel: {0, 1, 2, 3}). Man sieht dann zwei Möglichkeiten vor:
    • – Erhöhen der Größe der Nachbarschaft für die betroffenen Subrahmen bis zum Erhalt einer ausreichenden Größe für Ps (Größe ≥ Np),
    • – oder Auswahl der N ersten Impulse und Erlaubnis für die Np – N restlichen Impulse einer Suche unter den 30 – N restlichen Positionen des Rasters, wie oben beschrieben.
  • Nun wird die umgekehrte Verarbeitung beschrieben, die darin besteht, eine Untereinheit des Verzeichnisses ACELP mit 4 Impulsen des G.729 mit 8 kbit/s ausgehend von Elementen eines Verzeichnisses MP-MLQ des G.723.1 mit 6,3 kbit/s auszuwählen.
  • Global ist die Verarbeitung ähnlich. Zwei Subrahmen von G.723.1 entsprechen 3 Rahmen von G.729. Auch hier werden die Positionen aus dem G.723.1 extrahiert, die man in die Zeitskala des G.729 umsetzt. Man kann vorteilhafterweise diese Positionen in die Form "Spur – Rang in der Spur" umsetzen, um wie vorher von der Struktur ACELP zu profitieren, um die Nachbarschaften zu extrahieren und die optimalen Positionen zu suchen.
  • Die gleichen Anordnungen wie vorher sind vorgesehen, um die Fälle zu vermeiden, in denen die Extraktion der Nachbarschaften zu Positionen in unzureichender Anzahl (hier weniger als 4 Positionen) führen würde.
  • So ermöglicht es die vorliegende Erfindung, zu geringeren Kosten die Positionen eines Satzes von Impulsen ausgehend von einem ersten Satz von Impulsen zu bestimmen, wobei die zwei Sätze von Impulsen zu zwei Multipuls-Verzeichnissen gehören. Diese zwei Verzeichnisse können sich durch ihre Größe, die Länge und die Anzahl von Impulsen ihrer Codewörter sowie durch die Regeln unterscheiden, die die Positionen und/oder Amplituden der Impulse regeln. Es werden die Nachbarschaften der Positionen der Impulse des Satzes (oder der Sätze) privilegiert, die in dem ersten Verzeichnis gewählt werden, um diejenigen eines Satzes im zweiten Verzeichnis zu bestimmen. Die Erfindung ermöglicht es außerdem, die Struktur der Start- oder Ziel-Verzeichnisse zu nutzen, um die Komplexität weiter zu reduzieren. Mittels des ersten obigen Beispiels, das den Übergang von einem Modell MP-MLQ zu einem Modell ACELP präsentiert, versteht man, dass die Erfindung leicht auf zwei Multipuls-Modelle angewendet werden kann, die unterschiedliche Strukturzwänge haben. Mittels des zweiten Ausführungsbeispiels, das den Übergang zwischen zwei Modellen präsentiert, die eine unterschiedliche Anzahl von Impulsen haben, aber auf der gleichen Struktur ACELP basieren, versteht man, dass die Erfindung vorteilhafterweise die Nutzung der Struktur der Verzeichnisse erlaubt, um die Komplexität der Transcodierung zu reduzieren. Mittels des dritten Beispiels, das den Übergang zwischen einem Modell MP-MLQ und einem Modell ACELP präsentiert, versteht man, dass die Erfindung sogar bei Codierern mit unterschiedlichen Subrahmenlängen oder Tastfrequenzen verwendet werden kann. Die Erfindung erlaubt es, den Kompromiss Qualität/Komplexität anzupassen und insbesondere die Rechenkomplexität stark zu reduzieren, für eine minimale Verschlechterung bezüglich einer klassischen Suche eines Multipuls-Modells.

Claims (23)

  1. Transcodierverfahren zwischen einem ersten Kompressions-Codierer/Decodierer und mindestens einem zweiten Kompressions-Codierer/Decodierer, wobei der erste und der zweite Codierer/Decodierer vom Impulstyp sind und Multipuls-Verzeichnisse verwenden, in denen jeder Impuls eine durch einen zugeordneten Index gekennzeichnete Position aufweist, dadurch gekennzeichnet, dass es die folgenden Schritte aufweist: a) gegebenenfalls Anpassung von Codierparametern zwischen dem ersten und zweiten Codierer/Decodierer, b) Erhalt, ausgehend vom ersten Codierer/Decodierer, einer gewählten Anzahl (Ne) von Impulspositionen und von jeweils zugeordneten Positionsindices (ei), c) für jede laufende Impulsposition mit gegebenem Index, Bildung einer Gruppe von Impulspositionen, die mindestens die laufende Impulsposition und Impulspositionen mit zugeordneten Indices aufweisen, die direkt unter und direkt über dem gegebenen Index liegen, d) Auswahl, in Abhängigkeit von vom zweiten Codierer/Decodierer zugelassenen Impulspositionen (Tj), mindestens eines Teils der Impulspositionen in einer Einheit (Ps), die aus einer Vereinigung der im Schritt c) gebildeten Gruppen besteht, und e) Übertragung der so ausgewählten Impulspositionen an den zweiten Codierer/Decodierer für eine Codierung/Decodierung ausgehend von den übertragenen Positionen, wobei die Auswahl des Schritts d) dann eine Anzahl von möglichen Impulspositionen einsetzt, die geringer ist als die Gesamtanzahl von möglichen Impulspositionen des Verzeichnisses des zweiten Codierer/Decodierers.
  2. Verfahren nach Anspruch 1, bei dem der erste Codierer/Decodierer (E) in einem ersten Codierformat eine erste Anzahl von Impulsen verwendet, dadurch gekennzeichnet, dass die im Schritt b) gewählte Anzahl (Ne) dieser ersten Anzahl von Impulspositionen entspricht.
  3. Verfahren nach Anspruch 2, bei dem: – der erste Codierer/Decodierer (E) in einem ersten Codierformat eine erste Anzahl (Ne) von Impulspositionen verwendet, – der zweite Codierer/Decodierer (S) in einem zweiten Codierformat eine zweite Anzahl (Ns) von Impulspositionen verwendet, dadurch gekennzeichnet, dass es außerdem einen Schritt aufweist, der darin besteht, mindestens die Fälle zu unterscheiden, in denen: – die erste Anzahl (Ne) größer als die oder gleich der zweiten Anzahl (Ns) ist, – die erste Anzahl (Ne) kleiner als die zweite Anzahl (Ns) ist.
  4. Verfahren nach Anspruch 3, bei dem die erste Anzahl (Ne) größer als die oder gleich der zweiten Anzahl (Ns) ist, (Ne ≥ Ns), dadurch gekennzeichnet, dass jede im Schritt c) gebildete Gruppe rechte benachbarte Impulspositionen (Vi d) und linke benachbarte Impulspositionen (Vi g) der laufenden Impulsposition mit gegebenem Index aufweist, und dass die jeweiligen Anzahlen von links und rechts benachbarten Impulspositionen in Abhängigkeit von einem Kompromiss bei der Komplexität und der Qualität der Transcodierung gewählt werden.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass im Schritt d) ein Unterverzeichnis von Kombinationen von Impulspositionen konstruiert wird, die aus den Kreuzungen (Sj): – der Einheit (Ps), die aus einer Vereinigung der im Schritt c) gebildeten Gruppen besteht, und – Impulspositionen (Tj), die vom zweiten Codierer/Decodierer zugelassen werden, resultieren, so dass das Unterverzeichnis eine kleinere Größe hat als die Zahl von Kombinationen von Impulspositionen (Tj), die vom zweiten Codierer/Decodierer zugelassen werden.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass nach dem Schritt e) in dem Unterverzeichnis nach einem optimalen Satz von Positionen gesucht wird, der die zweite Anzahl (Ns) von Positionen auf der Ebene des zweiten Codierers (S) aufweist.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Schritt der Suche nach dem optimalen Satz von Positionen von einer fokussierten Suche eingesetzt wird, um das Abtasten des Unterverzeichnisses zu beschleunigen.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Codierer/Decodierer angeordnet ist, um eine Folge von codierten Rahmen zu liefern, dadurch gekennzeichnet, dass die jeweiligen Anzahlen von Impulspositionen in den im Schritt c) gebildeten Gruppen nacheinander von einem Rahmen zum anderen gewählt werden.
  9. Verfahren nach Anspruch 3, bei dem die erste Anzahl (Ne) kleiner als die zweite Anzahl (Ns) ist (Ne < Ns), dadurch. gekennzeichnet, dass außerdem getestet wird, ob die in der zweiten Anzahl von Impulspositionen (Ns) vorgesehenen Impulspositionen sich unter den Impulspositionen der Gruppen befinden, die im Schritt c) geformt werden, und dass im Fall einer negativen Antwort auf diesen Test die Anzahl von Impulspositionen in den im Schritt c) geformten Gruppen erhöht wird.
  10. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass außerdem der Fall unterschieden wird, in dem die zweite Anzahl Ns zwischen ein und zweimal so groß wie die erste Anzahl Ne ist (Ne < Ns < 2Ne), und in diesem Fall: c1) von vorneherein die Ne Impulspositionen ausgewählt werden, c2) und außerdem eine komplementäre Anzahl von Impulspositionen Ns – Ne ausgewählt wird, die in der direkten Nähe der Impulspositionen definiert sind, die im Schritt c1) ausgewählt werden.
  11. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Codierer/Decodierer angeordnet ist, um mit einer ersten gegebenen Tastfrequenz und ausgehend von einer ersten gegebenen Subrahmendauer zu arbeiten, dadurch gekennzeichnet, dass die Codierparameter, für die die Anpassung des Schritts a) ausgeführt wird, mindestens eine Subrahmendauer und eine Tastfrequenz aufweisen, während der zweite Codierer/Decodierer mit einer zweiten Tastfrequenz und einer zweiten Subrahmendauer arbeitet, und dass im Schritt a) die folgenden vier Fälle unterschieden werden: – die erste und die zweite Dauer sind gleich und die erste und die zweite Frequenz sind gleich, – die erste und die zweite Dauer sind gleich und die erste und die zweite Frequenz sind unterschiedlich, – die erste und die zweite Dauer sind unterschiedlich und die erste und die zweite Frequenz sind gleich, – die erste und die zweite Dauer sind unterschiedlich und die erste und die zweite Frequenz sind unterschiedlich.
  12. Verfahren nach Anspruch 11, bei dem die erste und die zweite Dauer gleich und die erste und die zweite Tastfrequenz unterschiedlich sind, dadurch gekennzeichnet, dass es Schritte: a1) der direkten Quantifizierung der Zeitskala von der ersten Frequenz zur zweiten Frequenz, a2) und der Bestimmung, in Abhängigkeit von der Quantifizierung, jeder Impulsposition in einem Subrahmen im zweiten Codierformat gekennzeichnet durch die zweite Testfrequenz aufweist, ausgehend von einer Impulsposition in einem Subrahmen im ersten Codierformat gekennzeichnet durch die erste Tastfrequenz.
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass der Schritt a1) der Quantifizierung durch Berechnung und/oder Tabellierung ausgehend von einer Funktion erfolgt, die einer Impulsposition in einem Subrahmen im ersten Format (pe) eine Impulsposition in einem Subrahmen im zweiten Format (ps) entsprechen lässt, wobei die Funktion sich im Wesentlichen wie eine lineare Kombination präsentiert, die einen multiplikativen Koeffizienten einsetzt, der dem Verhältnis der zweiten Tastfrequenz zur ersten Tastfrequenz entspricht.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass, um umgekehrt von einer Impulsposition in einem Subrahmen im zweiten Format (ps) zu einer Impulsposition in einem Subrahmen im ersten Format (pe) überzugehen, eine inverse Funktion der linearen Kombination angewendet wird, die an eine Impulsposition in einem Subrahmen im zweiten Format (ps) angewendet wird.
  15. Verfahren nach Anspruch 11, bei dem die erste und die zweite Dauer gleich und die erste und die zweite Tastfrequenz unterschiedlich sind, dadurch gekennzeichnet, dass es die folgenden Schritte aufweist: a'1) Übertasten eines Subrahmens im ersten Codierformat, gekennzeichnet durch die erste Tastfrequenz, mit einer Frequenz gleich dem kleinsten gemeinsamen Vielfachen der ersten und der zweiten Tastfrequenz, und a'2) Anwenden an den übergetasteten Subrahmen einer Tiefpassfilterung, gefolgt von einer Untertastung, um eine Tastfrequenz zu erreichen, die der zweiten Tastfrequenz entspricht.
  16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass das Verfahren durch den Erhalt, durch Schwellwertbildung, einer Anzahl von Positionen fortgesetzt wird, die ggf. variabel ist.
  17. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass es außerdem einen Schritt der Zuordnung, für jede Position (pe) eines Impulses eines Subrahmens im ersten Codierformat gekennzeichnet durch die erste Tastfrequenz, einer Gruppe von Impulspositionen (ps) in einem Subrahmen im zweiten Codierformat gekennzeichnet durch die zweite Tastfrequenz, aufweist, wobei jede Gruppe eine Anzahl von Positionen aufweist, die vom Verhältnis zwischen der zweiten und der ersten Tastfrequenz (Fs/Fe) abhängt.
  18. Verfahren nach Anspruch 11, bei dem die erste und die zweite Dauer von Subrahmen unterschiedlich sind, dadurch gekennzeichnet, dass es die Schritte: a20) der Definition eines gemeinsamen Ursprungs (O) der Subrahmen des ersten und des zweiten Formats, a21) der Aufteilung der aufeinanderfolgenden Subrahmen des ersten Codierformats gekennzeichnet durch eine erste Subrahmendauer, um Pseudo-Subrahmen mit Dauern zu bilden, die der Subrahmendauer des zweiten Formats entsprechen, a22) der Aktualisierung des gemeinsamen Ursprungs, a23) und einer Zuordnungsbestimmung zwischen den Impulspositionen in den Pseudo-Subrahmen und in den Subrahmen im zweiten Format aufweist.
  19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass außerdem die folgenden Fälle unterschieden werden: – die erste und die zweite Dauer sind zeitlich fest, und – die erste und die zweite Dauer sind zeitlich variabel.
  20. Verfahren nach Anspruch 19, bei dem die erste und die zweite Dauer zeitlich fest sind, dadurch gekennzeichnet, dass die zeitliche Position des gemeinsamen Ursprungs periodisch in jedem Augenblick aktualisiert wird, in dem Grenzen von Subrahmen erster bzw. zweiter Dauer zeitlich angeglichen sind.
  21. Verfahren nach Anspruch 19, bei dem die erste und die zweite Dauer zeitlich variieren, dadurch gekennzeichnet, dass: a221) nacheinander Summierungen der Dauern der Subrahmen im ersten Format bzw. der Dauern der Subrahmen im zweiten Format durchgeführt werden, a222) ein Vorliegen einer Gleichheit zwischen den zwei Summen erfasst wird, die einen Aktualisierungszeitpunkt des gemeinsamen Ursprungs definiert, a223) die zwei Summen nach dem Vorliegen für eine spätere Erfassung eines nächsten gemeinsamen Ursprungs erneut initialisiert werden.
  22. Computerprogrammprodukt, das dazu bestimmt ist, in einem Speicher einer Verarbeitungseinheit gespeichert zu werden, insbesondere einem Computer oder einem mobilen Endgerät, oder in einem lösbaren Speicherträger, der dazu bestimmt ist, mit einem Lesegerät der Verarbeitungseinheit zusammenzuwirken, dadurch gekennzeichnet, dass es Anweisungen für die Anwendung des Transcodierverfahrens nach einem der vorhergehenden Ansprüche aufweist.
  23. Vorrichtung zur Transcodierung zwischen einem ersten Kompressions-Codierer/Decodierer und mindestens einem zweiten Kompressions-Codierer/Decodierer, wobei der erste und der zweite Codierer/Decodierer vom Impulstyp sind und Multipuls-Verzeichnisse verwenden, in denen jeder Impuls eine durch einen zugeordneten Index gekennzeichnete Position aufweist, dadurch gekennzeichnet, dass sie einen Speicher aufweist, der die Anweisungen eines Computerprogrammprodukts nach Anspruch 22 enthält.
DE602004012600T 2003-12-10 2004-11-24 Transcodierung zwischen den indizes von mehrimpuls-wörterbüchern zur codierung bei der digitalen signalkomprimierung Active DE602004012600T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0314489 2003-12-10
FR0314489A FR2867648A1 (fr) 2003-12-10 2003-12-10 Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
PCT/FR2004/003008 WO2005066936A1 (fr) 2003-12-10 2004-11-24 Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques

Publications (2)

Publication Number Publication Date
DE602004012600D1 DE602004012600D1 (de) 2008-04-30
DE602004012600T2 true DE602004012600T2 (de) 2009-04-30

Family

ID=34746280

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004012600T Active DE602004012600T2 (de) 2003-12-10 2004-11-24 Transcodierung zwischen den indizes von mehrimpuls-wörterbüchern zur codierung bei der digitalen signalkomprimierung

Country Status (12)

Country Link
US (1) US7574354B2 (de)
EP (1) EP1692687B1 (de)
JP (1) JP4970046B2 (de)
KR (1) KR101108637B1 (de)
CN (1) CN1890713B (de)
AT (1) ATE389933T1 (de)
DE (1) DE602004012600T2 (de)
ES (1) ES2303129T3 (de)
FR (1) FR2867648A1 (de)
MX (1) MXPA06006621A (de)
PL (1) PL1692687T3 (de)
WO (1) WO2005066936A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2867649A1 (fr) * 2003-12-10 2005-09-16 France Telecom Procede de codage multiple optimise
US20070250308A1 (en) * 2004-08-31 2007-10-25 Koninklijke Philips Electronics, N.V. Method and device for transcoding
FR2880724A1 (fr) * 2005-01-11 2006-07-14 France Telecom Procede et dispositif de codage optimise entre deux modeles de prediction a long terme
US20060262851A1 (en) * 2005-05-19 2006-11-23 Celtro Ltd. Method and system for efficient transmission of communication traffic
KR100918377B1 (ko) * 2006-05-30 2009-09-22 주식회사 메디슨 영상압축 방법
US8214200B2 (en) * 2007-03-14 2012-07-03 Xfrm, Inc. Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid
CN101295506B (zh) * 2007-04-29 2011-11-16 华为技术有限公司 脉冲编解码方法及脉冲编解码器
DK2827327T3 (da) 2007-04-29 2020-10-12 Huawei Tech Co Ltd Fremgangsmåde til excitationsimpulskodning
EP2045800A1 (de) * 2007-10-05 2009-04-08 Nokia Siemens Networks Oy Transkodierverfahren und -vorrichtung
CN101931414B (zh) * 2009-06-19 2013-04-24 华为技术有限公司 脉冲编码方法及装置、脉冲解码方法及装置
US8738679B2 (en) * 2009-07-03 2014-05-27 Stmicroelectronics International N.V. Offset-free sinc interpolator and related methods
CN102299760B (zh) * 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器
US8805697B2 (en) * 2010-10-25 2014-08-12 Qualcomm Incorporated Decomposition of music signals using basis functions with time-evolution information
CN102623012B (zh) * 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
US9472199B2 (en) * 2011-09-28 2016-10-18 Lg Electronics Inc. Voice signal encoding method, voice signal decoding method, and apparatus using same
US8731081B2 (en) * 2011-12-07 2014-05-20 Motorola Mobility Llc Apparatus and method for combinatorial coding of signals
WO2019028602A1 (zh) * 2017-08-07 2019-02-14 深圳市汇顶科技股份有限公司 应用于超取样转换器的向量量化数模转换电路
CN114598558B (zh) * 2022-03-28 2023-10-31 厦门亿联网络技术股份有限公司 音频设备级联自修复系统及自修复方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3109594B2 (ja) * 1998-08-18 2000-11-20 日本電気株式会社 移動通信システムおよび移動端末接続方法
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
US7315815B1 (en) * 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US7222070B1 (en) * 1999-09-22 2007-05-22 Texas Instruments Incorporated Hybrid speech coding and system
FR2802329B1 (fr) 1999-12-08 2003-03-28 France Telecom Procede de traitement d'au moins un flux binaire audio code organise sous la forme de trames
US6687668B2 (en) * 1999-12-31 2004-02-03 C & S Technology Co., Ltd. Method for improvement of G.723.1 processing time and speech quality and for reduction of bit rate in CELP vocoder and CELP vococer using the same
US6704703B2 (en) * 2000-02-04 2004-03-09 Scansoft, Inc. Recursively excited linear prediction speech coder
JP4231987B2 (ja) * 2001-06-15 2009-03-04 日本電気株式会社 音声符号化復号方式間の符号変換方法、その装置、そのプログラム及び記憶媒体
US7272555B2 (en) * 2001-09-13 2007-09-18 Industrial Technology Research Institute Fine granularity scalability speech coding for multi-pulses CELP-based algorithm
WO2003058407A2 (en) * 2002-01-08 2003-07-17 Dilithium Networks Pty Limited A transcoding scheme between celp-based speech codes
US6829579B2 (en) * 2002-01-08 2004-12-07 Dilithium Networks, Inc. Transcoding method and system between CELP-based speech codes
JP4304360B2 (ja) * 2002-05-22 2009-07-29 日本電気株式会社 音声符号化復号方式間の符号変換方法および装置とその記憶媒体
JP4238535B2 (ja) * 2002-07-24 2009-03-18 日本電気株式会社 音声符号化復号方式間の符号変換方法及び装置とその記憶媒体
KR100711280B1 (ko) * 2002-10-11 2007-04-25 노키아 코포레이션 소스 제어되는 가변 비트율 광대역 음성 부호화 방법 및장치
US7363218B2 (en) * 2002-10-25 2008-04-22 Dilithium Networks Pty. Ltd. Method and apparatus for fast CELP parameter mapping
US7523032B2 (en) * 2003-12-19 2009-04-21 Nokia Corporation Speech coding method, device, coding module, system and software program product for pre-processing the phase structure of a to be encoded speech signal to match the phase structure of the decoded signal
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding

Also Published As

Publication number Publication date
KR20060131781A (ko) 2006-12-20
DE602004012600D1 (de) 2008-04-30
EP1692687B1 (de) 2008-03-19
ES2303129T3 (es) 2008-08-01
MXPA06006621A (es) 2006-08-31
PL1692687T3 (pl) 2008-10-31
FR2867648A1 (fr) 2005-09-16
CN1890713B (zh) 2010-12-08
JP4970046B2 (ja) 2012-07-04
WO2005066936A1 (fr) 2005-07-21
CN1890713A (zh) 2007-01-03
JP2007515676A (ja) 2007-06-14
KR101108637B1 (ko) 2012-02-09
EP1692687A1 (de) 2006-08-23
US7574354B2 (en) 2009-08-11
US20070124138A1 (en) 2007-05-31
ATE389933T1 (de) 2008-04-15

Similar Documents

Publication Publication Date Title
DE602004012600T2 (de) Transcodierung zwischen den indizes von mehrimpuls-wörterbüchern zur codierung bei der digitalen signalkomprimierung
DE60219351T2 (de) Signaländerungsverfahren zur effizienten kodierung von sprachsignalen
DE60034484T2 (de) Verfahren und vorrichtung in einem kommunikationssystem
DE60226200T2 (de) Signaländerung mit Hilfe von kontinuierlicher Zeitverschiebung für CELP Kodierung mit niedriger Bitrate
DE69634645T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE19604273C5 (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
DE60024123T2 (de) Lpc-harmonischer sprachkodierer mit überrahmenformat
DE60225381T2 (de) Verfahren zur Kodierung von Sprach- und Musiksignalen
DE69531464T2 (de) Kodiergerät
DE69333046T2 (de) Hocheffizientes Kodierverfahren
DE19609170B4 (de) Verfahren zur Durchführung einer &#34;Tiefe-Zuerst&#34;-Suche in einem Codebuch zur Codierung eines Geräusch- bzw. Klangsignales, Vorrichtung zur Durchführung dieses Verfahrens sowie zellulares Kommunikationssystem mit einer derartigen Vorrichtung
DE602004007786T2 (de) Verfahren und vorrichtung zur quantisierung des verstärkungsfaktors in einem breitbandsprachkodierer mit variabler bitrate
DE60217522T2 (de) Verbessertes verfahren zur verschleierung von bitfehlern bei der sprachcodierung
DE69832358T2 (de) Verfahren zur Sprachkodierung und -dekodierung
EP2062254B1 (de) Steganographie in digitalen signal-codierern
DE69633944T2 (de) Verfahren und gerät zum kodieren von digitalen daten
DE69911169T2 (de) Verfahren zur dekodierung eines audiosignals mit korrektur von übertragungsfehlern
DE69924280T2 (de) Sprachsynthese aus grundfrequenz-prototypwellenformen durch zeit-synchrone wellenforminterpolation
DE3736193C2 (de)
DE60024080T2 (de) Kodierung von sprachsegmenten mit signalübergängen durch interpolation von mehrimpulsanregungssignalen
EP1080464B1 (de) Verfahren und anordnung zur sprachcodierung
DE602004011411T2 (de) Verfahren zur blockbeschränkten trellis-kodierten Quantisierung und ihre Verwendung in einem Verfahren und einer Vorrichtung zur Quantisierung von LSF-Parametern in einem Sprachkodiersystem
DE69830816T2 (de) Mehrstufige Audiodekodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition