-
Diese Erfindung befaßt sich mit der digitalen Codierung von
Signalen und insbesondere mit einem Verfahren zur Verbesserung der
Unempfindlichkeit gegen Rauschen von digital codierten Signalen.
Hintergrund der Erfindung
-
Es hat sich gezeigt, daß die digitalen Codierungstechniken zur
Übertragung oder Speicherung von elektrischen Signalen, zum
Beispiel von aus Sprache abgeleiteten Signalen in einer
verrauschten Umgebung, gut geeignet sind. Einige dieser Techniken
umfassen das Einbetten von Codierungsparametern in die codierten
Daten zur Verwendung im nachfolgenden Decodierungsprozeß.
Selbstredend ist jeder die Codierungsparameter betreffende
Fehler besonders störend, da er sich auf den gesamten
Decodierungsprozeß, der zur Rekonstruktion des ursprünglichen analogen
Signales durchgeführt wird, auswirkt. Folglich sind Verfahren zu
entwickeln, um für die Codierungsparameter die größtmögliche
Unempfindlichkeit gegen Rauschen sicherzustellen. Ein Weg, um
dieses Ziel zu erreichen, besteht in der Verdopplung der Parameter
für Speicherungs- oder Übertragungszwecke. Ein anderer Weg, wie
die Zuteilung zusätzlicher Paritätskontroll-Bit(s), wie in
US-A-4 003 620 erwähnt. Dies bedeutet Verbrauch von Bits und
sollte vermieden werden, wenn die Einsparung von Bits geboten
ist, so wie zum Beispiel dann, wenn die Codierung auf
Sprachsignale angewandt wird, und die Bitrate minimiert werden muß. Es
sind große Anstrengungen unternommen worden, um Techniken zur
Senkung der Codierungs-Bitrate unter Verwendung ausgeklügelter,
Kompandierungs-Operationen umfassender Verfahren zu entwickeln.
-
Eine dieser Techniken, nämlich die Block-kommandierte
PCM-Technik (BCPCM), hat sich als gut geeignet für die Übertragung von
Sprache auf verrauschten Kanälen erwiesen. Diese Technik umfaßt
das Aufspalten der Aufeinanderfolge der Abtastwerte des
ursprünglichen Signals in Blöcke festgelegter Länge, wobei von
jedem Abtastwerteblock ein kennzeichnender Term "C", (z. B. der
betragsmäßig größte Abtastwert) abgeleitet wird, sowie die
Normierung/Quantisierung jedes Abtastwertes innerhalb des
betrachteten Blocks bezüglich C. Alles, was zur Definition des Blockes
erforderlich ist, ist der normierte/quantisierte Block von
Abtastwerten zusammen mit einer digital codierten Darstellung von
C. Dieses Verfahren ist von A. Croisier bei einem auf dem "1974
International Seminar on digital Communications" in Zürich,
Schweiz, gehaltenen Vortrag mit dem Titel "Progress in PCM and
Delta Modulation: Block Companded Coding of Speech Signal"
vorgestellt worden.
-
Nachdem der Parameter C einmal zur Normierung eines Blockes von
Abtastwerten benutzt wurde, beeinflußt offensichtlich jeder den
Parameter C betreffende Fehler die Qualität des
wiederhergestellten Signals, das durch den betrachteten Block repräsentiert
wird. Ein Verfahren zum Schutz von C, das die Zuordnung von
einem oder mehreren Paritäts-Bits zu C beinhaltet, ist in
EP-A-64 119 erwähnt, jedoch ist dies wiederum mit Bitverbrauch
verbunden und beeinflußt die Anzahl der für die
Signalquantisierung verbleibenden Bits.
-
Die Erfindung stellt ein Verfahren zum Schutz der Integrität der
BCPCM-Daten durch Schützen des durch den Term C repräsentierten,
empfindlichen Codierungsparameters bereit, ohne die Anzahl der
für Zwecke der Codierung zur Verfügung stehenden Bits zu
beschränken.
-
Selbstverständlich ist das Verfahren auch für andere
Codierungsschemata und ebenso für unterschiedliche, auf verschiedene
Signaltypen angewandte Codierungsparameter verwendbar. Es wurde
erfolgreich bei der BCPCM-Sprach-Codierung angewandt.
Zusammenfassung der Erfindung
-
Eine Aufgabe dieser Erfindung ist also die Bereitstellung eines
effizienten Verfahrens zum Schutz der Integrität eines codierten
Signales.
-
Eine weitere Aufgabe besteht darin, ein solches Verfahren auf
BCPCM Codierungstechniken anzuwenden, wobei das Signal durch
Blöcke von Abtastwerten dargestellt wird, die hinsichtlich des
für den jeweiligen Block repräsentativen Parameters C normiert
sind. Jeder Datenwert C wird so festgelegt, daß er eine feste,
vorherbestimmte Parität (z. B. ungerade Parität) aufweist, bevor
er zur Normierung der Abtastwerte benutzt wird. Auf der Ebene
der Synthese wird dann eine Paritätskontrolle der C's
durchgeführt, und jedes ungültige C wird verworfen und durch ein
rekonstruiertes C, das aus den den Nachbarblöcken zugewiesenen C's
durch Interpolations-/Extrapolations-Operationen abgeleitet
wird, ersetzt.
-
Die vorhergehenden und andere Aufgaben, Merkmale und Vorteile
der Erfindung werden im folgenden anhand der ins einzelne
gehenden Beschreibung einer bevorzugten, in den beigefügten
Zeichnungen veranschaulichten Ausführungsform verdeutlicht.
Kurzbeschreibung der Zeichnungen
-
Fig. 1 ist ein Blockdiagramm eines bekannten BCPCM-Codierers/-
Senders.
-
Fig. 2 ist ein Flußdiagramm für einen der Blöcke aus Fig. 1.
-
Fig. 3 ist ein Blockdiagramm eines
BCPCM-Decodierers/Empfängers.
-
Fig. 4 ist ein Blockdiagramm des Codierers aus Fig. 1, aber
unter Einschluß der Erfindung.
-
Fig. 5 ist ein Flußdiagramin zur Implementierung der Erfindung.
-
Fig. 6 ist ein Blockdiagramin des Decodierers aus Fig. 2 unter
Einschluß der Erfindung.
-
Fig. 7 ist ein Flußdiagramm zur Implementierung der Erfindung.
-
Fig. 1 stellt das Blockdiagramm eines bekannten BCPCM-Codierers
dar. Das Eingangssignal wird mit der Nyquist-Frequenz abgetastet
und mit 12 Bits pro Abtastwert PCM-codiert, so daß eine
Aufeinanderfolge von Abtastwerten S(n) bereitgestellt wird, wobei
n = 1, 2, 3 . . . die Stellung innerhalb der Aufeinanderfolge der
Abtastwerte angibt. S(n) wird dann einem BCPCM-Quantisierer (2)
zugeführt, um in diesem quantisiert zu werden. Die
Quantisierer-Parameter werden pro Block von N Abtastwerten aktualisiert,
wobei N ein vorherbestimmter ganzzahliger Wert ist, der die
Blocklänge definiert.
-
Für jeden Block von N Abtastwerten sortiert eine
Spitzenwertauswahlvorrichtung (4) die N Abtastwerte eines jeden Blockes, um
einen sogenannten Block-kennzeichnenden Term "C" gemäß:
-
C = Max ( S(n) )
-
n = 1, N (2)
-
zu bestimmen.
-
Mit anderen Worten, der Block-kennzeichnende Term wird so
ausgewählt, daß er dem betragsmäßig größten Abtastwert in dem
betrachteten Block entspricht.
-
Der Block-kennzeichnende Term C wird dann normalerweise mit 5
Bit in einem ZEICHENCODIERER 6 digital codiert, und dieser
stellt dann einen digitalen Term C' bereit. Die
5-Bit-Umcodierung des 12-Bit-codierten Block-kennzeichnenden Terms C besteht
darin, aus 32 Quantisierpegeln eine obere Grenze C' aufzufinden
und kann entweder durch eine direkte oder durch eine
eliminierende
Suche implementiert werden. Der direkte Suchalgorithmus
wird im folgenden beschrieben:
-
es wird eine logarithmisch kommandierte Tabelle CTABQL
verwendet. Die Entscheidungspegel werden folgendermaßen festgesetzt:
TABELLE (CTABQL)
-
Die 12- zu 5-Bit-Codierung wird mittels Absuchen der obigen
Tabelle unter Verwendung des in Fig. 2 dargestellten Algorithmus
durchgeführt. Mit anderen Worten der 12-Bit codierte Betrag von
C (Dezimalwert zwischen 0 und 2.047) wird in einen 5-Bit
codierten Tabellenplatz umgewandelt.
-
Angenommen es sei zum Beispiel C = 8 der Dezimalwert des 12-Bit
codierten C, d. h. "000000001000". Ein variabler Parameter K wird
auf Null gesetzt. Da Null < 31, wird C' auf Null gesetzt
(C' = 0) und durch Lesen des Inhaltes des ersten Tabellenplatzes
geprüft. Dieser Inhalt ist gleich eins. Die Überprüfung
(8 ≤ 1 ?) liefert dann ein negatives Ergebnis und K wird auf 1
gesetzt. Ist 1 > 31 ? Nein, daher C' = 1 und die erneute
Überprüfung (8 ≤ 2 ?) liefert wieder ein negatives Ergebnis. So geht
es weiter, bis C' = 5 erreicht ist, da der nächste TABELLEN-
platzinhalt 10 > 8 ist. Der Wert C' ist damit mit 5 Bit codiert
zu "00101".
-
Die Decodierung des Blockkennzeichens besteht aus der Ableitung
eines rekonstruierten Wertes C'' aus den 5 übertragenen Bits C'.
-
Dies kann effizient durch Nachschlagen in einer Tabelle
realisiert werden:
-
C'' = CTABQL (1+ C') (1)
-
Die codierten Terme C' werden einem Multiplexer (8) zugeführt,
um über einen Übertragungskanal zu einem Empfänger übertragen zu
werden.
-
Das Folgende bezieht sich auf Übertragungsanwendungen, jedoch
können Speicherungs- oder irgendwelche anderen Anwendungen
ebenso gut in Betracht gezogen werden. Wie bereits erwähnt, werden
die Block-kennzeichnenden Terme C zur Normierung der Abtastwerte
verwendet, oder, mit anderen Worten, um die BCPCM Quantisierer-
Schrittweite einzustellen. Um das Quantisierungsrauschen
aufgrund der Quantisierer-Schrittweiteneinstellung zu minimieren,
wird das codierte C' zu C'' in (10) decodiert, bevor es zur
Einstellung der BCPCM Quantisierer-Schrittweite Q benutzt wird
gemäß:
-
Q = C'' / 2 exp (n'-1) (3)
-
wobei n' die Anzahl der dem Quantisierer zur Quantisierung jedes
Signalabtastwertes zugeordneten Bits ist.
-
Jeder Blockabtastwert S(n) wird dann in einen Digitalwert S'(n)
quantisiert, gemäß:
-
S'(n) = < S(n) / Q > (4)
-
wobei (x) die Abrundung auf den nächsten ganzzahligen Wert von
X bezeichnet, und n = 1, 2, . . ., N.
-
Es soll an dieser Stelle bemerkt werden, daß die
Quantisierungsschrittweite für den laufenden Block von Abtastwerten ebenso gut
unter Verwendung eines Terms C eingestellt werden könnte, der
aus dem vorhergehenden Block abgeleitet und um einen Block
verzögert
wird, um dadurch den Beginn der Quantisierungsoperationen
beim laufenden Block der Abtastwerte ohne Verzögerung zu
ermöglichen.
-
Die digitalen Werte S' (n) werden dann in dem Multiplexer (8) mit
dem codierten C' gemultiplext und in einem gemeinsamen
Datenstrom über den Übertragungskanal zum Empfänger von Fig. 3
übertragen.
-
Der Empfänger umfaßt eine Demultiplexeinrichtung 12, in der die
mit 5 Bits codierten Kennzeichen C' und die quantisierten
Abtastwerte S'(n) voneinander getrennt werden. Die C' werden in
(14) in die Terme C'' decodiert, die dazu verwendet werden, die
Schrittweite Q eines inversen Quantisierers (16) gemäß dem
obengenannten Ausdruck (3) einzustellen. Die Umwandlung von C' zu C''
wird durch einfaches Lesen des Inhalts der Stelle (1 + C') der
oben dargestellten Tabelle bewerkstelligt. Dann werden die
Abtastwerte S''(n) wieder rekonstruiert, gemäß:
-
S''(n) = Q * (S'(n) + 0,5) (5)
-
für n = 1, . . . , N.
-
Die BCPCM-Codierungstechnik hat sich als gut geeignet für die
Übertragung von Sprache über verrauschte digitale Kanäle
erwiesen, jedoch ist offensichtlich die wichtigste vor dem Rauschen
zu schützende Einheit der Parameter C, da dieser zum Einstellen
der Quantisiererschrittweite verwendet wird, und daher, wenn er
in seiner Integrität beeinträchtigt ist, die Genauigkeit eines
gesamten Blocks von Abtastwerten leidet.
-
Das im folgenden vorgeschlagene Verfahren erhöht die
Widerstandsfähigkeit von BCPCM durch die Verbesserung der
Widerstandsfähigkeit der Parameter C gegen Rauschen, ohne dem zu
übertragenden Rahmen redundante Bits hinzuzufügen.
-
In Fig. 4 ist ein Blockdiagramm eines BCPCM Codierers wie in
Fig.
1 unter Einschluß der Erfindung dargestellt. Der Empfänger
umfaßt eine zusätzliche Vorrichtung, nämlich einen
Paritätscodierer 7, der das codierte C' in einen Term C''' umwandelt,
bevor es in den Wert C'' decodiert wird, der dazu verwendet wird,
die Quantisiererschrittweite Q einzustellen.
-
Die Umwandlung von C' in C''' wird dadurch erreicht, daß C' eine
vorherbestimmte feste Parität aufgezwungen wird. Zuerst wird die
Parität des codierten Kennzeichens C' errechnet. Wenn die
Parität nicht die ungerade Parität ist, was als vorherbestimmte
feste Parität für diese Realisierung ausgewählt wurde, dann wird
C' erhöht, bis man eine ungerade Parität erhält. Was diese
Erfindung gerade so besonders attraktiv macht, ist die Tatsache,
daß die Mittel zu ihrer Realisierung recht einfach und daher
kostengünstig sind. Das Flußdiagramm, um die Vorrichtung 7 von
Fig. 4 zu betreiben, ist in Fig. 5 veranschaulicht. Die
Parität des mit 5 Bits codierten C' kann einfach überprüft werden.
Wenn C' ungerade ist, dann ist C''' = C', andernfalls
C' = C' + 1. Der Ausgabewert C''' ist also ein mit 5 Bits
codierter ungerader Datenwert, der in die
Kennzeichen-Decodiervorrichtung 10 eingespeist wird. Er könnte auch, entweder im
Multiplexer 8 als solcher gemultiplext werden, oder er könnte vor
dem Multiplexen durch Zuteilen eines 3-Bit-CRC-Wortes in einer
Fehlerkorrekur-Vorrichtung 11 (FEC) selbst geschützt werden. In
der Praxis wird der CRC-Term eher einer Gruppe von Termen C
zugeteilt werden.
-
Die Einfügung des Paritätscodierers am Eingang des
Kennzeichendecodierers 10 ermöglicht es, das Vorkommen von
Paritätserzwingungen beim kennzeichnenden Term über den
Abtastwert-Quantisierungsprozeß zu minimieren.
-
In Fig. 6 ist ein Blockdiagramm des Empfängers, der mit der
Erfindung verwendet wird, dargestellt. Er ist aus dem Empfänger in
Fig. 3 abgeleitet, und einander entsprechende Vorrichtungen
sind mit den gleichen Bezugszeichen versehen. Der
Empfangsdatenstrom wird in Vorrichtung 12 demultiplext, um die Abtastwerte
S'(n) von den Kennzeichen C''' mit erzwungener Parität zu
trennen. Sollte ein CRC-Wort einem C''' zugeordnet worden sein, dann
wird, vor Erhalten der erzwungenen Parität, eine konventionelle
Fehlerkontrolle- und -korrektur in einer konventionellen
Fehlerkontroll- und -korrekturvorrichtung ECC 17 durchgeführt. Die
C''' werden in Vorrichtung 18 auf die Parität hin überprüft.
Wenn die Parität nicht ungerade ist, dann wird der betroffene
kennzeichnende Term einfach als ungültig erachtet und verworfen.
Die Erzeugung eines rekonstruierten kennzeichnenden Terms
beginnt. Zu diesem Zweck sind die vorher empfangenen gültigen,
kennzeichnenden Terme innerhalb einer Rekonstruktionsvorrichtung
20 für C, die zur Rekonstruktion eines gültigen kennzeichnenden
Terms dient, in einer Verzögerungsleitung gespeichert. Das
Flußdiagramm für den entsprechenden Algorithmus ist in Fig. 7
veranschaulicht. Angenommen, der Zeitindex des BCPCM Blocks sei k,
dann:
-
wenn CK''' ungerade ist, dann gilt Ck' = Ck''',
-
wenn Ck''' gerade ist, dann wird interpoliert oder
extrapoliert.
-
Das Flußdiagramm wurde für die einfachste Extrapolation (d. h.
die Extrapolation erster Ordnung), wenn Ck' = C'k-1 erstellt. In
diesem Fall wird die Rekonstruktionsvorrichtung 20 für C mit
Hilfe einer einen Block langen Verzögerungseinrichtung
realisiert.
-
Eine Extrapolation höherer Ordnung kann ebenfalls erreicht
werden. Für eine Extrapolation zweiter Ordnung sollte die
Verzögerungsleitung zwei Blöcke lang sein (d. h. C'k-2 und C'k-1). In diesem
Fall würde dann das betrachtete C'k wie folgt rekonstruiert
werden:
-
C'k = 2 C'k-1-C'k-2 (6)
-
Komplexere Extrapolationsregeln oder sogar Interpolation könnten
ebenso in Erwägung gezogen werden. Für die Interpolation ergibt
sich
-
C'k = 1/2 (C'k-1 + C'k+1) (7)
-
Dies bedeutet eine Ein-Block-Verzögerung im Empfänger (siehe
Verzögerungsvorrichtung 15 in Fig. 6).
-
Das Verfahren dieser Erfindung zieht also Nutzen aus der
Fähigkeit des Quantisierers, Abweichungen in den individuellen
kennzeichnenden Termen zu kompensieren. Es könnte in einfacher Weise
zu einer Sub-Band-Codierung erweitert werden, wobei das zu
quantisierende Signal in eine vorherbestimmte Anzahl (p) von
Frequenz-Sub-Bändern aufgeteilt wird. Wenn jedem Sub-Band ein
Quantisierer zugeteilt wird, kann eine direkte Ausweitung der oben
beschriebenen Erfindung auf alle Sub-Band-Quantisierer
durchgeführt werden. In diesem Fall würde, global betrachtet, der
zusätzliche CRC-Schutz auf die p-Kennzeichen angewandt werden.
Ferner könnte die Erfindung auf Pulsanregungsverfahren
angewendet werden, wobei aufeinanderfolgende Segmente von Signalen
jeweils durch eine Reihe von Abtastwerten mit regulärem (RPE) oder
nicht regulärem (MPE) Abstand dargestellt werden.
-
Es wird angemerkt, daß das hier beschriebene Schutzschema
zusätzlich zu einem ausgeklügelteren Fehler-Korrektur-Code
verwendet werden kann, da die codierten Daten selbst in einem Codewort
eingeschlossen sein können. Während zum Beispiel das
vorgestellte Verfahren hauptsächlich für die Ermittlung von zufälligen
Fehlern wertvoll ist, könnte der zusätzliche Fehler-Korrektur-
Code zur Korrektur von Burst-Fehlern geeignet sein, was zu einem
Schutzschema hoher Leistungsfähigkeit führt.
-
Obwohl die Beschreibung der bevorzugten Ausführungsform auf
einen BCPCM-Codierer bezogen war, kann das vorgestellte Verfahren
auch zum Schutz codierter Parameter unter Verwendung eines dem
BCPCM ähnlichen Schemas angewandt werden.