[FFmpeg-devel] GSoC 2008

Ramiro Polla ramiro
Wed Mar 19 22:33:37 CET 2008


Mike Melanson wrote:
> Ramiro Polla wrote:
>> Hello,
>> Mike Melanson wrote:
>>> We're running out of qualification tasks. I need to go create some more!
>> How about this one: Finish G.722.1 and siren decoding.
> Not bad...
>> This patch works for siren, but I haven't tested with the G.722.1. It
>> should work the same though.
>> Basically it'd involve (in separate patches):
>> - Split G.722.1 tables from cookdata.h into g7221data.h;
>> - Rename divergent tables as g7221_... and cook_...;
>> - Split G.722.1 functions from cook.c to g7221.c;
>> - Cleanly make cook call G.722.1's decoder instead of mono_decode;
>> - Clean all the #if 0 and // hacks;
>> - Fix the *22.0f hack;
> Can you explain this step better?

Something like adding qscale to CookContext, set it to 1.0 on Cook and 
22.0 on G.722.1. Then change the line
f1 = quant_centroid_tab[index][subband_coef_index[i]];
f1 = quant_centroid_tab[index][subband_coef_index[i]]*q->qscale;

>> - Implement a faster 320-point iMDCT.
> Seems a bit out of scope without more guidance. Otherwise, log it.

FFmpeg's imdct only works with 2^n input. In this hacked-up patch, I 
used imdct_ref from some other part of FFmpeg. It's painfully slow.

>> I've sent a sample to /MPlayer/incoming/siren/msnsiren.wav
> I suppose a more pertinent question is: Why aren't *you* doing this for
> a qual task? :) (You are aiming for SoC, right?)

Hey, I got Mimic in =)

The problem is that I halted in the imdct part =(. My math is not that 
good, and after some time fighting with math books I saw that I'd study 
this thoroughly next semester at University. So I decided to first learn 
to have some idea of what I was supposed to achieve, then implement it.

But if it's ok to leave imdct_ref() there for the moment, before someone 
else implements a proper imdct, I could clean up the patch (split 
G.722.1 from cook) as a second qualification task...

Ramiro Polla

More information about the ffmpeg-devel mailing list