DE69006011T3 - Transformationscodierer, -decodierer und -codierer/decodierer mit niedriger bitrate für audio-anwendungen hoher qualität. - Google Patents

Transformationscodierer, -decodierer und -codierer/decodierer mit niedriger bitrate für audio-anwendungen hoher qualität. Download PDF

Info

Publication number
DE69006011T3
DE69006011T3 DE69006011T DE69006011T DE69006011T3 DE 69006011 T3 DE69006011 T3 DE 69006011T3 DE 69006011 T DE69006011 T DE 69006011T DE 69006011 T DE69006011 T DE 69006011T DE 69006011 T3 DE69006011 T3 DE 69006011T3
Authority
DE
Germany
Prior art keywords
subband
blocks
time domain
signal sample
bits
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
DE69006011T
Other languages
English (en)
Other versions
DE69006011D1 (de
DE69006011T2 (de
Inventor
Louis Dunn Millbrae FIELDER
Grant Allen Oakland DAVIDSON
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26973611&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69006011(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Publication of DE69006011D1 publication Critical patent/DE69006011D1/de
Publication of DE69006011T2 publication Critical patent/DE69006011T2/de
Application granted granted Critical
Publication of DE69006011T3 publication Critical patent/DE69006011T3/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1806Pulse code modulation systems for audio signals
    • G11B20/1809Pulse code modulation systems for audio signals by interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/66Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
    • H04B1/665Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission using psychoacoustic properties of the ear, e.g. masking effect

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Stereophonic System (AREA)

Description

  • Technisches Gebiet
  • Die Erfindung betrifft allgemein die digitale Signalverarbeitung von Audiosignalen, wie etwa Musik, mit hoher Qualität und niedriger Bitrate.
  • Stand der Technik
  • Unter den auf dem Gebiet der Signalverarbeitung Tätigen besteht beträchtliches Interesse daran, Verfahren zu finden, welche die Menge an Information minimieren, die erforderlich ist, um ein gegebenes Signal adäquat zu repräsentieren. Durch Verringerung der notwendigen Information können Signale über Kommunikationskanäle mit niedriger Bandbreite übertragen werden oder auf kleinerem Raum gespeichert werden. Im Hinblick auf digitale Techniken ist minimaler Informationsbedarf synonym mit minimalem binären Bitbedart.
  • Zwei Faktoren begrenzen die Verringerung des Bitbedarfs:
    • (1) Ein Signal der Bandbreite W kann durch eine Reihe von bei einer Frequenz von nicht weniger als 2"W abgenommenen Abtastwerten exakt repräsentiert werden. Dies ist die Nyquist-Abtastrate. Ein Signal mit einer Länge von T Sekunden und einer Bandbreite W erfordert daher wenigstens 2"W"T Abtastwerte zur genauen Darstellung.
    • (2) Eine Quantisierung von Signalabtastwerten, die jeden Wert eines kontinuierlichen Wertebereichs annehmen können, führt zu Ungenauigkeiten bei der Darstellung des Signals, die der Quantisierungsschrittgröße oder -auflösung proportional sind. Diese Ungenauigkeiten werden Quantisierungsfehler genannt. Diese Fehler sind umgekehrt proportional der Anzahl von Bits, die zur Darstellung der Signalabtastwertquantisierung zur Verfügung stehen.
  • Wenn Codierungstechniken auf die gesamte Bandbreite angewendet werden, werden alle Quantisierungsfehler, die sich selbst als Rauschen manifestieren, gleichförmig über die Bandbreite verstreut. Techniken, die auf ausgewählte Teile des Spektrums angewendet werden können, können die spektrale Streuung des Quantisierungsrauschens begrenzen. Zwei dieser Techniken sind die Teilbandcodierung und die Transformationscodierung. Durch Einsatz dieser Techniken können Quantisierungsfehler in speziellen Frequenzbändern, in denen das Quantisierungsrauschen besonders störend ist, dadurch verringert werden, daß dieses Band mit einer kleineren Schrittgröße quantisiert wird.
  • Eine Teilbandcodierung kann mit Hilfe einer Bank digitaler Bandpaßfilter ausgeführt werden. Eine Transformationscodierung kann mittels jeder von etlichen Zeitbereich-zu-Frequenzbereich-Transformationen vorgenommen werden, die eine Bank digitaler Bandpaßfilter simulieren. Obwohl Transformationen leichter zu realisieren sind und weniger Rechenleistung und Hardware erfordern als digitale Filter, haben sie eine geringere Gestaltungsflexibilität in dem Sinne, daß jedes Bandpaßfilter-"Frequenzbin", das von einem Transformationskoeffizienten repräsentiert wird, eine gleichförmige Bandbreite aufweist. Im Gegensatz dazu kann eine Bank digitaler Bandpaßfilter so ausgelegt werden, daß sie verschiedene Teilband-Bandbreiten aufweisen. Transformationskoeffizienten können dagegen zu Gruppen zusammengefaßt werden, um "Teilbänder" zu bilden, die Bandbreiten aufweisen, die Vielfache einer einzelnen Transformationskoeffizientenbandbreite sind. Der Begriff "Teilband" wird hier als Verweis auf ausgewählte Teile der Gesamtbandbreite verwendet, ob dies durch einen Teilbandcoierer oder einen Transformationscoder implementiert ist. Ein durch einen Transformationscoder implementiertes "Teilband" ist als ein Satz von einem oder mehreren benachbarten Transformationskoeffizienten oder Frequenzbins definiert. Die Bandbreite eines Transformationscoder-Frequenzbins hängt von der Abtastrate des Coders und von der Anzahl von Abtastwerten in jedem einzelnen Abtastwertblock (der Transformationslänge) ab.
  • Zwei Charakteristiken von Teilband-Bandpaßfiltern sind für die Leistungsfähigkeit von Musiksignalverarbeitungssystemen hoher Qualität besonders kritisch. Die erste ist die Bandbreite der Bereiche zwischen dem Filterdurchlaßband und den Sperrbändern (die Übergangsbänder). Die zweite ist der Abschwächungspegel in den Sperrbändern. In der hier benutzten Art bedeutet das Maß der Filter-"Selektivität" die Steilheit der Filterkennlinie innerhalb der Übergangsbänder (Steilheit der Übergangsbandflanken) und den Pegel der Abschwächung in den Sperrbändern (Tiefe der Sperrbandunterdrückung).
  • Diese beiden Filtercharakteristiken sind deshalb kritisch, weil das menschliche Ohr Frequenzanalyseeigenschaften zeigt, die denen von sehr asymmetrischen, abgestimmten Filtern mit variablen Mittenfrequenzen ähneln. Das Frequenzauflösungsvermögen der abgestimmten Filter des menschlichen Ohrs ändert sich mit der Frequenz über dem Audiospektrum. Das Ohr kann bei Frequenzen unterhalb etwa 500 Hz Signale voneinander unterscheiden, die in der Frequenz näher beieinanderliegen, wobei der Abstand jedoch mit zu den Grenzen der Hörbarkeit ansteigender Frequenz größer wird. Die effektive Bandbreite solch eines Gehörfilters wird als ein kritisches Band bezeichnet. Eine wichtige Qualität des kritischen Bandes ist, daß psychoakustische Maskierungseffekte innerhalb eines kritischen Bandes manifestiert sind – ein dominantes Signal innerhalb eines kritischen Bandes kann die Hörbarkeit anderer Signale irgendwo innerhalb des kritischen Bandes unterdrücken. Signale bei Frequenzen außerhalb des kritischen Bandes werden nicht so stark maskiert. Siehe hierzu allgemein das Audio Engineering Handbook, K. Blair Benson ed., McGraw-Hill, San Francisco, 1988, Seiten 1.40–1.42 und 4.8–4.10.
  • Psychoakustische Maskierung wird durch Teilband- und Transformationscoder leichter bewirkt, wenn die Teilband-Bandbreite über das hörbare Spektrum etwa die Hälfte der kritischen Bandbreite des menschlichen Ohrs im selben Teil des Spektrums beträgt. Dies beruht darauf, daß die kritischen Bänder des menschlichen Ohrs variable Mittenfrequenzen aufweisen, die sich an die Gehörstimuli anpassen, während Teilband- und Transformationscoder typischerweise feste Teilbandmittenfrequenzen aufweisen. Zur Optimierung der Möglichkeit, psychoakustische Maskierungseffekte auszunutzen, sollten jegliche Verzerrungsprodukte, die von der Anwesenheit eines dominanten Sig nals herrühren, auf das das dominante Signal enthaltende Teilband begrenzt sein. Wenn die Teilband-Bandbreite die Hälfte oder weniger als die Hälfte des kritischen Bandes beträgt (und die Übergangsbandflanke ausreichend steil und die Sperrbandunterdrückung ausreichend tief sind), ist es wahrscheinlich, daß die effektivste Maskierung der unerwünschten Verzerrungsprodukte selbst für Signale auftritt, deren Frequenz nahe der Kante der Teilband-Durchlaßband-Bandbreite liegt. Wenn die Teilband-Bandbreite mehr als die Hälfte eines kritischen Bandes beträgt, besteht die Möglichkeit, daß das dominante Signal dazu führt, daß das kritische Band des Ohrs gegenüber dem Teilband des Coders versetzt wird, so daß einige der unerwünschten Verzerrungsprodukte außerhalb der kritischen Bandbreite des Ohrs nicht maskiert werden. Diese Effekte sind besonders störend bei niedrigen Frequenzen, wo das kritische Band des Ohrs schmäler ist.
  • Das Dokument WO 88101811 offenbart ein digitales Codierungsverfahren zur Übertragung und/oder Speicherung von akustischen Signalen, insbesondere Musiksignalen, bei dem ein Block von N Aufnahmewerten des akustischen Signals unter Verwendung einer Diskreten Cosinus-Transformation, einer TDAC-Transformation oder einer Schnellen-Fourier-Transformation zu einem Block von M Spektralkoeffizienten transformiert wird. Das Verfahren wählt eine anfängliche Quantisiererschrittgröße, setzt Entropiecodierung ein und wiederholt die Quantisierung mit unterschiedlichen Schrittgrößen, bis die M Spektralkoeffizienten mit einer vorbestimmten Anzahl von Bits codiert werden können. Unbenutzte Bits stehen zur Zuweisung in nachfolgenden Blöcken zur Verfügung. Zur Benutzung psychoakustischer Maskierungseffekte werden die Spektralkoeffizienten jedes Blocks in Frequenzgruppen unterteilt, wobei diese Frequenzgruppen so gewählt werden, daß entsprechend der psychoakustischen Maskierung Rauschen nicht wahrnehmbar ist, wenn die Signalenergie innerhalb jeder einzelnen Frequenzgruppe wesentlich höher als die Rauschenergie innerhalb derselben Gruppe ist. Nach der Codierung werden die Koeffizienten wiederhergestellt, und die Signalenergie innerhalb jeder Frequenzgruppe der wiederhergestellten Werte wird mit einem jeweiligen minimalen Referenzwert verglichen. Wenn die Signalenergie innerhalb eines oder mehrerer der Frequenzgruppen unterhalb des jeweiligen Referenzwerts liegt, werden die Spektralkoeffizienten mit einem vorbestimmten Faktor multipliziert, und die Quantisierung und die Codierung werden in einer reiterativen Weise wieder durchgeführt. Die Anzahl von Iterationen in der inneren und der äußeren Iterationsschleife muß als Seiteninformation übertragen werden.
  • Die Leistungsfähigkeit der Transformationscodierung hängt von verschiedenen Faktoren einschließlich der Signalabtastwertblocklänge, der Transformationscodierfehler und der Aliasing-Auslöschung ab.
  • Blocklänge
  • Bei kürzer werdenden Blocklängen wird die Leistungsfähigkeit von Transformationscoder und – decoder nachteilig beeinflußt, nicht nur durch die sich ergebende Aufweitung der Frequenzbins, sondern auch durch die Verschlechterung der Antwortcharakteristiken der Bandpaßfilterfrequenzbins: (1) geringere Steilheit der Übergangsbandflanke und (2) geringerer Pegel der Sperrbandunterdrückung. Diese Verschlechterung der Filterleistungsfähigkeit resultiert in der unerwünschten Erzeugung von oder dem Beitrag zu Transformationskoeffizienten in nahegelegenen Frequenzbins als Antwort auf ein gewünschtes Signal. Diese unerwünschten Beiträge werden "side lobe leakage" (Seitenzipfellecken) genannt.
  • Abhängig also von der Abtastrate kann eine kurze Blockfänge in einer nominalen Filterbandbreite resultieren, die die kritische Bandbreite des Ohrs bei einigen oder allen Frequenzen, insbesondere niedrigen Frequenzen, übersteigt. Selbst wenn die nominale Teilband-Bandbreite schmäler ist als die kritische Bandbreite des Ohrs, können verschlechterte Filtereigenschaften, die sich als ein breites Übergangsband und/oder schlechte Sperrbandunterdrückung manifestieren, in signifikanten Signalkomponenten außerhalb der kritischen Bandbreite des Ohrs resultieren. In solchen Fällen unterliegen gewöhnlich andere Aspekte des Systems, insbesondere die Quantisierungsgenauigkeit, größeren Beschränkungen.
  • Ein weiterer von kurzen Abtastwertblocklängen herrührender Nachteil ist die im nächsten Abschnitt beschriebene Verschlimmerung von Transformationscodierfehlern.
  • Transformationscodierfehler
  • Diskrete Transformationen erzeugen keinen perfekt akkuraten Satz von Frequenzkoeffizienten, da sie nur mit einem begrenzten Segment des Signals arbeiten. Strikt gesprochen, erzeugen diskrete Transformationen eine Zeit-Frequenz-Darstellung des Eingangszeitbereichssignals statt einer tatsächlichen Frequenzbereichsdarstellung, die unendliche Transformationslängen erfordern würde. Zur Vereinfachung der Betrachtung soll hier jedoch die Ausgabe diskreter Transformationen als eine Frequenzbereichsdarstellung bezeichnet werden. Im Effekt nimmt die diskrete Transformation an, das abgetastete Signal habe nur Frequenzkomponenten, deren Perioden ein Faktor des begrenzten Abtastintervalls sind. Dies entspricht der Annahme, daß das längenbegrenzte Signal periodisch sei. Diese Annahme trifft im allgemeinen nicht zu. Die angenommene Periodizität führt zu Diskontinuitäten an den Kanten des zeitbegrenzten Intervalls, aufgrund deren die Transformation Phantomhochfrequenzkomponenten erzeugt.
  • Eine diesen Effekt minimierende Technik besteht darin, die Diskontinuität vor der Transformation durch Gewichtung der Signalabtastwerte derart zu verringern, daß die Abtastwerte nahe den Kanten des Intervalls nahe bei null liegen. Abtastwerte in der Mitte des Intervalls werden im allgemeinen unverändert durchgelassen, d.h. mit dem Faktor eins gewichtet. Diese Gewichtungsfunktion wird "Analysefenster" genannt und kann von beliebiger Form sein, wenngleich gewisse Fenster geeigneter zur Teilbandfilterleistungsfähigkeit beitragen.
  • So wie der Begriff "Analysefenster" hier verwendet wird, bezieht er sich lediglich auf die Fensterungsfunktion, die vor Anwendung der Vorwärtstransformation ausgeführt wird. Wie später noch näher dargelegt, ist die Auslegung eines bei der Erfindung verwendeten Analysefensters durch Synthesefensterauslegungsgesichtspunkte beschränkt. Daher können Auslegung und Leistungsfähigkeit eines "Analysefensters" im Sinne des üblichen Gebrauchs dieses Begriffs von solchen Analysefenstern, wie sie bei dieser Erfindung implementiert werden, verschieden sein.
  • Obwohl es kein einzelnes Kriterium gibt, das zur Beurteilung der Qualität eines Fensters verwendet werden kann, umfassen allgemeine Kriterien die Steilheit der Übergangsbandflanke und die Tiefe der Sperrbandunterdrückung. Bei einigen Anwendungen ist die Fähigkeit, eine steilere Flanke für einen tieferen Unterdrückungspegel zu tauschen, eine nutzvolle Qualität.
  • Das Analysefenster ist eine Zeitbereichsfunktion. Wenn keine andere Kompensation vorgesehen ist, wird das wiedergewonnene oder "synthetisierte" Signal entsprechend der Form des Analysefensters verzerrt sein. Es gibt verschiedene Kompensationsverfahren, z.B.:
    • (a) Das wiedergewonnene Signalintervall oder der -block kann mit einem inversen Fenster multipliziert werden, einem solchen, dessen Gewichtungsfaktoren das Reziproke jener des Analysefensters sind. Ein Nachteil dieser Technik besteht darin, daß sie klar erfordert, daß das Analysefenster an den Kanten nicht auf null geht.
    • (b) Aufeinanderfolgende Eingangssignalblöcke können überlappt werden. Durch sorgfältige Auslegung des Analysefensters derart, daß zwei benachbarte Fenster sich über die Überlappung zu eins addieren, werden die Wirkungen des Fensters exakt kompensiert (es wird jedoch auf den folgenden Absatz verwiesen). Bei Verwendung mit gewissen Arten von Transformationen, etwa der Diskreten Fourier-Transformation (DFT), erhöht diese Technik die Anzahl der Bits, die erforderlich sind, um das Signal zu repräsentieren, da der Anteil des Signals im Überlappungsintervall zweimal transformiert und übertragen werden muß. Für diese Arten von Transformationen ist es günstig, das Fenster mit einem Überlappungsintervall auszulegen, der so klein wie möglich ist.
    • (c) Es kann nötig sein, die synthetisierte Ausgabe von der inversen Transformation (Rücktransformation) ebenfalls zu fenstern. Einige Transformationen erfordern dies. Außerdem können Quantisierungsfehler verursachen, daß die inverse Transformation ein Zeitbereichssignal erzeugt, das an den Kanten des endlichen Zeitintervalls nicht auf null geht. Wenn man dies so läßt, können diese Fehler das wiedergewonnene Zeitbereichssignal innerhalb des Fensterüberlappungsintervalls sehr stark verzerren. Ein Synthesefenster kann dazu verwendet werden, jeden synthetisierten Block an seinen Kanten zu formen. In diesem Fall wird das Signal einem Analysefenster und einem Synthesefenster ausgesetzt, d.h. das Signal wird mit dem Produkt der beiden Fenster gewichtet. Daher müssen beide Fenster so ausgelegt werden, daß sich das Produkt beider über die Überlappung zu eins summiert. (Auf die Betrachtungen im voranstehenden Absatz wird verwiesen).
  • Kurze Transformationsabtastwertblöcke stellen an die Analyse- und Synthesefenster größere Kompensationsanforderungen. Wenn die Transformationsabtastwertblöcke kürzer werden, gibt es mehr "side lobe leakage" durch das Übergangsband und das Sperrband des Filters. Ein gut geformtes Analysefenster verringert dieses Lecken.
  • "Side lobe leakage" ist unerwünscht, da es verursacht, daß die Transformation Spektralkoeffizienten erzeugt, die die Frequenz von Signalkomponenten außerhalb des Filterdurchlaßbandes fehlrepräsentieren. Diese Fehlrepräsentation ist eine als Aliasing bezeichnete Verzerrung.
  • Aliasing-Aufhebung
  • Das NyquistTheorem besagt, daß ein Signal dann aus diskreten Abtastwerten exakt wiederhergestellt werden kann, wenn das Intervall zwischen Abtastwerten nicht größer ist als die halbe Periode der höchsten Frequenzkomponente des Signals. Wenn die Abtastrate unterhalb dieser Nyquistrate liegt, werden höherfrequente Komponenten als niedrigertrequente Komponenten fehlrepräsentiert. Die niedrigerfrequente Komponente ist ein "Alias" für die tatsächliche Komponente.
  • Teilbandfilter und endliche digitale Transformationen sind keine perfekten Durchlaßbandfilter. Der Übergang zwischen dem Durchlaßband und dem Sperrband ist nicht unendlich scharf, und die Abschwächung von Signalen in dem Sperrband ist nicht unendlich groß. Selbst wenn also ein durchlaßbandgefiltertes Eingangssignal mit der von der Durchlaßbandgrenzfrequenz vorgegebenen Nyquist-Rate abgetastet wird, werden Frequenzen im Übergangsband oberhalb der Grenzfrequenz nicht wirklichkeitsgerecht repräsentiert.
  • Es ist möglich, die Analyse- und Synthesefenster so auszulegen, daß eine Aliasingverzerrung durch die inverse Transformation automatisch aufgehoben wird. Quadratur-Mirror-Filter im Zeitbereich besitzen diese Eigenschaft. Einige Transformationscodierungstechniken heben ebenfalls die Alias-Verzerrung auf.
  • Die Unterdrückung hörbarer Folgen von Aliasingverzerrung bei Transformationscodern wird schwieriger, wenn die Abtastwertblocklänge kürzer gemacht wird. Wie oben erläutert, verschlechtern kürzere Abtastwertblöcke die Filterleistungsfähigkeit: Die Durchlaßband-Bandbreite nimmt zu, der Übergang zwischen Durchlaßband und Sperrband wird weniger scharf und die Sperrbandunterdrückung wird schlechter. Als Folge tritt das Aliasing stärker hervor. Wenn die Aliaskomponenten mit unzureichender Genauigkeit codiert und decodiert werden, verhindern diese Codierungsfehler, daß die inverse Transformation die Aliasingverzerrung vollständig aufhebt. Die Restaliasingverzerrung wird hörbar sein, wenn die Verzerrung nicht psychoakustisch maskiert ist. Bei kurzen Abtastwertblöcken können einige Transformationsfrequenzbins jedoch ein breiteres Durchlaßband als die kritischen Gehörbänder aufweisen, insbesondere bei niedrigen Frequenzen, wo die kritischen Bänder des Ohrs ihre größte Auflösung aufweisen. Daher kann es vorkommen, daß die Aliasverzerrung nicht maskiert ist. Ein Weg zur Minimierung der Verzerrung besteht darin, die Quantisierungsgenauigkeit in den problematischen Teilbändern zu erhöhen, was jedoch die erforderliche Bitrate erhöht.
  • Bitratenverminderungstechniken
  • Zwei oben aufgeführte Faktoren (Nyquistabtastrate und Quantisierungsfehler) sollten den Bitratenbedarf für eine spezifizierte Qualität von Signalübertragung oder -speicherung vorgeben. Es können jedoch Techniken eingesetzt werden, um die für eine gegebene Signalqualität erforderliche Bitrate zu senken. Diese Techniken nutzen Redundanz und Irrelevanz eines Signals aus. Eine Signalkomponente ist redundant, wenn sie vom Empfänger vorhergesagt oder auf andere Weise geschaffen werden kann. Eine Signalkomponente ist irrelevant, wenn sie nicht benötigt wird, um eine spezifi zierte Qualität der Darstellung zu erreichen. Verschiedene im Stand der Technik verwendete Techniken schließen ein:
    • (1) Prädiktion: eine periodische oder voraussagbare Eigenschaft eines Signals erlaubt es einem Empfänger, einige Komponenten auf der Basis momentaner oder vorangehender Signalcharakteristiken vorherzusehen.
    • (2) Entropiecodierung: Komponenten mit einer hohen Wahrscheinlichkeit des Auftretens können durch abgekürzte Codes repräsentiert werden. Sowohl der Sender als auch der Empfänger müssen dasselbe Codebuch verwenden. Entropiecodierung und Prädiktion haben die Nachteile, daß sie die Rechenkomplexität und die Verarbeitungsverzögerung erhöhen. Außerdem liefern sie naturgemäß eine Ausgabe mit variabler Rate, so daß sie eine Pufferung erfordern, wenn sie bei einem System mit konstanter Bitrate verwendet werden.
    • (3) Ungleichförmige Codierung: Darstellungen durch Logarithmen oder ungleichförmige Quantisierungsschritte erlauben die Codierung von großen Signalwerten mit weniger Bits bei Inkaufnahme größerer Quantisierungsfehler.
    • (4) Gleitkomma: eine Gleitkommadarstellung kann den Bitbedarf bei Inkaufnahme eines Verlustes an Präzision verringern. Die Block-Gleitkommadarstellung verwendet einen Maßstabsfaktor oder Exponenten für einen Block von Gleitkommamantissen und wird üblicherweise bei der Codierung von Zeitbereichssignalen verwendet. Gleitkomma ist ein Spezialfall der ungleichförmigen Codierung.
    • (5) Bitzuweisung: Der Bedarf des Empfängers an Genauigkeit kann sich mit der Zeit, dem Signalinhalt, der Stärke oder Frequenz ändern. Beispielsweise sind Sprachkomponenten niedriger Frequenz gewöhnlich für das Verständnis und das Erkennen des Sprechers wichtiger und sollten daher mit größerer Genauigkeit als höherfrequente Komponenten übertragen werden. Andere Kriterien gelten für Musiksignale. Einige allgemeine Bitzuweisungskriterien sind: (a) Komponentenvarianz: Mehr Bits werden Transformationskoeffizienten mit dem größten Wechselstromleistungspegel zugewiesen. (b) Komponentenwert: Mehr Bits werden Transformationskoeffizienten zugewiesen, die Frequenzbänder mit der größten Amplitude oder Energie repräsentieren. (c) Psychoakustische Maskierung: Weniger Bits werden Signalkomponenten zugewiesen, deren Quantisierungsfehler von anderen Signalkomponenten maskiert (unhörbar gemacht) werden. Dieses Verfahren ist auf Anwendungen beschränkt, wo hörbare Signale für die menschliche Wahrnehmung gedacht sind. Maskierung ist am besten in bezug auf Eintonsignale anstelle von Mehrtonsignalen und komplexen Wellenformen wie Musiksignalen zu verstehen.
  • Ein Beispiel eines transformationsbasierten Coders und Decoders, der eine adaptive Bitzuweisung in Verbindung mit psychoakustischen Maskierungseffekten verwendet, ist beschrieben in Johnson, Bradley "Adaptive Transform Coding Incorporating Time Domain Aliasing Cancellation", Speech Communications, Band 6, North-Holland: Elsevier Science Publishers, 1987, Seiten 299–308.
  • Darstellung der Erfindung
  • Es ist eine Aufgabe dieser Erfindung, Maßnahmen für eine digitale Verarbeitung von Breitbandaudioinformation, insbesondere Musik, unter Verwendung einer Codier/Decodiervorrichtung und eines Codier/Decodierverfahrens zu treffen, die bei einer codierten Bitrate von nur 128 Kilobits pro Sekunde (kbs) eine hohe subjektive Tonqualität bietet.
  • Es ist eine weitere Aufgabe dieser Erfindung, solch eine Codier/Decodiervorrichtung und ein Codier/Decodierverfahren zu schaffen, die für die mit hoher Qualität erfolgende Übertragung oder Speicherung und Wiedergabe von Musik geeignet sind, wobei die Qualität der Wiedergabe beispielsweise für Tonrundfunknetze geeignet ist.
  • Es ist eine weitere Aufgabe der Erfindung, eine Qualität der Wiedergabe zu bieten, die subjektiv so gut wie diejenige ist, die man von Compact-Discs erhält.
  • Es ist eine weitere Aufgabe der Erfindung, solch eine Codier/Decodiervorrichtung und ein Codier/Decodierverfahren zu schaffen, die in einem digitalen Verarbeitungssystem verkörpert sind, das ein hohes Maß an Immunität gegen Signalkorruption durch Übertragungswege aufweist.
  • Es ist noch eine weitere Aufgabe der Erfindung, solch eine Codier/Decodiervorrichtung und ein Codier/Decodierverfahren zu schaffen, die in einem digitalen Verarbeitungssystem verkörpert sind, das zur Speicherung des codierten Signals einen geringen Raumbedarf erfordert.
  • Eine weitere Aufgabe der Erfindung ist es, in einem Musiksignale verarbeitenden Transformationscoder verbesserte psychoakustische Maskierungstechniken zu schaffen.
  • Noch eine weitere Aufgabe der Erfindung ist es, Techniken zur psychoakustischen Kompensation von andernfalls hörbaren Verzerrungsprodukten bei einem Transformationscoder zu schaffen.
  • Diese Aufgaben werden mit der beanspruchten Erfindung gelöst.
  • Weitere Einzelheiten der obigen Aufgaben sowie noch andere Aufgaben bzw. Eigenschaften der Erfindung ergeben sich aus der Gesamtheit dieses Dokuments, insbesondere aus der untenstehenden Detaillierten Beschreibung der Erfindung.
  • Ein Coder gemäß der vorliegenden Erfindung bewirkt die digitale Codierung von Breitbandaudioinformation. Die Breitbandaudiosignale werden abgetastet und zu Zeitbereichs-Abtastblöcken quantisiert. Jeder Abtastwertblock wird dann mit einem Analysefenster moduliert. Frequenzbereichsspektralkomponenten werden dann anhand des analysefenster-gewichteten Zeitbereichs-Abtastwertblocks erzeugt. Ein Transformationscoder mit adaptiver Bitzuteilung quantisiert jeden Transfor mationskoeffizienten in ungleichförmiger Weise, und diese Koeffizienten werden zu einer digitalen Ausgabe mit einem für Speicherung oder Übertragung geeigneten Format zusammengesetzt. Fehlerkorrekturcodes können bei Anwendungen eingesetzt werden, wo das übertragene Signal Rauschen oder anderen verfälschenden Wirkungen des Kommunikationsweges ausgesetzt ist.
  • Ein Decoder gemäß der vorliegenden Erfindung bewirkt eine Reproduktion hoher Qualität der digital codierten Breitbandaudiosignale, die mittels eines Coders gemäß der vorliegenden Erfindung codiert wurden. Ein Decoder empfängt die digitale Ausgabe eines Coders über eine Speichereinrichtung oder einen Übertragungsweg. Er leitet die ungleichförmig codierten Spektralkomponenten aus dem formatierten digitalen Signal ab und rekonstruiert daraus die Frequenzbereichs-Spektralkomponenten. Anhand der Frequenzbereichs-Spektralkomponenten werden Zeitbereichs-Signalabtastblöcke erzeugt, und zwar mittels einer Einrichtung, deren Charakteristiken invers sind zu jenen der Einrichtung im Coder, welche die Frequenzbereichs-Spektralkomponenten erzeugt hat. Die Abtastblöcke werden mit einem Synthesefenster moduliert. Das Synthesefenster hat derartige Charakteristiken, daß das Produkt aus der Synthesefensterkennlinie und der Kennlinie des Analysefensters im Coder eine Gesamtkennlinie ergibt, die sich für zwei benachbarte, überlappende Abtastblöcke zu eins summiert. Benachbarte Abtastblöcke werden überlappt und addiert, um die Gewichtungseffekte des Analysefensters und des Synthesefensters aufzuheben und eine digitalisierte Darstellung des Zeitbereichssignals wiederzugewinnen, das dann zu einem analogen Ausgangssignal hoher Qualität umgesetzt wird.
  • Ein Coder/Decodersystem gemäß der vorliegenden Erfindung bewirkt die digitale Codierung und die hochqualitative Reproduktion von Breitbandaudioinformation. Im Coderteil des Systems werden die analogen Breitbandaudiosignale abgetastet und zu Zeitbereichs-Abtastblöcken quantisiert. Jeder Abtastwertblock wird dann mit einem Analysefenster moduliert. Frequenzbereichs-Spektralkomponenten werden dann anhand des analysefenster-gewichteten Zeitbereichs-Abtastwertblocks erzeugt. Eine ungleichförmige Spektralcodierung, einschließlich adaptiver Bitzuteilung, quantisiert jede einzelne Spektralkomponente, und diese Komponenten werden dann zu einem digitalen Format zusammengesetzt, das für die Speicherung oder Übertragung über Kommunikationswege geeignet ist, die anfällig für signalverfälschendes Rauschen sind. Der Decoderteil des Systems empfängt die digitale Ausgabe des Coders über eine Speichereinrichtung oder einen Übertragungsweg. Er leitet von dem formatierten digitalen Signal die ungleichförmig codierten Spektralkomponenten ab und rekonstruiert daraus die Frequenzbereichs-Spektralkomponenten. Anhand der Frequenzbereichs-Transformationskoeffizienten werden Zeitbereichs-Signalabtastblöcke erzeugt, und zwar mit Hilfe einer Einrichtung, deren Charakteristiken invers zu denen der Einrichtung in dem Coder ist, die die Frequenzbereichs-Transformationskoeffizienten erzeugt hat. Die Abtastblöcke werden mit einem Synthesefenster moduliert. Das Synthesefenster hat derartige Charakteristiken, daß das Produkt aus der Synthesefensterkennlinie und der Analysefensterkennlinie im Coder eine Gesamtkennlinie ergibt, die sich für zwei benachbarte, überlappte Abtastblöcke zu eins addiert. Benachbarte Abtastblöcke werden überlappt und addiert, um die Gewichtungseffekte des Analysefensters und des Synthesefensters aufzuheben und eine digitalisierte Darstellung des Zeitbereichssignals wiederzugewinnen, das dann zu einem analogen Ausgangssignal hoher Qualität umgesetzt wird.
  • Bei einer Ausführungsform eines Coders gemäß der vorliegenden Erfindung erzeugt eine diskrete Transformation Frequenzbereichs-Spektralkomponenten als Reaktion auf die analysefenstergewichteten Zeitbereichs-Abtastblöcke. Vorzugsweise hat die diskrete Transformation eine Funktion äquivalent dem alternativen Einsatz einer modifizierten Diskreten Cosinus-Transformation (DCT) und einer modifizierten Diskreten Sinus-Transformation (DST). Bei einer alternativen Ausführungsform ist die diskrete Transformation durch eine einzige modifizierte Diskrete Cosinus-Transformation (DCT) implementiert, praktisch kann jedoch jede beliebige Zeitbereich-zu-Frequenzbereich-Transformation verwendet werden.
  • Bei einer bevorzugten Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung wird eine einzige FFT dazu verwendet, gleichzeitig die Vorwärtstransformation für zwei benachbarte Signalabtastblöcke in einem Einkanalsystem zu berechnen oder für einen Signalabtastwertblock von jedem Kanal eines Zweikanalsystems. Bei einer bevorzugten Ausführungsform eines Decoders wird eine einzige FFT dazu verwendet, gleichzeitig die Rücktransformation (inverse Transformation) für zwei Transformationsblöcke zu berechnen.
  • Bei bevorzugten Ausführungsformen eines Coders und eines Decoders gemäß der vorliegenden Erfindung beträgt die Abtastrate 44,1 kHz. Obwohl die Abtastrate nicht kritisch ist, sind 44,1 kHz eine geeignete Abtastrate, die deshalb günstig ist, weil es auch die für Compact-Discs benutzte Abtastrate ist. Eine alternative Ausführungsform benutzt eine 48 kHz-Abtastrate. Bei der bevorzugten, eine Abtastrate von 44,1 kHz verwendenden Ausführungsform erstreckt sich der nominale Frequenzgang bis zu 15 kHz, und die Zeitbereichs-Abtastblöcke haben eine Länge von 512 Abtastwerten. Bei der bevorzugten Ausführungsform kann eine Codierung von Musik auf subjektiven Qualitätsniveaus geeignet für professionelle Rundfunkanwendungen durch Benutzung von seriellen Bitraten bis hinunter zu 128 kBits pro Sekunde erreicht werden (einschließlich Zusatz- oder Hilfsinformation wie Fehlerkorrekturcodes). Andere Bitraten, die zu verschiedenen Signalqualitätsniveaus führen, können verwendet werden.
  • Bei einer bevorzugten Ausführungsform eines Coders berechnet der ungleichförmige Transformationscoder für jeden Transformationskoeffizienten ein Codewort variabler Bitlänge, wobei die Codewortbitlänge die Summe aus einer festen Anzahl von Bits und einer variablen Anzahl von Bits ist, welche durch adaptive Bitzuteilung auf der Basis dessen bestimmt wird, ob wegen des momentanen Signalinhalts Rauschen in dem Teilband weniger der psychoakustischen Maskierung unterliegt als Rauschen in anderen Teilbändern. Die feste Anzahl von Bits wird jedem Teilband auf der Basis empirischer Beobachtungen hinsichtlich psychoakustischer Maskierungseffekte eines Einzeltonsignals in dem betrachteten Teilband zugewiesen. Die Zuweisung fester Bits berücksichtigt die schwächere subjektive Leistungsfähigkeit des Systems bei niedrigen Frequenzen infolge der größeren Selektivität des Ohrs bei niedrigen Frequenzen. Obwohl die Maskierungswirkung bei Anwesenheit komplexer Signale gewöhnlich besser ist als bei Anwesenheit von Einzeltonsignalen, ist das Verständnis von Maskierungseffekten in Anwesenheit komplexer Signale weniger gut, noch sind sie gleichermaßen vorhersagbar. Das System ist nicht in dem Sinne aggressiv, daß die meisten Bits fest sind und relativ wenige Bits adaptiv zugewiesen werden. Dieses Vorgehen hat verschiedene Vorteile. Zum einen kompensiert die feste Bitzuweisung in ihr eigener Weise die unenrwünsch ten Verzerrungsprodukte, die von der inversen Transformation erzeugt werden, weil die empirische Prozedur, die die erforderliche feste Bitzuweisung ergeben hat, den inversen Transformationsprozess einschloß. Zum anderen kann der adaptive Bitzuteilungsalgorithmus relativ einfach gehalten werden. Darüber hinaus sind adaptiv zugewiesene Bits empfindlicher gegenüber Signalübertragungsfehlern, die zwischen dem Coder und dem Decoder auftreten, da solche Fehler zu unrichtiger Zuweisung sowie unrichtigen Werten für diese Bits im Decoder führen können.
  • Die empirische Technik für die Bitzuteilung mag unter Bezugnahme auf 13 besser verständlich sein, die die kritischen Bandspektren des Ausgangsrauschens und der Ausgangsverzerrung (z.B. gelten das gezeigte Rauschen und die gezeigte Verzerrung in bezug auf kritische Ohrbänder), die von einem 500 Hz-Ton (Sinuswelle) für drei verschiedene Bitzuteilungen herrühren, verglichen mit ohrbezogener Maskierung. Die Figuren sollen ein empirisches Vorgehen, nicht irgendwelche besonderen Daten demonstrieren.
  • Zuteilung A (die ausgezogene Linie) stellt einen Bezug dar der die Rausch- und Verzerrungsprodukte zeigt, die von der 500 Hz-Sinuswelle erzeugt werden, wenn eine willkürliche Anzahl von Bits jedem der Transformationskoeffizienten zugeteilt wird. Zuteilung B (die mit kurzen Strichen gestrichelte Linie) zeigt die Rausch- und Verzerrungsprodukte für dieselbe relative Bitzuteilung wie Zuteilung A, aber mit 2 Bits weniger pro Transformationskoeffizient. Zuteilung C (die gestrichelte Linie mit langen Strichen) ist gleich der Zuteilung A für Frequenzen im unteren Bereich des Audiobandes bis hinauf zu 1500 Hz. Zuteilung C ist dann gleich Zuteilung B für Frequenzen im oberen Bereich des Audiobandes, oberhalb von etwa 1500 Hz. Die punktierte Linie zeigt die ohrbezogene Maskierung für einen 500 Hz-Ton.
  • Man erkennt, daß bei Frequenzen unterhalb des 500 Hz-Tons bei allen drei Fällen der Bitzuteilung infolge des raschen Abfalls der Maskierungskurve hörbares Rauschen vorhanden ist: Die Rausch- und Verzerrungsproduktkurven liegen von etwa 100 Hz bis 300 oder 400 Hz oberhalb der Maskierungsschwelle. Die Entfernung von zwei Bits (Zuteilung A nach Zuteilung B) verschlimmert das hörbare Rauschen und die Verzerrung. Das erneute Hinzufügen der beiden Bits über einen den Bereich unterhalb des Tons einschließenden Teil des Spektrums, wie in Zuteilung C gezeigt, stellt die ursprünglichen Pegel des hörbaren Rauschens und der Verzerrung wieder her. Hörbares Rauschen ist auch bei hohen Frequenzen vorhanden, ändert sich aber nicht so deutlich, wenn Bits entfernt und hinzugefügt werden, da in diesem extremen Teil des Audiospektrums die Rausch- und Verzerrungsprodukte, die von dem 500 Hz-Ton erzeugt werden, relativ gering sind.
  • Durch Beobachtung des Rauschens und der Verzerrung, die sich aufgrund von Tönen bei verschiedenen Frequenzen für verschiedene Bitzuteilungen ergeben, können Bitlängen für die verschiedenen Transformationskoeffizienten zugeteilt werden, die über das ganze Audiospektrum zu annehmbaren Pegeln von Rauschen und Verzerrung in bezug auf die Gehörmaskierung führen. In bezug auf das Beispiel in 13 könnten zur Bezugszuteilung für den Transformationskoeffizienten, der den 500 Hz-Ton enthält, und in der Nähe gelegene Koeffizienten zusätzliche Bits hinzugefügt werden, bis das Rauschen und die Verzerrung unter die Maskierungsschwelle fällt. Ähnliche Schritte würden für andere Töne über das gesamte Audiospektrum erfolgen, bis die gesamte Transformationskoeffi zientenbitlängenzuteilung zu annehmbar niedrigem hörbaren Rauschen in Anwesenheit von auf einmal vorhandenen Tönen über das Audiospektrum geführt hat. Dies ist am einfachsten mit Hilfe von Computersimulationen durchführbar. Die Zuweisung der festen Bitzuteilung wird dann dadurch etwas geringer gewählt, daß von jedem Transformationskoeffizienten über das Spektrum ein oder mehr Bits entfernt werden (wie bei Zuteilung B). Adaptiv zugeteilte Bits werden hinzugefügt, um das hörbare Rauschen nach Bedarf in Problembereichen auf annehmbare Pegel zu senken (wie bei Zuteilung C). Empirische Beobachtungen hinsichtlich der Zunahme und der Abnahme hörbaren Rauschens in bezug auf die Bitzuteilung wie etwa im Beispiel von 13 bilden die Basis für das feste und adaptive Bitzuteilungsschema, das oben beschrieben wurde und unten im einzelnen erörtert wird.
  • Bei einer bevorzugten Ausführungsform eines Coders sind die ungleichförmig quantisierten Transformationskoeffizienten durch eine Block-Gleitkommadarstellung ausgedrückt, die Blockexponenten und Codewörter variabler Länge umfaßt. Wie oben beschrieben, setzen sich die Codewörter aus einem Teil mit fester Bitlänge und einem Teil mit variabler Länge adaptiv zugewiesener Bits zusammen. Das codierte Signal für ein Paar Transformationsblöcke wird zu Rahmen zusammengesetzt, die sich aus Exponenten und dem Teil fester Länge der Codewörter gefolgt von einer Reihe aller adaptiv zugeteilter Bits zusammensetzt. Die Exponenten und der Teil fester Länge der Codewörter sind gesondert von den adaptiv zugeteilten Bits zusammengefügt, um die Empfindlichkeit gegenüber Rauschbündelfehlern zu verringern.
  • Anders als viele bekannte Coder braucht ein Coder gemäß der vorliegenden Erfindung keine Seiteninformation hinsichtlich der Zuweisung adaptiv zugeteilter Bits in den einzelnen Rahmen zu übertragen. Der Decoder kann die korrekte Zuweisung dadurch ableiten, daß er denselben Zuteilungsalgorithmus auf die Exponenten anwendet, der von dem Coder verwendet wird.
  • Bei Anwendungen, wo eine Rahmensynchronisation erforderlich ist, hängt ein Coder gemäß der vorliegenden Erfindung die formatierten Daten an Rahmensynchronisationsbits an. Die formatierten Daten werden zuerst randomisiert (in eine Pseudo-Zufallsordnung gebracht), um die Wahrscheinlichkeit langer Bitfolgen mit ausschließlich Einsen oder Nullen zu verringern. Dies ist in vielen Umgebungen wie etwa dem T-1-Träger erforderlich, der solche Folgen über bestimmte Längen hinaus nicht toleriert. Bei asynchronen Anwendungen verringert die Randomisierung außerdem die Wahrscheinlichkeit, daß gültige Daten innerhalb des Rahmens fälschlich als Blocksynchronisationsfolge genommen werden. Bei einem Decoder gemäß der vorliegenden Erfindung werden die formatierten Datenbits dadurch wiedergewonnen, daß die Rahmensynchronisationsbits entfernt werden und ein inverser Randomisierungsprozess ausgeführt wird.
  • Bei Anwendungen, wo das codierte Signal Verfälschungen unterliegt, werden Fehlerkorrekturcodes dazu verwendet, die kritischste Information zu schützen, d.h. die Exponenten und möglicherweise die festen Teile der Codewörter der Koeffizienten der niedrigsten Frequenz. Fehlercodes und die geschützten Daten werden über den formatierten Rahmen verstreut, um die Empfindlichkeit gegenüber Rausch- oder Störbündelfehlern zu verringern, d.h. um die Länge eines Störbündels zu vergrößern, die nötig ist, um kritische Daten nicht mehr korrigieren zu können.
  • Die verschiedenen Merkmale der Erfindung und ihre bevorzugten Ausführungsformen sind in weiteren Einzelheiten in der folgenden Detaillierten Beschreibung der Erfindung und in den begleitenden Zeichnungen dargelegt.
  • Kurze Beschreibung der Zeichnungen
  • 1a und 1b sind Funktionsblockdiagramme, die den Grundaufbau eines Coders und eines Decoders gemäß der vorliegenden Erfindung darstellen.
  • 2a bis 2e sind Blockdiagramme, die die Hardware-Architektur für eine Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung zeigen.
  • 3a und 3b sind Blockdiagramme, die mehr im einzelnen das Interface für die serielle Kommunikation des Prozessors einer Zweikanal-Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung zeigen.
  • 4 ist eine hypothetische graphische Darstellung, die einen Zeitbereichs-Signalabtastwertblock zeigt.
  • 5 ist eine weitere hypothetische graphische Darstellung eines Zeitbereichs-Signalabtastwertblocks, die Diskontinuitäten an den Rändern des Abtastwertblocks zeigt, die von einer diskreten Transformation herrühren, die das Signal innerhalb des Blocks als periodisch annimmt.
  • 6a ist ein Funktionsblockdiagramm, das die Modulation einer Funktion X(t) durch eine Funktion W(t) zum Erhalt der resultierenden Funktion Y(t) zeigt.
  • 6b bis 6d sind weitere hypothetische graphische Darstellungen, die die Modulation eines Zeitbereichs-Signalabtastwertblocks mit einem Analysefenster zeigen.
  • 7 ist ein Flußdiagramm, das die Hochpegellogik für einen ungleichförmigen Quantisierer zeigt.
  • 8 ist ein Flußdiagramm, das detaillierter die Logik für einen adaptiven Bitzteilungsprozess zeigt.
  • 9 ist eine graphische Darstellung, die eine repräsentative Filterkennlinie und zwei psychoakustische Maskierungskurven zeigt.
  • 10 ist eine graphische Darstellung, die eine Filterkennlinie bezogen auf eine 4 kHz psychoakustische Maskierungskurve zeigt.
  • 11 ist eine graphische Darstellung, die eine Filterkennlinie bezogen auf eine 1 kHz psychoakustische Maskierungskurve zeigt.
  • 12 ist eine graphische Darstellung, die eine von den psychoakustischen Maskierungskurven verschiedener Töne abgeleitete zusammengesetzte Maskierungskurve zeigt.
  • 13 ist eine graphische Darstellung, die die spektralen Pegel von Codierungsrauschen und Verzerrung eines codierten 500 Hz-Tons für drei verschiedene Bitzuteilungsschemata in bezug auf die psychoakustische Maskierungskurve für einen 500 Hz-Ton zeigt.
  • 14a bis 14e sind hypothetische graphische Darstellungen, die ein Zeitbereichssignal gruppiert in eine Reihe von überlappten und gefensterten Zeitbereichs-Signalabtastblöcken zeigen.
  • 15a bis 15d sind hypothetische graphische Darstellungen, die die von der E-TDAC-Transformation erzeugte Zeitbereichs-Aliasingverzerrung zeigt.
  • 16a bis 16g sind hypothetische graphische Darstellungen, die die Aufhebung des Zeitbereichs-Aliasings durch Überlappen-Addieren während der E-TDAC-Transformationssignalsynthese zeigen.
  • 17a bis 17b sind graphische Darstellungen, die die Filterübergangsbandflanke und die Sperrbandunterdrückung einer ein Nur-Analysefenster verwendenden Filterbank denen einer Filterbank gegenüberstellt, die das Analysefenster eines Analyse-Synthese-Fensterpaares verwendet, das für einen Coder gemäß der vorliegenden Erfindung ausgelegt ist.
  • 18 ist eine hypothetische graphische Darstellung, die die Überlappen-Addieren-Eigenschaft benachbarter gefensteter Blöcke zeigt.
  • 19 ist eine hypothetische graphische Darstellung, die die Form verschiedener gefalteter Kaiser-Bessel-Analysefenster für einen Bereich von Ó-Werten von 4 bis 7 mit einem sinusförmig auslaufenden Fenster vergleicht.
  • 20 ist eine schematische Darstellung, die das Format eines Rahmens zweier codierter Transformationsblöcke ohne Fehlerkorrektur zeigt.
  • 21 ist eine schematische Darstellung, die das Format eines Rahmens zweier codierter Transformationsblöcke mit Fehlerkorrekturcodes zeigt.
  • 22a bis 22e sind hypothetische graphische Darstellungen, die ein Zeitbereichssignal zeigen, das in eine Reihe von überlappten und gefensterten Zeitbereichs-Signalabtastblöcken gruppiert ist, wie es insbesondere für die O-TDAC-Transformation erfolgt.
  • 23a bis 23d sind hypothetische graphische Darstellungen, die die Zeitbereichs-Aliasingverzerrung zeigen, die von der O-TDAC-Transformation hervorgerufen wird.
  • 24a bis 24g sind hypothetische graphische Darstellungen, die die Aufhebung des Zeitbereichsaliasing durch Überlappen-Addieren während der O-TDAC-Transformationssignalsynthese zeigen.
  • 25 ist eine schematische Darstellung, die das Format eines Rahmens zweier codierter Transformationsblöcke ohne Fehlerkorrektur für eine O-TDAC-Transformationsausführungsform eines Coders gemäß der vorliegenden Erfindung zeigt.
  • Tabelle I zeigt Masterexponenten, Teilbandgruppierung und Koeffizientenbitlängen für eine 15 kHz E-TDAC-Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung.
  • Tabelle II zeigt Teilbandgruppierung und Koeffizientenbitlängen für die zusätzlichen Transformationskoeftizienten, die in einer 20 kHz E-TDAC-Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung erforderlich sind.
  • Tabelle III zeigt den Unterschied beim Teilband null, der für die O-TDAC-Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung erforderlich ist.
  • Arten zur Ausführung der Erfindung
  • I. BEVORZUGTE IMPLEMENTIERUNG DER ERFINDUNG
  • Die 1a und 1b zeigen den jeweiligen Grundaufbau eines Coders und eines Decoders gemäß der vorliegenden Erfindung. Der in 1a gezeigte Coder umfaßt einen Eingang 100 für ein Zeitbereichssignal, einen Signalabtaster- und -quantisierer 101, einen Signalabtastwertpuffer 102, einen Analysefenstermultiplizierer 103, der jeden digitalisierten Zeitbereichssignalblock moduliert, eine digitale Filterbank 104, die das quantisierte Signal in Frequenzkoeffizienten transformiert, einen Block-Gleitkommacoder 105, der jeden einen ganzzahligen Wert aufweisenden Transformationskoeffzienten in eine Gleitkommadarstellung umsetzt, einen adaptiven Bitzuteiler 106, der der Darstellung jedes Transformationskoeffizienten nach Maßgabe der spektralen Zusammensetzung des Gesamtsignals Bits zuteilt, einen gleichförmigen Quantisierer 107, der jeden Transformationskoeffizienten zu einer zugewiesenen Bitlänge rundet, und einen Formatierer 109, der die codierten Frequenzkoeffizienten zum Zwecke der Übertragung oder Speicherung zu einer Bitfolge zusammenfügt. 1a zeigt einen Übertragungsweg 110, es ist jedoch zu beachten, daß das codierte Signal für spätere Verwendung gespeichert werden kann.
  • Der in 1b gezeigte Decoder umfaßt einen Eingang 111 für die codierte Bitfolge, einen Deformatierer 112, der aus der zusammengesetzten Bitfolge die einzelnen codierten Frequenzkoeffizienten extrahiert, einen Linearisierer 113, der die einzelnen codierten Koeffizienten in einen Transformationskoeffizienten mit ganzzahligem Wert umsetzt, eine inverse digitale Filterbank 114, die die Transformationskoeffizienten in einen Zeitbereichs-Signalblock transformiert, einen Synthesefenstermultiplizierer 115, der den Zeitbreichs-Signalblock moduliert, einen Signalblocküberlapper-Addierer 116, der eine digitalisierte Darstellung des Zeitbereichssignals wiedergewinnt, einen Analogsignalgenerator 117 und einen Analogsignalausgang 118.
  • A. Verarbeitungshardware
  • Die grundlegende Hardwarearchitektur einer Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung ist in den 2a bis 2e und 3a bis 3b dargestellt. Empirische Studien haben ergeben, daß herkömmliche Ganzzahltransformationsberechnungen mit einer Genauigkeit von wenigstens 20 signifikanten Bits ausgeführt werden müssen, um die angegebenen Ziele hinsichtlich der Leistungsfähigkeit zu erreichen.
  • Eine praktische Implementierung einer bevorzugten Ausführungsform eines Einkanalcoders mit entweder einer 44,1 kHz oder einer 48 kHz Abtastrate verwendet einen 16 Bit-Analog/Digital-Umsetzer (ADU) mit einer Zykluszeit von nicht mehr als 20 μs zum Quantisieren des Eingangszeitbereichssignals. Jeder 16 Bit digitalisierte Abtastwert wird dazu verwendet, die 16 höchstwertigen Bits eines 24-Bit-Worts zu bilden, das bei den nachfolgenden Berechnungen verwendet wird. Ein Motorola DSP56001 24 Bit digitaler Signalprozessor (DSP), der mit 20,5 MHz ohne "wait states" arbeitet, wird dazu benutzt, die erforderlichen Berechnungen auszuführen und den Codier- und Decodierprozess zu steuern. Ein statischer Speicher mit wahlfreiem Zugriff (RAM) bietet einen Programm- und Datenspeicher für den DSP. Ein 16 Bit-Digital/Analog-Umsetzer (DAU) mit einer Zykluszeit von nicht mehr als 20 μs dient dazu, aus dem decodierten digitalen Signal ein analoges Signal zu erzeugen.
  • Die in 2a gezeigte Coderhardwarearchitektur umfaßt einen Analogsignal-Eingang 200, ein Tiefpaßfilter (TPF) 200A, ADU 201, DSP 202, das statische RAM 203, einen löschbaren, programmierbaren Nur-Lesespeicher (EPROM) 204 und einen Ausgang 206 für das codierte serielle Signal. TPF 200A (ein Tiefpaßfilter, das in 1a nicht gezeigt ist) stellt sicher, daß das Eingangssignal bandbreitenbegrenzt ist. ADU 201 digitalisiert (tastet ab und quantisiert) das ankommende Signal in eine serielle Folge von 16-Bit-Wörtern. Der DSP 202 empfängt und puffert die serielle Folge der digitalisierten Abtastwerte, gruppiert die Abtastwerte in Blöcke, führt die zur Transformation der Blöcke im Frequenzbereich erforderlichen Berechnungen aus, codiert die Transformationskoeffizienten, formatiert die Codewörter in eine Datenfolge und überträgt das codierte Signal über den seriellen Datenweg 206. Die Programm- und Datenarbeitsbereiche für den DSP sind in zwei 24 Kilobyte (KB) Bänken des statischen RAMs 203 gespeichert, das in zwei Sätzen von 8192 24-Bit-Wörtern organisiert ist. Der DSP erfordert einen Programmspeicher mit kurzer Zugriffszeit, was billiger in einem RAM als in einem programmierbaren ROM implementiert werden kann. Folglich speichert das EPROM 204 die Programmierung und statische Daten in einem komprimierten Format, das der DSP in eine geeignete Form in das RAM 203 entpackt, wenn der Coder das erste Mal eingeschaltet wird.
  • Die 2b und 2c bieten mehr Einzelheiten hinsichtlich der beiden DSP Interfaces. 2b zeigt das serielle Kommunikationsinterface für den DSP 202, den ADU 201 und den seriellen Datenweg 206. Ein Taktgenerator 202A erzeugt den Empfangstakt, die Rahmensynchronisation und Übertragungstaktsignale für den Coder. Eine Leitung SC0 taktet eine serielle Bitfolge digitalisierter Eingangssignalabtastwerte längs Leitung SRD vom ADU 201 in den DSP 202. Die Leitung SC1 liefert das Rahmensynchronisationssignal an den ADU und den DSP, das den Beginn jedes 16-Bit-Worts markiert. Eine Leitung SCK taktet eine serielle Bitfolge des codierten Signals längs einer Leitung STD von dem DSP zum seriellen Datenweg 206.
  • 2c zeigt das Speicheradressierungsinterface. Der Speicher für den Motorola DSP56001 ist in drei Segmente unterteilt: Programm, X Daten und Y Daten. Eine RAM-Bank, die Programmspeicher enthält, wird jedesmal dann ausgewählt, wenn der DSP die Leitung PS auf L bringt. Eine zweite Bank enthält Datenspeicher, der immer dann ausgewählt wird, wenn die Leitung DS auf L gebracht wird. Der DSP wählt zwischen X-Datenspeicher und Y-Datenspeicher dadurch, daß die Leitung XY auf H bzw. auf L gelegt wird. Der X-Datenspeicher und der Y-Datenspeicher sind durch Anlegen von Leitung XY an die Adressenleitung A12 in getrennte Adreßräume abgebildet. Daher sind 4 K Wörter (4096 oder 100016 24-Bit-Wörter) des Y-Datenspeichers in Wortadressen 0000-0FFF16 abgebildet, 4 K Wörter des X-Datenspeichers sind in Wortadressen 100016-1FFF16 abgebildet, und der Programmspeicher befindet sich in seinem eigenen Raum von 8 K Wörtern, umfassend die Wortadressen 000016-1FFF16.
  • Programm/Daten-RAM 203 und EPROM 204 sind in separate Adreßräume abgebildet. Ein Inverter 205C ermöglicht dem DSP 202 nach Maßgabe des Zustands der Adressenleitung A15 entweder das RAM oder das EPROM auszuwählen. Wenn der DSP 202 A15 auf H setzt, setzt der Inverter 205C die Chipwählleitung CS von RAM 203 und EPROM 204 auf L. Wenn CS L ist, wird nur das EPROM 204 ausgewählt. Wenn der DSP 202 A15 auf L setzt, setzt der Inverter 205C die CS-Leitungen von RAM 203 und EPROM 204 auf H. Nur das statische RAM 203 ist ausgewählt, wenn CS auf H liegt.
  • Die in 2d gezeigte Decoderhardwarearchitektur umfaßt einen Eingangsweg 207 für das codierte serielle Signal, einen DSP 208, ein statisches RAM 209, ein EPROM 210, einen DAU 212, ein TPF 213A und einen Analogensignalausgang 213. Der DSP 208 empfängt und puffert das codierte Signal, deformatiert das Signal zu den codierten Transformationskoeftizienten, führt die zur Transformation der Koeffizienten in den Zeitbereich erforderlichen Berechnungen durch, gruppiert die Koeffizienten in Zeitbereichsblöcke, überlappt und addiert die Blöcke zu einer Zeitbereichsfolge digitaler Abtastwerte und überträgt die digitalen Abtastwerte in einer seriellen Bitfolge an den DAU 212. Die Programm- und Datenarbeitsbereiche für den DSP sind in zwei 24 KB Bänken eines statischen RAMs 209 untergebracht, das in zwei Sätzen von 8192 24-Bit-Wörtern organisiert ist. Das EPROM 210 speichert in komprimiertem Format die Programmierung und statische Daten, welche der DSP in eine Gebrauchsform in das RAM 209 entpackt, wenn der Decoder das erste Mal eingeschaltet wird. Der DAU 212 erzeugt ein analoges Signal entsprechend der von dem DSP empfangenen seriellen Datenfolge. Das TPF 213A (ein Tiefpaßfilter, das in 1b nicht gezeigt ist) stellt sicher, daß das Signal vom Ausgang 213 frei von irgendwelchen unerwünschten Hochfre quenzkomponenten ist, die durch den Codier/Decodierprozess erzeugt werden.
  • 2e zeigt das Interface für den DSP 208 für die serielle Kommunikation, den seriellen Signaleingangsweg 207 und den DAU 212. Ein Taktgenerator 208A, der einen Phasenregelkreis zur Extraktion einer Zeitsteuerreferenz von dem codierten bitseriellen Eingangssignal verwendet, erzeugt den Empfangstakt, die Rahmensynchronisation und Übertragungstaktsignale für den Decoder. Die Leitung SC0 taktet das codierte bitserielle Signal längs der Leitung SRD in den DSP 208. Die Leitung SCK taktet eine bitserielle Folge der decodierten digitalisierten Signalabtastwerte längs der Leitung STD vom DSP 208 zum DAU 212. Die Leitung SC2 liefert ein Rahmensynchronisationssignal an den DAU und den DSP, das den Beginn jedes 16 Bit Worts markiert. Das Interface zwischen dem DSP 208 und dem Speicheradreßbus ist in gleicher Weise implementiert, wie es oben für den Coder beschrieben wurde, siehe 2c.
  • Der Zweikanalcoder erfordert TPFs 200A und 200B und ADUs 201A und 201B, die gemäß Darstellung in 3a angeschlossen sind. Das Interface zwischen dem DSP und den ADU-Komponenten arbeitet in ähnlicher Weise zu dem oben für einen Einkanalcoder beschriebenen. Der Taktgenerator 202A liefert ein zusätzliches Signal an die Leitung SC2 des DSP mit der halben Rate des Rahmensynchronisationssignals, um den Multiplexer 202B zu steuern und dem DSP anzuzeigen, welcher der beiden ADUs momentan digitalisierte Daten sendet.
  • Der Zweikanaldecoder erfordert DAUs 212A und 212B und TPFs 213A und 213B, die gemäß Darstellung in 3b angeschlossen sind. Das Interface zwischen dem DSP und den DAU Komponenten arbeitet in ähnlicher Weise wie das oben für einen Einkanaldecoder beschriebene. Der Taktgenerator 208A liefert ein zusätzliches Signal an die Leitung SC1 des DSP mit halber Rate des Rahmensynchronisationssignals, um den Demultiplexer 208B zu steuern und dem DSP anzuzeigen, welcher der beiden DAUs momentan digitale Daten empfängt.
  • Die grundlegende Hardwarearchitektur kann modifiziert werden. Beispielsweise kann ein Motorola DSP56001, der bei 27 MHz ohne "wait states" arbeitet, einen Zweikanalcoder oder -decoder implementieren. Zusätzliches RAM mag erforderlich sein.
  • Ferner kann spezialisierte Hardware zur Durchführung bestimmter Funktionen wie etwa der Fenstermodulation oder der schnellen Fouriertransformation (FFT) verwendet werden. Der gesamte Coder/Decoder kann als kundenspezifisch gestaltete integrierte Schaltung ausgeführt werden. Viele andere mögliche Implementationen liegen für den Fachmann auf der Hand.
  • B. Eingangssignalabtastung und Fensterung
  • Bei einer Ausführungsform eines Coders gemäß der vorliegenden Erfindung ist der Signalabtaster- und -quantisierer 101 ein Analog/Digital-Umsetzer, der das Eingangssignal zu 16 Bits quantisiert, die nachfolgend rechts mit 8 Nullbits zur Bildung einer 24-Bit-Ganzzahldarstellung aufgefüllt werden. Alle nachfolgenden Transformationsberechnungen werden in 24-Bit-Ganzzahlarithmetik ausgeführt. Das analoge Eingangssignal sollte auf höchstens 15 kHz (20 kHz für einen 20 kHz Bandbreitecoder) in der Bandbreite begrenzt sein. Dies kann mit einem Tiefpaßfilter erreicht werden, das in 1a nicht dargestellt ist.
  • Ein Musiksignal mit wenigstens Compact Disc (CD) Qualität hat zusätzlich zu anderen Qualitäten eine über 15 kHz hinausgehende Bandbreite. Aus dem Nyquist-Theorem folgt, daß ein Signal mit einer Bandbreite von 15 kHz mit nicht weniger als 30 kHz abgetastet werden muß. Bei einer Ausführungsform eines Coders gemäß der vorliegenden Erfindung wird eine Abtastrate von 44,1 kHz gewählt, weil dies die in CD-Anwendungen benutzte Rate ist und eine solche Wahl die Mittel vereinfacht, die erforderlich sind, um einen Coder gemäß der vorliegenden Erfindung bei solchen Anwendungen einzusetzen. (Diese Abtastrate eignet sich auch für eine alternative Ausführungsform eines Coders gemäß der vorliegenden Erfindung mit 20 kHz Bandbreite.)
  • Andere Abtastraten, etwa 48 kHz, bei der es sich um die bei vielen professionellen Audioanwendungen übliche Rate handelt, können ebenfalls verwendet werden. Wenn eine alternative Rate gewählt wird, wird die Frequenztrennung zwischen benachbarten Transformationskoeffizienten geändert, und wird sich die Anzahl von Koeffizienten ändern, die zur Darstellung der gewünschten Signalbandbreite erforderlich ist. Die ganze Auswirkung einer Änderung der Abtastrate auf die Implementierung eines Coders gemäß der vorliegenden Erfindung ist für den Fachmann ersichtlich.
  • Nimmt man an, daß das Eingangssignal kein komplexes ist, d.h. daß alle imaginären Komponenten null sind, dann ergibt eine Frequenzbereichstransformation von 512 Abtastblöcken maximal 256 einzigartige, von null verschiedene Transformationskoeffizienten. Daher umfassen die Coder- und Decoderaufbauten, die in 1a und 1b gezeigt sind, 256 Frequenzbins. Bei dieser Implementierung ist die Bandbreite jedes Bins gleich 86,1 Hz (oder 44,1 kHz/512). (Für einige diskrete Transformationen hat das Bin 0, die Gleichstrom oder Nullfrequenz-Komponente, eine Bandbreite gleich der Hälfte dieses Betrags.) Nur die Koeffizienten 0–182 werden benutzt, um ein 15,6 kHz-Signal durchzulassen. (Koeffizienten 0–233 werden bei einer 20 kHz-Version benutzt, um ein 20,1 kHz-Signal durchzulassen.) Die zusätzlichen hochfrequenten Komponenten oberhalb der Eingangssignalbandbreite werden dazu benutzt, die nachteiligen Auswirkungen von Quantisierungsfehlern auf die Aliasing-Aufhebung innerhalb der Auslegungsbandbreite zu minimieren. Man beachte, daß angenommen wurde, daß die Eingangssignalbandbreite auf 15 kHz (oder 20 kHz) begrenzt ist und daß auch das endgültige Ausgangssignal bandbegrenzt ist, um jegliches Aliasing, das in den höchsten Koeffizienten durchgelassen wird, zu unterdrücken.
  • Wenn der Abtastwertblock nicht modifiziert wird, wird eine diskrete Transformation irrtümlich nicht existente Spektralkomponenten erzeugen, da die Transformation annimmt, daß das Signal in dem Block periodisch ist (siehe 4). Diese Transformationsfehler werden von Diskontinuitäten an den Rändern des Blocks verursacht, wie in 5 gezeigt. Diese Diskontinuitäten können geglättet werden, um diese Wirkung zu minimieren. Die 6a bis 6d zeigen, wie ein Block so modifiziert oder gewichtet wird, daß die Abtastwerte nahe den Blockrändern nahe bei null liegen. Die in 6a gezeigte Multiplizierschaltung moduliert das abgetastete Eingangssignal x(t), das in 6b gezeigt ist, mit der in 6c gezeigten Gewichtungsfunktion. Dieser Prozess ist in 1a durch den Kasten 103 repräsentiert. Diese Analysefenster genannte Gewichtungsfunktion ist eine Abtastwert für Abtastwert erfolgende Multiplikation des Signalabtastwertblocks und ist Gegenstand ausgedehnter Studien gewesen, da ihre Form tiefreichenden Einfluß auf die Leistungsfähigkeit des digitalen Filters besitzt. (Siehe beispielsweise Harris, "On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform", Proc. IEEE, Bd. 66, 1978, S. 51–83. Kurz gesagt, erhöht ein gutes Fenster die Steilheit der Übergangsbandflanke für einen gegebenen Pegel der Tiefe der Sperrbandunterdrückung und erlaubt eine Korrektur seiner Modulationswirkungen durch Überlappen und Addieren benachbarter Blöcke. Die Fensterauslegung wird unten detaillierter erörtert.
  • C. Analysefilterbank-Vorwärtstransformation
  • Eine diskrete Transformation implementiert die digitale Filterbank 104, die in 1a gezeigt ist. Die Filterung erfolgt dadurch, daß die Zeitbereichs-Signalabtastblöcke in einen Satz zeitvariabler Spektralkoeffizienten umgesetzt werden. Jede von etlichen Transformationstechniken kann zur Implementierung der Filterbank eingesetzt werden. Die bei einer Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung verwendete Transformationstechnik wurde zuerst in Princen and Bradley, "Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation", "IEEE Trans. on Acoust., Speech, Signal Proc, Bd. ASSP-34, 1986, S. 1153–1161, beschrieben. Diese Technik ist das Zeitbereichsäquivalent eines gerad-gestapelten, kritisch abgetasteten Einseitenband-Analyse-Synthese-Systems. Diese Transformation wird hier als Evenly-Stacked Time-Domain Aliasing Cancellation (E-TDAC) bezeichnet. Eine alternative Form der TDAC-Transformation kann in einer anderen Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung verwendet werden. Diese Technik ist in Princen, Johnson and Bradley, "Subband/Transform Coding Using Filter Bank Designs Based on Time Domain Aliasing Cancellation", ICASSP 1987 Conf. Proc, May 1987, S. 2161–64, beschrieben. Diese alternative Transformation ist das Zeitbereichsäquivalent eines ungerad-gestapelten, kritisch abgetasteten Einseitenband-Analyse-Synthese-Systems. Es wird hier als Oddly-Stacked Time-Domain Aliasing Cancellation (O-TDAC) bezeichnet. Eine Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung, die von der O-TDAC-Transformation Gebrauch macht, wird erörtert, nachdem die E-TDAC-Ausführungsform vollständig beschrieben wurde.
  • Die E-TDAC verwendet eine Transformationsfunktion, die dem abwechselnden Anwenden einer modifizierten Diskreten Cosinus-Transformation (DCT) mit einer modifizierten Diskreten Sinus-Transformation (DST) äquivalent ist. Die DCT, in Gleichung 1 wiedergegeben, und die DST, in Gleichung 2 wiedergegeben, sind
    Figure 00200001
    wobei
  • k
    = Frequenzkoeffizientnummer,
    n
    = Eingangssignalabtastwertnummer,
    N
    = Abtastwertblocklänge,
    m
    = Phasenterm für E-TDAC,
    x(n)
    = quantisierter Wert von Eingangssignal x(t) beim Abtastwert n,
    C(k)
    = DCT-Koeffizient k und
    S(k)
    = DST-Koeffizient k.
  • Die E-TDAC-Transformation erzeugt abwechselnd einen von zwei Sätzen von Spektralkoeffizienten oder Transformationsblöcken für jeden Signalabtastwertblock. Diese Transformationsblöcke haben die Form
    Figure 00210001
    wobei
  • i
    = Signalabtastwertblocknummer,
    C(k)
    = DCT-Koeffizient (siehe Gleichung 1) und
    S(k)
    = DST-Koeffizient (siehe Gleichung 2).
  • Der verwendete Rechenalgorithmus ist die Schnelle Fourier-Transformation (FFT). Siehe Cooley and Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series", Math. Comput., Bd. 19, 1965, S. 297–301. Eine einzige FFT kann dadurch zur gleichzeitigen Ausführung der DCT und der DST herangezogen werden, daß diese jeweils als Real- und Imaginärkomponenten einer einzigen komplexen Transformation definiert werden. Diese Technik nutzt die Tatsache aus, daß die FFT eine komplexe Transformation ist, jedoch beide Eingangssignalabtastwertblöcke nur aus realwertigen Abtastwerten bestehen. Dadurch, daß man diese Transformationen zum Faktor des Produkts aus einer FFT und einem Feld komplexer Konstanten macht, gehen die DCT-Koeffizienten aus der Transformation als der Satz von Realwerten hervor, während die DST-Koeffizienten von dem Satz von Imaginärwerten repräsentiert werden. Daher kann die DCT eines Signalabtastwertblocks durch lediglich eine FFT gefolgt von einer Multiplikation mit dem komplexen Feld und Additionen berechnet werden.
  • Die grundlegende Technik der Verwendung einer FFT zur gleichzeitigen Berechnung zweier Transformationen ist im Stand der Technik bekannt und in Brigham, The Fast Fourier Transform, Englewood Cliffs, NJ: Prentice-Hall, Inc., 1974, beschrieben. Zusätzliche Information hinsichtlich der gleichzeitigen Berechnung der modifizierten DCT und DST für die E-TDAC-Transformation findet sich in Lookabaugh, "Variable Rate and Adaptive Frequency Domain Vector Quantization of Speech", Stanford, CA: Stanford University, PhD Thesis, Juni 1988.
  • Bei einer Ausführungsform eines Einkanalcoders gemäß der vorliegenden Erfindung werden zwei benachbarte Signalabtastwertblöcke in Puffern gespeichert und gemeinsam zu einem DCT/DST-Blockpaar transformiert. Das Blockpaar wird nachfolgend quantisiert und für die Übertragung oder Speicherung formatiert.
  • Bei Zweikanalsystemen kann eine gleichzeitige Verarbeitung dadurch bewirkt werden, daß man einen Signalabtastwertblock von jedem der beiden Kanäle verarbeitet: Ein DCT-Block wird für einen Kanal und ein DST-Block wird für den zweiten Kanal erzeugt. Die codierten Blöcke für einen gegebenen Kanal wechseln zwischen der DCT und der DST (siehe Ausdruck 5) ab und sind immer vom gegenüber dem der Blöcke des anderen Kanals entgegengesetzten Typ. Ein Paar Blöcke, einer für jeden Kanal, wird zusammen transformiert und formatiert.
  • Princen hat gezeigt, daß mit der richtigen Phasenkomponente m (siehe Gleichung 6) und einem sorgfältig ausgelegten Analyse-Synthese-Fenster-Paar die E-TDAC-Technik exakt ein Eingangssignal aus einer abwechselnden Folge von Cosinus- und Sinustransformationsblöcken der Form {C(k)}0, {S(k)}1, {C(k)}2, {S(k)}3 (5),bei der jeder Transformationsblock einen Zeitbereichs-Signalabtastwertblock darstellt, zurückgewonnen werden kann. Dieser Prozess ist in den 14a14e, 15a15d und 16a16g gezeigt.
  • Unter Bezugnahme auf 14a erkennt man, daß das quantisierte Eingangssignal x(t) in zwei Blöcke gruppiert ist. Ein Satz von Blöcken, mit der Fensterfunktion Wc, die in 14b gezeigt ist, moduliert, erzeugt das in 14d gezeigte Signal xc(t). Das Signal xc(t) wird in die DCT eingegeben. Ein anderer Satz von Blöcken des abgetasteten Eingangssignals x(t), die den ersten Satz um eine halbe Blocklänge überlappen, wird mit der Fensterfunktion Ws, die in 14c gezeigt ist (und die mit Wc identisch aber um eine halbe Blocklänge zeitverschoben ist) gefenstert, was das Signal xs(t) ergibt, das in 14e gezeigt ist und nachfolgend an die DST übergeben wird.
  • Die Verwendung nur der abwechselnden DCT- und DST-Transformationsblöcke führt zu einem Verlust der Information, die in der verworfenen Hälfte der Transformationsblöcke enthalten ist. Dieser Verlust erzeugt eine Zeitbereichs-Aliasingkomponente; die Verzerrung kann jedoch dadurch aufgehoben werden, daß der geeignete Phasenterm m für die Gleichungen 1 und 2 gewählt wird, die Vorwärtstransformation auf überlappte Zeitbereichs-Signalabtastwertblöcke ausgeübt wird und von der inversen Transformation zurückgewonnene benachbarte Zeitbereichs-Signalabtastwertblöcke überlappt und addiert werden.
  • Der Phasenterm m in den Gleichungen 1 und 2 steuert die Phasenverschiebung der Zeitbereichs-Aliasingverzerrung. Die 15a15d und 16a16g verdeutlichen diese Verzerrung. Das von der inversen DCT zurückgewonnene Signal yc(t) ist in 15a gezeigt. 15b verdeutlicht, daß das zurückgewonnene Signal sich aus zwei Komponenten zusammensetzt: dem ursprünglichen gefensterten Signal (ausgezogene Linie) und der Zeitbereichs-Aliasingverzerrung (gepunktete Linie). Die 15c und 15d zeigen ähnliche Information für das Signal ys(t), das von der inversen DST zurückgewonnen wurde. Zur Aufhebung dieser Alias-Verzerrung und zum exakten Zurückgewinnen des ursprünglichen Zeitbereichssignals erfordert die E-TDAC, daß das Aliasing wie folgt ist. Für die DCT besteht die Zeitbereichs-Aliaskomponente aus der ersten Hälfte des abgetasteten Signals um den Ein-Viertel-Punkt des Abtastwertblocks zeitverkehrt, und der zweiten Hälfte des abgetasteten Signals um den Drei-Viertel-Punkt des Abtastwertblocks zeitverkehrt. Für die DST ist die Alias-Komponente ähnlich der für die DCT mit der Ausnahme, daß ihre Amplitude umgekehrtes Vorzeichen hat (siehe 15b und 15d). Der für die Alias-Aufhebung erforderliche Phasenterm ist
    Figure 00230001
    wobei
  • N
    = Abtastwertblocklänge.
  • Die E-TDAC erfordert auch die Anwendung eines Paares sorgfältig ausgelegter Analyse-Synthese-Fenster auf überlappte Signalabtastwertblöcke. Die Signalabtastwertblöcke müssen eine 100%ige Überlappung aufweisen, d.h. 50% eines bestimmten Blocks werden vom vorangehenden Block überlappt und 50% desselben Blocks werden vom folgenden Block überlappt. Die 16a16g verdeutlichen das Überlappen der Signalabtastwertblöcke und die resultierende Aufhebung der Alias-Verzerrung. Die Signale yc(t) und ys(t), die in den 16a und 16d gezeigt und von den inversen DCT und DST zurückgewonnen wurden, werden mit Fensterfunktionen Wc(t) bzw. Ws(t), die in den 16b und 16e gezeigt sind, moduliert, um Signale 010c(t) und 010c(t) zu erzeugen, die in den 16c und 16f gezeigt sind. Wenn die überlappten Blöcke dieser gefensterten Signale addiert werden, werden die Alias-Komponenten aufgehoben, und das resultierende Signal y(t), das in 16g gezeigt ist, ist eine genaue Rekonstruktion des ursprünglichen Eingangssignals x(t).
  • Die Fensterauslegung sowie das Überlappen-Addieren, das während des Syntheseprozesses eingesetzt wird, werden unten detaillierter erörtert. An diesem Punkt reicht es aus anzumerken, daß das Weglassen der Hälfte der Transformationsblöcke die erforderliche Bitrate halbiert, daß aber die 100%ige Fensterüberlappung, die für die E-TDAC während der Signalsynthese erforderlich ist, die erforderliche Bitrate verdoppelt. Folglich ist die Wirkung der E-TDAC auf die erforderliche Bitrate neutral.
  • D. Ungleichförmige Quantisierung
  • Jeder von der Filterbank 104 abgeleitete Transformationskoeffizient wird von dem ungleichförmigen Quantisierer 108 codiert und in Teilbänder gruppiert. (Tabellen I und II zeigen die Zuweisung der Transformationskoeffizienten zu Teilbändern.) Der ungleichförmige Quantisierer setzt sich aus einem Block-Gleitkomma-Coder 105, einem adaptiven Bitzuteiler 106 und einem gleichförmigen Quantisierer 107 zusammen, wie in 1a gezeigt. Die Quantisierung erfolgt für Transformationsblockpaare: entweder zwei benachbarte Blöcke in einem Einkanalsystem oder ein Block von jedem Kanal eines Zweikanalsystems. Wie in 7 gezeigt, umfaßt die ungleichförmige Quantisierung fünf Hauptabschnitte: (1) Berechnung der Teilbandexponenten, (2) Bestimmung der Masterexponenten, (3) anfängliches Setzen der Bitlänge für jedes Koeffizientencodewort als Funktion der Frequenz des Koeffizienten, (4) adaptives Zuteilen zusätzlicher Bits zu speziellen Codewörtern, und (5) Runden und Beschneiden des Codeworts entsprechend der Bitlänge, die aus der Summe der adaptiven Bitzuteilungen und der Minimumbitlänge basierend auf der Frequenz des Koeffizienten berechnet wird.
  • Die Gleitkommadarstellung numerischer Größen ist im Bereich der digitalen Datenverarbeitung bekannt und dient dazu, einen größeren Bereich von Werten mit weniger Bits darzustellen, als es mit einer Ganzzahldarstellung möglich ist. Eine Gleitkommazahl setzt sich aus einer Mantisse und einem Exponenten zusammen. Bei einer bevorzugten Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung ist die Mantisse ein vorzeichenbehafteter Ganzzahlwertausdruck, der in Zweier-Komplementform ausgedrückt ist.
  • Der entsprechende Exponent ist ein Wert ohne Vorzeichen gleich der Potenz von zwei des Multiplikators, der erforderlich ist, die Mantisse (entweder normiert oder nicht normiert) in den wahren Wert der dargestellten numerischen Größe umzusetzen. Diese Darstellung kann wie folgt ausgedrückt werden F = M·2–E (7)wobei
  • F
    = der Wert der Gleitkommazahl,
    M
    = die vorzeichenbehaftete ganzzahlwertige Mantisse, und
    E
    = der ganzzahlwertige Exponent ohne Vorzeichen.
  • Ein Exponent von drei zeigt beispielsweise an, daß der wahre Wert der Gleitkommazahl durch Multiplizieren der ganzzahlwertigen Mantisse mit 2–3 erhalten wird. Dies entspricht einer Verschiebung einer binären Darstellung der Mantisse um drei Stellen nach rechts.
  • Eine positive, von null verschiedene Mantisse wird als normiert bezeichnet, wenn ihr höchstwertiges Datenbit von null verschieden ist. Eine Mantisse mit negativem Wert ist normiert, wenn ihr höchstwertiges Datenbit null ist. Eine normierte Mantisse stellt sicher, daß die größte Anzahl signifikanter Bits für die numerische Größe in der begrenzten Bitlänge der Mantisse enthalten ist.
  • Eine Block-Gleitkommadarstellung ist im Stand der Technik ebenfalls bekannt und wird dazu verwendet, einen Satz von Gleitkommazahlen mit weniger Bits darzustellen, als es mit einer gewöhnlichen Gleitkommadarstellung möglich ist. Diese Technik verwendet einen Exponenten für eine Gruppe von Mantissen. Einige Mantissen in der Gruppe können nicht-normiert sein. Die Mantisse für die Größe mit dem höchsten Wert in der Gruppe wird normiert sein, vorausgesetzt sie ist nicht zu klein, d. h. der Exponent ist zum Ausdrücken des für die Normierung erforderlichen Faktors nicht in der Lage. Unabhängig davon, ob die Mantissen normiert sind oder nicht, repräsentiert der Exponent jedoch die Anzahl von Malen, um die jede ganzzahlwertige Mantisse in der Gruppe nach rechts verschoben werden muß, damit der wahre Wert der Gleitkommagröße erhalten wird.
  • 1. Teilbandexponenten
  • Der Block-Gleitkommacoder umfaßt Abschnitte eins und zwei des ungleichförmigen Quantisierers. Die von dem ersten Abschnitt ausgeführten Funktionen sind im Kasten 701 von 7 dargestellt. Dieser Abschnitt berechnet die Teilbandexponenten für jeden von verschiedenen Teilbandfrequenzkoeffizienten. Die Teilbänder sind in Tabelle I gezeigt. Die Prozedur umfaßt drei Schritte. Der erste Schritt findet den größten Transformationskoeffizienten in jedem Teilband innerhalb eines Transformationsblocks und bestimmt die Anzahl von Linksverschiebungen, die zur Normierung dieses größten 24-Bit-Koeffizienten erforderlich ist. Der zweite Schritt bestimmt entsprechende Verschiebungswerte für einen zweiten Transformationsblock. Der dritte Schritt vergleicht den Schiebewert für jedes Teilband im ersten Transformationsblock mit dem Schiebewert des entsprechenden Teilbandes im zweiten Transformationsblock, wählt den kleineren der beiden und sichert ihn als den Exponenten für das geeignete Teilband in beiden Blöcken. Die Koeffizientenmantissen in jedem Transformationsblock teilen sich die Exponenten.
  • 2. Masterexponent
  • Der zweite Abschnitt des ungleichförmigen Quantisierers bestimmt den Wert eines Ein-Bit-Masterexponenten für jede von zwei Teilbandgruppen. Der Masterexponent dient dazu, den Dynamikbereich des Coders auszudehnen. Unter Bezugnahme auf Tabelle I ist ersichtlich, daß der Masterexponent MEXP0 die niederfrequenten Teilbänder null bis achtzehn repräsentiert. Der Masterexponent MEXP1 repräsentiert die hochfrequenten Teilbänder neunzehn bis sechsunddreißig. (Für einen 20 kHz-Coder sind drei zusätzliche Teilbänder erforderlich, wie in Tabelle II gezeigt.) Wenn alle Teilbandexponenten in einer Gruppe drei oder größer sind, wird der Masterexponent für diese Gruppe auf eins gesetzt, und alle Teilbandexponenten in dieser Gruppe werden um drei verringert. Wenn ein Masterexponent auf eins gesetzt ist, dann zeigt dies an, daß alle codierten Koeffizienten innerhalb aller Teilbänder in der Gruppe dreimal mehr nach links verschoben sind als durch die Teilbandexponentenwerte angezeigt. Wenn ein Masterexponent null ist, repräsentiert jeder Teilbandexponent in der Gruppe korrekt die Gesamtlinksverschiebungen für jeden Transformationskoeffizienten in dem Teilband. Diese Masterexponenten erlauben die Verwendung kürzerer Teilbandexponenten unter gleichzeitiger Ermöglichung eines ausreichenden Dynamikbereichs. Dieser Schritt in dem Prozess ist in den Kästen 702a und 702b von 7 dargestellt.
  • Ein zusätzlicher Schritt kann ausgeführt werden, der die zur Darstellung des codierten Signals erforderlichen Gesamtbits verringern kann. In allen Teilbändern, wo ein Exponent einen einzigen Koeffizienten repräsentiert, ist das Vorzeichenbit einer normierten Mantisse überflüssig. Wie oben erörtert, haben das Vorzeichenbit und das höchstwertige Datenbit in einer normierten Mantisse immer entgegengesetzte Werte. Das Vorzeichenbit kann daher von dem Coder unterdrückt und von dem Decoder wiederhergestellt werden. Das unterdrückte Vorzeichenbit wird hier als ein "verborgenes Bit" bezeichnet.
  • Ob eine Mantisse normiert ist, kann durch Prüfen des Exponenten festgestellt werden. Wenn der Exponent kleiner ist als sein Maximalwert (der nach Justierung für den Masterexponenten bei dem in der bevorzugten Ausführungsform verwendeten Gleitkommaschema 15 beträgt), dann ist die Mantisse normiert. Wenn der Exponent gleich seinem Maximalwert ist, kann kein Schluß gezogen werden, weshalb angenommen wird, daß die Mantisse nicht normiert ist und kein verborgenes Bit vorhanden ist.
  • Diese Technik kann nur für jene Mantissen verwendet werden, die ihren eigenen einzigartigen Exponenten besitzen. Bei einer bevorzugten Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung erfüllt nur das DCT-Teilband null diese Forderung: Es setzt sich aus nur einem Transformationskoeffizienten zusammen und teilt sich seinen Exponenten nicht mit einem Teilband in dem gepaarten DST-Block. Bei Codern, die nicht Exponenten zwischen Paaren von Transformationsblöcken teilen, kann die Technik des verborgenen Bits für alle Teilbänder verwendet werden, die nur einen Koeffizienten enthalten.
  • Die Verringerung des Bitbedarfs zeigt sich in der festen Bitlänge für den DCT-Koeffizienten null. Wie in Tabelle I gezeigt, ist die "minimale" Bitlänge des Koeffizienten C(0) 8 Bits. Wenn die Technik des verborgenen Bits nicht verwendet würde, wäre die feste Länge für C(0) identisch derjenigen für den Koeffizienten S(0), also 9 Bits. In Situationen, wo der Koeffizient C(0) unnormiert ist, ist es unwahrscheinlich, daß die verringerte Bitlänge zu hörbarem Quantisierungsrauschen führt, da die Frequenzkomponente eine sehr niedrige Amplitude aufweisen wird.
  • 3. Feste Bitlänge
  • Der dritte Abschnitt des ungleichförmigen Quantisierers stellt eine anfängliche minimale Bitlänge für die Darstellung jedes linksverschobenen Transformationskoeffizienten ein. Diese Länge wird entsprechend der Frequenz des Koeffizienten eingestellt. Kasten 703 in 7 stellt diesen Abschnitt des Prozesses dar, und Tabelle I zeigt die minimale Anzahl von Bits, die für die einzelnen Koeffizientencodewörter festgelegt ist. Die minimale Bitlänge wurde aus dem Vergleich einer repräsentativen Filterbankkennlinie mit einer psychoakustischen Maskierungs-Schwellenwertkurve abgeleitet. Da die Filterleistungsfähigkeit eine Funktion lediglich der Frequenzdifferenz zwischen einem Signal und der Koeffizientenfrequenz ist, kann jeder Frequenzkoeffizient zur Darstellung der Filterbankkennlinie verwendet werden. Die in 9 gezeigte Kennlinie ist aus dem quadratischen Mittelwert der Filterantwort auf einen Bereich von Frequenzen innerhalb des Filterdurchlaßbandes gewonnen. Wie oben erörtert, wird die Filterselektivität von der Form des Analysefensters und der Anzahl von Abtastwerten in jedem Zeitbereichssignalblock beeinflußt. Es sei hier angemerkt, daß die Gesamtcoderkennlinie nicht so gut ist wie die in 9 gezeigte, weil ein zusätzlicher Selektivitätsverlust während des Signalsyntheseprozesses auftritt. Dieser Effekt wird unten erörtert und ist auch in den 17a und 17b gezeigt.
  • In 9 sind zwei psychoakustische Maskierungskurven gezeigt. Diese Kurven wurden von Fielder, "Evaluation of the Audible Distortion and Noise Produced by Digital-Audio Converters", J. Audio Engl. Soc., Bd. 35, 1988, S. 517–534, abgeleitet. Die Gehörselektivität des menschlichen Ohres ändert sich stark mit der Frequenz. Die 1 kHz-Kurve ist jedoch repräsentativ für Ohrcharakteristiken für Frequenzen zwischen 500 und 2 kHz, und die 4 kHz-Kurve ist repräsentativ für die Antwort des Ohrs bei höheren Frequenzen. Die Rate des Übergangsbandsabfalls und die Tiefe der Sperrbandunterdrückung für einen Transformcoder müssen so groß sein wie die für die psychoakustische Maskierungskurve, um die niedrigsten Bitraten zu erreichen. Es ist insbesondere zu beachten, daß die Ohrselektivität für Frequenzen unterhalb eines 1 kHz-Maskierungstons sehr hoch ist.
  • Eine ungenügende Filterselektivität wird teilweise dadurch kompensiert, daß zusätzliche Bits für niedrigere Frequenzkoeffizienten reserviert werden. 10 vergleicht die Filterkennlinie mit der 4 kHz psychoakustischen Maskierungskurve. Da Bandbreite und Selektivität des Coders mit zunehmender Frequenz relativ zur psychoakustischen Maskierungskurve besser werden, werden weniger Bits zur Darstellung höherfrequenter Transformationskoeffizienten benötigt. Die in Tabelle I gezeigten Werte der minimalen Bitlänge reflektieren diesen Zusammenhang.
  • 11 vergleicht die 1 kHz-Maskierungskurve mit der Filterkennlinie, die so versetzt ist, daß die psychoakustische Maskierungskurve immer höher liegt. Der Versatz der Filterkennlinie beruht auf der erhöhten Genauigkeit, die durch zusätzliche Bits ermöglicht wird, welche für die niedrigerfrequenten Koeffizienten reserviert sind. Jedes zusätzliche Bit verbessert das Signal/Rausch-Verhältnis um annähernd 6 db. Die Graphik in 11 zeigt, daß ein Versatz von 8 db (oder die Genauigkeit von annähernd 1,3 zusätzlichen Bits) nötig sein kann, um einen niederfrequenten Transformationskoeffizienten zu codieren, wenn keine anderen Töne vorhanden sind, um zur Maskierungswirkung beizutragen.
  • Die sich aus den in den 9, 10 und 11 gezeigten Maskierungskurven ergebenden minimalen Längen sind jedoch konservativ, da die in diesen Figuren gezeigten Kurven den psychoakustischen Maskierungseffekt repräsentieren, der von einem Einzelton oder einem sehr schmalbandigen Geräusch erzeugt wird. 12 zeigt eine Verbundmaskierungskurve, die von einer einfachen Überlagerung der einzelnen Maskierungskurven von drei Tönen abgeleitet wurde. Empirische Daten zeigen, daß selbst diese Verbundkurve sehr konservativ ist und den tatsächlichen Maskierungseffekt von Mehrtönen unterbewertet. Darüber hinaus ist Musik im allgemeinen ein komplexeres Signal als einige wenige diskrete Frequenzen, und die daraus folgende Zunahme von Maskierungspegeln erlaubt eine Verringerung der erforderlichen Genauigkeit der Transformationskoeffizientencodewörter. Folglich werden die minimalen Bitlängen für alle Koeffizienten mit Ausnahme des DCT-Koeffizients C(0) und des DST-Koeffizienten S(1), die in Tabelle I gezeigt sind, durch Abziehen von drei Bits von der Bitlänge jedes Koeffizientencodeworts erhalten, die sich aus den Maskierungskurven in den 10 und 11 ergeben. Mit Ausnahme dieser beiden Niedrigstfrequenzkoeffizienten liefert die adaptive Bitzuweisung zusätzliche Bits, wo dies zur Genauigkeitserhöhung spezieller Koeffizienten nötig ist.
  • Wenn die Transformationskoeffizienten null und eins in den adaptiven Bitzuweisungsprozeß eingeschlossen wären, würde der E-TDAC-Coder ein Quantisierungsgeräusch bei einer Frequenz gleich der Abtastwertblockrate erzeugen, wann immer ein Eingangssignalkanal niederfrequente Spektralkomponenten enthält, deren Periode groß im Vergleich zur Abtastwertblocklänge ist. Dieses Geräusch würde durch die verknüpfte Wirkung zweier Mechanismen innerhalb des Kanals erzeugt werden, der solche niederfrequenten Komponenten enthält. Zum einen würde die E-TDAC-Trans formation die niedrigen Frequenzkomponenten in eine abwechselnde Folge von nicht-Null- und Null-Werten für den Koeffizienten null (DCT C(0) und DST S(0)) konvertieren. Der Koeffizient C(0) wäre in den DCT-Transformationsblöcken von null verschieden, aber der Koeffizient S(0) wäre in den DST-Transformationsblöcken immer null. Der Koeffizient eins (DCT C(1) und DST S(1)) würde infolge des "side lobe leakage" der Filterbank weniger stark beeinflußt. Zum anderen würde durch Einschließen der beiden Niedrigstfrequenzkoeffizienten in dem adaptiven Bitzuweisungsprozeß der Zuweisungsalgorithmus für den Kanal zwischen zwei Bitzuweisungsmustern, einen für DCT-Blöcke und den anderen für DST-Blöcke, hin- und herschalten. Da die Anzahl adaptiv zugewiesener Bits fest ist, stünden dem Koeffizienten C(0) in den DCT-Blöcken zugewiesene Bits nicht zur Zuweisung an andere Transformationskoeffizienten zur Verfügung, wie dies in den DST-Blöcken der Fall wäre. (Da der Wert des Koeffizienten S(0) immer null ist, würden ihm keinerlei adaptiv zugeordnete Bits zugewiesen werden.) Dieses abwechselnde Zuweisungsmuster würde sich als hörbares Quantisierungsgeräusch bei einer Frequenz gleich der Abtastwertblockrate von 86,1 Hz (oder 44,1 kHz/512) manifestieren.
  • Die bevorzugte Ausführungsform eines Coders gemäß der vorliegenden Erfindung weist eine feste Bitlänge von 8 Bits dem DCT-Koeffizienten C(0) und von 9 Bits dem DST-Koeffizienten S(1) zu (siehe Tabelle I) und nimmt sie von der adaptiven Bitzuweisung aus. Dieses Herausnehmen verhindert, daß das adaptive Zuweisungsschema das im voranstehenden Paragraphen beschriebene Quantisierungsgeräusch erzeugt.
  • 4. Adaptive Bitzuweisung
  • a. Überblick
  • Der vierte Abschnitt des ungleichförmigen Quantisierers führt die adaptive Bitzuweisung aus. Der Kasten 704 in 7 gibt einen Überblick über diesen Zuweisungsprozeß. Allgemein weist die Bitzuweisung für jeden Transformationsblock in vier Phasen speziellen Koeffizienten eine feste Anzahl zusätzlicher Bits zu. Die Anzahl von Bits kann so gewählt werden, daß die Signalcodierqualität und die Übertragungsbitrate ausgeglichen sind. Bei einer bevorzugten Ausführungsform ist die Zuweisungsgrenze auf 133 Bits pro Transformationsblock eingestellt, damit eine Gesamtbitrate von 128 kBits pro Sekunde erreicht wird. Bei einer Anwendung, die Fehlerkorrekturcodes verwendet (unten erörtert) muß die Grenze auf 125 Bits pro Transformationsblock gesenkt werden, damit dieselbe Bitrate erhalten bleibt. Diese Grenze wird hier als das Zuweisungsmaximum oder als die Anzahl zuweisbarer Bits bezeichnet.
  • Die momentane Verwirklichung weist ein Maximum von 4 Bits pro Koeffizient zu. Dieses Maximum stellt einen Gestaltungskompomiß zwischen Codiergenauigkeit und Gesamtbitrate dar. Fachleute werden verstehen, daß dieses Maximum und die Gesamtanzahl adaptiv zuweisbarer Bits geändert werden können, ohne das Konzept oder den Grundzweck der Erfindung zu ändern.
  • Phase null ist ein Initialisierungsprozeß für die übrigen Phasen. Phase eins weist Bits bis zu einem Maximum von vier pro Transformationskoeffizient den Koeffizienten innerhalb desselben kritischen Bandes jener Frequenzkomponenten mit der größten spektralen Energie zu. Wenn alle zuweisbaren Bits während der Phase eins zugewiesen werden, stoppt der Zuweisungsprozeß. Wenn nicht, weist Phase zwei zusätzliche Bits den Transformationskoeffizienten zu, denen Bits während der Phase eins zugewiesen wurden, derart, daß die Gesamtzahl adaptiv zugewiesener Bits für jeden Koeffizienten vier beträgt. Wenn alle zuweisbaren Bits während Phase zwei zugewiesen werden, stoppt der Zuweisungsprozeß. Wenn noch irgendwelche Bits übrigbleiben, weist Phase drei Bits jenen Koeffizienten zu, die Koeffizienten benachbart sind, denen während der Phasen eins und zwei Bits zugewiesen wurden. Eine detailliertere konzeptuelle Beschreibung dieser Prozedur erfolgt in den folgenden Absätzen. Die tatsächliche logische Implementierung der Prozedur wird später erörtert.
  • 8 ist ein Diagramm des konzeptuellen Prozesses, der zur adaptiven Zuweisung von Bits an spezielle Transformationskoeffizienten verwendet wird. Die Initialisierungsschritte der Phase null sind im Kasten 800 gezeigt. Der erste Schritt initialisiert die Elemente eines Arrays A() zu null. Der nächste Schritt identifiziert den kleinsten Teilbandexponenten, bei dem es sich um den Exponenten für das Teilband mit der größten Spektralkomponente handelt, und sichert den Wert als XMIN. Alle Teilbandexponenten werden von XMIN subtrahiert, und die Differenz in einem Array M() gespeichert. Man beachte, daß der kleinstmögliche Teilbandkoeffizient null ist und der größtmögliche Teilbandkoeffizient achtzehn, was die Summe eines Maximalwerts von fünfzehn für einen 4-Bit-Hochfrequenzteilbandexponenten plus den Wert drei für den Masterexponenten MEXP1 ist. Siehe Tabelle I. Der Bereich möglicher Werte im Array M() ist daher negativ achtzehn bis null. Im nächsten Schritt wird zu jedem Element des Arrays M() vier hinzuaddiert, und alle Elemente unter null werden auf null gesetzt. Am Ende der Phase null besteht das Array M() aus einem Satz von Elementen, einem für jedes Teilband, dessen Werte von null bis vier reichen. Die Elemente mit einem Wert von vier repräsentieren jene Teilbänder, in denen wenigstens einer der Koeffizienten in dem Teilband einen der größten Spektralkoeffizienten im gesamten Signal aufweist.
  • Phase eins baut ein anderes Array A() auf, das die Bits repräsentiert, die den Koeffizienten in den einzelnen Teilbändern zuzuweisen sind, wobei der in 8 im Kasten 801 gezeigte Prozeß verwendet wird. Jedes Element in A() entspricht einem Teilband. Unter Hinweis auf Tabelle I sei daran erinnert, daß die höheren Teilbandexponenten mehrere Transformationskoeffizienten repräsentieren, weshalb jedes Element von A() die Anzahl von Bits repräsentiert, die allen Transformationskoeffizienten in dem jeweiligen Teilband zugewiesen werden. Unter Bezugnahme auf Tabelle I repräsentiert das Teilband 13 beispielsweise die Koeffizienten 13–14. Wenn das Element A(13) den Wert eins aufweist, dann bedeutet dies, daß 2 Bits zugewiesen werden, je eines den Transformationskoeffizienten 13 und 14. Wenn unter Fortsetzung dieses Beispiels das Element A(36) den Wert zwei hat, werden 30 Bits zugewiesen, je zwei den Koeffizienten 168–182. Während des Zuweisungsprozesses wird bei Imkrementierung der einzelnen Elemente A() die Anzahl zugewiesener Bits von der Anzahl der für die Zuweisung verbleibenden Bits abgezogen.
  • Wenn alle zuweisbaren Bits während dieser oder irgendeiner folgenden Phase zugewiesen sind, wird diese Phase sofort beendet, und alle nachfolgenden Phasen werden übersprungen. Während des letzten Schritts, in welchem die Zuweisungsgrenze erreicht wird, wird die Anzahl von einem Teilband während dieses Schritts zugewiesenen Bits nicht die Anzahl von für die Zuweisung verbliebenen Bits überschreiten. Wenn das letzte der zuweisbaren Bits während der Verarbeitung eines Teilbands mit mehr als einem Koeffizienten zugewiesen wird, ist es wahrscheinlich, daß nicht allen Koeffizienten in diesem Teilband dieselbe Anzahl von Bits zugewiesen wird.
  • Beginnend mit dem Element des Arrays M(), das den niedrigsten Frequenzkoeffizienten (M(1) für DCT-Blöcke oder Element M(2) für DST-Blöcke) repräsentiert, wird jedes Element von M() nacheinander untersucht. Das Array M() wird bis zu viermal oder bis alle zuweisbaren Bits zugewiesen wurden durchlaufen. Beim ersten Durchlauf wird jedes Element im Array A() um eins inkrementiert, wenn das entsprechende Element im Array M() einen Wert gleich vier aufweist. Der zweite Durchlauf inkrementiert jedes Element in A() um eins, das einem jeweiligen Element in M() entspricht, welches einen Wert von drei oder vier aufweist. Im dritten Durchlauf werden Elemente des Arrays A() inkrementiert, deren zugehöriges Element von M() einen Wert im Bereich von zwei bis vier aufweist. Der letzte Durchlauf inkrementiert solche Elemente im Array A(), die Elementen in M() entsprechen, die einen Wert im Bereich zwischen eins und vier aufweisen. Es ist anzumerken, daß, wenn die Elemente im Array M() sich zur Zuweisungsgrenze oder weniger summieren, die Inhalte der Arrays M() und A() an diesem Punkt identisch sein werden. Wenn die Anzahl zugewiesener Bits die Zuweisungsgrenze erreicht hat, ist die Bitzuweisung am Ende der Phase eins abgeschlossen.
  • Wenn irgendwelche zuweisbaren Bits übrigbleiben, wird die Zuweisung mit der im Kasten 802 von 8 gezeigten Phase zwei fortgesetzt. Diese Phase durchläuft den Array A() bis zu dreimal, wobei sie früher stoppt, falls und wenn die maximal zuweisbaren Bits zugewiesen sind. Jeder Durchlauf startet mit dem Element niedrigster Frequenz (A(1) für DCT-Blöcke oder A(2) für DST-Blöcke) und arbeitet in der Frequenz nach oben. Beim ersten Durchlauf durch das Array A() wird jedes Element, das einen Wert zwischen eins und drei aufweist, um eins inkrementiert. Beim zweiten Durchlauf werden Elemente mit einem Wert von zwei oder drei inkrementiert. Beim dritten Durchlauf werden Elemente inkrementiert, deren Wert gleich drei ist. Wenn diese Phase abgeschlossen wird, ohne die Zuweisungsgrenze zu überschreiten, wird jedes Element im Array A() einen Wert von entweder vier oder null aufweisen.
  • Wenn irgendwelche zuweisbaren Bits übrigbleiben, setzt sich die Zuweisung mit der im Kasten 803 in 8 gezeigten Phase drei fort. Wie die vorigen Phasen wird die Phase drei der Zuweisung abschließen, sobald die Zuweisungsgrenze erreicht wurde. Diese letzte Phase weist zusätzliche Bits solchen Transformationskoeffizienten mit niedrigerer spektraler Energie zu, die Teilbändern mit Koeffizienten mit höherer Energie benachbart sind. Diese Zuweisung erfolgt in drei Schritten. Der erste Schritt durchsucht das Array A(), beginnend mit dem Element A(36) der höchsten Frequenz (Element A(39) ist das Startelement bei Codern mit 20 kHz Bandbreite) nach einer Gruppe zweier benachbarter Elemente, die die Werte {0,4} aufweisen. Wenn eine solche Gruppe gefunden wird, wird das Element, dessen Wert null ist, auf eins gesetzt, so daß die Gruppenwerte zu {1,4} werden.
  • Wenn die Zuweisungsgrenze noch nicht erreicht wurde, beginnt Schritt zwei der Phase drei mit dem Durchsuchen des Arrays A() beginnend mit dem Teilband der höchsten Frequenz nach unten, und zwar nach einer Gruppe zweier benachbarter Elemente mit den Werten {4,0}. Wenn eine solche Gruppe gefunden wird, wird das Element mit dem Wert null auf eins gesetzt, so daß Werte {4,1} erzeugt werden.
  • Der dritte und letzte Schritt der Phase drei weist zusätzliche Bits den Koeffizienten in Teilbändern zu, denen Bits in den Schritten eins und zwei dieser Phase zugewiesen wurden. Beginnend mit dem Element höchster Frequenz des Arrays A() wird jedes im Schritt eins modifizierte Element inkrementiert. Schließlich werden im Schritt zwei modifizierte Elemente inkrementiert, und zwar beginnend mit den Teilbändern höchster Frequenz. Dieser dritte Schritt inkrementiert die Arrayelemente reiterativ in derselben Reihenfolge wie oben beschrieben, bis alle zuweisbaren Bits zugewiesen wurden oder bis allen in den Schritten eins und zwei modifizierten Elementen insgesamt je vier Bit zugewiesen wurden. Wenn die letztere Bedingung erfüllt ist und irgendwelche zuweisbaren Bits übrigbleiben, wird Phase drei beginnend mit Schritt eins wiederholt.
  • b. Adaptive Bitzuweisungslogik
  • Das Konzept des adaptiven Bitzuweisungsalgorithmus ist in 8 dargestellt und wurde oben beschrieben. Das Verständnis des Konzepts des Algorithmus ist hilfreich zum Verständnis der tatsächlichen Logik der adaptiven Bitzuweisungsroutine.
  • Phase null beginnt mit der Initialisierung aller Elemente des Arrays A() auf null und baut vier Tabellen T1 bis T4 auf. Der Aufbau der Tabellen wird durch die folgenden Schritte erreicht: (1) Identifiziere den kleinsten Teilbandexponenten und sichere diesen Wert als XMIN; (2) beginnend mit dem Teilband der niedrigsten Frequenz (Teilband 1 für DCT-Blöcke oder Teilband 2 für DST-Blöcke), subtrahiere den Teilbandexponenten (siehe Tabelle I) von XMIN; (3) wenn die Differenz null ist, füge die Teilbandnummer in die Tabellen T1, T2, T3 und T4 ein; (4) wenn die Differenz minus eins ist, füge die Teilbandnummer in die Tabellen T1, T2 und T3 ein; (5) wenn die Differenz minus zwei ist, füge die Teilbandnummer in die Tabellen T1 und T2 ein; (6) wenn die Differenz minus drei ist, füge die Teilbandnummer in die Tabelle T1 ein; (7) setze Schritte drei bis sechs für jedes Teilband fort, bis alle Teilbänder verarbeitet wurden. Am Ende dieses Schritts enthält die Tabelle T1 die Nummern aller Teilbänder, die Exponenten im Bereich XMIN–3 bis XMIN aufweisen, die Tabelle T2 enthält Teilbänder mit Exponenten von XMIN–2 bis XMIN. die Tabelle T3 enthält Teilbänder mit Exponenten XMIN–1 bis XMIN und die Tabelle T4 enthält Teilbänder mit Exponenten gleich XMIN. Es ist von Bedeutung, daß die Teilbandeinträge in jeder Tabelle in aufsteigender Folge gemäß der Frequenz erfolgen.
  • Die Phase eins weist Bits Transformationskoeffizienten in Teilbändern mit den größten Teilbandexponenten zu. Beginnend mit dem ersten (niedrigstfrequenten) Eintrag in Tabelle T4, wird ein Bit jedem Transformationskoeffizienten innerhalb jedes in der Tabelle repräsentierten Teilbandes zugewiesen. Die Zuweisung wird der Reihe nach für die Tabellen T3, T2 und schließlich die Tabelle T1 wiederholt. Dieser Prozeß wird fortgesetzt, bis alle zuweisbaren Bits zugewiesen wurden oder alle Einträge in den Tabellen T4 bis T1 verarbeitet wurden. Wenn ein Bit allen Koeffizienten in einem Teilband zugewiesen wird, wird ein Eintrag im Array A(), der diesem Teilband entspricht, um eins inkrementiert, so daß die Elemente im A() die Gesamtbits reflektieren, die den einzelnen Transformationskoeffizienten in dem jeweiligen Teilband zugewiesen wurden.
  • Wie vorher erwähnt, endet die Zuweisung sofort, wenn alle zuweisbaren Bits zugewiesen wurden. Jeder Tabelleneintrag repräsentiert ein Teilband, welches im allgemeinen mehrere Transformationskoeffizienten enthält. Wenn daher die letzten der zuweisbaren Bits einem Tabelleneintrag, der ein Teilband mit mehr als einem Koeffizienten repräsentiert, zugewiesen wurden, dann ist es wahrscheinlich, daß nicht allen Koeffizienten in diesem Teilband dieselbe Anzahl von Bits zugewiesen werden kann. In solchen Situationen merkt der Zuweisungsprozeß, von welchen Koeffizienten in dem Teilband ein Bit von der Zuweisungsmenge des Teilbands, die nachfolgend im Array A() gespeichert wird, abgezogen werden muß.
  • Die Phase zwei bildet vier neue Tabellen T1 bis T4, wobei sie eine Prozedur verwendet, die ähnlich der in der Phase null verwendeten ist: (1) XMIN behält immer noch den kleinsten Teilbandexponenten; (2) für das Teilband mit der niedrigsten Frequenz (Teilband 1 für DCT-Blöcke oder Teilband 2 für DST-Blöcke) subtrahiere den Teilbandexponenten von XMIN; (3) wenn die Differenz null ist, füge die Teilbandnummer in die Tabelle T4 ein; (4) wenn die Differenz minus eins ist, füge die Teilbandnummer in die Tabelle T3 ein; (5) wenn die Differenz minus zwei ist, füge die Teilbandnummer in die Tabelle T2 ein; (6) wenn die Differenz minus drei ist, füge die Teilbandnummer in die Tabelle T1 ein; (7) führe die Schritte drei bis sechs für jedes Teilband aus, bis alle Teilbänder verarbeitet wurden. Am Ende dieses Schritts enthält die Tabelle T1 die Nummern aller Teilbänder mit Exponenten gleich XMIN–3, die Tabelle T2 enthält Teilbänder mit Exponenten gleich XMIN–2, die Tabelle T3 enthält Teilbänder mit Exponenten XMIN–1 und die Tabelle T4 enthält Teilbänder mit Exponenten XMIN. Die Einträge in allen Tabellen sind in aufsteigender Folge gemäß der Frequenz des Transformationskoeffizienten.
  • Die Phase zwei weist Bits allen Koeffizienten zu, die durch Teilbänder in den Tabellen T3 bis T1 repräsentiert sind, bis jeder Koeffizient eine Gesamtanzahl von vier zusätzlichen Bits erhalten hat, oder bis die Zuweisungsgrenze erreicht wurde. Beginnend mit dem ersten (niedrigstfrequenten) Eintrag in Tabelle T3, wird ein Bit jedem Koeffizienten zugewiesen, der in einem der in der Tabelle repräsentierten Teilbänder enthalten ist. Wenn ein jeweiliges Teilband verarbeitet ist, wird der Eintrag aus der Tabelle T3 entfernt und in die Tabelle T4 eingetragen. Als nächstes wird Koeffizienten, die Einträgen in Tabelle T2 zugeordnet sind, ein zusätzliches Bit zugewiesen, wobei jeder Eintrag von der Tabelle T2 zur Tabelle T3 bewegt wird, wenn das zusätzliche Bit zugewiesen ist. Dann werden Einträge in Tabelle T1 verarbeitet, wobei die Einträge von Tabelle T1 zu Tabelle T2 bewegt werden. Wenn irgendwelche zuweisbaren Bits übrigbleiben, wird die Zuweisung mit Wiederholung des Prozesses für Tabelle T3 und dann Tabelle T2 fortgesetzt. Wenn Bits für die Zuweisung übrigbleiben, erfolgt ein letzter Durchlauf durch die Einträge in Tabelle T3. Wenn die Phase zwei nicht alle übriggebliebenen zuweisbaren Bits zuweist, enthält die Tabelle T4 alle die Koeffizienten, von denen jeder vier Bits erhalten hat, und die Tabellen T3 bis T1 sind leer. Wenn alle zuweisbaren Bits zugewiesen sind, wird das Array A() aus der in den Tabellen T1 bis T4 enthaltenen Information neu aufgebaut, um die Gesamtbits zu reflektieren, die jedem Transformationskoeffizienten zugewiesen wurden. Jedem Element im Array A(), der einem Eintrag in der Tabelle T4 entspricht, wird ein Wert vier zugewiesen. Jedem Element von A(), das einem Eintrag in Tabelle T3 entspricht, wird ein Wert von drei zugewiesen, für Tabelle T2 ein Wert von zwei und für Tabelle T1 ein Wert von eins. Alle anderen Elemente von A(), d.h. jene Teilbänder, die nicht durch Einträge in den Tabellen T1 bis T4 repräsentiert sind, sind null.
  • Wenn irgendwelche zuweisbaren Bits übriggeblieben sind, setzt sich die Zuweisung mit Phase drei fort. Tabelle T4 wird zur Ordnung der Teilbandnummern in abfallender Frequenz sortiert. Der erste Schritt fügt Teilbänder zur Tabelle T1 zu, die nicht in Tabelle T4 sind, die in der Frequenz niedriger sind und Teilbändern benachbart sind, die sich in Tabelle T4 befinden. Beginnend mit dem ersten Eintrag (höchste Frequenz) in Tabelle T4 werden benachbarte Einträge in der Tabelle untersucht, um zu bestimmen, ob sie durch ein oder mehr Teilbänder getrennt sind. Wenn sie dies sind, dann wird die Nummer des Teilbandes unmittelbar unter dem höheren Teilband in Tabelle T1 eingesetzt. Man nehme beispielsweise an, zwei benachbarte Einträge in Tabelle T4 repräsentierten die Teilbänder 12 und 16. Diese beiden Teilbänder sind um drei Teilbänder voneinander getrennt. Daher würde die Nummer 15, die das Teilband unter dem Teilband 16 repräsentiert, in die Tabelle T1 eingesetzt werden.
  • Der zweite Schritt fügt Teilbänder zur Tabelle T1 hinzu, die nicht in Tabelle T4 sind, deren Frequenz höher ist und die in Tabelle T4 enthaltenen Teilbändern benachbart sind. Beginnend mit dem ersten Eintrag (höchste Frequenz) in Tabelle T4 werden benachbarte Einträge in der Tabelle daraufhin untersucht, ob sie durch ein oder mehr Teilbänder voneinander getrennt sind. Wenn dies der Fall ist, wird die Nummer des Teilbandes unmittelbar über dem unteren Teilband in die Tabelle T1 eingesetzt. Man nehme beispielshalber an, zwei benachbarte Einträge in Tabelle T4 stellten die Teilbänder 16 und 12 dar. Wie oben erwähnt, sind diese beiden Teilbänder durch drei Teilbänder voneinander getrennt. Daher würde die Nummer 13, die das Teilband über dem Teilband 12 repräsentiert, in die Tabelle T1 eingesetzt werden.
  • Beginnend mit dem ersten Eintrag in Tabelle T1 wird ein zusätzliches Bit jedem Transformationskoeffizienten zugewiesen, der jeweils einem Teilband zugeordnet ist, welches durch einen Eintrag in Tabelle T1 repräsentiert ist. Während jeder Teilbandeintrag verarbeitet wird, wird er von Tabelle T1 in Tabelle T2 bewegt. Wenn nach Verarbeitung der Tabelle T1 irgendwelche zuweisbaren Bits übrigbleiben, wird ein ähnlicher Prozeß für die Einträge in Tabelle T2 wiederholt, wobei jeder Eintrag von Tabelle T2 in Tabelle T3 bewegt wird. Die Verarbeitung geht mit Tabelle T3 weiter, wenn irgendwelche Bits für die Zuweisung übrigbleiben, wobei die Einträge von Tabelle T3 in Tabelle T4 bewegt werden. Wenn nach diesem Schritt irgendwelche Bits übrigbleiben, wird Phase drei vom Anfang wiederholt, wobei zunächst festgestellt wird, ob die Einträge in Tabelle T4 noch sortiert sind und, falls dies nicht der Fall ist, die Tabelle T4 in abfallender Frequenzreihenfolge sortiert wird. Wenn alle zuweisbaren Bits zugewiesen wurden, wird aus den vier Tabellen das Array A() aufgebaut, wie dies oben für die Phase zwei beschrieben wurde.
  • Nachdem alle Bits zugewiesen wurden, wird jedes Transformationskoeffizientencodewort auf eine Bitlänge gleich dem Wert des Feldes des Arrays A() abgerundet, der das Teilband repräsentiert, in welchen der Koeffizient eingruppiert ist. Bei einigen Koeffizienten in einem Teilband kann jedoch ein Bit von ihrer Länge abgezogen werden, wenn dies erforderlich ist, um die Gesamtanzahl der zugewiesenen Bits gleich dem Zuweisungsmaximum zu machen.
  • 5. Codewortabschneidung
  • Der fünfte Abschnitt des ungleichförmigen Quantisierers, der im Kasten 705 von 7 gezeigt ist, folgt der adaptiven Bitzuweisungsroutine. Unter Verwendung der Teilband- und Masterexponenten, die in den vorhergehenden Abschnitten bestimmt wurden, wird jeder Transformationskoeffizient in einem Transformationsblock nach links verschoben, und zwar eine Anzahl von Malen gleich dem Wert des Exponenten für das Teilband, in das der Koeffizient eingruppiert ist, plus drei weiteren Verschiebungen, wenn der zugehörige Masterexponent auf eins gesetzt ist. Die Gesamtbitlänge jedes Koeffizienten wird dann durch Addieren seiner minimalen Bitlänge (siehe Tabelle I) zu der sich aus dem Array A() ergebenen Anzahl von adaptiv zugewiesenen Bits, die Koeffizienten in den einzelnen Teilbändern zugewiesen wurden, errechnet. Jedes Transformationskoeffizientencodewort wird auf diese Bitlänge abgerundet.
  • Wie oben beschrieben repräsentiert jedes Element des Arrays A() die Anzahl von Bits, die allen Koeffizienten innerhalb eines Teilbandes zugewiesen wurden. Bei einigen Koeffizienten in einem Teilband kann ein Bit von ihrer Länge abgezogen werden, wenn es erforderlich ist, um die Gesamtanzahl von dem Transformationsblock zugewiesenen Bits gleich dem Zuweisungsmaximum zu machen.
  • E. Formatierung
  • Der Formatierungsprozeß bereitet ein Paar codierter Transformationsblöcke für die Übertragung oder Speicherung vor. Dieser Prozeß ist durch den Kasten 109 in 1a dargestellt. Die folgende Beschreibung betrachtet die Formatierung von zwei benachbarten Transformationsblöcken in einem Einkanalsystem. Dieselbe Technik kann zur Formatierung eines Transformationsblocks von jedem Kanal eines Zweikanalsystems, das Signale wie etwa die in stereophonen Anwendungen verwendeten verarbeitet, benutzt werden.
  • Eine Festlängendarstellung jedes Transformationskoeffizientencodeworts wird durch Abschneiden des abgerundeten Codeworts auf eine Länge gleich der minimalen Bitlänge, die in Tabelle I gezeigt ist, gebildet. Alle dem Codewort zugewiesenen zusätzlichen Bits werden in einem adaptiven Bitblock gesondert formatiert. Die Masterexponenten, Teilbandexponenten, abgeschnittenen Koeffizientencodewörter und adaptive Bitblocks werden dann in der in 20 gezeigten Gruppierung zusammengefügt. Man beachte, daß sich ein Satz von Master- und Teilbandexponenten auf beide Transformationsblöcke in dem Blockpaar bezieht. (Siehe die obige Diskussion des ungleichförmigen Quantisierers.) Dadurch, daß sich jedes Paar von Blöcken Exponenten teilt, wird die Gesamtanzahl von Bits, die zur Darstellung der Exponenten für die beiden Transformationsblöcke erforderlich ist, um 50% reduziert.
  • Der formatierte Rahmen der Transformationsblöcke in 20 zeigt einen Aufbau, bei dem der Transformationsblock A ein DCT-Block und der Block B ein DST-Block ist. Wenn dieser Rahmen Bitfehlern ausgesetzt ist, wie sie etwa durch Störungen bei einer Übertragung auftreten, werden Fehlerkorrekturcodes gemäß Darstellung in 21 mit den Daten vermischt. Zusätzliche Vorlaufbits können erforderlich sein, wie etwa Rahmensynchronisationsbits, wenn das digitale Signal für eine Übertragung gedacht ist, oder Datenbankzeiger oder Datensatzschlüssel, wenn die Rahmen zur Speicherung gedacht sind. Wenn Rahmensynchronisationsbits erforderlich sind, wird der formatierte Rahmen unter Verwendung einer in Smith, Digital Transmission Systems, New York, NY: Van Nostrand Reinhold Co., 1985, S. 228–236, beschriebenen Technik randomisiert. Das Randomisieren erfolgt zu dem Zweck, die Wahrscheinlichkeit zu verringern, daß gültige Daten innerhalb des Rahmens als Synchronisationsmuster fehlerkannt werden. Der randomisierte Rahmen wird dann an die Rahmensynchronisationsbits angehängt.
  • Man beachte, daß jeder Transformationskoeffizient von bis zu zwei verschiedenen Teilen oder Segmenten repräsentiert werden kann. Der erste Teil stellt die minimale Länge des Koeffizienten dar und setzt sich aus einer festen Anzahl von Bits zusammen. Siehe Tabelle I. Der zweite Teil der Darstellung, so vorhanden, ist von variabler Länge und setzt sich aus den adaptiv zugewiesenen Bits zusammen. Dieses Darstellungsschema in zwei Teilen wird einem solchen vorgezogen, bei dem jeder Koeffizient als ein Wort variabler Länge dargestellt wird, weil es gegenüber einer Verfälschung durch Störungen weniger anfällig ist. Wenn eine Bündelstörung in einem das bevorzugte Schema verwendenden Rahmen auftritt, werden die Wirkungen der Störung begrenzt sein auf den Wert der Exponenten, der Codewörter oder der zugewiesenen Bits, die von der Störung direkt betroffen sind. Wenn eine Bündelstörung in einem Rahmen auftritt, der Codewörter variabler Länge verwendet, dann können sich die Auswirkungen der Störung über den gesamten Rest des Rahmens ausdehnen. Dieses Ausdehnen kann auftreten, weil das Störungsbündel nicht nur den Wert der Exponenten und Codewörter, die von der Störung direkt betroffen sind, sondern auch Information ändern wird, die zur Bestimmung der Länge der einzelnen Codewörter variabler Länge erforderlich ist. Wenn die Länge eines Codeworts fehlerhaft ist, wird der Rest des Rahmens fehlinterpretiert.
  • Ein codierter DCT-Transformationsblock enthält 183 Koeffizientenmantissen mit 537 Bits (siehe Tabelle I) und 133 adaptiv zugewiesenen Bits für eine Gesamtheit von 670 Bits. Da der DST-Koeffizient S(0) immer null ist (siehe Tabelle I und Ausdruck 4), braucht er nicht übertragen oder gespeichert zu werden. Daher umfassen die Mantissen und zugewiesenen Bits des DST-Blocks nur 666 Bits. Die beiden Masterexponentbits und 37 Teilbandexponenten von 148 Bits bringen die DCT/DST-Blockpaarlänge auf 1486 Bits. (Für die 20 kHz-Ausführungsform beträgt die Gesamtblockpaarlänge 1702 Bits.)
  • Eine Seiteninformation zur Angabe derjenigen Koeffizienten, denen zusätzliche Bits zugewiesen wurden, ist nicht erforderlich. Der Deformatierungsprozeß ist in der Lage, die richtige Zuweisung anhand der übertragenen Teilbandexponenten zu bestimmen, indem derselbe Zuweisungsalgorithmus ausgeführt wird, der bei der Codierung verwendet wurde.
  • Wenn Datenverfälschung kein Problem ist, sieht ein bevorzugter Aufbau zur Formatierung eines Rahmens von Transformationsblöcken so aus, daß zunächst die Exponenten, dann die Koeffizientencodewörter und schließlich die adaptiv zugewiesenen Bits angeordnet werden. Dies verringert Verarbeitungsverzögerungen da, nachdem alle Teilbandexponenten empfangen wurden, der Deformatierungsprozeß in der Lage ist zu bestimmen, welche Bitzuweisungen bei den einzelnen Transformationskoeffizienten erfolgt sind, während die adaptiven Bitblöcke empfangen werden. Der Formatierungsaufbau, der bei der bevorzugten Ausführungsform eines Coders gemäß der vorliegenden Erfindung verwendet wird, ist in 20 gezeigt. Die Bitfolge wird mit aufsteigender Frequenzreihenfolge der Master- und Teilbandexponenten formatiert. Dann werden die Festlängenabschnitte der Koeffizientencodewörter für Transformationsblock A in aufsteigender Frequenzreihenfolge zusammengesetzt, gefolgt von den Koeffizientencodewörtern von Transformationsblock B. Schließlich werden die adaptiven Bitblöcke für Block A gefolgt von den adaptiven Bitblöcken für Block B an die Bitfolge angehängt.
  • Bei Anwendungen, wo mögliche Datenverfälschung in Betracht zu ziehen ist, ist ein Fehlerkorrekturschema nötig. Fehler bei Teilbandexponenten und, in geringerem Ausmaß, Fehler bei den Koeffizientencodewörtern niedrigerer Frequenzen erzeugen im allgemeinen die stärkste hörbare Verzerrung. Bei dieser Information handelt es sich um die kritischsten zu schützenden Daten. Ein bevorzugtes Schema schützt die Master- und Teilbandexponenten mit Fehlererkennungs- und -korrekturcodes und trennt diese Werte so weit wie möglich, um ihre Immunität gegenüber Störungsbündelfehlern zu verbessern. Solch ein Schema ist in 21 gezeigt.
  • Für Fachleute ist ersichtlich, daß andere Rahmenformate und Korrekturcodes verwendet werden können, ohne die grundlegende Erfindung zu verlassen.
  • Wenn Fehlerkorrekturcodes verwendet werden, werden weniger adaptiv zugewiesene Bits benutzt, um die gleiche Gesamtbitrate beizubehalten. Die Gesamtanzahl von Exponenten- und Mantissenbits für einen Rahmen eines DCTIDST-Blockpaares beträgt 1220 Bits. Von dieser Länge sind 150 Bits Teilband- und Masterexponenten. Ein (21,19) Reed-Solomon-Fehlerkorrekturcode wird der Bitfolge hinzugefügt. Der 16 Bit lange Code liefert eine Einzelsymbolfehlererkennung/korrektur für bis zu neunzehn 8-Bit-Symbole (Bytes) oder 152 Bits. Siehe beispielsweise Peterson and Weldon, Error-Correcting Codes, Cambridge, Mass: The M.I.T. Press, 1986, S. 269–309, 361–362.
  • Von den 152 Bits, die von dem Code geschützt werden können, stellen 150 die Master- und Teilbandexponentenbits dar (15 kHz-Version). Die verbleibende Fehlerkorrekturkapazität wird zum redundanten Schutz für die beiden Masterexponenten verwendet. Insgesamt achtzehn Bits sind zur Darstellung des 16-Bit-Fehlercodes und redundanter Masterexponenten erforderlich. Diese Bits werden der formatierten Datenfolge ohne Erhöhung der Gesamtdatenrate dadurch hinzugefügt, daß die Anzahl von für die adaptive Bitzuweisung zur Verfügung stehenden Bits verringert wird. Als Folge daraus ergibt sich, daß die gesamt zuweisbaren Bits für jeden Block in dem Transformationsblockpaar von 133 auf 124 verringert wird.
  • Die Reed-Solomon-Codes verarbeiten Daten in Bytes, weshalb die Fehlercodes, geschützten Daten und ungeschützten Daten zur Vereinfachung der Verarbeitung in 8-Bit-Bytes gruppiert sind. Das Verhältnis von geschützten Daten zu ungeschützten Daten in jedem Blockpaarrahmen beträgt annähernd neun zu eins. Dies erlaubt es, geschützte Daten über den formatierten Rahmen zu verstreuen, so daß jedes 8-Bit-Byte geschützter Daten durch acht Bytes ungeschützter Daten getrennt ist. Siehe 21. Mit dieser Technik kann ein einzelner Bündelfehler von bis zu 65 Bits irgendwo in dem Rahmen auftreten, ohne mehr als ein geschütztes Datenbyte zu verfälschen. Daher können geschützte Daten von irgendeinem einzelnen Störungsbündel von nicht mehr als 65 Bits Länge wiedergewonnen werden.
  • Mit den oben erörterten Beschränkungen werden Exponenten und Transformationskoeffizientencodewörter in aufsteigender Frequenzfolge zusammengesetzt und von den adaptiven Bitblöcken gefolgt.
  • F. Übertragung oder Speicherung
  • Der formatierte Rahmen ist nun zur Übertragung oder Speicherung bereit. 1a stellt Übertragungsmittel 110 dar. Übertragungsmedien schließen öffentliche Verbreitung wie Rundfunk, interne Verwendung wie Studioüberwachung oder Signalmischen, sowie "Interfacility" oder telefonische Verwendung über Erd- oder Satellitenverbindungen ein. Speichermedien umfassen Magnetband sowie magnetische oder optische Platten.
  • G. Deformatierung
  • Ein Deformatierungsprozeß findet statt, wenn das digitalisierte und codierte Signal von der Übertragungseinrichtung 111 entweder durch Empfang eines übertragenen Signals oder Abrufen vom Speicher empfangen wird. Der Prozeß ist durch den Kasten 112 in 1b repräsentiert. Wenn der formatierte Rahmen von Codewörtern vor der Übertragung randomisiert wurde, wird der formatierte Rahmen mittels eines inversen Randomisierungsprozesses zurückgewonnen. Dann wird der Rahmen in die Bestandteile jedes einzelnen Transformationsblocks aufgeteilt: Die Masterexponenten, Teilbandexponenten, Festlängenabschnitt der Transformationskoeffizientencodewörter und adaptiv zugewiesenen Bits. Fehlerkorrekturcodes, so vorhanden, können zur Korrektur von Fehlern verwendet werden, die bei der Übertragung oder Speicherung eingeführt wurden.
  • Jedes der Masterexponentbits wird mit seinem entsprechenden redundanten Bit geprüft, um die Richtigkeit zu verifizieren. Wenn diese Prüfung einen Fehler anzeigt, d.h. wenn ein Masterexponent und sein redundantes Gegenstück nicht gleich sind, wird der Wert des Masterexponents zu eins angenommen. Wenn der richtige Wert des Masterexponents tatsächlich null ist, wird diese Annahme die Amplitude aller Transformationskoeffizienten innerhalb der Teilbänder, die unter dem fehlerhaften Masterexponent eingruppiert sind, verringern. Diese Annahme produziert weniger beanstandungswerte Verzerrung als das fehlerhafte Setzen eines Masterexponenten auf null (wenn er eins sein sollte), was die Amplitude bei betroffenen Koeffizienten vergrößern würde.
  • Der Exponent für den DCT-Koeffizienten C(0) wird ebenfalls geprüft um festzustellen, ob irgendwelche Einstellungen bezüglich eines verborgenen Bits nötig sind.
  • Die oben erörterte adaptive Bitzuweisungsroutine wird zur Verarbeitung der aus dem empfangenen Signal extrahierten Exponenten verwendet, und die Ergebnisse dieses Prozesses werden zur Bestimmung der richtigen Zuordnung der adaptiven Bitblöcke zu den Transformationskoeffizienten verwendet. Der Teil jedes Transformationskoeffizienten, dessen Länge gleich der Minimumbitlänge plus irgendwelcher adaptiv zugewiesener Bits ist, wird in ein 24-Bit-Wort geladen und dann nach rechts verschoben, und zwar um eine Anzahl von Malen gleich dem Wert des zutreffenden Teilbandexponenten plus dreier zusätzlicher Verschiebungen, wenn der zugeordnete Masterexponent auf eins gesetzt ist. Dieser Prozeß ist durch den Kasten 113 in 1b repräsentiert.
  • H. Synthesefilterbank-Rücktransformation
  • Der Kasten 114 in 1b repräsentiert eine Bank von Synthesefiltern, die jeden Satz von durch die Deformatierungs- und Linearisierungsprozeduren rückgewonnenen Frequenzbereichskoeffizienten in einen Block von Zeitbereichssignalabtastwerten transformieren. Eine Transformation, die zu der in der Analysefilterbank 104 in 1a verwendeten invers ist, implementiert die Synthesefilterbank 114. Die inversen Transformationen für die E-TDAC-Technik, die bei dieser Ausführungsform eines Decoders gemäß der vorliegenden Erfindung verwendet wird, sind abwechselnde Anwendungen einer modifizierten inversen DCT und einer modifizierten inversen DST. Da die Hälfte der Transformationsblöcke von der Übertragung oder Speicherung ausgeschlossen sind (siehe Ausdruck 5), müssen jene Blöcke für die inversen oder Rücktransformationen neu geschaffen werden. Die fehlenden DCT-Blöcke können von den verfügbaren DCT-Blöcken neu geschaffen werden, wie in Gleichung 8 gezeigt. Die fehlenden DST-Blöcke können nach Gleichung 9 neu geschaffen werden. Die inverse DCT ist in Gleichung 10 ausgedrückt, und die inverse DST ist in Gleichung 11 ausgedrückt. Ĉ(k) = Ĉ(N–k) für N/2 ≤ k < N (8) Ŝ(k) = Ŝ(N–k) für N/2 < k ≤ N (9)
    Figure 00380001
    wobei
  • k
    = Transformationskoeffizientennummer,
    n
    = Signalabtastwertnummer,
    K
    = Anzahl von Transformationskoeffizienten,
    N
    = Abtastwertblocklänge,
    m
    = Phasenterm für E-TDAC (siehe Gleichung 6),
    Ĉ(k)
    = quantizierter DCT-Koeffizient k,
    Ŝ(k)
    = quantizierter DST-Koeffizient k, und
    X ^(n)
    = wiedergewonnenes quantiziertes Signal x(n).
  • Die Berechnungen erfolgen unter Verwendung eines FFT-Algorithmus. Dieselben Techniken, wie sie in der Vorwärtstransformation eingesetzt wurden, werden bei der Rücktransformation benutzt, um eine gleichzeitige Berechnung sowohl der DCT als auch der DST unter Verwendung einer einzigen FFT zu gestatten.
  • Die 14a bis 14e und 16a bis 16g illustrieren den Transformationsprozeß der Analyse-Synthese-Filterbanken. Die Analysefilterbank transformiert das Zeitbereichssignal in eine abwechselnde Folge von DCT- und DST-Blöcken. Die Rücktransformation führt die inverse DCT mit jedem zweiten Block und die inverse DST mit der anderen Hälfte der Blöcke aus. Wie in den 15a bis 15d gezeigt, enthält das wiedergewonnene Signal eine Aliasing-Verzerrung. Diese Verzerrung wird während eines nachfolgenden Zeitbereichsblocküberlappungs- und Addierungsprozesses aufgehoben, der durch den Kasten 116 in 1b repräsentiert ist. Der Überlappungs- und Addierungsprozeß wird unten erörtert.
  • 1. Synthesefenster
  • Die 16a bis 16g zeigen die Aufhebung des Zeitbereichsaliasing durch das Überlappen und Addieren benachbarter Zeitbereichssignalabtastwertblöcke. Wie von Princen abgeleitet, erfordert die E-TDAC-Transformation zur Aufhebung der Zeitbereichsaliasingverzerrung das Anwenden eines Synthesefensters identisch dem Analysefenster und ein Überlappen-Addieren benachbarter Blöcke. Jeder Block wird 100% überlappt; 50% durch den vorherigen Block und 50% durch den folgenden Block. Die Synthesefenstermodulation ist durch den Kasten 115 in 1b repräsentiert.
  • Der Analyse-Synthesefensterentwurf muß die Filterbankleistungsfähigkeit berücksichtigen. Da beide Fenster zur Modulation des Zeitbereichssignals verwendet werden, ist die Gesamtwirkung auf die Filterleistungsfähigkeit ähnlich der Wirkung, die von einem einzigen Fenster hervorgerufen wird, das von dem Produkt der beiden Fenster gebildet wird. Der Entwurf des Analyse-Synthesefensterpaares erfolgt daher durch Entwerfen eines geeigneten Produktfensters, das eine Punkt-für-Punkt-Multiplikation des Analysefensters mit dem Synthesefenster darstellt. Dieser Entwurf ist stark beschränkt, was die Flexibilität beim Kompromiß zwischen der Steilheit des Übergangsbandabfalls (Übergangsbandflanken) und der Tiefe der Sperrbandunterdrückung verringert. Als Folge wird die Filterleistungsfähigkeit um ein größeres Ausmaß verschlechtert, als es durch ein Nur-Analysefenster der Fall ist, das ohne diese Beschränkung ausgelegt wird. Siehe beispielsweise die 17a und 17b.
  • Während Analysefenster viel Aufmerksamkeit hervorgerufen haben, lehrt der Stand der Technik wenig über Synthesefenster. Die unten beschriebene Technik leitet ein gutes Analyse-Synthesefensterpaar von einem bekannten guten Analysefensterentwurf ab. Während jegliches Analysefenster als Startpunkt verwendet werden kann, erlauben etliche Fenster den Entwurf einer Filterbank mit guter Selektivität, und sie bieten ein Mittel für die Abwägung zwischen Steilheit der Übergangsbandflanke und der Sperrbandunterdrückung. Drei Beispiele sind das Kaiser-Bessel-Fenster, das Dolph-Chebyshev-Fenster und ein Fenster, das unter Verwendung der Parks-McClellan-Verfahrens von endlichen Impulsfilterkoeffizienten abgeleitet wird. Siehe Parks and McClellan, "Chebyshev Approximation for Nonrecursive Digital Filters with Linear Phase", IEEE Trans. Circuit Theory, Bd. CT-19, März 1972, S. 189–94. Hier wird nur das Kaiser-Bessel-Fenster erörtert. Dieses Fenster erlaubt den oben erwähnten Kompromiß durch Wahl eines einzigen parametrischen Ó-Werts. Als allgemeine Regel verbessern niedrige Ó-Werte die Übergangsbandflanke, während hohe Ó-Werte die Tiefe der Sperrbandunterdrückung erhöhen. Siehe Harris, der oben zitiert wurde.
  • Ein Ó-Wert in dem Bereich von 4 bis 7 ist bei der bevorzugten Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung verwendbar. Dieser Bereich liefert einen guten Kompromiß zwischen der Steilheit der Übergangsbandflanke bei Mittenfrequenzen (1–2 kHz) und der Tiefe der Sperrbandunterdrückung für niedrige Frequenzen (unterhalb 500 Hz) und hohe Frequenzen (oberhalb 7 kHz). Der Bereich akzeptabler Ó-Wert wurde unter Verwendung von Computersimulationen bestimmt, indem die niedrigsten Ó-Werte identifiziert wurden, die eine ausreichende Sperrbandunterdrückung aufweisen, um das Quantisierungsgeräusch unterhalb der psychoakustischen Maskierungsschwelle zu halten.
  • Die Kaiser-Bessel-Fensterfunktion ist
    Figure 00400001
    wobei
  • a
    = Kaiser-Bessel Alpha-Faktor,
    n
    = Fensterabtastwertnummer,
    N
    = Fensterlänge in Anzahl von Abtastwerten, und
    Figure 00400002
  • Zur Erfüllung der Überlappungs-Addierungs-Kriterien wird ein Analyse-Synthese-Produktfenster WP(n) der Länge N durch Faltung eines Fensters W(n) der Länge v+1 mit einem Rechteckfenster der Länge N–v abgeleitet. Der Wert v ist das Fensterüberlappungs-Additionsintervall. Der Überlappungs-Additionsprozeß hebt die Aliasverzerrung und die Modulationseffekte des Analyse- und des Synthesefensters auf. Die Faltung, die das Produktfenster ableitet, ist in Gleichung 13 gezeigt, wo der Nenner des Ausdrucks das Fenster so skaliert, daß sein Maximalwert eins annähert aber nicht überschreitet. Dieser Ausdruck kann zu dem in Gleichung 14 gezeigten vereinfacht werden.
    Figure 00400003
    Figure 00410001
    wobei
  • n
    = Produkt-Fenster-Abtastwertnummer,
    v
    = Anzahl von Abtastwerten innerhalb des Fensterüberlappungsintervals,
    N
    = gewünschte Länge des Produkt-Fensters,
    W(n)
    = Anfangsfensterfunktion der Länge v+1,
    WP(n)
    = abgeleitetes Produkt-Fenster der Länge N, und
    Figure 00410002
  • Die in den Gleichungen 15 und 16 gezeigten Analyse- und Synthesefenster erhält man dadurch, daß man das abgeleitete Produktfenster WP(n) mit A bzw. S potenziert. WA(n) = WP(n)A für 0 ≤ n < N (15) WS(n) = WP(n)S für 0 ≤ n < N (16)wobei
  • WP(n)
    = abgeleitetes Produkt-Fenster (siehe Gleichungen 13 und 14),
    WA(n)
    = Analysefenster,
    WS(n)
    = Synthesefenster,
    N
    = Länge des Produkt-Fensters, und A + S = 1.
  • Bei der bevorzugten Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung haben das Analyse- und das Synthesefenster eine Länge von 512 Abtastwerten mit einer 100%igen Fensterüberlappung oder einem Überlappungsintervall von 256 Abtastwerten. Die Werte von A und S sind auf ein-halb eingestellt, was ein Paar identischer Analyse- und Synthesefenster erzeugt, wie es für die E-TDAC-Transformation erforderlich ist. Setzt man diese Wert in Gleichung 14 ein, dann ergibt sich das resultierende Analysefenster zu
    Figure 00410003
    wobei W(n) = Kaiser-Bessel-Funktion der Länge 257 und der Alpha-Faktor im Bereich von 4 bis 7 liegt.
  • J. Überlappung-Addierung
  • Der Fensterentwurf muß einer zusätzlichen Forderung genügen: Das Analyse- und das Synthesefenster müssen so ausgelegt sein, daß sich das Analyse-Synthese-Produktfenster immer zu eins summiert, wenn zwei benachbarte Produktfenster überlappt werden. Diese Forderung wird gestellt, weil ein Überlappungs-Addierungsprozeß verwendet wird, um die Zeitbereichseffekte der Analyse- und Synthesefenstermodulation aufzuheben. Dieser Prozeß ist durch Kasten 116 in 1b repräsentiert und in den 16a bis 16g dargestellt. Die von der inversen DCT bzw. DST wiedergewonnenen Signale yc(t) und ys(t) sind in den 16a und 16d gezeigt. Jedes Signal ist in eine Reihe von Blöcken gruppiert. Jeder Signalblock wird mit den Synthesefensterfunktionen, die in den 16b und 16e gezeigt sind, moduliert. Die resultierenden Blöcke von Signalen 010c(t) und 010s(t) sind in den 16c und 16f gezeigt. Die beiden, um eine halbe Blocklänge überlappten Signale werden zur Erzeugung eines Signals y(t), das in 16g gezeigt ist, addiert. Das Signal y(t) ist eine genaue Rekonstruktion des ursprünglichen Eingangssignals.
  • Wie in 18 gezeigt, wird ein Signalabtastwert zu irgendeinem Zeitpunkt n0t innerhalb des Überlappungsintervalls zwischen dem Block k und dem Block k+1 durch einen Abtastwert in jedem der beiden Blöcke repräsentiert. Nach einem Überlappen-Addieren der beiden gefensterten Blöcke ergibt sich der wiedergewonnene Signalabtastwert zum Zeitpunkt n0t als Summe der Abtastwerte von den gefensterten Blöcken k und k + 1, was ausgedrückt werden kann als x(n0t) = WPk(n0t)·x(n0t) + WPk+1(n0t)·x(n0t) (18)wobei
  • WPk(n0t)
    = WAk(n0t)·WSk(n0t) = {WAk(n0t)}2.
    WAk(not)
    = Analysefenster im Block k zum Zeitpunkt n0t,
    WSk(n0t)
    = Synthesefenster im Block k zum Zeitpunkt n0t, und
    WAk(n0t)
    = WSk(n0t) wie durch die E-TDAC-Transformation gefordert.
  • Die Produktfenstermodulationseffekte werden aufgehoben, wenn die Summe der beiden benachbarten Produktfenster über das Fensterüberlappungsintervall gleich eins ist. Daher kann das Signal x(nt) exakt wiedergewonnen werden, wenn WPk(nt) + WPk+1(nt) = für 0 ≤ n < N (19)für alle Zeitabtastwerte nt innerhalb des Überlappungsintervalls zwischen Block k und Block k+1.
  • Es ist schwierig, mit dem Produktfenster als einer Funktion der Zeit zu arbeiten, so daß es günstig ist, die durch Gleichung 19 ausgedrückte Forderung in eine Funktion der Fensterabtastwertnummer n zu übersetzen. Die Gleichungen 20 bis 23 drücken diese Forderung für ein Produktfenster aus, das von dem Produkt eines Paares von 512 Abtastwert-Analyse- und Synthesefenstern mit einer 100%igen Überlappung geschaffen wurde. Gleichung 20 stellt die Überlappung der ersten Hälfte eines Fensters WPk und der letzten Hälfte des vorherigen Fensters WPk–1 dar. Gleichung 21 stellt die Überlappung der letzten Hälfte des Fensters WPk und der ersten Hälfte des folgenden Fensters WPk+1 dar. Die Gleichungen 22 und 23 zeigen entsprechende Ausdrücke für das Analysefenster. WPk+1(n+256) + WPk(n) = für 0 ≤ n < 256 (20) WPk(n) + WPk+1(n-256) = für 256 ≤ n < 512 (21) {WAk–1(n+256)}2 + {WAk(n)}2 = für 0 ≤ n < 256 (22) {WAk(n)}2 + {WAk+1(n-256)}2 = für 256 ≤ n < 512 (23)wobei
  • WPk(n)
    = WAk(n)·WSk(n) = {WAk(n)}2.
    WAk(n)
    = Analysefensterwert für Abtastwert n in Block k,
    WSk(n)
    = Synthesefensterwert für Abtastwert n in Block k, und
    WAk(n)
    = WSk(n) wie durch die E-TDAC-Transformation gefordert.
  • K. Signalausgabe
  • Der Kasten 117 in 1b stellt einen herkömmlichen Digital-Analog-Umsetzer dar, der als Antwort auf eine digitale Eingabe ein Analogsignal variierender Spannung erzeugt. Die digitale Eingabe wird von den 16 höchstwertigen Bits der 24-Bit-Ganzzahlwörter erhalten, die durch den Überlappungs-Addierungs-Prozeß erzeugt werden. Das analoge Ausgangssignal sollte durch ein Tiefpaßfilter mit einer Durchlaßband-Bandbreite von 15 kHz (20 kHz für den 20 kHz-Coder) gefiltert werden, um unechte Hochfrequenzkomponenten zu entfernen. Dieses Filter ist in 1 b nicht gezeigt.
  • II. ALTERNATIVE O-TDAC-IMPLEMENTIERUNG DER ERFINDUNG
  • Eine andere Ausführungsform eines Coders und eines Decoders gemäß der vorliegenden Erfindung verwendet eine alternative Transformation, die hier als "Oddly-Stacked Time-Domain Aliasing Cancellation" (O-TDAC) bezeichnet wird. Die folgende Beschreibung befaßt sich mit den Unterschieden der Implementierung zwischen der E-TDAC- und der O-TDAC-Transformation.
  • A. Vorwärtstransformation
  • Die O-TDAC verwendet eine Transformationsfunktion, bei der es sich um eine modifizierte diskrete Cosinustransformation (DCT) handelt, die in Gleichung 24 gezeigt ist.
    Figure 00440001
    wobei
  • k
    = Frequenzkoeffizientnummer,
    n
    = Eingangssignal-Abtastwertnummer,
    N
    = Abtastwertblocklänge,
    m
    = Phasenterm für O-TDAC (siehe Gleichung 6),
    x(n)
    = quantizierter Wert des Eingangssignals x(t) bei Abtastung n,
    C(k)
    = DCT-Koeffizient k.
  • Die O-TDAC-Transformation erzeugt einen Satz von Spektralkoeffizienten oder Transformationsblöcken der Form
    Figure 00440002
    wobei
  • i
    = Signalabtatstwertblocknummer, und
    C(k)
    = DCT-Koeffizient (siehe Gleichung 24).
  • Der verwendete Berechnungsalgorithmus ist die schnelle Fourier-Transformation (FFT). Anders als bei der E-TDAC-Version verwendet die O-TDAC-Implementierung nicht eine einzige FFT zur gleichzeitigen Transformation von zwei Signalabtastwertblöcken. Die Berechnungskomplexität der Transformation wird jedoch dadurch verringert, daß eine Technik ähnlich des in der E-TDAC-Version verwendeten "premultiply-transform-postmultiply"-Prozesses eingesetzt wird. Der Premultiply-Schritt konvertiert die realwertige Folge von Signalabtastwerten x(n) in eine Folge komplexer Werte durch Modulation der Signalabtastwerte mit der komplexen Funktion
    Figure 00440003
    wobei
  • j
    = √–1,
    n
    = Eingangssignalabtastwertnummer, und
    N
    = Abtastwertblocklänge.
  • Eine durch eine FFT implementierte diskrete Fourier-Transformation transformiert die modifizierten Signalabtastwerte in einen Satz von Transformationskoeffizienten. Da die FFT eine komplexe Transformation ist, können der Realteil und der Imaginärteil des modifizierten Signalabtastwerts gleichzeitig transformiert werden. Nachfolgend liefert ein Postmultiply-Schritt die wahren DCT-Koeffizienten. Dieser Prozeß ist unten in den Gleichungen 27 und 28 dargestellt.
    Figure 00450001
    wobei
  • j
    = √–1,
    n
    = Eingangssignalabtastwertnummer,
    N
    = Abtastwertblocklänge,
    k
    = Frequenzkoeffizientnummer,
    m
    = Phasenterm für O-TDAC (siehe Gleichung 6),
    R(k)
    = Realteil von Koeffizient X(k),
    Q(k)
    = Imaginärteil von Koeffizient X*(k), und
    C(k)
    = DCT-Koeffizient k.
  • Bei einer Ausführungsform eines Einkanalcoders gemäß der vorliegenden Erfindung werden zwei aufeinanderfolgende überlappte Signalabtastwertblöcke in Puffern gespeichert und unter Verwendung zweier FFT-Prozesse zusammen zu einem DCT1/DCT2-Blockpaar transformiert. Bei Zweikanalsystemen werden Signalabtastwertblöcke von jedem der beiden Kanäle durch zwei FFT-Prozesse zu einem DCT1/DCT2-Blockpaar transformiert.
  • Princen hat gezeigt, daß mit geeigneter Phasenkomponente m (siehe Gleichung 6) und einem sorgfältig ausgelegten Paar von Analyse-Synthese-Fenstern die O-TDAC-Technik ein Eingangssignal richtig aus einer abwechselnden Folge von Cosinustransformationsblöcken der Form {C1(k)}0, {C2(k)}1, {C1(k)}2, {C2(k)}3, (29)wobei
  • C1(k)i
    = DCT1-Koeffizient k von Signalabtastwertblock i, und
    C2(k)i
    = DCT2-Koeffizient k von Signalabtastwertblock i, wiedergewinnen kann.
  • Man beachte, daß diese Folge von Transformationsblöcken dadurch gebildet wird, daß im Effekt jeder zweite Transformationsblock von jedem Kanal in einem Zweikanalsystem oder jeder zweite Transformationsblock von jedem beider in einem Einkanalsystem verwendeter DCTs aufgegeben wird.
  • Der O-TDAC-Transformations- und Aliasaufhebungsprozeß ist dem für die E-TDAC-Transformation sehr ähnlich und in den 22a22e, 23a23d und 24a24g dargestellt. Der Hauptunterschied ist die Form der Aliaskomponente. Für die erste Hälfte des abgetasteten Signalblocks ist die Aliaskomponente ein um den Ein-Viertel-Punkt des Abtastwertblocks zeitverkehrtes Bild des Eingangssignals, wobei jedoch das Vorzeichen von dessen Amplitude gegenüber dem des Eingangssignals umgekehrt ist. Für die zweite Hälfte des abgetasteten Signalblocks ist das Aliasing um den Drei-Viertel-Punkt des Abtastwertblocks ohne Vorzeichenänderung zeitverkehrt. Siehe die 23b und 23d.
  • Der Entwurf und die Verwendung von Analyse- und Synthesefenstern ist mit denen für die E-TDAC identisch. Siehe 24a24g.
  • B. Ungleichförmiger Quantisierer
  • Der ungleichförmige Quantisierer für die O-TDAC-Implementierung ist identisch mit dem, der für die E-TDAC-Transformationsimplementierung verwendet wird, mit wenigen kleineren Unterschieden infolge der Tatsache, daß nur DCT-Blöcke vorhanden sind. Bei jedem Blockpaar enthalten beide Transformationsblöcke den Koeffizienten C(0), weshalb sich die beiden Blöcke alle Teilbandexponenten teilen. Folglich kann es kein verborgenes Bit geben, und die "minimale" Bitlänge für den Koeffizienten C(0) ist auf neun Bits festgelegt (im Gegensatz zu acht Bits für die E-TDAC). Siehe Tabelle III.
  • Die dynamische Bitzuweisung ist praktisch die gleiche wie für die E-TDAC. Der Koeffizient C(0) ist bei beiden Blöcken in jedem Paar vom Zuweisungsprozeß ausgeschlossen und wegen der größeren Länge jedes Transformationsblockpaars, die unten erläutert wird, beträgt die Zuweisungsgrenze nur 130 Bits.
  • C. Formatierung und Deformatierung
  • Jeder codierte DCT-Block enthält 183 Koeffizientenmantissen umfassend 538 Bits (siehe Tabellen I und III) und 130 adaptiv zugewiesene Bits für eine Gesamtheit von je 668 Bits. Die beiden DCT-Blöcke teilen sich die beiden Masterexponenten und 37 Teilbandexponenten von 148 Bits, was die DCT1/DCT2-Blockpaarlänge auf 1486 Bits bringt, dasselbe wie für die E-TDAC-Implementierung.
  • Der Aufbau des formatierten Rahmens ohne Fehlerkorrekturcodes ist sehr ähnlich dem, der bei der E-TDAC-Implementierung verwendet wird, und ist in 25 gezeigt. Der Rahmenaufbau mit Fehlerkorrekturcodes ist identisch dem für E-TDAC und ist in 21 gezeigt.
  • Der Deformatierungsprozess ist identisch zu dem oben beschriebenen mit Ausnahme, daß keine Prüfungen nach irgendwelchen verborgenen Bits vorgenommen werden.
  • D. Rücktransformation
  • Die Hälfte der DCT-Blöcke sind von der Übertragung oder Speicherung ausgenommen und werden von den zur Verfügung stehenden DCT-Blöcken unter Benutzung der in Gleichung 30 gezeigten Beziehung wiedererzeugt. Die inverse oder Rück-DCT ist in Gleichung 31 gezeigt. Ĉ(k) = –Ĉ(N–k) für N/2 ≤ k < N (30)
    Figure 00470001
    wobei
  • k
    = Transformationskoeffizientennummer,
    n
    = Signalabtastwertnummer
    K
    = Anzahl von Transformationskoeffizienten,
    N
    = Abtastwertblocklänge,
    m
    = Phasenterm für E-TDAC (siehe Gleichung 6),
    Ĉ(k)
    = quantizierter DCT-Koeffizient k, und
    X ^(n)
    = wiedergewonnenes quantiziertes Signal x(n).
  • Die O-TDAC-Implementierung der Rücktransformation verringert die Berechnungskomplexität durch Einsatz eines ähnlichen "premultiply-transform-postmultiply"-Prozesses, wie dem bei der Vorwärtstransformation verwendeten. Dieser Prozeß konvertiert realwertige DCT-Koeffizienten in einen Satz von modifizierten komplexwertigen Koeffizienten, transformiert gleichzeitig Real- und Imaginärteil der modifizierten Koeffizienten unter Verwendung einer einzigen FFT (IFFT) und erhält das Zeitbereichssignal von der Postmultiplikation, wie durch die folgenden Gleichungen gezeigt.
    Figure 00470002
    wobei
  • j
    = √–1,
    m
    = Phasenterm für O-TDAC (siehe Gleichung 6),
    N
    = Abtastwertblocklänge,
    k
    = Frequenzkoeffizientennummer,
    n
    = Eingangssignalabtastwertnummer,
    r(n)
    = Realtei von Abtastwert x*(n),
    q(n)
    = Imaginärteil von Abtastwert x*(n), und
    x ^(n)
    = wiedergewonnenes quantiziertes Signal x(n).
  • Die nachfolgende Fensterung-, Überlappung-Addierungs- und Signalausgabeverarbeitung ist identisch zu der oben für die E-TDAC-Implementierung beschriebenen.
  • Tabellen
    Figure 00480001
    Tabelle I Frequenzkoeffizienten für 15 kHz E-TDAC-Codierer
  • Figure 00490001
    Tabelle II Frequenzkoeffizienten für 20 kHz E-TDAC-Codierer
  • Figure 00490002
    Tabelle III Frequenzkoeffizienten für den O-TDAC-Codierer

Claims (14)

  1. Codierer für die hochqualitative digitale Codierung breitbandiger analoger Audioinformation, umfassend eine Teilbandeinrichtung zum Empfang der breitbandigen analogen Audioinformation und zur Erzeugung von Teilbandblöcken als Antwort auf diese, wobei jeder Teilbandblock jeweilige Teilbandinformation für eine Vielzahl von Teilbändern umfaßt, eine ungleichförmige Quantisierungseinrichtung zum Gruppieren der Teilbandblöcke zu Paaren von Teilbandblöcken, und dann Bilden einer Darstellung der jeweiligen Teilbandinformation in Block-Gleitkommaform, zum Gruppieren der Darstellungen zu Paaren, von denen jedes Paar eine Darstellung von Teilbandinformation von jedem Teilbandblock in einem jeweiligen Paar von Teilbandblöcken umfaßt und jede Darstellung in einem jeweiligen Paar von Darstellungen denselben Exponenten benutzt, sowie zur Erzeugung von Codewörtern durch adaptive Zuweisung von Bits zu den und Quantisierung der Darstellungen, und eine Formatierungseinrichtung zum Zusammensetzen von Digitalinformation einschließlich der Codewörter zu einer digitalen Ausgabe mit einem zur Übertragung oder Speicherung geeigneten Format.
  2. Codierer nach Anspruch 1, bei dem die Teilbandeinrichtung eine Einrichtung zum Abtasten und Quantisieren der breitbandigen analogen Audioinformation in Zeitbereichssignal-Abtastblöcke umfaßt, eine Einrichtung zur Erzeugung analysefenster-gewichteter Zeitbereichssignal-Abtastblöcke durch Gewichtung jedes der Zeitbereichssignal-Abtastblöcke mit einem Analysefenster umfaßt, und eine Einrichtung zur Erzeugung einer Folge der Teilbandblöcke umfaßt, wobei jeder der Teilbandblöcke in Teilbänder gruppierte Frequenzbereichs-Transformations-Koeffizienten aufweist, die Transformations-Koeffizienten durch Ausüben einer diskreten Transformation auf die analysefenster-gewichteten Zeitbereichssignal-Abtastblöcke erzeugt werden, und jedes der Paare von Teilbandblöcken zwei benachbarte Teilbandblöcke in der Folge umfaßt.
  3. Codierer nach Anspruch 1, bei dem die Teilbandeinrichtung eine Einrichtung zum Empfang einer zwei Kanäle von Audiosignalen darstellenden breitbandigen Audioinformation umfaßt, eine Einrichtung zum Abtasten und Quantisieren der breitbandigen analogen Audioinformation zu Zeitbereichssignal-Abtastblöcken umfaßt, eine Einrichtung zur Erzeugung von analysefenstergewichteten Zeitbereichssignal-Abtastblöcken durch Gewichtung jedes der Zeitbereichssignal-Abtastblöcke mit einem Analysefenster umfaßt, und eine Einrichtung zur Erzeugung von zwei Folgen der Teilbandblöcke umfaßt, wobei jede Folge durch Ausüben einer diskreten Transformation auf die analysefenster-gewichteten Signalabtastblöcke entsprechend einem jeweiligen der beiden Kanäle erzeugt werden, jeder der Teilbandblöcke in Teilbänder gruppierte Frequenzbereichs-Transforma tions-Koeffizienten umfaßt, und jedes der Paare von Teilbandblöcken einen Teilbandblock von einer jeweiligen der beiden Folgen umfaßt.
  4. Decoder für die hochqualitative Reproduktion von breitbandiger analoger Audioinformation aus einem digitale Information enthaltenden codierten Signal, umfassend eine Deformatierungseinrichtung zum Empfang des codierten Signals und zur Ableitung von Codewörtern aus der digitalen Information, eine Linearisierungseinrichtung zur adaptiven Zuordnung von Bits zu den und Dequantisierung der Codewörter zu Paaren von Block-Gleitkommadarstellungen von Teilbandinformation, wobei die Darstellungen in einem jeweiligen Paar von Darstellungen gemeinsam denselben Exponenten benutzen, und eine Einrichtung zur Erzeugung von Paaren von Teilbandblöcken entsprechend den Paaren von Darstellungen, wobei jeder Teilbandblock jeweilige Teilbandinformation für eine Vielzahl von Teilbändern umfaßt, und eine inverse Teilbandeinrichtung zur Erzeugung von breitbandiger analoger Audioinformation als Antwort auf die Teilbandblöcke.
  5. Decoder nach Anspruch 4, bei dem die inverse Teilbandeinrichtung eine Einrichtung umfaßt, die durch Ausüben einer inversen diskreten Transformation auf die Paare von Teilbandblöcken Paare von Zeitbereichssignal-Abtastblöcken erzeugt, die in einer Folge der Zeitbereichssignal-Abtastblöcke benachbart sind, eine Einrichtung zur Gewichtung der Zeitbereichssignal-Abtastblöcke mit einem Synthesefenster umfaßt, eine Einrichtung zur Aufhebung von Fenstergewichtungseffekten zur Wiedergewinnung einer digitalen Form der analogen Audioinformation umfaßt und eine Einrichtung zur Umwandlung der digitalen Form in eine analoge Form umfaßt.
  6. Decoder nach Anspruch 4, bei dem die Deformatierungseinrichtung eine Einrichtung zum Empfang des zwei Kanäle von Audiosignalen repräsentierenden codierten Signals aufweist, und bei dem die inverse Teilbandeinrichtung eine Einrichtung umfaßt, die durch Ausüben einer inversen diskreten Transformation auf die Paare von Teilbandblöcken Paare von Zeitbereichssignal-Abtastblöcken erzeugt, wobei jeder Block in den Paaren von Zeitbereichssignal-Abtastblöcken einem jeweiligen der beiden Audiosignalkanäle entspricht, eine Einrichtung zur Gewichtung der Zeitbereichssignal-Abtastblöcke mit einem Synthesefenster umfaßt, eine Einrichtung zur Aufhebung der Fenstergewichtungseffekte zur Wiedergewinnung einer digitalen Form der analogen Audioinformation umfaßt und eine Einrichtung zur Umsetzung der digitalen Form in ein Zweikanalsignal in analoger Form umfaßt.
  7. System für die hochqualitative Verarbeitung von breitbandiger analoger Audioinformation, umfassend einen Codierer nach einem der Ansprüche 1 bis 3 und einen Decoder nach einem der Ansprüche 4 bis 6.
  8. Codierverfahren für die hochqualitative digitale Codierung von breitbandiger analoger Audioinformation, umfassend a) Empfangen der breitbandigen analogen Audioinformation und Erzeugen von Teilbandblöcken als Antwort auf diese, wobei jeder der Teilbandblöcke jeweilige Teilbandinformation für eine Vielzahl von Teilbändern enthält, b) Gruppieren der Teilbandblöcke zu Paaren von Teilbandblöcken, und dann Bilden einer Darstellung der jeweiligen Teilbandinformation in Block-Gleitkommaform, Gruppieren der Darstellungen zu Paaren, von denen jedes Paar eine Darstellung von Teilbandinformation von jedem Teilbandblock in einem jeweiligen Paar von Teilbandblöcken umfaßt und jede Darstellung in einem jeweiligen Paar von Darstellungen denselben Exponenten benutzt, und Erzeugen von Codewörtern durch adaptive Zuweisung von Bits zu den und Quantisierung der Darstellungen, und c) Zusammensetzen von Digitalinformation einschließlich der Codewörter zu einer digitalen Ausgabe mit einem für eine Übertragung oder Speicherung geeigneten Format.
  9. Codierverfahren nach Anspruch 8, bei dem die Erzeugung in Schritt a) das Abtasten und Quantisieren der breitbandigen analogen Audioinformation zu Zeitbereichssignal-Abtastblöcken, das Erzeugen von analysefenster-gewichteten Zeitbereichssignal-Abtastblöcken durch Gewichten jedes der Zeitbereichssignal-Abtastblöcke mit einem Analysefenster und das Erzeugen einer Folge der Teilbandblöcke umfaßt, wobei jeder der Teilbandblöcke in Teilbänder gruppierte Frequenzbereichs-Transformations-Koeffizienten aufweist, die Transformations-Koeffizienten durch Ausüben einer diskreten Transformation auf die analysefenster-gewichteten Zeitbereichssignal-Abtastblöcke erzeugt werden, und bei dem Schritt b) die Teilbandblöcke zu Paaren von Teilbandblöcken gruppiert derart, daß jedes der Paare zwei benachbarte Teilbandblöcke in der Folge umfaßt.
  10. Codierverfahren nach Anspruch 8, bei dem Schritt a) den Empfang von zwei Kanäle von Audiosignalen repräsentierender breitbandiger Audioinformation, das Abtasten und Quantisieren der breitbandigen analogen Audioinformation zu Zeitbereichssignal-Abtastblöcken, das Erzeugen von analysefenster-gewichteten Zeitbereichssignal-Abtastblöcken durch Gewichtung jedes der Zeitbereichssignal-Abtastblöcke mit einem Analysefenster und das Erzeugen von zwei Folgen der Teilbandblöcke umfaßt, wobei jede Folge durch Ausüben einer diskreten Transformation auf analysefenster-gewichtete Signal-Abtastblöcke entsprechend einem jeweiligen der beiden Kanäle erzeugt wird und jeder der Teilbandblöcke in Teilbänder gruppierte Frequenzbereichs-Transformations-Koeffizienten aufweist, und bei dem Schritt b) die Teilbandblöcke zu Paaren von Teilbandblöcken gruppiert derart, daß jedes der Paare einen Teilbandblock von einer jeweiligen der beiden Folgen umfaßt.
  11. Decodierverfahren für die hochqualitative Reproduktion von breitbandiger analoger Audioinformation aus einem codierten Signal, das digitale Information enthält, umfassend a) Empfangen des codierten Signals und Ableiten von Codewörtern aus der digitalen Information, b) adaptives Zuweisen von Bits zu den und Dequantisieren der Codewörter zu Paaren von Block-Gleitkommadarstellungen von Teilbandinformation, wobei die Darstellungen in einem jeweiligen Paar von Darstellungen gemeinsam denselben Exponenten benutzen, und Erzeugen von Paaren von Teilbandblöcken entsprechend den Paaren von Darstellungen, wobei jeder der Teilbandblöcke jeweilige Teilbandinformation für eine Vielzahl von Teilbändern umfaßt, und c) Erzeugen von breitbandiger Audioinformation als Antwort auf die Teilbandblöcke.
  12. Decodierverfahren nach Anspruch 11, bei dem Schritt c) das Erzeugen von Paaren von Zeitbereichssignal-Abtastblöcken, die in einer Folge der Zeitbereichssignal-Abtastblöcke benachbart sind, durch Ausüben einer inversen diskreten Transformation auf die Paare von Teilbandblöcken, das Gewichten der Zeitbereichssignal-Abtastblöcke mit einem Synthesefenster, das Aufheben von Fenstergewichtungseffekten zur Wiedergewinnung einer digitalen Form der analogen Audioinformation und die Umwandlung der digitalen Form in eine analoge Form umfaßt.
  13. Decodierverfahren nach Anspruch 11, bei dem Schritt a) den Empfang des zwei Kanäle von Audiosignalen repräsentierenden codierten Signals umfaßt, und bei dem Schritt c) das Erzeugen von Paaren von Zeitbereichssignal-Abtastblöcken durch Ausüben einer inversen diskreten Transformation auf die Paare von Teilbandblöcken, wobei jeder Block in den Paaren von Zeitbereichssignal-Abtastblöcken einem jeweiligen der beiden Kanäle des Audiosignals entspricht, das Gewichten der Zeitbereichssignal-Abtastblöcke mit einem Synthesefenster, das Aufheben von Fenstergewichtungseffekten zur Wiedergewinnung einer digitalen Form der Audioinformation und die Umwandlung der digitalen Form in eine zweikanaliges Signal in analoger Form umfaßt.
  14. Verfahren für die hochqualitative Verarbeitung von breitbandiger analoger Audioinformation, umfassend ein Codierverfahren nach einem der Ansprüche 8 bis 10 und ein Decodierverfahren nach einem der Ansprüche 11 bis 13.
DE69006011T 1989-01-27 1990-01-29 Transformationscodierer, -decodierer und -codierer/decodierer mit niedriger bitrate für audio-anwendungen hoher qualität. Expired - Lifetime DE69006011T3 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US30371489A 1989-01-27 1989-01-27
US303714 1989-01-27
US43986889A 1989-11-20 1989-11-20
US439868 1989-11-20
PCT/US1990/000501 WO1990009022A1 (en) 1989-01-27 1990-01-29 Low bit rate transform coder, decoder and encoder/decoder for high-quality audio

Publications (3)

Publication Number Publication Date
DE69006011D1 DE69006011D1 (de) 1994-02-24
DE69006011T2 DE69006011T2 (de) 1994-08-18
DE69006011T3 true DE69006011T3 (de) 2007-08-23

Family

ID=26973611

Family Applications (4)

Application Number Title Priority Date Filing Date
DE69026278T Expired - Lifetime DE69026278T3 (de) 1989-01-27 1990-01-29 Adaptiv Bitzuordnung für Audio-Koder und Dekoder
DE69006011T Expired - Lifetime DE69006011T3 (de) 1989-01-27 1990-01-29 Transformationscodierer, -decodierer und -codierer/decodierer mit niedriger bitrate für audio-anwendungen hoher qualität.
DE69030266T Expired - Lifetime DE69030266T2 (de) 1989-01-27 1990-01-29 Transformationscodierer, -decodierer und Codierer/Decodierer mit niedriger Bitrate für Audio-Anwendungen hoher Qualität
DE69031737T Expired - Lifetime DE69031737T2 (de) 1989-01-27 1990-01-29 Transformationscodierer, -decodierer und Codierer/Decodierer mit niedriger Bitrate für Audio-Anwendungen hoher Qualität

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69026278T Expired - Lifetime DE69026278T3 (de) 1989-01-27 1990-01-29 Adaptiv Bitzuordnung für Audio-Koder und Dekoder

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE69030266T Expired - Lifetime DE69030266T2 (de) 1989-01-27 1990-01-29 Transformationscodierer, -decodierer und Codierer/Decodierer mit niedriger Bitrate für Audio-Anwendungen hoher Qualität
DE69031737T Expired - Lifetime DE69031737T2 (de) 1989-01-27 1990-01-29 Transformationscodierer, -decodierer und Codierer/Decodierer mit niedriger Bitrate für Audio-Anwendungen hoher Qualität

Country Status (10)

Country Link
EP (5) EP0455738B2 (de)
JP (1) JP2821713B2 (de)
AT (4) ATE150571T1 (de)
AU (2) AU631404B2 (de)
BR (1) BR9007063A (de)
DE (4) DE69026278T3 (de)
DK (3) DK0514949T3 (de)
ES (3) ES2109296T3 (de)
SG (3) SG49891A1 (de)
WO (1) WO1990009022A1 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0520068B1 (de) * 1991-01-08 1996-05-15 Dolby Laboratories Licensing Corporation Kodierer/dekodierer für mehrdimensionale schallfelder
JP3123290B2 (ja) * 1993-03-09 2001-01-09 ソニー株式会社 圧縮データ記録装置及び方法、圧縮データ再生方法、記録媒体
US5463424A (en) * 1993-08-03 1995-10-31 Dolby Laboratories Licensing Corporation Multi-channel transmitter/receiver system providing matrix-decoding compatible signals
JP3131542B2 (ja) * 1993-11-25 2001-02-05 シャープ株式会社 符号化復号化装置
JP3186413B2 (ja) * 1994-04-01 2001-07-11 ソニー株式会社 データ圧縮符号化方法、データ圧縮符号化装置及びデータ記録媒体
US6167093A (en) * 1994-08-16 2000-12-26 Sony Corporation Method and apparatus for encoding the information, method and apparatus for decoding the information and method for information transmission
JPH08190764A (ja) * 1995-01-05 1996-07-23 Sony Corp ディジタル信号処理方法、ディジタル信号処理装置及び記録媒体
JP3521596B2 (ja) * 1996-01-30 2004-04-19 ソニー株式会社 信号符号化方法
US5890106A (en) * 1996-03-19 1999-03-30 Dolby Laboratories Licensing Corporation Analysis-/synthesis-filtering system with efficient oddly-stacked singleband filter bank using time-domain aliasing cancellation
CA2221845C (en) * 1996-03-19 2004-06-08 Dolby Laboratories Licensing Corporation Analysis/synthesis filtering system with efficient oddly-stacked single-sideband filter bank using time-domain aliasing cancellation
KR100378790B1 (ko) * 1996-04-23 2003-05-01 엘지전자 주식회사 서브밴드양자화레벨디코딩장치
KR100223169B1 (ko) * 1996-06-14 1999-10-15 윤종용 펄스부호변조된 디지털 오디오신호의 기록 및 재생을 위한 시스템
US5892746A (en) * 1996-06-15 1999-04-06 Samsung Electronics Co., Ltd. System for recording and/or reproducing a pulse code modulation digital audio signal
JP3092653B2 (ja) * 1996-06-21 2000-09-25 日本電気株式会社 広帯域音声符号化装置及び音声復号装置並びに音声符号化復号装置
TW301103B (en) * 1996-09-07 1997-03-21 Nat Science Council The time domain alias cancellation device and its signal processing method
JPH1083623A (ja) * 1996-09-10 1998-03-31 Sony Corp 信号記録方法、信号記録装置、記録媒体および信号処理方法
GB2326572A (en) * 1997-06-19 1998-12-23 Softsound Limited Low bit rate audio coder and decoder
US6081783A (en) * 1997-11-14 2000-06-27 Cirrus Logic, Inc. Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same
US6016473A (en) * 1998-04-07 2000-01-18 Dolby; Ray M. Low bit-rate spatial coding method and system
US6665409B1 (en) 1999-04-12 2003-12-16 Cirrus Logic, Inc. Methods for surround sound simulation and circuits and systems using the same
US6356871B1 (en) 1999-06-14 2002-03-12 Cirrus Logic, Inc. Methods and circuits for synchronizing streaming data and systems using the same
US6349285B1 (en) 1999-06-28 2002-02-19 Cirrus Logic, Inc. Audio bass management methods and circuits and systems using the same
JP2002135122A (ja) 2000-10-19 2002-05-10 Nec Corp オーディオ信号符号化装置
JP4300800B2 (ja) * 2000-12-22 2009-07-22 ソニー株式会社 符号化装置および方法、復号装置および方法、並びに記録媒体
US7123655B2 (en) 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
KR101016224B1 (ko) 2006-12-12 2011-02-25 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 인코더, 디코더 및 시간 영역 데이터 스트림을 나타내는 데이터 세그먼트를 인코딩하고 디코딩하는 방법
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
RU2562395C2 (ru) * 2008-03-04 2015-09-10 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Микширование входящих информационных потоков
KR100940532B1 (ko) * 2009-09-28 2010-02-10 삼성전자주식회사 저비트율 복호화방법 및 장치
EP2849180B1 (de) * 2012-05-11 2020-01-01 Panasonic Corporation Kodierer für hybride audiosignale, dekodierer für hybride audiosignale, verfahren zur kodierung von audiosignalen und verfahren zur dekodierung von audiosignalen
JP6174129B2 (ja) 2012-05-18 2017-08-02 ドルビー ラボラトリーズ ライセンシング コーポレイション パラメトリックオーディオコーダに関連するリバーシブルダイナミックレンジ制御情報を維持するシステム
US10844689B1 (en) 2019-12-19 2020-11-24 Saudi Arabian Oil Company Downhole ultrasonic actuator system for mitigating lost circulation
US10438597B2 (en) 2017-08-31 2019-10-08 Dolby International Ab Decoder-provided time domain aliasing cancellation during lossy/lossless transitions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0064119B1 (de) * 1981-04-30 1985-08-28 International Business Machines Corporation Sprachkodierungsverfahren und Einrichtung zur Durchführung des Verfahrens
US4455649A (en) * 1982-01-15 1984-06-19 International Business Machines Corporation Method and apparatus for efficient statistical multiplexing of voice and data signals
GB8330885D0 (en) * 1983-11-18 1983-12-29 British Telecomm Data transmission
GB8421498D0 (en) * 1984-08-24 1984-09-26 British Telecomm Frequency domain speech coding
DE3506912A1 (de) 1985-02-27 1986-08-28 Telefunken Fernseh Und Rundfunk Gmbh, 3000 Hannover Verfahren zur uebertragung eines audiosignals
IL76283A0 (en) * 1985-09-03 1986-01-31 Ibm Process and system for coding signals
DE3629434C2 (de) * 1986-08-29 1994-07-28 Karlheinz Dipl Ing Brandenburg Digitales Codierverfahren
DE3639753A1 (de) 1986-11-21 1988-06-01 Inst Rundfunktechnik Gmbh Verfahren zum uebertragen digitalisierter tonsignale
NL8700985A (nl) * 1987-04-27 1988-11-16 Philips Nv Systeem voor sub-band codering van een digitaal audiosignaal.
NL8901032A (nl) * 1988-11-10 1990-06-01 Philips Nv Coder om extra informatie op te nemen in een digitaal audiosignaal met een tevoren bepaald formaat, een decoder om deze extra informatie uit dit digitale signaal af te leiden, een inrichting voor het opnemen van een digitaal signaal op een registratiedrager, voorzien van de coder, en een registratiedrager verkregen met deze inrichting.

Also Published As

Publication number Publication date
SG47111A1 (en) 1998-03-20
EP0560413A3 (de) 1994-05-04
DE69031737T2 (de) 1998-04-09
DE69006011D1 (de) 1994-02-24
SG48247A1 (en) 1998-04-17
ATE160464T1 (de) 1997-12-15
EP0560413B2 (de) 2002-05-15
DE69026278T3 (de) 2002-08-08
DE69006011T2 (de) 1994-08-18
EP0513860B1 (de) 1997-03-19
ATE100235T1 (de) 1994-01-15
JP2821713B2 (ja) 1998-11-05
ATE136147T1 (de) 1996-04-15
EP0511692A2 (de) 1992-11-04
ES2085680T3 (es) 1996-06-01
BR9007063A (pt) 1991-10-08
DK0513860T3 (da) 1997-08-18
EP0514949B1 (de) 1997-11-19
DE69031737D1 (de) 1998-01-02
AU5159690A (en) 1990-08-24
WO1990009022A1 (en) 1990-08-09
DE69030266D1 (de) 1997-04-24
AU655535B2 (en) 1994-12-22
DE69030266T2 (de) 1997-08-14
ES2099185T3 (es) 1997-05-16
EP0560413A2 (de) 1993-09-15
EP0513860A2 (de) 1992-11-19
ATE150571T1 (de) 1997-04-15
DE69026278T2 (de) 1996-11-14
ES2109296T3 (es) 1998-01-16
DK0560413T4 (da) 2002-06-17
EP0513860A3 (en) 1993-01-27
EP0560413B1 (de) 1996-03-27
AU631404B2 (en) 1992-11-26
AU3373693A (en) 1993-04-22
EP0514949A2 (de) 1992-11-25
ES2085680T5 (es) 2002-10-16
DK0514949T3 (da) 1998-07-27
DE69026278D1 (de) 1996-05-02
EP0455738B1 (de) 1994-01-12
EP0514949A3 (en) 1993-02-03
DK0560413T3 (da) 1996-04-22
SG49891A1 (en) 1998-06-15
EP0455738A1 (de) 1991-11-13
EP0511692A3 (en) 1993-01-27
JPH04504192A (ja) 1992-07-23
EP0455738B2 (de) 2007-04-04

Similar Documents

Publication Publication Date Title
DE69006011T3 (de) Transformationscodierer, -decodierer und -codierer/decodierer mit niedriger bitrate für audio-anwendungen hoher qualität.
US5479562A (en) Method and apparatus for encoding and decoding audio information
DE69533577T2 (de) Kodierungs- und/oder Dekodierungsverfahren eines digitalen Audiosignals
AU643677B2 (en) Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
DE60303214T2 (de) Verfahren zur reduzierung von aliasing-störungen, die durch die anpassung der spektralen hüllkurve in realwertfilterbanken verursacht werden
EP0290581B1 (de) Verfahren zum übertragen digitalisierter tonsignale
US5230038A (en) Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
DE60225130T2 (de) Verbesserung der transientenleistung bei kodierern mit niedriger bitrate durch unterdrückung des vorgeräusches
US5109417A (en) Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
US5142656A (en) Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
US5222189A (en) Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
EP0624866B1 (de) Frequenzanalyseverfahren
DE60310716T2 (de) System für die audiokodierung mit füllung von spektralen lücken
DE69732159T2 (de) Geschaltete Filterbank für Audiosignalkodierung
DE69432538T2 (de) Digitales Signalkodierungsgerät, dazugehöriges Dekodiergerät und Aufzeichnungsträger
DE69923555T2 (de) Verfahren und vorrichtung zur entropie-kodierung von quantisierten transformationskoeffizienten eines signals
EP0414838B2 (de) Verfahren zur übertragung eines signals
DE60015448T2 (de) Teilband-Audiokodiersystem
DE69629986T2 (de) Verfahren und Gerät zum Kodieren digitaler akustischer Signale
EP0464534B1 (de) Transformationskodierer mit adaptiver Fensterfunktion
EP0608281A1 (de) Verfahren zur reduzierung des frequenzübersprechens bei der übertragung und/oder speicherung akustischer oder optischer signale.
JP3093178B2 (ja) 高品質オーディオ用低ビットレート変換エンコーダ及びデコーダ
DE3733786C2 (de)

Legal Events

Date Code Title Description
8363 Opposition against the patent
8328 Change in the person/name/address of the agent

Free format text: HOFFMANN, E., DIPL.-ING., PAT.-ANW., 82166 GRAEFELFING

8366 Restricted maintained after opposition proceedings