-
Die
Erfindung betrifft ein Verfahren zum Auffinden eines Wasserzeichens
in einem Datenstrom, der Rahmen umfasst. Die Erfindung betrifft
ferner eine Vorrichtung zum Auffinden eines Wasserzeichens in einem
Datenstrom, der Rahmen umfasst.
-
Das
Wasserzeichenmarkieren, der Vorgang des Einfügens von zusätzlichen
Informationen in einen Datenstrom, wie z.B. einen Audio- oder Videostrom,
ist ein wichtiges und gut bekanntes Verfahren zum Markieren oder
Schützen
dieser Datenströme. Ein
Film kann wasserzeichenmarkiert werden, so dass seine Herkunft nachgewiesen
werden kann, oder nicht autorisierte Kopien können vom Original unterschieden
werden. Wasserzeichen werden auch zunehmend verwendet, um Beschränkungen
beim Kopieren des Datenstroms durchzusetzen. Beim DVD-Kopierschutz
werden Wasserzeichen verwendet, um das Material als „einmal
kopierfähig", „nicht kopierfähig", „nicht
mehr kopierfähig" oder „keine
Beschränkungen" zu kennzeichnen.
Wird ein Datenstrom von einer DVD-Platte kopiert, dann muss die Vorrichtung,
die das Kopieren ausführt,
das Vorhandensein eines Wasserzeichens prüfen. Wird eines gefunden und
das Wasserzeichen zeigt an, dass der Datenstrom nicht kopiert werden
darf (nie mehr), dann muss die Vorrichtung das Herstellen einer
Kopie des Datenstroms verweigern.
-
Ist
ein Datenstrom ein Videostrom, dann ist die Menge der zu bearbeitenden
Daten gewaltig. Üblicherweise
wird ein Videostrom komprimiert, wobei ein Schema, wie z.B. die
Kompression ISO/IEC 11172 MPEG-1 oder ISO/IEC 13818 MPEG-2, verwendet
wird. In Zukunft kann auch das ISO/IEC 14496 MPEG-4-Schema verwendet
werden. Dieses erreicht eine wesentliche Abnahme in der Größe des Videostroms.
Es bedeutet jedoch auch eine beträchtliche Zunahme in der Verarbeitungsleistung,
die für das
Auffinden eines Wasserzeichens in einem Videostrom erforderlich
ist. Das Auffinden eines Wasserzeichens erfordert die Dekompression
der Rahmen des Videostroms und die Bearbeitung der dekomprimierten
Rahmen, um irgendein Wasserzeichen aufzufinden.
-
Obwohl
die Verarbeitung eines nach MPEG-2 komprimierten Datenstroms ausführbar ist, wenn
der Videostrom in Echtzeit kopiert wird, wird die erforderliche
Verarbeitungsgeschwindigkeit während des
Schnellkopierens unausführbar
hoch. Zum Beispiel enthält
ein typischer Videostrom 25 oder 30 Rahmen pro Sekunde. Wird dieser
Videostrom bei einer hohen Geschwindigkeit von dem 20-fachen der Normalgeschwindigkeit
kopiert, dann bedeutet das, dass pro Sekunde 500 oder 600 Rahmen
zu verarbeiten sind, um ein Wasserzeichen aufzufinden. Das ist ein
Bitstrom von 300–400
Mbit pro Sekunde mit Spitzenwerten von bis zu 800 Mbit pro Sekunde. Demgegenüber können MPEG-Bitströme verarbeitende
Wasserzeichendetektoren, welche die gängige Hardware einsetzen, ein
Wasserzeichen in einem Bitstrom von mehr als 100 Mbit pro Sekunde
nicht zuverlässig
auffinden. Gleichzeitig ist es nicht akzeptabel, das Auffinden eines
Wasserzeichens zu verzögern,
wenn die Wasserzeichen verwendet werden, Kopierbeschränkungen
durchzusetzen. Je länger
der Zeitraum zwischen dem Beginn des Kopiervorganges und dem Auffinden
eines Wasserzeichens ist, welches anzeigt, dass Kopieren nicht erlaubt
ist, desto mehr Material kann ein Raubkopierer illegal kopieren.
-
WO
99/1873 offenbart eine Vorrichtung für das Auffinden eines Wasserzeichens
in einem Datenstrom, der Rahmen umfasst. Es werden unabhängig kodierte
Rahmen ausgewählt
und einem Detektor bereitgestellt.
-
WO
00/13414 offenbart ein Verfahren und ein System, in welchem ein
MPEG-Strom empfangen wird. Wird ein unabhängig kodierter Rahmen aufgefunden,
dann wird ein Makroblock herausgenommen und puffergespeichert. Das
Wasserzeichen wird dann aus den puffergespeicherten Daten nachgewiesen.
-
Es
ist eine Aufgabe der Erfindung, eine Vorrichtung gemäß den obigen
Darlegungen bereitzustellen, die während eines Schnelikopiervorganges rasch
arbeiten kann.
-
Diese
Aufgabe wird erfindungsgemäß in einer
Vorrichtung nach Anspruch 1 gelöst.
Die von einer DVD oder einer anderen Quelle zu kopierenden Daten
enthalten ein Gemisch von Audioströmen, Videoströmen und
anderen Informationen. Es genügt, ein
Wasserzeichen in nur einem dieser Ströme aufzufinden. Außerdem ist
es nicht nötig,
im ausgewählten
Datenstrom in allen Rahmen des ausgewählten Datenstroms ein Wasserzeichen
aufzufinden. Einige Rahmen enthalten mehr Wasserzeicheninformationen
als die anderen. Insbesondere enthalten unabhängig kodierte Rahmen gewöhnlich mehr
Wasserzeicheninformationen als die abhängig kodierten Rahmen. Indem
nur die unabhängig
kodierten Rahmen ausgewählt
werden, wird der Wasserzeichendetektor mit einer weit geringeren
Rate mit Daten versorgt als der Kopiervorgang. Dennoch versorgen
diese Rahmen den Wasserzeichendetektor mit ausreichenden Informationen,
um eine zuverlässige
Wasserzeichendetektion zu ermöglichen.
-
In
einer Ausführungsform
umfasst die Vorrichtung außerdem
Pufferspeichermittel zum Pufferspeichern des Rahmens in einem Pufferspeicher,
wobei die Auswahlmittel eingerichtet sind, eine Adressstelle in
dem Pufferspeicher des Rahmens festzulegen, und die Verarbeitungsmittel
eingerichtet sind, die Adressstelle dem Wasserzeichendetektor zur Verfügung zu
stellen. Oft schließt
der Kopiervorgang ein zeitweiliges Speichern (von Teilen) des Datenstroms
in einem Pufferspeicher ein. Die Größe dieses Pufferspeichers ist
normalerweise verhältnismäßig groß, so dass
die darin gespeicherten Rahmen dort für eine verhältnismäßig lange Zeit verbleiben,
bevor sie durch neue Daten überschrieben
werden. Die gespeicherten Rahmen bleiben in dem Pufferspeicher, nachdem
sie ausgelesen worden sind. Da der Wasserzeichendetektor die Inhalte
der ausgewählten Rahmen
benötigt,
ist es vorteilhaft, eine Adressstelle im Pufferspeicher dieser Rahmen
festzulegen.
-
In
einer weiteren Ausführungsform
wird mindestens ein Inhaltsanteil des Rahmens in einen lokalen Speicher
kopiert, und die Inhalte des lokalen Speichers werden dem Wasserzeichendetektor
bereitgestellt. Durch Speichern (von Inhaltsanteilen) ausgewählter Rahmen
in einem lokalen Speicher kann der Wasserzeichendetektor leicht
auf den lokalen Speicher zugreifen, die gespeicherten Rahmendaten
abrufen und darin das Wasserzeichen auffinden.
-
In
einer weiteren Ausführungsform
umfasst der Datenstrom einen Video-Elementarstrom, der in Übereinstimmung
mit dem Format ISO/IEC 13818 MPEG-2 formatiert ist, und der ausgewählte Rahmen enthält einen
I-Rahmen des Video-Elementarstroms. In einem typischen MPEG-2-Videostrom
ist gewöhnlich
einer von je zehn bis zwölf
Rahmen ein I-Rahmen. So wird eine wesentliche Verringerung der Größe des Datenstroms,
der in den Wasserzeichendetektor eingegeben wird, erreicht, indem
nur die I-Rahmen des Videoanteils des Datenstroms ausgewählt werden.
-
In
einer weiteren Ausführungsform
sind die Verarbeitungsmittel für
die Verarbeitung des ausgewählten
Rahmens, um mindestens einen DCT-Koeffizienten zu erhalten, und
für die
Bereitstellung des mindestens einen DCT-Koeffizienten an den Wasserzeichendetektor
eingerichtet. Wasserzeichendetektoren benötigen nicht immer alle Daten
aus den ausgewählten
Rahmen, um ein Wasserzeichen aufzufinden. Insbesondere das Wasserzeichendetektionssystem,
wie es in WO 99/45707 durch den Anmelder der vor liegenden Anmeldung
offenbart wird, kann ein Wasserzeichen in einem Videostrom auffinden,
wobei nur DCT-Koeffizienten von einzelnen Rahmen verwendet werden.
-
Diese
und andere Aspekte der Erfindung werden ersichtlich aus den und
verdeutlicht mit Bezug auf die Ausführungsformen, die in den Zeichnungen
dargestellt sind, in welchen:
-
1 eine
erste Ausführungsform
der Vorrichtung gemäß der Erfindung
schematisch darstellt;
-
2 die
Struktur eines Datenstroms, der in Übereinstimmung mit dem MPEG-2-Standard
formatiert ist, schematisch darstellt; und
-
3 eine
zweite Ausführungsform
der Vorrichtung gemäß der Erfindung
schematisch darstellt.
-
In
den Figuren bezeichnen gleiche Bezugsziffern durchweg gleiche oder
entsprechende Merkmale. Einige der in den Zeichnungen angegebenen Merkmale
sind üblicherweise
in der Software realisiert, und als solche stellen sie Softwareobjekte,
wie z.B. Softwaremodule und -objekte, dar.
-
1 zeigt
schematisch eine erste Ausführungsform
einer Vorrichtung 100, die zum Auffinden eines Wasserzeichens
in einem Datenstrom eingerichtet ist. Die Vorrichtung 100 ist
zum Beispiel eine integrierte Verarbeitungsschaltung, die in einem DVD-Laufwerk
verwendet wird, sie kann aber auch ein Rechnerprogramm sein, das
auf einem Universal-Rechensystem läuft. Ein Eingangsprozessor 101, zum
Beispiel ein DVD-Player,
liest einen Datenstrom von einer DVD 190. Natürlich ist
die Erfindung nicht auf Datenströme
beschränkt,
die von einer DVD gelesen werden. Auch andere Datenquellen können verwendet
werden. Der Datenstrom wird vorzugsweise in Übereinstimmung mit dem Format
ISO/IEC 13818 MPEG-2 formatiert.
-
Der
Eingangsprozessor 101 ist mit einem Bus 102 verbunden,
in den er den Datenstrom eingibt. Ein Ausgangsprozessor 110 liest
den Datenstrom aus dem Bus 102 und gibt den Datenstrom
an das Ausgangsterminal 170 aus. Das Ausgangsterminal 170 kann
mit einer externen MPEG-Dekodierungs- und -Wiedergabevorrichtung
(nicht dargestellt) verbunden werden. Das Ausgangsterminal 170 kann
auch mit einer Festplatte oder einer DVD-Lese/Schreibeinheit verbunden
werden, so dass darauf eine Kopie des Datenstroms angefertigt werden kann.
Die Arbeitsgänge
können
durch die Vorrichtung 100 ausgeführt werden, teilweise abhängig davon,
womit das Ausgangsterminal 170 verbunden ist.
-
Es
wird angenommen, dass der Datenstrom, wie er von der DVD gelesen 190 wird,
ein Wasserzeichen enthält,
das auf Einschränkungen
beim Kopieren und/oder der Wiedergabe des Datenstroms hinweist.
Die Vorrichtung 100 ist mit einem Wasserzeichendetektor 130 ausgerüstet, der
auch mit dem Bus 102 verbunden ist. Der Wasserzeichendetektor 130 liest
den Datenstrom bei ihrem Durchlauf über den Bus 102 und
stellt fest, ob ein Wasserzeichen im Datenstrom vorhanden ist.
-
Findet
der Wasserzeichendetektor 130 ein Wasserzeichen im Datenstrom
und verbietet das Wasserzeichen den gerade ablaufenden Arbeitsgang,
dann betätigt
der Wasserzeichendetektor 130 einen Schalter 160,
um eine Ausgabe an das Ausgabeterminal 170 zu unterbinden.
Wenn zum Beispiel der Datenstrom gerade kopiert wird und das Wasserzeichen
eine Beschränkung „nicht
kopierfähig" anzeigt, dann öffnet der
Wasserzeichendetektor 130 den Schalter 160, um
zu verhindern, dass die Daten an das Ausgangsterminal 170 ausgegeben
werden. Wenn kein Wasserzeichen gefunden wurde oder das gefundene
Wasserzeichen den gerade ablaufenden Arbeitsgang nicht verbietet,
dann ist der Schalter 160 geschlossen und die Ausgabedaten
werden an das Ausgabeterminal 170 weitergeleitet.
-
In
einem alternativen Beispiel sendet der Wasserzeichendetektor 130 einfach
ein Signal an einen Steuermodul (nicht dargestellt), um anzuzeigen, dass
ein Wasserzeichen gefunden wurde. Der Steuermodul kann dann eine
geeignete Maßnahme
ergreifen. Zum Beispiel kann der Steuermodul den Benutzer warnen,
dass der Arbeitsgang nicht erlaubt ist, oder zeitweise den Arbeitsgang
unterbrechen, um den Benutzer aufzufordern, vor dem Fortsetzen eine Zahlung
zu leisten.
-
Der
Wasserzeichendetektor 130 ist an einen Verarbeitungsmodul 125 gekoppelt,
der Rahmen aus dem Datenstrom dekodieren und bearbeiten kann, bevor
sie dem Wasserzeichendetektor 130 zugeführt werden. Der Verarbeitungsmodul 125 kann
zum Beispiel einen MPEG-Dekoder enthalten, der Rahmen aus einem
MPEG-kodierten Datenstrom in Rohbilddaten umformt, die für die Bearbeitung
durch den Wasserzeichendetektor 130 geeignet sind.
-
In
einer bevorzugten Ausführungsform
arbeitet der Wasserzeichendetektor 130 so, wie es in WO 99/45707
durch den Anmelder der vorliegenden Erfindung offenbart ist. In
dieser Ausführungsform
bearbeitet der Verarbeitungsmodul 125 den ausgewählten Rahmen,
um mindestens einen DCT-Koeffizienten zu erhalten, und stellt den
mindestens einen DCT-Koeffizienten dem Wasserzeichendetektor 130 bereit.
Wasserzeichendetektoren benötigen
nicht immer alle Daten aus den ausgewählten Rahmen, um ein Wasserzeichen
aufzufinden. Insbesondere kann das Wasserzeichendetektionssystem,
wie es in WO 99/45707 offenbart ist, ein Wasserzeichen in einem Videostrom
auffinden, wobei es nur DCT-Koeffizienten aus einzelnen Rahmen verwendet.
-
Wenn
der Datenstrom kopiert wird, dann wird er oft zeitweise in einem
Pufferspeicher 150 gespeichert, bevor er an das Ausgangsterminal 170 ausgegeben
wird. An den Bus 102 ist eine Speichersteuerung 151 angeschlossen,
um den Pufferspeicherungsvorgang zu steuern. Der für die Vorrichtung 100 externe
Pufferspeicher 150 kann zum Beispiel ein 16-Megabit-SDRAM
sein. Der Eingangsprozessor 101 schreibt den Datenstrom
in den Bus 102, wo ihn die Speichersteuerung 151 lesen
und im Pufferspeicher 150 speichern kann. Der Ausgangsprozessor 110 fordert
Anteile des Datenstroms, die im Pufferspeicher 150 gespeichert
sind, an und gibt sie dann zum Ausgangsterminal 170 hin
aus. Durch Einsatz des Pufferspeicherns können Schwankungen in der Eingabedatenrate
beseitigt werden, so dass der Ausgabeprozessor 110 den
Datenstrom mit einer weitgehend konstanten Geschwindigkeit ausgeben
kann.
-
Die
Speichersteuerung 151 verwendet einen Lesezeiger und einen
Schreibzeiger, um die Informationen im Pufferspeicher 150 zu
verwalten. Rahmen werden in den Pufferspeicher 150 an der
Adressstelle geschrieben, die durch den Schreibzeiger angezeigt
wird, wonach der Schreibzeiger nach vorn zur nächsten verfügbaren Adressstelle bewegt
wird. Auf die gleiche Weise werden Rahmen aus dem Pufferspeicher 150 bei
der Adressstelle ausgelesen, die durch den Lesezeiger angezeigt
wird, wonach der Lesezeiger nach vorn zu der Adressstelle des nächsten puffergespeicherten
Rahmens bewegt wird.
-
Es
kann, z.B. durch den Fehlerkorrekturmodul 140, auch eine
andere Bearbeitung, wie z.B. eine Fehlerkorrektur, am Datenstrom
vorgenommen werden, wenn er von der DVD 190 gelesen wird.
-
Wird
eine Kopie der DVD 190 hergestellt, dann ist es wünschenswert,
dass die Kopie mit einer hohen Geschwindigkeit, wie z.B. dem 20-
oder 25-fachen der normalen Abspielgeschwindigkeit, hergestellt
wird. Das bedeutet, dass die Vorrichtung 100 eine große Menge
von Daten pro Sekunde zu verarbeiten hat. Zum Beispiel enthält ein Videostrom,
der entsprechend dem PAL-Standard formatiert ist, 25 Rahmen pro
Sekunde. Bei einem 20-fachen der normalen Geschwindigkeit bedeutet
das 500 Rahmen pro Sekunde. Kein Wasserzeichendetektor wird jedoch
in der Lage sein, 500 MPEG-kodierte Rahmen zu verarbeiten, um darin
ein Wasserzeichen aufzufinden.
-
Um
eine geringere mittlere Datenrate für den Wasserzeichendetektor 130 zu
erhalten, wird ein Busspion 120 mit dem Bus 102 verbunden.
Der Busspion 120 beobachtet den Datenstrom, wenn er über den
Bus, z.B. vom Eingangsprozessor 101 zur Speichersteuerung 151,
läuft.
Der Busspion 120 führt
eine einfache Bearbeitung derart aus, dass die unabhängig kodierten
Rahmen im Datenstrom identifiziert werden. In einer bevorzugten
Ausführungsform
identifiziert der Busspion 120 die I-Rahmen aus dem nach MPEG-2
formatierten Datenstrom. Nachdem ein solcher Rahmen identifiziert
wurde, muss der Busspion 120 die Inhalte des ausgewählten Rahmens
dem Verarbeitungsmodul 125 zur weiteren Bearbeitung und
dann dem Wasserzeichendetektor 130 zur Verwendung im Wasserzeichendetektionsprozess
zuführen.
-
Da
der ausgewählte
Rahmen bereits als Teil des Pufferspeicherungsprozesses im Pufferspeicher 150 gespeichert
wird, ist es sinnvoll, den Pufferspeicher 150 als einen
Eingang für
den Wasserzeichendetektor 130 zu verwenden. Rahmen werden
auf eine zyklische Weise in den Pufferspeicher 150 geschrieben.
Am Anfang zeigt der Schreibzeiger auf die erste Speicherstelle im
Pufferspeicher 150, und somit wird der erste Rahmen auf
die erste Speicherstelle im Pufferspeicher 150 geschrieben.
Der Schreibzeiger wird dann zur zweiten Stelle bewegt, und dann
wird der zweite Rahmen auf die zweite Stelle geschrieben und so
weiter.
-
Sobald
ein Rahmen an die letzte Speicherstelle im Pufferspeicher 150 geschrieben
wurde, bewegt sich der Schreibzeiger zurück zur ersten Speicherstelle,
und dann wird der nächste
Rahmen auf die erste Speicherstelle geschrieben. Da jedoch gewöhnlich die
Größe des Pufferspeichers 150 verhältnismäßig groß ist mit
Bezug auf die Größe eines Rahmens,
bleiben die Rahmen eine lange Zeit über im Pufferspeicher 150,
bevor sie durch neue Rahmen überschrieben
werden. Sie werden auch nicht gelöscht, nachdem sie ausgelesen
wurden.
-
Wenn
ein Rahmen als ein unabhängig
kodierter Rahmen identifiziert wurde, bestimmt der Busspion 120 nun
so eine Adressstelle dieses Rahmens im Pufferspeicher 150.
Der Verarbeitungsmodul 125 kann dann den ausgewählten Rahmen
unmittelbar aus dem Pufferspeicher 150 abrufen.
-
Gegebenenfalls überprüft der Busspion 120 einen
Kopfteil des Rahmens, um den Anfangspunkt des Inhaltsteils des Rahmens
zu bestimmen. Gewöhnlich
wird der Kopfteil des Rahmens eine variable Größe aufweisen, so dass der Kopfteil überprüft werden
muss, um festzustellen, wo der Inhaltsteil beginnt. Der Wasserzeichendetektor 130 benötigt nur die
Daten vom Inhaltsteil, so dass es sinnvoll ist, sich nur diese Lage
zu merken. Der Busspion 120 kann dann eine Adressstelle
des Inhaltsteils im Pufferspeicher 150 bestimmen. Diese
Adressstelle kann dann dem Wasserzeichendetektor 130 zur
Verfügung
gestellt werden. Der Wasserzeichendetektor 130 kann dann
den Inhaltsteil des ausgewählten
Rahmens aus dem Pufferspeicher 150 direkt lesen und ihn
bearbeiten, um festzustellen, ob Wasserzeichendaten in dem ausgewählten Rahmen
vorliegen. Das funktioniert jedoch nur, wenn der Verarbeitungsmodul 125 die
notwendigen Informationen herausziehen kann, ohne Zugriff auf den
Kopfteil des Rahmens zu haben. Das hängt seinerseits davon ab, welche
Informationen der Wasserzeichendetektor 130 von den einzelnen
Rahmen benötigt.
-
Es
kann vorkommen, dass in der Zeit, in welcher der Wasserzeichendetektor 130 auf
die bereitgestellte Adressstelle zugreift, der in Betracht kommende
Rahmen durch neue Daten überschrieben wurde.
Im Allgemeinen werden die neuen Daten an dieser Adressstelle nicht
der Beginn eines neuen Rahmens, geschweige denn eines unabhängig kodierten
Rahmens sein. Wenn weder der Verarbeitungsmodul 125 noch
der Wasserzeichendetektor 130 dieser Sachlage vorbeugen,
dann wird das Dekodieren der neuen Daten fehlschlagen. Der Verarbeitungsmodul 125 kann
die Synchronisierung verfehlen und muss den Dekodierungsvorgang
vom Beginn aus neu starten, was Zeit beansprucht.
-
Somit
erfasst der Busspion 120 in einer bevorzugten Ausführungsform
nicht nur die Adressstelle eines unabhängig kodierten Rahmens, sondern auch
die Zeit, zu der diese Adressstelle erfasst wurde. Der Verarbeitungsmodul 125 kann
dann die aktuelle Zeit, die aktuelle Stellung des Schreibzeigers
im Pufferspeicher 150 bestimmen und daraus ableiten, ob
die Adressstelle noch gültig
ist. Stellt der Verarbeitungsmodul 125 fest, dass die Adressstelle
durch neue Daten überschrieben
wurde, dann überspringt er
diese Adressstelle und fährt
mit der nächsten
fort.
-
Da
die Rahmen mit einer hohen Datenrate eintreffen, treffen auch die
unabhängig
kodierten Rahmen mit einer hohen Rate ein, so dass im Mittel eine
kurze Zeit verstreicht, bevor der Verarbeitungsmodul 125 wieder
synchronisiert ist.
-
Durch
Wiederverwenden der Inhalte des Pufferspeichers 150 werden
die Speicheranforderungen der Vorrichtung 100 verringert.
Die Vorrichtung 100 weist auch den geringstmöglichen
zusätzlichen Speicherbedarf
auf, um die zusätzliche
Bearbeitung auszuführen.
Indem sie auf diese Weise arbeitet, nutzt die Vorrichtung 100 eine
minimale Overheadzeit, um in einem Datenstrom nach Video-Grundstromdaten
zu suchen.
-
2 zeigt
schematisch die Struktur eines Datenstroms 200, der entsprechend
dem Standard MPEG-2 formatiert ist. Diese Struktur wird nun kurz diskutiert,
um die Elemente daraus zu erklären,
die für
die vorliegende Erfindung relevant sind. Details über die
exakte Struktur und die Bedeutung ihrer Elemente können in
der MPEG-2-Spezifikation,
ISO/IEC 13818 gefunden werden.
-
Der
Datenstrom 200 umfasst die Sequenzen 201, 202, 203, 204.
Jede der Sequenzen 201–204 kann
eine Videosequenz, eine Audiosequenz oder eine Sequenz sein, die
andere Informationen enthält. Derartige
Sequenzen werden auch als Ströme
bezeichnet.
-
Es
wird angenommen, dass die Sequenz 202 eine Videosequenz
oder ein Video-Eiementarstrom (VES) ist. Eine Videosequenz beginnt
mit einem Sequenzkopf, der einen Startcode 211, Videoparameter 212,
Bitstromparameter 213 und andere Kopfinformationen 214 enthält. Auf
den Kopf folgen eine oder mehrere Bildgruppen (GOP) 215–218.
-
Eine
Bildgruppe (GOP) 215 enthält wiederum einen Kopf und
eine Anzahl von Bildern. Der Kopf umfasst einen GOP-Startkode 221,
einen Zeitkode 222 und GOP-Parameter 223. Darauf folgen
die eigentlichen Bilder 224–227. Im Kontext des
MPEG-2 werden diese Bilder auch als „Rahmen" bezeichnet. Ein Rahmen in einem MPEG-2-Videostrom kann einer
von drei Typen sein. Der Typ eines Rahmens legt fest, welche Vorhersagemodi
verwendet werden können,
um die Blöcke
in dem Rahmen zu kodieren.
-
I-Rahmen
(Intrarahmen) werden ohne Bezugnahme auf andere Rahmen kodiert.
Durch Verringern der räumlichen
Redundanz, jedoch nicht der zeitlichen Redundanz, wird eine mäßige Kompression
erreicht. I-Rahmen werden periodisch verwendet, um im Datenstrom
Zugriffspunkte bereitzustellen, wo das Dekodieren beginnen kann.
-
P-Rahmen
(prädiktive
Rahmen) werden mit Bezugnahme auf vorhergehende I- oder P-Rahmen kodiert.
Die Blöcke
in einem P-Rahmen können
entweder vorhergesagt oder intern kodiert werden. Durch Verringern
der räumlichen
und zeitlichen Redundanz erlauben P-Rahmen eine verstärkte Kompression
im Vergleich zu I-Rahmen.
-
B-Rahmen
(bidirektional prädiktive
Rahmen) werden mit Bezugnahme auf vorhergehende und anschließende I-
oder P-Rahmen kodiert. Die Blöcke
in einem B-Rahmen
können
vorwärts,
rückwärts oder bidirektional
vorhergesagt oder intern kodiert werden. B-Rahmen erlauben den höchsten Kompressionsgrad.
Um eine Rückwärtsvorhersage
von zukünftigen
Rahmen aus zu ermöglichen,
ordnet der MPEG-Kodierer die Rahmen aus der normalen „Wiedergabe"-Ordnung derart in
die „Bitstrom"-Ordnung um, dass
der B-Rahmen nach den vorhergehenden und anschließenden P-
und I-Rahmen übertragen wird.
Das bringt eine Umordnungsverzögerung
mit sich, die von der Anzahl der aufeinanderfolgenden B-Rahmen abhängt.
-
Eine
typische GOP in der Wiedergabeordnung ist:
B1B2I3B4B5P6B7B8P9B10B11P12B13B14I15.
-
Die
zugehörige
Bitstromordnung ist:
I3B1B2P6B4B5P9B7B8P12B10B11I15B13B14.
-
Eine
reguläre
GOP-Struktur kann mit zwei Parametern beschrieben werden: N ist
die Anzahl der Bilder in der GOP und M der Abstand der P-Rahmen. Die
hier angegebene GOP wird durch N = 12 und M = 3 beschrieben. Es
ist einzusehen, dass zum Prüfen des
Vorhandenseins eines Wasserzeichens eine alleinige Bearbeitung der
I-Rahmen anstelle einer Bearbeitung aller Rahmen aus einer GOP eine
Verringerung der Menge der zu bearbeitenden Rahmen um einen Faktor
12 ergibt.
-
Ein
Rahmen 224 umfasst seinerseits einen Kopf mit Bildstartkode 231,
Typanzeiger 232, Pufferparametern 233, Kodierungsparametern 234,
gefolgt von einer Anzahl von Scheiben 235–238.
Die Scheiben enthalten Informationen über einen Teil des Rahmens.
Eine Scheibe 235 umfasst einen Scheibenstartkode 241,
einen Vertikalpositionsanzeiger 242, eine Güteskala 243,
gefolgt von einem Satz von Makroblöcken 244–247.
-
Ein
Makroblock 244 ist die Basiskodiereinheit im MPEG-2-Algorithmus.
Er ist ein 16 × 16
-Pixelsegment in einer Scheibe. Die Anordnung der Makroblöcke in einer
Scheibe ist von links nach rechts und von oben nach unten. Der Makroblock 244 enthält einen
Adressenanzeiger 251, einen Typ 252, einen Bewegungsvektor 253,
eine Güteskala 254,
ein kodiertes Blockmuster 255 und sechs Blöcke 256.
-
Ein
Bild oder Rahmen in MPEG-2 besteht aus drei Rechteckmatrizen, welche
die Luminanz (Y) und zwei Chrominanzwerte (Cb und Cr) darstellen. Die
Y-Matrix weist eine gerade Anzahl von Zeilen und Spalten auf, die
Matrizen Cb und Cr sind in jeder Richtung halb so groß wie die
Y-Matrix. Da die Chrominanzkomponente die Hälfte der Vertikal- und Horizontalauflösung der
Luminanzkomponente aufweist, besteht ein Makroblock aus vier Y-Blöcken, einem Cr-
und einem Cb-Block, was insgesamt sechs Blöcke ergibt.
-
3 zeigt
ein zweites Beispiel einer Vorrichtung 300 gemäß der Erfindung.
Obwohl die Vorrichtung 300 ähnlich zur Vorrichtung 100 von 1 ist,
ist die Vorrichtung 300 nicht mit einem Pufferspeicher 150 verbunden.
Dennoch ist es wünschenswert, dass
die Vorrichtung 300 in der Lage ist, ein Wasserzeichen
in einem Datenstrom von der DVD 190 nachzuweisen, während sie
mit einer hohen Geschwindigkeit kopiert wird.
-
Der
Busspion 120 kontrolliert nach wie vor die Rahmen bei ihrem
Durchlauf durch den Bus 102 und überprüft die Kopfteile der Rahmen,
um festzustellen, ob sie unabhängig
kodierte Rahmen sind. Im Falle der MPEG-2 überprüft der Busspion 102 den Kopfteil
des Rahmens, um festzustellen, ob der Rahmen ein I-Rahmen ist.
-
Wenn
sich herausstellt, dass dies der Fall ist, dann kopiert der Busspion 120 den
ausgewählten Rahmen
in einen lokalen Speicher 302. Dieser lokale Speicher 302 ist
vorzugsweise ein 32 kB-SDRAM. Der Verarbeitungsmodul 125 kann
dann die Inhalte aus dem lokalen Speicher 302 auslesen
und die Inhalte dem Wasserzeichendetektor 130, z.B. über den Bus 102,
bereitstellen. Wie oben erläutert
wurde, kann der Verarbeitungsmodul 125 zuerst die in dem lokalen
Speicher 302 gespeicherten Rahmen bearbeiten, um mindestens
einen DCT-Koeffizienten zu erhalten, und den mindestens einen DCT-Koeffizienten
dem Wasserzeichendetektor 130 zur Verfügung stellen.
-
Vorzugsweise
kopiert der Busspion 120 nur den Inhaltsteil des Rahmens
in den lokalen Speicher 302, anstelle den gesamten Rahmen
zu speichern. Auf diesem Wege ist die im lokalen Speicher 302 pro Rahmen
gespeicherte Datenmenge kleiner.
-
Es
kann sogar unnötig
sein, den gesamten Inhalt des I-Rahmens im lokalen Speicher 302 zu speichern.
Eine Anzahl von Scheiben aus dem I-Rahmen kann ausreichend sein.
Wenn ein Datenstrom wasserzeichenmarkiert wird, dann werden die
Wasserzeichendaten oft in verschiedenen Teilen eines Rahmens wiederholt,
so dass der Wasserzeichendetektor 130 sogar nur an einem
Teilrahmen tätig
werden kann. So braucht der Busspion 120 nur eine oder mehrere
Scheiben aus dem I-Rahmen zu speichern. Theoretisch kann es vorkommen,
dass eine Scheibe größer ist
als die Größe des lokalen
Speichers 302. In einem solchen Falle sind nur die ersten
32 kB einer Scheibe in dem lokalen Speicher 302 zu speichern. Das
sollte ausreichend sein, ein Wasserzeichen aufzufinden.
-
Wenn
mehrere I-Rahmen gespeichert werden, dann kann es vorteilhaft sein,
unterschiedliche Scheiben aus den unterschiedlichen I-Rahmen zu speichern.
Zum Beispiel wird die erste Scheibe des ersten I-Rahmens, die zweite
Scheibe des zweiten I-Rahmens usw. gespeichert. Alternativ werden
alle Scheiben des ersten I-Rahmens, die zweite sowie die weiteren
Scheiben des zweiten I-Rahmens, die dritte sowie die weiteren Scheiben
des dritten I-Rahmens usw. gespeichert. Auf diesem Wege wird der
Wasserzeichendetektor 130 mit einer repräsentativen
Abtastung des Datenstroms versorgt, weil die verschiedenen Scheiben
unterschiedliche Anteile der Szene darstellen, die in dem Videostrom
dargestellt wird. Wenn von allen I-Rahmen nur die erste Scheibe
zu speichern wäre,
dann könnte
es vorkommen, dass diese Scheiben alle ziemlich zusammenhängende Bereiche
darstellen, die keine ausreichenden Informationen mit sich führen, um
ein Wasserzeichen zuverlässig
aufzufinden.
-
In
diesem Beispiel der Vorrichtung 300 wechselwirken der Busspion 120,
der lokale Speicher 302, der Verarbeitungsmodul 125 und
der Wasserzeichendetektor 130 nur dadurch mit dem Rest
der Vorrichtung 100, dass Daten aus dem Bus 102 gelesen und
in ihn geschrieben werden. Das ermöglicht es, den Busspion 120,
den lokalen Speicher 302, den Verarbeitungsmodul 125 und
den Wasserzeichendetektor 130 als eine eigenständige Komponente 310, wie
z.B. einen integrierten Schaltkreis, auszuführen. Diese Komponente 310 kann
dann einzeln hergestellt und zu einer beliebigen Vorrichtung hinzugefügt werden,
für die
erwünscht
ist, dass sie in der Lage ist, ein Wasserzeichen während des
Schnellkopierens zuverlässig
aufzufinden.
-
Die
Komponente 310 kann alternativ ohne den Wasserzeichendetektor 130 hergestellt
werden, so dass die Komponente 310 und der Wasserzeichendetektor 130 als
zwei getrennte Einheiten verkauft werden können. Die Vorrichtung 300 kann
bereits einen Wasserzeichendetektor umfassen. Durch Hinzufügen einer
Komponente, die den Busspion 120, den lokalen Speicher 302 und
den Verarbeitungsmodul 125 enthält, kann die Vorrichtung 300 dann
Wasserzeichen bei einer hohen Geschwindigkeit zuverlässig auffinden.
Die Komponente 310 kommuniziert dann mit dem Wasserzeichendetektor 130 über den
Bus 102 oder über
eine gesonderte Verbindung.
-
Anstatt
dem Wasserzeichendetektor 130 die ausgewählten Rahmen
bereitzustellen, wäre
es vorstellbar, dass die ausgewählten
Rahmen auch einem weiteren Modul bereitgestellt werden könnten, der nur
einen Teil des Datenstroms benötigt.
Das erfindungsgemäße Verfahren
kann somit ganz allgemein in einem beliebigen Hochgeschwindigkeitssystem verwendet
werden, in dem nur ein Teil der Daten bei einer geringeren Geschwindigkeit
bearbeitet zu werden braucht. Zum Beispiel kann die Erfindung verwendet
werden, einen sogenannten Trickwiedergabestrom für einen Videostrom zu erzeugen.
Ein solcher Strom gibt den ursprünglichen
Videostrom wieder, weist jedoch eine weit geringere Anzahl von Rahmen
auf. Er wird durch Auswählen
z.B. der I-Rahmen aus einem MPEG-2-Videostrom und durch deren Bearbeitung
erzeugt, um einen neuen Videostrom zu erhalten. Wenn dieser neue
Videostrom wiedergegeben wird, dann erhält der Zuschauer den Eindruck,
dass er den ursprünglichen
Videostrom bei einer höheren
Wiedergabegeschwindigkeit betrachtet, die gewöhnlich mit der Schnellvorlauf-
oder Schnellrücklauf-Wiedergabe
verbunden wird. Wie oben dargelegt wurde, kann der Busspion 120 verwendet
werden, die I-Rahmen zu identifizieren, und der Verarbeitungsmodul 125 kann
diese Rahmen einem Trickwiedergabegenerator 180 zuführen.