2003 Wavelet Transform

download 2003 Wavelet Transform

of 17

Transcript of 2003 Wavelet Transform

  • 8/8/2019 2003 Wavelet Transform

    1/17

    Wavelet TransformWavelet TransformGroup 820Group 820

  • 8/8/2019 2003 Wavelet Transform

    2/17

    System ArchitectureSystem Architecture

    Haar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    3/17

    Haar Wavelet TransformHaar Wavelet Transform

    To calculate the Haar transform of an array of samples:

    1. Find the average of each pair of samples.

    2. Find the difference between the average and the samples.

    3. Fill the first half of the array with averages.

    4. Normalize

    5. Fill the second half of the array with differences.6. Recurse - repeat the process on the first half of the array.

    (Note: The array length should be a power of two)

    11 33 55 77

    1. Iteration

    2. Iteration

    1. 1+3 / 2 = 22. 1 - 2 = -1

    3. Insert

    4. Normalize

    5. Insert

    6. Recurse

    Signal

    -1

    -1-1

    -1

    6

    -2

    2

    4

    Haar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    4/17

    Haar Wavelet TransformHaar Wavelet Transform

    Signal 1

    3

    5

    7

    4

    -2

    -1

    -1

    2. Iteration

    Signal

    [ 1 3 5 7 ]

    Signal recreated from 2 coefficients

    [ 2 2 6 6 ]

    Haar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    5/17

    Haar BasisHaar Basis

    Lisa Haar Basis

    Haar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    6/17

    System ArchitectureSystem Architecture

    Haar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    7/17

  • 8/8/2019 2003 Wavelet Transform

    8/17

    EZWEZW Embedded Zerotree of Wavelet CoefficientsEmbedded Zerotree of Wavelet Coefficients

    Haar Transform

    EZW

    Arithmetic Coding

    Developed by Shapiro in 93 Enabled wavelet compression to compete with JPEG

    Builds on two observations:

    1. Large coefficients are most important (contains most

    information) and should be stored first.

    2. Magnitude of coefficients decrease as one moves

    from lower frequency subbands to higher frequencies.

    E: Embedded. Progressive algorithm

    Z: Zerotree. Quadtree data structure central to algorithm

    W: Wavelet. Designet specifically for wavelet compression

  • 8/8/2019 2003 Wavelet Transform

    9/17

    Why it worksWhy it worksHaar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    10/17

    How it worksHow it worksHaar Transform

    EZW

    Arithmetic Coding

    threshold = 2^(floor(lg(max(c)))

    do {

    dominant pass (encode PS,NS,ZT,IZ)

    subordinate pass (refinement of PS and NS)

    t /= 2

    } while (PSNR < T1 && BITRATE < T2);

    Decode algorithm similar

    EBCOT used in JPEG2000 uses similar

    algorithm

  • 8/8/2019 2003 Wavelet Transform

    11/17

    System ArchitectureSystem Architecture

    Haar Transform

    EZW

    Arithmetic Coding

  • 8/8/2019 2003 Wavelet Transform

    12/17

    Arithmetic CodingArithmetic CodingHaar Transform

    EZW

    Arithmetic Coding

    A symbol with the probability of 0.4 should ideally be

    encoded with 1.32 bits.

    Arithmetic Coding assigns one long code to entire stream!

  • 8/8/2019 2003 Wavelet Transform

    13/17

    Arithmetic CodingArithmetic Coding Encoding stepEncoding step Haar Transform

    EZW

    Arithmetic Coding

    Divide the interval of [0;1) into subintervals based on theprobabilities of the individual symbols

    Based on the symbol read from the input stream, select the

    corresponding interval

    Divide this interval further into subinterval still based on

    probabilities of the symbols

    Repeat the last two steps until the end of input stream

  • 8/8/2019 2003 Wavelet Transform

    14/17

    Arithmetic CodingArithmetic Coding Example of the encodingExample of the encoding Haar Transform

    EZW

    Arithmetic Coding

    Input: ABAABB

    p(A)=0.5 and p(B) = 0.5

    As interval [0;0.5)

    Bs interval [0.5;1)

    Upper and lower determines current interval

    A1: lower = 0, upper = 0.5

    B1: lower = 0.25, upper = 0.5

    ..

    B3: lower = 0.34375, upper = 0.375

  • 8/8/2019 2003 Wavelet Transform

    15/17

    Arithmetic CodingArithmetic Coding Example of the encodingExample of the encoding Haar Transform

    EZW

    Arithmetic Coding

    Final interval: [0.34375;0.375)

    We choose 0.36 and throw away 0. -> 36 is a code for the

    string ABAABB

    =6 bit

  • 8/8/2019 2003 Wavelet Transform

    16/17

    Arithmetic CodingArithmetic Coding DecodingDecoding Haar Transform

    EZW

    Arithmetic Coding

    From the code the initial interval is determined

    For next symbol (Repeat until done):

    Subtract lower limit of previous

    Divide by width of subinterval

  • 8/8/2019 2003 Wavelet Transform

    17/17

    ResultResult

    513 48