DE69935811T2 - Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel - Google Patents

Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel Download PDF

Info

Publication number
DE69935811T2
DE69935811T2 DE69935811T DE69935811T DE69935811T2 DE 69935811 T2 DE69935811 T2 DE 69935811T2 DE 69935811 T DE69935811 T DE 69935811T DE 69935811 T DE69935811 T DE 69935811T DE 69935811 T2 DE69935811 T2 DE 69935811T2
Authority
DE
Germany
Prior art keywords
data
entropy
decoding
frequency
coefficients
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
DE69935811T
Other languages
English (en)
Other versions
DE69935811T3 (de
DE69935811D1 (de
Inventor
Wei-ge Issaquah Chen
Ming-Chieh Bellevue Lee
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.)
Microsoft Corp
Original Assignee
Microsoft 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22787314&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69935811(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69935811D1 publication Critical patent/DE69935811D1/de
Publication of DE69935811T2 publication Critical patent/DE69935811T2/de
Publication of DE69935811T3 publication Critical patent/DE69935811T3/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/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • H03M7/48Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
    • 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
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft allgemein gesagt Frequenzdomänen-Audiocodieren und im Besonderen Entropiecodierverfahren, die bei Frequenzdomänen-Audiocodierern und -decodierem eingesetzt werden.
  • Hintergrund
  • In einer typischen Audiocodierumgebung werden Daten, wenn nötig (beispielsweise aus einem analogen Format) in eine lange Sequenz von Symbolen, die als Eingabefolge für den Codierer dienen, formatiert. Die Eingangsdaten werden durch einen Codierer codiert, über einen Kommunikationskanal übermittelt (oder einfach gespeichert) und von einem Decodierer decodiert. Während des Codierens wird die Eingabefolge vorverarbeitet, gesampelt, konvertiert, komprimiert oder auf andere Weise in eine für die Übertragung oder für die Speicherung geeignete Form umgewandelt. Nach der Übertragung Oder der Speicherung hat der Codierer die Aufgabe, die ursprüngliche Eingabefolge zu rekonstruieren.
  • Audiocodiertechniken können in zwei Klassen eingeteilt werden, nämlich in das Zeitdomänenverfahren und das Frequenzdomänenverfahren. Zeitdomänenverfahren, wie beispielsweise ADPCM, LPC arbeiten unmittelbar in der Zeitdomäne, während das Frequenzdomänenverfahren die Audiosignale in Frequenzdomänen überführt, um dort die Kompression auszuführen. Frequenzdomänen-Kompressoren/Dekompressoren (codecs) können weiterhin unterteilt werden in Teilband- oder Transformcodierer, obwohl die Unterscheidung zwischen diesen beiden nicht immer klar ist. Das bedeutet, dass Teilbandcodierer typischerweise Bandpassfilter benutzen, um das Eingangssignal in eine kleine Zahl (beispielsweise 4) von Teilbändern zu teilen, wobei Transformcodierer typischerweise mehrere Teilbänder (und deshalb eine entsprechend große Zahl von Transformkoeffizienten) haben.
  • Die Verarbeitung eines Audiosignals in der Frequenzdomäne Ist hergeleitet sowohl aus der klassischen Signalverarbeitungstheorie als auch aus einem psychoakustischen Modell des Menschen. Psychoakustik übernimmt die Vorteile der bekannten Eigenschaften des Hörers, um den Informationsinhalt zu verringern. Zum Beispiel verhält sich das Innenohr, im Besonderen die Basilarmembran, wie ein Spektralanalysator und überfuhrt die Audiosignale in spektrale Daten, bevor eine weitere neuronale Verarbeitung stattfindet. Frequenzdomänenaudiocodecs nutzen meistens den Vorteil der auditiven Maskierung, die im menschlichen Hörsystem vorhanden ist, während der Modifikation des Originalsignals, um Redundanzen in der Information zu eliminieren. Da das menschliche Ohr diese Veränderungen nicht hören kann, kann man eine effiziente Kompression ohne Verzerrung entwickeln.
  • Die Maskierungsanalyse wird gewöhnlich in Verbindung mit der Quantisierung durchgeführt, so dass Quantisierungsgeräusche bequem „maskiert" werden können. Bei modernen Audiocodierverfahren werden gewöhnlich die quantisierten Spektraldaten durch die Anwendung der Entropiecodierung weiter komprimiert, beispielsweise durch Huffman-Codierung. Die Kompression ist notwendig, weil die Kommunikationskanäle gewöhnlich eine begrenzte zulässige Kapazität oder Bandbreite haben. Es ist häufig notwendig, den Informationsinhalt der Eingangsdaten zu reduzieren, um sie zuverlässig, zumindest jedoch über den Kommunikationskanal zu übermitteln.
  • Außerordentlicher Aufwand wurde bisher aufgewendet, um verlustfreie und verlustbehaftete Kompressionsverfahren für die Reduktion des Umfangs der zu übertragenden oder zu speichernden Daten zu entwickeln. Ein weit verbreitetes verlustfreies Verfahren ist das Huffman-Codieren, welches eine Sonderform der Entropiecodierung ist. Die Entropiecodierung weist verschiedenen Eingabesequenzen Codewörtern zu und speichert alle Eingabesequenzen in einem Codebuch. Die Komplexität der Entropiecodierung hängt ab von der Zahl m möglicher Werte, die eine Eingabesequenz X haben kann. Für kleine m gibt es wenige mögliche Eingabekombinationen, deshalb kann das Codebuch für Nachrichten sehr klein sein (beispielsweise nur wenige Bits, um unzweideutig alle möglichen Eingangssequenzen wiederzugeben). Für digitale Anwendungen entspricht das Codealphabet typischerweise einer Folge von binaren Zahlen {0, 1}, die Codewortlänge wird in Bits gemessen.
  • Es ist bekannt, wenn Eingabefolgen aus Symbolen mit gleicher Ereigniswahrscheinlichkeit bestehen, dass eine optimale Codierung mit Codewörtern einheitlicher Lange vorzunehmen ist. Aber es ist nicht typisch, dass ein Eingabestrom eine einheitliche Wahrscheinlichkeit für das Empfangen einer bestimmten Nachricht hat. In der Praxis sind bestimmte Nachrichteninhalte wahrscheinlicher als andere und Entropiecodierer benutzen den Vorteil solcher Daten korrelationen, um die mittlere Länge der Codewörter in den erwarteten Eingabefolgen zu minimieren. Üblicherweise werden Eingabesequenzen mit fester Länge Codes variabler Länge zugeordnet (oder es werden umgekehrt Eingabesequenzen mit variabler Länge Codes fester Länge zugeordnet).
  • EP-A-0 612 156 (Fraunhofer Gesellschaft für Forschung) vom 24. August 1994 beschreibt einen einzelnen Codierer, der aus verschiedenen Huffman-Code-Tabellen auswählt, die verschiedene Zahlen von Huffman-Codes enthalten (d. h. 8 Werte, 16 Werte oder 32 Werte), abhängig von der Maximalzahl der mit der Tabelle zu codierenden Daten, wobei für verschiedene Spektralbereiche unterschiedliche Codetabellen verwendet werden können. Das Auswählen von Huffman-Code-Tabellen verschiedener Größe sorgt für eine gewisse Anpassbarkeit beim Decodieren, ist aber in vielen Szenarien des Audiodecodierens ineffizient. So können z. B. einige Formen der Run-Length-Codierung bzw. -Dekodierung bestimmte Arten von Wahrscheinlichkeitsverteilungen in Spektralbereichen sehr gut verarbeiten, wo die Huffman-Codierung (auch bei Tabellenauswahl) ineffizient ist (z. B. wo 90 % der Werte in einem Spektralbereich Nullen sind). Die Tabellenauswahl für einen gegebenen Codierer/Decodierer kann eine gewisse Anpassbarkeit bewirken, jedoch nur innerhalb den Grenzen eines gegebenen Codierers/Decodierers selbst.
  • US-A-5 467 087 (Chu Ke-Chiang) vom 14. November 1995 (1995-11-14) bezieht sich auf gewöhnliche Datenverdichtung, nicht auf Audio-Dekomprimierung, und beschreibt die Verwendung verschiedener Komprimierungsverfahren, aber beschreibt nicht die Verwendung verschiedener Decoder zum Entschlüsseln verschiedener Unterbereiche eines gegebenen Datenbereichs. Vielmehr wird das Komprimieren derselben Daten beschrieben, indem mehr als ein Komprimierungsverfahren eingesetzt wird und die Komprimierungsverfahren abgestuft werden.
  • Tewfik A. H. et al: „Enhanced wavelet based audio coder", Signals, Systems and Computers, 1993, Conference Record of the TWenty-Seventh Asilomar Conference on Pacific Grove, CA, USA 1.-3. Nov. 1993, Los Alamitos CA, USA, IEEE Comput. Soc. 1. Nov. 1993 (1993-11-01), Seiten 896-900, XP010096271 ISBN: 0-8186-4120-7, bespricht die Echtzeit-Anwendung einer vereinfachten Version einer Wellen basierten Audiocodierung mit etwas höheren Bit-Raten (64 bis 78 Kbits/sec) und benutzt beim Verdecken von Audio-Segmenten Zeitdaten mit einem plötzlichen Wechsel der Amplituden dann und mit effizienter Quantisierung der Abweichungen und Run-Length-Codierung für Nullen.
  • Übersicht
  • Die Erfindung betrifft ein Verfahren zur Auswahl einer Form der Entropiecodierung für die Frequenzdomänen-Audiocodierung. Im Besonderen wird ein bestimmter, Audioeingabefolgen darstellender Eingabestrom in Frequenzbereiche unterteilt, entsprechend einigen statistischen Kriterien, die aus einer statistischen Analyse von typischen oder aktuell zu codierenden Eingabefolgen abgeleitet werden. Jeder Bereich wird einem Entropiecodierer zugeordnet, der auf den Typ der in diesem Bereich zu codieren Daten optimiert ist. Während des Codierens und des Decodierens wendet ein Modenselektor auf verschiedene Frequenzbereiche das jeweils richtige Entropieverfahren an. Im Voraus können Unterteilungsgrenzen festgelegt werden, die dem Decodierer implizit zur Kenntnis bringen, welches Decodierverfahren für die zu codierenden Daten anzuwenden ist. Oder es kann ein sogenanntes forward adaptive Verfahren benutzt werden, bei dem die Grenzen im Ausgabestrom durch die Indizierung des Wechsels des Codiermodus für die nachfolgenden Daten gekennzeichnet (flagged) sind.
  • Für natürliche Geräusche, etwa solche wie Sprache oder Musik, ist der Informationsinhalt auf niedrige Frequenzbereiche konzentriert. Das bedeutet statistisch, dass die niedrigen Frequenzen mehr Energiewerte ungleich Null (nach der Quantisierung) haben, während die höheren Frequenzbereiche mehr Werte mit Nullen haben, worin sich das Fehlen höherer Frequenzen widerspiegelt. Die statistische Analyse kann benutzt werden, um eine oder mehrere Unterteilungsgrenzen zu definieren, die niedrige von höheren Frequenzbereichen trennt. Zum Beispiel kann eine einzelne Unterteilung so definiert werden, dass das untere Viertel der Frequenzkomponenten unterhalb der Teilung liegt. Alternativ dazu kann man die Teilung so setzen, dass ungefähr eine Hälfte der kritischen Bänder in jedem definierten Frequenzband enthalten ist. (Kritische Bänder sind Frequenzbänder mit ungleichförmiger Breite, die der Empfindlichkeit des menschlichen auditiven Systems für bestimmte Frequenzen entsprechen). Das Ergebnis solcher Unterteilung ist die Definition zweier Frequenzbereiche, von denen der eine vorherrschend Frequenzkoeffizienten ungleich Null, während der andere Frequenzkoeffizienten vorherrschend aus Nullen enthalt. Mit der Vorkenntnis, dass die Bereiche vorherrschend Nullen oder Nicht-Nullen enthalten, kann mit Codierern codiert werden, die auf Null- oder Nicht-Null-Werte optimiert sind.
  • In einer Ausführungsform kann ein vorherrschend Null-Werte enthaltender Bereich mit ei nem Vielfach-Lauflängencodierer (run-length encoder, RLE) codiert werden, beispielsweise ein Codierer, der Sequenzen von Null-Werten mit ein oder mehreren Nicht-Null-Symbolen statistisch korreliert und Codewörtern variabler Lange zu willkürlich langen Eingabesequenzen solcher Null- und Nicht-Null-Werte zuweist. Ähnlich wird der Bereich, der hauptsächlich Nicht-Null-Werte enthält, mit einem Variable-zu-Variable-Entropie-Codierer codiert, wobei ein Codewort mit variabler Lange einer willkürlich langen Eingabesequenz aus Quantisierungssymbolen zugeordnet wird. Ein im Ganzen effizienteres Verfahren wird erreicht, wenn die zugrunde gelegten Codierverfahren entsprechend den Eigenschaften der Eingabedaten gewählt werden. In der Praxis wird die Zahl der Unterteilungen und der Frequenzbereiche in Abhängigkeit von den Datentypen, die zu codieren oder zu decodieren sind, variieren.
  • Kurze Beschreibung der Zeichnungen
  • Die 1 ist ein Blockdiagramm eines Computersystems, das zur Implementierung von Frequenzdomänenaudiocodierung und -decodierung benutzt werden kann, welches Entropiecode-Modenwechsel verwendet.
  • Die 2 ist ein Flussdiagramm, welches Codieren und Decodieren von Audiodaten durch einen Frequenzdomänen-Audiocodierer zeigt.
  • Die 3 stellt einen Frequenzbereich dar, der entsprechend der Akustik unterteilt ist.
  • Die 4 stellt ein Transmissionsmodell dar, welches Entropiecode-Modenwechsel verwendet.
  • Die 5 ist ein Flussdiagramm, das das Erstellen eines Codebuchs mit variablen Längeneintragen für Symbolgruppierungen mit variabler Lange zeigt.
  • Die 6-12 zeigen das Erstellen eines Codebuchs gemäß 5 für ein Alphabet {A, B, C}.
  • Die 13 zeigt ein spektrales Schwellengitter, welches beim Codieren von Audiosequenzen mit sich wiederholenden Spektralkoeffizienten eingesetzt wird.
  • Die 14 zeigt die Implementierung des Entropiecodierers gemäß 2.
  • Detaillierte Beschreibung
  • Beispielhaftes Einsatzumfeld
  • Mit 1 und der folgenden Diskussion ist beabsichtigt, eine kurze allgemeine Beschreibung einer geeigneten Rechnerumgebung zu liefern, in die die Erfindung implementiert werden kann. Während die Erfindung allgemein im Kontext von computerausführbaren Befehlen eines Computerprogramms beschrieben wird, welches auf einem Personal-Computer läuft, werden Fachleute erkennen, dass die Erfindung auch in Kombination mit anderen Programm-Modulen implementiert werden kann. Allgemein gesagt, schließen Programm-Module Routinen, Programme, Komponenten, Datenstrukturen usw. ein, die spezielle Aufgaben ausführen oder die spezielle abstrakte Datentypen implementieren. Weiterhin werden Fachleute erkennen, dass die Erfindung mit anderen Computer-System-Konfigurationen ausgeführt werden kann, einschließlich Handheld-Geraten, Multiprozessor-Systemen, mit Mikroprozessoren ausgerüstete oder programmierbare Endkundenelektronik, Minicomputern, Mainframe-Computern und ähnlichen. Die vorgestellte Ausführungsform der Erfindung ist auch in verteilter Rechner-Umgebung ausführbar, in der Programme in Fernverarbeitungseinrichtungen ausgeführt werden, die durch ein Kommunikationsnetzwerk miteinander verknüpft sind. Es können aber auch Ausführungsformen der Erfindung auf einem Einzel-Rechner ausgeführt werden. In einer verteilten Rechner-Umgebung können Programm-Module in Datenspeichereinrichtungen abgelegt sein, die lokal als auch remote vorhanden sind.
  • Bezugnehmend auf 1 schließt ein beispielhaftes System zur Implementierung der Erfindung einen Computer 20 ein, umfassend eine Prozessoreinheit 21, einen Systemspeicher 22 und einen Systembus 23, der untereinander verschiedene Systemkomponenten einschließlich den Systemspeicher mit der Prozessoreinheit 21 verbindet. Die Prozessoreinheit kann eine von verschiedenen kommerziell verfügbaren Prozessoren sein, einschließlich Intel x86, Pentium oder kompatible Mikroprozessoren von Intel oder anderen, den Alpha-Prozessor von Digital, oder den PowerPC von IBM oder Motorola. Ebenfalls können Doppelmikroprozessoren oder andere Multiprozessor-Architekturen als Prozessoreinheit 21 verwendet werden.
  • Der Systembus kann einer der verschiedensten Typen von Bus-Strukturen sein, einschließlich solcher wie Speicher-Bus oder Speicher-Controller, ein Peripherbus, oder ein lokaler Bus, der von unterschiedlichsten konventionellen Busarchitekturen, wie etwa PCI, AGP, VESA, Microchannel, ISA oder ESA Gebrauch macht, um nur einige zu nennen. Der Systemspeicher schließt einen Nur-Lese-Speicher (ROM) 24 und einen Direktzugriffsspeicher (RAM) 25 ein. Eine BIOS-System-Routine ist im ROM 24 gespeichert, welche die grundlegenden Routinen enthalt, die den Informationsfluss zwischen den Elementen des Computers 20 unterstützen, etwa während der Anlaufphase.
  • Der Computer 20 umfasst ferner ein Festplattenlaufwerk 27, ein Magnetplattenlaufwerk 28, um von einer Wechselplatte 29, einem optischen Plattenlaufwerk, oder einer CD-ROM-Scheibe 30 oder von anderen optischen Medien, beispielsweise zu lesen oder auf ihnen zu schreiben. Das Festplattenlaufwerk 27, das Magnetplattenlaufwerk 28 und das optische Plattenlaufwerk 30 sind über ein Festplattenlaufwerk-Interface 32 mit dem Systembus 23 verbunden, beziehungsweise über ein Magnetplattenlaufwerk-Interface 33 und ein Interface des optischen Plattenlaufwerks 34. Die Laufwerke und ihre zugehörigen computerlesbaren Medien ermöglichen dem Computer 20 die nichtflüchtige Speicherung der Daten, der Datenstrukturen, der computerausführbaren Befehle usw.. Obwohl sich die Beschreibung der computerlesbaren Medien auf ein Festplattenlaufwerk, eine magnetische Wechselplatte, oder eine CD bezieht, wird der Fachmann erkennen, dass andere Medienarten, die computerlesbar sind, wie etwa Magnetkassetten, Flashmemory-Karten, digitale Videoplatten, Bernoulli-Kassetten oder ähnliche, auch in dieser exemplarischen Computer-Umgebung benutzt werden können.
  • Eine Anzahl von Programm-Modulen können auf den Laufwerken und im RAM 25 gespeichert werden, einschließlich ein Betriebssystem 35, ein oder mehrere Anwendungsprogramme 36 (beispielsweise ein Internet-Browserprogramm) oder andere Programm-Module 37 oder Programmdaten 38.
  • Ein Anwender kann Befehle und Informationen über eine Tastatur 40 oder eine Zeigeeinrichtung, wie etwa eine Maus, in den Computer 20 eingeben. Andere (nicht gezeigte) Eingabeeinrichtungen können ein Mikrophon, ein Joystick, ein Gamepad, eine Satellitenschüssel, ein Scanner oder ähnliches sein. Diese und andere Eingabeeinrichtungen werden oft über ein serielles Interface 46 mit der Prozessoreinheit 21 verbunden, die an den Systembus gekoppelt ist; es können aber auch andere Schnittstellen, wie etwa eine parallele Schnittstelle, eine Spiele-Schnittstelle oder ein universeller serieller Bus (USB) vorhanden sein. Ein Monitor 47 Oder eine andere Art eines Displays ist ebenfalls mit dem Systembus 23 über eine Schnittstelle verbunden, wie etwa über einen Videoadapter 48. Zusätzlich zum Monitor umfassen Personalcomputer typischerweise noch andere (nicht dargestellte) periphere Ausgabeeinrichtungen, wie etwa Lautsprecher oder Drucker.
  • Es wird erwartet, dass der Computer 20 in einer Netzwerk-Umgebung arbeitet, wobei er logische Verbindungen mit einem oder mehreren Fernrechnern, etwa dem Fernrechner 49 benutzt. Der Fernrechner 49 kann ein Netz-Server, ein Router, eine Peereinrichtung oder ein anderer üblicher Netzwerkrechner sein und typischerweise viele oder alle Elemente umfassen, die in Bezug auf den Computer 20 beschrieben sind, obwohl nur eine Datenspeichereinrichtung 50 in der 1 dargestellt ist. Der Computer 20 kann den Fernrechner 49 über Internetverbindung kontaktieren, die durch ein Gateway 55 (beispielsweise einen Router, eine Festleitung oder andere Netzverbindungen), eine Modemverbindung 54, ein lokales Intranet (LAN) 51 oder ein wide area network (WAN) 52 hergestellt ist. Es soll betont werden, dass die dargestellten Netzwerkverbindungen exemplarisch sind und dass andere Einrichtungen zur Herstellung von Kommunikationsverbindungen zwischen den Computern benutzt werden können.
  • Die vorliegende Erfindung soll für den mit Programmiertätigkeit vertrauten Fachmann anhand von Aktionen und symbolischen Repräsentationen der Operationen des Computers 20 beschrieben werden, soweit nicht anderweitig angegeben. Solche Aktionen und Operationen werden manchmal mit computerausführbar bezeichnet. Es wird hervorgehoben, dass Aktionen und symbolische Repräsentationen der Operationen folgendes einschließen sollen:: die Manipulation von elektrischen Signalen, die Datenbits repräsentieren, durch die Prozessoreinheit 21, welche im Ergebnis eine Transformation oder Reduktion der elektrischen Signalrepräsentation liefert; die Behandlung von Datenbits auf Speicherorten im Speichersystem (einschließlich Systemspeicher 22, Festplattenlaufwerk 27, Floppyplatte 29, oder CD-ROM 31), wobei Computersystemoperationen rekonfiguriert oder anderweitig geändert werden, oder andersartige Verarbeitungen von Signalen. Die Speicherorte, an denen Datenbits bearbeitet werden, sind physikalische Orte, die bestimmte elektrische, magnetische oder optische Eigenschaften haben, die den Datenbits entsprechen.
  • Die 2 zeigt ein Transmissionsmodell für die Weiterleitung von Audiodaten über einen Kanal 210. Die Transmissionsquelle kann eine Rundfunk-Livesendung, gespeicherte Daten oder Informationen sein, die über drahtgebundene/drahtlose Kommunikationsverbindungen (beispielsweise ein LAN oder das Internet) übermittelt werden. Es wird vorausgesetzt, dass der Kanal 210 eine begrenzte Bandbreite hat, und dass deshalb die Kompression der Quel lendaten 200 erwünscht ist, bevor die Daten zuverlässig über den Kanal übermittelbar sind. Es soll angemerkt werden, dass die Erfindung, obwohl sich die Diskussion auf die Transmission von Audiodaten konzentriert, auf die Übertragung anderer Daten angewendet werden kann, etwa solche wie Audio/Video-Informationen mit eingebetteten Audiodaten (beispielsweise im MPEG-Datenstrom gemultiplext) oder andere Datenquellen mit komprimierbaren Datenstrukturen (beispielsweise kohärente Daten).
  • Wie dargestellt ist die Datenquelle 200 der Eingang für einen Transformationscodierer 202 von Zeit- auf Frequenzdomänen, wie etwa eine Filterbank oder ein Transformator vom Typ „discrete-cosine". Der Transformationscodierer 202 ist für das Konvertieren einer kontinuierlichen oder vereinzelten Zeitdomänen-Eingabefolge, wie etwa eine Audiodatenquelle, in Mehrfach-Frequenzbänder mit vorgegebenen (obwohl manchmal auch unterschiedlichen) Bandbreiten geeignet. Diese Bänder können daraufhin unter Verwendung eines menschlichen auditiven Wahrnehmungsmodells 204 analysiert werden (zum Beispiel mit einem psychoakustischen Modell), um die Signalkomponenten zu bestimmen, die ohne Hörverlust sicher reduziert werden können. Zum Beispiel ist gut bekannt, dass bestimmte Frequenzen unhörbar sind, wenn bestimmte andere Gerausche oder Frequenzen im Eingangssignal vorhanden sind (simultane Maskierung). Konsequenterweise können solche unhörbaren Signale sicher aus dem Eingangssignal entfernt werden. Der Gebrauch eines menschlichen auditiven Modells ist gut bekannt, beispielweise die MPEG 1, 2, oder 4 Normen. (Es wird angemerkt, dass solche Modelle auch mit einer Quantisierungsoperation 206 verknüpft werden können).
  • Nach dem Ausfuhren der Transformation 202 von Zeit- auf Frequenzdomänen werden Frequenzkoeffizienten aus jedem Bereich quantisiert 206, um jeden Koeffizienten (Amplitudengrößen) auf einen Wert zu konvertieren, der aus einer endlichen Menge von möglichen Werten genommen ist, in der jeder Wert eine Größe in Bits hat, die den zugewiesenen Frequenzbereich repräsentiert. Der Quantisierer kann ein konventioneller gleichförmiger oder ungleichförmiger Quantisierer sein, wie etwa ein midriser oder midtreader Quantisierer mit (oder ohne) Speicher. Das allgemeine Ziel der Quantisierung ist es, eine optimale Bitzuordnung, zur Repräsentation der Eingabesignaldaten, zu identifizieren, beispielsweise um die Verwendung von vorhandenen Codier-Bits zuzuteilen, um das Codieren von (akustischen) signifikanten Teilen der Quellendaten sicherzustellen. Verschiedene Quantisierungsmethoden können verwendet werden, wie etwa die der Quantisierung nach step size prediction, um eine gewünschte Bit Rate zu treffen (angenommen seien konstante Bit-Raten). Nachdem die Quelle 200 quantisiert wurde, werden die resultierenden Daten entropiecodiert 208 (siehe die Diskussion zu 6 bis 13).
  • Die entropiecodierte Ausgabefolge wird über den Kommunikationskanal 210 übermittelt (oder für eine spätere Übertragung gespeichert). Die empfangende Endstation 216 implementiert einen Rück-Codierprozess, beispielsweise eine Reihe von Schritten zum Rückgängigmachen der Codierung der Quellendaten 200. Das heißt, dass die über den Kommunikationskanal 210 empfangenen codierten Daten als Eingabefolge für einen Entropiedecodierer 212 genommen werden, der rückwärts das Codebuch-Nachschlagen ausführt, um die codierte Ausgangsfolge in eine Approximation der ursprünglich quantisierten Ausgabefolge für die Eingabesymbolfolge 200 zu konvertieren. Diese angenäherten Daten werden dann von einem Dequantisierer 214 und einen Zeit-/Frequenzdomänencodierer 218 abgearbeitet, um die ursprüngliche Codieroperation umzukehren. Im Ergebnis entstehen rekonstruierte Daten 220, die den ursprünglichen Quellendaten ähnlich sind. Es soll bemerkt werden, dass die rekonstruierten Daten 220 nur den ursprünglichen Quellendaten angenähert sind, denn die angewendeten Schritte 204 bis 208 sind verlustbehaftete Prozesse.
  • Eine mögliche Implementierung für das Übertragungsmodell ist ein Anwenderprogramm (client application), welches das Ausführen, das Anzeigen oder das Echtzeitabspielen der Daten veranlasst, die über eine Netzwerkverbindung von einem Server/einer Server-Anwendung angefordert werden. Zum Beispiel kann der Clientrechner ein Streaming-Übertragungssystem verwenden, welches adaptive Bandbreitenreservierung bereitstellt. (Eines dieser Streamingformate ist das Advanced Streaming Format von Microsoft). Eine Streamingumgebung steht im Gegensatz zu traditionellen Netzwerkprogrammen, well sie die optimierte Datenbereitstellung für die Bedürfnisse des Retrievals erlaubt, etwa wie die Beschränkung der Zeilengeschwindigkeit. Eine herausgehobene Eigenschaft der Streamingdaten ist, dass die Daten in Echtzeit fortschreitend betrachtet werden können, so wie sie vom Client empfangen werden. Es wird angemerkt, dass es beabsichtigt ist, dass die verarbeiteten Daten für späteres Retrieval durch einen Client gespeichert werden können und dass dieses Retrieval in einem Nicht-streaming-Format ausgeführt werden kann (beispielsweise über eine kleine Playback-Anwendung).
  • Das Streaming-Format definiert die Struktur der synchronisierten Objektdatenströme und erlaubt es, jedes Objekt, beispielsweise Audio- oder Videodatenobjekte, Scripts, ActiveX controls oder HTML-Dokumente, in den Datenstrom einzufügen. Eine Anwenderprogrammschnittstelle (eine solche wäre das API von Microsoft Audio Compression Manager) wird be reitgestellt, um die Anwenderunterstützung des Streaming-Formats zu erleichtern. Die Übertragung von Streaming-Formatdaten über den Kommunikationskanal 210 verlangt, dass die Quelleninformation in eine für das Netzwerk geeignete Form konvertiert werden muss. Im Unterschied zu den traditionellen Paketen, die Routinginformationen und Daten enthalten, enthalten Streamingpakete einen priorisierten Mix von Daten verschiedener Objekte im Strom, so dass die Bandbreite zuerst für die Objekte mit höherer Priorität eingerichtet werden kann. Am Empfangsende 216 werden die Objekte im priorisierten Datenstrom für die Verwendung durch den Empfänger rekonstruiert.
  • Weil Daten wahrscheinlich so verwendet werden, wie sie empfangen werden, ist der Streaminginhaltempfindlich gegen Übertragungsverzögerungen. Wenn Daten nicht zuverlässig ankommen, oder wenn die Übertragungsgeschwindigkeit unter ein akzeptables Minimum fällt, werden die Daten unbrauchbar (beispielsweise Playback oder die Videosequenz schlägt fehl). Konsequenterweise verfangen bandbreitenintensive Daten (etwa solche wie die des Audiovorlaufs) eine signifikante Kompression, um sicherzustellen, dass sie der Bandbreitenanforderung des Kommunikationskanals 210 entsprechen. Da der Grad einer verlustbehafteten Kompression notwendigerweise die Qualität des reproduzierten Signals beeinflusst, sollte der Server auswählbare Codierungen für verschiedene Client-Netzwerk-Verbindungsgeschwindigkeiten zur Verfügung stellen (oder er sollte ein adaptives Feedbacksystem verwenden, um den Durchsatz auf Echtzeit einzustellen).
  • Eine besonders effektive Methode des Codierens der Frequenzkoeffizienten der Quellendaten 200 ist das Entropiecodieren, um die verlässliche Übertragung über den Kommunikationskanal 210 sicherzustellen. Wie noch diskutiert werden soll, kann man auf die Datenkohärenz durch die Anwendung verschiedener Codiermethoden abheben, die auf verschiedene Teile der Eingabedaten optimiert sind. Das Entropiecodieren ist dann effektiv, wenn die Symbole eine ungleichförmige Wahrscheinlichkeitsverteilung haben. Entropiecodiermethoden, die viele Eingangssymbole gruppieren, wie etwa Variable-zu-Variable- oder die weiter unten diskutierten RLE-Codierer, sind gut geeignet, um sich auf die Datenkohärenz zu konzentrieren. Der Gebrauch verschiedener Codiermethoden für verschiedene Frequenzbereiche erlaubt ein optimales Codieren, wenn die Codierer auf Wahrscheinlichkeitsverteilungen für jeden dieser Bereiche zugeschnitten sind.
  • Die 3 illustriert ein Zeitdomänensignal, welches in die Frequenzdomäne übersetzt ist. Auf der x-Achse 1st ein Frequenzbereich 300 von Null 302 bis zu einer Maximalfrequenz 304 aufgetragen. Im Bereich 300 wurde eine Unterteilung 306 definiert, wo die Unterteilung durch die statistische Analyse eines erwarteten Eingabestroms bestimmt ist (beispielsweise durch während des Trainings des Entropiecodebuchs erhaltene statistische Information oder durch adaptive Analyse der aktuellen Eingabefolge). Dieses statistische Modell wird für das Codieren der aktuellen Eingabefolge 308 angewendet.
  • Ein Ansatz zur Vornahme einer Teilung ist es, wie oben diskutiert, einen bestimmten Prozentsatz von Frequenzen oder kritischen Bändern unterhalb der Grenze anzuordnen.
  • Ein alternatives Verfahren ist es, statistische Grunddaten zu sammeln, etwa solche wie die Wahrscheinlichkeit von Nullen oder Nicht-Nullen entsprechend den Wahrscheinlichkeitsverteilungen für jede Frequenz. Die Untersuchung der Statistik dieser Frequenzen zeigt einen graduellen Wechsel über die Frequenzen und es kann eine Teilungsgrenze ausgewählt werden, so dass die Verteilungen zwischen den einzelnen Teilungen ähnlich sind. Es sei bemerkt, dass Frequenzunterteilungen gegen die Samplingrate der Eingabefolge und der erwarteten Bit-Rate empfindlich sind. Die Samplingrate und die Bit-Rate bestimmen die stochastische Eigenschaft der quantisierten Frequenzkoeffizienten. Diese Eigenschaft ist grundlegend verantwortlich für die Bestimmung der Lage der Unterteilungen.
  • Ein anderes optimales Verfahren ist die adaptive Lokalisierung einer Unterteilung durch das Ausführen einer ausgiebigen Suche zur Bestimmung einer 'optimalen' Grenzlage. Das bedeutet, dass eine optimale Lösung darin besteht, zu versuchen, jede Frequenz (oder eine Untermenge davon) als Teilungsort zu nehmen, eine Entropiecodierung vorzunehmen und zu prüfen, welche potentielle Grenzposition ein Minimum an Bits für die Codierung liefert. Obwohl vom Rechenumfang aufwendiger, ist bei einer vollständigen Suche die Kompression (oder einer fast vollständigen, wenn Frequenzuntermengen benutzt werden) von Vorteil, auch wenn die Rechnerkasten von Bedeutung sein sollten, denn diese kann die Kosten aufwiegen, wenn mehrfache Unterteilungen benutzt werden.
  • Durch die Aufteilung des Frequenzspektrums 300 in separate Frequenzunterbereiche 310, 312 kann ein Codierer verschiedene Codierschemata anwenden, die auf das Codieren verschiedener Frequenzbereiche optimiert sind. Dies unterscheidet sich von früheren Verfahren, wie etwa von Entropiecodierschemata, die verschiedene Entropiecodiertabellen entsprechend den Eigenschaften der zu codieren Daten ersetzen. Diese früheren Verfahren sind in ihrer Flexibilität wegen eines einzigen Entropiecodieralgorithmusses dadurch begrenzt, dass eine einzige Codiertabelle nicht auf unterschiedliche Arten von Eingabedaten eingehen kann und dass ein Overhead vorhanden ist, durch die Identifizierung verschiedener zu benutzender Tabellen. Ein Verfahren, welches für einen einzigen Typ von Daten optimiert ist, kann nicht effizient auf einen anderen Typ von Daten angewendet werden.
  • In der beschriebenen Ausführungsform ist das ausgewählte Teilungskriterium für den Bereich 300 die Wahrscheinlichkeit C(F) (Y-Achse), dass ein bestimmtes spektrales Ereignis eine Folge von Koeffizienten bei Oder nahe bei einer bestimmten Intensität (beispielsweise Null) ist. Unter Zuhilfenahme der Codebücherstellung kann für eine beispielhafte Eingabefolge die Wahrscheinlichkeit, Nullwerte zu erhalten, vorausberechnet werden. Wie dargestellt hat das Eingabesignal 308 bei der angezeigten Unterteilung 306 eine hohe Wahrscheinlichkeit, Null zu sein. (Die Position des Teilungstrenners 306 war so gewählt worden, dass 80 % Oder 90 % der Eingabefolge hinter dem Unterteiler Null Oder fast Null sein wurden.) Es wird angenommen, dass am Minimum ein Eingabesignal 308 in zwei Bereiche unterteilt wird, wobei jeder Bereich eine Datenstruktur aufweist, die für die Kompression durch verschiedene Codierverfahren am besten geeignet Ist. Bei der vorgestellten Ausführungsform hat ein Bereich ursprünglich Null-Werte, während der andere ursprünglich Werte ungleich Null hat. Daher werden zwei Codierer benutzt, die jeweils auf die Datentypen in den entsprechenden Bereichen optimiert sind. Während die vorgestellte Anwendung die Frequenzkoeffizienten in zwei Bereiche teilt, können auch mehr als zwei Bereiche definiert werden, von denen jeder einen eigenen optimierten Codierer hat oder es können verschiedene Bereiche ähnliche Charakteristika haben und dadurch denselben Codierer beschäftigen.
  • Für das Codieren des fast nur aus Nicht-Nullen bestehenden Bereichs 310 kann ein Entropiecodierer verwendet werden, wie er in den 6 bis 13 beschrieben wird. Wie weiter unten diskutiert wird, Ist das Codierverfahren der 6 bis 13 zum Codieren von Audioeingabedaten mit Werten ungleich Null besonders gut geeignet. Für den Bereich 312, der fast nur aus Nullen besteht, wird ein Codierer verwendet, der auf solche Daten optimiert Ist. In der vorgestellten Ausführungsform, well er für das Codieren von Daten mit vorherrschenden Werten optimiert ist (beispielsweise Nullen) wird ein Lauflängencodierer verwendet. 13 zeigt einen RLE-basierten Entropiecodierer, der den Bereich 312, der hauptsachlich Nullen enthalt, effektiv codieren kann.
  • Die 4 zeigt ein Transmissionsmodell für die Übertragung von Audiodaten über den Ka nal (siehe 2), in dem vielfache Entropiecodier-/Decodierverfahren angewendet werden, um die Eingangsdaten 200 zu manipulieren. Es ist bekannt, dass die Audioquelldaten 200 Werte nur innerhalb weniger Frequenzbereiche haben. Wie oben zu 2 diskutiert, können Quelldaten 200 in Frequenzdomänen konvertiert 202, aufgrund eines psychoakustischen Modells 204 reduziert und quantisiert 206 werden. Da die Quantisierung eine bedeutende Zahl von Fast-Null-Ausgabewerten liefern kann, kann ein Entropiecodierer 208 auf die Codierung dieser quantisierten Ausgangsfolge optimiert werden.
  • Nach der Quantisierung tendieren die Spektralkoeffizienten der quantisierten Daten auf die Wiedergabe des Informationsinhalts von typischen Audiodaten. Die Analyse der Quantisierungskoeffizienten zeigt, dass diese bei niedrigen Frequenzbereichen nahezu fast nur Nicht-Null- und bei höheren Frequenzen fast nur Null-Koeffizienten sind. Deshalb kann für Frequenzunterteilungen an bestimmten Frequenzorten ein Modenselektor 400 festlegen, welcher Codierer zu verwenden ist, entsprechend dem zu codierenden Frequenzbereich.
  • Die Bestimmung der Platzierung der Unterteilung kann auf eine statistische Analyse basiert werden, die denjenigen unter bekannten Codierern identifiziert, der für verschiedene Unterbereiche die jeweils bessere Codiereffizienz liefert. In einer Konfiguration wird die Analyse vor dem Codieren oder Decodieren bezüglich einer beispielhaften Eingabefolge durchgeführt. Dies erlaubt die Vorherbestimmung von Teilungsorten und entsprechenden Codierern für jeden Unterbereich, so dass kein Overhead für den Flag-Wechsel in verwendbaren Codierern eingebracht werden muss.
  • Alternativ dazu kann eine statistische Analyse der vorliegenden Daten (in Echtzeit oder offline) durchgeführt werden. In dieser Konfiguration muss, obwohl der Codierer/Decodierer im Voraus bekannt ist, ein Flag in den codierten Datenstrom eingebettet werden, um die Wechsel der verwendbaren Codierer anzuzeigen. Wie oben angesprochen können verschiedene mögliche Teilungsorte solange getestet werden, bis ein gewisser Grad von Codiereffizienz für jeden Unterbereich erreicht Ist. Der Empfang eines Flags durch einen Codierer zeigt das Ende des Unterbereichs an und der Wert des Flags gibt an, welcher Codierer für die nachfolgenden Daten zu verwenden ist.
  • Obwohl das Einfugen von Markern einen gewissen Overhead in den Codier-/Decodierprozess einbringt, stellen solche Marker eine Verbesserung gegenüber den Codiermethoden nach dem Stand der Technik dar. Zum Beispiel seien die vorgestellten Ausführungsformen mit traditionellem Entropiecodieren (siehe beispielsweise MPEG 1, 2, Oder 4) von Audiodaten verglichen. Ein traditionelles System verwendet einen einzigen Entropiecodierer für alle Daten, wobei verschiedene Codebücher mit jedem der vielen kritischen Bänder der Frequenzbereiche der Eingangsdaten verknüpft werden (gewöhnlich 24 oder mehr Bänder, abhängig von der Samplingrate). An jedem kritischen Bandübergang, es seien 24 Bänder angenommen, ist ein 2-Bit-Flag (oder ein längeres) erforderlich, um anzuzeigen, welches von 24 Codebüchern verwendet werden soll, um die Daten des Bandes zu codieren. (5 Bits sind notwendig um 24 Zustände nachzuvollziehen (track). Das Flag selbst kann in weniger Bits wirksam codiert werden). Dies steht im scharfen Gegensatz zu den vorgestellten Ausführungsformen, welche entweder überhaupt keinen Flag benötigen oder bei dem Gebrauch von Flags gegenüber früheren Verfahren eine höhere Effizienz besitzen, es sei denn, die Zahl der Unterbereiche wird mit der Zahl der kritischen Bänder vergleichbar und die Zahl der Codierverfahren erreicht die Zahl der Tabellen. Das bedeutet, dass bei jeder Codierung, die kritische Bänder verwendet, 24 Unterbereiche vorhanden sind, die ein 2-5-Bit-Flag erfordern, um anzuzeigen, welche Codiertabelle zu verwenden ist. Im Gegensatz dazu können die vorgestellten Ausführungsformen nur 2 oder drei Unterbereiche haben und haben daher viel weniger Overhead.
  • Wie gezeigt, gibt es N vorausbestimmte Codierer 402-408, wobei jeder darauf optimiert ist, einen Frequenzbereich mit Daten mit vorherrschender Charakteristik zu codieren. Das bedeutet nicht, dass es notwendigerweise N besondere Eingabebereiche gibt, weil verschiedene Frequenzbereiche ähnliche statistische Charakteristika ihrer Daten haben könnten, und dass deshalb nur derselbe Codierer verwendet werden konnte. In dem vorgestellten Beispiel gibt es nur zwei Bereiche (eine Unterteilung), die jeweils einem niedrigen (hauptsächlich Nicht-Null-Koeffizienten) und einem hohen (hauptsachlich Null-Koeffizienten) Frequenzbereich entsprechen. Deshalb werden die meisten Null-Werte hinter der Unterteilung mit einem Codierer vom RLE-Typ (siehe beispielsweise 13) und die Daten vor der Unterteilung mit einem Entropiecodierer vom Typ Variable-zu-Variable-Entropie codiert.
  • Im allgemeinen Fall jedoch, wenn einmal die statistische Information für eine bestimmte Eingabefolge zur Verfügung steht, kann unter verschiedenen Codierern der am besten geeignete Codierer ausgewählt werden, um die Eingabefolge zu komprimieren. Zum Beispiel können Codierverfahren – wie etwa traditionelles Huffman-Codieren, Vektor-Huffman-Varianten, RLE-Codieren usw. – optimiert und deren Codebücher trainiert werden für Eingabefolgen mit speziellen Charakteristika, wie etwa hohe Spektralwerte, niedrige Spektralwerte, gemischte oder alternierende Spektralwerte oder einige andere gewünschte/wahrscheinliche Eigenschaften. Im Gegensatz zu früherem Gebrauch eines einzelnen Codierers für alle Eingabefolgen decken die dargestellten Konfigurationen verschiedene Codierverfahren ab, entsprechend der besten Übereinstimmung zwischen einem statistischen Profil für eine Eingabefolge und dem statistischen Profil für die Daten, auf die ein Codierbuch trainiert wurde.
  • Nach der Festlegung, welcher Codierer 402-406 benutzt werden soll, setzt sich die Bearbeitung wie diskutiert in Bezug auf 2 für die Obertragung der Daten zu einem Empfänger 216 für das Decodieren fort. Zu bemerken ist, dass ein Inverse-Mode-Selector nicht aufgezeigt ist. Ein Modenwechsler ist notwendig (beispielsweise als Teil des Codierers 212 in 2), um eine ordentliche Auswahl für einen Codierer zu treffen, der die Arbeit des Modenselektors 400 reversiert. Dennoch können – wie oben diskutiert, Bereichstrennorte im Voraus bestimmt werden, so dass ihre Identifikation während des Codierens anwendbar bleibt. Oder, für das dynamische adaptive Codieren/Decodieren können eingebettete Flags verwendet werden, um die Codiererauswahl anzustoßen. Der Gebrauch von Flags ist gleichbedeutend mit der Verwendung eines Modenselektors und der Modenselektor kann so beschaffen sein, dass er sowohl für vorbestimmte als auch für adaptiv gelegte Teilungen arbeitet.
  • Die 5 ist ein Flussdiagramm, welches ein bevorzugtes Verfahren für die Erstellung eines Codebuchs eines Entropiecodierers für Eingabefolgen mit hoher Wahrscheinlichkeit an Nicht-Null-Frequenzkoeffizienten hat. Im Besonderen und im Gegensatz zum früheren Stand der Technik illustriert 5 die Erstellung eines Codes, welcher Codezuordnungen mit variabler Lange zu Symbolgruppierungen mit variabler Länge hat. (Der altere Stand der Technik verlangt entweder Festlangencodes oder Festlangenblocke für Eingabefolgen). Die bevorzugten Implementationen überwinden die Ressourcenbedingung beim Vektorcodieren großer Dimensionen und die Unanwendbarkeit des Codierens in Wörter mit gleicher Lange dadurch, dass sie einen entropiebasierten Variable-zu-Variable-Code bereitstellen, bei dem Codewörter mit variabler Lange benutzt werden, um Sequenzen mit variabler Länge X zu codieren. Die Ressourcenbedingung kann durch das Setzen eines festen Maximalumfangs des Codebuchs willkürlich beschnitten werden. Dieses Codebuch wird wie folgt erstellt.
  • Man lässt jedes yi Menge von Quellensymbolen repräsentieren {xj}, mit 1 <= j <= Ni, bei einer Wahrscheinlichkeit Pi des Ereignisses innerhalb des Eingabestroms. Jede Menge wird einem korrespondieren Codewort mit einer Länge von Li Bits zugewiesen. Unter der Annahme, dass jedes xi aus einem festen Alphabet mit vorbestimmtem Umfang entnommen ist, ist es die Aufgabe, die Gleichung L = Σi[(Li·Pi)/Ni]zu minimieren.
  • Anstelle der Suche nach einer allgemeinen Lösung des Problems wird das Problem unterteilt in zwei verschiedene Aufgaben. Die erste Aufgabe ist die Identifizierung einer (suboptimalen) Gruppierung einer Menge von Eingabesymbolen {xi} über einen empirischen Ansatz, der unten beschrieben wird. Die zweite Aufgabe ist die Zuweisung eines Codes vom Entropietyp für die gruppierten Symbole {yi}. Es sei bemerkt, dass es bekannt ist, dass wenn die Quelle nicht kohärent ist (beispielsweise ist die Eingabefolge unabhängig oder ohne Speicher), jede Gruppierung, die dieselbe Konfiguration von {Nj} hat, die gleiche Codiereffizienz erreichen kann. In dieser Situation wird die erste Aufgabe inkonsequent.
  • Um die erste Aufgabe zu lösen, wird eine triviale Gruppierung 500 vorbereitet, etwa so {yi} = {xi}. Diese Ursprungskonfiguration setzt voraus, dass ein beispielhafter Eingabestrom benutzt wird, um die Erstellung des Codebuchs zu trainieren. Es wird vorausgesetzt, dass ein Computer mit Softwarekonstruktionen so programmiert werden kann, dass Datenstrukturen den Empfang eines jeden Symbols aus der Eingabefolge nachvollziehen. Solche Datenstrukturen können als Binar-Typ mit Baumstruktur, als Hash-Tabelle oder als Kombinationen dieser beiden implementiert werden. Andere äquivalente Strukturen können ebenfalls benutzt werden.
  • Nach der Festlegung der trivialen Gruppierung wird die Ereigniswahrscheinlichkeit für jedes yi berechnet 502. Diese Wahrscheinlichkeit wird in Bezug auf jede beispielhafte Eingabefolge bestimmt, und wird verwendet, um die Codebücherstellung zu trainieren. Wenn weitere Symbole zu der Symboldatenstruktur hinzugefugt werden, werden die Wahrscheinlichkeiten dynamisch angepasst.
  • Als Nächstes wird die wahrscheinlichste Gruppierung yi identifiziert 504 (bezeichnet mit ymp). Wenn 506 das Symbol mit der höchsten Wahrscheinlichkeit eine Gruppierung von vorhergehenden Symbolen mit geringerer Wahrscheinlichkeit ist, dann wird die Gruppierung aufgeteilt 508 in Symbolbestandteile und die Verarbeitung wird von Schritt 502 erneut gestartet. (obwohl Symbole kombiniert werden können, behalten die Gruppen die Erinnerung an alle Symbole in ihnen, so dass die Symbole extrahiert werden können).
  • Wenn das Symbol keine Gruppierung Ist, dann läuft die Verarbeitung in Schritt 510 weiter, in dem die höchst wahrscheinliche Gruppierung versuchsweise mit einzelnen Symbolerweiterungen xi's erweitert wird. Vorzugsweise wird ymp mit jedem Symbol aus dem X-Alphabet erweitert. Dennoch kann ein Prediktor nur benutzt werden, um eine Erweiterungsmenge zu generieren, die nur wahrscheinliche Erweiterungen enthalt, in dem Fall, dass das Alphabet sehr groß ist und es bekannt ist, dass viele Erweiterungen unwahrscheinlich sind. Zum Beispiel kann ein solcher Prediktor auf semantischer oder kontextueller Bedeutung basieren, so dass sehr unwahrscheinliche Erweiterungen von vornherein ignoriert werden können.
  • Die Wahrscheinlichkeit für jede versuchsweise Erweiterung von ymp wird dann berechnet 512 und nur die wahrscheinlichste Erweiterung einbehalten 514. Der Rest der Erweiterungen mit geringer Wahrscheinlichkeit wird eingesammelt 516, als eine kombinierte Gruppierung in dem Codebuch mit einem speziellen Symbol (Ereignis) gespeichert, um eine kombinierte Gruppierung anzuzeigen. Dieses Wild-Card-Symbol repräsentiert jede beliebige Symbolgruppierung, die ymp als Präfix hat, aber mit einer verschiedenen Erweiterung (Suffix) unterschiedlich von der wahrscheinlichsten Erweiterung. Das bedeutet, wenn ymp + xmp die wahrscheinlichste Wurzel und Erweiterung ist, dann werden die anderen geringer wahrscheinlichen Erweiterungen repräsentiert durch ymp*, * ≠ xmp. (Es sei zur Klarstellung bemerkt, dass diese Diskussion davon ausgeht, dass eine serielle Verarbeitung der Einzelsymbolerweiterungen vorgenommen wird. Dennoch kann die Parallelverarbeitung von Vielfachsymbolerweiterungen erwogen werden.) Der Fachmann wird verstehen, dass die Anwendung von Einzelsymbolerweiterungen und das Zurückhalten einer wahrscheinlichsten Gruppierung eine Einschränkung ist, die nur der Klarheit der Diskussion dient. Es wird weiter vorausgesetzt, dass die Codebücherstellung auch parallel erfolgen kann, obwohl sich die Diskussion auf serielle Verarbeitung bezieht.
  • Die Codebücherstellung wird vervollständigt durch Wiederholung 518 der Schritte 502 bis 516 bis alle möglichen Erweiterungen erstellt worden sind Oder die Zahl der Codebucheinträge eine vorbestimmte Grenze erreicht haben. Also: man berechnet wiederholt die Wahrscheinlichkeiten für die augenblicklichen yi 502, bei dem die Codebuchmenge {Y} nunmehr ymp + xmp umfasst, beziehungsweise man wählt aus 504 und gruppiert die wahrscheinlichsten und die unwahrscheinlichsten Erweiterungen. Der Effekt der wiederholten Anwendung der oben bezeichneten Operationen ist die automatische Zusammenfassung der Symbolgruppierungen, die eine hohe Korrelation haben, so dass die Korrelation zwischen den Gruppen minimiert ist. Dieses minimiert den Zahler von L, während die Lange der wahrscheinlichsten yi simultan maximiert wird, so dass der Nenner von L maximiert wird.
  • Die 6 bis 13 zeigen die Erstellung eines Codebuchs gemäß 5 für ein beispielhaftes Alphabet {A, B, C}. Für die folgende Diskussion soll das Codebuch in Bezug auf einen beispielhaften Eingabestrom „AAABBAACABABBAB" definiert werden. Wie oben diskutiert, können eine oder mehrere beispielhafte Eingabefolgen verwendet werden, um ein Codebuch zu erstellen, welches dann von Decodierern und Codierern verwendet wird, um beliebige Eingabefolgen zu verarbeiten. Zum Zwecke der Klarheit wird das Codebuch durch eine Baumstruktur repräsentiert, obwohl es tatsachlich auch als lineare Tabelle, als hash-table, Datenbank usw. implementiert sein kann. Wie dargestellt, Ist der Baum von links nach rechts orientiert, wobei die linke Spalte (beispielsweise "A" und „X0") die obere Zeile der baumartigen Struktur repräsentiert und nacheinander eingerückte Zeilen repräsentieren die „Kinder" der vorhergehenden Zeilenknoten (beispielsweise ist in einem top-down-Baum der 7 der oberste Knoten „A" ein erstzeiliger Elternknoten für einen zweitzeiligen Zwischenkindknoten „B".).
  • Bei der Erstellung des Codebuchs gilt die generelle Regel, den wahrscheinlichsten Blattknoten zu nehmen, ihn zu expandieren, die Wahrscheinlichkeiten erneut zur Bestimmung des wahrscheinlichsten Blattknotens zu berechnen und dann die verbleibenden Geschwisterknoten in einen einzelnen Xn-Knoten (n = 0 ... N, wobei jedes Mai Knoten miteinander kombiniert werden) zu verdichten. Wenn sich herausstellt, dass der wahrscheinlichste Knoten ein Gruppenknoten ist, dann wird die Gruppe geteilt, die Wahrscheinlichkeiten erneut berechnet und der wahrscheinlichste Teilnehmerknoten beibehalten (beispielsweise werden die verbleibenden Gruppen umgruppiert). Die Verarbeitung wiederholt sich bis ein Haltezustand erreicht ist, etwa wenn ein Codebuch die vorbestimmte Größe hat.
  • Die 6 zeigt eine ursprüngliche Gruppierung für den Eingabestrom „A A A B B A A C A B A B B A B". Das anfängliche Parsing der Eingabefolge liefert Wahrscheinlichkeiten für das Auftreten von A = 8/15, B = 6/15 und C = 1/15. Die ursprüngliche triviale Gruppierung kann basierend auf verschiedenen Kriterien erstellt werden, wobei das einfachste Kriterium das wäre, wenn für jeden Buchstaben im Alphabet ein Erstlevelknoten vorhanden ist. Dennoch kann, wenn das Eingabealphabet groß ist, die triviale Gruppierung durch wenige Untermen gen von Symbolen begrenzt werden, die höchste Wahrscheinlichkeit haben, wobei die verbleibenden Symbole in einer X-Gruppierung kombiniert werden. 6 illustriert dieses Verfahren mit dem Beginn zweier Initialgruppen: Gruppe A 600 mit einer Wahrscheinlichkeit 8/15 und Gruppe X0 602, die die Wahrscheinlichkeit 7/15 hat, wobei X0 alle verbleibenden Symbole geringer Wahrscheinlichkeit im Alphabet repräsentiert, beispielsweise B oder C.
  • Nach der Bereitstellung einer trivialen Anfangsgruppierung wird der Blattknoten mit der höchsten Wahrscheinlichkeit für die Erweiterung ausgewählt (siehe auch 5 mit Diskussion bezüglich der Rechenreihenfolge). Danach wird, wie in 7 gezeigt, die Gruppe A 600 versuchsweise durch jeden Buchstaben im Alphabet expandiert (oder man begrenzt die Erweiterung auf einige Untermengen von ihnen, wie für die Erstellung der Ursprungsgruppierung beschrieben). Die Wahrscheinlichkeiten werden dann bezüglich des Eingabestroms „AAABBAACABABBAB" wiederholt berechnet, um die Werte für die versuchsweisen Erweiterungen A 606, B 608 und C 610 zu bestimmen. Das Ergebnis sind neun Parsing-Gruppen, wobei "A A" mit 2/9 erscheint, "A B" mit 4/9 erscheint und „A C" mit 0/9 erscheint. Deshalb wird die wahrscheinlichste Erweiterung „A B" beibehalten und die anderen Erweiterungen fallen zusammen in X1 = A, C. Obwohl diese Beschreibung die wiederholte Berechnung aller Wahrscheinlichkeiten diskutiert, sei bemerkt, dass ein effizienterer Ansatz darin besteht, Wahrscheinlichkeiten und Symbolverknüpfungen für jeden Knoten innerhalb des Knotens zurückzubehalten, und die Information nur soweit zu berechnen, wie notwendig.
  • Die 8 zeigt das Zusammenfallen in X1 612 für die 7. Die Berechnung wiederholt sich mit der Identifizierung des Knotens, der die höchste Wahrscheinlichkeit hat, beispielsweise des Knotens B 608 mit der Wahrscheinlichkeit 4/9.
  • Wie in 9 gezeigt, wird Knoten 608 versuchsweise erweitert mit den Symbolen A 614, B 616, C 618 und wie oben diskutiert, wird die versuchsweise Gruppierung mit der höchsten Wahrscheinlichkeit zurück behalten. Nach der wiederholten Berechnung der Wahrscheinlichkeiten besteht das Ergebnis in acht Parsing-Gruppen, in denen die Symbolsequenz „A B A" 614 einmal erscheint, „A B B" 616 einmal erscheint und „A B C" 618 überhaupt nicht erscheint. Da die versuchsweisen Erweiterungen A 614 und B 616 die gleiche Ereigniswahrscheinlichkeit haben, muss eine Regel für die Auswahl des zurückzubehaltenden Symbols definiert werden. Für diese Diskussion und immer dann, wenn gleiche Wahrscheinlichkeiten vorliegen, wird der höchste Zeilenknoten zurückbehalten, (beispielsweise der am weitesten links stehende Kindknoten in einem Baum mit top-down-Struktur). Gleichermaßen wird der am weitesten links stehende Zeilenknoten zurückbehalten (beispielsweise der der Wurzel des top-down-Baums nächststehende Knoten), wenn ein Konflikt zwischen Baumzeilen besteht.
  • Deshalb wird, wie in 10 gezeigt, der Knoten A 614 (9) zurückbehalten und die Knoten B 616 und C 618 werden in den Knoten X2 = B, C 620 kombiniert, die eine kombinierte Wahrscheinlichkeit von 1/8 + 0/8 haben. Nun muss im nächsten Schritt der Knoten expandiert werden, der gegenwärtig die höchste Wahrscheinlichkeit in Bezug auf den Eingabestrom hat. Wie gezeigt haben Knoten X1 = A, C 612 und X0 = B, C 602 dieselbe Ereigniswahrscheinlichkeit (3/8). Wie oben diskutiert, wird eine Ruckfallregel benutzt, so dass der höchste Knoten im Baum (X0 602) expandiert wird. (Obwohl es nur wegen der Vertraglichkeit notwendig ist, 1st es von Vorzug, wenn Knoten höherer Stufe expandiert werden, denn dieses kann durch die Erhöhung der Anzahl langer Codewörter die Codiereffizienz erhöhen.) Da jedoch X0 602 ein vereinter Knoten ist, muss dieser geteilt statt expandiert werden. 11 zeigt das Ergebnis der Teilung des Knotens X0 in seine Symbolbestandteile B 622 und C 624. Das wiederholte Berechnen der Wahrscheinlichkeiten zeigt auf, dass die Symbolsequenz „A B A" mit 1/8 erscheint, „A B X2" mit 1/8 erscheint „A X1" mit 3/8 erscheint, „B" 422 mit 2/8 erscheint und „C" mit 1/8 erscheint. Da dies eine Teilungsoperation ist, wird der geteilte Knoten mit der höchsten Wahrscheinlichkeit, beispielsweise Knoten B 622, zurückbehalten und der (die) verbleibende(n) Knoten wird (werden) in X0 602 zurück rekombiniert.
  • Die 12 zeigt das Ergebnis des zurückbehaltenen Knotens B 622 mit hoher Wahrscheinlichkeit. Es sei bemerkt, dass die Gruppierung X0 602 nunmehr nur ein einziges Symbol „C" repräsentiert. Nach der Durchsicht der Wahrscheinlichkeiten muss der Knoten mit der höchsten Wahrscheinlichkeit identifiziert werden, und geteilt oder expandiert werden. Wie gezeigt, erscheint Symbolsequenz „A B A" mit 1/8, „A B X2" erscheint mit 1/8, „A X1" erscheint mit 3/8, „B" erscheint mit 2/8 und „X0" erscheint mit 1/8. Deshalb ist der Knoten X1 612 ein kombinierter Knoten, der geteilt werden muss.
  • Die Teilung wird, wie oben diskutiert, weitergeführt und die Berechnung der Eingabefolge erfolgt in Verbindung mit 5 zyklisch, wo die Knoten mit höchster Wahrscheinlichkeit expandiert oder geteilt werden, bis ein Haltezustand erreicht ist (beispielsweise bis das Codebuch einen Maximalumfang erreicht). Wenn einmal das Codebuch einen Haltezustand erreicht hat, steht es für die Codierung der über einen Kommunikationskanal zu übermitteln den Daten zur Verfügung.
  • Die 13 zeigt ein Schwellengitter, das verwendet werden kann, das Verfahren gemäß 5 der Codebücherstellung abzuwandeln. Wie bei den 3 und 4 diskutiert, wird die Codierung effektiver, wenn die Codierer darauf zugeschnitten werden können, bestimmte Abschnitte der Eingabedaten zu bearbeiten. Wenn bekannt ist, dass das Codierverfahren eine signifikante Zahl von wiederholten Werten erzeugt, kann im Besonderen, ein Entropiecodierer mit einem Codierverfahren vom RLE-Typ kombiniert werden, um die Codiereffizienz für Daten mit sich wiederholenden Werten zu erhöhen.
  • In den vorgestellten Ausführungsformen fugt die Quantisierung der Eingangsdaten Null-Werte oder nahezu Null-Werte für Spektralkoeffizienten ein in signifikante Teile der Frequenzbereiche der Eingangsdaten. Konsequenterweise wird anstelle der Benutzung desselben Entropiecodierers (beispielsweise ein Codierer und ein Codebuch gemäß 5) für die nahezu fast Nicht-Null-Werte ein RLE-basierter Entropiecodierer benutzt.
  • Für die Erstellung eines Codebuchs für einen RLE-basierten Entropiecodierer bilde man aus den absoluten Werten der Nicht-Null-Spektralproben eine ganzzahlige Menge Li = {1, 2, 3 ... Ln}, wobei Ln für beliebige Werte steht, die größer oder gleich Ln sind. Man bilde aus der Lauflange der Null-wertigen Spektralproben im Eingabestrom eine andere Menge Ri = {1, 2, 3 ..., Rm}, wobei Rm für jeden Null-Lauf mit Lange größer als oder gleich Rm steht. Bei der Benutzung dieser Notation können wir ein Eingabespektrum mit einem String von Eingabesymbolen repräsentieren, das als (Ri, Lj) definiert wird, welches zu Ri Null-Spektralproben korrespondiert gefolgt von Li (beispielsweise Symbole codiert mit dem Entropiecodierer).
  • Wie oben zu den 5 und folgenden beschrieben, ist der erste Schritt die Erstellung eines Codebuchs, um die Wahrscheinlichkeit für alle Eingabeereignisse zu sammeln. Hierbei ist die Eingabefolge angepasst in Bezug auf definierte Schwellen. Deshalb bestimmt sich die Wahrscheinlichkeit für (Ri, Lj) für alle 1 <= i <= n und 1 <= j <= m. Diese Wahrscheinlichkeiten sind in 13 grafisch dargestellt. Dort entsprechen dunklere Quadrate (beispielsweise 806, 808) Ereignissen, die eine höhere Wahrscheinlichkeit besitzen und hellere Quadrate (beispielsweise 810, 812) Ereignissen mit geringer oder nahezu Null-wertiger Wahrscheinlichkeit. Alle Eingabekonfigurationen mit hoher Wahrscheinlichkeit werden mit dem Bezugszeichen 800 zusammengefasst und alle Konfigurationen mit kleinen Wahrscheinlichkeiten als Bereich 802. Alle Kombinationen mit geringer Wahrscheinlichkeit werden aus dem Code buch ausgeschlossen. Es wird eine Wahrscheinlichkeitsschwelle 804 so definiert, dass jeder Wert unterhalb der Trennlinie auf Null gesetzt und aus dem Codebuch ausgeschlossen wird. Die über der Schwelle verbleibenden Konfigurationen, werden einem Code vom Entropietyp zugewiesen, der eine Lange hat, die umgekehrt proportional ist zu seiner Wahrscheinlichkeit. Im Falle quantisierter Audiodaten haben Eingabefolgen mit großer Amplitude eine kleine Wahrscheinlichkeit. Konsequenterweise fallen diese unter die Schwelle und werden aus dem Codebuch ausgeschlossen (dennoch können sie herausgetrennt und in den codierten Bitstrom eingebettet werden).
  • Um eine entropiecodierte Ausgabefolge unter Benutzung eines zweiten Codierers zu verschachteln, wird ein spezielles Codierbuch mit Entropiecodes reserviert, um die ausgeschlossenen Ereignisse zu markieren {beispielsweise RLE-codierte Daten). Während des Codierlaufs können spektrale Proben (Eingangssymbole) mit einer Liste von möglichen Ereignissen verglichen werden und wenn eine Obereinstimung gefunden wird (im Baum oder in der Tabelle, in der Hash-Struktur oder in einem Äquivalent, die jeweils verwendet werden, um das Codebuch zu repräsentieren, beispielsweise durch Gebrauch eines Variable-zu-Variable-Codierers), wird der Code vom zugehörigen Entropietyp ausgegeben gefolgt von einem Vorzeichen-Bit.
  • Wenn eine Obereinstimmung nicht gefunden wird, wird ein Escape-Code gesendet gefolgt von notwendiger Information zum Identifizieren des Ereignisses, beispielsweise eine Information zur RLE-Codierung der Daten. In dem Fall, wenn ein Eingabespektrum mit N Nullen endet, ist entweder ein explizites (spezielles) Endsignal oder ein spezielles Ereignis, etwa wie ein (N,1)-Suffix notwendig, weil der Codierer in der Lage ist, die Gesamtzahl der Proben zu erkennen und das Codieren beendet, wenn diese Grenze überschritten wird.
  • Ein Schwellengitter ist zum Codieren nicht notwendig, da das Gitter nur gebraucht wird, um Codebucheintrage auszulesen. Die hier offenbarten Codierverfahren können mit einem Codebuch benutzt werden, das gemäß der Beschreibung in 13 erstellt wurde.
  • Die 14 zeigt ein Verfahren zur Implementierung des Entropiecodierers 208 aus 2, welches an quantisierten Daten unter Verwendung eines Codebuchs entsprechend 5 hergeleitet ist. (Es sei bemerkt, dass das Variable-zu-Variable-Codierverfahren allgemein für das Codieren jeder Art von Daten anwendbar ist). Wie dargestellt, werden die quantisierten Daten als Eingabefolge für den Entropiecodierer von 2 empfangen 900. Es wird voraus gesetzt, dass die Eingabefolge aus einer Form von diskreten Signalen oder Datenpaketen besteht und dass zur Vereinfachung der Diskussion alle Eingabefolgen einfach als eine lange Folge von diskreten Symbolen angenommen werden. Die empfangene Eingabefolge 900 wird durchsucht 902, um einen korrespondierenden Codebuchschlüssel im Codebuch der 5 zu lokalisieren. Solche Durchsuchung entspricht einem Datennachschlagen (data-look-up) und – abhängig von der verwendeten Datenstruktur für das Implementieren des Codebuchs – kann das exakte Verfahren des Nachschlagens variieren.
  • Es sei bemerkt, dass verschiedene Techniken zur Speicherung und Manipulation des Codebuchs eines Codierers zur Verfugung stehen. Zum Beispiel: Eine Struktur für ein Variable-zu-Variable-Codebuch ist traversal und die Speicherung erfolgt als N-knötiger (beispielsweise binärer, tertiärer usw.) Baum, wobei Symbolgruppierungen eine Traverse (traversal) durch die Baumstruktur leiten. Der Pfad zu einem Blattknoten des Baumes repräsentiert das Ende einer erkannten Symbolsequenz, wobei ein Code vom Entropietyp mit der Sequenz verbunden ist. (Es sei bemerkt, dass das Codebuch als Tabelle implementiert sein kann, wobei ein Tabelleneintrag die gesamte Eingabesequenz enthält, beispielsweise den Pfad zu einem Knoten). Knoten können softwaremäßig codiert werden als eine Struktur, eine Klassendefinition oder als andere Struktur, die das Speichern eines Symbols oder von mit Knoten verbundenen Symbolen und die Verknüpfung eines korrespondierenden Codes 905 vom Entropietyp 906 erlaubt.
  • Außerdem kann das Codebuch für den RLE-Codierer als ein zweidimensionales Gitter in einem Permanent-Speicher gespeichert werden, worin die Datenermittlung durch die Identifizierung zweier Indizes durchgeführt wird. Deshalb kann man Tabelleneintrage durch die Spezifikation einer Lauflange und eines bestimmten Symbolwertes ermitteln. Eine Codiertabelle kann als Huffman-Baum Implementiert werden. Eine andere Codebuch-Implementation kann Rice-Golomb-Strukturen oder deren Äquivalente einschließen.
  • Obwohl nicht bei der Diskussion der 2 ausdrücklich gezeigt, funktioniert das Codieren als eine inverse Operation des Decodierens, wobei die codierten Daten 908 in einem Decodiercodebuch aufgesucht werden 906, um eine Approximation der ursprünglichen Eingabefrequenzkoeffizienten 900 herzustellen.
  • Wenn die Erfindung auch mit Bezug auf eine erläuternde Ausführungsform beschrieben und bebildert wurde, sollte klar sein, dass die erläuternde Ausführungsform in Anord nung und Detail modifiziert werden kann, ohne die Grundlagen zu verlassen. Entsprechend sind alle diese Änderungen innerhalb des Umfangs der Erfindung Bestandteil der folgenden Ansprüche.

Claims (14)

  1. Verfahren zum Decodieren einer Sequenz codierter Audiofrequenz-Koeffizienten, wobei das Verfahren umfasst: Empfangen einer Sequenz codierter Audiofrequenz-Koeffizienten mit einem Frequenzdomänenbereich (300), der in wenigstens einen ersten und einen zweiten Frequenzdomänen-Teilbereich (310, 312) unterteilt ist, für Entropie-Decodierung, dadurch gekennzeichnet, dass: der Frequenzdomänen-Bereich (300) für Entropie-Decodierung mit verschiedenen Entropie-Decodiereinrichtungen (1) unterteilt ist, wobei diese Unterteilung entsprechend statistischer Analyse durchgeführt worden ist, die separate Frequenzdomänen-Teilbereiche auf Basis von Entropie-Codierungseffizienz identifiziert, wobei jeder von dem wenigstens ersten und zweiten Frequenzdomänen-Teilbereich (310, 312) eine dazugehörige Entropie-Decodiereinrichtung aus der Vielzahl der verschiedenen Entropie-Decodiereinrichtungen aufweist und das Verfahren des Weiteren umfasst: Decodieren von Koeffizienten des ersten Frequenzdomänen-Teilbereiches (310) mit einer ersten zugehörigen Entropie-Decodiereinrichtung, um erste decodierte Frequenz-Koeffizienten zu erzeugen; Decodieren von Koeffizienten des zweiten Frequenzdomänen-Teilbereiches (312) mit einer zweiten zugehörigen Entropie-Decodiereinrichtung, um zweite decodierte Frequenzkoeffizienten zu erzeugen, wobei sich die zweite zugehörige Entropie-Decodiereinrichtung von der ersten zugehörigen Entropie-Decodiereinrichtung unterscheidet; Dequantisieren der ersten und der zweiten decodierten Frequenzkoeffizienten, um dequantisierte Frequenzkoeffizienten zu erzeugen; und Umkehren von Frequenztransformation der dequantisierten Frequenzkoeffizienten.
  2. Verfahren nach Anspruch 1, wobei Teilbereichs-Unterteilungen vorbestimmt sind.
  3. Verfahren nach Anspruch 2, wobei Auswahl einer geeigneten zugehörigen Entropie-Decodiereinrichtung automatisch entsprechend dem Frequenzdomänen-Teilbereich der decodierten Koeffizienten stattfindet.
  4. Verfahren nach Anspruch 1, wobei Teilbereichs-Unterteilungen adaptiv sind.
  5. Verfahren nach Anspruch 4, wobei Auswahl einer geeigneten zugehörigen Entropie-Decodiereinrichtung entsprechend Flags in einem Datenstrom für die Sequenz stattfindet.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Decodieren mit der zweiten zugehörigen Entropie-Decodiereinrichtung Lauflängen-Entropie-Decodieren umfasst.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Decodieren mit der ersten zugehörigen Entropie-Decodiereinrichtung Entropie-Decodieren von variabel zu variabelumfasst.
  8. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Decodieren mit der ersten zugehörigen Entropie-Decodiereinrichtung Vektor-Huffmann-Decodieren umfasst.
  9. Verfahren nach einem der Ansprüche 1 bis 8, das des Weiteren umfasst: Umschalten zwischen den verschiedenen Entropie-Decodiereinrichtungen unter Verwendung einer Modus-Umschalteinrichtung.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei das Empfangen einschließt, dass die Sequenz von einem Streaming-Ausgabesystem empfangen wird, das die Sequenz als Streaming-Pakete über einen Kanal (210) zur Echtzeit-Wiedergabe ausgibt.
  11. Verfahren nach Anspruch 10, wobei das Streaming-Ausgabesystem Bandbreiten-Anpassung gewährleistet.
  12. Verfahren nach einem der Ansprüche 1 bis 11, wobei Koeffizienten jedes verschiedenen unterteilten Frequenzdomänen-Teilbereiches unter Verwendung einer anderen Entropie-Decodiereinrichtung decodiert werden.
  13. Verfahren nach einem der Ansprüche 1 bis 12, wobei der erste Frequenzdomänen-Teilbereich (310) vorherrschend Nicht-Null-Koeffizienten enthält und der zweite Frequenzdomänen-Teilbereich (312) vorherrschend Null-Koeffizienten enthält.
  14. Computerlesbares Medium, auf dem durch Computer ausführbare Befehle gespeichert sind, die ein Computersystem, das durch sie programmiert wird, veranlassen, das Verfahren nach einem der Ansprüche 1 bis 13 durchzuführen.
DE69935811T 1998-12-14 1999-12-07 Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel Expired - Lifetime DE69935811T3 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/211,531 US6300888B1 (en) 1998-12-14 1998-12-14 Entrophy code mode switching for frequency-domain audio coding
US211531 1998-12-14
EP03009177A EP1330038B2 (de) 1998-12-14 1999-12-07 Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel

Publications (3)

Publication Number Publication Date
DE69935811D1 DE69935811D1 (de) 2007-05-24
DE69935811T2 true DE69935811T2 (de) 2007-08-16
DE69935811T3 DE69935811T3 (de) 2012-08-16

Family

ID=22787314

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69907267T Expired - Lifetime DE69907267T2 (de) 1998-12-14 1999-12-07 Entropie-code modenwechsel zur frequenzbereichsaudiokodierung
DE69935811T Expired - Lifetime DE69935811T3 (de) 1998-12-14 1999-12-07 Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69907267T Expired - Lifetime DE69907267T2 (de) 1998-12-14 1999-12-07 Entropie-code modenwechsel zur frequenzbereichsaudiokodierung

Country Status (6)

Country Link
US (1) US6300888B1 (de)
EP (3) EP1330039B1 (de)
JP (1) JP4786796B2 (de)
AT (2) ATE359624T1 (de)
DE (2) DE69907267T2 (de)
WO (1) WO2000036754A1 (de)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6377930B1 (en) * 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
DE19907964C1 (de) * 1999-02-24 2000-08-10 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Erzeugen eines verschlüsselten Datenstroms und Vorrichtung und Verfahren zum Erzeugen eines entschlüsselten Audio- und/oder Videosignals
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
EP1069691A1 (de) * 1999-06-15 2001-01-17 STMicroelectronics S.r.l. Verfahren zur Dekodierung eines Huffman-Codes
WO2001006455A1 (en) * 1999-07-15 2001-01-25 Koninklijke Philips Electronics N.V. Embedding auxiliary data in an information signal
US8464302B1 (en) 1999-08-03 2013-06-11 Videoshare, Llc Method and system for sharing video with advertisements over a network
JP3804902B2 (ja) * 1999-09-27 2006-08-02 パイオニア株式会社 量子化誤差補正方法及び装置並びにオーディオ情報復号方法及び装置
DE19947877C2 (de) * 1999-10-05 2001-09-13 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Einbringen von Informationen in einen Datenstrom sowie Verfahren und Vorrichtung zum Codieren eines Audiosignals
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
AU2001245575A1 (en) 2000-03-09 2001-09-17 Videoshare, Inc. Sharing a streaming video
US6501397B1 (en) * 2000-05-25 2002-12-31 Koninklijke Philips Electronics N.V. Bit-plane dependent signal compression
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
US6601032B1 (en) * 2000-06-14 2003-07-29 Intervideo, Inc. Fast code length search method for MPEG audio encoding
US6718507B1 (en) * 2000-09-12 2004-04-06 At&T Corp. System and method for representing compressed information
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
GB0108080D0 (en) * 2001-03-30 2001-05-23 Univ Bath Audio compression
AUPR433901A0 (en) * 2001-04-10 2001-05-17 Lake Technology Limited High frequency signal construction method
US7076108B2 (en) * 2001-12-11 2006-07-11 Gen Dow Huang Apparatus and method for image/video compression using discrete wavelet transform
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
FR2834162A1 (fr) * 2001-12-20 2003-06-27 Koninkl Philips Electronics Nv Systeme de communication de donnees selon un principe de commutation par paquets
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
ATE543179T1 (de) 2002-09-04 2012-02-15 Microsoft Corp Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
JP4728568B2 (ja) * 2002-09-04 2011-07-20 マイクロソフト コーポレーション レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
US9711153B2 (en) 2002-09-27 2017-07-18 The Nielsen Company (Us), Llc Activating functions in processing devices using encoded audio and detecting audio signatures
US8959016B2 (en) 2002-09-27 2015-02-17 The Nielsen Company (Us), Llc Activating functions in processing devices using start codes embedded in audio
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
PL1706866T3 (pl) * 2004-01-20 2008-10-31 Dolby Laboratories Licensing Corp Kodowanie dźwięku w oparciu o grupowanie bloków
US7596486B2 (en) * 2004-05-19 2009-09-29 Nokia Corporation Encoding an audio signal using different audio coder modes
US6987468B1 (en) * 2004-10-29 2006-01-17 Microsoft Corporation Lossless adaptive encoding and decoding of integer data
US20060176953A1 (en) * 2005-02-04 2006-08-10 Nader Mohsenian Method and system for video encoding with rate control
US7895012B2 (en) 2005-05-03 2011-02-22 Hewlett-Packard Development Company, L.P. Systems and methods for organizing and storing data
US7411528B2 (en) * 2005-07-11 2008-08-12 Lg Electronics Co., Ltd. Apparatus and method of processing an audio signal
US7684981B2 (en) 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
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
US8068569B2 (en) 2005-10-05 2011-11-29 Lg Electronics, Inc. Method and apparatus for signal processing and encoding and decoding
WO2007040361A1 (en) * 2005-10-05 2007-04-12 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7460032B2 (en) * 2005-10-27 2008-12-02 Evault, Inc. Methods and apparatus for performing adaptive compression
JP4548348B2 (ja) * 2006-01-18 2010-09-22 カシオ計算機株式会社 音声符号化装置及び音声符号化方法
JP2009524101A (ja) * 2006-01-18 2009-06-25 エルジー エレクトロニクス インコーポレイティド 符号化/復号化装置及び方法
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
US7586425B2 (en) * 2006-07-11 2009-09-08 Nokia Corporation Scalable video coding and decoding
US7953595B2 (en) 2006-10-18 2011-05-31 Polycom, Inc. Dual-transform coding of audio signals
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
US8184710B2 (en) 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US7501964B2 (en) * 2007-04-16 2009-03-10 Texas Instruments Incorporated Entropy coding for digital codecs
KR100889750B1 (ko) * 2007-05-17 2009-03-24 한국전자통신연구원 오디오 신호의 무손실 부호화/복호화 장치 및 그 방법
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
KR101425354B1 (ko) * 2007-08-28 2014-08-06 삼성전자주식회사 오디오 신호의 연속 정현파 신호를 인코딩하는 방법 및장치와 디코딩 방법 및 장치
US8972247B2 (en) * 2007-12-26 2015-03-03 Marvell World Trade Ltd. Selection of speech encoding scheme in wireless communication terminals
KR101449434B1 (ko) 2008-03-04 2014-10-13 삼성전자주식회사 복수의 가변장 부호 테이블을 이용한 멀티 채널 오디오를부호화/복호화하는 방법 및 장치
KR101599875B1 (ko) * 2008-04-17 2016-03-14 삼성전자주식회사 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 부호화 방법 및 장치, 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 복호화 방법 및 장치
KR20090110244A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 오디오 시맨틱 정보를 이용한 오디오 신호의 부호화/복호화 방법 및 그 장치
KR20090110242A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 오디오 신호를 처리하는 방법 및 장치
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8380523B2 (en) * 2008-07-07 2013-02-19 Lg Electronics Inc. Method and an apparatus for processing an audio signal
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US8121830B2 (en) * 2008-10-24 2012-02-21 The Nielsen Company (Us), Llc Methods and apparatus to extract data encoded in media content
WO2010047566A2 (en) * 2008-10-24 2010-04-29 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
US9667365B2 (en) 2008-10-24 2017-05-30 The Nielsen Company (Us), Llc Methods and apparatus to perform audio watermarking and watermark detection and extraction
US8359205B2 (en) 2008-10-24 2013-01-22 The Nielsen Company (Us), Llc Methods and apparatus to perform audio watermarking and watermark detection and extraction
US8508357B2 (en) 2008-11-26 2013-08-13 The Nielsen Company (Us), Llc Methods and apparatus to encode and decode audio for shopper location and advertisement presentation tracking
EP2425563A1 (de) 2009-05-01 2012-03-07 The Nielsen Company (US), LLC Methods, apparatus and articles of manufacture to provide secondary content in association with primary broadcast media content
KR20120009618A (ko) 2010-07-19 2012-02-02 에스케이 텔레콤주식회사 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
RU2712814C2 (ru) 2013-04-05 2020-01-31 Долби Лабораторис Лайсэнзин Корпорейшн Система компандирования и способ для снижения шума квантования с использованием усовершенствованного спектрального расширения
US10270590B2 (en) * 2013-12-16 2019-04-23 Mcafee, Llc Process efficient preprocessing for any encryption standard
GB2539239B (en) * 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
US20180336469A1 (en) * 2017-05-18 2018-11-22 Qualcomm Incorporated Sigma-delta position derivative networks
US10475456B1 (en) * 2018-06-04 2019-11-12 Qualcomm Incorporated Smart coding mode switching in audio rate adaptation
JP2022523564A (ja) 2019-03-04 2022-04-25 アイオーカレンツ, インコーポレイテッド 機械学習を使用するデータ圧縮および通信

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6036153B2 (ja) * 1976-10-22 1985-08-19 日本電気株式会社 予測符号化装置
JPS61107818A (ja) * 1984-10-30 1986-05-26 Nec Corp エントロピ−符号化方式とその装置
JPH0821863B2 (ja) 1985-04-13 1996-03-04 キヤノン株式会社 データ処理方法
JPS62247626A (ja) 1986-04-19 1987-10-28 Fuji Photo Film Co Ltd 符号化方法
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5742735A (en) 1987-10-06 1998-04-21 Fraunhofer Gesellschaft Zur Forderung Der Angewanten Forschung E.V. Digital adaptive transformation coding method
US5003307A (en) 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5479562A (en) 1989-01-27 1995-12-26 Dolby Laboratories Licensing Corporation Method and apparatus for encoding and decoding audio information
DE3943881B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
US5227789A (en) 1991-09-30 1993-07-13 Eastman Kodak Company Modified huffman encode/decode system with simplified decoding for imaging systems
JP3134424B2 (ja) 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
US5227788A (en) 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
US5467087A (en) * 1992-12-18 1995-11-14 Apple Computer, Inc. High speed lossless data compression system
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
JP3210996B2 (ja) 1993-07-30 2001-09-25 三菱電機株式会社 高能率符号化装置及び高能率復号化装置
JP3277677B2 (ja) * 1994-04-01 2002-04-22 ソニー株式会社 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置
US5550541A (en) 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
US5535311A (en) * 1994-07-28 1996-07-09 Hewlett-Packard Company Method and apparatus for image-type determination to enable choice of an optimum data compression procedure
US5552832A (en) 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JPH08190764A (ja) * 1995-01-05 1996-07-23 Sony Corp ディジタル信号処理方法、ディジタル信号処理装置及び記録媒体
US5884269A (en) 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
JP2976860B2 (ja) * 1995-09-13 1999-11-10 松下電器産業株式会社 再生装置
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5926791A (en) * 1995-10-26 1999-07-20 Sony Corporation Recursively splitting the low-frequency band with successively fewer filter taps in methods and apparatuses for sub-band encoding, decoding, and encoding and decoding
US5831559A (en) 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
JP3267142B2 (ja) 1996-02-23 2002-03-18 ケイディーディーアイ株式会社 可変長符号生成装置
US5790706A (en) * 1996-07-03 1998-08-04 Motorola, Inc. Method and apparatus for scanning of transform coefficients
DE19637522A1 (de) 1996-09-13 1998-03-19 Bosch Gmbh Robert Verfahren zur Reduzierung von Daten in Videosignalen
JP3534577B2 (ja) * 1997-07-23 2004-06-07 日本電信電話株式会社 情報多重化方法、情報抽出方法及びそれらの装置
US5959560A (en) 1997-02-07 1999-09-28 Said; Amir Data compression via alphabet partitioning and group partitioning
US5999949A (en) 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
DE19730130C2 (de) * 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding

Also Published As

Publication number Publication date
EP1330039B1 (de) 2013-04-10
JP2002532765A (ja) 2002-10-02
EP1330038B2 (de) 2012-06-13
EP1142130A1 (de) 2001-10-10
EP1330039A1 (de) 2003-07-23
ATE238632T1 (de) 2003-05-15
EP1330038A1 (de) 2003-07-23
DE69907267D1 (de) 2003-05-28
EP1142130B1 (de) 2003-04-23
DE69907267T2 (de) 2003-11-06
DE69935811T3 (de) 2012-08-16
EP1330038B1 (de) 2007-04-11
US6300888B1 (en) 2001-10-09
JP4786796B2 (ja) 2011-10-05
ATE359624T1 (de) 2007-05-15
WO2000036754A1 (en) 2000-06-22
DE69935811D1 (de) 2007-05-24

Similar Documents

Publication Publication Date Title
DE69935811T2 (de) Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel
DE69918172T2 (de) Entropiekodierung von variabler zu variabler länge
DE69924431T2 (de) Vorrichtung und Verfahren zur dynamischen Bitverteilung für Audiokodierung
DE60317982T2 (de) Entropische Kodierung mittels Anpassung des Kodierungsmodus zwischen Niveau- und Lauflängenniveau-Modus
DE60204039T2 (de) Vorrichtung zur kodierung und dekodierung von audiosignalen
DE2818052C2 (de) Quantisierung eines Signals mit einem sich über ein gegebenes Frequenzband erstreckendem Spetkrum
DE69723959T2 (de) Datenkompression und -dekompression durch rice-kodierer/-dekodierer
DE60207061T2 (de) Audiokompression
DE69933119T2 (de) Verfahren und vorrichtung zur maskierung des quantisierungsrauschens von audiosignalen
DE69333786T2 (de) Verfahren zum Kodieren und Dekodieren von Audiodaten
EP0931386B1 (de) Verfahren zum signalisieren einer rauschsubstitution beim codieren eines audiosignals
DE69726661T2 (de) Verfahren und vorrichtung zur kodierung eines digitalen informationssignales
DE69534273T2 (de) Verfahren und vorrichtung zum signalkodieren, signalubertragungsverfahren und verfahren und vorrichtung zur signaldekodierung
DE60209888T2 (de) Kodieren eines audiosignals
DE60214027T2 (de) Kodiervorrichtung und dekodiervorrichtung
DE60121592T2 (de) Kodierung und dekodierung eines digitalen signals
DE19534730B4 (de) Verfahren zum Codieren und Decodieren von Daten
EP1763870A1 (de) Erzeugung eines codierten multikanalsignals und decodierung eines codierten multikanalsignals
DE60015448T2 (de) Teilband-Audiokodiersystem
EP1023777B1 (de) Verfahren und vorrichtung zur erzeugung eines bitratenskalierbaren audio-datenstroms
DE60011606T3 (de) Audiokodierung mit verstärkungsadaptiver quantisierung und symbolen verschiedener länge
DE60015755T2 (de) Verlustfreie adaptive codierung von daten eines endlichen alphabets
DE602004000884T2 (de) Digitales Audiowasserzeichen
DE60129988T2 (de) Komprimieren und dekomprimieren von audiodateien unter verwendung eines chaotischen systems
DE10131801B4 (de) Verfahren zur Datenkompression und Navigationssystem

Legal Events

Date Code Title Description
8363 Opposition against the patent
R102 Epo decision maintaining patent in amended form now final

Ref document number: 1330038

Country of ref document: EP