MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Vodoznačení jako důkaz autorství medicínských obrazových dat BAKALÁŘSKÁ PRÁCE
Tomáš Kadlc
Brno 2016
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Tomáš Kadlc
Vedoucí práce: Mgr. Karel Slavíček, Ph.D.
i
Poděkování Rád bych poděkoval Mgr. Karlu Slavíčkovi, Ph.D. za pomoc, ochotu a inspiraci při vypracování bakalářské práce.
ii
Shrnutí Bakalářská práce se věnuje digitálnímu vodoznačení obrazových dat. Hlavním cílem bakalářské práce je zmapovat existující metody vodoznačení vhodné pro dokazování autorství a specializovat se na medicínská obrazová data. Zmiňuji dostupné algoritmy a detailně se věnuji třem vybraným algoritmům, uvádím srovnání s ostatními algoritmy. Uvádím způsob vkládání a detekce vodoznaku, výhody, vhodné využití a experimentální výsledky vybraných algoritmů. Praktickou částí mojí bakalářské práce je implementace zvoleného algoritmu v prostředí Matlab. Vedlejším cílem mojí bakalářské práce je seznámit s vodoznačením a možnými aplikacemi.
iii
Klíčová slova Digitální vodoznačení, medicínské dokumenty, důkaz autorství, obrazová data, metody vodoznačení, aplikace vodoznačení, algoritmy pro vodoznačení, copyright, implementace vodoznaků.
iv
Obsah 1 Úvod bakalářské práce.............................................................................. 1 2 Úvod k vodoznačení................................................................................. 3 2.1 Vlastnosti vodoznačících systémů.................................................... 3 2.1.1 Efektivita vkládacího bloku...................................................... 3 2.1.2 Fidelity (Nerozpoznatelost)....................................................... 3 2.1.3 Datová kapacita......................................................................... 3 2.1.4 Slepá, nebo informovaná detekce.............................................. 4 2.1.5 Pravděpodobnost nesprávné pozitivní detekce......................... 5 2.1.6 Robustnost................................................................................. 5 2.1.7 Zabezpečení............................................................................... 6 2.1.8 Ochrana vodoznaků šifrovacími klíči....................................... 7 2.1.9 Modifikovatelné vodoznaky, vícenásobné vodoznaky.............. 7 2.1.10 Cena......................................................................................... 8 2.2 Aplikace vodoznačících systémů...................................................... 9 2.2.1 Monitorování vysílání............................................................... 9 2.2.2 Identifikace autora................................................................... 10 2.2.3 Důkaz autorství....................................................................... 12 2.2.4 Transaction tracking (fingerprinting)...................................... 13 2.2.5 Ověření pravosti...................................................................... 14 2.2.6 Copy control............................................................................ 16 3 Metody vodoznačení vhodné pro důkaz autorství medicínských dokumentů.................................................................................................. 19 3.1 Úvod kapitoly.................................................................................. 19 3.2 Generalized patchwork algorithm (GPA)........................................ 20 3.2.1 Úvod k algoritmu.................................................................... 20 3.2.2 Diskrétní kosinová transformace............................................. 21 3.2.3 Vkládací blok algoritmu.......................................................... 24 3.2.4 Detekční blok algoritmu.......................................................... 27 3.2.5 Fisher–Snedecorovo rozdělení (F–rozdělení)........................ 28 3.2.6 Volba parametrů vodoznaku a prahu pro detekci.................... 31 3.2.7 Experimentální výsledky......................................................... 34 3.2.8 Závěr k algoritmu.................................................................... 36 3.3 Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform............................................................................................... 36 3.3.1 Úvod k algoritmu.................................................................... 36 3.3.2 Slantletova transformace (SLT) .............................................. 37 3.3.3 Vkládací blok algoritmu.......................................................... 42 3.3.4 Detekční blok algoritmu.......................................................... 44 3.3.5 Experimentální výsledky algoritmu........................................ 44 v
3.3.6 Závěr k algoritmu.................................................................... 3.4 Very Fast Watermarking by Reversible Contrast Mapping............. 3.4.1 Úvod k algoritmu.................................................................... 3.4.2 Reversible Contrast Mapping (RCM)..................................... 3.4.3 Vkládací blok algoritmu.......................................................... 3.4.4 Detekční blok algoritmu.......................................................... 3.4.5 Datová kapacita algoritmu...................................................... 3.4.6 Omezení deformace obrazu způsobené vodoznačením........... 3.4.7 Využití vyhledávací tabulky ke snížení složitosti algoritmu... 3.4.8 Experimentální výsledky......................................................... 3.4.9 Závěr k algoritmu.................................................................... 3.5 Implementace algoritmu Very Fast Watermarking by Reversible Contrast Mapping................................................................................... 4 Závěr bakalářské práce...........................................................................
47 48 48 48 49 50 51 52 53 54 56 56 58
vi
1 Úvod bakalářské práce Vodoznak je informace připojená k objektu, například papíru, látce, nebo digitálnímu obrázku, která se k tomuto objektu vztahuje. Termín vodoznak pochází z doby, kdy vodoznaky existovaly pouze na papíře a změnou tloušťky mokrého papíru bylo dosaženo průsvitných míst. Nejstarší vodoznaky byly objeveny na papíře z konce 13. století z Itálie. V dnešní době je vodoznačení často využíváno pro ochranu bankovek proti falšování a pro označení papírových dokumentů. Rozvoj Internetu umožnil rychlé sdílení a snadnou dostupnost digitálních dat (audio signálů, obrazových signálů, video signálů, elektronických textů a další dat, se kterými je možné v elektronické podobě pracovat). Začalo docházet k šíření nelegálních kopií a porušování autorských práv. Na ochranu digitálních dat se 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). [1] Pro účely této práce lze vodoznačení definovat, jako postup, jak nepostřehnutelně upravit digitální dílo, aby obsahovalo dodatečnou informaci o tomto díle. Vodoznačící systém se skládá z vkládacího bloku a detekčního bloku, viz. obrázek 1. Vkládací blok má na vstupu původní nezměněné originální dílo a vodoznak, který chceme do díla vložit. Výstup z vkládacího bloku je uložen nebo odeslán. Na vstupu detekčního bloku je dílo, které může, ale nemusí obsahovat vodoznak. Většina detekčních algoritmů se snaží zjistit, zda je vodoznak v díle přítomen a pokud ano, vypsat odpovídající detekovanou zprávu.
Obrázek 1 – Obecný vodoznačící systém [2]
1
Vodoznačení lze použít pro mnoho aplikací. Obecně, pokud je výhodné připojit k digitálnímu dílu nějaká data, je možné tato data vložit jako vodoznak. Existuje celá řada jiných způsobů, jak připojit přídavnou informaci k digitálnímu dílu, například lze připojit text do hlavičky souboru, vložit viditelný čárový kód na obrázek, nebo informaci říct na začátku audio souboru. Kdy je vodoznačení lepší alternativou? Co lze provézt vodoznačením na rozdíl od jednodušších technik? Vodoznačení se odlišuje od ostatních technik ve třech základních bodech. Za prvé, vodoznaky digitálních dat mohou být nepostřehnutelné lidskými smysly. Oproti čárovým kódům nesnižují estetickou kvalitu obrázku. Za druhé, vodoznaky mohou být vytvořeny vhodným způsobem, aby je bylo velmi obtížné z digitálního díla odebrat. Na rozdíl od hlaviček souborů, které lze při jejich zobrazení smazat, nebo je poškodit změnou formátu. Za třetí, vodoznaky podstupují stejné transformace jako digitální díla. Někdy je možné z detekovaného vodoznaku zjistit informace o těchto transformacích. [2] Vedlejším cílem mojí bakalářské práce je seznámit s vodoznačením a možnými aplikacemi, tomu věnuji druhou kapitolu. Hlavním cílem, který je obsažen ve třetí kapitole, je zaměřit se na aplikaci důkaz autorství, použitou pro medicínská obrazová data. Zmiňuji dostupné algoritmy a detailně se věnuji třem vybraným algoritmům, uvádím srovnání s ostatními algoritmy. Uvádím způsob vkládání a detekce vodoznaku, výhody, vhodné využití a výsledky vybraných algoritmů. Čtvrtá kapitola je závěrem práce. Praktickou částí mojí bakalářské práce je implementace zvoleného algoritmu v prostředí Matlab.
2
2 Úvod k vodoznačení 2.1 Vlastnosti vodoznačících systémů Vodoznačící systém lze charakterizovat na základě určitých vlastností. Důležitost vlastností vodoznačících systémů záleží na aplikaci, pro kterou je systém vytvořen. Například v aplikacích, ve kterých detekujeme vodoznak v díle přeneseném přes analogový kanál, vodoznak musí být robustní (odolný – kapitola 2.1.6) vůči degradaci způsobené tímto kanálem. Naopak pokud můžeme předpokládat, že dílo při přenosu mezi vkládacím blokem a detekčním blokem zůstane nezměněno, je robustnost irelevantní. [2]
2.1.1 Efektivita vkládacího bloku Efektivita vkládacího bloku je pravděpodobnost, že vodoznak lze detekovat bezprostředně po výstupu z vkládacího bloku. Zajištění 100% efektivity je často dosaženo na úkor jiných vlastností, proto je výhodné se u řady aplikací spokojit s efektivitou nižší. Například fotograf, který vkládá každý měsíc vodoznaky do stovek svých fotografií z důvodu prokazatelnosti autorství, může být ochoten tolerovat nižší efektivitu vkládacího bloku. Riskuje tak, že nebude schopen prokázat autorství u svojí fotografie, ale vodoznaky v jeho fotografiích mohou mít vyšší fidelity (podobnost mezi vodoznačeným a nevodoznačeným dílem vnímaná lidskými smysly – kapitola 2.1.2).
2.1.2 Fidelity (Nerozpoznatelost) Pro účely této práce definuji fidelity vodoznačícího systému, jako míru nerozpoznatelnosti rozdílu lidskými smysly, mezi dílem, které obsahuje vodoznak a dílem, které neobsahuje vodoznak, v podobě, v jaké jsou prezentovány spotřebiteli. Nikoliv pouze jako rozdíl mezi vodoznačeným dílem a originálem, protože originál i vodoznačené dílo mohou být degradovány přenosem, nebo transformacemi, než se dostanou ke spotřebiteli. V některých aplikacích je výhodné akceptovat nižší fidelity a získat vyšší robustnost nebo nižší cenu. Například zvuk vysílaný rozhlasovými stanicemi na středních vlnách bude mít relativně nízkou kvalitu a rozdíly mezi originálním a vodoznačeným dílem budou po přenosu zanedbatelné. Naopak HDTV audio má vysokou kvalitu signálu a vodoznačící systém tak musí mít vysokou fidelity.
2.1.3 Datová kapacita Datová kapacita označuje počet bitů informace, které získáme z vodoznaku. U obrázku je to počet bitů informace získaných z vloženého vodoznaku. U 3
zvukových dat je to počet bitů informace za vteřinu přenášení dat. U videa odpovídá datová kapacita počtu bitů získaných ze snímku (frame), nebo počtu bitů získaných za vteřinu přenášení dat. Vodoznak, který obsahuje N-bitovou informaci se označuje termínem N-bitový vodoznak. N-bitový vodoznak může přenést 2^N různých zpráv. Různé aplikace vyžadují různou datovou kapacitu. Vodoznačící systém pro aplikaci copy control (prevence proti neoprávněnému vytváření kopií – kapitola 2.2.6) může mít datovou kapacitu například 5 bitů, které chceme přenášet každých 10 vteřin pro audio a 5 minut pro video. V takovém případě bychom potřebovali datovou kapacitu 0,5 bitů za vteřinu pro audio a zhruba 0,017 bitů pro video. V aplikaci pro monitorování vysílání (společnosti mohou například monitorovat, zda byly odvysílány všechny reklamy, za které na televizní stanici zaplatily – kapitola 2.2.1) může být například nutné získat alespoň 24-bitovou informaci pro rozpoznání všech reklam. Tento datový úsek může být nutné přenést v průběhu první vteřiny přenosu reklamy. V takovém případě by byl požadavek na datovou kapacitu 24 bitů za vteřinu, tedy zhruba o tři řády vyšší, než u videa v předešlém příkladě. Většina aplikací vyžaduje detektor, který má dvě funkce. Rozpozná, jestli je vodoznak přítomen a pokud ano, identifikuje, která z 2^N zpráv je zakódována. Takový detektor má 2^N + 1 možných výstupů – 2^N zpráv a „neobsahuje vodoznak“. [2]
2.1.4 Slepá, nebo informovaná detekce Slepou detekci (obrázek 1) provádějí vodoznačící systémy, jejichž detektor nepoužívá k detekci originální dílo. Informovanou detekci provádějí vodoznačící systémy, jejichž detektor potřebuje přístup k originálnímu dílu nebo jeho části.
Obrázek 2 – vodoznačící systém s informovaným detektorem
4
Slepou detekci je nutné použít například v aplikaci copy control (kapitola 2.2.6). Detektor je umístěn v zařízení každého zákazníka a není možné k němu přiložit veškerá originální díla, která by mohla být na tomto zařízení duplikována. Informovanou detekci je možné s výhodou použít například pro aplikaci důkaz autorství (autor vloží do svého díla vodoznak, aby dokázal, že se jedná o jeho původní autorské dílo – kapitola 2.2.3). Autor si může ponechat nevodoznačený originál a v případě sporů o autorství by mohl originál využít pro zlepšení detekčních vlastností. Originální dílo by bylo možné odečíst od vodoznačeného díla a získat tak vzor vodoznaku.
2.1.5 Pravděpodobnost nesprávné pozitivní detekce Pokud v díle, které neobsahuje vodoznak, detektor vodoznak detekuje, jedná se o nesprávnou pozitivní detekci (false positive). Pravděpodobnost nesprávné pozitivní detekce je pravděpodobnost, že nastane nesprávná pozitivní detekce v jednom běhu detektoru. Tuto pravděpodobnost lze získat dvěma způsoby. Prvním způsobem je považovat vodoznak za náhodnou proměnnou. Pravděpodobnost nesprávné pozitivní detekce je podle prvního způsobu pravděpodobnost, že v daném díle, které žádný vodoznak neobsahuje, detekujeme některý z náhodně generované množiny vodoznaků. Druhým způsobem je považovat dílo za náhodnou proměnnou. Pravděpodobnost nesprávné pozitivní detekce je podle druhého způsobu pravděpodobnost, že daný vodoznak bude detekován v daném díle, z náhodně vybrané množiny, které neobsahuje žádný vodoznak. Požadovaná pravděpodobnost nesprávné pozitivní detekce záleží na aplikaci, pro kterou je vodoznačící systém použit. Pro důkaz autorství (kapitola 2.2.3) by mohl vyhovovat systém, s pravděpodobností 10^(-6), protože detekce je prováděna vzácně. Naopak v aplikaci copy control (kapitola 2.2.6) neustále detekují miliony detektorů potenciální vodoznaky v milionech děl. Pokud by v jednom nevodoznačeném díle byly neustále detekovány vodoznaky, mohl by nastat vážný problém. Podle obecného úzu by detektory pro DVD video měly nesprávně pozitivně detekovat nanejvýš jeden z 10^12 snímků, neboli jeden za tisíc let nepřetržitého provozu. [2]
2.1.6 Robustnost Robustnost je vlastnost označující schopnost vodoznaku zůstat detekovatelným i po běžných transformacích signálu, například po ztrátové kompresi, změně počtu snímků za vteřinu, rotaci, zvětšování, vytisknutí, nahrání na kazetu apod. Požadavky na robustnost se liší podle aplikace. U většiny aplikací je žádoucí, aby vodoznak zůstal detekovatelný po transformacích signálu, které 5
mohou nastat mezi vkládacím blokem a detekčním blokem. Například pro aplikaci důkaz autorství použitou pro digitální fotografie, je nutné, aby vodoznak byl robustní vůči veškerým transformacím digitální fotografie, které nemají patrný vliv na estetiku fotografie – se zdeformovanou fotografií by pachatel pravděpodobně neuspěl. Pokud by robustnost nebyla dostačující a došlo by ke sporům o autorství, vodoznak v pachatelově odcizené fotografii by nebylo možné detekovat a původní autorství by nebylo možné podpořit. Existují i vodoznaky, u nichž je robustnost irelevantní nebo dokonce nežádoucí. Například v aplikaci ověření pravosti (ověření, že dílo zůstalo nezměněno od určitého okamžiku – kapitola 2.2.5) je nutné, aby se vodoznak poškodil při použití jakýchkoliv transformací a prokázal tak v případě čitelnosti, že k transformacím nedošlo, nebo v případě nečitelnosti, že k transformacím došlo – tuto aplikaci lze například použít pro ověření záběru z bezpečnostní kamery použitého jako kritický důkaz v soudním líčení. Vodoznaky, u nichž je výhodná nízká robustnost, se nazývají křehké vodoznaky.
2.1.7 Zabezpečení Zabezpečení vodoznaku, označuje odolnost vodoznaku proti útokům, jejichž účelem je překazit záměr vodoznaku. Může se jednat o neautorizované odstranění, neautorizované vložení (dochází k modifikaci díla, tyto dva útoky se nazývají aktivní útoky) nebo neautorizovanou detekci (nedochází k modifikaci díla, tyto útoky se nazývají pasivní útoky) vodoznaku. Neautorizované odstranění vodoznaku je snaha pachatele modifikovat vodoznačené dílo způsobem, kterým znemožní vodoznak detekovat. Ochrana proti neautorizovanému odstranění je nutná například v aplikaci copy control (kapitola 2.2.6). Vodoznačené dílo může obsahovat vodoznak, jehož význam je „zákaz kopírování“. Po odstraněním tohoto vodoznaku by bylo možné vytvářet ilegální kopie. Neautorizované vložení vodoznaku, označuje snahu pachatele, vložit vodoznak, nesoucí vzkaz, do díla, které by jej obsahovat nemělo. Ochrana proti těmto útokům je kriticky důležitá například pro aplikaci ověření pravosti (kapitola 2.2.5). Neautorizovaná detekce vodoznaku označuje skupinu útoků, které mají za cíl nepovoleně zjistit, jestli je vodoznak přítomen, nebo detekovat vodoznak, nebo detekovat vodoznak a dešifrovat zprávu, kterou nese. Příkladem aplikace, u které je důležitá ochrana proti tomuto typu útoků může být aplikace monitorování vysílání (kapitola 2.2.1). Společnost, která nabízí monitorování televizního vysílání, zajišťuje vkládání vodoznaků zdarma a zpoplatňuje jen naměřené výsledky, by se mohla stát cílem ilegální činnosti. Pachatel schopný přečíst vodoznaky této společnosti by si mohl založit 6
konkurenční společnost nabízející stejnou službu a ušetřil by za vkládání vodoznaků. [2]
2.1.8 Ochrana vodoznaků šifrovacími klíči Šifrovací klíč je doplňkový řetězec bitů, který udává, jak byla zpráva zašifrována. Zakódovaní zprávy přenášené vodoznakem lze provézt s využitím tajného šifrovacího klíče. V jednodušších systémech lze zakódovanou zprávu dešifrovat při detekci pouze se znalostí stejného tajného šifrovacího klíče.
Obrázek 3 – vodoznačící systém používající šifrovací klíče. (Detekční blok dostává na vstup originální dílo, pokud je detektor vodoznačícího systému informovaný – kapitola 2.1.4.) [2] Dříve, než začaly být v kryptografických algoritmech používány šifrovací klíče, spoléhali tvůrci algoritmů na utajení samotných algoritmů. Takový přístup vedl ke dvěma komplikacím. Pokud došlo k prozrazení algoritmu, musel být vytvořen nový algoritmus. Algoritmy nebylo možné zpřístupnit k testování, proto se bezpečnostní nedostatky algoritmů často projevily až při jejich použití.
2.1.9 Modifikovatelné vodoznaky, vícenásobné vodoznaky V mnohých aplikacích je modifikovatelnost vodoznaku nežádoucí. V některých aplikacích je naopak nutnou podmínkou. Zákazníci nakupující filmy v digitální podobě v elektronickém obchodě, mohou mít například právo vytvořit jednu kopii pro vlastní použití. Je ale zakázáno vytvářet kopii kopie. Zakoupený produkt by měl obsahovat vodoznak se zprávou „kopírovat jednou“, zkopírovaný produkt zprávu „nekopírovat“. 7
Přímočarým řešením je upravit vodoznak „kopírovat jednou“, tak aby vytvořil jiný vodoznak se zprávou „nekopírovat“. Pokud je vodoznak vytvořen, aby byl snadno modifikovatelný, je i snáze ilegálně napadnutelný. Pachatel by mohl upravit vodoznak se zprávou „kopírovat jednou“ na vodoznak „kopírovat neomezeně“. Jiným řešením je vložit druhý vodoznak. Přítomnost obou vodoznaků by měla význam „nekopírovat“. Obdobně, přítomnost dvou vodoznaků může mít význam „kopírovat jednou“. Jeden z vodoznaků vytvoříme křehký (kapitola 2.1.6). Odebráním křehkého vodoznaku dosáhneme významu „nekopírovat“. Dalším příkladem aplikace, ve které je vhodné vložit více vodoznaků do vodoznačeného díla, je aplikace transaction tracking („stopování“ díla od tvůrce k zákazníkovi, pro zjištění, odkud pochází konkrétní kopie díla, například ilegálně uveřejněná na internetu – kapitola 2.2.4). Autor hudebního díla může chtít přiložit vodoznak potvrzující jeho autorská práva. Dílo může být následně odesláno několika prodejcům. Do kopií pro jednotlivé distributory mohou být vloženy různé vodoznaky pro identifikaci distributora. Distributor může chtít vložit unikátní vodoznak do každé jednotlivé kopie pro identifikaci konkrétního zákazníka s dílem.
2.1.10 Cena Rychlost, s jakou aplikace, používající vodoznačící systém, vyžaduje provedení vložení a detekce vodoznaku, je důležitým kritériem ovlivňujícím cenu. Pro aplikaci monitorování vysílání (kapitola 2.2.1) je nutné, aby vkládání vodoznaků probíhalo dle harmonogramu vysílání a aby detekování vodoznaků v přenosu probíhalo v reálném čase. Pro aplikaci důkaz autorství je dostačující vkládání vodoznaku trvající několik minut. Delší doba by mohla pozdržet vydání díla. Spory o důkaz autorství jsou velmi vzácné, detekce může trvat i několik dní. Požadavek na cenu vodoznačícího systému je ovlivněn počtem vkládacích bloků a detektorů potřebných pro danou aplikaci. Čím více detektorů a vkládacích bloků je nutných, tím nižší musí být cena. Pro aplikaci ověření pravosti (kapitola 2.2.5), kterou využívá konkrétní firma pro ověření, že její odeslané dokumenty nebyly na cestě ke konečnému zákazníkovi nijak modifikovány, je potřeba jeden vkládací blok a například desítky detektorů, jeden pro každého zákazníka. Aplikace copy control (kapitola 2.2.6) vyžaduje několik vkládacích bloků, ale miliony detektorů umístěných v přehrávačích zvukových a obrazových dat.
8
2.2 Aplikace vodoznačících systémů 2.2.1 Monitorování vysílání Účelem vodoznačících systémů implementovaných pro aplikaci monitorování vysílání, je vložit neviditelný vodoznak do dat, která budou přenášena a z přenosu následně vodoznak detekovat. Tento vodoznak je dodatečnou informací, která usnadňuje identifikaci vysílaných dat a usnadňuje tak monitorování přenosu. V roce 1997 propukl v Japonsku skandál. Dvě televizní stanice pravidelně odvysílaly méně reklam, než si inzerující zaplatili. Neexistovaly žádné systémy pro monitorování vysílání, proto tato činnost zůstala více než 20 let bez povšimnutí. [2] Přímočarým řešením pro monitorování vysílání je využít lidské pozorovatele. Taková metoda je drahá a chybová. Je výhodné použít automatizovaný způsob monitorování. Automatizované způsoby monitorování lze rozdělit do dvou kategorií. Systémy pro pasivní monitorování se snaží přímo rozpoznat vysílaná data bez jakékoliv přiložené informace – simulují lidské pozorovatele. Systémy pro aktivní monitorování využívají dodatečnou informaci vysílanou společně s daty (například v podobě vodoznaku). Pasivní systém je složen z počítače, který porovnává přenášený signál s databází známých děl (filmů, reklam, hudby atd.). Je obtížné implementovat pasivní systém se 100% spolehlivostí. Porovnání přenášeného signálu s databází je netriviální operace. Dalším problémem je, že vysílaný signál je degradovaný přenosem, degradace může být proměnlivá. Algoritmus nemůže v databázi hledat shodu, ale musí hledat nejpodobnější dílo. Takový přístup je méně spolehlivý a může způsobit, že dvě stejná díla budou v různou dobu rozpoznána jako dvě různá díla. Dalším problémem je, že databáze pasivního systému je rozsáhlá a finančně náročná na aktualizaci a údržbu. Systém s například 95% spolehlivostí není vhodné využít pro verifikaci, jestli byly televizní stanicí odvysílány všechny zaplacené reklamy. Společnost by tak mohla být nesprávně informovaná o tom, že jedna z dvaceti jejích reklam nebyla odvysílána. Pro dosažení potřebné spolehlivosti pro verifikaci je vhodné využít aktivní monitorovací systém. Aktivní systém je snadnější na implementaci, než pasivní systém. Informace pro identifikaci je přenášena spolu s daty a je přímo dekódována. Není potřebná žádná databáze. Možností, jak implementovat aktivní systém, je více. Lze například přenášet informace v oddělené části signálu. Například v analogovém televizním vysílání je možné přiložit digitální informaci ve VBI (vertical blanking interval) [2]. VBI je část signálu přenášena mezi jednotlivými snímky a nezpůsobuje degradaci obrazu. 9
Pro digitální signál lze přiložit identifikační informaci v souborových hlavičkách. Problémem těchto přístupů je, že stanice nemají povinnost přiložený obsah odvysílat. Pokud by autor chtěl ověřovat, že jeho dílo není ilegálně vysíláno, pirátská stanice se může rozhodnout dodatečnou přiloženou informaci neodvysílat. Další komplikací je, že přiložená informace může být poškozena při změnách formátu, například při konverzi z analogového na digitální signál [2]. Metoda, která eliminuje dva výše zmíněné problémy je metoda vodoznačení. Vodoznak je přímo součástí vysílaného signálu a může být vytvořen robustně (kapitola 2.1.6) vůči transformacím signálu. Nevýhodou vodoznačení je, že proces vkládání je náročnější a požadavek na fidelity (kapitola 2.1.2) vodoznačícího systému je enormní.
2.2.2 Identifikace autora Účelem vodoznačících systémů, které implementují aplikaci pro identifikaci autora s dílem, je vložit lidskými smysly nerozpoznatelný vodoznak nesoucí informaci o autorských právech (copyright) do díla. Vodoznak může být následně detekován. Může být zjištěna ilegální manipulace s dílem, nebo může být informace z vodoznaku použita pro identifikaci autora Textová oznámení o autorských práv mají několik nedostatků. Lze je snadno, často i nezáměrně, odstranit. Profesor, který legálně kopíruje strany z knihy může opomenout zkopírovat titulní stranu, která nese oznámení o autorských právech [2]. Umělec, pracující s legálně obdrženou fotografií, může potřebovat oříznout fotografii včetně rohu, který obsahuje informaci o autorských právech. Své dílo obsahující fotografii nahraje na internetovou stránku. Pokud někdo bude chtít následně fotografii použít, nemusí být schopen rozhodnout, jestli je dílo chráněno autorskými právy, případně může být obtížné zjistit identitu autora, jehož souhlas je potřeba získat. Známým příkladem, ve kterém oříznutí oznámení o autorských právech způsobilo porušení autorských práv, je fotografie Leny Sjööblom. Jedná se o jeden z nejpoužívanějších testovacích obrázků pro zpracování obrazu.
10
Obrázek 4 – Oříznutá fotografie Leny Sjööblom Obrázek se objevil v nespočetném množství článků, odborných textů, zpravidla bez jakékoliv reference právoplatnému majiteli, Playboy Enterprises. Fotografie Leny Sjööblom byla naskenována a následně oříznuta včetně informace o autorských právech. Došlo k jejímu rozšíření. Společnost Playboy se rozhodla nevznášet žaloby proti používání tohoto obrázku. [2]
Obrázek 5 – Část fotografie Leny Sjööblom obsahující oznámení o autorských právech. [2]
11
Dalším problémem textových oznámení o autorských právech je zhoršení estetické kvality obrázků. Oznámení lze vložit do nedůležitého rohu obrázku, tím ale vzniká riziko oříznutí. Další problém nastává u audio souborů. Textová oznámení je možné umístit na disk, desku, nebo balení nosného média. Žádný z těchto způsobů není možné přenést při kopírování. Ještě větší problém nastává u hudby, která existuje pouze v elektronické podobě. Vodoznaky lze vytvořit nerozpoznatelné (kapitola 2.1.2) a robustní (kapitola 2.1.6). Detektory takových vodoznačících systémů by měly být schopny detekovat oznámení o autorských právech i po běžných modifikacích obrazu. Vodoznaky společnosti Digimarc byly designovány pro tuto aplikaci. Společnost dosáhla rozšíření jejich vodoznačících detektorů připojením ke slavnému programu pro zpracování obrazu, Photoshopu. Když detektor společnosti Digimarc rozezná vodoznak, kontaktuje centrální databázi přes Internet a použije zprávu vodoznaku pro nalezení kontaktních informací vlastníka obrázku. [2]
2.2.3 Důkaz autorství Vodoznačení lze použít pro důkaz autorství. Vodoznaky jsou implementovány tak, aby v případě sporů o původní autorství díla, bylo detekcí vodoznaků ve vodoznačeném díle právoplatného autora a ve vodoznačeném a případně upraveném díle delikventa, možné přiklonit se k autorství právoplatného autora. Textová oznámení o autorských právech nebo vodoznačící systémy pro aplikaci identifikace autora (kapitola 2.2.2) nemusejí být dostačující. Textová oznámení o autorských právech mohou být snadno padělána. Oznámení může být odstraněno v programu pro zpracování obrazu a následně může být vloženo jiné oznámení. Řešením pro dokázaní autorství je před zveřejněním uložit dílo do centrální úschovny daného státu. V případě sporů je možné centrální úschovnu kontaktovat a dokázat původní autorství. V mnohých státech je cena za registraci poměrně vysoká, zvlášť při velkém množství děl. Dalším řešením je v soudním sporu doložit originální negativy fotografií, počáteční náčrty obrázku apod. Pachatel ale může padělat negativ z finální fotografie a vytvořit falešné náčrty. Někdy navíc autor takový důkazní materiál nemá. Vodoznačení může být řešením pro výše zmíněné problémy. Důležitým požadavkem na vodoznačící systém je, aby autor měl soukromý detektor, který není přístupný pachateli. Pachatel schopný detekovat vodoznak v obrázku jej může snáze odstranit. Pokud by pachatel nebyl schopen vodoznak odstranit, byl by v jeho padělané kopii detekován vodoznak právoplatného autora. I to může pachatel obejít, může vytvořit vlastní vodoznačící systém, 12
jehož vodoznak bude vytvořen tak, aby byl detekován ve vodoznačeném díle právoplatného autora. V obou dílech by byly detekovány dva vodoznaky a nebylo by možné rozhodnout, který autor je právoplatný. Vodoznak lze vytvořit tak, aby byly možné rozhodnout, který obrázek vznikl z kterého. Právoplatný autor tak získá nepřímý důkazní materiál podobný vlastnictví negativu. Takový „negativ“ nelze padělat. [2]
2.2.4 Transaction tracking (fingerprinting) Účelem vodoznačících systémů implementujících aplikaci transaction tracking je informovat o jedné, nebo více transakcích konkrétního díla. Internetový obchod s filmy by například mohl vkládat unikátní vodoznak do každé legálně prodané kopie. Pokud by se následně objevila pirátská kopie na Internetu, mohl by vlastník filmu určit původce úniku. Pro aplikaci transaction tracking lze použít viditelné znaky uvedené v pozadí tištěného dokumentu, v rohu videa a podobně. Nevýhody takových značek jsou podobné, jako problémy uvedené v kapitole identifikace autora (kapitola 2.2.2).
Obrázek 6 – Příklad unikátního identifikačního kódu umístěného na pozadí digitálního textového dokumentu. [2] Vodoznačení pro aplikaci transaction tracking lze použít například pro movie dailies. V průběhu natáčení filmu, je výsledný produkt daného dne, zpřístupněn některým lidem, kteří se na filmu podílejí. Movie dalies jsou tajné, ale někdy dochází k jejich úniku. Filmová studia mohou vkládat unikátní vodoznaky do jednotlivých kopií a v případě úniku identifikovat zdroj. Komise Academy of Motion Picture Arts uděluje ceny Oscar. Komise je tvořena téměř 6000 lidmi, kteří hlasují o nejlepším filmu, nejlepším herci apod. Akademie zpřístupní všem členům komise všechny nominované filmy 13
ve formátu VHS nebo DVD. Některé z těchto filmů v době hlasování ještě neměly premiéru v kinech. V takových případech může znamenat únik pirátské kopie velkou finanční ztrátu. V roce 2004, Technicolor, jedna z divizí společnosti Thompson, použila vodoznačící technologii od společnosti Philips, aby unikátně vodoznačila kopie každého člena komise pro udělování ceny Oscar. Krátce po uvolnění kopií se na Internetu objevily pirátské kopie filmů The Last Samurai, Something’s Gotta Give, Big Fish a Mystic River. Analýzou pirátské kopie bylo zjištěno, že vznikla z kopie, kterou obdržel herec Carmine Caridi. Carmine Caridi vypověděl vyšetřovatelům, že zpřístupnil svoji kopii svému kamarádovi Russellu Sprague a netušil, že vytvoří pirátské kopie. Sedmdesátiletý herec byl vyloučen z akademie a odsouzen k maximální možné pokutě 150 tisíc amerických dolarů za každý titul. [2]
2.2.5 Ověření pravosti Se zdokonalováním softwaru pro úpravu digitálních dat dochází k usnadnění modifikace digitálních dat, způsobem, který je obtížné rozpoznat.
Obrázek 7 – Příklad úpravy fotografie v programu Photoshop. Vlevo je neupravená fotografie, vpravo upravená fotografie, ze které byl odstraněn sloup. [3]
14
Obrázek 8 – Příklad úpravy fotografie. Vlevo je upravená fotografie, vpravo neupravená fotografie. [4] Pokud by výše uvedené obrázky sloužily jako důkazní materiál v soudním procesu nebo v policejním vyšetřování, nemožnost rozhodnout o jejich pravosti by představovala vážný problém. Podobný problém může nastat u zvukových dat a videa. [2] Pro ověření pravosti lze použít šifrovaný digitální podpis, který je tvořen šifrovanou informací, kterou lze ověřit pravost digitálních dat, ke kterým je digitální podpis přiložen. Šifrování i dešifrování digitálního podpisu je prováděno se znalostí tajného klíče. Pokud by někdo chtěl neautorizovaně data upravit a následně je vydávat za nezměněná, nemohl by vložit nový digitální podpis. Při ověřování pravosti by bylo zjištěno, že informace z digitálního podpisu nepotvrzuje pravost dat. Digitální podpisy jsou doplňujícími daty, která je nutné připojit k digitálním datům, která ověřují. Je snadné o doplňující data při běžném používání přijít. Pokud ověřovací systém pro JPEG1 obrázky ukládá digitální podpisy v hlavičkách souborů, konverzí do jiného formátu dojde k jejich ztrátě, pokud v novém formátu pro doplňující data není místo. Výhodným řešením pro ověřování pravosti může být vodoznačení. Použitím vodoznačení vkládáme digitální podpis přímo do digitálních dat v podobě vodoznaku. [2] Vodoznaky vytvářené pro aplikaci ověření pravosti patří do skupiny křehkých (kapitola 2.1.6) vodoznaků. Důležitým požadavkem na vodoznačící systém je, aby při vložení vodoznaku, nebylo dílo změněno natolik, že po detekci digitálního podpisu z vodoznaku a následném ověření digitálním 1 JPEG (zkratka názvu Joint Photographic Experts Group – komise, která vytvořila standard JPEG) je běžně používaná metoda ztrátové komprese pro digitální obrazová data. Míra komprese je nastavitelná. Metoda využívá diskrétní kosinovou transformaci, která transformuje obrázek z prostorové do frekvenční domény. Dochází k odstranění vysokofrekvenční informace, která je obtížně postřehnutelná lidským okem, například prudké změny intenzity, některé barevné odstíny.
15
podpisem, by se ověřované dílo jevilo jako nepravé. Požadavek lze splnit rozdělením díla na dvě části (například liché a sudé bity). Jednu, ve které je vložený vodoznak, obsahující zprávu, odpovídající digitálnímu podpisu a druhou, která je použita pro ověření při porovnání s detekovaným digitálním podpisem. Pokud dojde k modifikaci díla, vodoznak v něm obsažený je modifikován stejnými transformacemi. Je možné se o transformacích dozvědět nějaké informace. Pokud by například byl obrázek rozdělen do bloků a každý blok by obsahoval vlastní vodoznak, bylo by možné určit, které části obrázku jsou nezměněny a které byly modifikovány. Při policejním vyšetřování snímku ze záznamu kamery by nebylo možné určit pouze, že záznam byl modifikován a nelze mu věřit, ale bylo by možné určit, že většina snímku je nezměněna, s výjimkou oblasti okolo poznávací značky. [2]
2.2.6 Copy control Cílem vodoznačících systémů implementujících aplikaci copy control, je preventivně znemožnit tvorbu ilegálních kopií děl chráněných autorskými právy. Pokud by každá aplikace, nebo zařízení pro tvorbu kopií děl obsahovala detektor vodoznaků, bylo by možné zakázat kopírování díla v případě, že v něm detektor rozpozná vodoznak nesoucí význam „nekopírovat“. Problém spočívá v zajištění přítomnosti detektoru v každé aplikaci a zařízení pro kopírování. Neexistuje žádný obecný podnět, který by přiměl výrobce, vynaložit náklady na zabudování detektoru. Zákazníci by zpravidla raději vlastnili nahrávací zařízení, které je schopné vytvářet ilegální kopie. Přímým řešením by bylo vyžadovat přítomnost detektorů ze zákona. Pro zajištění celosvětové ochrany by bylo nutné vytvořit potřebné zákony ve všech státech světa. Dalším řešením je požadovat přítomnost detektorů v patentových licencích technologií, které výrobci chtějí ve svých zařízeních využívat. Požadavek na přítomnost vodoznačících detektorů je například součástí patentové licence pro technologii CSS1. Pokud chce výrobce umožnit, aby jejich přehrávač DVD přehrával disky zakódované pomocí CSS, musí součástí přehrávače být i vodoznačící detektory. Výhodou takového přístupu je, že spoléhá na existující zákony zavedené ve většině států. Nevýhodou je, že je povoleno vyrábět přehrávače bez vodoznačících detektorů, pokud nevyužívají technologii chráněnou potřebnou patentovou licencí. Mohou tak existovat legální přehrávače DVD, které neobsahují detektory pro vodoznačení a současně neobsahují technologii pro dešifrování, která je chráněna patentovou licencí. Taková zařízení se nazývají noncompliant. Zařízení imple1 CSS (Content Scramble System) je systém pro ochranu vlastnických práv autorů komerčních DVD. Licence pro použití systému CSS vydává asociace Copy Control Association (CCA).
16
mentující dešifrování a obsahující vodoznačící detektory se nazývají compliant. [2] Legálně distribuovaná díla mohou obsahovat vodoznak nesoucí zprávu „nekopírovat“. Legálně pořízené dílo lze přehrát na compliant přehrávači, ale nelze přehrát na noncompliant přehrávači, protože obsah takového díla je zašifrovaný technologií, která není noncompliant přehrávačem podporována. Noncompliant zařízení pro nahrávání mohou vytvářet ilegální kopie legálně distribuovaných děl. Pokud je nějaké dílo vloženo do compliant přehrávače, přehrávač detekuje vodoznak „nekopírovat“. Následně rozpozná, jestli se jedná o originál, nebo kopii. V případě, že se jedná o kopii, se přehrávač vypne. Ilegální kopie lze přehrávat na noncompliant přehrávačích. Compliant zařízení pro přehrávání nezkopírují žádná díla s vodoznakem „nekopírovat“.
Obrázek 9 – Vztahy, mezi legálními a ilegálními kopiemi děl a mezi compliant a noncompliant přehrávači a zařízeními pro nahrávání. Šipky vyznačují potenciální operace nad dílem. Křížky vyznačují znemožnění vykonání dané operace. [2]
17
Zákazník má možnost koupit si compliant zařízení, které může přehrávat legální obsah šifrovaný danou patentovanou technologií, ale nesmí přehrávat ilegální obsah. Nebo si koupit noncomplient zařízení, které mimo jiné, přehrává ilegální obsah, ale nepřehrává legální obsah šifrovaný danou patentovou technologií. [2]
18
3 Metody vodoznačení vhodné pro důkaz autorství medicínských dokumentů 3.1 Úvod kapitoly Pro svoji bakalářskou práci jsem zvolil tři algoritmy, Generalized patchwork algorithm [5], Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform [14] a Very Fast Watermarking by Reversible Contrast Mapping [17], kterým se detailněji věnuji v kapitolách 3.2, 3.3 a 3.4. Generalized patchwork algorithm je algoritmus vhodný k vodoznačení medicínských dokumentů horší obrazové kvality, dokumentů u kterých se očekává zašumění v průběhu přenosu, obecně dokumentů, které je výhodné po vodoznačení digitálně zpracovat. Medicínské dokumenty může být výhodné komprimovat, například z důvodu ušetření datového prostoru nebo urychlení zaslání dat přes Internet. Je výhodné, pokud je vodoznačící metoda robustní vůči kompresi, například kompresi JPEG. Zcela zásadním požadavkem na vodoznačení medicínských dokumentů je fidelity. Malý rozdíl způsobený vložením vodoznaku, může mít velký vliv při vyhodnocování medicínského obrázku. Algoritmy, které požadavek na fidelity řeší obnovením původního obrázku při detekci vodoznaku, se nazývají reverzibilní algoritmy. Existuje mnoho reverzibilních algoritmů robustních vůči kompresi JPEG. Metoda založená na rotaci histogramu ([18], [19]) je robustní vůči JPEG kompresi. Algoritmus generuje Salt-and-Pepper šum1, protože používá funkci modulo, aby intenzity pixelů „nepřetekly“, nebo „nepodtekly“ maximální (minimální) hodnotu intenzity pixelů. Na metodu [18], [19] navazuje algoritmus [20], [21], který řeší problém s generováním šumu, ale ztrácí možnost přesné reverzibility. Podobný problém nastává u metody [22], [23]. Metody [24] navazují na metodu [19], negenerují šum, jsou robustní, dosahují snížení deformace obrazu za cenu snížení datové kapacity. Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform je zcela reverzibilní, vykazuje výborné výsledky při detekci vodoznaku z obrázků komprimovaných metodou JPEG 1 Salt-and-Pepper šum (šum „sůl a pepř“), neboli impulsní šum se může vyskytovat u obrazových digitálních dat. Zašuměné pixely jsou nastaveny některé na minimální a některé na maximální hodnotu. Pro redukci tohoto typu šumu je vhodný mediánový filtr.
19
(lepší, než všechny uvedené metody) a vykazuje i lepší fidelity, než uvedené metody. [14] Dalším zcela reverzibilním algoritmem je Very Fast Watermarking by Reversible Contrast Mapping. Algoritmus nabízí slušnou datovou kapacitu, metody [25], [26] umožňují několikanásobně nižší maximální počet vložených bitů, metoda [27] algoritmus mírně překonává. Hlavní výhodou algoritmu Very Fast Watermarking by Reversible Contrast Mapping je velmi nízká časová složitost, výrazně nižší, než u všech výše zmíněných. Algoritmus je vhodný k velmi rychlému vodoznačení medicínských dokumentů, které nebudou komprimovány a modifikovány. [17]
3.2 Generalized patchwork algorithm (GPA) 3.2.1 Úvod k algoritmu Existuje mnoho variant Patchworkova algoritmu. Algoritmus obecně náhodně určí dvojice množin pixelů, dvojice určitým způsobem modifikuje. V případě aditivního přístupu, je například u první množiny snížena intenzita pixelů o d a u druhé množiny zvýšena intenzita pixelů o d. Dochází tak ke změně průměrné hodnoty těchto množin. Aditivní algoritmus detekuje vodoznaky výpočtem rozdílů průměrů mezi dvojicemi množin pixelů a následným provedením statistické hypotézy. V případě multiplikativního přístupu, jsou násobeny intenzity pixelů jedné množiny hodnotou (1 – d) a pixely druhé množiny hodnotou (1 + d). Dochází ke změně směrodatných odchylek jednotlivých množin. Směrodatná odchylka jedné množiny je snížena a druhé zvýšena. Poměr těchto směrodatných odchylek je použit při detekci vodoznaků. Patchworkův algoritmus je slepý (kapitola 2.1.4), lze provádět detekci bez přiložení původního díla. [5] Generalized patchwork algorithm (GPA), neboli zobecněný Patchworkův algoritmus, je rozšířením modifikovaného Patchworkova algoritmu [29] (MPA). MPA vkládá vodoznaky aditivně. GPA umožňuje použití aditivních i multiplikativních vodoznaků. Detekční funkce váženě porovnává průměry a směrodatné odchylky. [5] Originální Patchworkův algoritmus modifikuje pixely v prostorové doméně (pro obrázky), nebo časové doméně (pro zvukové signály). Patchworkův algoritmus, využívající vkládání v časové doméně, je náchylný vůči běžným modifikacím obrazu. GPA využívá vkládání ve frekvenční doméně diskrétní kosinové transformace. [5]
20
3.2.2 Diskrétní kosinová transformace Diskrétní kosinová transformace (discrete cosine transform, DCT) transformuje konečnou sekvenci signálu, jako váženou sumu kosinových funkcí o různých frekvencích. DCT je podobná diskrétní Fourierově transformaci (DFT), ale používá pouze reálné koeficienty. DCT se používá například pro ztrátovou kompresi zvukového signálu (MP3) nebo obrázků (JPEG). [7] Nejnižší frekvence se nachází v levém horním rohu transformovaného obrázku. Se zvyšující se vzdáleností od tohoto bodu se zvyšuje i frekvence. Většina informace signálu je po DCT zpravidla uložena na nízkých frekvencích. Je tak možné odstranit malé vysokofrekvenční komponenty.
Obrázek 10 – Obrázek ukazuje rozložení frekvencí dvourozměrné DCT pro obraz velikosti 8x8. Nejnižší frekvence se nachází v levém horním rohu, nejvyšší v pravém dolním rohu. [7]
21
Obrázek 11 – Obrázek ukazuje rozložení informace mezi jednotlivé frekvence 8x8 DCT. Vlevo jsou pixely před transformací, vpravo po transformaci. [9] Existuje 8 standardních variant DCT, z nichž 4 jsou běžně používané. Nejběžnější varianta diskrétní kosinové transformace je DCT typu II, která je často nazývána pouze „DCT“. K ní inverzní transformace je DCT typu III, také rovněž často nazývána pouze „inverzní DCT“ nebo označována zkratkou „IDCT“. [8] Algoritmus GPA používá DCT II a DCT III. Dvourozměrná DCT II lze vypočítat z následujícího vzorce.
Vzorec 1 – Vzorec pro výpočet dvourozměrné DCT II. M a N udávají rozměry x-ové a y-ové osy obrázku v pixelech. m a n jsou indexy bodu, který získáme transformací. Pokud například chceme vypočítat transformovanou hodnotu v bodě (0, 5), bude m = 0 a n = 5. C(m), C(n) = 1/√2 pro m, n = 0 and C(m), C(n) = 1 v ostatních případech. F je DCT signálu f. [10] Dvourozměrná DCT III (inverzní DCT) lze vypočítat z následujícího vzorce.
22
Vzorec 2 – Vzorec pro výpočet DCT III (inverzní DCT). Význam jednotlivých operátorů je vysvětlen v popisku ke vzorci 1. [11] Jako příklad lze uvést transformaci obrázku velikosti 8x8, na kterém je písmeno A.
Obrázek 12 –Vlevo je obrázek velikosti 8x8 obsahující písmeno A. Vpravo je ten samý obrázek, ale zvětšený. [7] DCT získáme následující koeficienty
Obrázek 13 –Obrázek tabulky obsahující koeficienty po DCT obrázku 12. [7] Obrázek 14 zobrazuje bázové funkce DCT včetně jejich koeficientů. Inverzní DCT se provede vynásobením každé bázové funkce jejím koeficientem a sečtením těchto násobků dostaneme zpět původní obrázek 12.
23
Obrázek 14 – Obrázek bázových funkcí DCT obrázku 12, včetně jejich koeficientů. [7]
3.2.3 Vkládací blok algoritmu Algoritmus vkládá vodoznak ve frekvenční doméně, získané diskrétní kosinovou transformací. (kapitola 3.2.2) Algoritmus transformuje obrázek blokovou diskrétní kosinovou transformací s rozměry každého bloku NR x NC. NR je konstanta udávající počet řádků pixelů každého bloku, R – rows. NC je konstanta udávající počet sloupců pixelů každého bloku, C – columns. Pro zakódování informace tvořené 0 a 1, algoritmus vygeneruje dvě množiny indexů I0 a I1: 0
0
0
I = { I 1 ,..., I 2n } I 1 = { I11 ,..., I 12n } Prvky obou množin jsou náhodně vygenerovaná celá kladná čísla z intervalu [Z1, Z2], kde 1 ≤ Z1 < Z2 ≤ NR * NC, (NR * NC je součin NR a NC). 24
Množiny I0 a I1 jsou vzájemně různé. Množina I0 obsahuje indexy pixelů, které budou upraveny v každém bloku, transformovaném diskrétní kosinovou transformací, který ponese zprávu 0. Obdobně algoritmus funguje pro I1 a zprávu 1. Algoritmus indexuje pixely bloku „cik cak“, podobně jako komprese JPEG, tak jak je uvedeno na obrázku 15. Zavedení takové indexace, v bloku obrázku transformovaném diskrétní kosinovou transformací, je motivováno tím, aby byly indexované pixely řazeny od pixelů, nesoucích informace o nejnižších frekvencích, po pixely, nesoucí informace o nejvyšších frekvencích.
Obrázek 15 – „cik cak“ indexování hodnot používané například při kompresi obrázků metodou JPEG. [6] Z důvodu zjednodušení notace algoritmus dělí množiny indexů I0 a I1 na podmnožiny. I0 = {I0+, I0-} I1 = {I1+, I1-}
25
Vzorec 3 – Vzorec udává, jakým způsobem jsou rozděleny množiny indexů na podmnožiny. [5] Definujme j = 0, pokud blok nese hodnotu 0, j = 1, pokud blok nese hodnotu 1. Dále definujme: A j = { A1j ,..., Anj } j
j
j
B = { B1 ,..., Bn } Aj je množina koeficientů pixelů, které odpovídají indexům množiny Ij+. B je množina koeficientů pixelů, které odpovídají indexům množiny Ij-. Následující vztahy v podkapitole 3.2.3 budou uvedeny pro kódování bitu 0, j = 0, množiny koeficientů A0, B0. Pro j = 1 by byla situace obdobná. Vypočítáme průměrné hodnoty množin koeficientů A0 a B0, následně vypočítáme jejich rozptyl. j
Vzorec 4 – Vzorce pro výpočet průměrné hodnoty množin A0 a B0, pro výpočet rozptylu A0 a B0. [5]
26
Vkládací funkce je určena následujícím vztahem.
Vzorec 5 – Vkládací funkce GPA algoritmu. [5] SE0 je sdružená směrodatná odchylka množin A0 a B0. Obecně je to metoda, kterou lze vypočítat společnou směrodatnou odchylku více množin. Jedná se o vážený průměr směrodatných odchylek jednotlivých množin. Větší váhu mají početnější skupiny. Pro účely algoritmu GPA využíváme dvě skupiny o stejném počtu prvků. Sdruženou směrodatnou odchylku pro účely GPA lze vypočítat následujícím způsobem.
Vzorec 6 – Vzorec pro výpočet hodnoty SE0 potřebné pro vkládací funkci. [5] P1 a P2 jsou konstanty, kterými lze upravovat robustnost a fidelity vodoznaku. Konstanty je možné volit z intervalu 0 ≤ P1 <1 a 0 ≤ P2. Vhodná volba těchto konstant je řešena v kapitole 3.2.6. Posledním krokem vkládacího bloku je nahrazení prvků A 0i a B0i transformovaného bloku obrázku prvky A 0i * a B0i * , pro I = 1,...,n a provedení inverzní diskrétní kosinové transformace. [5]
3.2.4 Detekční blok algoritmu Pro detekci a dekódování vyžaduje algoritmus znalost množin indexů I0 a I1 použitých při vkládání. Pomocí indexů lze získat množiny A0, B0, A1, B1 odpovídající vodoznačenému obrázku, využitím stejných vztahů jako u vkládání. Detekce i dekódování jsou provedeny jednou funkcí.
27
Vzorec 7 – Detekční i dekódovací funkce GPA algoritmu. [5] Hodnota váhy β je odvozena od hodnot parametrů P1 a P2. Pokud při vkládání platí, že P1 = 0 a P2 > 0, dochází ke zvyšování rozdílu průměrů A a B. V tomto případě je vhodné zvolit β = 0 (aditivní přístup, kapitola 3.2.1). Jedna z rovnic detekční funkce tak inklinuje k vysoké hodnotě, v případě, že je obrázek vodoznačený. Pokud při vkládání platí, že P1 > 0 a P2 = 0, je vhodné zvolit β = 1 (multiplikativní přístup, kapitola 3.2.1). Detekční rovnice jsou v takovém případě ekvivalentní vyššímu z poměrů dvou směrodatných odchylek, které inklinují k vysoké hodnotě v případě, že obrázek je vodoznačený. [5] Pokud je aditivní a multiplikativní přístup kombinován, P1 a P2 nejsou rovné nule, je volba parametru β závislá na konkrétních obrazových datech a je nutné nalézt vhodnou hodnotu experimentálně k dosažení nejvyšší možné pravděpodobnosti správné detekce. [5] Zadefinujme
a X jako počet výskytů jevu, že T2 je větší, než práh M (volba vhodného prahu je uvedena v kapitole 3.2.6) z R (konstanta udávající počet bitů informace, které zakódováváme) pokusů. Algoritmus vyhodnotí obrázek jako vodoznačený, v případě, že X ≥ Y (Y je volená konstanta, ovlivňující riziko, že algoritmus označí obrázek nesprávně za vodoznačený). Následně je pro 2 2 jednotlivé bloky určeno, jestli nesou informaci 0, nebo 1. Pokud T0 > T1 , je bloku přiřazena zpráva 0. V ostatních případech je bloku přiřazena zpráva 1. [5]
3.2.5
Fisher–Snedecorovo rozdělení (F–rozdělení)
Algoritmus GPA využívá Fisher–Snedecorovo rozdělení při určování prahu pro detekci a parametrů vodoznaku (kapitola 3.2.6). Fisher–Snedecorovo rozdělení je spojité rozdělení pravděpodobnosti. Označení X ~ F(d1, d2) znamená, že náhodná veličina X má F–rozdělení s parametry d1 a d2. [12] 28
Funkce hustoty pravděpodobnosti pro X má následující tvar.
Vzorec 8 – Funkce hustoty pravděpodobnosti F–rozdělení pro reálná x ≥ 0 (pro x < 0 je hodnota funkce vždy nulová). B je beta funkce (vzorec 9). [12] Funkce hustoty pravděpodobnosti vyjadřuje pravděpodobnosti, že daná náhodná veličina nabývá konkrétní hodnoty. Pravděpodobnost, že daná náhodná veličina nabývá hodnoty na intervalu, lze vypočítat určitým integrálem na tomto intervalu. Beta funkce, nazývána také Eulerův integrál prvního typu, je dána následujícím předpisem.
Vzorec 9 – Vzorec pro výpočet beta funkce, potřebné pro vyjádření funkce hustoty pravděpodobnosti (vzorec 8) a distribuční funkce (vzorec 10) F– rozdělení. [13] Distribuční funkci lze vyjádřit následujícím vztahem.
Vzorec 10 – Vzorec distribuční funkce F–rozdělení. I je normovaná neúplná beta funkce (vzorec 11a). [12] Distribuční funkce zobrazuje pravděpodobnost, že náhodná veličina X má hodnotu menší, nebo rovnu x. Tato pravděpodonost je rovna obsahu pod křivkou funkce hustoty pravděpodobnosti, na intervalu od minus nekonečna do x.
29
Normovaná neúplná beta funkce lze vyjádřit následujícím vztahem.
Vzorec 11a – Vzorec pro výpočet normované neúplné beta funkce potřebné pro vyjádření distribuční funkce F–rozdělení. B(a, b) je beta funkce (vzorec 9), B(x; a, b) je neúplná beta funkce (vzorec 11b) [13] Neúplná beta funkce lze vyjádřit následujícím vztahem.
Vzorec 11b – Vzorec pro výpočet neúplné beta funkce potřebné pro vyjádření normované neúplné beta funkce (vzorec 11a). [13]
30
Obrázek 16 – Obrázek funkce hustoty pravděpodobnosti a distribuční funkce pro různé parametry d1 a d2 F–rozdělení. [12]
3.2.6 Volba parametrů vodoznaku a prahu pro detekci Při detekci může nastat jeden ze dvou typů chyb. Označení obrázku za vodoznačený, v případě, že není vodoznačený (chyba typu 1). Označení obrázku za nevodoznačený, v případě, že je vodoznačený (chyba typu 2). [5]
31
Předpokládejme, že DCT koeficienty mají normální (gaussovo) rozdělení1. Pak v případě, že obrázek není vodoznačený, má každý prvek rovnice pro detekci (kapitola 3.2.4, vzorec 7) následující tvar. [5]
Vzorec 12 – Prvky detekční funkce v případě nevodoznačeného obrázku a normálního rozdělení DCT koeficientů. Fd1,d2 je F-distribuce s parametry d1 a d2. (kapitola 3.2.5) [5] Označme pravděpodobnost, že Zi je větší než práh M, jako pi. pi lze vypočítat z F-distribuce. Označme pravděpodobnost, že T2 je větší, než M, jako α. [5] Práh M lze vyjádřit z následující rovnice.
Vzorec 13 – Rovnice pro výpočet prahu M. [5]
1 Normální (gaussovo) rozdělení je rozdělení náhodné spojité veličiny, využívané jako aproximace náhodných veličin, jejichž rozdělení není známé. Podle centrálního limitního teorému průměry nezávisle vzatých náhodných veličin z nezávislých náhodných distribucí za určitých okolností konvergují k normální distribuci. Normální rozdělení pravděpodobnosti je definováno hustotou pravděpodobnosti ve tvaru Gaussovy funkce.
32
Pravděpodobnost chyby typu 1 lze pak určit z následujícího vztahu.
Vzorec 14 – Rovnice pro určení pravděpodobnosti chyby typu 1 při použití prahu M. Hodnotu parametru α lze vyjádřit ze vzorce 13. (význam ostatních parametrů – závěr kapitoly 3.2.4). [5] Pokud P1 = 0 a P2 > 0, pak vkládací funkce změní rozptyl pixelů pouze zanedbatelně. Sdružená směrodatná odchylka SE zůstane také téměř nezměněna. Detekční funkci s parametrem β = 0 lze pak zapsat v upraveném tvaru. [5]
Vzorec 15 – Upravený tvar detekční funkce.
[5]
Nastavením parametru P2 na hodnotu větší, nebo rovnu než práh M, zajistíme, že testovaný prvek je vždy větší, než práh M. Dosáhneme nulové pravděpodobnosti chyby typu 2. [5] Pokud P1 > 0 a P2 = 0, pak lze detekční funkci s parametrem β = 1 upravit do následujícího tvaru. [5]
Vzorec 16 – Upravený tvar detekční funkce. [5] 33
Z toho vyplývá, že pro P1 splňující následující vztah, dosáhneme nulové pravděpodobnosti chyby typu 2.
Vzorec 17 – [5] Pro zachování nulové pravděpodobnosti chyby typu 2 a obecné parametry P1 a P2, musí parametry splňovat následující nerovnici.
Vzorec 18 – [5]
3.2.7 Experimentální výsledky Robustnost algoritmu byla testována vůči kompresi metodou JPEG. Byly testovány různé obrázky velikosti 512 x 512. Byl použit DCT blok velikosti 64 x 64 pixelů, bylo náhodně zvoleno 30 koeficientů z intervalu [200, 700]. [5] V prvním experimentu, byly parametry vkládací funkce P1 a P2 nastaveny na P1 = 0, P2 = 9, práh M byl nastaven na M = 5, do každého obrázku bylo vloženo 64 bitů informace. Průměrný poměr signálu k šumu1 byl 40,891 dB. [5] V druhém experimentu, byly parametry vkládací funkce P1 a P2, nastaveny na P1 = 0,5, P2 = 0, práh M byl nastaven na M = 4, do každého obrázku 1 Poměr signálu k šumu (Signal-to-noise ratio – SNR) je veličina používaná k vyjádření poměru síly žádoucího signálu k síle nežádoucího šumu. Veličina je vyjádřena v decibelech.
34
bylo vloženo opět 64 bitů informace. Průměrný poměr signálu k šumu byl 38,636 dB. [5]
Obrázek 17 – Obrázek výsledků experimentu na robustnost algoritmu GPA vůči kompresi metodou JPEG. V levém sloupci je uvedena míra komprese. Ve druhém sloupci zleva je procento úspěšně detekovaných vodoznaků v prvním experimentu (DR – detection rates), ve třetím sloupci je procento špatně detekovaných bitů v prvním experimentu (BER – bit error rates). Obdobně jsou ve čtvrtém a pátém sloupci uvedeny výsledky druhého experimentu. Z výsledků je patrné, že většina vodoznaků byla dostatečně robustní i proti velké míře komprese. [5] Algoritmus byl testován programem StirMark. Program otestoval robustnost vodoznaků vůči mediánovému filtrování1, FMLR2 (frequencymode Laplacian removal), Gaussovu filtrování3, zaostřovacím filtrům a náhodnému ohýbaní obrazu. [5]
1 Mediánový filter je nelineární filtr vhodný pro potlačení impulsního šumu. Každý pixel obrazových dat je nahrazen hodnotou mediánu z předdefinovaného okolí nahrazovaného pixelu. 2 FLMR [28] (frequency-mode Laplacian removal) je úspěšná technika pro odstranění vodoznaků vložených různými vodoznačícími algoritmy. 3 Gaussovo filtrování, gaussovo rozmazání, nebo gaussovo vyhlazení obrazu je v digitálním zpracování obrazu výsledek rozostřením obrazu Gaussovou funkcí. Je využíváno ke snížení šumu nebo detailu v obrazových datech.
35
Obrázek 18 – Obrázek výsledků testu programem StirMark. Levé dva sloupce ukazují výsledky prvního experimentu, druhé dva druhého experimentu. [5] Výsledky algoritmu v testu programu StirMark by bylo možné vylepšit zavedením kódu pro opravu špatně detekovaných bitů a zvětšením DCT bloku, za cenu nižší datové kapacity. [5]
3.2.8 Závěr k algoritmu GPA kombinuje při vkládání aditivní Patchworkův algoritmus a multiplikativní Patchworkův algoritmus. Při detekci využívá změny průměrů a směrodatných odchylek. Algoritmus je schopen zajistit nulovou pravděpodobnost vzniku chyby typu II. (kapitola 3.2.6) Algoritmus umožnuje adaptivně nastavit parametry vodoznaku v závislosti na hostitelském signálu. Experimenty ukazují, že GPA je robustní vůči JPEG kompresi a některým běžným modifikacím signálu. Algoritmus není robustní vůči náhodnému ohýbání obrazu.
3.3 Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform 3.3.1 Úvod k algoritmu Při přenosu digitálních dat přes Internet je důležité, zabránit neoprávněné manipulaci. Vodoznačení lze použít za tímto účelem. V mnoha aplikacích není důležitá pouze zpráva, kterou vodoznak nese, ale také schopnost detekčního bloku získat z vodoznačeného obrázku původní obrázek. Takové vodoznačení ze nazývá reverzibilní (bezztrátové, invertibilní). Reverzibilita vodoznaku je jeden ze základních požadavků pro vodoznačení medicín36
ských obrazových dat, protože i malá nepřesnost v obnoveném obrázku může mít významný vliv pro jeho vyhodnocení. Dalším požadavkem na vodoznaky použité pro medicínské obrázky je robustnost, protože medicínská data mohou být komprimována z důvodu ušetření úložního prostoru, nebo z důvodu rychlejšího přenosu. Při přenosu může navíc dojít k zašumění. Metoda uvedená v této kapitole je robustní, reverzibilní vodoznačící metoda, která rozdělí obrázek do stejně velkých, nepřekrývajících se bloků. Jednotlivé bloky jsou transformovány Slantletovou transformací. Jsou vybrány vysokofrekvenční podčásti jednotlivých transformovaných bloků a změnou průměrů jejich koeficientů je do každého bloku vložen 1 bit informace.
3.3.2 Slantletova transformace (SLT) Slantletova transformace je speciální ortogonální diskrétní waveletová transformace. Transformace probíhá maticovým násobením matice signálu a matice SLT. Matici, pro stupeň (scale) i, lze určit pomocí tří Slantletových filtrů, hi(n), fi(n) a gi(n), které analyzují signál. Počet prvků každého filtru je roven 2i+1. [14] Filtry hi(n) a fi(n), jsou definovány 8 parametry, které označujeme b0,0, b0,1, b1,0, b1,1, c0,0, c0,1, c1,0, c1,1. Prvky těchto dvou filtrů a parametry potřebné pro jejich určení lze získat z následujících vztahů.
37
Vzorec 19 – Vztahy potřebné pro výpočet filtrů hi a fi. [14] Filtr gi(n) je definován 4 parametry, které označujeme a0,0, a0,1, a1,0, a1,1. Prvky filtru a parametry potřebné pro jejich určení lze získat z následujících vztahů.
Vzorec 20 – Vztahy potřebné pro výpočet filtru gi. [14] Pro stupeň L (scale L) má ortogonální matice SLT velikost 2L x 2L. Například pro L = 3 má matice SLT velikost 8 x 8. První řádek matice lze vypočítat součtem první a druhé poloviny filtru hi(n). Výpočet lze zjednodušit následujícím způsobem.
Vzorec 21 – Vzorec pro výpočet prvního řádku matice SLT. n nabývá hodnot z intervalu [0, 2L-1], m = 2L. Pro stupeň L = 3 je hodnota každého prvku prvního řádku matice po zaokrouhlení rovna 0,3536. [14]
38
Druhý řádek matice lze vypočítat součtem první a druhé poloviny filtru fi(n). Výpočet lze zjednodušit následujícím způsobem.
Vzorec 22 – Vzorec pro výpočet druhého řádku matice SLT. n nabývá hodnot z intervalu [0, 2L-1], m = 2L. [14] Ostatní řádky matice SLT lze určit pomocí filtru gi(n), reverzního filtru vůči gi(n), který má stejné prvky, ale v opačném pořadí a jejich variant posunutých o 2i+1, pro i z intervalu [1, L-1]. [14] Algoritmus vytvořený v programu Matlab na následujícím obrázku ukazuje výpočet matice detailněji. Prvních 7 řádků kódu nastaví první dva řádky matice. Následující řádky kódu nastaví ostatní řádky matice pomocí filtru gi(n).
Obrázek 19 – Algoritmus, pro tvorbu matic SLT, s daným stupněm (scale), psaný v programu Matlab. Funkce zeros vytvoří čtvercovou matici 39
plnou 0 dané velikosti. Funkce gethf a getg vrátí odpovídající parametry pro daný stupeň L. Program používá „dvojtečkovou notaci“ programu Matlab, například T(1,1:m) = h(1:m) + h(m+1:2*m) znamená, že T(1,1) bude nastaveno na h(1) + h(m+1), T(1,2) na h(2) + h(m+2)...T(1,m) na h(m) + h(2*m). [16]
Obrázek 20 – 16 řádkových vektorů matice SLT velikosti 16 x 16 pro stupeň L = 4. [15]
40
Na obrázku 21 je matice SLT pro stupeň 3.
Obrázek 21 – Matice SLT pro L = 3. [14] Mějme původní 2-D signál f o rozměrech N x N, který chceme transformovat.
Obrázek 22 – [14] A mějme matici SLT o rozměrech N x N, označme ji SLT N. Označme signál F, jako signál transformovaný Slantlatovou transformací. F má rozměry N x N.
Obrázek 23 – [14] Slantlatovu transformaci lze provést maticovým násobením. Vzorec 23 – [14] 41
Podobně lze provést Inverzní Slantlatovu transformaci. Vzorec 24 – [14]
3.3.3 Vkládací blok algoritmu Proces vkládání algoritmu lze rozdělit do šesti kroků.
Obrázek 24 – Schéma kroků vkládacího bloku. [14] 1. krok: Rozdělení obrázku, do kterého chceme vložit vodoznak, na stejně velké bloky, které se nepřekrývají. 2. krok: Transformace všech jednotlivých bloků využitím SLT. 3. krok: Výběr horizontálních a vertikálních vysokofrekvenčních koeficientů. (viz. HL, LH na obrázku 24). 4. krok: Vložení vodoznaku. Nejprve vypočítáme průměry bloků HL a LH, označíme μHL a μLH. Označíme bit, který chceme vložit do daného bloku, jako wi a předdefinovaný celočíselný práh, ovlivňující fidelity a robustnost vodoznaku, jako β. Bit wi je do bloku vložen úpravou rozdílu mezi μHL a μLH.
42
Pro wi = 1 a α1 = μHL - μLH < β, vložíme bit informace do bloku zvýšením hodnoty μHL a snížením hodnoty μLH, podle následujícího vztahu.
Vzorec 25 – Vzorec pro vložení 1 bitu informace do bloku obrázku, za předpokladu, že vkládaný bit má hodnotu 1 a μHL - μLH < β. [14] Pro wi = 1 a α1 = μHL - μLH ≥ β, algoritmus neprovede žádné změny. Pro wi = 0 a α2 = μLH - μHL < β, vložíme bit informace do bloku snížením hodnoty μHL a zvýšením hodnoty μLH, podle následujícího vztahu.
Vzorec 26 – Vzorec pro vložení 1 bitu informace do bloku obrázku, za předpokladu, že vkládaný bit má hodnotu 0 a μLH - μHL < β. [14] Pro wi = 0 a α2 = μLH - μHL ≥ β, algoritmus neprovede žádné změny. Pro zajištění reverzibility algoritmu jsou hodnoty rozdílu průměrů α1, nebo α2 uloženy, jako vedlejší informace (side information). 5. krok: Nahrazení původních HL a LH koeficientů novými hodnotami. Hodnoty některých nových pixelů mohou mít hodnotu vyšší, než je maximální intenzita pixelu, například více než 255, nebo nižší, než je minimální intenzita pixelu, například méně než 0. V takovém případě jsou pozice a rozdíly mezi maximální, nebo minimální hodnotou těchto pixelů uloženy jako vedlejší informace. Pixely jsou nastaveny na maximální hodnotu, pokud jejich intenzita byla vyšší než maximální hodnota, nebo na minimální hodnotu, pokud jejich intenzita byla nižší než minimální hodnota. 6. krok: Provedení inverzní 2D-SLT. Původní obrázek lze získat z vodoznačeného obrázku bez ztráty informace. Detekční blok vyžaduje na vstupu vodoznačený obrázek, vedlejší informace jednotlivých bloků, velikost bloku a hodnotu prahu β.
43
3.3.4 Detekční blok algoritmu Detekční blok algoritmu lze rozdělit do 5 kroků. 1. krok: Rozdělení vodoznačeného obrázku na stejné bloky jako původní obrázek při vkládání vodoznaku. 2. krok: Jednotlivé bloky transformujeme pomocí 2D-SLT. 3. krok: Vybereme HL a LH koeficienty a vypočítáme jejich průměrné new hodnoty μ new HL a μLH . 4. krok: Získání bitové informace jednotlivých bloků, z průměrných new hodnot μ new HL a μLH , podle následujícího vztahu.
Vzorec 27 – Detekční funkce. [14] 5. krok: Původní obrázek lze získat zpětnou úpravou koeficientů HL a LH, podobným způsobem, jako při vkládání. Hodnoty α1, nebo α2, β a případné indexy a velikost „přetečení“ maxima, nebo „podtečení“ minima pixelů pro jednotlivé bloky, jsou dodány detekčnímu bloku jako vedlejší informace (side information).
3.3.5 Experimentální výsledky algoritmu Experimenty byly provedeny na 50 obecných a 50 medicínských obrázcích za účelem ohodnocení kvality robustnosti a fidelity a srovnání těchto dvou parametrů s předchozími metodami. Testované obrázky měly velikost 256 x 256 pixelů a velikost bloku byla zvolena 8 x 8 pixelů. [14] Pro ohodnocení a porovnání fidelity byl použit špičkový poměr signálu k šumu1, definovaný vzorcem 28. Výsledky PSNR, pro 6 testovaných obrázků, jsou uvedeny na obrázku 25, byl použit vkládací práh β = 4. [14]
1 Špičkový poměr signálu k šumu (PSNR – Peak Signal-To-Noise-Ratio) je veličina používaná k vyjádření poměru maximální možné síly žádoucího signálu k síle nežádoucího šumu.
44
Vzorec 28 – Vzorec pro výpočet špičkového poměru signálu k šumu. I je originální obrázek, Iw je vodoznačený obrázek, h a w jsou rozměry obrázku. [14]
Obrázek 25 – Výsledky PSNR (dB) metody Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform pro některé testované obrázky. [14] Obrázek 26 ukazuje graf průměrných hodnot PSNR s hodnotou vkládacího prahu β od 4 do 8, je provedeno porovnání s dalšími čtyřmi metodami. Z grafu je patrné, že při použití nižšího vkládacího prahu β, je PSNR vyšší pro všech 5 metod. Robust Reversible Watermarking Scheme Based on WaveletLike Transform dosahuje lepších výsledků pro obecné i medicínské obrázky. [14]
45
Obrázek 26 – Průměrné výsledky PSNR (dB) s použitím různých vkládacích prahů β pro 5 vodoznačících metod. HR – histogram rotation [19], HDC – histogram distribution constrained [21], RHR-BS – reliable histogram rotation method based on block selection [24], RHR-PA – reliable histogram rotation method based on pixel adjustment [24], Proposed method - Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform. [14]
46
Pro vyhodnocení a porovnání robustnosti algoritmu vůči kompresi metodou JPEG, byla fixně dlouhá, stejná bitová informace, vložena do obrázku opakovaně. Při detekci byla vybrána bitová informace, která byla v obrázku detekována nejvíce krát. Prah pro vkládání β byl nastaven na hodnotu 8. Obrázek 27 ukazuje tabulku faktorů kvality komprese metodou JPEG. Bzlo testováno 5 metod vodoznačení, byly aplikovány na obecné a medicínské obrázky. Pro uvedené a vyšší hodnoty faktoru kvality, byla bitová informace obrázků detekována spolehlivě. Tabulka ukazuje, že metoda Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform dosáhla v testu vyšší robustnosti vůči kompresi JPEG, obzvlášť u medicínských obrázku. [14]
Obrázek 27 – Tabulku faktorů kvality komprese JPEG pro 5 metod vodoznačení. Pro uvedené a vyšší hodnoty faktoru kvality byla bitová informace obrázků detekována spolehlivě. Prah pro vkládání β byl nastaven na hodnotu 8. HR – histogram rotation [19], HDC – histogram distribution constrained [21], RHR-BS – reliable histogram rotation method based on block selection [24], RHR-PA – reliable histogram rotation method based on pixel adjustment [24], Proposed method - Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform. [14]
3.3.6 Závěr k algoritmu Účelem robustních reverzibilních metod vodoznačení je vytvořit vodoznačené obrázky, ze kterých je možné rekonstruovat původní nevodoznačený obrázek a zajistit odolnost vodoznaku vůči běžným modifikacím obrázků pro danou aplikaci, vůči kompresi a vůči šumu vytvořeném při přenosu. Uvedený algoritmus umožňuje velmi přesnou rekonstrukci obrazu pomocí vedlejší informace, která je poskytnuta detektoru a která definuje, jaké změny byly na obrázku provedeny. V případě, že nedošlo k žádným modifikacím obrázku po vložení vodoznaku, umožňuje algoritmus kompletní reverzibilitu. Uvedený algoritmus vykazuje velmi dobré výsledky vůči kompresi JPEG.
47
3.4 Very Fast Watermarking by Reversible Contrast Mapping 3.4.1 Úvod k algoritmu Reversible contrast mapping (RCM) je celočíselná transformace, definovaná na párech pixelů. Pro některé páry pixelů vrací inverzní RCM správný výsledek i pokud dojde ke ztrátě informace z LSBs (least significant bits, LSB je nejpravější bit v binárním zápisu čísla, jeho hodnota rozhoduje o sudosti, nebo lichosti). Algoritmus využívá LSBs některých párů pro vkládání informace vodoznaku. Very Fast Watermarking by Reversible Contrast Mapping je reverzibilní algoritmus prováděný v prostorové doméně. Nevyžaduje dodatečnou kompresi dat a dosahuje velké datové kapacity, kterou je možné do obrázků vložit.
3.4.2 Reversible Contrast Mapping (RCM) Vymezme interval všech možných hodnot intenzit pixelů šedotónového obrázku [0, L] (pro osmibitové šedotónové obrázky je L = 255). Označme dvojici pixelů, které chceme transformovat, jako (x, y). Transformace RCM probíhá změnou intenzit pixelů x a y následujícím způsobem. [17]
Vzorec 29 – Dopředná transformace RCM. [17] Aby transformované pixely neměly intenzitu vyšší, než L, nebo nižší, než 0, je transformace omezena na podmnožinu , která je definována vzorcem 30. Podmnožina D má tvar kosočtverce, jehož delší úhlopříčka je ekvivalentní hlavní diagonále množiny [0, L] x [0, L], viz. obrázek 28.
Vzorec 30 – Definice podmnožiny D. [17]
48
Obrázek 28 – Bíle je označena podmnožina D množiny [0, L] x [0, L]. [17] Inverzní transformace RCM je definována vztahem
Vzorec 31 – Inverzní transformace RCM, označuje nejmenší celočíselnou hodnotu vyšší, nebo rovnou hodnotě a. Pokud x' a y' nebyly změněny, vrací inverzní transformace správný výsledek i bez zaokrouhlovací funkce. [17] Dopředná transformace zachovává průměrnou hodnotu intenzity, protože x' + y' = x + y, ale zvyšuje kontrast, protože zvyšuje rozdíl mezi hodnotami transformovaných dvojic, x' – y' = 3(x – y).
3.4.3 Vkládací blok algoritmu Před vložením vodoznaku je celý obrázek rozdělen na páry pixelů, například po řádcích, nebo sloupcích. Pro vložení vodoznaku se využívají LSBs jednotlivých párů. Při vhodném vytvoření vkládací a detekční funkce je možné zajistit přesnou reverzibilitu pomocí RCM a inverzní RCM i pokud je informace z LSB některých pixelů ztracena. Pokud bychom nastavili LSB obou pixelů dvojice transformované pomocí RCM na 0, může nastat několik případů. Oba pixely mohly už před vložením vodoznaku mít hodnotu LSB = 0, v takovém případě nedošlo k žádné změně a inverzní RCM vrátí správný výsledek. Pokud LSB pixelu x' = 1 a LSB pixelu y' = 0, hodnota funkce, uvnitř zaokrouhlovací funkce inverzní RCM pro výpočet x, se sníží 49
o 2/3 a pro výpočet y, se sníží o 1/3. Zaokrouhlovací funkce výsledek zaokrouhlí na správnou hodnotu. Pro LSB pixelu x' = 0 a LSB pixelu y' = 1 je situace podobná. Pokud LSB pixelu x' = 1 a LSB pixelu y' = 1, vrací inverzní RCM nesprávný výsledek. LSB pixelu x' = 1 a LSB pixelu y' = 1 znamená, že hodnoty intenzit pixelů x' a y' jsou obě liché. Taková situace nastane právě tehdy, když hodnoty intenzit pixelů x a y jsou obě liché. Každou dvojici pixelů je nutné identifikovat pro zajištění správné detekce vodoznaku a obnovení původních hodnot pixelů. LSB prvního pixelu každé dvojice je využit pro zjištění, jestli byla dvojice transformována. Hodnota 1 označuje transformovanou dvojici, hodnota 0 netransformovanou dvojici. Jak bylo uvedeno v předchozím odstavci, inverzní RCM vrací nesprávný výsledek pro páry tvořené pixely x, y, které mají oba lichou hodnotu intenzity a patří do množiny D. Pár lichých pixelů lze využit pro vložení bitové informace pokud je správně identifikován při detekci. V tomto případě není použita RCM, hodnota LSB pixelu x je nastavena na 0. Při detekci je hodnota LSB x a y nastavena na 1 a je zkontrolován vztah ve vzorci 30, pokud je vztah splněn, měly pixely původně lichou hodnotu intenzity. Aby se předešlo nejednoznačnostem při obnově obrázku, je nutné z množiny D odebrat hraniční liché páry. Tyto páry lze vyjádřit z rovnic: 2x – y = 1, 2y – x = 1, 2x – y = L, 2y – x = L (Pro L = 255 dojde k odebrání 170 párů). Nově vzniklou množinu označme jako DC. Proces vodoznačení lze rozdělit do tří kroků. 1. krok: Rozdělení celého obrázku na páry pixelů (po řádcích, nebo po sloupcích, nebo jiným způsobem). 2. krok: Pro každou dvojici pixelů (x, y): a) Pokud (x, y) je prvek množiny DC a pokud alespoň jeden pixel nemá lichou hodnotu intenzity, provedeme RCM, nastavíme LSB x' na hodnotu 1 a LSB y' můžeme použít pro vložení bitové informace. b) Pokud (x, y) je prvek množiny DC a pokud oba pixely mají lichou hodnotu intenzity, nastavíme LSB x na hodnotu 0 a LSB y můžeme použít pro vložení bitové informace. c) Pokud (x, y) není prvek množiny DC, nastavíme LSB x na hodnotu 0 a původní hodnotu LSB x uložíme. 3. krok: Vložení vodoznaku (přínosné informace i vedlejší informace z kroku 2c) přepsáním LSB bitů, které lze použít pro vložení informace (y' z 2a a y z 2b).
3.4.4 Detekční blok algoritmu Detekční blok algoritmu provádí získání bitové sekvence vodoznaku a obnovení původních hodnot intenzit obrázku ve dvou krocích. 50
1. krok: Rozdělení celého obrázku na páry pixelů stejným způsobem, jako při vkládání. 2. krok: Pro každou dvojici pixelů (x', y'): a) Pokud LSB pixelu x' má hodnotu 1, pak zařadíme hodnotu LSB y' do detekované bitové sekvence vodoznaku. LSB x' a y' nastavíme na 0 a původní dvojici pixelů (x, y) získáme pomocí inverzní RCM. b) Pokud LSB pixelu x' má hodnotu 0 a dvojice pixelů (x', y') by v případě, že by hodnoty LSBs pixelů byly 1, patřila do množiny DC, pak zařadíme hodnotu LSB pixelu y' do detekované bitové sekvence vodoznaku. Původní pár pixelů odpovídá dvojici pixelů (x', y'), jejichž LSBs jsou nastaveny na 1. c) Pokud LSB pixelu x' má hodnotu 0 a dvojice pixelů (x', y') by v případě, že by hodnoty LSBs pixelů byly 1, nepatřila do množiny DC, pak původní pár pixelů obnovíme nastavením LSB x' na odpovídající původní hodnotu, která je uložená v sekvenci vodoznaku.
3.4.5 Datová kapacita algoritmu Označme celkový počet párů pixelů jako P a celkový počet párů pixelů, do kterých lze vkládat bitovou informaci, jako T. Informaci o LSB prvních pixelů párů, které nemohly být použity pro uložení bitové informace, je nutné zahrnout do vodoznaku jako vedlejší informaci. Pro uložení této vedlejší informace je potřeba P – T bitů. Datová kapacita algoritmu je T – (P – T), nebo v upraveném tvaru 2T – P. Označme počet bitů užitečné informace (nikoliv vedlejší informace) na jeden pixel, jako B. B algoritmu lze vyjádřit ze vzorce 32. [17]
Vzorec 32 – Datová kapacita algoritmu (bpp - bits per pixel). [17] Algoritmus umožňuje uložení užitečné informace, pokud je možné transformovat více než polovinu párů (T > P / 2). Maximální možnou datovou kapacitu získáme, pokud je možné transformovat všechny páry (T = P). V takovém případě získáme B = 0,5 bpp. Pro zvýšení datové kapacity lze algoritmus aplikovat opakovaně, v první iteraci mohou být například dvojice vybírány po řádcích, ve druhé iteraci po sloupcích a tak dále. S každou iterací dochází k větší deformaci obrazu a ke snížení počtu párů, které je možné navíc danou iterací transformovat. [17]
51
3.4.6 Omezení deformace obrazu způsobené vodoznačením V některých aplikacích je nutné, aby rozdíl mezi vodoznačeným a originálním obrázkem nebyl příliš patrný. Nepřesnost, která vznikne transformací prvního pixelu každé dvojce, je x' – x = 2x – y – x = x - y. Nepřesnost, která vznikne transformací druhého pixelu každé dvojce, je y' – y = 2y – x – y = y - x. Pokud transformujeme pouze pixely, které budou mít po transformaci hodnotu chyby nižší, než předdefinovaný práh, dojde ke zlepšení fidelity.
Vzorec 33 – Vztah, který lze použít ke zlepšení fidelity vodoznačeného obrázku. δ označuje předdefinovaný práh chyby (maximální povolenou nepřesnost). Dvojici pixelů x a y transformujeme pouze tehdy, pokud je splněn uvedený vztah. [17] Vzorec 33 definuje množinu Δ ve tvaru pruhu, se středem, který odpovídá hlavní diagonále množiny [0, L] x [0, L]. Novou množinu pro RCM získáme průnikem množiny Δ a množiny D.
Obrázek 29 – Bíle je označena podmnožina Δ ∩ D množiny [0, L] x [0, L]. [17] Pro vodoznačení použijeme stejnou vkládací i detekční funkci, ale použijeme výše uvedenou množinu místo množiny D. Podobně jako u množiny D, je nutné oříznout liché hodnoty na okrajích množiny, aby nedošlo k nejednoznačnostem při obnovení obrázku. Omezení deformace obrazu způsobí
52
mírné zvýšení složitosti, protože je navíc nutné ověřovat vztah uvedený ve vzorci 33 u každé dvojice pixelů. [17]
3.4.7 Využití vyhledávací tabulky ke snížení složitosti algoritmu Při vkládání vodoznaku je nutné vykonat dvě násobení a dvě sečtení pro každou dvojici pixelů, neboli jedno násobení a jedno sečtení pro každý pixel. Dvě porovnání pro každý pixel jsou nutná pro ověření vztahu uvedeném ve vzorci 30. Dále je nutné provézt logické operace a úpravy bitů. Detekce vodoznaku má podobnou složitost jako vkládání, ale provedení inverzní RCM vyžaduje, oproti dopředné RCM, ještě jedno dělení a jedno zaokrouhlení navíc. Uvedenou složitost lze výrazně snížit. Všechny výpočty jsou prováděny na pixelech, jejichž intenzity jsou z intervalu [0, L]. Výpočty lze provést jednou pro všechny možné hodnoty a výsledky uložit do paměti jako vyhledávací tabulku (LUT – Look up table). Při vkládání a detekci, na místo výpočtů, lze vyhledat výsledky ve vyhledávací tabulce. Pro osmibitové pixely má vyhledávací tabulka 256 x 256 záznamů. Každý záznam ve vyhledávací tabulce pro vkládání má 18 bitů. 16 bitů obsahuje výsledné pixely, další dva bity označme F a S. Pokud je bit F nastaven na hodnotu 1, je možné LSB druhého pixelu použít pro vložení informace. Pokud je bit S nastaven na hodnotu 1, je nutné uložit hodnotu LSB prvního pixelu. Záznam pro vstupní pixely (x, y) se nachází na adrese (L+1)*x + y. Pokud dvojice pixelů (x, y) patři do množiny DC a alespoň jeden z pixelů x, y není lichý, pak záznam obsahuje výsledné pixely x' a y', LSB x' je nastaven na 1. F = 1 a S = 0. Pokud dvojice pixelů (x, y) patři do množiny DC a oba pixely x, y jsou liché, pak záznam obsahuje schodné hodnoty pixelů x a y, ale LSB x je nastaven na 0. F = 1 a S = 0. Pokud dvojice pixelů (x, y) nepatří do množiny DC, pak záznam obsahuje schodné hodnoty pixelů x a y, ale LSB x je nastaven na 0. F = 0 a S = 1. Vyhledávací tabulka pro detekci je vytvořena podobným způsobem. Význam bitů F a S je jiný. F = 1 označuje dvojici pixelů, která ve v LSB druhého pixelu má uloženu informaci. S = 1 označuje dvojici pixelů, u které je nutné skutečnou hodnotu LSB prvního pixelu obnovit z detekované sekvence bitů. Záznamy odpovídající transformovaným párům obsahují obnovené hodnoty pixelů získané pomocí inverzní RCM, F = 1, S = 0. Pro páry, které nebyly transformované, ale nesou informaci (byly původně oba liché a byly z množiny DC), obsahuje záznam ve vyhledávací tabulce originální liché hodnoty, F = 1, S = 0. Záznamy, odpovídající párům, které nenesou žádnou informaci, obsahují prvních sedm správných bitů hodnoty prvního pixelu a správnou hodnotu druhého pixelu, F = 0, S = 1. Vyhledávací tabulku lze po53
užít i pro upravený algoritmus, který využívá omezení deformace obrazu (kapitola 3.4.6). Vyhledávací tabulku vytvoříme stejným způsobem, pouze při výpočtech použijeme namísto množiny D množinu Δ ∩ D. Velikost dvou tabulek potřebných pro vkládání a detekci do osmibitových obrázků odpovídá přibližně velikosti osmibitového obrázku 512 x 512 (2*256*256*18 = 2359296 bitů pro LUTs, 512*512*8 = 2097152 bitů pro osmibitový obrázek 512 x 512). V obecném případě pro hodnoty pixelů z intervalu [0, L], je nutné vytvořit dvě vyhledávací tabulky o L2 záznamech, každý záznam je tvořen 2*l + 2 bity, kde l = log2(L + 1) (zaokrouhleno nahoru).
3.4.8 Experimentální výsledky Testy uvedeného algoritmu byly provedeny na třech testovacích obrázcích (viz. obrázek 30). Použitím algoritmu bez omezení deformace obrazu na obrázek Leny (vlevo) bylo dosaženo 0,499 bpp (bits per pixel). Dalšími iteracemi algoritmu bylo dosaženo navýšení maximální možné bitové informace na 0,98, 1,40, 1,73 a 1,86 bpp. [17]
Obrázek 30 – Použité testovací obrázky. [17]
54
Obrázek 31 – Výsledné vodoznačené obrázky Leny. Všechny obrázky byly vytvořeny s využitím omezení deformace obrazu. Vlevo nahoře je obrázek bez přídavných iterací, 0,40 bpp, vpravo nahoře je obrázek s jednou přídavnou iterací, 0,90 bpp, vlevo dole je obrázek se dvěma přídavnými iteracemi, 1,30 bpp, vpravo dole je obrázek se čtyřmi přídavnými iteracemi, 1,80 bpp. [17] U obrázku lodi bylo dosaženo maximálně 1,53 bpp, obrázek obsahuje velké množství detailů a prudkých přechodů v intenzitních hodnotách. Více dvojic pixelů nepatří do množiny D. U obrázku paviána bylo dosaženo pouze 0,84 bpp. Obrázek 32 ukazuje závislost PSNR (peak singal to noise ratio) na maximálním možném množství vložené informace na pixel. [17]
55
Obrázek 32 – Obrázek závislosti PSNR na maximálním možném množství vložené informace na pixel. [17]
3.4.9 Závěr k algoritmu Uvedený algoritmus umožňuje vložit do obrázku velké množství informace a má velmi nízkou složitost, obzvlášť při použití uvedené vyhledávací tabulky, je vhodný pro aplikace běžící v reálném čase. Algoritmus nevyžaduje dodatečnou kompresi dat. Informace může být do obrazu vkládána opakovaně, hodnoty pro rekonstrukci pixelů lze uložit v samotném pixelu, nebo v pixelu jemu blízkém, lze tak algoritmus vytvořit, aby byl odolný vůči ořezu obrazu. [17]
3.5 Implementace algoritmu Very Fast Watermarking by Reversible Contrast Mapping Praktickou částí mojí bakalářské práce je implementace algoritmu Very Fast Watermarking by Reversible Contrast Mapping, rozebraného v kapitole 3.4. Zdrojové kódy funkcí naprogramovaných v prostředí Matlab jsou dostupné v archivu závěrečných prací Fakulty informatiky Masarykovy univerzity. Program umožňuje vodoznačení a detekci šedotónových obrázků 56
s různými rozměry a bitovou hloubkou, zavedení omezení deformace obrazu, vygenerování a využití vyhledávací tabulky pro vkládání a detekci. Přídavnou funkcionalitou programu je vodoznačení a detekce barevných obrázků. Barevné obrázky jsou rozloženy na tři barevné kanály, červený, zelený a modrý. V případě, že je potřeba barevný obrázek vodoznačit velkým množstvím bitů, využije program dva, nebo všechny tři barevné kanály pro zvýšení datové kapacity. Vodoznačené barevné kanály jsou následně složeny pro vytvoření vodoznačeného barevného obrázku.
57
4 Závěr bakalářské práce Hlavním cílem bakalářské práce bylo zmapovat existující metody vhodné pro aplikaci důkaz autorství a specializovat se na medicínská obrazová data. Zmínil jsem a porovnal dostupné algoritmy a detailně se věnoval třem vybraným algoritmům, Generalized patchwork algorithm, Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform a Very Fast Watermarking by Reversible Contrast Mapping. Generalized patchwork algorithm je algoritmus vhodný k vodoznačení medicínských dokumentů horší obrazové kvality, dokumentů u kterých se očekává zašumění v průběhu přenosu, obecně dokumentů, které je výhodné po vodoznačení digitálně zpracovat. Robust Reversible Watermarking Scheme Based on Wavelet-Like Transform je zcela reverzibilní algoritmus, vykazuje výborné výsledky při detekci vodoznaku z obrázků komprimovaných metodou JPEG a dosahuje vysoké fidelity vodoznačených obrázků. Very Fast Watermarking by Reversible Contrast Mapping je dalším zcela reverzibilním algoritmem, nabízí slušnou datovou kapacitu, má velmi nízkou časová složitost. Algoritmus je vhodný k rychlému vodoznačení medicínských dokumentů, které nebudou komprimovány a modifikovány. Praktickou částí mojí bakalářské práce byla implementace algoritmu Very Fast Watermarking by Reversible Contrast Mapping. Program umožňuje vodoznačení a detekci šedotónových obrázků s různými rozměry a bitovou hloubkou, zavedení omezení deformace obrazu, vygenerování a využití vyhledávací tabulky pro vkládání a detekci. Přídavnou funkcionalitou programu je vodoznačení a detekce barevných obrázků s využitím barevných kanálů ke znásobení datové kapacity.
58
Literatura [1] J. Hošek. (2007, Květen). Vodoznačení video obsahu. Elektrorevue [PDF]. 2007 (20), pp. 1. Dostupné z: www.elektrorevue.cz/cz/download/vodoznaceni-video-obsahu/ [2] I. J. Cox (2008). Digital Watermarking and Steganography (druhé) [e-kniha]. Dostupné z: https://books.google.cz/books/about/Digital_Watermarking_and_Steganogra phy.html?id=Uo-qf5GiBPgC&redir_esc=y [3] M. Woloszynowicz (2013). Removing Complex Objects from Photos in Photoshop [internetová stránka]. Dostupné z: http://www.vibrantshot.com/removing-complex-objects-from-photos-inphotoshop/ [4] C. M. Johnson. (2013, Duben 24). Review: InPaint – An Intuitive Photo Editor for Mac [internetová stránka]. Dostupné z: http://www.mactrast.com/2013/04/review-inpaint-an-intuitive-photo-editorfor-mac/ [5] I. Yeo, H. J. Kim. (2003, Září). „Generalized patchwork algorithm for image watermarking,“ v Multimedia Systems (Volume 9, issue 3, pp 261265). Dostupné z: http://link.springer.com/article/10.1007%2Fs00530-0030097-0# [6] Aizu-Wakamatsu. (2005). „JPEG Compression,“ v Introduction to AOJ (Volume 10). Dostupné z: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1007 [7] Přispěvatelé Wikipedie. „Discrete cosine transform,“ v Wikipedie: Otevřená encyklopedie. Dostupné z: https://en.wikipedia.org/w/index.php? title=Discrete_cosine_transform&oldid=679902257 (získáno 25.11.2015).
59
[8] Přispěvatelé Wikipedie. „Diskrétní kosinová transformace“ v Wikipedie: Otevřená encyklopedie. Dostupné z: https://cs.wikipedia.org/w/index.php?title=Diskr%C3%A9tn %C3%AD_kosinov%C3%A1_transformace&oldid=9890821 (získáno 25. 11. 2015). [9] R. G. Redinbo, C. Nguyen (2003, Duben). Relliable JPEG [e-kniha]. Dostupné z: http://web.ece.ucdavis.edu/cerl/ReliableJPEG/Cung/jpeg.html [10] Mathworks documentation. 2-D DCT. Dostupné z: http://www.mathworks.com/help/vision/ref/2ddct.html [11] Mathworks documentation. 2-D IDCT. Dostupné z: http://www.mathworks.com/help/vision/ref/2didct.html [12] Přispěvatelé Wikipedie. „F-distribution,“ v Wikipedie: Otevřená encyklopedie. Dostupné z: https://en.wikipedia.org/w/index.php?title=Fdistribution&oldid=688771796 (získáno 28. 11. 2015). [13] Přispěvatelé Wikipedie. „Beta function,“ v Wikipedie: Otevřená encyklopedie. Dostupné z: https://en.wikipedia.org/w/index.php?title=Fdistribution&oldid=688771796 (získáno 28. 11. 2015). [14] R. T. Mohammed, B. E. Khoo. (2013, Říjen). „Robust reversible watermarking scheme based on wavelet-like transform,“ v 2013 IEEE International Conference on Signal and Image Processing Applications (ICSIPA), (pp 354 - 359). Dostupné z: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6708032&url=http %3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber %3D6708032 [15] I. W. Selesnick. (1999, Květen). „The Slantlet Transform,“ v IEEE TRANSACTIONS ON SIGNAL PROCESSING, (VOL. 47, NO. 5, pp 354 359). Dostupné z: http://eeweb.poly.edu/iselesni/slantlet/slantlet.pdf
60
[16] C. Dsouza (2013, Duben). Simulation of DCT, Walsh, Hadamard, Haar and Slant transform using variable block sizes [internetová stránka]. Dostupné z: http://www.mathworks.com/matlabcentral/fileexchange/41333simulation-of-dct--walsh--hadamard--haar-and-slant-transform-usingvariable-block-sizes/content/sltmtx.m [17] D. Coltuc, J. M. Chassery. (2007, Duben). „Very Fast Watermarking by Reversible Contrast Mapping,“ v IEEE Signal Processing Letters (Volume 14, issue 4, pp 255 - 258). Dostupné z: https://www.deepdyve.com/lp/institute-of-electrical-and-electronicsengineers/very-fast-watermarking-by-reversible-contrast-mappingg4cy4Y0grS?articleList=%2Fsearch%3Fquery%3DVery%2Bfast %2Bwatermarking [18] C. De Vleeschouwer, J. Delange, B. Macq. (2001, Říjen). „Circular Interpretation of Histogram for Reversible Watermarking,“ v Proceedings of IEEE Fourth Workshop on Multimedia Signal Processing (pp 345 - 350). Dostupné z: http://ieeexplore.ieee.org/xpl/login.jsp? tp=&arnumber=962758&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls %2Fabs_all.jsp%3Farnumber%3D962758 [19] C. De Vleeschouwer, J. Delange, B. Macq. (2003, Březen). „Circular Interpretation of Bijective Transformations in Lossless Watermarking for Media Asset Management,“ IEEE Transactions on Multimedia (Volume 5, issue 1, pp 97 - 105). Dostupné z: http://ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=1196739&newsearch=true&queryText=Circular %20Interpretation%20of%20Bijective%20Transformations%20in %20Lossless%20Watermarking%20for%20Media%20Asset %20Management [20] D. Zou, Y. Shi, Z. Ni. (2004, Září). „A Semi-fragile Lossless Digital Watermarking Scheme Based on Integer Wavelet Transform,“ v IEEE 6th Workshop on Multimedia Signal Processing (pp 195 - 198). Dostupné z: http://ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=1436526&newsearch=true&queryText=A%20Semi-fragile %20Lossless%20Digital%20Watermarking%20Scheme%20Based%20on %20Integer%20Wavelet%20Transform
61
[21] D. Zou, Y. Shi, Z. Ni, W. Su. (2006, Říjen). „A Semi-fragile Lossless Digital Watermarking Scheme Based on Integer Wavelet Transform,“ v IEEE Transactions on Circuits and Systems for Video Technology (Volume 16, issue 10, pp 1294 - 1300). Dostupné z: http://ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=4011993&newsearch=true&queryText=A%20Semi-fragile %20Lossless%20Digital%20Watermarking%20Scheme%20Based%20on %20Integer%20Wavelet%20Transform [22] Z. Ni, Y. Q. Shi, N. Ansari, W. Su, Q. Sun, X. Lin. (2004, Červen). „Robust Lossless Image Data Hiding,“ v IEEE International Conference on Multimedia Expo (Volume 3, pp 2199 - 2202). Dostupné z: http://ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=1394706&newsearch=true&queryText=Robust%20Lossless %20Image%20Data%20Hiding [23] Z. Ni, Y. Q. Shi, N. Ansari, W. Su, Q. Sun, X. Lin. (2008, Duben). „Robust Lossless Image Data Hiding Designed for Semi-Fragile Image Authentication,“ v IEEE Transactions on Circuits and Systems for Video Technology (Volume 18, issue 4, pp 497 - 509). Dostupné z: http://ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=4453842&newsearch=true&queryText=Robust%20Lossless %20Image%20Data%20Hiding [24] L. An, X. Gao, Ch. Deng. (2010, Leden). „Reliable embedding for robust reversible watermarking,“ v Proceedings of the Second International Conference on Internet Multimedia Computing and Service (pp 57 - 60). Dostupné z: https://www.researchgate.net/publication/234829339_Reliable_embeddin g_for_robust_reversible_watermarking [25] J. Fridrich, M. Goljan, R. Du. (2002). „Lossless data embedding – New paradigm in digital watermarking,“ v EURASIP J. Appl. Singal Process (pp 185 - 196). Dostupné z: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.396.7376&rep=rep1&type=pdf
62
[26] M. U. Celik, G. Sharma, A. M. Tekalp, E. Saber. (2005, Únor). „Lossless generalized LSB data embedding,“ v IEEE Trans. Image Process (Volume 14, issue 2, pp 253 - 266). Dostupné z: http://www.ece.rochester.edu/~gsharma/papers/revhidingTIP.pdf [27] J. Tian. (2003, Srpen). „Reversible data embedding using a difference expansion,“ v IEEE Trans. Circuits Syst. Video Technol. (Volume 13, issue 8, pp 890 - 896). Dostupné z: http://ieeexplore.ieee.org/xpl/login.jsp? tp=&arnumber=1227616&url=http%3A%2F%2Fieeexplore.ieee.org %2Fxpls%2Fabs_all.jsp%3Farnumber%3D1227616 [28] R. Barnett, D. E. Pearson. (2002, Srpen). „Frequency mode LR attack operator for digitally watermarked images,“ v Electronics Letters. (Volume 43, issue 19, pp 1837 - 1839). Dostupné z: http://ieeexplore.ieee.org/xpl/articleDetails.jsp? reload=true&arnumber=722370 [29] I. Yeo, H. J. Kim. (2003, Červen). „Modified patchwork algorithm: a novel audio watermarking scheme,“ v IEEE Transactions on Speech and Audio Processing, (Volume 11, issue 4, pp 381-386). Dostupné z: http://ieeexplore.ieee.org/xpl/login.jsp? tp=&arnumber=1214853&url=http%3A%2F%2Fieeexplore.ieee.org %2Fiel5%2F89%2F27331%2F01214853.pdf%3Farnumber%3D1214853
63
Přílohy Bakalářská práce obsahuje čtyři elektronické přílohy, jsou to zdrojové kódy vytvořené v prostředí Matlab, implementující praktickou část bakalářské práce (kapitola 3.5). Funkce genLUTMark generuje vyhledávací tabulku, kterou lze využít při vkládání vodoznaku. Funkce má jeden povinný parametr bitDepth, který udává bitovou hloubku obrázků, na které lze vyhledávací tabulku použít. Druhým parametrem funkce je volitelný parametr distControl, pomocí kterého lze vyhledávací tabulku generovat tak, aby omezovala deformace obrazu způsobené vodoznačením (viz kapitola 3.4.6). Funkce má jeden výstupní parametr out, který odpovídá generované vyhledávací tabulce. Podobným způsobem funguje funkce genLUTDetect, kterou lze využít při detekci. Funkce WRCM_Marking vkládá vodoznak. Prvním povinným parametrem funkce, je parametr in, který může odpovídat šedotónovému, nebo barevnému obrázku, do kterého má funkce vložit vodoznak. Druhým povinným parametrem funkce je parametr bitDepth, který udává bitovou hloubku šedotónového obrázku in, nebo bitovou hloubku jednoho barevného kanálu, pokud je in barevný obrázek. Třetím povinným parametrem je message, zpráva vodoznaku tvořená 1 a 0, kterou má funkce vodoznačit. Čtvrtým volitelným parametrem funkce je jeden ze dvou volitelných parametrů distControl, nebo LUT. Parametrem distControl lze omezit deformace v obrázku způsobené vodoznačením (viz kapitola 3.4.6). Parametrem LUT lze funkci předat vyhledávací tabulku generovanou funkcí genLUTMark. Funkce má jeden výstupní parametr out, který odpovídá vodoznačenému obrázku. Funkce WRCM_Detection detekuje vodoznak z vodoznačeného obrázku a obnovuje původní obrázek. Prvním povinným parametrem funkce, je parametr in, který odpovídá vodoznačenému obrázku. Druhým povinným parametrem funkce je parametr bitDepth, který udává bitovou hloubku šedotónového vodoznačeného obrázku in, nebo bitovou hloubku jednoho barevného kanálu, pokud je vodoznačený obrázek barevný. Třetím volitelným parametrem funkce je jeden ze dvou volitelných parametrů distControl, nebo LUT. Hodnotu parametru distControl je nutné použít stejnou, jako při vkládání. Parametrem LUT lze funkci předat vyhledávací tabulku generovanou funkcí genLUTDetect.
64