-
Die
Erfindung betrifft ein Verfahren, eine Medienquelle, eine Mediensenke
und ein Medienverarbeitungssystem zum synchronen Abspielen von Mediendatenpaketen.
-
Ein
Mensch verwendet zwei Schallparameter zum Ermitteln der Position
der Schallquelle: die Amplitude und die Phase des Schalls. Da die
Intensität
des Schalls bei dessen Ausbreitung in Luft abnimmt, nimmt ein weiter
von der Schallquelle entferntes Ohr einen geringeren Schallpegel
wahr als ein Ohr in der Nähe
der Schallquelle. Da der Schall zudem für die Ausbreitung in der Luft
einige Zeit benötigt,
erhält
das weiter entfernte Ohr das Signal später als das näher zur
Schallquelle angeordnete Ohr. Experimente haben gezeigt, dass Menschen
eine Phasendifferenz zwischen zwei Kanälen von mehr als 6-20 Mikrosekunden
(μs) als
Versatz der Schallquelle wahrnehmen und zwei Signale mit einer Phasendifferenz
von mehr als 35-40 Millisekunden (ms) als zwei verschiedene Töne wahrgenommen
werden.
-
Für Audiosysteme,
die Audiotöne
abspielen (emittieren) bedeutet dies, dass ein zu einem Kanal eines
Multikanalsignals zugehöriges
Audiosignal, z.B. ein Stereosignal, zu exakt derselben Zeit, d.h. exakt
demselben Zeitpunkt, wie alle weiteren demselben Multikanalsignal,
z.B. demselben Stereosignal, zugeordneten Audiosignale abgespielt
werden sollte. Mit anderen Worten ist eine enge Synchronisation
der verschiedenen Audioausgabegeräte, z.B. Lautsprecher, erforderlich,
sodass die Zeitrelation zwischen verschienen Kanälen eines Multikanalsignals
während
der Ausgabe gegeben ist. Ähnliche
Anforderungen können
ebenso in weiteren Audioanwendungen wie z.B. Dolby-Surround-Systemen
oder in Audio-Video-Anwendungen auftreten.
-
Die
erwähnte
enge Synchronisation ist ebenso von digitalen Übertragungs-Audiosystemen zu erfüllen, bei denen Audiosignale
von der Medienquelle zu den Medienausgabegeräten (im Folgenden ebenso allgemeiner
als Medien senken bezeichnet, die ebenso Geräte zur Verarbeitung eines empfangenen Multikanalsignals
auf beliebige andere Weise enthalten) in der Form von Mediendatenpaketen
(im Folgenden ebenso als Medienpakete bezeichnet) übertragen
werden. Jedes Audioausgabegerät
muss die Töne
eines Mediendatenpakets (das Mediendatenpaket an sich) zu exakt
derselben Zeit abspielen, d.h. in dem Augenblick, in welchem ein
weiteres Medienausgabegerät
ein korrespondierendes Mediendatenpaket, z.B. demselben Stereosignal
zugeordnet, auf einem weiteren Kanal abspielt. Werden die Mediendatenpakete
nicht passend synchronisiert abgespielt, d.h. korrespondierende
Mediendatenpakete von verschiedenen Kanälen desselben Stereosignals
werden zu verschiedenen Zeiten in verschiedenen Medienausgabegeräten abgespielt,
so treten die obigen Probleme auf, d.h. der Stereoton wird möglicherweise
als von einer anderen Richtung kommend wahrgenommen oder möglicherweise
werden sogar zwei unterschiedliche Töne wahrgenommen (diese Probleme
werden im Folgenden als Hörstörungen bezeichnet).
-
Die
Internet Engineering Task Force (IETF) hat ein Übertragungsprotokoll für Echtzeitanwendungen
(RTP) in ihren Request for Comments RFC 1889 bereitgestellt, im
Folgenden als RTP bezeichnet. Das Echtzeitübertragungsprotokoll (RTP)
enthält
ein Steuerprotokoll RTCP, das Synchronisationsinformation von Datensendern
und die Rückmeldeinformation
von Datenempfängern
bereitstellt. Was die Synchronisation von Datenströmen hinsichtlich
einer Medienverteilung betrifft, stellt dieses Protokoll sogenannte
Senderberichte (SR, Sender Reports) bereit, die eine Korrelation
zwischen einem Abtasttakt und einer globalen Uhrzeit (global clock)
angeben.
-
Die
Senderberichte (SR) werden von der Medienquelle an die Mediensenke(n)
gesendet und enthalten zwei Zeitkennzeichnungen. Eine Zeitkennzeichnung
weist auf einen Zeitpunkt in Zeiteinheiten des lokalen Abtasttaktes
(lokale Abtasttaktzeit) hin und die andere Kennzeichnung weist auf
denselben Zeitpunkt in Zeiteinheiten des globalen Taktes (globale
Uhrzeit) hin. Beide Zeitkennzeichnungen der SR werden zum selben
Zeitpunkt erzeugt. Es wird angenommen, dass die globale Uhrzeit
der Medienquelle und der Mediensenke(n), zwischen denen Medienströme übertragen
werden, bereitsteht. Eine Mediensenke hat somit Zugriff auf die
globale Uhrzeit und kann deshalb deren Abtasttakt zur globalen Uhrzeit ausrichten.
-
Die
wesentliche Absicht von RTP ist es, eine Einrichtung für Videokonferenzen
im Internet bereitzustellen und Video und Audio, die in getrennten
Datenströmen
von derselben einzelnen Mediensenke empfangen werden, zu resynchronisieren.
Das Protokoll ist nicht dafür
gedacht, das synchrone Abspielen von Mediendatenpaketen in getrennten
Mediensenken eines digitalen Übertragungs-Audiosystems sicherstellen.
Wird dieses Protokoll deshalb zum Aussenden von Mediendatenpaketen
an Mediensenken verwendet, ist es möglich, dass die Mediendatenpakete
in verschiedenen Mediensenken nicht geeignet synchronisiert abgespielt
werden, d.h. einem selben Stereosignal zugeordnete Mediendatenpakete
werden möglicherweise
nicht zum selben Zeitpunkt in verschiedenen Mediensenken, z.B. Lautsprechern,
abgespielt. Deshalb können
die obigen Hörstörungen auftreten,
falls für
digitale Übertragungsaudiosysteme
lediglich RTP verwendet wird.
-
Stand
der Technik zur Synchronisierung von Video- und Audiodaten ist beispielsweise
aus "RFC 2343: RTP
Payload Format for Bundles MPEG",
Request for Comments, Mai 1998, XP002229835, von M. Civanlar und
aus dem Dokument "RFC
1889: RTP: A Transport Protocol for Real-Time Applicatons", Request for Comments,
Januar 1996, XP002229836 von H. Schulzrinne bekannt. In diesen Dokumenten
des Standes der Technik weist ein Paket eine Zeitkennzeichnung,
die eine Abtastzeit des MPEG-Bildes kennzeichnet, sowie ein Audioversatzfeld
auf, das den Versatz zwischen dem Beginn des Audio-Frames und der RTP-Zeitkennzeichnung
für dieses
Paket als Anzahl von Audio-Abtastungen kennzeichnet. Um eine Synchronisation
zwischen in einem entsprechenden Paket enthaltenen Video- und Audiodaten
zu erzielen, wird der Audioversatz relativ zur RTP-Zeitkennzeichnung
des Pakets, das dieses Audiosegment enthält, angegeben.
-
Das
Problem der Hörstörungen kann
ebenso von unzuverlässigen
und ungenauen Taktinformationen herrühren, die in den meisten Nicht-Echtzeit-Quellengeräten wie
Personalcomputern (PCs) oder digitalen Assistenten (PDAs) auftreten.
Diese Geräte
setzen voraus, dass die globale Taktinformation (globale Uhrzeit)
alle seitens der Anwendungsszenarios festgelegten Anforderungen
erfüllt.
Jedoch kann dies auch nicht zutreffen. Ein Nicht-Echtzeit-Gerät erhält gewöhnlich eine tatsächliche
Zeit (globale Uhrzeit) zur Erzeugung von Zeitkennzeichnungen für Mediendatenpakete über eine
externe Verbindung, z.B. USB oder RS232. Da die Bussysteme, die
gewöhnlich
für diese
Art von externer Verbindung verwendet werden, nicht für eine Übertragung mit
garantiert sehr kurzen Zustellzeiten ausgelegt sind, kann die Taktinformation
(globale Uhrzeit) ihre Genauigkeit verlieren, falls diese von dem
PC oder PDA verwendet wird, z.B. zur Bestimmung einer Zeitkennzeichnung
für ein
Mediendatenpaket. Dies bedeutet, dass die über eine Zeitkennzeichnung
gekennzeichnete globale Uhrzeit eines Mediendatenpakets im Hinblick
auf die tatsächliche
globale Uhrzeit, zu der das Mediendatenpaket tatsächlich ausgesendet
wird, falsch sein kann. Ebenso kann die Zeitdifferenz zwischen zwei
mittels zwei Zeitkennzeichnungen gekennzeichneten Zeitpunkten variieren,
obwohl die Zeitdifferenz zwischen den beiden korrespondierenden
tatsächlichen
globalen Uhrzeiten nicht variiert. Dies liegt möglicherweise daran, dass die von
der externen Verbindung zum Übertragen
der globalen Uhrzeitinformation an die Anwendung benötigte Zeit
schwanken kann. Da die Zeitkennzeichnungen der Mediendatenpakete
gewöhnlich
von den Mediensenken für
jedes Paket zur Bestimmung einer Abspielzeit verwendet werden, kann
die ungenaue und statistisch schwankende Zeit, die über die
Zeitkennzeichnungen der Mediendatenpakete gekennzeichnet ist, zu
den erwähnten
Hörstörungen führen, da
Mediendatenpakete, die demselben Stereosignal zugeordnet sind, von
den verschiedenen Mediensenken zu verschiedenen Zeiten abgespielt
werden können.
-
Die
Erfindung ist in den unabhängigen
Patentansprüchen
definiert.
-
Es
ist eine Aufgabe der Erfindung, eine Medienquelle, eine Mediensenke
und ein Medienverarbeitungssystem zum synchronen Abspielen von Mediendatenpaketen
anzugeben als auch entsprechende Verfahren, mit denen diese Geräte arbeiten,
so dass Hörstörungen selbst
beim Abspielen in verschiedenen Mediensenken vermieden werden.
-
Eine
Medienquelle zur Lösung
der Aufgabe der Erfindung gemäß einer
ersten Ausführungsform der
Erfindung ist in Patentanspruch 1 definiert, eine Mediensenke ist
in Patentanspruch 5 definiert und ein Medienverarbeitungssystem
ist in Patentanspruch 10 definiert. Entsprechende Verfahren gemäß der ersten
Ausführungsform
sind in den Patentansprüchen
17, 21 und 26 definiert. Bevorzugte Ausführungsformen sind jeweils in
den entsprechenden nachfolgenden Unteransprüchen beschrieben. Eine Medienquelle
zur Lösung
der Aufgabe der Erfindung gemäß einer
zweiten Ausführungsform
der Erfindung ist in Patentanspruch 11 definiert, eine Mediensenke ist
in Patentanspruch 14 definiert und ein Medienverarbeitungssystem
ist in Patentanspruch 16 definiert. Entsprechende Verfahren gemäß der zweiten
Ausführungsform
sind in den Patentansprüchen
27, 30 und 32 definiert. Bevorzug te Ausführungsformen hiervon sind in
den zugehörigen
Unteransprüchen beschrieben.
-
Somit
wird die Aufgabe der Erfindung von zwei verschiedenen Ausführungsformen
gelöst,
denen eine gemeinsame erfinderische Idee zur Lösung zugrunde liegt. In beiden
Ausführungsformen
wird eine gemeinsame Abspielzeit bestimmt und jedem Mediendatenpaket
zugeordnet und das Mediendatenpaket wird von einer Mediensenke exakt
zu dieser gemeinsamen Abspielzeit abgespielt. In der ersten Ausführungsform
wird die gemeinsame Abspielzeit von den Mediensenken durch Addieren
eines Abspielzeitversatzes zu der Zeit, auf die über eine Zeitkennzeichnung
eines Mediendatenpakets hingewiesen wird, bestimmt. Der Abspielzeitversatz
wird von der Medienquelle bestimmt und den Mediensenken übermittelt.
In der zweiten Ausführungsform
wird die gemeinsame Abspielzeit von der Medienquelle für jedes
Paket bestimmt und zusammen mit jedem Mediendatenpaket in der Form
einer entsprechenden Zeitkennzeichnung ausgesendet.
-
Lösung gemäß der ersten
Ausführungsform der
Erfindung:
Eine Medienquelle gemäß der Erfindung eignet sich zum
Aussenden von zeitlich gekennzeichneten Mediendatenpaketen, insbesondere
an ein oder mehrere empfangende Mediensenken wie unten definiert, wobei
die Zeitkennzeichnung jedes Mediendatenpakets auf den Zeitpunkt
zum Erzeugen des entsprechenden Mediendatenpakets hinweist, zum
Bestimmen eines Abspielzeitversatzes und zum Aussenden des Abspielzeitversatzes
geeignet ist, insbesondere an die eine oder mehreren empfangenden
Mediensenke(n) wie unten definiert.
-
Vorzugsweise
weist die erfindungsgemäße Medienquelle
einen Abtasttakt zum Ermitteln einer Abtasttaktzeit auf, diese ist
zum Bestimmen einer globalen Uhrzeit geeignet sowie zum Aussenden
eines Steuerpakets von Zeit zu Zeit, insbesondere an die eine oder
mehreren empfangenden Mediensenke(n), wie unten definiert, wobei
das Steuerpaket zwei Steuerpaketzeitkennzeichnungen aufweist, die auf
denselben Zeitpunkt hinweisen, wobei dessen erste Steuerpaketzeitkennzeichnung
in Zeiteinheiten der globale Uhrzeit gemessen oder definiert wird
und dessen zweite Steuerpaketzeitkennzeichnung in Zeiteinheiten
der Abtasttaktzeit gemessen oder definiert wird.
-
Des
Weiteren weist die Zeitkennzeichnung eines Mediendatenpakets in
vorteilhafter Weise auf den Zeitpunkt zum Erzeugen des zeitlich
gekennzeichneten Mediendatenpakets in Zeiteinheiten der Abtasttaktzeit
hin. Ebenso ist das Mediendatenpaket vorzugsweise zum Aussenden
des Mediendatenpakets an zwei oder mehrere empfangende Mediensenken
gestaltet.
-
Eine
Mediensenke gemäß der Erfindung
eignet sich zum Empfangen von zeitlich gekennzeichneten Mediendatenpaketen,
insbesondere von einer wie oben definierten Medienquelle, sowie
zum Bestimmen eines Abspielzeitversatzes, zum präzisen Bestimmen einer globalen
Uhrzeit, zum Bestimmen einer gemeinsamen Abspielzeit für jedes
empfangene zeitlich gekennzeichnete Mediendatenpaket durch Addieren
der Zeit, auf die durch die Zeitkennzeichnung des zeitlich gekennzeichneten
Mediendatenpakets hingewiesen wird, und des Abspielzeitversatzes,
und zum Abspielen jedes empfangenen zeitlich gekennzeichneten Mediendatenpakets
genau dann, wenn die bestimmte gemeinsame Abspielzeit für das empfangene
zeitlich gekennzeichnete Mediendatenpaket erreicht ist.
-
Die
Mediensenke eignet sich zum einmaligen Empfangen des Abspielzeitversatzes,
insbesondere von einer wie oben definierten Medienquelle. Alternativ
hierzu eignet sich die Mediensenke zum Empfangen eines Steuerpakets,
insbesondere von einer wie oben definierten Medienquelle, mit einer ersten
Steuerpaketzeitkennzeichnung als Hinweis auf einen bestimmten Zeitpunkt,
der in Zeiteinheiten einer Abtastzeit gemessen oder definiert wird,
sowie einer zweiten Steuerpaketzeitkennzeichnung als Hinweis auf
denselben bestimmten Zeitpunkt, der in Zeiteinheiten einer globalen
Uhrzeit gemessen oder definiert wird, und zum Umwandeln einer Zeit,
auf die mittels einer Zeitkennzeichnung eines zeitlich gekennzeichneten
Mediendatenpakets hingewiesen wird und die in Einheiten einer Abtasttaktzeit
gemessen oder definiert wird, in eine Zeit, die in Einheiten einer
globalen Uhrzeit gemessen oder definiert wird basierend auf der
Information der ersten und zweiten Steuerpaketzeitkennzeichnung.
-
In
einer bevorzugten Ausführungsform
weist die Mediensenke einen Puffer auf zum Speichern von Mediendatenpaketen,
bis die gemeinsame Abspielzeit erreicht ist.
-
Ein
Medienverarbeitungssystem gemäß der Erfindung
weist eine wie oben definierte Medienquelle als auch eine wie oben
definierte Mediensenke auf.
-
Ein
Verfahren gemäß der ersten
Ausführungsform
der Erfindung, welches sich für
eine Medienquelle eignet, weist die Schritte auf: Aussenden von
zeitlich gekennzeichneten Mediendatenpaketen, insbesondere an eine
oder mehrere empfangende Mediensenke(n), wobei die Zeitkennzeichnung
jedes Mediendatenpakets auf den Zeitpunkt zum Erzeugen des entsprechenden
Mediendatenpakets hinweist, Bestimmen eines Abspielzeitversatzes,
und Aussenden des Abspielzeitversatzes, insbesondere an die eine
oder mehrere Mediensenke(n).
-
In
vorteilhafter Weise werden die folgenden Schritte ausgeführt: Bestimmen
einer Abtasttaktzeit, Bestimmen einer globalen Uhrzeit, und Aussenden eines
Steuerpakets von Zeit zu Zeit an die eine oder mehreren empfangenden
Mediensenke(n), wobei das Steuerpaket zwei Steuerpaketzeitkennzeichnungen
aufweist, die auf denselben Zeitpunkt hinweisen, und wobei dessen
erste Steuerpaketzeitkennzeichnung in Zeiteinheiten der globalen
Uhrzeit gemessen oder definiert wird und dessen Steuerpaketzeitkennzeichnung
in Zeiteinheiten der Abtasttaktzeit gemessen oder definiert wird.
-
Es
ist des Weiteren von Vorteil, dass die Zeitkennzeichnung eines Mediendatenpakets
auf den Zeitpunkt zum Erzeugen des zeitlich gekennzeichneten Mediendatenpakets
in Zeiteinheiten der Abtasttaktzeit hinweist. Ebenso ist es von
Vorteil, dass dieselben Mediendatenpakete an zwei oder mehrere verschiedene
empfangende Mediensenken ausgesendet werden.
-
Ein
Verfahren gemäß der ersten
Ausführungsform
der Erfindung zum synchronen Abspielen von Mediendatenpaketen, insbesondere
für eine
Mediensenke, weist die folgenden Schritte auf: Empfangen von zeitlich
gekennzeichneten Mediendatenpaketen, insbesondere von einer Medienquelle,
Bestimmen eines Abspielzeitversatzes, präzises Bestimmen einer globalen
Uhrzeit, Bestimmen einer gemeinsamen Abspielzeit für jedes
empfangene zeitlich gekennzeichnete Mediendatenpaket durch Addieren der
Zeit, auf die durch die Zeitkennzeichnung des zeitlich gekennzeichneten
Mediendatenpakets hingewiesen wird, sowie des Abspielzeitversatzes,
und Abspielen jedes empfangenen zeitlich gekennzeichneten Mediendatenpakets
genau dann, wenn die bestimmte gemeinsame Abspielzeit für das empfangene
zeitlich gekennzeichnete Mediendatenpaket erreicht ist.
-
In
vorteilhafter Weise wird der Abspielzeitversatz einmalig empfangen,
insbesondere von einer Medienquelle oder dieser wird mit wenigstens
einer weiteren Mediensenke ausgetauscht.
-
Zudem
werden in vorteilhafter Weise die folgenden Schritte ausgeführt: Empfangen
eines Steuerpakets, insbesondere von einer Medienquelle gemäß einem
der Ansprüche
1 bis 4, umfassend eine erste Steuerpaketzeitkennzeichnung zum Hinweisen auf
einen bestimmten Zeitpunkt, der in Zeiteinheiten einer Abtastzeit
gemessen oder definiert wird, sowie einer zweiten Steuerpaketzeitkennzeichnung
zum Hinweisen auf denselben bestimmten Zeitpunkt, der in Zeiteinheiten
einer globalen Uhrzeit gemessen oder definiert wird, und zum Umwandeln
einer Zeit, auf die mittels einer Zeitkennzeichnung eines zeitlich gekennzeichneten
Mediendatenpakets hingewiesen wird und die in Einheiten einer Abtasttaktzeit
gemessen oder definiert wird, in eine Zeit, die in Einheiten einer
globalen Uhrzeit gemessen oder definiert wird basierend auf der
Information der ersten und zweiten Steuerpaketzeitkennzeichnung.
-
In
vorteilhafter Weise werden die Mediendatenpakete in einem Puffer
gespeichert, bis die gemeinsame Abspielzeit erreicht ist.
-
Bei
einem Verfahren gemäß der ersten
Ausführungsform
der Erfindung zum synchronen Abspielen von Mediendatenpaketen, das
für ein
Medienverarbeitungssystem geeignet ist, werden die für eine wie
oben definierte Medienquelle vorgesehenen Verfahrensschritte und
die für
eine wie oben definierte Mediensenke vorgesehenen Verfahrensschritte
ausgeführt.
-
Lösung gemäß der zweiten
Ausführungsform
der Erfindung:
Eine Medienquelle zur Lösung der Aufgabe der Erfindung
gemäß der zweiten
Ausführungsform
der Erfindung eignet sich zum Bestimmen eines Abspielzeitversatzes
und zum Bestimmen einer gemeinsamen Abspielzeit durch Addieren des
Abspielzeitversatzes zu einer gegenwärtigen Zeit und diese eignet sich
zum Aussenden von zeitlich gekennzeichneten Mediendatenpaketen,
insbesondere an eine oder mehrere empfangenden Mediensenke(n) wie
unten definiert, wobei die Zeitkennzeichnung eines zeitlich gekennzeichneten
Mediendatenpakets auf die gemeinsame Abspielzeit des Mediendatenpakets
hinweist.
-
In
vorteilhafter Weise weist die Medienquelle einen Abtasttakt zum
Bestimmen einer Abtasttaktzeit auf, und diese eignet sich zum Berechnen
der gegenwärtigen
Zeit durch einmaliges Lesen einer globalen Uhrzeit und Addieren
der Zeitperioden des Abtasttaktes zu der einmalig gelesenen globalen
Uhrzeit. Zusätzlich
eignet sich die Medienquelle vorzugsweise zum Aussenden desselben
Mediendatenpakets an zwei oder mehrere verschiedene empfangende
Mediensenken.
-
Eine
Mediensenke gemäß der zweiten
Ausführungsform
der Erfindung eignet sich zum Empfangen zeitlich gekennzeichneter
Mediendatenpakete, insbesondere von einer Medienquelle wie oben
definiert, diese eignet sich ebenso zum präzisen Bestimmen einer globalen
Uhrzeit und zum Bestimmen einer gemeinsamen Abspielzeit für jedes
empfangene zeitlich gekennzeichnete Mediendatenpaket, wobei die
Abspielzeit die Zeit kennzeichnet, auf die mittels der Zeitkennzeichnung
des zeitlich gekennzeichneten Mediendatenpakets hingewiesen wird.
Vorzugsweise weist die Mediensenke einen Puffer auf zum Speichern
von Mediendatenpaketen, bis die gemeinsame Abspielzeit erreicht
ist.
-
Ein
Medienverarbeitungssystem gemäß der zweiten
Ausführungsform
der Erfindung weist eine wie oben für die zweite Ausführungsform
der Erfindung definierte Medienquelle als auch eine wie oben für die zweite
Ausführungsform
der Erfindung definierte Mediensenke auf.
-
Ein
für eine
Medienquelle vorgesehenes Verfahren gemäß der zweiten Ausführungsform
der Erfindung zum synchronen Abspielen von Mediendatenpaketen weist
die folgenden Schritte auf: Bestimmen eines Abspielzeitversatzes
und einer gemeinsamen Abspielzeit durch Addieren des bestimmten
Abspielzeitversatzes zu einer gegenwärtigen Zeit, und Aussenden
der zeitlich gekennzeichneten Mediendatenpakete, insbesondere an
eine oder mehrere empfangende Mediensenke(n), wobei die Zeitkennzeichnung
eines zeitlich gekennzeichneten Mediendatenpakets auf die gemeinsame
Abspielzeit des Mediendatenpakets hinweist.
-
In
vorteilhafter Weise werden die folgenden Schritte ausgeführt: Bestimmen
einer Abtasttaktzeit und Berechnen der gegenwärtigen Zeit durch einmaliges
Lesen einer globalen Uhrzeit und Addieren von mittels der Abtasttaktzeit
gegebenen Zeitperioden zu der einmalig gelesenen globalen Uhrzeit.
Des Wei teren werden in vorteilhafter Weise dieselben Mediendatenpakete
an zwei oder mehrere verschiedene empfangende Mediensenken gesendet.
-
Ein
für eine
Mediensenke vorgesehenes Verfahren zum synchronen Abspielen von
Mediendatenpaketen gemäß der zweiten
Ausführungsform
der Erfindung weist die folgenden Schritte auf: Empfangen von zeitlich
gekennzeichneten Mediendatenpaketen, insbesondere von einer Medienquelle,
präzises
Bestimmen einer globalen Uhrzeit und Bestimmen einer gemeinsamen
Abspielzeit für
jedes empfangene zeitlich gekennzeichnete Mediendatenpaket, wobei
die gemeinsame Abspielzeit die Zeit ist, auf die durch die Zeitkennzeichnung
des zeitlich gekennzeichneten Mediendatenpakets hingewiesen wird.
-
Vorzugsweise
werden Mediendatenpakete in einem Puffer gespeichert, bis die gemeinsame
Abspielzeit erreicht ist.
-
Ein
für ein
Medienverarbeitungssystem vorgesehenes Verfahren zum synchronen
Abspielen von Mediendatenpaketen gemäß der zweiten Ausführungsform
der Erfindung weist die für
eine Medienquelle vorgesehenen Verfahrensschritte und die für eine Mediensenke
vorgesehenen Verfahrensschritte auf.
-
Somit
können
Mediensenken erfindungsgemäß Mediendatenpakete
exakt synchronisiert abspielen, da eine gemeinsame Abspielzeit bestimmt wird
und einem entsprechenden Mediendatenpaket zugeordnet wird und die
Mediendatenpakete werden exakt zu dieser Abspielzeit in jeder Mediensenke
abgespielt. Das exakte zeitliche Abspielen über die Mediensenken ist möglich, da
die Mediensenken die globale Uhrzeit präzise bestimmen und gewöhnlich spezifische
Hardware verwenden, die keine langen Verarbeitungszeiten mit sich
bringt, d.h. die Mediensenken sind eng an die globale Uhrzeit gekoppelt.
Die gemeinsame Abspielzeit ist an eine einmal gelesene globale Uhrzeit
gekoppelt, so dass keine Zeitdifferenzen zwischen zwei Zeiten bestehen,
auf die mittels zweier Zeitkennzeichnungen von verschiedenen Mediendatenpaketen
hingewiesen wird. Dies ist jedoch bei bekannten Systemen wie oben
erwähnt
der Fall. Die erfindungsgemäße Medienquelle
kann andererseits hinsichtlich der Genauigkeit lediglich begrenzten
Zugang zur globalen Uhrzeit aufweisen, da der addierte Abspielzeitversatz
derart gewählt
werden kann, dass diese Ungenauigkeit im jeweiligen Falle kompensiert
wird.
-
Die
Erfindung und vorteilhafte Details derselbigen werden im Folgenden
anhand beispielhafter Ausführungsformen
mit Bezug zu den begleitenden Abbildungen erläutert.
-
1 zeigt
ein Beispiel eines Szenarios, bei dem eine Medienquelle zeitlich
gekennzeichnete Mediendatenpakete an zwei Mediensenken sendet;
-
2 zeigt
den Zugriff der Medienquelle und n Mediensenken auf dieselbe globale
Uhrzeit;
-
3 zeigt
ein Flussdiagramm zur Erläuterung
des Prozesses des Aussendens von Mediendatenpaketen von einer Medienquelle
an zwei Mediensenken, die die Mediendatenpakete empfangen und verarbeiten;
-
4 zeigt
ein Beispiel, bei dem ein PC als Medienquelle und zwei Lautsprecher
als Mediensenken verwendet werden;
-
5 zeigt
ein Flussdiagramm zur Erläuterung
der Wechselwirkung zwischen der Medienquelle und der Mediensenke,
wobei Steuerpakete gemäß dem RTP-Standard
verwendet werden;
-
6 zeigt
ein Flussdiagramm zur Erläuterung
der Wechselwirkung zwischen der Medienquelle und der Mediensenke
gemäß einer
ersten alternativen Ausführungsform
der Erfindung; und
-
7 zeigt
eine zweite alternative Ausführungsform
der Erfindung, wobei die Mediensenken untereinander einen Abspielzeitversatz
austauschen.
-
1 zeigt
das grundlegende Szenario einer Medienverteilperiode mit zwei synchronisierten Mediensenken,
d.h. einer ersten Mediensenke 1 und einer zweiten Mediensenke 2.
Die Medienquelle 101 überträgt ein erstes
zeitlich gekennzeichnetes Mediendatenpaket 1021 an die
erste Mediensenke 1 und ein zweites zeitlich gekennzeichnetes
Mediendatenpaket 1022 an die zweite Mediensenke 2.
Die Zeitkennzeichnung eines Mediendatenpakets weist auf die Zeit
hin, zu der das Mediendatenpaket von der Quelle erzeugt wurde. Die
erste Mediensenke 1 und die zweite Mediensenke 2 decodieren
die Medienda tenpakete im Fall von codierten Daten. Die Daten werden
dann in entsprechende Puffer gespeichert, d.h. einem ersten Puffer 1041 der
ersten Mediensenke 1 und einem zweiten Puffer 1042 der
zweiten Mediensenke 2, bis die gemeinsame Abspielzeit 105 für das entsprechende
Paket erreicht ist. Diese gemeinsame Abspielzeit 105 wird
von den Mediensenken für
jedes Paket bestimmt, indem ein einmalig ermittelter Abspielzeitversatz
der Zeit hinzugefügt wird,
auf die mittels der Zeitkennzeichnung eines Mediendatenpakets hingewiesen
wird. Wird die gemeinsame Abspielzeit 105 für ein Paket
erreicht, so wird das Mediendatenpaket von der Mediensenke abgespielt.
In dem Beispiel von 1 kennzeichnen die Zeitkennzeichnungen
des ersten Mediendatenpakets 1021 und des zweiten Mediendatenpakets 1022 denselben
Zeitpunkt. Deshalb werden diese Mediendatenpakets von der ersten
Mediensenke 1 und der zweiten Mediensenke 2 zu
exakt demselben Zeitpunkt abgespielt.
-
Der
Abspielzeitversatz muss zwischen der Medienquelle 101 und
allen Senken einer Medienperiode (hier: Der ersten Mediensenke 1 und
der zweiten Mediensenke 2) ausgetauscht werden, wobei die Übertragungszeitperioden,
die Decodierungszeitperioden, die verfügbaren Puffergrößen und
eine möglicherweise
lockere Synchronisation der Medienquelle 101 an eine globale
Uhrzeit berücksichtigt
werden.
-
Hinsichtlich
der Takte wird angenommen, dass in einem Medien-Streaming-Gerät zwei Takte verfügbar (zugänglich)
sind: Der Abtasttakt und die globale Uhrzeit (globaler Takt). Der
Abtasttakt stellt denjenigen Takt dar, der inhärent im Mediendatenstrom vorliegt.
Im Falle einer CD als Beispiel einer Quelle eines Audiodatenstroms
läuft dieser
Abtasttakt mit 44,1 kHz. Die globale Uhrzeit lässt sich von allen Quellen-
und Senken-Geräten,
welche in die Medienperiode eingebunden sind, lesen. Für IP-Netzwerke
beschreibt das Network Time Protocol (NTP) wie ein NTP-Takt durch
ein Netzwerk hindurch aufrecht erhalten werden kann. Für Anwendungen mit
strengen Anforderungen, wie beim Synchronisieren von zwei Stereokanälen, kann
die Genauigkeit und Taktauflösung
eines solchen NTP-Taktes möglicherweise
nicht ausreichend sein. Deshalb wird angenommen, dass ein Takt mit
einer weitaus höheren Genauigkeit
und Auflösung
verfügbar
ist. Dies ist in einigen drahtlosen Systemen der Fall, die einen
gemeinsamen Takt für
alle gleichgestellten Partner im Kommunikationssystem zur Ausführung eines
synchronisierten Frequenzspringens erfordern. Ein Beispiel für ein solches
drahtloses System ergibt sich aus der Bluetooth-Spezifikation, bei
der alle Teilnehmer eines Piconet einen gemeinsamen Takt aufrecht erhalten.
Die Zeit des gemeinsamen Taktes lässt sich von den Medienanwendungen
als globale Uhrzeit verwenden. Gewöhnlich werden die Abtasttaktzeit und
die globale Uhrzeit in verschiedenen Einheiten gemessen. Beispielsweise
kann die globale Uhrzeit in Einheiten von Mikrosekunden ticken,
wobei der Abtasttakt in Einheiten einzelner Samples als kleinste
Einheit ticken kann.
-
Hinsichtlich
der Zeitkennzeichnungen wird angenommen, dass diese auf die in RTP
beschriebene Weise verwendet werden. Dies bedeutet, dass eine Zeitkennzeichnung
eines Mediendatenpakets den Zeitpunkt spezifiziert, zu dem das erste
Sample des Pakets in Zeiteinheiten des Abtasttaktes erzeugt wurde.
Zusätzlich
zum Mediendatenstrom, welcher die Mediendatenpakete gemäß RTP überträgt, werden
Steuerpakete zwischen den Teilnehmern, d.h. zwischen den Medienquellen
und den Mediensenken eines Datenstroms, ausgetauscht. Diese Steuerpakete
enthalten keine Mediendaten, jedoch abgesehen von weiterer Information
zwei Zeitkennzeichnungen, die denselben Zeitpunkt kennzeichnen,
wobei eine Zeitkennzeichnung auf die Zeit in Zeiteinheiten des Abtasttaktes
hinweist und die andere Zeitkennzeichnung auf denselben Zeitpunkt
in Zeiteinheiten der globalen Uhrzeit hinweist. Mit dieser Information kann
eine Mediensenke eine Abtasttaktzeit bestimmen, falls eine globale
Uhrzeit gegeben ist, und umgekehrt kann diese eine globale Uhrzeit
bestimmen, falls eine Abtasttaktzeit gegeben ist. Deshalb erfüllen die
Steuerpakete die Funktion der Verknüpfung zwischen der Abtasttaktzeit
der Quellen und der globalen Uhrzeit. Es ist somit für eine Mediensenke
möglich,
den Zeitpunkt zu bestimmen, in dem ein Mediendatenpaket in Zeiteinheiten
der globalen Uhrzeit erzeugt wurde, indem die Zeit, auf die über die
in Zeiteinheiten des Abtasttaktes gegebene Zeitkennzeichnung des
Mediendatenpakets hingewiesen wird, umgewandelt wird.
-
In 2 wird
die Annahme getroffen, dass eine globale Uhrzeit 201 der
Medienquelle 202 und allen n Mediensenken, d.h. den Mediensenken 203-1, 203-2,
..., 203-n zugängig
ist. Diese globale Uhrzeit kann beispielsweise der Zeit des Taktes
entsprechen, der von digitalen Bussystemen oder drahtlosen digitalen Übertragungssystemen
verwendet wird. Zudem wird angenommen, dass dieser Takt die Anforderungen
hinsichtlich der Genauigkeit und Auflösung im Hinblick auf die gewünschte Synchronisation
erfüllt.
Typischer Weise ist dieser Takt sehr nahe an der Bitübertragungsschicht,
z.B. im Basisband eines derartigen Übertragungssystems, positioniert. Für Geräte allgemeiner
Verwendung wie einem PC oder einem PDA 202 bedeutet dies,
dass ein derartiger Takt extern liegt und lediglich über eine
externe Verbindung 204, z.B. USB oder RS232, zugängig ist. Ein
Beispiel hierfür
ist ein Bluetooth-Modul, das an einem PC über USB angeschlossen ist.
Der Bluetooth-Basisbandtakt
wird automatisch mit allen Geräten
innerhalb eines Piconet synchronisiert, da diese Taktinformation
zur Synchronisation des Frequenzspringens aller Piconet-Teilnehmer
verwendet wird. Die systemeigene Bluetooth-Taktinformation muss dann
von dem Bluetooth-Modul zum PC über
das USB-Bussystem zugeführt
werden.
-
Da
die gewöhnlich
für diese
Art externer Verbindung genutzten Bussysteme nicht immer derart gestaltet
sind, dass diese einen Transport mit sehr geringen garantierten
Bereitstellungszeiten ermöglichen,
kann die Taktinformation ihre Genauigkeit (Gültigkeit) verlieren, wenn diese
durch ein solches Bussystem transportiert wird. Beispielsweise verliert
eine Taktinformation einer Genauigkeit von einigen Mikrosekunden
viel von ihrem Wert, falls diese durch ein Bussystem transportiert
wird, das eine Verzögerung von
einigen Millisekunden einbringt, insbesondere wenn diese Verzögerung Gegenstand
einer zufälligen
Schwankung von einigen Millisekunden ist, d.h. die Zeit, die z.B.
zur Erzeugung einer Zeitkennzeichnung verwendet wird, kann möglicherweise
ihre Gültigkeit
verlieren. Zusätzlich
führt ein
Nicht-Echtzeitbetriebssystem 205,
welches typischer Weise auf Mehrzweckgeräten wie PCs und PDAs läuft, zu
noch mehr Ungenauigkeit der Taktinformation. In 2 kennzeichnet
der Zickzack-Pfeil 206 durch die Ebenen der Medienquelle 202 diese
Unsicherheit und Ungenauigkeit der Taktinformation, die von der
Medienanwendung empfangen wird.
-
Andererseits
werden als Mediensenken, d.h. den n Mediensenken 203-1, 203-2,
..., 203-n typischer Weise Einzweckgeräte (eingebettete Geräte) verwendet,
z.B. Lautsprecher. Derartige Einzweckgeräte können als eingebettetes System
implementiert werden. Dies ermöglicht
einen direkteren Pfad zur globalen Uhrzeit, d.h. die globale Uhrzeit
lässt sich
präzise
bestimmen. Beispielsweise kann die Medienanwendung 207 auf
dem Basisbandprozessor des Übertragungssystems
ablaufen. Dies bedeutet, dass die Medienanwendung einen sehr direkten
Zugang zum Takt ohne signifikante Verzögerung und ohne signifikante
Unsicherheit hat. Deshalb ist eine präzise Taktinformation mit einer
Genauigkeit von einigen Mikrosekunden für die Medienanwendung 207 der
Mediensenke verfügbar,
da diese nicht durch langsame Bussysteme transportiert werden muss. Der
geradlinige Pfeil 208 mit den n Mediensenken 203-1, 203-2,
..., 203-n in 2 kennzeichnet diesen direkten
Zugang.
-
Wie
in 2 gezeigt ist, nutzt diese Erfindung den Umstand,
dass mehrere Mediensenken, d.h. die n Mediensenken, untereinander
aufgrund deren direkten Zugriff auf den globalen Takt (globale Uhrzeit)
sehr fest synchronisiert werden können, wobei für das Quellengerät eine lockere
Synchronisation zu den Senkengeräte
akzeptabel ist. Beim kontinuierlichen Übertragen (Streaming) von Stereo-Audiodaten
von einem CD-Spieler an zwei Lautsprecher kann die Verzögerung vom
Senden eines Pakets vom CD-Spieler bis zum Abspielen in den Lautsprechern
beispielsweise einige Millisekunden betragen, wobei jedoch die Verzögerung zwischen
dem linken und rechten Lautsprecher lediglich einige Mikrosekunden
betragen kann. Ein geeignetes Puffern in den Mediensenken kann deshalb
diese Ungenauigkeit der Taktinformation auf der Quellenseite kompensieren.
Da die verfügbare
Taktinformation in der Medienquelle weniger genau und weniger zuverlässig ist
als diejenige in der Mediensenke, kann die auf dieser Basis erzielte
Synchronisation als "asymmetrische Synchronisation" bezeichnet werden.
-
Die
globale Uhrzeit wird vorzugsweise einmalig auf der Quellenseite
direkt am Anfang der kontinuierlichen Übertragungsperiode gelesen,
um den Abtasttakt an die globale Uhrzeit zu koppeln. Diese Taktinformation
lässt sich
zum Erstellen der Zeitkennzeichnungen des ersten Steuerpakets verwenden,
das an die Mediensenken übermittelt
wird. Hinsichtlich der Zeitkennzeichnungen mit globaler Uhrzeit
in nachfolgenden Steuerpaketen, lässt sich die Zeitdifferenz
durch Zählen
der Anzahl von Samples berechnen, anstatt die globale Uhrzeit erneut
zu lesen. Dies ist darauf zurückzuführen, dass
die Variation der Bereitstellungszeit der globalen Uhrzeitinformation
gewöhnlich
zu groß ist
und zu Lücken
oder Sprüngen
beim Abspielen auf der Senkenseite führen würde.
-
In 3 sendet
die Medienquelle 101 Mediendatenpakete an die erste Mediensenke 1 und
an die zweite Mediensenke 2. Zu Beginn des Ablaufs muss
ein Abspielzeitversatz in einem Schritt 304 ausgehandelt
(bestimmt) werden. Dieser ausgehandelte Abspielzeitversatz wird
beiden Mediensenken übermittelt,
d.h. der ersten Mediensenke 1 und der zweiten Mediensenke 2,
und wird von den Mediensenken weiter zur Bestimmung einer gemeinsamen
Abspielzeit für
jedes Paket verwendet. Eine Zeitkennzeichnung eines Mediendatenpakets
kennzeichnet den Zeitpunkt, zu dem ein Paket in Zeiteinheiten des
Abtasttaktes erzeugt wurde. Zum Bestimmen einer gemeinsamen Abspielzeit,
d. h. dem Zeitpunkt, zu dem eine Senke ein Mediendatenpaket physikalisch
abzuspielen hat, wird die Zeit, auf die die Zeitkennzeichnung des
Mediendatenpakets hinweist, in eine globale Uhrzeit in Zeiteinheiten
der globalen Uhrzeit umgewandelt und der ausgehandelte Abspielzeitversatz wird
dieser globalen Uhrzeit hinzuaddiert. Für die Aushandlung des Abspielzeitversatzes
wird die erwartete Übermittlungsdauer,
eine potentielle Decodierzeit und die verfügbaren Mediensenkenpuffergrößen mit
berücksichtigt.
Da die globale Uhrzeitinformation auf der Quellenseite ungenau und
statistischen Schwankungen, d.h. Variationen, unterliegen kann,
muss die Quelle dem Abspielzeitversatz eine Variationszeit für den ungünstigsten
Fall hinzuaddieren. Dadurch wird die Situation vermieden, dass die gemeinsame
Abspielzeit bereits abgelaufen ist, wenn ein Mediendatenpaket die
Senke erreicht.
-
Obwohl
die globale Uhrzeit der Medienquelle unter obiger Schwankung leidet,
wird diese einmalig in einem Schritt 305 zu Beginn einer
Medienübertragungsperiode
gelesen, um den Quellenabtasttakt an die globale Uhrzeit zu koppeln.
In einem nachfolgenden Schritt 306 wird ein Steuerpaket
mit zwei Zeitkennzeichnungen an die erste Mediensenke 1 und die
zweite Mediensenke 2 übertragen.
Beide Zeitkennzeichnungen der Steuerpakete beschreiben denselben
Zeitpunkt, wobei eine Zeitkennzeichnung den Zeitpunkt in Zeiteinheiten
des Quellenabtasttaktes kennzeichnet und die andere Zeitkennzeichnung den
Zeitpunkt in Zeiteinheiten der globalen Uhrzeit kennzeichnet. Somit
kann eine dieses Steuerpaket empfangende Mediensenke den Zeitpunkt
bestimmen, in welchem ein Mediendatenpaket in Zeiteinheiten der
globalen Uhrzeit erzeugt wurde, indem die Zeit verwendet wird, auf
die die Zeitkennzeichnung des Mediendatenpakets in Zeiteinheiten
des Abtasttaktes hinweist.
-
In
dem nächsten
Schritt 307 werden die Mediendatenpakete für jede Senke
erstellt und zeitlich mit dem Zeitpunkt ihrer Erzeugung in Zeiteinheiten des
Quellenabtasttaktes gekennzeichnet. Falls an jede Senke ein getrennter
Datenstrom übertragen wird,
ist dies für
jeden Datenstrom durchzuführen. Falls
ein Datenstrom an mehrere Senken ausgegeben wird, ist dies lediglich
für diesen
einen Datenstrom durchzuführen.
Im Beispiel von 3 wird lediglich ein Datenstrom
an die beiden Mediensenken gesendet. Deshalb wird in Schritt 308 ein
Mediendatenpaket des Datenstroms an die erste Mediensenke 1 und
an die zweite Mediensenke 2 gesendet.
-
Im
nächsten
Schritt 309 decodiert jede Senke die Daten, falls diese
codiert sind. Ebenso wandelt eine Senke in diesem Schritt 309 die
Zeit, auf die die Zeitkennzeichnung des empfangenen Mediendatenpakets
hinweist, in eine Zeit in Einheiten der globalen Uhrzeit um. Dann
bestimmt jede Senke die gemeinsame Abspielzeit durch Addieren des
ausgehandelten Abspielzeitversatzes, der in Zeiteinheiten der globalen
Uhrzeit gegeben ist, zur umgewandelten Zeit, auf die die Zeitkennzeichnung
des empfangenen Mediendatenpakets hinweist. Im nächsten Schritt 310 puffert
jede Senke die Mediendaten, bis die bestimmte gemeinsame Abspieldauer
erreicht ist. Diese Puffer in den Mediensenken müssen groß genug sein, um die zufällige Schwankung
der Taktinformation in der Medienquelle, die zufällige Schwankung der Übertragungsverzögerung und
eine mögliche Schwankung
der Decodierverzögerung
kompensieren zu können.
Mit dem Erreichen der gemeinsamen Abspielzeit 105 spielt
jede Senke die Medien im nächsten
Schritt 311 physikalisch ab.
-
Für eine beliebige
Zeitkennzeichnung nachfolgend übermittelter
Mediendatenpakete von der Medienquelle 301 an die erste
Mediensenke 1 und die zweite Mediensenke 2 verwendet
die Medienquelle 301 die Abtasttaktzeit in Schritt 312 zur
Bestimmung der Zeit für
die Zeitkennzeichnung, anstelle die globale Uhrzeit erneut zu lesen.
Dies stellt sicher, dass keine Lücken
oder Sprünge
in der Senkenseite aufgrund der Ungenauigkeit der globalen Uhrzeit
in der Quellenmedienanwendung auftreten. In Schritt 313 wird
die Abtasttaktzeit anstatt einem erneuten Lesen der globalen Uhrzeit
für die
Zeitkennzeichnung des von der Quelle zur Senke gesendeten nächsten Mediendatenpakets
verwendet. In Schritt 314 werden Mediendatenpakete an jede
Mediensenke, d.h. die erste Mediensenke 1 und die zweite
Mediensenke 2, mit der Zeitkennzeichnung gesendet, die
den Zeitpunkt ihrer Erzeugung auf Basis des Quellenabtasttaktes
kennzeichnet. Die Zeitkennzeichnung eines Mediendatenpakets ist
gewöhnlich in
dem Mediendatenpaket als Kopfinformation enthalten. Jedoch kann
diese ebenso in getrennten Zeitkennzeichnungspaketen gesendet werden.
-
Wie
der 3 entnommen werden kann, werden die Schritte 312, 313 und 314 wiederholt,
bis alle Mediendatenpakete einer Periode ausgesendet wurden, d.h.
neue Zeitkennzeichnungen werden berechnet, Mediendatenpakete werden
mit diesen Zeitkennzeichnungen erstellt und diese Mediendatenpakete
werden an die Mediensenken gesendet.
-
Als
Ergebnis eines solchen Ablaufs genügt es, dass die Quellenmedienanwendung
lediglich leicht an die globale Uhrzeit gekoppelt ist, wobei jede Mediensenke
fest an die globale Uhrzeit gekoppelt ist. Wird deshalb ein Nicht-Echtzeit-Gerät wie ein
PC oder PDA als Medienquelle und Lautsprecher als Mediensenken verwendet,
können
die Lautsprecher untereinander sehr fest synchronisiert werden,
wodurch die strengen Anforderungen seitens der menschlichen Wahrnehmung
von räumlichem
Schall erfüllt werden.
-
4 zeigt
ein mögliches
Szenario, bei dem der erfindungsgemäße Ablauf angewandt werden kann.
Ein mit Bluetooth ausgestatteter PC 400 führt eine
Multi-Übertragung
eines Stereo-Audio-Datenstroms in Form von Mediendatenpaketen an
zwei Bluetooth-Lautsprecher, d. h. einen ersten Bluetooth-Lautsprecher 4021 und
einen zweiten Bluetooth-Lautsprecher 4022, über zwei
Bluetooth-Verbindungen, d.h. eine erste Bluetooth-Verbindung 4011 und
eine zweite Bluetooth-Verbindung 4012, durch. Über jede
Verbindung werden Mediendatenpakete des Audiosignals eines Stereosignals
an den entsprechenden Lautsprecher übermittelt.
-
Das
Bluetooth-Modul auf dem PC 400 ist über USB angeschlossen, wobei
Bluetooth in dem ersten Bluetooth-Lautsprecher 4021 und
in dem zweiten Bluetooth-Lautsprecher 4022 direkt in das Systemdesign
eingebunden ist. Die von dem PC und den Bluetooth-Lautsprechern
zu verwendende globale Uhrzeit entspricht dem Bluetooth-Basisbandtakt,
der in jeder Bluetooth-Basisbandimplementierung
inhärent
vorhanden ist. Dieser Bluetooth-Basisbandtakt
ist zwischen allen Teilnehmern eines Bluetooth-Piconet sehr gut
synchronisiert.
-
Der
PC 400 als Medienquelle der Audioübertragung beginnt mit der
Auswertung der Qualität
und Verzögerung
der Bluetooth-Übertragung
an den ersten Bluetooth-Lautsprecher 4021 und den zweiten Bluetooth-Lautsprecher 4022 unter
Verwendung der Information, die seitens der wie in RTP definierten Steuerpakete
bereitgestellt wird. Zudem fragt der PC die zum Decodieren erforderliche
Zeit und die Pufferfähigkeiten
von jedem Lautsprecher unter Verwendung geeigneter Signalkommandos
ab. Mit dieser Information und der zufälligen Schwankung der Taktinformation
des PC, d.h. einer maximal möglichen Schwankung,
kann der PC einen Abspielzeitversatz bestimmen. Dieser Abspielzeitversatz
wird einmalig an den ersten Bluetooth-Lautsprecher 4021 und an den
zweiten Bluetooth-Lautsprecher 4022 übermittelt und der Zeit hinzugefügt, auf
die die Zeitkennzeichnung jedes Me diendatenpakets eines Mediendatenstroms
hinweist, um die gemeinsame Abspielzeit für jedes Mediendatenpaket zu
erhalten. In einer alternativen Ausführungsform der Erfindung kann
eine gemeinsame Abspielzeit von der Medienquelle, hier: dem PC 400,
für jedes
Mediendatenpaket bestimmt werden und dann zusammen mit jedem Mediendatenpaket,
wie in Verbindung mit 6 unten stehend beschrieben, übertragen
werden.
-
Der
PC 400 als Medienquelle der Datenübertragung erzeugt die Zeitkennzeichnungen.
Falls RTP Mediendatenpakete gesendet werden, beschreiben die Zeitkennzeichnungen
in jedem Mediendatenpaket den Zeitpunkt, zu dem das Paket in Zeiteinheiten des
Abtasttaktes erzeugt wurde. Die Verbindung zur globalen Uhrzeit,
hier: dem Bluetooth-Basisbandtakt, wird durch Bereitstellung zweier
Zeitkennzeichnungen für
denselben Zeitpunkt in den RTCP-Steuerpaketen
erzielt, wobei eine Zeitkennzeichnung den Zeitpunkt in Zeiteinheiten
des Abtasttaktes und die andere den Zeitpunkt in Zeiteinheiten der
globalen Uhrzeit kennzeichnet, siehe obige Beschreibung. Aufgrund der
Ungenauigkeit der auf der PC-Seite verfügbaren Taktinformation, wird
der Basisbandtakt vorzugsweise lediglich für das erste Steuerpaket gelesen.
Für nachfolgende
Steuerpakete wird die Zeitinformation für die Zeitkennzeichnung mit
globaler Uhrzeit durch Zählen
der Anzahl von Samples erzeugt, die seit dem letzten Steuerpaket
abgelaufen sind und dann wird diese Anzahl von Samples in Zeiteinheiten
der globalen Uhrzeit übersetzt.
Wie oben erwähnt,
weist ein Steuerpaket eine Zeitkennzeichnung mit globaler Uhrzeit,
die auf einen Zeitpunkt in Zeiteinheiten der globalen Uhrzeit hinweist,
als auch eine Zeitkennzeichnung mit Abtasttakt auf, die auf denselben
Zeitpunkt in Zeiteinheiten der Abtasttaktzeit hinweist. Durch Kombinieren
der Information, welche durch die in den Mediendatenpaketen und
den Steuerpaketen vorhandenen verschiedenen Zeitkennzeichnungen bereitgestellt
wird, kann jeder Bluetooth-Lautsprecher den Zeitpunkt in Zeiteinheiten
der globalen Taktzeit aus der Zeitkennzeichnung eines Mediendatenpakets
bestimmen, in dem ein Paket von der Quelle erzeugt wurde, wobei
die Zeitkennzeichnung die Erzeugungszeit in Zeiteinheiten des Abtasttaktes
kennzeichnet. Durch Addieren des ausgehandelten Abspielzeitversatzes
wird dann bestimmt, wann die Samples von jedem Mediendatenpaket
abzuspielen sind. Da jede Senke direkt auf den Bluetooth-Basisbandtakt
zugreifen kann, sind alle Senken in der Lage, deren Sample-Abspieltakte
fest mit dem Bluetooth-Basisbandtakt zu synchronisieren.
-
Da
die Taktinformation auf der Quellenseite bis zu einem bestimmten
Grad unpräzise
ist, müssen der
erste Bluetooth-Lautsprecher 4021 und der zweite Bluetooth-Lautsprecher 4022 als
Audio-Mediensenken diese Ungenauigkeit über eine geeignete Puffergröße kompensieren.
Beispielsweise weiß der PC
400, dass die Taktinformation eine maximale Schwankung von 2 ms
aufweist. Um deshalb die Situation zu vermeiden, dass die Abspielzeit
eines Mediendatenpakets bereits abgelaufen ist, wenn das Mediendatenpaket
die Senke erreicht, enthält
dieses diese 2 ms im ausgehandelten Abspielzeitversatz. Mit einer
Schwankung von 2 ms liegen die seitens der Quelle erzeugten Zeitkennzeichnungen
im schlechtesten Fall 1 ms zu früh
oder 1 ms zu spät. Deshalb
müssen
die Senken ausreichend Speicher zum Puffern der Daten während dieser
den ungünstigsten
Fall betreffenden Periode bereitstellen, der dem Quellengerät immer
hinzugefügt
wird um auf der sicheren Seite zu sein.
-
5 zeigt
ein Flussdiagramm zur Darstellung des Sendeprozesses in der Medienquelle 101 und
des Empfangsprozesses in der Mediensenke 1 gemäß der Erfindung,
wobei die Abspielzeit für
jedes Mediendatenpaket von der Mediensenke bestimmt wird. Dieses
Beispiel basiert auf dem RTP-Standard. In einem ersten Schritt 603S wird
der Abspielzeitversatz von der Medienquelle 101 ermittelt
(ausgehandelt) unter Berücksichtigung
der Übertragungszeitperioden,
der Decodierzeitperioden und der verfügbaren Puffergrößen der
in die Mediendatenübertragungsperiode
eingebundenen Mediensenken. Um diese Informationen zu erhalten,
fragt die Medienquelle 101 die Mediensenke 1 ab.
Der Abspielzeitversatz wird dann in Form eines Datensteuerpakets 604S an
die Mediensenke 1 übermittelt.
Dieses Datensteuerpaket 604S enthält den Abspielzeitversatz in
Zeiteinheiten der globalen Uhrzeit. Die Mediensenke 1 empfängt das übermittelte
Datensteuerpaket 604R, das dem von der Medienquelle 101 ausgesendeten
Datensteuerpaket 604 entspricht. Die Mediensenke 1 speichert
den Abspielzeitversatz in Einheiten der globalen Uhrzeit, um den
Abspielzeitversatz nachfolgender empfangener Mediendatenpakete wie unten
erläutert
zu bestimmen.
-
Bevor
Mediendatenpakete von der Medienquelle 101 an die Mediensenke 1 gesendet
werden, wird ein Senderberichtpaket von der Medienquelle 101 an
die Mediensenke 1 gesendet. Deshalb wird in dem nachfolgenden
Schritt 605S ein Senderberichtpaket 606S erzeugt.
Das Senderberichtpaket 606S enthält zwei Zeitkennzeichnungen,
eine Abtasttakt-Zeitkennzeichnung 6075 zur Kennzeichnung
eines Zeitpunkts in Zeiteinheiten des Abtasttaktes und eine Globale-Uhrzeit-Zeitkennzeichnung 608S zur Kennzeichnung
desselben Zeitpunkts in Zeiteinheiten der globalen Uhrzeit. Das
Senderberichtpaket 606S wird von der Medienquelle 101 an
die Mediensenke 1 von Zeit zu Zeit übermittelt. Es wird wenigstens
einmal vor jeder Medienübertragungsperiode übermittelt,
jedoch kann dieses ebenso in der Mitte einer Mediendatenübertragungsperiode übermittelt werden.
Die Mediensenke empfängt
dann das übertragene
Senderberichtpaket 606R, das die übermittelte Abtasttakt-Zeitkennzeichnung 607R und
die übermittelte
Globale-Uhrzeit-Zeitkennzeichnung 608R enthält. Da beide
Zeitkennzeichnungen denselben Zeitpunkt kennzeichnen, kann die Mediensenke 1 im
folgenden Schritt 609R die Abtasttaktzeit mit der globalen
Uhrzeit verknüpfen.
Dies bedeutet, dass für nachfolgend
empfangene Zeitkennzeichnungen eine Abtasttaktzeit ermitteln kann,
falls eine globale Uhrzeit aus der jeweiligen Zeitkennzeichnung
gegeben ist, und umgekehrt kann diese eine globale Uhrzeit bestimmen,
falls eine Abtasttaktzeit gegeben ist.
-
In
einem nachfolgenden Datenbearbeitungsschritt 609S erzeugt
die Medienquelle 101 ein Mediendatenpaket 610S.
Dieses Mediendatenpaket 610S enthält eine Abtasttakt-Zeitkennzeichnung,
die auf die Erzeugungszeit des Mediendatenpakets 610S in
Zeiteinheiten des Abtasttaktes hinweist und dieses enthält zudem
die Mediendaten 612S. Dieses Mediendatenpaket 610S wird
an die Mediensenke 1 übermittelt.
Die Mediensenke 1 empfängt
das übermittelte
Mediendatenpaket 610R, das die übermittelte Abtasttakt-Zeitkennzeichnung 611R,
die den Erzeugungszeitpunkt des übermittelten
Mediendatenpakets 610R in Zeiteinheiten des Abtasttaktes
kennzeichnet, und die übermittelten
Mediendaten 612R enthält.
Die Mediensenke 1 berechnet dann in einem ersten Berechnungsschritt 613R die
globale Uhrzeit der Erzeugung in Zeiteinheiten der globalen Uhrzeit unter
Verwendung der Information, die über
das übermittelte
Senderberichtpaket 606R vorab empfangen wurde. Nun kann
die Abspielzeit in einem zweiten Berechnungsschritt 614R in
Zeiteinheiten der globalen Uhrzeit berechnet werden, indem die berechnete
globale Uhrzeit der Erzeugung und der Abspielzeitversatz addiert
werden. Dann werden die übermittelten
Mediendaten 612R in einem Pufferschritt 615R gepuffert,
bis die bestimmte Abspielzeit in Zeiteinheiten der globalen Uhrzeit
erreicht ist. Schließlich
werden die Mediendaten in einem Abspielschritt 616R physikalisch
zu exakt der bestimmten Abspielzeit abgespielt, welche nun in Zeiteinheiten
der globalen Uhrzeit in der Mediensenke 1 bekannt ist.
Wie vorhergehend erwähnt
wurde, ist das zeitlich exak te Abspielen möglich, da die Mediensenke 1 einen
direkten (festen) Zugriff auf die globale Uhrzeit hat.
-
Für nachfolgende
Mediendatenpakete einer Medienübertragungsperiode
werden der Datenbearbeitungsschritt 609S, die Übermittlung
von Mediendatenpaketen von der Medienquelle 101 zur Mediensenke 1,
der erste Berechnungsschritt 613R, der zweite Berechnungsschritt 614R,
der Pufferschritt 615R und der Abspielschritt 616R wiederholt.
Wie oben erwähnt,
ist es innerhalb einer derartigen Medienübertragungsperiode ebenso möglich, dass
ein Senderberichtpaket 606S von Zeit zu Zeit von der Medienquelle 101 zur
Mediensenke 1 gesendet wird.
-
6 zeigt
ein Flussdiagramm des Sendeprozesses in der Medienquelle 501 und
des Empfangsprozesses in der Mediensenke 502 gemäß einer
ersten alternativen Ausführungsform
der Erfindung, wobei die Abspielzeit für jedes Paket von der Medienquelle 501 bestimmt
und mit jedem Mediendatenpaket übertragen
wird. Der dargestellte Prozess wird für jedes von der Medienquelle
(SRC) 501 an die Mediensenke (SNK) 502 gesendete
Mediendatenpaket ausgeführt.
Es sollte beachtet werden, dass 6 den Prozess
lediglich bezüglich
einer einzelnen in eine Medienübertragungsperiode
eingebundenen Mediensenke darstellt. Derselbe Prozess wird von weiteren,
in dieselbe Medienperiode eingebundenen Mediensenken ausgeführt.
-
In
einem ersten Schritt 510 wird die Abspielzeit für das Mediendatenpaket 511,
das nachfolgend ausgesendet wird, erzeugt. Die Abspielzeit hängt von der
zufälligen
Schwankung der Taktinformation der Medienquelle 501, der Übertragungszeitperioden, der
Decodierzeitperioden und der verfügbaren Puffergrößen der
in die Medienübertragungsperiode
eingebundenen Mediensenken ab. Wie oben erwähnt ist, werden diese Informationen
zwischen der Medienquelle 501 und der Mediensenke 502 ausgehandelt.
Das Mediendatenpaket 511 enthält die Mediendaten 513 und
die Globale-Uhrzeit-Zeitkennzeichnung 512,
die die Abspielzeit für
das Mediendatenpaket 511 in Einheiten der globalen Uhrzeit
kennzeichnet. Dieses Mediendatenpaket 511 wird an die Mediensenke 502 übertragen.
Das übertragene
Mediendatenpaket 514 enthält die Mediendaten 516 und
die Globale-Uhrzeit-Zeitkennzeichnung 515,
welche jeweils den Mediendaten 513 und der Globalen-Uhrzeit-Zeitkennzeichnung 512 entsprechen,
die von der Medienquelle 501 ausgesendet wurden. Nach dem Empfangen
des übertragenen
Mediendatenpakets 514 puffert die Mediensenke 502 die
Mediendaten 515 in einem Verarbeitungsschritt 517,
bis die über die übermittelte
Globale-Uhrzeit-Zeitkennzeichnung 515 gekennzeichnete
Abspielzeit erreicht ist. Dann werden die Mediendaten in einem Abspielschritt 518 exakt
zur bestimmten Abspielzeit, auf welche die Globale-Uhrzeit-Zeitkennzeichnung 515 hinweist,
von der Mediensenke 502 abgespielt. Wie oben erwähnt wurde,
ist das exakte zeitliche Abspielen möglich, da die Mediensenke 502 einen
direkten (festen) Zugriff auf die globale Uhrzeit hat. Hinsichtlich
Anwenderszenarios mit strengen zeitlichen Anforderungen wie der
Synchronisation des linken und rechten Kanals einer Audioverteilung
stellt dieser Zugriff auf die Taktinformation einen kritischen Punkt
dar.
-
Um
eine Abspielzeit zu verhandeln (zu planen), brauchen alle Geräte Zugriff
auf dieselbe Taktinformation (globale Uhrzeit) als gemeinsame Zeitreferenz.
Dann kann die Medienquelle ein Mediendatenpaket einplanen und alle
Senken müssen
das Mediendatenpaket puffern, bis die festgesetzte globale Uhrzeit
erreicht ist.
-
7 zeigt
eine zweite alternative Ausführungsform
der Erfindung, wobei die Mediensenken den Abspielzeitversatz untereinander
aushandeln. In dieser zweiten alternativen Ausführungsform handeln eine dritte
Mediensenke 71 und eine vierte Mediensenke 72 einen
Abspielzeitversatz aus unter Berücksichtigung
der Übertragungszeitperioden,
der Decodierzeitperioden, der verfügbaren Puffergrößen und
einer möglicherweise
lockeren Synchronisation der Medienquelle 101 an eine globale
Uhrzeit. Die dritte Mediensenke 71 und die vierte Mediensenke 72 können den
Abspielzeitversatz über
eine direkte Datenverbindung 73 (direkter Kommunikationskanal) aushandeln,
oder diese können
den Abspielzeitversatz mittels einer ersten Datenverbindung 74 und
einer zweiten Datenverbindung 75 über die Medienquelle 101 (indirekter
Kommunikationskanal) aushandeln. Die erste Datenverbindung 74 verbindet
die Medienquelle 101 und die dritte Mediensenke 71 und die
zweite Datenverbindung 75 verbindet die Medienquelle 101 und
die vierte Mediensenke 72. Nachdem der Abspielzeitversatz
zwischen der dritten Mediensenke 71 und der vierten Mediensenke 72 ausgehandelt
wurde, beginnt die Medienquelle 101 mit dem Senden zeitlich
gekennzeichneter Mediendatenpakete über die erste Datenverbindung 74 und
die zweite Datenverbindung 75. In dem Beispiel von 7 wird
ein drittes zeitlich gekennzeichnetes Mediendatenpaket 76 über die
erste Datenverbindung 74 gesendet und ein viertes zeitlich
gekennzeichnetes Mediendatenpaket 77 wird über die
zweite Datenverbindung 75 gesendet. Die Zeitkennzeichnungen
der Medien datenpakete können
den Zeitpunkt ihrer Erzeugung in Zeiteinheiten der globalen Uhrzeit
kennzeichnen oder diese können
ihren Erzeugungszeitpunkt in Zeiteinheiten der Abtasttaktzeit kennzeichnen.
Im letzteren Falle ist eine Abfolge gemäß 5 auszuführen, bevor
Mediendatenpakete gesendet werden, d.h. ein Steuerpaket muss von
der Medienquelle 101 an die dritte Mediensenke 71 und
die vierte Mediensenke 72 gesendet werden, so dass die
dritte Mediensenke 71 und die vierte Mediensenke 72 den Zeitpunkt
der Erzeugung eines Mediendatenpakets in Zeiteinheiten der globalen
Uhrzeit bestimmen können.
Nachdem die dritte Mediensenke 71 und/oder die vierte Mediensenke 72 ein
Mediendatenpaket empfangen haben, bestimmen diese die Abspielzeit für das empfangene
Mediendatenpaket durch Addieren des ausgehandelten Abspielzeitversatzes
und der Zeit, auf die die Zeitkennzeichnung des Mediendatenpakets
hinweist. In diesem Beispiel bestimmt die dritte Mediensenke 71 die
Abspielzeit des dritten zeitlich gekennzeichneten Mediendatenpakets 76 durch
Addieren des ausgehandelten Abspielzeitversatzes und der Zeit, auf
die die Zeitkennzeichnung dieses dritten zeitlich gekennzeichneten
Mediendatenpakets 76 hinweist, und diese spielt das dritte
zeitlich gekennzeichnete Mediendatenpaket 76 exakt zu dieser
bestimmten Abspielzeit ab. Zusätzlich
bestimmt die vierte Mediensenke 72 die Abspielzeit des vierten
zeitlich gekennzeichneten Mediendatenpakets 77 durch Addieren
des ausgehandelten Abspielzeitversatzes und der Zeit, auf die die
Zeitkennzeichnung dieses vierten zeitlich gekennzeichneten Mediendatenpakets 77 hinweist,
und diese spielt das vierte zeitlich gekennzeichnete Mediendatenpaket 77 exakt
zu dieser bestimmten Abspielzeit ab.
-
Zusammenfassend
werden somit erfindungsgemäß Mediendatenpakete
in einem digitalen Audioübertragungssystem
von einer Medienquelle an Mediensenken (z.B. Lautsprecher) übertragen. Wird
ein Mediendatenpaket von einer Mediensenke empfangen und enthält dieses
einem Audiosignal zugehörige
Audiodaten von z.B. einem Stereosignal, ist es wichtig, dass dieses
Mediendatenpaket zum selben Zeitpunkt abgespielt wird wie ein Mediendatenpaket,
das von einer weiteren Mediensenke empfangen wird und ein Audiosignal
desselben Stereosignals enthält,
d.h. die Mediendatenpakete müssen synchron
abgespielt werden. Um dieses synchrone Abspielen der Mediendatenpakete
in verschiedenen Mediensenken sicherzustellen, wird eine gemeinsame
Abspielzeit von der Medienquelle oder der Mediensenke bestimmt und
Mediendatenpakete werden so lange gepuffert, bis diese gemeinsame
Abspielzeit erreicht ist. Die Medienquelle oder die Mediensenke bestimmen
die gemeinsame Abspielzeit auf Basis einer globalen Uhrzeit, welche
auf Basis einer Abtasttaktzeit berechnet wird.