GSoC : Video decoding state tracker for Gallium3d
emeric.grange at gmail.com
Thu Mar 24 14:00:04 PDT 2011
My name is Emeric, I am a 22 years old french student, and I am
currently looking to apply to the google summer of code 2011.
I saw the "Gallium H.264 decoding" idea on the X.Org GSoC page, and I
am particularly interested by this project.
The idea would be to use shaders to do some work, in order to write a
generic video decoding solution, targeting r300g, r600g, nouveau, and
basically all Gallium3d drivers.
The project would be to write a state tracker wich expose some of the
most shaders-friendly decoding operations (like motion compensation,
idct, intra-predictions, deblocking filter and maybe vlc decoding)
through a common API like VDPAU or VA-API.
These APIs can be used to decode mpeg2, mpeg 4 asp/avc, vc1 and
others, but at first I intend to focus on the h264 decoding to save
time, because I know it better and it is currently widely in use, but
again the goal of the project is to be generic.
* I am well familiar with the h264 specification and implementation, I
can understand the amount of work required on that side.
* I have some understanding of how a graphic card works, what could be
and what should not be done with it, but I am not used to write
shaders programs. But hey, this is the fun part, and I am definitively
here to learn.
* As I see it there is no easy or magical gains when using shaders to
compute stuff like motion compensation or idct, but there are probably
some things that can be done to smooth over the decoding of high
Beside with the emergence of h265 in the next years, it seems that
there will be more and more computational power involved (bigger
transform size, much more intra and inter prediction schemes, insane
resolutions, ...), so I think spending some time preparing to that
could be a good idea.
Ok, so that being said, I do have some questions for you.
- First of all, does this project seems to be a good idea, would you
be interested in it ?
- As the time to realize this project will be quite limited, what
would be the tasks to achieve in priority ?
- What API would be better suited for the state tracker, vaapi or vdpau ?
- I understand my entry point into this project should be the g3dvl
state tracker and the mesa pipe-video branch, I'd like to learn more
about the state of these work.
- Should I cross-post this on xorg or xorg-devel maillist ? (I finally
cross-posted it, no answers yet on mesa-devel)
Thanks for reading me, and I want to apologies if some parts of this
mail are hard to understand, I am not an english native speaker,
mistakes may have been made :-)
If there is anything that I forgot or that I should detailed do not
hesitate to tell me.
More information about the xorg-devel