[FFmpeg-devel] Google Summer of Code 2010 Small Task Orientation

Robert Swain robert.swain
Fri Mar 26 08:29:13 CET 2010


On 26/03/10 04:45, Marcelo Galv?o P?voa wrote:
> Thanks for the reply.
>
> 2010/3/25 Robert Swain<robert.swain at gmail.com>:
>> Hello,
>>
>> On 25/03/10 02:33, Ronald S. Bultje wrote:
>>>
>>> On Mar 24, 2010, at 8:45 PM, Marcelo Galv?o P?voa
>>> <marspeoplester at gmail.com>  wrote:
>>>>
>>>> Hello, I'm a student interested in participating in GSoC 2010 and I've
>>>> got interest in AMR-WB decoder project idea. However, I don't have
>>>> experience in codecs implementation and specification, although I'm
>>>> proficient in C language and general programming. I would like to know
>>>> if this project (or maybe one of the other decoders suggested, such as
>>>> WMA lossless or BSAC AAC) is suitable for beginners in this subject,
>>>> despite I'm ready to put whichever effort needed in learning about it. :)
>>
>> CELP-ish codecs like AMR-WB are simpler than WMA or AAC in my opinion so I
>> think it's better to start with such. One question - are you familiar with
>> fixed point maths?
>
> No, I've never worked with it.

OK, then I think we'll go the floating point route like a number of 
other Code-Excited Linear Prediction codecs we have implemented (QCELP, 
AMR-NB).

>>>> If so, I would appreciate an adequate Small Task suggestion for this
>>>> project. I've considered the "RealAudio 14.4 encoder", it is suitable?
>>>
>>> Robert is the projected mentor, you should discuss with him what
>>> qualification task would be suitable for this SoC project. Maybe an
>>> amrwb frame parser makes sense as qualification task?
>>
>> Yes, that's a good suggestion and would at least make some progress towards
>> the project as well as getting you, Marcelo, used to the way we work, the
>> specs and so on. You can catch me on IRC in #ffmpeg-devel on
>> irc.freenode.net. My nick is superdump.
>
> I've searched online a bit and couldn't find a
> specification/description of the codec internals, I guess it is
> because of patents. I don't know exactly what a "frame parser" is, so
> I am clueless about how to start it. However, I'm interested in giving
> it a try if you could point a way to help me develop the task.

The specs are all on 3gpp.org. You will need to register with them but 
an account is free. All the codec specs are here:

http://www.3gpp.org/ftp/Specs/html-info/26-series.htm

The AMR-WB specs of interest are:

General Description
http://www.3gpp.org/ftp/Specs/html-info/26171.htm

Transcoding functions:
http://www.3gpp.org/ftp/Specs/html-info/26190.htm

Frame structure:
http://www.3gpp.org/ftp/Specs/html-info/26201.htm

The last is of most interest for writing a frame parser.

Pretty much all codecs, audio and video alike, compress data in some 
kind of frame - that is, some data which represents the output at some 
point in the stream for some duration.

A frame parser for AMR-WB would have you write the basic skeleton for 
implementing a codec in libavcodec for FFmpeg and would have you read 
frames of data from the input, parsing it as specified in the provided 
documents into variables in some data structure in your code. You could 
even borrow ideas from the existing AMR-NB floating point decoder for this.

This may be a little outdated, but here's some documentation for how to 
write a skeleton for an AVCodec:

http://wiki.multimedia.cx/index.php?title=FFmpeg_codec_howto

I'm normally on IRC between 0900 and 1700 CET in #ffmpeg-devel on 
irc.freenode.net as mentioned before. But if I'm not around, feel free 
to e-mail me privately.

Best regards,
Rob



More information about the ffmpeg-devel mailing list