-
Technisches Gebiet
-
Die
Erfindung bezieht sich im Allgemeinen auf hochwertige, niederbitratige
digitale Transformationscodierung und -decodierung von Information,
die Audiosignale, wie zum Beispiel Musik oder Sprachsignale, darstellt.
Im Besonderen bezieht sich die Erfindung auf die Verringerung von
Verzerrungsartefakten, welche einem Signalübergang (einer Transienten)
in einem Audiosignaldatenstrom vorangehen („Vorstörungen"), der durch ein solches Codier- und
Decodiersystem erzeugt wurde.
-
Stand der Technik
-
Zeitskalierung
-
Zeitskalierung
bezieht sich auf Änderung
der Zeitentwicklung oder -dauer eines Audiosignals, während sein
spektraler Inhalt (wahrgenommene Klangfarbe) oder wahrgenommene
Tonhöhe
(wobei Tonhöhe eine
Eigenschaft ist, die mit periodischen Audiosignalen verbunden ist)
nicht verändert
wird. Tonhöhenskalierung
bezieht sich auf die Veränderung
des spektralen Inhalts oder der wahrgenommenen Tonhöhe eines
Audiosignals, während
seine Zeitentwicklung und -dauer nicht beeinflusst werden. Zeitskalierung
und Tonhöhenskalierung
sind zueinander duale Verfahren. Zum Beispiel kann eine digitalisierte
Tonhöhe
eines Audiosignals um 5% vergrößert werden,
ohne seine Zeitdauer zu beeinflussen, indem es um 5% zeitskaliert
wird (das heißt,
die Zeitdauer des Signals vergrößert wird)
und dann die Abtastwerte in einer 5% höheren Abtastrate ausgelesen
werden (zum Beispiel durch Neuabtastung), wodurch seine originale
Zeitdauer beibehalten wird. Das sich ergebende Signal hat dieselbe
Zeitdauer wie das Originalsignal, aber mit geänderter Tonhöhe oder
geänderten
spektralen Eigenschaften. Neuabtastung ist kein notwendiger Schritt
der Zeitskalierung oder Tonhöhenskalierung,
sofern nicht erwünscht
ist, eine gleichbleibende Ausgangsabtastrate beizubehalten oder
dieselben Eingangs- und Ausgangsabtastraten beizubehalten.
-
In
Aspekten der vorliegenden Erfindung wird Zeitskalierungsverarbeitung
von Audioströmen
eingesetzt. Jedoch kann Zeitskalierung, wie oben erwähnt, auch
durch Verwendung von Tonhöhenskalierungs-Techniken
durchgeführt
werden, da sie dual zueinander sind. Daher können, obwohl hierin der Begriff "Zeitskalierung" verwendet wird,
Techniken eingesetzt werden, die Tonhöhenskalierung einsetzen, um
Zeitskalierung zu erzielen.
-
Unter
den Fachleuten im Bereich der Signalverarbeitung gibt es erhebliches
Interesse, den Umfang der Information zur Darstellung eines Signals
ohne wahrnehmbaren Verlust in der Signalqualität zu minimieren. Durch Verringerung
des Informationsbedarfs erfordern Signale geringeren Bedarf an Informationskapazität für Kommunikationskanäle und Speichermedien.
Hinsichtlich digitaler Codiertechniken ist minimaler Informationsbedarf
gleichbedeutend mit minimalem Bitratenbedarf.
-
Einige
Verfahren für
die Codierung von Audiosignalen nach Stand der Technik, die für menschliches Hören vorgesehen
sind, versuchen den Informationsbedarf ohne Verursachung irgendeiner
hörbaren
Verschlechterung zu verringern, indem psychoakustische Effekte ausgenutzt
werden. Das menschliche Gehör zeigt
frequenzanalysierende Eigenschaften, die denen von hoch asymmetrisch
abgestimmten Filtern mit variablen Mittenfrequenzen ähneln. Die
Fähigkeit
des menschlichen Gehörs,
verschiedene Töne
zu erkennen, wird im Allgemeinen größer, wenn sich die Frequenzdifferenz
zwischen den Tönen
erhöht;
jedoch bleibt die Auflösungsfähigkeit
des Gehörs
für Frequenzdifferenzen,
die kleiner als die Bandbreite der oben erwähnten Filter sind, im Wesentlichen
konstant. Daher variiert das Frequenzauflösungsvermögen des menschlichen Gehörs entsprechend
der Bandbreite dieser Filter über
das gesamte Audiospektrum. Die effektive Bandbreite eines solchen
Hörfilters
wird als Frequenzgruppe bezeichnet. Ein dominantes Signal innerhalb
einer Frequenzgruppe kann die Hörbarkeit
anderer Signale, die irgendwo innerhalb jener Frequenzgruppe sind,
mit höherer Wahrscheinlichkeit
als die anderer Signale außerhalb
jener Frequenzgruppe maskieren. Ein dominantes Signal kann andere
Signale, nicht nur gleichzeitig zum maskierenden Signal auftretende,
sondern auch vor oder nach dem maskierenden Signal auftretende,
maskieren. Die Dauer von Vor- und Nachmaskierungseffekten innerhalb
einer Frequenzgruppe hängt
von der Stärke
des maskierenden Signals ab, aber Vormaskierungseffekte sind üblicherweise
von einer viel geringeren Dauer als Nachmaskierungseffekte. Siehe
allgemein dazu das Audio Engineering Handbook, K. Blair Benson Hrsg.,
McGraw-Hill, San Francisco, 1988, Seiten 1.40–1.42 und 4.8–4.10.
-
Signalaufzeichnungs-
und Übertragungsverfahren,
die die nutzbare Signalbandbreite in Frequenzbänder mit Bandbreiten aufteilen,
die die Frequenzgruppen des Gehörs
annähern,
können
psychoakustische Effekte besser als Verfahren mit breiteren Bändern ausnutzen.
Verfahren, die psychoakustische Maskierungseffekte ausnutzen, können ein
Signal codieren und wiedergeben, das vom ursprünglichen Eingangssignal nicht unterscheidbar
ist, wobei eine niedrigere Bitrate verwendet wird, als bei PCM-Codierung
erforderlich ist.
-
Frequenzgruppenverfahren
umfassen das Aufteilen der Signalbandbreite in Frequenzbänder, die
Verarbeitung des Signals in jedem Frequenzband und die Rekonstruktion
einer Kopie des Originalsignals aus dem verarbeiteten Signal in
jedem Frequenzband. Zwei derartige Verfahren sind Teilband-Codierung
und Transformations-Codierung. Teilband- und Transformationscoder
können
den übertragenen
Informationsbedarf in bestimmten Frequenzbändern verringern, wo die sich
ergebende Codierungenauigkeit (Rauschen) psychoakustisch durch benachbarte
Spektralkomponenten maskiert wird, ohne die subjektive Qualität des codierten
Signals zu beeinträchtigen.
-
Eine
Bank von digitalen Bandpassfiltern kann Teilband-Codierung realisieren.
Transformations-Codierung
kann durch irgendeine von mehreren diskreten Transformationen vom
Zeitbereich zum Frequenzbereich realisiert werden, die eine Bank
von digitalen Bandpassfiltern anwenden. Die restliche Erörterung
bezieht sich genauer auf Transformationscoder, daher wird der Ausdruck „Teilband" hier verwendet,
um sich auf ausgewählte
Teile der gesamten Signalbandbreite zu beziehen, unabhängig davon,
ob es durch einen Teilbandcoder oder einen Transformationscoder
angewendet wird. Ein Teilband, wie von einem Transformationscoder
angewendet, ist als eine Menge von einem oder mehreren benachbarten
Transformations-Koeffizienten definiert; daher ist die Teilband-Bandbreite
ein Vielfaches der Transformations-Koeffizienten-Bandbreite. Die
Bandbreite eines Transformations-Koeffizienten ist proportional
zur Abtastrate des Eingangssignals und umgekehrt proportional zur
Zahl der Koeffizienten, die durch die Transformation erzeugt werden,
um das Eingangssignal darzustellen.
-
Psychoakustische
Maskierung kann durch Transformationscoder einfacher erreicht werden,
wenn die Teilband-Bandbreite im gesamten hörbaren Spektrum ungefähr die Hälfte der
Frequenzgruppenbreite des menschlichen Gehörs in denselben Teilen des
Spektrums ist. Die ist so, weil die Frequenzgruppen des menschlichen
Gehörs
variable Mittenfrequenzen haben, die sich an Hörreize anpassen, wohingegen
Teilband- und Transformationscoder üblicherweise feste Teilband-Mittenfrequenzen
haben. Um die Ausnutzung der psychoakustischen Maskierungseffekte
zu optimieren, sollten jegliche sich aus dem Vorhandensein eines
dominanten Signals ergebenden Verzerrungsartefakte auf das Teilband
begrenzt werden, das das dominante Signal enthält. Wenn die Teilband-Bandbreite ungefähr die Hälfte oder
weniger als die Hälfte
der Frequenzgruppe ist und wenn die Filterselektivität genügend hoch
ist, findet eine effektive Maskierung von unerwünschten Verzerrungsprodukten
wahrscheinlich sogar für
Signale statt, deren Frequenz nahe des Rands der Teilband-Durchlassbandbreite
ist. Wenn die Teilband-Bandbreite größer als die Hälfte einer
Frequenzgruppe ist, kann es sein, dass das dominante Signal eine
Verschiebung der Frequenzgruppe des Gehörs weg von dem Teilband des
Coders verursachen kann, so dass einige der unerwünschten
Verzerrungsprodukte außerhalb der
Frequenzgruppenbreite des Gehörs
nicht maskiert werden. Dieser Effekt ist bei niedrigen Frequenzen,
wo die Frequenzgruppe des Gehörs
schmaler ist, am störendsten.
-
Die
Wahrscheinlichkeit, dass ein dominantes Signal die Verschiebung
der Frequenzgruppe des Gehörs
weg von einem Coder-Teilband verursachen kann und dadurch andere
Signale in demselben Coder-Teilband „freigibt", ist im Allgemeinen bei niedrigen Frequenzen,
wo die Frequenzgruppe des Gehörs
schmaler ist, höher.
In Transformationscodern ist das schmalstmögliche Teilband ein Transformations-Koeffizient,
daher kann psychoakustische Maskierung einfacher erreicht werden,
wenn die Transformations-Koeffizienten-Bandbreite nicht die Hälfte der
Bandbreite der schmalsten Frequenzgruppe des Gehörs überschreitet. Das Vergrößern der
Länge der
Transformation kann die Transformations-Koeffizienten-Bandbreite
verringern. Ein Nachteil des Vergrößerns der Länge der Transformation ist
eine Erhöhung
in der Verarbeitungskomplexität
zur Berechnung der Transformation und zur Codierung einer größeren Anzahl
von schmaleren Teilbändern.
Andere Nachteile werden unten erörtert.
-
Natürlich kann
psychoakustische Maskierung unter Verwendung breiterer Teilbänder erzielt
werden, wenn die Mittenfrequenz dieser Teilbänder verschoben werden kann,
um dominanten Signalkomponenten in ziemlich derselben Art und Weise
zu folgen, wie sich die Mittenfrequenz der Frequenzgruppe des Gehörs verschiebt.
-
Die
Fähigkeit
eines Transformationscoders zur Ausnutzung psychoakustischer Maskierungseffekte hängt auch
von der Selektivität
der Filterbank ab, die von der Transformation angewendet wird. der
Ausdruck Filter-„Selektivität” in seiner
Verwendung hierin bezieht sich auf zwei Eigenschaften von Teilband-Bandpassfiltern.
Die erste ist die Bandbreite der Bereiche zwischen dem Filter-Durchlassbereich
und den Sperrbereichen (die Breite der Übergangsbänder). Die zweite ist der Dämpfungspegel
in den Sperrbändern.
Daher bezieht sich Filterselektivität auf die Steilheit der Filterfrequenzgangkurve
innerhalb der Übergangsbänder (Steilheit
des Rolloff des Übergangsbands)
und den Pegel der Dämpfung
in den Sperrbändern
(Tiefe der Sperrbereichsunterdrückung).
-
Filterselektivität wird durch
zahlreiche Faktoren direkt beeinflusst, einschließlich der
unten erörterten drei
Faktoren: Blocklänge,
Fenstergewichtungsfunktionen und Transformationen. Sehr allgemein
gesagt, beeinflusst die Blocklänge
die Zeit- und Frequenzauflösung
des Coders, und Fenster und Transformationen beeinflussen den Codierungsgewinn.
-
Niederbitraten-Audiocodierung/Blocklänge
-
Das
zu codierende Eingangssignal wird abgetastet und vor der Teilbandfilterung
in "Signalabtastwertblöcke" aufgeteilt. Die
Zahl der Abtastwerte in dem Signalabtastwertblock ist die Signalabtastwertblocklänge.
-
Es
ist üblich,
dass die Zahl der durch eine Transformations-Filterbank erzeugten
Koeffizienten (die Transformationslänge) gleich der Signalabtastwertblocklänge ist,
aber dies ist nicht notwendig. Eine Transformation mit überlappenden
Blöcken
kann verwendet werden und wird im Fachgebiet manchmal als eine Transformation
der Länge
N beschrieben, die Signalabtastwertblöcke mit 2 N Abtastwerten transformiert.
Die Transformation kann ebenso als eine Transformation der Länge 2 N
beschrieben werden, die nur N eindeutige Koeffizienten erzeugt.
Da man sich alle hier erörterten
Transformationen so vorstellen kann, dass sie Längen gleich der Signalabtastwertblocklänge haben,
werden hier die zwei Längen
im Allgemeinen als Synonyme füreinander
verwendet.
-
Die
Signalabtastwertblocklänge
beeinflusst die Zeit- und Frequenzauflösung eines Transformationscoders.
Transformationscoder, die kurze Blocklängen verwenden, haben schlechtere
Frequenzauflösung,
da die Koeffizientenbandbreite der diskreten Transformation breiter
ist und die Filterselektivität
kleiner ist (verringerter Grad an Übergangsband-Rolloff und ein
verringerter Pegel an Sperrbereichsunterdrückung). Diese Verschlechterung
in der Filterleistungsfähigkeit
verursacht, dass die Energie einer einzelnen Spektralkomponente in
benachbarte Transformations-Koeffizienten gestreut wird. Diese unerwünschte Streuung
von spektraler Energie ist das Ergebnis von verschlechterter Filterleistungsfähigkeit,
die „Sidelobe
Verlust" genannt
wird.
-
Transformationscoder,
die längere
Blocklängen
verwenden, haben schlechtere Zeitauflösung, da Quantisierungsfehler
dazu führen,
dass ein Transformationscoder/-decoder-System die Frequenzkomponenten
eines abgetasteten Signals über
die volle Länge
des Signalabtastwertblocks „verschmiert". Verzerrungsartefakte
in dem von der inversen Transformation wiederhergestellten Signal
sind meist als Ergebnis von großen Veränderungen
in der Signalamplitude hörbar,
die während
eines Zeitbereichs auftreten, der viel kürzer als die Signalabtastwertblocklänge ist.
Solche Amplitudenveränderungen
werden hier als „Übergänge" bezeichnet. Derartige
Verzerrung zeigt sich als Störung
in der Form eines Echos oder Klingelns genau vor (Vorübergangsstörung oder „Vorstörung") oder genau nach
(Nachübergangstörung) dem Übergang.
Vorstörungen
sind von besonderer Wichtigkeit, da sie in hohem Maße hörbar und
im Gegensatz zu Nachübergangstörungen nur
minimal maskiert sind (ein Übergang
sorgt nur für
minimales zeitliches Vormaskieren). Vorstörungen werden erzeugt, wenn
die hochfrequenten Komponenten von schwankendem Audiomaterial über die
Länge des
Audiocoderblocks, in dem sie vorkommen, zeitlich verschmiert werden.
Die vorliegende Erfindung befasst sich mit Minimierung von Vorstörungen.
Nachübergangstörungen werden üblicherweise
erheblich maskiert und sind nicht Gegenstand der vorliegenden Erfindung.
-
Transformationscoder
mit fester Blocklänge
verwenden eine Kompromissblocklänge,
die Zeitauflösung
gegen Frequenzauflösung
abwägt.
Eine kurze Blocklänge
verschlechtert die Teilband-Filterselektivität, was zu
einer Filterbandbreite des nominalen Durchlassbereichs führen kann,
die die Frequenzgruppenbreite des Gehörs bei niedrigen oder bei allen
Frequenzen überschreitet.
Sogar wenn die nominale Teilband-Bandbreite schmaler als die Frequenzgruppenbreite
des Gehörs
ist, können
verschlechterte Filtereigenschaften, die sich als ein breites Übergangsband
und/oder schlechte Sperrbereichsunterdrückung zeigen, zu erheblichen Signalartefakten
außerhalb
der Frequenzgruppenbreite des Gehörs führen. Andererseits kann eine
lange Blocklänge
die Filterselektivität
verbessern, aber die Zeitauflösung
verringern, was zu hörbarer
Signalverzerrung führen
kann, die außerhalb
des zeitlichen psychoakustischen Maskierungsbereichs des Gehörs auftritt.
-
Fenstergewichtungsfunktion
-
Diskrete
Transformationen liefern keinen völlig genauen Satz von Frequenzkoeffizienten,
da sie nur mit einem endlich langen Segment des Signals arbeiten,
dem Signalabtastwertblock. Genau gesagt, liefern diskrete Transformationen
eine Zeit-Frequenz-Darstellung des Eingangszeitbereichssignals anstatt
einer echten Frequenzbereichs-Darstellung, die unendlich lange Signalabtastwertblöcke erfordern
würde.
Der Einfachheit der Erörterung
halber wird hier jedoch die Ausgabe der diskreten Transformationen
als eine Frequenzbereichs-Darstellung bezeichnet. Tatsächlich geht
die diskrete Transformation davon aus, dass das abgetastete Signal
nur Frequenzkomponenten hat, deren Perioden Teiler der Signalabtastwertblocklänge sind.
Das entspricht der Annahme, dass das endlich lange Signal periodisch
ist. Diese Annahme ist natürlich
im Allgemeinen nicht richtig. Die angenommene Periodizität erzeugt
Unstetigkeiten an den Rändern
des Signalabtastwertblocks, die dazu führen, dass die Transformation
Phantom-Spektralkomponenten erzeugt.
-
Ein
Verfahren, das diese Auswirkung minimiert, ist die Unstetigkeit
vor der Transformation zu minimieren, indem die Signalabtastwerte
gewichtet werden, so dass die Abtastwerte nahe den Rändern des
Signalabtastblocks Null oder nahe an Null sind. Abtastwerte in der
Mitte des Signalabtastwertblocks werden im Allgemeinen unverändert übergeben,
das heißt,
mit einem Faktor von Eins gewichtet. Diese Gewichtungsfunktion wird "Analysefenster" genannt. Die Form
des Fensters beeinflusst unmittelbar die Filterselektivität.
-
In
seiner Verwendung hierin bezieht sich der Ausdruck „Analysefenster" nur auf die vor
der Durchführung
der Vorwärtstransformation
angewendete Fensterungsfunktion. Das Analysefenster ist eine Zeitbereichsfunktion.
Falls keine Kompensation der Auswirkungen des Fensters bereitgestellt
wird, ist das wiederhergestellte oder "synthetisierte" Signal entsprechend
der Form des Analysefensters verzerrt. Ein als Overlap-Add bekanntes
Kompensationsverfahren ist nach dem Stand der Technik gut bekannt.
Dieses Verfahren erfordert, dass der Coder überlappende Blöcke von
Eingangssignalabtastwerten transformiert. Durch sorgfältigen Entwurf
des Analysefensters, so dass sich zwei benachbarte Fenster über die Überlappung
hinweg zu Eins addieren, werden die Auswirkungen des Fensters genau
kompensiert.
-
Die
Fensterform beeinflusst maßgeblich
die Filterselektivität.
Siehe allgemein dazu Harris, „On
the Use of Windows for Harmonic Analysis with the Discrete Fourier
Transform", Proc
IEEE, Bd. 66, Januar 1978, Seiten 51–83. Als eine allgemeingültige Regel
sorgen „weicher" geformte Filter
und größere Überlappungsbereiche
für bessere
Selektivität.
Zum Beispiel gewährleistet
ein Kaiser-Bessel-Fenster
im Allgemeinen größere Filterselektivität als ein
sinusförmig
auslaufendes Rechteckfilter.
-
Wenn
es mit bestimmten Arten von Transformationen, wie zum Beispiel der
Diskreten Fouriertransformation (DFT), angewendet wird, vergrößert Overlap-Add
die Zahl der Bits, die zur Darstellung des Signals benötigt werden,
da der Teil des Signals im Überlappungsbereich
zweimal transformiert und übertragen
werden muss, einmal für
jeden der zwei überlappenden
Signalabtastwertblöcke.
Die Signalanalyse/-synthese ist für Systeme, die solch eine Transformation
mit Overlap-Add verwenden, nicht kritisch abgetastet. Der Ausdruck „kritisch
abgetastet" bezieht
sich auf eine Signalanalyse/-synthese, die über einen Zeitabschnitt dieselbe
Zahl von Frequenzkoeffizienten erzeugt, wie die Zahl der Eingangssignalabtastwerte,
die sie erhält.
Daher ist es für nichtkritisch
abgetastete Systeme wünschenswert,
das Fenster mit einem möglichst
kleinen Überlappungsbereich
zu entwerfen, um den Informationsbedarf des codierten Signals zu
minimieren.
-
Einige
Transformationen erfordern ferner, dass die synthetisierte Ausgabe
aus der inversen Transformation gefenstert wird. Das Synthesefenster
wird verwendet, um jeden synthetisierten Signalblock zu formen. Folglich
wird das synthetisierte Signal sowohl von einem Analyse- als auch
einem Synthesefenster gewichtet. Diese zweischrittige Gewichtung
ist mathematisch ähnlich
zur einmaligen Gewichtung des Originalsignals durch ein Fenster,
dessen Form gleich einem abtastwertweisen Produkt des Analyse- und
Synthesefensters ist. Folglich müssen,
um Overlap-Add zur Kompensation der Fensterverzerrung einzusetzen,
beide Fenster so entworfen werden, dass sich das Produkt der beiden über den
Overlap-Add Bereich hinweg zu Eins summiert.
-
Obwohl
es kein einzelnes Kriterium gibt, das verwendet werden kann, um
die Optimalität
des Fensters zu bewerten, wird ein Fenster im Allgemeinen als "gut" angesehen, wenn
die Selektivität
des mit dem Fenster benutzten Filters als "gut" angesehen
wird. Daher kann ein gut entworfenes Analysefenster (für Transformationen,
die nur ein Analysefenster verwenden) oder ein Analyse/Synthese-Filterpaar
(für Transformationen,
die sowohl ein Analysefenster als auch ein Synthesefenster verwenden)
den „Sidelobe-Verlust" verringern.
-
Blockumschaltung
-
Ein übliches
Lösungskonzept,
das sich mit dem Kompromiss zwischen Zeit- und Frequenzauflösung in
Transformationscodern mit fester Blocklänge befasst, ist die Verwendung
von Übergangserkennung
und Blocklängenumschaltung.
In diesem Lösungskonzept
werden die Anwesenheit und der Ort von Audiosignalübergängen erkannt,
wobei verschiedene Verfahren zur Übergangserkennung verwendet
werden. Wenn Übergangsaudiosignale
erkannt werden, die wahrscheinlich Vorstörungen einbringen, wenn sie
unter Verwendung einer langen Audiocoderblocklänge codiert werden, schaltet
der Niederbitraten-Coder von der effizienteren langen Blocklänge zu einer
weniger effizienten, kürzeren
Blocklänge.
Während
dies die Frequenzauflösung und
die Codierungseffizienz des codierten Audiosignals verringert, verringert
es auch die Länge
der durch den Codierprozess eingebrachten Übergangsvorstörung, wobei
die wahrgenommene Qualität
des Audios nach Niederbitratendecodierung verbessert wird. Techniken
zur Blocklängenumschaltung
sind in den
US-Patenten 5,394,473 ,
5,848,391 und
6,226,608 B1 offenbart.
Obwohl die vorliegende Erfindung Vorstörungen ohne die Komplexität und der
Nachteile von Blockumschaltung reduziert, kann sie zusammen mit
oder zusätzlich
zu Blockumschaltung eingesetzt werden.
-
Das
Dokument Vafin R et al. „Modifying
transients for efficient coding of audio", 2001 IEEE INTERNATIONAL CONFERENCE
ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING. PROCEEDINGS, 7.–11. Mai
2001, Seiten 3285–3288
offenbart die Veränderung
des Orts von geschätzten Übergängen in
einem parametrischen Audiocoder auf solche Weise, dass Übergänge nur
an Orten auftreten können,
die durch ein Raster festgelegt sind. Das Raster ist durch eine
eingeschränkte
Segmentierung bestimmt, wobei die Segmente durch ganzzahlige Vielfache
einer vorher festgelegten minimalen Segmentgröße bestimmt sind.
-
WO 00/45378 offenbart ein
Verfahren zur Spektraleinhüllenden-Codierung,
wobei in der Umgebung von Übergängen die
Zeitauflösung
auf Kosten der Frequenzauflösung
vergrößert wird.
Im Codiersystem, das Zeitsegmente eines Eingangssignals verarbeitet,
wird dies erreicht, indem die Länge
betroffener Zeitsegmente geändert
wird.
-
Offenbarung der Erfindung
-
In Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung umfasst ein Verfahren
zur Verringerung von Verzerrungsartefakten, welche einem Signalübergang
in einem Audiosignaldatenstrom vorangehen, im Anschluss an die inverse
Transformation in dem Decoder eines transformationsbasierten Niederbitraten-Audiocodiersystems,
welches Codierblöcke
einsetzt, die Modifikation der Zeitdauer von zumindest eines Teils
der Verzerrungsartefakte als Antwort auf Metadateninformation, so
dass die Zeitdauer der Verzerrungsartefakte verringert wird. Die
Metadateninformation schließt
den Ort von Übergängen ein.
-
Durch
solche Verarbeitung, die hierin als „Nachverarbeitung" bezeichnet wird,
können
Audioqualitätsverbesserungen
für jedes
Audiosignal erzielt werden, welches Niederbitraten-Audiocodierung
unterzogen wurde, unabhängig
ob Vorverarbeitung eingesetzt wird oder nicht. Ein beliebiges Audiosignal,
das Niederbitraten-Audiocodierung und -decodierung unterzogen wurde,
kann analysiert werden, um den Ort von Übergangssignalen zu bestimmen
und die Dauer der Übergangsvorstörungs-Artefakte
zu schätzen.
Dann kann Zeitskalen-Nachverarbeitung auf dem Audio durchgeführt werden,
so dass die Übergangssignalvorstörung entfernt oder
ihre Dauer verringert wird.
-
Es
gibt verschiedene Kompensationsverfahren zur Verringerung von Veränderungen
in der Zeitentwicklung des Audiostroms. Diese Zeitskalierungs-Kompensationsverfahren
haben auch das vorteilhafte Ergebnis, dass die Zahl von Audioabtastwerten
gleich gehalten wird.
-
Ein
erstes Zeitskalierungs-Kompensationsverfahren, das im Zusammenhang
mit Vorverarbeitung nützlich
ist, wird vor der Vorwärtstransformation
angewendet. Es wendet eine kompensierende Zeitskalierung auf den
dem Übergang
folgenden Audiostrom an, wobei die Zeitskalierung eine Richtung
hat, die entgegengesetzt zu der Richtung der Zeitskalierung ist,
die zur Verschiebung des Übergangsortes
eingesetzt wurde, und die bevorzugterweise im Wesentlichen dieselbe
Dauer wie die übergangsverschiebende
Zeitskalierung hat. Der Einfachheit der Erörterung halber wird diese Kompensation
hierin als „Abtastwertanzahl-Kompensation" bezeichnet, da sie
die Anzahl der Audioabtastwerte gleich halten kann, aber nicht in
der Lage ist, die ursprüngliche
Zeitentwicklung des Audiosignaldatenstroms völlig wiederherzustellen (sie
lässt den Übergang
und Teile des Signalstroms nahe des Übergangs zeitlich am falschen
Ort). Bevorzugterweise folgt die Zeitskalierung, die für Abtastwertanzahl-Kompensation
sorgt, nahe auf den Übergang,
so dass sie durch den Übergang
zeitlich nachmaskiert wird.
-
Obwohl
Abtastwertanzahl-Kompensation den Übergang verschoben von seiner
ursprünglichen
zeitlichen Position zurücklässt, stellt
sie den der kompensierenden Zeitskalierung folgenden Audiostrom
an seiner ursprünglichen
zeitlichen Position wieder her. Daher wird die Wahrscheinlichkeit
der Hörbarkeit
der Übergangs-Zeitverschiebung
verringert, wenngleich sie nicht beseitigt wird, da der Übergang
nach wie vor außerhalb
seiner ursprünglichen
Position ist. Dennoch kann dies für eine bedeutende Verringerung
in der Hörbarkeit sorgen
und es hat den Vorteil, dass es vor der Niederbitraten-Codierung
durchgeführt
wird, was die Verwendung eines üblichen,
unveränderten
Decoders erlaubt. Wie unten erklärt,
kann eine vollständige
Wiederherstellung der Zeitentwicklung des Audiosignalstroms nur
durch Verarbeitung im Decoder oder nach dem Decoder erreicht werden.
Zusätzlich
zu der Verringerung der Wahrscheinlichkeit der Hörbarkeit der Übergangs-Zeitverschiebung,
hat Zeitskalierungskompensation vor der Vorwärtstransformation den Vorteil,
dass die Zahl der Audioabtastwerte beibehalten wird, was wichtig
für die
Verarbeitung und/oder für
die Funktion der die Verarbeitung umsetzenden Hardware sein kann.
-
Um
optimale Zeitskalierungskompensation vor der Vorwärtstransformation
zur Verfügung
zu stellen, sollte Information bezüglich des Orts des Übergangs
und der zeitlichen Länge
der Übergangs-Zeitverschiebung
durch den Kompensationsprozess eingesetzt werden.
-
Wenn Übergangs-Zeitverschiebung
nach der Blockbildung (aber vor Anwendung der Vorwärtstransformation)
angewendet wird, ist es notwendig, Abtastwertanzahl-Kompensation
innerhalb desselben Blocks einzusetzen, in dem Übergangs-Zeitverschiebung ausgeführt wird,
um dieselbe Blocklänge
beizubehalten. Infolgedessen wird die Übergangs-Zeitverschiebung und
Abtastwertanzahl-Kompensation bevorzugt vor der Blockbildung ausgeführt.
-
Abtastwertanzahl-Kompensation
kann auch nach der inversen Transformation (entweder im Decoder oder
nach der Decodierung) in Verbindung mit Nachverarbeitung eingesetzt
werden. In diesem Fall kann Information, die nützlich für die Ausführung der Kompensation ist,
vom Decoder an den Kompensationsprozess gesendet werden (wobei diese
Information aus dem Coder und/oder dem Decoder stammen kann).
-
Eine
vollständigere
Wiederherstellung der Zeitentwicklung des Audiosignaldatenstroms
zusammen mit der Wiederherstellung der ursprünglichen Zahl von Audioabtastwerten
kann nach der inversen Transformation ausgeführt werden (entweder im Decoder
oder nach der Decodierung), indem eine kompensierende Zeitskalierung
auf den Audiostrom in der Richtung angewendet wird, die entgegengesetzt
zu der Richtung der Zeitskalierung ist, die zur Verschiebung des Übergangsorts
eingesetzt wurde, und die bevorzugterweise im Wesentlichen dieselbe
Dauer wie die übergangsverschiebende
Zeitskalierung hat. Der Einfachheit der Erörterung halber wird diese Kompensation
hierin als „Zeitentwicklungs-Kompensation" bezeichnet. Diese
zeitskalierende Kompensation hat den bedeutenden Vorteil, dass der
gesamte Audiostrom einschließlich
des Übergangs
an seiner ursprünglichen
relativen zeitlichen Position wiederhergestellt wird. Daher ist
die Wahrscheinlichkeit der Hörbarkeit
der Zeitskalierungs-Prozesse sehr verringert, wenn auch nicht beseitigt,
da die zwei Zeitskalierungs-Prozesse selbst hörbare Artefakte verursachen
können.
-
Um
optimale Zeitentwicklungs-Kompensation zur Verfügung zu stellen, sind verschiedene
Informationen nützlich,
wie zum Beispiel der Ort des Übergangs,
der Ort der Blockenden, die Länge
der Übergangs-Zeitverschiebung
und die Länge
der Vorstörung.
Die Länge
der Vorstörung
ist dabei nützlich,
um sicherzustellen, dass die Zeitskalierung der Zeitentwicklungs-Kompensation
nicht während
der Vorstörung
stattfindet, wodurch möglicherweise
die Zeitdauer der Vorstörung
ausgeweitet werden würde.
Die Länge
der Übergangs-Zeitverschiebung
ist nützlich,
wenn es erwünscht
ist, den Audiostrom an seiner ursprünglichen relativen Zeitposition wiederherzustellen
und die Zahl der Abtastwerte gleich zu halten. Der Ort des Übergangs
ist nützlich,
da die Länge
der Vorstörung
aus dem ursprünglichen
Ort des Übergangs
in Bezug auf die Enden der Codierblöcke bestimmt werden kann. Die
Länge der
Vorstörung
kann durch Messung eines Signalparameters, wie zum Beispiel von
Hochfrequenzanteilen, geschätzt
werden, oder es wird ein vorgegebener Standardwert eingesetzt. Wenn
die Kompensation im Decoder oder nach der Decodierung durchgeführt wird,
kann nützliche
Information als Metadaten zusammen mit dem codierten Audio durch
den Coder gesendet werden. Wenn sie nach der Decodierung durchgeführt wird,
können
Metadaten vom Decoder zum Kompensationsprozess gesendet werden (wobei
diese Information aus dem Coder und/oder dem Decoder stammen kann).
-
Wie
oben erwähnt,
kann Nachverarbeitung zur Verringerung der Länge des Vorstörungs-Artefakts ebenso
als zusätzlicher
Schritt zu einem Audiocoder angewendet werden, der zeitskalierende
Vorverarbeitung durchführt
und optional Metadateninformation zur Verfügung stellt. Solche Nachverarbeitung
würde als
eine zusätzliche
Qualitätsverbesserungsmaßnahme wirken,
indem Vorstörungen
verringert werden, die nach der Vorverarbeitung noch übrig bleiben
können.
-
Vorverarbeitung
kann in Codersystemen bevorzugt werden, die professionelle Coder
einsetzen, in denen Kosten, Komplexität und Zeitverzögerung im
Vergleich zu Nachverarbeitung in Verbindung mit einem Decoder, der
typischerweise ein Konsumentengerät niedrigerer Komplexität ist, verhältnismäßig unerheblich
sind.
-
Das
Niederbitraten-Audiocodiersystem-Qualitätsverbesserungsverfahren der
vorliegenden Erfindung kann durch Verwendung deines geeigneten Zeitskalierungs-Verfahrens
realisiert werden. Ein geeignetes Verfahren ist in der internationalen
Patentanmeldung PCT/US02/04317, eingereicht am 12. Februar 2002,
mit dem Titel High-Quality Time-Scaling and Pitch-Scaling of Audio
Signals, beschrieben. Diese Anmeldung benennt die Vereinigten Staaten
und andere Staaten. Wie oben erörtert,
kann Zeitskalierung, da Zeitskalierung und Tonhöhenskalierung zueinander duale
Verfahren sind, auch durch irgendein geeignetes Tonhöhenskalierungs-Verfahren
sowie durch irgendeines, das zukünftig
verfügbar
sein könnte,
realisiert werden. Tonhöhenskalierung,
gefolgt vom Auslesen der Audioabtastwerte mit einer geeigneten Rate,
die sich von der Eingangsabtastrate unterscheidet, resultiert in
einer zeitskalierten Version des Audiosignals mit demselben spektralen
Inhalt bzw. derselben Tonhöhe
des Original-Audiosignals und ist auf die vorliegende Erfindung
anwendbar.
-
Wie
in der Zusammenfassung des Hintergrunds von Niederbitraten-Audiocodierung
erörtert,
ist die Auswahl der Blocklänge
in einem Audiocodiersystem ein Kompromiss zwischen Frequenz- und
Zeitauflösung. Im
Allgemeinen wird eine längere
Blocklänge
bevorzugt, da sie im Vergleich zu einer kürzeren Blocklänge erhöhte Effizienz
des Coders bietet (im Allgemeinen eine höhere wahrgenommene Audioqualität mit einer
verringerten Anzahl an Datenbits bietet). Jedoch wiegen Übergangssignale
und die von ihnen erzeugten Vorstörungssignale den Qualitätsgewinn
längerer
Blocklängen
auf, indem sie hörbare
Verschlechterungen einbringen. Aus diesem Grund werden Blockumschaltung
oder feste, kleinere Blocklängen
in praktischen Anwendungen von Niederbitraten-Audiocodern verwendet.
Jedoch kann die Anwendung von zeitskalierender Vorverarbeitung auf
Audiodaten, die Niederbitraten-Audiocodierung unterzogen werden
sollen und/oder Nachverarbeitung unterzogen wurden, die Dauer von Übergangsvorstörungen verringern.
Dies ermöglicht
die Verwendung langer Audiocodierblocklängen, wodurch erhöhte Codierungseffizienz
zur Verfügung gestellt
wird und die wahrgenommene Audioqualität verbessert wird, ohne adaptiv
Blocklängen
umzuschalten. Jedoch kann die Verringerung der Vorstörung gemäß der vorliegenden
Erfindung auch in Codiersystemen eingesetzt werden, die Blocklängenumschaltung
einsetzen. In solchen Systemen können
sogar für
die kleinste Fenstergröße einige
Vorstörungen
vorhanden sein. Je größer das
Fenster, desto länger
und infolgedessen hörbarer
sind die Vorstörungen.
Typische Übergänge sorgen
für ungefähr 5 ms
Vormaskierung, was sich zu 240 Abtastwerte bei einer 48 kHz Abtastrate
umrechnet. Wenn ein Fenster größer als
256 Abtastwerte ist, was in einer Blockumschaltungsanordnung üblich ist,
sorgt die Erfindung für
einige Vorteile.
-
Audiocodierungs-Übergangsvorstörungs-Artefakte
-
1a–1e zeigen
Beispiele von Übergangsvorstörungs-Artefakten,
die durch ein Audiocodersystem fester Blocklänge erzeugt wurden. 1a zeigt
sechs, zu 50% überlappende,
gefensterte Blöcke
der Audiocodierung 1 bis 6 mit fester Länge. In dieser Figur und allen
anderen Figuren hierin hängt
jedes Fenster direkt mit einem Audiocodierblock zusammen und wird
als ein „gefensterter
Block", „Fenster" oder "Block" bezeichnet. In dieser
Figur und bestimmten anderen Figuren hierin sind die Fenster im
Allgemeinen in der Form eines Kaiser-Sessel-Fensters gezeigt. Andere
Figuren zeigen der Einfachheit der Darstellung halber Fenster in
der Form von Halbkreisen. Die Fensterform ist nicht entscheidend
für die
vorliegende Erfindung. Obwohl die Länge der gefensterten Blöcke in 1a und
anderen Figuren nicht entscheidend für die Erfindung ist, haben gefensterte
Blöcke
fester Länge
typischerweise eine Länge
im Bereich von 256 bis 2048 Abtastwerten. Die vier Audiosignalbeispiele
in 1b bis 1e veranschaulichen
jeweils die Auswirkungen von Zeitbeziehungen zwischen den gefensterten
Blöcken
der Audiocodierung und den Übergangsvorstörungs-Artefakten.
-
1b veranschaulicht
die Beziehung zwischen dem Ort eines Übergangssignals in einem zu
codierenden Eingangsaudiostrom und den Rändern der zu 50% überlappenden,
gefensterten Blöcke.
Obwohl eine zu 50% überlappende,
feste Blocklänge
gezeigt wird, ist die Erfindung auf Codiersysteme sowohl fester
als auch variabler Blocklänge
und auf Blöcke
anwendbar, die eine andere als eine 50%-ige Überlappung einschließlich keiner Überlappung
haben, wie es unten in Zusammenhang mit 2a bis 5b erörtert wird.
-
1c zeigt
den Audiosignalstromausgang des Audiocodiersystems für den Fall
eines Audiosignalstromeingangs, wie in 1b gezeigt.
Wie in 1b und 1c gezeigt,
befindet sich der Übergang
zwischen dem Ende des gefensterten Blocks 3 und dem Ende des gefensterten
Blocks 4. 1c veranschaulicht den Ort und
die Länge
der Übergangsvorstörung, die
durch den Niederbitraten-Audiocodierprozess eingebracht wird, in
Bezug auf den Ort des Übergangs
und dem Ende des gefensterten Blocks 2. Zu beachten ist, dass die
Vorstörung
vor dem Übergang
ist und begrenzt auf die gefensterten Blöcke 4 und 5 ist, die Abtastwertblöcke, in
denen der Übergang
liegt. Daher erstreckt sich die Vorstörung zurück zu dem Anfang des gefensterten
Blocks 4.
-
In
gleicher Weise wie 1b und 1c zeigen 1d beziehungsweise 1e die
Beziehung zwischen einem Eingangsaudiosignalstrom, der einen Übergang
enthält,
der sich zwischen dem Ende des gefensterten Blocks 2 und dem Ende
des gefensterten Blocks 3 befindet, und der Vorstörung, die
durch das Audiocodiersystem in den Ausgangsaudiosignalstrom eingebracht
wird. Da die Vorstörung
auf die gefensterten Blöcke
3 und 4 begrenzt ist, innerhalb denen der Übergang liegt, erstreckt sich
die Vorstörung
zurück
zu dem Anfang des gefensterten Blocks 3. In diesem Fall hat die
Vorstörung
eine längere
Dauer, da der Übergang
näher dem
Ende des gefensterten Blocks 3 ist, als der Übergang von 1b und 1c zu
dem Ende des gefensterten Blocks 4. Die ideale Übergangsposition liegt dicht
nach dem vorigen Blockende, so dass sich die Vorstörung nur
bis zum nächsten
davorliegenden Blockende erstreckt (ungefähr die Hälfte der Blocklänge im Fall
dieses Beispiels mit 50%-iger Blocküberlappung).
-
Es
sollte beachtet werden, dass die Beispiele in 1a–1e die
Auswirkungen von Überblendung an
den Grenzen der Codierungsfenster nicht explizit berücksichtigen.
Im Allgemeinen werden die Vorstörungs-Artefakte,
da die Audiocodierungsfenster auslaufen, entsprechend skaliert und
ihre Hörbarkeit
verringert. Der Einfachheit der Darstellung halber ist die Skalierung
der Vorstörungs-Artefakte
in den gezeigten idealisierten Wellenformen der Figuren hierin nicht
gezeigt.
-
Wie
in 1a–1e nahegelegt
und in weiteren Einzelheiten in 2A, 2B, 3A, 3B, 4A, 4B, 5A und 5B gezeigt,
können
Vorstörungs-Artefakte
eines Audiocoders minimiert werden, wenn der Ort von Übergangssignalen
vor der Audiocodierung vernünftig
positioniert wird.
-
Beispiele
von Neupositionierung des Orts eines Übergangs zur Verringerung der
Vorstörung
sind in 2a, 2b, 3a, 3b, 4a, 4b, 5a und 5b für die Fälle von
nichtüberlappenden Blöcken (2a und 2b),
weniger als 50%-iger Blocküberlappung
(3a und 3b), 50%-iger
Blocküberlappung
(4a und 4b) und
mehr als 50%-iger Blocküberlappung
(5a und 5b) gezeigt.
In jedem Fall ist es vorzuziehen, außer wenn der ursprüngliche
Ort des Übergangs
gleich wert von zwei aufeinanderfolgenden Blockenden entfernt ist
(in diesem Fall gibt es keine Präferenz),
den Übergang
zu einem Ort dicht nach dem nächstgelegenen
Blockende zu verschieben. Ob die Verschiebung zu dem vorausgehenden Blockende
oder zu dem nächsten
Blockende stattfindet, unabhängig
davon, ob es das nächstgelegene
Blockende ist oder nicht, die sich ergebende Vorstörung ist
im Wesentlichen dieselbe. Jedoch wird durch zeitliche Verschiebung
des Übergangs
an eine Position dicht nach dem nächstgelegenen Blockende die
Störung
der Zeitentwicklung des Audiostroms minimiert, wodurch die mögliche Hörbarkeit
der Verschiebung des Übergangs
minimiert wird. Dennoch kann in einigen Fällen auch die Verschiebung
zu dem entfernteren Blockende nicht hörbar sein. Außerdem kann,
selbst wenn eine Verschiebung zum entfernteren Blockende hörbar ist,
Zeitentwicklungs-Kompensation eingesetzt werden, wie oben beschrieben,
um derartige Hörbarkeit
zu verringern oder vollständig
zu unterdrücken.
-
2a und 2b zeigen
eine Folge von idealisierten, nichtüberlappenden, gefensterten
Blöcken.
In 2a ist der Anfangsort des Übergangs, wie durch den Pfeil
mit der durchgezogenen Linie gezeigt, näher am vorigen Fensterende
als am nächsten
Fensterende. Die Vorstörung
für den
Anfangsort des Übergangs
erstreckt sich in der Zeit, wie gezeigt, bis zum Ende des Anfangs
des Fensters zurück.
Wenn es erwünscht
ist, das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er, wie gezeigt, nach „links" (zurück in der Zeit) an einen Ort
dicht nach dem Ende des vorigen gefensterten Blocks verschoben werden.
Obwohl sich die sich ergebende Vorstörung nach wie vor bis zum Anfang
des gefensterten Blocks zurück
erstreckt, ist diese Länge
verglichen mit der sich aus dem Anfangsort des Übergangs ergebenden Vorstörung sehr
kurz. In dieser und anderen Figuren ist der Abstand des verschobenen Übergangs
vom Ende des gefensterten Blocks der Deutlichkeit der Darstellung
halber übertrieben.
In 2b ist der Anfangsort des Übergangs näher am nächsten Fensterende als am vorhergehenden
Fensterende. Wenn es erwünscht
ist, das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er demnach, wie gezeigt, nach „rechts" (später in der
Zeit) an einen Ort dicht nach dem Ende des nächsten gefensterten Blocks
verschoben werden. Es ist festzuhalten, dass die Verbesserung in
der Verringerung der Vorstörung
umso größer wird,
je später
der Anfangsort des Übergangs in
dem gefensterten Block ist.
-
3a und 3b zeigen
eine Folge von idealisierten, gefensterten Blöcken, die zu weniger als 50% überlappen.
In 3a ist der Anfangsort des Übergangs, wie durch den Pfeil
mit der durchgezogenen Linie gezeigt, näher am vorigen Fensterende
als am nächsten
Fensterende. Die Vorstörung
für den
Anfangsort des Übergangs
erstreckt sich in der Zeit, wie gezeigt, bis zum Ende des Anfangs
des Fensters zurück.
Wenn es erwünscht
ist, das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er, wie gezeigt, nach „links" an einen Ort dicht nach dem Ende des
vorigen gefensterten Blocks verschoben werden. Die sich ergebende
Vorstörung
erstreckt sich nach wie vor bis zum Anfang des gefensterten Blocks
zurück,
aber diese Länge
ist verglichen mit der sich aus dem Anfangsort des Übergangs
ergebenden Vorstörung
kurz. In 3b ist der Anfangsort des Übergangs
näher am
nächsten
Fensterende als am vorhergehenden Fensterende. Wenn es erwünscht ist,
das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er demnach, wie gezeigt, nach „rechts" an einen Ort dicht
nach dem Ende des nächsten
gefensterten Blocks verschoben werden. Es ist festzuhalten, dass
die Verbesserung in der Verringerung der Vorstörung umso größer wird,
je später
der Anfangsort des Übergangs
in dem Bereich zwischen aufeinanderfolgenden gefensterten Blöcken ist.
-
4a und 4b zeigen
eine Folge von idealisierten, gefensterten Blöcken, die zu 50% überlappen. In 4a ist
der Anfangsort des Übergangs,
wie durch den Pfeil mit der durchgezogenen Linie gezeigt, näher am vorigen
Fensterende als am nächsten
Fensterende. Die Vorstörung
für den
Anfangsort des Übergangs
erstreckt sich in der Zeit, wie gezeigt, bis zum Ende des Anfangs
des Fensters zurück.
Wenn es erwünscht
ist, das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er, wie gezeigt, nach links" an einen Ort dicht
nach dem Ende des vorigen gefensterten Blocks verschoben werden.
Die sich ergebende Vorstörung erstreckt
sich nach wie vor bis zum Anfang des gefensterten Blocks zurück, aber
diese Länge
ist kürzer
als die sich aus dem Anfangsort des Übergangs ergebende Vorstörung. In 4b ist
der Anfangsort des Übergangs näher am nächsten Fensterende
als am vorhergehenden Fensterende. Wenn es erwünscht ist, das Ausmaß der Zeitverschiebung
des Übergangs
zu minimieren, sollte er demnach, wie gezeigt, nach „rechts" an einen Ort dicht
nach dem Ende des nächsten
gefensterten Blocks verschoben werden. Es ist festzuhalten, dass
die Verbesserung in der Verringerung der Vorstörung umso größer wird,
je später
der Anfangsort des Übergangs in
dem Bereich zwischen aufeinanderfolgenden gefensterten Blöcken ist,
wie im Fall von weniger als zu 50% überlappenden Blöcken.
-
5a und 5b zeigen
eine Folge von idealisierten, gefensterten Blöcken, die zu mehr als 50% überlappen.
In 5a ist der Anfangsort des Übergangs, wie durch den Pfeil
mit der durchgezogenen Linie gezeigt, näher am vorigen Fensterende
als am nächsten
Fensterende. Die Vorstörung
für den
Anfangsort des Übergangs
erstreckt sich in der Zeit, wie gezeigt, bis zum Ende des Anfangs
des Fensters zurück.
Wenn es erwünscht
ist, das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er, wie gezeigt, nach „links" an einen Ort dicht nach dem Ende des
vorigen gefensterten Blocks verschoben werden. Die sich ergebende
Vorstörung
erstreckt sich nach wie vor bis zum Anfang des gefensterten Blocks
zurück,
aber diese Länge
ist nach wie vor etwas kürzer
als die sich aus dem Anfangsort des Übergangs ergebende Vorstörung. In 5b ist
der Anfangsort des Übergangs
näher am
nächsten
Fensterende als am vorhergehenden Fensterende. Wenn es erwünscht ist,
das Ausmaß der
Zeitverschiebung des Übergangs
zu minimieren, sollte er demnach, wie gezeigt, nach „rechts" an einen Ort dicht
nach dem Ende des nächsten
gefensterten Blocks verschoben werden. Es ist festzuhalten, dass
die Verbesserung in der Verringerung der Vorstörung umso größer wird, je
später
der Anfangsort des Übergangs
in dem Bereich zwischen aufeinanderfolgenden gefensterten Blöcken ist,
wie im Fall von zu 50% überlappenden
Blöcken.
-
Es
ist festzuhalten, dass die Verbesserung in der Verringerung der
Vorstörung
für nichtüberlappende Blöcke am größten ist
und abnimmt, wenn das Ausmaß der
Blocküberlappung
zunimmt.
-
Beschreibung der Zeichnungen
-
1a–1e sind
eine Folge von idealisierten Wellenformen, die Beispiele von Übergangsvorstörungs-Artefakten
veranschaulichen, die durch ein Audiocodiersystem fester Blocklänge für zwei Fälle von
Eingangssignalbedingungen erzeugt werden.
-
2a und 2b zeigen
eine Folge von idealisierten, nichtüberlappenden, gefensterten
Blöcken, die
die anfänglichen
und verschobenen Übergangs-Zeitorte
zusammen mit der Vorstörung
für solche
Orte, für den
Fall eines Anfangsorts näher
am vorigen Fensterende als am nächsten
Fensterende beziehungsweise für den
Fall eines Anfangsorts näher
am nächsten
Fensterende als am vorhergehenden Fensterende veranschaulichen.
-
3a und 3b zeigen
eine Folge von idealisierten, zu weniger als 50% überlappenden,
gefensterten Blöcken,
die die anfänglichen
und verschobenen Übergangs-Zeitorte
zusammen mit der Vorstörung
für solche
Orte, für
den Fall eines Anfangsorts näher
am vorigen Fensterende als am nächsten
Fensterende beziehungsweise für
den Fall eines Anfangsorts näher
am nächsten
Fensterende als am vorhergehenden Fensterende veranschaulichen.
-
4a und 4b zeigen
eine Folge von idealisierten, zu 50% überlappenden, gefensterten
Blöcken, die
die anfänglichen
und verschobenen Übergangs-Zeitorte
zusammen mit der Vorstörung
für solche
Orte, für den
Fall eines Anfangsorts näher
am vorigen Fensterende als am nächsten Fensterende
beziehungsweise für den
Fall eines Anfangsorts näher
am nächsten
Fensterende als am vorhergehenden Fensterende veranschaulichen.
-
5a und 5b zeigen
eine Folge von idealisierten, zu mehr als 50% überlappenden, gefensterten Blöcken, die
die anfänglichen
und verschobenen Übergangs-Zeitorte
zusammen mit der Vorstörung
für solche Orte,
für den
Fall eines Anfangsorts näher
am vorigen Fensterende als am nächsten
Fensterende beziehungsweise für
den Fall eines Anfangsorts näher
am nächsten
Fensterende als am vorhergehenden Fensterende veranschaulichen.
-
6 ist
ein Flussdiagramm, das Schritte zur Verringerung der Übergangsvorstörungs-Artefakte durch
Zeitskalierung vor der Niederbitraten-Codierung zeigt.
-
7 ist
eine abstrakte Darstellung eines Eingangsdatenpuffers, der zur Übergangserkennung
verwendet wird.
-
8a–8e sind
eine Folge von idealisierten Wellenformen, die ein Beispiel von
Audiozeitskalierungs-Vorverarbeitung veranschaulichen, wenn ein Übergang
in einem Audiocodierblock vorhanden ist und sich näher am vorigen
Ende des gefensterten Blocks als am nächsten Ende des gefensterten
Blocks befindet.
-
9a–9e sind
eine Folge von idealisierten Wellenformen, die ein Beispiel von
Audiozeitskalierungs-Vorverarbeitung veranschaulichen, wenn ein Übergang
in einem gefensterten Audiocodierblock vorhanden ist und sich ungefähr T Abtastwerte
vor einem Blockende befindet.
-
10a–10d sind eine Folge von idealisierten Wellenformen,
die Zeitskalierung für
den Fall von mehreren Übergängen veranschaulichen.
-
11a–11f sind eine Folge von idealisierten Wellenformen,
die intelligente Zeitentwicklungs-Kompensation unter Verwendung von im
Audiostrom übertragenen
Metadaten veranschaulichen.
-
12 ist
ein Flussdiagramm von Zeitskalierungs-Nachverarbeitung in Verbindung
mit einem Niederbitraten-Audiodecoder.
-
13a–13c sind eine Folge von idealisierten Wellenformen,
die ein Beispiel von Nachverarbeitung für einen einzelnen Übergang
veranschaulichen, um die nach der Decodierung vorhandenen Vorstörungs-Artefakte
zu verringern.
-
14 ist
ein Flussdiagramm eines Nachverarbeitungs-Prozesses für die Verbesserung
der wahrgenommenen Qualität
von Audio, welches Niederbitratencodierung ohne Zeitskalierungs-Vorverarbeitung unterzogen
wurde.
-
15a–15c sind eine Folge von idealisierten Wellenformen,
die die Technik der Verwendung eines vorgegebenen Standardwerts
veranschaulichen, um das Audio vor jedem Übergang zeitzu skalieren, um eine
Vorstörung
ohne Durchführung
von Abtastwertanzahl-Kompensation zu verringern.
-
16a–16c sind eine Folge von idealisierten Wellenformen,
die die Technik der Verwendung einer berechneten Vorstörungsdauer
veranschaulichen, um das Audio vor jedem Übergang zeitzuskalieren, um die
Vorstörungsdauer
mit Abtastwertanzahl- und Zeitentwicklungs-Kompensation zu verringern.
-
Beste Ausführungsweise der Erfindung
-
Übersicht über Zeitskalierungs-Vorverarbeitung
-
6 ist
ein Flussdiagramm, das ein Verfahren zur Zeitskalierung von Audio
vor Niederbitraten-Audiocodierung
veranschaulicht, um die Höhe
von Übergangsvorstörungen zu
verringern (das heißt „Vorverarbeitung"). Dieses Verfahren
verarbeitet das Eingangsaudio in Blöcken von N Abtastwerten, wobei
N einer Zahl größer als
oder gleich der Zahl von im Audiocodierungsblock verwendeten Audioabtastwerten
entsprechen kann. Verarbeitungsgrößen, bei denen N größer als
die Größe des Audiocodierblocks
ist, können
wünschenswert
sein, um zusätzliche
Audiodaten außerhalb
des Audiocodierblocks für
die Verwendung in der Zeitskalierungs-Verarbeitung zur Verfügung zu
stellen. Diese zusätzlichen
Daten können
beispielsweise verwendet werden, um Abtastwertanzahlkompensation
für Zeitskalierungs-Verarbeitung,
die zur Verbesserung des Orts eines Übergangs durchgeführt wurde,
auszuführen.
-
Der
erste Schritt 202 in dem Prozess von 6 überprüft die Verfügbarkeit
von N Audiodatenabtastwerten für
Zeitskalierungs-Verarbeitung. Diese Audiodatenabtastwerte können beispielsweise
aus einer Datei auf einer auf einem PC befindlichen Festplatte oder
einem Datenpuffer in einer Hardwarevorrichtung stammen. Die Audiodaten
können
auch durch einen Niederbitraten-Audiocodierungsprozess, der das
Zeitskalierungsgerät
vor der Audiocodierung aufruft, zur Verfügung gestellt werden. Wenn
N Audiodatenabtastwerte verfügbar sind,
werden sie an den Zeitskalierungs-Vorverarbeitungsprozess weitergegeben
(Schritt 204) und von ihm in den folgenden Schritten verwendet.
-
Der
dritte Schritt 206 in dem Vorverarbeitungsprozess ist die
Erkennung des Orts von Audiodaten-Übergangssignalen,
die wahrscheinlich Vorstörungs-Artefakte
einbringen. Viele verschiedene Prozesse sind für die Durchführung dieser
Funktion verfügbar
und die konkrete Realisierung ist nicht entscheidend, solange sie
für genaue
Erkennung von Übergangssignalen
sorgt, die wahrscheinlich Vorstörungs-Artefakte
einbringen. Viele Audiocodierungsprozesse führen Audiosignal-Übergangserkennung durch und
dieser Schritt kann übersprungen
werden, wenn der Audiocodierungsprozess die Übergangsinformation dem nachfolgenden
Zeitskalierungs-Verarbeitungsblock 210 zusammen mit den
Eingangsaudiodaten zur Verfügung
stellt.
-
Übergangserkennung
-
Ein
geeignetes Verfahren für
die Durchführung
von Audiosignal-Übergangserkennung
ist wie folgt. Der erste Schritt in der Übergangserkennungsanalyse ist,
die Eingangsdaten zu filtern (wobei die Datenabtastwerte als eine
Zeitfunktion behandelt werden). Die Eingangsdaten können beispielsweise
mit einem IIR-Hochpassfilter 2. Ordnung mit einer 3 dB Grenzfrequenz
von ungefähr
8 kHz gefiltert werden. Die Filtereigenschaften sind nicht entscheidend.
Die gefilterten Daten werden dann in der Übergangsanalyse verwendet.
Das Filtern der Eingangsdaten isoliert die hochfrequenten Übergänge und
macht sie einfacher zu identifizieren. Als Nächstes werden, wie in 7 gezeigt,
die gefilterten Eingangsdaten in vierundsechzig Unterblöcken (in
dem Fall eines Signalabtastwertblocks mit 4096 Abtastwerten) von
ungefähr
1,5 ms (oder 64 Abtastwerten bei 44,1 kHz) verarbeitet. Obwohl die
tatsächliche
Größe des Verarbeitungs-Unterblocks
nicht auf 1,5 ms beschränkt ist
und variieren kann, stellt diese Größe einen guten Kompromiss zwischen
Echtzeitanforderungen (da größere Blockgrößen weniger
Verarbeitungsoverhead benötigen)
und Auflösung
des Übergangsorts
(kleinere Blöcke
stellen genauere Information über
den Ort von Übergängen bereit)
dar. Die Verwendung von Signalabtastwertblöcken mit 4096 Abtastwerten
und die Verwendung von Unterblöcken
mit 64 Abtastwerten ist lediglich ein Beispiel und ist nicht wesentlich
für die
Erfindung.
-
Der
nächste
Schritt der Übergangserkennungs-Verarbeitung
ist, eine Tiefpassfilterung der größten in jedem 64-Abtastwert-Unterblock
enthaltenen Absolutdatenwerten durchzuführen. Diese Verarbeitung wird durchgeführt, um
die größten Absolutdaten
zu glätten
und einen allgemeinen Hinweis auf die durchschnittlichen Spitzenwerte
in dem Eingabepuffer bereitzustellen, mit denen der gegenwärtige Unterpuffer-Spitzenwert verglichen
werden kann. Das unten beschriebene Verfahren ist ein Verfahren,
die Glättung
auszuführen.
-
Um
die Daten zu glätten,
wird jeder 64-Abtastwert-Unterblock nach dem größten Absolutdatensignalwert
durchsucht. Der größte Absolutdatensignalwert
wird dann verwendet, um einen geglätteten, gleitenden Spitzenmittelwert
zu berechnen. Die gefilterten, hochfrequenten Mittelwerte für jeden
k-ten Unterpuffer, beziehungsweise hi_mavg(k), werden unter Verwendung
der Gleichungen 1 und 2 berechnet.
wobei zur stetigen Verarbeitung
hi_mavg(0) gleich hi_mavg(64) aus dem vorhergehenden Eingangspuffer
gesetzt wird. In der vorliegenden Realisierung ist der Parameter
AVG_WHT gleich 0,25 gesetzt. Dieser Wert wurde nach experimenteller
Analyse unter Verwendung einer großen Auswahl gebräuchlichen
Audiomaterials festgelegt.
-
Als
Nächstes
vergleicht die Übergangserkennungs-Verarbeitung
den Höchstwert
in jedem Unterblock mit dem Feld von geglätteten, gleitenden Spitzenmittelwerten,
um zu bestimmen, ob ein Übergang
vorhanden ist. Obwohl eine Anzahl von Verfahren vorhanden ist, um
diese zwei Maße
zu vergleichen, wurde der unten dargestellte Ansatz gewählt, da
er die Abstimmung des Vergleichs durch Verwendung eines Skalierungsfaktors
erlaubt, der eingestellt wurde, um optimale Leistung zu erbringen,
wie durch Analyse einer großen
Auswahl von Audiosignalen bestimmt wurde.
-
Der
Spitzenwert der gefilterten Daten im k-ten Unterblock wird mit dem
Hochfrequenz-Skalierungswert HI_FREQ_SCALE multipliziert und mit
dem berechneten geglätteten,
gleitenden Spitzenmittelwert für
jedes k verglichen. Wenn ein skalierter Spitzenwert des Unterblocks
größer als
der gleitende Mittelwert ist, wird markiert, dass ein Übergang
vorhanden ist. Diese Vergleiche werden unten in Gleichungen 3 und
4 dargestellt.
-
Auf
die Übergangserkennung
folgend werden mehrere korrigierende Überprüfungen durchgeführt, um zu
bestimmen, ob die Übergangsmarkierung
für einen
64-Abtastwert-Unterblock widerrufen werden soll (zurückgesetzt
von TRUE zu FALSE). Diese Überprüfungen werden
durchgeführt,
um falsche Übergangserkennungen
zu verringern. Erstens wird der Übergang
dann gelöscht,
wenn die Hochfrequenz-Spitzenwerte unter einen minimalen Spitzenwert
fallen (um Übergänge mit
niedrigen Pegeln zu adressieren). Zweitens wird der Übergang
in dem aktuellen Unterblock dann gelöscht, wenn der Höchstwert
in einem Unterblock einen Übergang
auslöst,
aber nicht wesentlich größer als
der vorhergehende Unterblock ist, der auch eine Übergangsmarkierung ausgelöst hätte. Dies
verringert ein Verschmieren der Information über den Ort eines Übergangs.
-
Wieder
auf 6 bezugnehmend, ist der nächste Schritt 208 in
der Verarbeitung, zu bestimmen, ob Übergänge in dem aktuellen N-Abstastwert
Eingangsdatenfeld vorhanden sind. Wenn keine Übergänge vorhanden sind, können die
Eingangsdaten ausgegeben werden (oder zu einem Niederbitraten-Audiocoder
zurückgegeben
werden), ohne dass Zeitskalierungs-Verarbeitung durchgeführt wird.
Wenn Übergänge vorhanden
sind, werden die Zahl der Übergänge, die
in den aktuellen N Abtastwerten der Audiodaten vorhanden sind, und
ihr(e) Ort(e) an den Audiozeitskalierungs-Verarbeitungsteil 210 des
Prozesses zur zeitlichen Veränderung der
Eingangsaudiodaten weitergegeben. Das Ergebnis geeigneter Zeitskalierungs-Verarbeitung
wird in Verbindung mit der Beschreibung von 8a–8e beschrieben.
Es sei angemerkt, dass der Prozess Information vom Coder über beispielsweise
die Lage der gefensterten Abtastwertblöcke bezüglich des Audiodatenstroms
benötigt.
Wenn wahlweise Zeitskalierungs-Metadateninformation ausgegeben wird
(wie in 6 gezeigt), würde dies
für den
Fall keiner Übergänge anzeigen,
dass keine Vorverarbeitung durchgeführt wurde. Zeitskalierungs-Metadaten
können
zum Beispiel Zeitskalierungs-Parameter einschließen, wie zum Beispiel den Ort
und das Ausmaß der
durchgeführten
Zeitskalierung, und, wenn Überblendung
von verbundenen Audiosegmenten durch die Zeitskalierungs-Technik
eingesetzt wird, die Überblendungslänge. Metadaten
in dem codierten Audiostrom können
auch Information über Übergänge einschließen, einschließlich ihres
Ortes nach und/oder vor und nach Zeitverschiebung. Die Audiodaten
werden in Schritt 212 ausgegeben.
-
Audiovorverarbeitung
-
8a–8e veranschaulichen
ein Beispiel von Audiozeitskalierungs-Vorverarbeitung, wenn ein Übergang
in einem Audiocodierblock vorhanden ist und sich näher am Ende
des vorigen gefensterten Blocks als am Ende des nächsten gefensterten
Blocks befindet. Für
dieses Beispiel wurde von einer 50%-igen Blocküberlappung in der Art von 1a–1e und 4a und 4b ausgegangen.
Wie vorher erörtert,
ist es wünschenswert,
um das Ausmaß der
durch Niederbitraten-Audiocodierung eingebrachten Vorstörung zu
verringern, die Zeitentwicklung des Eingangsaudiosignals so anzupassen,
dass sich der Audiosignalübergang dicht
nach dem Ende des vorigen gefensterten Blocks befindet. Solch eine
Verschiebung des Übergangs
ist bevorzugt, da sie die Störung
der Zeitentwicklung des Signalstroms minimiert, während die
Länge der Übergangsvorstörung optimal
begrenzt wird. Jedoch begrenzt, wie oben erörtert, auch eine Verschiebung
zu einem Ort dicht nach dem Ende des nächsten gefensterten Blocks
die Länge
der Übergangsvorstörung optimal,
aber minimiert nicht die Störung
der Zeitentwicklung des Signalstroms. In einigen Fällen kann
der Unterschied in der Störung
von geringer oder keiner hörbaren
Bedeutung sein, besonders wenn auch Zeitentwicklungs-Kompensation
eingesetzt wird. Daher wird in dem vorliegenden Beispiel und anderen
Beispielen hierin eine Verschiebung zu einem der beiden nächstgelegenen
Blockenden betrachtet. Wie oben erwähnt, muss die übergangszeitverschiebende
Zeitskalierung nicht innerhalb eines einzelnen Blocks ausgeführt werden,
außer wenn
die Verarbeitung durchgeführt
wird, nachdem der Audiosignalstrom durch den Coder in Blöcke aufgeteilt wurde.
-
8a zeigt
drei aufeinanderfolgende, zu 50% überlappende, gefensterte Codierblöcke. 8b zeigt die
Beziehung zwischen dem ursprünglichen
Eingangsaudiodatenstrom, der einen einzelnen Übergang enthält, und
den gefensterten Audiocodierblöcken.
Der Beginn des Übergangs
ist T Abtastwerte nach dem Ende des vorhergehenden Blocks. Da der Übergang
näher am
vorhergehenden Blockende ist als am nächsten Blockende, ist es bevorzugt,
den Übergang
nach links zu einem Ort dicht nach dem vorhergehenden Blockende zu
verschieben, indem Zeitkompression angewendet wird, die die Auswirkung
hat, dass T Abtastwerte vor dem Übergang
gelöscht
werden. 8c zeigt zwei Bereiche in dem
Audiostrom, wo Audiozeitskalierung durchgeführt werden kann. Der erste
Bereich entspricht den Audioabtastwerten vor dem Übergang,
wo die Verringerung der Dauer des Audios um T Abtastwerte die Position
des Übergangs
nach links an den erwünschten
Ort dicht nach dem vorhergehenden Blockende „rutscht" oder verschiebt, indem Zeitkompression
zur Verfügung gestellt
wird. Wie in 2A bis 5B und
anderen zu beschreibenden Figuren ist der Abstand des Übergangs
vom Blockende in 8d und 8e in
der Figur der Deutlichkeit der Darstellung halber übertrieben. Der
zweite Bereich zeigt den Bereich, wo wahlweise Zeitskalierung nach
dem Übergang
durchgeführt
werden kann, um die Dauer des Audios um T Abtastwerte zu vergrößern, indem
Zeitausdehnung zur Verfügung
gestellt wird, so dass die Gesamtlänge der Audiodaten bei N Abtastwerten
bleibt. Obwohl die Löschung
von T Abtastwerten und die wahlweise abtastwertanzahlkompensierende
Hinzufügung
von T Abtastwerten beide so gezeigt werden, als ob sie innerhalb
eines gefensterten Audiocodier-Abtastwertblocks geschehen, ist dies
nicht entschei dend – die
kompensierende Zeitskalierungs-Verarbeitung muss nicht innerhalb
eines einzelnen Audiocodierblocks geschehen, außer wenn die Übergangs-Zeitverschiebung
durchgeführt
wird, nachdem der Audiosignalstrom durch den Coder in Blöcke aufgeteilt
wurde. Die optimale Position für
derartige Zeitskalierungs-Verarbeitung kann durch den eingesetzten
Zeitskalierungs-Prozess bestimmt werden. Da der Übergang für nützliche Nachmaskierung sorgen
kann, wird abtastwertanzahlkompensierende Zeitskalierung bevorzugt nahe
des Übergangs
durchgeführt.
-
8d veranschaulicht
den sich ergebenden Signalstrom, wenn Zeitskalierungs-Verarbeitung
auf dem Eingangsaudiodatenstrom durchgeführt wird, indem die Zeitdauer
des Audioeingangsdatenstroms in dem Bereich vor dem Übergang
um T Abtastwerte verringert wird und keine abtastwertanzahlkompensierende Zeitskalenexpansion
nach dem Übergangssignal
durchgeführt
wird. Wie vorher erörtert,
sind leichte Variationen in der Zeitentwicklung eines Audiosignals
für die
meisten Zuhörer
nicht wahrnehmbar. Daher kann es ausreichend sein, nur den Audiostrom
vor dem Übergang
zu bearbeiten, wenn es nicht erforderlich ist, dass die Zahl zeitskalierter
Audiodatenstromabtastwerte gleich der Zahl der Eingangsabtastwerte
N ist. 8e veranschaulicht den Fall,
wenn der Audiodatenstrom vor dem Übergang in der Dauer um T Abtastwerte
verringert wird und der dem Übergang
folgende Audiodatenstrom um T Abtastwerte vergrößert wird, wodurch N Audioabtastwerte
in den Zeitskalierungs-Verarbeitungsblock hinein- und herausgehen
und die Zeitentwicklung des Audiosignaistroms mit Ausnahme des Übergangs
und Teilen des Signalstroms nahe des Übergangs wiederhergestellt
wird. Die Variationen in den Längen
der Signalwellenformen in 8a–8e sollen
schematisch zeigen, dass die Zahl der Abtastwerte in dem Audiodatenstrom
für die
beschriebenen Gegebenheiten variiert. Wenn die Zahl der Audioabtastwerte
wie in 8d verringert wird, kann es
sein, dass zusätzliche
Audioabtastwerte erfasst werden müssen, bevor zusätzliche
Audiocodierung durchgeführt
werden kann. Dies kann bedeuten, weitere Abtastwerte von einer Datei
einzulesen oder auf weiteres Audio zu warten, das in einem Echtzeitsystem
gepuffert werden soll.
-
9a–9e veranschaulichen
ein Beispiel von Audiozeitskalierungs-Verarbeitung, wenn ein Übergang
in einem gefensterten Audiocodierblock vorhanden ist und sich ungefähr T Abtastwerte
vor einem Blockende befindet. Um das Ausmaß der durch Niederbitraten-Audiocodierung
eingebrachten Vorstörung
zu verringern während
die Übergangsverschiebung
minimiert wird, wird vorzugsweise das Eingangsaudiosignal zeitlich
so angepasst, dass der Audiosignalübergang dicht auf das nächste Blockende
folgt. Im Falle zu 50% überlappender
Blöcke
begrenzt eine Verschiebung an das Ende des nächsten Blockendes (oder des
vorhergehenden Blockendes) die Übergangsvorstörung auf
die erste Hälfte
eines Audiocodierblocks, anstatt die Übergangsvorstörung überall in
diesem Block und dem vorhergehenden Audioblock zu verteilen.
-
9a zeigt
drei aufeinanderfolgende, zu 50% überlappende, gefensterte Codierblöcke. 9b zeigt die
Beziehung zwischen den ursprünglichen
Eingangsaudiodaten, die einen einzelnen Übergang enthalten, und den
Audioblöcken.
Der Beginn des Übergangs
ist T Abtastwerte vor dem nächsten
Blockende. Da der Übergang
näher am
nächsten
Blockende als am vorhergehenden Blockende ist, wird vorzugsweise
der Übergang
nach rechts zu einem Ort dicht nach dem nächsten Blockende verschoben,
indem Zeitexpansion angewendet wird, die die Auswirkung hat, dass
T Abtastwerte vor dem Übergang
hinzugefügt
werden. 9c zeigt zwei Bereiche, wo Audiozeitskalierung
durchgeführt
werden kann. Der erste Bereich entspricht den Audioabtastwerten
vor dem Übergang,
wo die Vergrößerung der
Dauer des Audios um T Abtastwerte die Position des Übergangs
an den erwünschten
Ort dicht nach dem nächsten
Blockende schiebt. 9c zeigt auch den Bereich, wo
Zeitskalierung nach dem Übergang
durchgeführt
werden kann, um die Dauer des Audios um T Abtastwerte zu verringern,
so dass die Gesamtlänge
der Audiodaten, N Abtastwerte, gleich bleibt. 9d veranschaulicht
das Ergebnis, wenn Zeitskalierungs-Verarbeitung auf dem Eingangsaudiodatenstrom
durchgeführt wird,
indem die Zeitdauer des Audioeingangsdatenstroms in dem Zeitbereich
vor dem Übergang
um T Abtastwerte vergrößert wird,
aber ohne dass eine abtastwertanzahlkompensierende Zeitskalenexpansion
nach dem Übergangssignal
durchgeführt
wird. Wie vorher erörtert,
sind leichte Variationen in der Zeitentwicklung eines Audiosignals
für die
meisten Zuhörer
nicht wahrnehmbar. Daher kann es ausreichend sein, nur das Audio
vor dem Übergang
zu bearbeiten, wenn es nicht erforderlich ist, dass die Zahl der
Audiostromabtastwerte nach Zeitskalierung gleich der Eingabe N ist.
-
9e veranschaulicht
den Fall, wenn das Audio vor dem Übergang in der Dauer um T Abtastwerte vergrößert wird
und das dem Übergang
folgende Audio um T Abtastwerte verringert wird, wodurch eine gleiche Zahl
von Audioabtastwerten vor und nach Zeitskalierung aufrechterhalten
wird. Wie in anderen Figuren ist der Abstand des Übergangs
vom Blockende in 9d und 9e in
den Figuren der Deutlichkeit der Darstellung halber übertrieben.
-
Audiozeitskalierungs-Verarbeitung
für mehrere Übergänge
-
Abhängig von
der Länge
der Audiocodierblockgröße und dem
Inhalt der Audiodaten, die codiert werden, ist es bei einem Eingangsaudiodatenstrom,
der verarbeitet wird, möglich,
dass er innerhalb der N Abtastwerte, die verarbeitet werden, mehr
als ein Übergangssignal
enthält,
das Vorstörungs-Artefakte einbringen kann.
Wie oben erwähnt
können
die N Abtastwerte, die verarbeitet werden, mehr als einen Audiocodierblock einschließen.
-
10a–10d veranschaulichen Verarbeitungslösungen,
wenn zwei Übergänge in einem
Audiocodierblock auftreten. Im Allgemeinen können zwei oder mehr Übergänge in derselben
Art und Weise wie ein einzelner Übergang
behandelt werden, wobei der früheste Übergang
im Audiodatenstrom als der Übergang von
Interesse betrachtet wird.
-
10a zeigt drei aufeinanderfolgende, zu 50% überlappende,
gefensterte Codierblöcke. 10b zeigt den Fall, wo zwei Übergänge in dem Eingangsaudio beiderseits
des Endes eines Audiocodierblocks liegen. In diesen Fall bringt
der frühere Übergang
die meiste wahrnehmbare Vorstörung
ein, da ein Teil der sich aus dem zweiten Übergang ergebenden Vorstörung durch
den ersten Übergang
nachmaskiert wird. Um die Vorstörungs-Artefakte
zu minimieren, kann das Eingangsaudiosignal zeitskaliert werden,
um den ersten Übergang
nach rechts zu verschieben, so dass das Audio vor dem ersten Übergang
um T Abtastwerte in der Zeitskala ausgedehnt wird, wobei T die Zahl
der Abtastwerte ist, die den ersten Übergang an eine Position dicht nach
dem nächsten
Blockende platziert.
-
Um
die Abtastwertanzahl-Kompensation für die Zeitskalenexpansions-Verarbeitung
vor dem ersten Übergang
in 10b durchzuführen
und die Nachmaskierung der sich aus dem zweiten Übergang ergebenden Vorstörung zu
optimieren, indem die Übergänge in der
Zeit näher
zusammen geschoben werden, wird das Audio, das dem ersten Übergang
folgt und vor dem zweiten Übergang
ist, bevorzugterweise zeitskaliert, um in der Dauer um T Abtastwerte
verringert zu werden. Wie in 10b veranschaulicht,
gibt es ausreichend Audioverarbeitungsdaten zwischen dem ersten
und dem zweiten Übergang,
um Zeitskalen-Verarbeitung durchzuführen. Jedoch kann es in einigen
Fällen
sein, dass der zweite Übergang
so nahe zum ersten Übergang
ist, dass es nicht genügend
Audiodaten gibt, um Zeitskalen-Verarbeitung zwischen ihnen durchzuführen. Die
Menge von Audiodaten, die zwischen Übergängen benötigt wird, ist abhängig vom
Zeitskalierungs-Prozess, der für die
Verarbeitung verwendet wird. Wenn nicht ausreichend Audiodaten zwischen
den zwei Übergängen vorhanden
sind, kann es notwendig sein, die dem zweiten Übergang folgenden Audiodaten
in der Zeitskala auszudehnen, um Abtastwertanzahl-Kompensation zur
Verfügung
zu stellen. Um Expansion der Audiodaten nach dem zweiten Übergang
auszuführen,
kann es, wie oben erwähnt,
für den
Zeitskalierungs-Prozess notwendig sein, Zugriff auf ein größeres Segment
von Audiodaten zu haben, als die Zahl der Abtastwerte in einem in
dem Audiocodierprozess verwendeten Block beträgt.
-
10c veranschaulicht den Fall, wenn der erste Übergang
näher dem
vorigen Blockende als dem nächsten
Blockende ist und die Übergänge (in
diesem Fall zwei) allesamt genügend
nahe zusammen sind, dass die sich aus dem ersten Übergang
ergebende Vorstörung
durch den ersten Übergang
im Wesentlichen nachmaskiert wird. Daher wird der Audiostrom vor
dem ersten Übergang
bevorzugt um T Abtastwerte zeitskalenkomprimiert, so dass der erste Übergang
zu einem Ort gerade nach dem vorherigen Blockende verschoben wird.
Abtastwertanzahl-Kompensation zur Wiederherstellung der ursprünglichen
Zahl von Abtastwerten in der Form von Zeitskalenexpansion kann in
dem dem zweiten Übergang
folgenden Audiodatenstrom durchgeführt werden.
-
10d veranschaulicht den Fall, wenn der erste Übergang
näher dem
nächsten
Blockende als dem vorigen Blockende ist und die Übergänge (in diesem Fall zwei) allesamt
genügend
nahe zusammen sind, dass die sich aus dem zweiten Übergang
ergebende Vorstörung
durch den ersten Übergang
im Wesentlichen nachmaskiert wird. Daher wird der Audiostrom vor
dem ersten Übergang
bevorzugt um T Abtastwerte in der Zeitskala ausgedehnt, so dass
der erste Übergang
zu einer Position gerade nach dem nächsten Blockende verschoben
wird. Abtastwertanzahl-Kompensation in der Form von Zeitskalenkompression
kann in dem dem zweiten Übergang
folgenden Audiodatenstrom wahlweise durchgeführt werden.
-
Für den Fall
mehrerer Übergänge kann,
wenn es wünschenswert
ist, Zeitentwicklungs-Kompensation für die Vorverarbeitung in einer
nahezu vollständigen
Weise durchzuführen,
Metadateninformation mit jedem codierten Audioblock in einer ähnlichen
Weise wie im oben beschriebenen Einzelübergangsfall übermittelt werden.
-
Metadatengesteuerte Zeitentwicklungs-Kompensation
von Zeitskalierungs-Vorverarbeitung
-
Wie
oben erwähnt
kann es wünschenswert
sein, nach der inversen Transformation durch den Decoder eine kompensierende
Zeitskalierung auf den Audiosignalstrom nach dem Übergang
anzuwenden, so dass die Zeitentwicklung des verarbeiteten Audiosignalstroms
im Wesentlichen dieselbe wie jene des ursprünglichen Audiosignalstroms
ist, wodurch die ursprüngliche
Zeitentwicklung des Signalstroms wiederhergestellt wird. Jedoch
haben experimentelle Untersuchungen gezeigt, dass leichte zeitliche
Veränderungen
von Audio für
die meisten Zuhörer
nicht wahrnehmbar sind und daher Zeitentwicklungskompensation vielleicht
nicht notwendig ist. Außerdem
sind im Durchschnitt Übergänge gleichmäßig vorverschoben
und hinausgezögert,
und daher kann über
einen genügend
langen Zeitabschnitt die kumulierte Wirkung ohne Zeitentwicklungs-Kompensation vernachlässigbar
sein. Ein anderer zu berücksichtigender
Aspekt ist, dass abhängig
von der Art der für
die Vorverarbeitung verwendeten Zeitskalierung die zusätzliche
zeitentwicklungskompensierende Verarbeitung hörbare Artefakte in das Audio
einbringen kann. Solche Artefakte können entstehen, weil Zeitskalierungs-Verarbeitung
in vielen Fällen
kein völlig
reversibler Prozess ist. In anderen Worten, die Verringerung des
Audios um einen festen Betrag unter Verwendung eines Zeitskalierungs-Prozesses
und anschließende
spätere
Zeitexpansion desselben Audios kann hörbare Artefakte einbringen.
-
Ein
Vorteil von Verarbeitung von Audio, das Übergangsmaterial enthält, durch
Zeitskalierung ist, dass Zeitskalierungs-Artefakte durch die Zeitmaskierungseigenschaften
von Übergangssignalen
maskiert werden können.
Ein Audioübergang
sorgt sowohl für
Vorwärts-
als auch Rückwärtszeitmaskierung. Übergangsaudiomaterial „maskiert" hörbares Material
sowohl vor als auch nach dem Übergang,
so dass das direkt vorhergehende und folgende Material für einen
Zuhörer
nicht wahrnehmbar ist. Vormaskierung wurde gemessen und ist relativ
kurz und dauert nur einige Millisekunden, während Nachmaskierung länger als
100 ms dauern kann. Daher kann zeitskalierende Zeitentwicklungskompensations-Verarbeitung
aufgrund der Zeitnachmaskierungseffekte unhörbar sein. Daher ist es vorteilhaft,
die Zeitentwicklungskompensations-Zeitskalierung, falls durchgeführt, innerhalb
zeitmaskierter Bereiche durchzuführen.
-
11a–11f zeigen ein Beispiel, wo intelligente, auf
die inverse Transformation in dem Decoder folgende Zeitentwicklungs-Kompensation
unter Verwendung von Metadateninformation durchgeführt wird.
Die Metadaten verringern deutlich den Analyseumfang, der benötigt wird,
um Zeitentwicklungs-Kompensation durchzuführen, weil sie angeben, wo
die Zeitskalierungs-Verarbeitung durchgeführt werden soll, sowie die Dauer
der benötigten
Zeitskalierung angeben. Wie oben erklärt, ist die Zeitentwicklungskompensations-Verarbeitung
dazu vorgesehen, dem decodierten Audiosignal seine ursprüngliche
Zeitentwicklung zurückzugeben, wobei
der Signalstrom einschließlich
des Übergangs
seine ursprüngliche
Position im Audiostrom hat. 11a zeigt
drei aufeinanderfolgende, zu 50% überlappende, gefensterte Codierblöcke. 11b zeigt einen Eingangsaudiostrom vor Vorverarbeitung,
der einen Übergang
T Abtastwerte nach einem Blockende hat. 11c zeigt,
dass der Eingangsaudiostrom durch Löschen von T Abtastwerten vor
dem Übergang
verarbeitet wird, um den Übergang
an einen früheren
Ort zu verschieben. T Abtastwerte werden nach dem Übergang
hinzugefügt,
um die Zahl von Audiodatenabtastwerten unverändert zu lassen (Abtastwertanzahl-Kompensation). 11d zeigt den veränderten Audiostrom, wobei der Übergang
an einen früheren
Ort verschoben ist und das dem Übergang
folgende Audio zurück
an seinen ursprünglichen
Ort verschoben ist. 11 e zeigt die
benötigten
zeitentwicklungskompensierenden Zeitskalierungsbereiche, wobei die
Löschung
von T Abtastwerten (Zeitkompression) durch Hinzufügen von
T Abtastwerten kompensiert ist (Zeitexpansion) und die Hinzufügung von
T Abtastwerten (Zeitexpansion) durch das Löschen von T Abtastwerten kompensiert
wird (Zeitkompression). Das in 11f gezeigte
Ergebnis ist ein kompensiertes, nahezu perfektes" Ausgabesignal, das dieselbe Zeitentwicklung
wie das Eingabesignal von 11a hat
(unterworfen hauptsächlich
den Unvollkommenheiten in den Zeitskalierungs-Prozessen).
-
Zeitskalierungs-Nachverarbeitung
zur Verringerung von Übergangsvorstörungen
-
Wie
in etlichen bisherigen Beispielen veranschaulicht, wird sogar mit
optimaler Platzierung eines Übergangs
in einem Audiocodierblock nach wie vor einige Vorstörung durch
den Niederbitraten-Audiocodiersystemprozess
eingebracht. Wie oben angegeben sind längere Audiocodierblöcke gegenüber kürzeren Codierblöcken bevorzugt,
weil sie größere Frequenzauflösung und
erhöhten
Codierungsgewinn zur Verfügung
stellen. Jedoch erhöhen
sich, sogar wenn die Übergänge durch
Zeitskalierung vor der Audiocodierung (Vorverarbeitung) optimal
platziert werden, auch die Vorstörungen,
wenn die Länge
des Audiocodierblocks größer wird. Vormaskierung
von Übergangszeitvorstörungen liegt
in der Größenordnung
von 5 ms (Millisekunden), was 240 Abtastwerten für Audio entspricht, das mit
48 kHz abgetastet wird. Dies bedeutet, dass für Coder mit Blockgrößen größer als
ungefähr
512 Abtastwerten Übergangsvorstörungen sogar
mit optimaler Platzierung hörbar
zu werden beginnen (nur die Hälfte
ist in dem Fall zu 50% überlappender
Blöcke
maskiert). (Dies berücksichtigt nicht
die Verringerung der Übergangsvorstörungen,
die durch Fensterungs-Randeffekte
in den Blöcken
des Coders verursacht wird).
-
Obwohl Übergangsvorstörungen nicht
ganz aus einem Niederbitraten-Codiersystem beseitigt werden können, ist
es möglich,
Zeitskalierungs-Nachverarbeitung (alleine oder zusammen mit Vorverarbeitung)
auf Audiodaten durchzuführen,
die in einem transformationsbasierten Niederbitraten-Audiodecoder
inverser Transformation unterzogen wurden, um den Umfang der Übergangsvorstörungen zu
reduzieren, unabhängig davon,
ob auch Vorverarbeitung angewendet wird oder nicht. Zeitskalierungs-Nachverarbeitung
kann entweder in Verbindung mit einem Niederbitraten-Audiodecoder (das
heißt,
als Teil des Decoders und/oder indem Metadaten vom Decoder und/oder
vom Coder über
den Decoder empfangen werden) oder als ein eigenständiger Nachverarbeitungsprozess
durchgeführt
werden. Das Verwenden von Metadaten ist bevorzugt, weil nützliche
Information, wie zum Beispiel der Ort der Übergänge in Bezug zu den Audiocodierblöcken und
auch die Audiocodierblocklänge(n),
leicht verfügbar
ist und über
die Metadaten an den Nachverarbeitungsprozess weitergegeben werden
kann. Jedoch kann Nachverarbeitung ohne Interaktion mit einem Niederbitraten-Audiodecoder
verwendet werden. Beide Verfahren werden unten erörtert.
-
Zeitskalierungs-Nachverarbeitung in Verbindung
mit einem Niederbitraten-Audiodecoder (Metadaten empfangend)
-
12 ist
ein Flussdiagramm eines Prozesses zur Durchführung von Zeitskalierungs-Nachverarbeitung
in Verbindung mit einem Niederbitraten-Audiodecoder, um die Übergangsvorstörungs-Artefakte zu verringern.
Der in 12 veranschaulichte Prozess
geht davon aus, dass die Eingangsdaten niederbitratencodierte Audiodaten
sind (Schritt 802). Im Anschluss an das Decodieren der
komprimierten Daten zu Audio (Schritt 804), wird das einem
Block (oder Blöcken)
entsprechende Audio zusammen mit Metadateninformation, die zur Verringerung
der Dauer der Vorstörungen
nützlich
ist, an den Zeitskalierer 806 befördert. Diese Information kann
beispielsweise den Ort der Übergänge, die
Audiocodierblocklänge(n),
den Bezug der Codierblockgrenzen zu den Audiodaten und die erwünschte Länge der Übergangsvorstörungen einschließen. Wenn
der Ort der Übergänge in Bezug
auf die Blockgrenzen des Audiocoders verfügbar ist, kann die Länge und
der Ort des Vorstörungs-Artefakts
geschätzt
und durch Nachverarbeitung sorgfältig
verringert werden. Da Übergänge für etwas
Zeitvormaskierung sorgen, muss es nicht notwendig sein, die Übergangsvorstörungen vollständig zu entfernen.
Indem dem Zeitskalierungs-Nachverarbeitungsprozess eine erwünschte Vorstörungslänge eingegeben
wird, kann einige Kontrolle über
das Ausmaß der
Vorstörungen,
das in der ausgegebenen Audioausgabe von Schritt 808 übrigbleibt,
erzielt werden. Die Ergebnisse geeigneter Zeitskalierungs-Verarbeitung
für Schritt 806 werden
unten in Verbindung mit der Beschreibung von 13a–13c beschrieben.
-
Zu
erwähnen
ist, dass Nachverarbeitung nützlich
sein kann, unabhängig
davon, ob Vorverarbeitung vor der Codierung angewendet wurde oder
nicht. Unabhängig
davon, wo der Übergang
in Bezug auf Blockenden liegt, ist einiges an Übergangsvorstörung vorhanden.
Beispielsweise ist sie für
den Fall von 50%-iger Überlappung
mindestens die Hälfte
der Länge
eines Audiocodierfensters lang. Große Fenstergrößen bringen
nach wie vor hörbare
Artefakte ein. Indem Nachverarbeitung durchgeführt wird, ist es möglich die
Länge der
Vorstörung
sogar weiter zu verringern als sie durch optimale Platzierung des Übergangs
in Bezug auf die Blockenden vor der Quantisierung durch den Coder
reduziert wurde.
-
13a–13c veranschaulichen ein Beispiel von Nachverarbeitung
für einen
einzelnen Übergang, um
das nach der inversen Transformation vorhandene Vorstörungs-Artefakt
zu verringern. Wie in 13a gezeigt,
bringt ein einzelner Übergang
ein Vorstörungs-Artefakt
ein. Abhängig
von der Codierblocklänge
kann die Vorstörung
sogar nach Vorverarbeitung, wenn überhaupt vorhanden, eine längere Zeitdauer
haben als durch die Übergangs-Zeitvormaskierungseffekte
maskiert werden kann. Jedoch kann man, wie in 13b gezeigt, durch Verwendung der Übergangsort-Metadateninformation
aus dem Decoder einen Bereich von Audio bestimmen, der die Vorstörung enthält, wobei
die Vorstörung
in der Länge
verringert werden kann, indem man das Audio zeitskaliert, um die
Vorstörung
um T Abtastwerte zu verringern. Die Zahl T kann so gewählt werden, dass
die Vorstörungslänge zur
Ausnutzung von Vormaskierung minimiert wird, oder kann so gewählt werden, dass
die Vorstörung
vollständig
oder nahezu vollständig
entfernt wird. Wenn es erwünscht
ist, dieselbe Zahl von Abtastwerten wie im ursprünglichen Signal beizubehalten,
kann das dem Übergang
folgende Audio um +T Abtastwerte zeitskalenexpandiert werden. Alternativ
kann, wie in Verbindung mit dem Beispiel von 16a gezeigt,
solche Abtastwertanzahl-Kompensation vor der Vorstörung angewendet
werden, was den Vorteil hat, auch für Zeitentwicklungs-Kompensation
zu sorgen.
-
Es
sollte beachtet werden, dass man, wenn Nachverarbeitung in Verbindung
mit Zeitskalierungs-Vorverarbeitung
durchgeführt
wird, das Ausmaß weiterer
Störung
der Zeitentwicklung des Ausgangsaudiostroms minimieren kann. Da
die früher
erörterte
Zeitskalierungs-Vorverarbeitung die Länge der Vorstörung für den Fall von
50%-iger Blocküberlappung
auf N/2 Abtastwerte verringert (wobei N die Länge des Audiocodierblocks ist), ist
garantiert, dass gegenüber
dem ursprünglichen
Eingangsaudio weniger als N/2 Abtastwerte weiterer Zeitentwicklungs-Störung in
das Ausgangsaudio eingebracht werden. Bei Fehlen von Vorverarbeitung
kann die Vorstörung
für den
Fall von 50%-iger Blocküberlappung
bis zu N Abtastwerten, der Codierblocklänge, betragen.
-
In
einigen Niederbitraten-Audlocodiersystemen kann der Ort der Signalübergänge nicht
leicht verfügbar
sein, wenn der Coder die Ortsinformation nicht übermittelt. Ist dies der Fall,
kann der Decoder oder der Zeitskalierungs-Prozess, unter Verwendung
einer beliebigen Anzahl von Übergangserkennungs-Prozessen oder
des vorher beschriebenen effizienten Verfahrens, Übergangserkennung
durchführen.
-
Für mehrere Übergänge gelten,
was Vorverarbeitung betrifft, dieselben Sachverhalte wie oben erörtert.
-
Zeitskalierungs-Nachverarbeitung
ohne Vorverarbeitung
-
Wie
oben erwähnt,
kann es in einigen Fällen
wünschenswert
sein, die wahrgenommene Qualität
von Audio zu verbessern, das Niederbitraten-Audiocodierung unterzogen
wurde, die Kompressionssysteme anwendet, die keine Übergangsvorstörungs-Zeitskalierungsverarbeitung
(Vorverarbeitung) ausführen. 14 skizziert
einen Prozess, wie dies getan werden kann.
-
Der
erste Schritt 1402 prüft
die Verfügbarkeit
von N Audiodatenabtastwerte, die Niederbitraten-Codierung und Decodierung unterzogen
wurden. Diese Audiodatenabtastwerte können beispielsweise aus einer
Datei auf einer auf einem PC befindlichen Festplatte oder einem
Datenpuffer in einer Hardwarevorrichtung stammen. Wenn N Audiodatenabtastwerte
verfügbar
sind, werden sie durch Schritt 1404 an den Zeitskalierungs-Nachverarbeitungsprozess
weitergegeben.
-
Der
dritte Schritt 1406 in dem Zeitskalierungs-Nachverarbeitungsprozess
ist die Erkennung des Orts von Audiodatenübergangssignalen, die wahrscheinlich
Vorstörungs-Artefakte
einbringen. Viele verschiedene Prozesse sind für die Durchführung dieser
Funktion verfügbar
und die konkrete Realisierung ist nicht entscheidend, solange sie
für genaue
Erkennung von Übergangssignalen
sorgt, die wahrscheinlich Vorstörungs-Artefakte
einbringen. Jedoch ist der oben beschriebene Prozess ein effizientes
und genaues Verfahren, das verwendet werden kann.
-
Der
vierte Schritt 1408 ist, zu bestimmen, ob Übergänge in dem
aktuellen N-Abstastwert Eingangsdatenfeld vorhanden sind, wie durch
Schritt 1406 erkannt. Wenn keine Übergänge vorhanden sind, können die Eingangsdaten
durch Schritt 1414 ausgegeben werden, ohne dass Zeitskalierungs-Verarbeitung durchgeführt wird.
Wenn Übergänge vorhanden
sind, werden die Zahl der Übergänge und
ihr(e) Ort(e) an den Übergangsvorstörungs-Schätzungsverarbeitungsschritt 1410 des
Prozesses weitergegeben, um den Ort und die Dauer der Übergangsvorstörung zu
identifizieren.
-
Der
fünfte
und sechste Schritt 1410 in der Verarbeitung beziehen Schätzung des
Orts und der Dauer von Übergangsvorstörungs-Artefakten
und die Verringerung ihrer Länge
mit Zeitskalierungs-Verarbeitung 1412 ein.
Da gemäß Definition
Vorstörungs-Artefakte
auf die Bereiche beschränkt
sind, die den Übergängen in
den Audiodaten vorangehen, ist der Suchbereich durch die Information
eingeschränkt,
die durch die Übergangserkennungs-Verarbeitung
zur Verfügung
gestellt wird. Wie in 1 gezeigt, ist
die Länge
der Vorstörungen
von einem Minimum von N/2 bis zu einem Maximum von N Abtastwerten
beschränkt,
wobei N die Zahl der Audioabtastwerte in einem zu 50% überlappenden
Audiocodierblock ist. Folglich kann, wenn N 1024 Abtastwerte ist
und Audio mit 48 kHz abgetastet wird, die Übergangsvorstörung abhängig von
dem Übergangsort
im Audiostrom von 10,7 ms bis 21,3 ms vor Beginn des Übergangs
reichen, was deutlich über
jegliche Zeitmaskierung hinausgeht, die von Übergangssignalen erwartet werden
kann. Alternativ kann Schritt 1410, anstatt die Länge der
einem Übergang
vorangehenden Vorstörungs-Artefakte
zu schätzen,
davon ausgehen, dass die Vorstörungs-Artefakte
eine vorgegebene Länge
haben.
-
Zwei
Ansätze
zur Übergangsvorstörungsverringerung
können
realisiert werden. Der erste geht davon aus, dass alle Übergänge Vorstörungen enthalten
und daher das Audio vor jedem Übergang
um einen vorbestimmten (vorgegebenen) Betrag, der auf einem erwarteten
Umfang von Vorstörung
pro Übergang
basiert, zeitskaliert (zeitkomprimiert) werden kann. Wenn diese
Technik verwendet wird, kann Zeitskalenexpansion des Audios vor
der zeitlichen Vorstörung
ausgeführt
werden, um sowohl für
Abtastwertanzahl-Kompensation für die
Zeitkompressions-Zeitskalierungsverarbeitung, die zur Verringerung
der Länge
der Vorstörung
eingesetzt wird, bereitzustellen als auch für Zeitentwicklungs-Kompensation
(Zeitexpansion vor der Vorstörung,
die die Zeitkompression innerhalb der Vorstörung kompensiert, hinterlässt den Übergang
an oder nahezu an seiner ursprünglichen
Zeitposition) bereitzustellen. Jedoch kann solche Abtastwertanzahl-Kompensationsverarbeitung,
wenn der genaue Ort des Beginns der Vorstörung nicht bekannt ist, die
Dauer von Teilen der Vorstörungskomponente
unbeabsichtigt erhöhen.
-
15a–15c veranschaulichen eine Technik, die einen vorgegebenen
Wert nutzt, um das Audio vor jedem Übergang zur Verringerung der
Vorstörungsdauer
zeitzuskalieren, aber keine Abtastwertanzahl-Kompensation durchführt. Wie
in 15a gezeigt, hat ein Audiosignalstrom aus einem
Niederbitraten-Audiodecoder einen Übergang, dem eine Vorstörung vorausgeht. 15b zeigt eine vorgegebene Verarbeitungslänge, die
als Umfang der von der Zeitskalierungs-Verarbeitung durchzuführenden
Zeitkompression verwendet wird. 15c zeigt
den sich ergebenden Audiosignalstrom, der eine verringerte Vorstörung hat.
In diesem Beispiel wird keine Zeitentwicklungs-Kompensation durchgeführt, um
den Übergang
an seine ursprüngliche
Position im Audiodatenstrom zurückzubringen.
Jedoch kann, wenn eine konstante Anzahl von Eingabe- zu Ausgabeabtastwerten
erwünscht
ist, auf eine Weise, die ähnlich
den vorherigen Verarbeitungsbeispielen ist, Zeitskalenexpansion,
die dem Übergang
folgt, ähnlich
zu dem Beispiel von 13b, oder möglicherweise vor der Vorstörung durchgeführt werden,
wie unten in Verbindung mit dem Beispiel von 16a–16c beschrieben. Jedoch geht man, wenn eine vorgegebene
Verarbei tungslänge
angewendet wird, durch die Bereitstellung derartiger Kompensation
vor der Vorstörung
das Risiko ein, dass die Zeitskalenexpansions-Verarbeitung innerhalb
der Vorstörung
durchgeführt
wird (wodurch unerwünschterweise
die Vorstörungslänge vergrößert wird),
wenn die tatsächliche
Länge der
Vorstörung
die vorgegebene Länge überschreitet.
Weiterhin kann in einigen Fällen
die Nachverarbeitung keinen Zugriff auf den Audiostrom vor der Vorstörung haben – das Audio
kann bereits ausgegeben sein, um die Latenzzeit zu verringern.
-
Eine
zweite nachverarbeitende Vorstörgeräusch-Verringerungstechnik,
die in 16a–16c veranschaulicht
wird, bezieht die Durchführung
einer Analyse der sich aus einem Übergang ergebenden Vorstörung, um
ihre Länge
zu bestimmen, und die Verarbeitung des Audios, so dass nur das Vorstörungssegment verarbeitet
wird, ein. Wie oben erwähnt,
wird eine Übergangsvorstörung erzeugt,
wenn die hochfrequenten Komponenten des Übergangsaudiomaterials als
ein Ergebnis des Quantisierungsprozesses im Coder über einen
gesamten Block zeitlich verschmiert werden. Daher ist ein direktes
Verfahren der Erkennung, das Audio vor einem Übergang hochpasszufiltern und
die Hochfrequenzenergie zu messen. Der Beginn der Übergangsvorstörung ist
erkannt, wenn das rauschähnliche,
hochfrequente Vorstörgeräusch, bezogen
auf und verursacht durch den Übergang,
eine vorher bestimmte Schwelle überschreitet.
Wenn die Größe und der
Ort der Übergangsvorstörung bekannt
ist, kann kompensierende Zeitskalenexpansion des Audios vor der
Zeitskalenverringerung der Vorstörung
durchgeführt
werden, um das Audio in seine ursprüngliche Zeitentwicklung zurückzuführen und
die Zeitentwicklung des Audiostroms im Wesentlichen in seinem ursprünglichen
Zustand wiederherzustellen. Andere Techniken zur Ermittlung oder
Schätzung
der Länge
der Vorstörung
können
eingesetzt werden.
-
In 16a hat ein Audiosignalstrom aus einem Niederbitraten-Audiodecoder
einen Übergang,
dem eine Vorstörung
vorausgeht. 16b zeigt eine Zeitkompressions-Verarbeitungslänge, die
als Umfang der von der Zeitskalierungs-Verarbeitung durchzuführenden
Zeitskalenverringerung verwendet wird, basierend auf einer geschätzten Vorstörungslänge, wie
sie über
den hochfrequenten Audioinhalt im Block gemessen wird. 16b zeigt auch den sich ergebenden Audiosignalstrom,
der eine verringerte Vorstörung
zusammen mit der ursprünglichen
Zeitentwicklung und derselben Zahl von Abtastwerten wie der ursprüngliche
Audiostrom hat.
-
Die
vorliegende Erfindung und ihre verschiedenen Aspekte können als
Softwarefunktionen realisiert werden, die in digitalen Signalverarbeitungsprozessoren,
programmierten Universaldigitalcomputern und/oder Spezialdigitalcomputern
ausgeführt
werden. Schnittstellen zwischen analogen und digitalen Signalströmen können in
geeigneter Hardware und/oder als Funktionen in Software und/oder
Firmware ausgeführt
werden.