Mercurial > libavcodec.hg
comparison apedec.c @ 10639:4e0b0c0cb915 libavcodec
1-13% faster apply_filter, 1-3% faster ape decoding on core2
author | lorenm |
---|---|
date | Fri, 04 Dec 2009 15:12:09 +0000 |
parents | 40ff9c7958da |
children | 5da7180afadf |
comparison
equal
deleted
inserted
replaced
10638:40ff9c7958da | 10639:4e0b0c0cb915 |
---|---|
676 f->adaptcoeffs[-8] >>= 1; | 676 f->adaptcoeffs[-8] >>= 1; |
677 } else { | 677 } else { |
678 /* Version 3.98 and later files */ | 678 /* Version 3.98 and later files */ |
679 | 679 |
680 /* Update the adaption coefficients */ | 680 /* Update the adaption coefficients */ |
681 absres = (res < 0 ? -res : res); | 681 absres = FFABS(res); |
682 | 682 if (absres) |
683 if (absres > (f->avg * 3)) | 683 *f->adaptcoeffs = ((res & (1<<31)) - (1<<30)) >> (25 + (absres <= f->avg*3) + (absres <= f->avg*4/3)); |
684 *f->adaptcoeffs = ((res >> 25) & 64) - 32; | |
685 else if (absres > (f->avg * 4) / 3) | |
686 *f->adaptcoeffs = ((res >> 26) & 32) - 16; | |
687 else if (absres > 0) | |
688 *f->adaptcoeffs = ((res >> 27) & 16) - 8; | |
689 else | 684 else |
690 *f->adaptcoeffs = 0; | 685 *f->adaptcoeffs = 0; |
691 | 686 |
692 f->avg += (absres - f->avg) / 16; | 687 f->avg += (absres - f->avg) / 16; |
693 | 688 |