[Mesa-dev] GSoC : Video decoding state tracker for Gallium3d

Aaron Watry awatry at gmail.com
Mon Apr 4 14:16:01 PDT 2011


Hi Emeric,

It doesn't affect your proposal too much, but I'd recommend changing
the order of your August tasks a bit. I would suggest trying to work
on the loop filter before the motion compensation.  A few of the 720p
and 1080p videos that I profiled during my thesis work suggested that
the loop filter was responsible for ~50-60% of the decoding time using
the C code paths (using cachegrind). I haven't profiled the assembly
code recently, so you might want to do that before taking my word as
truth.

If you check out the WebM Codec Developer mailing list archive, you
might be able to find a little of the discussion that we had on the
loop filter algorithm and how to make it more appropriate to a GPU.
The loop filter is much less branchy than the motion compensation as
well, so you might have an easier time with the loop filter.

If you need to look at my OpenCL code, you've already got the github
location. I also plan to push this work upstream in the future. I've
created OpenCL kernels for motion compensation, IDCT/Dequant, and loop
filtering. I haven't started intra-prediction, and most of the kernels
are not launching many threads (common case is under a hundred... I
spent too much time in my project adding the OpenCL infrastructure and
wasn't able to optimize the algorithms as well as I had hoped).

Also, the vpxdec utility that is included with the libvpx decoder has
a '--md5' command line option that helped out a lot for checking for
correctness of a decoder implementation. The WebM project has a git
repository that includes a conformance testing script which you can
also use.  If you are continually using this conformance testing suite
as part of your workflow, item K (debugging) will become a lot easier.

If you have any questions, feel free to email me.  I have a month of
class to finish up before graduation, but I plan on continuing to work
on this project in the meantime and after graduation).


More information about the mesa-dev mailing list