2007/20 – 30.5.2007
Vodoznačení video obsahu Bc. Jiří Hošek Email:
[email protected] Ústav Telekomunikací, FEKT, VUT v Brně Tento článek je zaměřen na problematiku vodoznačení a zejména pak na techniky vkládání vodoznaku do digitálního videa ve frekvenční oblasti. Blíže je popsána metoda vkládání vodoznaku ve frekvenční oblasti využívající diskrétní kosinovou transformaci, pro kterou byl vypracován návrh algoritmu vodoznačení. Tato technika vodoznačení byla zvolena mimo jiné pro její dobrou odolnost proti transformacím a kompresím označeného videa. Dále je uveden popis aplikace Watermark 2.0, která byla vytvořena na základě teoretického návrhu algoritmu. Aplikace byla realizována v jazyce JAVA a umožňuje vkládání a následnou detekci vodoznaku ve zvoleném video souboru.
1. Úvod S rozvojem internetu se velmi rychle začala objevovat tzv. digitální data. Pod tímto pojmem si lze představit audio signály, obrazové nebo video signály, ale také třeba elektronické texty a další data, která je možné v elektronické podobě ukládat a různými způsoby zpracovávat. Všechna tato digitální data se díky Internetu začala rychle rozšiřovat, což přineslo řadu výhod, jako například jejich snadné sdílení a dostupnost prakticky po celém světě. Zároveň se však objevil také nový dosud neznámý problém, kterým se stalo šíření nelegálních kopií těchto digitálních dat a nedodržování autorských práv. Každý, kdo měl přístup na Internet, si mohl prakticky zadarmo a bez jakýchkoli problémů či postihů digitální dílo zkopírovat a vydávat je za svoje vlastní. Toto samozřejmě poškozovalo pravé autory, kterým šíření nelegálních kopií způsobovalo duševní a materiální ztráty. Na ochranu digitálních dat se tedy začaly vyvíjet různé techniky. Velmi spolehlivou a v dnešní době často používanou metodou je metoda vkládání vodoznaku do digitálních dat – vodoznačení (watermarking). Cílem této techniky je zabezpečit autentizaci digitálních dat a tím pádem také autorská práva [7]. Technika digitálních vodoznaků je definovaná jako vložení nadbytečné informace – vodoznaku do multimediálních dat tak, aby změna těchto dat byla lidskými smysly nepostřehnutelná. [4]
2. Digitální vodoznak Digitální vodoznačení tedy znamená přidávání digitální informace do originálních dat takovým způsobem, že je to pro člověka nepostřehnutelné, ale zároveň snadno detekovatelné počítačovými algoritmy. Digitální vodoznak je většinou transparentní, neviditelný informační obrazec, který je vkládán do vhodných složek zdrojových dat užitím specifických algoritmů. Digitální vodoznaky jsou signály přidané do digitálních dat (audio, video, statický obraz, atd.), které mohou být kdykoli detekovány a vytaženy za účelem potvrzení pravosti zdrojových dat [3].
2007/20 – 30.5.2007 Základní princip většiny dnešních systémů s vodoznaky je podobný symetrickým kryptosystémům, neboť je založen na použití stejného klíče k vložení i detekci vodoznaku. Každý zabezpečovací systém využívající vodoznaky se skládá ze dvou hlavních bloků – blok vkládání a blok detekce / vytažení vodoznaku. Obecně se dá tento systém popsat množinou (O, W, K, EK, DK, Cτ), kde O představuje originální data, W značí vodoznak, K je šifrovací klíč, EK značí proces vkládání, DK proces detekce a Cτ je porovnávací funkce [1]. Šifrovací klíč může, ale nemusí být součástí bloku vkládání. Jeho použití však zvyšuje bezpečnost vloženého vodoznaku a tím se zároveň zvyšuje ochrana originálních dat před neautorizovanými operacemi. Následující dvě funkce [1] EK : O ×W × K → O
(2.1)
DK : O × K → W
popisují vkládání a detekci vodoznaku. EK značí proces vkládání a DK značí proces vytažení vodoznaku. Porovnávací funkce [1]
Cτ : W 2 → {0,1}
(2.2)
porovnává pomocí prahu τ extrahovaný vodoznak s původně vloženým a tím je dosaženo výsledku porovnání. Práh je závislý na zvoleném algoritmu a měl by jednoznačně určit, zda se jedná o originální vodoznak nebo ne. Vstupní parametry procesu vkládání jsou originální data C0, vodoznak W a tajný nebo veřejný klíč K. Následující funkce
E K ( C 0 , W ) = CW ,
(2.3)
stejně jako Obr. 1 [3] ukazuje princip vložení vodoznaku.
Vodoznak
W Originální data
Blok vložení
C0
vodoznaku
K Tajný klíč (volitelně)
Obr. 1 Blok vložení vodoznaku
20-2
Označená data
Cw
2007/20 – 30.5.2007 Extrakce vodoznaku je proces vytažení vodoznaku z testovaných dat tak, aby ho bylo možné porovnat s vloženým vodoznakem. Shoda vodoznaků potvrzuje vložení vodoznaku do testovaných dat, tedy zajišťuje autenticitu dat [3]. Detekce vodoznaku je rozhodovací proces, jehož výsledkem je zjištění, zda zdrojová data byla nebo nebyla označena vodoznakem [3]. Proces vytažení (extrakce) vodoznaku (Obr. 2) [3] je inverzní operací k procesu vložení. Vstupními parametry jsou vodoznak, testovaná (vodoznačená) data, originální data a tajný klíč. Počet vstupních parametrů procesu detekce vodoznaku se může lišit podle použité metody vodoznačení. Výstupem je extrahovaný vodoznak a výsledek detekce – tedy míra shody extrahovaného vodoznaku s vloženým vodoznakem [1].
Originální vodoznak
Vytažený vodoznak
W
W‘
Originální data
C0 Testovaná data
Blok detekce / vytažení vodoznaku
C0‘
K
Výsledek detekce vodoznaku {0,1}
Tajný klíč
Obr. 2 Blok detekce / vytažení vodoznaku
Efektivní systémy vkládání vodoznaku by měly splňovat několik základních požadavků. Přesto, že si některé požadavky odporují a závisí na konečné aplikaci zabezpečovacího systému, je obecnou snahou jejich dodržování v co nejvyšší míře. Dále jsou tedy uvedeny požadavky na systémy vkládání vodoznaku [2]. •
Nevnímatelnost: Změny způsobené vložením vodoznaku by neměly přesáhnout práh citlivosti zraku nebo sluchu člověka. Je tedy důležité dobře zvolit práh, pod kterým vzorky vodoznaku nezpůsobí vnímatelné zvukové nebo optické změny. Vodoznak je tedy považován za nevnímatelný nebo neviditelný, pokud je nepostřehnutelný lidskými smysly. Toto rozhodování a volba prahu je založeno na vlastnostech lidského zraku (HVS) a sluchu (HAS).
•
Odolnost: Nemělo by být možné bez znalosti použité metody a tajného klíče odstranit vodoznak nebo jej učinit nečitelným. Odolnost je myšlena také ve smyslu odolnosti proti různým modifikacím zdrojových dat. Modifikace mohou být úmyslné (útoky) nebo neúmyslné (komprese, filtrace šumu, změna velikosti, atd.). Odolnost proti kompresi je velmi důležitá zejména v oblasti statických obrazů a videa. Odolnost je jedna z velice důležitých vlastností vodoznaku.
•
Bezpečnost: Bezpečnost většiny dnešních systémů s vodoznaky je založena na používání jednoho nebo několika kryptografických klíčů, což ztěžuje přístup a následné odstranění vodoznaku. 20-3
2007/20 – 30.5.2007 •
Složitost: Složitost popisuje úsilí vynaložené na odstranění vodoznaku. Používaným parametrem pro vyhodnocení složitosti je množství času. Obecně je doporučeno navrhovat algoritmy vkládání vodoznaku tak náročné, aby jejich prolomení trvalo útočníkovi takovou dobu, po které by se odstranění vodoznaku stalo již bezvýznamné.
•
Spolehlivost detekce: Vodoznak by měl představovat dostatečný a spolehlivý důkaz o vlastnických právech k testovaným datům.
•
Statistická nedetekovatelnost: Neautorizovaná osoba by neměla být schopna na základě statistických metod odstranit vodoznak. To znamená, že ani vlastnictví velkého počtu digitálních prací označených stejným vodoznakem, by nemělo umožnit jeho detekci. Možným řešením je použití obsahově nebo časově závislých vodoznaků.
•
Kapacita: Kapacita udává množství informace, které může být uloženo do zdrojových dat. Obecně je množství informace, které je možné vložit do zdrojových dat omezené, proto se ve většině systémů s vodoznaky zvolí kompromis, který je závislý na typu zdrojových dat a konkrétní aplikaci. Kapacita vodoznaku je velmi důležitá vlastnost a úzce souvisí s odolností. Pokud totiž zdrojová data obsahují velké množství vložených informací, stává se vodoznak, v případě útoku, snáze detekovatelným. Naproti tomu při vložení minimálního počtu informačních bitů, která jsou obsažena jen ve velmi malé oblasti zdrojových dat, je vodoznak prakticky odstraněn jakoukoli modifikací zdrojových dat. Je tedy vždy důležité dobře rozhodnout jaké množství vložené informace je vhodné pro konkrétní případ.
Žádná ze současných technik digitálních vodoznaků však zatím nedokázala naplno splnit všechny výše popsané požadavky. Tři nejdůležitější – nevnímatelnost, odolnost a bezpečnost jsou zobrazeny na „trojúhelníku požadavků“ (Obr. 3) [2], který ukazuje, že jestliže jeden požadavek převažuje, zbylé dva jsou oslabené. Například požadavek na vysokou odolnost vodoznaku způsobí viditelné změny ve výsledných datech a naopak.
Odolnost
Nevnímatelnost
Bezpečnost
Obr. 3 Trojúhelník požadavků na digitální vodoznak
20-4
2007/20 – 30.5.2007
3. Základní metody digitálního vodoznačení V 90. letech 20. století začal intenzivní vývoj v oblasti vodoznačení. Od té doby bylo navrženo a vyvinutu mnoho metod, které se dají použít na označení různých druhů digitálních médií. Bylo představeno velké množství metod a algoritmů s využitím znalostí z oblasti steganografie, zdrojového kódování a komunikací. [7] Mezi základní metody (techniky) vodoznačení patří například metoda LSB – metoda nejméně významného bitu, která využívá existujícího digitálního šumu, obsaženého v různých digitálních zdrojových datech, jako nosný signál pro informaci vodoznaku. Jiné techniky generují pseudonáhodné posloupnosti k začlenění vypočtené bitové informace do různých oblastí digitálních dat. Další metody využívají fraktální, vektorové nebo časově proměnné techniky. Existují také metody, které využívají techniky rozprostření spektra. Další poměrně rozšířenou oblastí jsou metody založené na různých typech transformací, jako je například diskrétní kosinová (DCT), rychlá fourierova (FFT), waveletová (WT) nebo fraktálová transformace [1]. Současné metody digitálního vodoznačení se rozdělují podle oblasti vkládání vodoznaku do zdrojových dat. Podle tohoto kritéria lze techniky digitálního vodoznačení rozdělit do třech hlavních skupin, které jsou znázorněny na Obr. 4.
Oblast vkládání vodoznaku
Časová (obrazová) oblast
Transformační oblast
Parametrická oblast
Obr. 4 Rozdělení metod digitálního vodoznačení podle oblasti vkládání vodoznaku
Metody v časové (obrazové) oblasti Tyto metody realizují modifikaci vzorků řečových nebo obrazových signálů. Metody vložení vodoznaku v časové oblasti, které se aplikují na obrazové signály, se také někdy nazývají jako metody vložení vodoznaku v obrazové oblasti. U těchto metod se v případě nevnímatelných vodoznaků využívá nedokonalosti lidského zraku v tom smyslu, že člověk dokáže rozeznat maximálně 90 přechodů jasových úrovní [3]. Při vyšším počtu přechodů již není schopný zaregistrovat malé změny v těchto přechodech. Tohoto principu využívá také dobře známá a používaná technika vodoznačení v časové oblasti – metoda modifikace LSB bitů, která se používá jak u statických obrazů, tak také u audio signálů.
Metody v transformační (frekvenční) oblasti Metody v transformační oblasti jsou velmi často využívanými metodami vodoznačení a existuje velké množství jejich variant. Tyto metody realizují modifikaci transformačních
20-5
2007/20 – 30.5.2007 koeficientů zdrojových dat. Při vkládání vodoznaku se nejprve musí provést transformace zdrojových dat do prostoru transformačních koeficientů. Vhodnými a často používanými transformacemi jsou diskrétní kosinová a diskrétní waveletová transformace. Po provedení transformace jsou realizovány samotné modifikace transformačních koeficientů. Zpětnou transformací modifikovaných koeficientů se získávají původní data, v kterých je obsažen vodoznak [1]. Metody v transformační oblasti se většinou používají pro digitální vodoznačení obrazových signálů a videa a obecně mají všechny stejný postup vložení vodoznaku, který je zobrazen na Obr. 5 [3]. Tento algoritmus se liší pouze v použitých transformacích a ve výběru a způsobu modifikace transformačních koeficientů.
Originální obraz
Vodoznak
Transformace
Permutace
Transformační Permutovaný vodoznak
oblast originálního obrazu Vložení vodoznaku
+ Inverzní transformace Obraz s vodoznakem
Obr. 5 Obecný postup vložení vodoznaku v transformační oblasti
20-6
2007/20 – 30.5.2007 Proces vytažení vodoznaku vyžaduje originální obraz, obraz s vodoznakem a tajný klíč (pokud byl použit při vkládání ). Proces extrakce vodoznaku je znázorněn na Obr. 6 [3].
Originální
Obraz s vodoznakem
obraz Transformace
Transformace
Transformační
Transformační
oblast
oblast
originálního obrazu
obrazu s vodoznakem
Vytažení permutovaného vodoznaku
Depermutace
Extrahovaný vodoznak
Obr. 6 Obecný postup vytažení vodoznaku v transformační oblasti
Metody využívající diskrétní kosinové transformace Metody založené na diskrétní kosinové transformaci mají v oblasti vodoznačení velké zastoupení. Hlavní výhodou DCT je její využívání v kompresních standardech JPEG a MPEG a to je také důvod, proč je DCT často používaná při vodoznačení digitálního obrazu a videa. Vkládání vodoznaku podle principů založených na DCT často ve výsledku znamená, že vložený vodoznak je pak více odolný vůči JPEG a MPEG kompresím. Vodoznačení v DCT oblasti nabízí možnost přímého vkládání vodoznaku do komprimovaných dat a tím tedy snížení celkové doby potřebné k provedení všech operací [1, 7].
20-7
2007/20 – 30.5.2007 Metoda s využitím DCT je založená na rozdělení zdrojového signálu do bloků, kdy je každý blok transformován samostatně. Používaná velikost bloků je 8 x 8 pixelů (obrazových bodů). Výpočet 2D-DCT koeficientů obrazu o velikosti N x N se provádí podle vztahu [3], N −1 N −1
y0 (i, j ) = c(i, j )∑∑ i0 (m, n) cos
π (2m + 1)i 2N
n= 0 m =0
cos
π (2n + 1) j 2N
,
(3.1)
kde c(0,j) = 1/N, c(i,0) = 1/N, c(i,j) = 2/N pro i,j ≠ 0 Aby mohl být získán obraz s vloženým vodoznakem, je třeba jako poslední krok procesu vložení vodoznaku provést zpětnou diskrétní kosinovou transformaci. Výpočet koeficientů IDCT se provádí podle vztahu [3] N −1 N −1
i 0 (m, n) = ∑∑ c(i, j ) y 0 (i, j ) cos i =0 j =0
π (2m + 1)i 2N
cos
π (2n + 1) j 2N
.
(3.2)
Většina energie obrazu je soustředěna v nízkofrekvenční oblasti. Vysokofrekvenční složky reprezentují pouze malou část energie obrazu, obsahují pouze informace o detailech obrazu. Proto je tedy vždy důležité určit hlavní požadavky na vodoznak nebo na konkrétní aplikaci. Pokud by byl vodoznak vložen do nízkofrekvenční oblasti, dosáhlo by se vysoké odolnosti proti různým modifikacím, ale zároveň by tento postup mohl způsobit viditelné změny ve vodoznačeném obraze. Pokud je požadována vysoká nevnímatelnost, vodoznak se vkládá do vysokofrekvenční oblasti, tím je ale získán velice málo odolný vodoznak, který může být například snadno odfiltrován klasickou filtrací na potlačení šumu. Tyto vlastnosti vyplývají z charakteristiky citlivosti lidského oka. Na základě rozboru zmíněných podmínek je vhodnou oblastí pro vložení vodoznaku oblast středních frekvencí, tato oblast je kompromisem mezi odolností a viditelností vodoznaku [7].
Metody v parametrické oblasti Metody vložení vodoznaku v parametrické oblasti jsou založené na modifikaci některých parametrů originálního signálu. Aby bylo možné měnit vybrané parametry, je třeba původní signál nejprve přetransformovat do parametrické oblasti. Jednou z používaných technik je například metoda vkládání vodoznaku založená na fraktálovém popisu obrazu, kdy bývají upravovány parametry jasu nebo kontrastu. Další metodou vodoznačení v parametrické oblasti je metoda založená na změně matice barevné palety RGB, kde je upravován například parametr sytosti barvy. Výsledné vodoznaky, vložené metodou využívající fraktálové kódování, jsou odolné zejména proti kompresi nebo filtrování signálu.
20-8
2007/20 – 30.5.2007
4. Návrh algoritmu vodoznačení videa Video je ve skutečnosti proud samostatných rychle po sobě jdoucích snímků, proto je k jeho vodoznačení možné použít téměř všechny částečně upravené metody vodoznačení statických obrazů. Pro vlastní softwarovou realizaci vodoznačení video obsahu byla vybrána metoda z frekvenční oblasti založená na diskrétní kosinové transformaci. Důvodem tohoto výběru bylo zejména to, že vodoznaky, jejichž základem je DCT, jsou dobře odolné proti ztrátové kompresi a v současné době jsou velice často používané. Jak již bylo uvedeno, metody vodoznační video obsahu vycházejí z metod pro vodoznační statických obrazů, proto i většina požadavků na proces vkládání a výsledný vodoznak je stejná jako u vodoznačení statických obrazů. Některé požadavky jsou však specifické pouze pro video, příkladem je požadavek na souvislé vodoznačení. Při návrhu algoritmu vodoznační videa byl tedy kladen důraz na tyto následující požadavky:
Možnost souvislého vodoznačení (označení všech snímků)
Náhodný výběr bloků pro vložení vodoznaku
Vodoznak v podobě statického obrazu
Snaha o co největší nevnímatelnost
Zachování kvality videa
Odolnost proti běžným úpravám videosignálu
Algoritmus vložení vodoznaku Navržený algoritmus vložení vodoznaku ve frekvenční oblasti s využitím metody založené na DCT je rozdělen do těchto kroků: 1. Načtení video souboru Prvním krokem je načtení originálního video souboru. 2. Rozdělení videa na jednotlivé snímky a výběr snímků pro vodoznačení Aby bylo možné do videa vkládat a následně detekovat vodoznak, je třeba rozložit video na jednotlivé snímky. S tímto bodem také souvisí požadavek na souvislé vodoznačení. Existuje totiž několik možností, jak vybrat snímky, do kterých bude vložen vodoznak. Je možné zvolit jen některé, pokud jich však vybereme pouze malé množství, pak takto vzniklý vodoznak je možné odstranit vynecháním těchto snímků, aniž by to bylo patrné ve výsledném obraze. Výhodnější je tedy označovat všechny snímky, nebo alespoň jejich dostatečný počet. Tím totiž získáme souvislý vodoznak, který není tak snadné odstranit.
20-9
2007/20 – 30.5.2007 3. Převod vybraných snímků z formátu RGB do formátu YCBCR Data snímků originálního videa jsou načtena ve formátu RGB, tedy každý pixel je definován třemi hodnotami – R (Red), G (Green), B (Blue). Z těchto tří složek se pak složí výsledná barva každého obrazového bodu. Hodnoty jednotlivých složek RGB bývají často uváděny v celočíselném rozsahu 0 – 255. Hodnota 0 znamená, že složka není zastoupena, maximální hodnota 255 značí, že složka nabývá své největší intenzity. Pro výpočet diskrétní kosinové transformace je však třeba převést data z formátu RGB do formátu YCBCR, jehož hlavní vlastností je oddělení jasové složky od barevných informací [5]. Důvodem převodu je také to, že je poté možné zvolit, zda bude vodoznak vložen do jasové nebo barevné složky. Převod z RGB do YCBCR se provádí podle následující rovnice [5]
Y = 0.299 R + 0.587G + 0.114 B C B = 0.564( B − Y )
(4.1)
C R = 0.713( R − Y )
4. Rozdělení vybraných snímků na bloky a výběr bloků pro vložení vodoznaku Následujícím krokem je rozdělení vybraných snímků na bloky 8 x 8 obrazových bodů, což je vhodná velikost pro následný výpočet DCT koeficientů. Metody vodoznačení využívající diskrétní kosinovou transformaci většinou do výsledného obrazu zanášejí určité zkreslení. Aby toto zkreslení nebylo příliš velké, nevkládá se vodoznak do všech bloků snímku, ale pouze do několika vybraných. Tento výběr bude v tomto konkrétním návrhu prováděn na základě pseudonáhodné posloupnosti, kdy se stanoví, kolik bloků z každého snímku bude použito pro vodoznačení a konkrétní bloky jsou vybrány podle vygenerované PN posloupnosti. Pro větší bezpečnost vodoznaku bude pro každý snímek videa vygenerována jiná PN posloupnost. 5. Stanovení oblasti pro vkládání vodoznaku Tím, že byl každý vybraný snímek videa převeden do formátu YCBCR, který má oddělenou jasovou složku od barevných, je možné zvolit, do které oblasti bude vodoznak vložen. Vodoznak vložený do jasové oblasti je více odolný vůči různým transformacím obrazu, ale zároveň je také v obraze více viditelný. Naproti tomu vodoznaky vložené do barevné oblasti jsou méně odolné vůči transformacím, ale nabízejí větší míru nevnímatelnosti. Aplikace bude koncipována tak, že si uživatel bude moci zvolit, do které oblasti požaduje vodoznak vložit. 6. Výpočet DCT pro vybraný blok Výpočet koeficientů DCT podle vztahu (3.1) je základním výpočtem celé metody. Výstupem je pak matice 8 x 8 DCT koeficientů pro vybraný blok obrazu. 7. Výběr DCT koeficientů pro vložení vodoznaku Mimo výběru bloků je třeba provést také výběr DCT koeficientů, které budou ovlivněny vodoznakem. Stejně jako u předchozího výběru bloků se vodoznak nevkládá do všech DCT koeficientů vybraného bloku. Výběr koeficientů v rámci
20-10
2007/20 – 30.5.2007 každého bloku se provádí buď podle pseudonáhodného klíče nebo se určí napevno, což bude použito i v tomto konkrétním algoritmu. 8. Výběr vodoznaku a jeho úprava Jako vodoznak lze použít různá data. Jedna z možností je použití statického obrazu, který je postupně vkládán do vybraných video snímků. Takovýto obraz se však musí nejprve transformovat do podoby vhodné pro vložení. Další možností je pseudonáhodná posloupnost čísel se stejnou délkou, jako je celkový počet vybraných koeficientů pro vložení vodoznaku [2]. V takovém případě pak odpadá nutnost jakékoli dodatečné úpravy koeficientů vodoznaku. V tomto konkrétním algoritmu však bude jako vodoznak použit statický obraz. Tento obraz je před jeho použitím třeba nejprve převést do binární podoby, tedy aby jeho pixely nabývaly pouze hodnot 0 nebo 255. 9. Vložení vodoznaku Samotné vložení vodoznaku je možné provést několika způsoby. Jeden z nich je pouhé sečtení hodnot vybraných koeficientů s příslušnou hodnotou vodoznaku. Dalším možností, která bude použita i v navrhované aplikaci, je záměna vybraných DCT koeficientů v závislosti na vodoznaku. Z každého vybraného bloku jsou vybrány dva koeficienty, jejichž hodnoty jsou x a y. Poté se načte hodnota vodoznaku w, která se vždy musí rovnat 0 nebo 255, což je možné brát také jako vyjádření bitů 0 a 1. Pokud je tedy hodnota vodoznaku w rovna 0 a hodnota prvního pixelu x je menší než hodnota druhého pixelu y, neprovede se nic. Pokud je tomu naopak, provede se prohození hodnot koeficientů obrazu. Pokud je hodnota vodoznaku w rovna 255 a hodnota prvního pixelu x je větší než hodnota druhého pixelu y, neprovede se nic. Pokud je tomu však naopak, provede se opět prohození hodnot DCT koeficientů obrazu. Výše popsaný postup lze shrnout tak, že hodnota vodoznaku w = 255 znamená, že první koeficient musí být větší nebo roven druhému a naopak hodnota vodoznaku w = 0 určuje, že první koeficient musí být menší než druhý. Tento postup se opakuje pro všechny zvolené bloky videa. Následující rovnice w=0
w = 255
x >= y ⇒ prohození x < y ⇒ ponechání
x >= y ⇒ ponechání x < y ⇒ prohození
(4.2)
vyjadřují výše popsaný postup vložení vodoznaku.
10. Nastavení odolnosti vodoznaku Aby byl vložený vodoznak dostatečně odolný proti úpravám a transformacím označených dat nebo proti případným útokům, je třeba, aby změna způsobená vodoznakem v originálních datech byla dostatečná. To zajistíme tak, že nejprve určíme rozdíl hodnot vybraných DCT koeficientů. Poté se stanoví požadovaná hodnota odolnosti O. Pokud je hodnota odolnosti menší nebo rovna hodnotě rozdílu koeficientů, pak se nic neděje. Pokud je však hodnota odolnosti větší, pak se provede úprava hodnot DCT koeficientů tak, aby výsledná hodnota rozdílu byla rovna nastavené hodnotě odolnosti. Úprava koeficientů však nesmí změnit povahu koeficientů, tedy pokud byl první koeficient po vložení vodoznaku větší než druhý, musí to tak zůstat i po nastavení odolnosti. Rovnice
20-11
2007/20 – 30.5.2007
x − y < O ⇒ úprava x − y >= O ⇒ ponechání
(4.3)
vyjadřuje výše popsaný princip nastavení odolnosti vodoznaku. Je třeba zdůraznit, že čím je zadaná hodnota rezistence vyšší, tím jsou ve výsledném vodoznačeném videu viditelnější změny v obraze.
11. Zpětná diskrétní kosinová transformace Aby bylo možné získat z označených koeficientů opět video, je potřeba nejprve provést podle vztahu (3.2) zpětnou diskrétní kosinovou transformaci, která z pozměněných transformačních koeficientů vytvoří nazpět matici hodnot ve formátu YCBCR [6]. 12. Zpětný převod z formátu YCBCR do RGB Aby bylo možné znovu sestavit jednotlivé snímky, je třeba získat množinu RGB hodnot. Podobně jako byl v třetím kroku proveden převod z formátu RGB do formátu YCBCR, tak nyní je třeba provést inverzní převod z YCBCR do RGB, který je definován následujícími rovnicemi R = Y + 1.402C R G = Y − 0.344C B − 0.714C R .
(4.4)
B = Y + 1.772C B
13. Sestavení označeného videa Posledním krokem algoritmu vkládání je vytvoření výsledného videa opětovným sestavením snímků z RGB dat. Zrekonstruované snímky se pak spojí do výsledné video sekvence a ta se uloží do výstupního souboru.
Algoritmus detekce vodoznaku Celý algoritmus vodoznačení byl navrhován tak, aby se jednalo o soukromý systém s vodoznaky, konkrétně typ II. Tento typ systému vyžaduje pro detekci vodoznaku kromě originálních dat i kopii vloženého vodoznaku. Výsledkem detekce je pak míra shody vytaženého vodoznaku s kopií vodoznaku. Proces vytažení vodoznaku je v základu inverzní operací k vložení. V algoritmu detekce však nebude snahou vytažení celého vodoznaku z video souboru, ale pouze zjištění jeho existence ve zvolené video sekvenci. Jak již bylo zmíněno, realizovaný systém vodoznačení je soukromý systém typu II. Tyto systémy vodoznačení jsou nejvíce odolné proti různým modifikacím zdrojových dat, na druhou stranu však potřebují k detekci vodoznaku zadat nejvíce vstupních parametrů. U procesu detekce je tedy třeba zadat kromě vstupního videa a vodoznaku také všechny parametry a tajné klíče, které byly použity v procesu vodoznačení. Těmito parametry je počet snímků pro vložení vodoznaku, počet bloků, náhodný klíč pro výběr bloků, oblast vkládání a pozice DCT koeficientů. Některé kroky postupu detekce jsou stejné jako u vkládání vodoznaku, proto budou blíže popsány pouze odlišné body. Algoritmus detekce vodoznaku se tedy skládá z těchto kroků:
20-12
2007/20 – 30.5.2007 1. Načtení originálního a vodoznačeného videa a jejich rozložení na jednotlivé snímky Tento bod je stejný jako u procesu vkládání. 2. Výběr stejných snímků, které byly použity pro vodoznačení Aby bylo možné získat správný výsledek detekce, je třeba hledat vodoznak ve stejných snímcích, do kterých byl vložen. 3. Převod vybraných snímků z formátu RGB do formátu YCBCR Obdobně jako u procesu vodoznačení je třeba, aby byla data pomocí rovnice 4.1 převedena do formátu YCBCR. 4. Rozdělení snímků na bloky a výběr stejných bloků jako u vkládání Stejně jako u vkládání je třeba snímky rozdělit na bloky 8 x 8 pixelů. Je tedy třeba zadat počet bloků a tajný klíč pro výběr počtu bloků v rámci snímku. 5. Stanovení oblasti detekce Pro správnou detekci musí být zvolena stejná oblast, která byla použita pro vložení vodoznaku – tedy jasová složka (Y) nebo barevné složky CB nebo CR. 6. DCT u vybraných snímků originálního i vodoznačeného videa Podle rovnice 3.1 se provede výpočet DCT pro každý vybraný blok snímku. 7. Výběr stejných DCT koeficientů z každého bloku jako u vkládání vodoznaku Stejně jako u předešlých kroků algoritmu detekce je třeba zadat stejné pozice DCT koeficientů, jaké byly ovlivněny vodoznakem při vkládání. 8. Načtení vodoznaku Stejné jako u vkládání. 9. Nastavená hodnota odolnosti Změna odolnosti při vodoznačení nezpůsobí změnu koeficientů v tom smyslu, že by změnila výsledek nerovnosti mezi koeficienty. Při detekci tedy není třeba zadávat parametr odolnosti. 10. Detekce vodoznaku Samotná detekce je velmi jednoduchá. Vždy se vezmou vybrané dva koeficienty z každého vybraného bloku a porovnají se. Pokud je první koeficient větší nebo roven druhému, do výstupního pole se zapíše hodnota 255, pokud je tomu naopak, do výsledného pole se zapíše hodnota 0. Rovnice x >= y ⇒ 255 x< y⇒0
(4.5)
popisuje detekci vodoznaku.
11. Porovnání vytaženého vodoznaku s originálním Po dokončení detekce ve všech snímcích se provede porovnání hodnot výstupního pole detekce s hodnotami vodoznaku. Výsledkem je pak míra shody uvedená v procentech. Je tedy třeba stanovit prahovou hodnotu, která bude určovat, zda originální data byla podepsána vodoznakem nebo ne. Při 20-13
2007/20 – 30.5.2007 stanovování prahu je nutné počítat s tím, že pokud jsou s označenými daty prováděny nějaké operace, může dojít ke změně hodnot označených dat a tím se také změní výsledek detekce.
5. Aplikace Watermark 2.0 Jako nástroj pro realizaci popsaného návrhu vodoznačení videa byl vybrán programovací jazyk JAVA. Hlavní výhodou tohoto moderního objektově orientovaného programovacího jazyku je nezávislost na platformě. Pro zpracování videa v jazyce JAVA je třeba použít aplikační programové prostředí s názvem Java Media Framework, které je všestranným nástrojem pro začlenění časově závislých multimediálních dat do JAVA aplikací. Od verze JMF 2.0 je již podporován také přímý přístup do multimediálních dat a jejich následné zpracovávání, což je při procesu vodoznačení velmi důležité. Aktuální verze JMF 2.1.1e zatím nenabízí dostatečnou podporu všech formátů pro zpracovávání videa, to tedy ve výsledku způsobuje určitá omezení v použitelnosti vytvořené aplikace. Proto bylo snahou vytvořit aplikaci do určité míry nezávislou na vstupních datech. Vodoznačení dalších video formátů (např. MPEG), stejně tak jako možnost ukládat výstupní soubor do více video formátů, by pak mělo být především otázkou podpory ze strany programovacího prostředí JMF. Vytvořená aplikace je rozdělena do tří částí (záložek). První částí (Obr. 7) je výběr vstupního video souboru, kde je možné zvolit vstupní video sekvenci a také provést její přehrání. V druhé záložce (Obr. 8) se provádí nastavení parametrů pro vložení vodoznaku a samotného vkládání. Před samotným vložením vodoznaku je nutné nadefinovat kromě výstupního souboru také potřebné parametry vodoznačení (Obr. 9), kterými jsou: •
Vodoznak
Je nutné zvolit soubor obsahující vodoznak. Realizovaná metoda používá jako vodoznak statický černobílý obraz, jehož hodnoty musí být pouze 0 nebo 255. Praktickým testováním bylo zjištěno, že jako vodoznak je vhodný černobílý obraz ve formátu GIF. Převod obrazu do binární podoby lze provést v běžném editoru obrázků. •
Počet vodoznačených snímků
Tento parametr udává, do kolika snímků videa se bude vkládat vodoznak. Je možné zvolit některou z následujících možností:
o o o o o o •
Každý snímek Každý druhý snímek Každý 10. snímek Každý 100. snímek Jeden náhodný snímek Jeden konkrétní snímek – je třeba zadat číslo snímku
Počet vodoznačených bloků
Zde je třeba zvolit do kolika bloků v rámci snímku se bude vodoznak vkládat. Na výběr jsou hodnoty: 4, 8, 16, 32, 64, 128, 256, 512 a 1024. •
Tajný klíč
20-14
2007/20 – 30.5.2007 Tajný klíč je kombinace číslic sloužící pro inicializaci pseudonáhodného generátoru, podle jehož výstupní posloupnosti jsou vybírány konkrétní bloky snímku. •
Odolnost
Parametr Odolnost definuje schopnost vloženého vodoznaku zůstat detekovatelným i po provedení neoprávněných modifikací. Čím je tedy hodnota odolnosti větší, tím je vodoznak odolnější, ale zároveň také viditelnější v obraze. Odolnost lze nastavit v rozmezí 0 – 100. •
Oblast vodoznačení
Aplikace umožňuje vkládat vodoznak jak do jasové složky Y, tak do barevných složek CR nebo CB. •
DCT koeficienty
Posledním krokem nastavení je volba DCT koeficientů. Vodoznakem jsou ovlivňovány vždy 2 koeficienty, je tedy třeba zadat jejich pozici v rámci bloku 8 x 8 DCT koeficientů. V levém horním rohu jsou umístěny nízkofrekvenční složky, které zajišťují vysokou odolnost vodoznaku, ale zároveň také jejich modifikace způsobuje vyšší vnímatelnost vodoznaku. Naproti tomu v pravém dolním rohu jsou umístěny vysokofrekvenční složky, které zajišťují nevnímatelnost vodoznaku, ale takovýto vodoznak je pak také málo odolný. Kompromisem je tedy volba koeficientů středních frekvencí.
Obr. 7: Watermark 2.0 – Načtení originálního video souboru
20-15
2007/20 – 30.5.2007
Obr. 8: Watermark 2.0 – Vkládání vodoznaku
Obr. 9: Watermark 2.0 – Nastavení parametrů
Poslední část aplikace Watermark 2.0 (Obr. 10) zajišťuje detekci vodoznaku v zadaném video souboru. Před provedením detekce je třeba nejprve zvolit testovaný video soubor a také stejně jako při vkládání zadat parametry detekce. Aby bylo možné ověřit pravost označených dat, je třeba zadat naprosto stejné parametry, které byly nastavené při vkládání vodoznaku – tedy soubor s vodoznakem, počet vodoznačených snímků, počet vodoznačených bloků, tajný klíč, oblast vodoznačení a DCT koeficienty. Hodnota odolnosti není třeba zadávat, protože na
20-16
2007/20 – 30.5.2007 samotnou detekci nemá vliv. Hodnota výsledku je zobrazená v procentech a udává shodu detekovaného vodoznaku s originálním vodoznakem.
Obr. 10: Watermark 2.0 – Detekce vodoznaku
Hodnocení kvality výsledného videa v aplikaci Watermark 2.0 Ve vytvořené aplikaci Watermark 2.0 se provádí hodnocení kvality videa obsahujícího vodoznak pomocí objektivní metody. Po vložení vodoznaku jsou vždy vypočítány a zobrazeny hodnota střední absolutní chyby MAE a hodnota špičkového odstupu signál / šum PSNR. Použitá metoda vkládání vodoznaku založena na DCT vnáší do výsledného obrazu různé artefakty, jejichž míra nevnímatelnosti je závislá na parametrech vodoznaku, zejména pak na jeho odolnosti. Na následujících obrázcích jsou uvedeny příklady neviditelnosti vloženého vodoznaku, kterým byl statický obraz (Obr. 11). V následujících dvou případech byly použity téměř stejné parametry vodoznačení, rozdílná byla pouze hodnota odolnosti a počet bloků, do kterých byl vodoznak vkládán. U prvního video snímku (Obr. 12) byla zadaná odolnost 30 a počet bloků 32, na druhém snímku byla odolnost 90 a počet bloků 512. Porovnáním obou dvou snímků je na první pohled patrný rozdíl. U druhého snímku (Obr. 13) s vyšší odolností jsou změny více viditelné a díky většímu počtu vodoznačených bloků je těchto změn podstatně více než u prvního snímku.
20-17
2007/20 – 30.5.2007
Obr. 11: Vodoznak – logo FEKT
Obr. 12: Watermark 2.0 – Vodoznak s odolností 30
20-18
2007/20 – 30.5.2007
Obr. 13: Watermark 2.0 – Vodoznak s odolností 90
Ze subjektivního hlediska je nevnímatelnost vodoznaku také závislá na poloze vzniklé změny. Pokud ke změně obrazu dojde v členité části obrazu (hrany, textury), pak je tato změna téměř nepostřehnutelná. Naopak, pokud dojde ke změně v homogenní oblasti, pak je deformace obrazu více viditelná. To je dobře patrné na následujícím snímku (Obr. 14), kde v levém horním rohu je homogenní černá oblast, ve které jsou změny způsobené vodoznakem více vidět než v ostatních částech snímku. Stejně tak, pokud je vodoznakem ovlivňována jasová složka, je vodoznak méně viditelný v částech snímku, jejichž barva je blízká šedé barvě, naproti tomu v částech snímku s výraznými barvami je vodoznak více postřehnutelný.
Obr. 14: Watermark 2.0 – Vodoznak v homogenní oblasti
20-19
2007/20 – 30.5.2007
6. Závěr V tomto článku byl proveden rozbor problematiky vodoznačení videa, dále pak popis jednotlivých metod vkládání vodoznaku a na závěr byla také představena aplikace umožňující vkládání vodoznaku do zadaných video sekvencí. Aplikace byla vytvořena v prostředí JAVA s využitím nadstavby Java Media Framework určené pro zpracovávání multimediálních dat v prostředí JAVA. Vytvořená aplikace umožňuje vkládání vodoznaku do videa ve formátech M-JPEG, MOV nebo RGB. Vodoznakem je statický binární obraz a výstupní video data obsahující vodoznak jsou ukládána do nekomprimovaného formátu RGB. Bezpečnost vloženého vodoznaku je založena na tom, že nikdo jiný, kromě vlastníka videa, nezná vstupní parametry a náhodné klíče použité při vkládání a není tedy schopen vodoznak správně detekovat. Výhodou vytvořeného programu je velká možnost nastavení parametrů procesu vkládání vodoznaku, čímž je možné ovlivnit výslednou odolnost a viditelnost vodoznaku. Další výhodou aplikace je její přehlednost a také to, že je uživatel díky informacím z textové oblasti neustále informován o právě prováděných operacích. Nevýhodou aplikace je její časová náročnost, vysoké požadavky na výkon procesoru a kapacitu úložného prostoru. Popsané nevýhody jsou však z velké části způsobeny zatím nedostatečnou podporou všech video formátů v aplikačním programovacím prostředí JMF a také tím, že výsledné video je ukládané ve formátu RGB bez použití komprese.
Použitá literatura [1] ARNOLD, M., SCHMUCKER, M., WOLTHUSEN, D. S. Techniques and Applications of Digital Watermarking and Content Protection. Boston: Artech House Publishers, 2003. ISBN: 1-58053-111-3
[2] CHUN-SHIEN, L. Multimedia Security: Steganography and Digital Watermarking Techniques for Protection of Intellectual Property. Hershey: Idea Group Publishing, 2004. ISBN: 1-59140-275-1
[3] ČANDÍK, M. Bezpečnosť informačných systémov, steganografia a digitálna vodotlač. Ostrava: s. n., 2005. ISBN: 80-239-5662-X
[4] LEVICKÝ, D. Multimediálne telekomunikácie. Košice: Elfa, 2002. ISBN: 80-89066-58-5
[5] RICHARDSON, I. E. G. H.264 and MPEG-4 Video Compression. West Sussex: John Wiley & Sons Ltd., 2003. ISBN: 0-470-84837-5
[6] ŘÍČNÝ, V., KRATOCHVÍL, T. Základy televizní techniky. Brno: Vysoké učení technické v Brně, 2004. ISBN: 80-214-2686-1
[7] SEITZ, J. Digital Watermarking for Digital Media. Hershey: Information Science Publishing, 2005. ISBN: 1-59140-518-1
20-20