DE69405976T2 - Datenflu steuerung durch lastbewertung des netzes - Google Patents
Datenflu steuerung durch lastbewertung des netzesInfo
- Publication number
- DE69405976T2 DE69405976T2 DE69405976T DE69405976T DE69405976T2 DE 69405976 T2 DE69405976 T2 DE 69405976T2 DE 69405976 T DE69405976 T DE 69405976T DE 69405976 T DE69405976 T DE 69405976T DE 69405976 T2 DE69405976 T2 DE 69405976T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- video
- delivery system
- presentation
- media data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012384 transportation and delivery Methods 0.000 claims description 50
- 238000004891 communication Methods 0.000 claims description 21
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 24
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 230000004044 response Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 34
- 230000002123 temporal effect Effects 0.000 description 32
- 230000008569 process Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 16
- 230000003044 adaptive effect Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 239000000872 buffer Substances 0.000 description 13
- 230000008859 change Effects 0.000 description 10
- 238000009877 rendering Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000013468 resource allocation Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 230000036962 time dependent Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 235000003642 hunger Nutrition 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000037351 starvation Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 206010012186 Delayed delivery Diseases 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/432—Content retrieval operation from a local storage medium, e.g. hard-disk
- H04N21/4325—Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Television Signal Processing For Recording (AREA)
- Information Transfer Between Computers (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Time-Division Multiplex Systems (AREA)
- Prostheses (AREA)
- Small-Scale Networks (AREA)
- Electrophonic Musical Instruments (AREA)
- Paper (AREA)
- Excavating Of Shafts Or Tunnels (AREA)
- Communication Control (AREA)
Description
- Verteilte Computersysteme und die Netzwerk-Infrastruktur, welche sie einsetzen, haben in den vergangenen Jahren beträchtliche Fortschritte gemacht. Allerdings wird der Gesamtdurchsatz dieser Systeme momentan optimiert, für die Übertragung und Verarbeitung von Daten, die geringe Anforderungen bezüglich der Bandbreite stellen, und keine Zeitabhängigkeit aufweist. Wenn bei Anwendungen versucht wird, vorhandene Infrastrukturen dazu zu verwenden, Daten zu liefern und anzuzeigen, die eine ständig hohe Datendurchsatzrate mit Zeitabhängigkeit erfordern, beispielsweise digitalisierte Video- und Audiodaten, so ist die Infrastruktur häufig nicht dazu fähig, die Anforderungen der Anwendung ununterbrochen zu erfüllen. Insbesondere wenn Anwendungen, die auf Multitasking-Desktopsystemen laufen, versuchen, auf zeitkritische Daten aus lokalen oder Großbereichs-Netzwerken zuzugreifen, und die Daten an dem Desktopsystem anzuzeigen, wird die Präsentation der Daten häufig schwerwiegend beeinträchtigt, infolge der Begrenzungen des Systems.
- Verteilte Systeme können eine begrenzte Fähigkeit aufweisen, die Daten in der ordnungsgemäßen Abfolge und zum erforderlichen Zeitpunkt zu liefern, oder können eine begrenzte Fähigkei.t aufweisen, die Daten, sobald sie empfangen wurden, zum erforderlichen Zeitpunkt zu verarbeiten und darzustellen.
- Anwendungen, welche einen Zugriff und/oder eine Anzeige zeitkritischer, aufeinanderfolgender Daten mit hoher Datenrate durchführen, stellen eine wesentliche Anforderung für die Leistung üblicher, vorhandener Netzwerke dar. Daßdie Daten zeitkritisch sind, werden sie nutzlos für die Anwendung, wenn sie zu spät ankommen. Die hohe Datenrate kann die verfügbare Bandbreite des Netzwerkes überschreiten, wodurch verhindert wird, daß sämtliche Daten zum erforderlichen Zeitpunkt geliefert werden. Infolge der aufeinanderfolgenden und zeitabhängigen Art der Daten müssen diese, selbst wenn sie verbraucht sind, der Anwendung für eine ordnungsgemäße Verarbeitung zugeliefert werden.
- Das liefernde Netzwerk stellt gewöhnlich eine Ressource dar, die von mehreren Benutzern gemeinsam genutzt wird. Insoweit kann irgendein Benutzer auf eine Bandbreite beschränkt sein, die wesentlich kleiner ist als jene, welche das Netzwerk zur Verfügung stellen kann. Darüber hinaus kann die für irgendeinen Benutzer verfügbare Bandbreite von einen Zeitbetrag zum nächsten wesentlich schwanken. Dies tritt auf, wenn andere Anwendungen und andere Schaltungsknoten die gemeinsam genutzte Ressource stärker oder weniger stark nutzen. Diese Einschränkungen und Schwankungen verhindern das Liefern sämtlicher Daten an deren Ziel, in der erforderlichen Zeit, auf ununterbrochene Art und Weise.
- Kein vorhandenes System geht das Problem der Liefereinschränkungen an. Vorhandene Lösungen vermeiden das Problem dadurch, daß (1) spezielle Lieferhardware erforderlich ist, (2) Lösungen auf nicht verteilte Umgebungen beschränkt sind, oder (3) zugelassen wird, daß die Datendarstellung auf chaotische Weise beeinträchtigt wird.
- Die US-A-4 771 391 (Blasbalg) beschreibt ein Datenliefersystem für ein Netzwerk, bei welchem die Paketlänge zur Übertragung von Daten entsprechend der Datenflußrate in dem Netzwerk eingestellt wird. Eine starke Belastung eines Netzwerks ruft Verzögerungen hervor, wenn die verschiedenen Schaltungsknoten bezüglich der Steuerung des Netzwerks zur Übertragung von Signalen miteinander konkurieren. Eine Datenquelle in dem in dem Blasbalg-Dokument beschriebenen System hält die Stabilität des Netzwerks dadurch aufrecht, daß die Flußrate der Information auf dem Netzwerk überwacht wird, und entsprechend die Paketlänge für auf dem Netzwerk übertragene Daten eingestellt wird. Daher ist das Systen von Blasbalg so ausgelegt, daß die Durchsatzrate bei minimaler Verzögerungszeit maximiert wird.
- Obwohl in dem Blasbalg-System die Paketlänge eingestellt wird, muß man hierbei berücksichtigen, daß sämtliche Daten, die darauf warten, auf dem Netzwerk übertragen zu werden, schließlich übertragen werden. Die Daten werden unabhängig von ihrem Typ übertragen. Nur die Paketlänge ändert sich.
- Weiterhin wird darauf hingewiesen, daß ein Quellenknoten in dem Blasbalg-Systen die Überwachung der Netzwerkeigenschaften durchführt (also der Informationsflußrate) und die Paketlänge entsprechend einstellt. Die Ressourcen, die an dem Empfangsknoten verfügbar sind, werden nicht überwacht, und beeinflussen nicht die Leistung des Blasbalg-Systems.
- Die vorliegende Erfindung ist im Patentanspruch 1 angegeben, und stellt ein Datenliefersystem zur Verfügung, welches als adaptive Ratenskalierung bezeichnet wird, und Vorgehensweisen zur Bewertung verfügbarer Lieferressourcen einsetzt, um den Datenfluß zu verfügbaren Lieferressourcen einzustellen, und den Datenfluß an die verfügbare Bandbreite auf nichtstatistische Weise anzupassen. Durch Überwachung der Lieferratentrends und der Schwankungen ist die vorliegende Erfindung dazu fähig, die Daten semantisch zu verstärken, die Datenliefererfordernisse - auf nicht-statistische Weise - auf innerhalb verfügbarer Grenzen zu verringern, und den Mechanismus für verteilte Liefersoftware so einzustellen, daß die verfügbaren Ressourcen am besten genutzt werden.
- Allgemein stellt gemäß einer Zielrichtung die Erfindung ein System zur Anderung des Volumens von Daten dar, die auf einem Kommunikationsmedium geliefert werden. Die Erfindung besteht aus einem Datenverbraucher und einem Datenproduzenten, die über ein Datenkommunikationsmedium kommunizieren. Der Datenverbraucher mißt die Nutzung des Datenkommunikationsmediums und die Nutzung des Datenverbrauchers und erzeugt einen Skalierungsparameter, welcher die Belastung des Systems repräsentiert. Der Datenverbraucher übermittelt den Skalierparaneter an den Datenproduzenten über das Datenkommunikationsmedium. Der Datenproduzent stellt dann das Volumen der Daten, die über das Kommunikationsmedium übertragen werden, entsprechend dem Skalierparaneter ein.
- Bei bevorzugten Ausführungsformen stellt der genannte Datenproduzent einen Fileserver dar, und ist der Datenverbraucher eine Workstation. Das Datenkommunikationsmedium ist ein Computernetzwerk. Bei anderen bevorzugten Ausführungsformen stellen der Datenproduzent und der Datenverbraucher ein einzelnes computersystem dar.
- Bei weiteren bevorzugten Ausführungsformen ist der Datenverbraucher zusätzlich dazu ausgebildet, übertragane Daten zu empfangen, und die Daten zeitweilig in einem Puffer zu speichern. Der Datenverbraucher ändert die Puffergröße entsprechend dem angegebenen Skalierparameter.
- Bei anderen bevorzugten Ausführungsformen erzeugt der Datenproduzent zwei Arten von Daten. Die ersten Daten werden mit festem Volumen geliefert, und die zweiten Daten werden mit variablem Volumen geliefert. Der Datenproduzent ändert das Volumen der zweiten Daten entsprechend dem angegebenen Skalierparameter, der von dem Datenverbraucher empfangen wird.
- Bei anderen bevorzugten Ausführungsformen stellen die ersten Daten Audiodaten und die zweiten Daten Videodaten dar. Das Volumen der Videodaten, die von dem Datenproduzenten geliefert werden, ändert sich entsprechend dem Skalierparameter, der von dem Datenverbraucher empfangen wird.
- Bei anderen bevorzugten Ausführungsformen erzeugt der. Datenproduzent mehr als zwei Arten an Daten. Der Datenproduzent liefert jeden Datentyp mit einen Volumen, welches individuell für jeden Datentyp festgelegt wird. Der Datenproduzent ändert individuell das Volumen jedes Datentyps entsprechend dem angegebenen Skalierparameter, der von den Datenkonsumenten empfangen wird.
- Bei anderen bevorzugten Ausführungsformen werden Mehrfachströme (mehrere Fälle) jedes Datentyps von dem Datenproduzenten über das Kommunikationsmedium an den Datenverbrauqher übermittelt.
- Weitere Zielrichtungen, Merkmale und Vorteile der Erfindung sind in der nachstehenden Beschreibung und den Patentansprüchen angegeben.
- Fig. 1 zeigt schematisch den Aufbau der vorliegenden Erfindung.
- Bei Multitasking-Workstations stellen die Bestandteile des Systems gemeinsam genutzte Ressourcen dar. Mehrere Anwendungen oder Tasks können sich für dieselbe CPU, denselben Bus, dasselbe Video-Untersystem, Audio-Untersystem usw. ändern. Die verfügbaren Ressourcen jedes Untersystems können nicht ausreichend sein, dessen Verantwortung zu erfüllen. Wenn beispielsweise eine Workstation unfähig ist, Videodaten ebenso wirksam wie Audiodaten zu verarbeiten und anzuzeigen, so kann möglicherweise ein Synchronisationsverlust auftreten.
- Vorhandene Anwendungen ignorieren entweder derartige Situationen, oder versuchen, sie dadurch zu bewältigen, daß sie feststellen, daß ein oder mehrere Untersysteme in kritischer Weise zurückgefallen ist bzw. sind, und versucht wird, dadurch aufzuschließen, daß das Untersystem beschleunigt wird. Diese Vorgehensweise kann zu einem statistischen Verlust von Daten führen, welche "inzwischen veraltet sind".
- Die vorliegende Erfindung, die als adaptives Ratenskalieren bezeichnet wird, verwendet Vorgehensweisen zur Bewertung von Verarbeitungs- und AnzeigeRessourcen und zur Einstellung des Datenflusses auf die verfügbare Bandbreite auf nichtstatistische Weise. Die Erfindung stellt fest, welche Ressourcen am wahrscheinlichsten für die Verarbeitung und die Anzeige von Daten verfügbar sind. Nur Daten, die in der betreffenden Zeit verarbeitet und dargestellt werden können, werden an die Workstation geliefert. Die Anmeldung muß nicht mit veralteten Daten umgehen. Durch Überwachung der Trends für die Lieferrate und für die Verarbeitungsrate und der Schwankungen kann der adaptive Ratenskalierungsvorgang gemäß der Erfindung die verfügbaren Ressourcen bestimmen, semantisch die Daten verstärken, die Daten verringern, welche eine Verarbeitung benötigen, und sie - auf nicht-statistische Weise - so anzeigen, daß sie innerhalb verfügbarer Grenzen liegen, und den Vorgang mit verteilter Liefersoftware so einstellen, daß die verfügbaren Ressourcen am besten genutzt werden.
- Digitalisierte Audio- und Videodaten sind dynamische Datenarten mit Attributen (entweder implizit oder explizit) bezüglich der zeitlichen Darstellung. Darüber hinaus ist die Darstellung von Audio- und Videodaten zum Zwecke der Synchronisation eng gekoppelt. Digitale Video- und Audiodatenströme weisen in Bezug auf ihre Darstellung Echtzeiteinschränkungen auf. Die Ströme sind normalerweise durchgehend und reichen von Ausschnitten von 30 Sekunden über zweistündige Filme bis zu durchgehenden Lieferübertragungen. Sie verbrauchen zwischen 1 MBit/Sekunde bis 4 MBit/Sekunde an Speicherkapazität und/oder Übertragungsbandbreite, abhängig von der Komprimierungstechnik.
- Die synchronisierte Darstellung digitaler Audio- und Videodaten wird häufig dadurch erzielt, daß Audio- und Videodaten in dem Speichercontainer oder während des Eingabevorgangs von Lieferdaten verschachtelt werden. Eine Einheit für Video (beispielsweise ein Rahmen) wird einer Einheit für Video (dem entsprechenden Ausschnitt von 33 ms) körperlich im Speicher zugeordnet. Das Darstellungssystem holt Stücke verschachtelter Audio-Videodaten mit einer Sammelrate, die an die Darstellungsrate angepaßt ist, und übergibt diese Stücke verschachtelter Audio/Videodaten mit einer Sammelrate, welche an die Darstellungsrate angepaßt ist, und übergibt diese Stücke an das Darstellungs/Dekoder- Untersystem entweder verschachtelt oder mit aufgehobener Verschachtelung. Synchronisation zwischen Audio- und Video wird durch die anfängliche Verschachtelung im Speicher und die Darstellung der Information mit der nominellen Darstellungsrate erzielt. Die Synchronisation wird dadurch erzielt, daß abwechselnd die Audio- und Videoeinheiten den digitalen Video- und digitalen Audio-Untersystemen nach dem Round-Robin-Verfahren übergeben werden.
- Die Verschachtelung kann eine feine Verschachtelung sein (eine einzelne Videodarstellungseinheit und eine ausreichende Anzahl an Audioproben zum Füllen einer entsprechenden Darstellungsdauer in wiederholter Weise), oder eine gröbere Verschachtelung (mehr als eine Videodarstellungseinheit, und dann die ausreichende Anzahl an Audioproben, um eine entsprechende Darstellungsdauer wiederholt zu füllen). Die Verschachtelung kann so grob werden, daß sie aus sämtlichen Videodarstellungseinheiten hintereinander besteht, gefolgt von sämtlichen Audiostücken mit entsprechender Dauer (oder die Anordnung kann so sein, daß auf alle Audiostücke alle Videostücke folgen). Abhängig von der Unterteilung der Verschachtelung kann eine für die Anzeige der dynamischen Daten verantwortliche Anwendung auswählen, die Quelle für die dynamischen Daten einmal oder mehrfach zu öffnen, für ein wirksames Zurückholen und eine wirksame Anzeige.
- Wenn die dynamischen Daten fein verschachtelt sind, (beispielsweise ein Videodarstellungsstück für ein entsprechendes Stück an Audiodaten mit gleicher zeitlicher Dauer), öffnet die Anzeigeanwendung gemeinsam die Datenquelle einmal, erhält die Video- und Audiodaten auf verschachtelte Weise, und trennt die Video- und Audiodaten auf die geeigneten Anzeigesysteme (Video- oder Audio) zur geeigneten Darstellungszeit auf.
- Wenn die dynamischen Daten gröber verschachtelt sind, kann der Abstand zwischen zwei Stücken eines vorgegebenen Stromtyps größer sein als die Dauer der Daten, die in einem. vorgegebenen Stück des Stroms enthalten sind. Anders ausgedrückt kann beim Arbeiten mit grob verschachtelten Video- und Audiodaten das Ziehen aufeinanderfolgender Stücke von Videodaten durch das System und deren Bearbeitung länger dauern, als die Summe der Darstellungszeiten des Audiostückes beträgt, welches zwischen die Videosequenzen geschaltet ist.
- Durch mehrfaches Öffnen der Datei kann die Anwendung eine Sitzung als Zugriff auf den Audiostrom und eine andere Sitzung als Zugriff auf den Videostrom interpretieren. Die auf den Audiostrom zugreifende Sitzung wird zu Beginn des ersten Audiostückes angeordnet, liest die in dem Stück enthaltenen Audiodaten, und wird dann zu Beginn des nächsten Audiostückes angeordnet, indem in der Datei bis zu Beginn des nächsten Audiostückes in Vorwärtsrichtung gesucht wird. Die Sitzung mit dem Videostrom erhält die Videodaten auf entsprechende Weise. Sie setzt sich auf den Beginn des ersten Videostückes, liest sämtliche aufeinanderfolgenden Videostücke, und überspringt dann die verschachtelten Audiodaten durch einen Suchlauf zum Beginn des nächsten darauffolgenden Videostückes.
- Wenn die Medienquelle die Darstellungsrate der Daten festlegt, welche sie wiedergibt, muß die Quelle keine Darstellungszeit oder Darstellungsdauer für jedes diskrete Darstellungsstück an Daten aufweisen. Die Darstellungszeit und die Darstellungsdauer sind implizit, und lassen sich von der Anwendung unter Verwendung folgender Formeln einfach ermitteln.
- Presentation_Time = Presentation_Rate*Presentation_Unit-Number;
- Presentation_Duration = 1/Presentation_Rate;
- ("Presentation": Darstellung; "Time": Zeit; "Rate": Rate; "Unit": Einheit; "Number": Nummer)
- Wenn die Netzwerkbandbreite nicht ausreichend ist, zeitabhängige Daten an den Klienten ausreichend wirksam zu übertragen, daß der Klient die Daten verarbeiten und anzeigen kann, so werden die Daten vor der Anzeige veraltet. Entsprechend werden die Daten veraltet, wenn das System keine ausreichenden Fähigkeiten zur Verarbeitung und Anzeige von Daten zur impliziten Darstellungszeit aufweist. Ein Endbenutzer erhält unterschiedliche Ergebnisse abhängig davon, wie die Anwendung mit veralteten Daten umgeht.
- Wenn das Netzwerk nicht dazu fähig ist, Daten an den Klienten vor der impliziten Darstellungszeit der Daten zu liefern, so hat die Anwendung in dieser Beziehung zwei Optionen. Der Klient kann anhalten und auf die Ankunft der erforderlichen Daten warten. Dies stellt einen Zustand des Datenhungers dar. Datenhunger kann Audiounterbrechungen (Tonausfall) hervorrufen, da für das Audio-Untersystem momentan keine Daten verfügbar sind. Er kann auch zu Videoschwankungen führen, da beim Video eine vorherige Darstellung länger als über die Dauer der implizierten Darstellung auf dem Bildschirm bleibt, während auf die Ankunft neuer Daten gewartet wird. Der Klient kann stattdessen die Wahl treffen, sich in dem zeitlichen Datenstrom weiter vom an einer Position anzuordnen, an welcher die Daten erneut zeitlich relevant sind. Dies stellt einen Zustand des Datenausfalls dar. Datenmengen werden übersprungen bei dem Versuch, die zeitliche Integrität aufrechtzuerhalten. Infolge gegenseitiger Abhängigkeiten zwischen den Einheiten der Medienströme kann der Vorschub beträchtlich sein, der zur Erzielung der Datenintegrität erforderlich ist. Beispielsweise verwenden zahlreiche Komprimierungsverfahren eine Vollrahmen/Differenzrahmen-Abhängigkeit. Jede Differenzrahmendekodierung hängt von sämtlichen Rahmen ab, die ihr vorausgehen, einschließlich bis zum vorherigen Vollrahmen. Um die Datenintegrität zu erreichen muß die Anwendung eine neue Positionierung bis zu einem der darauffolgenden Vollrahmen durchführen. Da Vollrahmen durch zahlreiche Differenzrahmen getrennt sein können, kann auch die zeitliche Umorientierung beträchtlich sein.
- Wenn der Klient nicht dazu fähig ist, die Daten zur implizierten Darstellungszeit zu verarbeiten (zu dekodieren) und bereitzustellen (darzustellen), so überschreitet die Darstellungszeit der Daten die Systemzeit, und die Daten werden veraltet. Wenn dies auftritt, reagiert die Anwendung üblicherweise auf eine von drei Arten und Weisen. Sie kann auswählen, die Daten zu verarbeiten, jedoch vermeiden, die Daten zu übergeben. Auf Systemen, die Daten schneller verarbeiten als übergeben können, führt dies dazu, daß nur minimale Datenverluste auftreten (möglicherweise eine gelegentliche Darstellungseinheit). Diese Lösung arbeitet nur auf derartigen Systemen ordentlich, welche VerarbeitungsRessourcen aufweisen, die zur Verarbeitung sämtlicher Audio- und Videodaten ausreichend sind, jedoch keine ausreichenden Ressourcen zur Übergabe der Videodaten aufweist. Wenn der Klient nicht dazu fähig ist, die Audiooder Videodaten zu verarbeiten, oder unfähig ist, die Audiodaten zu übergeben, wird der Klient dazu gezwungen, die Situation auf eine der folgenden Arten und Weisen zu bereinigen.
- Der Klient kann anhalten und darauf warten, daß die erforderlichen Daten verarbeitet und/oder übergeben werden. Wie vorher stellt dies den Zustand des Datenhungers dar, und kann daher erneut Audiounterbrechungen (Tonausfälle) hervorrufen, dä dem Audio-Untersystem bis zum momentanen Zeitpunkt Daten fehlen. Dies kann auch zu Videoschwankungen führen, da beim Video eine vorherige Darstellung länger auf dem Bildschirm bleibt als die implizite Darstellungsdauer, während darauf gewartet wird, daß neue Daten verarbeitet werden.
- Wie vorher kann stattdessen der Klient auswählen, sich selbst weiter vom in dem zeitlichen Datenstrom an einem Ort anzuordnen, an welchem die Daten erneut zeitlich relevant sind. Dies ist ein Zustand des Datenausfalls. Datenmengen werden übersprungen bei dem Versuch, die zeitliche Integrität aufrechtzuerhalten. Infolge gegenseitiger Abhängigkeiten von Einheiten der Medienströme können die Vorschübe zur Erzielung der Datenintegrität beträchtlich sein. Beispielsweise verwenden viele Komprimierungsverfahren eine Vollrahmen/Differenzrahmen-Abhängigkeit. Jede Differenzrahmendekodierung hängt von sämtlichen Rahmen vor ihr ab, bis einschließlich zum vorhergehenden Vollrahmen. Um die Datenintegrität zu erzielen muß die Anwendung eine Neuorientierung auf einen der folgenden Vollrahmen durchführen. Da Vollrahmen durch zahlreiche Differenzrahmen getrennt sein können, kann auch die zeitliche Umorientierung beträchtlich sein.
- In den letzten vergangenen Jahren erfolgte eine Wegbewegung beim Computereinsatz in Firmen von zentralisierten Rechnerarchitekturen, welche Großcomputersysteme oder selbständige Systeme auf Desktopbasis darstellen, zur verteilten Berechnung hin, bei welcher mehrere Server und Desktop-Systeme gemeinsam Ressourcen über Lokalnetzwerke oder Großbereichsnetzwerke nutzen. Die Klienten/Server-Architektur und die Architektur mit gleichrangigen Rechnern stellen übliche Beispiele für das Modell mit verteilter Berechnung dar.
- Häufig wird das Netzwerk selbst eine gemeinsam genutzte Ressource unter Teilnehmern in dem verteilten Berechnungsmodell. Wenn eine Anwendung die Netzwerkbandbreite zur Erzielung eines Tasks wie beispielsweise einer Datenbewegung nutzt, ist für andere Teilnehmer der verteilten Umgebung weniger freie Bandbreite verfügbar.
- Wenn Teilnehmer die geteilte Netzwerkumgebung mehr oder weniger stark benutzen, können die für jeweils einen bestimmten Teilnehmer verfügbaren Ressourcen stark schwanken. Dies ist relativ unwesentlich für Teilnehmer, wenn ihre Daten nicht zeitkritisch sind, da sich die statistischen Schwankungen über längere Zeiträume ausmitteln.
- Zeitkritische Daten, die von ständig hohen Datenraten abhängen, können durch diese Schwankungen negativ beeinflußt werden. Wenn auf dem Netzwerk nur eine unzureichende Bandbreite verfügbar ist, kann die Lieferung der Daten nach der Darstellungszeit der Daten auftreten. Unter diesen Umständen sind die Daten für das System wenig nützlich.
- Tasks, die auf Klienten-Workstationen liegen, die unter Multitasking-Betriebssystemen laufen, oder SystemRessourcen haben, können auch unter veralteten Daten leiden, infolge der Unfähigkeit, smtliche Daten vor der Darstellungszeit der Daten zu vearbeiten und zu liefern. Anders ausgedrückt kann die Zeit, welche das System dazu benötigt, ein Stück an Daten zu dekomprimieren ünd zu übergeben, die Darstellungszeit des vorherigen Datenstücks überschreiten. Dies kann infolge unzureichender GesamtRessourcen in der Workstation auftreten (die CPU oder das Video-Untersystem ist zu langsam), oder deswegen, weil Ressourcen von anderen Tasks genutzt werden (beispielsweise eine CPU, welche andere Tasks bedient).
- Zeitkritische Daten, die von ständig hohen Datendarstellungsraten abhängen, können durch diese Schwankungen negativ beeinflußt werden. Wenn unzureichende Ressourcen auf der Klienten-Workstation zur Verarbeitung und Übergabe der Daten verfügbar sind, kann die Anzeige der Daten nach der den Daten zugeordneten Darstellungszeit auftreten. Es ist möglich, daß Daten eine Klienten-Workstation vor der den Daten zugeordneten Darstellungszeit erreichen, jedoch die Workstation nicht dazu fähig ist, die Daten vor der Darstellungszeit zu verarbeiten und zu übergeben.
- Es ist möglich, dadurch das Ausmaß der Empfindlichkeit auf Ressourcenschwankungen zu glätten, daß eine kontinuierliche Datenlieferung von dem Produzenten der Daten zum Interpreten der Daten durchgeführt wird. Wie voranstehend erwähnt neigen Schwankungen von SystemRessourcen (sowohl Netzwerk als Workstation) dazu, über größere Zeitbeträge ausgeglichen zu werden. Liefert man Daten von dem Produzenten der Medien an den Interpreten wesentlich vor der Darstellungszeit für die Daten, kann das System in gewissem Ausmaß die Auswirkungen von Ressourcenschwankungen minimalisieren. Durch zeitliche Steuerung auf solche Weise, daß die Daten dem Empfänger einen bestimmten Zeitbetrag (beispielsweise eine Sekunde) vor der den Daten zugeordneten Darstellungszeit zugeführt werden, kann das System eine Ressourcensperre bis zu einer Dauer von einer Sekunde auffangen.
- Zu beachten ist, daß der Nachteil des Ressourcenmangels additiv ist. Wenn beispielsweise so geplant wird, daß ein Paket eine Sekunde vor seiner Darstellungszeit an die Workstation geliefert wird, und eine Übertragungssperre über eine halbe Sekunde vorgenommen wird, so weist das nächste Paket, da es daraufhin geliefert wird, ein Lieferfenster von annähernd einer halben Sekunde auf.
- Um die kontinuierliche Datenlieferung von Daten zu unterstützen, ordnet der Klient lokale Ressourcen zu, um kontinuierlich gelieferte Daten zu speichern, vor der Anforderung durch die Verarbeitungs/Lieferanwendungen. Die vorliegende Erfindung ordnet die lokalen Speicherressourcen von dem Systemspeicher für maximale Leistung zu. Allerdings ist es auch möglich, daß die Architektur andere lokale Speichermedien dazu einsetzt, Verzögerungen und Schwankungen des Liefernetzwerks auszugleichen. Bei der Zuordnung lokaler Speicherressourcen gibt es Abbildungsfunktionen von der gewünschten zeitlichen Tiefe der Speicherung auf physikalische Speicheranforderungen.
- Sei TSD (Temporal Storage Depth) die zeitliche Speichertiefe, welche das System für die Vorauslese-Cache-Speicherung wünscht, welche die kontinuierliche Datenlieferung unterstützt. Sei MBR (Maximum Bit Rate) die maximale Bitrate, mit welcher die Daten an die Klienten-Workstation geliefert werden können, die während der Einrichtung der Sitzung festgelegt wird. Sei NPS (Network Packet Size) die Netzwerkpaketgröße, die während der Einrichtung des Systems festgelegt wird. Seien PSR (Physical Storage Ressources) die physikalischen Speicherressourcen, die für den Klienten erforderlich sind, und sei PPSR ein Zeiger auf PSR. PSR kann von dem System unter Verwendung des Laufzeitaufrufes in der Sprache C zugeordnet werden:
- Hierdurch wird physikalischer Speicher zur Verfügung gestellt, der dazu ausreicht, den zeitlichen Vorauslese- Cache-Speicher mit der maximalen Bitrate zu speichern, welche das System für die gegebene Sitzung liefert. Es wird darauf hingewiesen, daß dann, wenn während einer bestimmten Sitzung auf mehrere Dateien zugegriffen wird, der Klient eine erneute Berechnung von PSR durchführen muß, wenn MBR für eine folgende Datei größer ist als die Datei, auf die momentan zugegriffen wird.
- Die menschliche Tonwamehmung ist äußerst empfindlich und erfordert eine glatte und durchgehende Darstellung der Audioproben mit stabiler Rate. Allerdings ist die menschliche Wahrnehmung äußerst tolerant gegenüber glatten Anderungen der Videoqualität und der Rahmenrate, wobei typischerweise eine Bewegung wahrgenommen wird, obwohl eine starke Variation der Qualität des Bildes und seiner Darstellungsrahmenrate auftritt. Versuchsergebnisse zeigen, daß Menschen eine Bewegung wahrnehmen, wenn die Darstellungsrahmenrate zwischen 15 und 30 Rahmen/Sekunde liegt. Selbst bei niedrigeren Rahmenraten stellen wir immer noch Bewegung fest, obwohl die Artefakte stärker bemerkt werden können.
- Durch Setzung von Prioritäten für das Zurückholen, die Übertragung, und die Darstellung von Audiodaten gegenüber Videodaten innerhalb einer Netzwerkberechnungsumgebung ohne Synchronisationsverlust kann ein digitales Videomanagementsystem optimal die verfügbaren Ressourcen für das Berechnen, die Komprimierung, und das Netzwerk einsetzen, während eine akzeptable Darstellung von Audio und Video aufrechterhalten bleibt.
- Die Architektur definiert Klienten/Server-Sitzungsmanagementprotokolle und Strommanagementprotokolle für den Zugriff, das Zurückholen und Darstellen dynamischer Datenarten, beispielsweise Video und Audio, über existierende lokale und Großbereichsnetzwerke.
- Die vorliegende Erfindung stellt ein leistungsfähiges System für die Zuordnung von Ressourcen und die Trendvorhersage zur Verfügung, welches dynamisch Datenraten und Lieferkonfigurationen an verfügbare BerechnungsRessourcen und die Kommunikationsbandbreite anpassen kann, während eine akzeptable Darstellung synchronisierter Video- und Audiodaten aufrechterhalten bleibt. Die Erfindung stellt transparent eine adaptive Ratenskalierung für jede Anwendung unter Einsatz von Anwendungsprogrammierschnittstellen nach dem Industriestandard zur Verfügung, um auf Information über ein Netzwerk von einem. Videoserver zuzugreifen.
- Digitale Videodaten können in üblichen Computerdateien auf Datei-Servern gespeichert sein, oder in Echtzeit von Analogvideoquellen erzeugt und über lokale und Weitbereichs- Paketnetzwerke verfügbar gemacht werden. Der Zugriff auf digitale Videodaten kann nach Wunsch erfüllen, wie bei dem Zurückholen und Darstellen aus einer gespeicherten Datei, oder nach Plan, wie beim Einspeisen in einen Sendekanal oder beim Abzapfen aus diesem.
- Ein Videosystem, welches die Erfindung nutzt, stellt zur Verfügung:
- Kontrolle für Klienten/Serverzugriff, Steuerung, und Management zur Bereitstellung dynamischer Daten von einem Video-Server oder eine Video- Einspeisungsvorrichtung
- Stromdatentransportprotokolle, welche ein Vorauslesen im Strom, eine Priorität von Audiodaten gegenüber Videodaten, und semantische Verstärkung dynamischer Daten gestatten
- Bewertung von Ressourcen, die zum Liefern und Darstellen dynamischer Daten auf Multitasking-Systemen in einem Netzwerk verfügbar sind
- Dynamische Klienten/Server-Rückkopplungsprotokolle, welche eine adaptive Handhabung von BerechnungsRessourcen und der Kommunikationsbandbreite gestatten
- Dynamische Einstellungen bei Liefer- und Darstellungsbauteilen auf der Grundlage verfügbarer Ressourcen innerhalb des Systems.
- In Figur 1 sind diese Aufgaben auf drei Funktions- Untersysteme verteilt - einen Medienproduzenten 12, eine Ressourcenzuordnungsvorrichtung 22, und einen Medieninterpreten 24. In Zusammenarbeit sind diese Module dazu fähig, die Ressourcenverfügbarkeit des Systems zu bestimmen und vorherzusagen, Raten an Daten zu begrenzen, die geliefert und verarbeitet werden, und zwar auf Niveaus, mit welchen das System fertigwerden kann, und das Liefersystem dynamisch abzuändern, um die Leistung auf der Grundlage momentaner Raten zu optimieren.
- Jede der Funktionen des Medienproduzenten 12, der Ressourcenzuordnungsvorrichtung 22 und des Medieninterpreten 24 kann durch Hardware oder Software verwirklicht werden, unter Verwendung von Standardvorgehensweisen, wie Fachleuten auf diesem Gebiet deutlich sein wird. Die Anhänge A, B, C, D und E zeigen ein Schema von Pseudocodes zur Implementierung dieser Funktionen. Die Kodierung der Pseudocode- Verfahrensschritte als Computerbefehle, die zur Ausführung des beschriebenen Szenariums geeignet sind, ist für Durchschnittsfachleute auf dem Gebiet der Programmierung in der Sprache C verständlich.
- Der Medienproduzent 12 ist ein Softwaremodul, welches für die dynamische Erzeugung von Audio/Videoinformation verantwortlich ist, welche semantische Information außerhalb des Bandes enthält. Der Medienproduzent liegt auf einem Videoserver (Datenquelle) 10. Er ist verantwortlich für wirksamen Zugriff, wirksame grammatische Zerlegung, Skalierung, und semantische Anreicherung von Audio/Videoinformation. Der Medienproduzent 12 führt die Übersetzung zwischen der Darstellung angehängter Rohdaten und der semantisch erhöhten dynamischen Computerdarstellung von Audio/Videodaten durch, die möglicherweise auf eine niedrigere Videodatenrate skaliert sind, auf der Grundlage von Trendinformation, die von einer Klienten-Workstation (Datenverbraucher) 20 geliefert wird.
- Der Medieninterpret 24 ist ein Softwaremodul, welches dafür verantwortlich ist, geeignete Mediendaten an Anwendungen zu liefern, die an unterstützten Anwendungsprogrammierschnittstellen hängen, beispielsweise der Media Control Interface (Mediensteuerschnittstelle) der Microsoft Corporation, Redmond, Washington. Er ist ebenfalls verantwortlich für die Reaktion auf Datenanforderungen von der Anwendung entsprechend der semantisch erhöhten Information, die vpn dem Medienproduzent 12 erzeugt wird. Im Betrieb des Systems paßt der Medieninterpret 24 dynamisch seine Konfiguration und seine Operationen in Reaktion auf Information an, die von einer Ressourcenzuordnungsvorrichtung 22 (nachstehend genauer erläutert) geliefert wird. Infolge der beträchtlichen Schwankungen, die bei heutigen komplizierten Berechnungsumgebungen auftreten (Multitasking- Betriebssystemen, gemeinsam genutzte lokale und Großbereichsnetzwerke, verteilte Berechnungslösungen, usw.), und der Anforderungen, welchen diese Systeme infolge einer hohen Datenrate, und der zeitabhängigen Lieferung und Anzeige von Daten genügen müssen, muß ein System ständig Einstellungen durchführen, um den wirksamsten hohen Leistungspegel mit verfügbaren Ressourcen sicherzustellen.
- Die Ressourcenzuordnungsvorrichtung 22 ist ein Softwaremodul, welches für die dynamische Analyse von Ressourcenverfügbarkeitstrends des Systems und für die Bereitstellung dieser Information an den Medieninterpreten 24 und den Medienproduzenten 12 verantwortlich ist. Die Ressourcenzuordungsvorrichtung 22 verwendet Vorgehensweisen 26 und 28 zur Bewertung der Bandbreite, die auf dem Kommunikationsmedium 30 (lokales oder Weitbereichsnetzwerk) und der Klienten-Workstation (Datenkonsument) 20 verfügbar ist. Unter Verwendung der erhaltenen Information in Bezug auf die Verfügbarkeit (oder den Mangel) von Ressourcen bestimmt die Ressourcenzuordnungsvorrichtung 22 Ressourcenverfügbarkeitstrends (deren Richtung und Größe), und teilt dem Medieninterpreten 24 und dem Medienproduzenten 12 Anderungen 32 mit, die zur Aufrechterhaltung einer aktzeptierbaren Systemleistung erforderlich sind.
- Der Medienproduzent 12 und der Medieninterpret 24 stellen eine äußerst wirksame Erzeugung und Lieferung zeitabhängiger Daten 34 und 36 mit hoher Bandbreite während der Wiedergabe und der Anzeige dynamischer Datentypen zur Verfügung. Die Ressourcenzuordnungsvorrichtung 22 kann asynchron die Belastung des Systems 28 feststellen und den Datenfluß beeinflussen, nimmt jedoch an dem Datenfluß selbst nicht teil. Darüber hinaus wird der Datenfluß mit minimalen Pufferkopien zwischen der Platte oder dem Netzwerk- Untersystem und der Hardware zur Handhabung der dynamischen Datenart durchgeführt.
- Diese Architektur ist sehr gut auf die meisten modernen Betriebssysteme übertragbar, welche Multitasking mit und ohne Vorgriff sowie einen Betriebsablauf mit Prioritäten oder nach dem "Round-Robin-System" unterstützen. Die Architektur gestattet darüber hinaus ein selektives Ausladen des Medienproduzenten 12 und/oder des Medieninterpreten 24 an einen speziellen Coprozessor für ein wirksames Datenmanagement. D.ie stark dezentralisierte Architektur läßt sich einfach an sämtliche LAN- und WAN-Kommunikationsmedien 30 anpassen.
- Die bevorzugte Ausführungsform der vorliegenden Erfindung besteht momentan aus den Modulen des Medienproduzenten 12, des Medieninterpreten 24 und der Ressourcenzuordnungsvorrichtung 22.
- Der Medienproduzent 12 liegt auf dem entfernten Video-Server 10 und ist dafür verantwortlich, die gespeicherten Videodateien handzuhaben, die dynamischen Daten durch zusätliche semantische Information anzureichern, Datenraten dadurch einzustellen, daß glatt Videodaten aus dem Strom entfernt werden, entsprechend Trends, die von dem Modul der Ressourcenzuordnungsvorrichtung 22 festgestellt werden, und die dynamischen Daten 34 und 36 über das Netzwerk an den Medieninterpreten 12 zu liefern.
- Der Medieninterpret 24 liegt bei dem Klienten (Datenverbraucher) 20 und stellt Ressourcentrendinformation 32 für den Medienproduzenten 12 zur Verfügung, unter Verwendung von Klienten/Server-Sitzungsmanagementprotokollen und von Ressourcenverfügbarkeitsinformation, die von dem Modul der Ressourcenzuordnungsvorrichtung 22 zur Verfügung gestellt werden.
- Die Ressourcenzuordnungsvorrichtung 22 befindet sich bei dem Klienten (Datenverbraucher) 20. Es verwendet direkte und indirekte Ressourcenermittlungsverfahren 26 und 28, um die Größe und Richtung von Ressourcenverfügbarkeitstrends festzustellen. Werte, welche die Trends repräsentieren, werden an den Medienproduzenten 12 geliefert, und dem Medieninterpreten 24 auf Anforderung zugeführt.
- Der Video-Server teilt seine Dienste über ein Standard- Netzwerkprotokoll mit. Bei einer üblichen Netzwerk- Softwareumgebung, beispielsweise der Netware der Novell Inc. Provo, Utah, ist dieses Protokoll das Dienstankündigungsprotokoll (Service Advertisement Protocol) (SAP). Jeder Video-Server ist verantwortlich für einen Namensraum der Medienquellen, die er ankündigt.
- Wenn eine Anwendung eine Datei öffnet (beispielsweise eine Datei mit verschachtelten Audio/Videodaten (AVI)) in einem Microsoft-Video für die Windows-Umgebung der Microsoft Corporation, Redmond, Washington) aufgrund eines Namens, um auf den Inhalt der Datei zuzugreifen, erzeugt die Video- Klientensoftware einen Medieninterpreten für den intelligenten Zugriff auf die in der Datei enthaltenen Daten und zum Liefern der Daten an die momentane Anwendung. Der Medieninterpret öffnet eine oder mehrere Sitzungen mit dem Medienproduzenten auf der Grundlage des Namens der Datei, auf welche das Anwendungsprogramm zuzugreifen wünscht. Der Medieninterpret erzeugt weiterhin einen Fall der Ressourcenzugriffsvorrichtung, welche eine ständige Bewertung der SystemRessourcen einleitet, die für das Liefern und die Darstellung dynamischer Daten verfügbar sind.
- Während der Einrichtung der Sitzung oder Sitzungen tauschen der Medienproduzent und der Medieninterpret Informationen aus, welche die Optimierung der Paketgröße ermöglichen, des Zustands der Klientenanwendung, der maximalen Datenrate, welche der Klient akzeptieren wird, und des Startwertes, der für die adaptive Ratenskalierung für die Sitzung verwendet werden soll.
- Darüber hinaus ordnet der Medieninterpret eine Speichergröße zu, die dazu ausreicht, eine endliche zeitliche Menge dynamischer Daten zwischenzuspeichern, welche der mit MCI verträglichen Anwendung geliefert wird. Der Medieninterpret erzeugt eine Sitzung mit dem Medienproduzenten und leitet eine Medienvorausleseoperation ein, in welcher der Medienproduzent damit beginnt, Daten von dem Server zum Klienten herüberzuschicken.
- Häufig verwenden Filmvideodatenkodierverfahren einen Vollrahmen/Differenzrahmen-Algorithmus. Ein Vol lrahmen enthält sämtliche Daten, gewöhnlich in komprimierter Form, die dazu erforderlich sind, den vorgegebenen Rahmen auf dem Anzeigegerät darzustellen. Ein Differenzrahmen enthält in komprimierter Form sämtliche Information, die dazu erforderlich ist, einen Rahmen in Bezug auf einen vorherigen Rahmen darzustellen. Anders ausgedrückt weist der Vollrahmen vollständige Daten auf, und ist eigenständig. Ein Differenzrahmen enthält nur die Anderungen zwischen einem Bezugsrahmen und sich selbst. Ein Differenzrahmen ist abhängig von sämtlichen vorhergehenden Rahmen, einschließlich bis zum vorherigen Vollrahmen.
- Wenn Videofilme ein anderes Kodierschema als das Vollrahmen/Differenzrahmen-Schema verwenden, dann ist daher jeder Rahmen eigenständig und daher ein Vollrahmen.
- Die vorliegende Erfindung verstärkt semantisch Videodatenströme, damit Null-Videorahmen durch die Liefer-, Bearbeitungs- und Darstellungsphasen der Wiedergabe hindurchgehen können, um so die effektive Datenrate des Mediumstroms zu verringern. Durch vorauseilende Verringerung der Datenrate auf der Grundlage von Ressourcentrends, wie sie von der Ressourcenzuordnungsvorrichtung festgestellt werden, kann das System auch glatt Videodatenraten so verringern, daß sie innerhalb der Grenzen der SystemRessourcen bleiben.
- Wenn er die Quelle grammatisch zerlegt, welche den Mediumstrom oder die Medienströme enthält (die momentane Implementierung verwendet das verschachtelte Audio/Video- Dateiformat), kann der Medienproduzent Vollrahmen und Differenzrahmen in dem Videostrom identifizieren. Auf der Grundlage von Ressourcentrends, die von der Klienten- Workstation mitgeteilt werden (Richtung und Größe), ändert der Medienproduzent die Menge an Videodaten, welche an den Klienten geliefert wird. Bestenfalls entfernt der Medienproduzent keine Daten aus dem Videostrom und wird dieser mit der Rate wiedergegeben, mit welcher er ursprünglich aufgenommen wurde. Schlimmstenfalls entfernt der Medienproduzent sämtliche Videodaten, und wird nur Audiomformation an die Klienten-Workstation geliefert.
- Wenn Videodaten entfernt werden, beispielsweise durch Einsetzen von Nult-Daten-Stücken in das AVI-Dateiformat, muß der Medienproduzent innerhalb der Einschränkungen der Vollrahmen/Differenzrahmen-Kodierung arbeiten. Der Medienproduzent beginnt am hinteren Ende einer Sequenz von Differenzrahmen und arbeitet sich rückwärts durch die Sequenz hindurch, wobei er die Videodaten durch Null-Stücke ersetzt, bis die geeignete Verringerung der effektiven Datenrate erzielt ist. Für niedrige Skalierungsraten kann es nur erforderlich sein, daß der Medienproduzent den letzten Differenzrahmen aus einer Sequenz entfernt, um die gewünschte Datenrate zu erzielen. Eine stärkere Skalierung kann das Entfernen mehrerer Differenzrahmen von dem Ende einer Sequenz aus Differenzrahmen erfordern. Eine starke Skalierung kann das Entfernen einer gesamten Sequenz von Differenzrahmen und des vorhergehenden Vollrahmens erfordern, um die erforderliche Verringerung der Datenrate zu erzielen.
- Die vorliegende Erfindung wurde so implementiert, daß sie mit Daten arbeitet, die mit dem AVI-Dateiformat (Audio Video Interleaved, audio/videoverschachtelt) verträglich sind. Eine AVI-Datei besteht aus Vorspanninformation, die variable Aspekte der Daten der Datei beschreiben (beispielsweise den Verschachtelungsfaktor, Arten enthaltener Ströme, usw.), möglicherweise einem Index in die Datei zur Optimierung der Positionierung, und Datenströmen, die als Stücke organisiert sind.
- Das Stück ist die grundlegende Organisationseinheit innerhalb der Datei. Jedes Stück enthält ein Hinweissymbol, welches die Art des Stroms identifiziert, zu welcher die Daten in dem Stück gehören, die Abmessungen des Stückes, und die aktuellen Daten für das Stück.
- Das voranstehend geschilderte Netzwerkbetriebssystem Novell NetWare , auf welchem die bevorzugte Ausführungsform der vorliegenden Erfindung implementiert ist, verwendet eine Fähigkeit, die als Streuung/Sammeln bekannt ist. Wenn Daten auf das Netzwerk bewegt werden, um einem anderen Knoten zugeführt zu werden, kann der sendende Task an die Netzwerkschnittstelle eine Liste von Speicheradressen und der Länge der Daten an jeder Adresse übergeben. Die Netzwerkschnittstellenschicht sammelt dann die Information, die an den Adressen liegt, und stellt die Daten zu einem Paket zusammen, für den Transport zu dem Empfangsknoten.
- Wenn Daten von einem Netzwerkpaket empfangen werden, kann der Empfangsknoten an die Netzwerkschnittstellenschicht eine Liste der Adressen und der Länge des verfügbaren Speichers an jeder Adresse übergeben. Die Netzwerkschnittstelle streut hintereinander die Daten, die in dem Paket enthalten sind, welches vom Sender an den verfügbaren Speicher an der Adresse geschickt wird. Die Netzwerkschnittstellenschicht füllt zuerst den Speicher an der ersten Adresse, dann den Speicher an der zweiten Adresse, uws., bis das gesamte Paket geliefert wurde, oder nach Maßgabe der Streuungsliste kein Speicher mehr verfügbar ist.
- Der Medienproduzent nutzt die Sammelfunktion von Netware dazu, Videostücke, für welche festgestellt wurde, daß.sie entfallen müssen, um die erforderliche Bitrate zu erzielen, durch Null Videomformation außerhalb des Bandes zu ersetzen. Durch Bezugnahme auf die Null-Stücke vermeidet der Medienproduzent das Erfordernis, die aktuelle Quelle abzuändern, so daß andere Sitzungen dieselbe Quelle mit potentiell unterschiedlichen Datenarten nutzen können.
- Bei der Übertragung auf Netzwerkbetriebssysteme, welche Streuungs/Sammelfähigkeiten nicht unterstützen, kann die vorliegende Erfindung diese Verantwortungen übernehmen.
- Wie voranstehend geschildert besteht das AVI-Dateiformat aus mehreren Stücken von Daten. Jedes Stück weist ein Hinweissymbol auf, welches angibt, wie die Dateneinheit interpretiert werden soll (beispielsweise Videodaten oder Audiodaten). Der Medienproduzent verringert die Datenrate, die an den Medienproduzenten geliefert wird, durch Ersetzen der großen Menge an Videodaten durch eine sehr kleine Menge an semantischer Information, welche Null-Daten für das Darstellungssystem darstellt.
- Für ein Videostück, welches entfallen soll, ändert der Medienproduzent die Stückgröße so ab, daß sie gleich Null ist. Hierdurch wird in der Auswirkung ein Videostück ohne Abmessungen erzeugt. Dies verringert die effektive Bitrate im Ausmaß der Abmessungen des entfernten Videostücks. Diese Funktion wird durch den Pseudocode im Anhang A erläutert.
- Um den Medieninterpreten in Kenntnis zu setzen, daß eine Informationsmenge aus dem Datenstrom entfernt wurde, verwendet der Medienproduzent "Abfallstücke". Die momentane Version der Erfindung wurde so implementiert, daß sie AVI- Dateien verarbeitet und sie an Anwendungen liefert, die mit MCI verträglich sind. Das AVI-Dateiformat unterstützt einen Datenstücktyp, der als "Abfallstück" bekannt ist. Das Abfallstück wird häufig dazu verwendet, Speichermedien abzufedern, um die Ausrichtung zu optimieren. Jede Anwendung, die einen Konsumenten von Daten im AVI-Format darstellt, muß Abfallstücke verstehen und weiß, daß sie nicht interpretiert werden sollen.
- Der Medienproduzent verwendet Abfallstücke dazu, um dem Medieninterpreten mitzuteilen, welche Daten aus dem Datenstrom entfernt wurden. Dies erlaubt es dem Medieninterpreten, wenn dies von einer Anwendung gefordert wird, Daten zu positionieren oder auf diese zuzugreifen, die von dem Medienproduzenten entfernt wurden, um Daten für die Anwendung in sinnvoller Weise zu erzeugen.
- Die vorliegende Erfindung unterscheidet sich von vorhandenen Lösungen auf mehrere Arten und Weisen.
- 1. Die Erfindung ist bei der Zuordnung verfügbarer Ressourcen voreilend. Vorhandene Lösungen stellen nur fest, wenn Daten veraltet geworden sind. Bestenfalls versuchen sie dann, die Situation dadurch zu bereinigen, daß (potentiell) große Datensequenzen entfallen oder übersprungen werden, bis die zeitliche Integrität wieder hergestellt ist. Dies erfolgt in statistischen Intervallen infolge der chaotischen Schwingungen der SystemRessourcen. Die Erfindung ist vorauseilend bezüglich der Beurteilung, welche Ressourcen für das Liefern, die Verarbeitung und die Darstellung von Daten verfügbar sein werden. Sie verhindert das Liefern von Daten, welche das System vor der sich ergebenden Darstellungszeit nicht handhaben könnte. Dies stellt eine erheblich glattere Degeneration der Datenrate zur Verfügung.
- 2. Die Erfindung beurteilt ständig die Bandbreite, die für die Lieferung von Daten über das Netzwerk verfügbar ist. Durch die Kenntnis der Soll-Darstellungsrate und Ermittlung der Netzwerklieferrate kann die Erfindung Ressourcenschwankungentrends für die gemeinsam genutzte NetzwerkRessource ermitteln, und entsprechend handeln.
- 3. Die Erfindung beurteilt ständig VerarbeitungsRessourcen, die dem system zur Verfügung stehen. Durch Kenntnis der Soll-Darstellungsrate und Ermittlung der Systemverarbeitungsbelastung kann die Erfindung Ressourcenschwankungentrends für die gemeinsam genutzte VerarbeitungsRessource feststellen, und entsprechend handeln.
- 4. Unter Verwendung ermittelter Werte, welche die Richtung und die Größe von Ressourcentrends angeben, kann die Erfindung semantisch den Videodatenstrom durch Information außerhalb des Bandes ändern, um die Videodatenrate auf glatte Art und Weise zu verringern.
- In Kenntnis der erwarteten zeitlichen Datenrate (wieviele Darstellungseinheiten eines bestimmten Stroms pro Zeiteinheit das System bearbeiten sollte) kann das Ressourcenzuordnungsvorrichtungsmodul feststellen, ob das System die Rate überholt oder hinter diese zurückfällt, mit welcher Daten über das Netzwerk geliefert werden.
- Der Vorauslese-Cache-Zwischenspeicher, welchen der Medieninterpret auf der Klienten-Workstation aufrechterhält, erhält Information von der Netzwerkschicht und liefert die Daten etwas später an die Darstellungsanwendung. Die Ressourcenzuordnungsvorrichtung untersucht die Anzahl an Darstellungseinheiten, welche in den Cache-Speicher aus dem Netzwerk hineingelangen, und die Anzahl an Darstellungseinheiten, welche den Cache-Speicher zur Anwendung hin am anderen Ende verlassen. Dies erlaubt es der Ressourcenzuordnungsvorrichtung, festzustellen, ob Daten an den Klienten schneller oder langsamer geliefert werden, als die Anmeldung die Daten verbraucht.
- Da das Netzwerk keine Daten an die Klienten-Workstation liefern kann, wenn der Cache-Speicher voll ist, muß ein ordnungsgemäßes Berechnen der verfügbaren NetzwerkRessourcen auch berücksichtigen, ob der Vorauslese-Cache-Speicher voll ist. Dies erfolgt durch Normierung der Anzahl an Einheiten in dem Cache-Speicher bezüglich der Anzahl an Einheiten, die man im Optimalfall gern in dem Cache-Speicher haben würde.
- Die Erfindung, wie sie momentan implementiert wird, ermittelt eine Transportmetrik (TM) zur Darstellung der auf dem gemeinsam genutzten Netzwerk verfügbaren Ressourcen. Die Transportmetrik erhält man dadurch, daß die momentane zeitliche Tiefe des Vorauslesepuffers durch die gewünschte zeitliche Tiefe des Puffers normiert wird.
- TransportMetric = Currenttemporaldepth/Targettemporaldepth* 100
- (TransportMetric = momentane zeitliche Tiefe/zeitliche Solltiefe*100)
- Die TransportMetric wird als Eingabe für eine Abbildungsfunktion verwendet, um einen relativen Skalierungswert zu erhalten, der an den Server zurückgeschickt werden kann. Der zurückgeschickte Wert ist eine Zahl mit 8 Bit und Vorzeichen, die im Bereich von -128 bis +127 liegt. Die Größe der Zahl gibt an, wieviele 128stel der momentanen Datenrate zur Einstellung des Flusses verwendet werden. Das Vorzeichen des Skalierungsfaktors gibt die Richtung der Anderung an. Eine negative Zahl bedeutet weniger Daten (höhere Skalierung), und eine positive Zahl bedeutet, daß mehr Daten gesendet werden sollen (geringere Skalierung). Die nachstehende Tabelle erläutert die Abbildung von einer TransportMetric auf einen Skalierungsfaktor.
- Wenn beispielsweise der Vorauslese-Cache-Speicherpuffer eine zeitliche Tiefe von mehr als 90 % des Sollwerts und weniger als 110 % des Sollwerts aufweist, befindet sich das System im stabilen Zustand. Keine Skalierungseinstellungen sind infolge der NetzwerkRessourcen erforderlich, und Null wird als Netzwerkskalierungswert zurückgeschickt. Wenn die zeitliche Tiefe des Vorauslese-Cache-Speichers zwischen 60 % und 70 % der gewünschten Tiefe liegt, wird ein Skalierungsfaktor von -6 zurückgeschickt. Der Wert von -6 teilt dem Medienproduzenten mit, die Datenrate durch 6/128 der momentanen Datenrate zu verringern.
- Wenn NR die neue Rate bezeichnet, CR die momentane Rate, und SF den Skalierungsfaktor, der von der Tabelle zurückgeschickt wird, berechnet der Medienproduzent die neue Datenrate unter Verwendung folgender Formel:
- NR = CR * (1 + SF / 128)
- Da unterschiedliche Produktions- und Transportmechanismen bestimmte Eigenschaften (beispielsweise unterschiedliche Ausbreitungsverzögerungen) aufweisen, wird die Bestimmung der Einstellung der Datenratensaklierung infolge von. NetzwerkRessourcen als Nachschlagetabelle abstrahiert. Dies gestattet es dem System, sich an Umgebungen anzupassen, die unterschiedliche Eigenschaften aufweisen, nämlich durch Abänderung der. Tabelle, statt den Code zu ändern. Andere Verfahren können zur Bereitstellung entsprechender Funktionen eingesetzt werden, beispielsweise die Verwendung einer Funktion zur Ermittlung der Skalierungswerte. Der Skalierungswert muß nicht eine prozentuale Anderung der momentanen Datenrate angeben, sondern kann auch tatsächlich direkt eine absolute Datenrate angeben.
- Eine Tabelle wird bei der momentanen Implementierung der Erfindung dazu verwendet, einen Skalierungswert auf der Grundlage von NetzwerkRessourcen zu erhalten. Die Tabelle gestattet die Abbildung der normierten zeitlichen Einheiten in der Leitung auf einen Netzwerkskalierungsparameter, der den Ressourcentrendänderungsvektor darstellt. Die Verwendung der Tabelle gestattet es der Medienzuordnungsvorrichtung, einen Netzwerkskalierungsparameter (Ressourcentrend, also Richtung und Größe) auf der Grundlage der Änderung der Anzahl normierter zeitlicher Einheiten zu ermitteln, die in dem Cache-Speicher liegen, verglichen mit der Anzahl normierter zeitlicher Einheiten, die in dem Cache-Speicher während des letzten Zeitbetrages lagen. Diese Funktion wird durch den Pseudocode erläutert, der im Anhang B aufgeführt ist.
- Die Ermittlung von Verarbeitungs- und DarstellungsRessourcentrends wird kontinuierlich von der Ressourcenzuordnungsvorrichtung durchgeführt. Das Ziel in einem einzelnen oder Multitasking-System besteht darin, soviele Verarbeitungs- und DarstellungsRessourcen wie möglich zu nutzen, ohne die Gesamtsystemleistung negativ zu beeinflussen. Anders ausgedrückt gibt es eine Obergrenze für die Ressourcenverfügbarkeit (Berechnungszyklen, Datenbewegungsbandbreite, Bildanzeige, usw.), welche dann, wenn sie überschritten wird, die Gesamtleistung des Systems verschlechtert. Die vorliegende Erfindung ist dazu fähig, die Ressourcenverfügbarkeitsobergrenze innerhalb der Microsoft Windows-Betriebssystemumgebung festzustellen und zu quantifizieren, weiche zum Treiben des adaptiven Ratenskalierungsvorgangs verwendet werden kann. Die Erfassung und Quantifizierung der Ressourcenobergrenze ist leicht auf andere Betriebssysteme übertragbar.
- Microsoft Windows ist ein Betriebssystem auf Nachrichtenbasis. Innerhalb des Nachrichtenübertragungsprotokolls gibt es Nachrichten mit unterschiedlichen Prioritäten, beispielsweise Zeitgebernachrichten oder Malnachrichten. Diese Nachrichten werden nur an Anwendungen geliefert, wenn keine anderen Nachrichten in der Nachrichtenwarteschlange der Anmeldung vorhanden sind. Der Empfang einer Zeitgebernachricht bedeutet:
- Der Task weist keine ausstehenden Nachrichten von anderen Tasks oder dem System selbst auf. Er muß daher keine Ereignisse verarbeiten.
- Der Task ist nicht damit beschäftigt, ein vorheriges Ereignis zu verarbeiten.
- Es läuft kein anderer Task.
- Wenn der Task eine Zeitgebernachricht empfängt kann er annehmen, daß nichts Bedeutendes in dem System passiert. Anders ausgedrückt befindet sich der Task beinahe im Leerlauf, und haben alle anderen Tasks SystemRessourcen freigegeben, damit andere Tasks laufen können.
- Die vorliegende Erfindung stellt die Klienten-Workstation- Ressourcenverfügbarkeit auf der Grundlage der Frequenzabweichung des Empfangs von Nachrichten mit niedriger Priorität fest. Für diese Implementierung verwendet die Erfindung die Abweichung der Frequenz, mit welcher eine Zeitgebernachricht empfangen wird, von der Frequenz von Zeitgeberereignissen, welche der Task von dem System anforderte. Jedesmal, wenn eine Zeitgebernachricht empfangen wird, wird ein Ereigniszähler schrittweise erhöht. In diskreten Intervallen untersucht das Ressourcenzuordnungsvorrichtungsmodul die Frequenz der Zeitgeberereignisse und vergleicht sie mit den erwarteten Frequenzen.
- Da die Zeitgebernachricht eine niedrigere Priorität als alle anderen Ereignisse aufweist (mit der Ausnahme von Malnachrichten) in der Microsoft Windows-Umgebung, tritt die Ankunft von Zeitgerbernachrichten bei einem vorgegebenen Task mit einer erforderlichen Frequenz mit niedriger Frequenz auf, wenn das System stark belastet ist. Im Gegensatz, wenn das System nur leicht belastet ist, entspricht der Empfang an Zeijtgebernachrichten der Frequenz, welche der Task angefordert hat. Durch Verfolgung der Abweichung des Empfangs der Zeitgebernachricht von der angeforderten Frequenz, und durch Untersuchung der Abweichung, kann der adaptive Ratenskalierungsvorgang die Systembelastung quantifizieren.
- Die Erfindung, wie sie momentan implementiert ist, ermittelt eine Klientenmetric (CM) zur Angabe der auf dem gemeinsam genutzten Netzwerk verfügbaren Ressourcen. Die Klientenmetric erhält man durch Normierung der Frequenz an Zeitgeberereignissen durch die geforderte Frequenz an Zeitgeberereignissen.
- ClientMetric = Actualfrequency/Requestedfrequency*100
- (Klientenmetric = aktuelle Frequenz/geforderte Frequenz*100)
- Die Klientenmetric wird als Eingabewert für eine Abbildungsfunktion verwendet, um einen relativen Skalenwert zu erhalten, der an den Server zurückgeschickt werden kann. Der zurückgeschickte Wert ist eine Zahl mit 8 Bit und Vorzeichen, die im Bereich von -128 bis +127 liegt. Die Größe der Zahl gibt an, mit wievielen 128stel der momentanen Datenrate der Fluß eingestellt wird. Das Vorzeichen des Skalenfaktors gibt die Richtung der Änderung an. Eine negative Zahl bedeutet, daß weniger Daten gesendet werden sollen (höhere Skalierung), und eine positive Zahl, daß mehr Daten gesendet werden sollen (geringere Skalierung). Die nachstehende Tabelle erläutert die Abbildung von der KlientenMetric auf den Skalenfaktor.
- Wenn beispielsweise die empfangene Anzahl an Zeitgebernachrichten größer als 325 und kleiner als 475 ist, so befindet sich das Klientensystem auf dem gewünschten Belastungspegel und daher im stabilen Zustand. Infolge der KlientenRessourcen sind keine Skalierungseinstellungen erforderlich, und wird der Wert von Null als der Klientenskalierungsfaktor zurückgeschickt. Wenn die Anzahl an Zeitgeberereignissen zwischen 100 und 275 liegt, wird ein Skalierungsfaktor von -6 zurückgeschickt. Der Wert von -6 teilt dem Medienproduzenten mit, daß die Datenrate durch 6/128 der momentanen Datenrate verringert werden soll.
- Wenn NR die neue Rate bezeichnet, CR die momentane Rate, und SF den Skalierungsfaktor, der von der Tabelle zurückgeschickt wird, so berechnet der Medienproduzent die neue Datenrate unter Verwendung folgender Formel:
- NR = CR * (1 + SF / 128)
- Unter Verwendung der Frequenz von Zeitgeberereignissen als Nachschlagewert in einer Abbildungstabelle kann die Ressourcenzuordnungsvorrichtung einen Klientenskalierungsvektor ermitteln, welchen der adaptive Ratenskalierungsvorgang dazu verwenden kann, die Datenrate abzuändern, welche der Medienproduzent an die Klienten- Workstation liefert. Es können andere Verfahren zur Bereitstellung entsprechender Funktionen verwendet werden, beispielsweise die. Verwendung einer Funktion zur Ermittlung der Skalierungswerte. Der Skalierungswert muß nicht eine prozentuale Änderung der momentanen Datenrate angeben, sondern kann stattdessen auch direkt eine absolute Datenrate angeben.
- Bei der momentanen Implementierung der Erfindung wird eine Tabelle dazu verwendet, einen Skalierungswert auf der Grundlage von KlientenRessourcen zu erhalten. Die Tabelle gestattet die Abbildung des Zeitgebernachrichtenzählwertes auf einen Klientenskalierungsparameter, welcher den Ressourcentrendänderungsvektor angibt. Die Verwendung der Tabelle erlaubt es der Medienzuordnungsvorrichtung, einen Klientenskalierungsparameter (Ressourcentrend, nämlich Richtung und Größe) festzustellen, auf der Grundlage der Änderung der Anzahl an Zeitgebernachrichten, die über einen Zeitraum empfangen wurden. Diese Funktion wird durch den Pseudocode erläutert, der im Anhang C aufgeführt ist.
- Wenn der Medienproduzent das Ausmaß der Skalierung erhöht oder verringert, weist der Medieninterpret potentiell mehr oder weniger zeitliche Einheiten in einem Vorauslese-Cache- Zwischenspeicher mit vorgegebenen physikalischen Abmessungen auf. Wenn der Cache-Zwischenspeicher zuerst zugeordnet wird, ist seine Größe dazu ausreichend, eine Anzahl an zeitlichen Einheiten bei der maximalen Datenrate zu halten, mit welcher geliefert wird.
- Während des Betriebs des Systems kann der adaptive Ratenskalierungsvorgang den Medienproduzenten anweisen, vorauseilend die Datenrate zurückzuskalieren. Der Medienproduzent führt dies durch Ersetzen vorhandener Videorahmen durch Null-Rahmen durch. Da die Daten, die zur Darstellung eines Null-Rahmens erforderlich sind&sub1; erheblich weniger sind als die Videodaten, die hierdurch ersetzt werden (potentiell um mehrere Größenordnungen), stellt der Vorauslese-Cache-Zwischenspeicher auf der Klienten- Workstation eine zeitliche Tiefe dar, die wesentlich größer ist als gewünscht.
- Ein Wachstum der zeitlichen Tiefe in dem Cache- Zwischenspeicher beeinträchtigt den adaptiven Ratenskalierungsvorgang negativ. Dies liegt daran, daß dann, wenn die zeitliche Tiefe des Cache-Zwischenspeichers zunimmt, auch die Ausbreitungsverzögerung der Datenratenänderung zunimmt. Da Daten nicht entfernt werden, sobald sie einmal von dem Medienproduzenten erzeugt wurden, müssen sämtliche Daten innerhalb des kontinuierlich Daten liefernden Cache- Zwischenspeichers verbraucht werden, bevor von dem Medienproduzenten mit geänderter Rate erzeugte Daten das System stabilisieren können.
- Es ist möglich, daß die zeitliche Tiefe in solchem Ausmaß wächst, daß sie Schwingungen in den Anforderungen nach einer adaptiven Ratenskalierung mit einer Größe hervorruft, daß die Systemleistung in größerem Ausmaß gestört wird als durch die Schwingungen, die ein System normalerweise infolge von Schwankungen von SysteirtRessourcen erfährt. Jede Vorschrift für adaptive Ratenskalierung, welche eine vorauslesende, kontinuierliche Datenlieferung von Medien auf Zeitbasis verwendet, muß dynamisch die physikalischen Ressourcen einstellen, die für das Vorauslese-Cache- Zwischenspeichersystem zugeordnet werden.
- Die vorliegende Erfindung modifiziert dynamisch die physikalischen Ressourcen, die dem Cache-Zwischenspeicher zugeordnet werden, um eine zeitliche Tiefe innerhalb einer maximalen positiven Abweichung und einer maximalen negativen Abweichung von der Soll-Zeittiefe aufrechtzuerhalten. Diese Funktion wird durch das im Anhang D aufgeführte Pseudocodeprogramm erläutert.
- Durch Aufrechterhaltung des vorauslesenden, kontinuierlich Daten liefernden Cache-Zwischenspeichers als Warteschlange, die aus mehreren Gruppen von Puffern besteht, welche die gleiche Größe aufweisen wie die maximale Paketgröße, die von dem Netzwerk verwendet wird, werden die nachstehenden Ziele erreicht.
- Das Kopieren von Daten wird minimalisiert. Der Cache- Zwischenspeichermechanismus sorgt dafür, daß ein freier Puffer für die Netzwerkschnittstelle (Eingabe zum Cache- Zwischenspeicher) verfügbar wird, der ausreichende Abmessungen hat, um ein Netzwerkdatenpaket zu halten. Wenn das Datenpaket in den Speicherraum des Medieninterpreten kopiert wird, wird es direkt in die Warteschlange kopiert. Da eine Kopie erfolgen muß, um die Daten von dem Transport in den Speicher zu befördern, haben wir so die Daten in die geeignete Position der Warteschlange eingefügt, ohne daß eine zusätzliche Kopie erforderlich wurde.
- Die Datenwarteschlange ist segmentiert, damit die Ressourcenzuordnungsvorrichtung das Ausmaß an physikalischen Ressourcen, die verfügbar sind, dadurch verringern kann, daß sie Puffer aus dem Vorauslese- Cache-Zwischenspeicher entfernt und sie in einer Leerlaufwarteschlange parkt. Da der von der Erfindung verwendete adaptive Ratenskalierungsvorgang die Mediendatenrate verringert, verringert er auch die physikalischen Ressourcen, die für den Vorauslese-Cache- Zwischenspeicher mit kontinuierlicher Datenlieferung verfügbar sind, so daß die zeitliche Tiefe des Cache- Zwischenspeichers ausreichend nahe an der gewünschten Tiefe bleibt. Wenn Ressourcen für das Liefern und Verarbeiten von Medienströmen verfügbar werden, kann die Ressourcenzuordnungsvorrichtung Puffer von der geparkten Warteschlange zur Cache-Zwischenspeicherwarteschlange bewegen.
- Der Vorgang des Lieferns, Verarbeitens und Darstellens zeitkritischer Daten kann nur mit einer Rate erfolgen, die durch die langsamste Verbindung in dem Vorgang begrenzt ist. Im Falle des adaptiven Ratenskalierungsvorgangs ist der Datenratenänderungsvektor, der von der Klienten-Workstation an den Medienproduzenten geschickt wird, der niedrigere der Werte, die für NetzwerkRessourceneinschränkungen und für Klientenverarbeitungsres sourceneinschränkungen erhalten werden. Diese Funktion wird durch den im Anhang E aufgeführten Pseudo code erläutert.
- In Bezug sowohl auf die Patentansprüche als auch die Beschreibung der bevorzugten Ausführungsformen stellt eine Datenquelle 10 ein Computersystem dar, welches die Funktion des Medienproduzenten zur Verfügung stellt. Der Ausdruck Tidatenverbraucheril betrifft ein Computersystem, welches die Funktionen der Ressourcenzuordnungsvorrichtung und des Medieninterpreten zur Verfügung stellt.
Claims (15)
1. Datenliefersystem mit:
einem Datenkommunikationsmedium (30);
einer an das Datenkommunikationsmedium angeschlossene
Datenquelle (10) zum Liefern von Daten an das
Datenkommunikationsmedium;
einer Datenabnehmereinrichtung (20), die an das
Datenkommunikationsmedium angeschlossen ist, wobei die
Datenabnehmereinrichtung von der Datenquelle gelieferte
Daten durch das Datenkommunikationsmedium empfängt,
dadurch gekennzeichnet, daß
die Datenabnehmereinrichtung (20) so ausgebildet ist, daß
sie einen dynamischen Skalierparameter berechnet, welcher
die Belastung des Systems repräsentiert, auf der Grundlage
zumindest einer vorbestimmten variablen Eigenschaft in
Bezug auf die Belastung des Systems, und den dynamischen
Skalierparameter an die Datenquelle (10) übermittelt,
und daß die Datenquelle (10) so ausgebildet ist, daß sie
selektiv einen Anteil der Daten wegfallen läßt, die
hierdurch über das Datenkommunikationsmedium (30) an die
Datenabnehmereinrichtung (20) entsprechend dem dynamischen
Skalierparameter geliefert werden,
wodurch der Umfang der Daten, die durch das
Datenkommunikationsmedium geliefert werden, entsprechend
der Belastung des Systems variiert werden kann.
2. Datenliefersystem nach Anspruch 1, bei welchem die
Datenabnehmereinrichtung (20) so ausgebildet ist, daß sie
den dynamischen Skalierparameter entsprechend einer
Datenlieferrate durch das Datenkommunikationsmedium (30)
berechnet.
3. Datenliefersystem nach Anspruch 1, bei welchem die
Datenabnehmereinrichtung (20) so ausgebildet ist, daß sie
den dynamischen Skalierparameter entsprechend einer
Kapazitätseigenschaft der Datenabnehrnereinrichtung
berechnet.
4. Datenliefersystem nach Anspruch 1, bei welchem die
Datenabnehmereinrichtung (20) so ausgebildet ist, daß sie
den dynamischen Skalierparameter entsprechend einer
Datenlieferrate durch das Datenkommunikationsmedium (30)
berechnet, und entsprechend der Verfügbarkeit von
Ressourcen der Datenabnehmereinrichtung.
5. Datenliefersystem nach Anspruch 1, bei welchem der
dynamische Skalierparameter auf der Häufigkeit von
Zeitgebernachrichten beruht, die von der
Datenabnehmereinrichtung empfangen werden.
6. Datenliefersystem nach einem der Ansprüche 1 bis 5, bei
welchem die von der Datenquelle gelieferten Daten eine
erste und eine zweite Art von Daten umfassen, wobei die
erste Datenart mit festem Umfang und die zweite Datenart
mit variablem Umfang geliefert wird, und die
Datenabnehmereinrichtung so ausgebildet ist, daß sie den
dynamischen Skalierparameter entsprechend dem
Synchronisationszustand zwischen den beiden Arten von Daten
bestimmt, wodurch die erste und die zweite Art von Daten
dadurch synchronisiert werden, daß selektiv Anteile der
zweiten Datenart entfernt werden.
7. Datenliefersystem nach einem der Ansprüche 1 bis 5, bei
welchem die von der Datenquelle (10) gelieferten Daten
synchronisierte Videodaten (36) und Audiodaten (34)
umfassen.
8. Datenliefersystem nach Anspruch 7, bei welchem die
Datenquelle (10) so ausgebildet ist, daß sie nur Videodaten
entsprechend dem dynamischen Skalierparameter wegfallen
9. Datenliefersystem nach Anspruch 8, bei welchem die
Videodaten (36) in einem Vollrahmen-/Differenzrahmenformat
komprimiert sind, und bei welchem die Datenquelle so
ausgebildet ist, daß sie nur Differenzrahmen bei den
Videodaten wegfallen läßt.
10. Datenliefersystem nach Anspruch 8, bei welchem die
Videodaten (36) in einem Vollrahmen-/Differenzrahmenformat
komprimiert sind, und wobei die Datenquelle so ausgebildet
ist, daß sie nur hintere Differenzrahmen in einer Folge von
Differenzrahmen auf der Grundlage eines bestimmten
Vollrahmens wegfallen läßt.
11. Datenliefersystem nach Anspruch 8, bei welchem die
Videodaten (36) in einem Vollrahmen-/Differenzrahmenformat
komprimiert sind, und wobei die Datenquelle so ausgebildet
ist, daß sie einen Vollrahmen und alle zugehörigen
Differenzrahmen wegfallen läßt.
12. Datenliefersystem nach einem der Ansprüche 8 bis 11,
bei welchem die Datenquelle (10) so ausgebildet ist, daß
sie die Videodaten dadurch wegfallen läßt, daß sie die
weggefallenen Videodaten durch Nullrahmen ersetzt.
13. Datenliefersystem nach Anspruch 1, bei welchem die
Datenabnehmereinrichtung (10) einen Vorablesecachespeicher
aufweist, der so ausgebildet ist, daß er zeitweilig Daten
speichert, die von der Datenquelle durch das
Datenkommunikationsmedium empfangen werden.
14. Datenliefersystem nach Anspruch 13, bei welchem der
Skalierparameter entsprechend der Menge an Daten bestimmt
wird, die in dem Vorablesecachespeicher gespeichert sind.
15. Datenliefersystem nach Anspruch 13, bei welchem die
Kapazität des Cachepeichers sich entsprechend dem
Skalierparamter ändert.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/013,009 US5719786A (en) | 1993-02-03 | 1993-02-03 | Digital media data stream network management system |
US16440793A | 1993-12-08 | 1993-12-08 | |
PCT/US1994/001171 WO1994018771A1 (en) | 1993-02-03 | 1994-02-02 | Flow control by evaluating network load |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69405976D1 DE69405976D1 (de) | 1997-11-06 |
DE69405976T2 true DE69405976T2 (de) | 1998-01-29 |
Family
ID=26684310
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69405976T Expired - Lifetime DE69405976T2 (de) | 1993-02-03 | 1994-02-02 | Datenflu steuerung durch lastbewertung des netzes |
DE69406650T Expired - Lifetime DE69406650T2 (de) | 1993-02-03 | 1994-02-02 | Multimediaverteilungssystem |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69406650T Expired - Lifetime DE69406650T2 (de) | 1993-02-03 | 1994-02-02 | Multimediaverteilungssystem |
Country Status (7)
Country | Link |
---|---|
EP (2) | EP0682833B1 (de) |
JP (4) | JP2846956B2 (de) |
AT (2) | ATE160066T1 (de) |
AU (2) | AU6695594A (de) |
CA (2) | CA2155353C (de) |
DE (2) | DE69405976T2 (de) |
WO (2) | WO1994018776A2 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452435A (en) * | 1993-03-31 | 1995-09-19 | Kaleida Labs, Inc. | Synchronized clocks and media players |
SG34287A1 (en) | 1994-10-28 | 1996-12-06 | Hitachi Ltd | Input-output circuit recording apparatus and reproduction apparatus for digital video signal |
EP1534020A3 (de) | 1995-04-27 | 2005-06-01 | Hitachi, Ltd. | Verfahren und Vorrichtung zum Empfang und/oder Wiedergabe von digitales Signal |
IL115263A (en) * | 1995-09-12 | 1999-04-11 | Vocaltec Ltd | System and method for distributing multi-media presentations in a computer network |
JP2842831B2 (ja) * | 1996-03-27 | 1999-01-06 | 日本電気エンジニアリング株式会社 | データパケット伝送装置および方法 |
US5991836A (en) * | 1997-05-02 | 1999-11-23 | Network Computing Devices, Inc. | System for communicating real time data between client device and server utilizing the client device estimating data consumption amount by the server |
US6574211B2 (en) | 1997-11-03 | 2003-06-03 | Qualcomm Incorporated | Method and apparatus for high rate packet data transmission |
US7184426B2 (en) | 2002-12-12 | 2007-02-27 | Qualcomm, Incorporated | Method and apparatus for burst pilot for a time division multiplex system |
US9118387B2 (en) | 1997-11-03 | 2015-08-25 | Qualcomm Incorporated | Pilot reference transmission for a wireless communication system |
DE19853665B4 (de) * | 1998-11-20 | 2005-06-30 | Siemens Ag | Fahrzeugkommunikationssystem und Verfahren zum Austausch von Daten in einem Kraftfahrzeug |
JP4008162B2 (ja) | 1999-08-18 | 2007-11-14 | 富士通株式会社 | 通信方法、及び通信装置 |
AU2002222311A1 (en) * | 2000-10-20 | 2002-04-29 | Eyeball.Com Network Inc. | Network virtual games |
US7068683B1 (en) | 2000-10-25 | 2006-06-27 | Qualcomm, Incorporated | Method and apparatus for high rate packet data and low delay data transmissions |
US6973098B1 (en) | 2000-10-25 | 2005-12-06 | Qualcomm, Incorporated | Method and apparatus for determining a data rate in a high rate packet data wireless communications system |
US7683903B2 (en) | 2001-12-11 | 2010-03-23 | Enounce, Inc. | Management of presentation time in a digital media presentation system with variable rate presentation capability |
GB2372676A (en) * | 2001-02-21 | 2002-08-28 | Ericsson Telefon Ab L M | Preventing overload in a telecommunications system |
JP3703759B2 (ja) * | 2001-11-30 | 2005-10-05 | 株式会社東芝 | 移動体端末の制御方法および移動体端末 |
DE10354556B4 (de) | 2002-11-25 | 2008-10-09 | Samsung Electronics Co., Ltd., Suwon | Vorrichtung und Verfahren zum Anzeigen von Bildern in einem mobilen Endgerät |
JP4789401B2 (ja) | 2003-06-25 | 2011-10-12 | トヨタ自動車株式会社 | コンテンツ配信システム |
US7882510B2 (en) | 2003-08-06 | 2011-02-01 | Microsoft Corporation | Demultiplexer application programming interface |
US7881335B2 (en) | 2007-04-30 | 2011-02-01 | Sharp Laboratories Of America, Inc. | Client-side bandwidth allocation for continuous and discrete media |
US8811200B2 (en) | 2009-09-22 | 2014-08-19 | Qualcomm Incorporated | Physical layer metrics to support adaptive station-dependent channel state information feedback rate in multi-user communication systems |
US8082313B2 (en) | 2009-10-26 | 2011-12-20 | International Business Machines Corporation | Efficient utilization of read-ahead buffer by partitioning read-ahead buffer in correspondence with selectors |
JP5660983B2 (ja) | 2011-06-28 | 2015-01-28 | トヨタ自動車株式会社 | コンテンツ配信システム |
US10990289B2 (en) | 2018-09-28 | 2021-04-27 | Seagate Technology Llc | Data storage systems using time-based read ahead |
US10990402B1 (en) | 2019-12-18 | 2021-04-27 | Red Hat, Inc. | Adaptive consumer buffer |
US11595457B2 (en) * | 2021-04-05 | 2023-02-28 | Arris Enterprises Llc | System and method for dynamic adjustment of content streaming rates |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067074A (en) * | 1989-10-27 | 1991-11-19 | At&T Bell Laboratories | Control of overload in communications networks |
-
1994
- 1994-02-02 WO PCT/US1994/001177 patent/WO1994018776A2/en active IP Right Grant
- 1994-02-02 JP JP6518178A patent/JP2846956B2/ja not_active Expired - Lifetime
- 1994-02-02 DE DE69405976T patent/DE69405976T2/de not_active Expired - Lifetime
- 1994-02-02 EP EP94907949A patent/EP0682833B1/de not_active Expired - Lifetime
- 1994-02-02 WO PCT/US1994/001171 patent/WO1994018771A1/en active IP Right Grant
- 1994-02-02 CA CA002155353A patent/CA2155353C/en not_active Expired - Lifetime
- 1994-02-02 JP JP6518182A patent/JPH09511623A/ja active Pending
- 1994-02-02 AT AT94914690T patent/ATE160066T1/de not_active IP Right Cessation
- 1994-02-02 CA CA002155354A patent/CA2155354C/en not_active Expired - Lifetime
- 1994-02-02 AU AU66955/94A patent/AU6695594A/en not_active Abandoned
- 1994-02-02 AU AU61321/94A patent/AU6132194A/en not_active Abandoned
- 1994-02-02 AT AT94907949T patent/ATE158909T1/de not_active IP Right Cessation
- 1994-02-02 EP EP94914690A patent/EP0683951B1/de not_active Expired - Lifetime
- 1994-02-02 DE DE69406650T patent/DE69406650T2/de not_active Expired - Lifetime
-
2001
- 2001-04-10 JP JP2001112047A patent/JP3523218B2/ja not_active Expired - Lifetime
- 2001-04-10 JP JP2001112046A patent/JP3523217B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1994018771A1 (en) | 1994-08-18 |
JP2002033771A (ja) | 2002-01-31 |
CA2155353C (en) | 2000-10-24 |
CA2155354A1 (en) | 1994-08-18 |
ATE160066T1 (de) | 1997-11-15 |
JP2846956B2 (ja) | 1999-01-13 |
EP0682833B1 (de) | 1997-10-01 |
AU6695594A (en) | 1994-08-29 |
JP3523217B2 (ja) | 2004-04-26 |
JPH09511623A (ja) | 1997-11-18 |
JPH08509847A (ja) | 1996-10-15 |
WO1994018776A3 (en) | 1994-10-13 |
AU6132194A (en) | 1994-08-29 |
CA2155354C (en) | 2001-04-17 |
CA2155353A1 (en) | 1994-08-18 |
DE69405976D1 (de) | 1997-11-06 |
EP0682833A1 (de) | 1995-11-22 |
JP2002033998A (ja) | 2002-01-31 |
DE69406650T2 (de) | 1998-03-05 |
EP0683951A1 (de) | 1995-11-29 |
EP0683951B1 (de) | 1997-11-05 |
JP3523218B2 (ja) | 2004-04-26 |
WO1994018776A2 (en) | 1994-08-18 |
ATE158909T1 (de) | 1997-10-15 |
DE69406650D1 (de) | 1997-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69405976T2 (de) | Datenflu steuerung durch lastbewertung des netzes | |
DE69812338T2 (de) | Video auf anfrage mit videorecorderähnlichen funktionen | |
DE60213297T2 (de) | Multimediadatenübertragung durch vorwärtsgerichtetes Streamen | |
DE69604251T2 (de) | Informationsanbietergerät, um selektives Spielen von Multimediainformationen durch interaktive Eingabe zu ermöglichen, basierend auf einer angezeigten Hypertextinformation | |
DE60016784T2 (de) | Planung von speicherzugriffen für raten-garantierte und nicht-raten-garantierte anforderungen | |
DE69902831T2 (de) | Nutzungsplanung für eine Platte und nicht-lineare Video-Editiersysteme | |
DE69509523T2 (de) | Server für digitale videodaten für eine vielzahl von anwendern in synchrongruppen | |
DE60123396T2 (de) | Diskzuordnungssystem mit umordnung einer begrenzten anzahl von anforderungen | |
DE69604299T2 (de) | Unterstützung für video-auf-anfrage durch versetzte datenströme | |
DE69433047T2 (de) | Verfahren und Anordnung zur Zuteilung von Systembetriebsmitteln, um die Dienstqualität zu sichern | |
DE10296790B4 (de) | Verfahren zur Präsentation von Medienobjekten, Multimediapräsentationssystem sowie Computerprogrammprodukt und dessen Verwendung | |
DE602004012540T2 (de) | Videocodierer und videocodierungsverfahren | |
DE60005205T2 (de) | Vorrichtung und verfahren zur zusammensetzung eines mediaspeichersystems | |
DE69504551T2 (de) | Gruppierende Planungsweisen zur Erzeugung von VCR-Steuerfunktionen eines Videoservers | |
DE69919474T2 (de) | Automatische Anpassung der Qualität von Bilddaten um die Antwortzeiten eines Web-Servers zu reduzieren | |
DE60112103T2 (de) | Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten | |
DE69611808T2 (de) | Planungsverfahren für Videos in einem Video-on-Demand-System und Video-on-Demand-System geeignet zur Ausführung dieses Verfahrens | |
DE60218358T2 (de) | Verfahren und Vorrichtung zur Datenübertragung | |
DE10344017A1 (de) | Server, Client, Vorrichtung und Verfahren zum Streamen von Multimediadaten und Netzwerkbandbreitenmessverfahren | |
DE69515484T2 (de) | Vorgezogener datenzugriff für script-basierte multimediasysteme | |
DE20222026U1 (de) | Vorrichtung mit Decodierer zur verbesserten Referenzcodierung | |
EP1678871B1 (de) | Verfahren zur übertragung von daten | |
DE602004009176T2 (de) | Dienstverwaltung durch verwendung mehrerer dienstort-manager | |
DE69733199T2 (de) | Verfahren und audio-server-system für ein unzuverlässiges netzwerk | |
DE602004011211T2 (de) | Verfahren zur anpassung der dienstortplazierung auf der basis von aus dienstknoten empfangenen neueren daten und aktionen des dienstortsmanagers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |