[FFmpeg-devel] GSoC 2008: Snow

Marco Gerards mgerards
Mon Mar 24 15:53:52 CET 2008


As some of you might know, I am considering to apply for GSoC again.
Although I cannot make the promise that I will choose FFmpeg again (I
will also submit other applications, I want to be open about this),
one task in particular drawed my attention: Snow.  I had a look at
what has to be done and selected a certain subset.

For starters, I am not sure how much can be done during one summer.
So I am not sure if my selection is realistic.  Especially because the
tasks are design related and not limited to implementation only.
Reading papers and understanding things requires time, at least for a
mere mortal like me :-).  Here is the selected subset, I have added
some questions where things were not clear to me.

- More optimal quantization

What has to be done?  Choosing other weights and determine how the SNR
changes?  Or should I look into other algorithms/papers about this and
try them?

- Faster halfpel interpolation

This could be straightforward.  Perhaps I can reuse the code from
Dirac, after adapting it to Snow?

- Support for 4x4 blocksize

Perhaps I should look into variable block-size motion compensation?
Or is this supported already?

- 1/8th pel motion compensation

- Using wavelet transformed MC-ed reference frame as context for the
  entropy encoder.

- Iterative motion estimation based on subsampled images

With subsampling, I think of interpolation.  I noticed that iterative
motion estimation is implemented.  So should this be removed from the
TODO?  Otherwise I do not understand what has to be done...

- Use multiple threads

I guess this can become as hard as you want? :-)

- Different transforms like the Lapped Biorthogonal Transform (instead of wavelets)

Actually, I never heard about this transform.  Besides that, which
other transforms should be studied?  This sounds like a *VERY*
interesting subtask to me, although potentially time consuming.  How
important is this to any of you?

- Put more comments in the code and make the code easier to understand

Perhaps I am stupid, but I had a hard time understanding some of the
Snow code :-).  Although writing documentation is not allowed when
working on gsoc, I consider comments part of the code.

Furthermore, I noticed a range coder is used.  Is it worthwhile to
test something else like arithmetic coding?  From what I read,
arithmetic coding is optimal, but slower and patented.  What is the
design criterium of Snow?

If any of you have other ideas what has to be done, please tell me.
For me it is quite hard to estimate what subtasks are interesting and
which aren't.  I want to learn from this task, this will keep me
motivated long enough to devote some serious time and energy into
this.  OTOH, FFmpeg should make progress.


More information about the ffmpeg-devel mailing list