[xiph-rtp] Chaining Theora codebook changes
David Barrett
dbarrett at quinthar.com
Mon May 23 00:20:39 PDT 2005
Ah, good. Thanks!
On Mon, 23 May 2005 12:18 am, Ralph Giles wrote:
> On Sun, May 22, 2005 at 03:35:40PM -0700, David Barrett wrote:
>
>> I'm sorry, let me clarify. It's my assumption that the codebook is
>> used to initialize the internal state of the decoder, and then each
>> frame modifies that internal state. So, if I switch from codebook 0
>> to codebook 1, and then back to codebook 0, I have two options:
>>
>> 1) Destroy and recreate a decoder using codebook 0, thereby resetting
>> its internal state.
>>
>> 2) Reuse the original decoder, thereby continuing on with the internal
>> state that has already been accumulated.
>
> Aha. So there are two things. The codebook does indeed initialize
> internal state, but that state is orthogonal to the state changes
> induced by decoding data packets.
>
> The state related to frame decode consists soley of the previous
> decoded frame, and the previous keyframe (if different). So you
> will get incorrect results if you begin decoding anywhere but
> a keyframe, but decoding frames (key or otherwise) does not affect
> the state associated with decoding the header packets (codebook).
>
> So your options (1) and (2) behave identically, except with respect
> to the specific variety of bad output you'd get if you didn't
> restart decoding under codebook 0 with a keyframe. If you do
> start with a keyframe, as you should, there's no difference,
> and it's just a question of convenience and memory footprint.
>
> -r
More information about the xiph-rtp
mailing list