[FFmpeg-cvslog] r10174 - trunk/doc/snow.txt

michael subversion
Tue Aug 21 21:23:00 CEST 2007


Author: michael
Date: Tue Aug 21 21:22:59 2007
New Revision: 10174

Log:
describe IDWT


Modified:
   trunk/doc/snow.txt

Modified: trunk/doc/snow.txt
==============================================================================
--- trunk/doc/snow.txt	(original)
+++ trunk/doc/snow.txt	Tue Aug 21 21:22:59 2007
@@ -246,11 +246,65 @@ Snow supports 2 wavelet transforms, the 
 transform and a integer approximation of the symmetric biorthogonal 9/7
 daubechies wavelet.
 
-5/3 Integer IDWT:
-FIXME
+2D IDWT (inverse discrete wavelet transform)
+--------------------------------------------
+The 2D IDWT applies a 2D filter recursively, each time combining the
+4 lowest frequency subbands into a single subband until only 1 subband
+remains.
+The 2D filter is done by first applying a 1D filter in the vertical direction
+and then applying it in the horizontal one.
+ ---------------    ---------------    ---------------    ---------------
+|LL0|HL0|       |  |   |   |       |  |       |       |  |       |       |
+|---+---|  HL1  |  | L0|H0 |  HL1  |  |  LL0  |  HL1  |  |       |       |
+|LH0|HH0|       |  |   |   |       |  |       |       |  |       |       |
+|-------+-------|->|-------+-------|->|-------+-------|->|   L1  |  H1   |->...
+|       |       |  |       |       |  |       |       |  |       |       |
+|  LH1  |  HH1  |  |  LH1  |  HH1  |  |  LH1  |  HH1  |  |       |       |
+|       |       |  |       |       |  |       |       |  |       |       |
+ ---------------    ---------------    ---------------    ---------------
+
+
+1D Filter:
+----------
+1. interleave the samples of the low and high frequency subbands like
+s={L0, H0, L1, H1, L2, H2, L3, H3, ... }
+note, this can end with a L or a H, the number of elements shall be w
+s[-1] shall be considered equivalent to s[1  ]
+s[w ] shall be considered equivalent to s[w-2]
+
+2. perform the lifting steps in order as described below
+
+5/3 Integer filter:
+1. s[i] -= (s[i-1] + s[i+1] + 2)>>2; for all even i < w
+2. s[i] += (s[i-1] + s[i+1]    )>>1; for all odd  i < w
+
+\ | /|\ | /|\ | /|\ | /|\
+ \|/ | \|/ | \|/ | \|/ |
+  +  |  +  |  +  |  +  |   -1/4
+ /|\ | /|\ | /|\ | /|\ |
+/ | \|/ | \|/ | \|/ | \|/
+  |  +  |  +  |  +  |  +   +1/2
+
+
+snows 9/7 Integer filter:
+1. s[i] -= (3*(s[i-1] + s[i+1])         + 4)>>3; for all even i < w
+2. s[i] -=     s[i-1] + s[i+1]                 ; for all odd  i < w
+3. s[i] += (   s[i-1] + s[i+1] + 4*s[i] + 8)>>4; for all even i < w
+4. s[i] += (3*(s[i-1] + s[i+1])            )>>1; for all odd  i < w
+
+\ | /|\ | /|\ | /|\ | /|\
+ \|/ | \|/ | \|/ | \|/ |
+  +  |  +  |  +  |  +  |   -3/8
+ /|\ | /|\ | /|\ | /|\ |
+/ | \|/ | \|/ | \|/ | \|/
+ (|  + (|  + (|  + (|  +   -1
+\ + /|\ + /|\ + /|\ + /|\  +1/4
+ \|/ | \|/ | \|/ | \|/ |
+  +  |  +  |  +  |  +  |   +1/16
+ /|\ | /|\ | /|\ | /|\ |
+/ | \|/ | \|/ | \|/ | \|/
+  |  +  |  +  |  +  |  +   +3/2
 
-snows 9/7 Integer IDWT:
-FIXME
 
 TODO:
 =====




More information about the ffmpeg-cvslog mailing list