Kompresja motyla
Kompresja motyla – kompresja stosowana w algorytmie COMP128. Nazwa pochodzi od angielskiego butterfly compression. Na wejściu jest 512 8-bitowych elementów, a po kompresji otrzymuje się 32 elementy, każdy po 4 bity.
Sposób działania pokazuje poniższy rysunek, a także pseudo-kod zamieszczony pod nim:
// j - obecny poziom for j = 0 to 4 { for k = 0 to (2 ^ j) - 1 { for l = 0 to 2 ^ (4 - j) - 1 { m = 1 + k2 ^ (5 - j) n = m + 2 ^ (4 - j) y = (x[m] + 2x[n]) mod 2 ^ (9 - j) z = (2x[m] + x[n]) mod 2 ^ (9 - j) x[m] = T[j][y] x[n] = T[j][z] } } }