[Ffmpeg-devel] VP3 Slice Decoding

Mike Melanson mike
Sat May 21 07:29:17 CEST 2005

	Tonight, I deployed slice-based fragment rendering in the VP3 decoder. 
Further, I moved the loop filter up into the new render_slice() 
function. I was going to filter rows of fragments when I realized that I 
could just apply the loop filter after each fragment is decoded and 
placed into the output buffer. I hope there is no problem with that 
logic that I did not anticipate.

	I have not profiled any of this as I am just taking it on faith that it 
should be faster. :) Plus, I have not hooked up the slice dispatch 
feature because A) I do not know the protocol syntax and B) I have no 
means to test it (or does FFmpeg use it internally?). Anyway, if someone 
would like to make the slice dispatch work, I wrote this algorithmic 
note at the end of render_slice():

      /* this looks like a good place for slice dispatch... */
      /* algorithm:
       *   if (slice == s->macroblock_height - 1)
       *     dispatch (both last slice & 2nd-to-last slice);
       *   else if (slice > 0)
       *     dispatch (slice - 1);

I am assuming it is possible to output 2 slices in the case of the last 
slice render operation.

	Have fun. I hope that this is the magic bullet that solves the 
performance problems, although I am confident we will still find more 
problems. :)

	-Mike Melanson

More information about the ffmpeg-devel mailing list