If you are interested in what’s going with my RV decoder from GSoC 2007 then here are your answers.
What works:
- RV30 decoding mostly works
- RV40 decoding mostly works
- Pictures are quite recognizable
What needs to be resolved:
- RV40 loop filter
- RV30 loop filter (a bit easier)
- RV30 motion vectors in B-frames (sometimes they are a bit jumpy)
- RV30 chroma problems (colours are always moving to the upper left corner of the frame – incorrect rounding?)
- RV30 slice uniting problem (some splitted slices should be united by decoder – at least I know how and when to do this)
If you want to help with loop filter then loop at
loop filter work scheme (SVG, ~128Kb) and give your proposals on how it works.
Legend (macroblock is 4×4 subblocks, no borders as they will ruin this scheme):
- numbers at the top and left eddge – macroblock numbers
- black lines – subblock edges where loop filtering took place
- hex number at the top left corner of macroblock – coded block pattern, it’s red for intra types macroblocks and for P macroblocks with DC coeffs coded separately
- blue square – coded subblock
Any suggestions (and pointers to the information about H.264 loop filtering explained clearer than in standard) are welcome.
I’d like to finish it before starting my work on AAC encoder…
BTW, you can use ffmpeg-rv.patch from soc/rv40 repository to enable RV30/40 decoding in ffmpeg.

