DE69705642T2 - Audio-kodierverfahren mit veränderlicher kodelänge unter verwendung einer mehrzahl von teilband-bitverteilungsmoden - Google Patents
Audio-kodierverfahren mit veränderlicher kodelänge unter verwendung einer mehrzahl von teilband-bitverteilungsmodenInfo
- Publication number
- DE69705642T2 DE69705642T2 DE69705642T DE69705642T DE69705642T2 DE 69705642 T2 DE69705642 T2 DE 69705642T2 DE 69705642 T DE69705642 T DE 69705642T DE 69705642 T DE69705642 T DE 69705642T DE 69705642 T2 DE69705642 T2 DE 69705642T2
- Authority
- DE
- Germany
- Prior art keywords
- region
- module
- transform coefficients
- categorization
- energy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 43
- 238000013139 quantization Methods 0.000 claims description 82
- 239000013598 vector Substances 0.000 claims description 56
- 230000005236 sound signal Effects 0.000 claims description 43
- 230000009466 transformation Effects 0.000 claims description 13
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 16
- 230000003595 spectral effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 2
- VOOFUNKBLIGEBY-AQRCPPRCSA-N (2s)-2-[[(2s)-2-[[(2s)-2-[[(2s)-5-amino-2-[[(2s)-5-amino-2-[[(2s)-2-amino-4-methylpentanoyl]amino]-5-oxopentanoyl]amino]-5-oxopentanoyl]amino]-4-methylpentanoyl]amino]-4-methylpentanoyl]amino]-3-phenylpropanoic acid Chemical compound CC(C)C[C@H](N)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CC(C)C)C(=O)N[C@H](C(O)=O)CC1=CC=CC=C1 VOOFUNKBLIGEBY-AQRCPPRCSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000003874 inverse correlation nuclear magnetic resonance spectroscopy Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details 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/66—Details 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/667—Details 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 a division in frequency subbands
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein Audiokodierungs- oder -dekodierungsverfahren und -vorrichtungen und insbesondere Kodierungs- und Dekodierungsverfahren und -vorrichtungen zur Reduktion der erforderlichen Anzahl von Bit zum Übertragen digitalisierter Audiosignale und zur Ermöglichung einer Wiedergabe des Audiosignals in einem fernen Dekodierer.
- In der Technik ist bekannt, daß Audiosignale manchmal zu einem Empfänger übertragen werden, indem sie zunächst in entsprechende digitalisierte Abtastwerte konvertiert werden. Jeder digitalisierte Abtastwert besteht aus einer Anzahl von Bit, zum Beispiel aus 8 oder 16 Bit. Um die Anzahl übertragener Bit, d. h. die Bitrate, zu reduzieren, wurden verschiedene Kodierungsverfahren und -vorrichtungen vorgeschlagen. Das Kodierungsverfahren versucht, die Bitrate zu reduzieren, während eine Wiedergabe der Audiosignale in einem fernen Dekodierer ermöglicht wird.
- In bezug auf Videokonferenzsysteme werden kodierte Audio- und Videosignale über Kommunikationsleitungen mit einer bestimmten festen verfügbaren Bitrate übertragen. Solche kodierten Videoübertragungen sind bitratenintensiv, und es ist daher wünschenswert, einen größeren Teil der verfügbaren Medium- Übertragungsbandbreite dem Videosignal, und nicht dem kodierten Audiosignal, zuzuteilen. Bei dem Versuch, mehr Bandbreite für die Videosignale zu reservieren, wurden Audiokodierungsverfahren so ausgelegt, daß sie immer kleinere Teile der verfügbaren Bandbreite verwenden, ohne gleichzeitig die Qualität des Audiosignals zu opfern. Die CCITT-Empfehlung G722 ist ein Beispiel für einen Standard, der Qualitätsrichtlinien für die digitale Übertragung von Sieben-Kilohertz-Audiosignalen mit einer Übertragungsrate von 48.000 Bit pro Sekunde angibt. Ein anderes Verfahren wird durch den Audiokomprimierungsalgorithmus PictureTel PT724 realisiert. Dieser Algorithmus ermöglicht die digitale Übertragung von Sieben-Kilohertz-Signalen mit 24.000 Bit pro Sekunde.
- Mit der zunehmenden Notwendigkeit, die Qualität der Videoübertragung zu verbessern, und somit der Notwendigkeit, einen größeren Teil der benutzbaren Bandbreite zu verwenden, besteht ein zunehmender Bedarf an Verfahren zur Reduktion der zur Übertragung von Audiosignalen erforderlichen Anzahl von Bit, ohne die Audioqualität zu opfern.
- Aus dem US-Patent Nr. 5,109,417 ist ein Transformationskodierer und -dekodierer bekannt, der eine adaptive Bitzuteilung für Teilbandkanäle verwendet.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Kodierung eines Audiosignals bereitgestellt, wobei das Verfahren dem Anspruch 1 der angefügten Reihe von Ansprüchen entspricht.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Dekodierung eines Audiosignals bereitgestellt, wobei das Verfahren dem Anspruch 2 der angefügten Reihe von Ansprüchen entspricht.
- Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Kodierer zur Kodierung eines Audiosignals bereitgestellt, wobei der Kodierer dem Anspruch 3 der angefügten Reihe von Ansprüchen entspricht.
- Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Dekodierer zum Dekodieren eines Audiosignals bereitgestellt, wobei der Dekodierer dem Anspruch 4 der angefügten Reihe von Ansprüchen entspricht.
- Gemäß einem fünften Aspekt der vorliegenden Erfindung wird ein Kodierungs- und Dekodierungssystem zum Kodieren und Dekodieren eines Audiosignals bereitgestellt, wobei das System dem Anspruch 5 der angefügten Reihe von Ansprüchen entspricht.
- Bei der bevorzugten Ausführungsform werden ein Audiosignalkodierungsverfahren und eine Audiosignalkodierungsvorrichtung bereitgestellt, wobei sich überlappende Gruppen der digitalisierten Abtastwerte eines Audiosignals in Blöcke von Transformationskoeffizienten konvertiert werden. Jeder. Block von Transformationskoeffizienten wird in Regionen gruppiert. Die Energie in jedem Bereich wird ermittelt, quantisiert, indiziert und mit variabler Bitlänge kodiert. Ein Kategorisierungsverfahren bestimmt eine vorbestimmte Anzahl von Kategorisierungen unter Verwendung der quantisierten Region-Energieindizes und der Anzahl von Bit, die nach der Region- Energiekodierung übrigbleibt. Jede Kategorisierung spezifiziert eine Quantisierung und Kodierungskategoriezuteilung für jede Region, wobei jede Kategorie eine Quantisierungsschrittgröße, eine Totzone, eine Vektordimension und eine Variable- Bitlängen-Kodierungstabelle und zugeordnete Dekodierungstabellen definiert. Für jede Kategorisierung wird die Quantisierungs- und Kodierungskategorie für jede Region entsprechend den quantisierten Energieindizes in der Region, den quantisierten Energieindizes in allen Regionen und der Anzahl verfügbarer Bit ausgewählt. Die zum Übertragen der kodierten Transformationskoeffizienten unter Verwendung jeder Kategorisierung erforderliche Anzahl von Bit wird ermittelt. Die Transformationskoeffizienten werden unter Verwendung einer der Kategorisierungen kodiert, die entsprechend einem Maximal-Bitraten-Kriterium ausgewählt wird. Die kodierten quantisierten Region-Energieindizes, eine Kennung der gewählten Kategorisierung und die kodierten Transformationskoeffizienten werden zu einem Dekodierer übertragen.
- Gemäß dem bevorzugten Dekodierer der Erfindung wird die quantisierte Energie in jeder der Regionen aus den übertragenen quantisierten Energieindizes dekodiert und rekonstruiert. Dieselbe Menge von Kategorisierungen, die der Kodierer bestimmt hat, wird unter Verwendung der quantisierten Energieindizes und der Anzahl von Bit, die nach der Region-Energiedekodierung übrigbleibt, ermittelt. Die gewählte der Kategorisierungen wird aus ihrer Kennung ermittelt, die vom Kodierer zum Dekodierer übertragen wird, und die Quantisierungs- und Kodierungskategoriezuteilung wird für jede der Regionen aus der bestimmten Kategorisierung ermittelt. Für jede Region wird aus der für die Region bestimmten Kategorie und der rekonstruierten quantisierten Energie in der Region eine Transformationskoeffizienten-Rekonstruktionspegeltabelle, die Vektordimension und eine Variable- Bitlängen-Dekodierungstabelle bestimmt. Die quantisierten Transformationskoeffizienten werden für jede Region aus der Transformationskoeffizienten- Rekonstruktionspegeltabelle, der Vektordimension und der Variable-Bitlängen-Dekodierungstabelle rekonstruiert. Die Transformationskoeffizienten werden in ein Zeitbereichs-Audiosignal transformiert.
- Mit diesem Verfahren und dieser Vorrichtung wird eine qualitativ hochwertige Wiedergabe des Audiosignals für vielfältige Signale erzielt, wie zum Beispiel Musik, Sprache und durch Hintergrundgeräusche und Hall verschlechterte Sprache.
- Diese und andere Merkmale der Erfindung werden aus der folgenden ausführlichen Beschreibung in Verbindung mit den beigefügten Zeichnungen offensichtlicher. Es zeigen:
- Fig. 1 ein. Flußdiagramm eines Verfahrens zur Kodierung eines Audiosignals gemäß der Erfindung;
- Fig. 2 ein Flußdiagramm eines Verfahrens zur Dekodierung eines Audiosignals, das durch das Verfahren von Fig. 1 kodiert wurde, gemäß der Erfindung;
- Fig. 3 ein Blockschaltbild eines Kodierers, der zur Kodierung eines Audiosignals gemäß der Erfindung ausgelegt ist; und
- Fig. 4 ein Blockschaltbild eines MLT-Transformationskoeffizienten-Quantisierungs- und -Kodierungsmoduls des Kodierers in Fig. 3, das eine repräsentative der vorbestimmten Anzahl von Kategorisierungen verwendet;
- Fig. 5 einen Dekodierer, der zur Dekodierung eines durch den Kodierer von Fig. 3 kodierten Audiosignals gemäß der Erfindung ausgelegt ist;
- Fig. 6 ein Blockschaltbild eines Moduls zur Variable- Bitlängen-Dekodierung und MLT-Rekonstruktion, das in dem Dekodierer von Fig. 5 verwendet wird; und
- Fig. 7A bis Fig. 7C ein Flußdiagramm des Kategorisierungsverfahrens, das von dem Kodierer von Fig. 3 und dem Dekodierer von Fig. 5 verwendet wird.
- Nunmehr mit Bezug auf Fig. 1 sind die Schritte bei der Kodierung eines Audiosignals gezeigt. Gemäß Schritt 100 werden also sich überlappende Gruppen der digitalisierten Abtastwerte eines Audiosignals in Blöcke von Transformationskoeffizienten konvertiert, und jeder Block von Transformationskoeffizienten wird in Regionen gruppiert. Gemäß Schritt 102 wird die Energie in jeder Region ermittelt, quantisiert und mit variabler Bitlänge kodiert. Gemäß Schritt 104 wird unter Verwendung der quantisierten Energieindizes und der Anzahl übriger Bit eine Menge von Kategorisierungen ermittelt. Jede Kategorisierung enthält eine Quantisierungs- und Kodierungskategoriezuteilung für jede Region. Jede Kategorie definiert eine Quantisierungsschrittgröße, eine Totzone, eine Vektordimension, eine Variable-Bitlängen- Kodierungstabelle und zugeordnete Dekodierungstabellen. Gemäß Schritt 106 wird die Quantisierungskodierungskategorie für jede Region entsprechend der quantisierten Energie in der Region, der quantisierten Energien in allen Regionen und der Anzahl verfügbarer Bit ausgewählt. Gemäß Schritt 106 werden Quantisierung und Variable-Bitlängen-Kodierungen unter Verwendung jeder Kategorisierung auf die Transformationskoeffizienten angewandt. Außerdem wird die zum Übertragen der kodierten Transformationskoeffizienten erforderliche Anzahl von Bit unter Verwendung jeder Kategorisierung ermittelt. Gemäß Schritt 108 wird eine der Kategorisierungen entsprechend einem Maximal- Bitzählwert-Kriterium ausgewählt und die Transformationskoeffizienten werden entsprechend kodiert. Gemäß Schritt 110 werden die kodierte Energie, eine Kennung der gewählten Kategorisierung und die kodierten Transformationskoeffizienten zu einem Dekodierer übertragen.
- Nunmehr mit Bezug auf Fig. 2 sind die bei der Dekodierung des kodierten Audiosignals benutzten Schritte gezeigt. Im Schritt 200 wird also die quantisierte Energie in jeder der Regionen aus den übertragenen quantisierten Energieindizes dekodiert und rekonstruiert. Gemäß Schritt 202 wird dieselbe Menge von Kategorisierungen, die der Kodierer bestimmt hat, unter Verwendung der quantisierten Energieindizes und der nach der Region-Energiedekodierung übrigen Anzahl von Bit ermittelt. Gemäß Schritt 204 wird die gewählte der Kategorisierungen aus ihrer vom Kodierer zum Dekodierer übertragenen Kennung ermittelt, und die Quantisierungs- und Kodierungskategoriezuteilung wird für jede der Regionen aus der ermittelten Kategorisierung ermittelt. Gemäß Schritt 206 wird für jede Region aus der für die Region bestimmten Kategorie und der rekonstruierten quantisierten Energie in der Region eine Variable-Bitlängen-Dekodierungstabelle, die Vektordimension und eine Transformations-koeffizienten- Rekonstruktionspegeltabelle ermittelt. Gemäß Schritt 208 werden die quantisierten Transformationskoeffizienten für jede Region aus der Variable-Bitlängen-Dekodierungstabelle, der Vektordimension und der Transformationskoeffizienten- Rekonstruktionspegeltabelle rekonstruiert. Gemäß Schritt 210 werden die Transformationskoeffizienten in ein Zeitbereichs-Audiosignal transformiert.
- Genauer gesagt ist unter Bezugnahme auf Fig. 3 ersichtlich, daß einem Kodierer 9 ein ankommendes Audiosignal zugeführt wird, das einer (nicht gezeigten) Leitung zugeführt wird. Das Audiosignal auf dieser Leitung wird in digitalisierte Abtastwerte konvertiert, hier in einen Strom von linearen 16-Bit-PCM- Abtastwerten mit einer Abtastrate von 16.000 Abtastwerten pro Sekunde durch einen (nicht gezeigten) Analog/Digital-Umsetzer (A/D-Umsetzer). Die digitalisierten Abtastwerte werden einem Frequenzspektrumanalysierer zugeführt, hier einer MLT (Modulated Lapped Transform) 16. Die MLT 16 liefert eine Projektion aus dem Zeitbereich in eine Menge orthogonaler Basisfunktionen. Hier verwendet die MLT 16 jede Gruppe von 640 digitalisierten Audiosignalabtastwerten, um einen Block von 320 MLT- Transformationskoeffizienten zu berechnen. Alle 20 Millisekunden (ms) werden die jüngsten 640 digitalisierten Abtastwerte verwendet, um einen Block von 320 Transformationskoeffizienten mit einer Mitte in 25-Hz-Intervallen zu berechnen. Um es noch anders auszudrücken: eine erste Gruppe von 640 Abtastwerten wird der MLT 16 zugeführt, und 20 Millisekunden später wird eine zweite Gruppe von 640 Abtastwerten der MLT 16 zugeführt, wobei zu beachten ist, daß die 640 Abtastwerte der zweiten Gruppe 320 Abtastwerte der ersten Gruppe enthalten. Somit werden die Abtastwerte des ankommenden Audiosignals, die der MLT 16 zugeführt werden, zu einer Folge von sich überlappenden Fenstern verarbeitet, wobei jedes Fenstern digitalisierte Abtastwerte von zwei Zeitbereichs-Blöcken aufweist, wobei jeder Zeitbereichs-Block 320 Abtastwerte aufweist. Es ist zu beachten, daß für den Betrieb mit 16.000, 24.000 und 32.000 Bit/Sekunde die Zuteilung von Bit pro Block jeweils 320, 480 bzw. 640 beträgt. Außerdem ist der Kodierer 9 so ausgelegt, daß er mit denselben Abtastwertzuständen wie der Audioübertragungsstandard G.722 ITU (International Telecommunications Union) arbeitet.
- Die MLT 16 führt, wie bereits erwähnt, eine Frequenzspektrumanalyse der Abtastwerte durch und konvertiert dadurch die 640 Abtastwerte aus dem Zeitbereich in eine Frequenzbereichsdarstellung. Hier transformiert die MLT 16 die 640 Abtastwerte in 320 Frequenzkomponenten oder Transformationskoeffizienten. Es ist zu beachten, daß jeder Block von 640 Abtastwerten unabhängig verarbeitet und deshalb jeder Block von MLT-Transformationskoeffizienten unabhängig kodiert wird. Außerdem liegen die MLT- Transformationskoeffizienten hier in 25-Hz-Intervallen vor und werden in 14 Regionen R&sub0;-R&sub1;&sub3; aufgeteilt oder gruppiert, wobei jede Region jeweils 20 Transformationskoeffizienten aufweist. Somit überspannt jede Region 500 Hz. Es sei angemerkt, daß hier nur die 14 niedrigsten Frequenzregionen oder 280 Transformationskoeffizienten verwendet werden.
- Als nächstes wird für jede der Regionen 0-13 durch das Region-Energiequantisierungs- und -Kodierungsmodul 22 die spektrale Energie ermittelt. Genauer gesagt wird die Quadratwurzel der mittleren Energie in jeder der Regionen in dem Modul 22 berechnet und quantisiert. Die niedrigste Frequenzregion wird hier mit 5 Bit kodiert, und die anderen werden differenzkodiert (in bezug auf einander, nicht auf den vorherigen Block). Insbesondere wird die quantisierte Energie für jede der Regionen mit einem Kode mit variabler Bitlänge (d. h. Entropiekode), hier einem Huffman-Kode, in dem Modul 22 kodiert. Die Kodebit, die die quantisierte Energie in den Regionen darstellen, werden auf der Leitung 26 (d. h. Kodebit) von dem Modul 22 erzeugt, um über einen Multiplexer 28 auf dem Übertragungskanal 27 zu einem Dekodierer 30 (Fig. 4) übertragen zu werden. In der Regel werden 45 bis 65 Kodebit verwendet, um die Hüllkurve der spektralen Energie (d. h. Amplitude) der Energie über die Regionen darzustellen. Somit wird die quantisierte spektrale Energie für jede Region in einem kodierten Format zu einem Übertragungskanal 27 übertragen. Das Modul 22 für die Region-Energiequantisierung und -kodierung erzeugt außerdem den entsprechenden Bitzählwert auf der Leitung 29. Das Modul 22 erzeugt auch die entsprechenden Energiequantisierungspegelindizes P&sub0;-P&sub1;&sub3; für jede der 14 Regionen auf der Leitung 31. Diese Indizes P&sub0;-P&sub1;&sub3; werden hier als rms_index[r] bezeichnet, wobei r der Region-Index von 0 bis 13 ist. Bei diesem Ausführungsbeispiel wird jeder MLT- Transformationskoeffizient in einer Region zunächst mit der entsprechenden Quadratwurzel der quantisierten mittleren Energie für die Region normiert und dann skalarquantisiert. (Dies entspricht funktionsmäßig der Quantisierung der unnormierten MLT- Transformationskoeffizienten mit einer Schrittgröße, die das Produkt der quantisierten Effektivwert-Energie (rms-Energie) der Region und der Schrittgröße einer für die Region gewählten Quantisierungskategorie (d. h. hier acht Kategorien, Kategorie 0 bis Kategorie 7) ist, die noch beschrieben wird.) Es ist hier jedoch zu beachten, daß jeder der Regionen 0-13 eine separate Quantisierungskategorie oder Quantisierungsschrittgröße (d. h. Kategorie 0 bis Kategorie 7) zugeteilt wird, wobei die Ansammlung von Kategorien für jede Region eine aus einer vorbestimmten Anzahl (hier 16) von Kategorisierungen definiert (d. h. Kategorisierung 0 - Kategorisierung 15). Wie bereits erwähnt, gibt es 8 Quantisierungskategorien, d. h. Kategorie 0 bis Kategorie 7. Die Kategorie 0 besitzt die kleinste Quantisiererschrittgröße und verwendet die meisten Bit. Die Kategorie 7 hat nur einen Quantisierungsausgangswert, der auf "0" gesetzt wird. Für jede Kategorie gibt es die folgenden Quantisierungsparameter: Quantisierungsschrittgröße (d. h. Schrittgröße), Totzonenexpansionsparameter (d. h. deadzone_rounding), maximaler Skalarquantisierungsindex (d. h. kmax), Dekodiererrekonstruktionspegel, Vektordimension zum Kombinieren von Skalarquantisierungsindizes (d. h. vd) und einen Variable-Bitlängen-Kode für jeden Vektor (d. h. u). Für jede Kategorie gibt es außerdem einen erwarteten Bitverbrauch. Somit wird für eine Kategorisierung jeder Region eine der acht Quantisierungskategorien zugeteilt, und jeder der normierten MLT- Transformationskoeffizienten in der Region wird mit der Schrittgröße (stepsize) skalarquantisiert, die dieser Kategorie entspricht. Die resultierenden Quantisierungsindizes werden zu Vektoren kombiniert und die resultierenden Vektoren Huffman-kodiert.
- Anders ausgedrückt wird die Quantisierungskategorie unter Verwendung der spektralen Energien ermittelt, die oben für alle Regionen ermittelt wurden. Für jede Kategorisierung werden die Transformationskoeffizienten auf der Grundlage der Quantisierungsschrittgrößen quantisiert, die mit der Quantisierungskategorie verbunden sind, die jeder Region durch die Kategorisierung zugeteilt wurde. Das heißt: jeder der normierten MLT-Transformationskoeffizienten in einer Region wird unter Verwendung der Schrittgröße skalarquantisiert, die dieser Kategorie für diese Region entspricht. Die resultierenden Quantisierungsindizes werden zu Vektoren kombiniert und die resultierenden Vektoren hier unter Verwendung eines Huffman-Kodierers kodiert, und die zur Übertragung der quantisierten Informationen erforderliche Gesamtzahl von Bit wird entsprechend diesem Kategorisierungskodierungsverfahren ermittelt.
- Da dieser Prozeß eine a priori unbekannte Anzahl von Bit erzeugt, kann es notwendig sein, die Kategoriezuteilung für einige Regionen so einzustellen, daß die Gesamtzahl von Bit in dem Block so weit wie möglich der Zuteilung entspricht, diese aber nicht übersteigt. Deshalb wird für die Regionen auf der Grundlage einer vorbestimmten Menge von Regeln, die noch beschrieben wird, eine Vielzahl perturbierter Kategoriezuteilungen (d. h. Kategorisierungen), hier 16, ermittelt. Für jede Kategorisierung wird die zur Übertragung der quantisierten Informationen entsprechend der Quantisierungsschrittgrößen, die sich aus den perturbierten Kategoriezuteilungen ergeben, erforderliche Gesamtzahl von Bit ermittelt. Auf der Grundlage eines wiedergabegetreuen Kriteriums (d. h. kleinstmögliche Quantisierungsschrittgrößen) und einer maximalen Kanalbitrate wird eine der Kategorisierungen und ihre Quantisierungsschrittgrößen für die Übertragung durch den Kanal 37 gewählt. Die Transformationskoeffizienten werden entsprechend den gewählten Quantisierungsschritten durch die Module 40&sub0;- 40&sub1;&sub5; quantisiert.
- Insbesondere werden für jeden Block 4 Bit verwendet, um eine der 16 möglichen Kategorisierungen zu wählen. Hier spezifiziert eine Kategorisierung eine Kategoriezuteilung für jede der 14 Regionen. Bei der gezeigten Ausführungsform werden die Kategorisierungen in bezug auf den gesamten erwarteten Bitverbrauch umgekehrt indiziert. Kategorisierungen werden durch eine im voraus eingestellte. Regel oder im voraus eingestellte Prinzipien, die noch beschrieben werden, ermittelt, und einander benachbarte Indexordnungen unterscheiden sich nur in einer Region, und in dieser Region unterscheiden sich die Kategorieindizes nur um 1.
- Die quantisierten Transformationskoeffizientenindizes werden zu Vektoren zusammengefaßt und dann zur Übertragung zu dem Kanal 27 in dem gewählten Quantisierungs- und Kodierungsmodul 40&sub0;-40&sub1;&sub5; kodiert. Danach werden die resultierenden Kodebit zusammen mit den quantisierten Energien auf der Leitung 26 und einer Kennung der gewählten Kategorisierung auf der Leitung 66 an den Multiplexer 28 angelegt. Der Dekodierer 30 (Fig. 5) kann aus den über den Kanal 27 empfangenen Informationen ein Audiosignal rekonstruieren.
- Es wird ein Kategorisierungsprozedurmodul 32 bereitgestellt. Eine Kategorisierung besteht aus einer Kategoriezuteilung für jede der 14 Regionen. Das Kategorisierungsprozedurmodul 32 berechnet 16 mögliche Kategorisierungen für die Regionen gemäß einer vorbestimmten Regel oder vorbestimmten Prinzipien, die noch beschrieben werden.
- Das erste Prinzip besteht darin, daß, wenn die Energie in einer Region A 2X dB größer ist als die Energie in einer Region B, die Quantisierungsschrittgröße, die auf unnormierte MLT-Transformationskoeffizienten in der Region A angewandt wird, um X dB größer sein sollte als die Schrittgröße, die auf unnormierte MLT- Transformationskoeffizienten in der Region B angewandt wird. Äquivalent sollte die Quantisierungsschrittgröße für die normierten MLT-Transformationskoeffizienten in der Region A um X dB kleiner sein als die Quantisierungsschrittgröße für die normierten MLT- Transformationskoeffizienten in der Region B. Bei diesem Kategorisierungsverfahren 32 kann, wenn die Region A niedrigere spektrale Frequenzen als die Region B aufweist, ihre Quantisiererschrittgröße für bestimmte Kategorisierungen um X+3 dB kleiner sein als die der Region A.
- Das zweite Prinzip besteht darin, daß das Verhältnis der Signalenergie in einer Region zu dem Quantisierungsrauschen in dieser Region eine bestimmte Schwelle nicht übersteigen sollte, über die hinaus das Quantisierungsrauschen wahrnehmungsbezogen vollständig durch die Signalenergie maskiert wird. Bei diesem Prinzip handelt es sich im Grunde genommen um den Umstand, daß die kleinste Schrittgröße (0,3536 für die Kategorie 0) nicht sehr klein ist.
- Somit hat das Kategorisierungsmodul 32, wie angedeutet, auf den Leitungen 34&sub0;-34&sub1;&sub5; jeweils 16 Kategorisierungen erzeugt (Kategorisierung 0 bis Kategorisierung 15).
- Die Kategorisierungen (Kategorisierung 0 bis Kategorisierung 15) werden den Quantisierungs- und Kodierungsmodulen 40&sub0;-40&sub1;&sub5; zugeführt. Ein beispielhaftes Modul, hier das Modul 40&sub0;, ist in. Fig. 4 gezeigt. Als Reaktion auf: die Kategorisierung, hier die Kategorisierung 0 (d. h. die Kategoriezuteilung für jede Region); die MLT-Transformierungkoeffizienten in den Regionen R&sub0;-R&sub1;&sub3;; und die Menge von Region- Energiequantisierungspegeln P&sub0;-P&sub1;&sub3;, führt das Modul 40&sub0; eine Folge von Operationen durch. Diese Folge lautet: kombinierte Normierung und Quantisierung der MLT- Koeffizienten (Modul 50&sub0;-50&sub1;&sub3;), Gruppieren der Skalarquantisierungsindizes in Vektorindizes (Modul 51&sub0;- 51&sub1;&sub3;), und Variable-Bitlängen-Kodierung der Vectorindizes (Modul 51&sub0;-52&sub1;&sub3;). Für jede Region wird jede dieser drei Operationen entsprechend der Kategoriezuteilung für diese Region durchgeführt, die hier durch die Kategorisierung 0 bestimmt ist. Kodebit, die die quantisierten MLT-Transformationskoeffizienten darstellen, werden von dem Modul 52 auf den Leitungen 53&sub0;-53&sub1;&sub3; (d. h. Kodebit) erzeugt. Die Kodebit auf den Leitungen 53&sub0;-53&sub1;&sub3; werden einem Bitstrom- Zusammenstellungsmodul 54 zugeführt, das die Variable- Bitlängen-Kodes auf der Leitung 59&sub0; für einen Schalter 60 (Fig. 3) ordnet oder anordnet. Die Module 40&sub1;-40&sub1;&sub5; wirken auf ähnliche Weise, um auf den Leitungen 59&sub1;-59&sub1;&sub5; Kodebits zu erzeugen.
- Die Module 52&sub0;-52&sub1;&sub3; erzeugen außerdem den entsprechenden Bitzählwert auf den Leitungen 54&sub0;-54&sub1;&sub3;. Diese Bitzählwerte werden in dem Modul 55 summiert, das einen Gesamt-MLT-Koeffizientenbitzählwert für die Kategorisierung 0 auf der Leitung 58&sub0; erzeugt. Die Module 40&sub1;-40&sub1;&sub5; wirken auf ähnliche Weise, um Bitzählwerte für die Kategorisierungen 1 bis 15 jeweils auf der Leitung 58&sub1;-58&sub1;&sub5; aufzusummieren. Das Modul 62 bestimmt die verfügbare Anzahl von Bit für die MLT- Transformationskoeffizientenübertragung. Dieses Modul 62 beginnt mit der vorbestimmten Anzahl von Bit pro Block auf der Leitung 64 (hier 320 Bit pro Block für den Betrieb mit 16.000 Bit pro Sekunde) und subtrahiert davon den Region-Energiebitzählwert auf der Leitung 29. Das Ergebnis wird um einen Bitzählwert von 4 reduziert, wobei es sich um die Anzahl von Bit handelt, die für die Kategorisierungsauswahl verwendet wird. Das Ergebnis ist die Anzahl verfügbarer Bit für die MLT- Transformationskoeffizientenübertragung. Das Modul 62 untersucht die Bitzählwerte auf den Leitungen 58&sub0;-58&sub1;&sub5;. Das Modul 62 identifiziert dann Kategorisierungen mit Bitzählwerten, die nicht über der Anzahl verfügbarer Bit für die MLT-Koeffizientenübertragung liegen. Aus der identifizierten Kategorisierung wählt das Modul 62 die Kategorisierung mit der am niedrigsten indizierten Kategorisierung aus, z. B. bevorzugt es die Kategorisierung N gegenüber der Kategorisierung. N+1. Das Modul 62 liefert die Vier-Bit-Darstellung dieses Kategorisierungsindexes N für den Schalter 60 und den Multiplexer 28 auf der Leitung 66.
- Der Schalter 60 koppelt ausgewählte MLT- Transformationskoeffizienten-Kodebits auf einer der Leitungen 59&sub0;-59&sub1;&sub5; über die Leitung 61 an den Multiplexer 28 an. Der Multiplexer 28 koppelt die Bit auf den Leitungen 26, 66 und 66 sequentiell an den Kanal 27 an. Der Multiplexer erzeugt je nach Bedarf Füllbit zum Auffüllen des Blocks.
- Die MLT (Modulated Lapped Transform) 16 ist eine kritisch abgetastete lineare Transformation mit perfekter Rekonstruktion mit Basisfunktionen, die sich zwischen Blöcken überlappen.
- Die Eingaben für jede MLT sind die neuesten 640 Zeitbereichsabtastwerte:
- x[n], n = [0,639], wobei x[0] der älteste Abtastwert ist.
- Die Ausgaben sind 320 Transformationsbereichswerte:
- mlt[m], m = [0,319].
- mlt[m] = SUM n=[0,639]sqrt(2/320) * sin((n+0,5)*PI/640) * cos((n-159,5)*(m+0,5)*PI/320) * x[n]
- Dies kann in eine Fenster-, Überlappungs- und Addieroperation mit einer anschließenden diskreten Kosinustransformation (DCT) des Typs IV zerlegt werden.
- Die Fenster-, Überlappungs- und Addieroperation lautet folgendermaßen:
- v[n] = w[n]*x[n] + w[319-n]*x[319-n], n=[0,159]
- v[n+160] = w[319-n]*x[320+n] - w[n]*x[639-n], n=[0,159]
- mit w[n] = sin((n+0,5)*PI/640), n=[0,319]
- Die DCT des Typs IV lautet:
- mlt[m] = SUM n=[0,319]sqrt(2/320) * cos((n+0,5)*(m+0,5)*PI/320) * v[n]
- (Es sollte beachtet werden, daß schnelle Transformationstechniken verwendet werden können, um die für die DCT erforderliche Rechenzeit zu reduzieren.)
- Die MLT-Transformationskoeffizienten werden, wie schon erwähnt, in 14 Regionen von 20 Transformationskoeffizienten aufgeteilt. Die Region r enthält die MLT-Transformationskoeffizienten 20r bis 20r+19, wobei r von 0 bis 13 reicht. Die 40 MLT- Transformationskoeffizienten der höchsten Frequenz stellen Frequenzen oberhalb von 7.000 Hz dar. Diese werden verworfen. Die Quadratwurzel der mittleren Leistung in jeder Region wird folgendermaßen bestimmt:
- rms[r] = Quadratwurzel von ((SUM [n=0,19] mlt[20*r+n]*mlt[20*r+n])/20,0)
- Für jede Region r wird dann ein Quantisierungsindex rms_index[r] bestimmt. Die möglichen Quantisierungswerte sind die Menge 2^((i+1)/2), wobei i eine ganze Zahl im Bereich von [-8, 31] ist. rms_index[0] wird weiterhin auf den Bereich [1-31] beschränkt. Es wird eine Metrik im log.-Bereich verwendet, so daß die Werte, die auf 2^(i/2) quantisiert werden, im Bereich von 2^(i-0,5)/2) bis 2^((i+0,5)/2) liegen.
- Die ersten Daten, die für jeden Block gesendet werden, sind rms_index[0]. Das höchstwertige Bit (msb) dieses Indexes wird zuerst gesendet. Der Wert 0 für rms_index[0] wird als ein Escape-Kode reserviert. Die anderen 13 Indizes werden differenzkodiert und dann für die Übertragung Huffman-kodiert. Die größten Differenzen, die kodiert werden können, sind +11 und - 12. Gegebenenfalls werden Täler nach oben angeglichen, damit die ihnen folgenden Spitzen genau dargestellt werden können, und zwar wie folgt:
- Die Differenzen werden in der Reihenfolge der Region gesendet. Sie werden gemäß den unten definierten Variable-Bitlängen-Kodes kodiert. Das Bit ganz links wird zuerst gesendet.
- Die quantisierten Indizes für die quantisierte und kodierte Leistungsamplitudenhüllkurve werden der Leitung 46 zugeführt.
- Eine Kategorisierung besteht aus einer Zuweisung für jede der 14 Regionen. Das heißt, für jede der 14 Regionen weist eine Kategorisierung eine der acht Kategorien zu. Das Kategorisierungsprozedurmodul 32 berechnet 16 mögliche Kategorisierungen für die Regionen gemäß voreingestellten Regeln oder Prinzipien. Genauer gesagt bestimmt die Kategorisierungsprozedur Quantisiererschrittgrößen oder zugeordnete Kategorien gemäß den folgenden beiden Prinzipien:
- 1. Das erste Prinzip besteht darin, daß, wenn die Leistung in einer Region A 2X dB größer ist als die Leistung in einer Region B, die auf unnormierte MLT- Transformationskoeffizienten in der Region A angewandte Quantisierungsschrittgröße um X dB größer sein sollte als die auf unnormierte MLT- Transformationskoeffizienten in der Region B angewandte Schrittgröße. Äquivalent sollte die Quantisierungsschrittgröße für die normierten MLT- Transformationskoeffizienten in der Region A um X dB kleiner sein als die Quantisierungsschrittgröße für die normierten MLT-Transformationskoeffizienten in der Region B. (Wenn die Region A niedrigere Spektralfrequenzen enthält als die Region B, dann kann für bestimmte Kategorisierungen die Quantisiererschrittgröße in diesem Kodierer X+3 dB kleiner sein als die der Region A).
- 2. Das zweite Prinzip besteht darin, daß das Verhältnis der Signalleistung in einer Region zu dem Quantisierungsrauschen in dieser Region eine bestimmte Schwelle nicht überschreiten sollte, über die hinaus das Quantisierungsrauschen vollständig durch die Signalleistung maskiert wird. Dieses Prinzip ist implizit in dem Umstand enthalten, daß die kleinste Schrittgröße (0,3536 für die Kategorie 0) nicht sehr klein ist.
- Es ist sehr wichtig für die Fähigkeit des Zusammenwirkens, daß verschiedene Implementierungen dieser Prozedur identische Kategorisierungen erzeugen, wenn sie dieselben Eingaben erhalten. Die Eingaben für diese Prozedur lauten:
- number_of_available_bits = Anzahl von Bit, die nach der Leistungshüllkurvenkodierung und der Ratensteuerung (d. h. Kategorisierung) übrigbleibt
- rms_index = Array von 14 ganzen Zahlen, die die Region-Leistungsquantisierungspegel in 3,01-dB- Schritten angeben.
- Die einer Region zugewiesene Kategorie bestimmt die Quantisierungs- und Kodierungsparameter für diese Region und auch eine erwartete Gesamtzahl von Bit zur Darstellung der quantisierten MLT-Pegel in der Region. Da ein Verfahren zur Variable-Bitlängen-Kodierung auf statistischer Grundlage verwendet wird, hier der Huffman-Kode, ändert sich die tatsächliche Anzahl von Bit abhängig von den MLT-Transformationskoeffizienten in der Region. Aus diesem Grund ist es notwendig, mehrere mögliche Kategorisierungen zu berechnen.
- Es ist zu beachten, daß bei diesem Ausführungsbeispiel 8 Quantisierungskategorien vorliegen. Die erwarteten Bit-Gesamtwerte sind in einer expected_bits_table folgendermaßen angegeben:
- expected_bits_table
- 0 52
- 1 47
- 2 43
- 3 37
- 4 29
- 5 22
- 6 16
- 7 0
- Die Prozedur berechnet zuerst raw_category[region] = -rms_index[region] für jede Region. Für ein Integer- Offset in [-64, 63] werden durch die Gleichung
- j[region] = Max{0,MIN{7, (raw_category[region]+offset)/2}}
- gemäß wahrnehmungsbezogenen Maskierungsprinzipien Regionen Kategorien zugewiesen. Die erwartete Gesamtzahl von MLT-Kodebit beträgt
- expected_number_of_code_bits = SUM region = [0,13] expected_bits_table[j[region]]
- Der Offsetwert wird dann so lange angeglichen, bis das kleinste Offset gefunden wird, so daß expected_number_of_code_bits < number_of_available_bits ist. (Zu diesem Zweck kann man eine binäre Suche verwenden.) initial_power_categories[region] wird dann auf Max{0,MIN{7, (raw_category[region]+offset)/2} gesetzt.
- Sobald diese Kategorisierung gefunden wurde, werden 15 weitere Kategorisierungen durch Angleichen der Kategorie in einer Region pro Kategorisierung abgeleitet. Zuerst werden max_rate_categories[region] und min_rate_categories[region] auf initial_power_categories[region] initialisiert.
- Außerdem wird folgendes initialisiert:
- max_bits und min_bits = expected_number_of_code_bits
- max_rate_categories[region] = initial_power_categories[region], region = [0,13]
- min_rate_categories[region] = initial_power_categories[region], region = [0,13]
- max_bits = expected_number_of_code_bits min_bits = expected_number_of_code_bits
- Danach wird 15 mal max_bits+min_bits mit 2*number_of_available bits verglichen. Wenn max_bits+min bits < = 2*number_of_available bits ist, dann wird eine neue Kategorisierung mit einer größeren erwarteten Anzahl von Bit benötigt. Andernfalls wird eine Kategorisierung mit einer kleineren erwarteten Anzahl von Bit benötigt.
- Wenn eine Kategorisierung mit einer größeren erwarteten Anzahl von Bit benötigt wird, dann wird die Region mit den niedrigsten Frequenzen, für die die Kategorie nicht bereits 0 ist und raw_category[region] + offset - 2*max_rate_categories[region] mindestens so klein ist wie für jede andere Region, bestimmt. Die Kategorie für diese Region wird in max_rate_categories um 1 reduziert. Danach wird die erwartete Anzahl von Bit für diese neue Kategorisierung berechnet und max_bit ihr gleichgesetzt.
- Wenn eine Kategorisierung mit einer kleineren erwarteten Anzahl von Bit benötigt wird, dann wird die Region mit den höchsten Frequenzen, für die die Kategorie nicht bereits die Kategorie 7 ist und raw_category[region] + offset - 2*max_rate_categories[region] mindestens so groß ist wie für jede andere Region, bestimmt. Die Kategorie für diese Region wird in min_rate_categories um 1 vergrößert. Danach wird die erwartete Anzahl von Bit für diese neue Kategorisierung berechnet und min_bit ihr gleichgesetzt.
- Auf diese Weise werden 16 Kategorisierungen erzeugt, deren Reihenfolge durch die erwartete Anzahl von Bit festgelegt werden kann. Die Kategorisierung 0 weist die größte erwartete Anzahl von Bit auf und die Kategorisierung 15 die kleinste. Jede Kategorisierung stimmt, mit Ausnahme einer einzigen Region, in der sich die Kategorisierungen um eins unterscheiden, mit ihren Nachbarn in der Reihenfolge überein.
- Es sollte beachtet werden, daß die oben beschriebene Kategorisierungsprozedur so modifiziert werden kann, daß sie ein drittes Prinzip enthält. Das dritte Prinzip für die Kategorisierungsprozedur besteht darin, daß die Signalleistung in einer Region das Quantisierungsrauschen in einer anderen Region maskieren kann und daß dieser Maskierungseffekt dann am größten ist, wenn die Regionen spektral nahe beieinander liegen. Durch Verwendung nur der ersten beiden Prinzipien wird die Kategoriezuweisung für eine Region durch die spektrale Nähe der Leistung in anderen Regionen nicht beeinflußt. Durch Hinzufügen des dritten Prinzips erhält der spektrale Abstand Einfluß. Die obige Gleichung raw_category[region] = -rms_index[region] würde zu der folgenden Gleichung werden:
- 2^rms_index[region] raw_category[region] = - log. von SUM r = [0,13] (weight[region,r] * 2^rms_index[r]); wobei weight[region,r] eine bestimmte feste Funktion ist, die mit zunehmendem spektralen Abstand ( region -r ) abnimmt. Man beachte, daß, wenn weight[region,r] eine Konstante wäre, sich dieser Ausdruck auf raw_category[region] = -rms_index[region] + eine Konstante reduzieren würde].
- Fig. 7A-7C sind ein Flußdiagramm der Schritte 300-324, die in der Kategorisierungsprozedur gemäß den beiden ersten Prinzipien verwendet werden.
- MLT-Transformationskoeffizienten in den Kategorien 0 bis 6 werden normiert, quantisiert, zu Vektoren kombiniert und dann Huffman-kodiert. Die MLT- Transformationskoeffizienten werden zuerst mit Totzonenerweiterung normiert und skalarquantisiert. Die resultierenden Quantisierungsindizes werden dann zu Vektorindizes kombiniert. Als letztes werden die Vektorindizes mit variabler Bitlänge kodiert.
- Für der Kategorie 7 zugewiesene Regionen werden keine Bit übertragen.
- Für Regionen, bei denen die Kategorie nicht die Kategorie 7 ist, normiert und quantisiert der Kodierer in den Modulen 40&sub0;-40&sub1;&sub5; den Absolutwert jedes MLT- Transformationskoeffizienten mlt[i], um den Quantisierungsindex k[i] zu erzeugen: k[i] = max{ganzzahliger Teil von (x*Absolutwert von mlt[20*region + i] + deadzone_rounding), kmax}; wobei x = 1,0/(Schrittgröße * (quantisierter RMS-Wert für die Region) und die Schrittgröße, deadzone_rounding und kmax in der folgenden Tabelle angegeben sind: TABELLE
- Diese Indizes werden zu Vektorindizes kombiniert. Die Eigenschaften der Vektoren werden in der folgenden Tabelle angegeben:
- vd := Vektordimension
- vpr := Anzahl von Vektoren pro Region
- u := (kmax+1)^vd, die Anzahl verschiedener Vektoren
- Im allgemeinen wird index[n] folgendermaßen berechnet: vector_index[n] = SUM über i = [0,vd-1] (k[(n*vpr)+i] * (kmax+1) ^ (vd-(i+1))).
- Die Anzahl von Bit, die erforderlich ist, um einen Vektor mit dem Index vector_index für die Kategorie x darzustellen, befindet sich in der nachfolgenden Tabelle mlt_sqvh_bitcount_category_x. Die entsprechenden Kodebit befinden sich in der nachfolgenden Tabelle mlt_sqvh_code_category_x. Diese Zahlen werden dann zusammen mit den Zahlen- Vorzeichenbit summiert, um die zur Darstellung dieser Region mit dieser Kategorie erforderliche Gesamtzahl von Bit zu bestimmen:
- number_of_region_bits[region] = SUM n=[0,vpr-1] mlt_vector_quant_bits[category][vector_index[n]].
- Die Tabellen mlt_sqvh_bitcount_category_x und mlt_sqvh_code_category_x sind unten angegeben:
- Die Vektorindizes werden auf der Leitung 59 in der Reihenfolge der Spektralfrequenzen gesendet. Sie werden gemäß den in den obigen Tabellen definierten Variable- Bitlängen-Kodes kodiert. Die Bit ganz links werden zuerst gesendet. Vorzeichenbit, die von Null verschiedenen Skalarindizes entsprechen, folgen unmittelbar auf jeden Vektorindexkode. Die Vorzeichenbit werden ebenfalls in der Reihenfolge der Spektralfrequenzen gesendet. (Die Kodierungstabellen bilden bestimmte Vektorindizes auf Kodes ab, die als ein anderer Vektorindex dekodiert werden, wenn der erste Vektorindex eine entsprechende Gesamtleistung aufweist, die die für eine gesamte Region maximal mögliche übersteigt, d. h., 20 mal die Quadratwurzel von 2.)
- Für jede einzelne der 16 Kategorisierungen wird die tatsächlich zur Darstellung des Blocks erforderliche Gesamtzahl von Bit berechnet. Dazu gehören die Bit, mit denen die Leistungsamplitudenhüllkurve dargestellt wird, die 4 Ratensteuerbit (d. h., eine Identifikation der gewählten der 16 möglichen Kategorisierungen) und die Bit, die zur SQVH-Kodierung der MLT- Transformationskoeffizienten benötigt werden.
- Aus den Kategorisierungen, die Bit-Gesamtwerte ergeben, die in die Zuteilung passen, wird eine ausgewählt. (Bestimmte Implementierungen können immer die am niedrigsten indizierte Kategorisierung wählen.) Wenn keine der Kategorisierungen einen Bit-Gesamtwert ergibt, der in die Zuteilung paßt, wird die Kategorisierung gewählt, die am nächsten kommt (normalerweise 15). Danach können Kodebit gesendet werden, bis die Zuteilung für den Block erschöpft ist. Als Alternative können bestimmte MLT- Transformationskoeffizienten in Indizes umquantisiert werden, die weniger Bit benutzen, so daß alle Kodebit in dem Block übertragen werden können.
- Es gibt drei Haupt-Datentypen, die auf dem Kanal 27 gesendet werden: die Leistungsamplitudenhüllkurve, die Ratensteuerung (d. h., die gewählte Kategorisierung) und SQVH-MLT-Transformationskoeffizientenindizes. Die Leistungsamplitudenhüllkurve wird zuerst gesendet. Sie wird in der Reihenfolge von der Region mit den niedrigsten Frequenzen zu der Region mit den höchsten gesendet. Die erste Region wird mit 5 Bit kodiert. Jede der 13 übrigen Regionen wird mit einer variablen Anzahl von Bit kodiert.
- Die Ratensteuerung auf der Leitung 66 wird als nächstes gesendet. Die Ratensteuerung benutzt immer 4 Bit. Die SQVH-MLT-Transformationskoeffizientenindizes auf der Leitung 61 werden als letztes gesendet. Die SQVH-Kodes werden in der Reihenfolge der Spektralfrequenzen von der niedrigsten zur höchsten gesendet. Die SQVH-MLT- Transformationskoeffizientenindizes werden mit einer variablen Anzahl von Bit kodiert. Abhängig von der Kategorisierung erhalten bestimmte Regionen keine Bit. Im allgemeinen werden einige nachlaufende Füllbit benötigt, um die Zuteilung eines Rahmens auszufüllen. Der Vorgabewert für diese Bit sind Einsen mit einer abschließenden Null. BITFELDREIHENFOLGE SQVH-MLT-Transformationskoeffizientenkodierung für eine Region mit N Vektoren
- BEISPIEL
- HIER EIN BEISPIEL FÜR SCHLÜSSELPUNKTE SEI DER KODIERUNG EINES RAHMENS. Kodierer-Amplitudenhüllkurve: KATEGORISIERUNGSPROZEDUR
- DIE ANFÄNGLICHE KATEGORISIERUNG IST DEM OFFSET = 18 ZUGEORDNET
- DIE KATEGORISIERUNGSPROZEDUR BESTIMMT NUN DIE FOLGENDEN 16 KATEGORISIERUNGEN. Kategorie für jede Kategorisierung nach Region
- DIE FOLGENDE TABELLE ZEIGT DIE ERWARTETEN BIT-GESAMTWERTE NACH REGION FÜR DIE 16 KATEGORISIERUNGEN Erwartete Anzahl von Bit für jede Kategorisierung nach Region
- DIE FOLGENDEN TABELLEN ZEIGEN DIE TATSÄCHLICHEN HIT-GESAMTWERTE NACH REGION UND KATEGORIE
- Nunmehr ist mit Bezug auf Fig. 5 zu sehen, daß der Dekodierer 30 einen Demultiplexer 60 zum Demultiplexen der Daten, d. h. des Bitstroms, auf dem Kanal 27 in Leistungsamplitudenquantisierungsindizes auf der Leitung 26', der Ratensteuerung auf der Leitung 66' und quantisierten und kodierten Transformationskoeffizienten auf der Leitung 61', wie gezeigt, enthält. Die quantisierte Leistung in jeder der Regionen wird aus den übertragenen quantisierten Leistungsindizes in dem Modul 22' dekodiert und rekonstruiert. Die Region-Leistungsquantisierungspegel werden auf der Leitung 31' erzeugt, und ihr Bitzählwert auf der Leitung 29'. Unter Verwendung der quantisierten Leistungsindizes und der Anzahl von Bit, die nach der Region-Leistungsdekodierung im Modul 32' übrig ist, wird dieselbe Menge von Kategorisierungen bestimmt, die der Kodierer 9 (Fig. 3) bestimmt hat. Genauer gesagt, erzeugt das Kategorisierungsmodul 32' die 16 Kategorisierungen Categorization0-Categorization15 jeweils auf den Leitungen 34'&sub0;-34'&sub1;&sub5;.
- Das Modul 62' erhält die Kategorisierungen auf den Leitungen 34'&sub0;-34'&sub1;&sub5; und verwendet die Kategorisierungsauswahl auf der Leitung 66' (vom Kodierer 9 auf Leitung 66 bereitgestellt), um eine der Kategorisierungen auf den Leitungen 34'&sub0;-34'&sub1;&sub5; zu bestimmen, die an die Leitung 34' angekoppelt wird. Für jede Region bestimmt das Modul 40' die Transformationskoeffizienten-Rekonstruktionspegeltabelle, die Vektordimension und eine Variable-Bitlängen- Dekodierungstabelle gemäß den Kategoriezuweisungen für jede Region auf der Leitung 34'. Danach dekodiert das Modul 40' die Bit auf der Leitung 61' unter Verwendung der Variable-Bitlängen-Dekodierungstabelle und rekonstruiert die Transformationskoeffizienten unter Verwendung der Transformationskoeffizienten- Rekonstruktionstabelle und der Region- Leistungsquantisierungspegel auf der Leitung 31'.
- Nunmehr mit Bezug auf Fig. 6 nimmt das Modul 40' den Bitstrom auf der Leitung 61' an und dekodiert die Vektorindizes in den Regionen 0-13 jeweils sequentiell in den Modulen 51'&sub0;-51'&sub1;&sub3;, gemäß den Kategoriezuweisungen auf der Leitung 34'. Die Module 51'&sub0;-51'&sub1;&sub3; trennen gemäß den Kategoriezuweisungen auf der Leitung 34' die Vektorindizes in Skalarindizes für jede Region auf. Die Module 50'&sub0;-50'&sub1;&sub3; rekonstruieren und entnormieren die MLT-Transformationskoeffizienten jeweils für die Regionen 0-13 gemäß: den jeweils durch die Module 51'&sub0;-51'&sub1;&sub3; erzeugten Skalarindizes; den Kategoriezuweisungen auf der Leitung 34'; und den Region-Leistungsquantisierungspegeln auf der Leitung 31', um die rekonstruierten MLT- Transformationskoeffizienten für den Block auf der Leitung 68 zu erzeugen.
- Nochmals mit Bezug auf Fig. 5 werden die Transformationskoeffizienten in dem Invers-MLT-(IMLT-)Modul 16' und dem Digital/Analog-Umsetzer (D/A) 14' in ein Zeitbereichs-Audiosignal transformiert.
- Es sollte beachtet werden, daß bestimmte Regionen der Kategorie 7 zugewiesen werden können, d. h., daß für diese Regionen keine spezifischen MLT-Informationen übertragen wurden. Der mittlere MLT-Betrag für diese Regionen (d. h. die Quadratwurzel der quantisierten mittleren Leistung) ist jedoch verfügbar. Statt diese Transformationskoeffizienten auf 0 zu setzen, setzt der Dekodierer sie auf einen Wert, der proportional zu dem mittleren MLT-Transformationskoeffizientenbetrag für jede Region ist (gleich der Quadratwurzel der quantisierten mittleren Leistung in dieser Region), und die Vorzeichen werden zufällig gewählt. Dies wird als Rauschfüllung bezeichnet. Eine Rauschfüllung wird auch für die Kategorien 6 und 5 verwendet, weil für diese Kategorien die meisten MLT-Transformationskoeffizienten auf 0 quantisiert werden. Die Werte, die als Nullen übertragen wurden, werden alle auf kleine Bruchteile des mittleren Betrags für die Region gesetzt. Wieder werden die Vorzeichen zufällig bestimmt.
- Für die Transformationskoeffizienten, die kodiert werden, werden zur Dekodierung Centroid- Rekonstruktionstabellen für jede Kategorie vorgesehen. Die dekodierten Werte werden dann mit der Quadratwurzel der quantisierten mittleren Leistung in der Region renormiert.
- Die 40 MLT-Transformationskoeffizienten, die Frequenzen oberhalb von 7000 Hz darstellen, werden auf 0 gesetzt. Nach der Rekonstruktion der MLT- Transformationskoeffizienten erzeugt eine IMLT (Inverse Modulated Lapped Transform) 16' auf der Leitung 70 320 neue Zeitbereichs-Abtastwerte. Die Abtastwerte auf der Leitung 70 werden durch einen Digital/Analog-Umsetzer (D/A) 14' in das Audiosignal auf der Leitung 72 umgesetzt. Der Betrieb des Dekodierers 30 für jeden Block von MLT-Informationen ist unabhängig von den Informationen im vorherigen Block, mit Ausnahme der letzten Überlappungs- und Addieroperation in der IMLT 16'.
- Dazu ausführlicher:
- Die ersten 5 Bit des Blocks von Daten auf der Leitung 46' werden in rms_index[0] zusammengestellt. Danach werden für die Regionen 1 bis 13 die Variable- Bitlängen-Kodes für differential_rms_index[region] gemäß der Tabelle differential_rms_table dekodiert, die im Kodiererabschnitt definiert wird.
- Für die Regionen 1 bis 13 gilt:
- rms_index[region] = rms_index[region-1] + differential_rms_index[region];
- Für jeden Block berechnet das Modul 64 des Dekodierers 30 nach der Dekodierung der Leistungsamplitudenhüllkurve die Anzahl von Bit, die zur Darstellung der MLT-Transformationskoeffizienten verfügbar ist.
- verfügbare Bit = Bit pro Block - Amplitudenhüllkurvenbit - 4 Ratensteuerbit;
- Danach verwendet das Modul 64 die in Fig. 7A-7C dargelegte Kategorisierungsprozedur, um dieselbe Menge von 16 möglichen Kategorisierungen zu rekonstruieren, die der Kodierer 9 (Fig. 3) berechnet hatte. Als letztes bestimmen die 4 Ratensteuerbit (d. h. die Ratensteuerung) auf der Leitung 45' die eine der 16 Kategorisierungen, die vom Kodierer 9 (Fig. 3) für die Kodierung der MLT-Transformationskoeffizienten ausgewählt wurde.
- Für jede Region dekodiert das Modul 66 des Dekodierers 30 die Variable-Bitlängen-Kodes für die MLT-Vektoren auf der Leitung 49' gemäß der der Kategorie entsprechenden Tabelle, die in dem Modul 64 des Kodierers 30 definiert wird:
- (mlt_sqvh_bitcount_category_x und mlt_sqvh_code_category_x), mit x = 0 bis 6
- Danach werden aus dem Vektorindex die einzelnen MLT- Transformationskoeffizienten-Quantisierungsindizes k[i] wiederhergestellt:
- k[i] = (vector_index modulo (kmax+1)^(i+1))/(kmax+1)^i i = [0,vd-1]
- mit:
- vd = Vektordimension für Kategorie
- kmax = maximaler Skalarquantisierungsindex für Kategorie
- Die vorgegebene Rekonstruktion für die MLT-Transformationskoeffizienten verwendet die Centroid-Tabellen:
- Die MLT-Transformationskoeffizientenamplituden werden in dem Modul 66 rekonstruiert, indem das Produkt der Quadratwurzel der quantisierten mittleren Leistung in der Region mit dem durch den dekodierten Index angegebenen Centroid gebildet wird.
- Für jede Region dekodiert das Modul 66 des Dekodierers 30 die Variable-Bitlängen-Kodes für die MLT-Vektoren auf der Leitung 49' gemäß der Kategorie der in dem Modul 64 des Kodierers 30 definierten entsprechenden Tabelle:
- (mlt_sqvh_bitcount_category_x und mlt_sqvh_code_category_x), mit x = 0 bis 6
- Danach werden die einzelnen MLT-Transformationskoeffizienten-Quantisierungsindizes k[i] aus dem Vektorindex wiederhergestellt:
- k[i] = (vector_index modulo (kmax+1)^(i+1)/(kmax+1)^i i = [0,vd-1]
- mit:
- vd = Vektordimension für die Kategorie
- kmax = maximaler Skalarquantisierungsindex für die Kategorie.
- Die vorgegebene Rekonstruktion für die MLT- Transformationskoeffizienten verwendet die folgenden Centroid-Tabellen:
- Die MLT-Transformationskoeffizientenamplituden werden in dem Modul 66 rekonstruiert, indem das Produkt der Quadratwurzel der quantisierten mittleren Energie in der Region mit dem durch den dekodierten Index spezifizierten Centroid genommen wird.
- Von Null verschiedene Werte werden dann negiert, wenn das entsprechende Vorzeichenbit auf 1 gesetzt ist.
- Für die Kategorie 7 werden keine MLT- Transformationskoeffizientenamplituden kodiert. Für die Kategorien 5 und 6 sind die Quantisierungsschrittgrößen so groß, daß die meisten MLT- Transformationskoeffizienten als 0 kodiert werden. Der Dekodierer ersetzt diese Nullen durch Werte mit zufälligem Vorzeichen und einer Amplitude, die proportional zu der Quadratwurzel der quantisierten mittleren Energie für die Region ist. Die vorgegebenen Proportionalitätskonstanten sind wie folgt:
- 5 0,176777
- 6 0,25
- 7 0,707107
- Es kann Blöcke geben, für die dem Kodierer die Bit ausgehen, bevor er mit der Kodierung der letzten von Kategorie 7 verschiedenen Region fertig ist. Die in diesen Fällen vorgegebene Dekodiereraktion besteht darin, diese Region und alle übrigen Regionen als Kategorie 7 zu verarbeiten.
- Jede IMLT-Operation (Inverse Modulated Lapped Transform) 68 nimmt 320 MLT-Transformationskoeffizienten auf und erzeugt 320 Zeitbereichs- Audioabtastwerte. Die IMLT 68 kann in eine DCT vom Typ IV mit anschließender Fenster-, Überlappungs- und Addieroperation zerlegt werden. Die DCT des Typs IV lautet:
- u[n] = SUM m=[0,319] sqrt(2/320) * cos((m+0,5)*(n+0,5)*PI/320) * mlt[m]
- Die Fenster-, Überlappungs- und Addieroperation verwendet die Hälfte der Abtastwerte aus der DCT- Ausgabe des aktuellen Blocks mit der Hälfte derjenigen aus der DCT-Ausgabe des vorherigen Blocks:
- y[n] = w[n]*u[159-n] + w[319-n]*u_old[n], n = [0,159]
- y[n+160] = w[160+n]*u[n] - w[159-n]*u_old[159-n], n = [0,159]
- Für den nächsten Block wird die bisher unbenutzte Hälfte von u in u_old gespeichert:
- u_old[n] = u[n+160], n = [0,159]
- Es folgt als ANHANG ein Quellkodeprogramm in der Programmiersprache C, das die Kodierer-, Dekodierer- und Initialisierungsmodule enthält. Ein Teil der Offenlegung der vorliegenden Patentschrift enthält urheberrechtlich geschütztes Material. Der Besitzer des Urheberrechts hat keine Einwände gegen den Nachdruck des Patentdokuments oder der Patentoffenlegung, so wie sie in den Akten oder Aufzeichnungen des. Patentamts erscheint, durch beliebige Personen, behält sich jedoch ansonsten alle anderen urheberrechtlichen Rechte vor. ANHANG
Claims (5)
1. Verfahren zum Kodieren eines Audiosignals, mit den
Schritten:
Konvertieren sich überlappender Gruppen von
digitalisierten Abtastwerten des Audiosignals in
Blöcke von Transformationskoeffizienten;
Gruppieren der Transformationskoeffizienten in
jedem Block in einander benachbarte Regionen;
Ermitteln der Energie in jeder Region aus den
Transformationskoeffizienten in der Region;
Ableiten (1) einer Vielzahl von Kategorisierungen
für die Transformationskoeffizienten aus der in
jeder Region ermittelten Energie, wobei jede
Kategorisierung für jede Region eine vorbestimmte
Regel für die Durchführung einer skalaren,
ungleichförmigen Quantisierung mit einer
vorbestimmten Schrittgröße spezifiziert;
Kombinieren einer vorbestimmten Anzahl
resultierender Quantisierungsskalare zur Bildung
von Vektoren und Durchführen einer statistisch
begründeten Variable-Bitlängen-Kodierung der
Vektoren;
Ermitteln der Anzahl von Bits, die erforderlich
ist, um die kodierten Vektoren zu einem Dekoder zu
übertragen, für jede einzelne Kategorisierung;
Quantisieren und Kodieren der
Transformationskoeffizienten entsprechend einer Kategorisierung,
die entsprechend einem vorbestimmten Kriterium der
Wiedergabetreue und einer maximalen Bitrate
ausgewählt ist;
Übertragen der quantisierten Energie, der
quantisierten und kodierten
Transformationskoeffizienten sowie einer Kennung der ausgewählten
Kategorisierungen zu einem Dekoder.
2. Verfahren zum Dekodieren eines kodierten
Audiosignals, mit den Schritten:
Rekonstruieren der Energie aus quantisierter und
kodierter Energie in jeder einer Vielzahl von
Regionen;
Ermitteln einer aus einer vorbestimmten Anzahl von
Quantisierungs- und
Variable-Bitlängen-Kodierungskategorisierungen, die vom Kodierer benutzt
werden, aus einer empfangenen Kennung davon und
aus der rekonstruierten Energie, wobei jede
Kategorisierung für jede Region eine vorbestimmte
Regel für das Durchführen einer skalaren,
ungleichförmigen Quantisierung mit einer
vorbestimmten Schrittgröße spezifiziert;
Kombinieren einer vorbestimmten Anzahl von
resultierenden Quantisierungsskalaren, um Vektoren
zu bilden;
Durchführen einer Variable-Bitlängen-Dekodierung
der Vektoren auf statistischer Grundlage;
Ermitteln einer Quantisierungsschrittgröße für
jede Region aus der ermittelten Kategorisierung
und der quantisierten Energie;
Rekonstruieren rekonstruierter
Transformationskoeffizienten aus den quantisierten und kodierten
Transformationskoeffizienten unter Anwendung der
ermittelten Schrittgröße und
Transformieren der rekonstruierten
Transformationskoeffizienten in das Audiosignal.
3. Kodierer zum Kodieren eines Audiosignals, der
folgendes aufweist:
ein Modul zum Konvertieren von sich überlappenden
Gruppen digitalisierter Abtastwerte des
Audiosignals in Blöcke von
Transformationskoeffizienten;
ein Modul, um die Transformationskoeffizienten in
jedem Block in zueinander benachbarte Regionen zu
gruppieren;
ein Modul, um die Energie in jeder Region aus den
Transformationskoeffizienten in der Region zu
ermitteln;
ein Modul, um aus der in jeder Region ermittelten
Energie eine Vielzahl von Kategorisierungen für
die Transformationskoeffizienten abzuleiten, wobei
jede Kategorisierung für jede Region eine
vorbestimmte Regel spezifiziert, um eine skalare,
ungleichförmige Quantisierung mit einer
vorbestimmten Schrittgröße durchzuführen;
ein Modul, um eine vorbestimmte Anzahl
vonresultierenden Quantisierungsskalaren zur Bildung
von Vektoren zu kombinieren und um eine. Variable-
Bitlängen-Kodierung der Vektoren auf statistischer
Grundlage durchzuführen;
ein Modul, um für jede einzelne Kategorisierung
die Anzahl von Bits zu ermitteln, die erforderlich
ist, um die kodierten Vektoren zu einem Dekoder zu
übertragen;
ein Modul, um die Transformationskoeffizienten
entsprechend einer Kategorisierung zu quantisieren
und zu kodieren, die gemäß einem vorbestimmten
Kriterium der Wiedergabetreue und der maximalen
Bitrate ausgewählt ist;
ein Modul, um die quantisierte Energie, die
quantisierten und kodierten
Transformationskoeffizienten sowie eine Kennung der ausgewählten
Kategorisierungen zu einem Dekoder zu übertragen.
4. Dekoder zum Dekodieren eines kodierten
Audiosignals, der folgendes aufweist:
ein Modul, um die Energie in jeder einer Vielzahl
von Regionen aus quantisierter und kodierter
Energie zu rekonstruieren;
ein Modul, um eine aus einer vorbestimmten Anzahl
von Quantisierungs- und Variable-Bitlängen-
Kodierungskategorisierungen, die vom Kodierer
benutzt werden, aus einer empfangenen Kennung
davon und aus der rekonstruierten Energie zu
ermitteln, wobei jede Kategorisierung für jede
Region eine vorbestimmte Regel für das Durchführen
einer skalaren, ungleichförmigen Quantisierung mit
einer vorbestimmten Schrittgröße spezifiziert;
ein Modul, um eine vorbestimmte Anzahl
resultierender Quantisierungsskalare zu
kombinieren, um Vektoren zu bilden, und um eine
Variable-Bitlängen-Dekodierung der Vektoren auf
statistischer Grundlage durchzuführen;
ein Modul, um eine Quantisierungsschrittgröße für
jede Region aus der ermittelten Kategorisierung
und der quantisierten Energie zu ermitteln;
ein Modul, um aus den quantisierten und kodierten
Transformationskoeffizienten rekonstruierte
Transformationskoeffizienten unter Verwendung der
ermittelten Schrittgröße zu rekonstruieren; und
ein Modul, um die rekonstruierten
Transformationskoeffizienten in das Audiosignal zu
transformieren.
5. Kodierungs- und Dekodierungsverfahren zur
Kodierung und Dekodierung eines Audiosignals, das
folgendes aufweist:
einen Kodierer, der folgendes aufweist:
ein Modul, um sich überlappende Gruppen
digitalisierter Abtastwerte des Audiosignals zu
Blöcken von Transformationskoeffizienten zu
konvertieren;
ein Modul, um die Transformationskoeffizienten in
jedem Block in zueinander benachbarte Regionen zu
gruppieren;
ein Modul, um die Energie in jeder Region aus den
Transformationskoeffizienten in der Region zu
ermitteln;
ein Modul, um aus der ermittelten Energie eine
Vielzahl von Kategorisierungen für die
Transformationskoeffizienten abzuleiten, wobei
jede Kategorisierung für jede Region eine
vorbestimmte Regel für das Durchführen einer
skalaren, ungleichförmigen. Quantisierung mit einer
vorbestimmten Schrittgröße spezifiziert;
ein Modul, um eine vorbestimmte Anzahl von
resultierenden Quantisierungsskalaren zu
kombinieren, um Vektoren zu bilden, und um eine
Variable-Bitlängen-Kodierung der Vektoren
durchzuführen;
ein Modul, um für jede einzelne Kategorisierung
die Anzahl von Bits zu ermitteln, die erforderlich
ist, um die kodierten Vektoren zu einem Dekoder zu
übertragen;
ein Modul, um die Transformationskoeffizienten
entsprechend einer Kategorisierung zu quantisieren
und zu kodieren, welche gemäß einem vorbestimmten
Kriterium der Wiedergabetreue und der maximalen
Bitrate ausgewählt ist, und
ein Modul, um die quantisierte Energie, die
quantisierten und kodierten
Transformationskoeffizienten und eine Kennung der ausgewählten
Kategorisierungen zu einem Dekoder zu übertragen,
wobei der Dekoder folgendes aufweist:
ein Modul, um die Energie in jeder von einer
Vielzahl von Regionen aus quantisierter und
kodierter Energie zu rekonstruieren;
ein Modul, um eine aus einer vorbestimmten Anzahl
von Quantisierungs- und
Variable-Bitlängen-Kodierungskategorisierungen, welche von dem Kodierer
benutzt werden, aus einer erhaltenen Kennung davon
und aus der rekonstruierten Energie zu ermitteln,
wobei jede Kategorisierung für jede Region eine
vorbestimmte Regel zum Durchführen einer skalaren,
ungleichförmigen Quantisierung mit einer
vorbestimmten Schrittgröße spezifiziert, und
ein Modul, um eine vorbestimmte Anzahl von
resultierenden Quantisierungsskalaren zu
kombinieren, um Vektoren zu bilden, und um eine Variable-
Bitlängen-Kodierung der Vektoren auf statistischer
Grundlage durchzuführen;
ein Modul, um eine Quantisierungsschrittgröße für
jede Region aus der ermittelten Kategorisierung
und der quantisierten Energie zu ermitteln;
ein Modul, um aus den quantisierten und kodierten
Transformationskoeffizienten rekonstruierte
Transformationskoeffizienten unter Verwendung der
ermittelten Schrittgröße zu rekonstruieren, und
ein Modul, um die rekonstruierten
Transformationskoeffizienten in das Audiosignal zu
transformieren.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/726,959 US5924064A (en) | 1996-10-07 | 1996-10-07 | Variable length coding using a plurality of region bit allocation patterns |
PCT/US1997/017770 WO1998015945A1 (en) | 1996-10-07 | 1997-10-06 | Variable length audio coding using a plurality of subband bit allocation patterns |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69705642D1 DE69705642D1 (de) | 2001-08-16 |
DE69705642T2 true DE69705642T2 (de) | 2002-05-02 |
Family
ID=24920743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69705642T Expired - Lifetime DE69705642T2 (de) | 1996-10-07 | 1997-10-06 | Audio-kodierverfahren mit veränderlicher kodelänge unter verwendung einer mehrzahl von teilband-bitverteilungsmoden |
Country Status (6)
Country | Link |
---|---|
US (1) | US5924064A (de) |
EP (1) | EP0968497B1 (de) |
JP (1) | JP4237826B2 (de) |
CA (1) | CA2267764A1 (de) |
DE (1) | DE69705642T2 (de) |
WO (1) | WO1998015945A1 (de) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167375A (en) * | 1997-03-17 | 2000-12-26 | Kabushiki Kaisha Toshiba | Method for encoding and decoding a speech signal including background noise |
KR100335609B1 (ko) | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
JP4570250B2 (ja) * | 1998-05-27 | 2010-10-27 | マイクロソフト コーポレーション | 信号の量子化変換係数をエントロピーエンコードするシステムと方法 |
CA2368453C (en) * | 1999-04-16 | 2009-12-08 | Grant Allen Davidson | Using gain-adaptive quantization and non-uniform symbol lengths for audio coding |
EP1345331B1 (de) * | 2000-12-22 | 2008-08-20 | Sony Corporation | Codierer |
AUPR433901A0 (en) * | 2001-04-10 | 2001-05-17 | Lake Technology Limited | High frequency signal construction method |
US7240001B2 (en) * | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
KR20040075951A (ko) * | 2002-01-22 | 2004-08-30 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 이미 압축된 멀티미디어의 비트 레이트의 감소 |
US7099387B2 (en) * | 2002-03-22 | 2006-08-29 | Realnetorks, Inc. | Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses |
US7447631B2 (en) * | 2002-06-17 | 2008-11-04 | Dolby Laboratories Licensing Corporation | Audio coding system using spectral hole filling |
US20030236674A1 (en) * | 2002-06-19 | 2003-12-25 | Henry Raymond C. | Methods and systems for compression of stored audio |
DE102004009955B3 (de) * | 2004-03-01 | 2005-08-11 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Ermitteln einer Quantisierer-Schrittweite |
US7536302B2 (en) * | 2004-07-13 | 2009-05-19 | Industrial Technology Research Institute | Method, process and device for coding audio signals |
DE102004036154B3 (de) * | 2004-07-26 | 2005-12-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur robusten Klassifizierung von Audiosignalen sowie Verfahren zu Einrichtung und Betrieb einer Audiosignal-Datenbank sowie Computer-Programm |
US8116500B2 (en) * | 2004-10-15 | 2012-02-14 | Lifesize Communications, Inc. | Microphone orientation and size in a speakerphone |
US20060132595A1 (en) * | 2004-10-15 | 2006-06-22 | Kenoyer Michael L | Speakerphone supporting video and audio features |
US7720232B2 (en) * | 2004-10-15 | 2010-05-18 | Lifesize Communications, Inc. | Speakerphone |
US7720236B2 (en) * | 2004-10-15 | 2010-05-18 | Lifesize Communications, Inc. | Updating modeling information based on offline calibration experiments |
US7903137B2 (en) * | 2004-10-15 | 2011-03-08 | Lifesize Communications, Inc. | Videoconferencing echo cancellers |
US7970151B2 (en) * | 2004-10-15 | 2011-06-28 | Lifesize Communications, Inc. | Hybrid beamforming |
US7826624B2 (en) * | 2004-10-15 | 2010-11-02 | Lifesize Communications, Inc. | Speakerphone self calibration and beam forming |
US7760887B2 (en) * | 2004-10-15 | 2010-07-20 | Lifesize Communications, Inc. | Updating modeling information based on online data gathering |
US7991167B2 (en) * | 2005-04-29 | 2011-08-02 | Lifesize Communications, Inc. | Forming beams with nulls directed at noise sources |
US7970150B2 (en) * | 2005-04-29 | 2011-06-28 | Lifesize Communications, Inc. | Tracking talkers using virtual broadside scan and directed beams |
US7593539B2 (en) | 2005-04-29 | 2009-09-22 | Lifesize Communications, Inc. | Microphone and speaker arrangement in speakerphone |
CN101390158B (zh) * | 2006-02-24 | 2012-03-14 | 法国电信公司 | 量化索引的编码方法、解码信号包络方法、编解码模块 |
US7953595B2 (en) * | 2006-10-18 | 2011-05-31 | Polycom, Inc. | Dual-transform coding of audio signals |
US7966175B2 (en) * | 2006-10-18 | 2011-06-21 | Polycom, Inc. | Fast lattice vector quantization |
US7885819B2 (en) | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
EP4407613A1 (de) | 2008-07-11 | 2024-07-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audiocodierer, audiodecodierer, verfahren zur codierung und decodierung eines audiosignals, audiostrom und computerprogramm |
US8386266B2 (en) * | 2010-07-01 | 2013-02-26 | Polycom, Inc. | Full-band scalable audio codec |
US8428959B2 (en) * | 2010-01-29 | 2013-04-23 | Polycom, Inc. | Audio packet loss concealment by transform interpolation |
RU2464649C1 (ru) | 2011-06-01 | 2012-10-20 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ обработки звукового сигнала |
WO2013048171A2 (ko) * | 2011-09-28 | 2013-04-04 | 엘지전자 주식회사 | 음성 신호 부호화 방법 및 음성 신호 복호화 방법 그리고 이를 이용하는 장치 |
US9111524B2 (en) * | 2011-12-20 | 2015-08-18 | Dolby International Ab | Seamless playback of successive multimedia files |
KR101757341B1 (ko) * | 2013-01-29 | 2017-07-14 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에.베. | 저-복잡도 음조-적응 오디오 신호 양자화 |
US10523369B2 (en) | 2017-01-09 | 2019-12-31 | Qualcomm Incorporated | Mutual-information based recursive polar code construction |
WO2018126496A1 (en) | 2017-01-09 | 2018-07-12 | Qualcomm Incorporated | Bit allocation for encoding and decoding |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5230038A (en) * | 1989-01-27 | 1993-07-20 | Fielder Louis D | Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio |
US5479562A (en) * | 1989-01-27 | 1995-12-26 | Dolby Laboratories Licensing Corporation | Method and apparatus for encoding and decoding audio information |
US5142656A (en) * | 1989-01-27 | 1992-08-25 | Dolby Laboratories Licensing Corporation | Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio |
US5222189A (en) * | 1989-01-27 | 1993-06-22 | Dolby Laboratories Licensing Corporation | Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio |
US5109417A (en) * | 1989-01-27 | 1992-04-28 | Dolby Laboratories Licensing Corporation | Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio |
US5185800A (en) * | 1989-10-13 | 1993-02-09 | Centre National D'etudes Des Telecommunications | Bit allocation device for transformed digital audio broadcasting signals with adaptive quantization based on psychoauditive criterion |
CA2077662C (en) * | 1991-01-08 | 2001-04-17 | Mark Franklin Davis | Encoder/decoder for multidimensional sound fields |
US5317672A (en) * | 1991-03-05 | 1994-05-31 | Picturetel Corporation | Variable bit rate speech encoder |
DE69232251T2 (de) * | 1991-08-02 | 2002-07-18 | Sony Corp., Tokio/Tokyo | Digitaler Kodierer mit dynamischer Quantisierungsbitverteilung |
JP3134455B2 (ja) * | 1992-01-29 | 2001-02-13 | ソニー株式会社 | 高能率符号化装置及び方法 |
JP3153933B2 (ja) * | 1992-06-16 | 2001-04-09 | ソニー株式会社 | データ符号化装置及び方法並びにデータ復号化装置及び方法 |
KR100188912B1 (ko) * | 1992-09-21 | 1999-06-01 | 윤종용 | 서브밴드코딩의 비트재할당 방법 |
JP3123286B2 (ja) * | 1993-02-18 | 2001-01-09 | ソニー株式会社 | ディジタル信号処理装置又は方法、及び記録媒体 |
US5664057A (en) * | 1993-07-07 | 1997-09-02 | Picturetel Corporation | Fixed bit rate speech encoder/decoder |
DE69420848T2 (de) * | 1993-07-07 | 2000-07-20 | Picturetel Corp., Peabody | Sprachkodierer/-dekodierer mit fester bitrate |
US5774846A (en) * | 1994-12-19 | 1998-06-30 | Matsushita Electric Industrial Co., Ltd. | Speech coding apparatus, linear prediction coefficient analyzing apparatus and noise reducing apparatus |
US5537510A (en) * | 1994-12-30 | 1996-07-16 | Daewoo Electronics Co., Ltd. | Adaptive digital audio encoding apparatus and a bit allocation method thereof |
JP2982637B2 (ja) * | 1995-01-17 | 1999-11-29 | 日本電気株式会社 | スペクトルパラメータを用いた音声信号伝送システムおよびそれに用いられる音声パラメータ符号化装置および復号化装置 |
-
1996
- 1996-10-07 US US08/726,959 patent/US5924064A/en not_active Expired - Lifetime
-
1997
- 1997-10-06 EP EP97911610A patent/EP0968497B1/de not_active Expired - Lifetime
- 1997-10-06 CA CA002267764A patent/CA2267764A1/en not_active Abandoned
- 1997-10-06 DE DE69705642T patent/DE69705642T2/de not_active Expired - Lifetime
- 1997-10-06 WO PCT/US1997/017770 patent/WO1998015945A1/en active IP Right Grant
- 1997-10-06 JP JP51760498A patent/JP4237826B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1998015945A1 (en) | 1998-04-16 |
EP0968497A1 (de) | 2000-01-05 |
DE69705642D1 (de) | 2001-08-16 |
EP0968497A4 (de) | 2000-02-23 |
JP4237826B2 (ja) | 2009-03-11 |
EP0968497B1 (de) | 2001-07-11 |
JP2001502073A (ja) | 2001-02-13 |
CA2267764A1 (en) | 1998-04-16 |
US5924064A (en) | 1999-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69705642T2 (de) | Audio-kodierverfahren mit veränderlicher kodelänge unter verwendung einer mehrzahl von teilband-bitverteilungsmoden | |
DE69525836T2 (de) | Kodierung und dekodierung eines breitbandigen digitalen informationssignals | |
DE3784120T2 (de) | Tabellengesteuerte dynamische bitverteilung in einem teilband-sprachkodierer mit veraenderlicher datenrate. | |
DE69401514T2 (de) | Vom rechenaufwand her effiziente adaptive bitzuteilung für kodierverfahren und kodiereinrichtung | |
DE69220541T2 (de) | Adaptive Quantisierung innerhalb des Sequentiellmodus der JPEG | |
DE69833834T2 (de) | Skalierbares Audiokodier-und Dekodierverfahren und Gerät | |
DE69834010T2 (de) | Skalierbares stereo Tonkodierungs- und Tondekodierungsverfahren und Vorrichtung dafür | |
EP0910927B1 (de) | Verfahren zum codieren und decodieren von stereoaudiospektralwerten | |
DE69225100T2 (de) | Reduzierung der Zusaztinformation bei Teilbandkodierungsverfahren | |
DE3688980T2 (de) | Verfahren zur Multigeschwindigkeitskodierung von Signalen und Einrichtung zur Durchführung dieses Verfahrens. | |
EP0931386B1 (de) | Verfahren zum signalisieren einer rauschsubstitution beim codieren eines audiosignals | |
DE602004013031T2 (de) | Verfahren zum codieren eines digitalen signals in einen skalierbaren bitstrom, verfahren zum decodieren eines skalierbaren bitstroms | |
DE69907267T2 (de) | Entropie-code modenwechsel zur frequenzbereichsaudiokodierung | |
DE2818052C2 (de) | Quantisierung eines Signals mit einem sich über ein gegebenes Frequenzband erstreckendem Spetkrum | |
DE69930848T2 (de) | Skalierbarer audiokodierer und dekodierer | |
DE69927505T2 (de) | Verfahren zum einfügen von zusatzdaten in einen audiodatenstrom | |
DE4241131B4 (de) | Einrichtung zum Kodieren und Dekodieren von Übertragungssignalen mittels Transformationen | |
DE19811039A1 (de) | Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen | |
DE69015105T2 (de) | Kompressionseinrichtung für transformiertes, digitales Audiosignal mit adaptiver Quantisierung auf Grund eines psycho-akustischen Kriteriums. | |
EP0611516B1 (de) | Verfahren zur reduzierung von daten bei der übertragung und/oder speicherung digitaler signale mehrerer abhängiger kanäle | |
DE10310785B4 (de) | Verfahren und Architektur einer digitalen Codierung zum Übertragen und Packen von Audiosignalen | |
DE69107511T2 (de) | Codierverfahren und Codieranordnung mit einem Unterbandcoder und Sender mit der Codieranordnung. | |
DE68927927T2 (de) | Kodierung von Audiosignalen unter Berücksichtigung der Wahrnehmbarkeit | |
DE19743662A1 (de) | Verfahren und Vorrichtung zur Erzeugung eines bitratenskalierbaren Audio-Datenstroms | |
DE69711102T2 (de) | Verfahren und gerät zur schätzung von koppelparametern in einem transformationskodierer für hochwertige tonsignale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |