[MPlayer-dev-eng] dr2 implementation thoughts
Michael Niedermayer
michaelni at gmx.at
Wed Jul 17 01:39:32 CEST 2002
Hi
On Wednesday 17 July 2002 01:07, Arpi wrote:
[...]
> > 1) The vo driver could use AGP or otherwise specialized memcpy
> > routines to actually do the copying. Even for instance sending
> > accellerator commands to the video device to setup DMA copying of
> > just the changed blocks. Particularly useful would be the
> > capability of the MGA G200 driver to optimize its U/V plane
> > interleaving. With multiple calls to draw_slice, the copy order is
> > Y, UV, Y, UV, Y, UV, ..., which can't be good for the cache.
>
> yes, i proposed it in my mail today, including sample C implementation
imho yes its bad for the cache
but all other orders would mean more branch misspredictions so thats bad too,
ideally we should try all possible copy orderings on all cpus ...
>
> > 2) It could work with double buffering -- the vo driver would just
> > keep the changed macroblock masks from the previous frame and
> > bitwise merge them with the new ones, so as to copy every
> > macroblock that's changed in the last 2 frames.
>
> hmm, good point. we really need this to handle more than 1 buffers
ehh, lavc currently already exports a mb_skip table which contains 8-bit
values which are incremented for every skip and set to 0 otherwise, so we
only need to check mb_skip_table[...] >= buffer_count
[...]
Michael
More information about the MPlayer-dev-eng
mailing list