DE112006004258B4 - Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz - Google Patents

Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz Download PDF

Info

Publication number
DE112006004258B4
DE112006004258B4 DE112006004258.0T DE112006004258T DE112006004258B4 DE 112006004258 B4 DE112006004258 B4 DE 112006004258B4 DE 112006004258 T DE112006004258 T DE 112006004258T DE 112006004258 B4 DE112006004258 B4 DE 112006004258B4
Authority
DE
Germany
Prior art keywords
data
information
node
network
nodes
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 - Fee Related
Application number
DE112006004258.0T
Other languages
English (en)
Other versions
DE112006004258A5 (de
Inventor
Susie J. Wee
John G. Apostolopoulos
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112006004258A5 publication Critical patent/DE112006004258A5/de
Application granted granted Critical
Publication of DE112006004258B4 publication Critical patent/DE112006004258B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Ein Verfahren (600) zum Umcodieren von Daten, wobei das Verfahren folgende Schritte aufweist:(602) Zugreifen auf Daten, die eine Mehrzahl von Datenpaketen aufweisen;(604) Trennen der Daten in eine Mehrzahl von Datenabschnitten; und(608) Senden der Datenabschnitte an jeweilige Knoten in einem Netz, wobei die Knoten die Daten parallel zu-einander umcodieren, wobei das Netz (100) einen ersten Knoten (122) und einen zweiten Knoten (123) aufweist, wobei der erste Knoten einen ersten Datenabschnitt der Mehrzahl von Datenabschnitten gemäß Informationen über den ersten Datenabschnitt und gemäß Informationen über das Netz, die dem ersten Knoten bekannt sind, umcodiert, wobei der zweite Knoten einen zweiten Datenabschnitt der Mehrzahl von Datenabschnitten gemäß Informationen über den zweiten Datenabschnitt und gemäß Informationen über das Netz, die dem zweiten Knoten bekannt sind, umcodiert; und ferner ein Empfangen von Informationen über ein Umcodieren des zweiten Datenabschnitts, das an dem zweiten Knoten durchgeführt wird, an dem ersten Knoten, wobei das Umcodieren an dem ersten Knoten auch gemäß den Informationen über das Umcodieren des zweiten Datenabschnitts ist.

Description

  • Querverweise auf verwandte Anmeldungen
  • Diese Anmeldung ist mit der ebenfalls anhängigen Patentanmeldung des gleichen Anmelders, Anwaltsaktenzeichen Nr. HP-200401902-1, Anmeldenr. US 11/255,762 , eingereicht am 21.10.2005, von S. Wee u. a. mit dem Titel „Serial Processing of Data Using Information About the Data and Information About a Streaming Network“, veröffentlicht mit WO 2007/046909 A1 , und hiermit in ihrer Gesamtheit durch Bezugnahme aufgenommen, verwandt.
  • Diese Anmeldung ist verwandt mit der ebenfalls anhängigen US-Patentanmeldung des gleichen Anmelders, Anwaltsaktenzeichen Nr. HP-200405065-1, Anmeldenr. US 11/255, 842, eingereicht am 21.10.2005, von S. Wee u. a. mit dem Titel „Parallel Processing of Data Using Information About the Data and Information About a Streaming Network“, veröffentlicht mit WO 2007/046903 A1 , und hiermit in Ihrer Gesamtheit durch Bezugnahme aufgenommen.
  • Technisches Gebiet
  • Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf das Gebiet eines In-Strom-Bringens bzw. Streamings von Mediendaten.
  • Hintergrund
  • Medienstreaming und -kommunikationen gewinnen weiterhin an Bedeutung. Ein Anpassen der Medien, um mannigfaltige Client-Fähigkeiten und heterogene und zeitvariierende Kommunikationsverknüpfungen aufzunehmen, ist einer der Schlüssel für ein effizientes und wirksames Medienstreaming. Zum Beispiel können Clients unterschiedliche Anzeige-, Kommunikations-, Leistungs- und Rechenfähigkeiten haben. Zusätzlich können unterschiedliche Abschnitte eines Netzes (insbesondere verdrahtete Abschnitte des Netzwerks gegen drahtlose Abschnitte des Netzes) unterschiedliche Maximalbandbreiten und Qualitätspegel aufweisen, und Netzbedingungen können sich über die Zeit verändern. Um die Mannigfaltigkeit bei Client- und Netzcharakteristiken sowie die zeitvariierende Beschaffenheit von Netzbedingungen aufzunehmen, können sich Zwischennetzknoten („Mittennetz“-Knoten) oder Proxys, die den Medienstrom an den Client anpassen oder umcodieren, auf dem Kommunikationsweg zwischen einer Quelle eines Medieninhalts und dem Client befinden.
  • Ein Aufrechterhalten der Sicherheit des Medieninhalts ist ein anderer Schlüssel zu einem erfolgreichen Medienstreaming. Der Medieninhalt ist typischerweise verschlüsselt, um den Inhalt gegen einen nicht autorisierten Zugriff auf dem Weg zu schützen. Idealerweise würde der Inhalt zwischen der Quelle und einem Endbestimmungsort derselben (z. B. dem Client) verschlüsselt bleiben. Jedoch stellt ein Bewahren einer Ende-zu-Ende-Sicherheit eine Herausforderung für ein Mittennetzumcodieren dar, da ein Umcodieren eines verschlüsselten Stroms ein Entschlüsseln des Stroms, ein Umcodieren des entschlüsselten Stroms und ein Neuverschlüsseln des Ergebnisses bedeutet. Somit stellt jeder Netzumcodierungsknoten eine mögliche Sicherheitsverletzung dar.
  • Es gibt andere Herausforderungen für ein Streaming von Medien über ein Netz. Zum Beispiel können einige Datenpakete, die über ein Netz gesendet werden, entlang des Weges Verzögerungen erfahren, vielleicht spät an dem Bestimmungsort derselben ankommen. Auch können einige Datenpakete entlang des Weges verloren werden. Die Wirkungen von späten oder verlorenen Datenpaketen können für Videodaten, die prädiktiv codiert (komprimiert) werden, verschlimmert sein. Eine prädiktive Codierung führt Abhängigkeiten in den codierten Daten ein, die die Komprimierungsmenge verbessern, kann in dem Falle eines Datenpaketverlustes oder einer späten Ankunft aber auch in einer Fehlerausbreitung resultieren. Bei einer prädiktiven Codierung kann die Codierung eines Rahmens von Daten auf den Informationen bei einem anderen Rahmen beruhen. Bei einer MPEG-Codierung z. B. (MPEG = Moving Pictures Experts Group) wird aus zwei P-Rahmen oder einem I-Rahmen und einem P-Rahmen ein B-Rahmen vorhergesagt. Somit müssen Datenpakete für die zwei P-Rahmen oder für den P-Rahmen und den I-Rahmen früher als jeweilige Anzeigezeiten derselben empfangen werden, so dass diese Rahmen verwendet werden können, um den B-Rahmen zu decodieren. Somit können codierte Videorahmen, die nicht ankommen oder spät an dem Decodierer (z. B. einem Client oder einem Bestimmungsortknoten) ankommen, vielleicht nicht nur jeweilige Anzeigefristen derselben verpassen, sondern auch verhindern, dass eine Anzahl von anderen, nachfolgenden Rahmen ordnungsgemäß angezeigt wird, abhängig von den bestimmten Codierungsabhängigkeiten der späten oder fehlenden Rahmen. Dies kann die Gesamtqualität der Anzeige beeinflussen.
  • Zusätzlich zu einem Aufnehmen von mannigfaltigen Clientfähigkeiten und heterogenen und zeitvariierenden Kommunikationsverknüpfungen und zusätzlich zu einem Aufrechterhalten einer Sicherheit des Medieninhalts ist ein Reduzieren der Wahrscheinlichkeit, dass Pakete verloren oder verzögert werden können, somit ein anderer Schlüssel zu einem erfolgreichen Medienstreaming über ein Netz. Herkömmlichen Lösungen fehlen entweder eine oder mehrere dieser Fähigkeiten, oder dieselben sind übermäßig komplex.
  • Yao, J. [et al.] Scheduling Real-time Multimedia Tasks in Network Processors. In: IEEE Global Telecommunications Conference, Vol. 3, 2004, S.1662-1628. - ISBN 0-7803-8794-5 einen aktiven Router für ein Mediastreaming-Netzwerk. Der aktive Router umfasst einen Netzwerkprozessor, der aus einem Empfangsprozessor, einem Sendeprozessor und einer Mehrzahl von parallel arbeitenden Arbeitsprozessoren besteht.
  • Offenbarung der Erfindung
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein verbessertes Verfahren zum Umcodieren von Daten zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 gelöst. Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf Verfahren und Systeme derselben für ein Streaming von Mediendaten. Bei einem Ausführungsbeispiel wird auf Daten in einer Mehrzahl von Datenpaketen zugegriffen. Die Daten werden in eine Mehrzahl von Datenabschnitten getrennt. Die Datenabschnitte werden an jeweilige Knoten in einem Netz gesendet, wobei die Knoten die Daten parallel zueinander verarbeiten (z. B. umcodieren).
  • Figurenliste
  • Die zugehörigen Zeichnungen, die in diese Spezifikation einbezogen werden und einen Teil derselben bilden, stellen Ausführungsbeispiele der Erfindung dar und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Erfindung zu erklären:
    • 1 ist ein Blockdiagramm eines Netzes, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
    • 2 ist ein Blockdiagramm von parallelen Knoten in einem Netz, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
    • 3 ist ein Blockdiagramm von seriellen Knoten in einem Netz, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
    • 4 ist ein Blockdiagramm von seriellen und parallelen Knoten in einem Netz, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
    • 5 stellt graphisch den Fluss von Informationen zu und aus einem Netzknoten bei einem Ausführungsbeispiel gemäß der vorliegenden Erfindung dar.
    • 6 ist ein Blockdiagramm eines Ausführungsbeispiels einer Umcodierungsvorrichtung gemäß der vorliegenden Erfindung.
    • 7 ist ein Flussschaubild eines Verfahrens zum Umcodieren von Daten in seriellen Knoten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
    • 8 ist ein Flussschaubild eines Verfahrens zum Umcodieren von Daten in parallelen Knoten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
    • 9 ist ein Flussschaubild eines Verfahrens zum Umcodieren von Daten in seriellen und parallelen Knoten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Die Zeichnungen, auf die in dieser Beschreibung verwiesen wird, sollten nicht als maßstabsgerecht gezeichnet verstanden werden, außer wenn es spezifisch vermerkt ist.
  • Bester Modus zum Durchführen der Erfindung
  • Nun wird detailliert auf verschiedenartige Ausführungsbeispiele der Erfindung Bezug genommen, deren Beispiele in den zugehörigen Zeichnungen dargestellt sind. Während die Erfindung in Verbindung mit diesen Ausführungsbeispielen beschrieben wird, sei darauf hingewiesen, dass dieselben die Erfindung nicht auf diese Ausführungsbeispiele einschränken sollen. Die Erfindung soll im Gegenteil Alternativen, Modifikationen und Äquivalente abdecken, die in der Wesensart und dem Schutzbereich der Erfindung wie durch die beigelegten Ansprüche definiert enthalten sein können. Ferner sind in der folgenden Beschreibung der vorliegenden Erfindung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu schaffen. In anderen Fällen sind gut bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht detailliert beschrieben worden, um Aspekte der vorliegenden Erfindung nicht unnötig undeutlich zu machen.
  • Die hierin gelieferten Beschreibungen und Beispiele werden in dem Kontext von Multimediadaten (hierin auch als Mediendaten oder Medieninhalt bezeichnet) erörtert. Ein Beispiel für Multimediadaten sind Videodaten, die von Audiodaten begleitet werden; z. B. ein Film mit einem Soundtrack. Jedoch können Mediendaten lediglich Video, lediglich Audio oder sowohl Video und Audio sein. Im Allgemeinen ist die vorliegende Erfindung in verschiedenartigen Ausführungsbeispielen derselben für eine Verwendung mit sprachbasierten Daten, audiobasierten Daten, bildbasierten Daten, Webseitebasierten Daten, graphischen Daten und dergleichen und Kombinationen derselben gut geeignet.
  • Sicheres skalierbares Streaming und sicheres Umcodieren
  • Bei einem sicheren skalierbaren Streaming werden Daten in einer Weise codiert und verschlüsselt, die ermöglicht, dass nachgeschaltete Umcodierer durch ein Verwerfen von Teilen des verschlüsselten und codierten Inhalts Umcodierungsvorgänge durchführen, ohne den Inhalt zu entschlüsseln (und auch ohne zu decodieren).
  • Ein sicheres skalierbares Streaming basiert auf einer sorgfältigen Koordination von Codierungs-, Verschlüsselungs- und Paketierungsvorgängen. Wie hierin verwendet, ist skalierbares Codieren als ein Prozess definiert, der ursprüngliche Daten als eine Eingabe nimmt und skalierbar codierte Daten als eine Ausgabe erzeugt, wobei die skalierbar codierten Daten die Eigenschaft haben, dass Abschnitte derselben verwendet werden können, um die ursprünglichen Daten mit verschiedenartigen Qualitätspegeln zu rekonstruieren. Spezifischer ausgedrückt können die skalierbar codierten Daten als ein eingebetteter Bitstrom aufgefasst werden. Ein Abschnitt des Bitstroms kann verwendet werden, um eine Basislinienqualitätsrekonstruktion der ursprünglichen Daten zu decodieren, ohne irgendeine Information aus dem Rest des Bitstroms zu erfordern, und progressiv größere Abschnitte des Bitstroms können verwendet werden, um verbesserte Rekonstruktionen der ursprünglichen Daten zu decodieren. Wenn z. B. ein Bild skalierbar durch eine Auflösung codiert ist, dann kann ein kleiner Abschnitt der Daten verwendet werden, um ein Niedrigauflösungsbild zu decodieren, ein größerer Abschnitt der Daten kann verwendet werden, um ein Mittlere-Auflösung-Bild zu decodieren, und all die Daten können verwendet werden, um ein Vollauflösungsbild zu decodieren. Skalierbare-Codierung-Standards umfassen MPEG-1/2/4 und H.261/1/2/3/4, JPEG (Joint Photographic Experts Group; gemeinsame photographische Expertengruppe) 2000, einschließlich Motion JPEG 2000, und eine 3-D-Teilband-Codierung, sind aber nicht beschränkt darauf.
  • Wie hierin verwendet, ist eine progressive Verschlüsselung als ein Prozess definiert, der ursprüngliche Daten (Klartext) als Eingabe nimmt und als Ausgabe progressiv verschlüsselte Daten (Geheimtext) erzeugt. Progressive-Verschlüsselung-Techniken umfassen z. B. Chiffreblockketten und Stromchiffren. Diese Progressive-Verschlüsselung-Verfahren haben die Eigenschaft, dass der erste Abschnitt der Daten unabhängig verschlüsselt wird und spätere Abschnitte basierend auf früheren Abschnitten verschlüsselt werden. Der Klartext wird in einer Beginn-zu-Ende- oder sequentiellen Weise verschlüsselt, wobei ein erster Abschnitt des Bitstroms durch sich selbst verschlüsselt wird, ein zweiter Abschnitt des Bitstroms unter Verwendung (z. B. in Kombination mit) des ersten Abschnitts verschlüsselt wird (entweder der verschlüsselte oder der unverschlüsselte erste Abschnitt kann verwendet werden), und so fort. Progressiv verschlüsselte Daten weisen die Eigenschaft auf, dass der erste Abschnitt allein entschlüsselt werden kann, ohne dass Informationen aus dem Rest der ursprünglichen Daten erfordert werden; und progressiv größere Abschnitte können mit dieser gleichen Eigenschaft entschlüsselt werden, wobei eine Entschlüsselung Daten aus früheren, aber nicht späteren Abschnitten des Bitstroms verwenden kann. Wenn dieselbe ordnungsgemäß an eine skalierbare Codierung und Paketierung angepasst ist, liefert eine progressive Verschlüsselung die Fähigkeit, Mediendaten durch ein Abschneiden oder ein Verwerfen von Datenpaketen umzucodieren, ohne die Mediendaten zu entschlüsseln. Progressive-Verschlüsselung-Standards umfassen den Datenverschlüsselungsstandard (DES; DES = Data Encryption Standard), den Dreifach-DES und den Fortgeschrittene-Verschlüsselung-Standard (AES; AES = Advanced Encryption Standard), sind aber nicht beschränkt darauf. Diese Verschlüsselungsgrundelemente können unter Verwendung einer Anzahl von Blockchiffremodi angewendet werden, einschließlich Elektronisches-Codebuch- (ECB; ECB = electronic codebook), Chiffreblockverkettung- (CBC; CBC = cipher block chaining), Chiffrerückkopplung- (CFB; CFB = cipher-feedback), Ausgaberückkopplung- (OFB; OFB = output feedback) und Zähler-Modi (CTR; CTR = counter).
  • Zusammen mit einer progressiven Verschlüsselung umfassen Authentifizierungstechniken, die verwendet werden können, beliebte Authentifizierungstechniken, wie z. B. Nachrichtenauthentifizierungscodes (MACs; MAC = message authentication code) und digitale Signaturen (DSs; DS = digital signature), sind aber nicht beschränkt darauf. Beliebte MACs umfassen Hash-basierte MACs, wie z. B. einen Hashed Message Authentication Code (HMAC) unter Verwendung des Secure-Hash-Algorithmus-1-Hash (SHA-1-Hash) oder chiffrebasierte MACs, wie z. B. AES in einem CBC-Modus. Datenpakete können unabhängig authentifiziert werden, so dass eines oder mehrere Pakte verworfen werden können, ohne dass die Fähigkeit, andere Pakete zu authentifizieren, beeinflusst wird. Alternativ können Gruppen von Paketen unabhängig authentifiziert werden, so dass Gruppen von Paketen verworfen werden können, ohne dass die Fähigkeit beeinflusst wird, andere Gruppen von Paketen zu authentifizieren. Die obigen kryptographischen Techniken können unter Verwendung von Symmetrischer-Schlüssel-Techniken oder unter Verwendung von Öffentlicher/Privater-Schlüssel-Techniken angewendet werden.
  • Um ein wirksames und effizientes sicheres skalierbares Streaming zu erreichen, werden die skalierbar codierten und progressiv verschlüsselten Daten absichtlich in einer priorisierten Weise in Datenpaketen platziert, so dass eine Umcodieren durch ein Abschneiden oder Verwerfen der Pakete durchgeführt werden kann, ohne die Daten zu entschlüsseln. Bei einem Ausführungsbeispiel wird der Inhalt in Datenpakete codiert, die progressiv verschlüsselt werden. Ein Kopfblock, der verschlüsselt sein kann oder nicht, ist jedem Paket zugeordnet. Der Kopfblock kann unter Verwendung einer Verschlüsselungstechnik verschlüsselt werden, die sich von derjenigen unterscheidet, die verwendet wird, um die Inhaltsdaten zu verschlüsseln. Wenn der Kopfblock verschlüsselt ist, kann derselbe entschlüsselt werden, ohne die Daten zu entschlüsseln, die den Medieninhalt repräsentieren. Der Kopfblock eines Pakets umfasst Informationen, die z. B. Abschneidepunkte in dem Paket identifizieren. Ein erster Abschneidepunkt kann z. B. einer ersten Bitrate, einer Auflösung oder einem Qualitätspegel entsprechen, ein zweiter Abschneidepunkt kann einer zweiten Bitrate, einer Auflösung oder einem Qualitätspegel entsprechen und so fort. Um den Inhalt umzucodieren oder anzupassen, um z. B. den ersten Pegel zu erreichen, werden die Kopfblockinformationen gelesen und der erste Abschneidepunkt wird identifiziert. Das Paket kann dann an dem ersten Abschneidepunkt abgeschnitten werden, so dass Daten, die nicht benötigt werden, um den ersten Auflösungs- oder Qualitäts- oder Bitratenpegel zu realisieren, verworfen werden. Das abgeschnittene Paket wird dann zu einem nächsten Bestimmungsort desselben weitergeleitet.
  • Obwohl in dem Beispiel oben eine Bitrate, eine Auflösung und eine Qualität genannt sind, sind Ausführungsbeispiele gemäß der vorliegenden Erfindung nicht so eingeschränkt. Das Beispiel und andere Beispiele hierin sollen die Breite und den Schutzbereich der Erfindung nicht einschränken, sondern vielmehr die Vielfalt von Parametern darstellen, die existieren und die als eine Basis für ein Umcodieren verwendet werden können.
  • Es ist möglich, umzucodieren, sogar wenn lediglich ein Abschnitt der Daten verfügbar ist. Das heißt z. B., dass ein Abschnitt der Gesamtheit von Daten, die einem bestimmten Fall von Inhalt zugeordnet sind, umcodiert werden kann, während ein anderer Abschnitt dieser Gesamtheit von Daten empfangen wird oder auf denselben zugegriffen wird.
  • Wie hierin verwendet, bezieht sich ein Abschneiden eines Datenpakets allgemein auf die Entfernung von Daten aus irgendeinem Teil des Datenpakets. Bei einem Ausführungsbeispiel sind die Daten in dem Paket so angeordnet, dass sich Daten für einen ersten Auflösungspegel z. B. in einem ersten Abschnitt des Pakets befinden, Daten für einen zweiten Auflösungspegel sich in einem zweiten Abschnitt des Pakets befinden und Daten für eine dritte Auflösung sich in einem dritten Abschnitt befinden, wobei der zweite Abschnitt sich zwischen dem ersten und dritten Abschnitt befindet. Die Kopfblockinformationen identifizieren die Punkte in dem Paket, die den ersten, zweiten und dritten Abschnitt begrenzen. Wenn ein Bild z. B. an lediglich dem ersten Auflösungspegel rekonstruiert werden soll, dann können bei diesem Ausführungsbeispiel der zweite und dritte Abschnitt während einer Umcodierung abgeschnitten werden. Das heißt, das Datenpaket wird in der Hauptsache an dem ersten Abschneidepunkt durchtrennt, wobei der zweite und dritte Abschnitt entfernt werden, wobei ein kleineres Paket übrig gelassen wird, das lediglich den ersten Abschnitt (und den Kopfblock) umfasst.
  • Bei einem Ausführungsbeispiel sind Abschneidepunkte für ein Datenpaket gemäß einer Analyse wie z. B. einer Rate-Verzerrung-Analyse (R-D-Analyse; R-D = rate-distortion) spezifiziert, so dass der Strom von Datenpaketen auf eine Rate komprimiert werden kann, die R-D-optimal oder nahezu R-D-optimal ist. Bei einem anderen Ausführungsbeispiel enthalten die Kopfblockabschnitte der Datenpakete Informationen, die die R-D-Kurven beschreiben, die durch die R-D-Analyse erzeugt werden, und die Abschneidepunkte werden aus einer weiteren Analyse der R-D-Kurven abgeleitet.
  • Eine R-D-Codierung kann durch ein Erzeugen einer R-D-Auftragung für jede Region eines Videobildes und dann durch ein Arbeiten mit allen Regionen mit der gleichen Steigung, die die erwünschte Gesamtbitrate erzeugt, erreicht werden. Eine nahezu optimale Umcodierung kann auf dem Datenpaketpegel durch ein Platzieren der optimalen R-D-Abschneidungspunkte für eine Anzahl von Qualitätspegeln in den Kopfblockabschnitten der Datenpakete erreicht werden.
  • Dann kann ein Umcodierer jedes Paket an den zweckmäßigen Abschneidungspunkten abschneiden; somit enthalten die resultierenden Pakete die zweckmäßige Anzahl von Bits für jede Region des Bildes für den erwünschten Qualitätspegel. Der Umcodierer liest jeden Paketkopfblock und schneidet das Paket dann an dem zweckmäßigen Punkt ab. Wenn z. B. drei (3) Regionen in einem Bild in getrennte Pakete codiert werden, dann werden 3 R-D-optimale Abschneidepunkte für jede Region identifiziert und Stellen derselben in dem jeweiligen Paketkopfblock platziert. Der Umcodierer kann wählen, an einem beliebigen der 3 R-D-Punkte (oder Punkte dazwischen) zu arbeiten und kann dann jedes Paket an dem zweckmäßigen Abschneidungspunkt abschneiden.
  • Bei einem anderen Ausführungsbeispiel sind die Daten in einem Datenpaket so angeordnet, dass Daten für einen ersten Auflösungspegel z. B. in mehreren Abschnitten des Pakets platziert sind, Daten für einen zweiten Auflösungspegel sich in anderen mehreren Abschnitten des Pakets befinden und Daten für eine dritte Auflösung sich in noch anderen mehreren Abschnitten des Pakets befinden. Das heißt, Datensegmente, die dem ersten Auflösungspegel zugeordnet sind, Datensegmente, die dem zweiten Auflösungspegel zugeordnet sind, und Datensegmente, die dem dritten Auflösungspegel zugeordnet sind, sind in dem Paket verschachtelt. Bei diesem Beispiel identifizieren die Kopfblockinformationen, wo sich die Datensegmente, die jedem Auflösungspegel entsprechen, in dem Paket befinden. Wenn z. B. ein Bild lediglich auf dem ersten Auflösungspegel rekonstruiert werden soll, können bei diesem Ausführungsbeispiel während einer Umcodierung die Datensegmente, die dem ersten Auflösungspegel zugeordnet sind, aus dem Paket extrahiert und neu paketiert werden. Alternativ können die Datensegmente, die dem zweiten und dritten Auflösungspegel zugeordnet sind, aus dem Paket extrahiert und verworfen werden. Eine R-D-Codierung kann durch ein Erzeugen einer R-D-Kurve für jedes Segment an dem gleichen Arbeitspunkt, die z. B. eine erwünschte Bitrate erzeugt, erreicht werden. Die R-D-Informationen werden aus den komprimierten, aber unverschlüsselten Daten abgeleitet und dann als „Hinweise“ in den verschlüsselten Bitstrom einbezogen, die verwendet werden können, um die verschlüsselten Daten umzucodieren, ohne die Daten zu entschlüsseln. Die Hinweise können verschlüsselt sein oder nicht. Bei einem Verwenden der R-D-Informationen, die durch die Hinweise bereitgestellt werden, können die Datensegmente, die einen geringeren Einfluss auf die Qualität des rekonstruierten Bildes haben, identifiziert werden. Während einer Umcodierung können die Datensegmente, die den Rahmen mit einer geringeren Wichtigkeit entsprechen, fallengelassen oder extrahiert werden, wie es oben beschrieben ist. Bedeutsamerweise wird der Umcodierungsvorgang ohne ein Entschlüsseln der Mediendaten durchgeführt.
  • Eine Voraussetzung der Erörterung in dem vorhergehenden Abschnitt ist, dass die Segmentlängen keine Rolle spielen - d. h., es gibt keine Beschränkung der Bitrate, so dass z. B. eine Anzahl von Segmenten ungeachtet der Längen derselben gesendet werden kann - oder die Segmente von gleicher Länge sind. Wenn eine Bitratenbeschränkung vorhanden ist, dann können die Segmentlängen ein Faktor sein, der während einer Umcodierung zu berücksichtigen ist - z. B. kann es besser sein, zwei kürzere Segmente anstatt eines längeren zu senden oder umgekehrt. Somit werden Segmente bei einem Ausführungsbeispiel gemäß einer relativen „Nützlichkeit“ derselben (z. B. der Wichtigkeit pro Bit derselben) in eine Rangordnung gebracht. Bei einem Ausführungsbeispiel wird die Nützlichkeit eines Segments durch die Verzerrung pro Bit in dem Segment gemessen. Das heißt, die Verzerrungsmenge, die einem Segment zugeordnet ist (die Menge an Verzerrung, die resultieren würde, wenn das Segment fallengelassen oder verworfen würde), wird durch die Anzahl von Bits in dem Segment geteilt und das Verhältnis einer Verzerrung pro Bit liefert die Nützlichkeit des Segments. Segmente, die relativ höhere Nützlichkeiten haben, werden weitergeleitet, während Segmente, die relativ niedrigere Nützlichkeiten haben, fallengelassen oder verworfen werden können, falls dies notwendig oder erwünscht ist.
  • Anstatt eines Abschneidens von Paketen kann eine Umcodierung durch ein Verwerfen oder Fallenlassen von ganzen Paketen erreicht werden. Wieder ist jedem Paket ein Kopfblock zugeordnet, der verschlüsselt sein kann oder nicht. Wenn der Kopfblock verschlüsselt ist, kann derselbe entschlüsselt werden, ohne die Daten zu entschlüsseln, die den Medieninhalt repräsentieren. Ein erstes Paket kann Daten enthalten, die, wenn dieselben decodiert sind, z. B. einer ersten Bitrate, einer Auflösung oder einem Qualitätspegel zugeordnet sind, und ein zweites Paket kann Daten enthalten, die, wenn dieselben decodiert und mit den Daten in dem ersten Paket kombiniert werden, einer zweiten Bitrate, Auflösung oder einem Qualitätspegel zugeordnet sind. Der Kopfblock kann Informationen umfassen, die identifizieren, welche Pakete welchen der Pegel zugeordnet sind. Um den Inhalt umzucodieren oder anzupassen, z. B. um den ersten Pegel zu erreichen, werden die Kopfblockinformation eines jeden Pakets gelesen, das erste Paket wird als dem ersten Pegel zugeordnet identifiziert und das zweite Paket wird als dem zweiten Pegel zugeordnet identifiziert. Entsprechend wird das erste Paket zu einem nächsten Bestimmungsort desselben weitergeleitet und das zweite Paket wird fallen gelassen oder verworfen.
  • Der Kopfblockabschnitt kann auch Informationen enthalten, die jedes Datenpaket z. B. durch eine Zahl identifizieren. Entsprechend kann ein Umcodierer bestimmte Datenpakete aus dem Strom beseitigen; wenn z. B. jedes zweite Paket beseitigt werden soll (z. B. die ungeradzahligen Pakete), kann ein Umcodierer die Kopfblockinformation verwenden, um die ungeradzahligen Datenpakete zu identifizieren und diese aus dem Strom von Datenpaketen zu beseitigen.
  • Zusammenfassend kann ein Umcodieren umfassen: 1) Paketabschneidung durch ein Abschneiden eines oder beider Enden eines Pakets; 2) Paketabschneidung durch ein Verwerfen eines Abschnitts oder von Abschnitten des Pakets, die kein Ende sind; und 3) Verwerfen eines Pakets insgesamt. Ein sicheres skalierbares Streaming erlaubt ein Streaming von Mediensystemen, um die anscheinend in Konflikt stehenden Eigenschaften einer Mittennetzumcodierung und einer Ende-zu-Ende-Sicherheit zu erreichen. Ein Umcodieren von verschlüsselten Daten kann an möglicherweise nicht vertrauenswürdigen Zwischennetzknoten durch ein Abschneiden oder Verwerfen von Paketen durchgeführt werden, ohne die Daten zu entschlüsseln. Entwurfsmäßig erfordert die Umcodierungsvorrichtung keine Kenntnis der Komprimierungstechnik, der Verschlüsselungstechnik oder sogar des Typs von Medien, die umcodiert werden.
  • Sicheres Umcodieren für nicht-skalierbare Daten
  • Die Erörterung oben konzentrierte sich auf Mediencodierer, die eine Skalierbarkeit bereitstellen sollen. Jedoch sind Ausführungsbeispiele gemäß der vorliegenden Erfindung auch auf nicht-skalierbare Codierer anwendbar. Dies kann zu Stande gebracht werden, da Mediencodierer komprimierte Bits erzeugen, aber einige der Bits in Anbetracht des Einflusses derselben auf die Qualität des rekonstruierten (decodierten) Bildes wichtiger sind als andere Bits. Durch ein Erkennen der relativen Wichtigkeit einiger Bits gegen andere Bits und durch eine Erweiterung der relativen Wichtigkeit einiger Videorahmen gegen andere Rahmen können Bits oder Rahmen mit einer größeren Wichtigkeit identifiziert werden, so dass während eines Umcodierens die Bits oder Rahmen von geringerer Wichtigkeit fallengelassen oder verworfen werden können.
  • Zur Darstellung betrachte man ein Beispiel, bei dem codierte Videodaten nach einem anfänglichen I-Rahmen lediglich P-Rahmen umfassen (z. B. gibt es keine B-Rahmen). Da das codierte Video lediglich P-Rahmen umfasst, wird eine natürliche Priorisierung von Rahmen nicht vorgeschlagen. Durch ein Priorisieren der P-Rahmen gemäß einer jeweiligen Wirkung derselben auf das rekonstruierte Bild jedoch können dann Pakete, die P-Rahmen mit niedrigerer Priorität zugeordnet sind, fallengelassen oder verworfen werden, während Pakete, die P-Rahmen mit einer höheren Priorität zugeordnet sind, zu einem Bestimmungsort derselben weitergeleitet werden können, wenn es während einer Umcodierung notwendig ist, einen oder mehrere P-Rahmen zu beseitigen.
  • Bei einem Ausführungsbeispiel werden R-D-Informationen zum Durchführen eines R-D-optimierten Streamings für die Videodaten erzeugt. Die R-D-Attribute werden in einer „Hinweisspur“ summiert, die dem Strom von Videodaten zugeordnet ist. Während die Videodaten zur Sicherheit verschlüsselt sind, kann die Hinweisspur nicht verschlüsselt sein. Die R-D-Informationen in der Hinweisspur können verwendet werden, um die Daten umzucodieren. Das Beispiel oben fortsetzend können gewisse P-Rahmen basierend auf den R-D-Informationen in der Hinweisspur intelligent ausgewählt werden, anstatt alle der P-Rahmen identisch zu behandeln. Das heißt, diejenigen P-Rahmen, die einen geringeren Einfluss auf die Qualität des rekonstruierten Bildes haben, können identifiziert werden. Es kann sogar möglich sein, die P-Rahmen gemäß einem Einfluss derselben auf die Bildqualität in eine Rangordnung zu bringen. Während eines Umcodierens können die Pakete, die den P-Rahmen von geringerer Wichtigkeit entsprechen, fallengelassen werden. Die Anzahl von Paketen/Rahmen, die fallengelassen werden, kann z. B. von Netzbeschränkungen abhängen. Bedeutsamerweise wird die der Umcodierungsvorgang durchgeführt, ohne die Mediendaten zu entschlüsseln.
  • Bei einem anderen Ausführungsbeispiel können Informationen über die relative Wichtigkeit eines jeden Rahmens und entsprechend über die relative Wichtigkeit eines jeden Pakets in den Kopfblockinformationen enthalten sein, die jedem Paket zugeordnet sind. Daten in dem Datenpaket sind verschlüsselt, während die Kopfblockinformationen verschlüsselt sein können oder nicht. In einer Weise ähnlich derjenigen, die gerade beschrieben wurde, können Netzumcodierer Pakete basierend auf einer relativen Wichtigkeit derselben und auf Netzbeschränkungen auswählen oder verwerfen, ohne die Mediendaten zu entschlüsseln.
  • Andere Verarbeitung von Daten
  • Die Erörterung oben bezieht sich auf die Umcodierung von Daten. Andere Typen einer Verarbeitung können ebenfalls durchgeführt werden. Zum Beispiel kann eine Verarbeitung auch verwendet werden, um durch eine Wiederholungscodierung oder eine Fehlerkorrekturcodierung eine Redundanz hinzuzufügen. Ein Hinzufügen einer Redundanz kann z. B. zweckmäßig sein, wenn ein Netz verlustbehaftete Charakteristika aufweist, so dass es nützlich ist, einige Daten robuster zu senden, um Verluste in dem Netz sowie einen Verlust eines Netzknotens zu überwinden (z. B. kann in einem Partner-zu-Partner-Netz ein Netzknoten abgeschaltet sein).
  • Bei einer Wiederholungscodierung werden die gleichen Daten mehrere Male gesendet, um die Wahrscheinlichkeit zu erhöhen, dass die Daten einen Bestimmungsort derselben erreichen. Bei einer Fehlerkorrekturcodierung (z. B. Vorwärtsfehlerkorrektur) werden eine spezialisierte Zwischenpaketredundanz (z. B. Reed-Solomon-Blockcodes) zu den Daten hinzugefügt, um Verluste zu überwinden. Fehlerkorrekturansätze können auch Pakete verschachteln, um Bündelfehler in isolierte Fehler umzuwandeln. Bei einer Implementierung z. B. werden jeder der Datenabschnitte A, B und C und eine Prüfsummenversion der Datenabschnitte A, B und C übertragen. Entsprechend sind die Komponenten, die empfangen werden, zum Reproduzieren der Datenabschnitte A, B und C ausreichend, sogar wenn eine dieser übertragenen Komponenten nicht empfangen wird.
  • Wie hierin verwendet, kann sich „Verarbeitung“ im Allgemeinen beziehen auf (ist aber nicht beschränkt auf): Umcodieren; Hinzufügen einer Redundanz; Signalverstärkung (für Bilder, Video, Audio, Graphiken, Daten und Kopfblockdaten); Rauschenreduzierung; Auflösungsverstärkung; Logo-Einfügung; Spleißen von Strömen; VCR-Funktionalitäten (z. B. Beschleunigung, Verlangsamung, Pausieren von Strömen); Verschmelzen von Video- und Audioströmen; Werbe-Einfügung; Personalisierung von Strömen; Entfernen von Objekten aus Strömen; Vordergrund/Hintergrund-Segmentierung von Strömen; Objekterkennung; Gesichtserkennung; Stimmerkennung, Spracherkennung; Ähnlichkeitserfassung; Signalanalyse (z. B. Bild-, Video- und Audioanalyse); Textanalyse; und Mediensuchvorgänge.
  • Verarbeitung unter Verwendung von Informationen über die Daten und das Netz
  • Die Erörterung unten beschreibt die Verarbeitung von Daten gemäß verschiedenartigen Ausführungsbeispielen gemäß der vorliegenden Erfindung. Bei diesen verschiedenartigen Ausführungsbeispielen können die Daten skalierbar oder nicht-skalierbar sein, skalierbar codiert sein oder nicht, verschlüsselt oder nicht verschlüsselt und Kombinationen derselben sein, wie es oben beschrieben ist. Eine Umcodierung kann durch ein Auswählen oder Verwerfen von Paketen oder durch ein Abschneiden von Paketen durchgeführt werden, wie es oben beschrieben ist.
  • 1 ist eine Repräsentation eines Netzes 100, auf dem Ausführungsbeispiele der vorliegenden Erfindung implementiert sein können. Bei dem vorliegenden Ausführungsbeispiel umfasst das Netz 100 eine Inhaltsquelle 110, die mit einer Anzahl von zwischenverbundenen Serverknoten 120, 121, 122 und 123 gekoppelt ist. Natürlich kann es eine größere oder eine geringere Anzahl von Inhaltsquellen und Serverknoten als diejenigen, die dargestellt sind, geben.
  • Die Zwischenverbindungen zwischen diesen Knoten, einschließlich der Inhaltsquelle 110, können eine verdrahtete Verbindung, eine drahtlose Verbindung oder eine Kombination derselben sein. Jede Zwischenverbindung umfasst einen oder mehrere Kanäle, so dass mehrere Streaming-Sitzungen zwischen Knoten parallel stattfinden können.
  • Allgemein gesagt sind die Inhaltsquelle 110 und die Serverknoten 120 - 123 Typen von Vorrichtungen, die die Fähigkeit bereitstellen, Daten zu verarbeiten und/oder zu speichern und derartige Daten zu senden und zu empfangen. Insbesondere führen die Serverknoten 120 - 123 bei einem Ausführungsbeispiel Verarbeitungsvorgänge durch. Bei einem derartigen Ausführungsbeispiel kann die Inhaltsquelle 110 eine Speicherungsvorrichtung sein und die Serverknoten 120 - 123 können Computersysteme sowie andere Typen von Vorrichtungen sein, die typischerweise nicht als Computersysteme betrachtet werden können, aber ähnliche Fähigkeiten haben. Bei einem anderen Ausführungsbeispiel führen die Inhaltsquelle 110 und die Serverknoten 120 - 123 Verarbeitungsvorgänge durch und können als solche Computersysteme sowie andere Typen von Vorrichtungen sein.
  • In einer Kommunikation mit dem Netz 100 stehen Client-Vorrichtungen, wie z. B. ein Client-Knoten 130, der eine mobile Vorrichtung oder eine stationäre Vorrichtung sein kann. Bei einem Ausführungsbeispiel ist das Netz 100 für ein Streaming von Mediendaten zu dem Client-Knoten 130. Natürlich können mehrere Client-Knoten vorhanden sein. Der Client-Knoten 130 kann mit dem Netz 100 über eine verdrahtete Verbindung, eine drahtlose Verbindung oder eine Kombination derselben gekoppelt sein.
  • Im Allgemeinen liefert das Netz 100 die Fähigkeit, Daten aus der Inhaltsquelle 110 und/oder aus irgendeinem der Zwischenserverknoten 120 - 123 an den Client-Knoten 130 zu liefern. Die Route bzw. der Weg, die durch die Daten genommen werden, wenn sich dieselben von der Inhaltsquelle 110 zu dem Client-Knoten 130 bewegen, können durch irgendeine Anzahl von dazwischenliegenden Knoten und Zwischenverbindungen zwischen diesen Knoten verlaufen. Allgemein gesagt beziehen sich Ausführungsbeispiele der vorliegenden Erfindung auf das Streaming von Datenpaketen von einem Sender zu einem Empfänger. Irgendeiner der Knoten in dem Netz 100 kann als ein Sender betrachtet werden, und in ähnlicher Weise kann irgendeiner der Knoten in dem Netz 100 als ein Empfänger betrachtet werden. Die Sender- und Empfängerknoten können benachbarte Knoten sein, oder dieselben können durch dazwischenliegende Knoten getrennt sein. Ferner kann bei einigen Ausführungsbeispielen irgendeiner der Knoten in dem Netz 100, einschließlich der Inhaltsquelle und des Client-Knotens, die Verarbeitung von Medienströmen durchführen, die in Verbindung mit den Figuren unten beschrieben ist. Obwohl der Client-Knoten 130 als ein Endknoten in dem Netz 100 dargestellt ist, kann der Client-Knoten 130 auch ein Knoten in dem Netz sein.
  • 2 ist ein Blockdiagramm, das parallele Beispielserverknoten 120 und 121 des Netzes 100 (1) zeigt, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können. Im Allgemeinen sind die Serverknoten 120 und 121 Netzknoten, die eine Verarbeitung von Medienströmen parallel durchführen können. Spezifischer ausgedrückt können die Serverknoten 120 und 121 unterschiedliche Abschnitte eines einzigen Stroms unabhängig verarbeiten. Das heißt, bei dem vorliegenden Ausführungsbeispiel wird ein erster Abschnitt eines Stroms an dem Knoten 120 zur Verarbeitung empfangen, und ein zweiter Abschnitt des gleichen Stroms wird an dem Knoten 121 zur Verarbeitung empfangen. Bei einem derartigen Ausführungsbeispiel schließen sich die Daten (oder Datenpakete) in dem ersten Abschnitt und die Daten (oder Datenpakete) in dem zweiten Abschnitt gegenseitig aus - d. h., die Daten in dem ersten Abschnitt sind in dem zweiten Abschnitt nicht dupliziert und umgekehrt. Bei anderen Ausführungsbeispielen überlappen die Daten in dem ersten Abschnitt und die Daten in dem zweiten Abschnitt einander zum Teil oder insgesamt.
  • Obwohl zwei parallele Knoten beschrieben sind, können mehr als zwei parallele Knoten vorhanden sein. Obwohl ein einziger Strom (in zwei Abschnitte getrennt) beschrieben ist, können auch viele Ströme vorhanden sein, von denen einige oder alle in ähnlicher Weise in Abschnitte getrennt sind und durch die Serverknoten 120 und 121 parallel verarbeitet werden. Das heißt, jeder der Serverknoten 120 und 121 kann zu einer Zeit mit mehr als einem Strom arbeiten. In der Hauptsache repräsentieren die Serverknoten 120 und 121, die mit zwei Teilen des gleichen Stroms arbeiten, einen grundsätzlichen Fall von parallelen Knoten, was auf Situationen erweitert werden kann, die mehr als zwei parallele Serverknoten und mehr als einen einzigen Strom pro Knoten umfassen. Ferner können ein oder mehr dazwischenliegende Knoten vorhanden sein, die sich auf den Wegen von der Inhaltsquelle 110 zu den Serverknoten 120 und 121 befinden, und es können auch ein oder mehr dazwischenliegende Knoten vorhanden sein, die sich auf den Wegen von den Serverknoten 120 und 121 zu dem Client-Knoten 130 befinden. Somit können die Serverknoten 120 und 121 Ströme von einem vorgeschalteten Knoten empfangen, der nicht die Inhaltsquelle ist, und können Ströme zu einem nachgeschalteten Knoten senden, der nicht der Client-Knoten ist. Auch können die Serverknoten 120 und 121 Teile des gleichen Stroms von dem gleichen vorgeschalteten Knoten oder von unterschiedlichen vorgeschalteten Knoten empfangen, und können verarbeitete Ströme an den gleichen nachgeschalteten Knoten oder an unterschiedliche nachgeschaltete Knoten liefern.
  • Gemäß Ausführungsbeispielen der vorliegenden Erfindung trifft jeder der Serverknoten 120 und 121 Verarbeitungsentscheidungen, die zumindest zum Teil auf nachgeschalteten und/oder vorgeschalteten Netzbedingungen basieren, die durch die Serverknoten 120 und 121 jeweils gemessen und beobachtet werden.
  • Eine Verarbeitungsentscheidung kann umfassen, ob umcodiert werden soll oder nicht, und den Grad, bis zu dem die Daten umcodiert werden sollen. Der Grad, bis zu dem die Daten umcodiert werden sollen, bezieht sich in der Hauptsache auf die Menge an Daten, die verworfen werden soll (oder die Menge an Daten, die behalten werden soll), wenn eine Umcodierung abgeschlossen wird. Wenn z. B. 3 Pegel einer Auflösung vorhanden sind, repräsentiert durch die Daten in einem Datenpaket, das umcodiert werden soll, umfasst die Verarbeitungsentscheidung, ob alle 3 Pegel behalten werden sollen oder ob ein (1) oder zwei (2) Pegel verworfen werden sollen. Die Verarbeitungsentscheidung kann auch darin resultieren, dass das Datenpaket in der Gesamtheit desselben fallengelassen wird.
  • Eine Verarbeitungsentscheidung kann stattdessen umfassen, ob eine Redundanz in die übertragenen Daten eingeführt werden soll oder nicht. Zum Beispiel kann eine Entscheidung getroffen werden, die gleichen Daten oder den gleichen Teilsatz von Daten an unterschiedliche Knoten zu senden. Man betrachte Daten, die in sich gegenseitig ausschließende Abschnitte A, B und C getrennt sein können. Die Verarbeitungsentscheidung kann darin bestehen, jeden Abschnitt an unterschiedliche Knoten zu senden, die Abschnitte A und B an einen Knoten zu senden und die Abschnitte B und C an einen anderen Knoten zu senden, oder die Abschnitte A, B und C an jeden aus irgendeiner Anzahl von anderen Knoten zu senden.
  • Der Knoten 120 kann Verarbeitungsentscheidungen basierend auf den Beobachtungen und Messungen, die derselbe vorgenommen hat, treffen, und der Knoten 121 kann Verarbeitungsentscheidungen basierend auf den Beobachtungen und Messungen, die derselbe vorgenommen hat, treffen - d. h. die Knoten 120 und 121 müssen Informationen nicht zwangsläufig gemeinsam nutzen. Alternativ können die Serverknoten 120 und 121 die Beobachtungen und Messungen derselben gemeinsam nutzen und jeder Knoten kann die Informationen, die durch den anderen Knoten gemeinsam genutzt werden, mit eigenen Messungen und Beobachtungen desselben kombinieren, um Verarbeitungsentscheidungen zu treffen. Ferner können die Informationen, die durch die Knoten 120 und 121 gemeinsam genutzt werden, Informationen von anderen Knoten als den Knoten umfassen, mit dem die Knoten 120 und 121 in Kontakt sind oder in Kontakt waren. Zum Beispiel kann ein Knoten, der dem Knoten 121 nachgeschaltet oder vorgeschaltet ist, Informationen gemeinsam mit dem Knoten 121 nutzen, der wiederum diese Informationen gemeinsam mit dem Knoten 120 nutzen kann. Der Knoten, der dem Knoten 121 nachgeschaltet oder vorgeschaltet ist, kann Informationen von einem anderen Knoten (z. B. einem anderen parallelen Knoten oder einem Knoten, der weiter nachgeschaltet oder weiter vorgeschaltet ist) empfangen haben, und so fort. Der Knoten 120 kann Informationen von dem Knoten 121 anfordern (ein „Ziehen“-Ansatz), oder der Knoten 121 kann Informationen zu dem Knoten 120 „schieben“ (und umgekehrt). Verarbeitungsentscheidungen können auch basierend auf Informationen über die Daten selbst getroffen werden. Zusätzliche Informationen werden in Verbindung mit 5 unten geliefert.
  • 3 ist ein Blockdiagramm, das serielle Beispielserverknoten 120 und 122 des Netzes 100 (1) zeigt, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können. Die Knoten 120 und 122 sind Netzknoten, die für eine serielle Verarbeitung eines Stroms von Daten verwendet werden können. Das heißt, ein Strom von Daten wird an dem Serverknoten 120 empfangen, wird, wenn eine Verarbeitung gewährleistet ist, verarbeitet und an den Serverknoten 122 zur weiteren Verarbeitung (wenn gewährleistet) weitergeleitet. Wie oben treffen die Serverknoten 120 und 122 Verarbeitungsentscheidungen (z. B. ob umcodiert werden soll oder nicht, den Grad, bis zu dem die Daten umcodiert werden sollen, ob eine Redundanz eingeführt werden soll oder nicht usw.) zumindest zum Teil auf Netzbedingungen basierend, die durch die Serverknoten 120 und 122 jeweils gemessen und beobachtet werden, und auch basierend auf Informationen über die Daten selbst. Ferner kann der Serverknoten 122 Informationen mit dem Serverknoten 120 gemeinsam nutzen. Die Informationen, die durch den Serverknoten 122 gemeinsam genutzt werden, können Informationen umfassen, die der Knoten 122 von noch anderen Knoten empfangen hat, in einer Weise ähnlich derjenigen, die oben beschrieben ist. Zusätzliche Informationen werden in Verbindung mit 5 unten geliefert.
  • Obwohl 3 zwei serielle Knoten darstellt, können mehr als zwei serielle Knoten vorhanden sein. Obwohl ein einziger Strom beschrieben ist, können auch viele Ströme vorhanden sein, wobei jeder Strom parallel durch die Serverknoten 120 und 122 verarbeitet wird. Das heißt, jeder der Serverknoten 120 und 122 kann zu einer Zeit mit mehr als einem Strom arbeiten. In der Hauptsache repräsentieren die Serverknoten 120 und 122 einen grundsätzlichen Fall von seriellen Knoten, was auf Situationen erweitert werden kann, die mehr als zwei serielle Serverknoten und mehr als einen einzigen Strom pro Knoten umfassen. Ferner können ein oder mehr dazwischenliegende Knoten vorhanden sein, die sich auf den Wegen von der Inhaltsquelle 110 zu dem Serverknoten 120 befinden, und es können auch ein oder mehr dazwischenliegende Knoten vorhanden sein, die sich auf den Wegen von dem Serverknoten 121 zu dem Client-Knoten 130 befinden. Somit kann der Serverknoten 120 Ströme von einem vorgeschalteten Knoten empfangen, der nicht die Inhaltsquelle ist, und der Serverknoten 121 kann Ströme an einen nachgeschalteten Knoten senden, der nicht der Client-Knoten ist.
  • 4 ist ein Blockdiagramm, das serielle und parallele Beispielknoten 120, 122 und 123 des Netzes 100 (1) zeigt, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können. Die Knoten 120 und 122 bzw. die Knoten 120 und 123 sind Netzknoten, die für eine serielle Verarbeitung eines Stroms von Daten verwendet werden können, wie es oben in Verbindung mit 3 beschrieben ist. Die Knoten 122 und 123 können zum parallelen Verarbeiten von Teilen eines Stroms verwendet werden, wie es oben in Verbindung mit 2 beschrieben ist. Wie oben treffen die Serverknoten 120, 122 und 123 Verarbeitungsentscheidungen (z. B. ob umcodiert werden soll oder nicht, den Grad, bis zu dem die Daten umcodiert werden sollen, ob eine Redundanz eingeführt werden soll oder nicht usw.) zumindest zum Teil auf Netzbedingungen basierend und auch auf Informationen über die Daten selbst basierend, wie es in Verbindung mit 2 und 3 beschrieben ist und wie es unten in Verbindung mit 5 beschrieben ist.
  • 5 stellt graphisch den Fluss von Informationen zu und aus einem Netzknoten 200 bei einem Ausführungsbeispiel gemäß der vorliegenden Erfindung dar. Der Netzknoten 200 repräsentiert irgendeinen der Netzknoten (Verarbeitungsknoten), die oben erwähnt sind. Der Netzknoten 200 empfängt Datenpakete, trifft eine Entscheidung darüber, ob die Pakete verarbeitet werden sollen oder nicht, trifft eine Entscheidung über den Grad einer Verarbeitung, die durchgeführt werden soll (z. B. ob umcodiert werden soll oder nicht, der Grad, bis zu dem die Daten umcodiert werden sollen, ob eine Redundanz eingeführt werden soll oder nicht usw.) und gibt Datenpakete aus (z. B. sendet dieselben an den nächsten nachgeschalteten Knoten, der ein anderer Netzknoten oder der Client-Knoten sein kann). Bei verschiedenartigen Ausführungsbeispielen trifft der Netzknoten 200 die Verarbeitungsentscheidung(en) unter Verwendung von „Lokalquellinformationen“, „Nachbarquellinformationen“, „Lokalnetz- und Systembeobachtungen“ (einschließlich von Messungen) und/oder „Nachbarnetz- und Systembeobachtungen“ (einschließlich von Messungen). Abhängig von dem Ausführungsbeispiel können alle oder lediglich einige dieser Informationen für den Netzknoten 200 verfügbar sein.
  • Wie hierin verwendet, beziehen sich Lokalquellinformationen auf Informationen über die Daten, die für den Netzknoten 200 aus den Datenpaketen verfügbar sind, die durch den Netzknoten 200 empfangen werden. Zum Beispiel können Lokalquellinformationen Informationen sein, die in dem Kopfblock eines jeden Datenpakets, das durch den Netzknoten 200 empfangen wird, getragen werden oder aus den Informationen, die in demselben getragen werden, abgeleitet sind. Der Typ von Informationen, der in dem Paketkopfblöcken enthalten ist, ist oben allgemein beschrieben worden. Spezifischer ausgedrückt können Lokalquellinformationen die folgenden Typen von Informationen umfassen, sind aber nicht beschränkt darauf: Informationen, die den Beginn und das Ende von Daten in einem Datenpaket identifizieren; Abschneidepunkte zum Abschneiden von Daten in einem Datenpaket; Informationen, die die Länge eines Datenpakets identifizieren; Informationen, die eine Übertragungszeit eines Datenpakets identifizieren; Informationen, die eine Nominaldarstellungszeit für ein Datenpaket identifizieren; Informationen, die für ein Datenpaket eine Verzerrungsmenge quantifizieren, von der vorhergesagt wird, dass dieselbe eintritt, sollte das Datenpaket nicht gesendet oder empfangen werden; Codierungsabhängigkeiten zwischen einem Datenpaket und anderen Datenpaketen; Informationen, die für ein Datenpaket identifizieren, wie viele andere Datenpakete von dem Datenpaket abhängen; Informationen, die identifizieren, ob ein Datenpaket eine Fehlernachgiebigkeit liefert; Informationen, die identifizieren, ob ein Datenpaket eine Redundanz liefert; Informationen, die eine Frist zum Liefern eines Datenpakets identifizieren; Informationen, die eine Sequenzzahl für ein Datenpaket identifizieren; Priorisierungsinformationen für ein Datenpaket; räumliche Gebietsmerkmale der Daten; Farbkomponentenmerkmale der Daten; Auflösungspegel der Daten; Qualitätspegel der Daten; Inhalt der Daten; Metadaten, die die Daten beschreiben; Sicherheitseigenschaften der Daten; und Digitale-Rechte-Verwaltung-Eigenschaften der Daten. Lokalquellinformationen, die jedem bestimmten Fall von Daten (oder eines Datenpakets) zugeordnet sind, sind für die Daten konstant; jedoch werden Daten typischerweise kontinuierlich gesendet und empfangen, und in dieser Hinsicht können sich Lokalquellinformationen mit der Zeit ändern. Der Netzknoten 200 kann die Lokalquellinformationen desselben gemeinsam mit anderen Knoten nutzen.
  • Wie hierin verwendet, beziehen sich Lokalnetzbeobachtungen auf Informationen über das Netz, die durch den Netzknoten 200 beobachtet oder gemessen werden. Spezifischer ausgedrückt können Lokalnetzbeobachtungen die folgenden Typen von Informationen für einen Weg in dem Netz unmittelbar dem Knoten 200 nachgeschaltet umfassen, sind aber nicht beschränkt auf: Bandbreite, die entlang des Weges verfügbar ist; Engpassverknüpfungskapazität entlang des Weges; Datenpaketlieferrate; Datenpaketverlustrate; Datenpaketempfangsmuster; Datenpaketverlustmuster; Informationen, die identifizieren, welche der Datenpakete an dem nächsten Knoten entlang des Weges empfangen wurden; Informationen, die identifizieren, welche der Datenpakete nicht an dem nächsten Knoten entlang des Weges ankamen; Informationen, die die Zeit quantifizieren, die benötigt wird, um den Weg zu durchqueren; und Informationen, die Verzögerungen quantifizieren, die dem Weg zugeordnet sind (z. B. einschließlich einer Latenz und Jitter). Lokalnetzbeobachtungen können sich mit der Zeit ändern. Der Netzknoten 200 kann Lokalnetzbeobachtungen desselben gemeinsam mit anderen Knoten nutzen.
  • Wie hierin verwendet, beziehen sich Lokalsystembeobachtungen auf Informationen über den Netzknoten 200, wie z. B. die Verfügbarkeit der Rechenressourcen des Knotens, den Grad eines Verbrauchs der Ressourcen des Knotens und die Belastungen auf den Ressourcen des Knotens. Zum Beispiel können Lokalsystembeobachtungen Systemspeicherverbrauch/Verfügbarkeit, Systemprozessorverbrauch/ Verfügbarkeit, Systemspeicherungsverbrauch/ Verfügbarkeit und System-Eingabe/Ausgabe (System-I/O; I/O = input/output) oder Vernetzungsverbrauch/Verfügbarkeit umfassen, sind aber nicht beschränkt darauf. Lokalsystembeobachtungen können sich mit der Zeit ändern. Der Netzknoten 200 kann Lokalsystembeobachtungen desselben gemeinsam mit anderen Knoten nutzen.
  • Wie hierin verwendet, beziehen sich Nachbarquellinformationen auf Informationen, die in Natur äquivalent zu den Lokalquellinformationen sind, aber von einem Nachbarknoten oder -knoten empfangen werden. Sich erneut auf 2 beziehend können Nachbarquellinformationen durch den Serverknoten 120 von dem Serverknoten 121 und umgekehrt empfangen werden. Unter Bezugnahme auf 3 kann der Serverknoten 120 Nachbarquellinformationen von dem Serverknoten 122 empfangen (da der Serverknoten 122 dem Serverknoten 120 nachgeschaltet ist, werden Nachbarquellinformationen inhärent von dem Serverknoten 120 an den Serverknoten 122 geliefert). Aus der Perspektive des Lokalknotens können sich Nachbarquellinformationen mit der Zeit ändern.
  • Nachbarquellinformationen können auch Informationen umfassen, die die Verarbeitungsentscheidung(en) beschreiben, die durch einen Nachbarknoten getroffen wird. Man betrachte den ersten Fall von parallelen Knoten, der in Verbindung mit 2 beschrieben ist, bei dem jeder der Serverknoten 120 und 121 Pakete mit Daten empfängt, die auf 3 Pegeln einer Auflösung (niedrig, mittel und hoch) codiert sind. Basierend auf seinen Beobachtungen der Netzbedingungen kann der Serverknoten 120 zu einer Entscheidung kommen, die Daten durch ein Abschneiden der Hochauflösungsabschnitte eines jeden Datenpakets (wobei die Niedrig- und Mittelabschnitte übrig gelassen werden) umzucodieren. Der Serverknoten 121 kann basierend auf Lokalnetzbeobachtungen desselben zu einer Entscheidung kommen, Daten durch ein Abschneiden der Mittel- und Hochauflösungsabschnitte eines jedes Datenpakets umzucodieren. Somit hat der Client-Knoten 130 keinen Bedarf nach den Mittelauflösungsabschnitten von Daten aus dem Serverknoten 120. Wenn der Serverknoten 121 diese Informationen gemeinsam mit dem Serverknoten 120 nutzt, dann kann der Serverknoten 120 Umcodierungsentscheidungen desselben entsprechend treffen. Bei dem Beispiel oben kommt der Serverknoten 120 stattdessen zu einer Entscheidung, die Datenpakete umzucodieren, indem die Mittel- und Hochauflösungsabschnitte eines jeden Datenpakets ebenfalls abgeschnitten werden.
  • Man betrachte nun den Fall von seriellen Knoten, die in Verbindung mit 3 beschrieben sind. Der Serverknoten 120 kann anfänglich Pakete mit Daten, die auf 3 Pegeln einer Auflösung codiert sind, an den Serverknoten 122 senden. Der Serverknoten 122 kann basierend auf Lokalnetzbeobachtungen desselben zu einer Entscheidung kommen, die Daten durch ein Abschneiden der Hochauflösungsabschnitte eines jeden Datenpakets umzucodieren. Somit hat der Serverknoten 122 keinen weiteren Bedarf nach den Hochauflösungsabschnitten der Datenpakete, die von dem Serverknoten 120 empfangen werden. Wenn der Serverknoten 122 diese Informationen gemeinsam mit dem Serverknoten 120 nutzt, dann kann der Serverknoten 120 Verarbeitungsentscheidungen desselben entsprechend treffen. Bei dem Beispiel oben kommt der Serverknoten 120 zu einer Entscheidung, ein Umcodieren der Daten durch ein Abschneiden der Hochauflösungsabschnitte eines jeden Datenpakets zu beginnen.
  • Wie hierin verwendet, beziehen sich Nachbarnetzbeobachtungen und Nachbarsystembeobachtungen auf Informationen, die in Natur äquivalent zu Lokalnetzbeobachtungen bzw. Lokalsystembeobachtungen sind, aber von einem Nachbarknoten oder -knoten empfangen werden. Sich erneut auf 2 beziehend können Nachbarnetzbeobachtungen und/oder Nachbarsystembeobachtungen durch den Serverknoten 120 von dem Serverknoten 121 und umgekehrt empfangen werden. Unter Bezugnahme auf 3 kann der Serverknoten 120 Nachbarnetzbeobachtungen und/oder Nachbarsystembeobachtungen von dem Serverknoten 122 empfangen. Nachbarnetzbeobachtungen und Nachbarsystembeobachtungen können sich mit der Zeit ändern.
  • Unter Bezugnahme auf 5 analysiert der Netzknoten 200 bei einem Block 202 bei einem Ausführungsbeispiel die Lokalquellinformationen und bei einem anderen Ausführungsbeispiel die Nachbarquellinformationen. Bei einem Block 204 analysiert der Netzknoten 200 bei einem Ausführungsbeispiel die Lokalnetzbeobachtungen und bei einem anderen Ausführungsbeispiel die Nachbarnetzbeobachtungen. Bei einem anderen Ausführungsbeispiel werden die Lokalsystembeobachtungen bei dem Block 204 analysiert. Bei einem noch anderen Ausführungsbeispiel werden die Nachbarsystembeobachtungen bei dem Block 204 analysiert. Verschiedenartige Kombinationen der zuvor erwähnten Typen von Informationen können durch die Blöcke 202 und 204 analysiert werden, abhängig von der Verfügbarkeit derartiger Informationen.
    Basierend auf der Analyse in den Blöcken 202 und 204 kommt der Netzknoten 200 bei einem Block 206 zu einer Entscheidung darüber, ob eine Verarbeitung durchgeführt werden soll oder nicht, und, falls dieselbe durchgeführt werden soll, über den Typ oder Grad der Verarbeitung, die durchgeführt werden soll. Basierend auf den Informationen zur Hand trifft der Netzknoten 200 im Allgemeinen eine Entscheidung über eine Verarbeitung der Daten zur Hand. Die Informationen zur Hand umfassen allgemein Lokalquellinformationen, Lokalnetzbeobachtungen und/oder Lokalsystembeobachtungen. Bei einem Ausführungsbeispiel umfassen die Informationen zur Hand auch Nachbarquellinformationen, Nachbarnetzbeobachtungen und/oder Nachbarsystembeobachtungen.
  • Bei einem Ausführungsbeispiel umfasst die Verarbeitungsentscheidung auch eine Entscheidung, welche der Pakete abgeschnitten oder fallengelassen werden sollen. Bei einem derartigen Ausführungsbeispiel wird diese Entscheidung durch ein Aufrufen eines „Gleitfenster“-Schemas getroffen. Wenn Pakete von dem Verarbeitungsknoten gesendet werden, kommen typischerweise neue Pakete an. Entsprechend ist eine Entscheidung darüber, ob ein bestimmtes Paket verarbeitet und übertragen werden soll oder nicht, eine sich entwickelnde Entscheidung, die sich ändern kann, abhängig davon, was für andere Pakete an dem Verarbeitungsknoten angekommen sind, seit die Anfangsentscheidung getroffen wurde. Man betrachte z. B. ein relativ einfaches Beispiel, bei dem fünf (5) Datenpakete an dem Netzknoten 200 in einer Warteschlange stehen. Basierend auf den gegenwärtig verfügbaren Informationen über das Netz und vielleicht auch den Informationen über die Daten, die durch diese 5 Pakete getragen werden, und den Informationen über das System wird eine Entscheidung getroffen, die 3 Pakete zu übertragen, die die höchste relative Priorität haben, wie vorhergehend hierin beschrieben. In der Zwischenzeit kommen 5 Pakete mehr an dem Netzknoten 200 an, während lediglich 2 der 3 Pakete gesendet worden sind, so dass die Warteschlange nun acht (8) Pakete enthält. Eine Verarbeitungsentscheidung über die 8 Pakete, die nun zur Hand sind, kann unter Verwendung von aktualisierten Netz- und Systeminformationen sowie Informationen über die Daten, die durch diese 8 Pakete getragen werden, getroffen werden. Die Entscheidung kann darin bestehen, andere 3 Pakete zu senden, aber die 3 nun ausgewählten Pakete können das Paket in der ersten Gruppe von 3 Paketen, das nicht gesendet wurde, nicht umfassen. Gemäß einem Ausführungsbeispiel wird eine Verarbeitungsentscheidung in der Hauptsache basierend auf einem Schnappschuss der Informationen getroffen, die für den Netzknoten 200 zu der Zeit, zu der die Entscheidung getroffen werden soll, verfügbar sind, und eine Entscheidung, die die Behandlung eines Pakets beeinflusst, kann zu jeder Zeit geändert (z. B. umgekehrt) werden. Das Beispiel oben kann auf Fälle erweitert werden, in denen eine Verarbeitung eine Paketabschneidung umfasst. Das heißt, das Beispiel oben kann entweder auf nicht-skalierbare oder skalierbare Daten angewendet werden.
  • Bei einem Ausführungsbeispiel trifft der Netzknoten 200 bei einem Block 208 eine Leit- bzw. Routingentscheidung basierend auf den Informationen zur Hand (z. B. basierend auf den Analysen von Lokalquellinformationen, Nachbarquellinformationen, Lokalsystembeobachtungen, Netzsystembeobachtungen, Lokalnetzbeobachtungen und/oder Nachbarnetzbeobachtungen aus den Blöcken 202 und 204). Eine Leitentscheidung kann eine Entscheidung darüber umfassen, welcher nachgeschaltete Knoten oder Knoten die abgehenden (z. B. verarbeiteten) Daten empfangen soll. Unter Bezugnahme auf 4 kann der Serverknoten 120 z. B. Pakete zu einem oder beiden der parallelen Serverknoten 122 und 123 zuteilen. Leitentscheidungen können auch Entscheidungen darüber umfassen, welche Datenpakete an welchen Knoten gesendet werden sollen. Das heißt, Leitentscheidung können nicht lediglich ein Bestimmen umfassen, welche Knoten Daten empfangen sollen, sondern wie die Daten unter diesen Knoten verteilt werden sollen. Ferner kann die Leitentscheidung die Verarbeitungsentscheidung beeinflussen. Umgekehrt kann die Verarbeitungsentscheidung die Leitentscheidung beeinflussen. Darüber hinaus können Verarbeitungs- und Leitentscheidungen, die durch die nachgeschalteten Knoten getroffen werden, die Leitentscheidung beeinflussen.
  • Bei einem Ausführungsbeispiel gibt der Netzknoten 200 Quellinformationen aus (lokal und/oder Nachbar). Bei einem anderen Ausführungsbeispiel gibt der Netzknoten 200 Netzbeobachtungsinformationen aus (lokal und/oder Nachbar). Bei einem noch anderen Ausführungsbeispiel gibt der Netzknoten 200 Systembeobachtungsinformationen aus (lokal und/oder Nachbar).
  • 6 ist ein Blockdiagramm eines Ausführungsbeispiels einer Verarbeitungsvorrichtung 300 gemäß der vorliegenden Erfindung. Bei diesem Ausführungsbeispiel umfasst die Verarbeitungsvorrichtung 300 einen Empfänger 310 und einen Überträger 320 zum Empfangen eines Stroms von Datenpaketen von einem vorgeschalteten Knoten und zum Senden eines Stroms von Datenpaketen zu einem nachgeschalteten Knoten. Der Empfänger 310 kann auch Quellinformationen von einem anderen Knoten, Netzbeobachtungsinformationen von einem anderen Knoten und/oder Systembeobachtungsinformationen von einem anderen Knoten empfangen. Der Überträger 320 kann auch Quellinformationen an einen anderen Knoten, Netzbeobachtungsinformationen an einen anderen Knoten und/oder Systembeobachtungsinformationen an einen anderen Knoten übertragen.
  • Der Empfänger 310 und der Überträger 320 sind entweder zu einer verdrahteten oder zu einer drahtlosen Kommunikation fähig. Getrennte Empfänger und Überträger, einer für eine verdrahtete Kommunikation und einer für eine drahtlose Kommunikation, können ebenfalls verwendet werden. Es sei darauf hingewiesen, dass der Empfänger 310 und der Überträger 320 als eine einzige Vorrichtung (z. B. ein Sende/Empfangsgerät) integriert sein können.
  • Die Verarbeitungsvorrichtung 300 kann eine optionale Steuerung 330 (z. B. einen Prozessor oder ein Mikroprozessor), einen optionalen Entschlüsseler 340 und einen optionalen Speicher 350 oder eine Kombination derselben umfassen. Bei einem Ausführungsbeispiel wird der Entschlüsseler 340 verwendet, um Kopfblockinformationen zu entschlüsseln. Bei einem anderen Ausführungsbeispiel wird der Speicher 350 verwendet, um Datenpakete zu akkumulieren, die von einem vorgeschalteten Knoten empfangen werden, bevor dieselben zu einem nachgeschalteten Knoten weitergeleitet werden.
  • 7 ist ein Flussschaubild 400 eines Verfahrens zur seriellen Verarbeitung von Daten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. 8 ist ein Flussschaubild 500 eines Verfahrens zur parallelen Verarbeitung von Daten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. 9 ist ein Flussschaubild 600 eines Verfahrens zur seriellen und parallelen Verarbeitung von Daten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Obwohl in den Flussschaubildern 400, 500 und 600 spezifische Schritte offenbart sind, sind derartige Schritte beispielhaft. Das heißt, Ausführungsbeispiele der vorliegenden Erfindung sind zum Durchführen von verschiedenartigen anderen Schritten oder Variationen der Schritte, die in den Flussschaubildern 400, 500 und 600 aufgeführt sind, gut geeignet. Es sei darauf hingewiesen, dass die Schritte in den Flussschaubildern 400, 500 und 600 in einer unterschiedlichen Reihenfolge als der vorgelegten durchgeführt werden können und dass nicht alle der Schritte in den Flussschaubildern 400, 500 und 600 durchgeführt werden können. Alle oder ein Abschnitt der Verfahren, die durch die Flussschaubilder 400, 500 und 600 beschrieben sind, können unter Verwendung von computerlesbaren und computerausführbaren Anweisungen implementiert sein, die sich z. B. in computerverwendbaren Medien eines Computersystems befinden.
  • Das Flussschaubild 400 ist allgemein unter Verwendung der seriellen Knoten 120 und 122 von 3 implementiert, das Flussschaubild 500 ist unter Verwendung der parallelen Knoten 120 und 121 von 2 implementiert und das Flussschaubild 600 ist unter Verwendung der seriellen und parallelen Knoten 120, 122 und 123 von 4 implementiert.
  • Zuerst unter Bezugnahme auf 7 wird bei einem Block 402 auf Daten zugegriffen. Bei einem Ausführungsbeispiel sind die Daten codiert und paketiert. Die codierten Daten können skalierbar oder nicht-skalierbar sein. Bei einem anderen Ausführungsbeispiel sind die Daten „dateibasiert“ (z. B. sind die Daten in einem Dateiformat gespeichert, werden von einem Knoten zu einem anderen in Strom gebracht und als eine Datei an jedem Empfangsknoten gespeichert). Bei einem noch anderen Ausführungsbeispiel sind die Daten verschlüsselt.
  • Bei einem Block 404 wird eine Entscheidung getroffen, ob die Daten verarbeitet werden sollen oder nicht, unter Verwendung von Informationen über die Daten, Informationen über das Netz und/oder Informationen über das System (z. B. einen Knoten) oder eine Kombination derselben. Bei einem Ausführungsbeispiel umfassen die Informationen über die Daten Lokalquellinformationen, die Informationen über das Netz umfassen Lokalnetzbeobachtungen und die Informationen über das System umfassen Lokalsystembeobachtungen. Bei einem anderen Ausführungsbeispiel umfassen die Informationen über die Daten auch Nachbarquellinformationen, die Informationen über das Netz umfassen auch Nachbarnetzbeobachtungen und die Informationen über das System umfassen auch Nachbarsystembeobachtungen. Die Nachbarquellinformationen, die Nachbarnetzinformationen und die Nachbarsystembeobachtungen können Informationen umfassen, die lokal durch den Nachbar beobachtet werden, sowie Informationen, die der Nachbar von Nachbarn desselben akkumuliert hat.
  • Wenn es die Entscheidung ist, die Daten zu verarbeiten, dann werden die Daten bei einem Block 406 unter Verwendung von Informationen über die Daten, Informationen über das Netz und/oder Informationen über das System oder eine Kombination derselben verarbeitet. Wie oben umfassen die Informationen über die Daten bei einem Ausführungsbeispiel Lokalquellinformationen, die Informationen über das Netz umfassen Lokalnetzbeobachtungen und die Informationen über das System umfassen Lokalsystembeobachtungen. Bei einem anderen Ausführungsbeispiel, ähnlich dem obigen, umfassen die Informationen über die Daten auch Nachbarquellinformationen, die Informationen über das Netz umfassen auch Nachbarnetzbeobachtungen und die Informationen über das System umfassen auch Nachbarsystembeobachtungen. Wie oben erwähnt, können die Nachbarquellinformationen, die Nachbarnetzinformationen und die Nachbarsysteminformationen Informationen umfassen, die lokal durch den Nachbar beobachtet werden, sowie Informationen, die dieselben von Nachbarn des Nachbars akkumuliert haben.
  • Bei einem Block 408 wird bei einem Ausführungsbeispiel eine Leitentscheidung unter Verwendung von Informationen über das Netz getroffen. Bei einem derartigen Ausführungsbeispiel umfassen die Informationen über das Netz wieder Lokalnetzbeobachtungen, während bei einem anderen Ausführungsbeispiel die Informationen über das Netz auch Nachbarnetzbeobachtungen umfassen. Bei einem anderen Ausführungsbeispiel wird eine Leitentscheidung unter Verwendung von Informationen über die Daten getroffen. Bei einem derartigen Ausführungsbeispiel umfassen die Informationen über die Daten Lokalquellinformationen und/oder Nachbarquellinformationen, wobei nicht lediglich Informationen eingeschlossen sind, die lokal durch den Nachbar beobachtet werden, sondern vielleicht Informationen eingeschlossen sind, die von Nachbarn desselben akkumuliert werden. Bei einem noch anderen Ausführungsbeispiel kann eine Leitentscheidung Nachbarsysteminformationen berücksichtigen.
  • Nun unter Bezugnahme auf 8 wird bei einem Block 502 ein erster Abschnitt von Daten an einem ersten Knoten empfangen und ein zweiter Abschnitt von Daten an einem zweiten Knoten empfangen. Bei einem Ausführungsbeispiel umfasst der erste Abschnitt keine Daten, die in dem zweiten Abschnitt sind, und umgekehrt. Bei einem anderen Ausführungsbeispiel können die Daten in dem ersten Abschnitt und die Daten in dem zweiten Abschnitt einander zum Teil oder in Gesamtheit überlappen. Bei einem Ausführungsbeispiel sind die Daten codiert und paketiert. Die codierten Daten können skalierbar oder nicht-skalierbar sein. Bei einem anderen Ausführungsbeispiel sind die Daten dateibasiert. Bei einem noch anderen Ausführungsbeispiel sind die Daten verschlüsselt.
  • Bei einem Block 504 wird eine Entscheidung getroffen, ob die Daten verarbeitet werden sollen oder nicht, wie es hierin vorhergehend beschrieben wurde. Wenn es die Entscheidung ist, zu verarbeiten, dann wird der erste Abschnitt von Daten an dem ersten Knoten unter Verwendung von Informationen über den ersten Abschnitt von Daten, Informationen über das Netz und/oder Informationen über das System (den ersten Knoten) oder eine Kombination derselben verarbeitet. Wie oben umfassen die Informationen über den ersten Abschnitt von Daten bei einem Ausführungsbeispiel Lokalquellinformationen (Erster-Knoten-Quellinformationen), die Informationen über das Netz umfassen Lokalnetzbeobachtungen und die Informationen über das System umfassen Lokalsystembeobachtungen. Bei einem anderen Ausführungsbeispiel, ähnlich dem obigen, umfassen die Informationen über den ersten Abschnitt von Daten auch Nachbarquellinformationen, die Informationen über das Netz umfassen auch Nachbarnetzbeobachtungen und die Informationen über das System umfassen auch Nachbarsystembeobachtungen, wobei nicht lediglich Informationen enthalten sind, die lokal durch den Nachbar beobachtet werden, sondern vielleicht Informationen umfasst sind, die von Nachbarn des Nachbars akkumuliert werden. Quell-, Netz- und Systeminformationen können gemeinsam zwischen den Knoten genutzt werden oder nicht.
  • Wenn es die Entscheidung ist, zu verarbeiten, dann wird bei einem Block 506 der zweite Abschnitt von Daten an dem zweiten Knoten unter Verwendung von Informationen über den zweiten Abschnitt von Daten, Informationen über das Netz und/oder Informationen über das System (den zweiten Knoten) oder eine Kombination derselben verarbeitet. Wie oben umfassen die Informationen über den zweiten Abschnitt von Daten bei einem Ausführungsbeispiel Lokalquellinformationen (Zweiter-Knoten-Quellinformationen), die Informationen über das Netz umfassen Lokalnetzbeobachtungen und die Informationen über das System umfassen Lokalsystembeobachtungen. Bei einem anderen Ausführungsbeispiel, ähnlich dem obigen, umfassen die Informationen über den zweiten Abschnitt von Daten auch Nachbarquellinformationen, die Informationen über das Netz umfassen auch Nachbarnetzbeobachtungen und die Informationen über das System umfassen auch Nachbarsystembeobachtungen, wobei nicht lediglich Informationen umfasst sind, die lokal durch den Nachbar beobachtet werden, sondern vielleicht Informationen umfasst sind, die von Nachbarn des Nachbars akkumuliert werden. Quell-, System- und Netzinformationen können gemeinsam zwischen den Knoten genutzt werden oder nicht.
  • Nun unter Bezugnahme auf 9 wird bei einem Block 602 auf Daten zugegriffen. Bei einem Ausführungsbeispiel sind die Daten codiert und paketiert. Die codierten Daten können skalierbar oder nicht-skalierbar sein. Bei einem anderen Ausführungsbeispiel sind die Daten dateibasiert. Bei einem noch anderen Ausführungsbeispiel sind die Daten verschlüsselt.
  • Bei einem Block 604 werden die Daten in zumindest einen ersten Abschnitt und einen zweiten Abschnitt getrennt. Bei einem Ausführungsbeispiel umfasst der erste Abschnitt keine Daten, die in dem zweiten Abschnitt sind, und umgekehrt. Bei einem Block 606 werden erste und zweite Netzknoten gemäß Informationen über das Netz, Informationen über die Daten und/oder Informationen über das System oder eine Kombination derselben identifiziert und ausgewählt. Bei einem Ausführungsbeispiel umfassen die Informationen über das Netz Lokalnetzbeobachtungen, während bei einem anderen Ausführungsbeispiel die Informationen über das Netz auch Nachbarnetzbeobachtungen umfassen, wobei nicht lediglich Informationen umfasst sind, die lokal durch den Nachbar beobachtet werden, sondern vielleicht Informationen umfasst sind, die von Nachbarn des Nachbars akkumuliert werden. Bei einem Ausführungsbeispiel umfassen die Informationen über die Daten Lokalquellinformationen, während bei einem anderen Ausführungsbeispiel die Informationen über die Daten auch Nachbarquellinformationen umfassen, wobei nicht lediglich Informationen umfasst sind, die lokal durch den Nachbar beobachtet werden, sondern vielleicht Informationen umfasst sind, die von Nachbarn des Nachbars akkumuliert werden. Bei einem Ausführungsbeispiel umfassen die Informationen über das System Lokalsystembeobachtungen, während bei einem anderen Ausführungsbeispiel die Informationen über das System auch Nachbarsystembeobachtungen umfassen, wobei nicht lediglich Informationen umfasst sind, die lokal durch den Nachbar beobachtet werden, sondern vielleicht Informationen umfasst sind, die von Nachbarn des Nachbars akkumuliert werden.
  • Bei einem Block 608 wird der erste Abschnitt von Daten zur Verarbeitung an den ersten Netzknoten gesendet und der zweite Abschnitt von Daten wird zur Verarbeitung an den zweiten Netzknoten gesendet.
  • Zusammenfassend schafft die vorliegende Erfindung in verschiedenartigen Ausführungsbeispielen derselben Verfahren und Systeme für ein Streaming von Mediendaten in einem Netz. Die Daten werden verarbeitet, um mannigfaltige Clientfähigkeiten aufzunehmen. Wenn die Daten verschlüsselt sind, können dieselben ohne eine Entschlüsselung verarbeitet werden, wodurch die Sicherheit der Daten aufrechterhalten wird. Verarbeitungsentscheidungen basieren auf vielen Informationselementen, die die Natur der heterogenen und zeitvariierenden Kommunikationsverknüpfungen des Netzes erfassen. Die Wahrscheinlichkeit, dass Pakete verloren oder verzögert werden können, ist durch ein Ausgleichen von Verarbeitungsvorgängen über Serverknoten und in einigen Fällen durch ein paralleles Durchführen von Verarbeitungsvorgängen reduziert.
  • Ausführungsbeispiele der vorliegenden Erfindung sind somit beschrieben. Während die vorliegende Erfindung in bestimmten Ausführungsbeispielen beschrieben worden ist, sei darauf hingewiesen, dass die vorliegende Erfindung nicht als durch derartige Ausführungsbeispiele eingeschränkt aufgefasst werden sollte, sondern vielmehr gemäß den folgenden Ansprüchen aufgefasst werden sollte.

Claims (7)

  1. Beansprucht wird:
  2. Ein Verfahren (600) zum Umcodieren von Daten, wobei das Verfahren folgende Schritte aufweist: (602) Zugreifen auf Daten, die eine Mehrzahl von Datenpaketen aufweisen; (604) Trennen der Daten in eine Mehrzahl von Datenabschnitten; und (608) Senden der Datenabschnitte an jeweilige Knoten in einem Netz, wobei die Knoten die Daten parallel zu-einander umcodieren, wobei das Netz (100) einen ersten Knoten (122) und einen zweiten Knoten (123) aufweist, wobei der erste Knoten einen ersten Datenabschnitt der Mehrzahl von Datenabschnitten gemäß Informationen über den ersten Datenabschnitt und gemäß Informationen über das Netz, die dem ersten Knoten bekannt sind, umcodiert, wobei der zweite Knoten einen zweiten Datenabschnitt der Mehrzahl von Datenabschnitten gemäß Informationen über den zweiten Datenabschnitt und gemäß Informationen über das Netz, die dem zweiten Knoten bekannt sind, umcodiert; und ferner ein Empfangen von Informationen über ein Umcodieren des zweiten Datenabschnitts, das an dem zweiten Knoten durchgeführt wird, an dem ersten Knoten, wobei das Umcodieren an dem ersten Knoten auch gemäß den Informationen über das Umcodieren des zweiten Datenabschnitts ist.
  3. Das Verfahren gemäß Anspruch 1, das ferner ein (606) Auswählen der jeweiligen Knoten gemäß Informationen über das Netz aufweist.
  4. Das Verfahren gemäß Anspruch 2, das ferner ein Empfangen der Informationen über das Netz von den jeweiligen Knoten aufweist.
  5. Das Verfahren gemäß Anspruch 1, das ferner ein Auswählen der jeweiligen Knoten gemäß Informationen über die jeweiligen Knoten aufweist.
  6. Das Verfahren gemäß Anspruch 1, bei dem die Informationen über das Netz, die dem ersten Knoten bekannt sind, Informationen aufweisen, die durch den zweiten Knoten beobachtet und an den ersten Knoten geliefert werden.
  7. Das Verfahren gemäß Anspruch 1, bei dem das Netz ferner einen dritten Knoten in einer Kommunikation mit dem ersten Knoten aufweist, wobei der dritte Knoten umcodierte Daten an einen nachgeschalteten Knoten in dem Netz sendet, wobei Informationen über die umcodierten Daten, die von dem dritten Knoten gesendet werden, an den ersten Knoten geliefert werden, und wobei das Umcodieren des ersten Datenabschnitts auch auf den Informationen über die umcodierten Daten basiert, die von dem dritten Knoten gesendet werden.
DE112006004258.0T 2005-10-21 2006-07-21 Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz Expired - Fee Related DE112006004258B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/256,565 2005-10-21
US11/256,565 US20070091928A1 (en) 2005-10-21 2005-10-21 Serial and parallel processing of data using information about the data and information about a streaming network

Publications (2)

Publication Number Publication Date
DE112006004258A5 DE112006004258A5 (de) 2013-01-03
DE112006004258B4 true DE112006004258B4 (de) 2020-03-19

Family

ID=37103128

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112006004258.0T Expired - Fee Related DE112006004258B4 (de) 2005-10-21 2006-07-21 Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
DE112006002899T Expired - Fee Related DE112006002899B4 (de) 2005-10-21 2006-07-21 Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE112006002899T Expired - Fee Related DE112006002899B4 (de) 2005-10-21 2006-07-21 Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz

Country Status (4)

Country Link
US (1) US20070091928A1 (de)
KR (1) KR101002112B1 (de)
DE (2) DE112006004258B4 (de)
WO (1) WO2007046904A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266182B2 (en) * 2006-06-30 2012-09-11 Harmonic Inc. Transcoding for a distributed file system
CA2822771C (en) * 2008-02-04 2015-09-29 Omnivex Corporation Subscription based content delivery for a digital signage network
KR101672287B1 (ko) * 2008-04-07 2016-11-03 엘지전자 주식회사 방송 신호 수신 방법 및 방송 신호 수신 장치
KR101580516B1 (ko) * 2008-04-07 2015-12-28 엘지전자 주식회사 방송 신호 수신 방법 및 방송 신호 수신 장치
US20120121014A1 (en) * 2009-03-04 2012-05-17 Thomas Rusert Processing of Multimedia Data
US8687685B2 (en) 2009-04-14 2014-04-01 Qualcomm Incorporated Efficient transcoding of B-frames to P-frames
KR101285654B1 (ko) * 2011-07-06 2013-08-14 주식회사 씬멀티미디어 메타 데이터와 미디어 데이터가 분리되어 있는 파일 형식의 멀티미디어 컨텐츠를 프로그래시브 다운로드하기 위한 실시간 트랜스코딩 장치
US9307258B2 (en) * 2012-10-30 2016-04-05 Broadcom Corporation Parallel transcoding
US10303716B2 (en) * 2014-01-31 2019-05-28 Nbcuniversal Media, Llc Fingerprint-defined segment-based content delivery
US10032479B2 (en) * 2014-01-31 2018-07-24 Nbcuniversal Media, Llc Fingerprint-defined segment-based content delivery
KR20230156433A (ko) * 2014-08-07 2023-11-14 디빅스, 엘엘씨 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법
CN105451031B (zh) * 2015-11-18 2021-11-30 腾讯科技(深圳)有限公司 一种视频转码方法和系统
US10492084B2 (en) 2016-10-10 2019-11-26 Microsoft Technology Licensing, Llc Collaborative communications
CN115023928B (zh) * 2019-12-02 2024-02-23 资溪有限责任公司 通过多个不可靠信道的分组化数据通信

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275536B1 (en) * 1999-06-23 2001-08-14 General Instrument Corporation Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors
US20020143850A1 (en) * 2001-03-27 2002-10-03 Germano Caronni Method and apparatus for progressively processing data
DE60317890T2 (de) * 2002-04-30 2008-11-27 International Business Machines Corp. Verfahren und anordnung zur lokalen synchronisation in verteilten master-slave-kommunikationssystemen
US7797454B2 (en) * 2004-02-13 2010-09-14 Hewlett-Packard Development Company, L.P. Media data transcoding devices
JP2006031358A (ja) * 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YAO, J. [et al.]: Scheduling Real-time Multimedia Tasks in Network Processors. In: IEEE Global Telecommunications Conference, Vol.3, 2004, S.1622-1628. ISBN 0-7803-8794-5 *

Also Published As

Publication number Publication date
KR20080070017A (ko) 2008-07-29
KR101002112B1 (ko) 2010-12-16
WO2007046904A1 (en) 2007-04-26
US20070091928A1 (en) 2007-04-26
DE112006002899T5 (de) 2008-10-09
DE112006002899B4 (de) 2012-07-05
DE112006004258A5 (de) 2013-01-03

Similar Documents

Publication Publication Date Title
DE112006004258B4 (de) Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
DE112006002893B4 (de) Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten
DE112007001012T5 (de) Verteilte Speicherung von Mediendaten
DE602004003067T2 (de) Verfahren zur verschlüsselung eines fehlertoleranzkomprimierten audio- oder videostroms
DE60109467T2 (de) Verfahren und vorrichtung zur übertragung von netzwerkinformationen durch sichere transkodierung
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
DE112012001770T5 (de) Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung
DE112006002677T5 (de) Verfahren und Vorrichtung für RTP-Ausgabe-Streaming unter Verwendung von komplementären Richtungsdateien
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
US7409094B2 (en) Methods and systems for packetizing encoded data
DE112011101908T5 (de) Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms
DE60210007T2 (de) Verschlüsselungsvorrichtung, Vorrichtung zum Zuweisen einer Authentifizierungsinformation, Verschlüsselungsverfahren, sowie Verfahren zum Zuweisen einer Authentifizierungsinformation
DE112006002900B4 (de) Parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
DE112006003046T5 (de) Serielle Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
DE112013000995T5 (de) Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung
EP1803280A1 (de) Verfahren und systeme unter verwendung von informationen über verschlüsselte datenpakete zur bestimmung einer reihenfolge zum senden der datenpakete
US7505590B1 (en) Method and system for providing transcodability to frame coded streaming media
WO2008054739A2 (en) Authentication of modified data
Kim et al. A study on layered streaming services based on TCP/UDP for multimedia data transport.
Kim et al. A reliable layered data transmisson method for MPEG-4 seamless streaming service
Apostolopoulos et al. Secure media streaming and secure transcoding

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R129 Divisional application from

Ref document number: 112006002899

Country of ref document: DE

Effective date: 20120228

R131 Declaration of division deemed not made
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee