PatentDe  


Dokumentenidentifikation DE112004001900T5 17.08.2006
Titel Systeme und Verfahren zur Tonkompression
Anmelder J.W.Associates, Sunnyvale, Calif., US
Erfinder Wong, Jerome D., Sunnyvale, Calif., US
Vertreter Samson & Partner, Patentanwälte, 80538 München
DE-Aktenzeichen 112004001900
Vertragsstaaten AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BW, BY, BZ, CA, CH, CN, CO, CR, CU, CZ, DE, DK, DM, DZ, EC, EE, EG, ES, FI, GB, GD, GE, GH, GM, EP, HR, HU, ID, IL, IN, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NA, NI, NO, NZ, OM, PG, PH, PL, PT, RO, RU, SC, SD, SE, SG, SK, SL, SY, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, YU, ZA, ZM, ZW, BW, GH, GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM, ZW, AM, AZ, BY, KG, KZ, MD, RU, TJ, TM, AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HU, IE, IT, LU, MC, NL, PL, PT, RO, SE, SI, SK, TR, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG
WO-Anmeldetag 08.10.2004
PCT-Aktenzeichen PCT/US2004/033306
WO-Veröffentlichungsnummer 2005036533
WO-Veröffentlichungsdatum 21.04.2005
Date of publication of WO application in German translation 17.08.2006
Veröffentlichungstag im Patentblatt 17.08.2006
IPC-Hauptklasse G10L 19/00(2006.01)A, F, I, 20060518, B, H, DE

Beschreibung[de]
PRIORITÄTSANSPRUCH

Diese Anmeldung gehört zur vorläufigen Anmeldung (US provisional application) Nummer 60/510,070, eingereicht am 8. Oktober 2003, und beansprucht hiermit deren Priorität.

URHEBERRECHT HINWEIS/GENEHMIGUNG

Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das dem Urheberrechtsschutz unterliegt. Der Urheberrechteinhaber hat keine Einwände gegen die Vervielfältigung von dem Patentdokument oder der Patentoffenbarung wie sie in der Patentakte oder den Patentunterlagen des Patent- und Markenamtes vorliegen, behält sich jedoch anderweitig alle Urheberrechte vor. Der folgende Hinweis gilt für die Software und Daten, wie sie untenstehend und in der dazugehörigen Zeichnung beschrieben sind: Copyright © 2003, JW Associates, alle Rechte vorbehalten.

GEBIET

Ausführungsformen der Erfindung betreffen allgemein das Gebiet der Audiodatenkompression und genauer Verfahren und Vorrichtungen für eine erhöhte Kompression von Audiodaten zur Anwendung in Mikroprozessoren mit niedriger Rechenleistung.

HINTERGRUND

Je größer der Umfang der Audiodatenkompression ist, desto größer ist die Tondauer, die ein gegebener Mikrokontroller speichern kann, weswegen über die vergangenen mehreren Jahrzehnte viele Versuche gemacht wurden, die Kompression von Audiodaten zur Anwendung in Mikrokontrollern mit beschränkter Rechenleistung und beschränkten Speicherfähigkeiten zu verbessern. Typische Verfahren zur Audiodatenkompression, die Verzerrungen auf annehmbare Pegel verringern, benötigen jedoch eine Rechenleistung, die über derjenigen liegt, die in vielen preisgünstigen Produkten verfügbar ist.

Eine typische Technik zur Audiodatenkompression, die adaptive differentielle Pulscodemodulation (ADPCM), ist von einem Pulscodemodulations- (PCM) Verfahren abgeleitet, bei dem eine Analogsignal- (Signal) Amplitude in regelmäßigen Abständen abgetastet wird. ADPCM ist eine Variante der PCM Audiocodierung mit verringerter Bitrate.

Mit PCM ist die Abtastrate typischerweise das mehrfache der höchsten Frequenz des Signals. Die Amplitude des Signals an jeder Abtaststelle wird quantisiert (das heißt zum nächsten von mehreren spezifischen und vorbestimmten Werten gerundet). Die Werte werden durch eine Anzahl Zahlen dargestellt, so daß die Ausgabe eines PCM-Kompressionsverfahrens eine Folge von binären Zahlen ist, die ein digitales Signal bilden.

Ein ADPCM-Kompressionsverfahren erzeugt ein digitales Signal mit einer niedrigeren Bitrate als PCM, indem es nur die Differenz zwischen Abtastwerten (Deltawerte) codiert und die Codierskala dynamisch einstellt, um sich an Veränderungen in der Größe der Abtastwertdifferenzen anzupassen. ADPCM ist zwar nicht schwer zu implementieren, es erzeugt jedoch einen hohen Rauschpegel. Typischerweise ist ein ADPCM-System ein Bandkompressionssystem, bei dem die Vorhersage der Signalamplitude zum jetzigen Zeitpunkt auf einem oder mehreren vorausgehenden Abtastwerten beruht. Die Grundlage für ein solches Vorhersageverfahren ist es, daß für viele Beispiele von Audiodaten (beispielsweise Sprachsignale) benachbarte Abtastwerte hochkorreliert sind.

ADPCM erzielt eine Bitratenverringerung durch die Anwendung einer adaptiven Vorhersage und adaptiven Quantisierung. ADPCM-Abtastung wird typischerweise mit 8 kHz und 3 oder 4 Bit zur Beschreibung der Differenz zwischen benachbarten Abtaststellen durchgeführt. Ein typisches ADPCM-Verfahren kann ein Kompressionsverhältnis von 2:1 erzielen, indem es ein 8-Bit-Signal bei vernünftiger Qualität durch codierte 4-Bit-Deltawerte darstellt.

ADPCM verwendet in Abhängigkeit von der Schwankung des Signals in der Amplitude (Bewegung) eine variable Skalierung. Das heißt, ADPCM wird basierend auf der Annahme ausgeführt, daß das Signal Abschnitte mit kleiner Amplitude und Abschnitte mit großer Amplitude hat; was typisch ist für Sprache und viele andere Audiosignale. Das Codieren der Deltas als 4-Bit-Werte bedeutet, daß nur 4 Bit in den Speicher geschrieben werden, unabhängig davon, ob die 4 Bit zu einem Signalabschnitt mit hoher Amplitude oder einem Signalabschnitt mit niedriger Amplitude gehören. Bei Verwendung von 4 Bit stehen sechzehn Auflösungsstufen zur Verfügung, die als acht positive Werte und sieben negative Werte (oder umgekehrt), zusammen mit einem Nullwert, dargestellt werden können. Eine alternative Darstellung kann aus sieben positiven Werten und sieben negativen Werten mit zwei Nullwerten, von denen einer nicht verwendet wird, bestehen.

Wenn ein typisches ADPCM-Verfahren zur Codierung eines 8-Bit-Signals durch codierte 3-Bit Deltawerte eingesetzt wird (also ein Kompressionsverhältnis von etwa 2,6:1), ergibt sich ein unannehmbares Maß an Verzerrungen für das Originalsignal. Eine 3-Bit-Codierung stellt nur acht Auflösungsstufen zur Verfügung, die als vier positive Werte und drei negative Werte (oder umgekehrt), zusammen mit einem Nullwert, dargestellt werden können. Wiederum kann eine alternative Darstellung aus drei positiven Werten und drei negativen Werten mit zwei Nullwerten, von denen einer nicht verwendet wird, bestehen. Während vier Auflösungsstufen für viele Anwendungen ein akzeptables Qualitätsniveau bereitstellen, gilt dies nicht für drei Auflösungsstufen. Dies bedeutet, daß ein 3-Bit-Codierverfahren (2,6:1 Kompression) für viele Anwendungen unerwünscht ist, wodurch die Tondauer, die ein gegebener Mikrokontroller speichern kann, eingeschränkt wird.

Natürlich können mit mehr Rechenleistung und Speicherressourcen andere anspruchsvolle Verfahren und Systeme eingesetzt werden (beispielsweise CELP), die für Audiodaten höhere Kompressionsverhältnisse erreichen, während gleichzeitig Verzerrungen auf ein annehmbares Maß beschränkt bleiben. Diese Systeme sind für viele Anwendungen, bei denen Mikroprozessoren mit beschränkter Verarbeitungsleistung eingesetzt werden, nicht praktisch einsetzbar.

KURZBESCHREIBUNG DER ZEICHNUNG

Am besten verständlich kann die Erfindung mit Bezug auf die folgende Beschreibung und die zugehörige Zeichnung sein, die zur Veranschaulichung von Ausführungsformen der Erfindung verwendet werden, wobei in der Zeichnung:

1 eine Verarbeitung darstellt, durch die gemäß einer Ausführungsform der Erfindung ADPCM-Deltas mit einer hochauflösenden Skalierung codiert werden;

2 eine Verarbeitung darstellt, durch die gemäß einer Ausführungsform der Erfindung die Asymmetrie für ein asymmetrisches ADPCM-Codierverfahren implementiert wird;

2A eine Verarbeitung darstellt, durch die gemäß einer Ausführungsform der Erfindung die Asymmetrie auf Grundlage der Frequenz ausgewählt wird;

3 einige mögliche Asymmetrien für ein 3-Bit-Codiersystem darstellt;

4 eine Verarbeitung darstellt, durch die gemäß einer Ausführungsform der vorliegenden Erfindung ein ADPCM-Skalierungswert ausgewählt wird;

5 eine Verarbeitung darstellt, bei der gemäß einer Ausführungsform der Erfindung ein oder mehrere Deltawerte verwendet werden, um einen Verzögerungswert für die ADPCM-Skalierungseinstellung zu bestimmen;

6 eine Verarbeitung darstellt, bei der gemäß einer Ausführungsform der Erfindung Nulldurchgänge dazu verwendet werden ADPCM-Skalierungsparameter einzustellen;

7 ein Verfahren darstellt, durch das gemäß einer Ausführungsform der Erfindung zukünftige Signaleigenschaften dazu verwendet werden, eine ADPCM-Codierung zu bestimmen;

8 eine Verarbeitung darstellt, durch die gemäß einer Ausführungsform der Erfindung häufige elementare Kurven detektiert und komprimiert werden können;

9 einen Mikrokontroller zur Speicherung komprimierter Audiodaten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.

DETAILLIERTE BESCHREIBUNG

In der folgenden Beschreibung werden zahlreiche spezielle Details angegeben. Es versteht sich jedoch, daß Ausführungsformen der Erfindung ohne diese speziellen Details ausgeführt werden können. In anderen Beispielen sind gut bekannte Schaltungen, Strukturen und Techniken nicht im Detail gezeigt, um das Verständnis der Beschreibung nicht zu behindern.

In der gesamten Beschreibung bedeutet der Bezug auf "eine Ausführungsform", daß eine in Zusammenhang mit der Ausführungsform beschriebene bestimmte Besonderheit, Struktur oder Eigenschaft in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher bezieht sich das Auftreten der Ausdrücke "in einer Ausführungsform" an verschiedenen Stellen in der gesamten Beschreibung nicht notwendigerweise auf dieselbe Ausführungsform. Des weiteren können die bestimmten Besonderheiten, Strukturen oder Eigenschaften in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.

Außerdem liegen bereits in weniger als allen Eigenschaften einer einzelnen offenbarten Ausführungsform erfinderische Merkmale vor. Daher sind die der detaillierten Beschreibung folgenden Ansprüche hiermit ausdrücklich in diese detaillierte Beschreibung eingebunden, wobei jeder Anspruch für sich alleine für eine getrennte Ausführungsform dieser Erfindung steht.

Ausführungsformen der Erfindung stellen ein verbessertes ADPCM-Codierverfahren bereit, das vier Verarbeitungsprozesse einsetzt, die in verschiedenen alternativen Ausführungsformen getrennt oder in Verbindung miteinander verwendet werden können. Eine Ausführungsform der Erfindung schließt die Verwendung einer 3-Bit-Codierung im Zusammenhang mit einem asymmetrischen ADPCM-Audiodaten-Kompressionsverfahren ein.

Als Anhang A ist ein beispielhafter Quellcode zur Kompression und Dekompression von Audiodaten gemäß einer Ausführungsform der Erfindung beigefügt.

ASYMMETRISCHES ADPCM

Gemäß einer Ausführungsform der Erfindung wird zur Erhöhung der wirksamen Auflösung für eine festgelegte Anzahl Codierbits ein asymmetrisches ADPCM eingesetzt. Das heißt, daß für ein 3-Bit-Codierschema die Auflösungsstufen durch vier positive Werte und drei negative Werte zusammen mit einem Nullwert dargestellt werden können. Wenn die Codierung versetzt bzw. umgeformt werden kann, so daß die Codierung größtenteils mit vier Auflösungsstufen (das heißt, anstatt mit drei) ausgeführt wird, dann wird die sich typischerweise aus einer 3-Bit-Codierung ergebende Verzerrung verringert. Die Asymmetrie erzeugt eine hochaufgelöste Seite (beispielsweise die positive Seite) und eine niedrigaufgelöste Seite (beispielsweise die negative Seite). Durch die genaue Vorhersage des Vorzeichens des nächsten Deltawerts ist es möglich sicherzustellen, daß die Codierung öfter auf der hochauflösenden Seite stattfindet. Durch das Verfolgen der dominanten Frequenz des Signals zusammen mit dem vorhergehenden Deltawert ist es möglich die Eigenschaften des Signals ziemlich genau vorherzusagen. Dies gestattet die Einstellung der Asymmetrie, um die ADPCM-Koeffizienten zu versetzen bzw. umzuformen, so daß die Codierung mit höherer Wahrscheinlichkeit mit höherer Auflösung stattfindet.

1 stellt eine Verarbeitung dar, durch die ADPCM-Deltas gemäß einer Ausführungsform der Erfindung mit hochauflösender Skalierung codiert werden. Die Verarbeitung 100, dargestellt in 1, beginnt bei Vorgang 105, bei dem ADPCM-Koeffizienten versetzt werden, um eine hochauflösende Codierung und eine niedrigauflösende Codierung bereitzustellen. Beispielsweise können für ein 3-Bit-Codierverfahren die ADPCM-Koeffizienten versetzt werden, um 4 positive Werte, einen Nullwert und 3 negative Werte bereitzustellen. Bei einer alternativen Ausführungsform können die Koeffizienten weiter versetzt werden (beispielsweise 5 positive Werte, ein Nullwert und 2 negative Werte).

Bei Vorgang 110 wird das Vorzeichen des unmittelbar folgenden ADPCM-Deltawerts (nächster Deltawert) vorausgesagt. Die Vorhersage kann auf viele Weisen basierend auf verschiedenen Indikatoren geschehen. Beispielsweise wird, da die Ableitung des Eingangssignals üblicherweise stetig ist, ein positiver Deltawert üblicherweise von einem weiteren positiven Deltawert gefolgt und ein positiver Deltawert gefolgt von einem Null-Deltawert wird üblicherweise von einem negativen Delta gefolgt. Diese und andere solche Indikatoren können dazu verwendet werden ziemlich genaue Vorhersagen zu machen, soweit es bei typischen Signalen das Vorzeichen des nachfolgenden Deltawerts betrifft.

Bei Vorgang 115 wird bestimmt, ob der nächste Deltawert, so wie vorhergesagt, unter Verwendung der hochauflösenden Skalierung codiert würde. Wenn dem so ist, wird der nächste Deltawert bei Vorgang 120 unter Verwendung der Hochauflösungscodierung codiert. Das heißt beispielsweise, daß wenn der vorhergesagte Wert für den nächsten Deltawert positiv ist und die ADPCM-Koeffizienten versetzt wurden, um für positive Werte eine hohe Auflösung bereitzustellen, dann der nächste Deltawert unter Verwendung der hochauflösenden Skalierung codiert wird.

Wenn bei Vorgang 115 der nächste Deltawert wie vorhergesagt nicht unter Verwendung der hochauflösenden Skalierung codiert würde, dann wird die ADPCM-Skalierung in Vorgang 116 invertiert. Vorgang 116 stellt eine hochauflösende Skalierung bereit, die in Übereinstimmung mit dem vorhergesagten Vorzeichen des nächsten Deltas ist. Das heißt beispielsweise, daß wenn der vorhergesagte Wert für den nächsten Deltawert negativ ist und die ADPCM-Koeffizienten versetzt wurden, um eine hohe Auflösung für positive Werte bereitzustellen, dann werden die ADPCM-Koeffizienten invertiert und stellen damit eine hohe Auflösung für negative Werte bereit. Nachdem die ADPCM-Skalierung invertiert ist, wird in Vorgang 120 der nächste Deltawert unter Verwendung der hochauflösenden Skalierung codiert.

Falls das Signal nicht am Ende ist, wird die Verarbeitung in Vorgang 121 fortgesetzt, indem erneut das nächste Delta vorhergesagt wird. In Vorgang 122 endet die Verarbeitung mit dem Ende des Signals.

Je größer die Versetzung ist, desto besser ist die Auflösung zur Codierung des nächsten Deltawerts, vorausgesetzt, die Vorhersage des nächsten Deltawerts ist zutreffend. Weniger Versetzung stellt eine höhere Auflösung für falsch vorhergesagte nächste Deltas bereit. Es gibt auch andere Kompensationen für falsch vorhergesagte nächste Deltawerte. Beispielsweise zeigt ein positiver Deltawert, gefolgt von einem negativen Deltawert, gefolgt von einem positiven Deltawert, ein Hochfrequenzsignal (nahe der Nyquistfrequenz) an, wiederum weil die Eingangssignalkurve üblicherweise stetig ist. Dieser Signaltyp, der zu einer falschen Vorhersage führen kann, ist bei normaler Sprache selten und er liegt in einem Bereich des Audiospektrums, für den das menschliche Ohr typischerweise nicht sehr empfindlich ist. Solche Signale können berücksichtigt werden, indem die Skalierung ausreichend erhöht wird, um das Signal abzudecken.

Variable Asymmetrie

Gemäß einer Ausführungsform der Erfindung werden die ADPCM-Koeffizienten versetzt, um eine Codierung mit hochauflösender Skalierung und eine mit niedrigauflösender Skalierung bereitzustellen, so wie oben mit Bezug auf den Vorgang 105 in 1 beschrieben. Empirisch wurde ermittelt, daß das Maß an Asymmetrie, das die genaueste Modellierung bereitstellt und damit die genaueste und effizienteste Codierung, von der Frequenz des zu codierenden Signals abhängt.

Beispielsweise erzeugt ein Hochfrequenzsignal (das heißt mit einer in Bezug auf die Nyquistfrequenz hohen Frequenz) plötzliche Änderungen in den Deltas. Wenn der Signalwert an einer Abtaststelle zunimmt, ist es wahrscheinlich, daß er an der nächsten Abtaststelle abnimmt. Daraus resultieren genauere Ergebnisse für Hochfrequenzsignale, die mit größerer Asymmetrie erhalten werden. Bei einer Ausführungsform der Erfindung wird die Frequenz des Signals bestimmt und die Asymmetrie wird basierend auf der Frequenz eingestellt.

2 stellt eine Verarbeitung dar, bei der die Asymmetrie für ein asymmetrisches ADPCM-Codierverfahren gemäß einer Ausführungsform der Erfindung implementiert ist. Verarbeitung 200, dargestellt in 2, beginnt bei Vorgang 205, bei dem eine Anzahl möglicher Asymmetrien, die verschiedenen Frequenzen entsprechen, festgelegt werden. 3 stellt einige mögliche Asymmetrien für ein 3-Bit-Codierverfahren dar. Asymmetrie 301 ist ein Beispiel einer extrem negativen Asymmetrie, Asymmetrie 302 ist ein Beispiel einer mäßig negativen Asymmetrie, die Asymmetrien 303 und 304 sind Beispiele minimaler Asymmetrie (negativer beziehungsweise positiver), Asymmetrie 305 ist ein Beispiel einer mäßig positiven Asymmetrie und Asymmetrie 306 ist ein Beispiel einer extrem positiven Asymmetrie. Für jede unter einer Anzahl von Asymmetrien wird ein zugehöriger Frequenzbereich innerhalb des Frequenzbereichs des Signals festgelegt. Beispielsweise kann für ein Signal mit einer Abtastfrequenz von 8 kHz der relativ hohe Frequenzbereich von 3,5–4,0 kHz zur extrem negativen Asymmetrie gehören (beispielsweise 1 positive Auflösungsstufe, eine Nullwertauflösungsstufe und 6 negative Auflösungsstufen). Ebenso kann eine relativ niedrigere Frequenz (beispielsweise 1–2 kHz) zur kleinsten Asymmetrie gehören (beispielsweise 4 positive Auflösungsstufen, eine Nullwertauflösungsstufe und 3 negative Auflösungsstufen).

Bei Vorgang 210 wird die Signalfrequenz vorhergesagt. Die Frequenz kann über eine Anzahl von Wegen unterschiedlicher Komplexität bestimmt werden (beispielsweise unter Verwendung der vorherrschenden Frequenz und des vorausgehenden Deltawerts). Das einfachste ist es, die Frequenz zu bestimmen und, da die Frequenz sich typischerweise nicht oft oder drastisch ändert, die bestimmte Frequenz als die vorhergesagte Frequenz zu nehmen.

Bei Vorgang 215 werden unter Verwendung der Asymmetrie, die dem Frequenzbereich, der die vorhergesagte Frequenz einschließt, entspricht, Deltas codiert.

2A stellt eine Verarbeitung dar, bei der gemäß einer Ausführungsform der Erfindung die Asymmetrie basierend auf der Frequenz ausgewählt wird. Die in 2A dargestellte Verarbeitung 200A beginnt bei Vorgang 205A, bei dem die Signalfrequenz bestimmt wird. Die Signalfrequenz kann in einer Ausführungsform durch das Zählen und Mitteln der Nulldurchgänge bestimmt werden. Beispielsweise zeigt eine relativ geringe Anzahl von Nulldurchgängen eine sich langsam bewegende Kurve an (Niedrigfrequenzsignal), wohingegen eine relativ hohe Anzahl von Nulldurchgängen ein Hochfrequenzsignal anzeigt.

Bei Vorgang 210A wird eine Anzahl von Frequenzbereichen bestimmt, die zu festgelegten Asymmetrien gehören. Beispielsweise können die Frequenzbereiche, die auf die Nyquistfrequenz des Signals bezogen sind, folgendes umfassen: "sehr niedrig", "niedrig", "gemäßigt", "hoch" und "sehr hoch".

Bei Vorgang 215A wird die Asymmetrie daraufhin ausgewählt, in welchem Frequenzbereich die bestimmte Frequenz liegt. Beispielsweise wird für einen sehr niedrigen Frequenzbereich eine extrem positive Asymmetrie verwendet (beispielsweise Asymmetrie 306), für einen niedrigen Frequenzbereich wird eine mäßig positive Asymmetrie verwendet (beispielsweise Asymmetrie 305), für einen gemäßigten Frequenzbereich wird eine minimale Asymmetrie (positiv oder negativ) verwendet (beispielsweise die Asymmetrien 303 und 304), für einen hohen Frequenzbereich wird eine mäßig negative Asymmetrie verwendet (beispielsweise Asymmetrie 302) und für einen sehr hohen Frequenzbereich wird eine extrem negative Asymmetrie verwendet (beispielsweise Asymmetrie 301).

BERECHNUNGSVEREINFACHUNG

Die für eine ADPCM-Codierung typischerweise benötigten Berechnungen können bei gleichzeitiger Beibehaltung oder Verbesserung der Qualität wesentlich verringert werden.

ADPCM Koeffiziententabelle

Gemäß einer Ausführungsform der Erfindung kann die Implementierung einer Tabelle mit vereinfachten, vorausberechneten ADPCM-Koeffizienten die zur Codierung der ADPCM-Deltas benötigten Verarbeitungsressourcen im Vergleich zu Verfahren des Stands der Technik wesentlich verringern. Bei einer Ausführungsform enthält die Tabelle eine beschränkte Anzahl diskreter Skalierungswerte. Solche eine Tabelle beseitigt die Notwendigkeit der komplizierten mathematischen Umwandlungen (beispielsweise logarithmisch/umgekehrt logarithmisch, Rundung etc.), wobei gleichzeitig Skalierungswerte bereitgestellt werden, die Eigenschaften haben, die mit anspruchsvollerer Mathematik erreicht werden.

Eine Skalierungswertetabelle kann gemäß einer Ausführungsform der Erfindung eine endliche Anzahl von Werten haben, von denen alle die Form m√2n haben. Beispielsweise kann die Tabelle auf Skalierungswerte eingeschränkt sein, die Vielfache von √2 sind. Solche Einschränkungen verringern binäre Berechnungen deutlich, wodurch das System mit verringerten Verarbeitungsanforderungen implementiert werden kann.

Eine Skalierungswertetabelle gemäß einer Ausführungsform der Erfindung kann für die niedrigste Skalierung Integerwerte umfassen. Die Skalierung kann dann ohne die Verzerrung ausgewählt werden, die durch Fehler, die komplexen Berechnungen eigen sind, und Rundungsfehler verursacht wird. Dies ist für die niedrigste Skalierung besonders wichtig, bei der ein Fehler von selbst nur einem Zähler hörbare Verzerrungen verursachen kann. Für eine Ausführungsform umfaßt die Tabelle die einfachen Zahlen (0, 1, 2, 3 und 4) und diese sind einmalig. Dies gestattet es, die kleinsten und sich am langsamsten bewegenden Signale genau zu codieren, und dies ohne unnütze Duplizierung oder Verzerrung, die von fehlenden Werten herrührt, was typisch für ADPCM-Koeffizienten wäre, die entsprechend dem Stand der Technik berechnet wurden.

Tabelle mit Begrenzungswerten

Zusätzlich oder alternativ kann eine Tabelle mit Begrenzungswerten implementiert werden, die es gestattet, schnell und effizient zu bestimmen, welcher Skalierungswert für ein gegebenes Delta anzuwenden ist. Die Begrenzungswerttabelle gibt vor welcher Skalierungswert (beispielsweise aus der Skalierungswertetabelle) für jedes der möglichen Deltas angewendet wird. Beispielsweise kann bei einer Ausführungsform ein Mittelwert von zwei aufeinanderfolgenden Skalierungswerten bestimmt werden und Deltas unterhalb des Mittelwerts führen dazu, daß der niedrigere der beiden aufeinanderfolgenden Skalierungswerte verwendet wird, wohingegen Werte am oder oberhalb des Mittelwerts dazu führen, daß der höhere der beiden aufeinanderfolgenden Skalierungswerte verwendet wird.

Außerdem kann die Quantisierungsverzerrung auf großen Signalen durch das Gewichten der Begrenzungswerte zur bevorzugten Beibehaltung der Skalierung weiter verringert werden. Das Ergebnis einer solchen Gewichtung ist es, daß anstatt einer Reihe von Quantisierungsfehlern ein Einzelwertfehler realisiert wird. Falls beispielsweise der Begrenzungswert für den höchsten Skalierungswert so gewichtet wird, daß der höchste Skalierungswert weniger Wahrscheinlichkeit hat ausgewählt zu werden, wird ein besserer Rauschabstand erreicht. Der Grund hierfür ist, daß wenn die Skalierung schnell erhöht wird, mehrere zukünftige Abtastwerte mit der entsprechend verringerten Auflösung codiert werden. Falls andererseits ein Fehler für einen einzelnen Abtastwert akzeptiert wird, können mehrere zukünftige Abtastwerte genauer codiert werden. In Bezug auf die Tonqualität ist ein relativ großer Fehler für einen einzelnen Abtastwert mehreren relativ kleineren Fehlern vorzuziehen.

4 stellt eine Verarbeitung dar, durch die gemäß einer Ausführungsform der Erfindung ein ADPCM-Skalierungswert ausgewählt wird. Die in 4 dargestellte Verarbeitung 400 beginnt mit Vorgang 405, bei dem eine Skalierungswertetabelle erzeugt wird. Die Skalierungswertetabelle umfaßt eine begrenzte Anzahl diskreter Skalierungswerte. Wie oben beschrieben, kann bei alternativen Ausführungsformen solch eine Tabelle Werte umfassen, die gewählt wurden, um die Berechnungskomplexität zu verringern (beispielsweise Werte, die alle von der Form m√2n sind) oder um die Verzerrung kleiner Signale zu verringern (einfache Zahlen für niedrigste Skalierung).

Bei Vorgang 410 wird eine Begrenzungswertetabelle erzeugt, die jeden Deltawert einer entsprechenden Skalierung der Skalierungswertetabelle zuordnet. Wie oben beschrieben kann bei alternativen Ausführungsformen die Tabelle ein Mittelungsverfahren als Basis für die Zuordnung implementieren oder eine andere Grundlage verwenden.

Bei Vorgang 415 wird ein Deltawert empfangen, durch Bezug auf die Begrenzungswertetabelle wird der zugehörige Skalierungswert bestimmt und für die Codierung des Deltas verwendet.

Der Einsatz solcher Begrenzungswertetabellen gestattet es, die ideale Wiedergabe zu mäßig großen Signalen auszudehnen und eine bessere Qualität zu liefern als ein einfacher Vergleich, der typischerweise für kleine Systeme implementiert wird. Durch das Verringern jedes mit der Echtzeitberechnung verbundenen Approximationsfehlers liefert die Implementierung einer Begrenzungswertetabelle außerdem eine bessere Qualität als anspruchsvollere Vergleiche typischer Verfahren des Stands der Technik.

Variable Verzögerung

Skalierungssteuerungs-Verzögerung ist eine Technik, die angewendet wird, um für eine bestimmte Dauer, nachdem ein großes Signal detektiert wurde, eine hohe Skalierung beizubehalten. Dies soll ein schnelles Runterskalieren der Skalierung verhindern, die zu einer Anwendung kleiner Skalierungen führt, während man sich in einem Hochskalierungsabschnitt des Signals befindet. Dieses Runterskalieren würde wahrscheinlich zu einem größeren Fehler führen. Typischerweise unterdrückt die Skalierungssteuerungs-Verzögerung eine Skalierungseinstellung für eine festgelegte Anzahl von Abtastwerten nachdem ein großes Signal detektiert wurde. Diese Technik liefert oftmals nicht optimale Ergebnisse, da die Details eines großen Signals mit einer unnötig groben Auflösung codiert werden.

Gemäß einer Ausführungsform der Erfindung wird ein Verfahren mit variabler Skalierungssteuerungs-Verzögerung (variable Verzögerung) implementiert, um die Größe der Skalierungsverzögerung für verschiedene Bedingungen zu variieren. Ein variables Verzögerungsschema gestattet es, die Signalkurve effizienter zu durchlaufen. Die Skalierung kann im Vergleich zu Verfahren des Stands der Technik schneller verändert werden, um den zeitlich nahen Eigenschaften überlagerter Signale zu entsprechen. Bei einer Ausführungsform wird ein Satz von Verzögerungswerten (das heißt eine Anzahl von Abtastwerten) bestimmt, wobei jeder Verzögerungswert zu einer oder mehreren Signaleigenschaften oder Deltawerten gehört. Wenn die vorhergehende Skalierung ein positives Maximum war, kann beispielsweise die Verzögerung fünf Abtastwerte betragen, wohingegen wenn die vorhergehende Skalierung ein negatives Maximum war, die Verzögerung vier Abtastwerte betragen kann. Wiederum kann die Verzögerung ein verschiedener Wert sein, wenn die Skalierung von irgendeinem Wert zu einem negativen Maximumwert geht. Das variable Verzögerungsverfahren gestattet eine Feinabstimmung und Verschiebung der Codierfehler, was eine bessere Qualität ergibt.

Eine variable Verzögerung verbessert für eine konstante Frequenz oder sich relativ langsam bewegende Signale die Qualität, bei hohen Frequenzen jedoch, insbesondere wenn sie nahe an die Nyquistfrequenz kommen, können die Verzögerungsregeln für niedrige Frequenzen ungeeignet sein. In solchen Fällen werden andere Kriterien für die Skalierungseinstellung angewendet. Wenn beispielsweise zwei negative Maxima hintereinander empfangen werden, dann gibt es nicht nur eine kürzere Verzögerung bei der Verringerung der Skalierung, sondern die Skalierung wird unter diesen Umständen tatsächlich erhöht. Ebenso gilt für ein Hochfrequenzsignal mit zunehmender Amplitude, daß die Skalierung am besten folgt, wenn sie mehrfach um kleinere Zuwächse erhöht wird.

5 stellt eine Verarbeitung dar, bei der gemäß einer Ausführungsform der Erfindung ein oder mehrere Deltawerte verwendet werden, um einen Verzögerungswert zur Einstellung der ADPCM-Skalierung zu bestimmen. Die in 5 dargestellte Verarbeitung 500 beginnt bei Vorgang 505, bei dem ein Satz von Verzögerungswerten bestimmt wird. Bei einer Ausführungsform gehört ein Verzögerungswert zu einem oder mehreren Deltawerten.

Bei Vorgang 510 werden empfangene Deltawerte ausgewertet, um zu bestimmen, daß ein oder mehrere Deltawerte einem Verzögerungswert entsprechen.

Bei Vorgang 515 wird die Einstellung der ADPCM-Skalierung um den entsprechenden Verzögerungswert verzögert.

Nulldurchgänge

Die relative Bewegung einer Signalkurve (das heißt die dominierende Frequenz des Signals) kann, so wie obenstehend besprochen, durch die Anzahl von Nulldurchgängen bestimmt werden. Niedrigfrequenzsignale haben große flache Bereiche mit relativ kleinen Deltas. Für solche Bereiche ist es wünschenswert, wenn die Skalierung innerhalb eines Zyklus runterskaliert wird, um die Signalfeinheiten in diesen Punkten zu erfassen. Für steilere Abschnitte des Niedrigfrequenzsignals mit relativ höheren Deltas wird die Skalierung dann hochskaliert.

Dagegen haben Hochfrequenzsignale nicht diese großen Bereiche mit kleinen Deltas und daher ist es wünschenswert die Skalierung so konstant wie möglich zu halten. Gemäß einer Ausführungsform der Erfindung werden die Nulldurchgänge gezählt und gemittelt, um eine vorherrschende Frequenz des Signals zu bestimmen. Dies gestattet es, die ADPCM-Skalierungsparameter zur Erfassung des ganzen Signals einzustellen, ohne eine unnütze Auflösung im oberen und unteren Bereich des Signals. Das heißt, daß die Skalierung schnell realisiert wird, die gerade das Signal bei hohen Frequenzen abdeckt.

6 stellt eine Verarbeitung dar, bei der gemäß einer Ausführungsform der Erfindung Nulldurchgänge dazu verwendet werden, ADPCM-Skalierungsparameter einzustellen. Die in 6 dargestellte Verarbeitung 600 beginnt bei Vorgang 605, bei dem die Anzahl der Nulldurchgänge gezählt und gemittelt wird, um eine vorherrschende Frequenz zu bestimmen.

Bei Vorgang 610 wird festgestellt, ob die Frequenz eine niedrige Frequenz oder eine hohe Frequenz ist.

Wenn festgestellt wird, daß die Frequenz eine hohe Frequenz ist, dann wird die ADPCM-Skalierung in Vorgang 611 konstant gehalten.

Wenn festgestellt wird, daß die Frequenz eine niedrige Frequenz ist, dann wird in Vorgang 612 die ADPCM-Skalierung für Signalabschnitte mit relativ kleinen Deltas und relativ größeren Deltas schnell eingestellt.

Die Mittelung von Nulldurchgängen kann durch einen Integrator ersetzt werden, was die Speicheranforderungen verringert.

INSTABILE KOEFFIZIENTEN

Typisches ADPCM des Stands der Technik wurde so entworfen, daß die Skalierung stabil bleibt, wenn der vorhergesagte Wert gewählt wurde. Systeme des Stands der Technik codieren den nächstliegenden Wert und sind nicht dafür ausgelegt, anders zu codieren. Empirisch wurde festgestellt, daß ein instabiles System ein besseres Kompressionsverhältnis als ein stabiles System liefert. Das heißt, daß eine instabile Skalierung in der Lage ist, sich schneller anzupassen und daher reaktionsfähiger ist. Die Reaktionsfähigkeit liefert ein höheres Kompressionsverhältnis, jedoch kann die Skalierung zu groß werden, was eine fehlerhafte Codierung bewirkt. Die Instabilität ergibt sich, da das Befolgen der besten Vorhersage nicht nur den idealen nachfolgenden Wert erzielt, sondern auch die manchmal nicht-ideale Skalierung und die manchmal nicht-ideale Asymmetrie (bei Systemen, die gemäß einer Ausführungsform der Erfindung asymmetrisches ADPCM verwenden). Bei ADPCM des Stands der Technik wurde die Skalierungs-Reaktionsfähigkeit niedrig genug gehalten, um eine gute Stabilität zu erhalten.

Gemäß einer Ausführungsform der Erfindung wird ein System implementiert, das die erhöhte Reaktionsfähigkeit einer instabilen Skalierung und einer instabilen Asymmetrie ausnutzt, das jedoch auch die Instabilität steuert, um übermäßig fehlerhafte Ergebnisse zu vermeiden. Gemäß einer Ausführungsform der Erfindung ist es der Skalierung gestattet, sich für gewünschte Signalabschnitte schnell zu ändern, sie dann jedoch eingeschränkt wird, indem zukünftige Werte nicht nur basierend auf dem idealen vorhergesagten Wert, sondern auch auf der idealen Skalierung, ausgewählt werden.

Bei einer Ausführungsform werden Indikatoren für die zukünftigen Signaleigenschaften verwendet, um eine genauere nachfolgende Codierung bereitzustellen. Dies wird ausgeführt, indem ein oder mehrere zukünftige Abtastwerte ausgewertet werden, um die zukünftigen Signaleigenschaften zu bestimmen, und Indikatoren dieser Eigenschaften einbezogen werden, die über den Informationsraum im aktuellen Abtastwert hinausgehen. Diese zukünftigen Signaleigenschaften könne verwendet werden, um andernfalls instabile Skalierungskoeffizienten zu stabilisieren und damit eine bessere Reaktionsfähigkeit auf Signaländerungen bereitzustellen. Wenn beispielsweise die Skalierung durch Instabilität zu groß wird und an den Punkt gelangt, bei dem sich fehlerhafte Ergebnisse ergeben würden, dann kann eine suboptimale Codierung verwendet werden (das heißt, eher als der vorhergesagte Wert), um in die Skalierung einzugreifen. Der mit dem nachfolgenden Wert verbundene Fehler ist geringer als der durch Skalierungs-Instabilität verursachte. Das heißt, es kann eine weniger gute als die beste Anpassung gewählt werden, um in der Zukunft eine bessere Anpassung zu erhalten.

Zusätzlich gestattet die Verwendung zukünftiger Signaleigenschaften eine Voraussicht in der Codierung zukünftiger Änderungen der Skalierung oder der Frequenz. Beispielsweise kann der durch die Verwendung eines suboptimalen Werts für die momentane Codierung gemachte Fehler ausgeglichen werden, indem eine optimalere Skalierung für mehrere nachfolgende Codierungen verwendet wird. Außerdem gestattet die durch die Auswertung zukünftiger Signaleigenschaften ermöglichte frühe Ablösung der Skalierung einen gewissen Grad an Kompensation für aktuelle fehlerhafte Kurvenvorhersagen.

7 stellt ein Verfahren dar, bei dem gemäß einer Ausführungsform der Erfindung zukünftige Signaleigenschaften verwendet werden, um eine ADPCM-Codierung festzulegen. Die in 7 dargestellte Verarbeitung 700 beginnt bei Vorgang 705, bei dem eine Anzahl zukünftiger Abtastwerte ausgewertet wird, um zukünftige Signaleigenschaften zu bestimmen. Bei einer Ausführungsform beträgt die Anzahl der ausgewerteten zukünftigen Abtastwerte sieben.

Bei Vorgang 710 wird eine Bestimmung durchgeführt, ob die zukünftigen Signaleigenschaften eine fehlerhafte Codierung durch Instabilität anzeigen.

Wenn die zukünftigen Signaleigenschaften keine fehlerhafte Codierung durch Instabilität anzeigen, dann wird in Vorgang 711 der nachfolgende Deltawert unter Verwendung des vorhergesagten Werts codiert.

Wenn die zukünftigen Signaleigenschaften eine fehlerhafte Codierung durch Instabilität anzeigen, dann werden in Vorgang 712 ein oder mehrere nachfolgende Deltas unter Verwendung von Werten codiert, die die Signaleigenschaften stabilisieren (das heißt, die das System zur Stabilität zurückführen).

Ebenso können die Fehlerterme durch die Fähigkeit des menschlichen Ohrs gewichtet werden, diese zu hören, eingeschlossen aber nicht eingeschränkt auf die Verringerung des Gewichts für Fehler während oder direkt nach großen Signalen und Fehler während Rauschspitzen.

Das Zulassen von zyklischem Werteüberlauf (der maximale positive Wert wird zum maximalen negativen Wert inkrementiert) verringert die Berechnungen und erhöht in manchen Fällen die Qualität, wenn auch Koeffizientenstabilität eingesetzt wird.

MUSTERERKENNUNG

Es gibt viele häufige und wiederholte Muster in Audiodaten und dies insbesondere in Bezug auf die menschliche Sprache. Solche häufigen Muster sind ebenso in ADPCM-Deltas vorhanden. Oftmals sind diese häufigen Muster (beispielsweise häufige Kurven des Signals) kleine Signale. Gemäß einer Ausführungsform der Erfindung wird die Audiodatenkompression erhöht, indem solche häufigen Muster erkannt und sie in einer effizienteren Weise codiert werden.

Gemäß einer Ausführungsform der Erfindung werden erkannte häufige Muster herausgezogen und auf eine solche Weise komprimiert, daß es möglich ist die nächsten häufigsten Signale leicht zu erkennen.

Häufige Signale

Eine Ausführungsform der Erfindung umfaßt das Erkennen häufiger Muster, die zur Erhöhung der Kompression alternativ codiert werden können. Es existieren viele solche Muster. Beispielsweise ist eine Reihe nullwertiger ADPCM-Deltas ein häufiges Vorkommnis, das Stille darstellt. Dies ist ein häufiges Muster, da Sprache typischerweise durch plötzliche Signalveränderungen gefolgt von einem Abschnitt der Stille oder eines sehr niedrigen Signals repräsentiert wird. Die Kompression einer Reihe von Nullen ist typischerweise benachbart zu einer kleinen Stufe, was ein weiteres häufiges Muster ist. Eine kleine Stufe ist ein kleiner (positiver oder negativer) Wert, gefolgt von einer Reihe von Nullen (beispielsweise 1000000). Die Kompression einer kleinen Stufe ist typischerweise benachbart zu einer elementaren Kurve (häufige Kurve). Eine Ausführungsform der Erfindung umfaßt den Vorgang der Erkennung solcher häufigen Muster oder elementaren Kurven und die Vorhersage des wahrscheinlichen nachfolgenden Signalverhaltens. Es sind viele solche elementaren Kurven feststellbar. Der als Anhang A beigefügte Quellcode umfaßt 64 der, wie empirisch ermittelt, häufigsten elementaren Kurven, die als Makros codiert sind.

Nachdem die wiederholten Nullen, die kleine Stufe gefolgt von Nullen oder eine andere häufige Kurve erkannt sind, können diese unter Verwendung einer Alternative zur ADPCM-Codierung codiert werden, um eine höhere Kompression bereitzustellen. Beispielsweise kann eine Reihe von Nullen durch Lauflängencodierung oder ähnliche Datenkompressionsverfahren codiert werden.

Das heißt, daß nach der Feststellung eines erkannten Musters die ADPCM-Codierung für die Dauer des Musters ausgesetzt wird und die die Kurve bildenden Deltas unter Verwendung eines alternativen Codierverfahrens codiert werden. Beispielsweise wird eine Reihe fortlaufender ADPCM-Nullwertdeltas erkannt und unter Verwendung eines typischen Datenkompressionsverfahrens, wie etwa der Lauflängencodierung, codiert.

Die Anzahl Deltas, die das Muster bilden, muß einen minimalen Schwellwert betragen, damit die alternative Codierung eine erhöhte Kompression liefert. Das heißt, daß zur Erhöhung der Kompression die zur Kennzeichnung und Beschreibung des Musters verwendete Anzahl an Bits kleiner sein muß, als die für die Codierung des Patterns mit ADPCM erforderliche Anzahl an Bits. Bei einer Ausführungsform ist der Schwellwert für eine Reihe von Nullen und eine kleine Stufe drei Deltas und für eine elementare Kurve fünf Deltas.

8 stellt eine Verarbeitung dar, bei der gemäß einer Ausführungsform der Erfindung ein häufiges Muster festgestellt und unter Verwendung eines alternativen Codierverfahrens codiert wird. Die in 8 dargestellte Verarbeitung 800 beginnt bei Vorgang 805, bei dem ein oder mehrere häufige Muster bestimmt werden.

Bei Vorgang 810 wird eine Anzahl Deltawerte ausgewertet, in einem Versuch ein häufiges Muster festzustellen. Bei einer Ausführungsform beträgt die Anzahl der ausgewerteten Deltawerte fünf.

Bei Vorgang 815 wird festgestellt, ob die Deltawerte ein bestimmtes häufiges Muster bilden.

Wenn die Deltawerte kein häufiges Muster bilden, dann werden bei Vorgang 816 gemäß verschiedener Ausführungsformen der Erfindung die Deltawerte unter Verwendung eines ADPCM-basierten Codierungsverfahrens codiert

Wenn die Deltawerte ein häufiges Muster bilden, dann werden bei Vorgang 817 die Deltawerte unter Verwendung eines Datenkompressionsverfahrens codiert, das für solche Werte geeignet ist und das eine höhere Kompression als ADPCM-Codierung liefert. Beispielsweise können die Deltawerte unter Verwendung einer Lauflängencodierung oder einer ähnlichen Datenkompressionstechnik codiert werden. In einem weiteren Beispiel können die Deltawerte unter Verwendung einer Makro-Lookup-Tabelle codiert werden.

Zurücksetzen der Skalierung nach Mustern

Bei einer Ausführungsform der Erfindung wird, nachdem ein häufiges Muster codiert wurde, die Skalierung auf ein bestimmtes Vorzeichen zurückgesetzt. Beispielsweise wird das Vorzeichen des ADPCM speziell gehandhabt, so daß nach einer kleinen Stufe die elementaren Kurven mit demselben Vorzeichen gesehen werden. Dies wird so gemacht, da erwartet wird, daß beispielsweise für eine kleine zunehmende Stufe die elementare Kurve ebenfalls zunehmen wird. Außerdem vermeidet das Zurücksetzen der Skalierung nach einem solchen Muster wiederholte Inversionen der Skalierung durch mehrfache Nullwertdeltas. Das vorhersagbare Vorzeichen gestattet eine erfolgreichere Detektion nachfolgender elementarer Kurven.

Kennzeichnung von Mustern

Bei einer Ausführungsform der Erfindung, in der ein 3-Bit-Codierverfahren implementiert ist, beinhaltet jedes 16-Bit-Wort fünf als 3-Bit-Werte codierte Deltas, womit das höchstwertige Bit des 16-Bit-Worts verfügbar bleibt. Dieses Anfangsbit wird zur Kennzeichnung eines erkannten Musters verwendet. Bei einer Ausführungsform wird ein Bit verwendet, um das Vorhandensein eines Musters anzuzeigen, und ein oder mehrere zusätzliche Bits werden zur Identifikation des Musters aus einer Anzahl von Mustern verwendet (beispielsweise wird das dem bestimmten Muster entsprechende Makro identifiziert).

SYSTEM

9 stellt einen Mikrokontroller zur Speicherung komprimierter Audiodaten gemäß einer Ausführungsform der vorliegenden Erfindung dar. Der in 9 dargestellte Mikrokontroller 900 umfaßt einen Mikroprozessor 905, an den ein Programmspeicher 910 und ein Datenspeicher 915 gekoppelt sind. Der Programmspeicher 910, der beispielsweise ein ROM oder EPROM sein kann, speichert die Audiodatenkompressionsfunktion 911 sowie die komprimierten Audiodaten 912. Ausführungsformen der Erfindung stellen eine wirksamere Audiodatenkompression bereit und gestatten daher die Speicherung von Tonspuren längerer Dauer in einem ROM bestimmter Größe. Der Datenspeicher 915, der beispielsweise ein RAM oder SRAM sein kann, wird für die gemäß verschiedener Ausführungsformen der Erfindung zur Audiodatenkompression gehörenden Berechnungen verwendet. Der Mikroprozessor 905 ist auch an ein E/A-Gerät 920 gekoppelt, um Daten zwischen Peripheriegeräten 921 zu kommunizieren. Der Mikroprozessor 905 ist typischerweise auf einer Einchip integrierten Schaltung implementiert, er kann jedoch auch eines oder mehrere der anderen Elemente auf demselben Chip einschließen.

ALLGEMEINE BEMERKUNGEN

Ausführungsformen der Erfindung wurden im Kontext eines 3-Bit-Verfahrens zur ADPCM-Audiodatenkompression beschrieben. Bei einem solchen System können Ausführungsformen der Erfindung dazu verwendet werden folgendes bereitzustellen: eine erhöhte variable Kompressionsdatenrate (beispielsweise ungefähr 3:1), eine erhöhte feste Kompressionsdatenrate (beispielsweise ungefähr 2,7:1) und eine gleiche Kompressionsdatenrate (beispielsweise 2:1), die jedoch relativ zu typischen Systemen des Stands der Technik eine viel höher Qualität hat. Andere Ausführungsformen können in verschiedenen anderen Kontexten implementiert werden, eingeschlossen andere Audio- und andere Nicht-Audio-Datenkompressionstechniken als ADPCM, sowie eine Codierung mit mehr oder weniger Bits. Mehrere exemplarische alternative Verfahren werden untenstehend besprochen.

Alternative Verfahren

Nachfolgend ist eine Liste einiger der alternativen Ausführungsformen der Erfindung aufgeführt. Diese Liste beansprucht nicht vollständig zu sein.

Bei einer Ausführungsform der Erfindung werden anstatt der ADPCM-Werte die tatsächlichen Signalwerte mustercodiert. Dies kann weniger effizient sein, da ein Zuordnen bei verschiedenen Skalierungen mehr Möglichkeiten der Zuordnung gibt.

Bei einer Ausführungsform der Erfindung werden sich langsam bewegende Signale als ein Wendepunkt und ein relatives Maximum codiert. Eine solche Codierung kann die Rauschverzerrung über annehmbare Grenzen hinaus erhöhen.

Bei einer Ausführungsform der Erfindung ist das Codieren der zweiten Signalableitung verlustfrei, da das Originalsignal leicht rekonstruiert werden kann, und es gibt typischerweise große Spannen, wo die zweite Ableitung nur um etwa vier Zähler variiert. Bei solchen Ausführungsformen ist es sinnvoll, die zweite Ableitung nicht verlustbehaftet zu komprimieren, da jeder einzelne Bitfehler stark verstärkt würde.

Bei einer Ausführungsform der Erfindung kann die Amplitude der zweiten Ableitung etwas verringert werden, indem ein Teil des Originalsignals addiert wird (im allgemeinen phasenverschoben).

Bei einer Ausführungsform der Erfindung wird das Originalsignal vorverarbeitet, um fast stille Abschnitte zu Nullwerten zu drücken. Bei einer solchen Ausführungsform ist die erzielte Kompression höher, jedoch mit der Möglichkeit des Verlusts von wichtigem Signal.

Bei einer Ausführungsform der Erfindung wird das Signal vorverarbeitet, um es effizienter verarbeitbar zu machen (beispielsweise ein Abflachen flacher Stellen).

Bei einer Ausführungsform der Erfindung werden sieben kleine Werte, die jeder in zwei Bits passen, in ein einzelnes Wort codiert, eingeschlossen einige Flagbits. Dies bringt jedoch eine Duplizierung des Aufwands für die Detektion der elementaren Kurven mit sich.

Bei einer Ausführungsform der Erfindung werden Stufenkurven alternativ als eine Reihe von Nulldeltas gefolgt von einer einzelnen Stufe codiert. Diese Form tritt weniger wahrscheinlich nach einer Reihe von Nullen auf und sie ist weniger effizient zu dekomprimieren.

Bei einer Ausführungsform der Erfindung wird die Frequenz abwechselnd bestimmt, indem andere Attribute als Nulldurchgänge gezählt werden. Solche Attribute schließen die folgenden ein, sind jedoch nicht auf diese beschränkt: Vorzeichenwechsel, Steigungswechsel und flache Abschnitte der eingehenden Kurve.

Ausführungsformen der Erfindung umfassen verschiedene Vorgänge. Viele der Verfahren sind in ihrer einfachsten Form beschrieben, jedoch können Vorgänge zu jedem der Verfahren hinzugefügt oder weggenommen werden, ohne den grundlegenden Rahmen der Erfindung zu verlassen.

Für den Fachmann ist es erkennbar, daß die Vorgänge der Erfindung von Hardwarekomponenten ausgeführt werden können oder, daß sie in maschinenausführbaren Anweisungen ausgeführt werden können, die dazu verwendet werden können, einen universell einsetzbaren oder einen speziellen Prozessor oder eine Logikschaltungen, die mit den Anweisungen programmiert werden, zu veranlassen, die Vorgänge auszuführen. Alternativ können die Schritte durch eine Kombination aus Hardware und Software ausgeführt werden. Verschiedene Ausführungsformen der Erfindung können als ein Computerprogramm-Produkt bereitgestellt werden, das ein maschinenlesbares Medium umfassen kann, auf dem Anweisungen gespeichert sind, die dazu verwendet werden können einen Computer (oder andere elektronische Geräte) zu programmieren, um eine Verarbeitung gemäß verschiedener alternativer Ausführungsformen der Erfindung auszuführen. Das maschinenlesbare Medium kann folgendes umfassen, ist jedoch nicht darauf eingeschränkt: Disketten, optische Platten, CD-ROMs und magneto-optische Platten, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Flashspeicher oder einen anderen Medientyp/ein anderes maschinenlesbares Medium, der oder das zur Speicherung elektronischer Anweisungen geeignet ist. Außerdem können Ausführungsformen der Erfindung auch als Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer zu einem anfragenden Computer übertragen werden kann, und dies über Datensignale, die in Trägerwellen oder andere Verbreitungsmedien über Kommunikationszellen eingebettet sind (beispielsweise ein Modem oder eine Netzwerkverbindung).

Obwohl die Erfindung in Form mehrerer Ausführungsformen beschrieben wurde, erkennt der Fachmann, daß die Erfindung nicht auf die beschriebenen Ausführungsformen eingeschränkt ist, sondern mit Modifikationen und Abänderungen innerhalb des Geists und des Rahmens der beigefügten Ansprüche ausgeführt werden kann. Die Beschreibung ist daher als veranschaulichend und nicht als einschränkend anzusehen.

Anhang

Zusammenfassung

Ausführungsformen der Erfindung erzielen eine erhöhte Kompression von Audiodaten im Vergleich zu ADPCM-Kompressionsverfahren des Stands der Technik bei geringem Einsatz an Leistung und Ressourcen. Bei einer Ausführungsform wird ein asymmetrisches ADPCM-Codierverfahren implementiert, um die wirksame Codierauflösung für eine bestimmte Anzahl von Codierbits zu erhöhen. Zusätzlich oder alternativ werden Techniken wie die Erkennung und Codierung von Mustern sowie eine Berechnungsvereinfachung angewendet, um die Datenkompression von Audiodaten zu erhöhen.


Anspruch[de]
  1. Verfahren; das folgendes umfaßt:

    Vorhersagen eines Vorzeichens eines Deltawerts einer adaptiven differentiellen Pulscodemodulation (ADPCM) eines Signals; und

    Versetzen eines ADPCM-Codierverfahrens, basierend auf dem vorhergesagten Vorzeichen.
  2. Verfahren nach Anspruch 1, das des weiteren folgendes umfaßt:

    Codieren des ADPCM-Deltawerts mittels des versetzten ADPCM-Codierverfahrens.
  3. Verfahren nach Anspruch 2, wobei das ADPCM-Codierverfahren ein Drei-Bit-Codierverfahren ist, das versetzt ist, um vier positive Auflösungsstufen, einen Nullwert und drei negative Auflösungsstufen bereitzustellen und wobei die Codierung unter Verwendung der vier positiven Auflösungsstufen ausgeführt wird.
  4. Verfahren nach Anspruch 2, wobei das ADPCM-Codierverfahren ein Drei-Bit-Codierverfahren ist, das versetzt ist, um fünf positive Auflösungsstufen, einen Nullwert und zwei negative Auflösungsstufen bereitzustellen und wobei die Codierung unter Verwendung der fünf positiven Auflösungsstufen ausgeführt wird.
  5. Verfahren nach Anspruch 1, wobei das Vorzeichen des ADPCM-Deltawerts auf der Basis eines Vorzeichens eines oder mehrerer vorausgehender Deltawerte vorhergesagt wird.
  6. Verfahren nach Anspruch 1, wobei das ADPCM-Codierverfahren versetzt ist, mit einer Asymmetrie, die auf einer vorhergesagten Frequenz des Signals basiert.
  7. Verfahren nach Anspruch 6, wobei die vorhergesagte Frequenz des Signals bestimmt wird, indem eine oder mehrere Eigenschaften des Signals ausgewertet werden.
  8. Verfahren nach Anspruch 7, wobei die eine oder mehreren ausgewerteten Eigenschaften des Signals aus der folgenden Gruppe ausgewählt werden: Signal-Nulldurchgänge, Signal-Vorzeichenwechsel, Signal-Steigungswechsel, Signalwerte und Kombinationen daraus.
  9. Maschinenlesbares Medium, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie ausgeführt werden, ein System dazu veranlassen, ein Verfahren auszuführen, das folgendes umfaßt:

    Vorhersagen eines Vorzeichens eines Deltawerts einer adaptiven differentiellen Pulscodemodulation (ADPCM) eines Signals; und

    Versetzen eines ADPCM-Codierverfahrens, basierend auf dem vorhergesagten Vorzeichen.
  10. Maschinenlesbares Medium nach Anspruch 9, das des weiteren folgendes umfaßt:

    Codieren des ADPCM-Deltawerts unter Verwendung des versetzten ADPCM-Codierverfahrens.
  11. Maschinenlesbares Medium nach Anspruch 10, wobei das ADPCM-Codierverfahren ein Drei-Bit-Codierverfahren ist, das versetzt ist, um vier positive Auflösungsstufen, einen Nullwert und drei negative Auflösungsstufen bereitzustellen und wobei die Codierung unter Verwendung der vier positiven Auflösungsstufen ausgeführt wird.
  12. Maschinenlesbares Medium nach Anspruch 10, wobei das ADPCM-Codierverfahren ein Drei-Bit-Codierverfahren ist, das versetzt ist, um fünf positive Auflösungsstufen, einen Nullwert und zwei negative Auflösungsstufen bereitzustellen und wobei die Codierung unter Verwendung der fünf positiven Auflösungsstufen ausgeführt wird.
  13. Maschinenlesbares Medium nach Anspruch 9, wobei das Vorzeichen des ADPCM-Deltawerts auf der Basis eines Vorzeichens eines oder mehrerer vorausgehender Deltawerte vorhergesagt wird.
  14. Maschinenlesbares Medium nach Anspruch 9, wobei das ADPCM-Codierverfahren versetzt ist, mit einer Asymmetrie, die auf einer vorhergesagten Frequenz des Signals basiert.
  15. Maschinenlesbares Medium nach Anspruch 14, wobei die vorhergesagte Frequenz des Signals basierend auf einer oder mehreren Signaleigenschaften bestimmt wird.
  16. Maschinenlesbares Medium nach Anspruch 15, wobei die eine oder mehreren ausgewerteten Eigenschaften des Signals aus der folgenden Gruppe ausgewählt werden: Signal-Nulldurchgänge, Signal-Vorzeichenwechsel, Signal-Steigungswechsel, Signalwerte und Kombinationen daraus.
  17. System, das folgendes umfaßt:

    einen Prozessor; und

    einen an den Prozessor gekoppelten Speicher, wobei der Speicher in sich eine oder mehrere ausführbare Anweisungen gespeichert hat, die, wenn sie vom Prozessor ausgeführt werden, den Prozessor dazu veranlassen ein Verfahren auszuführen, das folgendes umfaßt:

    Vorhersagen eines Vorzeichens eines Deltawerts einer adaptiven differentiellen Pulscodemodulation (ADPCM) eines Signals; und

    Versetzen eines ADPCM-Codierverfahrens, basierend auf dem vorhergesagten Vorzeichen.
  18. System nach Anspruch 17, wobei das Verfahren des weiteren folgendes umfaßt:

    Codieren des ADPCM-Deltawerts unter Verwendung des versetzten ADPCM-Codierverfahrens.
  19. System nach Anspruch 18, wobei das ADPCM-Codierverfahren ein Drei-Bit-Codierverfahren ist, das versetzt ist, um vier positive Auflösungsstufen, einen Nullwert und drei negative Auflösungsstufen bereitzustellen und wobei die Codierung unter Verwendung der vier positiven Auflösungsstufen ausgeführt wird.
  20. System nach Anspruch 18, wobei das ADPCM-Codierverfahren ein Drei-Bit-Codierverfahren ist, das versetzt ist, um fünf positive Auflösungsstufen, einen Nullwert und zwei negative Auflösungsstufen bereitzustellen und wobei die Codierung unter Verwendung der fünf positiven Auflösungsstufen ausgeführt wird.
  21. System nach Anspruch 17, wobei das Vorzeichen des ADPCM-Deltawerts auf der Basis eines Vorzeichens eines oder mehrerer vorausgehender Deltawerte vorhergesagt wird.
  22. System nach Anspruch 17, wobei das ADPCM-Codierverfahren versetzt ist, mit einer Asymmetrie, die auf einer vorhergesagten Frequenz des Signals basiert.
  23. System nach Anspruch 22, wobei die vorhergesagte Frequenz des Signals basierend auf einer oder mehreren Signaleigenschaften bestimmt wird.
  24. System nach Anspruch 23, wobei die eine oder mehreren ausgewerteten Eigenschaften des Signals aus der folgenden Gruppe ausgewählt werden: Signal-Nulldurchgänge, Signal-Vorzeichenwechsel, Signal-Steigungswechsel, Signalwerte und Kombinationen daraus.
Es folgen 10 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com