Skip to content

Instantly share code, notes, and snippets.

@zobar
Last active June 7, 2022 00:40
Show Gist options
  • Save zobar/0497670444b3257768309f98b3eba0e0 to your computer and use it in GitHub Desktop.
Save zobar/0497670444b3257768309f98b3eba0e0 to your computer and use it in GitHub Desktop.
gpu wavelet reconstruction
https://github.com/graetz23/JWave/blob/master/src/jwave/transforms/wavelets/biorthogonal/BiOrthogonal.java
L'0 = -H0 H'0 = -L0
L'1 = H1 H'1 = L1
L'2 = -H2 H'2 = -L2
L'3 = H3 H'3 = L3
L'4 = -H4 H'4 = -L4
L'5 = H5 H'5 = L5
S0 S1 S2 S3 S4 S5
D0 D1 D2
A0 A1 A2
i=0 j=4 k=4 S4 = (D0 * L'4) + (A0 * H'4)
i=0 j=5 k=5 S5 = (D0 * L'5) + (A0 * H'5)
i=1 j=2 k=4 S4 += (D1 * L'2) + (A1 * H'2)
i=1 j=3 k=5 S5 += (D1 * L'3) + (A1 * H'3)
i=2 j=0 k=4 S4 += (D2 * L'0) + (A2 * H'0)
i=2 j=1 k=5 S5 += (D2 * L'1) + (A2 * H'1)
S4 = (D0 * L'4) + (D1 * L'2) + (D2 * L'0)
+ (A0 * H'4) + (A1 * H'2) + (A2 * H'0)
S5 = (D0 * L'5) + (D1 * L'3) + (D2 * L'1)
+ (A0 * H'5) + (A1 * H'3) + (A2 * H'1)
Truncate S0..S3
S0 = (D0 * L'4) + (D1 * L'2) + (D2 * L'0)
+ (A0 * H'4) + (A1 * H'2) + (A2 * H'0)
S1 = (D0 * L'5) + (D1 * L'3) + (D2 * L'1)
+ (A0 * H'5) + (A1 * H'3) + (A2 * H'1)
But if we reverse L' and H' so we always count up:
S0 = (D0 * L'1) + (D1 * L'3) + (D2 * L'5)
+ (A0 * H'1) + (A1 * H'3) + (A2 * H'5)
S1 = (D0 * L'0) + (D1 * L'2) + (D2 * L'4)
+ (A0 * H'0) + (A1 * H'2) + (A2 * H'4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment