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.