[go: up one dir, main page]

DE69328583T2 - Verfahren und Vorrichtung zur Signalkompression mit zwei Komponenten - Google Patents

Verfahren und Vorrichtung zur Signalkompression mit zwei Komponenten

Info

Publication number
DE69328583T2
DE69328583T2 DE69328583T DE69328583T DE69328583T2 DE 69328583 T2 DE69328583 T2 DE 69328583T2 DE 69328583 T DE69328583 T DE 69328583T DE 69328583 T DE69328583 T DE 69328583T DE 69328583 T2 DE69328583 T2 DE 69328583T2
Authority
DE
Germany
Prior art keywords
signals
audio signal
signal
variable length
register
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
DE69328583T
Other languages
English (en)
Other versions
DE69328583D1 (de
Inventor
James David Johnston
James Alexander Reeds Iii
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.)
AT&T Corp
Original Assignee
AT&T Corp
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 AT&T Corp filed Critical AT&T Corp
Publication of DE69328583D1 publication Critical patent/DE69328583D1/de
Application granted granted Critical
Publication of DE69328583T2 publication Critical patent/DE69328583T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General 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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Die vorliegende Erfindung betrifft Vorrichtungen und Verfahren zum Komprimieren eines unbegrenzten Eingangssignals und Erzeugen einer Menge von Ausgangssignalen auf der Grundlage einer Menge von Eingangssignalen.
  • Es gibt viele Verfahren für die verlustlose Komprimierung diskreter Signale. Zum Beispiel ist das Huffman-Komprimierungsverfahren mit minimaler Redundanz nützlich, wenn die Menge verschiedener möglicher Eingangssignale klein genug ist, damit ein zweckmäßiges "Codebuch" verwendet werden kann, und die statistische Verteilung der Eingangssignale im voraus bekannt ist. D. A. Huffman, "A Method for the Construction of Minimum Redundancy Codes", Proc. IRE, 40: 1098-1101 (1952), und T. M. Cover und J. A. Thomas, Elements of Information Theory, Seiten 92-101 (1991). Huffman lehrt jedoch kein Verfahren zur Komprimierung in Situationen, wenn das Codebuch (aufgrund der großen. Anzahl möglicher Eingangssignale) unhandlich groß wird, oder wenn die statistische Verteilung der Eingangssignale nicht im voraus bekannt ist (das Codebuch kann dann nicht so zusammengestellt werden, daß eine effiziente Codierung bereitgestellt wird).
  • Ein anderes Verfahren, das von Lempel und Ziv gelehrt wird, erfordert nicht, daß die statistische Verteilung der Eingangssignale im voraus bekannt ist, erfordert jedoch mehr Rechenaufwand und Speicher als für bestimmte Anwendungen wünschenswert ist. J. Ziv und A. Lempel, "A Universal Algorithm for Sequential Data Compression", IEEE Trans. Info. Theory, IT-23, 337-343 (1977).
  • Durch noch ein anderes Verfahren, das von Bentley und Yao und auch von Elias gelehrt wird, wird das Komprimieren von Signalen mit beliebigem Betrag bereitgestellt, indem komprimierte Signale gebildet werden, die einen Kopfteil mit variabler Länge und ein Nutzsignal mit variabler Länge umfassen. Der Kopfteil ist eindeutig decodierbar und stellt die Länge des Nutzsignals dar. Das Nutzsignal stellt das unkomprimierte Signal dar. J. L. Bentley und A. C. Yao, "An Almost Optimal Algorithm for Unbounded Searching", Info. Proc. Letters, Band 5, Nr. 3, 82-87 (Aug. 1976); J. L. Bentley et al., U. S. Patent 4,796,003, erteilt am 3. Jan. 1989; P. Elias, "Universal Codeword Sets and Representations of the Integers", IEEE Trans. Info. Theory, Band IT-21, Nr. 2 194-203 (März 1975).
  • Aus US-A-4813056 ist das Huffman-Codieren mit einem einzigen "Schlüssel"-Codewort bekannt, das als ein vorangestelltes Codewortsegment für eine relativ große Teilgruppe der Menge zugewiesen wird. Dem Schlüssel- Codewort folgt ein eindeutiges nachgestelltes Codewortsegment zur Identifizierung jedes Elements der Teilgruppe (eine Lauflänge von 36-239 Nullen). Die nachgestelle Erweiterung stellt die binär codierte Zahl dar, die der Anzahl von 0-Bit in der Lauflänge entspricht. Somit hat das nachgestellte Codewortsegment eine feste Länge. Die Teilgruppe ist auf 0-Bit- Lauflängen beschränkt.
  • Aus US-A-3717851 ist ein Datenkompaktierungssystem bekannt, das einen ersten Codierungsprozeß mit variabler Länge und einen zweiten Codierungsprozeß enthält, die zusammen die mittlere Länge der Codes variabler Länge verringern, die sich aus der Codierung von Codes fester Länge einer gegebenen Größe ergeben. Der zweite Codierungsprozeß verwendet jedoch einen Kennungs-"COPY"-Code fester Länge, dem der ursprüngliche Code fester Länge folgt. Deshalb besitzen die durch den zweiten Codierungsprozeß codierten Daten eine feste Länge, die größer als die ursprünglichen Codes fester Länge der gegebenen Größe ist. Somit wird ein Codierungsschema mit variabler Länge zur Codierung der häufiger auftretenden Wörter in einem Wörterbuch und ein Code mit fester Länge für die übrigen, weniger häufig auftretenden Wörter beschrieben, mit einem vorangestellten COPY, das für das konkrete verblei bende, weniger häufig auftretende Wort zu dem ursprünglichen Code fester Länge hinzugefügt wird.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird eine Vorrichtung nach Anspruch 1 bereitgestellt.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren nach Anspruch 6 bereitgestellt.
  • Durch die vorliegende Erfindung werden ein Verfahren und eine Vorrichtung zur Komprimierung von Signalen bereitgestellt, wobei viele der Kosten und Beschränkungen, die mit Verfahren des Standes der Technik verbunden sind, vermieden werden. Die erfindungsgemäß ausgeführte Komprimierung macht unzweckmäßig große Codebücher überflüssig.
  • Bei einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Komprimiermechanismus in Verbindung mit einem zweiten Komprimiermechanismus so verwendet, daß der zweite Komprimiermechanismus ein Signal erzeugt, das zwei Komponenten umfaßt. Die erste Komponente stellt ihre eigene Länge, die Länge der zweiten Komponente und teilweise das komprimierte Signal dar, und die zweite Komponente stellt teilweise das komprimierte Signal dar.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 zeigt ein beispielhaftes Audio-Kommunikations-/Speichersystem, das die vorliegende Erfindung realisiert;
  • Fig. 2 zeigt einen beispielhaften Entropiecodierer; und
  • Fig. 3 zeigt einen beispielhaften Entropiedecodierer.
  • Ausführliche Beschreibung 1. Übersicht
  • Fig. 1 der vorliegenden Anmeldung zeigt die Gesamtorganisation eines Systems, in das die vorliegende Erfindung integriert ist. In dieser Figur wird ein analoges Audiosignal einem Vorprozessor 102 zugeführt und dort (in der Regel mit 48 kHz) abgetastet und in ein quantisiertes Audiosignal (mit in der Regel 216 diskreten Beträgen) auf standardmäßige Weise umgesetzt. Durchschnittsfachleuten auf dem Gebiet der Datenkomprimierung wird klar sein, wie das Ausführungsbeispiel der vorliegenden Erfindung modifiziert werden kann, um Video- oder andere Arten von analogen oder digitalen Signalen zu verarbeiten.
  • Das quantisierte Audiosignal wird einem Entropiecodierer 104 zugeführt. Der Entropiecodierer 104 codiert das quantisierte Audiosignal, erzeugt ein komprimiertes Audiosignal, das das quantisierte Audiosignal darstellt, und gibt das komprimierte Audiosignal an ein Kommunikations-Kanal-/Speichermedium 106 aus. Aus dem Kommunikations-Kanal-/Speichermedium 106 wird das komprimierte Audiosignal einem Entropiedecodierer 108 zugeführt. Der Entropiedecodierer 108 decodiert das komprimierte Audiosignal, erzeugt ein rekonstruiertes Audiosignal, das das komprimierte Audiosignal darstellt, und gibt das rekonstruierte Audiosignal an den Nachprozessor 110 aus. Der Nachprozessor 110 erzeugt ein rekonstruiertes Analogsignal, das das rekonstruierte Audiosignal darstellt, und gibt das rekonstruierte Audiosignal aus.
  • Der Klarheit halber codieren und decodieren die Ausführungsbeispiele ein quantisiertes Audiosignale pro komprimiertem Audiosignal. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie Paare, Triple usw. quantisierter Audiosignale zu einem einzigen komprimierten Audiosignal codiert werden können.
  • 2. Der Entropiecodierer
  • Der Entropiecodierer 104 gibt vorteilhafterweise ein Ausgangssignal "quantisiertes Audiosignal" aus dem Vorprozessor 102 ein, führt eine "verlustlose" Codierung des quantisierten Audiosignals durch und gibt ein "komprimiertes Audiosignal" an das Kommunikations-Kanal-/Speichermedium 106 aus. Der Entropiecodierer 104 codiert jedes quantisierte Audiosignal so, daß das quantisierte Audiosignal über einen Kanal mit schmälerer Bandbreite übertragen oder in weniger Speicher gespeichert werden kann, als andernfalls möglich wäre.
  • Der Klarheit der Erläuterung halber werden die Ausführungsbeispiele der vorliegenden Erfindung als elektronische digitale Schaltungen umfassend dargestellt, die Transistor-Transistor-Logik ("TTL") umfassen. Die durch diese Schaltungen bereitgestellten Funktionen können entweder durch gemeinsam benutzte oder eigene Hardware bereitgestellt werden, darunter u. a. Hardware, die in der Lage ist, Software auszuführen. Ausführungsbeispiele können Hardware zur digitalen Signalverarbeitung (DSP), wie zum Beispiel den DSP16 von AT&T oder den DSP32C, und die nachfolgend besprochenen Operationen ausführende Software umfassen. Hardwareausführungsformen mit Höchstintegration (VLSI) der vorliegenden Erfindung, sowie hybride DSP/VLSI- Ausführungsformen, können ebenfalls hergestellt werden.
  • Der beispielhafte Entropiecodierer 104 umfaßt vorteilhafterweise eine Variante des Huffman- Codierungsverfahrens in Verbindung mit einem eindeutig decodierbaren Code zur Codierung jedes quantisierten Audiosignals. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie Ausführungsformen der vorliegenden Erfindung hergestellt werden können, die andere Datenkomprimierungsverfahren, wie zum Beispiel Lempel-Ziv, verwenden.
  • Obwohl es vom Standpunkt der Signalverarbeitung wünschenswert ist, jedes quantisierte Audiosignal unter Verwendung des Verfahrens von Huffman zu codieren, wenn jedes quantisierte Audiosignal einen großen Umfang potentieller Werte aufweist und wenn die Wahrscheinlichkeitsverteilung jedes quantisierten Audiosignals stark ungleichförmig ist, erfordert das Verfahren von Huffman ein Codebuch mit mehr Einträgen, als möglicherweise für bestimmte Anwendungen wünschenswert ist. Tabelle 1 zeigt eine beispielhafte Wahrscheinlichkeitsverteilung eines quantisierten Audiosignals, wobei das quantisierte Audiosignal einen Umfang von -2¹&sup0; bis ausschließlich +2¹&sup0; aufweist. Tabelle 1 - Wahrscheinlichkeitsverteilung für quantisiertes Audiosignal
  • Die Wahrscheinlichkeitsverteilung zeigt an, daß das quantisierte Audiosignal zwar einen Umfang von -2¹&sup0; bis ausschließlich +2¹&sup0; aufweist, das quantisierte Audiosignal jedoch meist - zwischen -15 und +15 auftritt. Durchschnittsfachleuten wird klar sein, wie Ausführungsformen der Erfindung hergestellt werden können, die andere Umfangsbereiche, andere Wahrscheinlichkeitsverteilungen und/oder Wahrscheinlichkeitsverteilungen, die nicht um Null symmetrisch sind, aufweisen. Aus dieser Wahrscheinlichkeitsverteilung kann unter Verwendung des Verfahrens von Huffman eine Menge von "Huffman-Codesignalen" variabler Länge erzeugt werden, die effizient einen Teil der quantisierten Audiosignale darstellen. Spalte 3 von Tabelle 1 zeigt eine beispielhafte Menge von Huffman-Codesignalen, die jedem quantisierten Audiosignal entsprechen.
  • Man beachte, daß gemäß dem Ausführungsbeispiel das komprimierte Audio-Ausgangssignal aus dem Entropiecodierer 104 eines der 33 "definitiven Huffman- Codesignalen" umfassen kann, die eindeutig einem der 33 quantisierten Audiosignale von -15 bis einschließlich +15 entsprechen. Als Alternative und ebenfalls gemäß dem Ausführungsbeispiel der vorliegenden Erfindung kann das komprimierte Audiosignal eines von zwei "indefiniten Huffman-Codesignalen" und ein "Hilfs-Codesignal" umfassen, die zusammen ein quantisiertes Audiosignal eindeutig darstellen. Man beachte, daß es vorteilhafterweise nur ein indefinites Huffman- Codesignal ("11100") gibt, das allen (2¹&sup0;-15) quantisierten Audiosignalen oberhalb von +15 entspricht, und nur ein indefinites Huffman-Codesignal ("101100100"), das allen (2¹&sup0;-14) quantisierten Audiosignale unterhalb von -15 entspricht.
  • Wie in Fig. 2 gezeigt, umfaßt ein beispielhafter Entropiecodierer 104 vorteilhafterweise sequentielle und kombinatorische digitale Schaltungen. Alle sequentiellen Schaltungen in dem Entropiecodierer 104 werden synchron mit der positiven Flanke des Taktsignals getaktet, das durch den Taktgenerator 206 erzeugt wird.
  • Wenn der Entropiecodierer 104 bereit ist, ein quantisiertes Audiosignal aus dem Vorprozessor 102 anzunehmen, setzt der Steuerungs-Sequenzer 219 ACK 251. Der Steuerungs-Sequenzer 219 umfaßt als Beispiel kombinatorische Digitalschaltungen und sequentielle Schaltungen. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Steuerungs- Sequenzer 219 hergestellt werden kann.
  • Wenn der Vorprozessor 102 ein quantisiertes Audiosignal zu dem Entropiecodierer 104 übertragen möchte und ACK 251 gegenwärtig gesetzt ist, legt der Vorprozessor 102 ein mit 11-Bit-Zweierkomplement quantisiertes Audiosignal an das Register 201 für das quantisierte Audiosignal an und setzt REQ 250. Das Register 201 für das quantisierte Audiosignal ist vorteilhafterweise ein Register mit paralleler Eingabe und paralleler Ausgabe (z. B. zwei ICs SN74199), mit einem Speicher, der ausreicht, um alle 11 Binärsignale des quantisierten Audiosignals zu halten.
  • Wenn der Steuerungs-Sequenzer 219 bereit ist, mit der Verarbeitung des quantisierten Audiosignals zu beginnen, aktiviert der Steuerungs-Sequenzer 219 synchron das Register 201 für das quantisierte Audiosignal, um das quantisierte Audiosignal zu laden, und nimmt ACK 251 zurück, um dem Vorprozessor 102 anzuzeigen, daß der Entropiecodierer 104 das quantisierte Audiosignal zur Verarbeitung angenommen hat. Der Vorprozessor 102 erkennt die Messung des Zurücknehmens von ACK 251 und nimmt REQ 250 zurück.
  • Das quantisierte Audiosignal 260 aus dem Register 201 für das quantisierte Audiosignal wird dem Adreßport des Huffman-Codespeichers 207 zugeführt, und dort wird das entsprechende Ausgangssignal (d. h. das Huffman-Codesignal 261) unter der Anleitung des Steuerungs-Sequenzers 219 in das Register 217 geladen. Der Huffman-Codespeicher 207 ist als Beispiel ein 2048- Wort-mal-9-Bit-Direktzugriffsspeicher ("RAM") oder ROM. Der Inhalt des Huffman-Codespeichers 207 ist in Tabelle 2 gezeigt. Tabelle 2 - Inhalt des Huffman-Codespeichers (Codierer)
  • Wie in Tabelle 2 gezeigt, zeigt ein "X" in einer Adresse an, daß die Adresse sowohl für "X" gleich "0" als auch "1" gültig ist (z. B. eine Adresse 01 XXX XXX XXX bedeutet alle 29 Adressen zwischen 01 000 000 000 und 01 111 111 111). Das Huffman-Codesignal hat eine variable Länge, obwohl jede Speicherstelle in dem Huffman-Codespeicher 207 eine feste Länge aufweist. Damit das Huffman-Codesignal abgegrenzt und in der festen Wortbreite des Huffman-Codespeichers 207 definiert werden kann, stellt ein "Y" eine Speicher stellenzelle dar, die nicht Teil des Huffman- Codesignals ist.
  • Das Register 217 ist vorteilhafterweise ein Register mit parallelem Eingang und seriellem Ausgang (z. B. zwei ICs SN74166), mit einem Speicher, der ausreicht, um alle 9 Binärsignale des Huffman- Codesignals zu halten, die aus dem Huffman-Codespeicher 207 ausgegeben werden. Das Huffman-Codesignal wird so in das Register 217 geladen, daß die höchstwertigen Binärsignale des Huffman-Codesignals als erste seriell aus dem Register 217 herausgeschoben werden.
  • Da das Huffman-Codesignal eine variable Länge aufweist, umfaßt das Ausführungsbeispiel vorteilhafterweise einen Mechanismus, durch den der Steuerungs- Sequenzer 219 über die Länge des Huffman-Codesignals informiert wird, das dem verarbeiteten quantisierten Audiosignal entspricht. Wie in Fig. 2 gezeigt, wird das quantisierte Audiosignal aus dem Register 201 für das quantisierte Audiosignal dem Adreßport des Huffman- Codelängenspeichers 209 zugeführt, und dort wird das entsprechende Ausgangssignal, die "Huffman-Codelänge", durch den Steuerungs-Sequenzer 219 empfangen. Die Huffman-Codelänge zeigt die Länge des in dem Register 217 gehaltenen Huffman-Codesignals an und ermöglicht somit ein ordnungsgemäßes Durchschreiten des Huffman- Codesignals variabler Länge aus dem 9-Bit-Speicherwort mit fester Länge. Der Huffman-Codelängenspeicher 209 ist beispielsweise ein 2048-Wort-mal-4-Bit-Direktszugriffsspeicher ("RAM") oder ROM. Der Inhalt des Huffman-Codelängenspeichers 209 ist in Tabelle 3 gezeigt. Tabelle 3 - Inhalt des Huffman-Codelängenspeichers (Codierer)
  • Wie in Tabelle 2 gezeigt, zeigt ein "X" in einer Adresse an, daß die Adresse sowohl für "X" gleich "0" als auch "1" gültig ist (z. B. eine Adresse 01 XXX XXX XXX bedeutet alle 29 Adressen zwischen 01 000 000 000 und 01 111 111 111). Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Adresseninhalt in dezimaler Notation angenommen wird und in eine binäre Darstellung umgesetzt wird, die sich zum Empfang durch den Steuerungs-Sequenzer 219 eignet.
  • Da der Huffman-Codespeicher 207 sowohl indefinite als auch definitive Huffman-Codesignale hält, umfaßt das Ausführungsbeispiel vorteilhafterweise einen Mechanismus, durch den dem Steuerungs-Sequenzer 219 angezeigt wird, ob das Huffman-Codesignal, das dem gerade quantisierten Audiosignal entspricht, indefinit oder definitiv ist, und wenn es indefinit ist, erzeugt er ein entsprechendes Hilfs-Codesignal. Da definitive Huffman-Codesignale für quantisierte Audiosignale zwischen -15 und einschließlich +15 existieren, umfaßt das Ausführungsbeispiel einen Gleichrichter 203 und einen Subtrahierer 205, die zusammen bestimmen, wann das quantisierte Audiosignal in diesem Bereich liegt. Der Gleichrichter 209 und der Substrahierer 205 erzielen diese Prüfung durch Auswertung von e: des Betrags des "verminderten Audiosignals", das unten beschrieben wird. Wie in Fig. 2 gezeigt, wird das quantisierte Audiosignal aus dem Register 201 für das quantisierte Audiosignal dem Gleichrichter 203 zugeführt, der die Zweierkomplementdarstellung des quantisierten Audiosignals in ein "gleichgerichtetes Audiosignal" mit 12 Bit 264 umsetzt, das gleich dem Absolutwert des quantisierten Audiosignals ist. Der Gleichrichter 203 umfaßt beispielsweise kombinatorische digitale Schaltungen (z. B. drei SN74188).
  • Das gleichgerichtete Audiosignal, das aus dem Gleichrichter 203 ausgegeben wird, wird dem Substrahierer 205 zugeführt, der das gleichgerichtete Audiosignal um sechzehn Quanten vermindert, um ein "vermindertes Audiosignal" zu bilden. Der Subtrahierer 205 verwendet sechzehn, weil dies gleich dem kleinsten quantisierten Audiosignalbeträg ist, der ein indefinites Huffman-Codesignal in dem Huffman- Codespeicher 207 aufweist.
  • Der Subtrahierer 205 sendet dem Steuerungs- Sequenzer 219 ein Signal, das anzeigt, ob das verminderte Audiosignal negativ oder nicht negativ ist. Wenn das verminderte Audiosignal negativ ist, bedeutet dies, daß das quantisierte Audiosignal vollständig und definitiv durch den Huffman-Codespeicher 207 codiert wurde. Wenn das verminderte quantisierte Audiosignal nicht negativ ist, bedeutet dies, daß das quantisierte Audiosignal nur teilweise durch den Huffman- Codespeicher 207 codiert wurde und daß das Register 217 ein "indefinites Huffman-Codesignal" enthält. Man beachte, daß indefinite Huffman-Codesignale das Vorzeichen (+/-) des entsprechenden quantisierten Audiosignals darstellen.
  • Das verminderte Audiosignal aus dem Subtrahierer 205 wird dem Adreßport des Hilfscodespeichers 211 zugeführt, und dort wird das entsprechende Ausgangssignal (d. h. das Hilfscodesignal) unter der Anleitung des Steuerungs-Sequenzers 219 in das Register 215 geladen. Der Hilfscodespeicher 211 ist beispielsweise ein 1024-Wort-mal-15-Bit- Direktzugriffsspeicher ("RAM") oder ROM, kann aber auch kombinatorische Logik umfassen. Der Inhalt des Hilfscodespeichers 211 ist in Tabelle 4 gezeigt. Tabelle 4 - Inhalt des Hilfscodespeichers (Codierer)
  • Wie in Tabelle 4 gezeigt, hat das Hilfscodesignal eine variable Länge, obwohl jede Speicherstelle in dem Hilfscodespeicher 211 eine feste Länge aufweist. Damit das Hilfscodesignal abgegrenzt und in der festen Wortbreite des Hilfscodespeichers 207 definiert werden kann, stellt ein "Y" in Tabelle 4 eine Speicherzellenstelle dar, die nicht Teil des Hilfscodesignals ist.
  • Das Hilfscodesignal umfaßt vorteilhafterweise einen "Kopfteil" 262 mit variabler Länge, der mit einem "Nachspann" 263 verkettet wird. Der Kopfteil in dem Hilfscodesignal dient zwei Zwecken. Erstens liefert der Kopfteil eine Anzeige, wieviele Binärsignale in dem Nachspannsignal vorliegen, und zweitens stellt der Kopfteil teilweise den Betrag des quantisierten Audiosignals dar. Der Kopfteil umfaßt vorteilhafterweise ein "0"-Signal, dem n "1"-Signale vorausgehen, wobei
  • n = [log&sub2;(e/16 + 1)],
  • e den Betrag des verminderten Audiosignals, log&sub2;(x) den zweierlogarithmus von x und [x] den ganzzahligen Teil von x bedeutet. TABELLE 5 zeigt eine Liste von Kopfteilen entsprechend Beträgen von e. Tabelle 5 - Längen von Kopfteil und Nachspann als Funktion des Betrags des verminderten Audiosignals (Codierer)
  • Der Nachspann in dem Hilfscodesignal basiert außerdem auf dem verminderten Audiosignal e. Ein Nachspann wird folgendermaßen codiert. Die ersten 16 verminderten Audiosignale 0, 1, 2, ... bis 15 werden jeweils mit dem Nachspann 0000, 0001, 0010 bzw. 1111 dargestellt. Die nächsten 32 verminderten Audiosignale 16, 17, ... bis 47 werden jeweils mit dem Nachspann 00000, 00001 bzw. 11111 dargestellt. Die nächsten 64 verminderten Audiosignale 48, 49, ... bis 111 werden jeweils mit dem Nachspann 000000, 000001 bzw. 111111 dargestellt usw.
  • Im allgemeinen werden die verminderten Audiosignale, wie in TABELLE 5 gezeigt, in aufeinanderfolgende Bereiche aufgeteilt, wobei der n-te Bereich 2n+4 mögliche Werte für n = 0, 1, 2, ... enthält, so daß der kleinste Wert im n-ten Bereich 16(2n-1) ist und der größte Wert in dem n-ten Bereich 16(2n+1-1)-1 ist.
  • Ein Nachspann in dem n-ten Bereich wird als ein Binärsignal mit n+4 Bit codiert, das die Position des verminderten Audiosignals in seinem Bereich darstellt. Das heißt, wenn das verminderte Audiosignal e im n-ten Bereich liegt, so daß
  • 16(2n-1) &le; e < 16(2(n+1) - 1),
  • dann befindet sich e in der e-16(2n-1)-ten Position (von 0 beginnend gezählt) in seinem Bereich, und der Nachspann mit n+4 Bit stellt e-16(2n-1) dar.
  • Wenn das verminderte Audiosignal z. B. e = 23 ist, liegt e in dem Bereich von 16 bis 47, so daß n = 1 ist und e die siebte Position in seinem Bereich einnimmt. Der Nachspann mit n+4 Bit, der 7 darstellt, ist 00111, und das Hilfscodesignal für e = 23 ist also die Verkettung von n 1en, einer 0 und der Nachspann mit n+4 Bit (d. h. 1000111).
  • Man kann das Darstellungsverfahren für das Hilfscodesignal folgendermaßen anders ausdrücken: für ein gegebenes vermindertes Audiosignal mit Betrag e sei n wie oben, und es sei m die Größe
  • 2(2n+5) - 2(n+5) + e - 2(n+4) + 16.
  • Das Hilfscodesignal, das dem verminderten Audiosignal mit Betrag e entspricht, ist die vorzeichenlose Positions-Binärdarstellung mit fester Basis von m, der gegebenenfalls 0 - Signale vorausgehen, um sicherzustellen, daß, das Hilfscodesignal mindestens 5 Binärsignale umfaßt.
  • Wenn zum Beispiel e = 23, n = 1 und m = 128 - 64 + 23 -32 + 16 = 71 ist, ist die vorzeichenlose Positions- Binärdarstellung mit fester Basis von 71(1000111) außerdem das Hilfscodesignal für e = 23.
  • Als ein zusätzliches Beispiel, wenn e = 5, n = 0 und m 32 - 32 + 5 - 16 + 16 = 5 ist, ist die vorzeichenlose Positions-Binärdarstellung mit fester Basis von 5 101. Da dies weniger als 5 Binärsignale aufweist, wird es mit zwei vorangehenden 0-en gestopft, um das Hilfscodesignal 00101 zu erzeugen.
  • Das Register 215 ist vorteilhafterweise ein Register mit parallelem Eingang und seriellem Ausgang (z. B. zwei ICs SN74166), mit ausreichend Speicher, um alle 15 Binärsignale des Hilfsaudiosignals zu halten, das aus dem Hilfscodespeicher 211 ausgegeben wird. Das Hilfsaudiosignal wird so in das Register 215 geladen, daß die höherwertigen Binärsignale des komprimierten Audiosignals als erste seriell herausgeschoben werden.
  • Da das Hilfscodesignal eine variable Länge aufweist, umfaßt das Ausführungsbeispiel vorteilhafterweise einen Mechanismus, durch den dem Steuerungs- Sequenzer 219 die Länge des Hilfscodesignals angezeigt wird, das dem gerade quantisierten Audiosignal entspricht. Wie in Fig. 2 gezeigt, wird das verminderte Audiosignal aus dem Substrahierer 205 dem Adreßport des Hilfslängenspeichers 213 zugeführt, und dort wird das entsprechende Ausgangssignal (das die Länge des in dem Register 215 gehaltenen Hilfscodesignals angibt) durch den Steuerungs-Sequenzer 219 empfangen. Der Hilfslängenspeicher 213 ist beispielsweise ein 1024-Wortmal-4-Bit-Direktszugriffsspeicher ("RAM") oder ROM. Der Inhalt des Hilfscodelängenspeichers 209 ist in Tabelle 6 gezeigt. Tabelle 6 - Inhalt des Hilfscodelängenspeichers (Codierer)
  • Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Adresseninhalt in dezimaler Notation in Tabelle 6 angenommen wird und in eine binäre Darstellung umgesetzt wird, die sich zum Empfang durch den Steuerungs-Sequenzer 219 eignet.
  • Wenn (1) das Huffman-Codesignal in das Register 217 geladen wurde, (2) das Hilfscodesignal in das Register 215 geladen wurde, (3) die Huffman-Codelänge durch den Steuerungs-Sequenzer 219 empfangen wurde, (4) das Signal negativ/nicht negativ aus dem Substrahierer 205 durch den Steuerungs-Sequenzer 219 empfangen wurde und (5) die Hilfscodelänge durch den Steuerungs- Sequenzer 219 empfangen wurde, dann beginnt der Steuerungs-Sequenzer 219 den Prozeß des Ausgebens des komprimierten Audiosignals.
  • Der Steuerungs-Sequenzer 219 führt gleichzeitig folgendes durch: (1) Er aktiviert das Register 217 zum seriellen Verschieben, weist den Multiplexer 221 an, das Eingangssignal aus dem Register 217 auszugeben, und (3) er aktiviert das Register 223 für das komprimierte Audiosignal zum seriellen Schieben. Der Multiplexer 221 ist vorteilhafterweise ein Zwei-Eins-Multiplexer, wie zum Beispiel ein SN74157. Das Register 223 für das komprimierte Audiosignal ist vorteilhafterweise ein 24- Bit-Schieberegister mit seriellem Eingang und seriellem Ausgang (z. B. drei 8-Bit-Schieberegister SN7491 mit seriellem Eingang und seriellem Ausgang), das durch den Taktgenerator 206 getaktet und durch den Steuerungs- Sequenzer 219 aktiviert wird. Das Ausgangssignal des Registers 223 für das komprimierte Audiosignal wird direkt dem Kommunikationskanal/Speichermedium 106 zugeführt.
  • Als nächstes schiebt der Steuerungs-Sequenzer 219 genauso viele Binärsignale des Huffman-Codesignals aus dem Register 217 und durch den Multiplexer 221 hindurch und in das Register 223 für das komprimierte Audiosignal, wie dem Steuerungs-Sequenzer 219 durch die Huffman-Codelänge angegeben werden. Wenn das negative/nicht negative Signal nicht negativ ist (was bedeutet, daß das Huffman-Codesignal, das gerade in das Register 223 für das komprimierte Audiosignal geschoben wurde, definitiv ist), ist das Hilfscodesignal im Register 215 nicht notwendig, und der Steuerungs- Sequenzer 219 hat die Codierung des des quantisierten Audiosignals abgeschlossen. Der Steuerungs-Sequenzer 219 beginnt den Prozeß des Codierens des nächsten quantisierten Audiosignals durch Sperren des Registers 223 für das komprimierte Audiosignal und durch Setzen von ACK 251.
  • Wenn das negative/nicht negative Signal negativ ist (was bedeutet, daß das Huffman-Codesignal, das gerade in das Register 223 für das komprimierte Audiosignal geschoben wurde, indefinit ist), muß das Hilfscodesignal im Register 215 an das indefinite Huffman-Codesignal in dem Register 223 für das komprimierte Audiosignal angehängt werden. In einem solchen Fall führt der Steuerungs-Sequenzer 219 gleichzeitig folgendes durch: (1) Er aktiviert das Hilfscoderegister 215 zum seriellen Schieben, weist den Multiplexer 221 an, das Eingangssignal aus dem Hilfscoderegister 215 auszugeben und (3) er aktiviert das Register 223 für das komprimierte Audiosignal zum seriellen Schieben.
  • Als nächstes schiebt der Steuerungs-Sequenzer 219 genauso viele Binärsignale des Hilfscodesignals aus dem Hilfscoderegister 215 und durch den Multiplexer 221 hindurch und in das Register 223 für das komprimierte Audiosignal, wie dem Steuerungs-Sequenzer 219 durch die Hilfscodelänge angegeben werden. Wenn dies abgeschlossen ist, ist die Codierung des quantisierten Audiosignals abgeschlossen, und der Steuerungs- Sequenzer beginnt den Prozeß des Codierens des nächsten quantisierten Audiosignals durch Sperren des Registers 223 für das komprimierte Audiosignal und durch Setzen von ACK 251.
  • Ein Beispiel: Wenn ein quantisiertes Audiosignal 11 ist, ist die Adresse für den Huffman- Codespeicher 207 und den Huffman-Codelängenspeicher 209 "00 000 001 011" (die 11-Bit-Zweierkomplementcodierung von +11). Das Huffman-Codesignal und die Huffman- Codelänge, die der obigen Adresse entsprechen, sind "100 11" bzw. "5". Das gleichgerichtete Audiosignal (d. h. das Ausgangssignal des Gleichrichters 203) ist +11, das verminderte Audiosignal (d. h. das Ausgangssignal des Subtrahierers 205) ist -4 und das Signal negativ/nicht negativ zeigt ein negatives vermindertes Audiosignal an. Wenn das verminderte Audiosignal negativ ist, sind das Ausgangssignal des Hilfscodespeichers 211 und des Hilfscodelängenspeichers 213 undefiniert und werden nicht für die Codierung des quantisierten Audiosignals benötigt. Das komprimierte Audiosignal, das dem quantisierten Audiosignal entspricht, 11, ist das definitive Huffman-Codesignal "100 11".
  • Ein weiteres Beispiel: Wenn ein quantisiertes Audiosignal -33 ist, ist die Adresse für den Huffman- Codespeicher 207 und den Huffman-Codelängenspeicher 209 "11 111 011 111" (die 11-Bit-Zweierkomplementcodierung von -33). Das Huffman-Codesignal und die Huffman- Codelänge, die dieser Adresse entsprechen, sind (aus Tabelle 2) "101 100 100" bzw. "9". Das gleichgerichtete Audiosignal (d. h. das Ausgangssignal des Gleichrichters 203) ist +33, das verminderte Audiosignal (d. h. das Ausgangssignal des Subtrahierers 205) ist +17 und das Signal negativ/nicht negativ zeigt ein nicht negatives vermindertes Audiosignal an. Die Adresse für den Hilfscodespeicher 211 und den Hilfscodelängenspeicher 213 ist eine vorzeichenlose binäre Darstellung von +17. Das Hilfscodesignal ist (aus TABELLE 4) "1 000 001" bzw. die Hilfscodelänge ist (aus TABELLE 5) "7". Wenn das verminderte Audiosignal nicht negativ ist, ist das das komprimierte Audiosignal die Verkettung des indefiniten Huffman-Codesignals und des Hilfscodesignals (in diesem Beispiel 101 100 100 100 000 1).
  • 3. Ein Entropiedecodierer
  • Der Entropiedecodierer 108 gibt vorteilhafterweise ein Ausgangssignal "komprimiertes Audiosignal" aus dem Kommunikationskanal/Speichermedium 106 ein, decodiert das komprimierte Audiosignal und gibt ein "rekonstruiertes Audiosignal" an den Nachprozessor 110 aus.
  • Der Klarheit der Erläuterung halber werden die Ausführungsbeispiele als elektronische digitale Schaltungen umfassend dargestellt, die Transistor- Transistor-Logik ("TTL") umfassen. Die durch diese Schaltungen bereitgestellten Funktionen können entweder durch gemeinsam benutzte oder eigene Hardware bereitgestellt werden, darunter u. a. Hardware, die in der Lage ist, Software auszuführen. Ausführungsbeispiele können Hardware zur digitalen Signalverarbeitung (DSP), wie zum Beispiel den DSP16 von AT&T oder den DSP32C und die nachfolgend besprochenen Operationen ausführende Software umfassen. Hardwareausführungsformen mit Höchstintegration (VLSI), sowie hybride DSP/VLSI-Ausführungsformen können ebenfalls hergestellt werden.
  • Der beispielhafte Entropiedecodierer 108 führt vorteilhafterweise genau die umgekehrte Funktion des Entropiecodierers 104 durch. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie Entropiedecodierer hergestellt werden können, die die umgekehrte Funktion der Ausführungsformen der vorliegenden Erfindung durchführen, die Signale codieren.
  • Man beachte, daß das komprimierte Audiosignal, das aus dem Entropiecodierer 104 ausgegeben wird, eines der 33 "definitiven Huffman-Codesignale" umfassen kann, das eindeutig einem der 33 quantisierten Audiosignale von +15 bis einschließlich -15 entspricht. Als Alternative kann das komprimierte Audiosignal eines von zwei "indefiniten Huffman-Codesignalen" und ein "Hilfscodesignal" umfassen, die zusammen ein quantisiertes Audiosignal eindeutig darstellen. Man beachte, daß es vorteilhafterweise nur ein indefinites Huffman-Codesignal ("111 00") gibt, das allen (2¹&sup0;-15) quantisierten Audiosignalen oberhalb von +15 entspricht, und nur ein indefinites Huffman-Codesignal ("101 100 100"), das allen (2¹&sup0;-14) quantisierten Audiosignalen unter -15 entspricht.
  • Wie in Fig. 3 gezeigt, umfaßt ein beispielhafter Entropiedecodierer 108 vorteilhafterweise sequentielle und kombinatorische digitale Schaltungen. Alle sequentiellen Schaltungen in dem Entropiedecodierer 108 werden synchron auf der positiven Flanke des Taktsignals, das durch den Taktgenerator 319 erzeugt wird, getaktet.
  • Wenn der Entropiedecodierer 108 bereit ist, ein Bit eines komprimierten Audiosignals aus dem Kommunikationskanal/Speichermedium 106 anzunehmen, setzt der Steuerungs-Sequenzer 311 einen Taktzyklus lang REQ 351 und aktiviert einen Taktzyklus lang das Register 301 für das komprimierte Audiosignal zum seriellen Hereinschieben eines Bit. Danach sperrt der Steuerungs-Sequenzer 311 das Register 301 für das komprimierte Audiosignal und nimmt REQ 351 zurück. Der Steuerungs-Sequenzer 311 umfaßt beispielsweise kombinatorische digitale Schaltungen und sequentielle Schaltungen. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Steuerungs- Sequenzer 311 hergestellt werden kann. Das Register 301 für das komprimierte Audiosignal ist vorteilhafterweise ein Register mit seriellem Eingang und parallelem Ausgang (z. B. zwei ICs SN74199) mit ausreichend Speicher zum Halten von 15 Binärsignalen des komprimierten Audiosignals.
  • Wenn der Steuerungs-Sequenzer 311 bereit ist, mit dem Verarbeiten eines komprimierten Audiosignals zu beginnen, werden die 9 ältesten Binärsignale des komprimierten Audiosignals aus dem Register 301 für das komprimierte Audiosignal dem Adreßport des Huffman- Codespeichers 303 zugeführt, und dort wird das entsprechende Ausgangssignal (d. h. das "in Frage kommende rekonstruierte Audiosignal") dem Steuerungs- Sequenzer 311 und dem Multiplexer 317 zugeführt. Der Huffman-Codespeicher 303 ist beispielsweise ein 512- Wort-mal-6-Bit-Direktzugriffsspeicher ("RAM") oder ROM. Der Inhalt des Huffman-Codespeichers 303 ist in TABELLE 7 gezeigt. Tabelle 7 - Inhalt des Huffman-Codespeichers (Decodierer)
  • Wie in Tabelle 7 gezeigt, zeigt ein "X" in einer Adresse an, daß die Adresse sowohl für "X" gleich "0" als auch "1" gültig ist (z. B. Adresse 111 00X XXX bedeutet alle 24 Adressen zwischen 111 000 000 und 111 111 111). Der Inhalt jeder Speicherstelle des Huffman- Codespeichers 303 ist von Durchschnittsfachleuten auf dem Gebiet der Datenkomprimierung aus der obigen TABELLE 2 direkt ableitbar.
  • Der Steuerungs-Sequenzer 311 erkennt beispielsweise, daß das in Frage kommende rekonstruierte Audiosignal definitiv ist (d. h. eindeutig und das rekonstruierte Audiosignal vollständig darstellt), indem er feststellt, daß beide höchstwertigen Binärsignale in dem in Frage kommenden rekonstruierten Audiosignal entweder "0" oder "1" sind. Wenn der Steuerungs-Sequenzer 311 erkennt, daß das in Frage kommende rekonstruierte Audiosignal definitiv ist, weist der Steuerungs-Sequenzer 311 den Multiplexer 317 an, ein Eingangssignal aus dem Huffman-Codespeicher 303 anzunehmen, aktiviert das Register 321 und lädt das rekonstruierte Audiosignal in das Register 321.
  • Das Register 321 ist vorteilhafterweise ein Register mit parallelem Eingang und parallelem Ausgang (z. B. zwei ICs SN74199) mit ausreichend Speicher zum Halten aller 11 Binärsignale des rekonstruierten Audiosignals.
  • Da das komprimierte Audiosignal eine variable Länge aufweist, umfaßt das Ausführungsbeispiel vorteilhafterweise einen Mechanismus, durch den der Steuerungs-Sequenzer 311 über die Länge des komprimierten Audiosignals, das verarbeitet wird, informiert wird. Wie in Fig. 3 gezeigt, werden dieselben 9-Binär-Signale, die dem Huffman-Codespeicher 303 zugeführt werden, außerdem dem Adreßport des Huffman-Codelängenspeichers 305 zugeführt, und dort wird das entsprechende Ausgangssignal, die "Huffman- Codelänge", durch den Steuerungs-Sequenzer 311 empfangen. Die Huffman-Codelänge zeigt die Länge entweder des Huffman-Codesignals, das in dem Register 301 gehalten wird, an und ermöglicht somit ein ordnungsgemäßes Durchschreiten des Huffman-Codesignals mit variabler Länge aus dem Bitstrom im Register 301. Der Huffman-Codelängenspeicher 305 ist beispielsweise ein 512-Wort-mal-4-Bit-Direktzugriffsspeicher ("RAM") oder ROM. Der Inhalt des Huffman-Codelängenspeichers 305 ist in TABELLE 8 gezeigt. Tabelle 8 - Inhalt des Huffman-Codelängenspeichers (Decodierer)
  • Wie in Tabelle 8 gezeigt, zeigt ein "X" in einer Adresse an, daß die Adresse sowohl für "X" gleich "0" als auch "1" gültig ist (z. B. Adresse 111 00X XXX bedeutet alle 24 Adressen zwischen 111 000 000 und 111 111 111) Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Adresseninhalt in dezimaler Notation angenommen werden und in eine binäre Darstellung umgesetzt werden kann, die sich zum Empfang durch den Steuerungs-Sequenzer 311 eignet.
  • Wenn das aktuelle Huffman-Codesignal entweder als definitiv identifiziert wurde (und das entsprechende rekonstruierte Audiosignal in das Register 321 geladen wurde) oder als indefinit identifiziert wurde, setzt der Steuerungs-Sequenzer 311 REQ 351, aktiviert das Register 301 für das komprimierte Audiosignal und schiebt die Signale in dem Register 301 für das komprimierte Audiosignal um soviele Binärsignale, wie durch die Huffman- Codesignallänge angegeben wird. Dadurch wird entweder ein neues komprimiertes Audiosignal (wenn das letzte Huffman-Codesignal definitiv war) oder ein Hilfscodesignal (wenn das letzte Huffman-Codesignal indefinit war) für die Verarbeitung in dem Register 301 für das komprimierte Audiosignal synchronisiert. Der Steuerungs-Sequenzer 311 nimmt dann REQ 351 zurück und sperrt das Register für das komprimierte Audiosignal. Wenn das letzte Huffman-Codesignal definitiv war, beginnt der Steuerungs-Sequenzer 311 den Prozeß des Dekodierens des Huffman-Codesignals in dem Register 301 für das komprimierte Audiossignal erneut. Wenn das letzte Huffman-Codesignal indefinit war, muß der Steuerungs-Sequenzer 311 mit der Decodierung des Hilfscodesignals fortschreiten, das in dem Register 301 für das komprimierte Audiossignal gehalten wird, das dem zuletzt empfangenen indefiniten Huffman-Codesignal zugeordnet ist.
  • Da das Hilfscodesignal eine variable Länge aufweist, umfaßt das Ausführungsbeispiel vorteilhafterweise einen Mechanismus, durch den dem Steuerungs- Sequenzer 311 die Länge des Hilfscodesignals angegeben wird, das dem aktuellen komprimierten Audiosignal entspricht. Wie in Fig. 3 gezeigt, werden die 6 ältesten Binärsignale in dem Register 301 für das komprimierte Audiosignal dem Adreßport des Hilfscodelängespeichers 307 zugeführt, und dort wird das entsprechende Ausgangssignal (das die Länge des in dem Register 301 für das komprimierte Audiosignal gehaltenen Hilfscodesignals angibt) durch den Steuerungs-Sequenzer 311 empfangen. Der Hilfscodelängenspeicher 307 ist beispielsweise ein 32-Wort-mal- 4-Bit-Direktzugriffsspeicher ("RAM") oder ROM. Der Inhalt des Hilfscodelängenspeichers 307 ist in TABELLE 9 gezeigt. Tabelle 9 - Inhalt des Hilfscodelängenspeichers (Decodierer)
  • Wie in Tabelle 9 gezeigt, zeigt ein "X" in einer Adresse an, daß die Adresse sowohl für "X" gleich "0" als auch "1" gültig ist (z. B. Adresse 01X XXX bedeutet alle 24 Adressen zwischen 010 000 und 011 111). Der Inhalt jeder Speicherstelle des Hilfscodelängenspeichers 307 kann von Durchschnittsfachleuten auf dem Gebiet der Datenkomprimierung aus den obigen TABELLEN 4 und 5 abgeleitet werden. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Adresseninhalt in dezimaler Notation in TABELLE 9 angenommen werden und in eine binäre Darstellung umgesetzt werden kann, die sich zum Empfang durch den Steuerungs-Sequenzer 311 eignet. Nachdem das aktuelle komprimierte Audiosignal vollständig verarbeitet ist, verwendet der Steuerungs-Sequenzer 311 das Ausgangssignal des Hilfscodelängenspeichers 307 zum Verschieben des Registers 301 für das komprimierte Audiosignal, so daß es mit einem neuen komprimierten Audiosignal synchronisiert wird.
  • Die ältesten 15 Binärsignale in dem Register 301 für das komprimierte Audiosignal werden dem 15-Bit- Adreßport des Hilfscodespeichers 309 zugeführt, und dort wird das entsprechende Ausgangssignal (d. h. das Hilfscodesignal) dem Addierer 313 zugeführt. Der Hilfscodespeicher 309 ist beispielsweise ein 32,768- Wort-mal-10-Bit-Direktzugriffsspeicher ("RAM") oder ROM, kann aber auch kombinatorische Logik umfassen. Der Inhalt des Hilfscodespeichers 309 ist in TABELLE 10 gezeigt. Tabelle 10 - Inhalt des Hilfscodespeichers (Decodierer)
  • Wie in Tabelle 10 gezeigt, zeigt ein "X" in einer Adresse an, daß die Adresse sowohl für "X" gleich "0" als auch "1" gültig ist (z. B. Adresse 110 000 000 XXX XXX bedeutet alle 24 Adressen zwischen 110 000 000 000 000 und 000 000 111 111 111). Genauer gesagt sollte der Inhalt aller Adressen von (einschließlich) 000 000 000 000 000 bis 000 001 111 111 111 eine 0 sein. Zusätzlich sollte der Inhalt aller Adressen von (einschließlich) 011 110 000 000 000 bis 011 111 111 111 111) 15 sein. Der Inhalt jeder Speicherstelle des Hilfscodespeichers 309 kann von Durchschnittsfachleuten auf dem Gebiet der Datenkomprimierung aus der obigen TABELLE 4 abgeleitet werden. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie der Adresseninhalt in dezimaler Notation in TABELLE 10 angenommen und in eine binäre Darstellung umgesetzt werden kann, die sich zum Empfang durch den Addierer 313 eignet.
  • Der Addierer 313 umfaßt vorteilhafterweise eine kombinatorische Logik (z. B. drei SN74188), die das Hilfscodesignal aus dem Hilfscodespeicher 309 annimmt und es um 16 Quanten ergänzt, um ein "ergänztes Codesignal" zu bilden. Das ergänzte Codesignal wird aus dem Addierer 313 ausgegeben und dem Inverter 313 zugeführt, der bedingt und unter Anleitung des Steuerungs-Sequenzers 311 das vorzeichenlose ergänzte Codesignal in eine negative Zweierkomplementdarstellung des ergänzten Codesignals (das heißt ein rekonstruiertes Audiosignal) umsetzt. Der Steuerungs- Sequenzer 311 weiß, wann das ergänzte Codesignal negiert werden muß, weil diese Informationen in dem negativen indefiniten Huffman-Codesignal enthalten waren, das aus dem Huffman-Codespeicher 303 ausgegeben wurde.
  • Gleichzeitig weist der Steuerungs-Sequenzer 311 den Multiplexer 317 an, ein Eingangssignal aus dem Inverter 315 anzunehmen, aktiviert das Register 321 und lädt das rekonstruierte Audiosignal in das Register 321. Der Steuerungs-Sequenzer 311 beginnt dann erneut den Prozeß des Decodierens des Huffman-Codesignals in dem Register 301 für das komprimierte Audiosignal.

Claims (10)

1. Vorrichtung zum Komprimieren eines unbegrenzten Eingangssignals (260) und Erzeugen einer Menge von Ausgangssignalen auf der Grundlage einer Menge von Eingangssignalen (260), wobei die Vorrichtung einen Komprimiermechanismus umfaßt, der folgendes umfaßt:
ein Mittel (104) zur Bildung:
(1) einer ersten Menge von Nachspannsignalen (263) variabler Länge, die die Menge von Eingangssignalen (260) teilweise darstellt;
(2) einer zweiten Menge von Kopfsignalen (262) variabler Länge, die die Anzahl von Signalen in der ersten Menge von Nachspannsignalen (263) variabler Länge darstellt und die Menge von Eingangssignalen (260) teilweise darstellt; wobei der Komprimiermechanismus dadurch gekennzeichnet ist, daß er weiterhin ein Mittel zur Bildung
(3) einer dritten Menge von Signalen (261) variabler Länge, die die Erzeugung der ersten Menge von Nachspannsignalen (263) variabler Länge und der zweiten Menge von Kopfsignalen (262) variabler Länge anzeigt; und
ein Mittel (104) zur Erzeugung der Menge von Ausgangssignalen auf der Grundlage der ersten Menge von Nachspannsignalen (263) variabler Länge, der zweiten Menge von Kopfsignalen (262) variabler Länge und der dritten Menge von Signalen (261) variabler Länge, dergestalt, daß die Menge von Ausgangssignalen die Menge von Eingangssignalen (260) darstellt umfaßt.
2. Vorrichtung nach Anspruch 1, wobei die Menge von Eingangssignalen (260) eine Polarität aufweist und die dritte Menge von Signalen (261) variabler Länge zusätzlich die Polarität der Menge von Eingangssignalen (260) darstellt.
3. Vorrichtung nach Anspruch 1, wobei die dritte Menge von Signalen (261) variabler Länge teilweise den Betrag der Menge von Eingangssignalen (260) darstellt.
4. Vorrichtung nach Anspruch 1, wobei die zweite Menge von Kopfsignalen (262) variabler Länge und die dritte Menge von Signalen (261) variabler Länge eindeutig decodierbar sind.
5. Vorrichtung nach Anspruch 1 mit:
einem Mittel (203) zur Bildung einer Menge von Betragssignalen (264) auf der Grundlage des absoluten Betrags der Menge von Eingangssignalen (260); und
einem Mittel (205) zum Subtrahieren einer vorbestimmten Größe von der Menge von Betragssignalen (264).
6. Verfahren zum Komprimieren eines unbegrenzten Eingangssignals (260) und Erzeugen einer Menge von Ausgangssignalen auf der Grundlage einer Menge von Eingangssignalen (260), wobei das Verfahren folgende Schritte umfaßt:
Bildung
(1) einer ersten Menge von Nachspannsignalen (263) variabler Länge, die die Menge von Eingangssignalen (260) teilweise darstellt;
(2) einer zweiten Menge von Kopfsignalen (262) variabler Länge, die die Anzahl von Signalen in der ersten Menge von Nachspannsignalen (263) variabler Länge darstellt und die Menge von Eingangssignalen (260) teilweise darstellt; wobei das Verfahren durch die weiteren Schritte Bildung
(3) einer dritten Menge von Signalen (261) variabler Länge, die die Erzeugung der ersten Menge von Nachspannsignalen (263) variabler Länge und der zweiten Menge von Kopfsignalen (262) variabler Länge anzeigt; und
Erzeugung der Menge von Ausgangssignalen auf der Grundlage der ersten Menge von Nachspannsignalen (263) variabler Länge, der zweiten Menge von Kopfsignalen (262) variabler Länge und der dritten Menge von Signalen (261) variabler Länge, dergestalt, daß die Menge von Ausgangssignalen die Menge von Eingangssignalen (260) darstellt, gekennzeichnet ist.
7. Verfahren nach Anspruch 6, wobei die Menge von Eingangssignalen (260) eine Polarität aufweist und die dritte Menge von Signalen (261) variabler Länge zusätzlich die Polarität der Menge von Eingangssignalen (260) darstellt.
8. Verfahren nach Anspruch 6, wobei die dritte Menge von Signalen (261) variabler Länge teilweise den Betrag der Menge von Eingangssignalen (260) darstellt.
9. Verfahren nach Anspruch 6, wobei die zweite Menge von Kopfsignalen (262) variabler Länge und die dritte Menge von Signalen (261) variabler Länge eindeutig decodierbar sind.
10. Verfahren nach Anspruch 6 mit den folgenden Schritten:
Bildung einer Menge von Betragssignalen (264) auf der Grundlage des absoluten Betrags der Menge von Eingangssignalen (260); und
Subtrahieren einer vorbestimmten Größe von der Menge von Betragssignalen (264).
DE69328583T 1992-03-02 1993-02-17 Verfahren und Vorrichtung zur Signalkompression mit zwei Komponenten Expired - Lifetime DE69328583T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/844,809 US5227788A (en) 1992-03-02 1992-03-02 Method and apparatus for two-component signal compression

Publications (2)

Publication Number Publication Date
DE69328583D1 DE69328583D1 (de) 2000-06-15
DE69328583T2 true DE69328583T2 (de) 2000-09-21

Family

ID=25293686

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69328583T Expired - Lifetime DE69328583T2 (de) 1992-03-02 1993-02-17 Verfahren und Vorrichtung zur Signalkompression mit zwei Komponenten

Country Status (4)

Country Link
US (1) US5227788A (de)
EP (1) EP0559346B1 (de)
JP (1) JP3016987B2 (de)
DE (1) DE69328583T2 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE40280E1 (en) 1988-12-30 2008-04-29 Lucent Technologies Inc. Rate loop processor for perceptual encoder/decoder
EP0559348A3 (de) 1992-03-02 1993-11-03 AT&T Corp. Rateurregelschleifenprozessor für einen wahrnehmungsgebundenen Koder/Dekoder
US5448300A (en) * 1992-06-16 1995-09-05 Kabushiki Kaisha Toshiba Image signal processing apparatus for processing multiplex image signal formats
US5699479A (en) * 1995-02-06 1997-12-16 Lucent Technologies Inc. Tonality for perceptual audio compression based on loudness uncertainty
US5682463A (en) * 1995-02-06 1997-10-28 Lucent Technologies Inc. Perceptual audio compression based on loudness uncertainty
US5708431A (en) * 1995-11-14 1998-01-13 Lucent Technologies Inc. Method for compression coding of potentially unbounded integers
US6092041A (en) * 1996-08-22 2000-07-18 Motorola, Inc. System and method of encoding and decoding a layered bitstream by re-applying psychoacoustic analysis in the decoder
US6463405B1 (en) 1996-12-20 2002-10-08 Eliot M. Case Audiophile encoding of digital audio data using 2-bit polarity/magnitude indicator and 8-bit scale factor for each subband
US5864820A (en) * 1996-12-20 1999-01-26 U S West, Inc. Method, system and product for mixing of encoded audio signals
US5845251A (en) * 1996-12-20 1998-12-01 U S West, Inc. Method, system and product for modifying the bandwidth of subband encoded audio data
US5864813A (en) * 1996-12-20 1999-01-26 U S West, Inc. Method, system and product for harmonic enhancement of encoded audio signals
US6782365B1 (en) 1996-12-20 2004-08-24 Qwest Communications International Inc. Graphic interface system and product for editing encoded audio data
US6516299B1 (en) 1996-12-20 2003-02-04 Qwest Communication International, Inc. Method, system and product for modifying the dynamic range of encoded audio signals
US6477496B1 (en) 1996-12-20 2002-11-05 Eliot M. Case Signal synthesis by decoding subband scale factors from one audio signal and subband samples from different one
US5798718A (en) * 1997-05-12 1998-08-25 Lexmark International, Inc. Sliding window data compression method and apparatus
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6377930B1 (en) * 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6601032B1 (en) * 2000-06-14 2003-07-29 Intervideo, Inc. Fast code length search method for MPEG audio encoding
US6678648B1 (en) 2000-06-14 2004-01-13 Intervideo, Inc. Fast loop iteration and bitstream formatting method for MPEG audio encoding
US6542863B1 (en) 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
US7509435B2 (en) * 2001-03-12 2009-03-24 International Business Machines Corporation Network Address Translation and Port Mapping
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
DK2282310T3 (da) * 2002-09-04 2012-02-20 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde /niveau-moduser
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7599840B2 (en) 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
EP2980801A1 (de) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur Schätzung des Rauschens in einem Audiosignal, Rauschschätzer, Audiocodierer, Audiodecodierer und System zur Übertragung von Audiosignalen
US9594765B2 (en) 2014-12-27 2017-03-14 Ascava, Inc. Performing keyword-based search and retrieval on data that has been losslessly reduced using a prime data sieve
TWI720086B (zh) * 2015-12-10 2021-03-01 美商艾斯卡瓦公司 儲存在區塊處理儲存系統上的音頻資料和資料的縮減

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3717851A (en) * 1971-03-03 1973-02-20 Ibm Processing of compacted data
US4796003A (en) * 1984-06-28 1989-01-03 American Telephone And Telegraph Company Data compaction
IT1197948B (it) * 1986-11-04 1988-12-21 Telettra Lab Telefon Codice a lunghezza variabile e dispositivi per trasmissione ad alta frequenza
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals

Also Published As

Publication number Publication date
DE69328583D1 (de) 2000-06-15
JPH0645950A (ja) 1994-02-18
EP0559346B1 (de) 2000-05-10
JP3016987B2 (ja) 2000-03-06
EP0559346A1 (de) 1993-09-08
US5227788A (en) 1993-07-13

Similar Documents

Publication Publication Date Title
DE69328583T2 (de) Verfahren und Vorrichtung zur Signalkompression mit zwei Komponenten
DE3686697T2 (de) Fehlertoleranter kodierer zur umwandlung eines thermometerkodes in einen binaeren kode.
DE69130868T2 (de) Kommunikationssystem für binärdaten
DE19635251C2 (de) Verfahren und Apparat zur Komprimierung beliebiger Daten
DE10301362B4 (de) Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
DE3855203T2 (de) Modifizierte statistische kodierung von digitalen signalen
DE69015695T2 (de) Einrichtung zur Transformationskodierung.
EP0260748B1 (de) Verfahren und Schaltungsanordung zur Bitratenreduktion
DE69026292T2 (de) Methode zur Bilddatenkodierung
DE3789857T2 (de) System zur Komprimierung von Bildern mit mehreren Graustufen.
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
DE69313540T2 (de) Verbesserte Vorrichtung zur variablen Längendekodierung
EP2037412B1 (de) Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Tabellen
DE69416665T2 (de) Quantisierungs- und Entquantisierungsschaltung mit reduzierter Grösse
DE19531049A1 (de) Tabelle von Codes variabler Länge und Codiervorrichtung variabler Länge
DE68926676T2 (de) Verfahren und gerät zur statistischen kodierung von digitalen daten
DE69421286T2 (de) Verfahren zur durchführung von schnellen diskreten kosinustransformationen und schnellen inversen diskreten kosinustransformationen unter verwendung von nachschlagetabellen
DE2547597C2 (de) Verfahren und Vorrichtung zur Kompression und Expansion von Digitalcodewörtern
DE69125424T2 (de) Vorrichtung zur variablen Längenkodierung und Vorrichtung zur variablen Längendekodierung
DE68918590T2 (de) Gerät zur dekodierung von mit variabler länge kodierten daten.
DE3751372T2 (de) Verfahren der arithmetischen Kodierung zur Kodierung- und Dekodierung.
EP1323313B1 (de) Verfahren und anordnung zum übertragen eines vektors
DE2405534A1 (de) Nachrichtenuebertragungssystem, insbesondere zur uebertragung von videosignalen
DE3490580C2 (de)
EP0303978B1 (de) Verfahren und Schaltungsanordnung zur Verbesserung der Auflösung von digitalen Signalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R071 Expiry of right

Ref document number: 559346

Country of ref document: EP