TECHNISCHES GEBIET
Diese Erfindung bezieht sich im Allgemeinen auf den Schutz von Multimedia
(-daten), und spezieller auf ein skalierbares, fehlerausfallsicheres Rechtemanagement
für skalierbare Medien.
HINTERGRUND
Digitales Rechtemanagement (DRM) für Multimediadaten ist zu einer
gängigen Art und Weise geworden, um geistiges Eigentum der Besitzer von Medieninhalten
(media content) zu schützen. Der MPEG-4-Fine-Granularity-Scalability-Videocodierungsstandard
(Fine Granularity Scalability – FGS; feinkörnige Skalierbarkeit), z.
B., ermöglicht eine direkte und flexible Anpassung eines Multimediadatenstromes
an verschiedene Übertragungs- und Anwendungsbedürfnisse. DRM spielt eine
wichtige Rolle im Schutz von urheberrechtlich geschützten Multimediaelementen,
wie z. B. Musik und Filmen. Auf dem Markt gibt es einen wachsenden Bedarf für
DRM-Services. DRM ist bereits in MICRO-SOFT®-Produkte implementiert
worden, wie z. B. das WINDOWS MEDIATM-Format und EBOOKSTM
(Microsoft Corporation, Redmond, Washington, USA). Es werden aber neue DRM-Schemata
benötigt, die für neue skalierbare Multimediaformate optimiert sind. Diese
neuen Multimediaformate und DRMs ermöglichen das Wachstum von neuen Geschäfts-
und Servicemodellen.
Skalierbares Videocodieren hat eine weite Akzeptanz aufgrund seiner
Flexibilität und einfachen Anpassung an einen weiten Bereich von Anwendungserfordernissen
und -umgebungen erreicht. "Scalable media adaptation and robust transport" (SMART
und SMART ++; skalierbare Medienanpassung und stabile Übertragung) ist ein
Beispiel eines skalierbaren Mulitmediaschemas (siehe z. B. http://research.microsoft.com/im/,
Microsoft Corporation, Redmond, Washington; Feng Wu, Shipeng Li, Va-Qin Zhang, "A
framework for efficient progressive fine granular scalable video coding" (ein Framework
für effizientes, progressives, feinkörnig skalierbares Videokodieren),
IEEE Trans. on Circuits and Systems for Video Technology, Vol. 11, Nr. 3, S. 332–344,
2001; Xiaoyan Sun, Feng Wu, Shipeng Li, Wen Gao, Va-Qin Zhang, "Macroblock-based
temporal-SNR progressive fine granularity scalable video coding" (Makroblock-basierendes
zeitliches SNR, progressives, feinkörnig skalierbares Videokodieren), IEEE
International Conference on Image Processing (ICIP), S. 1025–1028, Thessaloniki,
Griechenland, Oktober 2001; und Yuwen He, Feng Wu, Shipeng Li, Yuzhuo Zhong, Shiqiang
Yang, "H.26L-based fine granularity scalable video coding" (H.26L-basiertes, feinkörnig
skalierbares Viedokodieren), ISCAS 2002, Vol. 4, S. 548–551, Phoenix, USA,
Mai 2002).
In dem MPEG-4-FGS skalierbaren Multimediaprofil wird ein Videodatenstrom
in zwei Layer geteilt, den Basislayer und den Erweiterungslayer. Der Basislayer
ist eine nicht skalierbare Kodierung des Videos mit einer geringen Bitrate, z. B.,
der geringsten Bitrate, die in einer Anwendung verwendet wird. Der Rest von jedem
Frame wird in dem Erweiterungslayer in einer skalierbaren Weise kodiert: die diskreten
Kosinustransformationskoeffizienten (discrete cosine transformation – DCT)
eines Restes eines Frames werden Bit-Ebenenweise (bit-plane wise) von dem höchstwertigen
Bit (most significant bit) zu dem niedrigstwertigem Bit (least significant bit)
komprimiert. Ein Video wird durch MPEG-4-FGS nur einmal komprimiert. Wenn es über
ein Netzwerk übermittelt wird, kann ein Server die Erweiterungslayerdaten zugehörig
zu dem/den niedrigstwertigen Bit(s) ausschalten, sollte dem übermittelnden
Netzwerk die erforderliche Bandbreite fehlen. Andere Raten-formenden Funktionen
können ebenso auf den FGS-komprimierten Daten direkt ausgeführt werden,
ohne entweder auf die Komprimierung oder Dekomprimierung zurückzugreifen.
Ein Multimediaverschlüsselungsalgorithmus, entweder für
skalierbare oder nicht skalierbare Codecs (Kodierer-Dekodierer), hat idealerweise
diese Merkmale: hohe Sicherheit, geringe Komplexität, geringen Komprimierungs-Overhead,
Fehlerauswahlsicherheit, Raten-Formungs-Anpassbarkeit, und die Möglichkeit
zur zufälligen Wiedergabe. Sicherheit ist ein essentielles Erfordernis für
Multimediaverschlüsselung. Verglichen mit anderen Verschlüsselungstypen
für kritischere, militärische und Banken-Anwendungen hat Multimediaverschlüsselung
seine eigenen speziellen Probleme, einschließlich der relativ ungeheueren Weite
der zu verschlüsselnden Videodaten und des gewöhnlicherweise geringen
Wertes der zu verschlüsselnden Informationen, verglichen mit Informationen,
die, z. B., für militärische und Banken-Anwendungen verschlüsselt
werden.
Geringe Komplexität ist ein Thema, weil irgendein Verschlüsselungs-
oder Entschlüsselungsprozess einen Verarbeitungs-Overhead hinzufügt. Weil
ein Multimediadatenstrom eine relativ große Menge an Daten hat, ist es wünschenswert
oder zwingend, dass in vielen Anwendungen die Komplexität eines Verschlüsselungssystems
sehr gering ist, speziell während des Entschlüsselns, weil viele Anwendungen
eine Realtime-Entschlüsselung der großen Menge an Multimediadaten erfordern,
und gewöhnlicherweise auf einem Benutzerequipment laufen, das beschränkte
Ressourcen hat.
Komprimierungs-Overhead ist ebenso ein Thema, weil die Verschlüsselung
zwangsläufig die Komprimierungseffizienz entweder durch die Reduzierung
der Kodierungseffizienz des Komprimierungsalgorithmusses (direkt) oder durch das
Hinzufügen von Bytes zu der bereits komprimierten Datei beeinflusst. Deshalb
sollte der Komprimierungs-Overhead idealerweise für Multimediaverschlüsselungsalgorithmen
minimiert sein.
Fehlerausfallsicherheit ist wichtig, weil Störungen während
der Multimediaspeicherung und -übertragung auftreten. Kabellose Netzwerke sind
offenkundig für Übermittlungsfehler. Datenpakete können während
der Übertragung aufgrund von Datenstau, Pufferüberlauf und anderen Netzwerkstörstellen
verloren gehen. Verschlüsselungsschemata sind idealerweise belastbar gegenüber
Bitfehlern und Paketverlusten. Sie sollten ebenso eine schnelle Wiederherstellung
nach Bitfehlern und eine schnelle Wiedersynchronisierung nach Paketverlusten erlauben,
um eine extensive Fehlerausweitung zu verhindern. Multimediaverschlüsselungsalgorithmen,
die üblicherweise unter perfekten Übertragungsumgebungen (meistens) entwickelt
werden, verbreiten eine große wahrzunehmende Verschlechterung mit der Zeit,
wenn Bitfehler oder Paketverluste während einer Multimediaübertragung
passieren.
Ratenformung beschreibt die Fähigkeit, die Datenübertragungsbitraten
(Anzahl an Bits in einer Sekunde eines Datenstromes) zu variieren, um verschiedenen
Bedingungen zu genügen. Während der Lieferung eines Multimediadatenstromes
von dem Inhaltebesitzer zu dem Benutzer verarbeiten viele dazwischen liegende Stationen
(middle stages) üblicherweise die Daten. Codeumwandlung (transcoding) z. B.
kann die Bitrate verändern, um sie auf eine Fluktuation der Datenübertragungsbandbreite
oder selbst Anwendungserfordernissen anzupassen. Wenn die Daten verschlüsselt
sind, müssen diese dazwischen liegenden Stationen üblicherweise die Verschlüsselungs-
und Entschlüsselungsschlüssel abrufen und anschließend Verschlüsselungs-
und Entschlüsselungszyklen ausführen, um die Daten zu bearbeiten. Dies
steigert den Verarbeitungs-Overhead und reduziert die Sicherheit, weil Verschlüsselungsgeheimnisse
mit diesen dazwischen liegenden Stationen geteilt werden müssen.
Benutzer sind es gewohnt, Audio- und Videomultimediadaten im schnellen
Vorlauf, Rücklauf und mit zufälligem Zugriff abzuspielen. Ein ideales
DRM-System sollte dem Benutzer diese Möglichkeiten nicht vorenthalten. Das
bedeutet, dass ein Verschlüsselungsalgorithmus, der in DRM verwendet wird,
in der Lage sein sollte, zufälliges Abspielen innerhalb von Ketten-verschlüsselten
Daten zu handhaben, oder sollte in der Lage sein, für den Fall, dass die Daten
für ein zufälliges Zugreifen nicht Ketten-verschlüsselt sind, eine
Sicherheitsverletzbarkeit durch ein "Lexikon" und andere Attacken auf die Verschlüsselung
zu verhindern.
Während es viele Verschlüsselungsalgorithmen gibt, die für
nicht-skalisierbare Multimediaformate gedacht sind, sind nur wenige speziell für
skalierbare Multimediaformate entwickelt. Wee, et al., hat ein sicheres skalierbares
Streaming-Schema (SSS-Schema) vorgeschlagen, das Transcoding ohne Entschlüsselung
erlaubt (S.J. Wee und J.G. Apostolopoulos, "Secure Scalable Streaming Enabling Transcoding
Without Decryption", IEEE Int. Conf. Image Processing, 2001, Vol. 1, S. 437–440).
Für MPEG-4-FGS verschlüsselt der Ansatz Videodaten sowohl in Basis- als
auch Erweiterungslayern, ausgenommen der Kopfdaten (header data). Hinweise für
RD-optimale (rate distortionoptimal – Ratenverformungsoptimale) Trennpunkte
müssen in die unverschlüsselten Header (Datenköpfe) für eine
dazwischen liegende Station eingefügt werden, um eine RD-optimale Bitratenreduzierung
durchzuführen. Die Verschlüsselungsgranularität hängt von der
Art und Weise, wie ein Videodatenstrom verpackt (packetized) ist, ab. Genauer gesagt,
wird die Verschlüsselung auf jedes Paket angewendet. Keine Veränderungen
der Paketgröße sind erlaubt, nachdem die Verschlüsselung durchgeführt
wurde. SSS schützt skalierbare Medien als einen einzelnen Zugriffslayer.
Grosbois und andere schlagen ein skalierbares Authentifizierungs-
und Zugriffskontrollschema für den Bildkomprimierungsstandard JPEG 2000 vor.
(Raphael Grosbois, Pierre Gergelot und Touradj Ebrahimi, "Authentication and Access
Control in the JPEG 2000 compressed domain" (Authentifzierungs- und Zugriffskontrolle
in dem JPEG-2000-komprimierten Bereich), Proc. des SPIE 46. jährlichen Meetings,
Applications of Digital Image Processing XXIV (Anwendungen der digitalen Bildverarbeitung
XXIV), San Diego, 2001). Es basiert auf Veränderungen und dem Einfügen
von Informationen in dem Bitdatenstrom. Ein verschlüsselter (keyed) Hashwert
wird verwendet, um eine pseudozufällige Sequenz zu erzeugen, die verwendet
wird, um die Zeichen der Hochfrequenz-Band-Wavelet-(Wellen)-Koeffizienten pseudozufällig
zu vertauschen. Eine geschichtet (layered) Zugriffsstruktur erlaubt eine Anpassung
auf verschiedene Anwendungen. Eine ihrer größten Nachteile ist das Einfügen
von zusätzlichen Informationen, um die Entschlüsselung zu unterstützen,
was die Komprimierungseffizienz reduziert.
EP-A-1 189 432 bezieht sich auf das Verteilen eines elektronischen
Datensatzes von vorbestimmtem Inhalt, wobei der elektronische Datensatz in eine
Vielzahl von Dateien geteilt wird. Des Weiteren repräsentiert jede dieser Dateien
oder jede ausgewählte Kombination der Dateien eine Version des Inhalts, die
ein unterschiedliches Qualitätslevel aufweist als irgendeine andere Datei oder
ausgewählte Kombination an Dateien. Wenn ein Benutzer ein bestimmtes Werk auswählt,
übermittelt der Anbieter die gesamte Reihe an Dateien zu dem Benutzer, wobei jede
Datei mit einem bestimmten symmetrischen Schlüssel verschlüsselt ist.
Als Antwort auf die Auswahl einer spezifischen Version der Arbeit, verschlüsselt
und übermittelt der Anbieter nur den Schlüssel oder die Schlüssel,
die benötigt werden, um diese Version mit dem Schlüssel, der für
den Benutzer spezifisch ist, zu dekodieren. Eine höhere Qualitätsversion
der Arbeit kann durch einfaches Abfragen und Empfangen der Schlüssel erlangt
werden, die benötigt werden, um diese Version zu dekodieren, weil der Benutzer
die Dateien für jede Version hat.
EP-A-0 766 471 bezieht sich auf eine Übertragungs- und eine Empfangs-Vorrichtung,
die für Bezahl-TV-Übertragungen nützlich sind. Die Übertragungsvorrichtung
führt einen Kodierungsprozess durch das Teilen eines Videosignals von einer
Quelle in zwei Layer aus, kodiert diese und gibt Layerdaten mit geringer Qualität
und Layerdaten mit hoher Qualität aus. Eine Verschlüsselungseinheit verschlüsselt
die Layerdaten mit hoher Qualität, welche des Weiteren mit den Layerdaten mit
geringer Qualität kombiniert werden und die als synthetisierte Daten ausgegeben
werden. Außerdem kann die Verschlüsselungseinheit ein Geheimnislevel aus
der Komplexität des Verschlüsselungsschemas, der Länge des Verschlüsselungsschlüssels
und der Anzahl der zu wiederholenden Verschlüsselungen ermitteln, und verschlüsselt
entweder die Layerdaten mit geringer Qualität und/oder die Layerdaten mit hoher
Qualität. Die Empfangsvorrichtung trennt die synthetisierten Daten und entschlüsselt
die verschlüsselten Layerdaten. Wenn die Entschlüsselung fehlschlägt,
können nur die unverschlüsselten Layerdaten mit geringer Qualität
evaluiert werden und als ein Videosignal wiederhergestellt werden. Zusätzlich
wird für den Fall von verschlüsselten Layerdaten mit geringer Qualität,
wenn das Entschlüsseln fehlschlägt, ein Videosignal eines blauen Hintergrundbildschirms
entsprechend einem Nulleingang ausgegeben.
US-B-6 351 491 bezieht sich auf eine Vorrichtung und ein Verfahren
zum Optimieren der Ratenkontrolle für multiskalierte Entropieverschlüsselung.
Neben anderem wird ein Bitstrom beschrieben, der so konstruiert ist, dass die Informationen,
die räumliche Auflösungen eines Eingangsbildes darstellen, verschiedenen
Teilen des Bitdatenstromes entsprechen.
US 6,392,705 B1 bezieht sich auf
das Komprimieren und über ein Netzwerk liefern von skaliert-formatierten Multimediadaten,
z. B. Stand- und Videobildern, Sprache und Musik.
Wee, S.J. und andere, "Secure scalable streaming enabling transcoding
without decryption" (Sicheres skalierbares Streaming, das Transcoding ohne Entschlüsselung
erlaubt), Proceedings 2001 International Conference an Image Processing, Thessaloniki,
Griechenland, 7. Oktober 2001, bezieht sich auf ein Verfahren für sicheres,
skalierbares Streaming (SSS), das ein gering komplexes und hochqualitatives Transcoding
ermöglicht, um an einem zwischenliegenden, möglicherweise nicht vertrauenswürdigen,
Netzwerkknoten durchgeführt zu werden, ohne die End-zu-End-Sicherheit des Systems
zu kompromittieren.
EP 1 271 280 bezieht sich auf eine sichere
Videokarte in einem Computergerät, die ein digitales Rechtemanagementsystem
(DRM-System) aufweist, und bezieht sich auf eine Architektur zum Durchsetzen von
Rechten in digitalem Inhalt.
KURZFASSUNG
Es ist die Aufgabe der Erfindung, eine größere Flexibilität
für die Benutzer eines verteilten Systems für skalierbaren Multimediainhalt
bereitzustellen.
Diese Aufgabe wird durch die vorliegende Erfindung, wie in den unabhängigen
Ansprüchen beansprucht, gelöst.
Bevorzugte Ausführungsformen sind durch die abhängigen Ansprüche
definiert.
Eine beispielhafte digitale Rechtemanagementmaschine und in Beziehung
stehende Verfahren teilen einen Multimediainhalt in Service-Levellayer, verschlüsseln
mindestens einige der Layer und bieten Zugriff auf die verschlüsselten Layer
durch Genehmigung.
Der Multimediainhalt kann geschichtet (layered) sein, durch das gleichzeitige
Verwenden mehrerer unterschiedlicher Schichtungsansätze, und ein Zugriff auf
die unterschiedlichen Layertypen kann gleichzeitig angeboten werden. Einer der Layer
kann unverschlüsselt bleiben, um ein freies Durchstöbern von Serviceleveln
mit geringer Qualität zu erlauben. Der beispielhafte Gegenstand ist speziell
für digitales Rechtemanagement von MPEG-4-FGS-Bitstrom-SMART und -SMART++-audiovisuellen
Darstellungen und anderen streambaren und skalierbaren Multimediadaten zuträglichen.
Zwei exemplarische Typen an Servicelevellayern sind Spitzensignal-Rausch-Verhältnislayer
und Bitratenlayer. Die Layer können unter Verwendung eines separaten Schlüssels
für jeden Layer verschlüsselt werden, und Rechte an einem Schlüssel
können durch Erlaubnis gewährt werden. Zum Beispiel kann Ratenformung
während des Transkodierens durch dazwischenliegende Netzwerkeinheiten ohne
Entschlüsseln der Layer durchgeführt werden. Der Besitz eines Schlüssels
für ein höheres Servicelevel schließt üblicherweise
Schlüssel für geringere Level ein, oder Schlüssel für geringe
Servicelevel können von einem Schlüssel für höhere Servicelevel
erlangt werden, aber nicht umgekehrt. Dies erlaubt es einem Benutzer, nur einen
Unterschied zwischen Qualitätsleveln herunterzuladen, was Zeit und Ressourcen
spart, als das erneute Herunterladen des gesamten Multimediadatenstroms.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
1 ist eine grafische Darstellung eines exemplarischen
Multimediadatenstroms, der in zwei Layer geteilt ist.
2 ist ein Blockdiagramm einer exemplarischen Netzwerkumgebung
zum Ausführen des Gegenstandes (subject matter).
3 ist ein Blockdiagramm einer exemplarischen digitalen
Rechtenmanagementmaschine.
4 ist eine grafische Darstellung eines exemplarischen
Segmentschlüssels für exemplarische Qualitätslayer, gemäß
einem Aspekt des Gegenstandes.
5 ist ein Flussdiagramm eines exemplarischen digitalen
Rechtemanagementverfahrens.
6 ist ein Flussdiagramm eines anderen exemplarischen
digitalen Rechtemanagementverfahrens.
7 ist eine diagrammatische Darstellung eines exemplarischen
Vergleiches von Bitraten-Serviceleveln.
8 ist eine diagrammatische Darstellung eines exemplarischen
Vergleiches von Spitzensignal-Rausch-Verhältnis-Serviceleveln.
9 ist eine Reihe von exemplarischen Videobildern, die
sich durch die Spitzensignal-Rausch-Verhältnis-Servicelevel, die in
8 gezeigt sind, ergeben.
DETAILLIERTE BESCHREIBUNG
Überblick
Der Gegenstand schließt eine beispielhafte digitale Rechtemanagementmaschine
(digital rights management engine – DRE) und in Beziehung stehende DRM-Verfahren
für einen Multimediainhalt unter Verwendung allgemeiner, skalierbarer Audio-/Video-Kodierungs-
oder bestimmter Kodierungsschemata, wie z. B. MPEG-4-FGS, SMART und SMART++. Der
Gegenstand erzeugt in einer Implementierung einen skalierbaren, verschlüsselten
Multi-Layer-Datenstrom, der mehrere Zugriffslayer erlaubt. In einer exemplarischen
Implementation ist der Datenstrom ein skalierbarer Multi-Layer-FGS-verschlüsselter
Datenstrom, "SMLFE-Datenstrom", welcher hier als ein Beispiel verwendet wird. Obwohl
hier ein SMLFE-Datenstrom als ein Beispiel verwendet wird, betrifft der Gegenstand
auch Inhalt unter Verwendung allgemeiner skalierbarer Audio- und/oder Videokodierung.
Ein SMLFE-Datenstrom kann das freie Durchstöbern eines Basislayervideos
mit geringer Qualität (verschlüsselt oder nicht verschlüsselt) erlauben
und zu derselben Zeit den Zugriff auf erweiterte Layerdaten über verschiedene
Qualitätslayer steuern, wobei jeder einem Servicelevel entspricht. Qualität,
wie sie hier verwendet wird, bedeutet ein Level von visueller und/oder Audio (wahrnehmender)-Auflösung
und Detail, das in einem Bild und/oder Sound ersichtlich ist, oder mit anderen Worten,
die wahrgenommene Wiedergabetreue (fidelity) eines Bildes und/oder Sounds zu dem
originalen, nicht kodierten Gegenstand. Üblicherweise werden mehr Daten benötigt,
um ein Bild und Sound mit höherer Qualität bereitzustellen.
Verschiedene Benutzer können verschiedene Qualitätsbedürfnisse
mit Bezug auf denselben Videodatenstrom haben. Eine virtuelle Tour von dem Inneren
eines Hauses kann z. B. durch einen Benutzer als eine "Traumhaus"-Präsentation
für eine Gruppe von Investoren und Architekten verwendet werden. Obwohl die
Version des Videos mit hoher Wiedergabetreue (high fidelity) mit Ausgaben verbunden
sein kann, ist die Qualität des Videos die Hauptsache für diesen Benutzertyp.
Dasselbe Video kann durch einen Baustellenarbeiter auf einem simplen tragbaren Datenübertragungsgerät
abgespielt werden, um Wände in dem Haus zu lokalisieren. Solch ein Benutzer
kümmert sich nicht um die hohe Wiedergabetreue, und ist mehr auf das Empfangen
eines Minimums an Videodaten interessiert, um die Herunterladezeit zu reduzieren.
In einer MPEG-4-FGS-Implementierung ist das exemplarische DRM-Verfahren
skalierbar: z. B. kann ein Benutzer, der einen Teil eines SMLFE-Datenstromes mit
einem geringen Servicelevel empfängt, sich entscheiden, das Video mit einem
höheren Servicelevel anzusehen und kann einfach einen Datenstrom, der den Unterschied
zwischen zwei Serviceleveln umfasst, herunterladen, um ihn mit dem geringeren Serviceleveldatenstrom
zu kombinieren. Wenn ein Benutzer bereits alle verschlüsselten Inhalte (wie
z. B. von einer CD oder DVD) erlangt hat, kann dies durch einfaches Kaufen und Herunterladen
des Schlüssels für das höhere Servicelevel ausgeführt werden.
Exemplarische DRM-Verfahren sind schnell und bieten eine robuste Handhabung von
Übertragungsfehlern und Paketverlusten, weil die exemplarische
Verschlüsselung, die hier beschrieben ist, die Bildqualität nicht degradiert.
Dies ist so aufgrund einer exemplarischen Verschlüsselungsstruktur, die Verschlüsselungszellen
mit MPEG-4-FGS-Videopaketen ausrichtet (aligns).
Die exemplarischen DRE und in Beziehung stehenden DRM-Verfahren bieten
Zufallszugriff, schnellen Vorlauf und Rückwärtsabspielen, flexible Qualitätssteuerung
und andere ratenformenden Funktionen, ohne das Video entschlüsseln zu müssen.
Sicherheit wird dadurch bereitgestellt, dass Verschlüsselungsgeheimnisse nicht
mit dazwischen liegenden (z. B. Netzwerk-) Stationen während des Lieferns eines
SMLFE-Datenstroms von dem Inhaltebesitzer zu dem Benutzer geteilt werden müssen.
Beispielhafte DRM-Verfahren sind auch auf viele andere skalierbare Multimedia-Codecs
anwendbar.
Aspekte des Gegenstandes können zu dem aktuellen MICROSOFT®-DRM-für-WINDOWS-MEDIATM-Format
und anderen skalierbaren Formaten, die durch WINDOWS® unterstützt
werden, hinzugefügt werden. Der Gegenstand kann ebenso für das IPMP (Intellectual
Property Management and Protection – Management und Schutz von geistigem
Eigentum) von MPEG-4 verwendet werden.
Qualitätslayer
Wie es in 1 gezeigt wird, ist ein Multimediadatenstrom,
wie z. B. ein MPEG-4-FGS-Datenstrom, der als ein exemplarischer SMLFE-Datenstrom
100 unter Verwendung von verschiedenem, vorgelegtem Gegenstand verschlüsselt
worden ist, in einen Basislayer 102 und einen Erweiterungslayer
104 geteilt. Der Erweiterungslayer wird in verschiedene Level geteilt,
die Qualitätslayer 106, 108, 110 und 112
genannt werden, die verwendet werden, um einem Benutzer, der den exemplarischen
SMLFE-Datenstrom 100 empfängt, einen schichtweisen Zugriff (layered
access), d. h. "Servicelevel", bereitzustellen. Ein beispielhafter SMLFE-Datenstrom
100 schließt Servicelevelteilungen basierend sowohl auf einem Spitzensignal-Rausch-Verhältnis
(peak signal-to-noise ratio – PSNR) (ähnlich zu variablem Bitratenkodieren)
als auch auf der Bitrate (ähnlich zu konstantem Bitratenkodieren) ein, auf
die gleichzeitig zugegriffen werden kann. Derselbe exemplarische SMLFE-Datenstrom
100 kann zeitgleich in verschiedene Typen von Qualitätslayern geteilt
werden, d. h. unterschiedliche Qulaitätslayerschemata können auf demselben
exemplarischen SMLFE-Datenstrom 100 zugleich arbeiten. Zum Beispiel kann
ein Inhalteanbieter, der digitales Rechtemanagement (DRM) auf einen Videoinhalt
ausüben möchte, entscheiden, den SMLFE-Inhalt gemäß den PSNR-Layern
und Bitraten-Layern zu teilen (to layer), und kann diese zwei Layer-Schemata simultan
auf demselben SMLFE-Inhalt implementieren. Der Inhaltebesitzer kann des Weiteren
festlegen, wo die Grenzen zwischen den PSNR-Layern (d. h. PSNR-Serviceleveln) und
zwischen den Bitratenlayern (d. h. Bitratenserviceleveln) basierend auf audiovisuellen
Charakteristiken des SMLFE-Inhalts und auf Geschäftsbedürfnissen gezogen
werden sollen. Andere Typen an Qualitätslayern (d. h. Serviceleveln) können
verwendet werden, wie z. B. Frame-Größen-Qualitätslayer (jeder Qualitätslayer
kann eine Framegröße sein), Frame-Raten-Qualitätslayer (jede Frame-Rate
ist ein Layer), Farbtiefenqualitätslayer (jede Farbtiefe ist ein Layer), Menge
an Kanal-Qualitätslayern (jeder Kanal ist ein Layer), Sample-Raten-Qualitätslayer
(jede Samplingrate ist ein Layer), Bandbreitenqualitätslayer (ein volles Spektrum
wird in Frequenzbänder geteilt und jedes Band kann ein Layer sein), Audio-Sample-Auflösungsqualitätslayer
(jede Samplegröße von 8 oder 16 oder 24 Bits, die jedes Audiosample darstellen,
kann ein Layer sein), etc. Alle diese Typen an Qualitätslayern und noch mehr
können miteinander oder mit den oben beschriebenen PSNR- und Bitraten-Typ-Qualitätslayern
kombiniert werden, um simultane Qualitätslayerschemata innerhalb desselben
Mediainhalts zu machen.
In einer Implementierung des Gegenstandes sind die PSNR-Servicelevel
eine gewünschte Wahl, wenn ein geschichteter Zugriff auf die Qualitätslayer
106, 108, 110 und 112 im Hinblick auf Bitqualität
bereitgestellt werden sollen, obwohl PSNR nicht dafür bekannt ist, eine gute,
oder zumindest lineare, Metrik von einer Bildqualität zu sein. Wenn der SMLFE-Datenstrom
100 über ein Netzwerk gesendet werden soll, können jedoch Servicelevelteilung
ebenso durch Bitraten (d. h. der Bitratenservicelevel) hergestellt werden. Exemplarische
DREs und in Beziehung stehende Verfahren unterstützen sowohl PSNR-Servicelevel
als auch Bitratenservicelevel, die zeitgleich dieselben Qualitätslayer
106, 108, 110 und 112 verwenden. Ein exemplarischer
SMLFE-Datenstrom 100 erlaubt sowohl die dynamische Servicelevelermittlung
als auch das Ratenformen auf Video-Chiffriertext (rate shaping on video ciphertext)
direkt, ohne Entschlüsselung der Qualitätslayer. Deshalb kann während
einer Realtimeverarbeitung ein dazwischen liegender verarbeitender Server dynamisch
von dem Chiffriertext den Typ des Servicelayers, der verwendet werden soll (PSNR
oder Bitrate), ermitteln, ohne den Datenstrom zu entschlüsseln.
Die exemplarischen Qualitätslayer 102, 104,
106 und 108 des MPEG-4-FGS-Erweiterungslayers 104 sind
jeweils mit unterschiedlichen Verschlüsselungsgeheimnissen verschlüsselt,
z. B. ein Schlüssel, und in einer Implementierung bleibt der Basislayer unverschlüsselt
und wird frei auf einem öffentlichen Datenträger, wie z. B. dem Internet,
verteilt. In einer anderen Implementierung wird der verschlüsselte Inhalt aller
Layer in der Öffentlichkeit frei verteilt, aber weil der gesamte Inhalt mit
Ausnahme des Basislayers verschlüsselt ist, werden Schlüssel
zum Zugreifen auf die verschlüsselten Layer gewährt. Verschlüsselung
kann zu derselben Zeit wie das skalierbare Kodieren gemacht werden. Das tatsächlich
an einen Benutzer gelieferte Servicelevel wird zu einem späteren Zeitpunkt
nach dem Verschlüsselungsprozess entschieden.
Der Gegenstand erlaubt höheren Serviceleveln, auf die Daten von
geringeren Serviceleveln zuzugreifen, aber nicht umgekehrt. Wie bereits erwähnt,
wenn ein Benutzer sich entscheidet, von einem geringeren Servicelevel auf ein höheres
Servicelevel zu erweitern, braucht der Benutzer nur den Unterschied zwischen dem
geringen und dem höheren Qualitätslevel herunterzuladen. Für den
beispielhaften SMLFE-Datenstrom 100, mit fünf Qualitätslayern
106, 108, 110 und 112, zusätzlich zu dem
Basislayer 102, gibt es zehn mögliche Downloads, die durchgeführt
werden könnten, um einem Benutzer ein Heraufstufen der Servicelevel zu bieten,
ohne den gesamten exemplarischen SMLFE-Datenstrom 100 herunterladen zu
müssen. Zum Beispiel, wenn ein Benutzer bereits die Genehmigung zum Zugreifen
auf Qualitätslayer-Nr. drei, 110, hat, dann müsste der Benutzer,
um auf das nächsthöhere Servicelevel zuzugreifen, nachdem er die Erlaubnis,
dies zu tun, erlangt hat, nur Daten herunterladen, die den Unterschied
114 zwischen dem Qualitätslayer-Nr. vier, 112, und dem Qualitätslayer-Nr.
drei, 110, darstellen. Ähnliche Downloads können für das
Heraufstufen von einem Layer zwischen den anderen Serviceleveln gemacht werden,
d. h. Unterschiede 116, 118 und 120. Das Heraufstufen
um zwei Servicelevel höher bedingt das Herunterladen von etwas mehr Daten,
wie es durch die Unterschiede 122, 124 und 126 zwischen
geringen Serviceleveln und Qualitätslayern um zwei Servicelevel höher
gezeigt ist. Die herunterzuladende Menge an Daten für ein Heraufstufen um zwei
Servicelevel ist immer noch viel weniger als das Herunterladen des gesamten beispielhaften
SMLFE-Datenstroms 100. Natürlich wird die Herunterladezeit und -ressourcen
ebenso für Hochstufungen von einem ersten Qualitätslayer zu einem Qualitätslayer
um drei Servicelevel höher gespart, wie es durch die Unterschiede
128 und 130 gezeigt ist. Ebenso benötigt ein Heraufstufen
von dem Basislager 102 zu dem höchsten Qualitätslayer-Nr. vier,
112, ein Herunterladen von Daten gleich dem Unterschied 132, aber
dies ist immer noch weniger als das Herunterladen des gesamten exemplarischen SMLFE-Datenstroms
100, welches das Herunterladen des Basislayers 102 wieder einschließen
würde.
In einer Implementierung, wie bereits erwähnt, kann der Basislayer
102 ohne Verschlüsselung zum freien Durchstöbern von Videodatenströmen
mit geringer Qualität dargelegt werden. Dies ist für Aktivitäten,
wie z. B. Sampling eines Videos, hilfreich, bevor eine Pay-per-View (Bezahlen pro
Anschauen)-Präsentation des Videos gekauft wird, oder für das Durchführen
einer inhaltebasierenden Suche auf den unverschlüsselten Basislayerdaten
102, ohne irgendeinen der höheren Qualitätslayern 106,
108, 110 und 112 entschlüsseln zu müssen.
Verschiedene dargelegte Gegenstände verhindern einen überkreuzten
Zugriff verschiedener Typen von Services durch denselben Benutzer, d. h. Zugriff
auf ein PSNR-Servicelevel ermöglicht keinen Zugriff auf Bitratenservicelevel
und umgekehrt, obwohl alle verschlüsselten Daten für einen Benutzer verfügbar
sein könnten.
Beispielhafte DRM-Umgebung
2 zeigt eine beispielhafte Implementation des Gegenstandes
über eine exemplarische Netzwerkumgebung 200. Die Netzwerkumgebung
200 schließt ein Inhalteliefersystem 202 ein, das eine exemplarische
DRE 204 einschließt, die kommunikativ zu einem Netzwerk, wie z. B.
dem Internet 206, gekoppelt ist. Ein Lizenz- und Gebührenserver
208, der ebenso eine exemplarische DRE 204 einschließt, ist
ebenso mit demselben Netzwerk, z. B. dem Internet 206, kommunikativ gekoppelt.
Die exemplarische DRE 204 in dem Inhaltelieferserver 202 kann
mit der beispielhaften DRE 204 in dem Lizenz- und Gebührenserver
208 kommunikativ gekoppelt sein, oder alternativ kann die exemplarische
DRE 204 in dem Lizenz- und Gebührenserver 208 ein Remote-Teil
(abgelegener Teil) der exemplarischen DRE 204 in dem Inhaltelieferserver
202 sein. Die Netzwerkumgebung 200 schließt auch verschiedene
Benutzer 210, 212, 214 und 216 ein, die direkt
oder indirekt mit dem Netzwerk, d. h. dem Internet 206, kommunikativ gekoppelt
sind. Durch das Gekoppeltsein mit dem Internet 206 ist jeder Benutzer dadurch
mit dem Inhalteliefersystem 202 und dem Lizenz- und Gebührenserver
208 kommunikativ gekoppelt. Die exemplarische DRE 204 in dem Inhalteliefersystem
202 produziert in dieser Implementation einen exemplarischen SMLFE-Datenstrom
100.
Ein "Superverteilungs"-Modell wird in dem Kontext für diese Netzwerkumgebung
200 verwendet, obwohl der Gegenstand ebenso mit anderen Verteilungsmodellen
verwendet werden kann. In einem Superverteilungsmodell wird Videoinhalt verschlüsselt
und der Inhaltebesitzer sendet den verschlüsselten Inhalt an das Inhalteliefersystem
202 zur freien Verteilung und zum Herunterladen 218. Wenn ein
Benutzer 210, 212, 214 oder 216 auf ein bestimmtes
Servicelevel zugreifen möchte, das durch den exemplarischen SMLFE-Datenstrom
100 bereitgestellt wird, frägt der Benutzer eine Erlaubnis zum Zugreifen
auf das gewünschte Servicelevel ab. Entsprechende Rechtebeschreibungen und
Schlüssel zum Zugreifen auf einen bestimmten Qualitätslayer des verschlüsselten
Inhalts werden zu einem Benutzer gesendet, der z. B. eine Lizenz
für diesen Layer bezieht. Der Benutzer zahlt üblicherweise eine Gebühr
und lädt die gewünschte Lizenz von dem Lizenz- und Gebührenserver
208 herunter. Bevor er die Entscheidung zum Kaufen einer Lizenz für
ein bestimmtes Servicelevel macht, kann der Benutzer den freien geringsten Qualitätsbasislayer
102 ansehen. Nach dem Beziehen einer Lizenz für ein bestimmtes Servicelevel
lädt der Benutzer den entsprechenden oder zusätzlichen verschlüsselten
Inhalt herunter oder streamt ihn und genießt die Multimediadaten.
Der Benutzer Nr. eins, 210, möchte einen Teil eines
Filmvideos zum schnellen Durchsehen auf dem Display eines Mobiltelefons. Das Mobiltelefon
hat eine begrenzte Bandbreite und ein Display mit geringer Auflösung. Deshalb
lädt der Benutzer Nr. eins, 210, den freien Basisqualitätslayer
102 von dem exemplarischen SMLFE-Datenstrom 100 herunter. Der
Basisqualitätslayer 102 bietet nur ein Video mit geringer Auflösung,
aber das ist soviel, wie das Mobiltelefon handhaben kann. Außerdem weist der
Basisqualitätslayer 102 viel weniger Daten zum Herunterladen auf als
die höheren Qualitätslayer 106, 108, 110 und
112 und benötigt in dieser Implementation keine Lizenz oder Gebühr.
Dies ist ideal für den Benutzer Nr. eins, 210.
Benutzer Nr. eins, 210, ruft Benutzer Nr. zwei,
212, auf dem Mobiltelefon an und lobt den Film. Der Benutzer Nr. zwei,
212, frägt eine Lizenz 220 für ein höheres Servicelevel
als den Basisqualitätslayer 102, der durch den Benutzer Nr. eins,
210, gesehen wurde, ab, um ein Video mit besserer Qualität zu genießen,
und erteilt einen Auftrag an den Lizenz- und Gebührenserver 208. Der
Benutzer Nr. zwei, 212, ordert den Qualitätslayer Nr. zwei,
108, oder mit anderen Worten das zweite Servicelevel. Der Lizenz- und Gebührenserver
208 verlangt eine Gebühr für das Servicelevel Nr. zwei und sendet
den/die Schlüssel 222 für den Qualitätslayer Nr. zwei,
108.
Ein Benutzer Nr. drei, 214, hat ebenso die Version mit geringer
Auflösung des Videos gesehen, das er auf seinem Heimcomputer heruntergeladen
hat, und möchte nun den gesamten Film auf einem guten Bildschirm sehen. Nachdem
er von den Spezialeffekten in dem Film gehört hat, möchte der Benutzer
drei, 214, eine sehr gute Videoqualität haben. Der Benutzer Nr. drei,
214, frägt eine Lizenz 224 für ein Servicelevel Nr.
drei ab, d. h. Qualitätslayer Nr. drei, 110, des exemplarischen SMLFE-Datenstroms
100. Der Lizenz- und Gebührenserver 208 sendet den Benutzer
Nr. drei, 214, den/die Schlüssel 226 für den Qualitätslayer
Nr. drei, 110.
Ein Benutzer Nr. vier, 216, der videophil ist, besitzt nur
das beste Videoequipment und möchte eine Vorführung des Filmes für
seinen videophilen Club machen. Der Benutzer Nr. vier, 216, hat bereits
den gesamten Film auf einem Servicelevel Nr. eins angesehen und möchte nun
eine Lizenz 228 für das höchste Servicelevel, Qualitätslayer
Nr. vier, 112. Der Lizenz- und Gebührenserver 208 sendet
dem Benutzer Nr. vier, 216, den/die Schlüssel 230 für
einen Zugriff auf das Servicelevel Nr. vier zum Genießen der besten Videoqualität.
Weil der Benutzer Nr. vier, 216, bereits ein Servicelevel Nr. eins hat,
braucht er nur den Unterschied zwischen dem Qualitätslayer Nr. vier,
112, und dem Qualitätslayer Nr. eins, 106, herunterzuladen.
In manchen Implementationen können alle Benutzer 210,
212, 214, 216 alle verschlüsselten Layer des exemplarischen
SMLFE-Datenstroms 100 herunterladen, aber haben nur eine Erlaubnis zum
Entschlüsseln jener Layer, die für sie lizensiert sind. Alle verschlüsselten
Layer können ebenso durch eine CD, DVD oder anderen Speicherdatenträger
anstatt des Herunterladens verteilt werden. In anderen Implementationen, wie z.
B. der einen, die mit Bezug auf 2 beschrieben wurde,
werden jedem Benutzer nur die für ihr lizensiertes Servicelevel relevanten
Daten, d. h. ein Minimum an Daten, gesendet. Dies spart Zeit und Ressourcen. Für
den Fall des Streamings von Daten für ein höheres Servicelevel kann der
Benutzer den Streamingserver informieren, nur die benötigten Daten zu senden
(die zugreifbaren Daten unter der erlangten Lizenz). In manchen Implementationen
können verschlüsselte Daten an einen Benutzer durch unterschiedliche Quellen
heruntergeladen werden, wie z. B. unterschiedliche Inhaltelieferserver, unterschiedliche
Benutzer in einem Peer-zu-Peer-Netzwerk oder eine Kombination von Inhaltelieferservern
und -benutzern.
Exemplarische digitale Rechtemaschine (Digital Rights Engine – DRE)
3 zeigt eine exemplarische DRE 204 aus
2 in größerem Detail. In einer Implementierung
hat die exemplarische DRE 204 einen Servicelevelgenerator 302,
einen Servicelevelverschlüsseler 304, einen bimodalen Servicecontroller
306 und einen Servicelevelzugriffsgeber (grantor) 308, die kommunikativ
mit der Steuerungslogik 310, wie dargestellt, gekoppelt sind. Der Servicelevelverschlüsseler
304 schließt des Weiteren eine Verschlüsselungsmaschine
312 und einen Schlüsselgenerator 314 ein. Der bimodale Servicecontroller
306 schließt des Weiteren einen PSNR-Servicecontroller 316
und einen Bitratenservicecontroller 318 ein. Der Servicelevelzugriffsgeber
308 schließt des Weiteren einen Schlüsselverteiler
320 ein. Natürlich zeigt 3 nur eine exemplarische
Konfiguration der exemplarischen DRE 204. Eine andere Konfiguration ist
ein einzelner Servicecontroller anstatt des bimodalen Controllers in 306.
In manchen Implementationen kann der Erweiterungslayer verschiedene unterschiedliche
Typen von Erweiterungsdaten enthalten, um die unterschiedlichen
Qualitätslayertypen oder Qualitätslayerschemata zu ermöglichen, wie
z. B. Frame-Größenskalierbarkeit, Frame-Ratenskalierbarkeit, Bitratenskalierbarkeit,
etc. und jeder Typ an Qualitätslayer in den Erweiterungsdaten kann mit einem
Servicecontroller assoziiert werden. Der Gegenstand zieht auch viele andere Konfigurationen,
die exemplarische DRM-Verfahren ausführen, in Betracht.
Die exemplarische DRE 204 empfängt einen MPEG-4-FGS-Bitdatenstrom
322, der einen Basislayer 102 und einen Erweiterungslayer
104 aufweist. In einer Implementation, in der der Basislayer
102 nicht verschlüsselt wird, kann der Basislayer 102 durch
die exemplarische DRE 204 unverändert durchgeleitet werden, aber kann
als ein Referenzdatenstrom für die Qualitätslevel, die von dem Erweiterungslayer
104 verschlüsselt werden, dienen. Der Servicelevelgenerator
302, der den Erweiterungslayer 104 zum Verschlüsseln in Servicelevel
teilt, empfängt die Komponente des Erweiterungslevels 104 des MPEG-4-FGS-Bitdatenstroms
322. Der MPEG-4-FGS-Bitdatenstrom 322 wird in Videopakete gruppiert,
die üblicherweise durch Resynchronisationsmarkierungen (die im Folgenden vp_markers
genannt werden) getrennt werden. Ein Bitebenenstartcode fgs_bp_start_code in dem
Erweiterungslayer 104 dient ebenso als eine Resynchronisationsmarkierung
zur Fehlerausfallsicherheit. Sowohl die Resynchronisierungsmarker als auch der Bitebenenstartcode
werden hier als vp-markers bezeichnet, weshalb die Daten, die durch vp-markers getrennt
werden, ein Videopaket genannt werden. Die Länge eines Videopaketes in MPEG-4-FGS
basiert nicht auf der eingeschlossenen Anzahl an Makroblöcken, aber stattdessen
auf der Anzahl von Bits, die in diesem Paket enthalten sind (d. h. die Videopakete
sind mit den Makroblöcken abgestimmt, oder "makroblockabgestimmt"). Jedes Videopaket
ist eine Verschlüsselungszelle, die unabhängig verschlüsselt wird.
Headers, sowie vp-markers, werden üblicherweise nicht verschlüsselt.
Der Servicelevelgenerator 302 ermittelt zwei Typen an Serviceleveln
auf einmal. PSNR-Servicelevel werden durch das Auswählen von Gruppen von benachbarten
Bitebenen des Erweiterungslayers 104 ermittelt. Die Gesamtanzahl an Ebenen
kann in t benachbarte Gruppe geteilt werden, um t PSNR-Servicelevel zu bilden. Bitratenservicelevel
werden ebenso durch das Teilen von Erweiterungsdaten eines Frames in m unterschiedliche
Gruppen ermittelt, um m Bitratenservicelevel zu bilden, wobei jedes Bitratenservicelevel
mit der Grenze eines Videopaketes abgestimmt (aligned) ist. Der Erweiterungslayer
104 ist dann in (m × t) gänzlich unterschiedliche Segmente geteilt
worden. Ein Inhaltebesitzer kann irgendein Schema verwenden, um Bitebenen oder Bitraten
(videopaketabgestimmt) zusammen zu gruppieren, um PSNR- und Bitratenservicelevel
zu bilden. Schemata zum Trennen der Erweiterungslayerdaten in PSNR-geschichtete
Servicelevel oder Bitraten-geschichtete Servicelevel sind in der Fachwelt des Videokodierens
gut bekannt, aber ein Schema mit vier gleichen Layern von jedem wird hier als ein
Beispiel verwendet.
Sobald der Servicelevelgenerator 302 die PSNR- und Bitratenservicelevel
ermittelt hat, stellt die exemplarische DRE 204 ein Framework zum Verschlüsseln
dieser PSNR- oder Bitratenlayer unter der Verwendung von Schlüsseln und zum
Lizenzieren der Schlüssel an Benutzer zum Entsperren der Qualitätslevel
des verschlüsselten Inhalts bereit, ohne die Schlüssel an Mittelstationen
zwischen dem Inhaltebesitzer und dem Benutzer enthüllen zu müssen.
In dem exemplarischen Servicelevelverschlüsseler 304
wird jedes Videopaket, wie erwähnt, unabhängig als eine Verschlüsselungszelle
verschlüsselt. Die Größe eines Videopaketes in einem MPEG-4-FGS variiert
von mehreren Hundert Bits zu mehreren Tausend Bits, abhängig von der Übertragungscharakteristik
des verwendeten Übertragungsnetzwerkes. Die Paketgröße ist üblicherweise
klein, wenn das eingesetzte Netzwerk ein kabelloses Netzwerk ist, und kann für
Internetanwendungen groß sein. Die Paketgröße wird zur Komprimierungszeit
ermittelt, aber kann sich zu einem späteren Zeitpunkt ändern. Weil der
Videopakettrenner vp_marker verwendet wird, um die Grenzen einer Verschlüsselungszelle
anzuzeigen, ist üblicherweise keine Veränderung der Videopaketgröße
nach dem Verschlüsseln erlaubt.
In einer Implementation schließt der exemplarische Servicelevelverschlüsseler
304 eine Verschlüsselungsmaschine (Engine) 312 basierend
auf einem gering komplexen Verschlüsselungsalgorithmus nach Jakubowski und
Venkatesan ein, der "C&S-Verschlüsselung" genannt wird, welcher mit manchen
Veränderungen verwendet wird, um jede Verschlüsselungszelle zu verschlüsseln.
(Mariusz H. Jakubowski, Ramarathnam Venkatesan, "The Chain & Sum Primitive and Its
Applications to MACs and Stream Ciphers" (die Ketten- und Summenprimitive und ihre
Anwendungen auf MACs und Datenstromciphers), EUROCRYPT'98, S. 281–293, 1998).
C&S-Verschlüsselung kennzeichnet ein universelles Blockverketten mit Summe,
oder Ketten- und Summenprimitive (C&S als Abkürzung), welches auf die Kombination
von Verschlüsselung und Authentifizierung von Daten angewandt werden kann.
Die Primitive ist eine schwache CBC-Typ-Verschlüsselung, zusammen mit einem
Summierungsschritt, und wird als ein Frontend für Datenstrom-Chiffriertexte
(stream ciphers) verwendet, um Blöcke an Daten in einem Videostrom zu verschlüsseln.
Obwohl die exemplarische Verschlüsselungsmaschine 312 große Mengen
an Daten verschlüsselt, muss die Verschlüsselung nur
einmal angewandt werden, so wie die FGS-Komprimierung, weil in den meisten Fällen
dazwischen liegende Server ihre Arbeiten direkt an dem Chiffriertext durchführen
können. Weil die C&S-Verschlüsselung eine geringe Komplexität hat,
sind die Verschlüsselung und Entschlüsselung schnell. Die Verschlüsselung,
die durch die exemplarische Verschlüsselungsmaschine 312 angewandt
wird, verursacht üblicherweise keine Degradierung der Kompressionseffizienz
oder Aufwandsbelastung.
In anderen Implementationen kann die Verschlüsselungsmaschine
312 einen Frame oder eine Zelle durch das Ersetzen von allen oder einem
Teil des C&S-Schemas mit einem allgemeinen Datenstromcipher, wie z. B. RC4, etc.
oder einem Blockcipher, wie z. B. DES, AES, RC5, etc, in verschiedenen Modi, wie
z. B. ECB-(Electronic Codebook), CBC-(cipher block chaining), oder OCB-(Offset Codebook)-Modi
verschlüsseln.
In dem exemplarischen C&S-Verschlüsselungsalgorithmus wird zur
Beschleunigung die ursprüngliche DES-Verschlüsselung des Vor-MAC (pre-message
authentication code – Nachrichtenauthentifizierungscodes) durch eine RC5-Verschlüsselung
ersetzt. Dieses Verschlüsselungsverfahren vergrößert die Datengröße
nicht. Die exemplarische C&S-Verschlüsselung verwendet einen reversiblen MAC,
um einen Teil der zu verschlüsselnden Daten zu ersetzen. Der MAC-Wert wird
zusammen mit dem Verschlüsselungsschlüssel verwendet, um in einen Datenstromcipher,
wie RC4, gefüttert, um den Rest der Daten zu verschlüsseln (der Vor-MAC,
wie erwähnt, wird durch RC5 verschlüsselt, um den MAC zu bilden). Weil
der MAC reversibel ist, kann der Verschlüsselungsprozess umgekehrt werden,
um den ursprünglichen Klartext zurück zu gewinnen, wenn keine Bitfehler
auftreten. Weil der Datenstromcipherschlüssel sowohl von dem Zellverschlüsselungsschlüssel
als ebenso von einem Hashwert der zu verschlüsselnden Daten abhängt, ist
die Verschlüsselungssicherheit garantiert, d. h., weil der Datenstromcipherschlüssel
sowohl von einem globalen Verschlüsselungsschlüssel als auch dem Hashwert
von den zu verschlüsselnden Daten abhängt, werden Inhalte mit kleinen
Unterschieden in unterschiedliche Chiffriertexte verschlüsselt, selbst wenn
derselbe globale Verschlüsselungsschlüssel wiederholt verwendet wird.
In einer Implementation wird die exemplarische C&S-Verschlüsselung
auf ein Feld von Z(231 – 1) zur Erhöhung der Geschwindigkeit
angewandt. Die Sicherheit für jede Verschlüsselungszelle ist deshalb 262.
Die Verschlüsselungsdetails für eine Zelle können wie folgt beschrieben
werden. Es sollte beachtet werden, dass der Entschlüsselungsprozess die Umkehr
der folgenden Verschlüsselungsschritte ist.
Lassen wir die Verschlüsselungszelle kennzeichnen als
X|xp = x0x1&Lgr;xn|xpGleichung
(1)
wobei xp ein Teilblock ist und "|" eine anhängende Funktion (appending
operation) bedeutet. Lassen wir den Schlüssel für die Zellverschlüsselung
K sein. Zwei lineare Funktionen werden definiert als
f(x) = ax + bGleichung (2)
und
g(x) = cx + dGleichung (3).
Als nächstes wird
C = c0c1&Lgr;cnGleichung (4)
berechnet, wobei
c0 = f(ex0)Gleichung (5)
und
ci = f(ci-1 + exi)Gleichung (6)
für gerade i > 0 verwendet werden, und
ci = g(ci-1 + e'xi)Gleichung (7)
für ungerade i > 0 verwendet wird. Lassen wir
yk = ckGleichung (8)
für
k ≠ n – 1Gleichung (9),
und
yn-1 = &Sgr;nk=0ckGleichung
(10).
sein. Der Vor-MAC wird bezeichnet durch
s = yn – 1ynGleichung (11).
Der Vor-MAC kann als der "Hash"-Wert von x angesehen werden. Dann
wird
s = yn-1ynGleichung (12)
durch seinen Chiffriertext E(s), der unter Verwendung von RC5 mit dem Schlüssel
K für die Zelle verschlüsselt wurde, ersetzt. E(s) wird der MAC-Wert von
x genannt.
Der Chiffriertext der Verschlüsselungszelle wird erlangt als
Z = G(K|s)XOR(y0y1 ... yn-2|xp)Gleichung
(13),
wobei G(s) eine Zufallssequenz ist, die durch RC4 mit dem Eingabeschlüssel
als die Kombination des Verschlüsselungsschlüssels K und des Vor-MAC-Wertes
s erzeugt wird.
Unter Verwendung dieser exemplarischen C&S-Verschlüsselung ist
es für den Videopakettrenner vp_marker möglich, in einem Chiffriertext
zu erscheinen, obwohl die Wahrscheinlichkeit für dieses Auftreten sehr klein
ist. Um diese Möglichkeit der Verwirrung zu vermeiden, kann die folgende Technik
verwendet werden: wenn ein Chiffriertext einen vp_marker emuliert, dann wird der
vp_marker an dem Beginn der Zelle wiederholt, gefolgt von einer feststehenden Anzahl
an Bits, z. B. vierundzwanzig Bits, um die Größe der Verschlüsselungszelle
darzustellen, bevor der Chiffriertext angehängt wird. In anderen Implementationen
werden anstatt des Wiederholens des vp_marker zwei spezielle Marker verwendet, um
den Resynchronisationsmarker und den fgs_bp_start_code zu ersetzen, wobei dies anzeigt,
dass eine Emulierung des vp_markers aufgetreten ist. Dieselbe Technik kann verwendet
werden, wenn der Hamming-Abstand zwischen vp_marker und irgendeinem Vektor in dem
Chiffriertext kleiner als ein Schwellenwert ist. Dies kann eine vp_marker-Emulation,
die durch Bitfehler verursacht wurde, verhindern. Weil die Wahrscheinlichkeit für
solche eine Erscheinung außerordentlich gering ist, ist der Byte-Overhead zum
Implementieren dieser Technik vernachlässigbar.
Das vorher erwähnte C&S-Verschlüsselungsverfahren ist eine
schnelle Technik. Weil die Verschlüsselung nur einmal durch den Inhaltebesitzer
durchgeführt wird, außer für eine Realtime-Komprimierung- und Verschlüsselungsanwendung,
erscheint der Verschlüsselungs-Overhead normalerweise auf der Entschlüsselungsseite.
Der Entschlüsselungs-Overhead ist für die meiste Hardware vernachlässigbar.
In solchen Implementationen kann der Blockcipher RC5 in der C&S-Verschlüsselung
durch andere Block-Cipher, wie z. B. AES, ersetzt werden. RC4 kann ebenso durch
andere Datenstromcipher ersetzt werden. In anderen Implementationen kann die C&S-Verschlüsselung
durch einen Stream-Cipher oder einen Block-Cipher mit CBC oder anderen Modi und
mit passenden Verarbeitungsinstruktionen für einen möglichen Teilblock
ersetzt werden, wenn eine Verschlüsselungszelle verschlüsselt wird.
In einem exemplarischen DRM-Verfahren wird Verschlüsselung nach
der Komprimierung ausgeführt, so dass sie die Komprimierungseffizienz nicht
beeinflusst. Die Daten, die zu dem komprimierten Bitstrom dem Header hinzugefügt
werden, liegen so um die vierundzwanzig Bits für jeden Frame, um die Anzahl
an Videopakten in dem Frame darzustellen, um anzuzeigen, wie Daten in Bitratenservicelevel
geteilt werden, und um Platz dafür bereitzustellen, wenn Chiffriertext einen
vp_marker emuliert. Für ein Video mit normaler Bitrate sind solche hinzugefügten
Bytes vernachlässigbar.
Schlüsselmanagement
Der Servicelevelverschlüsseler 304 schließt ebenso
einen Schlüsselgenerator 314 ein. Der Multimediainhalt kann zeitgleich
in eine Anzahl von Reihen von Serviceleveln geteilt werden, d. h. Reihen von Qualitätslayern.
Jedes Servicelevel (Qualitätslayer) und jede Reihe an Serviceleveln, kann in
einem Schlüsselmanagementschema teilnehmen. Zum Beispiel, vorausgesetzt die
Gesamtanzahl an Bitebenen eines exemplarischen FGS-Multimediainhalts ist in t benachbarte
Gruppen durch den beispielhaften Servicelevelgenerator 302 geteilt worden,
um t PSNR-(oder andere Typen von)Servicelevel(n) zu bilden. Erweiterungsdaten eines
Frames sind ebenso in m unterschiedliche Gruppen durch den exemplarischen Servicelevelgenerator
302 geteilt worden, um m Bitraten – (oder andere Typen von) Servicelevel(n)
zu formen, wobei jedes Bitratenservicelevel mit der Grenze der Videopakete ausgerichtet
ist. Der FGS-Erweiterungslayer ist dann in (m) × (t) (d. h. m mal t) gänzlich
unterschiedliche Segmente geteilt worden. Wenn der Trennungspunkt für einen
Bitratenservice mit dem eines PSNR-Servicelevels übereinstimmt, wird das entsprechende
Segment als leer, mit einer Länge von null, angesehen. In einer exemplarischen
Implementation wird jedem Segment ein unabhängig und zufällig erzeugter
Segmentschlüssel zugewiesen, als Schlüssel(mi, tj)
bezeichnet, wobei m gleich einer Ganzzahl und t gleich einer Ganzzahl ist.
4 zeigt eine Matrix von exemplarisch entsprechenden
Segmentschlüsseln 400 für die Qualitätslayer 106,
108, 110 und 112 des exemplarischen SMLFE-Datenstroms
100.
Entsprechende Segmente (jedes durch einen Schlüssel dargestellt)
sind für den Fall von vier Bitebenen (m = 4) und vier Bitratengruppen (t =
4) gezeigt. Der Basisqualitätslayer 102 erfordert in Implementationen,
in denen der Basisqualitätslayer 102 unverschlüsselt bleibt,
keinen Schlüssel zum Zugreifen.
Jede Verschlüsselungszelle in einem Segment wird unabhängig
mit demselben Segmentschlüssel verschlüsselt. Wenn ein Benutzer eine Lizenz
für ein bestimmtes Servicelevel erlangt, dann werden alle Schlüssel für
das erlangte Level und die geringeren Servicelevels desselben Servicetyps in der
Lizenz, die an den Benutzer geliefert wird, wenn notwendig, enthalten sein. Zum
Beispiel, wenn das erlangte Servicelevel das PSNR-Servicelevel
t = 2 ist, wird die Lizenz all die Schlüssel enthalten, d. h. Schlüssel(m,
t), wo t ≤ 2 ist. Diese Schlüsselverteilung ist ähnlich für
den Fall der Bitratenservicelevels. Ein Benutzer mit lizenziertem Zugriff auf ein
bestimmtes Level an Service innerhalb eines bestimmten Servicetyps (PSNR oder Bitrate)
kann nur auf dieses Servicelevel oder ein geringeres Servicelevel desselben Typs
zugreifen. Der Benutzer kann nicht auf höhere Level mit demselben Service-Typ
oder irgendein Servicelevel des anderen Typs an Service zugreifen.
Weil PSNR-Servicelevel manche Korrelation mit den Bitratenserviceleveln
haben, sind die Schlüssel, die wahrscheinlich für die tatsächliche
Verschlüsselung verwendet werden, üblicherweise die Schlüssel entlang
(d. h. auf oder nahe zu) einer Diagonalen der Matrix in 2,
nämlich die Schlüssel 402, 404, 406 und
408. Aber mehrere Schlüssel können ebenso für ein gegebenes
Servicelevel nützlich sein, wie durch die umkreisten Schlüssel in
4 gezeigt. In einer Implementation verwendet eine Lizenz
für PSNR-Servicelevel Nr. eins zum Zugreifen auf Qualitätslayer Nr. eins,
106, die Schlüssel 402 und 412. Eine Lizenz für
das PSNR-Servicelevel Nr. zwei, zum Zugriff auf Qualitätslayer Nr. zwei,
108, verwendet den Schlüssel 404. Eine Lizenz für ein
PSNR-Servicelevel Nr. drei, zum Zugreifen auf Qualitätslayer Nr. drei,
110, verwendet die Schlüssel 406 und 416. Eine Lizenz
für das PSNR-Servicelevel Nr. vier, zum Zugreifen auf Qualitätslayer Nr.
vier, 112, verwendet die Schlüssel 408 und 426.
In Implementationen, in denen das Superverteilungsmodell verwendet
wird, haben die nicht verwendeten Schlüssel (jene Schlüssel für Servicelevel
geringer als das höchste Servicelevel, das an einen Benutzer lizensiert wurde)
keinen Einfluss auf die Inhalteverschlüsselung. Extraschlüssel, die durch
den Benutzer verwendet werden, beeinflussen nur die Menge an Daten in einer Lizenz.
Um die Größe in Bytes einer Lizenz für manche Anwendungen zu reduzieren,
wie z. B. jene Anwendung in Mobilgeräten, können nicht verwendete Schlüssel,
die mit (oder in) einer Lizenz gesendet werden sollen, vor dem Senden der Lizenz
entfernt werden.
Um die Anzahl der Schlüssel zu reduzieren, die zu einem Benutzer
transferiert werden müssten, kann ein exemplarisches (1, 2)-Schwellenwertschema
verwendet werden. (A. Shamir, "How to Share a Secret" (wie kann ein Geheimnis geteilt
werden), Communications of ACM, Vol. 24, Nr. 11, 1979, S. 612–613, hierin
durch Referenz inkorporiert). In einer exemplarischen Implementation des Schwellenwertschemas
wird das Wissen von entweder dem Schlüsselb(mi) oder
dem Schlüsselp(tj) in der Lage sein, das Segment(mi,
tj) zu entschlüsseln. Zwei unabhängige Zufallsschlüssel
werden als die Schlüssel für das höchste Servicelevel des PSNR-Typs
und des höchsten Servicelevels des Bitratentyps entsprechend erzeugt. Schlüssel
für andere Servicelevel werden auf die folgende Weise erzeugt: der Schlüssel
für das aktuelle Servicelevel wird durch Anwenden einer kryptografisch sicheren
Hashingfunktion auf den Schlüssel des nächsthöheren Servicelevels
desselben Typs erzeugt. Wenn ein Benutzer den Zugriff auf ein bestimmtes Servicelevel
kauft, z. B. das PSNR-Level drei, wird ein einzelner Schlüssel entsprechend
dieses Levels, Schlüsselp(3) zu dem Benutzer gesendet. Die Schlüssel
für geringere PSNR-Level, Schlüsselp(k) können durch das
Hashing des Schlüsselsp(k + 1), wobei k = 1, 2 ist, gefunden werden.
Diese Schlüssel werden anschließend in dem (1, 2)-Schwellenwertschema
zum Entschlüsseln von Verschlüsselungszellen für jedes Segment, auf
dass der Benutzer in der Lage ist, zuzugreifen, verwendet.
Obwohl die Erweiterungslayerdaten 104 in Segmente geteilt
sind, wurden zusätzliche Markierungen (um das Ende von jedem Segment zu markieren)
nicht hinzugefügt. In MPEG-4-FGS beginnt jede Bitebene mit einem Bitebenenmarkierer,
der ebenso verwendet werden kann, um PSNR-Servicelevelgrenzen anzuzeigen. Ein maßgeschneiderter
Header kann zu jedem Frame hinzugefügt werden, um die Anzahl an Videopaketen
in dem Erweiterungslayer des Frames zu der Zeit der Verschlüsselung anzuzeigen,
und um das Bitratengruppierungsschema anzuzeigen (dies erlaubt verschiedenen Gruppierungsschemata
für den Fall, dass unterschiedliche Frames verschiedene Videopaketcharakteristika
aufweisen). In einer Implementation sind vierundzwanzig Bits für diesen Zweck
angebracht. Die Anzahl an Bits kann für jede bestimmte Anwendung eingestellt
werden. Eine Beschreibung des Schemas, das zum Gruppieren exemplarischer Teilungen
des Inhalts in Qualitätslayerreihen an Bitebenen und Bitraten verwendet wurde
(d. h. in Videopakete für Bitratenservicelevel), kann in die Lizenz oder zu
dem Beginn eines Multimediadatenstroms als ein Header platziert werden. Auf diese
Weise stellt der exemplarische DRM-Gegenstand vernachlässigbaren Komprimierungs-Overhead
bereit: d. h. vierundzwanzig Bits werden zu einem komprimierten Datenstrom in einer
Implementierung hinzugefügt, sechzehn Bits werden in einer anderen Implementierung
hinzugefügt.
In Streaming-Anwendungen, die manche Typen von Qualitätslayerreihen
benutzen, kann ein Streaming-Server z. B. die Bitratenservicelevel-Trennungspunkte
erlangen, um das Streaming von zusätzlichen Daten zu verhindern, zu denen ein
Benutzer keine Zugriffserlaubnis hat. Eine Hilfsdatei mit Zusatzinformationen, die
alle Brechungspunkte (breakpoints) für Bitratenservicelevel enthält, kann
für diesen Zweck ebenso verwendet werden. Die Zusatzdatei wird nicht zu dem
Benutzer gesendet, so dass sie keine Datenübertragungsbandbreite
aus der Sichtweise des Benutzers konsumiert. Dies kann ebenso durch das Einfügen
von Zusatzinformationen erreicht werden, die alle Brechungspunkte für Qualitätslayer
(sowie Segmente, wenn notwendig) direkt in einem Multimediaformat enthalten. Dies
erlaubt es einem Streaming-Server, auszuwählen, was gesendet wird, ohne diese
Zusatzinformationen selbst an den Benutzer zu senden.
Steuerung von simultanen Qualitätslayerreihen (Quality Layer Sets)
Zurückkehrend zu 3 kann die exemplarische
DRE 204 auch den bimodalen Servicecontroller 306 einschließen.
Weil der Erweiterungslayer 104 des MPEG-4-FGS-Bitdatenstroms
322 durch den Servicelevelgenerator 302 in Gruppen von benachbarten
Bitebenen für einen Benutzerzugriff auf PSNR-Servicelevel und ebenso in Bitratengruppen
für Benutzerzugriff auf Bitraten-Servicelevel geteilt wurde, verwaltet der
bimodale Servicecontroller 306 in einer Implementierung den Zugriff auf
diese zwei Servicetypen. Der PSNR-Servicecontroller 316 in dem bimodalen
Servicecontroller 306 kann von dem Chiffriertext oder von einer Benutzeranfrage
erkennen, dass ein Bitratenservicelevel verwendet werden sollte, und unterstützt
den Servicelevelzugriffsgeber 306 durch das Liefern von Inhalt über
einen Bitratenservicelevel und Zuweisen der Schlüssel, die in einer Bitratenlizenz
enthalten sein sollen.
Die beispielhafte DRE 204 kann ebenso den Servicelevelzugriffsgeber
308 zum Empfangen von Anfragen für die verschiedenen PSNR- und Bitratenservicelevel
einschließen, und zum Gewähren von Erlaubnissen, die Servicelevel zu verwenden
und/oder einen PSNR- oder Bitratenqualitätslayer herunterzuladen. Das Gewähren
von Erlaubnissen verursacht üblicherweise das Aufdecken des Entschlüsselungsgeheimnisses
für das Servicelevel und den Typ des angefragten Services. Die Entschlüsselungsgeheimnisse
sind üblicherweise Entschlüsselungsschlüssel, aber können ebenso
Verschlüsselungsschlüssel enthalten, wenn eine Wiederverschlüsselung
für die Lizenzübertragung oder andere Funktionen, die auf der Benutzerseite
ausgeführt werden, erforderlich ist. Deshalb kann der Servicelevelzugriffsgeber
308 ebenso den Schlüsselverteiler 320 einschließen,
welcher die/den Schlüssel ermittelt, der/die in einer Lizenz eingeschlossen
sein sollte(n), um ein Servicelevel zu verwenden.
Der Servicelevelzugriffsgeber 308 kann mit dem Rest der exemplarischen
DRE 204 in einem Inhaltelieferserver 202 oder anderen Computergerät
eingesetzt werden. Alternativ kann der Servicelevelzugriffsgeber 308 entfernt
(remotely) (340) z. B. in einem separaten Lizenz- und Gebührenserver
208 eingesetzt werden.
Exemplarische Verfahren
5 zeigt ein exemplarisches DRM-Verfahren
500. Dieses exemplarische DRM-Verfahren 500 kann durch ein Gerät,
wie z. B. die in den 2 und 3
gezeigte exemplarische DRE 204, ausgeführt werden. In dem Flussdiagramm
werden Funktionen in einzelnen Blöcken zusammengefasst. Die Funktionen können
in Hardware und/oder als maschinenlesbare Instruktionen (Software oder Firmware),
die durch einen Prozessor ausgeführt werden können, durchgeführt
werden.
Bei Block 502 wird ein Multimediadatenstrom in Layer geteilt.
Die Layer können Qualitätslayer sein, d. h. der Multimediadatenstrom ist
auf solch eine Weise geteilt, dass das menschliche Auge, Ohr oder ein Gerät
Unterschiede zwischen einem Layer und einem anderen wahrnehmen kann. In einem MPEG-4-FGS-Bitdatenstrom
kann der Basislayer 102 einer der Qualitätslayer sein und der Erweiterungslayer
104 kann in Qualitätslayer aufgeteilt werden. Dies kann durch das
Gruppieren von benachbarten Bitebenen des Erweiterungslayers 104 in PSNR-Level
erreicht werden. Ein anderer Typ an Qualität ist die Datenstrombitrate. Eine
geringere Bitrate kann in manchen Umständen wünschenswert sein, wenn visuelle
Qualität nicht erforderlich ist, aber ein schnelles Herunterladen gewünscht
ist. Deshalb kann der Multimediadatenstrom ebenso in Layer für Bitraten geteilt
werden. Wenn der Erweiterungslayer Erweiterungsdaten für andere Skalierbarkeiten
enthält, wie z. B. eine Frame-Größenskalierbarkeit, Frame-Ratenskalierbarkeit,
Farbtiefenskalierbarkeit, etc., können Qualitätslayer auch basierend auf
einer Frame-Größe, Frame-Rate, Farbtiefe oder einer Kombination von diesen
und dem PSNR- und Bitratentypen ermittelt werden.
Bei Block 504 werden mindestens manche der Layer aus der
Teilung bei Block 502 verschlüsselt. Wenn die Layer unter Verwendung
unterschiedlicher Schlüssel für jeden Layer verschlüsselt werden,
dann kann der Zugriff durch Erlaubnisse für jeden Layer gesteuert werden.
Bei Block 506 wird der Zugriff auf einen Layer durch Aufdecken,
wie der Layer entschlüsselt werden soll, gewährt. Erlaubnis, den Layer
zu entschlüsseln, kann durch das Geben einer Lizenz gewährt werden, und
die Lizenz kann einen oder mehrere Schlüssel für die Entschlüsselung
enthalten.
6 zeigt ein anderes exemplarisches DRM-Verfahren. Dieses
exemplarische DRM-Verfahren 600 kann durch ein Gerät, wie z. B. die
in den 2 und 3 gezeigte
exemplarische DRE 204, durchgeführt werden. in dem Flussdiagramm sind
die Funktionen in einzelne Blöcke zusammenfasst. Die Funktionen können
in Hardware und/oder als maschinenlesbare Instruktionen (Software
oder Firmware), die durch einen Prozessor ausgeführt werden, durchgeführt
werden.
Bei Block 602 wird ein Basislayer und ein Erweiterungslayer
eines MPEG-4-FGS-Bitdatenstroms empfangen.
Bei den Blöcken 604 und 606 wird der empfangene
Erweiterungslayer gleichzeitig auf zwei verschiedene Arten geteilt. Bei Block
604 wird der empfange Erweiterungslayer in PSNR-Qualitätslayer durch
das Gruppieren von benachbarten Bitebenen geteilt. Die Gruppierungen können
gemäß dem Bedarf und/oder Geschmack ausgewählt werden. Bei Block
606 wird der empfangene Erweiterungslayer ebenso gleichzeitig in Bitratenqualitätslayer
durch das Auswählen von Bitratengruppen gemäß dem Bedarf und/oder
Geschmack geteilt.
Bei Block 608 werden die PSNR-Qualitätslayer und die
Bitratenqualitätslayer des Erweiterungslayers unter Verwendung eines separaten
Schlüssels für jeden Layer verschlüsselt.
Bei Block 610 werden die Schlüssel für die PSNR-Qualitätslayer
und Bitratenqualitätslayer gleichzeitig durch eine Erlaubnis verfügbar
gemacht, während der Basislayer ohne eine Erlaubnis verfügbar gemacht
wird. Zugriff durch eine Erlaubnis auf entweder einen PSNR-Qualitätslayer oder
einen Bitratenqualitätslayer kann einem Benutzer gewährt werden, abhängig
von dem Typ der Anfrage nach einer Erlaubnis, die empfangen wird.
Fehlerausfallsicherheit und Performance
Ein reales Netzwerk ist nicht perfekt. Bitfehler und Paketverluste
treten während der Übermittlung von Multimediadaten über ein Netzwerk
auf, so dass Fehlerausfallsicherheit wünschenswert ist. Implementationen der
exemplarischen DRE 204 gehen davon aus, dass ein Transportpaket vollständige
Videopakete enthält, so dass, wenn Paketverlust auftritt, ein gesamtes Videopaket
vollständig verloren geht, und ebenso, dass der Header eines Transportpakets
Informationen bezüglich der Indizes der Videopakete, die es enthält, enthält.
Wenn ein Videopaket empfangen wird, machen es deshalb die Header einfach, das Paket
in die richtige Reihenfolge oder Position zu platzieren, ungeachtet dessen, ob vorherige
Videopakete während der Übertragung verloren gegangen sind. Diese Annahmen
sind für nahezu alle Multimedianetzwerke in realen Anwendungen gültig.
Unter Verwendung der oberen Annahmen und der Art und Weise, in der
Segmentverschlüsselungsschlüssel durch die exemplarische Verschlüsselungsmaschine
312 zugewiesen werden, gilt, wenn ein empfangenes Videopaket dekomprimiert
werden kann, kann es ebenso entschlüsselt werden. Deshalb fügt die exemplarische
Verschlüsselung keinen zusätzlichen negativen Einfluss zu einem Paketverlust
hinzu, und die exemplarische Verschlüsselung wird nicht schädlich durch
Paketverluste beeinflusst. Mit anderen Worten ist das exemplarische DRM-Verfahren
gegenüber Paketverlust robust.
In MPEG-4, wenn Bitfehler in einem empfangenen Bitstrom auftreten,
werden die Videopakete, die die Bitfehler enthalten, normalerweise verworfen. Mit
dem exemplarischen DRM-Verfahren kann ein Bitfehler in einer Verschlüsselungszelle
sich auf andere Bits in der Zelle ausweiten, weitet sich aber niemals auf andere
Zellen aus, weil jede Zelle unabhängig verschlüsselt wird. Nur die korrupte
Zelle wird verworfen. Weil eine Verschlüsselungszelle dasselbe ist wie ein
Videopaket, wie oberhalb beschrieben, fügt das exemplarische Verschlüsselungsverfahren
keine zusätzlichen negativen Einflüsse zu Bitfehlern hinzu. Deshalb ist
das exemplarische DRM-Verfahren robust gegenüber Bitfehlern, sowie Paketverlusten.
Es ist nicht immer notwendig, Verschlüsselungszellen von derselben
Größe wie die Videopakete in dem exemplarischen DRM-Verfahren zu machen.
Es ist möglich, ein Videopaket in verschiedene Verschlüsselungszellen
durch die Verwendung eines Schemas, das nur von der Größe des Videopaketes
abhängt, zu teilen. Dies kann die Granularität der Servicelevel reduzieren,
ohne deren Fehlerausfallsicherheit zu opfern.
Experimentelle Ergebnisse
Der Erweiterungslayer 104 war in vier PNSR-Servicelevel und
vier Bitratenservicelevel geteilt worden, mit derselben Anzahl an Bitebenen in jedem
PSNR-Level, und nahezu gleichen Bytes (abgestimmt mit den Videopaketen) für
jedes Bitratenlevel. Alle Experimente wurden auf einem DELL®-Personalcomputer
mit 512 Megabyte RAM und einem INTEL® PENTIUM® III-Prozessor,
der bei 667 Megahertz läuft, durchgeführt.
7 zeigt einen Vergleich 700 von exemplarisch
erlangten Bitratenserviceleveln. Die Bitrate 702 wird gegenüber den
Bitratenserviceleveln 704 gezeichnet. Ein exemplarisches erstes Bitratenservicelevel
700 hat eine durchschnittliche Bitrate 250.000 Bits pro Sekunde, ein exemplarisches
Bitratenservicelevel 708 hat eine durchschnittliche Bitrate von 510.000
Bits pro Sekunde, ein drittes exemplarisches Bitratenservicelevel 710 hat
eine durchschnittliche Bitrate von 800.000 Bits pro Sekunde und ein viertes exemplarisches
Bitratenservicelevel 712 hat eine durchschnittliche Bitrate von 1.100.000
Bits pro Sekunde. Die Trennung zwischen Bitratenleveln stellt eine lineare Beziehung
in 7 dar.
8 zeigt einen Vergleich 800 von exemplarisch
erreichten PSNR-Serviceleveln. Das "Frame-Durchschnitts"-Spitzensignal-Rausch-Verhältnis
("durchschnittliches PSNR" 802) für jedes exemplarische PSNR-Servicelevel
wird gegenüber den PSNR-Servicelevelanzahlen 804 gezeichnet. Das PSNR
ist ungefähr konstant über die Frames für die Helligkeit und Farbkomponenten
Y, U und V, was als eine einzelne Durchschnittslinie in 8
gezeigt ist. Die Trennung der ersten drei PSNR-Servicelevel 806,
808 und 810 voneinander stimmt mit einer Implementierung der Qualitätslayer
überein, die durch den exemplarischen Servicelevelgenerator 302 entwickelt
wurde. Das vierte PSNR-Level 812 führt (maintain) nicht dieselbe Teilung
von dem PSNR-Servicelevel Nr. drei, 810, wie die Servicelevel Nr. eins,
zwei und drei voneinander führen, weil das PSNR-Servicelevel Nr. vier,
812, keine vollständigen Bitebenendaten, aufgrund der Bits, die jedem
Frame durch die FGS-Komprimierung zugewiesen wurden, enthalten.
9 zeigt exemplarische visuelle Effekte 900,
die sich durch die PSNR-Servicelevel, in 8 gezeigt,
ergeben. Die Bildqualität verbessert sich mit höheren PSNR-Serviceleveln,
weil mehr Qualitätslayer verfügbar sind, um das Bild zu konstruieren.
Das Bild Nr. eins des "Frontmannes" 902 hat eine geringe Auflösung
und eine blockhafte Charakteristik eines geringen PSNR-Wertes von ungefähr
32 für das PSNR-Servicelevel Nr. eins, 606. Das Bild Nr. 2 des "Frontmannes"
904 hat eine verbesserte Auflösung und Definition, aber eine gewisse
Blockhaftigkeit ist immer noch sichtbar, aufgrund des Durchschnitts-PSNR-Wertes
von ungefähr 42 für das PSNR-Servicelevel Nr. zwei, 608. Das
Bild Nr. drei des "Frontmannes" 906 zeigt eine bessere Qualität aufgrund
eines PSNR-Wertes von ungefähr 48 für das PSNR-Servicelevel Nr. drei,
610, aber zeigt nach einer näheren Betrachtung immer noch manche Niedrigauflösungsartefakte
und Unregelmäßigkeiten. Das Bild Nr. vier des "Frontmannes"
908 hat die beste Auflösung der vier Bilder, einschließlich der
besten Schärfe und dem Fehlen von Klingeln (ringing), aufgrund des höchsten
PSNR-Wertes von ungefähr 51 für PSNR-Servicelevel Nr. vier,
612. Ein Benutzer kann für das Servicelevel, das den Bedürfnissen
nach Qualität oder minimaler Herunterladezeit dem Benutzer am besten genügt,
unterschreiben (einen Kauf abschliessen).
ERGEBNIS
Das Vorangegangene beschreibt eine exemplarische DRE 204
und in Beziehung stehende DRM-Verfahren für eine sichere geschichtete (layered)
Zugriffskontrolle auf Multimediadatenströme, wie z. B. MPEG-4-FGS-Bitdatenströme
und andere skalierbare Medien. Sowohl PSNR-basierte geschichtete Steuerung als auch
Bitraten-basierte geschichtete Steuerung werden in demselben Framework realisiert
und keiner der Kontrolltypen gefährdet den anderen Kontrolltyp. Es sollte beachtet
werden, dass der Gegenstand, der oberhalb geschrieben wurde, in Hardware, in Software
oder sowohl in Hardware als auch Software implementiert werden kann. In bestimmten
Implementationen können die exemplarische DRE 204 und in Beziehung
stehende DRM-Verfahren im allgemeinen Kontext von computerausführbaren Instruktionen
beschrieben werden, wie z. B. Programmmodulen, die durch einen Computer ausgeführt
werden. Im Allgemeinen schließen Programmmodule Routinen, Programme, Objekte,
Komponenten, Datenstrukturen, etc. ein, die bestimmte Aufgaben ausführen oder
bestimmte abstrakte Datentypen implementieren. Der Gegenstand kann ebenso in verteilten
Datenübertragungsumgebungen praktiziert werden, wo Aufgaben über kabellose
Datenübertragungen durch abgelegene (remote) verarbeitende Geräte durchgeführt
werden, die durch ein Kommunikationsnetzwerk miteinander verbunden sind. In einem
kabellosen Netzwerk können Programmmodule sowohl in lokalen als auch Remote-Datenübertragungsgerätespeicherdatenträgern,
einschließlich Speicherdatengeräten, liegen.