Results 1 to 6 of 6

Thread: Simple WAV Delta Filter

  1. #1
    Member
    Join Date
    Aug 2011
    Location
    Canada
    Posts
    113
    Thanks
    9
    Thanked 22 Times in 15 Posts

    Simple WAV Delta Filter

    WavDelta is a simple filter for .wav files which reduces the size of the file header and delta codes the sound data. It works for .wav files in PCM format at any sample rate and most bit depths. It may not be completely lossless for all files, since it simplifies the file header and rebuilds it during decoding. I've included the full project and vb.net source code with the executable.

    Code:
    music.wav (44,285,996 bytes) ->             7z -> 38,007,792 bytes
    music.wav (44,285,996 bytes) -> WavDelta -> 7z -> 30,788,582 bytes
    Attached Files Attached Files

  2. #2
    Member Karhunen's Avatar
    Join Date
    Dec 2011
    Location
    USA
    Posts
    91
    Thanks
    2
    Thanked 1 Time in 1 Post
    Is this similar to the delta filter for XZ tools ( lzma2 ) ?

  3. #3
    Member
    Join Date
    Aug 2011
    Location
    Canada
    Posts
    113
    Thanks
    9
    Thanked 22 Times in 15 Posts
    XZ seems to implement a general delta filter for data, whereas WavDelta is specifically for .wav files. The delta filter in WavDelta is different since it interprets the input data as variable length integers rather than multiple channels of bytes.

    I've attached a program which uses a similar method to the XZ delta filter.

    Code:
    CHDelta:4+lzma   31,632,985 bytes
    delta:4+lzma     31,632,639 bytes
    WavDelta+lzma    30,788,582 bytes
    Attached Files Attached Files

  4. #4
    Member Skymmer's Avatar
    Join Date
    Mar 2009
    Location
    Russia
    Posts
    681
    Thanks
    37
    Thanked 168 Times in 84 Posts
    A small test on 4 Hero '2004 - The Remix Album - Volume 1. CD1 being converted to one WAV file.
    LZMA means lzma:a1:mfbt4:d30:fb64.

    Code:
    Original                 834 722 612
    LZMA                     731 934 490
    7z f=delta:4 + LZMA      632 536 681
    WavDelta + LZMA          624 986 238
    MM + LZMA                624 971 152
    MM -r1 + LZMA            595 848 603
    Bulat's MM is unbeatable here

  5. #5
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    4,497
    Thanks
    733
    Thanked 659 Times in 354 Posts
    btw, it may be used via fazip:

    fazip mm:r1 <infile >outfile

    or even

    fazip mm:r1+lzma <infile >outfile

    unfortunately, there is no 64-bit compilation of fazip yet

    MM homepage: http://freearc.org/Research.aspx
    Discussion: http://encode.ru/threads/835
    Last edited by Bulat Ziganshin; 5th February 2012 at 22:07.

  6. #6
    Member
    Join Date
    Aug 2011
    Location
    Canada
    Posts
    113
    Thanks
    9
    Thanked 22 Times in 15 Posts
    Thanks for the benchmark, it seems that MM is a much better preprocessor. Excellent work as always, Bulat .

Similar Threads

  1. disasm-based executable's filter
    By Bulat Ziganshin in forum Data Compression
    Replies: 17
    Last Post: 22nd March 2010, 16:14
  2. Wav Compression in Freearc, from TTA to TAK ?
    By eleria in forum Data Compression
    Replies: 10
    Last Post: 4th February 2010, 22:14
  3. Need god PCM compressor/filter
    By SvenBent in forum Data Compression
    Replies: 10
    Last Post: 8th July 2008, 15:52
  4. About filter
    By vcore in forum Forum Archive
    Replies: 4
    Last Post: 22nd January 2008, 13:45
  5. TTA - very promising lossless WAV packer
    By Bulat Ziganshin in forum Forum Archive
    Replies: 12
    Last Post: 27th March 2007, 13:12

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •