-
Die
vorliegende Erfindung betrifft ein Verfahren in einem kontinuierlichen
Medienserversystem zum Senden einer Audio-Sequenz an einen Abonnenten
und ein entsprechendes kontinuierliches Medienserversystem und ein
computerlesbares Medium.
-
Das
Internet ist eine Zusammenschaltung vieler kleinerer Netzwerke.
Jedes Netzwerk überträgt Daten
in der Form von Paketen und verwendet die allgemein bekannte Technik
der Paketvermittlung. Das für
eine derartige Funktionalität
verwendete Protokoll ist das Internetprotokoll. Da die Anzahl der
das Internet nutzenden Personen ständig zunimmt, nimmt die Anzahl
der über
das Internet bereitgestellten Dienste, wie z. B. Electronic Mail,
ebenfalls zu, um mit dem Bedarf Schritt zu halten. Somit ist es
erwünscht,
neue Dienste zur Anwendung in dem Internet bereitzustellen. Jedoch
muss bei der Erzeugung eines neuen Dienstes zur Verwendung in dem
Internet ein wichtiges Problem gelöst werden. Dieses besteht darin,
dass das Internet eine hohe Paketverlustrate aufweist, und somit
jeder neue Dienst so implementiert werden muss, dass dieses Problem überwunden
wird.
-
WO
96/17457 schlägt
ein Abrufaudio-(Audio-On-Demand)-Kommunikationssystem vor, welches
eine Echtzeitwiedergabe von Audiodaten bereitstellt, die über Telefonleitungen
oder andere Kommunikationsverbindungen übertragen werden. Einer oder
mehrere Audioserver enthalten Speicherbänke, welche komprimierte Audiodaten
speichern. Auf die Anforderung eines Benutzers an einem Abonnenten-PC überträgt ein Audioserver
die komprimierten Audiodaten über
die Kommunikationsverbindung an den Abonnenten-PC. Der Abonnenten-PC
empfängt und
dekomprimiert die übertragenen
Audiodaten langsamer als in Echtzeit unter Verwendung der Verarbeitungsleistung
der CPU innerhalb des Abonnenten-PC.
-
WO
96/17306 beschreibt ein verbessertes System und ein Verfahren zum
Bereitstellen von Multimediadaten in einem verknüpften System. Die vorliegende
Erfindung stellt eine Plattform einer verteilten Client/Server-Rechenleistung
und einen Zugriff auf Daten über
asymmetrische Echtzeitnetzwerke bereit. Ein Dienstmechanismus ermöglicht,
dass An wendungen so aufgeteilt werden, dass sich Client-Vorrichtungen,
d. h., Set-Top-Boxen, Persönliche Digitale
Assistenten usw. auf die Repräsentation
fokussieren können,
während
Back-End-Dienste, die in einem verteilten Serverkomplex ablaufen,
einen Zugriff auf Daten über
eine Nachrichtenübertragung über eine
abstrahierte Schnittstelle bereitstellen.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren und ein
System bereitzustellen, welche eine Datenkommunikation bereitstellen,
die gegen mögliche
Störungen
auf dem Kommunikationskanal toleranter ist.
-
Diese
Aufgabe wird durch den Gegenstand der Ansprüche 1, 9 und 10 gelöst.
-
Bevorzugte
Ausführungsformen
sind Gegenstand der abhängigen
Ansprüche.
-
Das
hierin beschriebene Audioserversystem sendet Audio-Sequenzen und
gemischte Audio- und Standbild-Sequenzen über das Internat an Abonnenten.
Das Internet ist ein unzuverlässiges
Netzwerk dahingehend, dass es eine hohe Paketverlustrate aufweist.
Obwohl das Internet eine hohe Paketverlustrate aufweist, stellt
das Audioserversystem für
die Anwendung ein fehlertolerantes Dateiformat zur Verfügung, um
die Auswirkung des Paketverlustes zu reduzieren, und das Audiosystem
erlaubt die Verwendung von Datenströmen mit variabler Rate, um
so die Anzahl der Paketverluste zu reduzieren.
-
Um
die hohen Paketverlustraten des Internets zu überwinden, ermöglicht das
Audioserversystem die Paketgröße einer
Datei zu dem Zeitpunkt zu spezifizieren, an dem die Datei auf die
Platte geschrieben wird. Eine Spezifikation der Paketgröße vor einer Übertragung
ermöglicht,
dass die Datei anhand einer beliebigen Anzahl allgemein bekannter Fehlerkorrekturverfahren,
wie z. B. Paritäts-Codierung,
codiert wird. Die Verwendung eines derartigen Fehlerkorrekturverfahrens
ermöglicht
die Rekonstruktion eines verlorenen Paketes so, so dass der Audiostrom
durch den Paketverlust unbeeinflusst bleibt. Mit anderen Worten,
durch die Verwendung des Fehlerkorrekturverfahrens kann ein Abonnent
ein verlorenes Paket aus den Inhalten der Pakete rekonstruieren,
die empfangen wurden.
-
Die
von dem Audioserversystem gesendeten Audio- und gemischten Audioströme haben
typischerweise variierende Datenraten. Obwohl einige herkömmliche
Serversysteme Audio- und gemischte Audiodaten senden könnten, würden alle
Daten mit derselben Datenrate (d. h., mit der maximalen Datenrate)
gesendet werden, was zu einer Serverleerlaufzeit führt. D.
h., die herkömmlichen
Systeme senden die Daten als Datenblöcke über eine reservierte feste Zeitdauer
und Blöcke
mit einer kleinen Datenrate erfordern weniger als die reservierte
Zeitmenge zum Senden der Daten. Somit ist in dieser Situation das herkömmliche
Serversystem nach dem Senden der Daten für die anschließende Zeitdauer
im Leerlauf. Obwohl das eine Leerlaufzeit erfahrende Serversystem
selbst kein Problem darstellt, muss, um eine derartige Leerlaufzeit
zu erfahren, das Serversystem die Daten mit einer schnelleren Rate
als beabsichtigt gesendet haben, was manchmal als ein Senden eines Datenbündels bezeichnet
wird. Das Senden eines Datenbündels
kann den Empfänger
der Daten überfordern,
wenn er keine ausreichende Pufferkapazität hat, und dadurch zu einem
Datenverlust führen.
Ferner führt
das Senden eines Datenbündels
manchmal zu einer Datenverlustzunahme durch das Internet, da das
Internet eine unzureichende Pufferkapazität besitzen kann. Natürlich ist
es erwünscht,
derartige Datenverluste zu verhindern. Das hierin beschriebene Audioserversystem
hat die Fähigkeit,
Ströme
mit variablen Datenraten zu senden, um so eine Serverleerlaufzeit
zu verhindern, was einen Datenverlust verringert. Das Audioserversystem
stellt diese Fähigkeit
bereit, indem die Datenrate zu dem Zeitpunkt spezifiziert wird,
an dem die Datei auf die Festplatte geschrieben wird, und dann die
Daten mit dieser Rate übertragen
werden.
-
Bevorzugte
Ausführungsformen
der vorliegenden Erfindung werden hierin nachstehend unter Bezugnahme
auf die beigefügten
Zeichnungen beschrieben.
-
1 ist
eine Blockdarstellung eines Audioserversystems einer bevorzugten
Ausführungsform der
vorliegenden Erfindung.
-
2 ist
eine detailliertere Blockdarstellung der Audiostation von 1.
-
3 ist
ein Flussdiagramm, das eine Übersicht
aus höherer
Ebene über
die durch das Audioserversystem durchgeführten Schritte bereitstellt.
-
4 ist
ein Flussdiagramm, das detaillierter darstellt, wie Audio-Sequenzen
in dem Audioserversystem gespeichert werden.
-
5A stellt
eine Datenstruktur bereit, die von dem Audioserversystem für jede Audio-Sequenz aufrechterhalten
wird.
-
5B stellt
ein Fehlerkorrekturverfahren dar, das von dem Audioserversystem
angewendet wird.
-
6 ist
ein Diagramm, das die Planung der Bandbreite in einem System mit
drei Festplatten durch das Audioserversystem darstellt.
-
7 ist
ein Flussdiagramm, das die Schritte darstellt, die zum Lokalisieren
einer Bandbreiteneinheit durchgeführt werden, die der Bedienung
einer Abonnentenanforderung durch das Audioserversystem zuzuweisen
ist.
-
8 ist
ein Diagramm, das eine Beispieldatenstruktur darstellt, die von
dem Audioserversystem aufrechterhalten wird.
-
Die
bevorzugte Ausführungsform
der vorliegenden Erfindung sendet Audio-Sequenzen und Mischaudio-
und Standbildsequenzen (hierin nachstehend "Mischaudio" bezeichnet) über das Internet an Abonnenten.
Obwohl das Internet eine hohe Paketverlustrate besitzt, ermöglicht die
bevorzugte Ausführungsform
die Verwendung eines fehlertoleranten Dateiformates, um den Effekt
des Paketverlustes zu verhindern, und die bevorzugte Ausführungsform
ermöglicht
auch die Verwendung von Datenströmen mit
variabler Rate, um so die Anzahl der Paketverluste zu reduzieren.
Das in der vorliegenden Offenbarung beschriebene System ist als
das Audioserversystem bekannt. Das Audioserversystem ist ein Typ eines
kontinuierlichen Medienserversystems, in welchem Daten an einen
Verbraucher mit einer garantierten Rate gesendet werden. Unter Verwendung des
Audioserversystems kann ein Abonnent entweder eine Audio-Sequenz
oder eine Mischaudio-Sequenz anfordern und das Audioserversystem
sendet die angeforderte Sequenz an den Abonnenten mit einer garantierten
Rate.
-
Um über das
Internet eingesetzt zu werden, muss das Audioserversystem die hohen
Paketverluste des Internets berücksichtigen.
Insbesondere kann das Internet zwischen 1 von 10 bis 1 von 3 Paketen verlieren.
Zum Überwinden
dieses Problems ermöglicht
das Audioserversystem, dass die Paketgröße einer Datei zu dem Zeitpunkt
spezifiziert wird, an dem die Datei auf die Festplatte geschrieben
wird. Eine Spezifizierung der Paketgröße vor der Übertragung ermöglicht die
Codierung der Datei gemäß einer
beliebigen Anzahl allgemein bekannter Fehlerkorrekturverfahren,
wie z. B. der Paritäts-Codierung,
welche nachstehend weiter diskutiert wird. Die Verwendung eines
derartigen Fehlerkorrekturverfahrens ermöglicht die Rekonstruktion eines
verlorenen Paketes so, dass der Audiostrom durch den Paketverlust
unbeeinflusst bleibt. Mit anderen Worten, durch die Anwendung eines
Fehlerkorrekturverfahrens kann ein Abonnent ein verlorenes Paket
aus den Inhalten der Pakete rekonstruieren, die empfangen wurden.
-
Die
von dem Audioserversystem gesendeten Audio- und Mischaudioströme weisen
typischerweise variierende Datenraten auf. Obwohl einige herkömmliche
Serversysteme Audio- und Mischaudiodaten senden könnten, würden alle
Daten mit derselben (d. h., mit der maximalen Datenrate) Datenrate
gesendet werden, was zu einer Serverleerlaufzeit führt. D.
h., das herkömmliche
Serversystem sendet die Daten als Datenblöcke über eine reservierte feste
Zeitdauer und Blöcke
mit einer niedrigen Datenrate erfordern weniger als die reservierte
Zeitmenge zum Senden der Daten. Somit wartet in dieser Situation
nach dem Senden der Daten das herkömmliche Serversystem im Leerlauf
auf die nächste
Zeitperiode. Obwohl das eine Leerlaufzeit erfahrende Serversystem
selbst kein Problem darstellt, muss, um eine derartige Leerlaufzeit
zu erfahren, das Serversystem die Daten mit einer schnelleren Rate
als beabsichtigt gesendet haben, was manchmal als ein Senden eines
Datenbündels
bezeichnet wird. Das Senden eines Datenbündels kann den Empfänger der
Daten überfordern, wenn
er keine ausreichende Pufferkapazität hat, und dadurch zu einem
Datenverlust führen.
Ferner führt das
Senden eines Datenbündels
manchmal zu einer Datenverlustzunahme durch das Internet, da das
Internet eine unzureichende Pufferkapazität besitzen kann. Natürlich ist
es erwünscht,
derartige Datenverluste zu verhindern. Das hierin beschriebene Audioserversystem
hat die Fähigkeit,
Ströme
mit variablen Datenraten zu senden, um so eine Serverleerlaufzeit zu
verhindern, was einen Datenverlust verringert. Das nachstehend beschriebene
Audioserversystem hat die Fähigkeit
Ströme
mit variablen Datenraten zu senden, um so die Serverleerlaufzeit
zu verhindern, welche einen Datenverlust bewirkt. Das Audioserversy stem
stellt diese Fähigkeit
bereit, indem die Datenrate zu dem Zeitpunkt spezifiziert wird,
an dem die Datei auf die Festplatte geschrieben wird, und dann die
Daten mit dieser Rate übertragen
werden.
-
Das
Audioserversystem ist in 1 dargestellt. Das Audioserversystem
ist ein System, in welchem Abonnenten zu jedem Zeitpunkt das Abhören spezieller
Audio-Sequenzen (oder das Abhören
und Betrachten von Audio-Sequenzen) anfordern können, die aus der Audiostation 10 übertragen
werden. Die Audiostation 10 überträgt die Daten für die Audio-Sequenzen über das
Internet 12 an die Abonnenten 14. Alternativ könnten anstelle
des Internets andere geeignete Verbindungsmechanismen verwendet
werden. Die Audiostation 10 macht bevorzugt eine große Anzahl
unterschiedlicher Audio- oder Mischaudio-Sequenzen verfügbar, die
an die Abonnenten 14 übertragen
werden können
und in Echtzeit sowohl abgehört
als auch betrachtet werden können. Zur
Verdeutlichung wird hierin nachstehend die Beschreibung des Audioserversystems
lediglich unter Bezugnahme auf Audio-Sequenzen bereitgestellt, obwohl
auch beabsichtigt ist, dass Mischaudio-Sequenzen ebenfalls verwendet
werden könnten.
Mit anderen Worten, die nachstehend beschriebene Verarbeitung wird
bezüglich
Audio-Sequenzen beschrieben, ist jedoch in gleicher Weise auf Mischaudio-Sequenzen
abwendbar. Zusätzlich
wird der Fachmann auf diesem Gebiet erkennen, dass andere Daten durch
das Audioserversystem der bevorzugten Ausführungsform, einschließlich Videodaten
und anderer Formen von Multimediadaten verwendet werden können.
-
In
dem Audioserversystem ist die Auswahl einer von einem Abonnenten
abzuhörenden
Audio-Sequenz nicht vorgeplant. Statt dessen wird die Auswahl nach
Bedarf des Abonnenten geplant. Ein Abonnent muss nicht eine Audio-Sequenz
wählen, die
andere Abonnenten ebenfalls abhören;
statt dessen kann der Abonnent irgendeine beliebige von den verfügbaren Audio-Sequenzen
auswählen.
Ferner wählt
jeder Abonnent, wann er den Beginn des Abhörens einer Audio-Sequenz wünscht. Eine
Anzahl unterschiedlicher Abonnenten 14 kann gleichzeitig
unterschiedliche Abschnitte derselben Audio-Sequenz abhören. Ein Abonnent kann auswählen, wo
in einer Folge er mit dem Abhören
beginnen möchte
und kann das Abhören
einer Folge beenden, bevor die gesamte Sequenz abgespielt worden
ist.
-
2 ist
eine Blockdarstellung, die die Audiostation 10 detaillierter
darstellt. Die Audiostation 10 enthält eine Steuerung 16,
die für
die Planung der Übertragung
von Audio-Sequenzen
an Abonnenten 14 (1) verantwortlich
ist. Die Steuerung 16 steuert mehrere Untersysteme 18A, 18B und 18C und
ist für
die Planung und Leitung der Ausgabe aus den Untersystemen an die
Abonnenten 14 verantwortlich. Die Steuerung kann doppelt
vorgesehen werden, um eine Reservesteuerung bereitzustellen, die
die Fehlertoleranz des Systems vergrößert. Obwohl in 2 nur
drei Untersysteme dargestellt sind, wird der Fachmann auf diesem
Gebiet erkennen, dass es in den meisten Fällen günstiger ist, eine größere Anzahl von
Untersystemen zu verwenden. Nur drei Untersysteme sind in 2 für Zwecke
der Vereinfachung und Verdeutlichung dargestellt.
-
Jedes
Untersystem 18A, 18B und 18C enthält einen
Mikroprozessor 20A, 20B und 20C, der
für die
Steuerung entsprechender Paare von Speichervorrichtungen (22A, 24A),
(22B, 24B) und (22C, 24C) verantwortlich
ist. Die Daten für
die Audio-Sequenzen, die den Abonnenten 14 zur Verfügung stehen,
sind in den Speichervorrichtungen 22A, 24A, 22B, 24B, 22C und 24C gespeichert.
Jedes Untersystem 18A, 18B und 18C muss
nicht zwei Speichervorrichtungen enthalten, sondern jedes System
kann eine oder mehrere Speichervorrichtungen enthalten oder kann
alternativ mehr als zwei Speichervorrichtungen enthalten. Die Mikroprozessoren 20A, 20B und 20C sind
dafür verantwortlich,
mit der Steuerung 16 zusammenzuarbeiten, um die Daten für die in
den Speichervorrichtungen gespeicherten Audio-Sequenzen an die Abonnenten 14 zu übertragen.
-
Die
Speichervorrichtungen 22A, 22B, 22C, 24A, 24B und 24C können beispielsweise
Magnetplattenlaufwerke oder optische Plattenlaufwerke sein. Der
Fachmann auf diesem Gebiet wird erkennen, dass jede geeignete Speichervorrichtung
zum Speichern der Daten für
die Audio-Sequenzen verwendet werden kann. Beispielsweise können RAM, Masken-ROM,
EPROM und Flash-EPROMs zum Speichern der Audio-Sequenzen in der
vorliegenden Erfindung verwendet werden.
-
3 ist
ein Flussdiagramm von durch die bevorzugte Ausführungsform der vorliegenden
Erfindung ausgeführten
Schritten. Zu Beginn werden Audio-Sequenzen über die Speichervorrichtungen 22A, 22B, 22C, 24A, 24B und 24C (2)
des Audioserversystems (Schritt 42 in 3)
verteilt gespeichert (d. h. gestript). Mehrere Kopien einer Audio-Sequenz können in
der Audiostation 10 gespeichert sein. Dieser Schritt wird
wahr scheinlich nur einmal für
jede Kopie einer in dem Audiosystem 10 gespeicherten Audio-Sequenz durchgeführt und
wird nicht für
jeden Abonnenten wiederholt. Die Motivation für das Striping der Daten der
Audio-Sequenzen besteht in der Erhöhung des Wirkungsgrades, mit
welcher die Daten durch die Speichervorrichtungen in einer begrenzten
Zeit ausgegeben werden, und in dem Ausgleichen von Belastungsanforderungen
an jede Speichervorrichtung.
-
4 ist
ein Flussdiagramm, das die durch das Audioserversystem zum Striping
der Audio-Sequenzen über
die Speichervorrichtungen 22A, 22B, 22C, 24A, 24B und 24C (d.
h. zum Ausführen
des Schrittes 42 von 3) durchgeführten Schritte
darstellt. Der erste ausgeführte
Schritt dient zum Speichern der Datenrate und der Paketgröße für jede Audio-Sequenz
in einer dieser Audio-Sequenz zugeordneten Datenstruktur (Schritt 53).
Der Administrator des Audioserversystems kennt die Rate, mit welcher die
Audio-Sequenz abgespielt
werden sollte und spezifiziert diese Rate als die Datenrate (z.
B. 8 kb/s). Die Datenrate identifiziert die minimale Rate, mit welcher
die Audio-Sequenz gesendet werden sollte. Obwohl die Audio-Sequenz
schneller gesendet werden könnte,
würde das
langsamere Senden der Audio-Sequenz als mit der Datenrate die Qualität ihrer Wiedergabe
negativ (d. h. der Ton würde
verzerrt werden) beeinflussen. Die Paketgröße wird von dem Administrator
in einer nachstehend beschriebenen Weise spezifiziert, um so die
Verwendung eines Fehlerkorrekturverfahrens zu ermöglichen.
Sowohl die Datenrate als auch die Paketgröße werden in der in 5A dargestellten
Datenstruktur gespeichert. In 5A ist
die Datenstruktur 500 für
eine spezielle als Bezug 502 bezeichnete Audio-Sequenz
dargestellt. Der Bezug 502 auf die Audio-Sequenz kann beispielsweise
der Titel eines Liedes sein. Der angegebenen Audio-Sequenz ist eine
Datenrate 504 und eine Paketgröße 506 zugeordnet.
Die Datenraten 504 spezifiziert die Rate, mit welcher die
Audio-Sequenz abgespielt werden sollte (d. h., an den Abonnenten
gesendet werden sollte). Die Paketgröße 506 spezifiziert
die maximale Datenmenge, die in einem an den Abonnenten über das
Internet 12 gesendeten Paket enthalten sein sollte. Die
Verwendung einer derartigen Paketgröße 506 ermöglicht es,
dass die Paketgröße vor der Übertragung
bekannt ist, was die Verwendung eines Fehlerkorrekturverfahrens
bei der Audio-Sequenz ermöglicht.
Ein Fachmann auf diesem Gebiet wird erkennen, dass die Datenstruktur 500 jede
andere Information enthalten kann, die für die Audio-Sequenz relevant
ist, wie z. B. die Größe der Audio-Sequenz.
-
In
einer alternativen Ausführungsform
könnten
die Datenrate und die Paketgröße durch
den Abonnenten spezifiziert und mit der Anforderung für eine Audio-Sequenz
gesendet werden. Indem man dem Abonnenten ermöglicht, die Datenrate anzugeben,
kann der Abonnenten in der Lage sein, die Daten schneller in Situationen
zu erhalten, in welchen er ausreichende Pufferkapazitäten besitzt
und er weiß, dass
das Internet nicht die erhöhte
Datenrate beeinträchtigt.
Indem man dem Abonnenten ermöglicht, die
Paketgröße zu spezifizieren,
kann der Abonnenten dynamisch größere oder
kleinere Paketgrößen anfordern,
wenn er weiß,
dass das Netzwerk mit einer neuen Größe besser arbeiten würde. Durch
Spezifizieren einer größeren Paketgröße als ein
Mehrfaches der ursprünglichen
Paketgröße oder
einer kleineren Paketgröße als ein
geradzahliger Anteil der ursprünglichen
Paketgröße können die
Fehlerkorrekturaspekte des Audioserversystems weiter realisiert werden.
-
Nach
dem Speichern der Datenrate und der Paketgröße wird die Audio-Sequenz unter
Verwendung eines Fehlerkorrekturverfahrens so codiert, dass der
Verlust von einem oder mehreren Paketen während der Übertragung über das Internet 12 durch den
Abonnenten toleriert werden kann (Schritt 54). D. h., unter
Verwendung einer Anzahl von allgemein bekannten Fehlerkorrekturverfahren
kann der Abonnent die Inhalte der verlorenen Pakete aus den Paketen
rekonstruieren, die empfangen wurden. Ein Beispiel eines derartigen
Fehlerkorrekturverfahrens ist das allgemein bekannte Verfahren der
Paritäts-Codierung.
Ein Paritäts-Codierungsverfahren
setzt voraus, dass ein Paritätspaket
nach einer festen Anzahl von Datenpaketen gesendet wird. Beispielsweise sendet
ein Paritäts-Codierungsverfahren
mit vier Datenpaketen überträgt vier
Datenpakete, gefolgt von einem Paritätspaket, das ausreichend Information enthält, dass
es in der Lage ist, die Inhalte von einem beliebigen der vier Datenpakete
zu rekonstruieren. Die Verwendung von vier Datenpaketen ist lediglich veranschaulichend
und ein Fachmann auf diesem Gebiet wird erkennen, dass entweder
mehr oder wenig Datenpakete verwendet werden können. Bei der Codierung der
Daten gemäß dem Paritäts-Codierungsverfahren
wird die Audio-Sequenz in eine Anzahl von Paketen unterteilt, wobei
jedes Paket eine Menge an Daten enthält, die äquivalent zu einer Paketgröße 506 sind.
Für alle
aufeinander folgenden vier Datenpakete wird ein Paritätspaket
erzeugt, dessen Bits eine Exklusiv-Oder-Verknüpfung der Bits in den vier
Datenpaketen darstellen. D. h., alle Bits in den vier Datenpaketen
mit derselben Bitposition werden einer Exklusiv-Oder-Verknüpfung unterzogen und
das Ergebnis dieser Bool'schen
Operation wird an der ent sprechenden Bitstelle in dem Paritätspaket gespeichert.
Das Paritäts-Codierungsverfahren
ist in 5B dargestellt, welche darstellt,
dass die vier Datenpakete 508, 510, 512 und 504 einer
Exklusiv-Oder-Verknüpfung 516 unterzogen
werden, um das Paritätspaket 518 zu
erzeugen. Bei Verwendung dieses Paritäts-Codierungsverfahrens kann,
wenn während
der Übertragung
der vier Datenpakete 508, 510, 512 und 514 und
des Paritätspaketes 518 ein Fehler
dergestalt auftreten würde,
dass das Datenpaket 508 nicht bei dem Abonnenten ankommen
würde,
dessen Inhalte rekonstruiert werden. Eine derartige Rekonstruktion
erfolgt, indem die Datenpakete 510, 512 und 514 einer
Exklusiv-Oder-Verknüpfung unterzogen
werden, was zu den Inhalten des Datenpaketes 508 führt. Das
Paritäts-Codierungsverfahren trägt dazu
bei, die signifikanten Paketverluste des Internets 12 zu überwinden.
-
Zusätzlich zu
der Paritäts-Codierung
könnten
weitere Codierungsverfahren verwendet werden, welche die Auswirkung
eines verlorenen Paketes verringern würden. D. h., wenn ein Standbild
gesendet wird, können
die Daten in einer solchen Weise paketisiert werden, welche die
empfangenen Daten brauchbar beläßt. Beispielsweise
würde,
wenn das Standbild so paketisiert werde, dass jedes Paket einen
quadratischen Bereich des Bildes speichern würde, wenn ein Paket verloren
wird, das empfangene Bild ein offensichtliches Loch aufweisen. Es
können jedoch
andere Codierungsverfahren verwendet werden, um diesen Effekt zu
verringern. Beispielsweise könnte,
wenn das Standbild mit zwölf
Paketen zu senden wäre,
jedes Paket die Daten für
jede zwölfte Pixelzeile
enthalten. Daher wäre,
wenn ein Paket verloren geht, das empfangene Bild immer noch brauchbar,
wobei der Verlust kaum erkennbar ist. Ferner kann der Abonnent ein
System haben, das die in den fehlenden Zeilen enthaltenen Daten
abschätzt,
was den Datenverlust sogar noch weniger merkbar macht. Ein Fachmann
auf diesem Gebiet wird erkennen, dass es zahlreiche weitere Codierungsverfahren
gibt, die angewendet werden könnten,
um die Auswirkung verlorener Daten in Verbindung mit dem Audioserversystem
der bevorzugten Erfindung zu verringern.
-
Nach
dem Codieren der Daten werden die Daten als ein zusammenhängender
Strom von Daten behandelt, obwohl dieser eine Anzahl von Datenpaketgruppen
und zugeordneter Paritätspakete
repräsentiert.
Dieser zusammenhängende
Strom von Daten wird dann als eine Anzahl sequentieller Blöcke betrachtet.
Die Blockgröße ist variabel,
wobei jedoch ein Block typischerweise 64 Kilobyte bis 4 Megabyte an
Daten enthält.
Die Blockgröße ist durch
einen oberen Grenzwert begrenzt, die nicht überschritten werden kann. Diese
sequentiellen Blöcke
werden dann über
die Speichervorrichtungen aller Untersysteme 18A, 18B und 18C in
den Schritten 55 bis 58 gestript. Der erste Block
einer Audio-Sequenz wird auf einer angegebenen Speichervorrichtung
gespeichert (Schritt 55). Wie vorstehend erwähnt, dürfte es
erkennbar sein, dass mehr als nur eine Kopie einer Audio-Sequenz über die
Speichervorrichtungen gestript sein können. Somit können mehrere
als nur die eine Speichervorrichtung vorhanden sein, auf welcher
jeder Block der Audio-Sequenz gespeichert ist. Nachdem der erste
Block der Audio-Sequenz auf der angegebenen Speichervorrichtung
gespeichert worden ist, erfolgt eine Ermittlung, ob alle Datenblöcke für die Audio-Sequenz
bereits auf den Speichervorrichtungen gespeichert worden sind (Schritt 56).
Falls nicht, wird der nächste
Datenblock für
die Audio-Sequenz auf einer nächsten
Speichervorrichtung in einer vorbestimmten Reihenfolge der Speichervorrichtungen gespeichert
(Schritt 58). Jeder von den aufeinander folgenden Blöcken von
Daten für
die Audio-Sequenz wird auf einer nächsten Speichervorrichtung
in der vorbestimmten Reihenfolge gespeichert. Die Schritte 56 und
58 werden dann wiederholt, bis alle Daten für die Audio-Sequenz über den
Speichervorrichtungen gespeichert worden sind. Die vorbestimmte
Reihenfolge kehrt wieder zu dem Beginn zurück, wenn das Ende der Folge
erreicht ist. Als eine Folge dieses Prozesses werden die Daten für die Audio-Sequenz über die
Speichervorrichtungen hinweg gestript. Die in 4 dargestellten
Schritte werden für
jede Audio-Sequenz durchgeführt,
die in dem Audioserversystem der bevorzugten Ausführungsform
der vorliegenden Erfindung gespeichert ist.
-
Nach
dem Abschluss des Schrittes 42 in 3 der Speicherung
der Audio-Sequenz empfängt die
Audiostation 10 eine Abonnentenanforderung zum Abhören einer
Audio-Sequenz (Schritt 44).
In der alternativen Ausführungsform
werden als Teil dieses Schrittes sowohl die Datenrate als auch die
Paketgröße von dem
Abonnent empfangen und in der Datenstruktur 500 gespeichert.
Als Reaktion auf die Abonnentenanforderung ermittelt das Audioserversystem,
wie die verfügbare
Ausgabebandbreite auszunutzen ist, um die Anforderung des Abonnenten
zu erfüllen.
Bandbreite, wie sie in diesem Zusammenhang verwendet wird, soll
sich auf eine Eingangs/Ausgangs-Kapazität (für einen festen Zeitrahmen)
von Speichervorrichtungen beziehen, welche Daten für die Audio-Sequenzen
enthalten. Das Audioserversystem wird bezüglich einer Implementation beschrieben,
welche die Ausgabebandbreite (d. h., das Lesen von Daten aus den
Speichervor richtungen, die Audio-Sequenzen enthalten) beschrieben, wobei
jedoch der Fachmann auf diesem Gebiet erkennen wird, dass die vorliegende
Erfindung ebenso auf die Eingabebandbreite (d. h. das Schreiben
von Audio-Sequenzdaten auf die Speichervorrichtungen) angewendet
werden kann. Der erste Schritt zur Ausnutzung der verfügbaren Bandbreite
ist die Ermittlung des Laufwerks, auf welchem der Anfangsblock der
abzuhörenden
Audio-Sequenz gespeichert ist (Schritt 46). Wenn der Abonnent
der Audio-Sequenz von
Beginn der Sequenz an abhört,
ist der Anfangsblock der erste Block in der Sequenz. Wenn jedoch der
Abonnent die Audio-Sequenz ab einem Zwischenpunkt abhören möchte, ist
der Anfangsblock der erste Block der, den der Abonnent hören möchte. Das
Audioserversystem führt
eine (nachstehend detaillierter beschriebene) Aufzeichnung der Speichervorrichtungen,
auf welchen jeder der verfügbaren
Audio-Sequenzen beginnt und besitzt insgesamt eine ausreichende
Kenntnis, um den von dem Abonnent abzuhörenden Anfangsblock zu lokalisieren.
Diese Information wird verwendet, um den Schritt 46 von 3 auszuführen.
-
Sobald
die Speichervorrichtung, die den Anfangsblock der angeforderten
abzuhörenden
Audio-Sequenz enthält,
identifiziert worden ist (d. h., Schritt 46), findet das
Audioserversystem die nächste freie
Bandbreiteneinheit, die verwendet werden kann, um die Daten der
angeforderten Audio-Sequenz an den anfordernden Abonnenten zu übertragen
(Schritt 48). Die Bandbreiteneinheit ist die Zuordnungseinheit
von Bandbreite des Audioserversystems. Eine Planung für jede Speichervorrichtung
erfolgt auf einer Spalte von Zeitschlitzen. Jede Spalte enthält eine
Anzahl von Zeitschlitzen in einer Folge, die sich wiederholt. Jeder
Zeitschlitz ist eine begrenzte Zeitperiode die für die Speichervorrichtung zur Ausgabe
eines Datenblocks ausreicht. Eine Bandbreiteneinheit umfasst einen
Zeitschlitz aus jeder Spalte von Zeitschlitzen. Jeder Zeitschlitz
in der Bandbreiteneinheit ist einer unterschiedlichen Speichervorrichtung
zugeordnet, die einen Datenblock einer Audio-Sequenz ausgibt. Da
die Datenblöcke über die
Speichervorrichtungen gestript sind, werden aufeinander folgende
Datenblöcke
aus der vorbestimmten Reihenfolge von Speichervorrichtungen während der
Folge der Zeitschlitze der Bandbreiteneinheit ausgelesen. Die Zeitschlitze
werden durch die Mikroprozessoren 20A, 20B und 20C oder
andere geeignete Mechanismen erzeugt (2).
-
Die
Bezeichnungen einer Spalte von Zeitschlitzen und einer Bandbreiteneinheit
kann möglicherweise
am besten durch ein Beispiel erklärt werden. Abonnenten werden
mit tels einer Bandbreiteneinheit geplant. Mit anderen Worten, ihnen
wird derselbe numerierte Zeitschlitz in jeder Spalte zugeteilt. 6 stellt
die Planung von sieben Abonnenten für drei Speichervorrichtungen
(z. B. Platte 0, Platte 1 und Platte 2) dar. Die in 6 dargestellten
Rechtecke sind Zeitschlitze. Die Nummern 1 bis 7 in 6 entsprechen
dem Zeitschlitz in den entsprechenden Spalten 0, 1 und 2. Zeitschlitze
einer gemeinsamen Bandbreiteneinheit haben alle dieselbe Nummer.
Die Spalten 0, 1 und 2 sind alle zeitlich relativ zueinander (d.
h., in der Zeiteinheit in 6) versetzt,
wobei jedoch jede Spalte dieselbe Folge von Zeitschlitzen hat. Wie
man in 6 sehen kann, bedient das Plattenlaufwerk 0 jeden
von den Abonnenten in Reihenfolge beginnend mit dem Abonnenten,
welchem bereits die logische Einheit der Bandbreite 1 zugewiesen
ist. In dem Beispiel von 1 enthält die Bandbreiteneinheit die
mit 1 in den Spalten 0, 1 und 2 bezeichneten Zeitschlitze. Während des
Schlitzes 1 der Spalte 0 beginnt das Plattenlaufwerk 0 mit der Ausgabe
eines Datenblocks für
eine Audio-Sequenz an einen ersten Abonnenten, dem die Bandbreiteneinheit
1 zugewiesen ist. Eine Zeiteinheit später gibt das Plattenlaufwerk
1 den nächsten
Datenblock an den ersten Abonnent während des Zeitschlitzes 1 der Spalte
1 aus. Ferner gibt bei der Zeiteinheit 2 das Plattenlaufwerk 2 den
nächsten
Datenblock für
die Audio-Sequenz an den Abonnenten während des Zeitschlitzes 1 der
Spalte 2 aus. Die vorbestimmte Folge der Speichervorrichtung in
diesem Beispiel ist das Festplattenlaufwerk 0, das Festplattenlaufwerk
1 und das Festplattenlaufwerk 2, wobei die Folge von dem Festplattenlaufwerk
2 zu dem Festplattenlaufwerk 0 zurückkehrt. Wie vorstehend erwähnt, findet das
Audioserversystem im Schritt 48 von 3 die nächste freie
Bandbreiteneinheit, die einem Abonnenten zugewiesen werden kann,
um die gewünschte
Audio-Sequenz an den Abonnenten zu senden. Insbesondere findet das
Audioserversystem den nächsten
freien Zeitschlitz auf der Speichervorrichtung, der den abzuhörenden Anfangsblock
der Audio-Sequenz enthält.
Die Planung in den anderen Spalten folgt in einem verriegelten Schritt
mit der Planung der Spalte für
diese Speichervorrichtung.
-
7 ist
ein Flussdiagramm der von dem Audioserversystem durchgeführten Schritte,
um die nächste
freie Bandbreiteneinheit im Schritt 48 zu finden. Vor einer
Vertiefung in die Schritte von 7 ist es
hilfreich, zuerst eine Datenstruktur einzuführen, die von dem System geführt wird,
um die Überwachung
der Bandbreiteneinheiten zu unterstützen. Insbesondere führt die
bevorzugte Ausführungsform eine
Datenstruktur 68, wie z. B. ein Array, eine lineare Liste
oder einen Baum (8) für jede von den logischen Band breiteneinheiten
in dem System. Ein Eintrag wird in der Datenstruktur 68 für jede von
den Bandbreiteneinheiten erzeugt. Die Datenstruktur kann in einem
Speicher oder in irgendwelchen anderen Vorrichtungen gespeichert
sein. In dem in 8 dargestellten Beispiel gibt
es 16 Bandbreiteneinheiten. Jeder Eintrag enthält entweder einen Zeiger auf den
Abonnenten, der momentan der Bandbreiteneinheit zugewiesen ist,
oder einen Null-Zeiger, welcher anzeigt, dass die Bandbreiteneinheit
noch nicht zugewiesen worden ist. Diese Struktur kann alternativ als
eine Speicherung einer Zuweisung von Zeitschlitzen an Abonnenten
betrachtet werden, da jede Spalte von Zeitschlitzen derselben Reihenfolge
folgt.
-
Gemäß Darstellung
in 7 besteht der erste Schritt des Findens einer
freien Bandbreiteneinheit in dem Durchführen einer Berechnung, um die
erste Bandbreiteneinheit zu bestimmen, die als nächste bei dem gegebenen aktuellen
Zeitrahmen verwendet werden kann. Es liegt eine inhärente Verzögerung vor,
wann eine freie Bandbreiteneinheit gefunden wird, und wann die freie
logische Bandbreiteneinheit tatsächlich
zum Ausgeben von Daten verwendet werden kann, welche bei der Ermittlung
berücksichtigt werden
muss. Im Schritt 60 von 7 berücksichtigt die
vorliegende Erfindung die Taktgranularität, die Kommunikationsverzögerung zwischen
den Mikroprozessoren 20A, 20B und 20C und
die Verzögerung für Datenblöcke, die
zum Lokalisieren der nächsten Bandbreiteneinheit,
die berücksichtigt
werden sollte, zu lesen sind. Wenn diese Berechnung durchgeführt ist,
ermittelt das Audioserversystem die erste Bandbreiteneinheit, die
dazu verwendet werden kann, die angeforderte Audio-Sequenz an den
Abonnenten auszugeben (wenn die Bandbreiteneinheit noch nicht zugewiesen
ist). Die gefundene Bandbreiteneinheit wird überprüft und es wird ermittelt, ob
die Bandbreiteneinheit frei ist (Schritt 62). Somit wird
im Schritt 62 von 7 die Datenstruktur 68 für die gefundene Bandbreiteneinheit überprüft, um zu
ermitteln, ob sie einen Null-Eintrag enthält. Wenn der Eintrag für die gefundene
Bandbreiteneinheit einen Null-Eintrag enthält, ist die gefundene Bandbreiteneinheit
frei und wird verwendet (Schritt 66). Andererseits wird,
wenn die gefundene Bandbreiteneinheit nicht frei ist (sie enthält einen
Zeiger auf einen Abonnenten), der Eintrag für die nächste Bandbreiteneinheit überprüft, um zu
ermitteln, ob sie frei ist (Schritt 64). Mit anderen Worten,
der Eintrag für
die nächste
Bandbreiteneinheit der in der Datenstruktur 68 (8)
gespeicherten Folge wird überprüft. Der
Schritt 62 wird dann wie vorstehend beschrieben wiederholt.
Dieser Prozess wird wiederholt, bis eine freie Bandbreiteneinheit
gefunden ist. Durch Anwendung dieses Lö sungsweges stellt das Audioserversystem
sicher, dass jeder freie Abschnitt der verfügbaren Bandbreite einem Abonnenten
ohne übermäßige Verzögerung zugewiesen werden
kann.
-
Sobald
die freie Bandbreiteneinheit gefunden ist, wird dem Abonnenten die
freie Bandbreiteneinheit zugewiesen und die Datenblöcke der
Audio-Sequenz werden in der Sequenz übertragen (Schritt 50 in 3).
Die Blöcke
werden in eine Anzahl von Paketen unterteilt, wobei jedes Paket
nicht mehr als die in dem Eintrag der Paketgröße 506 der Datenstruktur 500 spezifizierte
Datenmenge enthält, und
die Pakete werden durch das Audioserversystem mit der spezifizierten
Datenrate 504 übertragen. Typischerweise
enthält
jedes Paket eine von der Paketgröße 506 spezifizierte
Datenmenge, mit der Ausnahme, dass das letzte Paket der Audio-Sequenz weniger
enthalten kann. Der Zyklus wird wiederholt, bis die gesamten Daten
ausgegeben sind, oder bis der Benutzer ein Ende des Abhörens der
Audio-Sequenz anfordert. Es dürfte
sich verstehen, dass die Planung so dynamisch sein kann, dass im
Zeitverlauf die Benutzer in das System eintreten und dieses verlassen
können
und dass die Benutzer Audio-Sequenzen starten und das Abhören beenden
können.
Ferner dürfte
man erkennen, dass die Schritte 44, 46, 48 und 50 auf
vom Abonnenten abhängig
durchgeführt werden.
Somit empfängt
der Abonnent die gewünschten
Daten.
-
Der
Fachmann auf diesem Gebiet wird erkennen, dass die vorliegende Erfindung
auch auf das Schreiben von Daten auf Speichervorrichtungen von Abonnenten
oder anderen Datenquellen aus angewendet werden kann. Dieselben
Schritte der Unterteilung der Planung in Bandbreiteneinheiten werden durchgeführt und
während
der zugewiesenen Zeitschlitze Daten auf die Speichervorrichtungen
geschrieben, statt aus den Speichervorrichtungen ausgelesen.
-
Nachdem
die vorliegende Erfindung unter Bezugnahme auf ihre bevorzugte Ausführungsform beschrieben
wurde, dürfte
der Fachmann auf diesem Gebiet erkennen, dass verschiedene Änderungen
in Form und Detail durchgeführt
werden können.
Beispielsweise können
andere Speichermedien und unterschiedliche Mengen von Speichermedien
verwendet werden. Zusätzlich
kann die Folge von Speichervorrichtungen von der dargestellten abweichen.
Außerdem
können
Lösungswege
zum Überwachen
der Zuweisung von Bandbreiteneinheiten, welche sich von der vorstehend
beschriebenen li nearen Liste unterscheiden, angewendet werden. Zusätzlich ist
der Lösungsweg
der vorliegenden Erfindung auch zum Garantieren einer Eingangsbandbreite
anwendbar.