[theora-dev] [PATCH] thusnelda keyframe only speedup

xiphmont at xiph.org xiphmont at xiph.org
Tue Mar 18 11:20:38 PDT 2008

On Tue, Mar 18, 2008 at 2:14 PM, Philip Heron <phil at sanslogic.co.uk> wrote:
> xiphmont at xiph.org wrote:
>  > On Sat, Mar 15, 2008 at 4:01 PM, Philip Heron <phil at sanslogic.co.uk> wrote:
>  >> Hi all,
>  >>
>  >>  Attached is a trivial patch that speeds up encoding for key frame only
>  >>  streams. It skips the motion vector search which is not needed when
>  >>  there are never going to be any delta frames. It was made against
>  >>  thusnelda SVN revision 14589.
>  >
>  > The results of the current frame's (and previous frame's) MV search
>  > are needed by subsequent frames to seed constant speed and constant
>  > accelleration candidates.  That includes INTRA frames. This breaks
>  > that part of the analysis.
>  >
>  > It would be valid to skip MV analysis on scene-change INTRA frames so
>  > long as you also reset the persistent MV analysis state, but it is
>  > incorrect behavior for INTRA frames forced by the keyframe max
>  > interval.
>  Is it possible to skip MV analysis completly as a speedup, and still
>  produce a valid bitstream? Or am I barking up the wrong tree? I'm trying
>  to encode full screen video (720x576x25fps) in real time for
>  transmission on a LAN, so speed is more important than efficiency.

Valid, yes.  You'll just end up with partly nonsensical motion vectors
for the two frames after-- also, having low-quality candidate vectors
from a previous frame will slightly slow down the search in later
frames as the code may decide to 'throw away' the inadequate candidate
vectors and start a search from scratch.

If you want Thusnelda speed now, turn off halfpel MV and get ASM
replacements for BInterSAD* in place in mode.c.


More information about the theora-dev mailing list