DE112006002893B4 - Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten - Google Patents

Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten Download PDF

Info

Publication number
DE112006002893B4
DE112006002893B4 DE112006002893T DE112006002893T DE112006002893B4 DE 112006002893 B4 DE112006002893 B4 DE 112006002893B4 DE 112006002893 T DE112006002893 T DE 112006002893T DE 112006002893 T DE112006002893 T DE 112006002893T DE 112006002893 B4 DE112006002893 B4 DE 112006002893B4
Authority
DE
Germany
Prior art keywords
data
information
node
network
transcoding
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
DE112006002893T
Other languages
English (en)
Other versions
DE112006002893T5 (de
Inventor
John G. Apostolopoulos
Susie J. Wee
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 DE112006002893T5 publication Critical patent/DE112006002893T5/de
Application granted granted Critical
Publication of DE112006002893B4 publication Critical patent/DE112006002893B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Abstract

Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten (160) in einem Netz (100), das eine Mehrzahl von Umcodierungsknoten aufweist, wobei das Verfahren folgende Schritte aufweist: Bereitstellen zumindest einer Speicherungsstelle (165) an dem Umcodierungsknoten (160) zum Speichern zumindest eines Abschnitts von Daten (502), der von zumindest einem der Mehrzahl von Strömen empfangen wird; Zugreifen auf Informationen über den zumindest einen Abschnitt von Daten (502); und Nutzen der Informationen und weiterer Informationen zum Verarbeiten des Abschnitts von Daten (502), ohne dass ein Zugriff auf jegliche andere Daten des zumindest einen Abschnitts von Daten (502) erforderlich ist, wobei die weiteren Informationen von einem weiteren Umcodierungsknoten stammen.

Description

  • Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf das Gebiet eines In-Strom-Bringens bzw. Streamings von Mediendaten.
  • 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.
  • Ein Ansatz zur Umcodierung von Datenströmen wird z. B. in der WO 03/030544 A1 beschreiben.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren zur Verarbeitung von Datensträmen an einem Umcodierungsknoten zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 gelöst.
  • 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.
  • 10 ist ein Blockdiagramm eines zweiten Netzes, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
  • 11 ist ein Blockdiagramm eines Umcodierungsknotens, der eine einzige Speicherungsstelle an demselben aufweist, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
  • 12 ist ein Blockdiagramm eines Umcodierungsknotens, der eine Mehrzahl von Speicherungsstellen an demselben aufweist, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
  • 13a ist ein Blockdiagramm eines Umcodierungsknotens, der eine Datenbank und eine Kennungsspeicherung an demselben aufweist, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
  • 13b ist ein Blockdiagramm eines beispielhaften Sendeumcodierungsknotens, auf dem Ausführungsbeispiele gemäß der vorliegenden Erfindung implementiert sein können.
  • 14 ist ein Flussschaubild eines Verfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zum Umcodieren von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten, der eine einzige Speicherungsstelle aufweist.
  • 15 ist ein Fussschaubild eines Verfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zum Verarbeiten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten, der eine Mehrzahl von Speicherungsstellen aufweist.
  • 16 ist ein Flussschaubild eines Verfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zum Umcodieren von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten, wobei eine Datenbank und eine Kennungsorganisation genutzt werden.
  • Die Zeichnungen, auf die in dieser Beschreibung verwiesen wird, sollten nicht als maßstabsgerecht gezeichnet verstanden werden, außer wenn es spezifisch vermerkt ist.
  • 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 Ausfuhrungsbeispiele 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 Ausfuhrungsbeispielen 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 ermoglicht, dass nachgeschaltete Umcodierer durch ein Verwerfen von Teilen des verschlüsselten und codierten Inhalts Umcodierungsvorgänge durchführen, ohne den Inhalt zu entschlusseln (und auch ohne zu decodieren).
  • Ein sicheres skalierbares Streaming basiert auf einer sorgfältigen Koordination von Codierungs-, Verschlusselungs- und Paketierungsvorgangen. Wie hierin verwendet, ist skalierbares Codieren als ein Prozess definiert, der ursprungliche 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 konnen, um die ursprunglichen Daten mit verschiedenartigen Qualitätspegeln zu rekonstruieren. Spezifischer ausgedrückt konnen die skalierbar codierten Daten als ein eingebetteter Bitstrom aufgefasst werden. Ein Abschnitt des Bitstroms kann verwendet werden, um eine Basislinienqualitatsrekonstruktion der ursprünglichen Daten zu decodieren, ohne irgendeine Information aus dem Rest des Bitstroms zu erfordern, und progressiv großere Abschnitte des Bitstroms können verwendet werden, um verbesserte Rekonstruktionen der ursprunglichen 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 Vollauflosungsbild 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 verschlusselt 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 verschlusseln. Wenn der Kopfblock verschlüsselt ist, kann derselbe entschlüsselt werden, ohne die Daten zu entschlüsseln, die den Medieninhalt reprasentieren. 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 zweckmaß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 Auflosungspegel 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 Segmentlangen 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 „Nutzlichkeit” derselben (z. B. der Wichtigkeit pro Bit derselben) in eine Rangordnung gebracht. Bei einem Ausfuhrungsbeispiel 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 erwunscht 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 Qualitatspegel 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 Endezu-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. zweckmaß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 (fur Bilder, Video, Audio, Graphiken, Daten und Kopfblockdaten); Rauschenreduzierung; Auflösungsverstärkung; Logo-Einfügung; Spleißen von Stromen; 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 Auswahlen 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 Ausfuhrungsbeispiel 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 120123 Typen von Vorrichtungen, die die Fahigkeit bereitstellen, Daten zu verarbeiten und/oder zu speichern und derartige Daten zu senden und zu empfangen. Insbesondere führen die Serverknoten 120123 bei einem Ausführungsbeispiel Verarbeitungsvorgänge durch. Bei einem derartigen Ausführungsbeispiel kann die Inhaltsquelle 110 eine Speicherungsvorrichtung sein und die Serverknoten 120123 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 120123 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 fur 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 120123 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 ahnlicher 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 konnen 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 Medienstromen parallel durchführen können. Spezifischer ausgedrückt können die Serverknoten 120 und 121 unterschiedliche Abschnitte eines einzigen Stroms unabhangig 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 Strome 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 konnen 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 gemaß 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 gewahrleistet) 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 eingefuhrt 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 empfangt 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 konnen 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 Lokal systembeobachtungen 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 konnen 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 inharent 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 Verarbeitungsentscheidungen) 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, abhangig von der Verfügbarkeit derartiger Informationen.
  • Basierend auf der Analyse in den Blocken 202 und 204 kommt der Netzknoten 200 bei einem Block 205 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 durchgefuhrt 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. Leitentscheidung können auch Entscheidungen daruber umfassen, welche Datenpakete an welchen Knoten gesendet werden sollen. Das heißt, Leitentscheidungen können nicht lediglich 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 Leitentscheidung, 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 Übertrager 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 konnen 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 uber 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 uber 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 uber 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 Ausfuhrungsbeispiel 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. Sei 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 uber 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 uber 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, wahrend 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.
  • Speichern von Daten aus einer Mehrzahl von Strömen in einer einzigen Speicherungsstelle Obwohl einige hierin beschriebene Ausführungsbeispiele Umcodierungsknoten in einer Mehrzahl von Stellen überall in dem Netz nutzen, sei darauf hingewiesen, das die Nutzung eines einzigen Umcodierungsknotens wie in 10 gezeigt ermöglicht, dass eine Standard- (oder vorhergehend eingerichtete) Nicht-Umcodierung-Knotennetzkonfiguration genutzt wird, ohne dass eine erhebliche Aktualisierung des Netzes oder Komponenten in demselben erfordert wird. Zusätzlich ist die Nutzung eines Netzes, das lediglich einen einzigen Umcodierungsknoten aufweist, repräsentativ für einen kleineren Abschnitt eines größeren Netzes, das eine Mitarbeit von Umcodierungs- und Nicht-Umcodierungs-Knoten aufweist. Zum Beispiel kann das Netz 151 bei einem Ausfuhrungsbeispiel repräsentativ für irgendeinen oder alle der Serverknoten (z. B. 120123) von 1 sein. Das heißt, es sei darauf hingewiesen, dass jeder Serverknoten 120123 ein vollstandiges Netz von Knoten anzeigen kann, wie z. B. ein Netz 151, das einen einzigen Umcodierungsknoten aufweist, der die Ausgabe desselben liefert. Es ist zu beachten, dass der Umcodierungsknoten allgemein in der Mitte des Netzes sein kann, nicht zwangsläufig am nähesten zu dem Client, wie es in 10 dargestellt ist. Bei einem anderen Ausführungsbeispiel jedoch ist der Umcodierungsknoten der Sender, z. B. der Streaming-Server, und ist nicht in der Mitte des Netzes. Bei einem noch anderen Ausführungsbeispiel ist der Umcodierungsknoten der Client.
  • Wie es in 13b gezeigt ist, kann z. B. ein Server, der mehrere Ströme 1129 mit einer Ausgabenbandbreiteneinschränkung in einen Strom bringt, über die mehreren Ströme anpassen, um zu bestimmen, welche Pakete gesendet/verworfen/abgeschnitten werden sollen, um die Gesamtqualität zu maximieren, die durch all die Clients gesehen wird, die der Ausgabebitrateneinschränkung unterworfen sind. Diese Verarbeitung über mehrere Ströme kann zu erheblichen Gewinnen bei einer Leistungsfähigkeit führen.
  • Somit könnte eine Verarbeitung über mehrere Ströme an (1) einem Mittennetzumcodierer (der über die mehreren Strome umcodiert, die durch den Mittennetzknoten laufen) oder (2) an einem Streaming-Server (der das Streaming uber mehrere Ströme anpasst) oder (3) wenn ein Knoten gleichzeitig als ein Mittennetzknoten und als ein Sender wirkt (einige Ströme laufen durch denselben und derselbe bringt und sendet einige Ströme hervor) durchgeführt werden.
  • Ein Satz von mehreren Strömen kann individuelle Ströme umfassen, die verschlüsselt oder unverschlüsselt sind, skalierbar codiert oder nicht-skalierbar codiert sind, und kann Video-, Bild-, Sprach-, Audio-, Graphiken oder anderen Formen von Medien- oder Nicht-Medien-Daten entsprechen. Ein individueller Medienstrom kann teilweise verschlüsselt und teilweise nicht verschlüsselt sein oder kann teilweise skalierbar codiert und teilweise nicht-skalierbar codiert sein. Die mehreren Ströme können irgendeine gemischte Kombination des obigen sein.
  • Wie es hierin beschrieben und in 10 gezeigt ist, leitet die Inhaltsquelle 110 die Daten in Abschnitten von Daten über das Netz 151 an den Client-Knoten 130 bei einem Vorgang, der demjenigen von 1 ähnelt. Das heißt, die Inhaltsquelle 110 streut die Abschnitte von Daten uber ein Netz von Medienströmen und Knoten (152157) aus, wo dieselben an dem Umcodierungsknoten 160 neugruppiert werden können. Es ist zu beachten; dass es möglich ist, umzucodieren, sogar wenn lediglich ein Abschnitt der Daten verfügbar ist. Somit ist es nicht notwendig, all die Daten neu zu gruppieren, um die Verarbeitung durchzuführen. Bei einem Ausführungsbeispiel ist der Umcodierungsknoten 160 ein Serverknoten, wie z. B. die Serverknoten 120123, die hierin detailliert beschrieben sind, der Verarbeitungsvorgänge durchführt, wie hierin detailliert beschrieben. Somit kann der Umcodierungsknoten 160 wie hierin beschrieben ein Computersystem sowie ein anderer Typ von Vorrichtung sein, der typischerweise nicht als ein Computersystem betrachtet werden kann, aber ähnliche Fähigkeiten hat.
  • Wie hierin beschrieben, ist der Umcodierungsknoten 160 bei einem Ausführungsbeispiel im Allgemeinen ein Netzknoten, der eine Verarbeitung von Abschnitten von Daten durchführen kann, die aus einer Mehrzahl von Medienströmen empfangen werden. Das heißt, bei einem Ausführungsbeispiel wird eine Mehrzahl von Strömen an des Umcodierungsknoten 160 empfangen. Die Ströme liefern zumindest eine und normalerweise eine Mehrzahl von Abschnitten von Daten an den Umcodierungsknoten 160.
  • Normalerweise ermöglicht die Ausstreuung der Abschnitte von Daten (z. B. Datenpakete und dergleichen) durch unterschiedliche Medienströme eine Ausstreuung eines Verkehrs über ein Netz. Diese Ausstreuung kann in einem Erhöhen eines Durchsatzes für das Netz resultieren, da die Daten nicht auf dem gleichen Weg zusammengedrängt sind. Diese Fähigkeit ist sogar noch wertvoller, wenn ein Weg in einem Netz verlangsamt, verstopft ist oder anderweitig nicht mit einer normalen Kapazität arbeitet. Zusätzlich erhöht die Ausstreuung der Daten in Abschnitte von Daten, die unterschiedliche Routen über das Netz 151 durchqueren, die Sicherheit des Netzes, da jeder Knoten 152157 des Netzes 151 lediglich einen Abschnitt der Gesamtdatendatei empfängt. Bei einem Ausführungsbeispiel kann der Benutzer explizit die Ausstreuung der Datenpakete über das Netz auswählen. Bei einem anderen Ausführungsbeispiel kann der Netzrouter die Streuung von Datenpaketen über das Netz durchführen.
  • Ein Problem, das aufkommen kann, ist, dass der Knoten 160 eine Mehrzahl von Medienströmen als eine Eingabe empfängt, aber eine Ausgabenbandbreiteneinschränkung hat, die niedriger als die gesamte empfangene Bandbreite ist. Zum Beispiel empfängt der Umcodierungsknoten 160 eine Mehrzahl von Eingabeströmen, die einer gesamten empfangenen Bitrate von 500 kb/s entsprechen, aber die Ausgabenbandbreite ist auf 400 kb/s beschränkt. Der Umcodierungsknoten 160 beginnt, die Daten zu speichern und zu verarbeiten, wenn derselbe nicht fähig ist, die Daten mit der gleichen Rate auszugeben, mit der dieselben hereinkommen. Bei einem Ausführungsbeispiel tritt dies auf, wenn die Anzahl (oder die verfügbare Bandbreite) der Medienausgaben geringer als die Anzahl (oder die verfügbare Bandbreite) der Medieneingaben ist. Wenn dieses Ungleichgewicht eintritt, ist eine zweckmäßige Technik erforderlich, um sicherzustellen, dass die Abschnitte von Daten nicht in einen Engpass treten und dass nicht zu viele der Abschnitte von Daten fallengelassen werden. Wie es hierin detailliert beschrieben ist, ist es ein Ausführungsbeispiel zum überwinden des obigen Problems, die Daten zu verarbeiten, um sicherzustellen, dass die zweckmäßigen Abschnitte von Daten ausgegeben werden, um sicherzustellen, dass die Empfangsclients verwendbare (wenn in Qualität reduzierte) Ströme empfangen.
  • Wenn z. B. die Belastung unausgeglichen wird (z. B. mehr ein als aus), wie es hierin beschrieben ist, ist eine Entscheidung darüber erforderlich, ob die Pakete verarbeitet werden sollen oder nicht, eine Entscheidung über den Grad einer Verarbeitung, die durchgeführt werden soll (z. B. wie viel von einem Paket abzuschneiden ist und welche(s) Paket(e) abzuschneiden sind, oder wie viele Pakete fallengelassen und welche Pakete fallengelassen werden sollen), und welche Pakete ausgegeben werden sollen (z. B. sendet dieselben an den nächsten nachgeschalteten Knoten, der ein anderer Mittennetzknoten oder der Client-Knoten sein kann). Bei verschiedenartigen Ausführungsbeispielen trifft der Umcodierungsknoten 160 die Verarbeitungsentscheidungen) unter Verwendung von „Lokalquellinformationen”, „Nachbarquellinformationen”, „Lokalnetzbeobachtungen” (einschließlich Messungen) und/oder „Nachbarnetzbeobachtungen” (einschließlich Messungen). Abhängig von dem Ausführungsbeispiel können alle oder lediglich einige dieser Informationen für den Umcodierungsknoten 160 verfugbar sein.
  • Unter Bezugnahme auf 11 und 14 wird bei einem Block 702 eine einzige Speicherungsstelle zum Speichern zumindest eines Abschnitts von Daten, die von zumindest einem aus einer Mehrzahl von Stromen empfangen werden, an einem Umcodierungsknoten bereitgestellt. Das heißt, jeder Abschnitt von Daten, Paket von Daten oder dergleichen geht in eine einzige Speicherungsstelle (z. B. einen Protokollbereich oder ein Puffer oder irgendeine Form eines Speichers oder einer Speicherung) 165, ungeachtet des Eingabestroms 1109, von dem dasselbe empfangen wurde. Bei einem Ausführungsbeispiel sind die Daten codiert und paketiert. Die codierten Daten können skalierbar oder nicht-skalierbar codiert sein. Die Daten können auch uncodiert sein (Rohformat). Bei einem anderen Ausführungsbeispiel sind die Daten verschlüsselt.
  • Bei einem Block 704 wird auf Informationen über den Abschnitt von Daten zugegriffen. Bei einem Ausführungsbeispiel sind die Informationen über den Abschnitt von Daten in einem Paketkopfblock (oder einer Metadatendatei, wie z. B. einer Hinweisspur, oder in der Nutzlast eines anderen Pakets oder einem ähnlichen Merkmal), hierin detailliert beschrieben, gespeichert. Das heißt, statt eines tatsächlichen Zugreifens auf die Daten in dem Datenpaket greift der Umcodierungsknoten auf den Kopfblock (oder die Metadaten oder die Hinweisspurinformationen usw.) zu, die eine Übersicht des Datenpaketlayouts liefern. Zum Beispiel können diese Informationen umfassen, ob die Daten skalierbar oder nicht-skalierbar codiert sind, was der Pegel einer Skalierbarkeit ist, wo sich Abschneidepunkte befinden, die Wichtigkeit der Daten und dergleichen.
  • Bei einem Ausführungsbeispiel umfassen Informationen über den Abschnitt von Daten auch ein Zugreifen auf die hierin beschriebenen R-D-Informationen. Das heißt, die Ratenbewertung, um die Größe des Abschnitts von Daten zu bestimmen, und/oder die Verzerrungsbewertung zum Bestimmen des Wertes der Daten in dem Paket, von denen beide hierin detailliert beschrieben sind.
  • Bei einem Block 706 nutzt ein Ausführungsbeispiel die Informationen zum Verarbeiten des Abschnitts von Daten, ohne dass ein Zugriff auf irgendwelche andere Daten in dem Abschnitt von Daten erfordert wird. Das heißt, wenn es die Entscheidung ist, die Daten zu verarbeiten, dann werden die Daten unter Verwendung von Informationen über die Daten und Informationen über das Netz verarbeitet. Zum Beispiel bezieht sich der Grad, bis zu dem Daten umcodiert werden sollen, in der Hauptsache auf die Menge an Daten, die verworfen werden soll (oder die Menge an Daten, die behalten werden soll), wenn eine Verarbeitung abgeschlossen wird. Wenn z. B. 3 Pegel einer Auflösung vorhanden sind, repräsentiert durch die Daten in einem Datenpaket, die umcodiert werden sollen, umfasst die Umcodierungsentscheidung, ob alle 3 Pegel behalten werden sollen oder ob ein (1) oder zwei (2) Pegel verworfen werden sollen. Die Umcodierungsentscheidung kann auch darin resultieren, dass das Datenpaket in seiner Gesamtheit fallengelassen wird. Bei einem anderen Ausführungsbeispiel kann der ursprüngliche Medienstrom 100 kb/s erfordern, aber es kann eine Ausgabenbandbreiteneinschränkungen von 80 kb/s vorhanden sein, wodurch erfordert wird, dass der Umcodierungsknoten die Ausgabebitrate reduziert, um in die verfügbare Bandbreite zu passen.
  • Wie hierin beschrieben, umfassen bei einem Ausführungsbeispiel zusätzliche Informationen, die verwendet werden können, um die Verarbeitung zu richten, Lokalquellinformationen, um die Informationen über das Netz umfassen Lokalnetzbeobachtungen. Bei einem anderen Ausführungsbeispiel, ähnlich dem obigen, umfassen die Informationen über die Daten auch Nachbarquellinformationen und die Informationen über das Netz umfassen auch Nachbarnetzbeobachtungen.
  • Durch ein Nutzen der Informationen über den Abschnitt von Daten (z. B. den Paketkopfblock oder dergleichen), um den Abschnitt von Daten zu verarbeiten, anstatt tatsächlich auf die Daten in dem Abschnitt von Daten zuzugreifen, ist der vorliegende einzige Knotenumcodierer 160A zum Verarbeiten der Abschnitte von Daten fähig, ungeachtet dessen, ob die Abschnitte von Daten verschlüsselt sind. Wenn z. B. der Abschnitt von Daten in einem Progressive-Verschlüsselung-Format mit einer skalierbaren Codierung wie hierin beschrieben verschlüsselt ist und die skalierbare Codierung in der Information bereitgestellt ist (z. B. dem Kopfblock oder dergleichen), dann kann der Umcodierungsknoten den skalierbaren Abschnitt von Daten abschneiden, ohne den Abschnitt von Daten jemals zu entschlüsseln.
  • Bei einem anderen Ausführungsbeispiel können die Informationen über den Abschnitt von Daten (z. B. der Kopfblock oder die Hinweisspur oder eine andere Form von Metadaten) unter Verwendung eines unterschiedlichen Verschlüsselungsalgorithmus als denjenigen des Rests der Daten in dem Abschnitt von Daten verschlüsselt werden. Somit können diese Informationen zur Bewertung und Verwendung entschlüsselt werden, während die Daten selbst verschlüsselt bleiben. Auf diese Weise wird die Sicherheit der Daten an dem Umcodierungsknoten bewahrt.
  • Da bei einem Ausführungsbeispiel die Abschnitte von Daten in dem Umcodierungsknoten 160A in einer einzigen Speicherungsstelle gespeichert sind, ungeachtet des Eingabemedienstroms 1109, werden die Datenpakete in einer Warteschlange platziert, wenn dieselben der Reihe nach empfangen und verarbeitet werden. Das heißt, wenn ein Datenpaket hereinkommt, wird dasselbe in einer Warteschlange platziert, und wenn ein Datenpaket ausgegeben wird 1129, bewegt sich die Warteschlange einen Platz vorwärts (oder wenn eine Mehrzahl von Paketen ausgegeben wird, z. B. 10 Pakete, dann schiebt sich die Warteschlange um 10 vor). Bei einem anderen Ausführungsbeispiel werden die Datenpakete in einer unterschiedlichen Weise organisiert, wenn dieselben empfangen werden. Zum Beispiel nach Zeit und Größe oder Wichtigkeit, oder Wichtigkeit durch Größe normiert, oder einer anderen Metrik, die durch den Umcodierungsknoten 160A definiert ist, in der Warteschlange platziert
  • Nun unter Bezugnahme auf 12 ist ein Umcodierungsknoten 160B gezeigt, der eine Mehrzahl von Eingabeströmen 1109 empfängt. Im Gegensatz zu dem Umcodierungsknoten 160A jedoch hält der Umcodierungsknoten 160B die Abschnitte von Daten in tatsächlichen oder virtuellen (oder einer Kombination von tatsächlichen oder virtuellen) Speicherungsstellen zurück. Das heißt, der Abschnitt von Daten wird nicht nur in der Reihenfolge aufrechterhalten, in der derselbe empfangen wurde, sondern auch unter Bezugnahme auf den Medienstrom, aus dem derselbe ankam. Zum Beispiel werden die Medien, die an einer ersten Eingabe 1109A empfangen werden, in einer ersten Speicherungsstelle 165A gespeichert, die Medien, die an einer zweiten Eingabe 1109B empfangen wurden, werden in einer zweiten Speicherungsstelle 165B gespeichert, und die Medien, die von einer dritten Eingabe 1109C empfangen wurden, werden in einer dritten Speicherungsstelle 165C gespeichert.
  • Wenn die hereinkommenden Medienströme 1109 Pakete von Daten mit einer konstanten Rate liefern, beginnt der Umcodierungsknoten 160B somit, die Daten zu speichern, wenn derselbe nicht länger fähig ist, die Daten mit der gleichen Rate auszugeben, mit der dieselben hereinkommen. Bei einem Ausführungsbeispiel tritt dies ein, wenn die Anzahl (oder die verfügbare Bandbreite) der Ausgabe 1109 geringer als die Anzahl (oder die verfügbare Bandbreite) der Eingaben 1109 ist.
  • Wenn dieses Eingabe/Ausgabe-Ungleichgewicht auftritt, ist somit eine zweckmäßige Technik erforderlich, um sicherzustellen, dass die Abschnitte von Daten nicht in einen Engpass treten und dass nicht zu viele der Abschnitte von Daten fallengelassen werden. Wie es hierin detailliert beschrieben ist, ist es ein Ausführungsbeispiel zum Ausgleichen der Belastung, die Daten zu verarbeiten, um sicherzustellen, das zweckmäßige Abschnitte von Daten ausgegeben werden, um sicherzustellen, dass die empfangenen Client-Knoten verwendbare (wenn in Qualität reduzierte) Ströme empfangen.
  • Unter Bezugnahme auf 12 und auf 15 ist bei einem Block 802 eine Mehrzahl von Speicherungsstellen 165A165C zumindest eines Abschnitts von Daten, die von zumindest einem einer Mehrzahl von Strömen empfangen werden, an einem Umcodierungsknoten zum Speichern bereitgestellt, wobei jede der Mehrzahl von Speicherungsstellen sich auf jeden der Mehrzahl von Datenströmen bezieht. Das heißt, der Abschnitt von Daten wird nicht lediglich in der Reihenfolge aufrechterhalten, in der derselbe empfangen wurde, sondern auch unter Bezugnahme auf den Medienstrom, aus dem derselbe ankam, wie es hierin beschrieben ist. Zum Beispiel werden die Medien, die an einer ersten Eingabe 1109A empfangen werden, in einer Warteschlange an einer ersten (physikalischen oder virtuellen) Speicherungsstelle 165A gespeichert, die Medien, die an einer zweiten Eingabe 1109B empfangen werden, werden in einer Warteschlange an einer zweiten Speicherungsstelle 165E gespeichert, und die Medien, die aus einer dritten Eingabe 1109C empfangen werden, werden in einer Warteschlange an einer dritten Speicherungsstelle 165C gespeichert. Bei einem Ausführungsbeispiel sind die Daten codiert und paketiert. Die codierten Daten können skalierbar oder nicht-skalierbar codiert sein. Bei einem anderen Ausführungsbeispiel sind die Daten verschlüsselt. Die Daten können auch uncodiert sein (Rohformat).
  • Bei einem Ausführungsbeispiel ist ein Verfolgen des Abschnitts von Daten in Verbindung mit jedem Medienstrom 1109, aus dem derselbe empfangen wurde, eine Angelegenheit eines Nachverfolgens des 4-Tupels {Quell-IP-Adresse, Quellport, Bestimmungsort-IP-Adresse, Port-Bestimmungsort} für jeden Strom. Diese Informationen können durch ein Erzeugen von logischen Puffern aufrechterhalten werden, wo die IP-Adressen und die Port-Zahlen als Stromidentifizierer verwendet werden. Bei einem Ausführungsbeispiel können diese Informationen ein Teil einer Datenbank sein oder zu den Kopfblockinformationen des Datenpakets abgeändert (oder aus denselben gelesen) werden.
  • Bei einem Block 804 wird auf Informationen über den Abschnitt von Daten zugegriffen. Bei einem Ausführungsbeispiel werden die Informationen über den Abschnitt von Daten in einem Kopfblock (oder einer Hinweisspur oder Metadaten oder einem ähnlichen Merkmal) gespeichert, hierin detailliert beschrieben. Das heißt, anstatt tatsächlich auf die Daten in dem Datenpaket zuzugreifen, greift der Umcodierungsknoten auf den Kopfblock zu, der eine Übersicht des Datenpaketlayouts liefert. Zum Beispiel umfasst der Kopfblock Informationen wie z. B., ob die Daten skalierbar oder nicht-skalierbar sind, was der Pegel einer Skalierbarkeit ist, wo sich die Abschneidepunkte befinden, die Wichtigkeit der Daten und dergleichen.
  • Bei einem Ausführungsbeispiel umfassen Informationen über den Abschnitt von Daten auch ein Zugreifen auf die hierin beschriebenen R-D-Informationen. Das heißt, die Ratenbewertung, um die Größe des Abschnitts von Daten zu bestimmen, und/oder die Verzerrungsbewertung zum Bestimmen des Wertes der Daten in dem Paket, von denen beide hierin detailliert beschrieben sind.
  • Bei einem Block 806 nutzt ein Ausführungsbeispiel die Informationen zum Verarbeiten des Abschnitts von Daten, ohne dass ein Zugriff auf jegliche andere Daten in dem Abschnitt von Daten erfordert wird. Das heißt, wenn es die Entscheidung ist, die Daten zu verarbeiten, dann werden die Daten unter Verwendung von Informationen über die Daten und Informationen über das Netz verarbeitet. Zum Beispiel bezieht sich der Grad, bis zu dem Daten verarbeitet werden sollen, in der Hauptsache auf die Menge an Daten, die verworfen werden soll (oder die Menge an Daten, die behalten werden soll), wenn eine Verarbeitung abgeschlossen wird. Wenn es z. B. 3 Pegel einer Auflösung gibt, repräsentiert durch die Daten in einem Datenpaket, die verarbeitet werden sollen, umfasst die Verarbeitungsentscheidung, ob alle 3 Pegel behalten werden oder ein (1) oder zwei (2) Pegel behalten werden sollen. Die Verarbeitungsentscheidung kann auch darin resultieren, dass das Datenpaket in der Gesamtheit desselben fallengelassen wird. Wie hierin beschrieben umfassen die Informationen über die Daten bei einem Ausführungsbeispiel Lokalquellinformationen, und die Informationen über das Netz umfassen Lokalnetzbeobachtungen. Bei einem anderen Ausführungsbeispiel, ähnlich dem obigen, umfassen die Informationen über die Daten auch Nachbarquellinformationen, und die Informationen uber das Netz umfassen auch Nachbarnetzbeobachtungen.
  • Durch ein Nutzen der Informationen über den Abschnitt von Daten (z. B. den Kopfblock oder dergleichen), um den Abschnitt von Daten zu verarbeiten, anstatt tatsächlich auf die Daten in dem Abschnitt von Daten zuzugreifen, ist der vorliegende einzige Knotenumcodierer 160B zum Verarbeiten der Abschnitte von Daten fähig, ungeachtet dessen, ob die Abschnitte von Daten verschlüsselt sind. Wenn der Abschnitt von Daten in einem Progressive-Verschlusselung-Format mit einer skalierbaren Codierung wie hierin beschrieben verschlüsselt ist und die skalierbare Codierung in den Informationen (z. B. einem Kopfblock oder dergleichen) bereitgestellt ist, dann kann der Umcodierungsknoten bei einem Ausführungsbeispiel z. B. den skalierbaren Abschnitt von Daten abschneiden, ohne jemals den Abschnitt von Daten zu entschlüsseln. Obwohl hierin eine progressive Verschlüsselung angegeben ist, sei darauf hingewiesen, dass eine Mehrzahl von Verschlüsselungsverfahren in Verbindung mit den hierin beschriebenen Ausführungsbeispielen genutzt werden kann. Eine progressive Verschlüsselung wird hierin lediglich zu Zwecken einer Kürze und einer Klarheit verwendet.
  • Bei einem anderen Ausführungsbeispiel können die Informationen über den Abschnitt von Daten (z. B. der Kopfblock oder die Hinweisspur oder eine andere Form von Metadaten) unter Verwendung eines unterschiedlichen Verschlüsselungsalgorithmus als denjenigen des Rests der Daten in dem Abschnitt von Daten verschlüsselt werden. Somit konnen diese Informationen für eine Bewertung und Verwendung entschlüsselt werden, während die Daten selbst verschlüsselt bleiben. Auf diese Weise wird die Sicherheit der Daten an dem Umcodierungsknoten bewahrt.
  • Da bei einem Ausführungsbeispiel die Abschnitte von Daten in dem Umcodierungsknoten 160B in einer Mehrzahl von Speicherungsstellen basierend auf dem Eingabemedienstrom 1109 gespeichert sind, werden die Datenpakete in eine Warteschlange platziert, wenn dieselben empfangen werden, und werden in einer Reihenfolge basierend auf dem Strom, aus dem dieselben empfangen werden, verarbeitet. Das heißt, wenn ein Datenpaket hereinkommt, wird dasselbe in einer Warteschlange platziert, und wenn ein Datenpaket ausgegeben wird, bewegt sich die Warteschlange einen Platz vorwärts (oder wenn eine Mehrzahl von Paketen ausgegeben wird, z. B. 10 Pakete, dann schiebt sich die Warteschlange um 10 vor), auf einer Pro-Strom-Basis.
  • Durch ein spezifisches Nachverfolgen eines jeden Stroms und ein Ausnutzen dieser Informationen, wenn die Pakete ausgesendet werden, ist der Umcodierungsknoten 160B fähig, die Mannigfaltigkeit der unterschiedlichen Ströme zum Durchfuhren der Verarbeitung auszunutzen. Zum Beispiel ist es möglich, die Verarbeitungswirkungen gleichmäßig über die Medienströme zu teilen, z. B. kann der Umcodierungsknoten 160B sicherstellen, dass ein Abschnitt von Daten aus jedem Medienstrom verarbeitet wird, z. B. 1109A1109C, anstatt unwissend eine Mehrzahl von Daten aus einer einzigen Datenstromeingabe 1109A zu verarbeiten.
  • Wichtiger noch, die Verarbeitung kann uber die unterschiedlichen Medienströme durchgeführt werden, um ausgereiftere Fähigkeiten zu liefern. Zum Beispiel kann die Verarbeitung über Ströme durchgeführt werden, um die resultierende Verzerrung gerecht über alle der Ströme zu teilen, z. B. so, dass jeder Strom durch die gleiche Menge an Verzerrung beeinflusst wird. Als ein anderes Beispiel kann die Verarbeitung über die unterschiedlichen Ströme durchgefuhrt werden, um die Gesamtverzerrung über alle der Ströme gesehen zu minimieren, (in diesem Falle kann jeder Strom durch eine unterschiedliche Verzerrung beeinflusst werden, aber die Gesamtverzerrung, summiert über alle der Strome, ist minimiert). Als ein anderes Beispiel kann die Verarbeitung über die unterschiedlichen Strome durchgefuhrt werden, um die Maximalverzerrung zu minimieren, die irgendeinen einzelnen Strom. belastet. Als ein anderes Beispiel konnen unterschiedliche Ströme unterschiedliche Dienstqualitatanforderungen aufweisen (z. B. kann jeder Strom eine unterschiedliche maximale annehmbare Verzerrung haben), und somit kann die Verarbeitung uber die unterschiedlichen Ströme durchgeführt werden, um die QoS-Anforderung (QoS quality of service) für jeden Strom zweckmäßig zu erfüllen, z. B. um die maximale Verzerrung für jeden Strom auf den zweckmäßigen Wert einzuschränken.
  • Nun ist unter Bezugnahme auf 13a ein Umcodierungsknoten 160C gezeigt, der eine Mehrzahl von Eingabeströmen 1109 empfängt. Jedoch kann der Umcodierungsknoten 160C eine Ausgabebandbreiteneinschränkung haben, die niedriger als eine Empfangene-Eingabe-Bandbreite desselben ist. Somit beginnt der Umcodierungsknoten 160C, wenn die hereinkommenden Medienströme 1109 Pakete von Daten mit einer konstanten Rate liefern, die Daten zu speichern, wenn derselbe nicht länger fähig ist, die Daten mit der gleichen Rate auszugeben, mit der dieselben hereinkommen. Bei einem Ausführungsbeispiel tritt dies ein, wenn die Anzahl (oder die verfügbare Bandbreite) der Ausgabe 1129 geringer als die Anzahl (oder die verfügbare Bandbreite) der Eingaben 1109 ist.
  • Wenn dieses Eingabe/Ausgabe-Ungleichgewicht eintritt, ist eine zweckmäßige Technik erforderlich, um sicherzustellen, dass die Abschnitte von Daten nicht in einen Engpass treten und dass nicht zu viele Abschnitte von Daten fallen gelassen werden. Wie es hierin detailliert beschrieben ist, ist es ein Ausführungsbeispiel zum Ausgleichen der Belastung, die Daten zu verarbeiten, um sicherzustellen, dass zweckmäßige Abschnitte von Daten ausgegeben werden, um sicherzustellen, dass die empfangenden Client-Knoten verwendbare (wenn in Qualität reduzierte) Ströme empfangen.
  • Im Allgemeinen ist der Umcodierungsknoten 160C zum Arbeiten in dem Einzige-Speicherung-Verfahren fähig, wie der Umcodierungsknoten 160A, oder zum Nutzen einer Mehrzahl von tatsächlichen oder virtuellen (oder einer Kombination von tatsächlichen oder virtuellen) Speicherungsstellen, wie bei dem Umcodierungsknoten 160B beschrieben. Im Gegensatz zu den Umcodierungsknoten 160A und 160B jedoch nutzt der Umcodierungsknoten 160C eine Datenbank, um die Informationen aus dem Abschnitt von Daten (z. B. den Kopfblock oder dergleichen) zu speichern. Das heißt, der Knoten 160C liest anfänglich die Informationen (z. B. den Kopfblock oder dergleichen) und speichert die Informationen (z. B. R-D-Informationen, Netzinformationen und dergleichen) in einer Datenbank. Ein Abschnitt von Daten (oder ein Datenpaket) wird dann mit einem Zeiger gekennzeichnet, der auf den Datenbankeintrag verweist. Zum Beispiel Zeichenfolge-1 – Rateninformationen, Zeichenfolge-2 – Verzerrungsinformationen und dergleichen. Durch das anfängliche Lesen und das Speichern der Informationen über das Datenpaket kann der Umcodierungsprozess effizienter sein, da kein Bedarf besteht, all die Kopfblockinformationen zu einer späteren Zeit erneut zu lesen.
  • Unter Bezugnahme auf 12 und auf 16 wird bei einem Block 902 zumindest eine Speicherungsstelle 165 zum Speichern zumindest eines Abschnitts von Daten, die von zumindest einem einer Mehrzahl von Strömen empfangen werden, an einem Umcodierungsknoten bereitgestellt. Bei einem anderen Ausführungsbeispiel bezieht sich jede der Mehrzahl von Speicherungsstellen auf jeden der Mehrzahl von Datenströmen, wie es hierin beschrieben ist. Das heißt, der Abschnitt von Daten kann in einer einzigen Speicherungsstelle in der Reihenfolge, in der derselbe empfangen wurde, oder unter Bezugnahme auf den Medienstrom, aus dem derselbe ankam, und die Reihenfolge, in der derselbe empfangen wurde, aufrechterhalten werden, wie es hierin beschrieben ist.
  • Bei einem Block 904 wird auf Informationen über den Abschnitt von Daten zugegriffen. Bei einem Ausführungsbeispiel sind die Informationen über den Abschnitt von Daten in einem Kopfblock (oder einem ähnlichen Merkmal), hierin detailliert beschrieben, gespeichert. Das heißt, anstatt tatsächlichen auf die Daten in dem Datenpaket zuzugreifen, greift der Umcodierungsknoten auf den Kopfblock zu, der eine Übersicht des Datenpaketlayouts liefert. Zum Beispiel umfasst der Kopfblock Informationen wie z. B., ob die Daten skalierbar sind oder nicht-skalierbar sind, was der Pegel einer Skalierbarkeit ist, wo sich die Abschneidepunkte befinden, und dergleichen.
  • Bei einem Ausführungsbeispiel umfassen Informationen über den Abschnitt von Daten auch ein Zugreifen auf die R-D-Informationen, die hierin beschrieben sind. Das heißt, die Ratenbewertung, um die Größe des Abschnitts von Daten zu bestimmen, und/oder die Verzerrungsbewertung zum Bestimmen des Wertes der Daten in dem Paket, von denen beide hierin detailliert beschrieben sind.
  • Bei einem Block 906 wird ein Datenbank 168 -Eintrag an dem Umcodierungsknoten 165C basierend auf den Informationen über den Abschnitt von Daten erzeugt. Bei einem Ausführungsbeispiel sind die Informationen R-D-Informationen aus dem Kopfblock oder der Hinweisspur oder Metadaten oder ähnliche Informationen. Bei einem Block 908 wird eine Kennung erzeugt, um auf den Datenbankeintrag der Informationen über den Abschnitt von Daten zu zeigen. Bei einem Block 910 wird die Kennung, die erzeugt ist, um auf den Datenbankeintrag zu zeigen, mit dem Abschnitt von Daten korreliert.
  • Bei einem Block 912 nutzt ein Ausführungsbeispiel die Kennung und die Datenbank zum Verarbeiten des Abschnitts von Daten, ohne einen Zugriff auf jegliche andere Daten in dem Abschnitt von Daten zu erfordern und ohne einen erneuten Verweis der Informationen, die den Abschnitt von Daten begleiten (z. B. den Kopfblock oder dergleichen) zu erfordern. Das heißt, die Daten werden dann, wenn es die Entscheidung ist, die Daten zu verarbeiten, unter Verwendung der Datenbank und der Kennung verarbeitet. Zum Beispiel bezieht sich der Grad, bis zu dem Daten verarbeitet werden sollen, in der Hauptsache auf die Menge an Daten, die verworfen werden soll (oder die Menge an Daten, die behalten werden soll), wenn die Verarbeitung abgeschlossen wird. Wenn es z. B. 3 Pegel einer Auflösung gibt, repräsentiert durch die Daten in einem Datenpaket, die umcodiert werden sollen, umfasst die Umcodierungsentscheidung, ob alle 3 Pegel behalten werden 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. Wie es hierin beschrieben ist, umfassen die Informationen über die Daten bei einem Ausführungsbeispiel Lokalquellinformationen und die Informationen über das Netz umfassen Lokalnetzbeobachtungen. Bei einem anderen Ausführungsbeispiel, ähnlich dem obigen, umfassen die Informationen über die Daten auch Nachbarquellinformationen, und die Informationen über das Netz umfassen auch Nachbarnetzbeobachtungen.
  • Durch ein Nutzen der Kennung, um den Abschnitt von Daten zu verarbeiten, anstatt tatsächlich auf den Kopfblock, die Daten in dem Abschnitt von Daten oder dergleichen zuzugreifen, ist der vorliegende einzige Knotenumcodierer 160C zum Verarbeiten der Abschnitte von Daten ungeachtet dessen fähig, ob die Abschnitte von Daten verschlüsselt sind. Wenn z. B. der Abschnitt von Daten mit einer skalierbaren Codierung, wie hierin beschrieben, verschlüsselt ist und die skalierbare Codierung in der Datenbank bereitgestellt ist, dann kann der Umcodierungsknoten den skalierbaren Abschnitt von Daten abschneiden, ohne jemals den Abschnitt von Daten zu entschlüsseln. Bei einem anderen Ausführungsbeispiel können die Informationen über den Abschnitt von Daten in einem unterschiedlichen Verschlüsselungsalgorithmus als demjenigen des Rests der Daten in dem Abschnitt von Daten verschlüsselt sein. Somit kann der Kopfblock (bei einem Fall) für eine Bewertung und Speicherung entschlüsselt werden, während der Rest in dem Datenpaket verschlüsselt bleibt. Somit wird die Sicherheit der Daten an dem Umcodierungsknoten 160C beibehalten.
  • Da bei einem Ausführungsbeispiel die Abschnitte von Daten in dem Umcodierungsknoten 160C in einer Mehrzahl von Speicherungsstellen basierend auf dem Eingabemedienstrom 1109 gespeichert werden, wenn die Kennung erzeugt wird, kann der Datenbankeintrag auch die Datenpakete-Stelle in der Warteschlange umfassen, z. B. wann dieselben empfangen werden, und kann dadurch eine Effizienz erhöhen, indem geholfen wird, sicherzustellen, dass die Datenpakete in einer Reihenfolge basierend auf der Zeit und/oder dem Strom, aus dem dieselben empfangen wurden, verarbeitet werden. Zusätzlich ist es durch ein Nutzen der Datenbank und der zugeordneten Kennung möglich, die Pakete von Daten nachzuverfolgen, ohne ein Warteschlange- oder ein Mehrfache-Speicherungsstelle-Verfahren zu nutzen. Das heißt, der Prozess des Ausgebens der Abschnitte von Daten basierend auf der Datenbank ist standardmäßig linear, da die Datenbank linear ist, z. B. ein zweiter Eintrag nicht vor einem ersten Eintrag eingetragen werden kann. Das heißt, wenn ein Paket aus der Datenbank entfernt wird, bewegt sich die Liste eins (oder mehr) nach oben. Somit sind komplexe oder sehr genaue Speicherungsverfahren nicht notwendig, wenn das Datenbank- und Kennung-Verfahren genutzt wird.
  • 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 Durchfuhren 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 (10)

  1. Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten (160) in einem Netz (100), das eine Mehrzahl von Umcodierungsknoten aufweist, wobei das Verfahren folgende Schritte aufweist: Bereitstellen zumindest einer Speicherungsstelle (165) an dem Umcodierungsknoten (160) zum Speichern zumindest eines Abschnitts von Daten (502), der von zumindest einem der Mehrzahl von Strömen empfangen wird; Zugreifen auf Informationen über den zumindest einen Abschnitt von Daten (502); und Nutzen der Informationen und weiterer Informationen zum Verarbeiten des Abschnitts von Daten (502), ohne dass ein Zugriff auf jegliche andere Daten des zumindest einen Abschnitts von Daten (502) erforderlich ist, wobei die weiteren Informationen von einem weiteren Umcodierungsknoten stammen.
  2. Verfahren gemäß Anspruch 1, das ferner folgenden Schritt aufweist: Bereitstellen einer Mehrzahl von Speicherungsstellen (165) an dem Umcodierungsknoten (160) zum Speichern zumindest eines Abschnitts von Daten (502), wobei jede der Mehrzahl von Speicherungsstellen (165) sich auf jeden einer Mehrzahl von Datenströmen bezieht.
  3. Verfahren gemäß Anspruch 2, bei dem die Mehrzahl von Speicherungsstellen (165) tatsächliche Speicherungsstellen (165) an dem Umcodierungsknoten (160) sind.
  4. Verfahren gemäß Anspruch 2, bei dem die Mehrzahl von Speicherungsstellen (165) virtuelle Speicherungsstellen (165) an dem Umcodierungsknoten (160) sind.
  5. Verfahren gemäß Anspruch 1, bei dem die Informationen über den zumindest einen Abschnitt von Daten (502) Folgendes aufweisen: Zugreifen auf eine Ratenbewertung, die in einem Kopfblock des zumindest einen Abschnitts von Daten (502) gespeichert ist, zum Bestimmen der Größe des zumindest einen Abschnitts von Daten (502); und Zugreifen auf eine Verzerrungsbewertung, die in dem Kopfblock des zumindest einen Abschnitts von Daten (502) gespeichert ist, zum Bestimmen des Wertes der Daten in dem zumindest einem Abschnitt von Daten (502); und Zugreifen auf eine Wichtigkeitsbewertung, die in dem Kopfblock des zumindest einen Abschnitts von Daten (502) gespeichert ist, zum Bestimmen der Wichtigkeit des zumindest einen Abschnitts von Daten (502).
  6. Verfahren gemäß Anspruch 5, bei dem die Verarbeitung des Abschnitts von Daten (502) folgenden Schritt aufweist: Verarbeiten der Daten an dem Umcodierungsknoten (160) durch ein Löschen eines nicht-skalierbaren Abschnitts von Daten (502) basierend auf der Ratenbewertung und gespeicherten Bewertung des zumindest einen Abschnitts von Daten (502).
  7. Verfahren gemäß Anspruch 1, ferner mit folgendem Schritt: Verschlüsseln des zumindest einen Abschnitts von Daten (502) mit einem Verschlüsselungsformat mit einer skalierbaren Codierung, wobei die Verschlüsselung und die skalierbare Codierung in einem Kopfblock des verschlüsselten Abschnitts von Daten (502) repräsentiert werden.
  8. Verfahren gemäß Anspruch 7, bei dem das Editieren des Abschnitts von Daten (502) ferner folgenden Schritt aufweist: Verarbeiten der Daten an dem Umcodierungsknoten (160) durch ein Abschneiden des skalierbaren Abschnitts von Daten (502) basierend auf einer Skalierbare-Codierung-Information, die in dem Kopfblock des verschlüsselten Abschnitts von Daten (502) gespeichert ist.
  9. Verfahren gemäß Anspruch 1, das ferner folgenden Schritt aufweist: Verschlüsseln des Abschnitts von Daten (502) mit einem Verschlüsselungsformat mit einer skalierbaren Codierung, wobei das Verschlüsseln und die skalierbare Codierung in den Informationen über den Abschnitt von Daten (502) repräsentiert werden.
  10. Verfahren gemäß Anspruch 9, bei dem das Verarbeiten des Abschnitts von Daten (502) ferner folgenden Schritt aufweist: Verarbeiten der Daten an dem Umcodierungsknoten (160) durch ein Abschneiden des skalierbaren Abschnitts von Daten (502) basierend auf den Skalierbare-Codierung- und Verschlüsselung-Informationen, die in den Information über den Abschnitt von Daten (502) gespeichert sind.
DE112006002893T 2005-10-21 2006-07-21 Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten Expired - Fee Related DE112006002893B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/255,742 US20070091926A1 (en) 2005-10-21 2005-10-21 Method for optimizing portions of data from a plurality of data streams at a transcoding node
US11/255,742 2005-10-21
PCT/US2006/028408 WO2007046908A1 (en) 2005-10-21 2006-07-21 Method for optimizing portions of data from a pluraliy of data streams at a transcoding node

Publications (2)

Publication Number Publication Date
DE112006002893T5 DE112006002893T5 (de) 2008-10-23
DE112006002893B4 true DE112006002893B4 (de) 2012-03-01

Family

ID=37465059

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006002893T Expired - Fee Related DE112006002893B4 (de) 2005-10-21 2006-07-21 Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten

Country Status (4)

Country Link
US (2) US20070091926A1 (de)
KR (1) KR100942889B1 (de)
DE (1) DE112006002893B4 (de)
WO (1) WO2007046908A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8295275B2 (en) * 2006-03-20 2012-10-23 Intel Corporation Tagging network I/O transactions in a virtual machine run-time environment
JP4912075B2 (ja) * 2006-08-11 2012-04-04 パナソニック株式会社 復号装置
US8327399B2 (en) * 2006-08-31 2012-12-04 At&T Intellectual Property I, Lp System and method for delivering targeted advertising data in an internet protocol television system
US7987285B2 (en) 2007-07-10 2011-07-26 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US7991904B2 (en) * 2007-07-10 2011-08-02 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US20100251381A1 (en) * 2007-08-17 2010-09-30 Seong-Oun Hwang System renewability message providing method and system renewability message using method and apparatus thereof
CN102216924A (zh) * 2007-08-17 2011-10-12 韩国电子通信研究院 内容保护提供方法、已保护内容消费方法以及其设备
KR20090029634A (ko) * 2007-09-18 2009-03-23 한국전자통신연구원 콘텐츠 보호 제공방법과 보호된 콘텐츠 소비방법 및 그 장치
US7995578B2 (en) * 2007-12-14 2011-08-09 Electronics And Telecommunications Research Institute Repetition apparatus and method for repeatedly transmitting and receiving data packet using different puncturing patterns
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
JP5044519B2 (ja) * 2008-10-06 2012-10-10 アラクサラネットワークス株式会社 受信側装置、伝送装置、伝送方法およびプログラム
US20100199322A1 (en) * 2009-02-03 2010-08-05 Bennett James D Server And Client Selective Video Frame Pathways
US8687685B2 (en) 2009-04-14 2014-04-01 Qualcomm Incorporated Efficient transcoding of B-frames to P-frames
KR20120104238A (ko) * 2009-12-16 2012-09-20 톰슨 라이센싱 광고 큐 메세지를 보호하기 위한 시스템 및 방법
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US10778659B2 (en) 2012-05-24 2020-09-15 Smart Security Systems Llc System and method for protecting communications
US9325676B2 (en) * 2012-05-24 2016-04-26 Ip Ghoster, Inc. Systems and methods for protecting communications between nodes
EP2885739B1 (de) 2012-08-18 2019-10-02 Fugue, Inc. System und verfahren zur bereitstellung eines sicheren computerumgebung
KR102051527B1 (ko) 2013-02-12 2019-12-03 삼성전자주식회사 네트워크 압축­후­전달 기법을 이용하는 협력 통신 시스템,전송기,중계기 및 수신기
WO2015116097A1 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Joint encryption and error correction encoding
US9973514B2 (en) * 2014-10-27 2018-05-15 Hong Kong Baptist University Method and apparatus for assuring location data integrity with minimum location disclosure
US10135746B2 (en) 2015-07-07 2018-11-20 Strong Force Iot Portfolio 2016, Llc Cross-session network communication configuration
US9992088B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US9825733B1 (en) 2014-11-07 2017-11-21 Speedy Packets, Inc. Packet coding based network communication
US10999012B2 (en) 2014-11-07 2021-05-04 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10320526B1 (en) 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US9992126B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US10318762B1 (en) * 2015-03-06 2019-06-11 United Services Automobile Association (Usaa) Third-party platform for tokenization and detokenization of network packet data
US10341194B2 (en) 2015-10-05 2019-07-02 Fugue, Inc. System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment
US10712738B2 (en) 2016-05-09 2020-07-14 Strong Force Iot Portfolio 2016, Llc Methods and systems for industrial internet of things data collection for vibration sensitive equipment
US11120293B1 (en) * 2017-11-27 2021-09-14 Amazon Technologies, Inc. Automated indexing of media content
US11194930B2 (en) 2018-04-27 2021-12-07 Datatrendz, Llc Unobtrusive systems and methods for collecting, processing and securing information transmitted over a network
CN110061989B (zh) * 2019-04-19 2021-07-13 航天云网数据研究院(江苏)有限公司 一种数据采集网关全隔离方法
EP3987483A4 (de) 2019-06-24 2023-03-01 Insurance Services Office, Inc. Maschinenlernsysteme und verfahren zur verbesserten lokalisierung von bildfälschungen

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003030544A1 (en) * 2001-10-04 2003-04-10 Hewlett-Packard Company Storage devices for secure scalable data streaming

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4408323A (en) * 1981-06-29 1983-10-04 Bell Telephone Laboratories, Incorporated Processor facilities for integrated packet and voice switching
US5204958A (en) * 1991-06-27 1993-04-20 Digital Equipment Corporation System and method for efficiently indexing and storing a large database with high data insertion frequency
US5440545A (en) * 1993-08-02 1995-08-08 Motorola, Inc. Packet delivery system
JP3193947B2 (ja) * 1997-01-08 2001-07-30 株式会社ディジタル・ビジョン・ラボラトリーズ データ送信システム及びデータ送信方法
US6483543B1 (en) * 1998-07-27 2002-11-19 Cisco Technology, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit
US6944762B1 (en) * 1999-09-03 2005-09-13 Harbor Payments Corporation System and method for encrypting data messages
US7124116B2 (en) * 1999-12-20 2006-10-17 Huy-Tech Software Corporation Method for performing market-adapted price planning
US7159233B2 (en) 2000-01-28 2007-01-02 Sedna Patent Services, Llc Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system
US6922845B2 (en) * 2000-04-25 2005-07-26 The Directtv Group, Inc. Multi-processor DVR
US7072336B2 (en) * 2000-05-26 2006-07-04 Nortel Networks Limited Communications using adaptive multi-rate codecs
US6771703B1 (en) * 2000-06-30 2004-08-03 Emc Corporation Efficient scaling of nonscalable MPEG-2 Video
US6963972B1 (en) * 2000-09-26 2005-11-08 International Business Machines Corporation Method and apparatus for networked information dissemination through secure transcoding
FR2816154A1 (fr) * 2000-10-31 2002-05-03 Canon Kk Insertion d'information supplementaire dans des donnees numeriques
US7054335B2 (en) * 2001-05-04 2006-05-30 Hewlett-Packard Development Company, L.P. Method and system for midstream transcoding of secure scalable packets in response to downstream requirements
US6990202B2 (en) * 2001-10-04 2006-01-24 Hewlett-Packard Development Company, L.P. Packetizing devices for secure scalable data streaming
US6738617B2 (en) * 2001-05-15 2004-05-18 Qualcomm Incorporated Controller for reducing latency in a group dormancy-wakeup process in a group communication network
US7065213B2 (en) * 2001-06-29 2006-06-20 Scientific-Atlanta, Inc. In a subscriber network receiving digital packets and transmitting digital packets below a predetermined maximum bit rate
US8090761B2 (en) * 2002-07-12 2012-01-03 Hewlett-Packard Development Company, L.P. Storage and distribution of segmented media data
US7133925B2 (en) * 2002-07-15 2006-11-07 Hewlett-Packard Development Company, L.P. System, method, and format thereof for scalable encoded media delivery
KR20080079313A (ko) * 2003-11-21 2008-08-29 닛본 덴끼 가부시끼가이샤 콘텐츠 배신 및 수신 장치, 콘텐츠 송수신 시스템, 콘텐츠배신 및 수신 방법, 콘텐츠 배신 및 수신용 프로그램을수록한 컴퓨터 판독가능 기록매체
KR101145261B1 (ko) * 2004-02-27 2012-05-24 삼성전자주식회사 멀티미디어 데이터를 기록한 정보저장매체, 그 재생방법및 재생장치
US7535907B2 (en) * 2005-04-08 2009-05-19 Oavium Networks, Inc. TCP engine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003030544A1 (en) * 2001-10-04 2003-04-10 Hewlett-Packard Company Storage devices for secure scalable data streaming

Also Published As

Publication number Publication date
US20070091926A1 (en) 2007-04-26
KR20080059316A (ko) 2008-06-26
KR100942889B1 (ko) 2010-02-17
WO2007046908A1 (en) 2007-04-26
WO2007046908A8 (en) 2007-07-26
DE112006002893T5 (de) 2008-10-23
US8045584B2 (en) 2011-10-25
US20070091927A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
DE112006002893B4 (de) Verfahren zum Verarbeiten von Abschnitten von Daten aus einer Mehrzahl von Datenströmen an einem Umcodierungsknoten
DE112006002899B4 (de) Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
US7463735B2 (en) Encoding and decoding methods for secure scalable streaming and related systems
DE112007001012T5 (de) Verteilte Speicherung von Mediendaten
EP1678586B1 (de) Verfahren und vorrichtung zur sicherstellung der datenintegrität
EP1384347B1 (de) Verfahren und vorrichtung zur sicheren transkodierung
US6983049B2 (en) Storage devices for secure scalable data streaming
US7349539B2 (en) Encoding and encrypting devices for secure scalable data streaming
US7581094B1 (en) Cryptographic checksums enabling data manipulation and transcoding
US6990202B2 (en) Packetizing devices for secure scalable data streaming
US7409094B2 (en) Methods and systems for packetizing encoded data
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
Apostolopoulos Secure media streaming & secure adaptation for non-scalable video
US7155010B2 (en) Signal format that facilitates easy scalability of encrypted streams
US7505590B1 (en) Method and system for providing transcodability to frame coded streaming media
EP2082526A2 (de) Authentifikation modifizierter daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20120602

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