VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS VODOZNAČENÍ DIGITÁLNÍCH OBRAZŮ DIGITAL IMAGE WATERMARKING BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR MIROSLAV ŠUJAN ING. PETR ČÍKA BRNO 2009
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Bakalářská práce bakalářský studijní obor Teleinformatika Student: Miroslav Šujan ID: 72168 Ročník: 3 Akademický rok: 2008/2009 NÁZEV TÉMATU: Vodoznačení digitálních obrazů POKYNY PRO VYPRACOVÁNÍ: Prostudujte základní principy vodoznačení digitálních statických obrazů. Zaměřte se zejména na techniky vodoznačení ve frekvenční oblasti. Navrhněte alespoň 2 vodoznačící metody, které budou vycházet z již známých metod. Dále tyto metody naprogramujte v prostředí MATLAB a vzájemně je porovnejte pomocí programu Checkmark. Výsledky budou přílohou práce v podobě tabulek a grafů. DOPORUČENÁ LITERATURA: [1] Chun-Shien, L. Multimedia Security: Steganography and Digital Watermarking Techniques for Protection of Intellectual Property. Hershey: Idea Group Publishing, 2004. ISBN: 1-59140-275-1 [2] Arnold, M., Schmucker, M., Wolthusen, D. S. Techniques and Applications of Digital Watermarking and Content Protection. Boston: Artech House Publishers, 2003. ISBN: 1-58053-111-3 Termín zadání: 9.2.2009 Termín odevzdání: 2.6.2009 Vedoucí práce: Ing. Petr Číka prof. Ing. Kamil Vrba, CSc. Předseda oborové rady UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práve třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb.
Abstrakt Bakalářská práce se zabývá problematikou vodoznačení digitálních statických obrazů ve frekvenční oblasti. Jedná se o přidání tajné informace do originálních dat takovým způsobem, aby byla originální data ovlivněna co nejméně, ale zároveň aby nebylo jednoduché vložený vodoznak identifikovat a odstranit. Práce pojednává o současných metodách vodoznačení digitálních statických obrazů, dále se zabývá realizací dvou metod vodoznačení a následně testováním odolnosti těchto metod vůči útokům na ně provedených. Klíčová slova vodoznačení, vodoznak, SVD, WHT, útok, Checkmark, Matlab Abstract The bachelor s thesis deals with the problem of static digital watermarking in frequency domain. It is a process of adding secret information to the original data without any negative influence to them, while in the same time making sure that the identification and hidden watermark cannot be removed easily. The main aim of this thesis is to sum up the current techniques of watermarking, to carry out of two watermarking techniques and a test of resistance to attacks against them. Keywords watermarking, watermark, SVD, WHT, attack, Checkmark, Matlab
ŠUJAN, M. Vodoznačení digitálních obrazů: bakalářská práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2009. 47 s. Vedoucí bakalářské práce Ing. Petr Číka.
Prohlášení o původnosti práce Prohlašuji, že svou bakalářskou práci na téma Vodoznačení digitálních obrazů jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb. V Brně dne...... podpis autora
Poděkování Děkuji vedoucímu bakalářské práce Ing. Petru Číkovi za velmi užitečnou metodickou pomoc, cenné rady a vstřícné jednání při zpracování práce. V Brně dne...... podpis autora
Obsah Úvod... 10 1. Vodoznaky... 11 1.1 Současné digitální vodoznaky... 11 1.2 Základní principy digitálního vodoznačení... 11 1.2.1 Proces vložení vodoznaku... 12 1.2.2 Proces extrakce vodoznaku... 12 1.3 Rozdělení digitálních vodoznaků... 13 1.4 Vodoznačící systémy... 13 1.5 Základní požadavky na digitální vodoznaky... 14 1.6 Oblasti vkládání digitálních vodoznaků... 15 1.7 Útoky na digitální vodoznaky... 16 1.8 Hodnocení kvality vodoznačených dat... 17 2. Singulární dekompozice, Walsh Hadamardova transformace... 19 2.1 Základní informace o singulární dekompozici... 19 2.2 Příklad SVD... 19 2.3 Základní informace o Walsh - Hadamardově transformaci... 21 2.4 Příklad WHT... 22 3. Program Checkmark... 23 3.1 Nastavení programu Checkmark... 23 4. Praktická realizace vodoznačících metod... 24 4.1 Technika vodoznačení za pomoci singulární dekompozice... 24 4.1.1 Vložení vodoznaku... 24 4.1.2 Extrakce vodoznaku... 27 4.1.3 Testování odolnosti metody vůči útokům... 29 4.2 Technika vodoznačení za pomoci Walsh Hadamardovy transformace... 34 4.2.1 Vložení vodoznaku... 34 4.2.2 Extrakce vodoznaku... 36 4.2.3 Testování odolnosti metody vůči útokům... 37 5. Závěr... 44
Seznam obrázků Obr.1.1 Základní schéma procesu vodoznačení... 12 Obr.1.2 Základní schéma procesu extrakce vodoznaku... 12 Obr.1.3 Schéma základních požadavků na digitální vodoznaky... 15 Obr.1.4 Rozdělení oblastí pro vkládání vodoznaků... 15 Obr.1.5 Rozdělení útoků na vodoznaky... 17 Obr.2.1 Hadamardovo uspořádání dle kmitočtu a rekurzivní dekompozice [10]... 21 Obr.4.1 Schéma modifikované Changovy vodoznačící metody pomocí SVD [7]... 24 Obr.4.2 Použitý originální obraz a vodoznak pro účely vodoznačení... 25 Obr.4.3 Rozložení spektra transformovaného bloku... 25 Obr.4.4 Výběr bloků určených k vodoznačení... 26 Obr.4.5 Schéma extrakce vodoznaku pro metodu SVD... 27 Obr.4.6 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 15 a... 29 Obr.4.7 Extrahovaný vodoznak s hodnotou NCC = 0,7056... 29 Obr.4.11 Schéma vodoznačící metody za pomoci techniky WHT... 34 Obr.4.12 Rozložení spektra transformovaného bloku a... 35 Obr.4.13 Schéma extrakce vodoznaku pro metodu WHT... 36 Obr.4.14 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 8 a... 38 Obr.4.15 Ukázka vytažených vodoznaků pro stupeň kvality JPEG komprese 100, 75, 10... 39 Obr.4.16 Ukázka vytažených vodoznaků pro stupeň kvality 800, 150, 10... 39 Obr.4.17 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 25 a... 41
Seznam tabulek Tab.4.1 Test odolnosti proti JPEG kompresi... 30 Tab.4.2 Test odolnosti proti vlnkové kompresi... 30 Tab.4.3 Test odolnosti proti různým útokům... 31 Tab.4.4 Test odolnosti proti JPEG kompresi... 32 Tab.4.5 Test odolnosti proti vlnkové kompresi... 33 Tab.4.6 Test odolnosti proti různým útokům... 33 Tab.4.7 Test odolnosti proti JPEG kompresi... 38 Tab.4.8 Test odolnosti proti vlnkové kompresi... 39 Tab.4.9 Test odolnosti proti různým útokům... 40 Tab.4.10 Test odolnosti proti JPEG kompresi... 41 Tab.4.11 Test odolnosti proti vlnkové kompresi... 42 Tab.4.12 Test odolnosti proti různým útokům... 42
Úvod S rychlým rozvojem techniky zpracování digitálních dat, ať už jsou to data obrazová, zvuková či jenom pouhý text, vzniká i potřeba zabezpečení těchto dat proti nelegálnímu použití. Pro ochranu takových dat se začalo využívat různých technik, z nichž jednou z nejpoužívanějších a nejvíce rozšířených je technika vkládání vodoznaku do multimediálních dat, která chceme zabezpečit. Tato technika se zkráceně nazývá vodoznačení (watermarking). Cílem vodoznačících metod je zabezpečit ověření identity multimediálních dat a tím také autorská práva tak, aby změna těchto dat byla minimální a lidským okem nepostřehnutelná. Bakalářská práce pojednává o vodoznačení digitálních statických obrazů ve frekvenční oblasti. První část je věnována vodoznačení obecně, popisu vodoznaku, jeho užití, druhům vodoznaků atd. Druhá část se zabývá technikou vodoznačení pomocí singulární dekompozice a Walsh - Hadamardovy transformace. Třetí část je věnována rozboru a nastavení testovacího programu Checkmark. Poslední část se zabývá rozborem a testováním jednotlivých použitých metod a také jejich odolností vůči různým útokům, které byly simulovány v již zmíněném programu Checkmark. Testovací metody byly vytvořeny za pomoci programu Matlab. 10
1. Vodoznaky 1.1 Současné digitální vodoznaky Pro zabezpečení dat se používají různé techniky, některé z nich jsou nazývány jako steganografie, což je zčásti kryptologie (šifrování) a zčásti uschování informace. Kryptologie se používá k zabezpečení významu zprávy a uschování informace k znesnadnění odhalení existence této zprávy. Hlavní výhodou steganografie je potom tedy to, že daná zpráva je šifrována a navíc ještě uschována uvnitř nějakého zdroje. Bez znalosti existence této zprávy je velice těžké ji takto uschovanou najít a navíc rozkódovat [1]. Digitální vodoznačení má naproti steganografii ještě navíc přidány požadavky na odolnost proti možným útokům. Odolnost proti útokům závisí hlavně na aplikaci, nicméně úspěšný útok má jednoduše za úkol učinit vodoznak nedetekovatelným. Vodoznak vždy nemusí být neviditelný, což je rozdíl oproti steganografii. Viditelné vodoznaky mají svůj základ podobný těm, které se objevili již ve 13. století. Moderní digitální vodoznaky mohou být různé vzory, například loga firem nebo digitální podpisy, které zajišťují copyright [2]. Historie vodoznaků začíná koncem 20. století, kdy vznikla potřeba chránit důležitá digitální data z důvodu rozvoje počítačových sítí a zejména internetu. Vodoznačení tedy znamená přidání digitální informace do originálních dat takovým způsobem, že je to pro člověka nepostřehnutelné, ale zároveň snadno detekovatelné počítačovými algoritmy [3]. První publikace zabývající se digitálními vodoznaky byly vydány Tanakou v roce 1990 a následně Caronim a Tirkelem v roce 1993. Od roku 1995 se prudce zvýšil rozvoj techniky digitálního vodoznačení. Vzrůstající trend vydávání publikací věnujících se problematice vodoznačení má exponenciální charakter a do roku 2009 jí již existuje nepřeberné množství [3]. V dnešní době existuje velké množství různých digitálních vodoznačících metod, které jsou vhodné pro různé použití, například pro vodoznačení audiovizuálních, audio nebo obrazových dat. S rozvojem dalších vodoznačících metod se také bohužel rozvíjí i metody, jež mají naopak za úkol digitální vodoznak z chráněných dat vyjmout nebo poškodit. 1.2 Základní principy digitálního vodoznačení Základní princip dnešních užívaných systémů s vodoznaky je podobný symetrickým kryptografickým systémům, protože je založen na použití stejného klíče k vložení i detekci vodoznaku. Každý zabezpečovací systém využívající digitální vodoznaky se skládá ze dvou hlavních bloků blok vložení a blok detekce (extrakce vodoznaku). Tento systém lze popsat množinou (O, W, K, E K, D K, Cτ), kde O představuje originální data, W značí vodoznak, K je šifrovací klíč, E K značí proces vkládání, D K proces detekce a Cτ je porovnávací funkce. Šifrovací klíč K může, ale nemusí být součástí bloku vkládání. Jeho použití však zvyšuje bezpečnost vloženého vodoznaku a tím se zároveň zvyšuje ochrana originálních dat před neautorizovanými operacemi [4]. Následující dvě funkce [4] E K : O x W x K O D K : O x K W (1.1) popisují vkládání a detekci vodoznaku. E K značí proces vkládání a D K značí proces vyjmutí vodoznaku. Porovnávací funkce [4] Cτ : W 2 {0,1} (1.2) 11
porovnává pomocí prahu τ extrahovaný vodoznak s původně vloženým a tím je dosaženo výsledku porovnání. Práh je závislý na zvoleném algoritmu a měl by jednoznačně určit, zda se jedná o originální vodoznak nebo ne. K tomuto účelu se využívá například NCC (normalizovaná křížová korelace) [3]. 1.2.1 Proces vložení vodoznaku K procesu vodoznačení se tedy využívá třech vstupních parametrů, jsou to originální data O, vodoznak W a tajný nebo veřejný klíč K, některé digitální vodoznačící systémy využívají k procesu vodoznačení i více bezpečnostních klíčů. Následující obrázek Obr.1.1 a funkce E K popisují princip vložení vodoznaku [3]. E K (O, W, K) = C W (1.3) 1.2.2 Proces extrakce vodoznaku Obr.1.1 Základní schéma procesu vodoznačení K extrakci vodoznaku je použito čtyř vstupních parametrů. Originální data O, vodoznak W, tajný nebo veřejný klíč K, vodoznačená data C W. Proces extrakce vodoznaku je inverzní operace k procesu vložení. Výstupem tohoto systému je extrahovaný vodoznak W. Obrázek Obr.1.2 a funkce D K popisují princip extrakce vodoznaku [4]. D K (O, W, K,C W ) = W (1.4) Obr.1.2 Základní schéma procesu extrakce vodoznaku 12
1.3 Rozdělení digitálních vodoznaků Digitální vodoznaky se dělí podle různých kriterií do mnoha skupin, tím nejzákladnějším rozdělením je ovšem rozdělení na digitální vodoznaky viditelné a na digitální vodoznaky skryté, které se ještě dále dělí na křehké a robustní. Dalším rozdělením vodoznaků může také být rozdělení na veřejné a soukromé vodoznaky [3]. Viditelné vodoznaky, jak již název napovídá, jsou vizuální vzory jako například loga, která jsou vložena nebo která překrývají daný obraz nebo video, jsou velmi podobné papírovým vodotiskům. Viditelné vodoznaky jsou aplikovány hlavně na obrázky, popř. na videonahrávky, aby viditelně označily takto volně dostupné multimediální soubory a tím je zabezpečily proti nelegálnímu komerčnímu použití. Příkladem viditelného vodoznaku mohou například být filmy vysílané komerčními televizemi, každý si jistě povšimnul loga této televize umístěného většinou v některém horním rohu. Viditelnými vodoznaky mohou v jistém slova smyslu být myšleny i vodoznaky, které zabezpečují autenticitu audio nahrávek [3]. Skryté vodoznaky, jsou takové vodoznaky, které pozorovatelé zrakem nevnímají, ale přitom lze algoritmicky zjistit jejich přítomnost [4]. Robustní vodoznaky jsou typy vodoznaků, které jsou navrženy tak, aby vzdorovaly různorodým manipulacím, které mají za úkol odstranit nebo jinak znehodnotit vložený vodoznak, takové manipulace se nazývají útoky na vodoznak. Tento typ vodoznaků se využívá u všech systémů, které vyžadují vyšší zabezpečení [4]. Křehké vodoznaky jsou typy vodoznaků, které jsou vloženy s velmi nízkou robustností. Proto může být tento typ vodoznaku zničen dokonce i těmi sebemenšími manipulacemi, které lze s multimediálním souborem provádět. V tomto duchu jsou srovnatelné se skrytými zprávami ve steganografických metodách. Tento typ vodoznaků může být využíván pro kontrolu integrity objektů [4]. Veřejné a privátní (soukromé) vodoznaky jsou rozlišovány v souladu s tajnostními požadavky pro klíč ve smyslu vložení a znovu získání vodoznaku. Podle základních principů vodoznačení je stejný klíč užívaný v kódovacím i dekódovacím procesu. Jestliže je klíč známý, pak tento typ vodoznaku nazýváme veřejným, a jestliže je klíč skrytý, pak jej nazýváme soukromým vodoznakem. Veřejné vodoznaky mohou být použity v aplikacích, které nemají výrazné bezpečnostní požadavky [4]. Kromě různých typů vodoznaků jsou ještě rozlišovány čtyři různé vodoznačící systémy, které jsou rozdělovány podle vstupu a výstupu během identifikačního procesu. Používání více informací na detekční straně zvyšuje spolehlivost celého vodoznačícího systému, ale omezuje proveditelnost vodoznačící metody na straně zabezpečovací [4]. 1.4 Vodoznačící systémy Privátní (soukromé) vodoznačící systémy vyžadují originální data při procesu čtení. Tento typ systémů můžeme dále rozdělit v závislosti na tom, zda je pro dekódování potřebný vložený vodoznak. Typ I Tento systém je schopen zjistit vodoznak i z potenciálně manipulovaných dat, vodoznak se stanoví z originálních dat. 13
DK ( CW, O) = W (1.5) Typ II Tento systém dodatečně užívá i kopii vodoznaku, a proto je reprezentován následujícími rovnicemi. DK ( CW, O, W ) = W a Cτ (W,W) = 1 pro C τ = 0 pro C < τ (1.6) Polo-privátní vodoznačící systémy nevyužívají originální data pro detekci vodoznaku. DK ( CW, W ) = W a Cτ (W,W) = 1 pro C τ = 0 pro C < τ (1.7) Polo-privátní vodoznačící systémy se používají v aplikacích, kde přístup k originálním datům není praktický nebo možný. Polo-privátní vodoznačící systémy mohou být použity pro kontrolu kopírování a také k ochraně autorských práv. Veřejné vodoznačící systémy jsou největší výzvou na vývoj těchto systémů. Žádná originální data ani vodoznaky totiž nejsou využívaný v procesu dekódování. D K (C W ) = W (1.8) Toto je nezbytné v aplikacích, ve kterých musejí být čteny n bity z informací značených jako C W, tedy z vodoznačených dat. Tento systém se používá například pro stíhání nezákonně distribuovaných kopií [4]. 1.5 Základní požadavky na digitální vodoznaky V této části se blíže podíváme na některé ze základních požadavků, které jsou kladeny na digitální vodoznaky. Některé tyto požadavky si vzájemně odporují, přesto se obecně doporučuje sledovat je v co nejvyšší míře. Těmi nejzákladnějšími požadavky jsou odolnost, nevnímatelnost a bezpečnost daného digitálního vodoznaku. Jestliže bude kladen důraz pouze na jeden z těchto tří požadavků, potom ty ostatní jdou do ústraní, toto je vyjádřeno obrázkem Obr.1.3. Je tedy potřeba volit kompromis mezi následujícími základními požadavky. Odolnost je schopnost skrytých dat odolávat útokům, ať už jsou to útoky neúmyslné, které explicitně nemíří na odstranění vodoznaku (například zvětšení, zmenšení, ořezání daného obrázku) nebo jsou to útoky, které naopak cíleně míří na jeho odstranění [5]. Nevnímatelnost neboli průhlednost digitálního vodoznaku je závislá na aplikaci a účelu vodoznačícího systému. Artefakty, které vznikají vodoznačícím procesem mohou být nejen nevhodné, ale mohou také ničit tržní hodnotu daných vodoznačených dat. Je proto důležité navrhovat vodoznačící metody s ohledem na lidský vizuální nebo sluchový systém za účelem maximalizace energie vodoznaku ovšem tak, aby nebyl překročen práh vnímatelnosti lidských smyslů [3]. Bezpečnost je v dnešní době založena na používání jednoho nebo více kryptografických klíčů, což ztěžuje přístup a následné odstranění vodoznaku [3]. 14
Obr.1.3 Schéma základních požadavků na digitální vodoznaky Složitost je obecně čas, který útočník potřebuje k poškození nebo úplnému odstranění vodoznaku. Doporučuje se používat takové algoritmy vkládání vodoznaku, aby bylo jeho odstranění co nejsložitější a trvalo útočníkovi co nejdéle [3]. Spolehlivost detekce představuje dostatečný a neotřesitelný důkaz o vlastnických právech testovaných dat [3]. Kapacita udává množství nadbytečné informace (vkládaného vodoznaku), která může být vložena do zdrojových dat. Kapacita vodoznaku je vlastnost, která úzce souvisí s odolností. Pokud totiž zdrojová data obsahují velké množství vložených informací, stává se vodoznak v případě útoku lehce detekovatelný. Naproti tomu při vložení minimální hodnoty informace, která je navíc obsažena jen ve velmi malé oblasti zdrojových dat, je vodoznak prakticky nedetekovatelný, ale naproti tomu může být odstraněn jakoukoli modifikací. Je tedy vždy důležité dobře rozhodnout jaké množství vložené informace je vhodné pro konkrétní případ [3]. 1.6 Oblasti vkládání digitálních vodoznaků V současné době se metody vodoznačení rozdělují do tří hlavních skupin podle oblasti vkládání vodoznaku do zdrojových dat. Tyto oblasti jsou znázorněny na obrázku Obr.1.4. Oblasti vkládání vodoznaků Časová (obrazová) oblast Frekvenční oblast Parametrická oblast Obr.1.4 Rozdělení oblastí pro vkládání vodoznaků 15
Časová (obrazová) oblast Metody vložení vodoznaku v časové oblasti, které se aplikují na obrazové signály, se také někdy nazývají jako metody vložení vodoznaku v obrazové oblasti. U těchto metod se v případě nevnímatelných vodoznaků využívá nedokonalosti lidského zraku v tom smyslu, že člověk dokáže rozeznat maximálně 90 přechodů jasových úrovní [3]. Při vyšším počtu přechodů již není schopný zaregistrovat malé změny v těchto přechodech. Tohoto principu využívá také dobře známá a používaná technika vodoznačení v časové oblasti metoda modifikace LSB bitů, která modifikuje nejméně významné bity tak, že je nahrazuje bity vodoznaku. Tato metoda se používá jak u statických obrazů, tak také u audio signálů [3]. I přes svou jednoduchost se tato metoda ovšem příliš nepoužívá z důvodu malé odolnosti proti útokům Frekvenční oblast Metody vložení vodoznaku ve frekvenční oblasti, neboli v transformované oblasti jsou v současnosti těmi nejpoužívanějšími metodami pro vodoznačení, jsou totiž mnohem více robustní proti útokům než metody v oblasti časové. I přes to, že jsou více robustní, zůstávají nepostřehnutelné lidskými smysly. Existuje mnoho metod vkládání vodoznaků ve frekvenční oblasti. K možnostem vodoznačení ve frekvenční oblasti patří použití diskrétní kosinové transformace, vlnkové transformace, singulární dekompozice nebo Walsh - Hadamardovy transformace pro převedení zdrojových dat do prostoru transformačních koeficientů. Singulární dekompozici a Walsh - Hadamardové transformaci bude věnována následující kapitola. Tyto transformace mohou být použity na celý obraz, na části obrazu popř. nějaké jiné variace. Zpětnou transformací modifikovaných koeficientů se získávají původní data, ve kterých je obsažen vodoznak [3]. Parametrická oblast Metody vložení vodoznaku v parametrické oblasti jsou založené na modifikaci některých parametrů originálních dat. Aby bylo možné měnit vybrané parametry, je třeba původní signál nejprve přetransformovat do parametrické oblasti. Jednou z používaných technik je například metoda vkládání vodoznaku založená na fraktálovém popisu obrazu, kdy bývají upravovány parametry jasu nebo kontrastu. Další metodou vodoznačení v parametrické oblasti je metoda založená na změně matice barevné palety RGB, kde je upravován například parametr sytosti barvy. Výsledné vodoznaky, vložené metodou využívající fraktálové kódování, jsou odolné zejména proti kompresi nebo filtrování signálu [3]. 1.7 Útoky na digitální vodoznaky Výzkum vodoznaků přinesl rozsáhlé množství vodoznačících technik, které mohou být rozděleny do mnoha metodických úrovní. Každá z těchto metod se snaží redukovat napadnutelnost různými útoky. Útoky na vodoznaky mohou být rozděleny do dvou hlavních skupin přátelské a zákeřné útoky. Konvenční datové operace, jako jsou oříznutí, barevné korekce a další, které jsou běžně používané v počítačové technice, mohou zničit vodoznak, rozdílné operace od těchto klasických jsou také pro vodoznak nebezpečné. Přátelské útoky jsou neúmyslné, kdy uživatel nemá informace o skrytém vodoznaku a jeho vodoznačícím schématu. Druhý typ útoku se nazývá zákeřný, má za cíl přímo odstranit skrytý vodoznak. Další dělení vodoznaků je znázorněno na obrázku Obr.1.5 [2]. 16
Útoky na vodoznaky Jednoduché útoky Útoky znemožňující detekci Odstraňující útoky Obr.1.5 Rozdělení útoků na vodoznaky Jednoduché útoky Jednoduché útoky na vodoznak se snaží vymazat informaci o vodoznaku manipulováním celého obrazu a jeho komponent. Tyto útoky neizolují ani neidentifikují specifickou informaci o vodoznaku. Útok je úspěšný, jestliže vodoznak nelze extrahovat nebo ho nelze rozpoznat a jestliže použitelnost originálních dat nebyla poznamenána. Příkladem tohoto útoku může být lineární filtrování, jako je filtrování horní propustí či dolní propustí nebo nelineární filtrování, jako je redukce barev, D/A či A/D konverze a převzorkování [2]. Útoky znemožňující detekci Tyto útoky ničí přímo informaci o vodoznaku, například při narušení procesu korelace. Útoky jsou obvykle založeny na geometrických změnách nebo na ořezání obrazu. Příklady mohou být změny rozměrů, rotace a ořezání. Jeden z nejznámějších útoků je založen na programu StirMark, který ničí informaci o vodoznaku náhodně vybranými modifikacemi popř. kombinacemi různých modifikací [2]. Odstraňující útoky Odstraňující útoky analyzují vodoznak, odhadují vodoznačící metodu a snaží se extrahovat originální vodoznak, aby jej odstranily. V tomto případě jsou používány aplikace, které analyzují zdrojová data [2]. 1.8 Hodnocení kvality vodoznačených dat Pro hodnocení kvality vodoznačených obrazů se využívá dvou metod, subjektivní metody a objektivní metody hodnocení. Subjektivní metoda hodnocení Tato metoda využívá vizuální hodnocení kvality obrazu určitým množstvím lidí, je ovšem nákladná a pro pozorovatele náročná, protože lidské oči se celkem rychle unaví. Ani vypovídající hodnota této metody není příliš směrodatná, protože obrazový vjem v lidském mozku závisí na podnětu nelineárně. Výhodou je ovšem to, že tato metoda bere v potaz případné rušivé působení vodoznaku. 17
Objektivní metoda hodnocení K vyhodnocení obrazové kvality vodoznačených a rekonstruovaných obrazů se používá PSNR (Peak Signal-to-Noise Ratio), neboli špičková hodnota odstupu signál-šum, jež se počítá podle následující rovnice [7] 2 255 PSNR = 10log10, [db] (1.9) MSE kde 255 reprezentuje maximální hodnotu každého pixelu a MSE (Mean Square Error), neboli střední kvadratická chyba je definována dle následující rovnice [7] VO ŠO 1 2 MSE= ( ) ( x ij x ij ). (2.0) VO ŠO i= 1 j= 1 Zde VO a ŠO reprezentují výšku a šířku daného obrazu, x ij je hodnota pixelu daného souřadnicemi (x,y) v originálním obraze a x ij je hodnota pixelu po vodoznačícím procesu. Čím větší PSNR je, tím je lepší kvalita vodoznačeného obrazu ve vztahu k originálnímu [7]. Pro posouzení shody mezi originálním a extrahovaným vodoznakem se používá NCC (Normalized Cross Corelation), neboli normalizovaná křížová korelace [8] VV 1 ŠV 1 i = 1 j = 1 NCC = VV 1 ŠV 1, (2.1) 2 ( x ) i = 1 j = 1 kde VV a ŠV reprezentují výšku a šířku vodoznaků, x ij a x ij představují hodnoty pixelů na pozicích (i,j) originálního a extrahovaného vodoznaku. Výstup této funkce je v rozmezí hodnot 0 až 1. x ij x ij ij 18
2. Singulární dekompozice, Walsh Hadamardova transformace 2.1 Základní informace o singulární dekompozici Singulární dekompozice (SVD Singular Value Decomposition) je numerický proces, který se hojně používá při redukci dat. SVD má mnoho praktických i teoretických využití. Jedna zvláštnost SVD je ta, že může být použita na jakoukoliv reálnou matici (m,n). Představme si matici A(m,n) rozměru N N, jestliže se na tuto matici použije SVD, potom výsledkem jsou tři matice U, S, V, každá o rozměru N N, přičemž matice U a V jsou ortogonální matice a matice S je diagonální matice. Jak již bylo uvedeno SVD je tedy operace, která matici A převede na matice U, S, V,. Matice U obsahuje levé singulární vektory, V pravé singulární vektory a diagonální matice S obsahuje singulární hodnoty, kde jednotlivé hodnoty jsou uspořádány na hlavní diagonále v tomto pořadí s 1 s2... sr > sr + 1 =... = sp = 0 (2.2) kde r je hodnost matice A, a kde P je menší z rozměrů m nebo n [6]. Mějme matici A, jejíž rozměr je N N a r N, potom SVD této matice je [7] s1 0 L 0 0 s2 L 0 A = USV = [ u, u u 2, L, N ] [ v1, v2, L, v 0 0 O 0 0 0 L s N T 1 N ] kde u i a v i jsou sloupcové vektory matic U a V. = r i = 1 s u v i i T i, (2.3) SVD byla také teprve nedávno použita v procesu zpracování obrazu a to v aplikacích, které zahrnují obrazovou kompresi, skrytí obrazových informací, snížení šumu a při procesu vodoznačení. Využívá se toho, že výsledný obraz se příliš nemění, jestliže je k jeho singulárním hodnotám přidána velmi malá interferenční hodnota [7]. 2.2 Příklad SVD Na ukázku problematiky SVD je uveden následující příklad, který byl vytvořen pomocí programu Matlab. Mějme dánu matici A, na kterou budeme aplikovat singulární dekompozici. Jestliže je tedy matice 1 5 8 A = 8 1 2, 8 7 4 potom po provedení singulární dekompozice dostáváme tři matice U, S, V, kde 0,4963 0,7909 0,3581 151085, U = 0,4566 0,5886 0,6671, S = 0 0,7384 0,1676 0,6532 0 0 7, 2474 0 0 0 2, 6850 19
0,6656 0,7256 0,1747 V = 0,5366 0,3026 0,7878. 0,5187 0,6181 0,5907 Mezi těmito maticemi platí T A = USV 0,4963 = 0,4566 0,7384 0,7909 0,5886 0,1676 0,3581 15,1085 0,6671 0 0,6532 0 0 7,2474 0 0 0 2,6850 0,6656 0,5366 0,5187 0,7256 0,3026 0,6181 0,1747 0,7878 0,5907 T. Je vidět, že matice S je diagonální matice, jak již bylo uvedeno dříve. Dále, v praktické části se bude pracovat právě s touto maticí. V levém horním rohu této matice je soustředěna nejvyšší číselná hodnota, která reprezentuje nejvyšší hodnotu energie, směrem k dolnímu pravému rohu číselné hodnoty klesají a jimi reprezentované hodnoty energií se tedy snižují. Jestliže se tedy bude ovlivňovat některá z méně významných hodnot, která reprezentuje nižší hodnotu energie, potom po provedení zpětné SVD nebude mít tato změna na rekonstruovanou matici A zásadní vliv. Na ukázku tohoto tvrzení byla k hodnotě na pozici S(3,3) matice S přičtena hodnota 0,5, potom tedy 151085, 0 0 S ' = 0 7, 2474 0. 0 0 3,1850 Po provedení zpětné SVD dostáváme A' = US' V T 0,4963 = 0,4566 0,7384 0,7909 0,5886 0,1676 0,3581 15,1085 0,6671 0 0,6532 0 0 7,2474 0 0 0 3,1850 0,6656 0,5366 0,5187 0,7256 0,3026 0,6181 0,1747 0,7878 0,5907 T 1,0313 = 8,0583 7,9429 4,8590 0,7372 7,2573 8,1058 2,1970 3,8071 Je patrné, že se změna S(3,3) ve výsledku příliš neprojevila, tohoto se bude využívat pro jednu z metod vodoznačení. 20
2.3 Základní informace o Walsh - Hadamardově transformaci Walsh - Hadamardova transformace (WHT Walsh Hadamard Transform) je periodická transformace, při které jsou jednotlivé funkce vytvářeny změnou měřítka a opakováním, podobně je tomu např. také u kosinovy transformace. Jedná se tedy o lineární ortogonální transformaci, jejíž bázi tvoří funkce signum (obdélníkové funkce) [9]. W0(t) W1(t) 1-1 H0(t) H1(t) 1-1 W2(t) H2(t) W3(t) H3(t) W4(t) H4(t) W5(t) H5(t) W6(t) W7(t) 1-1 H6(t) H7(t) 0 Walsh 1 0 Hadamard 1 1-1 Obr.2.1 Hadamardovo uspořádání dle kmitočtu a rekurzivní dekompozice [10] WHT transformuje reálný obraz f(m,n) na diskrétní spektrum představované reálnou funkcí F(k,l) M N F( k, l) = f ( m, n) h m h, (2.4) m = 1 n = 1, k kde h m,k a h n,l jsou koeficienty tzv. Hadamardovy matice H N(M), pro které platí rekurentní transformace v maticové podobě n, l 1 1 1 1 H n( m) H n( m) H1 = 1, H 2 =, L H n( m) + 1 =, (2.5) 2 1 1 2 H n( m) H n( m) kde H 2 je tzv. jádro Hadamardovy matice. Pro Hadamardovu matici n-tého řádu platí H n. H n = n. I, kde H n je transponovaná matice k H n a I je diagonální jednotková matice [9]. 21
2.4 Příklad WHT Na ukázku problematiky WHT je uveden následující příklad, který byl opět vytvořen pomocí programu Matlab. Mějme dánu matici A, na kterou se bude aplikovat Walsh - Hadamardovu transformaci. Jestliže je matice 4 8 5 2 1 7 9 5 A =, 5 8 3 4 1 7 9 6 potom pro transformaci je potřebná Hadamardova matice 1 1 1 1 1 1 1 1 1 1 1 H 4 = H 2 H 2 = = 2 1 1 2 1 1 21 1 1 1 1 1 1 1 1 1, 1 1 po provedení transformace podle vztahu 4 A. T 4 T = H. H dostáváme matici 21 2,5 0,5 7 1,5 0 6 2,5 T =. 0,5 1 0 1,5 0 0,5 0,5 1 Je vidět, že matice T má v levém horním rohu soustředěnu nejvyšší číselnou hodnotu, která reprezentuje nejvyšší hodnotu energie, ostatní číselné hodnoty jsou nižší a reprezentují menší úrovně energie. Jestliže se tedy bude ovlivňovat některá z méně významných hodnot, která reprezentuje nižší hodnotu energie, potom po provedení zpětné Walsh Hadamardovy transformace (IWHT) nebude mít tato změna na rekonstruovanou matici A zásadní vliv. Po prohození koeficientů T(3,4) s T(4,3) a provedení zpětné transformace podle vzorce T A = H. T. H, dostáváme matici 4 7,5 5 2,5 1,5 7 8,5 5 A =. 5 8,5 3 3,5 0,5 7 9,5 6 Tato matice se od původní příliš neliší, čehož se bude využívat při metodě vodoznačení. 22
3. Program Checkmark Checkmark je testovací program pro porovnávání výkonnosti jednotlivých technologií digitálního vodoznačení. Je to program, který běží ve spolupráci s programem Matlab pod operačními systémy Windows a operačními systémy unixového typu. Poskytuje efektivní a účinné nástroje k ohodnocení vodoznačících metod. Checkmark obsahuje více typů útoků než jiné programy podobného typu. Skóre z jednotlivých typů útoků prováděných Checkmarkem mají váhu podle toho, jak moc je daná vodoznačící metoda používaná. Výsledky jednotlivých provedených útoků tímto programem mohou být přehledně zaneseny do tabulek v HTML kódu. 3.1 Nastavení programu Checkmark Pro správnou funkci tohoto programu je třeba jej nejprve nastavit, což se provádí manuálně, v souboru getconfig.m, kde se nastavují hlavně cesty - k vlastnímu programu, k vodoznačeným obrazům a také k výstupům. Nastavení bylo provedeno pomocí programu Matlab, verze 7.1.0.264 (R14), Service Pack 3. Všechny parametry za znakem = jsou uvedeny v jednoduchých úvozovkách. checkmarkpath = nastavení cesty k vlastnímu programu. SETUP.imagepath = nastavení cesty k vodoznačeným obrazům. SETUP.attackedsubdir = nastavení složky, kam se budou ukládat obrazy po jednotlivých útocích. SETUP.applicname = tímto parametrem se nastavuje, jaké typy útoků budou provedeny, v našem případě se nastaví parametr copyright, který provádí veškeré typy útoků na vodoznak. SETUP.numims = nastavení počtu vodoznačených obrazů pro provedení útoků. SETUP.mainHTMLpage = název hlavní HTML stránky, kam bude vypsán výstup jednotlivých útoků. SETUP.HTMLPATH = nastavení cesty pro uložení HTML stránek. 23
4. Praktická realizace vodoznačících metod K vytvoření metod pro vodoznačení byla vybrána frekvenční oblast. Metody vodoznačení v této oblasti jsou v současné době hojně využívány a dochází u nich k neustálému rozvoji a zdokonalování. Základem těchto metod je singulární dekompozice (SVD) a Walsh - Hadamardova transformace (WHT), které byly objasněny výše. K praktické realizaci metod byl v obu případech použit program Matlab. 4.1 Technika vodoznačení za pomoci singulární dekompozice 4.1.1 Vložení vodoznaku První realizovaná metoda vychází z metody popsané v [7], jedná se o Changovu vodoznačící metodu pomocí SVD. Experimentální výsledky ukazují, že Changovo schéma vodoznačení dokáže vzdorovat JPEG kompresi, zostření či rozostření, rozmazání, ořezání a šumovým útoků. Metoda byla modifikována způsobem, který bude popsán dále v textu. Originální obraz Rozdělení obrazu na díly 4x4 px (nepřekrývající se) Výpočet SVD U matice V matice S matice Vodoznak + klíč Vodoznačící proces U matice V matice S matice Zpětná SVD Vodoznačený obraz + klíč Obr.4.1 Schéma modifikované Changovy vodoznačící metody pomocí SVD [7] Metoda vodoznačení pomocí SVD je znázorněna na obrázku Obr.4.1, je navržena tak, aby pracovala s binárními daty. Využívá černobílý vodoznak o velikosti P P pixelů (64 64) a originální obraz o velikosti N N pixelů (512 512) v odstínech šedi, který je nejprve rozdělen na nepřekrývající se bloky B velikosti 4 4 pixely. Jako vstupní obraz v odstínech šedi byla použita Lena (512 512 px, 8 bit) a binární vodoznak, zobrazené na Obr.4.2. 24
Obr.4.2 Použitý originální obraz a vodoznak pro účely vodoznačení Metoda vodoznačení je založena na změně druhého nenulového prvku diagonální matice S j bloku B j, kterou získáme singulární dekompozicí (viz. kapitola 2). Jedná se o změnu frekvenčního koeficientu v pásmu středních frekvencí. Jak již bylo řečeno v kapitole 2, každý nenulový prvek diagonální matice S j reprezentuje jinou energii, která odpovídá jinému pásmu frekvencí. V levém horním rohu je tedy soustředěna největší hodnota energie odpovídající pásmu nízkých frekvencí, směrem po diagonále k pravému dolnímu rohu matice S j energie klesají, ale hodnoty frekvenčních pásem rostou. Prvek jež je tedy umístěn v pravém dolním rohu matice S j má nejmenší číselnou hodnou a tím i nejmenší energii a reprezentuje pásmo nejvyšších frekvencí. Je tedy důležité vybrat správné pásmo pro vložení informace o vodoznaku. Jestliže by byla tato informace vložena do pásma nízkých frekvencí, tedy do prvního nenulového prvku matice S j, potom by byl vodoznak velice robustní proti útokům, ovšem tento zásah by měl negativní vliv na nepostřehnutelnost vodoznaku. Jestliže by byl vodoznak naopak vkládán do pásma nejvyšších frekvencí, tedy do posledního nenulového prvku matice S j, potom by byl vodoznak nepostřehnutelný, ovšem velice náchylný vůči útokům na něj provedených. Jako kompromis mezi nepostřehnutelností vodoznaku a robustnostní se tedy jeví pásmo středních frekvencí, a proto byl zvolen právě druhý nenulový prvek matice S j. Ukázka rozložení spektra v transformovaném bloku B j je na obrázku Obr.4.3. Obr.4.3 Rozložení spektra transformovaného bloku 25
Bloky B j jsou vybírány podle pseudonáhodného klíče. Tento klíč obsahuje posloupnost binárních hodnot 0 a 1, přičemž tato posloupnost má tolik prvků, kolik je bloků B j daného obrazu k vodoznačení (viz Obr.4.4). Počet nenulových prvků klíče je dán trojnásobkem počtu bitů použitého vodoznaku. Pro dosažení vyšší robustnosti je každá binární hodnota vodoznaku vložena do vodoznačeného obrazu třikrát. Bity vodoznaku jsou proto kopírovány třikrát - na P P 3 bitové toky a ty jsou následně vloženy do druhých nenulových koeficientů matic S j, které jsou získány použitím SVD na rozdílné bloky obrazu. Obr.4.4 Výběr bloků určených k vodoznačení Každá matice S j bloku B j, pro kterou je bit klíče roven jedné obsahuje jen jednu binární hodnotu vodoznaku (nula nebo jedna). Tato binární hodnota je ještě navíc násobena konstantou σ, která určuje, s jakou robustností bude daný bit vodoznaku zakódován do matice S j. Tato konstanta se volí s ohledem na nepostřehnutelnost vodoznaku podle hodnoty PSNR, která by neměla klesnout pod 40dB a také podle subjektivního hodnocení. Po vložení jednoho bitu vodoznaku do matice S j bloku B j je vodoznačený blok B j získán zpětnou SVD odpovídajících matic U, V a upravených matic S j. Po výběru a vodoznačení určitých bloků B j podle pseudonáhodného klíče je výsledný obraz znovu poskládán. Algoritmus vodoznačení: Vstup: blok B j, bit vodoznaku W i, klíč K j Výstup: vodoznačený obraz 1) Nechť j = 1. 2) Použije se SVD na blok B j, aby vznikly odpovídající matice U j, S j, V j 26
Nechť s1 0 0 0 s j 0 2 0 0 S =. 0 0 s 3 0 0 0 0 s4 j 3) Generuje se klíč K j pro vodoznačení, kde j = celkový počet bloků, počet 1 odpovídá 3 W imax 4) Jestliže K j = 1, nechť s 2 = s 2 + σ W i, matice S j se změní na s1 0 0 0 s 0 ' 2 0 0 S ' j = 0 0 s 3 0 0 0 0 s4 j Jestliže K j = 0, přejde se na bod 6. 5) Aplikuje se inverzní SVD na matice U j, S j a V j, aby se rekonstruoval vodoznačený blok BW j, který je roven U j S j V j T. 6) Nechť i = i + 1, přejde se na krok 2, dokud všechny bity vodoznaku nejsou zakódovány do obrazu podle klíče K j. 4.1.2 Extrakce vodoznaku Vodoznačený obraz Originální obraz Rozdělení obrazu na díly 4x4 px Výpočet SVD Výpočet SVD U matice V matice S matice U matice V matice Rozdělení obrazu na díly 4x4 px S matice Klíč Proces extrakce vodoznaku Extrahovaný vodoznak Obr.4.5 Schéma extrakce vodoznaku pro metodu SVD 27
Proces extrakce vodoznaku je operace opačná vzhledem k procesu vložení vodoznaku (viz. Obr.4.1). K vytažení vodoznaku je zapotřebí tří vstupních parametrů, jsou to vodoznačený obraz, originální obraz a klíč. Oba obrazy, jak originální, tak vodoznačený jsou nejprve rozděleny na nepřekrývající se bloky o velikosti 4 4 pixely. Potom se podle klíče, který je známý z procesu vodoznačení vyberou ty bloky BW j, kde je skryta informace o vodoznaku a z těchto bloků se provede SVD. Podle klíče se také vyberou bloky z originálního obrazu, na které se opět aplikuje SVD. Výsledkem jsou tedy dvě matice, a to S a S. Matice S je výsledkem operace SVD na bloky originálního obrazu podle klíče a matice S je výsledkem operace SVD na bloky vodoznačeného obrazu podle použitého klíče. Provede se porovnání druhých nenulových prvků těchto matic. Jestliže je rozdíl těchto dvou prvků větší nebo roven konstantě σ/2, která reprezentuje robustnost, potom je v matici S uschována binární hodnota vodoznaku jedna, naopak, jestliže jsou tyto dva prvky shodné, potom byla do dané matice S zakódována informace o binární hodnotě nula daného vodoznaku. Toto se provede se všemi bloky BW j, ve kterých je podle klíče uschována informace o vodoznaku (binární hodnota nula nebo jedna). Tímto způsobem se získají tři dílčí vodoznaky, které se vzájemně porovnají. Výsledkem porovnání je jeden konečný extrahovaný vodoznak. Algoritmus extrakce vodoznaku [7]: Vstup: klíč K j, vodoznačený blok BW j, originální blok B j Výstup: extrahovaný vodoznak 1) Nechť j = 1. 2) Jestliže je klíč K j = 0, pak daný blok BW j neobsahuje informace o vodoznaku, j = j + 1; jestliže je klíč K j = 1, potom daný blok obsahuje informace o vodoznaku a přejde se na bod 3. 3) Použije se SVD na vodoznačený blok BW j, který se určí podle klíče K j, aby vznikly odpovídající matice U j, S j, V j Nechť s1 0 0 0 s j 0 ' 2 0 0 S =. 0 0 s 3 0 0 0 0 s4 j 4) Použije se SVD na blok B j, který se určí podle klíče K j, aby vznikly odpovídající matice U j, S j, V j Nechť s1 0 0 0 s j 0 2 0 0 S =. 0 0 s 3 0 0 0 0 s4 j 5) Extrahuje se vodoznak podle rovnice W i = 1, jestliže s ' 2 s 2 σ /2 = 0, jestliže předchozí podmínka neplatí (2.6) 6) Nechť j = j + 1. přejde se na bod 2, dokud všechny bity všech tří dílčích vodoznaků (W i1, W i2, W i3 ) nejsou extrahovány. 28
7) Nechť i = 1. 8) Jestliže W i1 + W i2 + W i3 2, nechť W i = 1, jinak W i = 0. 9) Nechť i = i + 1. Přejde se na bod 7, dokud i není rovno P P. 4.1.3 Testování odolnosti metody vůči útokům Veškeré útoky, ať už jsou záměrné či nikoliv, na chráněná obrazová data způsobují znehodnocení vodoznaku. Tato podkapitola bude věnována testování odolnosti dané vodoznačící metody proti různým útokům simulovaným v programu Checkmark, který již byl přiblížen v kapitole 3. Obraz i vodoznak použité k vodoznačení jsou zobrazeny na obrázku Obr.4.2. Na následujícím obrázku Obr.4.6 je zobrazen originální obraz a vodoznačený obraz pro možnost porovnání případných rozdílů. Zvolená robustnost podle hodnoty PSNR a také podle subjektivního hodnocení je σ = 15, čemuž odpovídá hodnota PSNR = 41,9772dB. Dále v textu budou uvedeny testy vodoznačeného obrazu i s jinou robustností a jinou hodnotou PSNR. Obr.4.6 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 15 a hodnotou PSNR = 41,9772dB (vpravo) Hranice rozeznatelnosti vytaženého vodoznaku se svým originálem byla stanovena podle mého subjektivního hodnocení na hodnotu NCC = 0,7. Vytažený vodoznak je tedy považován za shodný (označení 1) se svým originálem, jestliže je hodnota NCC větší nebo rovna 0,7. Jestliže je hodnota NCC menší než 0,7 je vytažený vodoznak považován za rozdílný (označení 0). Obr.4.7 Extrahovaný vodoznak s hodnotou NCC = 0,7056 29
Útok JPEG kompresí Tab.4.1 Test odolnosti proti JPEG kompresi Obraz_stupeň kvality JPEG NCC [-] Shodnost vodoznaků im1jpegcompression1_j10.jpg 0,0184 0 im1jpegcompression1_j15.jpg 0,0766 0 im1jpegcompression1_j25.jpg 0,1909 0 im1jpegcompression1_j30.jpg 0,2253 0 im1jpegcompression1_j40.jpg 0,3041 0 im1jpegcompression1_j50.jpg 0,3747 0 im1jpegcompression1_j60.jpg 0,4394 0 im1jpegcompression1_j75.jpg 0,6381 0 im1jpegcompression1_j80.jpg 0,7909 1 im1jpegcompression1_j85.jpg 0,9116 1 im1jpegcompression1_j90.jpg 0,9891 1 im1jpegcompression1_j100.jpg 1,0000 1 Obr.4.8 Ukázka vytažených vodoznaků pro stupeň kvality JPEG komprese 100, 80, 10 Útok vlnkovou kompresí Tab.4.2 Test odolnosti proti vlnkové kompresi Obraz_stupeň kvality vlnkové komprese NCC [-] Shodnost vodoznaků im1waveletcompression1_w10.jpg 0,0019 0 im1waveletcompression1_w20.jpg 0,0109 0 im1waveletcompression1_w30.jpg 0,0381 0 im1waveletcompression1_w40.jpg 0,0844 0 im1waveletcompression1_w50.jpg 0,1472 0 im1waveletcompression1_w60.jpg 0,2225 0 im1waveletcompression1_w80.jpg 0,5375 0 im1waveletcompression1_w150.jpg 0,9978 1 im1waveletcompression1_w350.jpg 1,0000 1 im1waveletcompression1_w800.jpg 1,0000 1 Obr.4.9 Ukázka vytažených vodoznaků pro stupeň kvality 800, 150, 10 30
Další útoky Tab.4.3 Test odolnosti proti různým útokům Útoky založené na ořezání NCC [-] 31 Shodnost vodoznaků im1cropping4_w800.jpg 0,4378 0 im1cropping6_w800.jpg 0,4138 0 im1cropping8_w800.jpg 0,3409 0 im1cropping9_w800.jpg 0,1503 0 Útoky založené na rozostření/zostření NCC [-] Shodnost vodoznaků im1dpr1_j100.jpg 0,4713 0 im1dpr2_j100.jpg 0,4072 0 im1dprcorr1_j100.jpg 0,6169 0 im1dprcorr2_j100.jpg 0,5787 0 im1gaussian1_j100.jpg 0,8272 1 im1gaussian2_j100.jpg 0,8241 1 im1hardthresh1_j100.jpg 0,0313 0 im1hardthresh2_j100.jpg 0,0025 0 Útoky založené na změně geometrických rozměrů NCC [-] Shodnost vodoznaků im1nulineremove1_w800.jpg 0,9838 1 im1nulineremove2_w800.jpg 0,9738 1 im1ratio1_w800.jpg 0,8194 1 im1ratio3_w800.jpg 0,935 1 im1ratio4_w800.jpg 0,9575 1 im1ratio5_w800.jpg 0,975 1 im1ratio6_w800.jpg 0,995 1 im1scale1_w800.jpg 0,0634 0 im1scale2_w800.jpg 0,4294 0 im1scale3_w800.jpg 0,6606 0 im1scale4_w800.jpg 0,9716 1 im1scale5_w800.jpg 0,9994 1 im1scale6_w800.jpg 0,9959 1 Jak vyplývá z uvedených tabulek, technika vodoznačení za pomoci SVD je účinná proti JPEG kompresi do stupně kvality komprese J = 80, při nižší kvalitě komprese se již vodoznak stává nedetekovatelným. Proti vlnkové kompresi je metoda SVD účinná do stupně kvality komprese W = 150, od této hodnoty dolů se opět vodoznak stává nedetekovatelným. Mezi útoky označené jako další patří například útoky založené na ořezání vodoznačeného obrazu, proti těmto útokům není tato metoda vůbec odolná. Je to způsobeno tím, že při ořezání dojde k posunu bloků, na které je při vodoznačení originální obraz dělen, potom při vyčítání těchto bloků pomocí tajného klíče tento odkazuje na nesprávné bloky, ve kterých má být dle klíče umístěn nenulový bit vodoznaku. Z útoků založených na zostření či rozostření je tato metoda odolná jen proti Gaussově rozostření. Proti útokům založeným na změně geometrických rozměrů je daná metoda vodoznačení, až na některé výjimky, odolná. Další útoky, které byly na chráněná obrazová data použity, jsou k dispozici na přiloženém CD, zde je uveden pouze výčet těch, které jsou dle mě nejdůležitější. Odolnost této metody vodoznačení závisí i na robustnosti, se kterou byl daný vodoznak do originálního obrazu vložen, proto budou dále uvedeny výsledky pro robustnost σ = 50, čemuž odpovídá hodnota PSNR = 33,4036dB. Takto vysoká hodnota robustnosti se sice
negativně promítne na nevnímatelnosti vloženého vodoznaku, ale při jeho extrakci z modifikovaných obrazů dosáhneme lepších výsledků. Na následujícím obrázku je zobrazen originální obraz a vodoznačený obraz pro možnost porovnání případných rozdílů. Obr.4.10 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 50 a hodnotou PSNR = 33,4036dB (vpravo) Útok JPEG kompresí Tab.4.4 Test odolnosti proti JPEG kompresi Obraz_stupeň kvality JPEG NCC [-] Shodnost vodoznaků im1jpegcompression1_j10.jpg 0,1834 0 im1jpegcompression1_j15.jpg 0,4003 0 im1jpegcompression1_j25.jpg 0,5591 0 im1jpegcompression1_j30.jpg 0,6541 0 im1jpegcompression1_j40.jpg 0,8137 1 im1jpegcompression1_j50.jpg 0,9097 1 im1jpegcompression1_j60.jpg 0,9563 1 im1jpegcompression1_j75.jpg 0,9969 1 im1jpegcompression1_j80.jpg 0,9991 1 im1jpegcompression1_j85.jpg 1,0000 1 im1jpegcompression1_j90.jpg 1,0000 1 im1jpegcompression1_j100.jpg 1,0000 1 32
Útok vlnkovou kompresí Tab.4.5 Test odolnosti proti vlnkové kompresi Obraz_stupeň kvality vlnkové komprese NCC [-] Shodnost vodoznaků im1waveletcompression1_w10.jpg 0,0006 0 im1waveletcompression1_w20.jpg 0,0225 0 im1waveletcompression1_w30.jpg 0,0997 0 im1waveletcompression1_w40.jpg 0,2947 0 im1waveletcompression1_w50.jpg 0,4678 0 im1waveletcompression1_w60.jpg 0,6431 0 im1waveletcompression1_w80.jpg 0,9069 1 im1waveletcompression1_w150.jpg 1,0000 1 im1waveletcompression1_w350.jpg 1,0000 1 im1waveletcompression1_w800.jpg 1,0000 1 Další útoky Tab.4.6 Test odolnosti proti různým útokům Útoky založené na ořezání NCC [-] Shodnost vodoznaků im1cropping4_w800.jpg 0,4650 0 im1cropping6_w800.jpg 0,3981 0 im1cropping8_w800.jpg 0,2641 0 im1cropping9_w800.jpg 0,1044 0 Útoky založené na rozostření/zostření NCC [-] Shodnost vodoznaků im1dpr1_j100.jpg 0,7975 1 im1dpr2_j100.jpg 0,3159 0 im1dprcorr1_j100.jpg 0,9125 1 im1dprcorr2_j100.jpg 0,5894 0 im1gaussian1_j100.jpg 0,9762 1 im1gaussian2_j100.jpg 0,9778 1 im1hardthresh1_j100.jpg 0,9356 1 im1hardthresh2_j100.jpg 0,1350 0 Útoky založené na změně geometrických rozměrů NCC [-] Shodnost vodoznaků im1nulineremove1_w800.jpg 0,9925 1 im1nulineremove2_w800.jpg 0,9850 1 im1ratio1_w800.jpg 0,8981 1 im1ratio3_w800.jpg 0,9781 1 im1ratio4_w800.jpg 0,9844 1 im1ratio5_w800.jpg 0,9919 1 im1ratio6_w800.jpg 0,9997 1 im1scale1_w800.jpg 0,1159 0 im1scale2_w800.jpg 0,7641 1 im1scale3_w800.jpg 0,7753 1 im1scale4_w800.jpg 0,9859 1 im1scale5_w800.jpg 1,0000 1 im1scale6_w800.jpg 1,0000 1 33
Z uvedených tabulek vyplývá, že zvýšení robustnosti při vkládání vodoznaku má příznivý vliv na útok JPEG kompresí, vodoznak se stal detekovatelným do stupně kvality komprese J = 40. Proti vlnkové kompresi není metoda SVD příliš účinná, došlo sice ke zlepšení detekovatelnosti vodoznaku do stupně kvality komprese W = 80, ovšem za cenu ztráty kvality vodoznačeného obrazu. Ani proti útokům založeným na ořezání není metoda SVD vůbec odolná, i když se zvýšila robustnost, s jakou byl vodoznak do originálního obrazu vložen, na detekovatelnost vodoznaku to nemělo vliv. Došlo též ke zvýšení odolnosti proti metodám založeným na rozostření/zostření, což vyplývá za tabulky Tab.4.6. Odolnost proti útokům založeným na změně geometrických rozměrů se také zvýšila. Výsledky dalších útoků pro tuto robustnost jsou opět k dispozici na přiloženém CD, jsou zde i výsledky pro obraz s vloženým vodoznakem s robustností σ = 25 a hodnotou PSNR = 37,5953dB. 4.2 Technika vodoznačení za pomoci Walsh Hadamardovy transformace 4.2.1 Vložení vodoznaku Jako druhá byla vybrána technika vodoznačení za pomoci metody WHT, tato metoda se vyznačuje odolností vůči JPEG kompresi, zmenšení/zvětšení nebo rozmazání. Originální obraz Výpočet WHT matice T Rozdělení obrazu na díly 4x4 px (nepřekrývající se) Vodoznak + klíč Vodoznačící proces matice T Zpětná WHT Vodoznačený obraz + klíč Obr.4.11 Schéma vodoznačící metody za pomoci techniky WHT Metoda vodoznačení pomocí WHT je znázorněna na obrázku Obr.4.11, je navržena tak, aby pracovala s binárními daty. Využívá vodoznak o velikosti P P pixelů (64 64) a originální obraz o velikosti N N pixelů (512 512), který je nejprve rozdělen na nepřekrývající se bloky B velikosti 4 4 pixely. Stejně jako v předchozím případě je vstupní obraz v odstínech šedi, a to Lena (512 512 px, 8 bit) a binární vodoznak, zobrazené na Obr.4.2. 34
Tato metoda vodoznačení je založena na případném prohození dvou prvků matice T j, kterou získáme aplikováním WHT na daný blok B j. Jedná se o změnu frekvenčního koeficientu v pásmu středních až vysokých frekvencí, jak je znázorněno na obrázku Obr.4.12. Rozložení frekvencí v daném transformovaném bloku byla věnována část kapitoly 4.1.1, v tomto případě je to obdobné. Obr.4.12 Rozložení spektra transformovaného bloku a ukázka koeficientů, se kterými se pracuje Bloky B j jsou opět vybírány podle pseudonáhodného klíče, stejně jako u předešlé metody a stejně tak je pro dosažení vyšší robustnosti opět každá binární hodnota vodoznaku vložena do vodoznačeného obrazu třikrát. Bity vodoznaku jsou proto kopírovány třikrát na P P 3 bitové toky a ty jsou následně vloženy do transformovaných bloků B j tak, že jestliže je příchozí bit vodoznaku roven jedné, potom T(3,4) je větší než T(4,3), jestliže je příchozí bit vodoznaku roven nule, potom T(3,4) je menší než T(4,3). Každá matice T j bloku B j, pro kterou je bit klíče roven jedné, obsahuje jen jednu binární hodnotu vodoznaku (nula nebo jedna). Pro dosažení vyšší robustnosti jsou navíc prvky T(3,4) a T(4,3) matice T j ovlivňovány konstantou σ. Tato konstanta se volí s ohledem na nepostřehnutelnost vodoznaku podle hodnoty PSNR, která by neměla klesnout pod 40dB a také podle subjektivního hodnocení. Po vložení jednoho bitu vodoznaku do matice T j bloku B j je vodoznačený blok B j získán zpětnou WHT odpovídajících matic T j. Po výběru a vodoznačení daných bloků B j podle pseudonáhodného klíče je výsledný obraz znovu poskládán. Algoritmus vodoznačení: Vstup: blok B j, bit vodoznaku W i, klíč K j Výstup: vodoznačený obraz 1) Nechť j = 1. 2) Použije se WHT na blok B j, aby vznikla odpovídající matice T j T (1,1) T (1,2) T(1,3) T (1,4) T T T T Nechť j (2,1) (2,2) (2,3) (2,4) T =. T (3,1) T(3,2) T (3,3) T(3,4) T (4,1) T(4,2) T (4,3) T (4,4) 3) Generuje se klíč K j pro vodoznačení, kde j = celkový počet bloků, počet 1 odpovídá 3 W imax 4) Jestliže K j = 1, nechť T(3,4) + σ > T(4,3) - σ, jestliže W i = 1. Matice T j se změní na 35 j
T(1,1) T (1,2) T (1,3) T T T j (2,1) (2,2) (2,3) T = T (3,1) T (3,2) T (3,3) T (4,1) T (4,2) T(4,3) σ Jestliže K j = 0, přejde se na bod 7. T (1,4) T (2,4) T (3,4) + σ T (4,4) j 5) Jestliže K j = 1, nechť T(3,4) - σ < T(4,3) + σ, jestliže W i = 0. Matice T j se změní na T(1,1) T (1,2) T(1,3) T (1,4) T T T T j (2,1) (2,2) (2,3) (2,4) T = T (3,1) T (3,2) T (3,3) T(3,4) σ T (4,1) T (4,2) T(4,3) + σ T(4,4) j Jestliže K j = 0, přejde se na bod 7. 6) Aplikuje se inverzní WHT na matice T j, aby se rekonstruoval vodoznačený blok BW j, který je roven H T j H T, kde H je Hadamardova matice (4x4). 7) Nechť i = i + 1, přejde se na bod 2, dokud všechny bity vodoznaku nejsou zakódovány do obrazu podle klíče K j. 4.2.2 Extrakce vodoznaku Vodoznačený obraz Výpočet WHT T matice Rozdělení obrazu na díly 4x4 px (nepřekrývající se) Klíč Proces extrakce vodoznaku Extrahovaný vodoznak Obr.4.13 Schéma extrakce vodoznaku pro metodu WHT Proces extrakce vodoznaku pro metodu WHT je blokově znázorněn na obrázku Obr.4.13. K samotnému vytažení vodoznaku je zapotřebí dvou vstupních parametrů, jsou to vodoznačený obraz a klíč. Vodoznačený obraz je nejprve rozdělen na nepřekrývající se bloky o velikosti 4 4 pixely. Potom se podle klíče, který musí být známý z procesu vodoznačení vyberou bloky BW j, kde je skryta informace o vodoznaku a z těchto bloků se provede WHT. Výstupem je tedy matice T, která je výsledkem operace WHT na bloky vodoznačeného obrazu podle použitého klíče. Provede se porovnání koeficientů T(3,4) a T(4,3) této matice, jestliže je prvek T(3,4) větší než T(4,3), potom je v matici T uschována binární hodnota vodoznaku jedna, naopak, jestliže je prvek T(3,4) menší než T(4,3), potom byla do dané matice T 36
zakódována informace o binární hodnotě nula daného vodoznaku. Toto se provede se všemi bloky BW j, ve kterých je podle klíče uschována informace o vodoznaku (binární hodnota nula nebo jedna). Tímto způsobem se získají tři dílčí vodoznaky, které se vzájemně porovnají. Výsledkem porovnání je jeden konečný extrahovaný vodoznak. Algoritmus extrakce vodoznaku: Vstup: klíč K j, vodoznačený blok BW j Výstup: extrahovaný vodoznak 1) Nechť j = 1. 2) Jestliže je klíč K j = 0, pak daný blok BW j neobsahuje informace o vodoznaku, j = j + 1; jestliže je klíč K j = 1, potom daný blok obsahuje informace o vodoznaku a přejde se na bod 3. 3) Použije se WHT na vodoznačený blok BW j, který se určí podle klíče K j, aby vznikla odpovídající matice T j. Nechť T(3,4) > T(4,3), potom W i = 1, jinak W i = 0. 4) Nechť j = j + 1. Přejde se na bod 2, dokud všechny bity všech tří dílčích vodoznaků (W i1, W i2, W i3 ) nejsou extrahovány. 5) Nechť i = 1. 6) Jestliže W i1 + W i2 + W i3 2, nechť W i = 1, jinak W i = 0. 7) Nechť i = i + 1. Přejde se na bod 5, dokud i není rovno P P. 4.2.3 Testování odolnosti metody vůči útokům Tato podkapitola je věnována testování odolnosti dané vodoznačící metody proti různým útokům simulovaným v programu Checkmark, který již byl přiblížen v kapitole 3. Obraz i vodoznak použité k vodoznačení jsou zobrazeny na obrázku Obr.4.2. Na následujícím obrázku Obr.4.14 je zobrazen originální obraz a vodoznačený obraz pro možnost porovnání případných rozdílů. Zvolená robustnost podle hodnoty PSNR a také podle subjektivního hodnocení je σ = 8, čemuž odpovídá hodnota PSNR = 41,3729dB. Dále v textu budou uvedeny testy vodoznačeného obrazu i s jinou robustností a jinou hodnotou PSNR. Pro možnost porovnání obou vodoznačících metod jsou robustnosti voleny s ohledem na hodnotu PSNR, tak aby se tyto lišily co nejméně. 37
Obr.4.14 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 8 a hodnotou PSNR = 41,3729dB (vpravo) Hranice rozeznatelnosti vytaženého vodoznaku se svým originálem byla opět stanovena podle mého subjektivního hodnocení na hodnotu NCC = 0,7. Vytažený vodoznak je tedy považován za shodný (označení 1) se svým originálem, jestliže je hodnota NCC větší nebo rovna 0,7. Jestliže je hodnota NCC menší než 0,7 je vytažený vodoznak považován za rozdílný (označení 0). Útok JPEG kompresí Tab.4.7 Test odolnosti proti JPEG kompresi Obraz_stupeň kvality JPEG NCC [-] Shodnost vodoznaků im1jpegcompression1_j10.jpg 0,0328 0 im1jpegcompression1_j15.jpg 0,0694 0 im1jpegcompression1_j25.jpg 0,1350 0 im1jpegcompression1_j30.jpg 0,2816 0 im1jpegcompression1_j40.jpg 0,3134 0 im1jpegcompression1_j50.jpg 0,2978 0 im1jpegcompression1_j60.jpg 0,3100 0 im1jpegcompression1_j75.jpg 0,7869 1 im1jpegcompression1_j80.jpg 0,9819 1 im1jpegcompression1_j85.jpg 1,0000 1 im1jpegcompression1_j90.jpg 1,0000 1 im1jpegcompression1_j100.jpg 1,0000 1 38
Obr.4.15 Ukázka vytažených vodoznaků pro stupeň kvality JPEG komprese 100, 75, 10 Útok vlnkovou kompresí Tab.4.8 Test odolnosti proti vlnkové kompresi Obraz_stupeň kvality vlnkové komprese NCC [-] Shodnost vodoznaků im1waveletcompression1_w10.jpg 0,1194 0 im1waveletcompression1_w20.jpg 0,1787 0 im1waveletcompression1_w30.jpg 0,2628 0 im1waveletcompression1_w40.jpg 0,3453 0 im1waveletcompression1_w50.jpg 0,4400 0 im1waveletcompression1_w60.jpg 0,5066 0 im1waveletcompression1_w80.jpg 0,6916 0 im1waveletcompression1_w150.jpg 1,0000 1 im1waveletcompression1_w350.jpg 1,0000 1 im1waveletcompression1_w800.jpg 1,0000 1 Obr.4.16 Ukázka vytažených vodoznaků pro stupeň kvality 800, 150, 10 39
Další útoky Tab.4.9 Test odolnosti proti různým útokům Útoky založené na ořezání NCC [-] Shodnost vodoznaků im1cropping4_w800.jpg 0,4528 0 im1cropping6_w800.jpg 0,4572 0 im1cropping8_w800.jpg 0,4641 0 im1cropping9_w800.jpg 0,2978 0 Útoky založené na rozostření/zostření NCC [-] Shodnost vodoznaků im1dpr1_j100.jpg 0,0587 0 im1dpr2_j100.jpg 0,0403 0 im1dprcorr1_j100.jpg 0,1984 0 im1dprcorr2_j100.jpg 0,1047 0 im1gaussian1_j100.jpg 1,0000 1 im1gaussian2_j100.jpg 1,0000 1 im1hardthresh1_j100.jpg 0,1969 0 im1hardthresh2_j100.jpg 0,1009 0 Útoky založené na změně geometrických rozměrů NCC [-] Shodnost vodoznaků im1nulineremove1_w800.jpg 0,9753 1 im1nulineremove2_w800.jpg 0,9622 1 im1ratio1_w800.jpg 0,8209 1 im1ratio3_w800.jpg 0,9969 1 im1ratio4_w800.jpg 0,9903 1 im1ratio5_w800.jpg 0,9994 1 im1ratio6_w800.jpg 1,0000 1 im1scale1_w800.jpg 0,0001 0 im1scale2_w800.jpg 1,0000 1 im1scale3_w800.jpg 0,9941 1 im1scale4_w800.jpg 1,0000 1 im1scale5_w800.jpg 1,0000 1 im1scale6_w800.jpg 1,0000 1 Jak vyplývá z uvedených tabulek, technika vodoznačení za pomoci WHT je účinná proti JPEG kompresi do stupně kvality komprese J = 75, při nižší kvalitě komprese se již vodoznak stává nedetekovatelným. Proti vlnkové kompresi je metoda WHT účinná do stupně kvality komprese W = 150, od této hodnoty dolů se opět vodoznak stává nedetekovatelným. Mezi útoky označené jako další patří například útoky založené na ořezání vodoznačeného obrazu, proti těmto útokům není tato metoda stejně jako metoda SVD vůbec odolná. Je to způsobeno tím, že při ořezání dojde k posunu bloků, na které je při vodoznačení originální obraz dělen, potom při vyčítání těchto bloků pomocí tajného klíče tento odkazuje na nesprávné bloky, ve kterých má být dle klíče umístěn nenulový bit vodoznaku. Z útoků založených na zostření či rozostření je tato metoda odolná jen proti Gaussově rozostření. Proti útokům založeným na změně geometrických rozměrů je daná metoda vodoznačení, až na jednu výjimku, odolná. Další útoky, které byly na chráněná obrazová data použity jsou opět k dispozici na přiloženém CD. 40
Dále budou uvedeny výsledky pro robustnost σ = 25, čemuž odpovídá hodnota PSNR = 33,2831dB. Na následujícím obrázku je zobrazen originální obraz a vodoznačený obraz pro možnost porovnání případných rozdílů. Obr.4.17 Ukázka originálního (vlevo) a vodoznačeného obrazu s robustností σ = 25 a hodnotou PSNR = 33,2831dB (vpravo) Útok JPEG kompresí Tab.4.10 Test odolnosti proti JPEG kompresi Obraz_stupeň kvality JPEG NCC [-] Shodnost vodoznaků im1jpegcompression1_j10.jpg 0,0319 0 im1jpegcompression1_j15.jpg 0,0872 0 im1jpegcompression1_j25.jpg 0,2909 0 im1jpegcompression1_j30.jpg 0,7172 1 im1jpegcompression1_j40.jpg 0,9641 1 im1jpegcompression1_j50.jpg 1,0000 1 im1jpegcompression1_j60.jpg 1,0000 1 im1jpegcompression1_j75.jpg 1,0000 1 im1jpegcompression1_j80.jpg 1,0000 1 im1jpegcompression1_j85.jpg 1,0000 1 im1jpegcompression1_j90.jpg 1,0000 1 im1jpegcompression1_j100.jpg 1,0000 1 41