Psaní na mokrý papír. Andrew Kozlik KA MFF UK

Podobné dokumenty
1 Co jsou lineární kódy

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

1 Determinanty a inverzní matice

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

0.1 Úvod do lineární algebry

Lineární algebra Operace s vektory a maticemi

[1] samoopravné kódy: terminologie, princip

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

[1] LU rozklad A = L U

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Vzdálenost jednoznačnosti a absolutně

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Kapitola 11: Vektory a matice:

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

(Cramerovo pravidlo, determinanty, inverzní matice)

1 Soustavy lineárních rovnic

Vkládání pomocí Viterbiho algoritmu

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

7. Důležité pojmy ve vektorových prostorech

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Základy matematiky pro FEK

8 Kořeny cyklických kódů, BCH-kódy

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

Symetrické a kvadratické formy

Matematika IV 10. týden Kódování

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

0.1 Úvod do lineární algebry

IB112 Základy matematiky

Vlastní čísla a vlastní vektory

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Lineární algebra : Báze a dimenze

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

1/10. Kapitola 12: Soustavy lineárních algebraických rovnic

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

Matice. a m1 a m2... a mn

1 Řešení soustav lineárních rovnic

Úlohy nejmenších čtverců

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Úvod do lineární algebry

Základy maticového počtu Matice, determinant, definitnost

SOUČIN MATIC A m n B n p = C m p, přičemž: a i1 b 1j +a i2 b 2j + +a in b nj = c ij, i=1 m, j=1 p. Např: (-2) = -3

IVT. Rastrová grafika. 8. ročník

Soustava m lineárních rovnic o n neznámých je systém

[1] samoopravné kódy: terminologie, princip

Subexponenciální algoritmus pro diskrétní logaritmus

1 Vektorové prostory.

a + b + c = 2 b + c = 1 a b = a 1 2a 1 + a a 3 + a 5 + 2a 2 + a 2 + a

7. Lineární vektorové prostory

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Stavový model a Kalmanův filtr

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

PRAVDĚPODOBNOST A STATISTIKA

Číselné vektory, matice, determinanty

Matematika B101MA1, B101MA2

Informatika Kódování. Obsah. Kód. Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Samoopravné kódy. Katedra matematiky a Institut teoretické informatiky Západočeská univerzita

(ne)závislost. α 1 x 1 + α 2 x α n x n. x + ( 1) x Vektoru y = ( 1) y říkáme opačný vektor k vektoru y. x x = 1. x = x = 0.

6 Lineární geometrie. 6.1 Lineární variety

Samoopravné kódy, k čemu to je

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Řekněme nejprve, jaké kódování nás v tomto textu bude zajímat a jaké ne. K. Komprese dat, tedy kódování dat s cílem zmenšit jejich objem.

PRAVDĚPODOBNOST A STATISTIKA

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

3. Grafy a matice. Definice 3.2. Čtvercová matice A se nazývá rozložitelná, lze-li ji napsat ve tvaru A =

Odhady - Sdružené rozdělení pravděpodobnosti

Cvičení 5 - Inverzní matice

Hashovací funkce. Andrew Kozlík KA MFF UK

Rosenblattův perceptron

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Kapitola 11: Vektory a matice 1/19

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA II, letní semestr 2000/2001 Michal Marvan. 14.

Matice lineárních zobrazení

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

Základní pojmy teorie množin Vektorové prostory

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

7. přednáška Systémová analýza a modelování. Přiřazovací problém

VELIKOST VEKTORU, POČETNÍ OPERACE S VEKTORY

Lineární algebra : Lineární prostor

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

Analogově-číslicové převodníky ( A/D )

Soustavy lineárních rovnic

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

19. Druhý rozklad lineární transformace

Andrew Kozlík KA MFF UK

9 Kolmost vektorových podprostorů

Hammingův kód. Vladislav Kosejk. České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Detašované pracoviště Děčín

7. Analýza rozptylu.

Intervalová data a výpočet některých statistik

Transkript:

Psaní na mokrý papír Andrew Kozlik KA MFF UK W1

Motivace Problém: Vkládání do některých prvků nosiče má vysoký dopad na detekovatelnost. PNG/GIF: Oblasti s nízkou texturou. JPEG: Nulové AC koeficienty. Řešení: Při vkládání i extrakci budeme tyto citlivé prvky přeskakovat. Nový problém: Proces vkládání může mít za následek, že textura oblasti klesne pod prahovou hodnotu, nebo nenulový AC koeficient se vynuluje. Příjemce prvky přeskočí a vložená informace je tak ztracena. Řešení: Dojde-li ke ztrátě, vložíme informaci znovu. U JPEGu vede ke smrštění kapacity o cca 25 %. W2

Přirovnání k psaní na mokrý papír Máme obrázek na papíře. Některé pixely jsou suché, jiné mokré. Suché smíme upravovat, mokré nikoliv. Upravený obrázek odešleme, ale ten cestou uschne. Příjemce nepozná, kam jsme vložili zprávu, protože neví, které pixely byly suché a které nikoliv. W3

Věta (o mokrém nosiči) Pro každé ε > 0, δ > 0 a σ [0, 1] existuje n N a stegosystém takový, že do nosiče velikosti n symbolů, z nichž σn je suchých, lze s pravděpodobností alespoň 1 δ vložit informaci velikosti (σ ε)n symbolů. Důkaz. Nechť Σ je množina symbolů a q := Σ. (Typicky Σ = F 2 nebo Σ = F 3.) Nechť Z je množina zpráv velikosti Z = q (σ ε)n. Konstrukce stegosystému: Vytvoříme kódovou knihu B = { Pz : z Z }. Stránky knihy Pz jsou indexovány množinou zpráv Z. Slova z množiny Σ n rozmístíme do knihy náhodně tak, aby na každé stránce bylo q (1 σ+ε)n slov. Čili Σ n = z Z P z. W4

Důkaz (pokračování). Příjemce a odesílatel kódovou knihu sdílejí. Vkládání: Vstup: Nosič x Σ n s n σn mokrými prvky a zpráva z Z. Pokusíme se na stránce Pz najít n-tici, která se na mokrých pozicích shoduje s nosičem. Podaří-li se, je nalezená n-tice stegoobjektem a mokré pozice zůstávají nezměněny. Extrakce: Vstup: Stegoobjekt y Σ n. Vyhledáme y v knize. Podíváme se na index stránky, na které jsme y našli a zpráva = index. W5

Důkaz (pokračování). Podaří se vkládacímu algoritmu najít na stránce P z n-tici, která má na n σn určených pozicích určené hodnoty? V celé knize je takových n-tic dohromady q σn. Jaká je pravděpodobnost, že žádná z nich není v P z? P z vznikla náhodným výběrem q n σn+εn prvků z Σ n. Pravděpodobnost selhání p je méně než ( q n q σn p < q n ) q n σn+εn = ( ( 1 + 1 q n(1 σ) ) ) q n(1 σ) q εn }{{} jde k e 1 0,37 pro n. Pro dostatečně velká n je označený výraz menší než 1 2. Od jistého n tedy platí p < ( 1 2 )qεn 0. W6

Praktické řešení Algoritmy z důkazu označme: y = EmbB (x, S, z). z = ExtB (y). S {1,..., n} je množina indexů suchých složek nosiče. Pomocí samoopravného kódu C: Σ = Fq. B = F n q /C. Pz = C(z). ExtF n q /C = Hy, kde H je paritní matice kódu C. Lze tedy využít maticové vkládání. Cílem však není minimalizovat počet změn, ale zajistit, aby k nim docházelo jen na určených pozicích. W7

Vkládání při kvantizaci předchůdce nosiče transformace nekvantizovaný nosič kvantizace nosič vkládání při kvantizaci stegoobjekt Kvantizace: Zaokrouhlení na nejbližší povolenou hodnotu. Množina povolených hodnot může být např. {0, 1,..., 255} nebo {..., 3, 0, 3, 6,... }. Příklady transformací: Snížení hloubky barev rastrového obrázku. Zmenšení rozměrů rastrového obrázku a intrpolace. Blok 8 8 hodnot jasové složky obrázku na blok 8 8 DCT koeficientů. W8

Příklady kvantizace vs. vkládání při kvantizaci Množina povolených hodnot je Z. Nezaokrouhlený prvek: x i = 14,9. Kvantizace: Zaokrouhlíme na 15. Distorze je 0,1 2. Vkládání při kvantizaci: Vložení bitu 0: Zaokrouhlíme na 14. Distorze je 0,9 2. Vložení bitu 1: Zaokrouhlíme na 15. Distorze je 0,1 2. Průměrná distorze při vkládání (0,9 2 + 0,1 2 )/2 = 0,41. Vkládáním při kvantizaci se distorze v průměru zvýší o ρ i = 0,41 0,01 = 0,4. Jiný příklad: x i = 14,5. Vkládáním se distorze nezvýší. Říkáme, že x i je nestranný. W9

Využití psaní na mokrý papír Ke každému x i přiřadíme ρ i : ρ i = (průměrná distorze při vkládání) (distorze při zaokrouhlení) Je-li množina povolených hodnot Z, pak δ i = dist( x i, Z) = [ x i ] x i ρ i = δ2 i + (1 δ i ) 2 2 δ i = 1 2 δ i. Množinu S volíme tak, aby součet i S ρ i byl minimální. Vkládání provádíme usměrněním zaokrouhlení. W10

Vkládání při dvojité ztrátové kompresi Problém: Chceme nestranné prvky, ale ty jsou vzácné. Řešení: Vyrobíme je přirozenou cestou. Předchůdce nosiče: JPEG s faktorem kvality f 1. Transformace: Rekomprimace obrázku na nižší kvalitu f 2. Za příznivých okolností vznikne v nekvantizovaném nosiči nosiči hodně nestranných DCT koeficientů. Pro f 1 = 85 a f 2 = 70 je jich v našem cvičném obrázku 14 % z celkového počtu všech koeficientů. W11

Příklad kvantizačních matic 5 3 3 5 7 12 15 18 10 7 6 10 14 24 31 37 4 4 4 6 8 17 18 17 7 7 8 11 16 35 36 33 4 4 5 7 12 17 21 17 8 8 10 14 24 34 41 34 Q (85) = 4 5 7 9 15 26 24 19 5 7 11 17 20 33 31 23, Q (70) = 8 10 13 17 31 52 48 37 11 13 22 34 41 65 62 46 7 11 17 19 24 31 34 28 14 21 33 38 49 62 68 55 15 19 23 26 31 36 36 30 29 38 47 52 62 73 72 61 22 28 29 29 34 30 31 30 43 55 57 59 67 60 62 59 DCT koeficienty na pozici (1,3) v předchůdci nosiče jsou zaokrouhlovány na násobek 3. Při snížení kvality se zaokrouhlují na násobek 6. Téměř polovina bloků bude mít na této pozici nestranný DCT koeficient. Na pozicích s větším kvantizačním koeficientem bude nestranných výrazně méně než polovina, např. 5 %. (V předchůdci nosiče je totiž většina zaokrouhlena na 0.) W12

Dvojitá ztrátová komprese Nejlepších výsledků se dosahuje, když se berou nestranné DCT koeficienty z bloků s vysokou neuniformitou. Neuniformitu můžeme například měřit jako součet čtverců DCT koeficientů v bloku (energie bloku). Shrnutí: Máme zprávu délky m, potřebujeme počet suchých s > m. Postupně nabíráme nestranné koeficienty do S, dokud jich nemáme dost. Přednostně vybíráme koeficienty z nejvíce neuniformních bloků. W13

Dvouúrovňové ±1 vkládání Jednoduché ±1 vkládání zprávy z {0, 1} m do nosiče x Z n : Jestliže lsb(x i ) = z i, pak y i := x i. Jestliže lsb(x i ) z i, pak y i := x i + a, kde a R { 1, 1}. Obrana proti kvantitativním útokům na LSB embedding. Rozhodnutí přičíst anebo odečíst 1 nám dává plnou kontrolu nad hodnotou druhého nejnižšího bitu: Poslední dvě cifry binárního rozvoje x i (... 00) 2 (... 01) 2 (... 10) 2 (... 11) 2 x i + 1 (... 01) 2 (... 10) 2 (... 11) 2 (... 00) 2 x i 1 (... 11) 2 (... 00) 2 (... 01) 2 (... 10) 2 W14

Dvouúrovňové ±1 vkládání Značení: H je paritní matice [n, n m 1 ] 2 kódu C s průměrnou vzdáleností r a, relativní kapacitou α a efektivitou e. B je kódová kniha, která umožňuje vkládat m 2 bitů do nosiče délky n bitů, z nichž r a je suchých. x a y vektor nejnižších bitů nosiče a stegoobjektu. x a y vektor druhých nejnižších bitů nosiče a stegoobjektu. Zpráva má dvě části z F m 1 2 a z F m 2 2. Extrakce: z = Ext H (y ) a z = Ext B (y ). W15

Dvouúrovňové ±1 vkládání Vkládání: První zpráva bude vložena maticovým vkládáním y = Emb H (x, z ). Na pozicích, kde dochází ke změnám, jsme schopni ovlivnit druhý nejnižší bit. Tyto označíme jako suché S = { i x i y i }; E[ S ] = r a. Druhá zpráva bude vložena metodou psaní na mokrý papír y = Emb B (x, S, z ). Stegoobjekt y se vytvoří z nosiče x změnami +1 nebo 1 tak, aby y byly nejnižší bity a y druhé nejnižší bity stegoobjektu. W16

Dvouúrovňové ±1 vkládání Relativní kapacita a efektivita: Efektivita kódu C je e = m 1 /r a, čili r a = m 1 /e. Podle věty o mokrém nosiči je m 2 S a víme, že S r a. Relativní kapacita a efektivita dvouúrovňového ±1 vkládání je tedy α ±1 = m 1 + m 2 n m 1 + m 1 /e n e ±1 = m 1 + m 2 m 1 + m 1 /e r a m 1 /e Zároveň si můžeme všimnout, že = α + α e, = e + 1. m1 α e = n m 1 r a = r m1+m2 a n = n m 1 +m 2 = α ±1. r a e ±1 W17

Dvouúrovňové ±1 vkládání Tvrzení Nechť C je binární kód, jehož efektivita dosahuje horní meze na spodní efektivitu binárních kódů. Potom dvouúrovňovým ±1 vkládání s kódem C lze dosáhnout efektivity libovolně blízké horní mezi na spodní efektivitu ternárních kódů, za předpokladu, že kód C je dostatečně dlouhý. W18

Dvouúrovňové ±1 vkládání Důkaz. Připomeňme, že H q (x) := x log q x (1 x) log q (1 x) + x log q (q 1). Dle předpokladu je e = α/h 1 2 (α), čili α = H 2(α/e). Dosadíme a upravíme ( α ) e α ±1 α + α e = H 2 + α e = (log 2 3)H 3 ( α e ) ( ) α±1 = (log 2 3)H 3. e ±1 Vyjádříme e ±1 α ±1 H 1 3 (α ±1/ log 2 3). W19

Stegosystém ZZW Značení: H 0 vzniká přidáním nulového sloupce k paritní matici Hammingova kódu délky 2 m 0 1. H 1 je paritní matice nějakého [b, b m 1 ] 2 kódu C s průměrnou vzdáleností od kódu r a. B je kódová kniha, která umožňuje vkládat m 2 bitů do nosiče délky bm 0 bitů, z nichž r a m 0 je suchých. Extrakce: 2 m 0 j=1 v y 1,j H 0 y 1 y 1,1 y 1,2... y 1,2 m 1 0 s 1,1 s 1,2... s 1,m0 2 m 0 j=1 v y 2,j H 0 y 2 y 2,1 y 2,2... y 2,2 m 2 0 s 2,1 s 2,2... s 2,m0 v....... 2 m 0...... j=1 v y b,j H 0 y b y b,1 y b,2... y b,2 m b 0 s b,1 s b,2... s b,m0 H 1 v Ext B (s) z 1 F m 1 2 z 2 F m 2 2 s W20

Stegosystém ZZW Zakódování první části zprávy: Nosič je rozdělen na b bloků velikosti 2 m 0. Pro každý blok spočteme u i = 2 m 0 j=1 x i,j. Zakódujeme první část zprávy v = Emb H1 (u, z 1 ). Jestliže u i = v i, pak y i = x i. Jestliže u i v i, pak y i získáme tak, že v x i provedeme právě jednu změnu. (Volba její pozice v bloku dává prostor k zakódování další zprávy.) Očekávaný počet změn je tedy r a. W21

Stegosystém ZZW Zakódování druhé části zprávy: Syndrom H 0 x i lze upravit na libovolnou hodnotu provedením právě jedné změny v x i. Pro každý blok spočteme r i = H 0 x i. Když u i = v i, označíme složky vektoru r i jako mokré, v opačném případě jako suché. Všechna r 1,..., r b sřetězíme do jediného vektoru r. Vektor r je mokrý nosič s očekávaným počtem suchých prvků r a m 0. Podle věty o mokrém nosiči lze do r vložit m 2 r a m 0 bitů informace. W22

Stegosystém ZZW Parametry stegosystému: Délka nosiče = b2 m 0. Celkový počet bitů zprávy = m 1 + m 2 m 1 + r a m 0. Očekávaný počet změn = r a. Relativní kapacita a efektivita: α m 1 + r a m 0 b2 m 0 a e m 1 + r a m 0 r a. W23

Stegosystém ZZW Zobecnění a vylepšení: Bloky nemusejí mít všechny stejnou délku 2 m 0. Zpráva z 1 se nemusí kódovat do u najednou. Lze postupovat po blocích. Můžeme použít dvouúrovňové ±1 vkládání. Místo binárních Hammingových kódů lze použít ternární. (Kód C však zůstává binární.) Dokonce i pro triviální kód C (tj. z 1 = v) dosahuje stegosystém ZZW výborných výsledků. W24

Triviální ZZW vs. perfektní kódy 10 3 10 2 10 1 1 3 Relativní kapacita α 0 5 10 15 Efektivita e ZZW bin. Hammingovy ±1 ZZW ter. Hammingovy semiternární ZZW binární Golayův ternární Golayův e(2, α) e(3, α) Odstup od obou mezí je < 0,6. W25