HydrogenAudio

Lossless Audio Compression => WavPack => Topic started by: pi_jom on 2009-08-13 13:11:03

Title: Question about low-lantency
Post by: pi_jom on 2009-08-13 13:11:03
Hello!
      I have downloaded the low-lantency ,while i set the blocksize=2000, and sub-blocksize=32 ,
       
      i think the encoder will run like this :  first  compress 2000 /frame and then  32 /frame;

---------------------------------------------  but the fact is ,  it still need to pack 2000 / frame.
      |  2000      |  32  | 32  | 32  |.......   
---------------------------------------------  am i misunderstanding it?   
                                                         
    And  the command is    "-b320 --blocksize=2000 --sub-blocks=32  1.wav 1.wv"
Title: Question about low-lantency
Post by: bryant on 2009-08-13 21:27:52
Yes, you are misunderstanding it a little. The parameters that you are using will create blocks with 64000 samples per block (2000 * 32)! However, the encoder will compress 2000 samples at a time and provide those to the application, so the effective latency is 2000 samples. Every 64000 samples (32 of these “sub blocks”) the encoder will terminate the large “super block” and start over.

I suspect that is not what you want, because even the regular encoder is efficient with 2000 samples per block. If you want the sample latency to be 32 samples, try --blocksize=32 and --sub-blocks=32. This will process the samples 32 at a time, and every 1024 samples will start a new “super block”.

Hope this makes more sense... 
Title: Question about low-lantency
Post by: pi_jom on 2009-08-14 02:03:33
Yes, you are misunderstanding it a little. The parameters that you are using will create blocks with 64000 samples per block (2000 * 32)! However, the encoder will compress 2000 samples at a time and provide those to the application, so the effective latency is 2000 samples. Every 64000 samples (32 of these “sub blocks”) the encoder will terminate the large “super block” and start over.

I suspect that is not what you want, because even the regular encoder is efficient with 2000 samples per block. If you want the sample latency to be 32 samples, try --blocksize=32 and --sub-blocks=32. This will process the samples 32 at a time, and every 1024 samples will start a new “super block”.

Hope this makes more sense... 


O i see, Thanks very much !  It would really help a lot.