Re: Hulp bij formule
Geplaatst: 31 mei 2014, 19:17
Een volledigere methode dan in het artikel:
In stap 4 bepaal je de toename van de bijdrage van elke element (i,j) aan mH als je bit (i,j) omflipt.
De elementen waarvoor Vb(i,j)==0 dragen W(i,j) bij,
de elementen waarvoor Vb(i,j)==1 dragen (2^r)-W(i,j) bij.
Zet deze waarden in een matrix A:
In A lees je nu direct af dat A(2,2) = 10, dus dat flippen van bit (2,2) de gewenste toename d = 10 geeft.
Voor dubbele bitflips ga je alle tweetallen elementen van A af en zoek je de tweetallen die samen opgeteld 10 of 26 (=10 mod 16) zijn.
Voorbeeld:
A(1,1) + A(2,1) = 15 + 11 = 26 = 10 mod 16.
Dus
Ib =
0 1 1 0
1 0 1 0
0 1 0 1
0 1 1 1
wordt
Ib' =
1 1 1 0
0 0 1 0
0 1 0 1
0 1 1 1
en ook dit levert
SUM( (Ib' XOR K) .* W) mod 16 = 13 = B
Je vindt op deze manier alle mogelijke tweetallen (i1,j1) en (i2,j2) die voldoen, en dat zijn er duidelijk meer dan in dat artikel via stap 6.
De verzamelingen Si (i = 0 t/m (2^r)-1) heb je hierbij niet meer nodig.
Mogelijk gebruiken ze de methode in het artikel omdat dat sneller is: alle tweetallen afgaan kost een tijd die kwadratisch evenredig met het aantal elementen (tijd = O(n^2)). Voor hele grote blokafmetingen en verwerken van heel veel figuren zal dit mogelijk te lang duren.
In stap 4 bepaal je de toename van de bijdrage van elke element (i,j) aan mH als je bit (i,j) omflipt.
De elementen waarvoor Vb(i,j)==0 dragen W(i,j) bij,
de elementen waarvoor Vb(i,j)==1 dragen (2^r)-W(i,j) bij.
Zet deze waarden in een matrix A:
In A lees je nu direct af dat A(2,2) = 10, dus dat flippen van bit (2,2) de gewenste toename d = 10 geeft.
Voor dubbele bitflips ga je alle tweetallen elementen van A af en zoek je de tweetallen die samen opgeteld 10 of 26 (=10 mod 16) zijn.
Voorbeeld:
A(1,1) + A(2,1) = 15 + 11 = 26 = 10 mod 16.
Dus
Ib =
0 1 1 0
1 0 1 0
0 1 0 1
0 1 1 1
wordt
Ib' =
1 1 1 0
0 0 1 0
0 1 0 1
0 1 1 1
en ook dit levert
SUM( (Ib' XOR K) .* W) mod 16 = 13 = B
Je vindt op deze manier alle mogelijke tweetallen (i1,j1) en (i2,j2) die voldoen, en dat zijn er duidelijk meer dan in dat artikel via stap 6.
De verzamelingen Si (i = 0 t/m (2^r)-1) heb je hierbij niet meer nodig.
Mogelijk gebruiken ze de methode in het artikel omdat dat sneller is: alle tweetallen afgaan kost een tijd die kwadratisch evenredig met het aantal elementen (tijd = O(n^2)). Voor hele grote blokafmetingen en verwerken van heel veel figuren zal dit mogelijk te lang duren.