[FFmpeg-devel] [PATCH] adpcm: Reset the ssd back to zero more often

Martin Storsjö martin
Sat Nov 20 07:59:25 CET 2010


On Sat, 20 Nov 2010, Michael Niedermayer wrote:

> On Thu, Nov 18, 2010 at 04:01:31PM +0200, Martin Storsjo wrote:
> > If using very large trellis sizes (e.g. -trellis 15), the frontier
> > is so large that the difference between the best and the worst
> > trellis node in the frontier is large enough to cause wraparound.
> > 
> 
> > Resetting at (1<<20) is enough to avoid the issue at -trellis 16
> 
> have you come to this conclusion by proof or by simply changing the
> threshold and seeing no problems?

By changing the threshold until there were no more problems with that 
particular sample - sorry, I should have mentioned that.

I think it can't be proven how often it needs to be reset. In the worst 
pathological case, the best trellis node has ssd 0 while the worst one has 
a ssd of 65535*65535 added in each generation, overflowing even if we'd 
subtract the best node's ssd each round.

The attached patch should avoid the issue properly regardless of how 
pathologically bad case it is, giving a small but tolerable slowdown. Do 
you think that is enough, or should that one be combined with this 
previous patch, resetting it to 0 more often (or perhaps even every round) 
to avoid this issue happening at all?

// Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-adpcm-Skip-samples-whose-ssd-calculation-has-wrapped.patch
Type: text/x-diff
Size: 1627 bytes
Desc: 
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101120/204b344f/attachment.patch>



More information about the ffmpeg-devel mailing list