[Speex-dev] about Speex's PLC

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Wed Nov 19 04:36:06 PST 2008


後藤 由光 a écrit :
> I think I'm beginning to understand but can you clarify a bit more.
> 1) I am confused on "trade error-free quality" part. Basically the
>     encoder is doing something to the encoded data by looking at
>     the SPEEX_SET_PLC_TUNING parameter?

The higher the value of SPEEX_SET_PLC_TUNING, the less inter-frame
dependency there will be, so the lower the error-free quality. However,
at the same time, the de-synchonisation effect of losses is reduced, so
the quality with errors increases. But this parameter still only has a
small effect, so you're best not playing with it -- at least at first.

> 2) How does the receiver side determine whether the packet loss
>     occured or not? It seems only way is assigning timestamps or
>     some indexes to speex data at the encoding. Is this the case?

You need a timestamp and/or a sequence number like RTP has.

> I am currently testing using network emulator to simulate packet
> loss; but so far I can't really determine Speex's PLC is working or
> not. Maybe my implementation might be wrong...I'm just assigning
> SPEEX_SET_PLC_TUNING parameter and nothing else. If you can
> give me some inputs in this matter as well, I'll be greatful.

Forget about that parameter. The decoder doesn't magically know there's
been a loss (and even if it could, it wouldn't help). Every time there's
a lost packet you want to "decode" you call the decoder with NULL as the
"bits" parameter.

	Jean-Marc

> - Yoshi
>  
>> 後藤 由光 a écrit :
>> > I have read the mailing list archives and have a question regarding PLC
>> > (packet loss concealment).
>> > From my understanding, PLC is usually done on the receiving side but it
>> > seems Speex is doing PLC
>> > from the sender side. Sorry if I missed something but is there
>> > documentaions on how the PLC is
>> > done on Speex?
>>
>> No, there's no way to do PLC on the sender side. What you probably got
>> confused about is the SPEEX_SET_PLC_TUNING parameter on the encoder.
>> That's just a way to trade error-free quality for more packet loss
>> robustness. The PLC is still done on the decoder side by assing NULL to
>> the "bits" argument.
>>
>> Jean-Marc
> 
> ------------------------------------------------------------------------
> 紅葉、グルメ、旅行。秋の写真をカンタンに仲間と共有できる「SkyDrive」 マ
> イクロソフトの無料オンラインストレージを今すぐ使う
> <http://clk.atdmt.com/GBL/go/120402972/direct/01/>


More information about the Speex-dev mailing list