Averaging preprocessor

Jarno Elonen <[email protected]> Tue, 17 Dec 2002 20:48:24 +0200
Newsgroups gmane.comp.multimedia.ogg.tarkin.devel
Message-ID <[email protected]>
Hi,

I've been thinking of a little preprocessing method that would make video=
=20
material (and especially animation) more efficient to compress:

  a) divide the stream into blocks
  c) for each block, decide if the contents is still essentially
     the same as in last N frames (i.e. nothing has occluded the
     picture, picture has not moved and there has not been a cut
     in the video)
  d) if so, add block's values to those last N frame's
  e) if not, calculate an average and use it to replace all
     blocks that contributed to it

If done well, this should reduce noise significantly from mostly static f=
rames=20
and thus reduce unnecessary re-encoding of blocks that didn't really chan=
ge.=20
It of course requires an extra pass, or if applied in real time, a buffer=
 for=20
the N frames.

Step d) is obviously the most difficult one to get right. The block shoul=
d=20
probably be pretty large to filter out small local noise and they could=20
overlap (+ be partially alpha blended in step e) to prevent sharp borders=
=20
between them.

Of course, it would also be nice to take small motion (camera shaking etc=
)=20
into account while averaging, but I don't know if it could be made accura=
te=20
enough - even though the blocks would be larger than in usual MC.

Anyone tried such filtering before?

- Jarno
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to '[email protected]'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.