Robin Siegemund | 26 Nov 12:18 2007
Picon

AW: 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 | 26 Nov 13:04 2007

Re: AW: 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
Ralph Giles | 26 Nov 20:44 2007

Re: Controlling the vorbis encoder precisely

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 streams

2 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

Gmane