-
HINTERGRUND DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Datenstreamingsystem, welches
zum Streamen bzw streamartigen Wiedergeben von Daten über ein
Netzwerk wie ein LAN in der Lage ist, um zu verursachen, dass ein
Serversystem und ein Clientsystem Daten wiedergeben, beispielsweise
Audioinhalte wie Musik.
-
Ein
solches System wurde in praktischer Verwendung umgesetzt, und zwar
derart, dass die Audiodaten (Musiksammlung), welche durch die gesamte Familie
gesammelt wurde, in einem Serversystem gespeichert werden, und dann
sind Clientsysteme, welche in jeweiligen Räumen vorgesehen sind, mit dem
Serversystem über
das Netzwerk verbunden, wobei jedes Mitglied der Familie in jedem
Raum des Hauses beliebig die Audiodaten hören kann, welche in dem Serversystem
gespeichert sind.
-
Nichtpatentliteratur 1:
-
- „Music
Cast Catalog", (online),
August 2002, Yamaha Corporation, (11. November, 2002, Search), Internet <URL:http://www.yamaha.co.jp/product/av/prd/musiccast/index.html>
-
In
dem obigen System kann jedes Mitglied der Familie frei die Audiodaten
hören,
welche in dem Serversystem akkumuliert sind, und zwar über jedes der
Vielzahl von Clientsystemen in jedem Raum. Jedoch hatten beispielsweise
solche Systeme keine Broadcast- bzw Rundsendefunktion zum Aussenden der
gleichen Musik zu dem gesamten Raum zur gleichen Zeit bei einer
Party, oder ähnliches.
-
Jeweilige
Clients können
die Audiodaten empfangen, welche das Serversystem streamingmässig zu
dem Netzwerk ausgibt, und dann solche Daten wiedergeben. In diesem
Fall gibt es Probleme derart, dass weil es schwierig ist für jeweilige
Clientsysteme, die Wiedergabestartzeitgebung perfekt zu synchronisieren,
und auch weil die Geschwindigkeit der Wiedergabe der Audio daten
aufgrund einer Fluktuation in der Oszillationsfrequenz des Taktgeneratorschaltkreises
variiert, jeweilige wiedergegebene Orts der Musik unter jeweiligen
Clientsystemen aufgeteilt sind, während die Audiodaten wiedergegeben werden.
-
Um
diesem Nachteil abzuhelfen, wird es bedacht, dass absolute Zeiten
der Takte in jeweiligen Clientsystemen untereinander synchronisiert
werden, und zwar durch Einbauen des NTP Servers (NTP (Network Time
Protocol = Netzwerkzeitprotokoll) ist ein Protokoll, welches zum
Synchronisieren der Takte bzw. Taktgeber von Computern über ein Netzwerk
vorgesehen ist) in das Netzwerk. In diesem Fall gibt es das Problem,
dass eine Systemkonfiguration kompliziert wird und eine Erhöhung der
Kosten mit sich bringt. Ferner wird es bedacht, dass eine Präzision des
Taktgeneratorschaltkreises in jeweiligen Clientsystemen verbessert
werden soll. In diesem Fall werden nicht nur die Kosten von jedem
Clientsystem erhöht,
sondern es ist auch unmöglich, das
Fortschreiten der Musik unter jeweiligen Clientsystemen perfekt
zu synchronisieren, weil es eine Grenze zur Verbesserung der Präzision gibt.
-
US 2002/040403 A1 offenbart
eine Vorrichtung zum Vorbereiten von Streamingmedien wie einem Audio-
oder Audio-visuellen Werk zur Wiedergabe, welches folgendes aufweist:
(a) einen Puffer, welcher Daten korrespondierend zu den Streamingmedien
speichert; (b) einen Puffermonitor, welcher einen Betrag von Daten
bestimmt, welche in dem Puffer gespeichert sind; (c) einen Ratenbestimmer,
ansprechend auf die Ausgabe des Puffermonitors, welcher eine Wiedergaberate
bestimmt; und (d) ein Zeitskalenmodifikationssystem, ansprechend
auf die Wiedergaberate, welches mindestens einen Teil der Daten
in dem Puffer zeitskalenmodifiziert. In einem weiteren Ausführungsbeispiel
gibt ein Wiedergabesystem die zeitskalenmodifizierten Daten als
einen Teil der Streamingmedien wieder.
-
US-A-5,699,481 offenbart,
dass mehrfach Sprache-Bits-Strom-Rahmen-Puffer zwischen der Steuerung und dem
Sprachdekodierer verwendet werden. Wann immer exzessive oder fehlende Sprachpakte
detektiert werden, schaltet der Sprachdekodierer in einen speziellen
Korrekturmodus. Wenn es zu viel gibt werden die gepufferten Rahmen schnell
herausgespielt; wenn es zu wenig gibt werden die gepufferten Rahmen
langsam herausgespielt. Für
die schnelle Abspielung muß einige
Sprachinformation verworfen werden, während für die langsame Abspielung einige
sprachähnliche
Information synthetisiert werden muß. Die Sprache kann in Unterrahmeneinheiten
hantiert werden, welche 52 Sampels zu einer Zeit sein kann. Niedrige
Energie, leise oder nicht stimmhafte Unterrahmen, welche auch nicht
Periodizität
anzeigen, werden detektiert und manipuliert. Ferner wird das dekodierte
Signal bei der Anregungsphase manipuliert; vor dem endgültigen LPC
Synthesefilter, was zu einem transparenten wahrnehmbaren Effekt
an der manipulierten Sprachqualität führt. Zusätzlich werden die Puffer derart
vergrößert, dass
das Problem, welches durch die Steuerungsasynchronität verursacht
wird, eliminiert wird. Ferner erhalten die Puffer, für Gesamtverzögerung,
welche durch Multiplexieren von Daten und Sprachübertragungen verursacht wurde,
die kleinste Anzahl von Sprachpaketen, welche notwendig ist zum
Verhindern von Pufferunterlauf während einer
Datenpaketübertragung,
während
Sprachverzögerung
minimiert wird und die Datenübertragungseffizienz
erhalten wird.
-
Weitere
Aufmerksamkeit wird gelenkt auf JINYONG JO, YOONYOUNG KIM UND JONGWON KIM: "Integration of Error
Recovery and Adaptive Playout for Enhanced Multicast Media Streaming" NETWORKED MEDIA
LAB., DEPARTMENT OF INFORMATION AND COMMUNICATIONS, Online, September
2003, Seiten 1-12, XP002311360, und LAOUTARIS N ET AL: "Intrastream synchronizuation for
continuous media streams: a survey of play-out schedulers" IEEE NETWORK, IEEE INC. NEW YORK, US,
Vol. 16, Nr. 3, Mai 2002, Seiten 30-40, XP002256212, ISSN: 0890-8044.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist ein Ziel der vorliegenden Erfindung, ein Audiowiedergabesystem
und ein Audiostreamingsystem vorzusehen, welches es für eine Vielzahl
von Clientsystemen möglich
macht, synchron Audiodaten wiederzugeben, welche streamingmässig von
einem Serversystem zu einem Netzwerk ausgegeben werden.
-
Um
das oben genannte Ziel zu erreichen sieht die vorliegende Erfindung
ein Datenwiedergabesystem gemäß Anspruch
1 vor.
-
In
der vorliegenden Erfindung wird die Wiedergabegeschwindigkeit mit
der Streaminggeschwindigkeit der Audiodaten synchronisiert, welche über das
Netzwerk streamingartig verteilt werden. Mit anderen Worten werden
die Audiodaten bis zu einem Zielwert vor dem Beginn der Wiedergabe
gepuffert, und dann wird die Wiedergabegeschwindigkeit derart gesteuert,
dass eine Menge des Puffers bei dem Zielwert gehalten wird. Deshalb
werden, auch wenn der ursprüngliche
Takt des Audiowiedergabesystems unterschiedlich ist von der Datenlesegeschwindigkeit des
Serversystems als der Streamingverteiler, beide miteinander durch
die Wiedergabegeschwindigkeitsteuerung gekoppelt.
-
In
dem Fall, in welchem eine Vielzahl von Audiowiedergabesystemen mit
dem Netzwerk verbunden sind können
die Wiedergabegeschwindigkeiten von allen Audiowiedergabesystemen
mit der Streaminggeschwindigkeit der gleichen Audiodaten synchronisiert
werden. Deshalb kann die Musik synchron miteinander wiedergegeben
werden. In diesem Fall kann, obwohl die Menge des Puffers unterschiedlich
ist in jeweiligen Clientsystemen, wenn sie mikroskopisch auf einer
Zeitachse gesehen werden, die Wiedergabegeschwindigkeit mit den
Audiodaten gekoppelt sein, welche über das Netzwerk gestreamed
werden, und zwar durch Erhalten der Menge des Puffers bei dem Zielwert,
wenn in einer breiten Perspektive gesehen.
-
Um
die abrupte Steuerung der Wiedergabegeschwindigkeit zu verhindern,
wird der Filterprozess auf dem Parameter angewandt, welcher das Übermass
und das Fehlen in der Menge des Puffers zu einer gegebenen Zeitkonstante
(Trägheit)
anzeigt. Dann wird die Wiedergabegeschwindigkeit (Takt frequenz)
durch den Parameter gesteuert, welcher dem Filterprozess ausgesetzt
wird.
-
In
der vorliegenden Erfindung steuern die Mittel zum Steuern der Wiedergabegeschwindigkeit die
Wiedergabegeschwindigkeit, und zwar innerhalb von vorbestimmten
oberen und unteren Grenzen der Wiedergabegeschwindigkeit, und zwar
auch dann, wenn das Übermass
oder das Fehlen in der Menge des Puffers erhöht wird.
-
Wenn
die Wiedergabegeschwindigkeit stark verändert wird, sogar in dem Fall,
in welchem die Menge des Puffers extrem erhöht und extrem verringert wird,
tritt die Frequenzänderung
zu einem solchen Mass auf, dass der Benutzer solche Frequenzänderung
durch den Hörsinn
unterscheiden kann. Deshalb wird, sogar wenn die extreme Pufferveränderung
verursacht wird, das Übermass
und das Fehlen graduell aufgelöst
und zwar durch Steuern der Wiedergabegeschwindigkeit innerhalb eines
vorbestimmten Bereichs.
-
Das
Einstellen der oberen Grenze und der unteren Grenze der Wiedergabegeschwindigkeit können durch
das Einstellen der oberen Grenze und der unteren Grenze des Wiedergabegeschwindigkeitssteuerungsparameters
(die obere Grenze und die untere Grenze des Parameters werden in
dem später
beschriebenen Ausführungsbeispiel
entschieden) ersetzt werden.
-
In
der vorliegenden Erfindung stoppt das Mittel zum Steuern der Wiedergabegeschwindigkeit
die Wiedergabe der Wiedergabeeinheit, wenn das Fehlen der Menge
von Puffer in der Puffereinrichtung im Übermass zu einem vorbestimmten
Wert ist, und hält die
Wiedergabe gestoppt so lange, bis Daten in der Puffereinrichtung
derart gepuffert werden, dass sie den Zielwert übersteigen.
-
Die
Situation, dass ein Fehlen eines Betrags von Puffern erhöht wird,
korrespondiert zu einem Zustand in welchem eine Wiedergabeposition
der Audiodaten in dem Clientsystem im Wesentlichen von den anderen
Clientsyste men und dem Serversystem abweicht. Deshalb ist es nicht
bevorzugt, dass die Wiedergabe in dieser Situation weitergeführt wird. Als
ein Ergebnis wird in einem solchen Fall das Puffern der Daten einmal
gestoppt und wieder ausgeführt,
und dann wird die Wiedergabe erneut gestartet, nachdem das Clientsystem
wieder in einen Zustand versetzt wurde, in welchem es die Daten
synchron mit anderen Systemen wiedergeben kann. Ein Datenstreamingsystem
der vorliegenden Erfindung beinhaltet ein Serversystem zum Streamen
und Ausgeben von Audiodaten von einem Netzwerk; und eine Vielzahl
von Datenwiedergabesystemen, welche jeweils in Anspruch 1, Anspruch
2 oder Anspruch 3 als ein Clientsystem gegeben sind. Bevorzugterweise beinhalten
die Daten Audiodaten.
-
Gemäß dem Audiostreamingsystem
in dieser Konfiguration können
alle Clientsysteme die Audiodaten wiedergeben, welche streamingmässig von dem
Serversystem auf das Netzwerk synchron ausgegeben werden.
-
In
der vorliegenden Erfindung gibt das Serversystem die Audiodaten
zu dem Netzwerk streamingmässig
aus, und puffert Daten, welche zu einem Zielwert der Menge von Puffer
in dem Clientsystem und einer Übertragungsverzögerungszeit
von dem Serversystem zu dem Clientsystem korrespondieren, und gibt
dann die Daten wieder.
-
In
der vorliegenden Erfindung werden die Audiodaten auch in dem Serversystem
um eine Verzögerungszeit
gepuffert, bis das Clientsystem die Audiodaten zum Wiedergeben/Ausgeben
empfängt, nachdem
die Audiodaten auf das Netzwerk ausgegeben wurden, und dann wiedergegeben/ausgegeben werden.
Deshalb können
nicht nur die Clientsysteme sondern auch das Serversystem und das
Clientsystem die Audiodaten synchron miteinander ausgeben.
-
Wie
oben beschrieben wurde kann gemäß der vorliegenden
Erfindung, in dem Fall, in welchem die Audiodaten, welche von dem
Serversystem streamingmässig
auf das Netzwerk ausgegeben werden, gleichzeitig in einer Viel zahl
von Audiowiedergabesystemen (Clientsysteme) wiedergegeben werden, wenn
nur der Vorgang des Steuerns der Lesegeschwindigkeit zum Erhalten
der Menge von Puffer in den Audiodaten, welche streamingmässig verteilt werden
(von dem Serversystem), bei dem Zielwert in dem Audiowiedergabesystem
(Clientsystem) ohne Einführung
von Verbesserungen ausgeführt
wird (Verbesserungen in der Präzision
des NTP Servers und des Taktgeneratorschaltkreises) in die Hardware,
die Wiedergaberate des Audiowiedergabesystems mit der Streamingrate
der Audiodaten gekoppelt werden, welche streamingmässig verteilt
werden, und ebenso können
die Wiedergabegeschwindigkeit und die Wiedergabeposition in allen
Audiowiedergabesystemen untereinander synchronisiert werden, auch
wenn eine Vielzahl von Audiowiedergabesystemen mit dem Netzwerk
verbunden sind.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine Konfigurationsansicht eines Audiostreamingsystems als ein Ausführungsbeispiel der
vorliegenden Erfindung.
-
2 ist
ein Blockdiagramm eines Serversystems und eines Clientsystems als
das Ausführungsbeispiel
der vorliegenden Erfindung.
-
3 ist
eine Ansicht, welche Veränderungen
in der verbleibenden Kapazität
eines Puffers und eine Taktfrequenz in dem Clientsystem zeigt.
-
4 ist
ein Diagramm, welches einen Filterprozess zeigt, welcher in dem
Clientsystem ausgeführt
wird.
-
5 ist
ein Diagramm, welches Veränderungen
in der verbleibenden Kapazität
eines Puffers und eine Taktfrequenz in dem Clientsystem zeigt.
-
6 ist
ein Diagramm, welches Veränderungen
in der verbleibenden Kapazität
eines Puffers und eine Taktfrequenz in dem Clientsystem zeigt.
-
7 ist
ein Flussdiagramm, welches Operationen des Clientsystems zeigt.
-
DETAILLIERTE BESCHREIBUNG
VON BEVORZUGTEN AUSFÜHRUNGSBEISPIELEN
-
1 ist
eine Ansicht, welche eine Konfiguration eines Audiostreamingsystems
als ein Ausführungsbeispiel
der vorliegenden Erfindung zeigt. In diesem Audiostreamingsystem
ist ein Serversystem 1 mit einer Vielzahl von Clientsystemen 2 über ein LAN
(Ortsgebietsnetzwerk, Lokal Area Network) 3 verbunden.
Das LAN 3 kann entweder durch drahtgebundenes LAN oder
drahtloses LAN ausgebildet sein. In dem Fall, in welchem eine analoge
Signalquelle von einer Innenseite oder einer Außenseite des Serversystems
eingegeben wird, wird das Serversystem mit einem A/D Konvertierer
(nicht gezeigt) zum Digitalisieren des analogen Systems, und ausgebildet
zum Digitalisieren des Signals vor der Verteilung der Daten zu jedem
Clientsystem 2 mindestens ausgerüstet sein. Ein Lautsprechersystem 4 ist
mit dem Serversystem 1 verbunden, und ein Lautsprechersystem 5 ist
mit jedem Clientsystem 2 verbunden. Das Serversystem 1 hat
einen eingebauten Speicher wie eine Festplatte, oder ähnliches,
und speichert eine große
Anzahl von digitalisierten Audiodaten (Musikdaten) darauf.
-
In
dem normalen Wiedergabemodus kann der Benutzer in jedem Clientsystem 2 die
Musik von den Audiodaten (Musikstücke) auswählen, welche in dem Serversystem 1 gespeichert
sind, und die ausgewählte
Musik unabhängig
von dem Serversystem 1 und anderen Clientsystemen 2 wiedergeben.
Das Serversystem 1 kann die Musik wiedergeben, welche unabhängig ausgewählt wurde.
Die Auswahl von Musik wird durch Verwendung der Infrarotfernbedienung (nicht
gezeigt) durchgeführt.
-
In
dem Broadcast- bzw. Rundfunkmodus, wird die Musik, welche in dem
Serversystem 1 ausgewählt
wurde, zu allen Clientsystemen 1 gebroadcasted, und somit
wird die gleiche Musik synchron in allen Clientsystemen wiedergegeben.
-
In
diesem Ausführungsbeispiel
wird der Broadcastmodus hierin unten stehend erklärt werden.
-
2 ist
ein Blockdiagramm eines Signalpfadsystems des Serversystems 1 und
des Clientsystems 2. Das Serversystem 1 hat eine
Festplatte 10, welche die Audiodaten darauf in dem linearen PCM
System akkumuliert/speichert. Ein FIFO 11 ist ein Puffer,
welcher zum Steuern des Lesens von der Festplatte 10 verwendet
wird.
-
In
dem Broadcastmodus werden die Audiodaten der angeforderten Musik
ansprechend auf einen Samplingtakt des Serversystems gelesen und dann
in einen Codierer 12 eingegeben. Der Codierer 12 MP3
(MPEG Audioschicht (ISO/IEC 11172-3 und ISO/IEC 13818-3)) komprimiert
die Audiodaten und gibt dann die komprimierten Daten in eine Netzwerkschnittstelle 13 ein.
Im Übrigen
können,
obwohl die vorliegende Erfindung MP3 zum Komprimieren der Audiodaten
verwendet, andere Audiokompressionstechniken (zum Beispiel AC-3,
AAC, ATRAC) verwendet werden, um die Audiodaten zu komprimieren. Ferner
können,
obwohl in der obigen Beschreibung die Audiodaten auf der Festplatte 10 in
einem linearen PCM System gespeichert sind, Kompressionsdaten wie
MP3 Daten, welche vorher komprimiert wurden, auf der Festplatte 10 gespeichert
sein, und sowohl die linearen PCM Daten wie auch die MP3 Daten können darauf
gespeichert sein. Die Netzwerkschnittstelle 13 sendet die
MP3-komprimierten Audiodaten zu dem LAN 3.
-
Die
Netzwerkschnittstelle 13 formuliert die Audiodaten in ein
Paket alle 500 Millisekunden und sendet das Paket zu dem LAN 3 aus.
-
Das
Serversystem 1 selbst gibt die Audiodaten wieder, welche
auf dem LAN 3 ausgesendet wurden. Aus diesem Grund puffert
eine Puffereinrichtung (FIFO (2) 15, Puffer 16,
FIFO (3) 17) die Audiodaten um eine Menge von Puffer und
einen Betrag von Übertragungsverzögerung in
dem Clientsystem 2 zum Verzögern der Daten bis zu der gleichen
Zeit wie die Wiedergabezeitgebung in dem Clientsystem 2, und
dann werden die verzögerten
Daten in den Au dioausgabeschaltkreis 18 eingegeben. Der
Audioausgabeschaltkreis 18 DAkonvertiert und verstärkt die Audiodaten
und gibt dann resultierende Daten zu dem Lautsprechersystem 4 aus.
-
In
diesem Fall korrespondiert eine Menge von Daten, welche durch die
Puffereinrichtung gepuffert werden, zu einer verbleibenden Zeit
von ungefähr 2
Sekunden. Jedoch wird die Festplatte als der Puffer 16 verwendet,
weil solche Daten die linearen PCM Daten sind.
-
Wie
oben stehend beschrieben wurde wird dieser Puffer vorgesehen, um
die Wiedergabezeitgebung in dem Serversystem 1 mit einer
Verzögerung in
der Wiedergabe in dem Clientsystem 2 zu koppeln. Somit
kann ein Betrag von Puffer und die Übertragungsverzögerung in
dem Puffer ansprechend auf diejenigen in dem Clientsystem 2 entschieden
werden. Als die Übertragungsverzögerung können der Durchsatz
in dem Codierer 12 und dem Decodierer 23, etc.
betrachtet werden.
-
Unterdessen
beinhaltet das Clientsystem 2 eine CPU 20, einen
VCXO (Voltage Controlled Crystal Oszillator = spannungsgesteuerter
Kristalloszillator) 21, einen Puffer 22, einen
Dekodierer (DSP) 23, eine Netzwerkschnittstelle 24,
und einen Audioausgabeschaltkreis 25. Die Netzwerkschnittstelle 24 ist mit
dem LAN 3 verbunden, und empfängt die Audiodaten, welche
von dem Serversystem 1 ausgegeben wurden (und MP3-Komprimierung
ausgesetzt wurden).
-
In
diesem Fall beinhaltet die Prozedur des Übertragens der Audiodaten von
dem Serversystem 1 zu dem Clientsystem 2 die Steuerung
der erneuten Übertragung.
Beispielsweise wird das TCP Protokoll verwendet. Wie später beschrieben
wird gibt es, weil die Audiodaten für ungefähr 2 Sekunden in dem Puffer 22 gepuffert
werden, kaum eine Möglichkeit,
dass ein Pufferunterlauf auftritt, oder dass die Sequenz von Daten
ausgetauscht wird, und zwar obwohl der Prozess der erneuten Übertragung
in der TOP Prozedur ausgeführt
wird. Hier kann das UDP (User Datagram Protocol = Benutzerda tengrammprotokoll)
verwendet werden, wenn die Steuerung der erneuten Übertragung
in der oberen Schicht ausgeführt
wird.
-
Die
Audiodaten, welche von der Netzwerkschnittstelle 24 empfangen
werden, werden in dem Puffer 22 eingegeben. Dieser Puffer
puffert die Audiodaten für
ungefähr
2 Sekunden. Der Puffer 22 akkumuliert die Audiodaten für ungefähr 2 Sekunden,
und die akkumulierten Daten werden durch den Dekodierer 23 in
der Reihenfolge der älteren
Daten gelesen. Eine Menge von Daten, welche in dem Puffer 22 akkumuliert
wurden, wird überwacht/gesteuert,
und zwar durch die CPU 20. In diesem Fall kann, weil der Puffer 22 verwendet
wird um die Daten zu Puffern, welche MP3 komprimiert sind, der Halbleiterspeicher ausreichend
als der Puffer verwendet werden, im Gegensatz dazu, wenn der Puffer 16 in
dem Serversystem 1 ist.
-
Der
Dekodierer 23 dekodiert die MP3 komprimierten Audiodaten,
welche von dem Puffer 22 gelesen werden, in das lineare
PCM, konvertiert dann die dekodierten Daten in das analoge Signal,
und gibt dann solches Signal zu dem Audioausgabeschaltkreis 25 aus.
Dieser Audioausgabeschaltkreis 25 verstärkt das Audiosignal und gibt
dann das verstärkte Signal
zu dem Lautsprechersystem 5 aus.
-
In
diesem Clientsystem 2 überwacht
die CPU 20 eine Menge von Puffer in dem Puffer 22.
Dann wird eine Lesemenge von dem Puffer 22 durch Steuerung
einer Taktfrequenz des VCXO 21 gesteuert, welcher ein Taktsignal
zu dem Dekodierer 23 liefert, um eine Menge von Puffer
konstant zu halten (bei einem Zielwert). Diese Steuerung der Taktfrequenz des
VCXO 21 wird innerhalb eines Bereichs durchgeführt, in
welchem der Benutzer keine Frequenzvariation durch den Hörsinn wahrnimmt.
-
Auf
diese Art und Weise können,
wenn eine Menge von Puffer in dem Puffer 22 bei einem vorbestimmten
Wert (Zielwert) gehalten wird, die Wiedergabegeschwindigkeit und
die Wiedergabeposition in dem Clientsystem mit der Datenausgabegeschwindigkeit
und der Ausgabezeitgebung in dem Server system 1 synchronisiert
werden. Mit anderen Worten, obwohl die Menge von Puffer immer variiert
wird, wenn sie mikroskopisch auf einer Zeitachse gesehen wird, kann
eine Menge von Puffer bei einer vorbestimmten Menge durchschnittlich
gehalten werden, um die Synchronisation der Wiedergabezeitgebung zu
nehmen, wenn sie in einer breiten Perspektive gesehen wird, weil
das Serversystem 1 die Audiodaten periodisch basierend
auf dem präzisen
Taktsignal aussendet.
-
3 ist
eine Ansicht, welche eine Beziehung zwischen einer Menge von Audiodaten,
welche in dem Puffer 22 (verbleibende Pufferkapazität) gespeichert
sind, und einem Taktsteuerungsparameter erklärt. Die CPU 20 entscheidet
den Wiedergabegeschwindigkeitssteuerungsparameter derart, dass eine
verbleibende Kapazität
des Puffers 22 mit dem Zielwert zusammenfällt.
-
Die
CPU 20 empfängt
alle 500 Millisekunden eine Gruppe von Paketen während der Wiedergabe der Musik,
und überprüft die verbleibende
Pufferkapazität
bei jedem Empfang. Beim Starten der Musik werden die Audiodaten
in dem Puffer 22 ohne Wiedergabe der Musik akkumuliert.
Dann wird die Wiedergabe der Audiodaten gestartet, wenn die Audiodaten
zu einem Pufferwert B0 heraufgepuffert werden, welcher den Zielwert
um einen vorbestimmten Pegel (T0) übersteigt. In diesem Fall ist
B0 als ein Pegel gegeben, welcher den Zielwert des Puffers um einen
Betrag des ursprünglichen
Verbrauchs des Decodierers übersteigt.
Der Zielwert des Puffers wird basierend auf einer vorbestimmten
Wiedergabezeit (2 Sekunden) X einer Bitrate von MP3 entschieden.
-
Dann
wird nachfolgend ein Parameter dn ansprechend auf eine verbleibende
Pufferkapazität
Bn entschieden, welcher alle ungefähr 500 Millisekunden überprüft wird.
Dann wird der VCXO 21 ansprechend auf diesen dn gesteuert,
um eine Wiedergabegeschwindigkeit (Taktfrequenz) zu entscheiden.
-
Zunächst wird
bei T1, weil die verbleibende Pufferkapazität B1 ist, welche geringer ist
als der Zielwert, eine Unterschiedskomponente (ein Wert korres pondierend
dazu) von dem Zielwert als ein Parameter d1 ausgegeben. Der VCXO 21 wird
basierend auf dem Parameter d1 zum Verlangsamen des Taktes gesteuert.
-
Dann
wird bei T2, weil eine Unterschiedskomponente einer verbleibenden
Pufferkapazität
B2 von dem Zielwert die obere Grenze in der Steuerung übersteigt
(+300 B, wenn die Daten mit 160 kbps codiert werden), +300 B (ein
Wert korrespondierend dazu) als ein oberer Grenzwert in der Steuerung
als ein Parameter d2 ausgegeben. Der VCXO 21 wird basierend
auf dem Parameter d2 zum Beschleunigen des Taktes gesteuert.
-
Dann
wird bei T3, weil eine Unterschiedskomponente einer verbleibenden
Pufferkapazität
B3 von dem Zielwert innerhalb eines Steuerungsbereichs auf der +
Seite ist, diese Unterschiedkomponente (ein Wert korrespondierend
dazu) als ein Parameter d3 ausgegeben.
-
Dann
wird bei T4, zu welcher das Clientsystem eine Gruppe von Paketen
empfängt,
da seit T3 eine größere Zeitverzögerung erfolgt
ist als +10 % (50 ms) eines normalen Zeitintervalls von 500 ms, das Überprüfungsergebnis
der verbleibenden Pufferkapazität
zu dieser Zeit nicht angewandt, weil es ein nicht korrektes ist.
Somit wird der Parameter, welcher basierend auf der vorhergehenden
verbleibenden Pufferkapazität
entschieden wurde, als ein Parameter d4 wie er ist verwendet.
-
Dann
wird bei T5, zu welcher das Clientsystem eine nächste Gruppe von Paketen empfängt, weil
der Vergang von Zeit von T4 ein kürzeres Intervall als –10 % des
normalen Zeitintervalls von 500 ms ist, das Prüfergebnis (d5) der verbleibenden
Pufferkapazität
zu dieser Zeit nicht verwendet. Somit wird der Parameter, welcher
basierend auf der vorhergehenden (zwei Mal vorher in diesem Fall)
verbleibenden Pufferkapazität
als ein Parameter d5 wie er ist verwendet.
-
Dann
wird bei T6, weil die Zeitverzögerung seit
T5 innerhalb eines Bereichs von ± 10 Prozent des normalen
Zeitintervalls von 500 Millisekunden ist, dieses Prüfergebnis
der verbleibenden Pufferkapazität
als ein zuverlässiger
Wert entschieden. Dann wird die Unterschiedskomponente (ein Wert
korrespondierend dazu) als ein Parameter d6 ausgegeben, weil die
Unterschiedskomponente der verbleibenden Pufferkapazität von dem
Zielwert innerhalb des Steuerungsbereichs ist.
-
Daran
wird bei T7, weil eine Ankunftszeit einer Gruppe von Paketen innerhalb
eines bestimmten Zeitbereichs ist, aber eine Unterschiedskomponente einer
verbleibenden Pufferkapazität 67 von
dem Zielwert unterhalb eines unteren Grenzwerts (–300 B) der
Steuerung ist, dieser untere Grenzwert (ein Wert korrespondierend
dazu) als ein Parameter d7 ausgegeben.
-
Auf
diese Art und Weise wird der Parameter dn ansprechend auf diesen
Unterschiedswert entschieden, und ausgegeben, wenn die verbleibende Pufferkapazität Dn innerhalb
eines Bereichs von ± 300
B von dem Zielwert (Steuerungsbereich) ist, während der Parameter basierend
auf dem oberen Grenzwert oder dem unteren Grenzwert des Steuerungsbereichs
entschieden wird und ausgegeben wird, wenn die verbleibende Pufferkapazität ausserhalb
des Steuerungsbereichs auf der oberen Seite oder der unteren Seite
ist. Dies ist so, weil eine solche Situation, in welcher Veränderung
der Taktfrequenz übermäßig groß auftritt
und der Benutzer die Frequenzveränderung
durch seinen oder ihren Hörsinn
fühlen
kann, verhindert werden soll.
-
Ebenso
sendet wie oben stehend beschrieben das Serversystem 1 eine
Gruppe von Paketen alle 500 ms, aber die Ankunftszeit an dem Clientsystem 2 wird
aufgrund der Übertragungsverzögerung oder ähnlichem
verändert.
Wenn ein Zeitunterschied einer ankommenden Zeit des derzeitigen
Pakets (eine Zeit, zu welcher ein Kopfpaket der Paketgruppe dort
ankommt) von einer Ankunftszeit des vorhergehenden Pakets innerhalb
von ± 10
% von 500 ms ist (± 50
ms), wird eine solche Ankunftszeit als eine normale Ankunftszeit
entschieden und dann wird diese Überprüfung der
verbleibenden Puffer kapazität
effektiv gemacht. Somit wird der Parameter dn basierend auf diesem
Prüfergebnis
entschieden. Im Gegensatz dazu wird es, wenn die Ankunftszeit der
Paketgruppe ausserhalb des erlaubten Bereichs ist, entschieden, dass
eine Zeitverschiebung groß ist,
und dann wird ein Prüfwert
der verbleibenden Pufferkapazität
zu dieser Zeit nicht verwendet. Als ein Ergebnis kann eine fehlerhafte
Steuerung aufgrund des Versatzes der Ankunftszeit verhindert werden.
-
Der
obige Zielwert und die Verarbeitungsprozeduren werden ähnlich in
einer Vielzahl von Clientsystemen 2, welche in 1 gezeigt
sind, eingestellt. Somit wird eine Menge von Puffer auf ungefähr dem gleichen
Wert in jeweiligen Clientsystemen gehalten und deshalb kann die
gleiche Wiedergabeposition der gleichen Audiodaten mit der gleichen
Wiedergabegeschwindigkeit in jeweiligen Clientsystemen wiedergegeben
werden.
-
Mit
anderen Worten kann die Veränderung
in der voreingestellten Oszillationsfrequenz des VCXO 21 in
den Clientsystemen 2 durch die Steuerung der verbleibenden
Pufferkapazität
absorbiert werden. Als ein Ergebnis können alle Clientsysteme 2 die
Audiodaten synchron mit der gleichen Taktfrequenz wiedergeben.
-
4 ist
ein funktionelles Blockdiagramm, welches einen Filtervorgang erklärt, welcher
durch die CPU 20 ausgeführt
wird. Wie oben stehend beschrieben wird die Unterschiedskomponente
(der Wert basierend auf dieser Komponente) der verbleibenden Kapazität des Puffers 22 von
dem Zielwert als der Parameter zum Steuern der Frequenz des VCXO 21 verwendet.
In dem Fall, in welchem dieser Parameter direkt in den VCXO 21 eingegeben
wird, wird die Taktfrequenz diskret und abrupt verändert, und
somit ist es möglich,
dass der Benutzer die Unnatürlichkeit
durch den Hörsinn
fühlt.
Aus diesem Grund wird der Filtervorgang auf diese Unterschiedskomponente
(Parameter) angewandt, um eine Zeitkonstante (Trägheit) zu geben, und dann wird
die resultierende Unterschiedskomponente in den VCXO 21 eingegeben.
-
In
dem Filter in 4 wird der Wiedergabegeschwindigkeitssteuerungsparameter, welcher
in den VCXO 21 zu dieser Zeit eingegeben werden soll, durch
Addieren eines Werts erhalten, welcher durch Multiplikation des
derzeitigen Parameters mit einem Koeffizienten A und einem Wert,
welcher durch Multiplikation des vorhergehenden Parameters (Ausgabe
von Z) mit einem Koeffizienten B erhalten wird, erhalten.
-
Ein
Beispiel des Steuerungsmodus unter Verwendung des Parameters, zu
welchem die Zeitkonstante (Trägheit)
durch den Filtervorgang in 4 gegeben
wird, ist in den 5 und 6 jeweils
gezeigt. In diesen Figuren wird die Erklärung von einer solchen Situation
gegeben werden, dass eine Gruppe von Paketen bei dem Clientsystem
exakt alle 500 Millisekunden ankommt.
-
5 zeigt
die Veränderung
in der verbleibenden Pufferkapazität und die Veränderung
in der Taktfrequenz in dem Fall, in welchem die Wiedergabegeschwindigkeit
in dem Clientsystem 2 schneller ist als die Lesegeschwindigkeit
in dem Serversystem 1. Zunächst ist, weil die Wiedergabegeschwindigkeit schneller
ist als die Lesegeschwindigkeit, eine Menge von Daten, welche in
dem Clientsystem konsumiert (wiedergegeben) wird, größer als
eine Menge von Daten, welche in dem Puffer 22 akkumuliert
sind, und somit wird die verbleibende Pufferkapazität allmählich verringert.
Jedoch wird die Taktfrequenz, welche durch den VCXO 21 oszilliert
wird, allmählich niedriger
gesteuert, um die Wiedergabegeschwindigkeit zu verlangsamen, und
somit wird eine Lesemenge verringert. Als ein Ergebnis wird die
Verringerung der verbleibenden Pufferkapazität gestoppt und die verbleibende
Pufferkapazität
wird allmählich
in Richtung des Zielwerts erhöht.
-
Auch
zeigt 6 die Veränderung
in der verbleibenden Pufferkapazität und die Veränderung
in der Taktfrequenz in dem Fall, in welchem die Wiedergabegeschwindigkeit
in dem Clientsystem 2 niedriger ist als die Lesegeschwindigkeit
in dem Serversystem 1. Zunächst ist, weil die Wiedergabegeschwindigkeit langsamer
ist als die Lesegeschwindigkeit, eine Menge von Daten, welche in
dem Clientsystem konsumiert (wiedergegeben) werden kleiner als eine
Menge von Daten, welche in dem Puffer 22 akkumuliert werden,
und somit wird die verbleibende Pufferkapazität allmählich erhöht. Jedoch wird die Taktfrequenz, welche
durch den VCXO 21 oszilliert wird, allmählich höher gesteuert, um die Wiedergabegeschwindigkeit schneller
zu machen, und somit wird eine Lesemenge erhöht. Als ein Ergebnis wird die
Erhöhung
in der verbleibenden Pufferkapazität gestoppt und dann wird die
verbleibende Pufferkapazität
allmählich
in Richtung des Zielwerts verringert.
-
Auf
diese Art und Weise kann, weil der Parameter, welcher dem Filtervorgang
in 4 ausgesetzt wird in den VCXO 21 eingegeben
wird, die Taktfrequenz glatt bzw. weich durch die Trägheit gesteuert
werden, und ebenso kann die verbleibende Pufferkapazität sanft
in Richtung des Zielwerts konvergiert werden.
-
In
der obigen Erklärung
ist der Effekt, dass die Veränderung
der Taktfrequenz durch Konvergieren/Erhalten der verbleibenden Pufferkapazität zu/an dem
Zielwert absorbiert werden kann, erklärt. Auch kann die Verschiebung
der Startzeit in dem Clientsystem 2 durch Konvergieren
der verbleibenden Pufferkapazität
auf den Zielwert aufgelöst
werden.
-
7 ist
ein Flussdiagramm, welches den Betrieb des Clientsystems 2 in
dem Broadcastmodus zeigt. Wenn die Wiedergabe in dem Broadcastmodus gestartet
wird, wird zunächst
nur der Empfang der Audiodaten ausgeführt, und zwar ohne Wiedergabe, und
die Audiodaten werden in dem Puffer 22 bis B0 gepuffert.
Wenn die Pufferung vollständig
ist (s1), weist die CPU 20 den Dekodierer 23 an,
die Audiodaten, welche in dem Puffer 22 gepuffert sind,
auszulesen, und die Wiedergabe (s2) zu beginnen.
-
Dann
wird es, wenn eine neue Gruppe von Paketen an dem Clientsystem (s3)
ankommt, überprüft, bis
zu welchem Grad ein Zeitunterschied von der Ankunftszeit und den
vorhergehenden Paketen von 500 ms versetzt ist (s4), und ebenso
die verbleibende Pufferkapazität,
welche erhalten wird, wenn die derzeitige Gruppe von Paketen, welche
gepuffert wird, überprüft wird
(s5).
-
Dann
wird in dem normalen Betrieb die detektierte verbleibende Pufferkapazität innerhalb
des Steuerungsbereichs abgerundet (s8), und der Wiedergabegeschwindigkeitssteuerungsparameter wird
durch Eingabe der verbleibenden Pufferkapazität (Parameter basierend auf
dieser Kapazität)
in den Filter in 4 (s10) berechnet. Der Rundungsprozess
rundet den Wert der verbleibenden Pufferkapazität innerhalb von ± 300 B
ab, um die Wiedergabegeschwindigkeit nicht übermäßig zu verändern, wenn die verbleibende
Pufferkapazität
von dem Zielwert derart verschoben wird, dass sie ± 300 B übersteigt (in
dem Fall von 160 kbps). Dann wird der Wiedergabegeschwindigkeitssteuerungsparameter, welcher
von dem Filter ausgegeben wird, auf den VCXO 21 (s11) eingestellt.
-
Wenn
zwischenzeitlich die derzeitige Ankunftszeit der Pakete von der
vorhergehenden Ankunftszeit der Pakete um ± 10 % oder mehr des Referenzintervalls
von 500 ms versetzt ist (s7), wird das derzeitige Prüfergebnis
der verbleibenden Pufferkapazität
nicht verwendet und die vorhergehende verbleibende Pufferkapazität wird noch
einmal eingestellt (s9), und dann geht der Prozess zu dem Wiedergabegeschwindigkeitssteuerungsparameterberechnungsprozess
in s10. Auch wenn die gleiche verbleibende Pufferkapazität mehrmals
eingegeben wird, wird der Wiedergabegeschwindigkeitssteuerungsparameter,
welcher ausgegeben wird, um die Zeitkonstante des Filters verändert.
-
In
diesem Fall wird es, wenn die Situation, dass die verbleibende Pufferkapazität 2 kB oder mehr
ist (die Daten werden mit 160 kbps codiert) zu niedrig im Vergleich
zu dem Zielwert ist, für
30 Sekunden oder mehr fortgeführt
wird (s6) (s12), wird es entschieden, dass die Fortführung der
Wiedergabe der Audiodaten, welche im Wesentlichen aus der Synchronisation
sind, nicht bevorzugt ist, und die Wiedergabe der Audiodaten wird
gestoppt (s13). Dann geht der Prozess zurück zu s1, wobei die Akkumulation
der Audiodaten in dem Puffer 22 noch mal ausgeführt wird.
-
Hier
kann, unter der Annahme des Broadcastmodus, jedes Clientsystem 2 unabhängig von dem
Broadcastmodus austreten, und kann die Anforderung von anderer Musik
(Audiodaten) an das Serversystem 1 zur Wiedergabe erteilen.
-
Konsequenterweise
ist in der Erklärung
des obigen Ausführungsbeispiels
das Clientsystem, welches die Broadcastverteilung empfängt, nicht
immer wie die gesamten Clientsysteme präpariert, welche mit dem LAN 3 verbunden
sind. Eines oder eine Vielzahl von Clientsystemen daraus können verwendet werden.
-
Mit
anderen Worten beabsichtigt die vorliegende Erfindung, die Wiedergabesynchronisation zwischen
den Clientsystemen aufrecht zu erhalten, welche nun die Broadcastverteilung
empfangen, und die Clientsysteme 2, das Serversystem 1.
-
Natürlich ist
die vorliegende Erfindung nicht auf die oben beschriebenen und in
den Zeichnungen gezeigten Ausführungsbeispiele
eingeschränkt,
und kann durch jede Modifikation ohne Abweichung von dem Umfang
der vorliegenden Erfindung, gemäß den angefügten Ansprüchen, realisiert
werden.
-
Zum
Beispiel sind die Daten, welche synchron wiedergegeben werden sollen,
nicht auf die oben beschriebenen Audiodaten eingeschränkt, und die
vorliegende Erfindung kann auch auf jede Art von Daten angewandt
werden, bei welchen es notwendig ist, sie synchron wiederzugeben.
-
Ferner
können,
obwohl in den Ausführungsbeispielen
das LAN 3 für
die Datenübertragung
zwischen dem Serversystem 1 und den Clientsystemen 2 verwendet
wird, alle anderen Kommunikationsverfahren verwendet werden, beispielsweise
Internet oder ähnliches.