DE69629369T2 - Verfahren zum kodieren wellenförmiger daten - Google Patents

Verfahren zum kodieren wellenförmiger daten Download PDF

Info

Publication number
DE69629369T2
DE69629369T2 DE69629369T DE69629369T DE69629369T2 DE 69629369 T2 DE69629369 T2 DE 69629369T2 DE 69629369 T DE69629369 T DE 69629369T DE 69629369 T DE69629369 T DE 69629369T DE 69629369 T2 DE69629369 T2 DE 69629369T2
Authority
DE
Germany
Prior art keywords
quantizer
signal
matrix
coding
input
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
DE69629369T
Other languages
English (en)
Other versions
DE69629369D1 (de
Inventor
Peter Graham Wantage CRAVEN
Anthony Michael GERZON
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.)
Dolby Laboratories Licensing Corp
Original Assignee
Dolby Laboratories Licensing 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 Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Application granted granted Critical
Publication of DE69629369D1 publication Critical patent/DE69629369D1/de
Publication of DE69629369T2 publication Critical patent/DE69629369T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • H03M7/3044Conversion to or from differential modulation with several bits only, i.e. the difference between successive samples being coded by more than one bit, e.g. differential pulse code modulation [DPCM]
    • H03M7/3046Conversion to or from differential modulation with several bits only, i.e. the difference between successive samples being coded by more than one bit, e.g. differential pulse code modulation [DPCM] adaptive, e.g. adaptive differential pulse code modulation [ADPCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft die verlustfreie Codierung und Decodierung von Wellenformdaten zwecks Reduzierung der erforderlichen Datenrate ohne jede Veränderung der decodierten Wellenformdaten, insbesondere die Verwendung verlustfreier Matrizierungsverfahren mit besonderem Bezug auf solche, die mit von Rundungsfehlern unbeeinträchtigter nicht-ganzzahliger Arithmetik endlicher Genauigkeit arbeiten, sowie auf Anwendungen in der Audio- und Bild-Wellenformcodierung und -decodierung.
  • STAND DER TECHNIK
  • Die von Audio- oder anderen Wellenformdaten in digitaler PCM-Form (PCM: Pulscodemodulation) eingenommene Datenrate ist oft zu hoch für das zum Übertragen von Wellenformen verwendete Übertragungs- oder Speichermedium. Verfahren zur Reduzierung der Wellenform-Datenrate sind gemäß dem Stand der Technik bekannt und können in zwei Arten, nämlich verlustbehaftete und verlustfreie Codierung, klassifiziert werden. Verlustbehaftete Codierung läßt die Wellenformdaten fallen oder verändert sie in einer Weise, welche hinsichtlich der Bedingung, wie die Daten verwendet werden, geringfügig ist, verlustfreie Codierung hingegen reduziert die Datenrate durch Eliminieren von Signalredundanzen in codierter Form, aber in einer Weise, die es gestattet, die genauen ursprünglichen Daten durch einen Decodierprozeß wiederherzustellen.
  • Solche auf der Verwendung von Prädiktoren beruhenden verlustfreien Codierverfahren sind gemäß dem Stand der Technik bekannt und werden zum Beispiel in C. Cellier, P. Chenes & M. Rossi, "Lossless Audio Bit Rate Reduction", Tagungsberichte von der Tagung "Managing The Bit Budget" der Audio Engineering Society UK, 16.–17. Mai 1994, Seiten 107–122, in R. C. Gonzales & R. E. Woods, "Digital Image Processing", Addison Wesley, Reading Mass, 1992, Kapitel 6, besonders Abschnitt 6.4.3, Seiten 358–362, und in M. Rabbani & P. W. Jones, "Digital Image Compression Techniques", SPIE Press, Bellingham, Wash. 1991, beschrieben.
  • PCM-Signale können als ganzzahlige Zeitreihensignale angesehen werden, wobei die ganze Zahl ein Vielfaches des Werts der niedrigstwertigen Stelle ist. Der Grundgedanke bei dem Stand der Technik entsprechenden Systemen ist, das ganzzahlige PCM-Signal über einen Prädiktionsfilter zu codieren, wobei der Quantisierer eine Rundungsoperation auf die nächste ganze Zahl beinhaltet, das Übertragen der (hier als das prädiktionscodierte Signal bezeichneten) quantisierten Differenz zwischen dem tatsächlichen Signal und dem aus dem Ausgang des Quantisierers abgeleiteten vorhergesagten Signal, und dann diese codierten Daten mittels Huffman-Codierung oder durch nur einmaliges Übertragen der Anzahl von Null-MSBs (MSB: höchstwertiges Bit) für einen Block von Wörtern oder durch ähnliche Verfahren zur Reduzierung der Wortlängen der einzelnen Abtastwerte der codierten Wellenform effizient zu übertragen. In solchen dem Stand der Technik entsprechenden Systemen erfolgt die verlustfreie Decodierung durch Verwendung der Huffman- oder einer anderen geeigneten Decodierung, um die Wortlänge des codierten Signals wiederherzustellen und dann die codierten Daten in einen Prädiktorfilter, der mit dem bei der Codierung verwendeten identisch ist, zu speisen, um das Ergebnis zum codierten Signal zu addieren, und dann das ursprüngliche ganzzahlige Signal mittels einer zweiten Rundungs-Quantisierungsoperation wiederherzustellen. Die Rundungsoperationen können weggelassen werden, wenn die Prädiktionsfilter nur ganzzahlige Koeffizienten haben.
  • In vielen Anwendungen weisen dem Stand der Technik entsprechende Verfahren zum verlustfreien Codieren und Decodieren von Wellenformdaten jedoch beträchtliche praktische Probleme auf. Dies ist insbesondere bei PCM-Audiodaten hoher Qualität der Fall, vor allem wenn sie durch Medien mit Begrenzung der Spitzen-Datenrate, mit welcher Daten übertragen werden können, übertragen werden, wie bei Compact-Disc-Abspielgeräten oder digitalen Magnetband-Aufzeichnungsgeräten.
  • Mit Audio hoher Qualität meinen wir Signale, welche in PCM-Form typischerweise 16 oder mehr Bits, vielleicht sogar 20 oder 24 Bits zur genauen Darstellung der digitalen Wörter sowie Abtastfrequenzen von 44,1 kHz oder höher erfordern. Verlustfreie Kompression von Audiodaten ist besonders sinnvoll, wenn außerdem die Abtastfrequenz hoch ist, zum Beispiel 96 kHz. Solche hohen Abtasttrequenzen kommen für Fälle in Gebrauch, wo eine erweiterte Audio-Bandbreite für erstklassige Wiedergabequalität erforderlich ist. Wenn es zusätzlich erwünscht ist, Mehrkanal-Stereo- oder Rundumklang zu übertragen, muß man vielleicht 5 oder 6 Kanäle Audio bei einer Abtastfrequenz von 96 kHz mit etwa 20 Bit Auflösung zum Benutzer übertragen, und die resultierenden Datenraten von etwa 11,5 Mbit/Sekunde sind über existierende Speichermedien wie Compact-Discs oder optische Speichermedien hoher Dichte schwierig mit einer angemessenen Spieldauer zu übertragen.
  • Jedenfalls gestattet die verlustfreie Codierung und Decodierung solcher Audiodaten hoher Qualität, die effektive Kapazität von Speichermedien wie Festplatten in computerbasierten Audioverarbeitungssystemen yu erhöhen und auch die effektive Speicherkapazität von Speichermedien wie Compact-Discs, digitalen Magnetband-Medien und dergleichen zu erhöhen. In solchen Anwendungen ist es wünschenswert, daß vor allem die Decodierungsalgorithmen relativ einfach zu implementieren sein sollten, weil die Anzahl von Abspielgeräten die Anzahl von Aufzeichnungsgeräten bei weitem übersteigen kann, vor allem bei Musikprogramm-Audiomaterial auf Compact-Discs. Es besteht auch eine Anforderung, daß die Codierungs- und Decodierungsalgorithmen ohne allzu große Schwierigkeiten bei der technischen Implementierung auf viele verschiedene digitale Signalverarbeitungs-Plattformen transportierbar sind, da von codierten Aufzeichnungen, die von einer der vielen Schallplattenfirmen oder anderen Organisationen produziert werden, erwartet werden würde, daß sie sich auf den von vielen verschiedenen Herstellern hergestellten Abspielgeräten vieler verschiedener Benutzer abspielen lassen.
  • Gemäß dem Stand der Technik ist die einfachste und bei Audio gebräuchlichste Form verlustfreier Wellenformcodierung ein ganzzahliges Prädiktionsverfahren. Dieses beinhaltet die Übertragung nicht des PCM-Audiosignals selbst, sondern der Differenz zwischen aufeinanderfolgenden Abtastwerten plus eines anfänglichen Abtastwerts, woraus das ursprüngliche Signal durch Wiederherstellen jedes Abtastwerts durch Addieren des Differenz-Abtastwerts zum davor wiederhergestellten Abtastwert wiederhergestellt werden kann. Bei typischen Audiosignalen wird das Differenzsignal eine geringere Energie als das ursprüngliche Signal haben. Eine bekannte und gebräuchliche, dem Stand der Technik entsprechende Erweiterung dieses ganzzahligen Prädiktionsverfahrens kann statt dessen zweite oder dritte Differenzen des Signals zusammen mit zwei oder drei anfänglichen Abtastwerten des PCM-Signals übertragen. Bei Verwendung des Symbols z–1 zur Angabe einer Verzögerung um einen Abtastwert überträgt dieses Verfahren das Ergebnis der Durchleitung des Signals durch einen Codierfilter der Form (1 – z–1)n für n = 0, 1, 2 oder 3. Das ursprüngliche Signal kann durch einen inversen Summierungsprozeß aus den Daten wiederhergestellt werden. Der Wert von n kann Block für Block der Audio-Wellenform-Abtastwerte anpaßbar gewählt werden, um die Energie des übertragenen Signals in jedem Augenblick zu minimieren, da Wellenformdaten mit geringer Energie mit einer geringeren Datenrate als Wellenformdaten mit höherer Energie übertragen werden können.
  • Es hat sich gezeigt, daß Prädiktoren mit ganzzahligen Koeffizienten die mittlere Datenrate und den Inhalt der meisten Audiosignale reduzieren, tatsächlich aber können sie die zur Übertragung erforderliche Spitzen-Datenrate erhöhen. Dies macht solche Prädiktoren ungeeignet für die Bewältigung von Medien, die Begrenzungen der Spitzen-Datenlese- oder -schreibrate aufweisen. Außerdem ist der optimale Prädiktionsfilter zur Minimierung der Datenrate dafür wohlbekannt, siehe J. I. Makhoul, "Linear Prediction: A Tutorial Review", Proc. IEEE, Vol. 63, Seiten 561–580 (April 1975), daß der Frequenzgang der Differenz zwischen tatsächlichem und vorhergesagtem Signal annähernd invers zum Spektrum des zu codierenden Wellenformsignals ist, und für viele Signale nähern Prädiktionsfilter mit ganzzahligen Koeffizienten diese Anforderung nur sehr schlecht an. Somit ergeben ganzzahlige Filter ebenso eine suboptimale mittlere Datenrate. Bei der Codierung von Audiosignalen beeinträchtigen diese Unzulänglichkeiten ganzzahliger Prädiktoren besonders Signale wie Sprach-Zischlaute, Popmusik mit hoher Höhenenergie, Beckenschlag-Wellenformen und dergleichen.
  • Prädiktoren mit nicht-ganzzahligen Koeffizienten können Wellenformen mit viel besseren Reduzierungen sowohl der Spitzen- als auch der mittleren Datenrate codieren, haben aber leider das Problem, daß eine ideale Implementierung die Verwendung von Arithmetik unendlicher Genauigkeit erfordert, was nicht möglich ist. In der Praxis verwendet man Prädiktionsfilter, die Rundungsfehler in ihrer Arithmetik enthalten, und in einem solchen Fall ist es für eine verlustfreie Codierung wesentlich, daß die Rundungsfehler der Prädiktoren in Codierer und Decodierer vollkommen identisch sind. Diese Anforderung identischer Rundungsfehler macht es sehr schwierig, einen Decodier- oder Codieralgorithmus von einer Signalverarbeitungs-Hardware zu einer anderen, von dieser verschiedenen zu transportieren, wo geringfügige Unterschiede in den Rundungsfehlern zutage treten. In Anwendungen, wo eine breite Vielfalt von Geräteausführungen verwendet werden kann, um Signale zu codieren oder zu decodieren, ist es praktisch notwendig, Algorithmen zu verwenden, die zwischen verschiedenen DSP-Plattformen (Digital Signal Processing), welche nicht unbedingt identische Rundungsfehler haben, transportierbar sind. Auch die Notwendigkeit, zu kontrollieren, daß Arithmetik-Rundungsfehler in Prädiktoren absolut identisch sind, macht es sehr schwierig, alternative Prädiktionsfilter-Architekturen für besondere Anwendungen zu entwerfen, wenn bekannt ist, daß verschiedene Codierer und Decodierer zusammenarbeiten müssen.
  • Außerdem fügen existierende nicht-ganzzahlige verlustfreie Prädiktionsalgorithmen dem codierten Signal ein Quantisierungsrauschen hinzu, das ein Spektrum hat, das invers zum Frequenzgang der Differenz zwischen tatsächlichem und vorhergesagtem Signal ist. Bei niederpegeligen Wellenformsignalen kann die Amplitude dieses zusätzlichen Quantisierungsrauschens im codierten Signal dominieren, wodurch sich dessen mittlere Amplitude und folglich die codierte Datenrate unnötigerweise erhöht.
  • Existierende verlustfreie Prädiktionsverfahren codieren und decodieren außerdem nur Wellenformdaten-Einzelkanäle getrennt voneinander. In vielen Anwendungen einschließlich Stereo- und Mehrkanal-Audio möchte man zwei oder mehr zusammenhängende Wellenformsignale codieren, welche recht oft einen hohen Korrelationsgrad aufweisen. Man möchte eine verlustfreie Codierung haben, welche die durch solche Korrelationen verursachte Redundanz ausnutzen kann, um die Datenrate weiter zu reduzieren.
  • OFFENBARUNG DER ERFINDUNG
  • Diese Offenbarung beschreibt veränderte Prädiktions- und Matrizierungsverfahren, die auf nicht-ganzzahligen Prädiktionsfilterkoeffizienten endlicher Genauigkeit und auf der zusätzlichen optionalen Verwendung von Rauschformungs-Filterung mit ganzzahligen Koeffizienten oder endlich genauen nicht-ganzzahligen Koeffizienten um den ganzzahligen Rundungsoperations-Quantisierer beruhen.
  • Die Erfindung wird auf verlustfreie Codierung und verlustfreie Decodierung zusammenhängender Mehrkanal-Wellenformsignale in PCM-Form angewandt, wobei die kaskadierten Codierungsstufen verlustfreie Matrix-Codierungsstufen enthalten können und die kaskadierten Decodierungsstufen verlustfreie Matrix-Decodierungsstufen enthalten können.
  • Solche verlustfreien Matrix-Codierungsstufen können nicht-ganzzahlige Koeffizienten endlicher Genauigkeit verwenden und einzelne Verarbeitungsstufen enthalten, wobei in jeder Stufe nur ein Kanal verändert wird, welcher Kanal als Ausgang eine Quantisierung oder Rundung auf die nächste ganze Zahl einer Linearkombination der Eingangskanäle dieser Stufe hat, wobei der Koeffizient des veränderten Kanals gleich der Einheit ist. Die inverse verlustfreie Matrix-Decodierungsstufe im inversen verlustfreien Decodierer enthält eine ähnliche Anordnung, abgesehen davon, daß die Vorzeichen der Koeffizienten aller unveränderten Kanäle umgekehrt sind, und wobei der Quantisierer im Decodierer den gleichen Effekt wie der Quantisierer im ursprünglichen Codierer hat. Die verlustfreien Codierungs- und Decodierungsstufen können auch eine auf jede beliebige Teilmenge der n Kanäle angewandte Gesamt-Polaritätsumkehrung enthalten.
  • Eine auf n Kanäle angewandte Kaskade verlustfreier Matrix-Codierungsstufen wird hier als n × n-Matrix-Quantisierer bezeichnet, und die inverse Kaskade verlustfreier Matrix-Decodierungsstufen, die den Effekt eines solchen auf n Kanäle angewandten n × n-Matrix-Quantisierers umkehrt, wird hier als inverser n × n-Matrix-Quantisierer bezeichnet. Typischerweise werden solche n × n-Matrix-Quantisierer beim Codieren von n-Kanal-PCM-Wellenformdaten verwendet, um durch Verändern der Eingangskanäle die Datenrate so zu reduzieren, daß das Ausgangskanalsignal aus Linearkombinationen von Kanälen mit geringerer Energie und niedrigerer codierter Gesamt-Datenrate besteht.
  • Filter werden entweder ohne Rundungsfehler oder nur mit Rundungsfehlern, die den Wert des Ausgangs des Quantisierers nicht beeinträchtigen, implementiert.
  • Mit nicht-ganzzahligen Koeffizienten endlicher Genauigkeit meinen wir, daß alle Koeffizienten als rationale Zahlen mit einem ganzzahligen gemeinsamen Nenner d ausgedrückt werden können, so daß die Filterarithmetik ohne vieldeutige Rundungsfehler ausgeführt werden kann. Mit "nicht-ganzzahlig" meinen wir, daß mindestens ein solcher Koeffizient keine ganze Zahl ist.
  • Das Verschieben von Summierungsknoten, die durch G teilbare, auf eine Schrittweite G quantisierte Signale handhaben, von "vor" nach "nach" einem Quantisierer mit Schrittweite G oder umgekehrt verändert nicht die Art der Erfindung, sondern stellt lediglich eine offenkundige Variante der Implementierung dar. Jede einen ganzzahligen Signaleingang umfassende Summierung vor einem Quantisierer, wie der direkte Weg vom Eingang zum Summierungsknoten, kann statt dessen an einem Summierungsknoten nach dem Quantisierer, aber vor dem Ausgang, addiert werden. Außerdem kann um Codierungs- und Decodierungs-Quantisierer identische Rauschformung verwendet werden. Es wird bevorzugt, daß entweder die Rauschformer mit einer FIR-Filterung mit Arithmetik endlicher Genauigkeit arbeiten, welche eine Außenform-Rauschformungs-Architektur verwendet, wodurch die Differenz zwischen dem Eingang und dem Ausgang des Quantisierersystems mit Rauschformung über einen FIR-Filter D (Finite Impulse Response) mit nicht-ganzzahligen Koeffizienten endlicher Genauigkeit und mit einer Verzögerung von mindestens einem Abtastwert in den Eingang des Quantisierers gespeist wird, oder die Rauschformungsfilter mit einer Filterung mit ganzzahliger Arithmetik arbeiten.
  • Ein Überblick über Rauschformungsverfahren und -architekturen befindet sich in Abschnitt 1 von: M. A. Gerzon, P. G. Craven, J. R. Stuart & R. J. Wilson, "Psychoacoustic Noise Shaped Improvements in CD and Other Linear Digital Media", Vorabdruck 3501 der 94. Tagung der Audio Engineering Society, Berlin, (16.–19. März 1993). Diese Literaturquelle beschreibt nicht nur viele verschiedene Formen von Rauschformungstopologie mit äquivalenter Leistung, sondern auch Verfahren zum Umgestalten von Filtern mit ganzzahligen und nicht-ganzzahligen Koeffizienten um Quantisierer, die zum Implementieren der vorliegenden Erfindung vorteilhaft angewandt werden können.
  • Codier- und Decodierfilter-Prädiktor-Anordnungen mit oder ohne Rauschformung können unter Verwendung von Festkomma-Arithmetik endlicher Genauigkeit implementiert werden und können somit ohne jeden Effekt von Rundungsfehlern in den Filterungsoperationen implementiert werden. Folglich sind sie zwischen verschiedenen Festkomma-DSP-Implementierungen und -Plattformen transportierbar. Die einzige Rundungsoperation, die implementiert zu werden braucht, ist diejenige in der Quantisierer-Rundungsoperation. Obwohl die Koeffizienten endlicher Genauigkeit aus Gründen der prakti schen Eignung oft Brüche mit nur einer begrenzten Anzahl von Nachkomma-Binärstellen sein werden, versteht es sich, daß wir mit nicht-ganzzahligen Koeffizienten endlicher Genauigkeit Koeffizienten meinen, die als rationale Verhältnisse zweier ganzer Zahlen definierte Bruchteile haben, da endliche Genauigkeit in ganzzahliger Arithmetik zu jeder beliebigen Basis und nicht nur zur Basis 2 definiert werden kann.
  • Um den Codierer- und den Decodierer-Quantisierer kann Rauschformung verwendet werden. Die Verwendung einer solchen Rauschformung gestattet eine verbesserte Kontrolle entweder der Datenrate codierter Signale während niederpegeliger Wellenform-Passagen oder der Eigenschaften der Behebung von bei der Übertragung aufgetretenen Datenfehlern während der Decodierung.
  • Die Codierfilter-Prädiktor-Anordnung kann auf Blocks von Wellenform-Abtastwerten angewandt werden, wobei die Länge L eines solchen Blocks oft in der Größenordnung von 576 Abtastwerten liegt. Beim Codieren eines solchen Blocks von Abtastwerten wird man typischerweise eine Prädiktorfilter-Anordnung wählen, welche die mittlere oder die Spitzenenergie des codierten Signals innerhalb des Blocks annähernd minimiert, und die zur Codierung verwendeten Filterkoeffizienten als zusätzliche Daten übertragen. Der Decodierer wird die gleichen Filterkoeffizienten in die inverse Decodierfilter-Anordnung laden. Damit die Decodierfilter-Anordnung die Wellenform genau wiederherstellt, ist es gewöhnlich notwendig, daß die anfänglichen Filter-Zustandsvariablen am Anfang des Blocks im Decodier- und im Codierfilter identisch sind, und ferner ist es gewöhnlich notwendig, solche Zustandsvariablen zu übertragen, um die Zustandsvariablen im Decodierfilter am Anfang eines Blocks oder am Anfang einer Folge von Blocks, wo die Filterkoeffizienten geändert wurden, zu "initialisieren". Geeignete Zustandsvariablen für einen Filter mit Nenner und Zähler n-ter Ordnung sind in der Praxis die ersten n Eingangs-Abtastwerte und die ersten n Ausgangs-Abtastwerte des Codierfilters am Anfang des Blocks. Diese werden im Block als die ersten n Ausgangs-Abtastwerte beziehungsweise als die ersten n Eingangs-Abtastwerte des Decodierfilters verwendet.
  • Wo Rauschformungsfilter verwendet werden, müssen auch die Zustandsvariablen des Rauschformungsfilters in der Decodierung gewöhnlich richtig initialisiert und zur Verwendung durch den Decodiere übertragen werden.
  • Es ist auch klar, daß eine Folge kaskadierter Codierfilter-Prädiktor-Anordnungen zum verlustfreien Codieren verwendet werden kann und daß die inverse verlustfreie Decodierungs-Anordnung eine umgekehrte Kaskade inverser Decodiertlter-Prädiktor-Anordnungen ist.
  • Die Erfindung ist auf PCM-Signale in ihrem allgemeinsten Sinn anwendbar, d. h. auf durch ganze Zahlen dargestellte Signale, die den Wert einer Wellenform über eine relativ große Zahl von Abtast-Augenblicken oder Abtastpunkten darstellen. Obwohl die praktische Implementierung normalerweise binäre Digitaldarstellungen der Zahlen verwenden wird, können Darstellungen zu jeder anderen Basiszahl verwendet werden. Jede Bezugnahme auf niedrigst- oder höchstwertige Bits kann in solchen nicht-binären Darstellungen auf niedrigst- oder höchstwertige Stellen verallgemeinert werden.
  • Bezugnahmen auf eine invertierbare ganzzahlige Wellenformtransformations-Anordnung meinen jedes beliebige Verfahren zum Transformieren eines ganzzahligen Signals in ein anderes, so daß es eine ein ganzzahliges Signal in ein ganzzahliges Signal wandelnde inverse Transformationsanordnung gibt, die das ursprüngliche ganzzahlige Signal aus dem transformierten ganzzahligen Signal wiederherstellt. Indem wir sagen, daß sie keine Eingangs-IAusgangsverzögerung aufweist, meinen wir, daß sie eine kausale Implementierung hat und daß die Inverse eine kausale Implementierung hat, so daß die zwei kaskadierten Anordnungen keine Gesamtverzögerung aufweisen. Die verlustfreien Codier- und Decodierfilter-Anordnungen sind selbst Beispiele einer inverfierbaren ganzzahligen Wellenformtransformations-Anordnung ohne Eingangs-/Ausgangsverzögerung, und mehrere andere Beispiele solcher Anordnungen sind in dieser Beschreibung angegeben. Solche Anordnungen können "trivial" sein, d. h. einen Ausgang haben, der zum Beispiel gleich dem Eingang oder dem mit einem Minuszeichen versehenen Eingang ist.
  • Die Anordnung kaskadierter Quantisierungsfilterstufen mit nachgeschaltetem ganzzahligem Quantisierer kann entweder zum verlustfreien Codieren oder zum verlustfreien Decodieren verwendet werden. Eine inverse Anordnung, welche die kaskadierten Filter als Rückkopplungs-Seitenkette um den ganzzahligen Quantisierer verwendet, wobei alle unverzögerten Signalwege weggelassen werden und wobei direkte Einspeisungen aus dem Eingang über alle Verzögerungsfilter Ai und Bi bestehen, welche hierin bezugnehmend auf die untenstehenden 16 und 17 beschrieben wird, kann zum Decodieren beziehungsweise Codieren verwendet werden.
  • Vorzugsweise werden die zum Codieren verwendeten Filteranordnungen und die zum Decodieren verwendeten inversen Filteranordnungen kausal und stabil ein, so daß die Filterausgänge in der Größenordnung nicht übermäßig ansteigen.
  • Für die Stabilität der Codierung und Decodierung ist es notwendig, daß die Codier- und Decodierfilter von Minimalphasen-Form sind, d. h. daß sie und ihre Inversen (ohne Berücksichtigung der Quantisierung) laut wohlbekannten Stabilitätskriterien, zum Beispiel daß die Filterpole und -nullstellen alle innerhalb des komplexen Einheitskreises oder auf diesem liegen, stabil sind. Zur Theorie der digitalen Filterung siehe jedes Standardbuch, zum Beispiel A. Antoniou, "Digital Filters Analysis, Design and Applications", 2. Ausgabe, McGraw-Hill Inc., New York, 1993.
  • Obwohl höchst bevorzugt, ist es dennoch nicht wesentlich, daß der Decodierfilter stabil ist, da die verlustfreie inverse Art der Decodierung die genaue Wiederherstellung des Eingangs sicherstellt. Wenn allerdings eine Codierfilter-Anordnung verwendet wird, die nicht minimalphasig ist, wird im allgemeinen die Wortlänge durch die Codierungs-Anordnung nicht so stark reduziert werden wie durch geeignete Minimalphasen-Codiertilter-Anordnungen. Ferner wird die Verwendung einer Nicht-Minimalphasen-Codierfilter-Anordnung in einer Decodierungs-Anordnung resultieren, die in der Behebung von bei der Übertragung aufgetretenen Datenfehlern unzureichend ist.
  • Die Erfindung kann unter Verwendung von FIR-Filtern A und B oder Ai und Bi in den Codier- und inversen Decodierfiltern, die Matrixfilter sind, auf zusammenhängende Mehrkanal-Wellenformsignale angewandt werden, wobei jeder Kanaleingang jeden Kanalausgang durch einen FIR-Filter mit Koeffizienten endlicher Genauigkeit speist und der Rauschformungsfilter ebenfalls ein Matrixfilter sein kann. Im Matrix-Fall besteht das Stabilitätskriterium darin, daß alle von der Determinante der Matrizen definierten Pole und Nullstellen des Filters innerhalb des Einheitskreises oder auf diesem liegen.
  • Wie unten ausführlicher beschrieben werden wird, ist es im Fall, daß der FIR-Filter A oder Ai im Codierer "durchlässig", d. h. völlig stabil ist und keine Nullstellen auf dem Einheitskreis hat, nicht unbedingt notwendig, Initialisierungs-Zustandsvariablen vom Codierer an den Decodierer zu übertragen, da in diesem Fall die Zustandsvariablen, nachdem ausreichend Zeit mit tatsächlichen Eingangssignalen verstrichen ist, im Decodierer schließlich die gleichen Werte erreichen werden wie im Codierer, und ab diesem Augenblick wird die Decodierung verlustfrei werden.
  • Die Erfindung kann verwendet werden und wird vorzugsweise verwendet mit einer zugehörigen Entropie- oder Huffman- oder ähnlichen Codierungs- oder Decodierungs-Anordnung. Die Verwendung einer solchen Entropie- oder Huffman- oder ähnlichen Codierung am Ausgang einer PCM-Wellenformdatencodierungs-Anordnung gemäß der Erfindung liefert eine niedrigere Datenrate für das codierte Signal, und für den zugehörigen Decodierer ist es ferner notwendig, der Decodierfilter-Anordnung eine inverse Entropie- oder Huffman- oder ähnliche Decodierung vorzuschalten. Die Erfindung kann auch auf Eingangssignale mit einer beliebigen einheitlichen Quantisierungs-Schrittweite G angewandt werden, indem für die Zwecke der Implementierung der Erfindung die Schrittweite als die ganzzahlige Einheit angesehen wird. Insbesondere kann das Eingangssignal eines Codierers vorverarbeitet werden, um Gleichspannungskomponenten zu entfernen und den Verstärkungsfaktor zu normalisieren, so daß die Schrittweite gleich der Einheit wird oder als gleich der Einheit angesehen werden kann, und kann dem Decodierer ein inverser Prozeß des Multiplizierens mit der ursprünglichen Schrittweite G und Wiedereinfügens der Gleichspannungskomponente nachgeschaltet werden.
  • Beim Übertragen von PCM-Signalen kann es erwünscht sein, PCM-Wellenformsignale verschiedener Wortlängen oder verschiedener Genauigkeit auf eine gemeinsame Art zu handhaben. Dies kann in der PCM-Darstellung geschehen, indem zu kürzeren Wortlängen zusätzliche niedrigstwertige Stellen mit einer konstanten, unveränderlichen Form addiert werden, um sie auf eine gemeinsame längere Wortlänge zu bringen. Datenraten-Einsparungen beim Übertragen solcher Signale können nicht nur durch Reduzieren der Energie des übertragenen ganzzahligen Signals erzielt werden, sondern auch durch Ermitteln in PCM-Signalen mit längeren Wortlängen, ob solche konstanten niedrigstwertigen Stellen für ausgedehnte Folgen von Abtastwerten vorliegen, und falls ja, durch Übertragen der digitalen Wörter in codierter Form ohne die niedrigstwertigen Stellen, wobei diese niedrigstwertigen Stellen nur einmal während einer Folge getrennt übertragen werden, und durch Zurückaddieren dieser niedrigstwertigen Stellen im Decodierer. Hierdurch kann ein einziges gemeinsames Format verwendet werden, um eine breite Vielfalt von Wortlängen zu übertragen, während Datenraten gestattet wird, sich automatisch entsprechend der Wortlänge einstellen.
  • Insbesondere können ein Codierer und ein Decodierer verwendet werden, in welchen Wortlänge und Wortgenauigkeit Augenblick für Augenblick anpaßbar sind für aufeinanderfolgende Blocks von Wellenform-Abtastwerten, die eine möglicherweise verschiedene Wortlänge in jedem Block verwenden.
  • Dies gestattet nicht nur ein verlustfreies Codieren und Decodieren von Signalen jeder festen Wortlänge, sondern überdies auch die Verwendung der Codierer und Decodierer der vorliegenden Erfindung mit einem verlustbehafteten Codiersystem.
  • Dies geschieht, indem einem an Wortlänge und Wortgenauigkeit anpaßbaren, verlustfreien Codierer ein anpaßbaren Rundungsalgorithmus vorgeschaltet wird, welcher Block für Block der Wellenform-Abtastwerte die Wellenformdaten auf eine reduzierte Genauigkeit rundet oder quantisiert und anpaßbare Rauschformung um den Quantisierer beinhaltet, so daß die Energie und spektrale Form des so eingeführten Rauschformungs-Quantisierungsfehlers in Gegenwart des PCM-Wellenformsignals bei diesem Teil der Wellenformdaten unterhalb akzeptabler Wahrnehmungsschwellen liegt. Ein an Wortlänge und Wortgenauigkeit anpaßbares nachfolgendes, zugehöriges verlustfreies Übertragungssystem überträgt dann die veränderten Wellenformdaten ohne weitere Verluste.
  • Dies gestattet, an Wortlänge und Wortgenauigkeit anpaßbare, verlustfreie Decodiersysteme auch zur verlustbehafteten Übertragung von Signalen entsprechend Wahrnehmungskriterien, wobei eine reduzierte Datenrate erforderlich ist, zu verwenden, ohne daß irgendwelche besonderen Merkmale im Decodierer, die nicht schon für die Zwecke der verlustfreien Decodierung vorhanden sind, erforderlich werden. Weil die anfängliche wahrnehmungsgemäße verlustbehaftete anpaßbare Quantisierung mit Rauschformung des Wellenformsignals dem Codierer vorgeschaltet ist, handhabt das System das resultierende Signal immer noch auf effiziente Weise in einer verlustfreien Form, um die Datenrate so weit wie möglich zu reduzieren.
  • Es ist offensichtlich, daß das Kaskadiern verlustfreier Codieralgorithmen für ganzzahlige Wellenformen in komplexeren, zusammengesetzten verlustfreien Codieralgorithmen resultieren wird, deren Effekt durch eine umgekehrte Kaskade inverser verlustfreier Decodieralgorithmen rückgängig gemacht werden kann. Deshalb umfaßt die Erfindung kaskadierte oder zusammengesetzte Codierer oder Decodierer, welche als Bestandteile Codierer oder Decodierer gemäß der Erfindung enthalten.
  • Außerdem kann die Erfindung auf für den Durchschnittsfachmann einleuchtende Weisen durch Umgestalten, Kombinieren oder Teilen von Bestandteile darstellenden Unteralgorithmen und auch auf der Grundlage hierin beschriebener und erwähnter Verfahren implementiert werden. Insbesondere durch G teilbare Signale mit einer Quantisierungsschrittweite G können mit äquivalenten Ergebnissen vor oder nach einem Quantisierer mit Schrittweite G äquivalent addiert werden, und kaskadierte Unteralgorithmen können durch einzelne Unteralgorithmen, welche bekanntermaßen von identischer Leistung sind, ersetzt werden oder umgekehrt. Polaritätsumkehrungen können auf für erfahrene Fachleute einleuchtende Weisen hinzugefügt oder entfernt werden, zum Beispiel durch Verwandeln von Summierungs- in Differenzbildungsknoten, sofern die Gesamtfunktionalität unverändert bleibt. Andere Umgestaltungen der in Abschnitt 1 der obengenannten Literaturquelle Gerzon, Craven, Stuart, Wilson beschriebenen Art können ebenfalls angewandt werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Nun werden anhand der beiliegenden Zeichnungen Ausführungsformen der Erfindung beispielhaft beschrieben:
  • 1 zeigt ein Prinzipschaltbild prädiktorbasierter Systeme zum verlustfreien Codieren und Decodieren ganzzahliger Signale bei reduzierter Wortlänge;
  • 2 zeigt ein dem Stand der Technik entsprechendes verlustfreies Prädiktor-Codier- und -Decodiersystem;
  • 3 und 4 zeigen ein Prinzipschaltbild eines verlustfreien Codier- und Decodiersystems, welches mit Entropiecodierung der Daten arbeitet;
  • 5 zeigt eine zu 2 äquivalente Form des verlustfreien Prädiktor-Codier- und -Decodiersystems;
  • 6 zeigt Formen eines verlustfreien Prädiktor-Codier- und -Decodiersystems;
  • 7a und 7b zeigen ein verlustfreies Prädiktor-Codier- und -Decodiersystem dritter Ordnung;
  • 7c zeigt zu verschiedenen Werten von Codierfilterkoeffizienten gehörende Frequenzgänge;
  • 8 zeigt ein verlustfreies Prädiktor-Codier- und -Decodiersystem, das Rauschformung um den Quantisierer enthält;
  • 9 zeigt einen Innenform-Rauschformer um einen Quantisierer;
  • 10 zeigt ein verlustfreies Prädiktor-Codier- und -Decodiersystem, das Innenform-Rauschformung um den Quantisierer enthält;
  • 11 zeigt ein verlustfreies Prädiktor-Codier- und -Decodiersystem dritter Ordnung, das Innenform-Rauschformung um den Quantisierer enthält;
  • 12 zeigt einen Außenform-Rauschformer um einen Quantisierer;
  • 13a und 13b zeigen ein verlustfreies Prädiktor-Codier- und -Decodiersystem, das Außenform-Rauschformung um den Quantisierer enthält;
  • 13c und 13d zeigen ein verlustfreies Prädiktor-Codier- und -Decodiersystem, das äquivalent zum in 13a und 13b gezeigten System ist;
  • 14 zeigt ein verlusffreies Prädiktor-Codier- und -Decodiersystem dritter Ordnung, das Außenform-Rauschformung um den Quantisierer enthält;
  • 15a bis 15d zeigen allgemeinere verlustfreie Codier- und inverse Decodiersysteme;
  • 16 zeigen verlustfreie Codier- und inverse Decodiersysteme, die mit einem gebrochenzahligen Quantisierer arbeiten;
  • 17 zeigen verlustfreie Codier- und inverse kaskadierte Decodiersysteme, die mit gebrochenzahligen Quantisierern arbeiten;
  • 18a und 18b zeigen jeweils ein Prinzipschaltbild eines gesamten verlustfreien Codier- beziehungsweise Decodiersystems für Audioanwendungen hoher Qualität;
  • 19 zeigt einen Huffman-Codierbaum für die Laplacesche Wahrscheinlichkeitsdichtefunktions-Statistik für Blocklänge L = 256 oder mehr Abtastwerte;
  • 20a und 20b zeigen verlustbehaftete Codiersysteme, die einen verlustfreien Codierer und Decodierer enthalten, um mittels anpaßbarer Rundung des Eingangssignals Datenraten von Audiosignalen zu reduzieren, und zwar die Fälle ohne beziehungsweise mit anpaßbarer wahrnehmungsgemäßer Rauschformung;
  • 21a und 21b zeigen einen verlusffreien Vorverzerrungs-Codierer und einen verlustfreien Rückentzerrungs-Decodierer;
  • 21c zeigt eine Vorverzerrungs-Frequenzgangkurve für eine Abtasffrequenz von 96 kHz zur Verwendung mit verlustfreier Vorverzerrungs-Codierung;
  • 22 zeigen eine einfache verlusffreie Matrix-Codierungs- und inverse Matrix-Decodierungs-Quantisierungs-Anordnung, welche nur einen Kanal verändert;
  • 23 zeigt eine verlustfreie Matrix-Codierungs- und inverse Matrix-Decodierungs-Quantisierer-Anordnung, welche zwei kaskadierte Systeme der in 22 gezeigten Art enthält;
  • 24a, 24c, 24e, 24g, 24i und 24k zeigen ein verlusffreies n-Kanal-Matrix-Prädiktor-Codiersystem, und 24b, 24d, 24f, 24h, 24j und 24l zeigen das entsprechende verlustfreie inverse n-Kanal-Matrix-Prädiktor-Decodiersystem;
  • 25 zeigt einen 2 × 2-Matrix FIR-Filter zweiter Ordnung mit einer Verzögerung von mindestens einem Abtastwert;
  • 26 zeigt ein vereinfachtes Codiersystem für n-Kanal-Signale und den entsprechenden inversen Decodierer;
  • 27a und 27b zeigen einen verlusffreien Codierer beziehungsweise einen verlustfreien Decodierer einschließlich Autodither; und,
  • 28a und 28b zeigen eine Form von verlustfreier Verstärkungsfaktor-Änderung, die Autodither enthält.
  • BESTE AUSFÜHRUNGSWEISEN DER ERFINDUNG
  • Die Erfindung kann durch Einspeisen von Wellenformdaten in digitaler PCM-Form in digitale Signalverarbeitungschips, für welche die Motorola DSP-56000- oder DSP-96000-Familie oder die Texas Instruments TMS-320-Familie typische aktuelle Beispiele sind, implementiert werden, und die Codier- und Decodieralgorithmen können in Form von Code, der zur Ausführung auf dem Chip bestimmt ist und im auf dem Chip befindlichen oder zum Chip gehörenden Programmspeicher gespeichert wird, implementiert werden. In computerbasierten Anwendungen kann das Wellenformsignal in PCM- und codierten Formen alternativ als digitale Daten im Computer und seinem zugehörigen Speicher gehandhabt werden und können die Codier- und Decodieralgorithmen auf erfahrenen Fachleuten wohlbekannte Weisen in Form von Programmcode für den Computer implementiert werden. Für Anwendungen, welche die Produktion preiswerter Codierer und Decodierer in hohen Stückzahlen erfordern, können die verwendeten Signalverarbeitungschips für die verwendeten Algorithmen optimiert werden, um dedizierte Chips für die jeweilige spezielle Anwendung zu produzieren.
  • Wellenformsignale stammen gewöhnlich aus einem ursprünglichen analogen Wellenformsignal (wie einem Audio- oder Bild- oder Videosignal), welches dann durch einen Analog/Digital-Wandler in PCM- oder ähnliche Form umgewandelt wird, und solche Wellenformsignale werden schließlich von einem Endnutzer verwendet, indem dieser sie in einen Digital/Analog-Wandler einspeist, um eine reproduzierte analoge Wellenform zu produzieren. In manchen Fällen jedoch kann die Wellenform ausschließlich im digitalen Bereich produziert werden, zum Beispiel von einem digitalen Synthesizer für Musik-Audiosignale oder von einem Zeichenprogramm für Bild-Wellenformen. Die Wellenform kann auch im digitalen Bereich umfassend verändert worden sein, zum Beispiel durch Zusammenmischen von Audiosignalen in einer digitalen Audio-Workstation oder durch Verwendung von Effekten und Filtern.
  • Die Erfindung beruht, wie bekannte, dem Stand der Technik entsprechende verlusffreie Codierverfahren, auf der Verwendung einer invertierbaren Quantisierungsfilterungs-Anordnung zum Codieren ganzzahliger Wellenformen, um ganzzahlige Wellenformsignale mit kleineren Wortlängen zu produzieren, und auf dem Decodieren der ganzzahligen Wellenform mit reduzierter Wortlänge durch eine inverse Quantisierungsfilterungs-Anordnung zum Decodieren, um die ursprüngliche ganzzahlige Wellenform genau wiederzuherstellen, wie in 1 gezeigt.
  • Die zum verlustfreien Codieren verwendete bekannte, dem Stand der Technik entsprechende Quantisierungsfilter-Anordnung ist in 2a dargestellt, und die zum verlustfreien Decodieren verwendete bekannte, dem Stand der Technik entsprechende Quantisierungsfilter-Anordnung ist in 2b dargestellt. 2a zeigt ein herkömmliches Prädiktorsystem um eine ganzzahlige Quantisierer-Rundungsoperation des in der Prädiktionsliteratur wie der obigen Literaturquelle Makhoul bekannten Typs. Der Prädiktorfilter P(z–1), bei welchem z–1 eine Verzögerung von einem Abtastwert darstellt und P(z–1) die Antwort des Prädiktors ist, wird vom Ausgang über einen Summierungsknoten-Quantisierer gespeist, welcher auf die nächste ganze Zahl runden kann, in welchen auch der Ausgang des Prädiktors gespeist wird, und der Quantisierer wird über einen zweiten Summierungsknoten vom Eingangssignal und vom phaseninvertierten Ausgang des Prädiktors gespeist. Der in 2b gezeigte inverse verlustfreie Decodierer speist das codierte Signal über einen Summierungsknoten in den Quantisierer, und der mit dem im Codierer verwendeten Prädiktor identische Prädiktor wird vom Eingang des Quantisierers gespeist, und sein Ausgang speist den Summierungsknoten.
  • Wie gemäß dem Stand der Technik bekannt ist und durch Berechnen der mathematischen Beziehungen zwischen Signalen, die in jedem Weg in den Netzwerken in 2a und 2b vorliegen, überprüft werden kann, stellt das Decodiernetzwerk das ursprüngliche Eingangssignal genau wieder her, sofern nur die Zustandsvariablen in den Prädiktionsfiltern zu jedem beliebigen vorherigen Zeitpunkt identisch sind.
  • Obwohl der dem Stand der Technik entsprechende Codierer in 2a bei geeigneter Wahl der Prädiktoren die typische und mittlere Größenordnung codierter Signale reduziert, wird diese durch einen in 3 und 4 gezeigten zweiten Schritt, den wir hier generisch als "Entropiecodierung" bezeichnen, in eine reduzierte Datenrate umgewandelt, wodurch die Längen gemeinsamer Wörter für die Übertragung verkürzt werden. Um das ursprüngliche Signal zu decodieren, wird ein in 3 und 4 gezeigter weiterer, hier mit dem generischen Begriff "Entropiedecodierung" bezeichneter Schritt verwendet, um die ursprüngliche Wortlänge des codierten Signals wiederherzustellen, und dann wird das codierte Signal in die ursprünglichen Eingangswörter zurückdecodiert.
  • Diese "Entropiecodierungs"-Verkürzung der Wortlänge kann auf zahlreiche gemäß dem Stand der Technik bekannte Weisen erfolgen, und wir beschreiben kurz beispielhaft zwei typische Verfahren, die allgemein gebräuchlich geworden sind. Ein einfaches Verfahren teilt das Signal in Blocks der Länge L Abtastwerte und untersucht für jeden Block, wie viele B2 der höchstwertigen Bits im gesamten Block unveränderlich sind und läßt diese B2 höchstwertigen Bits fallen, wodurch es Wörter von einer um B2 Bits kürzeren Länge hinterläßt. Die Zahl B2 wird getrennt mit den Wortdaten des Blocks übertragen. Der Entropiedecodierer fügt diese B2 unveränderlichen höchstwertigen Bits wieder ein, um die Wortlänge wiederherzustellen.
  • Ein anspruchsvolleres, eine stärkere Datenraten-Reduzierung bietendes Verfahren verwendet das Verfahren der Huffman-Codierung, welches mit Huffman-Codierungs-Verweistabellen arbeitet. Dieses Verfahren wird zum Beispiel in der obigen Literaturquelle Cellier et al beschrieben. Huffman-Codier verfahren werden in zahlreichen Literaturquellen beschrieben, siehe zum Beispiel J. Weiss & D. Schremp, "Putting data on a diet", IEEE Spectrum, Vol. 30, No. 8, Seiten 36–39 (Aug. 1993) oder die obige Literaturquelle Cellier et al oder Kapitel 6 der obigen Literaturquelle Gonzales & Woods oder die obige Literaturquelle Rabbani & Jones. Das Huffman-Tabellen-Verfahren ersetzt jedes digitale Wort durch ein aus einer Verwerstabelle gewähltes anderes Wort variabler Länge, welches Wort so gewählt wird, daß gebräuchlichere digitale Wörter eine kurze Länge und weniger gebräuchlichere eine längere Länge haben. Die Huffman-Tabelle wird von einem Huffman-Baum abgeleitet wie in den genannten Literaturquellen beschrieben und hat die Eigenschaft, daß die Huffman-Tabellen-Wörter eindeutig aus dem Datenstrom wiederhergestellt werden können, ohne eine "Trennzeichen"-Information zwischen Wörtern zu benötigen, und über eine inverse Tabelle verwendet werden können, um die ursprünglichen digitalen Wörter wiederherzustellen.
  • Die verwendete Huffman-Tabelle kann an die Signalstatistik anpaßbar sein, und der Codierer und der Decodierer können eine Anzahl von Huffman-Tabellen zum Codieren und Decodieren haben, wobei die in jedem Datenblock verwendete Tabelle gewählt wird, um die Datenrate in diesem Block zu minimieren, und wobei die Wahl der Tabelle mit den codierten Daten übertragen wird, so daß der Decodierer weiß, welche Tabelle er zum Decodieren dieses Blocks verwenden muß.
  • Dieser Stand der Technik ist wohlbekannt und wird zum Beispiel in den genannten Literaturquellen und anderswo in der Literatur beschrieben. Ein besonderes Beispiel der Huffman-Codierung und -Decodierung wird später in dieser Beschreibung beispielhaft beschrieben.
  • 5a und 5b zeigen ein vereinfachtes Prinzipschaltbild des Codierers beziehungsweise Decodierers der in 2a und 2b dargestellten Prädiktionssysteme, wobei B(z–1) einen Filter mit der Antwort
    Figure 00140001
    darstellt, wobei z–1 eine Verzögerung von einem Abtastwert darstellt und P(z–1) die Antwort des Prädiktors ist.
  • In dem Stand der Technik entsprechenden Implementierungen war B(z–1) ein rekursiver Filter, und es wurde nicht erkannt, daß Implementierungen mit B(z–1) und FIR-Filterkoeffizienten mit Bruchteilen endlicher Genauigkeit besonders vorteilhaft sind.
  • Das Prinzipschaltbild in 5 kann verallgemeinert werden auf dasjenige in 6a und 6b und das Implementieren der Filter A(z–1) und B(z–1) durch FIR-Filter, deren Koeffizienten rationale Zahlen sind, deren kleinster gemeinsamer Nenner eine ganze Zahl d ist. Solche Filter können durch Arithmetik endlicher Genauigkeit implementiert werden, und die in 6 dargestellten Gesamtsysteme können ohne jeden Gesamt-Rundungsfehler mittels einer Implementierung wie der in 6e und 6f dargestellten implementiert werden.
  • In manchen Implementierungen, in welchen die Filter A(z–1) und B(z–1) FIR-Filter sind, deren Koeffizienten rationale Zahlen sind, deren kleinster gemeinsamer Nenner eine ganze Zahl d ist, kann der eine oder andere der Filter A(z–1) und B(z–1) fehlen oder äquivalent alle Koeffizienten gleich Null haben.
  • In 6a hat ein Prädiktionscodiersystem einen ganzzahligen Eingang, der einen Summierungsknoten sowohl direkt als auch über einen FIR-Filter A(z–1) mit einer Verzögerung von mindestens einem Abtastwert und mit rationalen Koeffizienten endlicher Genauigkeit, z. B. Koeffizienten mit nur n Nachkomma-Binärstellen, so daß d = 2–n ist, speist. Der Summierungsknoten speist einen ganzzahligen Quantisierer oder eine ganzzahlige Rundungsoperation mit Einheits-Schrittweite, so daß auch sein beziehungsweise ihr Ausgang ganzzahlig ist, und der Ausgang des Quantisierers wird über einen anderen FIR-Filter B(z–1) mit einer Verzögerung von mindestens einem Abtastwert und mit rationalen Koeffizienten endlicher Genauigkeit, z. B. Koeffizienten mit nur n Nachkomma-Binärstellen, so daß d = 2–n ist, in den Summierungsknoten zurückgespeist und von diesem subtrahiert. Die in den Summierungsknoten gespeisten Signale sind entweder ganzzahlig oder Vielfache von 1/d und können folglich eindeutig am Quantisierer dargestellt werden, so daß die typischerweise auf die nächste ganze Zahl rundende Quantisierungsoperation eindeutig fehlerfrei implementiert werden kann.
  • Ein besonderes Merkmal des in 6a dargestellten Systems ist, daß der Prozeß des Codierens des ganzzahligen Eingangssignals in ein ganzzahliges Ausgangssignal invertierbar ist, d. h. daß ein zweites System das ganzzahlige Eingangssignal aus dem ganzzahligen Ausgangssignal wiederherstellen kann, d. h. daß der Codierprozeß verlustfrei und umkehrbar ist.
  • 6b ist ein Prinzipschaltbild dieses inversen oder verlustfreien Decodierprozesses. Funktional ist dieser mit dem Codierer in 6a identisch, abgesehen von nur zwei Ausnahmen: erstens sind die FIR-Filter A(z–1) und B(z–1) vertauscht, und zweitens ist der im Decodierer verwendete Quantisierer äquivalent zum Codierungs-Quantisierer sowohl mit vor- als auch mit nachgeschaltetem Verstärkungsfaktor von –1. Für einen Rundungsquantisierer ist dies äquivalent zur Verwendung einer Rundungsoperation, die mittig zwischen Quantisierungspegeln liegende Werte abrundet, wenn der im Codierer verwendete Quantisierer aufrundet, oder umgekehrt.
  • Zu jedem Zeitpunkt speichern die Filter A(z–1) und B(z–1) im Codierer in 6a vergangene Werte der Vorgeschichte des Eingangs der Filter im Speicher, wodurch sie Zeitverzögerungen im Filter implementieren. Diese gespeicherten Werte sind als die Zustandsvariablen des Systems in 6a bekannt.
  • Damit der Decodierer in 6b den Prozeß in 6a invertiert, ist es notwendig, daß die Zustandsvariablen in den Filtern A(z–1) und B(z–1) im Codierer und im Decodierer zu jeder Zeit identisch sind. Es genügt, dies zu nachfolgenden Zeitpunkten sicherzustellen, damit die Zustandsvariablen zu einem gegebenen Zeitpunkt identisch sind. Somit ist es, um das Eingangssignal des Codierers am Ausgang des Decodierers wiederherzustellen, notwendig, nicht nur den Ausgang des Codierers an den Eingang des Decodierers zu übertragen, sondern auch Anfangswerte der Zustandsvariablen in den Filtern A(z–1) und B(z–1) vom Codierer an den Decodierer zu übertragen. Dieser Prozeß wird als "Initialisierung" des Decodierers bezeichnet.
  • Um zu verstehen, daß 6b tatsächlich die inverse Decodierung zur Codierung in 6a implementiert, beachten Sie, daß der Ausgang S' in 6a bezüglich des Eingangs S durch S' = S + Quantisierung (AS BS')gegeben ist, wobei Quantisierung die ganzzahlige Rundungsoperation bedeutet und wobei die Operatoren A und B die Filter A(z–1) beziehungsweise B(z–1) einschließlich Verzögerungen darstellen. Die inverse Gleichung lautet
    Figure 00160001
    wobei Quantisierung' den ursprünglichen Quantisierungsprozeß mit vor- und nachgeschalteter Polaritätsumkehrung bedeutet. Dieser inverse Prozess wird durch 6b implementiert.
  • Der Codierer in 6a wird mit arbiträren FIR-Filtern endlicher Genauigkeit A(z–1) und B(z–1) funktionieren, und der inverse Decodierer in 6b wird das Eingangssignal des Codierers immer aus dem Ausgang des Decodierers wiederherstellen, sofern er richtig initialisiert wird. Wenn der durch 6a implementierte digitale Filter aber instabil ist, wird sein Ausgang schnell und im Pegel unbegrenzt ansteigen und zur Übertragung nicht geeignet sein. Deshalb ist es notwendig, den Nenner 1 + B(z–1) des Codierfilters so zu wählen, daß er stabil ist, d. h. Nullstellen innerhalb des Einheitskreises oder auf dem Einheitskreis hat. Um die Datenrate zu minimieren, ist es ferner wünschenswert, wenn auch nicht unbedingt erforderlich, daß der inverse Decodierer ebenfalls stabil ist, d. h. daß der Nenner 1 + A(z–1) des Decodierfilters stabil ist, d. h. Nullstellen der komplexen Variable z innerhalb des Einheitskreises oder auf dem Einheitskreis hat. Die Theorie der Stabilität rekursiver digitaler Filter und der Mittel zur Sicherstellung der Stabilität ist wohlbekannt und steht in den meisten Standardbüchern zum Entwurf digitaler Filter wie der obengenannten Literaturquelle Antoniou.
  • Eine alternative, aber funktional äquivalente Implementierung der verlustfreien Codier- und Decodiersysteme in 6a und 6b ist in 6c beziehungsweise 6d dargestellt. Das Eingangssignal kann statt vor dem Quantisierer nach diesem addiert werden, um den Ausgang zu bilden, wie in 6c und 6d gezeigt, da das Addieren eines ganzzahligen Signals vor einem ganzzahligen Quantisierer zum gleichen Ergebnis führt wie das Addieren danach. Beachten Sie, daß zur funktionalen Äquivalenz der in 6b verwendete Quantisierer zum in 6d verwendeten Quantisierer sowohl mit vor- als auch mit nachgeschaltetem Verstärkungsfaktor von –1 äquivalent ist.
  • Der gleiche Prozeß wie im Codierer in 6c kann im Decodierer wie in 6d gezeigt verwendet werden, mit dem einzigen Unterschied, daß die FIR-Filter A(z–1) und B(z–1) vertauscht sind. Die im Codierer und im Decodierer verwendeten Quantisierer sind in diesem Fall funktional identisch.
  • Eine praktische Implementierung, welche die ganzzahlige Arithmetik der verlustfreien Codier- und Decodiersysteme in 6a oder 6c und 6b oder 6d verwendet, ist in 6e beziehungsweise 6f dargestellt. Statt die Filter A(z–1) und B(z–1) mit gebrochenen Koeffizienten zu implementieren, implementiert man dA(z–1) und dB(z–1), welche völlig ganzzahlige Koeffizienten haben, subtrahiert die Ergebnisse und teilt dann danach durch d und quantisiert. Die Division durch d und die Quantisierung können in einem einzigen Schritt implementiert werden, indem in Schrittweiten von d statt in Schrittweiten von 1 quantisiert wird, oder sie können implementiert werden durch eine Multiplikation mit einer Näherung an 1/d, die eine ausreichende, aber endliche Genauigkeit aufweist, um den Bruchteil des Ausgangs richtig auf die nächste ganze Zahl mit anschließender ganzzahliger Rundungsoperation darzustellen.
  • Der gleiche ganzzahlige Arithmetik-Prozeß kann im Decodierer wie in 6f gezeigt verwendet werden, mit dem einzigen Unterschied zum Codierer in 6e, daß die FIR-Filter dA(z–1) und dB(z–1) vertauscht sind. Die im Codierer und im inversen Decodierer verwendeten Quantisierer sind in diesem Fall funktional identisch.
  • 7a und 7b zeigen beispielhaft einen Codierer beziehungsweise Decodierer für den Fall, daß die Filter A(z–1) und B(z–1) FIR-Filter dritter Ordnung sind, mit A(z–1) = a1z–1 + a2z–2 + a3z–3 B(z–1) = b1z–1 + b2z–2 + b3z–3 wobei a1, a2, a3, b1, b2, b3 allesamt Koeffizienten der Form m/d sind, wobei d ein kleinster gemeinsamer ganzzahliger Nenner ist und m ein ganzzahliger Zähler ist, welcher für jeden Filterkoeffizienten anders sein kann.
  • Ferner sind in 7 die Zustandsvariablen, welche drei aufeinanderfolgende Eingangswerte I1, I2, I3 und drei aufeinanderfolgende Ausgangswerte O1, O2, O3 des Codierers umfassen, sowie die entsprechenden Zustandsvariablen im Decodierer dargestellt.
  • In einer typischen Anwendung wird die Codiererfilterung anpaßbar gewählt werden, um die Ausgangssignalenergie von Augenblick zu Augenblick zu minimieren. Dies kann typischerweise durch Codieren von Blocks von L aufeinanderfolgenden Abtastwerten von Wellenformdaten geschehen, wobei L in Audioanwendungen hoher Qualität typischerweise zwischen 256 und 1536 Abtastwerten liegen kann. Jeder Block kann mit anderen Filterkoeffizienten, die jeweils dafür angepaßt sind, den Ausgangssignalpegel für diesen Datenblock zu minimieren, codiert werden. Zu Veranschaulichungszwecken betrachten wir den Fall von L = 576 Abtastwerten. In solchen typischen Anwendungen wird für jeden Block ein möglicherweise neuer Codierfilter A(z–1) und B(z–1) ausgewählt und werden die sechs Koeffizienten a1, a2, a3, b1, b2, b3 an den Decodierer für diesen Block von Abtastwerten übertragen werden, und außerdem werden auch die ersten drei Eingangs-Abtastwerte I1, I2, I3 und alle L Ausgangs-Abtastwerte des Codierers an den Decodierer übertragen. Die ersten drei Eingangs-Abtastwerte am Eingang des Codierers werden verwendet, um erstens den Decodierer für diesen Block zu initialisieren und zweitens die ersten drei Ausgangs-Abtastwerte bereitzustellen. Die ersten drei Ausgangs-Abtastwerte am Ausgang des Codierers werden auch verwendet, um den Decodierer zu initialisieren, so daß vom vierten Ausgangs-Abtastwert bis zum L-ten Ausgangs-Abtastwert des Decodierers der Decodierer den Eingang des Codierers verlustfrei wiederherstellt.
  • Die Wahl der Filter A(z–1) und B(z–1) zur Minimierung der codierten Datenrate kann auf vielfältige Weise erfolgen. Ein Verfahren ist, einfach einen kleinen Satz von Auswahlmöglichkeiten zu haben und die Eingangs-Wellenform mit jeder davon zu codieren und diejenige Auswahlmöglichkeit zu wählen, die den kleinsten mittleren Ausgangssignalpegel oder den kleinsten Spitzenpegel in einem Block ergibt. Die in diesem Prädiktor verwendeten Koeffizienten werden dann an den Decodierer übermittelt und in die Filter im Decodierer geladen.
  • Man wird im allgemeinen bestrebt sein, Filter so zu produzieren, daß der Filter
    Figure 00180001
    einen Frequenzgang hat, dessen allgemeine Tendenz annähernd invers zum Spektralinhalt des zu codierenden Signals ist, so daß das codierte Ausgangssignal ein Spektrum hat, das einem weißen viel näher kommt. Wenn zum Beispiel ein zu codierendes Audio-PCM-Signal eine relativ hohe Baßenergie aufweist, wie es gewöhnlich der Fall ist, würde man den Filter so einrichten, daß er eine starke Baßabsenkung produziert, zum Beispiel indem man dafür sorgt, daß der Zähler 1 + A(z–1) einen Faktor oder Faktoren enthält, der beziehungsweise die 1 kz–1 für k ungefähr gleich 1 annähert beziehungsweise annähern, oder indem man eine Nullstelle des Zählers nah am Einheitskreis bei oder in der Nähe der Nullfrequenz plaziert. Bei Audiomaterial mit hoher Energie im mittleren Frequenzbereich um 7 kHz, wie Sprach-Zischlauten, Beckenschlägen und mancher Popmusik, würde man einen Codierfilter verwenden, der diese Frequenzen stark dämpft. Bei Audiomaterial mit sehr geringer Energie bei sehr hohen Frequenzen, wie es für viele Wellenformen klassischer Musik typisch ist, würde man Filter verwenden, die eine starke Anhebung bei diesen Frequenzen ergeben, zum Beispiel durch Plazierung eines Pols des Nenners 1 + B(z–1) in der Nähe der Nyquist-Frequenz.
  • Im allgemeinen ist es sinnvoll, beim Entwerten einer Filterungsanordnung für ein bestimmtes Signalspektrum zu beachten, daß der Dezibel- oder logarithmische Frequenzgang eines Minimalphasenfilters der Form
    Figure 00180002
    einen zwischen der Nullfrequenz und der Nyquist-Frequenz Bemittelten Mittelwert von 0 dB hat.
  • In der Literaturquelle M. A. Gerzon & P. G. Craven, "Optimal Noise Shaping and Dither of Digital Signals", Vorabdruck 2822 der 87. Tagung der Audio Engineering Society, New York (18.–21. Okt. 1989), wird nachgewiesen, daß dies eine notwendige und hinreichende Bedingung für einen Minimalphasenfilter ist. Deswegen wird eine Anhebung über einen Teil des Frequenzbereichs eine ausgleichende mittlere Absenkung über den Rest des Frequenzbereichs ergeben.
  • Beispielsweise aus einem Satz von Codiererfilter-Auswahlmöglichkeiten in einer Audio-Wellenformcodierungs-Anwendung bei einer Abtastfrequenz von 44,1 kHz könnte man die Codielter mit a3 = 0, b3 = 0 und Werten von a1, a2, b1, b2 wie in einem der in Tabelle 1 dargestellten Fälle gezeigt wählen.
  • Tabelle 1:
    Figure 00190001
  • Die Frequenzgänge dieser 8 Fälle von Codierfiltern zweiter Ordnung in Tabelle 1 sind in 7c für eine Abtastfrequenz von 44,1 kHz in dB in Abhängigkeit von der Frequenz in kHz aufgetragen. Es ist zu erkennen, daß diese Filter hinsichtlich des Maßes der Absenkung oder Anhebung bei Bass-, Mitten- und Höhenfrequenzen beträchtlich variieren, so daß sie zu einer breiten Vielfalt von Signalspektren passen. Die Vielfalt der möglichen Frequenzgänge wird weiter zunehmen, wenn auch a3 und b3 gestattet wird, nicht Null zu sein, und wenn dem Nenner der Koeffizienten gestattet wird, 8, 16 oder höher zu sein. Insbesondere bei größer werdendem Nenner können die Kurven extremere Dynamikbereiche zwischen den Anhebungen und den Absenkungen haben und gestattet die höhere Ordnung einen schärferen Übergang zwischen den Frequenzbereichen, die abgesenkt werden, und denen, die angehoben werden, sowie kompliziertere Verläufe des Frequenzgangs. Diese Verfeinerungen gestatten eine genauere Signalprädiktion, was eine niedrigere Amplitude des prädiktionscodierten Signals ergibt.
  • Wenn es eine sehr große Anzahl von Auswahlmöglichkeiten von Filtern für den Codierer gibt, wird es rechentechnisch nicht möglich sein, jeden möglichen Filter auszuprobieren, um herauszufinden, welcher die minimale mittlere oder Spitzen-Energie des codierten Signals ergibt. Jedoch kann man in einem ersten Schritt aus einer kleinen Auswahl von vielleicht nur vier oder fünf sehr verschiedenen, zu typischenrweise erwarteten Wellenformspektren passenden Filtern auswählen, die Wellenform in einem Block mit jedem dieser speziell ausgewählten Filter codieren und denjenigen, welcher den kleinsten mittleren oder Spitzen-Ausgangspegel ergibt, auswählen. Nachdem der beste unter diesen gefunden ist, kann man in einem zweiten Schritt zur Verbesserung der Codierung eine zweite kleine Auswahl von Filtern ausprobieren, die alle dem im ersten Schritt ausgewählten Filter viel ähnlicher sind, um herauszufinden, ob ein besserer Filter existiert. Dieser Prozeß kann sogar wiederholt werden, wobei jedesmal ein ähnlicherer Satz von Filtern als auf der vorherigen Stufe verwendet wird. Hierdurch können Filter, die einer optimalen Reduzierung des mittleren oder Spitzen-Ausgangspegels ziemlich nahe kommen, für jeden Block gefunden werden.
  • Oft bevorzugt man auch, den Codierer zu implementieren, um in einem Block von Abtastwerten den Filter, der bereits im letzten Block von Abtastwerten als optimal ermittelt wurde, auszuprobieren, weil bei Signalen mit relativ stationärer Statistik oft festgestellt wird, daß dieser auch ein guter Filter für den aktuellen Block von Abtastwerten ist. Wenn festgestellt wird , daß dieser Prädiktor besser als andere auf einer ersten Stufe des Ermittelns, welcher von verschiedenen Filtern Ausgangspegel minimiert, ausprobierte ist, kann eine weitere Suche nach Filtern, die dem im letzten Block verwendeten nahekommen, durchgeführt werden oder kann man einfach den im vorherigen Block verwendeten Filter beibehalten, wenn neue Filter wenig Verbesserung bei der Reduzierung des Ausgangspegels ergeben.
  • Es können anspruchsvollere Verfahren zum Optimieren der Auswahl von Filtern A(z–1) und B(z–1) erdacht werden. Zum Beispiel kann, unter Verwendung von FFT-Verfahren (Fast Fourier Transform) über einen mit Fenstern versehenen Block von Abtastwerten, der länger als der Block ist, der gerade codiert wird, eine Schätzung für das Spektrum des Eingangssignals über die Dauer des Blocks vorgenommen werden, wobei die Fenster im Block zur Verbesserung der Schätzung des Spektrums dienen. Unter Verwendung stochastischer Kurvenermittlungsverfahren kann dann ein Minimalphasenfilter dritter Ordnung so entworfen werden, daß er eine Spektralempfindlichkeit hat, die zur Inversen des resultierenden Spektrums paßt, indem die mittlere Dezibel-Differenz zwischen dem Signalspektrum und dem dB-Frequenzgang des Filters
    Figure 00200001
    minimiert wird.
  • Einbeziehen der Rauschformung
  • Das ideale Codiersystem ist, wie erläutert wurde, ein Filter
    Figure 00200002
    der einen Rundungs-Quantisierer enthält, dessen Effekt ist, das Spektrum des Eingangssignals "weiß zu machen".
  • Jedoch trägt auch der Quantisierer selbst zum Codiererausgang bei, und bei niedrigem Eingangssignalpegel kann er sogar die Ausgangsenergie des Codierers dominieren. In diesem Fall kann es auch wünschenswert sein, die vom Quantisierer zum Codiererausgang beigetragene Energie zu minimieren. Das Quantisierungsrauschspektrum selbst kommt dem weißen nahe, und der Effekt der zugehörigen Filterung ist, das Quantisiererrauschen durch den Filter
    Figure 00200003
    zu filtern, welcher den Effekt hat, den Pegel des Quantisierungsrauschens im Ausgang zu erhöhen.
  • Ein allgemeineres verlustfreies Codiersystem kann durch Einbeziehen von Rauschformung um den Quantisierer geschaffen werden, wie in 8a und 8b für den Codierer beziehungsweise Decodierer schematisch gezeigt. Dieses verwendet die gleiche Anordnung von Codierer und Decodierer wie zuvor, abgesehen davon, daß jetzt sowohl der Codierungs-Quantisierer als auch der Decodierungs-Quantisierer Rauschformung eines Typs, der nur Arithmetik endlicher Genauigkeit benötigt, enthält. Die im Codierer und die im Decodierer verwendete Rauschformung sollten identisch sein, und die Initialisierung der Zustandsvariablen des Rauschformungsfilters muß vom Codierer an den Decodierer übertragen werden.
  • Rauschformung wird in der obengenannten Literaturquelle Gerzon, Craven, Stuart, Wilson besprochen. Es gibt zwei verwendbare allgemeine Rauschformungs-Architekturen, die als Innen- und Außenform bekannt sind.
  • 9 zeigt die Innenform der Rauschformung um einen Quantisierer. In einem solchen Innenform-Rauschformer wird die Differenz zwischen dem Eingang und dem Ausgang des Quantisierers über einen FIR-Filter C(z–1), der vorzugsweise so beschaffen ist, daß 1 + C(z–1) minimalphasig ist, in den Eingang zurückgespeist, um die zusätzliche Rauschenergie zu minimieren.
  • Der FIR-Filter C(z–1) hat vorzugsweise ganzzahlige Koeffizienten, so daß nur Arithmetik endlicher Genauigkeit benötigt wird, um den Codierer genau, ohne jeden Rundungsfehler, zu implementieren. Solche Innenform-Rauschformer haben den Effekt, ein Quantisierungsrauschspektrum zu produzieren, das 1 + C(z–1) mal das annähernd weiße Spektrum des grundlegenden Quantisierers ist.
  • Bei Verwendung im Codiersystem in 8a, wodurch sich das in 10a dargestellte Codiersystem ergibt, ist das durch den Quantisierer verursachte resultierende Ausgangsrauschspektrum des Codierers
    Figure 00210001
    mal dasjenige eines weißen Spektrums. Wenn die Energie des Quantisierungsrauschens am Codiererausgang minimiert werden soll, wird somit C(z–1) am besten so gewählt, daß es gleich der nächsten ganzzahligen Näherung an B(z–1) ist, so daß 1 + C(z–1) minimalphasig ist.
  • Das zum System mit Innenform-Rauschformung in 10a inverse Decodiersystem ist in 10b dargestellt. Es verwendet einen identischen Rauschformer um den Quantisierer, vertauscht aber die Filter A(z–1) und B(z–1) und verwendet im Decodierer einen zum Codierungs-Quantisierer sowohl mit vor- als auch mit nachgeschaltetem Verstärkungsfaktor von –1 äquivalenten Quantisierer.
  • 11a und 11b zeigen beispielhaft einen Codierer beziehungsweise Decodierer für den Fall, daß die FIR-Filter A(z–1) und B(z–1) dritter Ordnung sind und der FIR-Filters C(z–1) zweiter Ordnung ist, mit A(z–1) = a1z–1 + a2z–2 + a3z–3 B(z–1) = b1z–1 + b2z–2 + b3z–3 C(z–1) = c1z–1 + c2z–2 wobei a1, a2, a3, b1, b2, b3 allesamt Koeffizienten der Form m/d sind, wobei d ein kleinster gemeinsamer ganzzahliger Nenner ist und m ein ganzzahliger Zähler ist, welcher für jeden Filterkoeffizienten anders sein kann, und wobei c1, c2 ganze Zahlen sind.
  • Ferner sind in 11a und 11b die Zustandsvariablen, welche drei aufeinanderfolgende Eingangswerte I1, I2, I3, drei aufeinanderfolgende Ausgangswerte O1, O2, O3 des Codierers und zwei Zustandsvariablen N1, N2 des Rauschformers umfassen, sowie die entsprechenden Zustandsvariablen im Decodierer dargestellt. Beachten Sie das umgekehrte Vorzeichen der Rauschformer-Zustandsvariablen im Decodierer. Ab dem vierten Abtastwert des Ausgangs des Decodierers ist es notwendig, die Werte der Zustandsvariablen zu initialisieren, aus welchen der vierte Ausgangs-Abtastwert berechnet wird.
  • 12 zeigt die Außenform der Rauschformung um einen Quantisierer. In einem solchen Außenform-Rauschformer wird die Differenz zwischen dem Eingang und dem Ausgang des gesamten Systems um den Quantisierer über einen FIR-Filter D(z–1), der vorzugsweise so beschaffen ist, daß 1 + D(z–1) minimalphasig ist, in den Eingang des Quantisierers zurückgespeist, um die zusätzliche Rauschenergie zu minimieren.
  • Der FIR-Filter D(z–1) hat vorzugsweise rationale Koeffizienten endlicher Genauigkeit mit Nenner d, so daß nur Arithmetik endlicher Genauigkeit benötigt wird, um den Codierer und den Decodierer genau, ohne jeden Rundungsfehler zu implementieren. Solche Außenform-Rauschformer haben den Effekt, ein Quantisierungsrauschspektrum zu produzieren, das
    Figure 00220001
    mal das annähernd weiße Spektrum des grundlegenden Quantisierers ist.
  • Bei Verwendung im Codiersystem in 8a, wodurch sich das in 13a dargestellte Codiersystem ergibt, ist das durch den Quantisierer verursachte resultierende Ausgangsrauschspektrum des Codierers
    Figure 00220002
    mal dasjenige eines weißen Spektrums. Wenn die Energie des Quantisierungsrauschens am Codiererausgang minimiert werden soll, wird somit D(z–1) am besten so gewählt, daß 1 + D(z–1) minimalphasig ist und daß 1 + D(z–1) die Inverse von 1 + B(z–1) annähert.
  • Das zum System mit Außenform-Rauschformung in 13a inverse Decodiersystem ist in 13b dargestellt. Es verwendet einen identischen Rauschformer um den Quantisierer, vertauscht aber die Filter A(z–1) und B(z–1) und verwendet im Decodierer einen zum Codierungs-Quantisierer sowohl mit vor als auch mit nachgeschaltetem Verstärkungsfaktor von –1 äquivalenten Quantisierer.
  • Es läßt sich zeigen, daß die durch Verwendung einer Außenform-Rauschformung um den Quantisierer produzierten Codier- und Decodiersysteme zur Verwendung eines Codier- und Decodiersystems ohne Rauschformung funktional äquivalent sind, sofern der Filter A(z–1) durch A(z–1) + D(z–1) + D(z–1)A(z–1)ersetzt wird und der Filter B(z–1) durch B(z–1) + D(z–1) + D(z–1)B(z–1)ersetzt wird, wie für den Codierer und den Decodierer in 13c beziehungsweise 13d gezeigt. Die Implementierungen mit Außenform-Rauschformung sind jedoch im allgemeinen einfacher, da es keine Verdopplung des Filters D(z–1) in zwei getrennten Filtern gibt.
  • 14a und 14b zeigen beispielhaft einen Außenform-Rauschformung verwendenden Codierer beziehungsweise Decodierer für den Fall, daß die FIR-Filter A(z–1) und B(z–1) dritter Ordnung sind und der FIR-Filter D(z–1) zweiter Ordnung ist, mit A(z–1) = a1z–1 + a2z–2 + a3z–3 B(z–1) = b1z–1 + b2z–2 + b3z–3 B(z–1) = d1z–1 + d2z–2 wobei a1, a2, a3, b1, b2, b3, d1, d2 allesamt Koeffizienten der Form m/d sind, wobei d ein größter gemeinsamer ganzzahliger Nenner ist und m ein ganzzahliger Zähler ist, welcher für jeden Filterkoeffizienten anders sein kann.
  • Ferner sind in 14 die Zustandsvariablen, welche drei aufeinanderfolgende Eingangswerte I1, I2, I3, drei aufeinanderfolgende Ausgangswerte O1, O2, O3 des Codierers und zwei Zustandsvariablen N1, N2 des Rauschformers umfassen, sowie die entsprechenden Zustandsvariablen im Decodierer dargestellt. Beachten Sie das umgekehrte Vorzeichen der Rauschformer-Zustandsvariablen im Decodierer. Ab dem vierten Abtastwert des Ausgangs des Decodierers ist es notwendig, die Werte der Zustandsvariablen zu initialisieren, aus welchen der vierte Ausgangs-Abtastwert berechnet wird.
  • Es ist auch möglich, im Codier- und im Decodiersystem die Verwendung eines Innenform-Rauschformers mit ganzzahligen Koeffizienten und eines Außenform-Rauschformers mit Koeffizienten endlicher Genauigkeit um einen Quantisierer zu kombinieren. Dies hätte den Effekt, das Rauschspektrum des Quantisierers durch
    Figure 00230001
    zu formen.
  • Dies kann durch Verschachteln von Innenform und Außenform-Rauschformern um den Quantisierer geschehen. Eine Beschreibung verschachtelter Rauschformer befindet sich in Abschnitt 1 der obengenannten Literaturquelle Gerzon, Craven, Stuart, Wilson.
  • Allgemeinere Filterung
  • Zwar wird bevorzugt, daß die Filter A(z–1) und B(z–1) FIR-Filter mit Koeffizienten endlicher Genauigkeit sind, die entweder genau oder so, daß etwaige Rundungsfehler den Ausgang des Quantisierers nicht beeinträchtigen, implementiert werden, wie im in Verbindung mit 6e und 6f beschriebenen Beispiel – es können aber auch Filter implementiert werden, um Rundungsfehler zu kontrollieren.
  • Insbesondere die Filter A(z–1) und/oder B(z–1) in den in 6, 8, 10 oder 13 dargestellten Implementierungen können zum Beispiel Kaskaden von Filterungs-Unteralgorithmen sein, von denen jeder eine Quantisierung von Ausgangspegeln mit entweder einer Einheits-Schrittweite oder einer rationalen Schrittweite, die kleiner als die Einheit ist, enthalten kann. Dies kann erreicht werden, indem man dafür sorgt, daß jeder der kaskadierten Unteralgorithmen ein FIR-Filter mit Koeffizienten endlicher Genauigkeit mit nachgeschaltetem Quantisierer ist, oder auch indem man dafür sorgt, daß irgendwelche oder jeder der kaskadierten Unteralgorithmen für sich die Form eines Quantisierungsfilters der in 6a gezeigten Form haben, wobei die zwei Filter darin FIR-Filter mit Koeffizienten endlicher Genauigkeit sind. Alle solchen Architekturen für die Filter A(z–1) und B(z–1) können mit genauer Arithmetik, die zwischen verschiedenen Festkomma-DSP-Architekturen transportierbar ist, implementiert werden.
  • Im allgemeinen haben solche Architekturen, die Kaskaden von quantisierte Ausgangsfilter beinhaltenden Unteralgorithmen für A(z–1) und/oder B(z–1) verwenden, den Nachteil, daß sie den Gesamtbetrag des Quantisierungsrauschens am Ausgang des Codierers erhöhen. Sie haben allerdings den Vorteil, daß sie gestatten, durch Faktorisierung oder Verwendung rekursiver Quantisierungstopologien komplexere Filter A(z–1) und B(z–1) zu implementieren, ohne daß die Genauigkeit der Arithmetik sehr hoch sein muß.
  • Eine allgemeinere Topologie ist in 15a oder 15c für den Codierer und in 15b oder 15d für den inversen Decodierer dargestellt. Wie in 15a oder 15c gezeigt, ist dem Codierer-Quantisierer ein Codierungs-Quantisierer 1b nachgeschaltet, welcher selbst jedes beliebige verlustfreie ganzzahlige Codiersystem ohne Eingangs-/Ausgangs-Zeitverzögerung sein kann, welcher Codierungs-Quantisierer dem Ausgang vorgeschaltet ist, und speist der ganzzahlige Eingang den Summierungsknoten nicht direkt, sondern durch einen Codierungs-Quantisierer 1a ohne Eingangs-/Ausgangs-Zeitverzögerung, welcher selbst jedes beliebige verlustfreie ganzzahlige Codiersystem sein kann. Außerdem werden die Summierungsknoten wie zuvor durch Filter A(z–1) und B(z–1) gespeist. Dieser oder jener der Codierungs-Quantisierer 1a oder 1b und ihrer Inversen können trivial sein in dem Sinne, daß sie keinen Effekt auf das Signal haben. Wie in 15b oder 15d gezeigt, ist dem inversen Decodierer-Quantisierer ein inverser Decodierungs-Quantisierer 1a, der zum im Codierer verwendeten Codierungs-Quantisierer 1a invers ist, nachgeschaltet, welcher inverse Decodierungs-Quantisierer dem Ausgang vorgeschaltet ist, und speist der ganzzahlige Eingang den Summierungsknoten nicht direkt, sondern durch einen inversen Decodierungs-Quantisierer 1b, der zum Codierungs-Quantisierer 1b invers ist. Außerdem werden die Summierungsknoten wie zuvor durch Filter A(z–1) und B(z–1) gespeist. Die in den allgemeinen Implementierungen in 15a bis 15d verwendeten Quantisierer können auch Rauschformung enthalten, sofern bei der Codierung und bei der inversen Decodierung identische Rauschfor mung verwendet wird.
  • Codier- und Decodierfilter mit gebrochenzahligen Quantisierern
  • Ein Problem bei den oben beschriebenen Codier- und Decodierfiltern ist, daß das von den Filtern erzeugte Quantisiererrauschen sehr stark sein kann, wenn die gewünschten Filter hoher Ordnung sind und relativ hohe Q haben. In extremen Fällen kann dies bewirken, daß das übertragene Quantisiererrauschen solch extreme Amplituden aufweist, daß es die erwünschte Amplitude des codierten Signals verdeckt, was sehr hohe Datenraten zur Folge hat. Beim normalen Entwerfen digitaler Filter reduziert man Quantisierungsrauscheffekte mit Hilfe zweier Strategien: mittels einer kleineren Quantisierungs-Schrittweite, d. h. effektiv mit erhöhter Genauigkeit arbeitend, und durch Implementieren eines Filters hoher Ordnung als kaskadierte "biquadratische" Abschnitte (Abschnitte zweiter Ordnung). Hier beschreiben wir, bezugnehmend auf 16 und 17, eine Erweiterung der oben beschriebenen Codierer-/Decodiererfilter-Strategien, die gestattet, bei verlustfreier Codierung und Decodierung ein ähnliches Ziel zu erreichen, um übermäßiges Quantisiererrauschen im prädiktionscodierten Wellenformsignal zu verhindern.
  • In 16 und 17 haben die Quantisierer alle eine einheitliche Quantisierungs-Schrittweite, wobei die Schrittweite in der rechten unteren Ecke der Quantisiererblocks angegeben ist.
  • 16a zeigt eine invertierbare Filtertransformation von ganzzahligen zu ganzzahligen Wellenformsignalen, die entweder als verlustfreier Codierer oder als verlustfreier Decodierer verwendet werden kann. Um die Beschreibung zu vereinfachen, werden wir diese als das ursprüngliche Transformationsystem und einen inversen Decodierer beziehungsweise Codierer als das inverse Transformationsystem bezeichnen. 16a empfängt als Eingangssignal ein ganzzahliges PCM-Wellenformsignal und speist es sowohl direkt als auch über einen Filter A(z–1) mit einer Verzögerung von mindestens einem Abtastwert in einen Summierungsknoten, der einen ersten Quantisierer speist, dessen Ausgang einen am Summierungsknoten zu subtrahierenden zweiten Filter B(z–1) mit einer Verzögerung von mindestens einem Abtastwert speist, während der Ausgang des ersten Quantisierers einen zweiten Quantisierer speist, welcher ein ganzzahliger Quantisierer ist (d. h. mit Schrittweite 1), der das ganzzahlige Ausgangs-Wellenformsignal liefert. Wenn der erste Quantisierer ein ganzzahliger Quantisierer ist, ist dies zweifellos das gleiche System wie das bezugnehmend auf 6a oder 6b beschriebene System, wobei der zweite Quantisierer dann überflüssig ist.
  • In 16a ist der erste Quantisierer allerdings so eingerichtet, daß er die Schrittweite 1/G für ganzzahlige G hat, d. h. eine Schrittweite, welche die ganzzahlige Schrittweite genau teilt. Diese kleinere Schrittweite bedeutet, daß das vom Quantisierungsfiltersystem erzeugte Quantisierungsrauschen proportional kleiner ist, wobei die ganzzahligen Werte erst vom zweiten Quantisierer am Ausgang wiederhergestellt werden.
  • Um zu verstehen, daß diese in 16a gezeigte Transformation tatsächlich invertierbar ist, beachten Sie, daß, weil das ganzzahlige Eingangssignal eine Schrittweite hat, die ein ganzzahliges Vielfaches der Schrittweite des ersten Quantisierers ist, äquivalente Ergebnisse erzielt werden können, indem das Eingangssignal am Ausgang des ersten Quantisierers statt am Summierungsknoten addiert wird, und dies wiederum ist äquivalent dazu, es sowohl am Eingang des zweiten Quantisierers als auch am Eingang des Filters B(z–1) zu addieren. Somit ist das System in 16a äquivalent zum in 16b dargestellten System, wobei der Vorwärts-Seitenkettenfilter A'(z–1) die in 16c dargestellte Form hat.
  • Das zu 16b inverse System existiert und hat die in 16d dargestellte Form mit Rückkopplungs-Seitenkettenfilter A'(z–1). Deshalb kann die Inverse zu 16a implementiert werden wie in 16e gezeigt. Der Quantisierer mit Schrittweite 1 in 16e ist zu demjenigen in 16a sowohl mit vor- als auch mit nachgeschalteter Polaritätsumkehrung äquivalent. 16f, 16g, 16h und 16i sind alternative, funktional äquivalente Formen des zu 16a inversen Systems, wobei die Quantisierer in 16f, 16g und 16h mit denjenigen in 16a identisch sind und wobei der Quantisierer mit Schrittweite 1 in 16i zum Quantisierer in 16a sowohl mit vor- als auch mit nachgeschalteter Polaritätsumkehrung äquivalent ist. Die funktionale Äquivalenz der alternativen Formen in 16e bis 16i ergibt sich aus dem Beachten und Anwenden der folgenden Beobachtungen:
    • (1) Der Ausgang eines zweiten Quantisierers mit einer zweiten Schrittweite, die ein ganzzahliges Vielfaches einer ersten Schrittweite ist, bleibt unverändert, sei es, daß der zweite Quantisierer mit dem Eingang oder mit dem Ausgang eines ersten Quantisierers mit der ersten Schrittweite gespeist wird. Dies begründet die funktionale Äquivalenz der 16f bis 16g.
    • (2) Wenn ein Summierungs- oder Differenzbildungsknoten mit zwei Signalen gespeist wird, von denen eines mit einer zweiten Schrittweite, die ein ganzzahliges Vielfaches einer ersten Schrittweite ist, quantisiert ist, dann ist das Ergebnis der Plazierung eines Quantisierers mit der ersten Schrittweite in den anderen den Knoten speisenden Signalweg äquivalent zum Ergebnis der Plazierung desselben Quantisierers nach dem Knoten (mit vor- und nachgeschalteter Polaritätsumkehrung, wenn vor dem Knoten eine Subtraktion in den Knoten gespeist wird). Dies begründet die funktionale Äquivalenz der 16e bis 16f und der 16g bis 16h und 16i.
    • (3) Überdies gilt die obige Beobachtung (2) auch noch, wenn der Quantisierer mit Rauschformung ausgestattet ist, welche von Innenform und/oder von Außenform sein kann.
  • Unter Anwendung dieser drei Beobachtungen kann ohne jede Änderung der funktionalen Leistung eine breite Palette von Umgestaltungen der Codierer und Decodierer vorgenommen werden, und die Beispiele in 16e bis 16i sind lediglich beispielhaft. Die gleichen Beobachtungen können auch angewendet werden, um zu zeigen, daß das ursprüngliche System in 16a zu 16j und 16k funktional äquivalent ist.
  • Im Fall, daß ein Quantisierer oder beide Quantisierer Rauschformung enthalten, können diese Beobachtungen und Argumente verwendet werden, um zu zeigen, daß 16e und 16g funktional äquivalent sind und daß beide zu 16a oder 16j invers sind, welche ebenfalls funktional äquivalent sind. 16f, 16h und 16i sind funktional äquivalent und sind invers zum System in 16k, wenn Rauschformung um die Quantisierer verwendet wird.
  • Der praktische Nutzen der Verwendung einer gebrochenen Quantisierungs-Schrittweite bei verlustfreien Codier- und Decodierfiltern wird am besten offensichtlich, wenn mehrere Filterabschnitte kaskadiert werden. Diese Abschnitte können typischerweise Abschnitte zweiter Ordnung (biquadratisch) oder erster Ordnung (bilinear) sein, wobei A- und B-Filter FIR-Filter erster oder zweiter Ordnung mit Koeffizienten endlicher Genauigkeit und mit einer Verzögerung von mindestens einem Abtastwert sind. In Anwendungen werden diese Filter gewöhnlich und vorzugsweise genau implementiert werden oder mit Rundungsfehlern, die ausreichend klein sind, daß die Rundungsfehler an den Ausgängen der Quantisierer im Codierer und Decodierer keinen Unterschied ausmachen, implementiert werden. Die beim Entwerfen von Filtern verwendeten normalen Verfahren der Synthetisierung einer komplexen gewünschten Filtercharakteristik als kaskadierte biquadratische und bilineare Abschnitte können unter Verwendung kleiner interner Quantisierer-Schrittweiten verwendet werden, um die Energie des Quantisierungsrauschens zu minimieren.
  • Ein Beispiel eines komplexen Codier- oder Decodierfilters, auf welchen eine kaskadierte biquadratische Implementierung unter Verwendung von Brucharithmetik besonders angewendet werden kann, sind Filter mit "Brickwall"-Anhebung oder Absenkung mit einem sehr schnellen Übergang zwischen Frequenzbändern mit hohem Verstärkungsfaktor und solchen mit niedrigem Verstärkungsfaktor. Solche Filter sind dafür angepaßt, eine gute Codierung und Decodierung von Signalen mit begrenzter Bandbreite zu liefern, wobei der Codierer die Bänder mit geringer Energie anhebt und den Rest des Bandes stark absenkt und der Decodierer die umgekehrte Arbeit tut. Rekursive Filter mit solchen schnellen "Brickwall"-Übergangseigenschaften neigen dazu, hoher Ordnung, oft achter Ordnung, zu sein, und werden günstigerweise als Kaskade von vier biquadratischen Abschnitten implementiert, welche mit Hilfe von Standard-Filterentwurfspaketen wie demjenigen in MATLAB entworfen werden können. Die einzelnen biquadratischen Abschnitte neigen dazu, sehr hohe Q zu haben, und neigen dazu, jedes Quantisierungsrauschen in der Filterimplementierung zu verstärken.
  • 17 zeigt den Fall zweiter kaskadierter Stufen mit gebrochenen Filter-Quantisierer-Schrittweiten, welche die ganzzahlige Eingangs- und Ausgangs-Schrittweite durch ganzzahlige Faktoren teilen. 17a zeigt eine invertierbare Filtertransformation von ganzzahligen zu ganzzahligen Wellenformsignalen, die entweder als verlustfreier Codierer oder als verlusffreier Decodierer verwendet werden kann. Zur Vereinfachung der Beschreibung werden wir diese als das ursprüngliche Transformationssystem und einen inversen Decodierer beziehungsweise Codierer als das inverse Transformationssystem bezeichnen. Das System in 17a zeigt zwei kaskadierte Filterquantisierungsstufen mit Vorwärtsfilter-Seitenkette Ai(z–1) und Rückkopplungsfilter-Seitenkette Bi(z–1) um einen Quantisierer mit Schrittweite 1/Gi, wobei Gi für i = 1, 2 eine ganze Zahl für die erste und zweite Stufe der Kaskade ist, mit einem Ausgangsquantisierer mit Schrittweite 1 am Ausgang der Kaskade. Wie zuvor kann dieses umgestaltet werden, indem der Summierungsknoten für das ganzzahlige Eingangssignal jeweils auf die anderen Seiten der Quantisierer mit gebrochener Schrittweite verschoben wird, um eine zur Form in
  • 17b äquivalente Form zu erhalten, wobei das Vorwärts-Seitenkettenfilter-System A'(z–1) die in 17c gezeigte Form hat.
  • Es ist insbesondere zu beachten, daß das Eingangssignal des Seitenkettenfilters A'(z–1) in 17c das System nur über eine Zeitverzögerung von mindestens einem Abtastwert speist, so daß der Filter A'(z–1) in rekursiven Rückkopplungsschleifen verwendet werden kann. Die Inverse zum ursprünglichen System kann wie in 17d gezeigt implementiert werden, wobei der Quantisierer mit Schrittweite 1 zum Quantisierer im ursprünglichen System in 17a sowohl mit vor- als auch mit nachgeschalteter Polaritätsumkehrung äquivalent ist. Die vollständige Ausführung dieser Inversen zu 17a ist in 17e dargestellt. Im Codier- und Decodiersystem können irgendwelche oder alle Quantisierer Rauschformung enthalten, sofern diese in Codierer und Decodieren angeglichen ist. Die Verallgemeinerung auf den Fall jeder beliebigen Anzahl n von kaskadierten Stufen, jede mit Vorwärtsfilter-Seitenkette Ai(z–1) und Rückkopplungsfilter-Seitenkette Bj(z–1) um einen Quantisierer mit Schrittweite 1/Gi, wobei Gj für i = 1, 2, ..., n eine ganze Zahl ist, ist auch offensichtlich. In vielen praktischen Implementierungen kann es günstig sein, in allen Filterstufen die gleiche Schrittweite zu verwenden, aber dies ist nicht erforderlich.
  • Eine alternative kaskadierte Architektur für das ursprüngliche System ist in 17f dargestellt. Unter Anwendung der obigen Beobachtungen (1) bis (3) ist zu erkennen, daß diese zum System in 17a funktional äquivalent ist, sofern G1 ein Teiler von G2 ist. Ob dies nun der Fall ist oder nicht, die Seitenketten-Form in 17b in 17f hat eine Seitenkette A'(z–1), welche die in 17g gezeigte Form hat. Wenn diese Seitenkette in 17d als Rückkopplungs-Seitenkette um einen Quantisierer mit Einheits-Schrittweite implementiert wird wie in 17d gezeigt, dann implementiert sie das zum kaskadierten System in 17f inverse System.
  • Diese Beispiele können in einer einleuchtenden und offensichtlichen Weise auf jede beliebige Anzahl n von kaskadierten Stufen verallgemeinert werden. Der Fall mit drei Kaskaden ist in 17h mit dem Seitenkettenfilter A'(z–1) in 17i beispielhaft dargestellt.
  • Es ist auch möglich, kaskadierte Stufen der in 17a und 17f dargestellten Formen im ursprünglichen System zu mischen, und solche gemischten Formen kommen dann im Seitenkettenfilter A'(z–1) und in der inversen Form von 17d vor.
  • Der Seitenkettenfilter A'(z–1) in 16c oder 17c oder 17g oder 17i hat nicht eine der Standard-Filterarchitekturen, die normalerweise von einem erfahrenen Fachmann verwendet werden würden, um eine Filterung in einer rekursiven Rückkopplungsschleife der Form in 17d zu implementieren, sondern hat eine besondere und außergewöhnliche Form. Diese Form verzichtet auf einen direkten Kaskadenweg zwischen Eingang und Ausgang und nimmt statt dessen den Eingang und speist ihn in einen Summierungsknoten vor allen Vorwärtsfiltern Ai(z–1) außer dem ersten und allen Rückkopplungsfiltern Bi(z–1) und setzt diese veränderte Kaskade in eine Rückkopplungsschleife um den Quantisierer mit Einheits-Schrittweite.
  • Rauschformung kann um irgendwelche oder alle Quantisierer verwendet werden, sofern die Rauschformung in Codierer und Decodierer angeglichen ist. Dies mag oft bevorzugt werden, entweder um den Pegel des Quantisierungsrauschens in den Filtern weiter zu kontrollieren oder um eine optimale Rauschformungskennlinie zu schaffen, entweder um die Datenrate bei niedrigen Signalpegeln des prädiktionscodierten Wellenformsignals zu minimieren oder um die Stabilität bei der Behebung von Datenfehlern oder bei falscher Initialisierung des Decodierers zu verbessern.
  • Die Initialisierung des Decodierers erfolgt im Falle gebrochenzahliger Quantisierung wie gewöhnlich am Anfang eines Blocks von Abtastwerten durch Übertragen der in den Verzögerungen der FIR-Filter Ai(z–1) und Bi(z–1) gespeicherten Zustandsvariablen vom Codierer zum Decodierer – beachten Sie allgemein, daß Ai+1(z–1) und Bi(z–1) in 17a, 17c, 17e, 17f, 17g, 17h, 17i für i = 1 die gleichen Zustandsvariablen haben und daß dies auf Kaskaden arbiträrer Länge n für i = 1 bis n1 zu verallgemeinein ist. Ferner ist zu beachten, daß die Zustandsvariablen in diesem Fall verschiedene numerische Genauigkeiten haben, wobei zum Beispiel die Ausgangs-Zustandsvariablen in 17a eine numerische Genauigkeit haben, die wegen der letzten Quantisierungs-Schrittweite um einen Faktor G2 mal größer als der tatsächliche Ausgang des Systems in 17a ist. Entsprechend haben die Ausgangs-Zustandsvariablen in 17f eine numerische Genauigkeit, die um einen Faktor gleich dem kleinsten gemeinsamen Vielfachen von G1 und G2 mal größer als der tatsächliche Ausgang des Systems in 17f ist. Deshalb wird die Verwendung gebrochenzahliger Quantisierung die Wortlänge der Initialisierungsdaten im allgemeinen vergrößern.
  • Im Fall von vier kaskadierten biquadratischen Filtern, wie sie zur "Brickwall"-Filterung für effizientes verlustfreies Codieren bandbegrenzter Signale verwendet werden können, muß man im allgemeinen zusätzlich zu den prädiktionscodierten Wellenformdaten für den Block acht Initialisierungsdaten-Abtastwerte erhöhter Genauigkeit von Codierer zu Decodierer übertragen. Jedoch kann es, wie unten erwähnt, möglich sein, bei der Übertragung von Initialisierungsdaten unter einer Vielfalt von Umständen Einsparungen zu machen.
  • Ein solches kaskadiertes biquadratisches System zum Codieren oder Decodieren erfordert auch die Übertragung von 16 Filterkoeffizienten (plus Koeffizienten für etwaige verwendete Rauschformer), und zur genauen Implementierung von so etwas wie einem "Brickwall"-Filter können diese eine relativ hohe Genauigkeit erfordern. Um bei der Übertragung großer Mengen von zusätzlichen Daten zu sparen, kann es in einem solchen Fall ratsam sein, eine Tabelle von vorbestimmten, üblicherweise verwendeten Sätzen von Codierfilterkoeffizienten vom Codierer zum Decodierer herunterzuladen und dann einfach eine in der Verweistabelle des Decodierers zu verwendende Tabellennummer zu übertragen.
  • Die bezugnehmend auf 17d gezeigte inverse rekursive Form der kaskadierten Architektur wird zur Verwendung als Decodierer und die ursprüngliche direkte Kaskade als Codierer bevorzugt, wenn gewünscht wird, daß das zum prädiktionscodierten Signal hinzugefügte Quantisierungsrauschen ein weißes Spektrum hat, um jede Erhöhung der Datenrate bei niederpegeligen Eingangssignalen zu minimieren. Zur bestmöglichen Behebung von Datenfehlern und falscher Initialisierung im Decodierer wird andererseits die bezugnehmend auf 17d gezeigte inverse rekursive Form der kaskadierten Architektur zur Verwendung als Codierer und die ursprüngliche direkte Kaskade als Decodierer bevorzugt.
  • Um kaskadierte Filter darzustellen, kann sowohl die ursprüngliche als auch die inverse rekursive Seitenketten-Form verwendet werden, wenn man das interne Quantisierungsrauschen nicht berücksichtigt, wobei die direkte Form den Filter
    Figure 00300001
    und die inverse rekursive Seitenketten-Form einen Filter
    Figure 00300002
    darstellt.
  • Es ist auch möglich, beide Formen in einem einzigen Codierer und inversen Decodierer zu kombinieren, wie bezugnehmend auf 17j bis 17l gezeigt. In 17j ist der erste Teil der Kaskade von Gebrochenschrittweiten-Quantisierer-Filtern in einer direkten oder ursprünglichen Form implementiert wie die in 17a oder 17f oder 17h vor dem Quantisierer mit Einheits-Schrittweite dargestellten Kaskaden und ist der zweite Teil der Kaskade in der rekursiven Seitenketten-Form um einen Quantisierer mit Einheits-Schrittweite implementiert, wobei der Seitenkettenfilter B'(z–1) die Form ohne direkten, unverzögerten Weg hat wie in 16c oder 17c oder 17g oder 17i gezeigt. Der inverse Decodierer weist die gleiche Architektur wie in 17k dargestellt auf, abgesehen davon, daß jetzt die anfängliche Kaskade von Gebrochenschrittweiten-Quantisierer-Filtern auf B'(z–1) beruht und die rekursive Seitenkette auf A'(z–1) beruht. Der Quantisierer mit Einheits-Schrittweite in 17k ist äquivalent zu demjenigen in 17i sowohl mit vor- als auch mit nachgeschalteter Polaritätsumkehrung. Analog zu 6 gibt es andere zu 17j und 17k äquivalente Formen. Zum Beispiel die in 17l dargestellte ist äquivalent zu 17j.
  • Die Implementierungen des Codier- und Decodiersystems können unter Anwendung der obigen Beobachtungen (1) bis (3) von einem erfahrenen Fachmann umgestaltet und variiert werden.
  • Entropiecodierung verlustfrei prädiktionscodierter Daten
  • Am Beispiel einer typischen Implementierung beschreiben wir nun, bezugnehmend auf 18a, ein verlustfreies Codiersystem, das auf der Verwendung einer verlustfreien Codierfilter-Anordnung, der ein Huffman-Codierungs-Entropiecodierer für die Codierung nachgeschaltet ist, und eines inversen Huffman-Decodierers, dem eine verlustfreie Decodiererfilterungs-Anordnung nachgeschaltet ist, beruht, wie in groben Zügen in den Prinzipschaltbildern in 3 und 4 dargestellt.
  • In diesem Beispiel eines Codier- und Systems, wie es verwendet werden kann, um Audio-PCM- Wellenformen hoher Qualität bei Abtastfrequenzen zwischen 44,1 und 96 kHz zu codieren, wird das Signal zuerst in Blocks der Länge L Abtastwerte, wofür wir beispielhaft L = 576 wählen, geteilt. Jeder Block wird getrennt codiert und decodiert.
  • Das Gesamt-Prinzipschaltbild des hier beschriebenen verlustfreien Codiersystems ist in 18a und des hier beschriebenen verlustfreien Decodiersystems in 18b dargestellt. In den beschriebenen Beispielen nehmen wir an, daß wir Codier- und Decodierfilter dritter Ordnung verwenden und daß auch optionale ganzzahlige Innenform-Rauschformung zweiter Ordnung verwendet wird, wie oben bezugnehmend auf 11 beschrieben, oder daß auch optionale ganzzahlige Außenform-Rauschformung zweiter Ordnung verwendet wird, wie oben bezugnehmend auf 14 beschrieben.
  • Die übertragenen Informationen für jeden Block werden zwei Bestandteile enthalten: erstens Kopfdaten, welche alle Informationen, die zum richtigen Decodieren der codierten Daten notwendig sind, an den Decodierer übertragen, und zweitens Huffman-codierte Wellenformdaten, welche Daten enthalten, die den ganzzahligen Ausgang des in 11a oder in 14a dargestellten Codiererfilter-Systems darstellen.
  • Um die Gesamt-Datenrate zu minimieren, ist es natürlich wichtig, sicherzustellen, daß die Menge von als "Zusätze" übertragenen Daten in den Kopfdaten im Verhältnis zu den Daten in den Huffmancodierten Wellenformdaten gering gehalten wird.
  • Die Kopfdaten enthalten die acht Koeffizienten a1, a2, a3, b1, b2, b3, c1, c2 (oder d1, d2) des Filters und des Rauschformers. Typischerweise werden diese sechs Koeffizienten a1, a2, a3, b1, b2, b3 alle von der Form m/16 oder m/64 mit ganzzahligem m sein, damit sie von endlicher Genauigkeit sind und um Datenzusätze für die Übertragung zu reduzieren. Nimmt man beispielsweise den Fall von m/64, werden die Koeffizienten a1, a2, a3, b1, b2, b3 typischerweise entsprechende Wertebereiche haben, um alle Minimalphasenfilter zu implementieren
    –192 ≤ 64 a1 ≤ 192
    –192 ≤ 64 a2 ≤ 192
    –64 ≤ 64 a3 ≤ 64
    –192 ≤ 64 b1 ≤ 192
    –192 ≤ 64 b2 ≤ 192
    –64 ≤ 64 b3 ≤ 64
    was die Übertragung von 50 Bits an Zusatzdaten erfordert. Nähme man statt dessen der Fall m/16, wären nur 38 Bits an Zusatzdaten erforderlich, um die 6 Filterkoeffizientenwerte zu übertragen. Es ist auch möglich, einige Koeffizienten der Form, sagen wir, m/16 und andere der Form m/32 oder m/16 zu haben. Einige der zulässigen Sätze von Koeffizientenwerten resultieren in einem instabilen Codierfilter, und diese sollten nicht verwendet werden. Es ist im Prinzip möglich, in den übertragenen Koeffizientendaten auf diese Sätze von Werten zu verzichten und dadurch ein paar Bits an Daten einzusparen, aber die mit dem Codieren und Decodieren von Koeffizientendaten verbundenen Komplikationen sind die geringe resultierende Bitraten-Einsparung möglicherweise nicht wert.
  • Es ist auch möglich, die zum Übertragen der Koeffizienten benötigten Daten zu reduzieren, indem man eine Verweistabelle zulässiger Sätze von Koeffizientenwerten vorwählt, wobei man Koeffizienten, die zu einem Filter führen, dessen Spektralempfindlichkeit einer anderen, die zulässig ist, zu ähnlich ist, wegläßt.
  • Die Innenform-Rauschformer-Koeffizienten, die ganzzahlig und minimalphasig sind, haben nur neun mögliche Werte, nämlich
    c1 = 0, c2 = 0
    c1 = 1, c2 = 0
    c1 = 1, c2 = 0
    c1 = 0, c2 = 1
    c1 = 0, c2 = 1
    c1 = 1, c2 = 1
    c1 = 1, c2 = 1
    c1 = 2, c2 = 1
    c1 = 2, c2 = 1,
    was 4 Bits zur Übertragung erfordert, oder nur 3 Bits, wenn auf eine dieser Möglichkeiten verzichtet wird.
  • Die Außenform-Rauschformer-Koeffizienten, die minimalphasig sind, haben ausschließlich mögliche Werte, die beispielsweise auf Vielfache von 1/4 oder 1/8 beschränkt sein könnten, zum Beispiel mit
    –16 < 8 d1 < 16
    –8 < 8 d2 < 8
    was 9 Bits zur Übertragung erfordert.
  • Im jetzt beschriebenen Beispiel nehmen wir an, daß die Eingangs-PCM-Wörter eine feste Wortlänge N haben, welche zum Beispiel 20 oder 24 Bits betragen kann. Zur Vereinfachung der Beschreibung werden wir hier N = 20 Bits annehmen. Andere digitale PCM-Wortlängen der Länge N – B1 kleiner N = 20 Bits können von einem solchen System übertragen werden, indem die niedrigstwertigen Bits, die unbenutzt bleiben, gleich 0 oder gleich einem festen Wert wie einer Näherung an die Hälfte des niedrigstwertigen behaltenen Bits gesetzt werden. Zum Beispiel B1 = 4 für 16 Bit Wortlänge und N = 20, und die 4 niedrigstwertigen Bits des 20-Bit-Worts können auf 0000 oder auf 1000 oder 0111 gesetzt werden, sofern für alle Wörter die gleiche Wahl getroffen wird. Es kann eine richtige Wahl getroffen werden, die nicht 0000 ist, wenn etwaige Gleichspannungs-Offsets, d. h. Abweichungen des Mittelwerts der Audio-Wellenform von einem echten Nullwert, minimiert werden sollen.
  • Beim Codieren solcher Wörter einer Genauigkeit von weniger als N = 20 Bits wäre es äußerst verschwenderisch hinsichtlich der Datenrate, diese B1 niedrigstwertigen Bits für jeden Abtastwert getrennt zu übertragen. Folglich besteht die erste Stufe der Codierer-Verarbeitung für jeden Block von L Abtastwerten darin, für diesen Block zu bestimmen, wie viele B1 der niedrigstwertigen Bits im gesamten Block identische Form haben, was durch eine einfache Logik, welche die Identität jedes Bits in einem Wort mit demjenigen des ersten Worts vergleicht, geschehen kann. Wenn alle Vorkommen einer Stelle in den Wörtern in einem gesamten Block identisch sind, kann diese Stelle zur getrennten Übertragung ausgesondert und aus den digitalen Wörtern fallengelassen werden, wodurch ein ganzzahliges Wort der Länge N – B1 Bit für jeden Abtastwert, welches wir als das signifikante Wort bezeichnen, und ein ganzzahliges Wort der Länge B1 Bit wie 0000 oder 1000 oder 0111, welches wir als das LSB-Wort bezeichnen, zur Übertragung im Blockkopf übrigbleiben. Dieser Prozeß ist in 18a dargestellt. Die Daten für die Länge B1 des LSB-Worts und das eigentliche LSB-Wort werden als Kopfdaten für den Block übertragen. B1 kann einen Wert zwischen 0 und N haben, was typischerweise 5 Bits zur Übertragung erfordert, und das LSB-Wort erfordert N Bits zur Übertragung.
  • Es gibt keinen Grund, warum das übertragene LSB-Wort nicht außerdem in seinen führenden N – B1 Bits eine zusätzliche "Gleichspannungs-Offset"-Komponente enthalten sollte, welche von den L signifikanten Wörtern des Blocks subtrahiert werden sollte. Dieses Merkmal gestattet das Entfernen jeder unerwünschten Gleichspannungskomponente innerhalb eines Blocks vor der Codierungsstufe. Diese unerwünschte Gleichspannungskomponente kann zum Beispiel so gewählt werden, daß sie der Mittelwert der Abtastwerte oder der Medianwert der Abtastwerte innerhalb des auf N – B1 Bits gerundeten Blocks oder jeder anderen auf N – B1 Bits gerundeten Auswahl, die sich als vorteilhaft herausgestellt haben mag, ist.
  • Der nächste Schritt im Codierprozeß ist, die signifikanten Wörter mittels eines Prädiktionsfilterverfahrens wie zum Beispiel in Verbindung mit dem Codierer mit Rauschformung dritter Ordnung in 11a oben beschrieben zu codieren. Dieser produziert als Ausgänge Kopfdaten, die acht Koeffizienten a1, a2, a3, b1, b2, b3, c1, c2 des Filters und des Rauschformers sowie die ersten drei Abtastwerte I1, I2, I3 im Block des Eingangs des Prädiktionsfilter-Codierers und die zwei Zustandsvariablen N1, N2 des Rauschformers nach dem dritten Abtastwert des Blocks zur Verwendung bei der Initialisierung des Decodierers für diesen Block enthalten. Der Ausgang des Prädiktionsfilter-Codierers für alle L Abtastwerte (einschließlich der zur Initialisierung verwendeten ersten drei) wird dann in eine Entropie- oder Huffman-Codierungsstufe gespeist.
  • Die durch die Initialisierungsvariablen verursachten zusätzlichen Zusätze sind in diesem Beispiel 3 (N – B1) Bits für I1, I2, I3 und 12 Bits für die Rauschformer-Initialisierungsvariable, wenn m/64 Koeffizienten für die Filter verwendet werden, da die Differenz um den Quantisierer in 11a dann 64 mögliche Werte haben kann.
  • Vorzugsweise ermittelt man anfängliche Zustandsvariablen, indem man das Prädiktionssystem nicht nur über die L Abtastwerte des gerade codiert werdenden Blocks, sondern auch über eine Anzahl von vorangehenden Abtastwerten laufen läßt (wobei, wenn notwendig, sichergestellt werden muß, daß aus allen vorherigen Abtastwerten B1 niedrigstwertige Bits entfernt wurden, wobei B1 den für den aktuellen Block ermittelten Wert hat, wenn B1 zwischen Blocks variiert), um den anfänglichen Zustandsvariablen im Filter zu ermöglichen, sich auf einen angemessenen Wert einzuschwingen, der dazu beitragen wird, die Ausgangsamplituden des Prädiktors am Anfang des Blocks zu minimieren. Alternativ und weniger vorzugsweise können die Zustandsvariablen auf arbiträre Werte wie Null gesetzt werden.
  • Das aus dem Prädiktionsfilter-Codierer hervorgehende prädiktionscodierte ganzzahlige Signal wird dann, wie in 18a gezeigt, in einen Entropie- oder Huffman-Codierer gespeist, um die Datenrate des übertragenen prädiktionscodierten Signals zu minimieren.
  • Nun folgt die Beschreibung eines praktischen Verfahrens zur Huffman-Codierung.
  • In vielen Anwendungen einschließlich des Falls der meisten Audio-Wellenformsignale wurde festgestellt, daß die Wahrscheinlichkeitsdichtefunktion (PDF: Probability Density Function) der Amplitudenstatistik der Wellenform typischerweise annähernd eine Laplacesche ist, d. h. eine PDF der Form
    Figure 00340001
    hat, wobei das quadratisch Bemittelte (rms-) Energieniveau
    Figure 00340002
    ist. Folglich kann man innerhalb eines Blocks und unter Annahme der Laplace-Statistik eine an den rms-Signalpegel angepaßte Huffman-Codierungs-Tabelle verwenden. Um die Anzahl der erforderlichen Verweistabellen zu reduzieren, kann eine begrenzte Anzahl verwendet werden, eine entsprechend dem Spitzen-Absolutpegel des signifikanten Wortes in diesem Block. Wir haben festgestellt, daß, hauptsächlich für Blocks der Länge L = 256 oder mehr, die folgende, auf dem in 19 gezeigten Huffman-Codierungsbaum beruhende Huffman-Codierungs-Tabelle bei Laplacescher PDF-Statistik gut funktioniert.
  • Dieser Baum codiert die Wörter eines 4-Bit-Signals (welches wir als Werte x von –7 bis +8 darstellend nehmen werden) gemäß der folgenden Tabelle 2.
  • Tabelle 2
    Figure 00340003
  • Für Wortlängen des signifikanten Wortes, die größer als 4 Bits sind, codieren wir wie in Tabelle 3 gezeigt:
  • Tabelle 3
    Figure 00350001
  • Dies erfordert insgesamt 17 Huffman-Tabellen. Welche jeweils verwendet wird, hängt vom in der ersten Spalte der Tabelle stehenden Spitzensignalpegel in einem Block ab. Die 4 höchstwertigen Stellen, die während des Blocks im signifikanten Wort variieren, werden mit der Laplaceschen 4-Bit-Huffman-Tabelle codiert, und die restlichen niedrigerwertigen Stellen werden nach dem Huffman-Wort für die führenden 4 Bits so, wie sie sind, unverändert übertragen. Obwohl nicht genau optimal an die Laplace-Statistik angepaßt, kann gezeigt werden, daß die resultierende Datenrate typischerweise um nur etwa 0,1 bis 0,3 Bit/Abtastwert schlechter als optimal ist, je nachdem, ob das Signal die 4 höchstwertigen Stellen, die während des Blocks im signifikanten Wort variieren, voll moduliert. Die mittlere Ineffizienz über die optimale Huffman-Codierung dieses vereinfachten Verweistabellen-Ansatzes beträgt etwa 0,2 Bit/Abtastwert, außer wenn die Wortlänge des signifikanten Wortes sehr klein, d. h. 3 Bits oder weniger ist.
  • Es wurde festgestellt, daß die typische Datenrate für einen Block, wenn das signifikante Wort x zwischen –2n + 1 und +2n liegt, annähernd n – 0,5 Bits pro Abtastwert ist statt der für binäre PCM ohne Huffman-Codierung erforderlichen n + 1 Bits, d. h. die Huffman-Codierung allein reduziert die Datenrate für Laplace-Statistik im Mittel um etwa 1,5 Bit/Abtastwert. Die tatsächliche Reduzierung der Datenrate variiert in Abhängigkeit davon, ob die vor der Huffman-Codierung modulierten N + 1 Bits voll moduliert sind. Bei voller Modulation beträgt die Huffman-codierte Datenrate etwa n Bit/Abtastwert, wohingegen, wenn die Modulation etwa 6 dB niedriger als der Spitzenpegel ist (unter welcher ein kleinerer Wert von n verwendet werden würde), die Huffman-codierte Datenrate auf annähernd n – 0,7 Bit/Abtastwert fällt.
  • Damit der Codierprozeß Huffman-codierte Wellenformdaten übertragen kann, ist es außerdem auch notwendig, Kopfinformationen an den Decodierer zu übertragen, die dem Decodierer sagen, welche Huffman-Tabelle zur Decodierung in diesem Block zu verwenden ist. Wir bezeichnen diese Kopfdaten als "Huffman-Tabellennummer".
  • Zusätzliche Huffman-Tabellen können für besondere Situationen wie den Fall sehr kleiner Signale in einem Block verwendet werden. Zum Beispiel kann ein Block, der ein digitales schwarzes (immer Null) Signal überträgt, eine "leere" Huffman-Tabelle verwenden, die im Huffman-codierten Datenteil des Blocks überhaupt keine Daten überträgt. In diesem Fall brauchen Prädiktorfilterkoeffizienten und Initialisierungsdaten nicht übertragen zu werden, wodurch die damit verbundenen Datenzusätze eingespart werden. Für Fälle, in denen die Wortlänge des signifikanten Wortes kleiner als 3 Bits ist, kann man effizientere Huffman-Codes als diejenigen in den obigen Tabellen 2 und 3 verwenden, wie:
  • Tabelle 4: für -1 ≤ × × 2
    Figure 00360001
  • Tabelle 5: für –2 ≤ × ≤ 2
    Figure 00360002
  • Tabelle 6: für –3 ≤ × ≤ 3
    Figure 00370001
  • Es ist auch zu beachten, daß PCM-Codierungsdaten nach Weglassen der in einem Block nicht verwendeten höchstwertigen Bits ebenfalls eigentlich eine Huffman-Codierung (optimal für gleichförmige PDF-Signalstatistik) sind, zu welcher die in Tabelle 7 dargestellte Huffman-Tabelle gehört.
  • Tabelle 7:
    Figure 00370002
  • Dieser "PCM"-Huffman-Code ist gewöhnlich weniger effizient hinsichtlich der Datenrate als die anderen oben angegebenen Codes, gelegentlich (z. B. bei Sinuswellen-Signalen) ist er aber effizienter und hat die einzigartige Eigenschaft, daß isolierte Datenfehler die Decodierung des Rests der Huffmancodierten Wellenformsequenz für einen Block nicht beeinträchtigen. Daher mag er bevorzugt werden, wo die Datenfehlergefahr mehr wiegt als die Datenraten-Effizienz.
  • Die im obigen Schema übertragenen gesamten Kopfdaten werden also typischerweise, wie in 18a gezeigt, eine Huffman-Tabellennummer, ein die niedrigstwertigen Stellen übertragendes LSB-Wort und optional einen Gleichspannungs-Offset, B1 zur Übertragung der effektiven Rundungsgenauigkeit des Eingangs in diesem Block, Filterkoeffizienten für den Decodierer und Initialisierungsdaten für den Decodierer enthalten. Außerdem können manche Kopfdaten benötigt werden, um den Anfang der Blockdaten zu identifizieren und zu synchronisieren und/oder zusätzliche Informationen wie zeitliche Abstimmung oder Kanalidentifikation für den Block zu übertragen.
  • In Fällen, in denen die Übertragung von Daten dazu neigt, Datenfehler zu verursachen, werden solche Fehler eine starke Verfälschung der Huffman-Tabellen-Decodierung verursachen, selbst wenn nur ein einziger solcher Fehler auftritt. Deshalb ist es in solchen Fällen wünschenswert, auch Fehlererkennungs- und/oder Korrekturdaten wie Paritätsbits und andere erfahrenen Fachleuten bekannte Schemata zum Datenstrom hinzuzufügen. Dies kann Block für Block erfolgen, wenn Codierungs- und Decodierungsverzögerung minimiert werden sollen.
  • Die zum hier in Verbindung mit 18a beschriebenen Codierprozeß inverse Decodierung ist in 18b schematisch dargestellt.
  • Zuerst wird die Huffman-Tabellennummer aus dem Kopf gelesen und die maßgebliche Huffman-Tabelle in den Huffman-Decodierer geladen, welcher dann verwendet wird, um die Huffman-codierten Wellenformdaten im Block auf Huffmansche Weise zu decodieren, wodurch sich das prädiktionscodierte ganzzahlige Signal ergibt. Die Initialisierungsdaten und die Filterkoeffizienten aus dem Blockkopf werden in den verlustfreien Decodierungs-Filteralgorithmus wie den in 6b, 7b, 10b, 11b, 13b oder 14b geladen, und das prädiktionscodierte ganzzahlige Signal wird vom Decodierungs-Filteralgorithmus decodiert, um das signifikante Wort zu bilden, welches die Wortlänge N – B1 hat. Die ursprünglichen digitalen Wörter werden wiederhergestellt, indem zuerst B1 aus den Blockkopfdaten geladen wird und dann B1 Null niedrigstwertige Bits in die Wörter eingefügt werden (was zum Beispiel durch einen Schiebeprozeß oder durch Multiplikation mit 2B1 geschehen kann) und dann das ebenfalls aus dem Blockkopf geladene LSB-Wort zum Ergebnis addiert wird. Die resultierenden Blocks von L Abtastwerten werden dann wieder zusammengesetzt, um den ursprünglichen Wellenform-PCM-Datenstrom zu bilden.
  • Es ist zu beachten, daß der Decodierer hinsichtlich der Signalverarbeitung einfacher ist als der Codierer, da keine Notwendigkeit besteht, im Decodierer Aufgaben wie das Bestimmen der besten Prädiktionsfilter-Anordnung oder das Bestimmen von Parametern wie B, oder der Huffman-Tabellennummer oder dem LSB-Wort anpaßbar zu erledigen – diese werden alle mit den Kopfinformationen übertragen.
  • Es gibt viele ausführliche Varianten des obigen Schemas, welche die beschriebenen generischen Merkmale bewahren. Nun werden ein paar Varianten beispielhaft angeführt.
  • Die mit dem Kopf jedes Blocks verbundenen Datenzusätze können reduziert werden, indem ein kurzer Kopf zugelassen wird, der den Decodierer einfach anweist, einige oder alle der zum Decodieren aus dem vorherigen Block erforderlichen Kopfdaten zu wiederholen, und welcher die Initialisierungsdaten I1, I2, I3 wegläßt. Dieser kann verwendet werden, wenn, was häufig der Fall ist, festgestellt wird, daß derselbe Codielter wie im vorherigen Block ein guter Prädiktor für den aktuellen Block ist und wenn die Genauigkeit der Eingangsdaten mit derjenigen des vorherigen Blocks identisch ist und wenn möglicherweise die selbe Huffman-Tabelle verwendet werden kann. Die Initialisierungsdaten I1, I2, I3 werden aus den letzten Abtastwerten des Ausgangs des vorherigen Blocks gewonnen, indem man den Codierfilter weiterlaufen läßt. Hierdurch kann man tatsächlich die Blocklänge auf der Codierungsstufe so wählen, daß sie arbiträre Vielfache von L darstellt, und die effektive Blocklänge anpaßbar variieren, je nachdem, ob die Signalstatistik statisch oder schnellveränderlich ist. Wenn eine solche Option zum Wiederholen von Kopfinformationen zur Verfügung steht, kann es vorteilhaft sein, eine kurze Blocklänge, vielleicht L = 192 oder 384 Abtastwerte, zu wählen, da die Datenredundanzen von Köpfen durch Verwendung wiederholter Kopfinformationen reduziert werden können.
  • Selbst in Fällen, in welchen der Filterkoeffizienten-Filter im aktuellen Block sich von demjenigen im vorherigen Block unterscheidet, können Datenzusätze im Kopf reduziert werden, indem man die Initialisierungsdaten I1, I2, I3 nicht mit jedem Block überträgt, sondern statt dessen ein Kopf-Hinweiszeichen einsetzt, das den Decodierer anweist, den Ausgang des Decodierers vom Ende des vorherigen Blocks zu nehmen, um den aktuellen Block zu initialisieren, und einfach das Schalten der Filterkoeffizienten am Anfang des Blocks in Codierer und Decodierer synchronisiert, ohne die gespeicherten Zustandsvariablen zu ändern.
  • Ein Mangel des obigen Schemas ist, daß die zulässige digitale Auflösung von Wörtern nur eine ganzzahlige Anzahl von Bits ist, so daß die Auflösung nur in diskreten Schritten von 1 Bit (6 dB-Änderungen im Quantisierungsrauschpegel) geändert werden kann, was manchmal bedeuten kann, daß über einen zu einer gegebenen Datenrate Fähigen Kanal eine leicht geringere Auflösung möglich ist, als gewünscht werden mag. Eine Variante, die dieses Problem verringert, würde auch Signale zulassen, die mit einer Schrittweite quantisiert sind, welche ein ganzzahliges Vielfaches G des Eingangs-LSB ist, das nicht eine Potenz B1 von 2 ist. Zum Beispiel könnte eine Quantisierungs-Schrittweite entweder der Form G = 2B1 oder 3 × 2B1 zugelassen werden.
  • In diesem Fall wird das LSB-Wort so bestimmt, daß der Rest nach Division durch G = 2B1 oder 3 × 2B1 im gesamten Block konstant ist und das LSB-Wort ein Vielfaches von G = 2B1 oder 3 × 2B1 (einen etwaigen verwendeten Gleichspannungs-Offset darstellend) plus dieser Rest ist und das signifikante Wort der ursprüngliche PCM-Datenwert minus das LSB-Wort geteilt durch G = 2B1 oder 3 × 2B1 ist. Im Decodierer in 18b in dieser Variante, stellt man aus dem Blockkopf wieder her, welcher Faktor G = 2B1 oder 3 × 2B1 in diesem Block verwendet wird, und multipliziert das signifikante Wort damit und addiert dann das LSB-Wort. Die Verallgemeinerung auf andere Schrittweiten G ist nun offensichtlich.
  • Ein noch allgemeineres Schema läßt eine arbiträre ganzzahlige Quantisierungs-Schrittweite G zu. Diese kann im Codierer aus seinem Eingang durch Subtrahieren der nachfolgenden Abtastwerte vom ersten Abtastwert im Block und Ermitteln des größten gemeinsamen Teilers (zum Beispiel durch den Euklidschen Restalgorithmus) aller solcher Differenzen ermittelt werden. Dieser größte gemeinsame Teiler G kann dann anstelle von B1 übertragen werden, und die signifikanten Wörter, gebildet einschließlich des ganzzahligen Teils der ursprünglichen Wörter, geteilt durch G minus ein ganzzahliger Gleichspannungs-Offset, und das LSB-Wort einschließlich des Rests nach Division durch G plus der ganzzahlige Gleichspannungs-Offset mal G können als Kopfdaten übertragen werden. Die umgekehrte Decodierung umfaßt das Multiplizieren der signifikanten Wörter mit G und das Addieren des LSB-Wortes. Ein solches Schema gestattet bei niedrigen Datenraten die effiziente Handhabung von PCM-Signalen mit einer einheitlichen ganzzahligen Quantisierungs-Schrittweite G mit einem beliebigen Gleichspannungs-Offset, der ein Vielfaches von G ist. Ein solches Schema hat den Vorteil, daß für Signale, deren Quantisierungs-Schrittweite ein signifikantes ganzzahliges Vielfaches G0 des LSB ist, alle Verstärkungsfaktoren der Form G/G0 genau implementiert werden können, ohne die codierte Datenrate zu beeinträchtigen, was es gestattet, verlustfreie Codierung bei Flexibilität der Signalverstärkung zu verwenden. Eine zweite Variante ist, vor der Huffman-Codierung eine ganzzahlige Gleichspannungskomponente aus dem prädiktionscodierten Signal zu entfernen, sie im Blockkopf getrennt zu übertragen und sie nach der Huffman-Decodierung wieder dazu zu addieren. Dies unterscheidet sich von der als LSB-Wort übertragenen Gleichspannungskomponente, da es sich um eine Gleichspan nungskomponente des prädiktionscodierten Signals und nicht des ursprünglichen Signals handelt. Eine solche ganzzahlige Gleichspannungskomponente kann so gewählt werden, daß die Huffman-codierte Datenrate optimiert oder minimiert wird, und kann ein Gesamt-Mittelwert, ein Medianwert oder der Mittelwert der positiven und negativen Spitzen im Block oder irgendein anderer gewählter Gleichspannungswert sein.
  • Auch andere Huffman-Tabellen für große Signale, die für andere Signalstatistiken als die Laplacesche PDF-Statistik optimiert sind, können bereitgestellt werden. Niederpegelige Signalblocks können mittels anderer Verfahren als der Huffman-Codierung, wie arithmetischer Codierung, codiert werden, wie in der obengenannten Literaturquelle Weiss & Schremp beschrieben.
  • In einfacheren Systemen kann die Huffman-Codierung durch einfachere Schemata ersetzt werden, wie einfaches Verkürzen der Wortlängen durch Fallenlassen aller außer einem der unveränderlichen (d. h. derjenigen, die allesamt Nullen oder allesamt Einsen für alle Wörter im Block sind) höchstwertigen Bits (MSBs) und einfaches Übertragen der Anzahl B2 dieser unveränderlichen MSBs am Anfang jedes Blocks. Beim Decodieren stellt man die höchstwertigen Bits durch B2-maliges Wiederholen des höchstwertigen Bits in jedem Wort wieder her.
  • Dieses einfachere Schema des Fallenlassens unveränderlicher MSBs hat eine schlechtere codierte Datenrate als die Huffman-Codierung, typischerweise von 1,5 Bit/Abtastwert. Es hat aber den Vorteil, daß isolierte Datenfehler anders als bei der Huffman-Codierung nur einen einzelnen Abtastwert der decodierten Daten betreffen statt des gesamten Rests des Blocks.
  • Es wird geschätzt, daß Schemata der obigen Form gestatten, typische PCM-Audiosignale mit einer Auflösung von 14 oder mehr Bits bei der Abtastfrequenz 44,1 oder 48 kHz bei mittleren Datenraten zu codieren, die 6 bis 9 Bits/Abtastwert niedriger sind als die uncodierte PCM-Datenrate, wobei die Reduzierung um 6 Bit/Abtastwert typisch für Signale mit hohen Höhenenergien und engem Dynamikbereich und die Reduzierung um 9 Bit/Abtastwert typisch für Signale mit sehr weitem Dynamikbereich und geringer Höhenenergie ist. Wenn mehrere zusammengehörige Kanäle gleichzeitig übertragen werden, wird es selten vorkommen, daß alle ihre Spitzen-Datenrate gleichzeitig erreichen, und in einer solchen Situation bedeutet die Fähigkeit, sich mittels einer Codierfilter-Anordnung dritter Ordnung, zusammen mit Huffman-Codierung, gut an Signalspektren anzupassen, daß bei typischen Signalen selbst die Spitzen-Datenrate typischerweise um etwa 4 Bit/Abtastwert/Kanal reduziert wird.
  • Es ist charakteristisch für verlustfreie Audio-Codierungsschemata, die gut an das Signalspektrum angepaßte Codierfilter verwenden, daß mit dem Erhöhen der Abtastfrequenz die typische Datenraten-Einsparung in Bits/Abtastwert/Kanal zunimmt, so daß eine Verdopplung der Abtastfrequenz die Datenrate nicht verdoppelt, sondern sie um vielleicht nur 30% erhöhen kann. Dies liegt daran, daß typische Audioenergien mit steigender Frequenz schnell abnehmen, oft um mehr als 60 dB bei 30 kHz, relativ zu Energien bei tiefen Frequenzen. Somit wird die Verwendung eines Codierfilters, der eine Anhebung hoher Frequenzen in der Größenordnung 60 dB relativ zu tiefen Frequenzen aufweist, eine beträchtliche Datenraten-Reduzierung für solche Signale ergeben.
  • Es wird geschätzt, daß Schemata der obigen Form gestatten, typische PCM-Audiosignale mit einer Auflösung von 16 oder mehr Bits bei einer Abtasffrequenz von 96 kHz bei mittleren Datenraten zu codieren, die 8 bis 11 Bits/Abtastwert niedriger sind als die uncodierte PCM-Datenrate, wobei die Reduzierung um 8 Bit/Abtastwert typisch für Signale mit hohen Höhenenergien und engem Dynamikbereich und die Reduzierung um 11 Bit/Abtastwert typisch für Signale mit sehr weitem Dynamikbereich und geringer Höhenenergie ist. Wenn mehrere zusammengehörige Kanäle gleichzeitig übertragen werden, wird es selten vorkommen, daß alle ihre Spitzen-Datenrate gleichzeitig erreichen, und in einer solchen Situation bedeutet die Fähigkeit, Signalspektren mittels einer Codierfilter-Anordnung dritter Ordnung, zusammen mit Huffman-Codierung, gut anzupassen, daß bei typischen Signalen selbst die Spitzen-Datenrate typischerweise um etwa 6 Bit/Abtastwert/Kanal reduziert wird.
  • Somit eignet sich verlusffreie Codierung der hier beschriebenen Art besonders zur Verwendung bei hohen Abtastfrequenzen wie 96 kHz, wo die Datenraten-Einsparungen besonders vorteilhaft sein können.
  • Außerdem reduziert eine verlustfreie Codierung dieser Art automatisch die Datenrate, wenn ein PCM-Signal von im Bereich hoher Frequenzen begrenzter Bandbreite übertragen wird, da man für solche Signale einen Codierfilter mit einer besonders starken Anhebung hoher Frequenzen verwenden kann, welcher die Energie des prädiktionscodierten Signals über den Rest des Frequenzbereichs reduziert.
  • Demnach gestattet die Verwendung einer verlustfreien Codierung, beruhend auf den Prädiktionsfiltern wie hierin beschrieben bei einer hohen Audio-Abtasffrequenz wie 96 kHz, die Übertragung von Audiosignalen verschiedener Bandbreiten und verschiedener digitaler Auflösungen mit relativ hoher Effizienz, und es besteht keine Notwendigkeit, auf verschiedenen Abtasffrequenzen und verschiedenen Wortlängen beruhende PCM-Systeme zu wählen, um zwecks Erzielung bester Ergebnisse innerhalb einer gegebenen übertragenen Datenrate verschiedene Audio-Bandbreiten und Auflösungen auszunutzen. Ein einziges bei 96 kHz Abtastfrequenz arbeitendes System mit 20 oder 24 Bit Leistung kann mit den hierin beschriebenen verlustfreien Codier- und Decodierverfahren verwendet werden, um Kanäle mit einer breiten Palette von Bandbreiten und Auflösungen bei effizienter Nutzung der Datenrate zu schaffen.
  • Verlustbehaftete Codierung mit verlustfreier Decodierung
  • Obwohl die hierin offenbarten Systeme in erster Linie auf verlusffreie Übertragung und Wiederherstellung ursprünglicher Wellenformdaten ausgerichtet sind, kann der Decodierer auch mit einem verlustbehafteten Codierer verwendet werden, um eine weitere Reduzierung der Datenrate des übertragenen Signals zu bewirken.
  • Dies beruht auf der Beobachtung, daß, wenn die Wellenform am Eingang des Codierers eine variable Wortlänge hat, d. h. wenn sich die Anzahl B1 niedrigstwertiger Bits, die für große Anzahlen von aufeinanderfolgenden Abtastwerten unveränderlich sind, von Augenblick zu Augenblick ändert, sich ebenso die Datenrate eines codierten Signals entsprechend dem Wert von B1 ändern wird. Folglich kann man eine verlustbehaftete Codierung implementieren, indem man eine anfängliche Rundungsoperation einrichtet, um die B1 niedrigstwertigen Bits in aufeinanderfolgenden Blocks von L Abtastwerten vor dem oben beschriebenen Codiersystem zu entfernen, wie in 20a gezeigt, wobei die Anzahl der entfernten Bits B1 in niederpegeligen Passagen klein oder gleich Null ist, in hochpegeligen Passagen aber, wo die resultierenden Rundungsfehler in Gegenwart hoher Signalenergie weniger wahrscheinlich bemerkt werden, größer ist.
  • Eine solche anpaßbare Rundung am Eingang kann verwendet werden, um die zur Übertragung in lauteren Passagen verwendete Datenrate zu reduzieren.
  • Jedoch ist einfache Rundung von Blocks von L Abtastwerten im allgemeinen nicht die optimale Strategie, um die durch die auf N – B1 Bits anpaßbar reduzierte Wortlänge verursachte Wahrnehmbarkeit von Fehlern zu minimieren. Ein überlegenes Verfahren, das solche Fehler viel weniger wahrnehmbar machen kann, besteht darin, den Rundungsprozeß vor dem Codierer mit einer anpaßbaren Rauschformung wie in 20b dargestellt zu kombinieren. Der von der Rundungsoperation produzierte Quantisierungsrauschfehler kann dann spektral geformt werden, so daß das Quantisierungsrauschspektrum dem Verlauf der Hörschwellen-Maskierungskurve für das Audiosignal in diesem Augenblick folgt oder unter dieser liegt.
  • Dies geschieht, indem zuerst ein psychoakustisches Modell der auf den Eingang wirkenden Gehörspektralmaskierung verwendet wird, um die Maskierungsschwelle zu bestimmen wie in 20b gezeigt. Dieser Prozeß ist im Fach wohlbekannt, da er bei der Implementierung verlustbehafteter wahrnehmungsgemäßer Codiersysteme breite Verwendung findet, und umfaßt gewöhnlich eine mit Fenstern versehene schnelle Fourier-Transformation zur Bestimmung des Spektralinhalts, der eine Nachverarbeitung des Spektrums folgt, bei welcher jede Spektralkomponente durch eine Maskierungskurve ähnlich derjenigen in den Ohren ersetzt wird und das Maximum solcher Maskierungskurven die Gesamt-Maskierungskurve ist. Es gibt verschiedene Verfeinerungen und Einzelheiten, die verwendet werden können, um Maskierungskurven genauer zu simulieren, wie in den folgenden Literaturquellen Stuart erwähnt.
  • J. R. Stuart, "Predicting the audibility, detectability and loudness of errors in audio systems", Vorabdruck 3209 der 91. Tagung der Audio Engineering Society, New York (Okt. 1991).
  • J. R. Stuart, "Implementation of Measurement with Respect to Human Auditory Capabilities", Bericht der Tagung der Audio Engineering Society UK zum Thema DSP", London (14.–15. Sept. 1992), Seiten 45–61.
  • Ein algorithmisches Verfahren zum Entwerfen der Rauschformungsfilterkoeffizienten und zum Bestimmen der zulässigen Rundungsschrittweite, um sicherzustellen, daß das Quantisierungsrauschspektrum unter Hörschwellen-Maskierungskurven liegt, ist gemäß dem Stand der Technik in der Literaturquelle A. W. J. Oomen, M. E. Groenewegen, R. G. van der Waal und R. N. J. Veldhuis, "A Variable-Bit-Rate Buried-Data Channel for Compact Disc", J. Audio Eng. Soc., Vol. 43, No. 1/2, Seiten (Jan./Feb. 1995), für eine andere Anwendung ausführlich beschrieben. Dieses Verfahren kann auch in der vorliegenden Anwendung als Verfahren zum Implementieren der in 20b gezeigten anpaßbaren wahrnehmungsgemäßen Rundung verwendet werden.
  • Hierdurch kann der verwendete Rundungsgrad erhöht werden, um die Entfernung einer größeren Anzahl B1 von Bits zu gestatten, während sich durch die Augenblick für Augenblick erfolgende Maskierung der Fehler verursachte, wahrnehmungsmäßig unhörbare oder minimal hörbare Quantisierungsfehler ergeben. Bei den Abtastfrequenzen 44,1 oder 48 kHz wurde häufig festgestellt, daß B1 typischerweise so lautet, daß die signifikante Wortlänge des prädiktionscodierten Signals nur 4 oder 5 Bits beträgt, wenn eine solche wahrnehmungsgemäße Rauschformung im in 20b gezeigten Eingangsquantisierungsprozeß durchgeführt wird. Bei hohen Abtastfrequenzen wie 96 kHz, wo das Audio Frequenzen enthält, bei denen Maskierungskurven nicht modelliert sind, kann man die Maskierungskurve durch eine mutmaßliche Maskierungskurve ersetzen, die gewährleistet, daß das Quantisierungsspektrum dem Signalspektrum bei hohen Frequenzen folgt, aber in der Energie um eine vorbestimmten Wert wie 12 oder 18 dB unter dem Signal liegt. Dies gewährleistet einen umfassenden Schutz der Ultraschallsignal-Spektralempfindlichkeitskurve jenseits der Grenze des menschlichen Hörvermögens bezüglich Sinuswellensignalen. (Es gibt einige Anzeichen dafür, daß die Ohren auf Frequenzen jenseits der Grenzfrequenzen, bei denen Sinuswellen gehört werden können, reagieren, aber daß dieser Prozeß ein nichtlinearer ist, der mit der Wahrnehmung komplexer Wellenformmerkmale verbunden ist.)
  • Während die verwendete Rundungsoperation für jeden Block von L Abtastwerten einen festen Wert von B1 oder allgemeiner der Schrittweite G verwenden muß, besteht kein Grund, warum die anpaßbare wahrnehmungsgemäße Rauschformung nicht häufiger oder sogar unaufhörlich über die Zeit variieren sollte, da die Rauschformungsinformationen in das Eingangssignal des verlustfreien Codierprozesses in 20b eingebaut und vom Rest des Codier- und Decodierprozesses nicht verwendet werden.
  • Diesem verlustbehafteten wahrnehmungsgemäßen Datenratenreduzierungs-Codierprozeß ist eine verlustfreie Codierung und Decodierung nachgeschaltet, die das Signal mit Rauschformungs-Quantisierungsrauschen, das in das verlustfreie Codiersystem im Codierer in 20b gespeist wurde, am Ausgang des Decodierers wiederherstellt. Es ist keine Änderung des Decodieralgorithmus erforderlich.
  • Ein System verlustbehafteter wahrnehmungsgemäßer Codierung dieser Form, beruhend auf anpaßbarer Rundung mit wahrnehmungsgemäßer Rauschformung, mit nachgeschalteter verlustfreier Codierung und Decodierung der resultierenden reduzierten signifikanten Wortlängen, weist ein nützliches und außergewöhnliches Merkmal auf. Im Gegensatz zu anderen bekannten, auf Gehörmaskierung beruhenden wahrnehmungsgemäßen verlustbehafteten Codiersystemen ist es hier möglich, wahrnehmungsgemäße Codecs (Codier-/Decodiersysteme) unbegrenzt viele Male zu kaskadieren, ohne daß es zu einem unbegrenzt großen Zuwachs von Quantisierungsrauschartefakten kommt. Der Grund hierfür ist, daß, nachdem ein Codec B1 niedrigstwertige Bits aus einem Teil des Wellenformsignals entfernt hat, keine weitere Entfernung von B1 oder weniger niedrigstwertigen Bits eine weitere Auswirkung auf das Signal hat. Erst wenn mehr Bits entfernt werden, gibt es einen zusätzlichen Quantisierungsfehler in einem Codec, und die signifikante Wortlänge kann nur endlich viele Male reduziert werden, was die Zunahme des Quantisierungsrauschfehlers begrenzt.
  • Dieses Merkmal ist in Anwendungen wie wiederholter Signalcodierung und -decodierung in Editier- oder Rundfunkanwendungen nützlich, wo die Fähigkeit, verlustbehaftete wahrnehmungsgemäße Codierprozesse zu kaskadieren, höchst wünschenswert ist.
  • Allgemeiner gesagt, kann man, statt auf eine diskrete Anzahl B1 von Bits mit Rauschformung zu quantisieren, mit wahrnehmungsgemäßer Rauschformung auf eine arbiträre Quantisierungs-Schrittweite G quantisieren, wenn man ein verlustfreies Codier- und Decodiersystem verwendet, das solche arbiträren Schrittweiten effizient codiert wie oben beschrieben.
  • Wenn in Audio-Editieranwendungen editierten Passagen nur Verstärkungsfaktoren gegeben werden, die gewährleisten, daß die Quantisierungs-Schrittweite des Signals ein ganzzahliges Vielfaches des LSB ist, das effizient codiert wird, bleibt die Datenrate beim Codieren des editierten Signals unverändert, außer während Überblendungen zwischen Editierungen, wenn die Signaldatenrate vorübergehend ansteigt. Somit ermöglichen die beschriebenen Codierschemata das Audio-Editieren einschließlich Verstärkungsfaktor-Verstellungen mit geringen Auswirkungen auf die Datenraten-Anforderungen des editierten Signals, egal, ob dieses nun verlustfrei oder verlustbehaftet codiert wurde. Dies gestattet, die editierten Signale effizient zu speichern, ohne Notwendigkeit der mit zusätzlicher Neu-Quantisierung zusammenhängenden Qualitätsverschlechterung.
  • Die Vorteile dieses Ansatzes einer verlustbehafteten Codierung gegenüber dem Stand der Technik der verlustbehafteten Codierung ergeben sich aus der Verwendung von Genauigkeitsreduzierung im ursprünglichen PCM-Bereich mit psychoakustischer Rauschformung, auf welche die Verwendung eines verlustfreien Codiersystems folgt, das zur anpaßbaren Ermittlung der Genauigkeitsreduzierung und zur Codierung bei einer der ermittelten Genauigkeit angemessenen Datenrate fähig ist.
  • Der Prozeß der Genauigkeitsreduzierung im PCM-Bereich kann einen einfachen Quantisierer mit Schrittweite G wie oben beschrieben verwenden, oder er kann zusätzlich Dither am Eingang des Quantisierers addieren, um den Effekt nichtlinearer Verzerrung im Quantisierer zu reduzieren. Solches Dither kann additives oder subtraktives Dither jeder als vorteilhaft bekannten Form sein, wie in der obengenannten Literaturquelle Gerzon, Craven, Stuart, Wilson oder in der obengenannten Literaturquelle Gerzon und Craven oder in P. G. Craven & M. A. Gerzon, "Compatible Improvement of 16-Bit Systems Using Subtractive Dither", Vorabdruck 3356 der 93. Tagung der Audio Engineering Society, San Francisco (1.–4. Okt. 1992), beschrieben.
  • Verlustfreie Vorverzerrung und Rückentzerrung
  • Verlustfreie Codierung und Decodierung kann auch implementiert werden, ohne das Signal in Blocks zu teilen und ohne die Notwendigkeit einer Initialisierung, und zwar mittels eines Verfahrens, das wir als verlustfreie Vorverzerrung und verlustfreie Rückentzerrung bezeichnen. Dieses Verfahren ist besonders nützlich, wenn ein herkömmlicher PCM-Wellenform-Kanal mit fester Datenrate verwendet wird, um eine erhöhte Anzahl von Bits Auflösung verlustfrei zu übertragen. Außerdem weist dieses Codierverfahren ein Maß an Kompatibilität mit den herkömmlichen Verfahren der Vorverzerrung und Rückentzerrung eines PCM-Kanals auf.
  • Zuerst behandeln wir kurz den bekannten Stand der Technik der Vorverzerrung und Rückentzerrung in einem PCM-Kanal. Vorverzerrung ist der Prozeß des Anwendens einer vorbestimmten Entzerrungskennlinie auf eine Wellenform vor Anwendung der PCM-Codierung, und Rückentzerrung ist der inverse Prozeß des Anwendens einer inversen Entzerrung auf das decodierte PCM-Signal. In der gängigen Praxis werden Vorverzerrung und Rückentzerrung am häufigsten im Analogsignal-Bereich angewandt, obwohl manchmal Vorverzerrung und Rückentzerrung im digitalen Bereich durchgeführt werden. Bei Audio beinhaltet die Vorverzerrung gewöhnlich eine relative Anhebung der Höhenfrequenzen gegenüber den Baßfrequenzen, und bei der inversen Rückentzerrung wird eine entsprechende Absenkung der Höhenfrequenzen verwendet.
  • Die Idee der verlustfreien Vorverzerrung besteht darin, die Vorverzerrung im digitalen Bereich mit einem verlustfreien Codierfilter mit eingebautem ganzzahligem Quantisierer zu implementieren und die inverse Rückentzerrung beim Decodieren mit einem inversen verlustfreien Decodierlilter mit eingebautem ganzzahligem Quantisierer zu implementieren. Wenn man bereit ist, in lediglich den ersten paar Daten-Abtastwerten Genauigkeit zu verlieren, ist es möglich, diese verlustfreie Codierung und Decodierung ohne jede Initialisierung der Zustandsvariablen genau durchzuführen, sofern die Filter und Rauschformer der verlustfreien Codierung und verlustfreien Decodierung eine in 21a beziehungsweise 21b gezeigte besondere Form haben.
  • In dieser besonderen Form enthält der Codierer einfach einen Quantisierer mit Außenform-Rauschformung, der einen FIR-Filter endlicher Genauigkeit D(z–1) verwendet, welcher auch fehlen kann (d. h. Koeffizienten gleich Null haben kann), dessen Ausgang über einen Subtraktionsknoten, der einen FIR-Filter endlicher Genauigkeit B(z–1) subtrahiert, in seinen Eingang gespeist wird. Der Decodierer enthält den gleichen vom Decodierereingang gespeisten und zu einem direkten Signalweg addierten Filter B(z–1), dem ein Quantisierer mit dem gleichen FIR-Filter D(z–1) endlicher Genauigkeit mit Außenform-Rauschformung nachgeschaltet ist, wobei der im Decodierer verwendete Quantisierer zum Codierungs-Quantisierer sowohl mit vor- als auch mit nachgeschaltetem Verstärkungsfaktor von –1 äquivalent ist.
  • Wenn der FIR-Filter B(z–1) von der Ordnung N ist, geht aus 21b klar hervor, daß der Ausgang des Summierungsknotens nach N Abtastwerten im Decodierer unabhängig von der Initialisierung ist. Weniger klar ersichtlich ist, daß, sofern das Eingangssignal eine merkliche statistische Schwankung aufweist, die Initialisierung des FIR-Filters D(z–1) endlicher Genauigkeit mit Außenform-Rauschformung schließlich den Ausgang auch nicht beeinträchtigen wird. Wenn bei einem Rauschformer der Ordnung N' das Ausgangssignal zufällig für irgendwelche N' aufeinanderfolgenden Abtastwerte mit demjenigen am Eingang des Codierers zusammenfällt, wird es zweifellos zu allen Zeiten danach zusammenfallen, da dies die internen Zustandsvariablen des Rauschformers gleich denjenigen des Codierers setzt. Nimmt man an, daß bei typischen Audio- oder Wellenformsignalen die statistische Verteilung des Bruchteils zwischen ganzen Zahlen des Ausgangs des Summierungsknotens in 21b eine diskrete, gleichmäßige Wahrscheinlichkeitsverteilung ist, wie es für fast alle Signale naheliegend ist, dann ist es nur eine Frage der Zeit, bestimmt durch die statistischen Wahrscheinlichkeiten, bis N' aufeinanderfolgende Ausgangs-Abtastwerte zufällig Werte haben, die mit denjenigen am Eingang des Codierers identisch sind. In der Praxis wurde, beruhend auf numerischen Untersuchungen falscher Initialisierung von Quantisierern mit Außenform-Rauschformung, festgestellt, daß für einen Außenform-Rauschformer erster Ordnung die richtigen Werte der Rauschformer-Zustandsvariablen sich voraussichtlich innerhalb weniger Abtastwerte nach dem Starten der Wiedergabe einer Wellenform einstellen, und für Außenform-Rauschformer zweiter Ordnung beträgt die voraussichtliche Zeit bis zum korrekten Decodieren wahrscheinlich einige Zehn und höchstens einige Hundert Abtastwerte für Rauschformer, deren maximale Anhebung bei hohen Frequenzen 20 dB nicht übersteigt. Deshalb kann in Anwendungen, in denen eine falsche Reproduktion von ein paar anfänglichen Abtastwerten nicht kritisch ist, wie bei der Wiedergabe von Audio-Wellenformen längerer Dauer, das Codier- und Decodierverfahren in 21a und 21b, bei welchem B(z–1) ein FIR-Filter endlicher Genauigkeit und D(z–1) ein FIR-Filter niedriger Ordnung endlicher Genauigkeit ist, ohne Initialisierung verwendet werden.
  • In den meisten ins Auge gefaßten Anwendungen werden die Filter während des gesamten Codier- und Decodierprozesses in dieser verlustfreien Vorverzerrungs- und Rückentzerrungs-Anwendung fest bleiben.
  • Codierung und Decodierung werden verlustfrei bleiben, sofern nur der Ausgang des Codierers die Spitzenpegel-Belastbarkeit des zur Übertragung verwendeten PCM-Kanals nicht übersteigt. Für viele auftretende Audiosignale läßt sich bei einer geeigneten Vorverzerrungskennlinie leicht sicherstellen, daß diese Spitzenpegel-Belastbarkeit nach der Codierung nicht überschritten wird, indem man entweder die Signale bei Ablesung des vorverzerrten Spitzenpegels vom Meßinstrument aufzeichnet oder einen Begrenzer verwendet, um zu verhindern, daß die Signal-Wellenform den gewünschten vorverzerrten Pegel übersteigt.
  • Angesichts der Tatsache, daß viele Audiosignale keine sehr hohen Spitzenpegel in den Höhen, aber einen hohen Pegel im Baß aufweisen, wird eine die Höhen anhebende und den Baß absenkende Vorverzerrungskennlinie die Spitzenpegel von Signalen, die durch eine verlustfreie Vorverzerrung gelaufen sind, reduzieren, was die Verwendung einer kürzeren Wortlänge gestattet. Zum Beispiel kann es hierdurch möglich sein, einen 16-Bit-PCM-Kanal zur Übertragung von 17- oder 18-Bit-Signalen zu verwenden, indem das 18-Bit-Signal verlustfrei vorverzerrt wird, was einen Ausgang von 16 Bit Wortlänge ergibt, welcher dann durch den inversen Decodierer verlustfrei auf 18 Bit rückentzerrt werden kann.
  • Die Rauschformung in dieser Anwendung mit verlustfreier Vorverzerrung kann verwendet werden, um die Kompatibilität der Decodierung mit der Wiedergabe über herkömmliche Rückentzerrung statt über die richtige verlustfreie Rückentzerrung zu verbessern. Bei Verwendung herkömmlicher Rückentzer rung wird der in den Codierer eingeführte zusätzliche Quantisierungsfehler nicht entfernt und verschlechtert die Qualität des reproduzierten Klangs. Jedoch kann der Wahrnehmungseffekt des eingeführten Fehlers, welcher ohne Rauschformung typischerweise ein weißes Spektrum hätte, durch Verwendung einer Rauschformung wie D(z–1) = 3/2 z–1 + 5/8 z–2, welche bei den Frequenzen, bei welchen das Ohr am empfindlichsten ist, typischerweise eine geringere Energie ergibt, reduziert werden, wobei die wahrgenommenen Rauschpegel bei einer Abtastfrequenz von 44,1 oder 48 kHz um etwa 9 dB und bei einer Abtastfrequenz von 96 kHz um etwa 9,7 dB gesenkt werden.
  • Ein Beispiel eines möglichen Vorverzerrungs-Frequenzgangs, der bei einer Abtastfrequenz von 96 kHz zur verlustfreien Vorverzerrung von Audiosignalen verwendet werden kann, ist in 21c dargestellt. Dieser wird mittels des FIR-Filters B(z–1)= b1z–1 + b2z–2 + b3z–3 + b4z–4 erzielt, wobei
  • Figure 00470001
  • Diese Vorverzerrungskennlinie dämpft Signale unter 10 kHz um mehr als 12 dB, wobei sie die Audio-Wortlänge typischerweise um mehr als 2 Bits reduziert, und die Dämpfung bleibt fast bis 20 kHz über 9 dB und geht oberhalb 30 kHz auf 0 dB, während starke Anhebungen von etwa 24 dB auf sehr hohe Frequenzen oberhalb 40 kHz begrenzt sind.
  • Bei typischen Audiosignalen reduziert diese verlustfreie Vorverzerrungskennlinie mithin Wortlängen typischerweise um 2 oder mehr Bits, was einen das verlusttreie vorverzerrte Signal übertragenden PCM-Kanal befähigt, nach verlustfreier Rückentzerrung eine 2 Bit größere Wortlänge zu übertragen. Zum Beispiel kann ein mit verlustfreier Vorverzerrungs-Codierung arbeitender 16-Bit-PCM-Kanal ein 18-Bit-PCM-Signal verlustfrei übertragen, sofern die Vorverzerrung keine Überlastung des Übertragungskanals verursacht.
  • In dieser Anwendung kann der Rauschformer ein Außenform-Rauschformer zweiter Ordnung sein, zum Beispiel mit D(z–1) = 3/2z–1 + 3/4 z–2 ,welcher wahrgenommene Rauschpegel bei einer Abtastfrequenz von 96 kHz typischerweise um etwa 10 dB reduziert, wenn die Decodierung über herkömmliche statt über verlustfreie Rückentzerrung erfolgt. Wenn das ursprüngliche Signal 18 Bit und das verlustfrei vorverzerrte Signal 16 Bit Wortlänge hatte, dann ist das vom Codierer-Quantisierer verursachte, wahrgenommene Rauschen bei Decodierung mit herkömmlicher Vorverzerrung unter Verwendung einer solchen Rauschformung zu einem zusätzlichen Quantisierungsrauschen etwa 19,7 Bits hinunter äquivalent.
  • Allgemeiner gesagt, kann die in 13a bis 13d dargestellte und auf diese bezugnehmend beschriebene allgemeine Architektur mit Außenform-Rauschformung ohne Initialisierung verwendet werden und wird sich bei Eingangssignalen mit einer zufälligen Form schließlich auf die gleichen Werte der Zustandsvariablen einschwingen und verlustfrei werden, sofern nur der Codierfilter "durchlässig" ist, d. h. sofern alle Nullstellen seines Zählers 1 + A(z–1) ausschließlich innerhalb des Einheitskreises, aber nicht auf diesem liegen.
  • Allerdings kann die Einschwingzeit, bevor die Fehler in der Decodierung verschwinden und die Decodierung verlustfrei wird, inakzeptabel lang sein und vielleicht sogar die Dauer eines längeren Musikstücks übersteigen.
  • Deshalb ist es notwendig, mittels numerischer Simulationen durch Einspeisen eines zufälligen ganzzahligen Eingangssignals in das Decodiersystem in 13b mit verschiedenen Initialisierungen zu überprüfen, ob sich die Differenz in den Ausgängen für beliebige zwei solche Initialisierungen nach einer angemessenen Zeit, welche wenige Millisekunden oder vielleicht wenige Zehn Millisekunden betragen kann, auf Null einschwingt. Als allgemeine Daumenregel wurde festgestellt, daß solch schnelles Einschwingen eintritt, wenn der FIR-Filter A(z–1) + D(z–1) + D(z–1) A(z–1)von niedriger Ordnung ist und wenn er so beschalten ist, daß die Zunahme der Leistung von in den Filter
    Figure 00480001
    gespeistem weißem Rauschen innerhalb maßvoller Grenzen bleibt. Außerdem ist wünschenswert, daß die Abfallzeit dieses Filters kurz ist.
  • Die Verwendung einer falschen Initialisierung im Decodierer in 13b hat nicht nur die Auswirkung, daß die Rauschformung falsch startet, sondern sie bewirkt auch, daß die Ausgangs-Wellenform anfangs mit möglicherweise sehr schweren Fehlern decodiert wird. Jedoch bedeutet die "Durchlässigkeit" der Filterung, d. h. das durch die ausschließlich innerhalb des Einheitskreis liegenden Nullstellen von 1 + A(z–1) verursachte hohe Maß an Dämpfung, daß solche schweren Fehler entsprechend der Abfallzeit etwaiger Resonanzen im Filter
    Figure 00480002
    schwächer werden und verschwinden, und nachdem eine solche Dämpfung eingetreten ist, bietet sich auch der Rauschformungs-Initialisierung Gelegenheit, sich einzuschwingen.
  • Sofern also ein "durchlässiger" Codierfilter verwendet und dafür gesorgt wird, daß der FIR-Filter A(z–1) + D(z–1) + D(z–1)A(z–1)in 13 gewählt wird, um nach einer falschen Initialisierung schnelles Einschwingen des Decodierers mit Außenform-Rauschformung sicherzustellen, kann man die verlustfreie Codierung und Decodierung mit optionaler Außenform-Rauschformung um den Quantisierer ohne Initialisierung verwenden.
  • Die Verwendung solcher Decodierer, welche nach einer kurzen Beaufschlagung mit zufälligen Eingangssignalen die Initialisierungsbedingungen "vergessen", ist auch bei spärlicher Initialisierung vorteilhaft, da sie die schnelle Behebung von isolierten Datenfehlern im Eingang des Decodierers gestattet.
  • Bekannte, dem Stand der Technik entsprechende verlustfreie Prädiktionsverfahren bedurften allesamt der Initialisierung.
  • Verlustfreie Vorverzerrung ist somit bei Decodierung mit verlustfreier Rückentzerrung ein praktisches Mittel zum Erhöhen der effektiven Wortlänge von PCM-Kanälen und bietet ein hohes Maß an Kompatibilität mit herkömmlicher Rückentzerrung desselben Kanals.
  • Decodierung ohne Initialisierung
  • Das obige Schema mit einem festen "durchlässigen" Codierfilter zum Decodieren verlustfreier Vorverzerrung ohne Initialisierung kann auch auf allgemeinere anpaßbare Schemata erweitert werden. In diesem Fall kann man, je nach der akzeptablen Zeit bis zum Einschwingen auf verlustfreie Codierung, die Initialisierungsdaten am Anfang vieler oder aller Blocks von L Abtastwerten weglassen und den Decodierprozeß unter Verwendung von Null-Zustandsvariablen und Übertrags-Zustandsvariablen aus dem vorherigen Block beginnen. Sofern die Filter- und Außenform-Rauschformungs-Koeffizienten im Codierer so gewählt werden, daß sie ausreichend durchlässig sind, kann sich herausstellen, daß die Einschwingzeit hinreichend kurz ist, und man kann die für häufige Initialisierung erforderlichen Datenzusätze weglassen. Allerdings ist darauf zu achten, daß nicht Codielter verwendet werden, die nicht "durchlässig" sind oder nicht sehr durchlässig sind, d. h. solche, deren Nullstellen auf dem oder sehr nahe am Einheitskreis liegen, da solche Codierer sehr lange oder unendliche Einschwingzeiten haben.
  • Die Einschwingzeit kann durch verschiedene mögliche Strategien verbessert werden. Eine Strategie ist, mehrere relativ durchlässige Codierer zu kaskadieren, statt einen einzigen, viel weniger durchlässigen Codierer von ähnlicher Filterleistung zu verwenden, da die inversen Decodierer sich einer nach dem anderen schneller einschwingen und dann dem jeweils nächsten Decodierer in der Kette ermöglichen, sich einzuschwingen.
  • Eine andere Strategie nutzt die Rauschformung, um die Einschwingzeit zu verkürzen. Bei dieser Strategie verwendet man einen Außenform-Rauschformer D(z–1), so daß 1 + D(z–1) durchlässig ist und so daß der Frequenzgang des Filters
    Figure 00490001
    annähernd flach ist oder zumindest die Amplitude des weißen Rauschens nicht sehr stark anhebt. Dies hat den Effekt, daß die Quantisierungsrauschamplitude nach Decodierung mit falscher Initialisierung reduziert wird, und eine reduzierte Quantisierungsrauschamplitude fördert den Einschwingprozeß, da sich zu jedem Zeitpunkt die Wahrscheinlichkeit erhöht, daß die erforderliche Anzahl n von quantisierten Ausgängen den korrekten Wert hat, wenn die Abweichungen von den korrekten Ausgängen reduziert werden.
  • Diese Strategien verbessern im allgemeinen auch die Wiederherstellung des Decodielters nach isolierten Fehlern in den vom Decodierer empfangenen prädiktionscodierten Abtastwerten.
  • Die einer kurzen Einschwingzeit zu verdankende Möglichkeit des Weglassens oder Reduzierens von Initialisierungsdaten kann auch ermöglichen, Codierfilter höherer Ordnung zu verwenden, ohne daß die Übertragung einer übermäßigen Menge von Initialisierungsdaten erforderlich wird. Beispielsweise könnte man eine Kaskade von drei Codierfiltern zweiter Ordnung verwenden, von denen nur der letzte Initialisierungsdaten überträgt und von denen die ersten zwei ein relativ hohes Maß an Durchlässigkeit und eine an den Codierer-Zähler angepaßte Rauschformung aufweisen, um die Amplitude des Quantisierungsrauschfehlers am Decodiererausgang zu minimieren. Dies ermöglicht der ersten Stufe der Decodierung, sich zu initialisieren, und der zweiten und dritten Stufe, sich schnell einzuschwingen, was eine Codierfilterung sechster Ordnung einschließlich eines Faktors ergibt, die nicht durchlässig zu sein braucht und dabei geringe Initialisierungsdaten-Zusätze aufweist.
  • Durch die Verwendung von Codier- oder Decodiersystemen mit kaskadierten Filtern, die Quantisierer mit gebrochener Schrittweite verwenden, wie oben bezugnehmend auf 16 und 17 beschrieben, sollte die Einschwingzeit nicht stark beeinträchtigt werden.
  • Die Einschwingzeit kann schlecht sein, wenn das Eingangssignal nicht ausreichend zufällig beschaffen ist, um das System "anlaufen" zu lassen oder um die Wahrscheinlichkeit, daß die korrekten Zustandsvariablen erreicht werden, zu erhöhen. In dieser Situation trägt die Verwendung von additivem oder subtraktivem Dither im Signaleingang des Codierers und/oder an irgendeinem der internen Quantisierer, bei entsprechender Subtraktion des synchronisierten Dither an den jeweiligen Punkten vor Quantisierern oder am Ausgang, dazu bei, das System anlaufen und sich einschwingen zu lassen.
  • Der Mehrkanal-Fall
  • Die obigen verlustfreien Codier- und Decodierverfahren können auf Mehrkanal-Signale erweitert werden. Zwar können Mehrkanal-Signale als getrennte Kanal verlustfrei codiert und decodiert werden, aber eine solche getrennte Codierung reduziert die Datenrate nicht optimal, da sie keinerlei Redundanz nutzt, die aufgrund von Korrelationen zwischen den Informationen in verschiedenen Kanälen vorliegen kann.
  • Um den allgemeinen Mehrkanal-Prozeß zu beschreiben, beschreiben wir zuerst den Prozeß der verlustfreien Matrix-Quantisierung von n Kanälen mit ganzzahligen Wellenformdaten. 22a zeigt einen primitiven n × n-Matrix-Quantisierer, der n ganzzahlige Ausgangssignale S'1, S2, ..., Sn aus n ganzzahligen Eingangssignalen S1, S2, ..., Sn produziert, wobei das erste Signal S1 geändert wird, so daß es ein verändertes Signal S'1 = S1 + Quantisierung (a2S2 + ... + anSn)wird, wobei Quantisierung eine Rundungsoperation auf ganzzahlige Werte bedeutet. Die Koeffizienten a2, ..., an können vorzugsweise von endlicher Genauigkeit sein und einen größten gemeinsamen Teiler d haben, so daß der Algorithmus genau, ohne jeden Gesamt-Rundungsfehler, implementiert werden kann.
  • Dann können die Signale S1, S2, ..., Sn aus den Signalen S1, S2, ..., Sn durch einen in 22b dargestellten inversen primitiven n × n-Matrix-Quantisierer genau wiederhergestellt werden, welcher S1 = S'1 – Quantisierung (a2S2 + ... + anSn)unter Verwendung eines mit dem ursprünglichen Matrix-Quantisierer identischen Quantisierers implementiert.
  • Beachten Sie, daß wir in 22 und 23 zeigen, daß die ganzzahligen Signale vor dem ganzzahligen Quantisierer in einen Summierungsknoten gespeist werden statt danach. Für ganzzahlige Eingangssignale bedeutet dies zweifellos keinen Unterschied.
  • Vom Vorhandensein des Quantisierers einmal abgesehen, implementiert der primitive Matrix-Quantisierer in 22a jetzt eine n × n-Matrix
    Figure 00510001
    und implementiert der inverse primitive Matrix-Quantisierer in 22b eine n × n-Matrix, welche Matrizen beide die Determinante 1 haben.
  • Aufwendigere verlustfreie Matrix-Quantisierer mit n ganzzahligen Ein- und Ausgangssignalen, welche verlustfrei sind in dem Sinn, daß sie invertierbar sind, um die Eingangssignale aus den
    Figure 00510002
    Ausgangssignalen wiederherzustellen, können durch Kaskadieren jeder Anzahl primitiver n × n-Matrix-Quantisierer der obigen Form implementiert werden, wobei in aufeinanderfolgenden primitiven Matrix-Quantisierern das Signal, das geändert wird, so gewählt werden kann, daß es jedesmal eine anderes der n Signalwege ist.
  • 23a zeigt beispielhaft eine Kaskade zweier primitiver n × n-Matrix-Quantisierer, von denen der erste wie oben beschaffen ist und der zweite die n ganzzahligen Signale S'1, S2, S3, ..., Sn empfängt und die n ganzzahligen Signale S'1, S'2, S3, ..., Sn ausgibt, wobei S'2 = S2 + Quantisierung (b1S'1 + .b3S3 + ... + bnSn),und 23b zeigt die inverse Kaskade zweier primitiver n × n-Matrix-Quantisierer, von denen der erste die n ganzzahligen Signale S'1, S'2, S3, ..., Sn empfängt und die n ganzzahligen Signale S'1, S2, S3, ..., Sn ausgibt, wobei S2 = S'2 – Quantisierung (b1S'1 + .b3S3 + ... + bnSn),und der zweite beschaffen ist wie oben in 22b.
  • Vom Vorhandensein der Quantisierer einmal abgesehen, implementiert die Kaskade primitiver Matrix-Quantisierer in 23a jetzt eine n × n-Matrix
    Figure 00520001
    und implementiert der inverse Matrix-Quantisierer in 23b eine n × n-Matrix
    Figure 00520002
    welche Matrizen beide die Determinante 1 haben (Sie werden sich erinnern, daß die Determinante eines Produkts von Matrizen gleich dem Produkt ihrer Determinanten ist).
  • Auf ähnliche Weise kann jede Kaskade primitiver n × n-Matrix-Quantisierer der in 22a gezeigten Art invertiert werden, um den Eingang durch eine umgekehrte Kaskade der inversen, primitiven n × n-Matrix-Quantisierer der in 22b gezeigten Art wiederherzustellen, und die resultierenden Matrizen haben die Determinante 1. Tatsächlich kann jede Matrix mit der Determinante 1 als Produkt solcher primitiver Matrizen dargestellt werden. Ein allgemeines System dieser Art, in welchem der Effekt der Neu-Quantisierung auf ganzzahlige Werte durch ein inverses System rückgängig gemacht werden kann, wird als verlustfreier Matrix-Quantisierer bezeichnet.
  • Normalerweise besteht keine Notwendigkeit, mehr als n primitive n × n-Matrix-Quantisierer, von denen jeder einen anderen Eingangskanal ändert, zu kaskadieren, um einen effizienten, verlustfreien Matrix-Quantisierer zu erhalten, der die codierte Datenrate der n Ausgangssignale minimiert, obwohl man jede Anzahl kaskadieren kann.
  • Am Beispiel eines verlustfreien 2 × 2-Matrix-Quantisierers betrachten wir den Fall der 23a, wo n = 2 und a2 = –1 und wo b1 = 1/2. Dies implementiert eine 2 × 2-Matrix
    Figure 00530001
    wobei der erste Ausgang keinen Quantisierer benötigt (da er ein ganzzahliges Differenzsignal ist), der zweite aber ein durch 2 geteiltes Summensignal mit nachgeschaltetem Quantisierer ist.
  • Dies ermöglicht effizientes, verlustfreies Codieren von Signalen, wobei die Energie des Differenzsignals viel kleiner ist als diejenige des Summensignals, wie es bei 2-Kanal-Stereosignalen der Fall ist, bei denen sich der größte Teil ihrer Energie in der Mitte der Stereobasis befindet. Die verlustfreie inverse Decodiermatrix in 23b implementiert mit einem Quantisierer vor der zweiten Stufe die inverse Matrix
  • Figure 00530002
  • Allgemeiner gesagt, wird im 2 × 2-Fall die Matrix mit der Determinante 1
    Figure 00530003
    im Codiermatrix-Quantisierer implementiert, und die inverse Matrix
    Figure 00530004
    wird im Decodierer implementiert. Man kann es so einrichten, daß die Zeilen der ersten und die Spalten der zweiten Matrix orthogonale Vektoren sind, indem man
    Figure 00530005
    setzt.
  • Auf diese Weise minimiert das Quantisieren längs orthogonaler Achsen im allgemeinen die Datenrate des Ausgangs, wenn die Achsen längs der Richtungen der Eigenvektoren der Korrelationsmatrix des Eingangssignals gewählt werden.
  • Zweifellos können verlustfreie Matrix-Quantisierer mit verlustfreien Codierfiltern der vorher bezugnehmend auf 1 bis 14 beschriebenen Art in jedem oder in irgendwelchen der Eingangs- oder Ausgangssignalwege kaskadiert werden, um ein zusammengesetztes verlustfreies Codiersystem für n ganzzahlige Signale zu bilden, da die umgekehrte Kaskade inverser Decodiersysteme die ursprünglichen n ganzzahligen Signale wiederherstellt.
  • Indes gibt es eine n × n-Matrix-Version des generischen verlustfreien 1-Kanal-Wellenform-Codier- und -Decodiersystems in 6 und 15, welche wir nun, bezugnehmend auf 24, beschreiben.
  • 24a zeigt einen Codierer zum Codieren n verschiedener, aber zusammenhängender ganzzahliger Wellenformsignale zu n ganzzahligen Wellenformsignalen niedrigerer Energie zur Übertragung bei verminderten Datenraten. Wie im Einzelkanal- (oder sogenannten "skalaren") Fall ist einem n-Kanal-Summierungsknoten ein n-Kanal-Quantisierer nachgeschaltet, welcher einfach ein getrennter ganzzahliger Quantisierer oder eine getrennte ganzzahlige Rundungsoperation in jedem der n Kanäle ist. In diesem Fall aber speist der n-Kanal-Quantisierer einen verlustfreien n × n-Matrix-Quantisierer 1b, welcher wiederum den n-Kanal-Ausgang sowie einen n × n-Matrix-FlR-Filter B(z–1) mit einer Verzögerung von mindestens einem Abtastwert und mit gebrochenen Koeffizienten endlicher Genauigkeit, die alle den Nenner d haben, und dessen n Kanalausgänge vom Summierungsknoten subtrahiert werden, speist. Entsprechend speist das ganzzahlige n-Kanal-Eingangssignal den Summierungsknoten direkt über einen verlustfreien n × n-Matrix-Quantisierer 1a und außerdem über einen n × n-Matrix-FIR-Filter A(z–1) mit einer Verzögerung von mindestens einem Abtastwert und mit gebrochenen Koeffizienten endlicher Genauigkeit, die alle den Nenner d haben. n × n-Matrix-FlR-Filter sind einfach Filteranordnungen, bei denen jeder von n Eingängen jeden von n Ausgängen über einen FIR-Filter speist, was bis zu n2 FIR-Filterwege ergibt (manche können weggelassen werden, wenn sie Koeffizienten gleich Null haben). 25 zeigt beispielhaft einen 2 × 2-Matrix-FIR-Filter zweiter Ordnung mit einer Verzögerung von mindestens einem Abtastwert. 25 zeigt außerdem die Zustandsvariablen Iij des Filters.
  • Der zum Codierer in 24a inverse Decodierer ist in 24b dargestellt. Dieser hat die gleiche Form wie der Codierer, abgesehen davon, daß: (1) die Matrix-FIR-Filter A(z–1) und B(z–1) vertauscht sind, (2) der n × n-Matrix-Quantisierer 1a durch den zu 1b inversen n × n-Matrix-Quantisierer ersetzt ist und der n × n-Matrix-Quantisierer 1b durch den zu 1a inversen n × n-Matrix-Quantisierer ersetzt ist, und (3) der n-Kanal-Quantisierer im Decodierer in der Leistung äquivalent zum n-Kanal-Quantisierer im Codierer mit vor- und nachgeschalteter Phasenumkehrung ist.
  • Eine alternative, aber genau äquivalente Architektur für den Codierer und Decodierer für n Kanäle ist in 25c beziehungsweise 25d dargestellt, wo der Quantisierer so verschoben ist, daß er der Differenz der Ausgänge der zwei Filter nachgeschaltet, aber dem Summierungsknoten, der ganzzahlige Signale handhabende Signalwege handhabt, vorgeschaltet ist, da das Plazieren eines Additions- oder Subtraktionsknotens vor oder nach einem ganzzahligen Quantisierer die Ergebnisse nicht betrifft, wenn alle Signale ganzzahlig sind. Wir haben jedoch in 24d die Polaritäten an den Summierungsknoten so gewählt, daß der im inversen Decodierer verwendete Quantisierer mit dem im Codierer verwendeten identisch ist (im Gegensatz zum Fall der 25b).
  • Andere Architekturen zum Implementieren des n-Kanal-Codierers sind in anderen 24e, 24g, 24i und 24k dargestellt, und entsprechende inverse Decodierformen sind in 24f, 24h, 24j und 24l dargestellt.
  • Die Codierer in 24e und 24g sind genau äquivalent und unterscheiden sich von den vorherigen Codierern darin, daß hier verlustfreie n × n-Matrix-Quantisierer im den n × n-Matrix-Filtern vorgeschalteten Filterweg statt in den direkten Wegen plaziert sind. Auf den ersten Blick kann es scheinen, daß diese nicht mit den Codierern in 24a oder 24c zusammenhängen, tatsächlich aber hängen sie eng zusammen und sind lediglich Varianten.
  • Indem ihm ein inverser n × n-Matrix-Quantisierer 1a vorgeschaltet und ein inverser n × n-Matrix-Quantisierer 1b nachgeschaltet wird, kann der Codierer in 24a oder 24c so umgewandelt werden, daß er genau äquivalent zu demjenigen in 24e oder 24g ist, wenn man den n × n-Matrix-Quantisierer 2a gleich dem inversen n × n-Matrix-Quantisierer 1a setzt und den n × n-Matrix-Quantisierer 2b gleich dem inversen n × n-Matrix-Quantisierer 1b setzt.
  • Entsprechend kann der Codierer in 24e oder 24f so umgewandelt werden, daß er genau äquivalent zu demjenigen in 24a oder 24c ist, indem ihm ein inverser n × n-Matrix-Quantisierer 2a vorgeschaltet und ein inverser n × n-Matrix-Quantisierer 2b nachgeschaltet wird.
  • Entsprechend können die entsprechenden inversen Decodierer so umgewandelt werden, daß sie genau äquivalent zueinander sind, indem dem Decodierer geeignete inverse n × n-Matrix-Quantisierer vor- und nachgeschaltet werden.
  • Beide vorherigen Architekturen können in den in 24i oder 24k gezeigten Codierern, welche in der Leistung genau äquivalent zueinander sind, kombiniert werden, indem n × n-Matrix-Quantisierer sowohl in die direkten und in die Filterwege geschaltet werden, im letzteren Fall vor die Filter. Einer oder mehrere der n × n-Matrix-Quantisierer können, falls gewünscht, trivial" sein in dem Sinn, daß sie nichts bewirken, d. h. daß ihr Ausgang gleich ihrem Eingang ist.
  • Beachten Sie, daß im Fall der Decodierer in 24b, 24f und 24j, welche zu den Codierern in 24a, 24e beziehungsweise 24i invers sind, der Decodierer-n-Kanal-Quantisierer in der Leistung äquivalent zum Codierer-n-Kanal-Quantisierer sowohl mit vor- als auch mit nachgeschalteter Polaritätsumkehrung sein sollte. Im Fall der Decodierer in 24d, 24h und 24l aber, welche zu den Codierern in 24c, 24g beziehungsweise 24k invers sind, sollten die Codierer- und Decodierer-n-Kanal-Quantisierer in der Leistung äquivalent sein.
  • Diese variierten Architekturen bieten beträchtlichen Spielraum für variierte algorithmische Implementierungen von funktional identischen Codier- oder Decodier-Quantisierungsfiltern.
  • In allen in der Beschreibung behandelten Fällen stellt das Verschieben von Summierungsknoten, die auf eine Schrittweite G quantisierte Signale handhaben, von "vor einem Quantisierer mit Schrittweite G" nach "nach einem Quantisierer mit Schrittweite G" oder umgekehrt lediglich eine offenkundige Variante der Implementierung dar.
  • Außerdem ändert das Kaskadieren oder Kombinieren oder Teilen verlustfreier n × n-Matrizen keinen wesentlichen Aspekt, sondern stellt wiederum eine Einzelheit der Implementierung dar.
  • Die unten behandelten n-Kanal-Quantisierer können, falls gewünscht, wie im skalaren Fall Rauschformung enthalten, indem sie entweder ganzzahlige Innenform-Rauschformer wie in 9 oder Außenform-Rauschformer wie in 12 oder sogar eine verschachtelte Kombination der beiden verwenden. Im n-Kanal-Fall können die Filter C(z–1) oder D(z–1), falls gewünscht, n × n-Matrix-FIR-Filter mit einer Verzögerung von mindestens einem Abtastwert sein. Diese Option gestattet, eine Rauschformung zu entwerfen, die eine bestimmte gewünschte Korrelationsmatrix hat, möglicherweise eine zu derjenigen des codierten Signals passende, um die übertragene Datenrate bei niedrigen Signalpegeln zu minimieren.
  • Im allgemeinen erfordert n × n-Matrix-Codierung und -Decodierung die Übertragung von viel mehr Filterkoeffizienten als das getrennte Codieren von n Kanälen, und dies kann sich, wenn man nicht aufpaßt, zu solchen Datenzusätzen addieren, die möglicherweise die Datenraten-Verbesserungen, welche durch eine die Korrelation zwischen Kanälen nutzende Codierung erzielt wurden, aufheben. Aus diesem Grund mag man häufig bevorzugen, vereinfachte Codieren und Decodieren zu verwenden, die nicht ideal an die n-Kanal Signalstatistik angepaßt sind.
  • Berücksichtigt man den Effekt der Quantisierer nicht, ist die Antwort des n × n-Matrix-Filters des Codiersystems in 24a oder 24c gegeben durch M(z–1) = (M1b + B(z–1))–1(M1a + A(z–1))–1 = (1 + M1b –1B(z–1))–1(1 + M1b A(z1b)M1a –1M1b)M1b –1 M1a,wobei M1b die Matrix mit der Determinante 1 des n × n-Matrix-Quantisierers 1b ist und M1a die Matrix mit der Determinante 1 des n × n-Matrix-Quantisierer 1a ist und wobei die Inversion die Matrixinversion ist und die Multiplikation die Matrixmultiplikation ist. Die Fourier-Transformation bezüglich der diskreten Zeit von M(z–1) ist der n × n-Matrix-Frequenzgang M(F) des Codiersystems, und die n × n-Spektralmatrix des Ausgangs des Codiersystem ist S'(F) = M – (F)*S(F)M – (F),wobei S(F) die n × n-Spektralmatrix als eine Funktion der Frequenz des Eingangssignals ist und wobei * die hermitesche Adjungierte der Matrix bezeichnet. Sie werden sich erinnern, daß die hermitesche Adjungierte einer Matrix mit komplexen Elementen mij die Matrix mit komplexen Elementen (mij)* ist, wobei * die komplexe Konjugation ist. Idealerweise würde man für eine minimale codierte Datenrate diese Spektralmatrix S'(F) so wählen, daß sie weiß ist und ihre Eigenvektorachsen im folgenden Sinn längs der Ausgangskanal-Vektorrichtungen ausgerichtet sind:
  • Das ideale n-Kanal-Codiersystem wie dasjenige in 24c würde n × n-Matrix-Quantisierer und n × n-Matrix-Filter wählen, welche an die n-Kanal-Signalstatistik in diesem Augenblick angepaßt sind, mit dem Ziel, in allen Kanälen ein weißes Ausgangsspektrum anzunähern, so daß (1) alle Linearkombinationen der Ausgangskanäle auch ein weißes Spektrum haben, und (2) die Eigenvektoren der Korrela tionsmatrix des Ausgangssignals der n Kanäle in der Vektorrichtung der n Kanäle liegen. Zur Theorie von Mehrkanal-Korrelationen und -Spektren siehe zum Beispiel Kapitel 3 des Buchs A. M. Yaglom, "An Introduction to the Theory of Stationary Random Functions", Prentice-Hall, 1962 und Dover Publications 1973. In der Praxis kann man, wie im skalaren Fall, oft einfach eine Anzahl von n-Kanal-Codierer-Koeffizienten vorwählen, welche, beruhend auf der Messung von Spektralmatrizen typischer Signale, recht gut an die wahrscheinlichsten Signalspektren und Energieverteilungen in den n Kanalen angepaßt sind.
  • Im allgemeinen kann n × n-Matrix-Codierung und -Decodierung mit Filterordnung m die Übertragung von viel mehr (bis zu 2 mn2) Filterkoeffizienten erfordern als das getrennte Codieren von n Kanälen, und dies kann sich, wenn man nicht aufpaßt, zu solchen Datenzusätzen addieren, die möglicherweise die Datenraten-Verbesserungen, welche durch eine die Korrelation zwischen Kanälen nutzende Codierung erzielt wurden, aufheben. Aus diesem Grund mag man häufig bevorzugen, vereinfachte Codierer und Decodierer zu verwenden, die nicht ideal an die n-Kanal Signalstatistik angepaßt sind.
  • Die einfachsten verlustfreien Codierer für n Kanäle enthalten einen anfänglichen n × n-Matrix-Quantisierer, dem n getrennte verlustfreie 1-Kanal-Codiertilter-Anordnungen für jeden der n Ausgänge, welche für jeden einen möglicherweise anderen Satz von Filter- und Rauschformungskoeffizienten verwenden, nachgeschaltet sind. Solche Codiersysteme sind in 26a und die inversen Decodiersysteme in 26b dargestellt. In diesem Fall erfordert die Reduzierung der Datenrate, daß für den n × n-Matrix-Quantisierer im Eingang des Codierers eine geeignete Wahl getroffen wird.
  • Dies kann auf verschiedenartige Weisen geschehen. Es ist vorteilhaft, es so einzurichten, daß der erste primitive n × n-Matrix-Quantisierer die größte Datenraten-Reduzierung produziert, und daß der nächste in der Kaskade (falls vorhanden) die nächstgrößte Datenraten-Reduzierung produziert und so weiter. Oft liefern die ersten ein oder zwei primitiven n × n-Matrix-Quantisierer in der Kaskade den größten Teil der Datenraten-Reduzierung aus Korrelationen zwischen Kanälen, so daß es in der Praxis oft notwendig sein wird, nur eine oder zwei Stufen in der Kaskade für den n × n-Matrix-Quantisierer zu verwenden, um den größten Teil der erreichbaren Datenraten-Reduzierung zu erzielen.
  • Also wird die erste primitive n × n-Matrix-Quantisiererstufe des n × n-Matrix-Quantisierers im Codierer im allgemeinen so ausgewählt, daß sie auf einen Kanal wirkt und ihn in diejenige Vektorrichtung in den n Kanälen matriziert, die mit der niedrigsten Datenrate codiert. Wählen Sie vorzugsweise denjenigen Kanal, dessen Richtung derjenigen Vektorrichtung in den n Kanälen am nächsten kommt, die mit der niedrigsten Datenrate codiert.
  • Zum Beispiel bei einem 2-Kanal-Stereosignal liegt die überwiegende Energie oft in der "Summen-" L + R-Richtung und die geringste Energie in der "Differenz-" L-R-Richtung des linken L und rechten R Kanals. In diesem Fall würde man die größte Energie der zwei Kanäle in eine Differenzrichtung umwandeln, indem man in 22a a2 = –1 oder ähnliche Werte setzt. Allgemeiner gesagt, wenn der größte Teil der Energie in der Lcosθ + Rsinθ-Richtung konzentriert ist und die geringste Energie in der -Lsinθ + Rcosθ-Richtung liegt, wählen Sie im primitiven n × n-Matrix-Quantisierer in 22a bei –45 ≤ θ ≤ 45 Grad S1 = R, S2 = L und a2 = ungefähr tanθ und bei 45 ≤ θ ≤ 135 Grad S1 = L, S2 = R und a2 = ungefähr cotθ.
  • In diesem Beispiel von 2-Kanal-Stereoklang verwendet man die Tatsache, daß in vielen Fällen die Energie in den zwei Stereokanälen hauptsächlich in einer Vektorrichtung θ konzentriert ist, und wählt einen verlustfreien 2 × 2-Matrix-Quantisierer, so daß einer der Ausgänge die überwiegende Energiekomponente so weit wie möglich ausgleicht.
  • Eine grobe Schätzung der Vektorrichtung in den n Kanälen, die mit der niedrigsten Datenrate codiert, ist durch die Vektorrichtung in den n Kanälen, welche die niedrigste Energie hat, gegeben. Für einen Block von Abtastwerten der Länge L kann diese Richtung durch Berechnen der n-Kanal-Korrelationsmatrix für den Block berechnet werden. Wenn der Wert des Signals beim i-ten Abtastwert im p-ten Kanal xpi ist, dann ist diese Korrelationsmatrix die Matrix M mit den Elementen
  • Figure 00580001
  • Die Eigenvektoren und zugehörigen Eigenwerte dieser Matrix werden dann berechnet, und die Richtung mit der geringsten Energie ist die Richtung desjenigen Eigenvektors, der den kleinsten Eigenwert hat. Im Fall von 2-Kanal-Signalen ergibt sich im obigen Stereo-Beispiel die Richtung q, indem man beachtet, daß die 2 × 2-Korrelationsmatrix die Form
  • Figure 00580002
  • Diese Schätzung der Vektorrichtung in den n Kanälen, die mit der niedrigsten Datenrate codiert, ist jedoch grob in der Hinsicht, daß sie durch Signale mit hoher Energie, aber niedriger Datenrate (wie lautes Baß-Audio) in anderen Richtungen vorbelastet werden kann. Eine anspruchsvollere, rechentechnisch aber kompliziertere Schätzung kann, auf der Datenrate beruhend, mittels eines hier umrissenen Verfahrens erzielt werden.
  • Zuerst wird unter Verwendung der herkömmlichen FFT (Fast Fourier Transform) oder ähnlicher bekannter Verfahren die Spektralmatrix S(F) als eine Funktion der Frequenz des n-Kanal-Signals über einen mit Fenstern versehenen Block berechnet. Die Matrix S(F) mit den Matrixelementen S(F)pq, p, q = 1, ..., n bei jeder Frequenz wird dann hinsichtlich ihrer Eigenwerte und ihrer orthonormalen Basis von Eigenvektoren Φp(F) = (f p1(F), ..., f pn(F)) erweitert, so daß
  • Figure 00580003
  • Der Logarithmus In(S(F)) der n × n-Matrix S(F), selbst eine n × n-Matrix, definiert durch die Formel
    Figure 00590001
    wird dann berechnet.
  • Der Mittelwert dieser Matrix über alle Frequenzen F von 0 bis zur Nyquist-Frequenz N liefert eine Schätzung der optimalen Richtungen für die Codierung dieses Signals. Diese n × n-'Mittlerer-Logarithmus"-Matrix
    Figure 00590002
    definiert die optimalen Codierungs-Vektorrichtungen als die Richtungen ihrer Eigenvektoren, wobei die Vektorrichtung in den n Kanälen, die mit der niedrigsten Datenrate codiert, die Richtung desjenigen Eigenvektors ist, der den kleinsten Eigenwert hat.
  • Die mit dieser Schätzung der optimalen Codierungs-Vektorrichtung verbundenen Berechnungen von Eigenvektoren und Eigenwerten von Matrizen erfordern, besonders bei Echtzeit-Codierern, eine beträchtliche Rechenleistung. Der Rechenaufwand kann durch Annähern des Integrals durch eine Summe ein wenig reduziert werden, wodurch die aufwendige Berechnung von In(S(F))pq nicht für jede einzelne Frequenz, sondern als
    Figure 00590003
    über ein Frequenzband F – b/2 bis F + b/2 der Bandbreite b berechnet wird. Die Bandbreite b, über welche dies geschieht, kann so eingerichtet werden, daß sie bei hohen Frequenzen breiter als bei niedrigen Frequenzen ist, um den erforderlichen Rechenaufwand weiter zu reduzieren, vielleicht indem man die Bandbreite b so einrichtet, daß sie vielleicht das Maximum von einer drittel Oktave und einem voreingestellten Minimalwert ist.
  • Der Logarithmus In(M) einer Matrix M kann durch ein Näherungsverfahren der Form In(M) = p(M)auch kostengünstiger annähernd berechnet werden, wobei p(x) eine polynomische oder rationale Funktion ist, von der bekannt ist, daß sie In(x) über einen weiten Dynamikbereich von Werten von x annähert.
  • Eine effiziente Näherung, die über einen weiten Dynamikbereich von Werten e–3(a–a–1) < x < e 3(a–a–2) der Matrix-Eigenwerte ungefähr gleich dem natürlichen Logarithmus von x plus einer Konstanten ist, ist durch Verwendung der annähernden rationalen Berechnung
    Figure 00600001
    gegeben, wobei
    Figure 00600002
    wobei a = ungefähr 5,4 und k = 0,82, damit die logarithmische Näherung über den 120-dB-Bereich 106 < × < 106 akzeptabel (auf ±0,3 genau) ist. Dieses Verfahren zur Berechnung des Logarithmus einer Matrix arbeitet mit fünf Matrixinversionen und ist rechentechnisch effizienter als die Berechnung über Eigenvektoren und Eigenwerte, und es ist in dieser Anwendung von angemessener Genauigkeit. Die Konstante wirkt sich nicht auf die Bestimmung von Eigenvektoren aus.
  • Allerdings ist noch eine Eigenvektor- und Eigenwertberechnung erforderlich, um die Vektorrichtung mit der minimalen Datenrate zu bestimmen. Der Vektor (1, a2, ..., an) der im primitiven n × n-Matrix-Quantisierer in 22a verwendeten Koeffizienten ist eine zu diesem Vektor proportionale rationale Annäherung.
  • Nach der Schätzung aber ist die Implementierung des primitiven n × n-Quantisierers in 22a einfach und erfordert lediglich die Übertragung von n 1 Koeffizienten an den Decodierer.
  • Das Matrix-Codierverfahren zum Reduzieren der Datenrate wird beträchtlich einfacher in Fällen, in denen man apriorische Informationen über Korrelationen zwischen Kanälen verwenden kann.
  • Betrachten wir beispielsweise ein Audiosystem, das 7 Kanäle von Audio-Wellenformdaten überträgt, von denen fünf für 5-Lautsprecher-Rundumklang und zwei für 2-Lautsprecher-Stereo verwendet werden. In vielen Fällen nähert das Stereosignal eine Abmischung aus den Rundumklang-Signalen an, überträgt also im Prinzip wenig neue Daten. Wir bezeichnen hier das linke und das rechte Stereosignal mit Lt und Rt und die 5 Rundumklang-Signale mit L3, C3, R3, LS und RS, welche für den linken vorderen, den mittleren vorderen, den rechten vorderen, den linken Rundum- beziehungsweise den rechten Rundum-Lautsprecher vorgesehen sind.
  • Typischerweise kann man dann wählen, das linke und das rechte Stereosignal über Mischgleichungen wie
    Figure 00600003
    abzumischen, wobei gF der Verstärkungsfaktor der vorderen Kanäle ist, wF die Breite der vorderen Kanäle ist, k1 der relative Verstärkungsfaktor der Mitte ist, gs der Verstärkungsfaktor der Rundum-Kanäle ist und ws die Breite der Rundum-Kanäle in der Stereoabmischung ist.
  • Wenn in diesem Fall die Abmischkoeffizienten bekannt sind, hat man die bekannten mathematischen Beziehungen
  • Figure 00610001
  • Wenn die Kanäle Lt und Rt zusätzlich zu L3, C3, R3, LS und RS übertragen werden, werden diese mathematischen Beziehungen jedoch nicht ganz genau sein, da es im Zusammenhang mit der Ableitung der Stereosignale verschiedene Rundungsfehler und Näherungen geben wird. Jedoch kann man anstelle von L3 und R3 die Ausgänge zweier primitiver 6 × 6-Matrix-Quantisierer wie in 22a übertragen, wodurch rationale Näherungen an
    Figure 00610002
    implementiert werden, und die in den primitiven 6 × 6-Matrix-Quantisierern in 22a für die 5 Koeffizienten (0,5 + 0,5/wF)/gF, –k1/gF, (0,5 + 0,5/wF)/gF, –(gs/gF)((0,5 + 0,5 ws/wF) und –(gs/gF)((0,5 – 0,5 ws/wF)verwendeten rationalen Näherungen zu den übertragenen Köpfen für L'3 und R'3 hinzufügen.
  • Dann codiert man, wie in 26a gezeigt, die 7 Kanäle Lt, Rt, L'3, C3, R'3, Ls und RS unter Verwendung von Codierfiltern und Entropiecodierern in der hierin oben beschriebenen Weise. Die Kanäle L'3 und R'3 werden mit einer stark reduzierten Datenrate codiert, die von sehr geringer Größenordnung ist. Die inverse Decodierung erfolgt wie in 26b gezeigt, wobei die übertragenen Koeffizienten in die inversen primitiven 6 × 6-Matrix-Quantisierer in 22b geladen werden, um die Signale L3 und R3 verlustfrei wiederherzustellen.
  • Dieses Beispiel veranschaulicht, wie eine bekannte, annähernd lineare Beziehung zwischen n übertragenen Kanälen verwendet werden kann, um die übertragene Datenrate zu reduzieren. Ein allgemeineres, vereinfachtes Codierungs- und inverses Decodierungsschema für n-Kanal-Signale ist in 26c beziehungsweise 26d dargestellt. Hier sind die getrennten Codier- und Decodierfilter-Anordnungen für die n-Kanale durch ein n × n-Matrix-Filter-Codier- und Decodiersystem der in 6, 8, 10, 13, 15, 16 oder 17 gezeigten und auf diese bezugnehmend beschriebenen Form ersetzt, wobei die Filter A(z–1), B(z–1), C(z–1) und D(z–1) jetzt n × n-Matrix-Filter vorzugsweise des FIR-Typs sind. Zur Sicherstellung der Transportierbarkeit von Algorithmen zwischen verschiedenen DSP-Plattformen ist es wiederum wünschenswert, daß die Filterkoeffizienten von endlicher Genauigkeit sind und daß die Filter entweder genau implementiert werden oder so implementiert werden, daß etwaige Rundungsfehler klein genug sind, um den Ausgang der Quantisierer nicht zu beeinträchtigen.
  • Anwendungen auf Bild-Wellenformdaten
  • Die Erfindung kann auf in Datenfeldern von Abtastzeitpunkten in zwei oder mehr Dimensionen definierte PCM-Bild-Wellenformdaten angewandt werden. Die Figuren in der obigen Beschreibung werden dann so interpretiert, daß das Symbol z–1 als ein Paar (z1 –1, z2 –1) von Verzögerungen längs zweier Achsen im zweidimensionalen Fall oder als ein n-Tupel (z1 –1, ..., zn –1) von Verzögerungen längs n Achsen im n-dimensionalen Fall interpretiert wird. Bei dieser Interpretation und der Anforderung, daß die Filter A(z1 –1, ..., z1 –1), B(z1 –1, ..., z1 –1), C(z1 –1, ..., zn –1) und D(z1 –1), ..., zn –1) Terme enthalten sollten von welchen jeder eine Verzögerung von mindestens einem Abtastwert längs mindestens einer Achse des Datenfeldes aufweist, können die dargestellten Implementierungen auf solche n-dimensionalen Wellenformdaten verallgemeinert werden.
  • In zweidimensionalen Bildern kann z1 –1 eine Verzögerung von einem Abtastwert längs, sagen wir, der horizontalen Achse sein und kann z2 –1 eine Verzögerung von einem Abtastwert längs der vertikalen Achse sein.
  • Die Verwendung zweidimensionaler Prädiktoren bei der Bild-Wellenformcodierung ist gemäß dem Stand der Technik wohlbekannt, und die neuartigen Merkmale der vorliegenden Erfindung können auf die verbesserte verlustfreie Codierung solcher Bilder angewandt werden. Bei einzelnen bevorzugten Implementierungen wird der Codierfilter ein zweidimensionaler rekursiver Filter mit Rekursion über einen FIR-Filter B(z1 –1, z2 –1) um einen ganzzahligen Quantisierer, dem ein Zählerfaktor 1 + A(z1 –1, z2 –1) wie oben beschrieben vorgeschaltet ist, sein, und diese Filter werden eine genau implementierte Arithmetik endlicher Genauigkeit haben. Zweidimensionale Innen- oder Außenform-Rauschformung um den Quantisierer sowohl im Codierer als auch im inversen Decodierer mit zweidimensionaler Filterung C(z1 –1, z2 –1) oder D(z1 –1, z2 –1) kann verwendet werden, um dazu beizutragen, die übertragene Datenrate zu minimieren, indem dafür gesorgt wird, daß das zusätzliche übertragene Quantisiererrauschspektrum ein annähernd weißes zweidimensionales Spektrum hat.
  • Bei zweidimensionalen Bildanwendungen können die Blocks, über welche ein verlustfreier Codierfilter angewandt wird, typischerweise von der Größe L = 16 × 16 Abtastwerte sein, und die Filter können die FIR-Form A(z1 –1, z2 –1) = a10z–1 + a01z1 –1 a11z1 –1z2 –1 + a20z1 –2 + a02z2 –2 B(z1 –1, z2 –1) = b10z1 –1 + b01z2 –1 b11z1 –1z2 –1 + b20z1 –2 + b02z2 –2 haben, wobei alle Koeffizienten einen gemeinsamen Nenner d wie d = 4 oder 8 oder 16 haben.
  • In vielen Implementierungen kann man nur die ersten drei Terme jedes Filters behalten.
  • Wie im zuvor beschriebenen Audio-Fall wird der Datenblock typischerweise als Kopfinformationen plus Huffman-codierte Wellenformdaten verlustfrei codiert. Ein dem im oben beschriebenen Audio-Fall verwendeten ähnliches Huffman-Tabellen-Codierungsschema kann verwendet werden, da die prädiktionscodierten Bild-Wellenformdaten oft die Laplacesche PDF-Statistik annähern wie zum Beispiel in R. J. Clarke, "Transform Coding of Images", Academic Press, London, 1985, gezeigt. Die Kopfdaten werden typischerweise die in diesem Block verwendeten Codierfilter- und Rauschformungsfilter-Koeffizienten (falls vorhanden), die Quantisierungs-Schrittweite des Eingangssignals, einen etwaigen in der Codierung enffernten Gleichspannungs-Offset, die Huffman-Tabellennummer und die Initialisierungsdaten für die Decodierfilter enthalten. Man kann auch Daten in den Kopf aufnehmen, die den Decodierer einfach anweisen, Nicht-Initialisierungsdaten aus einem vorherigen Block in der horizontalen oder vertikalen Richtung zu wiederholen, um Datenzusätze einzusparen, wo benachbarte Blocks ähnliche statistische Eigenschaften haben, und Initialisierungsdaten kann man aus den Zustandsvariablen in vorherigen Blocks erhalten, statt sie in jedem Block zu übertragen. Abgesehen von der Zweidimensionalität der Filterung und der Blockstruktur, sind das Codierungsschema und sein inverses Decodierungsschema dem zuvor beschrieben eindimensionalen Fall weitgehend ähnlich, wenn auch i ¬ Bildanwendungen die typischen PCM-Wortlängen kürzer sind als bei Audio hoher Qualität – typischerweise betragen sie 8 bis 12 Bits vor der Codierung.
  • Man wird im allgemeinen bestrebt sein, Codierfilter so zu produzieren, daß der Filter
    Figure 00630001
    einen zweidimensionalen Frequenzgang hat, dessen allgemeine Tendenz annähernd invers zum zweidimensionalen Spektralinhalt des zu codierenden Signals ist, so daß das codierte Ausgangssignal ein zweidimensionales Spektrum hat, das einem weißen viel näher kommt.
  • Im allgemeinen ist es im Codierer erforderlich, daß
    Figure 00630002
    stabil ist, und höchst wünschenswert, daß ihre Inverse
    Figure 00630003
    ebenfalls stabil ist. In der obengenannten Literaturquelle Shanks & Treitel steht auf Seite 137, daß ein Filter 1 + a10z1 –1 + a01z2 –1 + a11z1 –1z2 –1 eine stabile Inverse hat, wenn und nur wenn |a01| ≤ 1, |1 + a01| > |a10 + a11| und |1 – a01| > |a10 – a11|.
  • Shanks & Treitel geben auch allgemeine Verfahren zur Bewertung zweidimensionaler Filterstabilität an. Von einem praktischen Standpunkt aus ist jedoch ein brauchbares numerisches Kriterium für einen stabilen Filter der Form "1 + Terme mit Verzögerung in mindestens einer Achsenrichtung", der eine stabile Inverse hat, daß der in jeder Achsenrichtung durch Integration bis zur Nyquist-Frequenz berechnete Mittelwert des Logarithmus seiner zwei- (oder n-) dimensionalen Energie-Spektralempfindlichkeit gleich Null ist. Dies ist das Analogon zum angeführten eindimensionalen Ergebnis aus der obengenannten Literaturquelle Gerzon und Craven. Deswegen ergibt eine Anhebung über einen Teil des Raumfrequenzbereichs eine ausgleichende mittlere Absenkung über den Rest des Raumfrequenzbereichs.
  • In einem typischen, einige Details enthaltenden Bildblock wurde festgestellt, daß das Bildspektrum bei niedrigen Raumfrequenzen hohe Energie hat, aber daß die Energie ab einer ziemlich niedrigen Raumfrequenz, die typischerweise etwa ein Zehntel der Nyquist-Frequenz sein kann, in allen Raumrichtungen mit etwa 6 dB pro Oktave abnimmt.
  • In jedem Block kann, wegen der typischen Ausrichtung von Details in diesem Block, die Abnahme hoher Raumfrequenzen in manchen Raumrichtungen geringer als in anderen ausfallen. Die bei der Codierung durchgeführte ideale Raumfilterung wird also typischerweise so gewählt werden, daß sie niedrige Raumfrequenzen dämpft und hohe Raumfrequenzen um etwa 6 dB pro Oktave anhebt, und zwar mit einer höheren Anhebung hoher Frequenzen in der Richtung mit der größten Absenkung der Spektralenergie bei hohen Frequenzen. Obwohl zwecks einer bequemen Implementierung eine breite Palette von Codier- und inversen Decodierfiltern verwendet werden kann, kann es erwünscht sein, den Filter für die Codierung durch Implementieren einer kleinen Anzahl von Codierfiltern entsprechend verschiedenen Graden an feinen Details in einem Block auszuwählen und denjenigen, welcher die niedrigste mittlere Ausgangsamplitude oder Ausgangsenergie in diesem Block ergibt, auszuwählen. Alternativ können Messungen des Spektrums im Block, die vielleicht durch Betrachten der Größenordnung der Koeffizienten der zweidimensionalen DCT (diskrete Cosinustransformation) im Block erzielt wurden, verwendet werden, um den bevorzugten Codierfilter für diesen Block zu schätzen. Bei zusammenhängenden Bildkomponenten wie Farbkomponenten kann die Datenrate durch Verwendung der verlustfreien Mehrkanal-Codierverfahren wie der oben bezugnehmend auf 22 bis 26 beschriebenen verlustfreien n × n-Matrix-Quantisierer weiter reduziert werden. Zum Beispiel kann ein Bild in Form roter, grüner und blauer Komponenten mittels verlustfreier Matrizierung verlustfrei in eine Form matriziert werden, die zwei Farbdifferenz- oder Chromasignale und vielleicht ein Helligkeitssignal enthält, um die Datenrate zu reduzieren, da Farbdifferenzsignale im allgemeinen eine geringere Energie haben und bei einer geringeren Datenrate codierbar sind. Solche verlustfreie Farbmatrizierung kann anpaßbar Block für Block erfolgen, um für diesen Block spezifische Farbredundanzen auszunutzen. Die Achsen, längs derer der Ausgang eines solchen 3 × 3-Matrix-Quantisierers codiert, können ausgewählt werden, um die Hauptwert-Eigenvektorachsen für diesen Block des Farbbildes nach Entfernung der Gleichspannungskomponenten anzunähern. Solche Achsen werden in W. K. Pratt, "Digital Image Processing", Wiley-Interscience, New York, 1978, Seiten 681–685, und in W. K. Pratt, "Spatial Transform Coding of Color Images", IEEE Trans. Commun. Tech., Vol. COM-19 (1971), Seiten 980–982, unter dem Namen der Karhunen-Loeve-Transformation, welche die 3 Farbbilder dekorreliert, behandelt.
  • Auf ähnliche Weisen kann die Erfindung auf dreidimensionale Wellenformsignale wie bewegte Bilder oder Videobilder, wo die dritte Achse die Zeit ist und wo z3 –1 eine Verzögerung zwischen Einzelbildern eines Bildes implementiert, angewandt werden. Eine solche verlustfreie Prädiktionscodierung bewegter Bilder kann Bewegungsverfolgung für bewegte Bilder enthalten, wodurch man mittels Kreuzkorrelation oder anderer bekannter Verfahren denjenigen Bildverschiebungsvektor ermittelt, welcher am besten zu den aufeinanderfolgenden Einzelbildern des Bildes für einen bestimmten Datenblock paßt und z3 –1 die Verzögerung zwischen entsprechend verschobenen Blocks aufeinanderfolgender Einzelbilder darstellen läßt. Codierfilter, die solche Verschiebungsvektoren in der dritten (Zeit-) Dimension verwenden, werden eine niedrigere Rate der verlustfreien Codierung für bewegte Bilder ergeben.
  • Autodither
  • Die Architektur in 6a kann in einem anderen Kontext als Datenraten-Reduzierung verwendet werden, zum Beispiel um einen Fachfilter zu bewirken, der das subjektive Frequenzgleichgewicht des übertragenen Signals dergestalt verändert, daß der Hörer mit einem geeigneten inversen Filter (6b) das ursprüngliche Signal genau wiederherstellen kann. In diesem Fall wird jedoch der Hörer, der den inversen Filter nicht hat, nachteilige akustische Effekte vom ungeditherten Quantisierer in 6a erleiden.
  • Um diesem Mangel beizukommen, kann man unter Verwendung der Architektur in 27a, welche sehr ähnlich zu 6a ist, bei der aber direkt vor dem Quantisierer ein Autodither-Signal addiert wird, übertragen. Der entsprechende inverse Prozeß ist in 27b dargestellt. Die Theorie des Autodither wird in der internationalen Patentanmeldung PCT/GB 93/01644 und ferner im Aufsatz "Compatible Improvement of 16-Bit Systems Using Subtractive Dither" von P. G. Craven und M. A. Gerzon, Vorabdruck 3356 der 93. Tagung der Audio Engineering Society, San Francisco (Oktober 1992) erklärt.
  • Der mit "Autodither-Generator" bezeichnete Block in 27 verweist auf die Kaskade aus "Pufferspeicher" und "Verweistabelle" wie in 7 bis 10 der obengenannten Patentschrift gezeigt oder jedes fortschrittlicheren oder allgemeineren Autodither-Generators wie in diesen oder anderen Literaturquellen behandelt. Beachten Sie, daß der Autodither-Generator vermutlich eine Verzögerung von mindestens einem Abtastwert enthält, so daß auch die Rückkopplungsschleife in 27a der Patentschrift ausführbar ist.
  • Um die Möglichkeit verschiedenen Rundungsverhaltens auf verschiedenen Hardware-Plattformen zu verhindern, sollte das Autodither-Signal vorzugsweise als ein Signal endlicher Genauigkeit mit einer Schrittweite Ga erzeugt werden, und wenn die Filter A und B in 6a FIR-Filter mit Koeffizienten endlicher Genauigkeit sind und folglich einen Ausgang mit Schrittweite Gf erzeugen, wäre es vorteilhaft, das Verhältnis Ga : Gf so zu wählen, daß es ein einfaches Verhältnis ist. Zum Beispiel kann Ga ein Vielfaches oder ein Untervielfaches von Gf sein oder kann Ga gleich Gf sein.
  • Zum Vorteil des Hörers, der möglicherweise analoge Rückentzerrung verwendet, kann der verlustfreie Vorverzerrer in 16a durch das Addieren von Autodither ähnlich verbessert werden. Die entsprechende verlustfreie Rückentzerrung in 16b muß dann das Autodither-Signal subtrahieren.
  • Ebenso kann die Architektur in 23a verwendet werden, um eine Matrix mit psychoakustisch wünschenswerten Eigenschaften zu implementieren, um zum Beispiel, für kommerzielle Zwecke, optimale Ergebnisse für einen Hörer mit Lautsprechern, welche anders angeordnet sind als die bei Herstellung der Master-Aufnahme vermutlich verwendete Anordnung, zu erzielen oder um vom "Ambisonic B-Format" in für den Hörer zuhause geeignete Lautsprechereinspeisungen umzuwandeln. In diesem Fall mag der anspruchsvollere Hörer die zu 23b inverse Verarbeitung zu verwenden wünschen, um die ursprüngliche Master-Aufnahme genau wiederzuherstellen. Noch einmal wird der normale Hörer ungedithertes Quantisierungsrauschen von den Quantisierern hören, und dies kann vermieden werden durch Addieren eines Autodither-Signals vor jedem Quantisierer, welches vom anspruchsvollen Hörer subtrahiert werden kann, wie oben bezugnehmend auf 27 für den Fachfilter erläutert wurde.
  • Varianten der Grundidee sind möglich, zum Beispiel kann im Fall des primitiven Matrix-Quantisierers in 22a das Autodither-Signal vom AKTUELLEN Wert der unverarbeiteten Kanäle sowie von den vorherigen Abtastwerten aller Kanäle abhängen. Im Fall einer Master-Aufnahme im "Ambisonic B-Format" kann es wünschenswert sein, beide Fachfilter und Matrizen in Kaskade zu verwenden, um für kommerzielle Zwecke Lautsprechereinspeisungen abzuleiten, und in diesem Fall kann Autodither zu beiden Prozessen addiert werden. Der inverse Prozeß besteht dann aus dem Invertieren der einzelnen kaskadierten Prozesse in umgekehrter Reihenfolge, wobei in jedem Fall die entsprechende Addition/Subtraktion des Autodither-Signals erfolgt.
  • Frühere Anwendungen von Autodither gingen davon aus, daß der Ausgang des Quantisierers direkt übertragen wird, und daher wird das Autodither-Signal in Abhängigkeit von vorherigen Werten des übertragenen Signals abgeleitet. Im Fall kaskadierter verlustfreier Prozessoren hat man die Wahl, ob das Autodither für jeden Prozeß vom Ausgang dieses Prozesses oder vom Ausgang eines nachfolgenden Prozesses (zum Beispiel eines letzten Prozesses, dessen Ausgang das übertragene Signal ist) abgeleitet wird. Natürlich muß der Decodierprozessor das entsprechende Autodither-Signal vom entsprechenden Punkt in der umgekehrten Kaskade ableiten.
  • Ein anderes nützliches Element ist die verlusttreie Verstärkungsfaktor-Änderung, um einen Verstärkungsfaktor G ≥ 1 auf eine genau invertierbare Weise zu implementieren. Dieser kann mit verlustfreien Matrizen und verlustfreien Fachfiltern kaskadiert werden, um aus einer "Ambisonic B-Format"-Master-Aufnahme Lautsprechereinspeisungen verlusttrei abzuleiten, und hat auch viele andere Verwendungsmöglichkeiten.
  • Eine Autodither enthaltende Form von verlustfreier Verstärkungsfaktor-Änderung ist in 28a dargestellt, der entsprechende Decodierer in 28b. In 28a unterliegt das ganzzahlige Eingangssignal x einem Verstärkungsfaktor G ≥ Einheit. Ein Autodither-Signal wird addiert und das Ergebnis wird quantisiert. Wenn der Quantisierer ein Rundungsquantisierer (der auf die nächste ganze Zahl rundet) ist und wenn D das Autodither-Signal ist, dann gilt g.x + d – 0,5 ≤ y ≤ g.x + d + 0,5
  • Der inverse Prozessor in 28b subtrahiert das Dither-Signal y und multipliziert mit dem inversen Verstärkungsfaktor 1/g, um das durch w = (y – d)/ggegebene Signal w zu bilden, welches in den Quantisierer gespeist wird, um den Ausgang z zu bilden.
  • Es folgt, daß x – 0,5/g ≤ w ≤ x + 0,5/gund daher muß z, wenn g ≥ 1 und der Quantisierer auf die nächste ganze Zahl rundet, gleich x sein.

Claims (8)

  1. Matrix-Quantisierer zur Quantisierung von Wellenformdaten, die Signale für zwei oder mehr Kanäle umfassen, wobei der Matrix-Quantisierer aufweist: einen ersten Eingang und einen oder mehrere zweite Eingänge, wobei der erste Eingang und der eine oder die mehreren zweiten Eingänge jeweils ein Signal mit ganzzahligem Wert für einen jeweiligen Kanal empfangen; einen Einzelkanal-Quantisierer mit einem Quantisierereingang, der mit dem einen oder den mehreren zweiten Eingängen verbunden ist, und mit einem Quantisiererausgang; einen ersten Ausgang, der mit dem Quantisiererausgang gekoppelt ist und ein Signal liefert, welches eine lineare Kombination des an dem ersten Eingang empfangenen Signals und einer Quantisierung jedes an einem jeweiligen zweiten Eingang empfangenen Signals darstellt; und einen oder mehrere zweite Ausgänge, die jeweils mit einem jeweiligen zweiten Eingang verbunden sind.
  2. Matrix-Quantisierer nach Anspruch 1, der einen Summierungsknoten umfaßt, wobei der Summierungsknoten einen mit dem Quantisierereingang gekoppelten Ausgang aufweist und Eingänge aufweist, die mit dem ersten Eingang und dem einen oder den mehreren zweiten Eingängen verbunden sind derart, daß der Quantisierereingang auf eine Summe oder Differenz des an dem ersten Eingang empfangenen Signals und einer linearen Kombination des einen oder der mehreren an dem einen oder den mehreren zweiten Eingängen empfangenen Signale reagiert.
  3. Matrix-Quantisierer nach Anspruch 1, der einen Summierungsknoten umfaßt, wobei der Summierungsknoten Eingänge, die mit dem Quantisiererausgang und dem ersten Eingang verbunden sind, und einen mit dem ersten Ausgang verbundenen Ausgang besitzt.
  4. Matrix-Quantisierer nach einem der Ansprüche 1 bis 3, bei dem der Quantisierereingang ein Autodither-Signal empfängt, das eine Folge von Abtastwerten umfaßt, wobei ein jeweiliger Abtastwert von einem oder mehreren vorherigen Abtastwerten eines Signals an dem Quantisiererausgang und/oder von einem oder mehreren vorherigen Abtastwerten eines Signals an dem Quantisierereingang abgeleitet ist.
  5. Vorrichtung umfassend eine Kaskade mehrerer Matrix-Quantisierer, wobei jeder jeweilige Martix-Quantisierer einem der Ansprüche 1 bis 4 entspricht.
  6. Vorrichtung nach Anspruch 5 zur Quantisierung von Wellenformdaten, die ein Signal für jeden von N Kanälen umfassen, wobei die Kaskade von Matrix-Quantisierern eine Gruppe von N Signalwegen liefert und die Matrix-Quantisierer in der Kaskade miteinander gekoppelt sind derart, daß jeder der N Signalwege den ersten Eingang wenigstens eines Matrix-Quantisierers enthält.
  7. Vorrichtung nach Anspruch 5 zur Quantisierung von Wellenformdaten, die ein Signal für jeden von N Kanälen umfassen, wobei die Kaskade von Matrix-Quantisierern eine Gruppe von N Signalwegen bietet und die Matrix-Quantisierer in der Kaskade so miteinander gekoppelt sind, daß jeder der N Signalwege den ersten Eingang von nur einem Matrix-Quantisierer enthält.
  8. Mehrkanal-Codiersystem, umfassen: einen Mehrkanal-Codierer, der einen ersten Matrix-Quantisierer nach einem der Ansprüche 1 bis 4 aufweist, wobei die Linearkombination in dem ersten Matrix-Quantisierer einschließt, daß jedes an einem zweiten Eingang des ersten Matrix-Quantisierer empfangene Signal mit einem jeweiligen ersten Koeffizienten gewichtet wird; und einen Mehrkanal-Decodierer, der mit dem Mehrkanal-Codierer gekoppelt ist und einen zweiten Matrix-Quantisierer nach einem der Ansprüche 1 bis 4 aufweist, wobei die Linearkombination in dem zweiten Matrix-Quantisierer einschließt, daß jedes an einem zweiten Eingang des zweiten Matrix-Quantisierers empfangene Signal mit einem jeweiligen zweiten Koeffizienten gewichtet wird, der das Negative des jeweiligen ersten Koeffizienten ist.
DE69629369T 1995-05-15 1996-05-15 Verfahren zum kodieren wellenförmiger daten Expired - Lifetime DE69629369T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB9509831.5A GB9509831D0 (en) 1995-05-15 1995-05-15 Lossless coding method for waveform data
GB9509831 1995-05-15
PCT/GB1996/001164 WO1996037048A2 (en) 1995-05-15 1996-05-15 Lossless coding method for waveform data

Publications (2)

Publication Number Publication Date
DE69629369D1 DE69629369D1 (de) 2003-09-11
DE69629369T2 true DE69629369T2 (de) 2004-06-24

Family

ID=10774504

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69629369T Expired - Lifetime DE69629369T2 (de) 1995-05-15 1996-05-15 Verfahren zum kodieren wellenförmiger daten

Country Status (9)

Country Link
US (3) US6664913B1 (de)
EP (1) EP0826274B1 (de)
JP (1) JP3715653B2 (de)
AU (1) AU5768996A (de)
CA (1) CA2218893C (de)
DE (1) DE69629369T2 (de)
ES (1) ES2203694T3 (de)
GB (1) GB9509831D0 (de)
WO (1) WO1996037048A2 (de)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925127B1 (en) * 1997-07-22 2005-08-02 Ericsson Inc. Method and apparatus for subtracting multiple rays of multiple interfering received signals
AU2005204293B2 (en) * 1999-04-07 2008-07-10 Dolby Laboratories Licensing Corporation Matrix improvements to lossless encoding and decoding
US6611212B1 (en) * 1999-04-07 2003-08-26 Dolby Laboratories Licensing Corp. Matrix improvements to lossless encoding and decoding
GB2350984B (en) * 1999-06-11 2003-10-15 Mitel Corp Synchronisation method and system
DE19959156C2 (de) * 1999-12-08 2002-01-31 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verarbeiten eines zu codierenden Stereoaudiosignals
SE0001727L (sv) * 2000-05-10 2001-11-11 Global Ip Sound Ab Överföring över paketförmedlade nät
SE522261C2 (sv) * 2000-05-10 2004-01-27 Global Ip Sound Ab Kodning och avkodning av en digital signal
US6873654B1 (en) * 2000-05-16 2005-03-29 Redrock Semiconductor, Inc Method and system for predictive control for live streaming video/audio media
WO2002031995A2 (en) * 2000-10-06 2002-04-18 Ericsson Inc Method and apparatus for subtracting multiple rays of multiple interfering received signals
JP4506039B2 (ja) * 2001-06-15 2010-07-21 ソニー株式会社 符号化装置及び方法、復号装置及び方法、並びに符号化プログラム及び復号プログラム
US7333929B1 (en) 2001-09-13 2008-02-19 Chmounk Dmitri V Modular scalable compressed audio data stream
US7106366B2 (en) * 2001-12-19 2006-09-12 Eastman Kodak Company Image capture system incorporating metadata to facilitate transcoding
ATE398363T1 (de) * 2002-01-29 2008-07-15 Nokia Corp Datentransferverfahren in einem funksystem
WO2003077529A2 (en) * 2002-03-04 2003-09-18 Stmicroelectronics, N.V. Coder apparatus for resonant power conversion and method
US7924937B2 (en) 2002-03-04 2011-04-12 Stmicroelectronics N.V. Resonant power converter for radio frequency transmission and method
US7225135B2 (en) * 2002-04-05 2007-05-29 Lectrosonics, Inc. Signal-predictive audio transmission system
WO2004006121A2 (en) * 2002-07-02 2004-01-15 Koninklijke Philips Electronics N.V. Method and arrangement for processing a signal using a digital processor having a given word length
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7742926B2 (en) * 2003-04-18 2010-06-22 Realnetworks, Inc. Digital audio signal compression method and apparatus
CN100493199C (zh) * 2003-06-16 2009-05-27 松下电器产业株式会社 编码装置、编码方法和码本
CN1826730A (zh) * 2003-07-24 2006-08-30 皇家飞利浦电子股份有限公司 具有改进无损压缩和高保真度音频优良音频品质的噪声-整形装置和方法
DE10345995B4 (de) 2003-10-02 2005-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten
US7715480B2 (en) * 2003-10-17 2010-05-11 Mitsubishi Electric Research Laboratories, Inc. Video encoding with motion-selective wavelet transform
DE20318967U1 (de) * 2003-12-06 2004-03-11 Eads Astrium Gmbh Unterdrückung von Störungen bei digitaler Frequenzsynthese, insbesondere in einer Zeitfrequenz einer Navigationssignal-Sendeeinrichtung
US20050180522A1 (en) * 2004-02-13 2005-08-18 Carroll Thomas L. Method and system for high bandwidth-efficiency communications using signals having positive entropy
DE102004007185B3 (de) * 2004-02-13 2005-06-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Prädiktives Codierungsschema
GB2398191B (en) * 2004-03-10 2004-12-22 David Asher Jaffa Adaptive quantiser
US7392195B2 (en) * 2004-03-25 2008-06-24 Dts, Inc. Lossless multi-channel audio codec
US7424163B1 (en) * 2004-07-13 2008-09-09 Itt Manufacturing Enterprises, Inc. System and method for lossless image compression
US7890323B2 (en) * 2004-07-28 2011-02-15 The University Of Tokushima Digital filtering method, digital filtering equipment, digital filtering program, and recording medium and recorded device which are readable on computer
US7930184B2 (en) * 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
US20060104353A1 (en) * 2004-11-16 2006-05-18 Johnson Andrew W Video signal preprocessing to minimize prediction error
ES2336824T3 (es) * 2005-03-10 2010-04-16 Qualcomm Incorporated Arquitectura de decodificador para gestion de errores optimizada en flujo continuo multimedia.
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7574057B1 (en) * 2005-03-23 2009-08-11 Lockheed Martin Corporation Eigen-based method for covariance data compression
US7548853B2 (en) * 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US8630727B2 (en) * 2005-08-26 2014-01-14 Endless Analog, Inc Closed loop analog signal processor (“CLASP”) system
US9070408B2 (en) 2005-08-26 2015-06-30 Endless Analog, Inc Closed loop analog signal processor (“CLASP”) system
US7751916B2 (en) * 2005-08-26 2010-07-06 Endless Analog, Inc. Closed loop analog signal processor (“CLASP”) system
US7576606B2 (en) * 2007-07-25 2009-08-18 D2Audio Corporation Digital PWM amplifier having a low delay corrector
US7756592B2 (en) * 2005-12-30 2010-07-13 Peter Craven Enhanced feedback for plant control
EP1988635A1 (de) * 2006-02-14 2008-11-05 Matsushita Electric Industrial Co., Ltd. D/a-umsetzer
US8073283B2 (en) * 2006-04-07 2011-12-06 Mitsubishi Electric Corporation Noise elimination apparatus and noise elimination method
JP4940888B2 (ja) * 2006-10-23 2012-05-30 ソニー株式会社 オーディオ信号伸張圧縮装置及び方法
US8761248B2 (en) * 2006-11-28 2014-06-24 Motorola Mobility Llc Method and system for intelligent video adaptation
US7728658B2 (en) * 2007-07-25 2010-06-01 D2Audio Corporation Low-noise, low-distortion digital PWM amplifier
US8239210B2 (en) * 2007-12-19 2012-08-07 Dts, Inc. Lossless multi-channel audio codec
US20090164223A1 (en) * 2007-12-19 2009-06-25 Dts, Inc. Lossless multi-channel audio codec
WO2009086174A1 (en) 2007-12-21 2009-07-09 Srs Labs, Inc. System for adjusting perceived loudness of audio signals
WO2009108776A1 (en) * 2008-02-29 2009-09-03 California Institute Of Technology Method and components for simultaneous processing of multiple functions
US8975922B2 (en) 2008-02-29 2015-03-10 California Institute Of Technology Method and apparatus for simultaneous processing of multiple functions
US8386271B2 (en) * 2008-03-25 2013-02-26 Microsoft Corporation Lossless and near lossless scalable audio codec
TWI377521B (en) * 2008-05-27 2012-11-21 Novatek Microelectronics Corp Image processing apparatus and method
US20130142520A1 (en) * 2008-06-30 2013-06-06 Chuan Xie Anti-causal pre-emphasis for high speed optical transmission
GB2466671B (en) * 2009-01-06 2013-03-27 Skype Speech encoding
GB2466675B (en) * 2009-01-06 2013-03-06 Skype Speech coding
GB2466670B (en) * 2009-01-06 2012-11-14 Skype Speech encoding
GB2466673B (en) 2009-01-06 2012-11-07 Skype Quantization
CN101615911B (zh) * 2009-05-12 2010-12-08 华为技术有限公司 一种编解码方法和装置
US9245529B2 (en) * 2009-06-18 2016-01-26 Texas Instruments Incorporated Adaptive encoding of a digital signal with one or more missing values
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
US8538042B2 (en) 2009-08-11 2013-09-17 Dts Llc System for increasing perceived loudness of speakers
US8374858B2 (en) * 2010-03-09 2013-02-12 Dts, Inc. Scalable lossless audio codec and authoring tool
KR101676477B1 (ko) * 2010-07-21 2016-11-15 삼성전자주식회사 컨텍스트 기반의 무손실 부호화 장치 및 방법, 그리고 복호화 장치 및 방법
JP5863830B2 (ja) 2011-02-16 2016-02-17 ドルビー ラボラトリーズ ライセンシング コーポレイション フィルタ係数を生成してフィルタを設定する方法、エンコーダ及びデコーダ
US9171549B2 (en) 2011-04-08 2015-10-27 Dolby Laboratories Licensing Corporation Automatic configuration of metadata for use in mixing audio programs from two encoded bitstreams
US20120331176A1 (en) * 2011-06-24 2012-12-27 Exar Corporation Method for transport and recovery of client clocking across asynchronous server networks
US20140214431A1 (en) 2011-07-01 2014-07-31 Dolby Laboratories Licensing Corporation Sample rate scalable lossless audio coding
CN102571518B (zh) * 2011-12-19 2015-01-21 西安交通大学 一种基于现场总线的电子式互感器数据传输方法
US8798129B2 (en) * 2012-01-04 2014-08-05 Lsi Corporation Biquad infinite impulse response system transformation
US9312829B2 (en) * 2012-04-12 2016-04-12 Dts Llc System for adjusting loudness of audio signals in real time
WO2013166158A1 (en) 2012-05-01 2013-11-07 Lisnr, Llc Systems and methods for content delivery and management
US11452153B2 (en) 2012-05-01 2022-09-20 Lisnr, Inc. Pairing and gateway connection using sonic tones
DE112013002793T5 (de) 2012-06-05 2015-04-09 Powerwave Technologies S.A.R.L. Rekonfigurierbare FIR-Filter varibler Länge zur Optimierung der Leistung von Digital-Repeatern
EP2891149A1 (de) 2012-08-31 2015-07-08 Dolby Laboratories Licensing Corporation Verarbeitung von audioobjekten in codierten haupt- und nebenaudiosignalen
US9548056B2 (en) 2012-12-19 2017-01-17 Dolby International Ab Signal adaptive FIR/IIR predictors for minimizing entropy
US9383766B2 (en) 2013-01-09 2016-07-05 International Business Machines Corporation Chip performance monitoring system and method
KR102072365B1 (ko) 2013-04-05 2020-02-03 돌비 인터네셔널 에이비 고급 양자화기
ES2934591T3 (es) * 2013-09-13 2023-02-23 Samsung Electronics Co Ltd Procedimiento de codificación sin pérdidas
US9338552B2 (en) 2014-05-09 2016-05-10 Trifield Ip, Llc Coinciding low and high frequency localization panning
BR112017007814A2 (pt) * 2014-10-15 2017-12-19 Lisnr Inc tons de sinalização inaudíveis
US9501717B1 (en) * 2015-08-10 2016-11-22 Mitsubishi Electric Research Laboratories, Inc. Method and system for coding signals using distributed coding and non-monotonic quantization
GB2547877B (en) 2015-12-21 2019-08-14 Graham Craven Peter Lossless bandsplitting and bandjoining using allpass filters
US10204187B1 (en) * 2015-12-28 2019-02-12 Cadence Design Systems, Inc. Method and system for implementing data reduction for waveform data
WO2017132366A1 (en) 2016-01-26 2017-08-03 Dolby Laboratories Licensing Corporation Adaptive quantization
US10114916B1 (en) 2016-06-30 2018-10-30 Cadence Design Systems, Inc. Method and system to accelerate visualization of waveform data
US10455250B2 (en) * 2017-05-30 2019-10-22 Mitsubishi Electric Research Laboratories, Inc. Method and system for distributed coding of images
CN107291862A (zh) * 2017-06-12 2017-10-24 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质及电子设备
JP6932439B2 (ja) * 2017-07-11 2021-09-08 日本無線株式会社 デジタル信号処理装置
US11189295B2 (en) 2017-09-28 2021-11-30 Lisnr, Inc. High bandwidth sonic tone generation
DE102018112215B3 (de) * 2018-04-30 2019-07-25 Basler Ag Quantisiererbestimmung, computerlesbares Medium und Vorrichtung, die mindestens zwei Quantisierer implementiert
US11528176B2 (en) * 2019-09-13 2022-12-13 Samsung Electronics Co., Ltd Apparatus and method for symbol time recovery using feedback loop
US20210175901A1 (en) * 2021-02-23 2021-06-10 Intel Corporation Hybrid ldpc decoder with mixed precision components
US11677480B2 (en) * 2021-04-13 2023-06-13 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for symbol timing recovery based on machine learning
US20230362541A1 (en) * 2022-05-03 2023-11-09 Infineon Technologies Austria Ag Measurement-Based Loudspeaker Excursion Limiting
GB2624686A (en) 2022-11-25 2024-05-29 Lenbrook Industries Ltd Improvements to audio coding

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3569952A (en) * 1967-12-12 1971-03-09 Gen Electric Time division multiplex system and a logarithmic encoder for high speed multiplex operation
DE1762877A1 (de) * 1968-09-14 1970-11-12 Standard Elek K Lorenz Ag Analog-Digital-Wandler mit beliebiger Kennlinie fuer n Bit,insbesondere Coder fuer schnelle PCM
FR2039522A5 (de) * 1969-04-02 1971-01-15 Cit Alcatel
JPS493219B1 (de) * 1969-11-10 1974-01-25
US3795900A (en) * 1971-11-09 1974-03-05 Nasa Multifunction audio digitizer
BE793564A (fr) * 1971-12-30 1973-04-16 Western Electric Co Convertisseur analogique-numerique
US3909721A (en) 1972-01-31 1975-09-30 Signatron Signal processing system
US3937897A (en) * 1974-07-25 1976-02-10 North Electric Company Signal coding for telephone communication system
FR2441971A1 (fr) * 1978-11-17 1980-06-13 Trt Telecom Radio Electr Systeme de transmission utilisant la modulation differentielle par codage d'impulsions
JPS5730108A (en) * 1980-07-28 1982-02-18 Sony Corp Digital signal processing circuit
FR2515901A1 (fr) 1981-11-04 1983-05-06 Trt Telecom Radio Electr Systeme de transmission mic-differentiel avec prediction adaptative
JPH06101683B2 (ja) * 1983-03-14 1994-12-12 株式会社日立製作所 デイジタルアナログ変換装置
US4546342A (en) 1983-12-14 1985-10-08 Digital Recording Research Limited Partnership Data compression method and apparatus
JPS62152225A (ja) * 1985-12-26 1987-07-07 Canon Inc 予測符号化装置
JPS63211987A (ja) * 1987-02-27 1988-09-05 Sony Corp 予測符号化装置
US4882754A (en) 1987-08-25 1989-11-21 Digideck, Inc. Data compression system and method with buffer control
DE68927483T2 (de) 1988-02-29 1997-04-03 Sony Corp Verfahren und Einrichtung zur Digitalsignalverarbeitung
US4821119A (en) * 1988-05-04 1989-04-11 Bell Communications Research, Inc. Method and apparatus for low bit-rate interframe video coding
JP3151874B2 (ja) * 1991-02-26 2001-04-03 日本電気株式会社 音声パラメータ符号化方式および装置
JP3050934B2 (ja) 1991-03-22 2000-06-12 株式会社東芝 音声認識方式
JP3191457B2 (ja) * 1992-10-31 2001-07-23 ソニー株式会社 高能率符号化装置、ノイズスペクトル変更装置及び方法
CA2100729C (en) * 1993-07-16 2001-01-16 Simon Skierszkan Serial bit rate converter embedded in a switching matrix
AT403969B (de) * 1995-12-04 1998-07-27 Ericsson Schrack Aktiengesells Verfahren zur kompression eines analogen signals

Also Published As

Publication number Publication date
WO1996037048A3 (en) 1997-01-09
WO1996037048A2 (en) 1996-11-21
US6664913B1 (en) 2003-12-16
GB9509831D0 (en) 1995-07-05
EP0826274B1 (de) 2003-08-06
US6891482B2 (en) 2005-05-10
ES2203694T3 (es) 2004-04-16
CA2218893A1 (en) 1996-11-21
US6784812B2 (en) 2004-08-31
JP3715653B2 (ja) 2005-11-09
US20050030207A1 (en) 2005-02-10
AU5768996A (en) 1996-11-29
JPH11511299A (ja) 1999-09-28
EP0826274A2 (de) 1998-03-04
US20040125003A1 (en) 2004-07-01
CA2218893C (en) 2007-07-31
DE69629369D1 (de) 2003-09-11

Similar Documents

Publication Publication Date Title
DE69629369T2 (de) Verfahren zum kodieren wellenförmiger daten
DE69210689T2 (de) Kodierer/dekodierer für mehrdimensionale schallfelder
EP2022043B1 (de) Informationssignalcodierung
DE60317982T2 (de) Entropische Kodierung mittels Anpassung des Kodierungsmodus zwischen Niveau- und Lauflängenniveau-Modus
TWI515720B (zh) 壓縮數位化音訊信號之方法、解碼已編碼壓縮數位化音訊信號之方法、及機器可讀儲存媒體
DE69633633T2 (de) Mehrkanaliger prädiktiver subband-kodierer mit adaptiver, psychoakustischer bitzuweisung
CN101160726B (zh) 参数压缩单元和解码器以及相应的方法
DE69833834T2 (de) Skalierbares Audiokodier-und Dekodierverfahren und Gerät
DE60006953T2 (de) Matrizierung für die verlustfreie kodierung und dekodierung von mehrkanaligen audiosignalen
DE69738056T2 (de) Übertragung eines Bitstromsignals
DE69930848T2 (de) Skalierbarer audiokodierer und dekodierer
EP1495464B1 (de) Vorrichtung und verfahren zum codieren eines zeitdiskreten audiosignals und vorrichtung und verfahren zum decodieren von codierten audiodaten
DE10345995B4 (de) Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten
DE20321886U1 (de) Inverse Quantisierung für Audio
CN110459230B (zh) 产生hoa信号的混合的空间/系数域表示的方法和设备
EP1397799B1 (de) Verfahren und vorrichtung zum verarbeiten von zeitdiskreten audio-abtastwerten
JPH07336232A (ja) 情報符号化方法及び装置、情報復号化方法及び装置、並びに情報記録媒体
DE69932861T2 (de) Verfahren zur kodierung eines audiosignals mit einem qualitätswert für bit-zuordnung
JPH05227039A (ja) サブバンド符号器を有する符号化システム
DE68927927T2 (de) Kodierung von Audiosignalen unter Berücksichtigung der Wahrnehmbarkeit
EP1652309B1 (de) Verfahren und vorrichtung zur digitalisierung sowie zur datenkomprimierung analoger signale
DE10010849C1 (de) Vorrichtung und Verfahren zum Analysieren eines Analyse-Zeitsignals
Gerzon et al. Psychoacoustic Noise-Shaped Improvements in CD and Other Linear Digital Media
DE19742201C1 (de) Verfahren und Vorrichtung zum Codieren von Audiosignalen
JP3010663B2 (ja) ノイズシェーピング回路

Legal Events

Date Code Title Description
8364 No opposition during term of opposition