DE4447647C2 - Sprachcodierungsverfahren und Sprachcodierer - Google Patents

Sprachcodierungsverfahren und Sprachcodierer

Info

Publication number
DE4447647C2
DE4447647C2 DE4447647A DE4447647A DE4447647C2 DE 4447647 C2 DE4447647 C2 DE 4447647C2 DE 4447647 A DE4447647 A DE 4447647A DE 4447647 A DE4447647 A DE 4447647A DE 4447647 C2 DE4447647 C2 DE 4447647C2
Authority
DE
Germany
Prior art keywords
vector
reflection coefficient
code
speech
vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE4447647A
Other languages
English (en)
Inventor
Ira A Gerson
Mark A Jasiuk
Matthew A Hartman
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.)
BlackBerry Ltd
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Priority claimed from DE4492048A external-priority patent/DE4492048C2/de
Application granted granted Critical
Publication of DE4447647C2 publication Critical patent/DE4447647C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/083Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • G10L19/135Vector sum excited linear prediction [VSELP]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/24Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being the cepstrum

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

Die Erfindung betrifft ein Sprachcodierverfahren und einen Sprachcodierer der in den Oberbegriffen der Patentansprüche 1 bzw. 5 genannten Art.
Ein Sprachcodierungsverfahren und ein Sprachcodierer sind in der US-A-4,890,327 beschrieben. Diese Druckschrift offenbart einen Vielratendigitalsprachcodierer, der ein LPC-Modul (linear predictive coding) umfaßt. Dieses Modul gibt ein Feld von Filterkoeffizienten und ein Feld von Reflektionskoeffizienten aus. Ein Verschiebefak­ tor β wird benutzt, um die Reflektionskoeffizienten zu skalieren. Der tatsächliche Wert eines Koeffizienten wird durch Multiplikation mit 2β erhalten. Die Quantisierung der Reflektionskoeffizenten wird gemäß typischen Industriestandards durchgeführt. Das LPC-Modul führt eine skalare Quantisierung durch, um die LPC- Reflektionskoeffizienten zu codieren.
Die vorliegende Erfindung betrifft Sprachcodierer, die CELP- Codierung (Code Excited Linear Predictive Coding), stochasti­ che Codierung oder vektorerregte Sprachcodierung (Vector Excited Speech Coding) verwenden und betrifft insbesondere Vectorquantisierer für VSELP-Codierung (Vector-Sum Excited Linear Predictive Coding).
Unter CELP-Codierung wird eine Sprachcodierungstechnik ver­ standen, die zur Erzeugung qualitativ hochwertiger synthe­ tischer Sprache benutzt wird. Diese Klasse von Sprachcodie­ rung ist auch als vektorerregte Linear Prediction-Codie­ rung bekannt, wie sie in vielen Sprachkommunikations- und Sprachsyntheseanwendungen verwendet wird. CELP ist dabei insbesondere für digitale Sprachverschlüsselung und digitale Funktelefonkommunikationssysteme geeignet, bei denen Sprach­ qualität, Datenraten, Größe und Kosten bedeutende Kriterien sind.
Bei einem CELP-Sprachcodierer werden die Langzeit-(Klangfarbe; pitch) und die Kurzzeit-(formant)Vorhersager (predictors), welche die Charakteristika des Eingangssprachsignals model­ lieren, in einen Satz zeitlich variabler Filter eingebracht. Insbesondere können Langzeit- und Kurzzeit-Filter verwendet werden. Ein Anregungssignal für die Filter wird aus einem Codebuch mit gespeicherten Innovationssequenzen oder Code­ vektoren ausgewählt.
Für jeden Sprachframe wird ein optimales Anregungssignal (excitation signal) gewählt. Der Sprachcodierer fügt einen individuellen Codevektor den Filtern zu, um ein rekonstruier­ tes Sprachsignal zu erzeugen. Das rekonstruierte Sprachsignal wird mit dem ursprünglichen Eingangssprachsignal verglichen, um dadurch ein Fehlersignal zu erzeugen. Das Fehlersignal wird dann gewichtet, indem es durch einen Sprektralrauschbe­ wertungsfilter (spectral noise weighting filter) geführt wird. Der Spektralrauschbewertungsfilter weist eine Antwort auf, die der menschlichen Hörfähigkeit nachgebildet ist. Das optimale Anregungssignal besteht aus einem ausgewählten Codevektor, wel­ cher das bewertete Fehlersignal mit minimaler Energie in bezug auf den momentanen Sprachframe erzeugt.
Typischerweise wird LPC (linear predictive coding) verwendet, um die Kurzzeitsignalkorrelation über einen Block von Abtastun­ gen zu modellieren, wobei dies auch als Kurzzeitfilterung be­ zeichnet wird. Die Kurzzeitsignalkorrelation stellt die Reso­ nanzfrequenzen des Sprachtraktes (vocal tract) dar. Die LPC- Koeffizienten bestehen aus einem Satz von Sprachmodellparame­ tern. Andere Parametersätze können verwendet werden, um das An­ regungssignal, das dem Kurzzeitvorhersagefilter (short term predictor filter) zugeführt wird, zu charakterisieren. Diese anderen Sprachmodellparameter können beinhalten: LSF (Line Spectral Frequencies), cepstrale Koeffizienten, Reflexionskoef­ fizienten, Log-Bereichsverhältnisse und Arcussinus.
Ein Sprachcodierer vektorquantisiert typischerweise das Anre­ gungssignal, um die Anzahl der Bits, die notwendig sind, um das Signal zu charakterisieren, zu reduzieren. Die LPC-Koeffi­ zienten können in die anderen obengenannten Parametersätze umgewandelt werden, bevor die Quantisierung beginnt. Die Koeffizienten können individuell quantisiert werden (skalare Quantisierung) oder sie können als Satz quantisiert werden (Vektorquantisierung). Die skalare Quantisierung ist nicht so effizient, wie die Vektorquantisierung, jedoch ist die skalare Quantisierung hinsichtlich der Berechnung und der Speicheranforderungen günstiger als die Vektorquantisierung. Die Vektorquantisierung von LPC-Parametern wird bei Anwen­ dungen verwendet, bei denen die Codierungseffizienz von be­ sonderer Bedeutung ist.
Multi-Segmentvektorquantisierung kann verwendet werden, um die Codiereffizienz, die Vektorquantisierungssuchkomplexi­ tät und die Vektorquantisierungsspeicheranforderungen in ein angemessenes Verhältnis zu bringen. Der erste Typ von Multisegmentvektorquantisierung unterteilt einen Np-Element- LPC-Parametervektor in n-Segmente. Jedes der n-Segmente wird separat vektorquantisiert. Ein zweiter Typ von Multi­ segmentvektorquantisierung teilt den LPC-Parameter auf n-Vectorcodebücher auf, wobei jedes Vektorcodebuch alle Np-Vektorelemente aufspannt. Zur Verdeutlichung der Vektor­ quantisierung sei angenommen, daß Np = 10 Elemente vorhanden sind und jedes Element durch zwei Bits repräsentiert wird. Herkömmliche Vektorquantisierung würde dazu 220 Codevektoren mit jeweils 10 Elementen benötigen, um alle möglichen Code­ vektormöglichkeiten darstellen zu können. Der erste Typ von Multi-Segmentvektorquantisierung mit zwei Segmenten würde 210 + 210-Codevektoren mit jeweils fünf Elementen benötigen. Der zweite Typ von Multi-Segmentvektorquantisierung mit zwei Segmenten würde 210 + 210 Codevektoren mit jeweils fünf Ele­ menten benötigen. Jedes dieser Verfahren zur Vektorquantisie­ rung bietet unterschiedliche Vorteile hinsichtlich der Codie­ rungseffizienz, der Suchkomplexität und hinsichtlich der Speicheranforderungen. Somit wäre es vorteilhaft, wenn eine herkömmlicher Sprachcodierer aufgrund eines Vektorquantisie­ rungsverfahrens seine Codierungseffizienz vergrößeren könnte und sich die Suchkomplexität und die Speicheranforderungen dabei nicht verändern würden.
Es ist Aufgabe der Erfindung, ein effizienteres Sprachcodierungsverfahren und einen effizienteren Sprachcodierer anzugeben.
Diese Aufgabe wird durch ein Sprachcodierverfahren nach Patenanspruch 1 und einen Sprachcodierer nach Patentanspruch 5 gelöst.
Bevorzugte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
Im folgenden wird eine bevorzugte Ausführungsform der vor­ liegenden Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Dabei zeigen die Zeichnungen im einzelnen:
Fig. 1 zeigt ein Blockschaltbild eines Funkkommunikations­ systems mit einem Sprachcodierer gemäß der vorliegenden Erfindung;
Fig. 2 zeigt ein Blockschaltbild eines Sprachcodierers gemäß der vorliegenden Erfindung; und
Fig. 3 zeigt eine Arcussinusfunktion, wie sie gemäß der vor­ liegenden Erfindung eingesetzt wird.
Eine Abwandlung der CELP-Codierung, die als VSELP (Vector- Sum Excited Linear Predictive Coding) bezeichnet wird, stellt eine bevorzugte Ausführungsform für die vorliegende Erfindung dar. VSELP verwendet ein Anregungs-Codebuch mit einer vorge­ gebenen Struktur, so daß die Berechnungen, die für das Code­ buch-Suchverfahren benötigt werden, deutlich reduziert werden. Dieser VSELP-Sprachcodierer verwendet einen Einzel- oder Multi­ segmentvektorquantisierer mit Reflexionskoeffizienten, basie­ rend auf FLAT (Fixed-Point-Lattice-Technique). Zusätzlich ver­ wendet dieser Sprachcodierer einen Vorquantisierer, um die Vektorcodebuchsuchkomplexität zu verringern und verwendet wei­ terhin einen Skalarquantisierer mit hoher Auflösung, um die Größe des Speichers, der benötigt wird, um die Reflexions­ koeffizentvektorcodebücher zu speichern, zu reduzieren. Dies führt zu einem Vektorquantisierer mit verbesserten Eigenschaf­ ten und Reflexionskoeffizienten, welcher auch hinsichtlich der Berechnung effizienter arbeitet und geringere Speicheran­ forderungen stellt.
Fig. 1 zeigt ein Blockschaltbild eines Funkkommunikations­ systems 100. Das Funkkommunikationssystem 100 enthält zwei Sende/Empfangseinrichtungen 101, 113, welche Sprachdaten über­ tragen und empfangen. Die zwei Sende/Empfangseinrichtungen 101, 113 können Teil eines Bündelfunksystems (trunked radio system) oder eines Funktelefonkommunikationssystems oder Teil eines anderen Funkkommunikationssystems sein, welches Sprachdaten überträgt und empfängt. Bei dem Übertrager werden die Sprachsignale in ein Mikrofon 108 eingegeben, und der Sprachcodierer wählt die Quantisierungsparameter des Sprach­ modells aus. Diese Codes für die quantisierten Parameter wer­ den dann an die andere Sende/Empfangseinrichtung 113 über­ tragen. Bei der anderen Sende/Empfangseinrichtung 113 werden die übertragenen Codes für die quantisierten Parameter bei 121 empfangen und verwendet, um die Sprache in dem Sprachde­ coder 123 zu regenerieren. Die regenerierte Sprache wird an den Lautsprecher 124 ausgegeben.
Fig. 2 ist ein Blockschaltbild eines VSELP-Sprachcodierers 200. Ein VSELP-Sprachcodierer 200 verwendet einen empfangenen Code, um zu bestimmen, welcher Anregungsvektor von dem Code­ buch benutzt werden soll. Der VSELP-Codierer verwendet ein Anregungscodebuch mit 2M Codevektoren, welches aus M-Basis­ vektoren konstruiert ist. Wenn vm(n) als der m-te Basisvektor und ui(n) als der i-te Codevektor in dem Codebuch definiert wird, so gilt:
wobei 0 ≦ i ≦ 2M - 1; 0 ≦ n ≦ N - 1 gilt. Mit anderen Worten, wird jeder Codevektor in dem Codebuch als lineare Kombination von M-Basisvektoren konstuiert. Die linearen Kombinationen werden durch die θ-Parameter definiert. θim ist wie folgt definiert:
θim = +1, falls das Bit m des Codeworts i = 1 ist
θim = -1, falls das Bit m des Codeworts i = 0 ist.
Der Codevektor i wird als Summe der M-Basisvektoren konstruiert, wobei das Vorzeichen (plus oder minus) eines jeden Basisvektors durch den Zustand des korrespondierenden Bits in dem Codewort i bestimmt wird. Zu beachten ist, daß für den Fall, daß die Bits in dem Codewort i komplementiert werden, das korrespondie­ rende Codewort das Negative des Codewortes i darstellt. Daher ist für jeden Codevektor sein negatives Komplement auch ein Codevektor in dem Codebuch. Diese Paare werden als komplemen­ täre Codevektoren bezeichnet.
Nachdem der geeignete Vektor ausgewählt worden ist, skaliert der Gewinnblock (gain block) 205 den gewählten Vektor durch den Gewinnausdruck γ. Der Ausgang des Gewinnblocks 205 wird einem Satz von linearen Filtern 207 und 209 zugeführt, um N- Abtastungen für die rekonstruierte Sprache zu erhalten. Die Filter enthalten einen Langzeit(pitch)-Filter 207, welcher Abstände (pitches) periodisch in die Anregung einsetzt. Der Ausgang des Langzeitfilters 207 wird dann dem Kurzzeit(oder formant)-Filter 209 zugeführt. Der Kurzzeitfilter 209 addiert die spektrale Hülle zu dem Signal.
Der Langzeitfilter 207 weist einen LTP-Koeffizienten (long­ term predictor coefficient) auf. Der Langzeitfilter 207 ver­ sucht, die nächste Ausgabeabtastung aufgrund einer oder meh­ rerer Abtastungen aus der Vergangenheit vorherzusagen. Wenn nur vorausgegangene Abtastungen in dem Vorhersager (predictor) verwendet werden, so ist der Predictor ein Einzelabgriffpre­ dictor (single-tap predictor). Typischerweise werden ein bis drei Abgriffe verwendet. Die Übertragungsfunktion für einen Langzeitfilter 207 mit einem Einzelabgriff-Langzeitvorher­ sager wird durch Formel 1.1 angegeben.
B(z) wird durch die zwei Größen L und β charakterisiert. L wird als Verzögerung (lag) bezeichnet. Für gesprochene Sprache ist L typischerweise die "pitch"-Periode oder ein Vielfaches davon. L kann auch eine nicht ganze Zahl sein. Falls L keine ganze Zahl ist, wird ein FIR-Filter verwendet, um fraktional verzögerte Abtastungen zu erzeugen. β ist der Langzeit(oder "pitch")-Pre­ dictorkoeffizient.
Der Kurzzeitfilter 209 enthält die Kurzzeitpredictor-Koeffi­ zienten αi, durch welche die nächste Ausgabeabtastung von den vorhergehenden Np-Ausgangsabtastungen vorhergesagt wird. Np bewegt sich typischerweise zwischen 8 bis 12. In einer typischen Ausführungsform ist Np gleich 10. Der Kurzzeitfilter 209 ist gleich einem herkömmlichen LPC-Synthesefilter. Die Übertragungsfunktion für den Kurzzeitfilter 209 ist durch 1.2 angegeben.
Der Kurzzeitfilter 209 wird durch die αi-Parameter charakte­ risiert, welche die direkten Filterkoeffizienten für den All- Pol-Synthesefilter darstellen. Details hinsichtlich der αi- Parameter sind weiter unten angegeben. Die verschiedenen Parameter (Code-, Gewinn-, Filter-Parameter) werden nicht alle mit der gleichen Geschwindigkeit an den Synthesizer (Sprach­ decoder) übertragen. Typischerweise werden die Kurzzeitpara­ meter weniger oft erneuert als der Code. Die Kurzzeitpara­ metererneuerungsgeschwindigkeit wird im folgenden als "frame"- Rate bezeichnet, und das Intervall zwischen den Erneuerungen (updates) wird als "frame" bezeichnet. Die Codeerneuerungs­ rate wird durch die Vectorlänge N bestimmt. Die Codeerneue­ rungsrate wird als "subframe"-Rate und das Codeerneuerungs­ intervall als "subframe" bezeichnet. Ein Frame besteht übli­ cherweise aus einer ganzzahligen Anzahl von Subframes. Die Gewinn- und Langzeit-Parameter können entweder mit der Sub­ frame-Rate, der Frame-Rate oder einer Rate, die vom Sprachco­ diererdesign abhängt, erneuert werden.
Die Codebuchsuchprozedur besteht aus dem Ausprobieren eines jeden Codevektors als mögliche Anregung für den CELP-Synthe­ sizer. Die synthetisierte Sprache s'(n) wird bei 211 mit der eingegebenen Sprache s(n) verglichen und ein Differenzsignal ei erzeugt. Das Differenzsignal ei(n) wird dann durch den Spektralbewertungsfilter W(z) 213 gefiltert (und möglicher­ weise durch ein weiteres zweites Bewertungsfilter C(z)), um ein bewertetes Fehlersignal e(n) zu erzeugen. Die Leistung für e(n) wird in der Energieberechnungseinheit 215 berech­ net. Der Codevektor, der die minimale bewertete Fehlerlei­ stung erzeugt, wird als Codevektor für diesen Subframe ausgewählt. Der Spektralbewertungsfilter 213 dient zum Be­ werten des Fehlerspektrums, basierend auf Wahrnehmungsüber­ legungen (perceptual considerations). Dieses Bewertungsfilter 213 ist eine Funktion des Sprachspektrums und kann als α-Para­ meter des Kurzzeit(spectral)-Filters 209 ausgedrückt werden.
Es gibt zwei Möglichkeiten zum Berechnen des Gewinns γ. Der Gewinn kann vor der Codebuchsuche bestimmt werden, basierend auf Restenergie. Dieser Gewinn würde dann für die Codebuch­ suche beibehalten werden. Eine andere Möglichkeit besteht darin, den Gewinn für jeden Codevektor während der Codebuch­ suche zu optimieren. Der Codevektor, welcher den minimalen bewerteten Fehler erzielt, würde ausgewählt werden, und sein entsprechender optimaler Gewinn würde für γ vewendet werden. Die zuletzt angesprochene Möglichkeit erzielt im allgemeinen bessere Ergebnisse, da der Gewinn für jeden Codevektor opti­ miert ist. Diese Möglichkeit schließt auch mit ein, daß der Gewinnausdruck mit der Subframe-Rate erneuert werden muß. Der optimale Code und Gewinn für diese Technik kann wie folgt berechnet werden:
  • 1. Berechne das bewertete Eingangssignal y(n) für den Sub­ frame.
  • 2. Berechne d(n), die Null-Eingangsantwort der B(z)- und W(z)- (und C(z)-falls verwendet)-Filter für den Subframe. (Die Nulleingangsantwort ist die Antwort der Filter ohne Eingang; der Abfall der Filterzustände).
  • 3. p(n) = y(n) - d(n) über dem Subframe (0 ≦ n ≦ N - 1).
  • 4. Für jeden Code i
    • a) Berechne gi(n), die Nullzustandsantwort von B(z) und W(z) (und C(z), falls verwendet) für den Codevektor i. (Die Nullzustandsantwort ist der Filterausgang, bei dem die ursprünglichen Filterzustände auf Null gesetzt sind).
    • b) Berechne
      die Kreuzkorrelation zwischen den gefilterten Codevek­ toren i und p(n)
    • c) Berechne
      die Leistung in dem gefiltertern Codevektor i.
  • 5. Wähle das i, welches
    maximiert
  • 6. Erneuere die Filterzustände von B(z) und W(z) (und von C(z), falls verwendet) unter Verwendung des gewählten Code­ wortes und seines korrespondierenden Quantisierungsgewinns. Dies wird gemacht, um die gleichen Filterzustände zu erhalten, die der Synthesizer am Beginn des nächsten Subframes für Schritt 2 aufweisen würde.
Der optimale Gewinn für den Codevektor i wird durch 1.8 ange­ geben.
Und der gesamte gewichtete Fehler für den Codevektor i unter Verwendung des optimalen Gewinns γi wird durch 1.9 gegeben.
Die Kurzzeitprediktorparameter sind die αi's des Kurzzeit­ filters 209 der Fig. 2. Diese stellen Standard-LPC-Direkt­ formfilterkoeffizienten dar, und es kann jede beliebige An­ zahl von LPC-Anlalysetechniken verwendet werden, um diese Koeffizienten zu bestimmen. In einer bevorzugten Ausführungs­ form wurde ein FLAT (fast fixed point covariance lattice)- Algorithmus verwendet. Der FLAT weist alle Vorteile der Gitter­ algorithmen auf einschließlich einer garantierten Filterstabi­ lität, einer Non-Windowed-Analyse und der Fähigkeit zum Quanti­ sieren der Reflexionskoeffizienten innerhalb der Rekursion. Zu­ sätzlich ist FLAT numerisch robust und kann auf einen Fest­ punktprozessor leicht implementiert werden.
Die Kurzzeitprediktorparameter werden von der Eingangssprache berechnet. Es wird keine Vorbewertung verwendet. Die Analyse­ länge für die Berechnung der Parameter beträgt 170 Abtastun­ gen (NA = 170). Die Größe des Prediktors ist 10 (NP = 10).
Dieser Abschnitt wird die Details des FLAT-Algorithmus be­ schreiben. Angenommen, die Abtastungen der Eingangssprache, welche in das Analyseintervall fallen, werden repräsentiert durch s(n); 0 ≦ n ≦ NA - 1.
Da FLAT ein Gitteralgorithmus ist, kann man diese Technik als Versuch ansehen, ein optimales (das heißt mit minimaler Rest­ energie) invertiertes Gitterfilter Stufe um Stufe aufzubauen.
Wird bj(n) als Rückwärtsrest aus der Stufe j des invertierten Gitterfilters (inverse lattice filter) und fj(n) als Vor­ wärtsrest aus der Stufe j des inversen Gitterfilters ange­ sehen, so kann definiert werden:
wobei dies die Autokorrelation von fj(n) ist;
Die Autokorrelation von bj(n - 1) und:
die Kreuzkorrelation zwischen fj(n) und bj(n - 1). Bei rj der Reflexionskoeffizient für die Stufe j des invertier­ ten Gitters, so gilt:
Fj(i, k) = Fj-1(i, k) + rj(Cj-1(i, k) + Cj-1(k, i)) + rj 2Bj-1(i, k) (2.4)
und
Bj(i, k) = Bj-1(i + 1, k + 1) + rj(Cj-1(i + 1, k + 1) + Cj-1(k + 1, i + 1)) + rj 2Fj-1(i + 1, k + 1) (2.5)
und
Cj(i, k) = Cj-1(i, k + 1) + rj(Bj-1(i, k + 1) + Fj-1(i, k + 1)) + rj 2Cj-1(k + 1, i) (2.6)
Die Formulierung, die für die Bestimmung von rj gewählt wurde, kann wie folgt ausgedrückt werden:
Der FLAT-Algorithmus kann nun wie folgt angegeben werden:
  • 1. Berechne zuerst die Covarianz (autocorrelations)-Matrix der Eingangssprache:
    für 0 ≦ i, k ≦ NP.
  • 2. 
    F0(i, k) = f(i, k) 0 ≦ i, k ≦ NP - 1 (2.9)
    B0(i, k) = f(i + 1, k + 1) 0 ≦ i, k ≦ NP - 1 (2.10)
    C0(i, k) = f(i, k + 1) 0 ≦ i, k ≦ NP - 1 (2.11)
  • 3. Setze j = 1
  • 4. Berechne rj unter Verwendung von (2.7)
  • 5. Falls j = NP ist Ende.
  • 6. Berechne Fj(i, k) 0 ≦ i, k ≦ NP - j - 1 unter Verwendung von (2.4)
    Berechne Bj(i, k) 0 ≦ i, k ≦ NP - j - 1 unter Verwendung von (2.5)
    Berechne Cj(i, k) 0 ≦ i, k ≦ NP - j - 1 unter Verwendung von (2.6)
  • 7. j = j + 1; gehe zu 4.
Vor dem Auflösen der Reflexionskoeffizienten, kann das Φ- Gitter modifiziert werden, indem die Autokorrelations­ funktionen überstrichen werden (windowing).
ϕ'(i, k) = ϕ(i, k)w(|i - k|) (2.12)
Das Überstreichen der Autokorrelationsfunktion vor der Reflexionskoeffizientenberechnung wird als spektrale Glättung (spectral smoothing) (SST) bezeichnet.
Von den Reflexionskoeffizienten rj können die Kurzzeit-LPC- Prediktorkoeffizienten αi berechnet werden.
Ein 28-Bit-Dreisegmentvektorquantisierer der Reflexionskoeffi­ zienten wird verwendet. Die Segmente des Vektorquantisierers spannen Reflexionskoeffizienten r1-r3, r4-r6 und r7-r10 auf. Die Bitzuweisung für die Vektorquantisierersegmente ergibt sich wie folgt:
Q1 11 Bits
Q2 9 Bits
Q3 8 Bits.
Um die Berechnungskomplexität für eine umfangreiche Vektor­ quantisierersuche zu vermeiden, wird ein Reflexionskoeffi­ zientenvektorvorquantisierer für jedes Segment verwendet. Die Vorquantisierergröße für jedes Segment ist folgender­ maßen:
P1 6 Bits
P2 5 Bits
P3 4 Bits
Bei einem gegebenen Segment wird der Restfehler aufgrund eines jeden Vektors von dem vorquantisierer berechnet und in einen Zwischenspeicher gespeichert. Diese Liste wird durch­ sucht, um die vier Vorquantisierervektoren zu identifizieren, welche die geringste Verzerrung aufweisen. Der Index eines jeden ausgewählten Vorquantisierungsvektors wird verwendet, um in die Vektorquantisierungstabelle einen Offset zu berechnen, bei dem ein fortlaufender Untersatz von Quantisierungsvektoren, die mit dem Vorquantisierungsvektor assoziiert sind, beginnt. Die Größe eines jeden Vektorquantisierungsuntersatzes am k-ten Segment ergibt sich wie folgt:
Die vier Untersätze von Quantisierungsvektoren, die mit den ausgewählten Vorquantisierungsvektoren assoziiert sind, werden nach dem Quantisierungsvektor durchsucht, der zu dem geringsten Restfehler führt. Somit werden bei dem ersten Segment 64 Vorquantisierungsvektoren und 128 Quantisierungsvektoren be­ wertet, bei dem zweiten Segment werden 32 Vorquantisierungs­ vektoren und 64 Quantisierungsvektoren bewertet, und bei dem dritten Segment werden 16 Vorquantisierungsvektoren und 64 Quantisierungsvektoren bewertet. Die optimalen Reflexionskoef­ fizienten, die mittels der FLAT-Technik mit der bandbreiten Ex­ pansion berechnet wurden, wie dies oben beschrieben wurde, wer­ den in einen Autokorrelationsvektor vor der Vektorquantisierung umgewandelt.
Die Autokorrelationsversion des FLAT-Algorithmus, die als AFLAT bezeichnet wird, wird verwendet, um die Restfehlerenergie für einen Reflexionskoeffizientenvektor zu berechnen, welcher be­ wertet wird. Wie bei FLAT, weist dieser Algorithmus die Fähig­ keit auf, teilweise den Reflexionskoeffizientenquantisierungs­ fehler von vorausgegangenen Gitterstufen zu kompensieren, wenn optimale Reflexionskoeffizienten berechnet werden oder ein Reflexionskoeffizientenvektor von einem Vektorquantisierer bei einem momentanten Segment gewählt wird. Diese Verbesserung kann für Frames mit hoher Reflexionskoeffizientenquantisierungsver­ zerrung von großem Ausmaß sein. Der AFLAT-Algorithmus in Zu­ sammenhang mit der Multisegmentvektorquantisierung mit Vor­ quantisierern wird nun im folgenden beschrieben:
Es muß die Autokorrelationssequenz R(i) von den optimalen Reflexionskoeffizienten über einen Bereich 0 ≦ i ≦ Np berechnet werden. Alternativ kann die Autokorrelationssequenz von anderen LPC-Parameterdarstellungen berechnet werden, wie beispielsweise der direkten Form der LPC-Prediktorkoeffizienten αi oder direkt von der Eingangssprache.
Es werden die Anfangsbedingungen für die AFLAT-Rekursion wie folgt definiert:
P0(i) = R(i), 0 ≦ i ≦ Np - 1 (2.14)
V0(i) = R(|i + 1|), 1 - Np ≦ i ≦ Np - 1 (2.15)
Es wird der Vektorquantisierungssegmentindex k initialisiert:
k = 1 (2.16)
Es sei Il(k) als Index für die erste Gitterstufe in dem k-ten Segment und Ih(k) als Index der letzten Gitterstufe in dem k-ten Segment gewählt. Die Rekursion zum Bewerten des Rest­ fehlers aus der Gitterstufe Ih(k) am k-ten Segment mit gege­ benem r ergibt den unten angegebenen Reflexionskoeffizienten­ vektor von dem Vorquantisierer oder den Reflexionskoeffizien­ tenvektor von dem Quantisierer.
Initialisiere j, den Index der Gitterstufe, um auf den Anfang des k-ten Segments zu zeigen:
j = Il(k) (2.17)
Setze die Anfangsbedingungen von Pj - 1 und Vj - 1 zu:
Pj-1(i) = Pj-1(i), 0 ≦ i ≦ Ih(k) - Il(k) + 1 (2.18)
Vj-1(i) = Vj-1(i), -Ih(k) + Il(k) - 1 ≦ i ≦ Ih(k) - Il(k) + 1 (2.19)
Berechne die Werte für die Vj und Pj-Gitter wie folgt:
Pj(i) = (1 + j 2)Pj-1(i) + j[Vj-1(i) + Vj-1(-i)], 0 ≦ i ≦ Ih(k) - j (2.20)
Vj(i) = Vj-1(i + 1) + j 2 Vj-1(-i - 1) + 2j Pj-1(|i + 1|), j - Ih(k) ≦ i ≦ Ih(k) - j (2.21)
Inkrementiere j:
j = j + 1 (2.22)
Falls j ≦ Ih(k), gehe zur Formel (2.20).
Der Restfehler aus der Gitterstufe ih(k) mit gegebenem Refle­ xionskoeffizientenvektor r ergibt sich zu:
Er = PIh(k)(0) (2.23)
Wird die angegebene AFLAT-Rekursion, wie oben erwähnt, verwen­ det, so wird der Restfehler aufgrund jedes Vektors von dem Vorquantisierer am k-ten Segment bewertet, die vier Unter­ sätze vom Quantisierungsvektor zum Suchen identifiziert und der Restfehler aufgrund eines jeden Quantisierungsvektors von den ausgewählten vier Untersätzen berechnet. Der Index von r, der den Quantisierungsvektor angibt, welcher Er über alle Quantisierungsvektoren in den vier Untersätzen minimiert, wird mit Qk-Bits codiert.
Falls k < 3, müssen die Anfangsbedingungen für die Rekursion am Segment k + 1 berechnet werden. Wird j, der Gitterstufenin­ dex, wie folgt gesetzt:
j = Il(k) (2.24)
Berechne:
Compute:
Pj(i) = (1 + j 2)Pj-1(i) + j[Vj-1(i) + Vj-1(-i)], 0 ≦ i ≦ Np - j - 1 (2.25)
Vj(i) = Vj-1(i + 1) + j 2Vj-1(-i - 1) + 2jPj-1(|i + 1|), j - Np + 1 ≦ i ≦ Np - j - 1 (2.26)
Inkrementiere j,
j = j + 1 (2.27)
falls j ≦ ih(k), gehe zu (2.25).
Inkrementiere k, den Vektorquantisierungssegmentindex:
k = k + 1 (2.28)
Falls k ≦ 3, gehe zu (2.17). Andernfalls werden die Indizes für die Reflexionskoeffizientenvektoren für die drei Segmente ausgewählt und die Suche nach dem Reflexionskoeffizientenvek­ torquantisierer ist beendet.
Um die Speicheranforderungen für den Reflexionskoeffizien­ tenvektorquantisierer zu minimieren, werden Acht-Bit-Codes für die individuellen Reflexionskoeffizienten in der Vektor­ quantisierungstabelle gespeichert, anstelle der momentanten Reflexionskoeffizientenwerte. Die Codes werden verwendet, um die Werte der Reflexionskoeffizienten aus einer skalaren Quantisierungstabelle mit 256 Eintragungen herauszufinden. Die Acht-Bit-Codes repräsentieren Reflexionskoeffizienten­ werte, wie sie durch gleichmäßiges Abtasten einer Arkus­ sinusfunktion, wie sie in Fig. 3 gezeigt ist, erhalten werden. Die Refexionskoeffizientenwerte variieren von -1 bis +1. Die nichtlineare Beabstandung der Reflexionskoeffi­ zienten (X-Achse) stellt eine größere Präzision für die Reflexionskoeffizienten zur Verfügung, wenn die Werte nahe den Extremwerten von +/-1 sind und weisen eine geringere Präzision auf, wenn die Werte nahe bei Null sind. Dies redu­ ziert die spektrale Verzerrung aufgrund von Skarlarquantisie­ rern der Reflexionskoeffizienten mit 256 Quantisierungspegeln, im Vergleich zum gleichmäßigen Abtasten der Reflexionskoeffi­ zienten.

Claims (6)

1. Sprachcodierungsverfahren mit den Schritten:
  • a) Konstruieren (203) eines Anregungscodebuches von 2M Codevektoren (ui(n)), wobei M Basisvektoren benutzt werden;
  • b) Empfangen von Eingabesprache (s(n));
  • c) Berechnen im Ansprechen auf die Eingabesprache von Reflektionskoeffizientwer­ ten, die Sprachparametern stellvertretend für die Eingabesprache entsprechen;
gekennzeichnet durch die folgenden Schritte:
  • a) Speichern von 2N Reflektionskoeffizientwerten in einer Tabelle, wobei jeder Re­ flektionskoeffizientwert durch einen N-Bitcode adressierbar ist;
  • b) Verarbeiten (205, 207, 209) von Codevektoren, um synthetisierte Sprache (s'i(n)) zu erzeugen; und
  • c) Auswählen (217) eines Codevektors aus dem Anregungscodebuch, der ein Feh­ lerkriterium (213, 215) für die synthetisierte Sprache gegenüber der Eingabesprache minimiert, und
    • 1. wenn Reflektionskoeffizientwerte zur Verarbeitung benötigt werden, Liefern entsprechender N-Bitcodes an die Tabelle, um die Reflektions­ koeffizientwerte zu suchen,
    • 2. andernfalls Speichern nur der N-Bitcodes während der Verarbeitung, wobei hierdurch das Speichererfordernis für die Reflektionskoeffizientwerte mini­ miert wird.
2. Verfahren zum Speichern von Reflektionskoeffizientvektoren in einem Vektor­ quantisierer für einen Sprachcodierer gemäß Anspruch 1, dadurch gekennzeich­ net, daß die Reflektionskoeffizientwerte nichtlinear skaliert sind (300).
3. Verfahren zum Speichern von Reflektionskoeffizientvektoren in einem Vektor­ quantisierer für einen Sprachcodierer gemäß Anspruch 1, dadurch gekennzeich­ net, daß die Reflektionskoeffizientwerte zwischen den Werten -1 und +1 arkussi­ nussklaliert sind (300).
4. Verfahren zum Speichern von Reflektionskoeffizientvektoren in einem Vektor­ quantisierer für einen Sprachcodierer nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß N = 8 ist.
5. Sprachcodierer mit:
einem Codebuchgenerator (203), der ein Anregungscodebuch erzeugt, das 2M Codevektoren aufweist, die unter Benutzung von M Basisvektoren gebildet werden;
einer Eingabeeinrichtung (Filter, Wandler) zum Empfangen eines Eingabesprachsi­ gnals und zum Erzeugen eines Datenvektors (s(n));
einer Codiereinrichtung (Koeffizienten-Analysierer), die mit der Eingabeeinrichtung gekoppelt ist, zum Erzeugen von Reflektionskoeffizienten, die Sprachparametern stellvertretend für das Eingabesprachsignal entsprechen,
einem Vektorquantisierer zum Quantisieren der Reflektionskoeffizienten,
dadurch gekennzeichnet, daß
die Codiereinrichtung die Codevektoren verarbeitet, um synthetisierte Sprache (s'i(n)) zu erzeugen, und
der Vektorquantisierer einen Vektorquantisierspeicher umfaßt, der ausgelegt ist, um 2N Reflektionskoeffizientwerte zu speichern, wobei der Vektorquantisierspeicher ei­ nen N-Biteingang und einen Ausgang aufweist, wobei der Vektorquantisierspeicher einen der 2N Reflektionskoeffizientwerte am Ausgang im Ansprechen auf eine N- Bitadresse liefert, die bei dem N-Biteingang empfangen wird; und ferner mit:
einer Codebuchsuchsteuerung (217), die mit dem Codebuchgenerator gekoppelt ist, der einen Codevektor aus dem Anregungscodebuch auswählt, um ein Fehlerkriteri­ um (213, 215) zwischen der synthetisierten Sprache und dem Datenvektor zu mini­ mieren, wobei die Codebuchsuchsteuerung mit dem Vektorquantisierer gekoppelt ist und einen entsprechenden N-Bitcode an den Vektorquantisierer liefert, um einen Reflektionskoeffizientwert zum Verarbeiten herauszusuchen, wobei die Codebuch­ suchsteuerung andernfalls nur den N-Bitcode speichert, um hierdurch Speicherer­ fordernisse zu minimieren.
6. Sprachcodierer nach Anspruch 5, dadurch gekennzeichnet, daß jeder Reflek­ tionskoeffizientwert mit einer angegliederten N-Bitadresse durch eine Arkussinuss­ kalierungsfunktion (300) verknüpft ist.
DE4447647A 1993-03-26 1994-03-07 Sprachcodierungsverfahren und Sprachcodierer Expired - Lifetime DE4447647C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3779393A 1993-03-26 1993-03-26
DE4492048A DE4492048C2 (de) 1993-03-26 1994-03-07 Vektorquantisierungs-Verfahren

Publications (1)

Publication Number Publication Date
DE4447647C2 true DE4447647C2 (de) 2000-05-11

Family

ID=25943662

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4447647A Expired - Lifetime DE4447647C2 (de) 1993-03-26 1994-03-07 Sprachcodierungsverfahren und Sprachcodierer

Country Status (1)

Country Link
DE (1) DE4447647C2 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890327A (en) * 1987-06-03 1989-12-26 Itt Corporation Multi-rate digital voice coder apparatus
US5038377A (en) * 1982-12-23 1991-08-06 Sharp Kabushiki Kaisha ROM circuit for reducing sound data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038377A (en) * 1982-12-23 1991-08-06 Sharp Kabushiki Kaisha ROM circuit for reducing sound data
US4890327A (en) * 1987-06-03 1989-12-26 Itt Corporation Multi-rate digital voice coder apparatus

Similar Documents

Publication Publication Date Title
DE4492048C2 (de) Vektorquantisierungs-Verfahren
DE19604273C2 (de) Verfahren und Vorrichtung zum Durchführen einer Suche in einem Kodebuch im Hinblick auf das Kodieren eines Klangsignales, Zellkommunikationssystem, Zellnetzwerkelement und mobile Zell-Sender-/Empfänger-Einheit
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
DE60226308T2 (de) Quantisierung der Anregung in einem Geräuschrückkopplungskodierungssytem mit allgemeiner Rauschformung
DE69815242T2 (de) Verfahren zur Quantisierung der LPC Parameter mittels geschalteter prädiktiver Quantisierung
DE69832358T2 (de) Verfahren zur Sprachkodierung und -dekodierung
DE19811039B4 (de) Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen
DE69836624T2 (de) Audiokodierer und -dekodierer
DE4397106B4 (de) Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung
DE69531642T2 (de) Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE19647298C2 (de) Kodiersystem
DE69916321T2 (de) Kodierung eines verbesserungsmerkmals zur leistungsverbesserung in der kodierung von kommunikationssignalen
DE602004007786T2 (de) Verfahren und vorrichtung zur quantisierung des verstärkungsfaktors in einem breitbandsprachkodierer mit variabler bitrate
DE3041423C1 (de) Verfahren und Vorrichtung zur Verarbeitung eines Sprachsignals
DE60126149T2 (de) Verfahren, einrichtung und programm zum codieren und decodieren eines akustischen parameters und verfahren, einrichtung und programm zum codieren und decodieren von klängen
DE69033510T3 (de) Numerischer sprachcodierer mit verbesserter langzeitvorhersage durch subabtastauflösung
EP1979899B1 (de) Verfahren und anordnungen zur audiosignalkodierung
DE60309651T2 (de) Verfahren zur Sprachkodierung mittels verallgemeinerter Analyse durch Synthese und Sprachkodierer zur Durchführung dieses Verfahrens
DE69828709T2 (de) Erhöhung der Dichte von kodierten Sprachsignalen
DE4491015C2 (de) Verfahren zum Erzeugen eines Spektralrauschbewertungsfilters zur Verwendung in einem Sprachcoder
DE10004862B4 (de) Ein schnelles Suchverfahren für LSP-Quantisierung
DE60214121T2 (de) Quantisierung der Anregung bei einem &#34;noise-feedback&#34; Kodierungsverfahren
DE69830816T2 (de) Mehrstufige Audiodekodierung
DE60030069T2 (de) Verschleierungsverfahren bei Verlust von Sprachrahmen
DE69630177T2 (de) Sprachkodierer mit der Fähigkeit zur wesentlichen Vergrösserung der Codebuchgrösse ohne aber die Zahl der übertragenen Bits zu vergrössern

Legal Events

Date Code Title Description
8172 Supplementary division/partition in:

Ref document number: 4492048

Country of ref document: DE

Q171 Divided out to:

Ref document number: 4492048

Country of ref document: DE

8110 Request for examination paragraph 44
AH Division in

Ref document number: 4492048

Country of ref document: DE

8607 Notification of search results after publication
AH Division in

Ref document number: 4492048

Country of ref document: DE

D2 Grant after examination
8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, 80336 MUENCHE

R081 Change of applicant/patentee

Owner name: RESEARCH IN MOTION LTD., WATERLOO, CA

Free format text: FORMER OWNER: MOTOROLA, INC., SCHAUMBURG, ILL., US

Effective date: 20111221

Owner name: RESEARCH IN MOTION LTD., CA

Free format text: FORMER OWNER: MOTOROLA, INC., SCHAUMBURG, US

Effective date: 20111221

R082 Change of representative

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN PATENTANWA, DE

Effective date: 20111221

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE

Effective date: 20111221

R071 Expiry of right
R071 Expiry of right