Robin Siegemund
2007-Nov-26 03:50 UTC
AW: [Vorbis-dev] Controlling the vorbis encoder precisely
Ok, related to the replys from Eric and Monty there are 3 possible solutions - 1. use lossless encoding like FLAC - 2. insert large chunks of silence between the wave sounds - 3. use completely seperate chained streams -> 1. Flac can't be used because of disk space and bandwidth limitations. -> 2. I also tried this variant but in that case my sounds don't start immediately because there's always some preceding silent and additional delays before hearing the sound are not acceptable. -> 3. Seperate streams mean additional overhead because every sound gets its own header pages. I'm going to use 40.000 sounds (a word dictionary) in one file so about 40.000*3KB=120MB would be wasted for redundant data. But what happens if I chain seperate streams of the same format but skipping their headers (except the first one)?. If this approach would do it why there's no vorbis function to reset the whole encoding process like having a new stream? Robin
Erik de Castro Lopo
2007-Nov-26 04:59 UTC
AW: [Vorbis-dev] Controlling the vorbis encoder precisely
Robin Siegemund wrote:> -> 3. Seperate streams mean additional overhead because every sound > gets its own header pages. I'm going to use 40.000 sounds (a word > dictionary) in one file so about 40.000*3KB=120MB would be wasted > for redundant data.If its speech, why aren't you using libspeex? http://www.speex.org/ Erik -- ----------------------------------------------------------------- Erik de Castro Lopo ----------------------------------------------------------------- "In civilian equipment, such as computers, the number of components alone makes miniaturization essential if the computer is to be housed in a reasonable-sized building." Electronics Oct. 1, 1957, p. 178
On Mon, Nov 26, 2007 at 12:18:08PM +0100, Robin Siegemund wrote:> - 1. use lossless encoding like FLAC > - 2. insert large chunks of silence between the wave sounds > - 3. use completely seperate chained streams2 is cheaper than 3 which is cheaper than one, as far as storage space goes. Speex is much cheaper than any of them.> -> 3. Seperate streams mean additional overhead because every sound gets its own header pages. I'm going to use 40.000 sounds (a word dictionary) in one file so about 40.000*3KB=120MB would be wasted for redundant data. > But what happens if I chain seperate streams of the same format but skipping their headers (except the first one)?. If this approach would do it why there's no vorbis function to reset the whole encoding process like having a new stream?Chaining separate streams with identical headers and removing the headers will probably be glitchy. However, since you have seek table anyway, you can just store them that way, and then reset the decoder and feed it a copy of the headers when you decode each word. Extra code and non-standard, but will do what you want with no extra overhead. HTH, -r