-
BEREICH DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Anordnung
zum Verarbeiten eines komprimierten Mediensignals, wobei Abtastwerte
des genannten Mediensignals durch Codewörter variabler Länge entsprechend
einer ersten Codierungsregel dargestellt werden, wobei dieses Verfahren
die nachfolgenden Verfahrensschritte umfasst: das Decodieren selektierter
Codewörter
variabler Länge
zu betreffenden selektierten Signalabtastwerten; das Modifizieren
der genannten selektierten Signalabtastwerte entsprechend einem
bestimmten Signalverarbeitungsalgorithmus; das Codieren der modifizierten
Signalabtastwerte zu modifizierten Codewörtern variabler Länge entsprechend
der genannten ersten Codierungsregel; und das Testen, ob der genannte
Schritt der Codierung die Bitrate des komprimierten Mediensignals
verringert.
-
Die
vorliegende Erfindung bezieht sich insbesondere auf den Prozess
der Einbettung eines Wasserzeichens in ein MPEG codiertes Videosignal, wobei
die Signalabtastwerte DCT Koeffizienten sind.
-
Ein
derartiges Verfahren ist aus WO-A-9963505 bekannt.
-
Ein
anderes bekanntes Verfahren zum Einbetten eines Wasserzeichens in
ein komprimiertes Mediensignal ist in dem Artikel von F. Hartung
und B. Girod mit dem Titel: "Digital
Watermarking of MPEG-2 Codes Video in the Bitstream Domain", veröffentlicht
in "ICASSP" Heft 4, 1997, Seiten 2621–2624 beschrieben.
In dieser bekannten Veröffentlichung
ist das Mediensignal ein Videosignal, dessen Signalabtastwerte DCT
Koeffizienten sind, dadurch erhalten, dass die Bildpixel einer diskreten Kosinustransformation
ausgesetzt werden. Das Wasserzeichen ist eine DCT transformierte
Pseudo-Zufallsrauschsequenz. Das Wasserzeichen wird dadurch eingebettet,
dass die DCT transformierte Rauschsequenz den entsprechenden DCT
Koeffizienten hinzugefügt
werden. Die Null-Koeffizienten des MPEG-codierten Signals werden
nicht beeinträchtigt.
-
Ein
Problem bei dem bekannten Schema zum Einbetten eines Wasserzeichens
ist, dass Modifikation von DCT Koeffizienten in einem bereits komprimieren
Bitstrom die Bitrate ändert,
weil die DCT Koeffizienten durch Codewörter variabler Länge dargestellt
werden. Eine gesteigerte Bitrate ist meistens nicht akzeptierbar.
Der bekannte Einbetter überprüft deswegen
ob Übertragung
des mit einem Wasserzeichen versehenen Koeffizienten die Bitrate
steigert und überträgt den ursprünglichen
Koeffizienten in dem Fall. Aber auch eine Reduktion der Bitrate
ist nicht erwünscht.
In den MPEG Systemen kann beispielsweise eine Änderung der Bitrate zu einem Überfluss
oder Unterfluss der Puffer in dem Decoder führen, und eine Änderung
der Lage von Zeitinformation in dem Bitstrom herbeiführen.
-
In
dem in WO-A-9963505 beschriebenen Verfahren werden Nullen in die
Slices eingefüllt,
die durch die Modifikation kürzer
geworden sind, und zwar damit die Bitrate konstant bleibt. Aber
auch das Einfüllen
von Nullen hat bestimmte Nachteile.
-
AUFGABE UND ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist nun u. a. eine Aufgabe der vorliegenden Erfindung, ein Verfahren
zum Einbetten eines Wasserzeichens zu schaffen, das die oben genannten
Nachteile verringert.
-
Dazu
weist das Verfahren nach der vorliegenden Erfindung das Kennzeichen
auf, dass wenn das Ergebnis des Testes positiv ist, das Verfahren den
Schritt aufweist von Neucodierung eines Signalabtastwertes zu einem
längeren
Codewort nach einer zweiten Codierungsregel. Die genannte Neucodierung
zu längeren
Codewörtern
gleicht die durch den Wasserzeichenprozess verursachte Reduktion der
Bitrate aus. Der neu codierte Signalabtastwert ist vorzugsweise
aber nicht notwendigerweise der modifizierte Signalabtastwert.
-
Damit
es ermöglicht
wird, das komprimierte Signal zu decodieren, muss eine Decoder die
zweite Codierungsregel kennen. Dazu kann die zweite Codierungsregel
in dem Bitstrom mittransportiert werden. Die vorliegende Erfindung
wird aber mit Vorteil in Kombination mit Kompressionsnormen angewandt,
die bereits eine derartige Codierungsregel schaffen. Der MPEG Videokompressionsnorm
ist ein Beispiel davon. Die MPEG Norm schafft Codewörter mit
variabler Länge
für oft
auftretende Kombinationen (Paare) von Läufen von Null DCT Koeffizienten
und eines vorhergehenden oder nachfolgenden Nicht-Null DCT Koeffizienten.
Für statistisch
seltene Lauf/Pegelpaare definiert MPEG ein "Escape Coding" Verfahren, das ein relativ langes Codewort
mit einer festen Länge
schafft. Eine bevorzugte Ausführungsform
der vorliegenden Erfindung benutzt die Erkenntnis, dass die "Escape" Codierungsregel
auf jedes beliebige Lauf/Pegelpaar angewandt werden kann.
-
Die
vorliegende Erfindung ist insbesondere vorteilhaft, wenn der Wasserzeichenprozess
den zweiten Wert (d.h. einen Nicht-Null DCT Koeffizienten) der Lauf/Pegelpaare
in den ersten Wert (d.h. einen Null DCT Koeffizienten) modifiziert.
Ein derartiger Wasserzeichenprozess ist vorgeschlagen in der noch
nicht veröffentlichten
Europäischen
Patentanmeldung 01200277.0 (Aktenzeichen der Anmelderin: PHNL010062).
Dabei wird verursacht, dass ein Lauf/Pegelpaar in einen Lauf von
Nullen modifiziert wird, der daraufhin mit dem Lauf eines nachfolgenden
oder vorhergehenden Lauf/Pegelpaares vermischt wird. Dies verringert
die Bitrate wesentlich und berechtigt eine Neucodierung des neuen
Lauf/Pegelpaares nach der zweiten Codierungsregel zum Ausgleichen
der Reduktion der Bitrate.
-
Die
vorliegende Erfindung bezieht sich ebenfalls auf eine Anordnung
zum Verarbeiten eines komprimierten Mediensignals nach Anspruch
9.
-
KURZE BESCHREIBUNG DER
ZEICHNUNG
-
Ausführungsbeispiele
der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben.
Es zeigen:
-
1 eine
schematische Darstellung einer Anordnung zum Durchführen des
Verfahrens nach der vorliegenden Erfindung,
-
2A-2C und 3A-3C Diagramme
zur Erläuterung
der Wirkungsweise der Anordnung nach 1,
-
4 ein
Flussdiagramm der von einem Bitratensteuerungsprozessor aus 1 durchgeführten Vorgänge.
-
BESCHREIBUNG EINER BEVORZUGTEN
AUSFÜHRUNGSFORM
-
Obschon
die vorliegende Erfindung sich weder auf Videosignale noch auf einen
bestimmten Kompressionsstandard beschränkt, wird sie nun anhand einer
Anordnung zum Einbetten eines Wasserzeichens in ein Videosignal
beschrieben, das entsprechend dem MPEG2 Standard komprimiert ist.
Es sei bemerkt, dass das komprimierte Signal bereits ein eingebettetes
Wasserzeichen aufweisen kann. In dem Fall wird in das Signal ein
zusätzliches
Wasserzeichen eingebettet. Dieser Prozess der Markierung mit einem
Wasserzeichen eines bereits mit einem Wasserzeichen versehenen Signals
wird meistens als "Neumarkierung" bezeichnet.
-
1 zeigt
eine schematische Darstellung einer Anordnung zum Durchführen einer
bevorzugten Ausführungsform
des Verfahrens nach der vorliegenden Erfindung. Die Anordnung umfasst
eine Parsingeinheit 110, eine VLC Verarbeitungseinheit 120, eine
Ausgangsstufe 130, einen Wasserzeichenpuffer 140,
und einen Bitratensteuerungsprozessor 150. Die Wirkungsweise
der Anordnung wird anhand der 2A-2C und 3A-3C beschrieben.
-
Die
Anordnung empfängt
einen MPEG Videostrom MPin, der eine Folge
von Videobildern darstellt. Ein derartiges Videobild ist in 2A als
Beispiel dargestellt. Die Videobilder werden in Blöcke von
8 × 8
Pixeln aufgeteilt, von denen einer in 2A durch 210 bezeichnet
ist. Die Pixelblöcke
werden durch die betreffenden Blöcke
von 8 × 8
DCT Koeffizienten dargestellt. Der oberste linke Transformationskoeffizient
eines derartigen DCT Blocks stellt die mittlere Leuchtdichte des
entsprechenden Pixelblocks dar und wird allgemein als DC Koeffizient
bezeichnet. Die anderen Koeffizienten stellen räumliche Frequenzen dar und
werden als AC Koeffizienten bezeichnet. Die obersten linken Koeffizienten
stellen grobe Einzelheiten des Bildes dar, die untern rechten Koeffizienten
stellen feine Einzelheiten dar. Die AC Koeffizienten werden quantisiert.
Dieser Quantisierungsprozess sorgt dafür, dass viele AC Koeffizienten
eines DCT Blocks den Wert Null annehmen. 3A zeigt
ein typisches Beispiel eines DCT Blocks 310, das den Bildblock 210 in 2A darstellt.
-
Die
Koeffizienten des DCT Blocks sind sequentiell abgetastet, und zwar
entsprechend einem Zick-Zack-Muster (301 in 3A)
und sind codiert mit einer variablen Länge. Das Schema der Codierung
mit variabler Länge
ist eine Kombination von Huffman-Codierung
und Lauflängencodierung.
Insbesondere bildet jeder Lauf von Null AC Koeffizienten und eines
nachfolgenden Nicht Null AC Koeffizienten ein Lauf/Pegelpaar, das
in ein einziges Codewort einer variablen Länge codiert wird. Das Bezugszeichen 311 in 3A zeigt
die Reihe von Lauf/Pegel Paaren, die einen DCT Block 310 darstellen.
Ein "End-Of-Block"-Code (EOB) bezeichnet
das Fehlen weiterer Nicht-Null-Koeffizienten in dem DCT Block. Das
Bezugszeichen 312 in 3A zeigt
die Codewörter
mit variabler Länge
entsprechend dem MPEG2 Videokompressionsstandard.
-
In
einem MPEG2 Videostrom bilden vier derartige DCT Leuchtdichteblöcke und
zwei DCT Farbartblöcke
einen Makroblock, eine Anzahl Makroblöcke bilden einen Slice, eine
Anzahl Slices bilden ein Bild (Teilbild oder Vollbild) und eine
Reihe von Bildern bilden eine Videofolge. Einige Bilder werden autonom
codiert (I-Bilder), andere Bilder werden prädiktiv mit Bewegungskompensation
(P und B-Bilder) codiert. In dem letzteren Fall stellen die DCT
Koeffizienten Unterschiede zwischen Pixeln des heutigen Bildes und
Pixeln eines Bezugsbildes statt der Pixel selber dar.
-
Der
MPEG2 Videostrom MPin wird der Parsingeinheit 110 (1)
zugeführt.
Diese Parsingeinheit interpretiert teilweise den MPEG Bitstrom und spaltet
den Strom in Codewörter
mit variabler Länge, welche
die Leuchtdichte-DCT-Koeffizienten (nachstehend als VLCs bezeichnet)
darstellen, und andere MPEG Codes auf. Die Einheit sammelt auch
Information, wie: Koordinaten der Blöcke, den Codierungstyp (Teilbild
oder Vollbild), den Abtasttyp (Zick-Zack oder Wechsel). Die VLCs
und die assoziierte Information werden der VLC Verarbeitungseinheit 120 zugeführt. Die
anderen MPEG Codes werden unmittelbar der Ausgangsstufe 130 zugeführt.
-
Das
einzubettende Wasserzeichen ist eine pseudobeliebige Rauschsequenz
in der Pixeldomäne.
In dieser Ausführungsform
der Anordnung wird über
den Umfang des Bildes ein 128 × 128
Basis-Wasserzeichenmuster "gestapelt". Dieser Stapelvorgang
ist in 2B dargestellt. Das 128 × 128 pseudobeliebige
Basis-Wasserzeichenmuster ist hier zur besseren Visualisierung als
ein Symbol W dargestellt. Die räumlichen
Rauschwerte des Basis-Wasserzeichens werden in dieselbe Darstellung
wie den Video-Inhalt in dem MPEG-Strom
transformiert. Dazu wird das 128 × 128 Basis-Wasserzeichenmuster
auf gleiche Art und Weise in 8 × 8
Blöcke
aufgeteilt, wobei einer derselben in 2B durch 220 bezeichnet ist.
Die Blöcke
werden diskret kosinustransformiert und quantisiert. Es sei bemerkt,
dass der Transformations- und Quantisierungsvorgang nur einmal durchgeführt zu werden
braucht. Die auf diese Weise berechneten DCT Koeffizienten werden
in dem 128 × 128
Wasserzeichenpuffer 140 der Anordnung gespeichert.
-
Der
Wasserzeichenpuffer 140 ist mit der VLC Verarbeitungseinheit 120 verbunden,
wobei die wirkliche Einbettung des Wasserzeichens stattfindet. Die VLC
Verarbeitungseinheit decodiert (121) selektierte Codewörter variabler
Länge,
die das Videobild in Lauf/Pegelpaaren darstellen, und verwandelt
die Lauf/Pegelpaare in eine zweidimensio nale Anordnung von 8 × 8 DCT
Koeffizienten. Das Wasserzeichen wird in einer Modifikationsstufe 123 dadurch eingebettet,
dass jedem Videoblock der räumlich
entsprechende Wasserzeichenblock hinzugefügt wird. Der Wasserzeichenblock 220 (2B)
wird auf diese Weise dem räumlich
entsprechenden Bildblock 210 hinzugefügt (2A). Dieser
Vorgang wird in der DCT Domäne
durchgeführt.
Nach einer bevorzugten Ausführungsform
der vorliegenden Erfindung werden nur DCT Koeffizienten, die durch
diesen Vorgang in Null Koeffizienten zum Einbetten des Wasserzeichens
selektiert werden. So werden beispielsweise die Koeffizienten mit
dem Wert 2 in 3A nur dann modifiziert, wenn
die entsprechenden Wasserzeichenkoeffizienten den Wert -2 haben.
In mathematischer Notierung:
wenn cin(i,j)+w(i,j)
= 0
dann cout(I,j) = 0
sonst cout(I,j) = cin(i,j)
wobei
cin ein Koeffizient eines Video DCT Blocks
ist, wobei w ein Koeffizient des räumlich entsprechenden Wasserzeichen
DCT Blocks ist und wobei cout ein Koeffizient
des mit einem Wasserzeichen versehenen Video DCT Block ist. Nach
einer weiteren Ausführungsform
werden nur die Vorzeichen der DCT Koeffizienten des Wasserzeichenmusters
in dem Wasserzeichenpuffer 140 gespeichert, so dass der
Puffer nur +1 und -1 Werte speichert. Dies reduziert die Speicherkapazität des Puffers
auf 1 Bit je Koeffizienten (128 × 128 Bits insgesamt). Versuche
haben gezeigt, dass es ausreicht Wasserzeicheneinbettung nur auf
die signifikantesten DCT Koeffizienten anzuwenden (die signifikantesten
Koeffizienten sind diejenigen, die als erste in der Zick-Zack-Abtastung
auftreten). Dies reduziert die Speicheranforderungen noch weiter. 3B zeigt
ein typisches Beispiel eines Wasserzeichenblocks 320 in
der DCT Domäne, entsprechend
dem Rauschblock 220 in 2B.
-
3C zeigt
einen mit einem Wasserzeichen versehenen Video DCT Block 330,
erhalten durch die oben beschriebene "Hinzufügung" des Wasserzeichen DCT Blocks 320 zu
dem Video DCT Block 310. Es dürfte einleuchten, dass die
Anzahl Null Koeffizienten in dem DCT Block durch diesen Vorgang
gesteigert wird. In diesem speziellen Beispiel werden zwei Nicht-Null
Koeffizienten in Null Koeffizienten umgewandelt. Sie sind in 3C schraffiert
dargestellt. Die neuen Null Koeffizienten vermischen sich mit Läufen anderer
Lauf/Pegelpaare. Das Bezugszeichen 331 in 3C zeigt
die Lauf/Pegelpaare des mit einem Wasserzeichen versehenen DCT Blocks 330.
Das vorhergehende Lauf/Pegelpaar (1/- 1) und 0/2) sind mit einem neuen Lauf/Pegelpaar
(2/2) vermischt und die vorhergehenden Lauf/Pegelpaare (2/1) und
(7/-1) sind mit einem neuen Lauf/Pegelpaar (10/-1) vermischt.
-
Die
neuen Lauf/Pegelpaare werden neu codiert. In der Anordnung, die
in 1 dargestellt ist, wird die genannte Neucodierung
durch einen Codierer 124 mit variabler Länge und
durch einen Codierer 125 mit fester Länge durchgeführt. Die
Codierer 124 und 125 entsprechen dem betreffenden
Kompressionsstandard. In diesem Beispiel entsprechen sie der DCT
Koeffiziententabelle von MPEG, die kurze Codewörter variabler Länge für oft auftretende
Lauf/Pegelpaare und lange "Escape
Codes" mit fester
Länge (24
Bits) für
andere Lauf/Pegelpaare definiert. Das Bezugszeichen 332 in 3C zeigt
das Ausgangssignal des Codierers 124 mit variablen Länge in Reaktion
auf den Empfang von Lauf/Pegelpaaren 331. Es scheint, dass
der Wasserzeicheneinbettungsprozess 4 Bits gesichert hat, dies im
Vergleich zu dem entsprechenden Eingang 312 (siehe 3A). Ähnliche Bitkostenreduktionen
können
in vorhergehenden Blöcken
aufgetreten sein.
-
Die
vorliegende Erfindung benutzt die Erkenntnis, dass eine "Escape" Codierungsregel
mit fester Länge
von MPEG auch auf Lauf/Pegelpaare mit einem Eingang in der Codierungstabelle
mit variabler Länge
angewandt werden kann. Der Codierer 125 erzeugt das Codewort
fester Länge
für jedes (oder
wenigstens jedes neues) Lauf/Pegelpaar. Ein selektor 126 selektiert
das von dem Codierer 124 erzeugte Codewort variabler Länge oder
das von dem Codierer 125 erzeugte Codewort fester Länge. Die Selektion
wird von dem Bitratensteuerungsprozessor 150 gesteuert.
-
4 zeigt
ein Flussdiagramm von Vorgängen,
durchgeführt
von dem Bitratensteuerungsprozessor 150. In einem Schritt 401 folgt
der Prozessor der kumulativen Differenz DIF zwischen der Anzahl Bits
in dem Eingangsstrom MPin und der Anzahl
Bits in dem Ausgangsstrom MPout. Der Prozessor
empfängt
auch die Längen
nv der von dem VLC Codierer 124 erzeugten
Codewörter
und kennt die Längen
nf (hier 24) der von dem FLC Codierer 125 erzeugten Codewörter. Solange
es sich herausstellt, dass die kumulative Differenz DIF kleiner
ist als nf-nv (in
einem Schritt 402) steuert der Prozessor den Selektor 126, in
dem Schritt 403 das Codewort mit variabler Länge zu selektieren.
Wenn die kumulative Differenz nf-nv übersteigt,
wird das längere
Codewort mit fester Länge
in einem Schritt 404 selektiert.
-
Das
Bezugszeichen 333 in 3C zeigt
ein etwaiges Ergebnis dieses Selektionsprozesses. Selektion des
Codewortes variabler Länge
für das
neue Lauf/Pegelpaar (2/2) mit einer Länge nv=8
sorgt dafür,
dass die Kumulative Differenz um 1 gesteigert wird, weil die vorhergehenden
Lauf/Pegelpaare (1/-1)(0/2) eine Länge 9 hatte. Selektion des
Codewortes variabler Länge
für das
neue Lauf/Pegelpaar (10/-1) mit nv=9 sorgt
dafür,
dass die kumulative Differenz um 3 gesteigert wird, weil die vorhergehenden Lauf/Pegelpaare
(2/1)(7/-1) eine Länge
12 hatten. Diese letztere Selektion bringt die kumulative Differenz
in Gefahr, dass der Wert von 15 überschritten wird.
In Reaktion darauf selektiert der Prozessor den 24 Bit Code fester
Länge.
-
Die
auf diese Art und Weise selektierten Codewörter werden danach der Ausgangsstufe 130 zugeführt, die
das mit einem Wasserzeichen versehene Ausgangssignal MPout liefert. 2C zeigt
das mit einem Wasserzeichen versehene Bild. Der in dieser Figur
durch 230 bezeichnete Pixelblock entspricht dem mit einem
Wasserzeichen versehenen Video DCT Block 330 in 3C.
Wie in 2C auszudrücken versucht wurde, variiert
der Betrag an Wasserzeicheneinbettung von Block zu Block und von
Stapel zu Stapel.
-
Es
sei bemerkt, dass es nicht unbedingt notwendig ist, dass das neue
Lauf/Pegelpaar von dem Wasserzeicheneinbettungsprozess geschaffen
wird, das mit fester Länge
codiert wird. Ein nicht modifiziertes Lauf/Pegelpaar kann auch mit
fester Länge
codiert sein. Es wird nun vorausgesetzt, dass der Wasserzeicheneinbettungsprozess
auch den letzten Nicht-Null Koeffizienten eines Blocks (d.h. den
Koeffizientenwert -1 in 3A) in
einen Null Koeffizienten zu verwandeln. Das betreffende Lauf/Pegelpaar ((7/-1)
in 3A) wird danach aus dem Bitstrom entfernt. In
dem Fall wird erwogen, ein vorhergehendes nicht modifiziertes Lauf/Pegelpaar
mit fester Länge zu
codieren (siehe (1/1) in 3C).
-
Es
wird ein Verfahren und eine Anordnung zum Verarbeiten eines komprimierten
Mediensignals beschrieben, beispielsweise das Einbetten eines Wasserzeichens
in ein MPEG2 Videosignal. Das Wasserzeichen, ein räumliches
Rauschmuster (140), wird durch selektives Ablegen der kleinsten
quantisierten DCT Koeffizienten eingebettet. Die abgelegten Koeffizienten
werden nacheinander in den Läufen anderer
Lauf/Pegelpaare vermischt. Zum Ausgleichen einer zu großen Reduktion
der Bitrate werden einige der neuen Lauf/Pegelpaare nicht mit variabler Länge codiert
(124) sondern durch längere
Code wörter
dargestellt, und zwar entsprechend einer weiteren Codierungsregel
(125), die derartige längere
Codewörter
liefert, beispielsweise "Escape" Codierung von MPEG.