DE69432072T2 - Datenkompression - Google Patents

Datenkompression

Info

Publication number
DE69432072T2
DE69432072T2 DE69432072T DE69432072T DE69432072T2 DE 69432072 T2 DE69432072 T2 DE 69432072T2 DE 69432072 T DE69432072 T DE 69432072T DE 69432072 T DE69432072 T DE 69432072T DE 69432072 T2 DE69432072 T2 DE 69432072T2
Authority
DE
Germany
Prior art keywords
data
sample
value
data sample
stream
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
DE69432072T
Other languages
English (en)
Other versions
DE69432072D1 (de
Inventor
Ronald Henry Jones
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69432072D1 publication Critical patent/DE69432072D1/de
Publication of DE69432072T2 publication Critical patent/DE69432072T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B14/00Transmission systems not characterised by the medium used for transmission
    • H04B14/02Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation
    • H04B14/06Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using differential modulation, e.g. delta modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B14/00Transmission systems not characterised by the medium used for transmission
    • H04B14/02Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation
    • H04B14/06Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using differential modulation, e.g. delta modulation
    • H04B14/066Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using differential modulation, e.g. delta modulation using differential modulation with several bits [NDPCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Diese Erfindung betrifft allgemein die Verarbeitung von digitalisierten Signalen und insbesondere Rechnersysteme, die codierte digitale Daten wie zum Beispiel pulscodemodulierte (PCM-)Audiosignale komprimieren und dekomprimieren.
  • Im letzten Jahrzehnt haben in der Datenverarbeitung bahnbrechende Entwicklungen stattgefunden. Durch das Aufkommen und die rasche Verbreitung von Personal Computern hat sich die ehemals stark zentralisierte und streng kontrollierte Datenverarbeitungsumgebung in eine weit verteilte und leicht zugängliche Umgebung gewandelt. Eine beträchtliche Erweiterung von Datenverarbeitungsanwendungen ist eine Begleitetscheinung dieser sich verändernden Datenverarbeitungsumgebung. In der Vergangenheit haben Rechner in erster Linie Rechen-, Datenreduktions- und Datenbankverwaltungsfunktionen bereitgestellt. Heute stellen sie zudem Sprachmeldungen, Spiele und Multimediaanwendungen wie zum Beispiel Geschäftspräsentationen bereit. Während den älteren Anwendungen Rechnung getragen werden konnte, indem nur Daten vom Typ Text verwendet wurden, benötigen die neueren Anwendungen auch grafische und Audiodaten.
  • Grafische und - für diese Erfindung von größerer Relevanz - Audiosignale nehmen eine beträchtliche Menge an Speicherkapazität in Anspruch. Das Wort "Hand" beispielsweise würde 4 Byte in Anspruch nehmen, 1 Byte für jeden Buchstaben, um es als Text zu speichern. Andererseits beträgt die für Eine digitale Audioversion von "Hand" benötigte Speicherkapazität unter Annahme der Pulscodemodulation (PCM) mit 16 Bit pro Abtastwert und 20.000 Abtastwerten pro Sekunde und unter der Annahme, dass man 1 Sekunde braucht, um "Hand" auszusprechen, ungefähr 40.000 Byte. Obwohl die Kostenpro Bit bei Rechnerspeichern enorm gefallen sind, sind Rechneranwendungen, die digitalisierte Audiodaten verwenden, durch die begrenzte Speicherkapazität nach wie vor starken Einschränkungen unterworfen. Folglich ist es äußerst wünschenswert, digitalisierte Audiosignale zur Verwendung in Multimedia- Rechnerumgebungen zu komprimieren.
  • Audiosignale werden gewöhnlich mit Hilfe von Pulscodemodulations-(PCM-)Verfahren digitalisiert. Die Pulscodemodulation wird angewendet, indem ein analoges Audiosignal mit einer festen Frequenz, beispielsweise 20 kHz, abgetastet wird, um einen Strom von Impulsabtastwerten zu erzeugen. Das Modulationsverfahren weist dann jedem Abtastwert einen digitalen Wert zu, der für seine Amplitude steht.
  • Es wurde versucht, PCM-Audiosignale zu komprimieren, aber für diese Versuche mussten vorhandene Rechnereinrichtungen im Allgemeinen um ein spezielles Komprimierungs- /Dekomprimierungsgerät erweitert werden. Das Gerät empfängt typischerweise PCM-Audiosignale von einem Audiosystem, komprimiert die Signale und führt die komprimierten Signale in Form von Daten einem Rechner zu, der die Daten wiederum speichert. Damit die Signale wiederhergestellt werden können, muss jedes System, das die komprimierten Daten abruft, ebenfalls über ein spezielles Komprimierungs- /Dekomprimierungsgerät verfügen.
  • Das zusätzliche spezielle Komprimierungs- /Dekomprimierungsgerät erhöht die Kosten und die Komplexität eines jeden Systems, das es einsetzt. Da das Komprimierungs- /Dekomprimierungsgerät das PCM-Audiosignal im Allgemeinen außerdem in einer ganz speziellen Weise komprimiert, können nur solche Systeme, die über ein spezielles, kompatibles Gerät verfügen, die komprimierten Signale verwenden.
  • Manche Komprimierungs-/Dekomprimierungssysteme benötigen kein spezielles Komprimierungs-/Dekomprimierungsgerät. Diese Systeme ermöglichen jedoch keine verlustlose Komprimierung und Dekomprimierung von hochwertigen PCM-Audiosignalen in Echtzeit. Gegebenenfalls machen sie es erforderlich, dass PCM- Signale offline gespeichert und komprimiert werden; ein Audiosignal von der Dauer einer Sekunde würde mehr als eine Sekunde Verarbeitungszeit in Anspruch nehmen. Ebenso ist die Komprimierung möglicherweise mit Verlusten behaftet, um einen Echtzeitbetrieb zu erreichen. Eine verlustbehaftete Komprimierung bedeutet einfach, dass ein Teil der Daten des Signals verworfen wird, um die Anzahl der Stellen zu verringern, die zur Darstellung eines jeden Abtastwerts notwendig sind.
  • Die US-Patentschrift 4 783 792 legt eine Vorrichtung zur Übertragung von Daten mit einer hohen Komprimierungsleistung offen, die eine Vergleichsvorrichtung umfasst, welche zur Bildung eines Differenzwerts zwischen ersten und zweiten Datenabtastwerten dient.
  • Diese Erfindung ist auf die Bereitstellung eines verbesserten Komprimierungs-/Dekomprimierungsschemas für digitale Datenabtastwerte und insbesondere, aber nicht ausschließlich, digitale Audiosignale, gerichtet.
  • Folglich stellt die Erfindung eine Vorrichtung zur Komprimierung eines Stroms von codierten digitalen Datenabtastwerten bereit, wobei die Komprimierungsvorrichtung eine Vergleichsvorrichtung umfasst, die auf einen ersten Datenabtastwert und einen zweiten darauffolgenden Datenabtastwert in dem Strom anspricht, um einen Differenzwert zwischen dem ersten Datenabtastwert und dem zweiten Datenabtastwert zu bilden. Die Vorrichtung ist durch eine Ausgabevorrichtung gekennzeichnet, die dazu dient, einen komprimierten Datenstrom zu bilden, wobei die Ausgabevorrichtung auf den Differenzwert und den zweiten Datenabtastwert anspricht, um anstelle des zweiten Datenabtastwerts den Differenzwert in den komprimierten Datenstrom einzufügen, wenn der Differenzwert weniger Speicherplatz als der zweite Datenabtastwert belegt.
  • Ferner wird eine Vorrichtung zur Dekomprimierung eines Stroms von komprimierten codierten digitalen Datenabtastwerten bereitgestellt, wobei die Dekomprimierungsvorrichtung Folgendes umfasst: eine Erkennungsvorrichtung, die auf den komprimierten Datenstrom anspricht, um einen vorher festgelegten Markierungswert (flag value) zu erkennen; eine Wiederherstellungsvorrichtung, die mit der Erkennungsvorrichtung zusammenarbeitet, um aus komprimierten Datenabtastwerten einen unkomprimierten Datenabtastwert wiederherzustellen, wenn der Markierungswert nicht erkannt wird; und eine Ausgabevorrichtung, um einen dekomprimierten Datenstrom zu bilden, wobei die Ausgabevorrichtung auf einen erkannten Markierungswert anspricht, um den nächsten darauffolgenden Datenabtastwert in den dekomprimierten Datenstrom einzufügen, wobei die Ausgabevorrichtung den wiederhergestellten unkomprimierten Datenabtastwert in den dekomprimierten Datenstrom einfügt, wenn der Markierungswert nicht erkannt wird.
  • Dadurch können digitalisierte Audiosignale zur Speicherung in Rechnersystemen in einer Weise komprimiert werden, die spezielle Komprimierungs-/Dekomprimierungsgeräte überflüssig macht und die gleichzeitig so leistungsfähig ist, dass sie eine verlustlose Komprimierung und Dekomprimierung von hochwertigen digitalisierten Audiosignalen in Echtzeit gestattet.
  • Gemäß einer Ausführungsform der Erfindung werden digitalisierte Audiodaten komprimiert, indem ein erster Audioabtastwert von einem digitalisierten Audiosignal abgerufen und in seiner vollständigen unkomprimierten Form gespeichert wird. Anschließend wird der nächste Audioabtastwert abgerufen, und eine vorzeichenbehaftete Differenz zwischen dem ersten Audioabtastwert und dem nächsten Audioabtastwert wird berechnet. Wenn dieser Differenzwert in einer geringeren Anzahl von Datensegmenten dargestellt werden kann, als zur Darstellung des nächsten Audioabtastwerts nötig wäre, wird anstelle des nächsten Abtastwerts der Differenzwert gespeichert, andernfalls wird der nächste Abtastwert gespeichert. Dann wird der, nächste Audioabtastwert abgerufen, der vorzeichenbehaftete Differenzwert zwischen diesem und dem vorherigen Abtastwert wird berechnet, und der Differenzwert oder, wenn er weniger Speicherplatz belegt, der Abtastwert wird gespeichert, andernfalls wird der Abtastwert zusammen mit einer eindeutigen Markierung oder einem Schlüsselwert gespeichert, der anzeigt, dass der Abtastwert in unkomprimierter Form gespeichert wird. Dieser Prozess wird in dieser Weise fortgesetzt, bis das ganze PCM-Audiosignal komprimiert und gespeichert wurde.
  • Da sequenzielle Audioabtastwerte wahrscheinlich eine ziemlich ähnliche Amplitude haben, ist davon auszugehen, dass der Amplitudenunterschied zwischen einem Abtastwert und dem nächsten Abtastwert weitaus weniger Speicherplatz in Anspruch nehmen wird als die digital codierte Amplitude des nächsten Abtastwerts. Daher wird ein großer Teil der komprimierten Daten als Differenzwerte gespeichert. Ein paar Abtastwerte werden generell jedoch immer als codierte Amplituden gespeichert. Dies geschieht, weil digitale Daten in Einheiten fester Größe gespeichert und abgerufen werden, und daher kann es vorkommen, dass die codierte Amplitude eines Abtastwerts gespeichert wird, selbst wenn die Amplitudendifferenz zwischen zwei sequenziellen Abtastwerten geringer als die codierte Amplitude ist. Zum Beispiel werden Audiosignale gewöhnlich als 16-Bit-Abtastwerte digitalisiert, aber digitale Werte werden gewöhnlich als 8-Bit-Bytes gespeichert. Wenn der Unterschied zwischen den Amplituden von zwei Abtastwerten größer ist, als in einem Byte dargestellt werden kann, wird folglich der Amplitudenwert des darauffolgenden Abtastwerts gespeichert, da der Differenzwert nicht weniger Speicherplatz in Anspruch nimmt. Ein Markierungszeichen wird ebenfalls gespeichert, um anzuzeigen, dass der gespeicherte Wert ein unkomprimierter Abtastwert ist. Wenn die Amplitudendifferenz alternativ dazu in einem Byte dargestellt werden kann, belegt sie weniger Speicherplatz als der codierte Amplitudenwert, und der für die Abtastung gespeicherte Wert belegt ein Byte.
  • Wenn die Amplitude eines Abtastwerts als codierte Amplitude und nicht als Differenzwert gespeichert wird, wird in einer bevorzugten Ausführungsform folglich ein Markierungszeichen ("flag") in den komprimierten Datenstrom eingefügt, das anzeigt, dass der folgende Wert ein Amplitudenwert und kein Differenzwert ist. In dem Fall beispielsweise, in dem zwei Bytes zur Codierung eines Amplitudenwerts verwendet werden, zeigt das Markierungszeichen an, dass die folgenden beiden Bytes einen codierten Amplitudenwert darstellen (für den ersten Abtastwert wird jedoch kein Markierungszeichen verwendet).
  • Der komprimierte Datenstrom wird dekomprimiert, um einen Ausgangsdatenstrom zu erzeugen, indem der erste gespeicherte Abtastwert beispielsweise aus einer Speichereinheit abgerufen wird. Der erste Abtastwert ist immer ein codierter Amplitudenabtastwert und wird direkt in den Ausgangsdatenstrom eingefügt. Der nächste Abtastwert wird abgerufen und geprüft, um festzustellen, ob er ein Differenzwert oder ein Markierungszeichen ist, das anzeigt, dass die folgenden Daten einen codierten Amplitudenwert darstellen. Wenn der Abtastwert ein Differenzwert ist, wird er zu dem vorherigen Wert digital hinzugefügt (unter Berücksichtigung des Vorzeichens), und die Summe wird in den Ausgangsdatenstrom eingefügt. Der Summenwert wird zurückbehalten, damit er zur Berechnung des nächsten Ausgabewerts verwendet werden kann, wenn der folgende Abtastwert ebenfalls ein Differenzwert ist. Wenn der Abtastwert ein Markierungswert ist, wird er alternativ dazu verworfen, und der nächste Abtastwert wird abgerufen und in den Ausgangsdatenstrom eingefügt. Der Betrieb wird auf diese Weise fortgesetzt, bis alle gespeicherten komprimierten Daten dekomprimiert wurden.
  • Von einem anderen Aspekt aus betrachtet, stellt die Erfindung ein Verfahren zur Komprimierung eines Stroms von codierten digitalen Datenabtastwerten bereit, wobei das Verfahren die folgenden Schritte umfasst:
  • A. Bilden eines Differenzwerts zwischen dem ersten Datenabtastwert und dem zweiten Datenabtastwert.
  • Das Verfahren ist durch die folgenden Schritte gekennzeichnet:
  • B. Vergleichen des Differenzwerts mit dem zweiten Datenabtastwert; und
  • C. Bilden eines komprimierten Datenstroms, indem anstelle des zweiten Datenabtastwerts der Differenzwert in den komprimierten Datenstrom eingefügt wird, wenn der Differenzwert weniger Speicherplatz als der zweite Datenabtastwert belegt, und
  • ein Verfahren zur Dekomprimierung eines Stroms von komprimierten codierten digitalen Datenabtastwerten, wobei das Verfahren die folgenden Schritte umfasst:
  • A. Überwachen des komprimierten Datenstroms auf einen vorher festgelegten Markierungswert;
  • B. Wiederherstellen eines unkomprimierten Datenabtastwerts aus komprimierten Datenabtastwerten, wenn der Markierungswert nicht erkannt wird; und
  • C. Bilden eines dekomprimierten Datenstroms, indem der nächste darauffolgende Datenabtastwert in den dekomprimierten Datenstrom eingefügt wird, wenn der Markierungswert erkannt wird, und indem der wiederhergestellte unkomprimierte Datenabtastwert in den dekomprimierten Datenstrom eingefügt wird, wenn der Markierungswert nicht erkannt wird.
  • Die vorstehenden und weitere Vorteile der Erfindung lassen sich durch Bezugnahme auf die folgende Beschreibung der Ausführungsform der Erfindung in Verbindung mit den beigefügten Zeichnungen besser verstehen, in denen:
  • Fig. 1 ein der Veranschaulichung dienendes vernetztes Multimedia-Rechnersystem zeigt;
  • Fig. 2A bis Fig. 2C zusammengenommen ein Flussdiagramm darstellen, das ein Verfahren zur Komprimierung von digitalisierten Audiodaten veranschaulicht;
  • Fig. 3A bis Fig. 3C zusammengenommen ein Flussdiagramm darstellen, das ein Verfahren zur Dekomprimierung von Audiodaten veranschaulicht, die mit Hilfe des in den Fig. 2A bis 2C veranschaulichten Verfahrens komprimiert wurden.
  • Bezug nehmend auf Fig. 1, kommuniziert ein Multimedia- Rechnersystem 10 über ein Netzwerk 12 mit einem Rechnersystem 14 und weiteren anderen Rechnern 16. Die genauen Eigenschaften des Netzwerks 12 sind für die Realisierung der vorliegenden Erfindung nicht wichtig. Das Netzwerk 12 kann beispielsweise mit Hilfe eines beliebigen einer Vielzahl von physischen Medien realisiert werden, eine beliebige einer Vielzahl von Topologien wie zum Beispiel eine stern- oder ringförmige Topologie aufweisen, und es kann ein lokales oder ein Weitverkehrsnetz sein. Die Rechnersysteme 10, 14, 16 tauschen untereinander durch das Netzwerk 12 Informationen in Form von digitalen Daten aus, die Textinformationen, Grafikinformationen oder digitalisierte Audioinformationen darstellen können.
  • Das der Veranschaulichung dienende Multimedia-Rechnersystem 10 enthält eine herkömmliche Audioeingabeeinheit 18 (wie zum Beispiel ein Mikrofon), eine herkömmliche Audioausgabeeinheit 20 (wie zum Beispiel einen Lautsprecher) und das bekannte PCM- Audiocodiergerät 22. Das Gerät 22 kann eine eigenständige Einheit oder eine Steckkarte sein, die direkt mit einem internen Bus des Rechners 26 kommuniziert. Eine Speichereinheit 24 gehört ebenfalls zum Rechnersystem 10, die ein Bestandteil des Rechners 26 oder ein eigenständiges Speichersystem sein kann.
  • Ebenso kann die Speichereinheit 28 ein Bestandteil des Rechners 13 oder eine eigenständige Einheit sein. Obwohl dies nicht gezeigt ist, kann das Rechnersystem 14 auch über ein PCM-Audiocodiergerät sowie Audioeingabe- und Audioausgabeeinheiten wie beispielsweise die Einheiten 18, 20 und 22 verfügen, die in Verbindung mit dem Rechnersystem 10 gezeigt sind. Alternativ dazu kann das Rechnersystem 14 die Funktion eines Servers haben, zum Beispiel, um Daten in der Speichereinheit 28 zu speichern oder aus ihr abzurufen, die über ausreichend Kapazität verfügen sollte, um mehreren an das Netzwerk 12 angeschlossenen Rechnern die Speicherung von Daten zu ermöglichen.
  • Im Betrieb empfängt das herkömmliche PCM-Audiocodiergerät 22 ein analoges Audiosignal von der Eingabeeinheit 18. Das analoge Audiosignal wird mit einer festen Frequenz, beispielsweise 20 kHz, abgetastet, um einen Strom von Abtastwerten mit unterschiedlichen analogen Amplituden zu erzeugen. Die Amplitude eines jeden Impulses wir dann quantisiert, und der quantisierte Wert wird in einen Binärcode codiert. Der resultierende binäre PCM-Datenstrom wird über den Rechner 26 an die Speichereinheit 24 gesendet. Alternativ dazu kann der Rechner 10 die digitalen Daten über das Rechnernetzwerk 12 an den Rechner 14 zur Fernspeicherung in der Speichereinheit 28 oder an andere Rechner 16 zur Weiterverarbeitung senden.
  • Das Datenkomprimierungsverfahren kann von Software ausgeführt werden, die auf dem Rechner 26 läuft, oder von eigens dafür vorgesehener Hardware, die sich im Rechnersystem 26 befindet. In beiden Fällen wird das von dem PCM-Audiocodiergerät 22 empfangene digitale PCM-Signal vom Rechnersystem 26 empfangen und vor der Speicherung in der Speichereinheit 24 oder der Übertragung über das Netzwerk 12 komprimiert. Umgekehrt arbeitet das Datendekomprimierungsverfahren in Verbindung mit dem Rechner 26, um in der Speichereinheit 24 gespeicherte oder aus dem Speicher 28 über das Netzwerk 12 übertragene Audiodaten zur Erzeugung eines digitalen PCM-Datenstroms abzurufen und zu dekomprimieren. Der Rechner 26 überträgt diesen digitalen PCM-Datenstrom an das PCM-Audiocodiergerät 22, das den digitalen Datenstrom in ein analoges Audiosignal umsetzt, das dann an die Ausgabeeinheit 20 übertragen wird. Es sei angemerkt, dass die digitalen PCM-Audiodaten im Gegensatz zu anderen PCM-Datenreduktionssystemen zur Übergabe an das PCM-Audiocodiergerät 22 oder das Netzwerk 12 erzeugt werden (natürlich können dem Netzwerk auch komprimierte Abtastwerte übergeben werden). Folglich benötigt man kein spezielles digitales Audiogerät zur Verwendung mit dem Multimedia- Rechnersystem 10 oder den anderen Rechnersystemen 14 oder 16.
  • Die Fig. 2A bis 2C bilden ein Flussdiagramm, das die Funktionsweise des PCM-Audiokompressionsschemas zeigt. In dieser beispielhaften Ausführungsform wird davon ausgegangen, dass die digitalisierten Audioabtastwerte als 8-Bit-Bytes gespeichert werden und dass jeder Abtastwert eine Breite von 16 Bit oder 2 Byte hat. Der Ablauf beginnt im Schritt 200 und schaltet zum Schritt 210, in dem eine Ausgangsbyte- Zeigervariable pOut und eine Eingangsbyte-Zeigervariable pIn auf den Anfangswert Null gesetzt werden. Diese Zeiger zeigen auf Speicherplätze in einer Datenspeichervorrichtung, die die digitalisierten Audioabtastwerte während der Verarbeitung hält, oder auf einen Speicherplatz in einem Datenstrom- Pufferspeicher, der zum Transport der Daten verwendet wird. Der erste Eingangsabtastwert wird an eine Haltevariable (InSamp) übertragen, die den "nächsten" Eingangsabtastwert darstellt.
  • Im Schritt 212 stellt die Routine dann fest, ob der nächste Eingangsabtastwert (der in InSamp gespeichert ist) der erste Eingangsabtastwert des digitalisierten Audiosignals ist. Wenn der nächste Abtastwert der erste Abtastwert des Signals ist, schaltet die Erfindung zum Schritt 214, in dem sie den in der nächsten Abtastwertvariablen gehaltenen Wert an einen Speicherplatz (SCur) kopiert, der für den "aktuellen" Abtastwert reserviert ist. Wie nachstehend erklärt wird, wird der aktuelle Abtastwert zur Ermittlung des Differenzwerts zwischen dem aktuellen Abtastwert und dem nächsten Abtastwert verwendet.
  • Das Verfahren schaltet dann zum Schritt 216, in dem der Eingangszeiger (pIn) erhöht wird, um den Speicherplatz des nächsten Eingangsabtastwertes anzuzeigen. Wie im Schritt 216 angegeben ist, wird der Eingangszeiger um zwei erhöht, da jeder Abtastwert zwei Byte umfasst. Die Routine schaltet zum Schritt 218, in dem der Wert der nächsten Abtastwertvariablen an einem Speicherplatz gespeichert wird, der vom Ausgangszeiger (pOut) angegeben wird, welcher auf den Ausgangsdatenstrom zeigt. Im Schritt 220 wird der Ausgangszeiger nochmals um zwei erhöht, um anzuzeigen, dass zwei Byte in den Ausgangsdatenstrom übertragen wurden.
  • Anschließend schaltet die Routine zum Schritt 222, in dem festgestellt wird, ob es noch einen Abtastwert in dem digitalisierten Audiosignal gibt. Wenn es keine weiteren Abtastwerte gibt, schaltet die Routine zum Schritt 224, um ihre Ausführung zu beenden.
  • Kehren wir nochmals zum Schritt 222 zurück. Wenn es noch einen weiteren digitalisierten Audioeingangsabtastwert gibt, der verarbeitet werden muss, schaltet die Routine zum Schritt 226, in dem sie den nächsten Eingangsabtastwert abruft, indem sie den Inhalt des Speicherplatzes, der vom Eingangszeiger (pIn) angegeben wird, in die nächste Abtastwert-Haltevariable, InSamp, überträgt. Daraufhin schaltet die Routine zum Schritt 228, in dem der Eingangszeiger um zwei erhöht wird, so dass der Eingangszeiger auf den nächsten Abtastwert zeigt.
  • Anschließend schaltet die Routine zurück zum Schritt 212, in dem sie feststellt, ob der in der nächsten Abtastwertvariablen InSamp gespeicherte Wert der erste Eingangsabtastwert ist. Wenn der nächste Abtastwert nicht der erste Eingangsabtastwert ist, schaltet die Routine zum Schritt 230, in dem die Differenz zwischen dem "nächsten" Abtastwert, der in der Variablen InSamp enthalten ist, und dem aktuellen Abtastwert, der in der Variablen SCur gespeichert ist, ermittelt wird. Der Wert dieser Differenz wird in einer Variablen SDiff gespeichert. Zu diesem Zeitpunkt wird der Inhalt eines Zeichenausgangspufferspeichers chOut gelöscht (auf Null gesetzt).
  • Die Routine schaltet dann zum Schritt 232, in dem der aktuelle Abtastwert, der in der Variablen SCur gespeichert ist, aktualisiert wird, indem der Wert, der in der nächsten Abtastwertvariablen InSamp gespeichert ist, übertragen wird. Im Schritt 234 stellt das erfindungsgemäße Verfahren fest, ob die Differenz zwischen dem nächsten Abtastwert und dem aktuellen Abtastwert negativ ist. Wenn die Differenz negativ ist (was anzeigt, dass sich die Amplitude verringert hat), schaltet die Routine zum Schritt 236, in dem das höchstwertige Bit im Zeichenausgangspufferspeicher chOut auf Eins gesetzt wird (indem der Zeichenpufferspeicher mit 10000000, hex 80, geladen wird), um eine negative Differenz anzuzeigen.
  • Wenn die berechnete Differenz SDiff im Schritt 234 andererseits gleich oder größer als Null ist, überspringt die Routine den Schritt 236 und schaltet vom Schritt 234 direkt zum Schritt 238. Das höchstwertige Bit bleibt somit auf Null (es wurde im Schritt 230 auf Null gesetzt). Im Schritt 238 speichert die Routine den absoluten Wert der Differenz SDiff am Speicherplatz SDiff (das Vorzeichen der Differenz wird jetzt vom höchstwertigen Bit von chOut angezeigt).
  • Im Schritt 240 stellt die Routine fest, ob eine der folgenden beiden Bedingungen gültig ist: (a) Der absolute Wert der berechneten Differenz SDiff ist größer als der positive Höchstwert, der in einem einzigen vorzeichenbehafteten Byte gespeichert werden kann (01111111, hex 7F), oder (b) der absolute Wert der Differenz SDiff ist gleich einem reservierten Markierungswert (01111111, hex 7F, wobei das höchstwertige Byte des Zeichenpufferspeichers gesetzt ist; chOut = hex(80)).
  • Wenn keine der beiden Bedingungen gültig ist, kann die Differenz SDiff zwischen dem nächsten Eingangsabtastwert und dem aktuellen Eingangsabtastwert in einem einzigen Byte gespeichert werden, und gemäß den Grundgedanken der vorliegenden Erfindung wird in dem Ausgangsdatenstrom anstelle des tatsächlichen Abtastwerts der Differenzwert gespeichert. Folglich schaltet die Routine zum Schritt 250, in dem der Differenzwert in den Zeichenpufferspeicher geladen wird, indem der Differenzwert SDiff durch logisches ODER mit dem Inhalt, des Zeichenpufferspeichers (in dem sich die höchstwertige Bitgruppe befinden kann) verknüpft wird.
  • Im Schritt 252 wird der Inhalt des Zeichenpufferspeichers chOut an den Speicherplatz des Ausgangsdatenstroms übertragen, auf den der Ausgangszeiger pOut zeigt, und im Schritt 254 erhöht die Routine den Ausgangszeiger pOut um eins, um anzuzeigen, dass ein einziges Byte übertragen wurde.
  • Kehren wir nochmals zum Schritt 240 zurück. Wenn der berechnete Differenzbetrag zwischen dem nächsten und dem aktuellen Datenabtastwert größer als der Höchstwert (hex 7F) oder gleich hex 7F war, während chOut gleich hex 80 war, kann die Differenz zwischen dem nächsten Abtastwert und dem aktuellen Abtastwert nicht in einem einzigen Byte gespeichert werden, und der tatsächliche Wert der nächsten Abtastung wird in dem Ausgangsdatenstrom gespeichert.
  • Folglich schaltet die Routine zum Schritt 242, in dem ein Markierungswert (hex FF) an den Speicherplatz des Ausgangsdatenstroms geschrieben wird, der vom Ausgangszeiger pOut angegeben wird. Der Markierungswert hex FF zeigt an, dass die nächsten beiden Werte in dem Datenstrom einen unkomprimierten PCM-Audioabtastwert halten. Im Schritt 244 erhöht die Routine den Ausgangszeiger pOut um eins, um dem Markierungszeichen Rechnung zu tragen, und schaltet darin zum Schritt 246, in dem die zwei Bytes des nächsten Abtastwerts in der Variablen InSamp in den Ausgangsdatenstrom an einen Speicherplatz übertragen werden, auf den der Ausgangszeiger pOut zeigt. Dann schaltet die Routine zum Schritt 248, in dem der Ausgangszeiger pOut um zwei erhöht wird, um anzuzeigen, dass zwei Bytes übertragen wurden.
  • Als Nächstes schaltet die Routine zum Schritt 222, in dem sie feststellt, ob noch ein weiterer Eingangsabtastwert verarbeitet werden muss. Wie zuvor beschrieben wurde, schaltet die Routine dann entweder zum Schritt 226, um weitere Abtastwerte zu verarbeiten, oder zum Schritt 224, um ihre Ausführung zu beenden.
  • Die Fig. 3A bis 3C bilden ein Flussdiagramm, das die Schritte in einer der Veranschaulichung dienenden Dekomprimierungsroutine ausführlich zeigt. Genauer gesagt, die Routine beginnt den Dekomprimierungsprozess im Schritt 300, schaltet dann zum Schritt 310, in dem sie den Ausgangszeiger pOut und den Eingangszeiger pIn auf den Anfangswert Null setzt und den ersten Abtastwert der komprimierten Daten in die nächste Abtastwertvariable InSamp überträgt. Im Schritt 312 wird eine Prüfung durchgeführt, um festzustellen, ob der nächste Abtastwert der erste Abtastwert der komprimierten Daten ist. Wenn ja, schältet die Routine zum Schritt 314, in dem sie den in der Variablen InSamp enthaltenen Wert in die aktuelle Abtastwertvariable SCur kopiert. Im Schritt 315 wird der Eingangszeiger pIn um zwei erhöht, um den beiden Bytes des ersten Abtastwerts Rechnung zu tragen.
  • Im Schritt 316 überträgt die Routine den am Speicherplatz "InSamp" enthaltenen Wert an den Speicherplatz des Ausgangsdatenstroms, auf den der Ausgangszeiger pOut zeigt. Im Schritt 318 wird der Ausgangszeiger pOut um zwei erhöht, um anzuzeigen, dass zwei Bytes ausgegeben wurden. Im Schritt 320 stellt die Routine dann fest, ob es noch weitere Eingangsabtastwerte gibt. Wenn es keine weiteren Eingangsabtastwerte gibt, schaltet die Routine zum Schritt 322, um ihre Ausführung zu beenden.
  • Wenn es weitere Eingangsabtastwerte gibt, schaltet der Prozess zum Schritt 324, in dem das nächste komprimierte Abtastwertbyte, das an dem vom Eingangszeiger pIn angegebenen Speicherplatz gespeichert ist, in einen Eingangspufferspeicher "chKey" gelesen wird, so dass das Byte geprüft werden kann, um festzustellen, ob es ein Markierungswert ist. Im Schritt 326 wird der Eingangszeiger pIn um eins erhöht, um dem soeben gelesenen Byte Rechnung zu tragen.
  • Nachdem sie festgestellt hat, dass dies nicht der erste Abtastwert ist, schaltet die Routine vom Schritt 312 zum Schritt 328, in dem sie den Inhalt des Zeichenausgangspufferspeichers "chOut" löscht, und anschließend schaltet sie zum Schritt 330. Im Schritt 330 stellt die Routine fest, ob der Inhalt des Eingangspufferspeichers "chKey" gleich dem Markierungswert FF (hex) ist. Wenn der Inhalt von chKey gleich FF (hex) ist, umfassen die nächsten beiden Bytes im Eingangsdatenstrom einen unkomprimierten PCM-Abtastwert. Folglich wird der nächste Eingangsabtastwert von dem Eingangsdatenstrom, auf den der Zeiger pIn zeigt, im Schritt 332 in die nächste Abtastwertvariable InSamp übertragen, und im Schritt 334 wird der Eingangszeiger pIn um zwei erhöht, um dem Abtastwert Rechnung zu tragen.
  • Kehren wir nochmals zum Schritt 330 zurück. Wenn der Wert im Eingangspufferspeicher chKey kein Markierungswert ist, ist er ein Differenzwert, und die Routine schaltet zum Schritt 336. Im Schritt 336 wird das höchstwertige Bit des Differenzwertes geprüft, indem der Inhalt des Eingangspufferspeichers chKey mit 10000000 (80 hex) durch logisches UND verknüpft wird und indem festgestellt wird, ob das Ergebnis gleich Null ist. Wie zuvor beschrieben wurde, legt das höchstwertige Bit fest, ob der komprimierte Abtastwert zu dem vorherigen Abtastwert addiert oder von ihm subtrahiert werden soll.
  • Wenn das Ergebnis der UND-Operation ungleich Null ist, was anzeigt, dass das höchstwertige Bit gesetzt und die Differenz negativ ist und von dem aktuellen Abtastwert in SCur subtrahiert werden soll, schaltet die Routine zum Schritt 338, in dem das höchstwertige Bit in "chKey" auf Null gesetzt wird, indem der Inhalt von chKey mit 01111111 (7F, hex) durch logisches UND verknüpft wird. Im Schritt 340 wird der Differenzwert in chKey vom aktuellen Eingangswert in SCur subtrahiert. Das Ergebnis wird in die nächste Abtastwertvariable InSamp übertragen.
  • Wenn das Ergebnis im Schritt 336 gleich Null war, war das höchstwertige Bit auf Null gesetzt, was anzeigt, dass der Differenzwert positiv ist und zu dem aktuellen Wert hinzugefügt werden soll. Im Schritt 342 werden folglich der aktuelle Abtastwert in SCur zu dem Differenzwert in chKey addiert und die Summe in die nächste Abtastwertvariable InSamp übertragen.
  • Nach einem der Schritte 340, 342 oder 334 schaltet die der Veranschaulichung dienende Routine zum Schritt 344, in dem sie den nächsten Abtastwert in der Variablen InSamp an den Speicherplatz kopiert, der vom Ausgangszeiger pOut angegeben wird, wodurch der dekomprimierte Abtastwert in den Ausgangsdatenstrom gestellt wird. Im Schritt 346 wird der Ausgangszeiger pOut um zwei Bytes erhöht, und im Schritt 348 wird der Wert in der Variablen InSamp in Vorbereitung auf die Verarbeitung des nächsten Abtastwerts in die aktuelle Abtastwertvariable SCur kopiert.
  • Im Anschluss an den Schritt 348 schaltet die Routine zum Schritt 320, in dem, wie zuvor beschrieben wurde, festgestellt wird, ob es weitere Abtastwerte gibt. Auf der Grundlage dieser Feststellung werden entweder die weiteren Abtastwerte verarbeitet oder, wenn alle Abtastwerte verarbeitet wurden, wird die Routine beendet.
  • Wie aus der vorstehenden Beschreibung hervorgeht, rufen die Komprimierungs- und Dekomprimierungsprozesse alle Informationen, die in dem ursprünglichen digitalisierten Signal enthalten sind, ab und speichern sie, obwohl weniger Stellen erforderlich sind, um das Signal in komprimierter Form darzustellen. Es werden keine Informationen verworfen; dies ist ein verlustfreier Komprimierungs-/Dekomprimierungsprozess.
  • In der vorstehenden Beschreibung wurde eine ganz bestimmte Ausführungsform dieser Erfindung dargelegt. Es dürfte jedoch klar sein, dass an der Erfindung Ab- und Veränderungen vorgenommen werden können, während man dennoch einige oder alle ihrer Vorteile erzielt. Es ist daher die Aufgabe der beigefügten Ansprüche, all die Ab- und Veränderungen abzudecken, die unter den Umfang der Erfindung fallen.
  • Ein Datenkomprimierungssystem zur Verwendung mit einem Strom von codierten digitalen Datenabtastwerten wurde beschrieben, von denen jeder eine erste vorher festgelegte Anzahl von Datenbytes hat, wobei das Komprimierungssystem Folgendes umfasst: eine Recheneinheit, die auf einen ersten Datenabtastwert und einen darauffolgenden zweiten Datenabtastwert anspricht, um einen vorzeichenbehafteten Differenzwert zwischen dem ersten Abtastwert und einem zweiten Abtastwert zu berechnen, wobei der Differenzwert eine zweite Anzahl von Bytes hat; und eine Ausgabeeinheit, um einen komprimierten Datenbytestrom zu erzeugen, wobei die Ausgabeeinheit auf den Differenzwert anspricht, um den Differenzwert in den komprimierten Datenbytestrom einzufügen, wenn die zweite Anzahl von Bytes geringer als die erste Anzahl von Bytes ist, und um den zweiten Datenabtastwert in den komprimierten Datenstrom einzufügen, wenn die zweite Anzahl von Bytes gleich der oder größer als die erste Anzahl von Bytes ist.
  • Wie beschrieben wurde, kann das System ein Mittel umfassen, das dazu dient, einen vorher festgelegten Markierungswert in den komprimierten Datenstrom einzufügen, bevor der zweite Datenabtastwert in den komprimierten Datenstrom eingefügt wird, wenn die zweite Anzahl von Bytes gleich der oder größer als die erste Anzahl von Bytes ist, und einen Speichermechanismus, um jeden Datenabtastwert vorübergehend in dem digitalen Datenstrom zu speichern. Die Recheneinheit kann auf einen Datenabtastwert ansprechen, der in dem Speichermechanismus gespeichert ist, und auf einen darauffolgenden zweiten Datenabtastwert, um einen vorzeichenbehafteten Differenzwert zwischen dem gespeicherten Abtastwert und einem zweiten Abtastwert zu berechnen.
  • Es wurde auch ein Datendekomprimierungssystem zur Dekomprimierung eines Stroms von komprimierten codierten digitalen Datenabtastwerten beschrieben, wobei das Dekomprimierungssystem Folgendes umfasst: ein Speichermittel, um jeden komprimierten Datenabtastwert zu speichern; eine Erkennungsvorrichtung, die auf den gespeicherten Datenabtastwert anspricht, um einen vorher festgelegten Markierungswert zu erkennen; eine Wiederherstellungsvorrichtung, die mit der Erkennungsvorrichtung zusammenarbeitet, um aus dem gespeicherten Datenabtastwert und einem darauffolgenden komprimierten Datenabtastwert einen unkomprimierten Datenabtastwert wiederherzustellen, wenn der Markierungswert nicht erkannt wird; und eine Ausgabevorrichtung zur Bildung eines dekomprimierten Datenstroms, wobei die Ausgabevorrichtung auf einen erkannten Markierungswert anspricht, um den nachfolgenden Datenabtastwert in den dekomprimierten Datenstrom einzufügen, wobei die Ausgabevorrichtung den wiederhergestellten unkomprimierten Datenabtastwert in den dekomprimierten Datenstrom einfügt, wenn der Markierungswert nicht erkannt wird.
  • Die Wiederherstellungsvorrichtung, kann einen Mechanismus umfassen, der dazu dient, den gespeicherten Datenabtastwert zu einem darauffolgenden komprimierten Datenabtastwert digital zu addieren, um den unkomprimierten Datenabtastwert wiederherzustellen. Jeder komprimierte Datenabtastwert kann aus einer ersten Anzahl von Datenbytes bestehen, wobei der Differenzwert eine zweite Anzahl von Bytes umfasst und wobei der Speichermechanismus die erste Anzahl von Bytes vorübergehend speichert. Die Ausgabevorrichtung kann auf einen erkannten Markierungswert ansprechen, um die erste Anzahl von aufeinanderfolgenden Datenbytes in den dekomprimierten Datenstrom einzufügen, wobei die Ausgabevorrichtung einen vorzeichenbehafteten Summenwert aus der zweiten Anzahl der Datenbytes und der gespeicherten Datenbytes in den dekomprimierten Datenstrom einfügt, wenn der Markierungswert nicht erkannt wird.

Claims (11)

1. Vorrichtung (26) zur Komprimierung eines Stroms von codierten digitalen Datenabtastwerten, wobei die Komprimierungsvorrichtung eine Vergleichsvorrichtung umfasst, die auf einen ersten Datenabtastwert und einen zweiten darauffolgenden Datenabtastwert in dem Strom anspricht, um einen Differenzwert (SDiff) zwischen dem ersten Datenabtastwert (SCur) und dem zweiten Datenabtastwert (InSamp) zu bilden (230);
dadurch gekennzeichnet, dass die Vorrichtung des Weiteren eine Ausgabevorrichtung (26) umfasst, die dazu dient, einen komprimierten Datenstrom zu bilden, wobei die Ausgabevorrichtung auf den Differenzwert und den zweiten Datenabtastwert anspricht, um anstelle des zweiten Datenabtastwerts den Differenzwert in den komprimierten Datenstrom einzufügen (250), wenn der Differenzwert weniger Speicherplatz als der zweite Datenabtastwert belegt.
2. Vorrichtung (26) nach Anspruch 1, die des Weiteren eine Markierungsvorrichtung (26) umfasst, die auf den Differenzwert (SDiff) und den zweiten Datenabtastwert (SCur) anspricht, um einen vorher festgelegten Markierungswert in den komprimierten Datenstrom einzufügen, wenn der Differenzwert zur Darstellung des zweiten Datenabtastwerts genauso viele Stellen verwendet, wie der zweite Datenabtastwert belegt.
3. Vorrichtung (26) nach Anspruch 1 oder 2, wobei jeder Datenabtastwert aus einer ersten Anzahl von Datenbytes besteht und wobei die Vergleichsvorrichtung (26) eine Vorrichtung umfasst, um einen digitalen Differenzwert (SDiff) zwischen dem ersten Datenabtastwert und dem zweiten Datenabtastwert zu bilden, wobei der digitale Differenzwert eine zweite Anzahl von Datenbytes umfasst.
4. Vorrichtung (26) nach Anspruch 3, wobei die Ausgabevorrichtung (26) eine Vorrichtung umfasst, die anstelle des zweiten Datenabtastwerts (SCur) den Differenzwert (SDiff) in den komprimierten Datenstrom einfügt, wenn die zweite Anzahl von Bytes geringer als die erste Anzahl von Bytes ist.
5. Vorrichtung (26) nach einem der vorhergehenden Ansprüche, wobei der Differenzwert (SDiff) einen Vorzeichenwert enthält, der anzeigt, ob der Differenzwert positiv oder negativ ist.
6. Vorrichtung (13) zur Dekomprimierung eines Stroms von komprimierten codierten digitalen Datenabtastwerten, wobei die Dekomprimierungsvorrichtung Folgendes umfasst:
eine Erkennungsvorrichtung (13), die auf den komprimierten Datenstrom anspricht, um einen vorher festgelegten Markierungswert zu erkennen (330);
eine Wiederherstellungsvorrichtung (13), die mit der Erkennungsvorrichtung zusammenarbeitet, um aus komprimierten Datenabtastwerten einen unkomprimierten Datenabtastwert wiederherzustellen (336, 338, 340, 3421, wenn der Markierungswert nicht erkannt wird; und
eine Ausgabevorrichtung (13) zur Bildung eines dekomprimierten Datenstroms, wobei die Ausgabevorrichtung auf einen erkannten Markierungswert anspricht, um den nächsten darauffolgenden Datenabtastwert in den dekomprimierten Datenstrom einzufügen (332, 334, 344), wobei die Ausgabevorrichtung den wiederhergestellten unkomprimierten Datenabtastwert in den dekomprimierten Datenstrom einfügt (344), wenn der Markierungswert nicht erkannt wird.
7. Vorrichtung (13) nach Anspruch 6, die des Weiteren einen Speichermechanismus (13) umfasst, um einen komprimierten Datenabtastwert zu speichern, und wobei die Ausgabevorrichtung einen Mechanismus (338, 340) umfasst, um einen vorzeichenbehafteten Summenwert aus dem nächsten darauffolgenden Datenabtastwert und dem gespeicherten Datenabtastwert in den dekomprimierten Datenstrom einzufügen, wenn der Markierungswert nicht erkannt wird.
8. Vorrichtung (13) nach Anspruch 6 oder 7, wobei jeder komprimierte Datenabtastwert aus einer ersten Anzahl von Datenbytes besteht, wobei der Differenzwert eine zweite Anzahl von Bytes umfasst und wobei der Speichermechanismus vorübergehend die erste Anzahl von Bytes speichert.
9. Vorrichtung (13) nach Anspruch 8, wobei die Ausgabevorrichtung (13) auf einen erkannten Markierungswert anspricht, um die erste Anzahl der aufeinanderfolgenden Datenbytes in den dekomprimierten Datenstrom einzufügen, wobei die Ausgabevorrichtung eine Verknüpfung aus der zweiten Anzahl der Datenbytes und der gespeicherten Datenbytes in den dekomprimierten Datenstrom einfügt, wenn der Markierungswert nicht erkannt wird.
10. Verfahren zur Komprimierung eines Stroms von codierten digitalen Datenabtastwerten, wobei das Verfahren die folgenden Schritte umfasst:
A. Bilden (230) eines Differenzwerts zwischen dem ersten Datenabtastwert und dem zweiten Datenabtastwert;
dadurch gekennzeichnet, dass das Verfahren des Weiteren die folgenden Schritte umfasst:
B. Vergleichen des Differenzwerts (SDiff) mit dem zweiten Datenabtastwert (SCur); und
C. Bilden eines komprimierten Datenstroms, indem anstelle des zweiten Datenabtastwerts der Differenzwert in den komprimierten Datenstrom eingefügt (250) wird, wenn der Differenzwert weniger Speicherplatz als der zweite Datenabtastwert belegt.
11. Verfahren zur Dekomprimierung eines Stroms von komprimierten codierten digitalen Datenabtastwerten, wobei das Verfahren die folgenden Schritte umfasst:
A. Überwachen (330) des komprimierten Datenstroms auf einen vorher festgelegten Markierungswert;
B. Wiederherstellen (336, 338, 340, 342) eines unkomprimierten Datenabtastwerts aus komprimierten Datenabtastwerten, wenn der Markierungswert nicht erkannt wird; und
C. Bilden eines dekomprimierten Datenstroms, indem der nächste darauffolgende Datenabtastwert in den dekomprimierten Datenstrom eingefügt (332, 334, 344) wird, wenn der Markierungswert erkannt wird, und indem der wiederhergestellte unkomprimierte Datenabtastwert in den dekomprimierten Datenstrom eingefügt (344) wird, wenn der Markierungswert nicht erkannt wird.
DE69432072T 1993-12-29 1994-11-23 Datenkompression Expired - Lifetime DE69432072T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/174,800 US5561688A (en) 1993-12-29 1993-12-29 Real-time digital audio compression/decompression system

Publications (2)

Publication Number Publication Date
DE69432072D1 DE69432072D1 (de) 2003-03-06
DE69432072T2 true DE69432072T2 (de) 2003-09-25

Family

ID=22637578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69432072T Expired - Lifetime DE69432072T2 (de) 1993-12-29 1994-11-23 Datenkompression

Country Status (5)

Country Link
US (3) US5561688A (de)
EP (1) EP0661819B1 (de)
JP (1) JP3014285B2 (de)
CA (1) CA2139095C (de)
DE (1) DE69432072T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819026A (en) * 1995-06-06 1998-10-06 Apple Computer, Inc System and method for arbitrating accelerator requests
KR100224815B1 (ko) * 1995-06-23 1999-10-15 윤종용 데이타 압축 및 신장방법
BR9610415A (pt) * 1995-09-01 1999-09-14 Starguide Digital Networks Inc Sistema de distribuição e produção de arquivos de áudio
US6269338B1 (en) * 1996-10-10 2001-07-31 U.S. Philips Corporation Data compression and expansion of an audio signal
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
RU2237934C2 (ru) 1998-10-08 2004-10-10 Мацусита Электрик Индастриал Ко.,Лтд. Устройство записи и воспроизведения данных
US6496692B1 (en) 1999-12-06 2002-12-17 Michael E. Shanahan Methods and apparatuses for programming user-defined information into electronic devices
US8170538B2 (en) 1999-12-06 2012-05-01 Solocron Media, Llc Methods and apparatuses for programming user-defined information into electronic devices
US7149509B2 (en) 1999-12-06 2006-12-12 Twenty Year Innovations, Inc. Methods and apparatuses for programming user-defined information into electronic devices
WO2003003235A1 (en) 2001-06-27 2003-01-09 4 Media, Inc. Improved media delivery platform
JP4039086B2 (ja) * 2002-03-05 2008-01-30 ソニー株式会社 情報処理装置および情報処理方法、情報処理システム、記録媒体、並びにプログラム
US20040208169A1 (en) * 2003-04-18 2004-10-21 Reznik Yuriy A. Digital audio signal compression method and apparatus
US7742926B2 (en) 2003-04-18 2010-06-22 Realnetworks, Inc. Digital audio signal compression method and apparatus
CN1323345C (zh) * 2004-03-22 2007-06-27 凌阳科技股份有限公司 资料压缩/解压缩装置及其应用系统
JP2006201969A (ja) * 2005-01-19 2006-08-03 Fujitsu Ltd エラー情報圧縮装置、エラー情報圧縮方法およびエラー情報圧縮プログラム
US10454483B2 (en) * 2016-10-24 2019-10-22 Analog Devices, Inc. Open loop oscillator time-to-digital conversion
US10768861B1 (en) 2019-02-27 2020-09-08 Microsoft Technology Licensing, Llc In-place safe decompression
GB2605965A (en) * 2021-04-16 2022-10-26 Canon Kk Methods and devices for improving storage and transmission of uncompressed data while using a standard format

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1762804B2 (de) * 1968-08-29 1972-01-20 Standard Elektrik Lorenz Ag, 7000 Stuttgart Schaltungsanordnung zur regelung der sende und empfangsbezugs daempfung einer teilnehmerstation einer fernsprechanlage
US3582546A (en) * 1969-06-13 1971-06-01 Bell Telephone Labor Inc Redundancy reduction system for use with a signal having frame intervals
US3609244A (en) * 1969-12-18 1971-09-28 Bell Telephone Labor Inc Conditional replenishment video system with variable length address code
US3689840A (en) * 1971-04-29 1972-09-05 Bell Telephone Labor Inc Coding of sign information in dpcm systems
US3835385A (en) * 1973-05-18 1974-09-10 Gen Electric Digital delta encoder and decoder
US3882426A (en) * 1973-05-18 1975-05-06 Gen Electric Increment varying means for incremental encoder and decoder
DE2460147C2 (de) * 1974-12-19 1983-05-05 Ibm Deutschland Gmbh, 7000 Stuttgart Anordnung zur Dekomprimierung komprimierter Information für aus schwarzen und weißen Bereichen zusammengesetze darzustellende Zeichen
US4581757A (en) * 1979-05-07 1986-04-08 Texas Instruments Incorporated Speech synthesizer for use with computer and computer system with speech capability formed thereby
DE3403307C2 (de) * 1984-01-31 1986-12-04 Siemens AG, 1000 Berlin und 8000 München Übertragungssystem
DE3405184C2 (de) * 1984-02-14 1986-04-10 Siemens AG, 1000 Berlin und 8000 München Übertragungssystem
JPS60251733A (ja) * 1984-05-28 1985-12-12 Sony Corp デイジタル信号伝送装置
JPS61126836A (ja) * 1984-11-22 1986-06-14 Sansui Electric Co Pcm伝送方式およびその装置
US5113496A (en) * 1987-08-04 1992-05-12 Mccalley Karl W Bus interconnection structure with redundancy linking plurality of groups of processors, with servers for each group mounted on chassis
US4902881A (en) * 1988-06-10 1990-02-20 Faxplus Corporation Parallel process communications terminal and network
JPH02110658A (ja) * 1988-10-19 1990-04-23 Hitachi Ltd 文書編集装置
US5119188A (en) * 1988-10-25 1992-06-02 Telaction Corporation Digital audio-video presentation display system
US5045360A (en) * 1989-10-26 1991-09-03 Dow Corning Corporation Silicone primer compositions
JPH0732413B2 (ja) * 1990-02-05 1995-04-10 日本電気株式会社 マルチメディア通信方式
US5056136A (en) * 1990-03-09 1991-10-08 The United States Of America As Represented By The United States Department Of Energy Secure video communications system
JPH0463081A (ja) * 1990-06-29 1992-02-28 Sanyo Electric Co Ltd 予測符号化方式
CA2051939A1 (en) * 1990-10-02 1992-04-03 Gary A. Ransford Digital data registration and differencing compression system
US5132992A (en) * 1991-01-07 1992-07-21 Paul Yurt Audio and video transmission and receiving system
JP3015134B2 (ja) * 1991-04-23 2000-03-06 キヤノン株式会社 画像処理方法及び装置
US5192999A (en) * 1991-04-25 1993-03-09 Compuadd Corporation Multipurpose computerized television

Also Published As

Publication number Publication date
US5654990A (en) 1997-08-05
US5673206A (en) 1997-09-30
JPH07212241A (ja) 1995-08-11
CA2139095C (en) 1999-09-28
EP0661819A2 (de) 1995-07-05
CA2139095A1 (en) 1995-06-30
JP3014285B2 (ja) 2000-02-28
US5561688A (en) 1996-10-01
EP0661819B1 (de) 2003-01-29
DE69432072D1 (de) 2003-03-06
EP0661819A3 (de) 2000-02-02

Similar Documents

Publication Publication Date Title
DE69432072T2 (de) Datenkompression
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE3850035T2 (de) Datenkomprimierungssystem mit Expandierungsschutz.
DE69119468T2 (de) Kodier- und Dekodiervorrichtung für Daten variabler Länge
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
DE60310368T2 (de) Verfahren zur verhinderung von startkode-emulation und stopfdaten
DE2653288C2 (de) Verfahren und Anordnung zur Entfernung von vorgebbarer Hintergrundinformation aus einem Bild
DE69535569T2 (de) Verfahren zur Synchronisationsrückgewinnung und Vorrichtung zur variablen Längendekodierung
DE2264090C3 (de) Datenverdichtung
DE69318446T2 (de) Verfahren und Vorrichtung zur Datenkompression und -dekompression für eine Übertragungsanordnung
DE69710388T2 (de) Verlustfreies Datenkomprimierungsverfahren und eine Vorrichtung dafür mit zusätzlicher Vereinfachung der Signalanalyse
EP2068448B1 (de) Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Tabellen
DE69915725T2 (de) Datenkompression unter Verwendung von Primzahlexponenten
DE3531584A1 (de) Verfahren zum codieren von daten fuer die uebertragung von einer ersten zu einer zweiten datenverarbeitungseinheit und schnittstelle zur durchfuehrung dieses verfahrens
DE1296182B (de) Verfahren zur UEbertragung binaerkodierter Informationssignale sowie Kodierer zur Abgabe solcher Signale und mit diesem betreibbarer Dekodierer
DE69530182T2 (de) Datenkompressionsverfahren und Vorrichtung mit Expansionsschutz
DE69932524T2 (de) Verfahren zum handhaben von datenobjekten in vom benutzer definierten datentypen
DE69725280T2 (de) Kompressionsgerät mit arithmetischer Kodierung unter Verwendung eines kontextualen Models, das zu variablen Musterlängen in binären Bilddaten adaptiv ist
EP0980619B1 (de) Verfahren und vorrichtungen zur codierung, übertragung und decodierung digitaler daten
DE2319650B2 (de) Verfahren und Anordnung zum Umwandeln eines Nachrichtensignals aus einem digitalen Codeformat in ein anderes
DE60008871T2 (de) Datenkomprimierungsverfahren und vorrichtung mit eingebetteter lauflängenkodierung unter benutzung von mathematischer laufverarbeitung
DE68927939T2 (de) Monadische Kodierung vom Start-Schritt-Stop-Typ für die Datenkomprimierung
DE19956625C2 (de) Echtzeit-Datensortierung und -reduktion
DE3113189A1 (de) "verfahren und vorrichtung zur umwandlung von digitalen zeichencodes, die von einem datenverarbeitungssystem empfangen oder geliefert werden"
DE2127516A1 (de) Verfahren zur Übertragung binärcodierter Signale von Bildvorlagen oder Schriftvorlagen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7