DE69328583T2 - Verfahren und Vorrichtung zur Signalkompression mit zwei Komponenten - Google Patents
Verfahren und Vorrichtung zur Signalkompression mit zwei KomponentenInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 31
- 238000007906 compression Methods 0.000 title claims description 10
- 230000006835 compression Effects 0.000 title claims description 10
- 230000005236 sound signal Effects 0.000 description 163
- 238000004891 communication Methods 0.000 description 17
- 238000009826 distribution Methods 0.000 description 8
- 230000000295 complement effect Effects 0.000 description 5
- 238000013144 data compression Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000002238 attenuated effect Effects 0.000 description 2
- 230000003292 diminished effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 241000611421 Elia Species 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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.
- 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.
- 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.
- 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) ≤ 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).
- 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).
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)
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)
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 |
-
1992
- 1992-03-02 US US07/844,809 patent/US5227788A/en not_active Expired - Lifetime
-
1993
- 1993-02-17 EP EP93301113A patent/EP0559346B1/de not_active Expired - Lifetime
- 1993-02-17 DE DE69328583T patent/DE69328583T2/de not_active Expired - Lifetime
- 1993-03-01 JP JP5062495A patent/JP3016987B2/ja not_active Expired - Lifetime
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 |