Module: libav
Branch: master
Commit: f21fb76b1be18036c93c3e29fe1889a9fabf30b3

Author:    Justin Ruggles <[email protected]>
Committer: Justin Ruggles <[email protected]>
Date:      Tue Jun 21 16:14:19 2011 -0400

ac3enc: remove a branch in asym_quant() by doing 2 shifts

---

 libavcodec/ac3enc.c |   12 +++---------
 1 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 1db6941..db45c83 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -1123,15 +1123,9 @@ static inline int sym_quant(int c, int e, int levels)
  */
 static inline int asym_quant(int c, int e, int qbits)
 {
-    int lshift, m, v;
+    int m, v;
 
-    lshift = e + qbits - 24;
-    if (lshift >= 0)
-        v = c << lshift;
-    else
-        v = c >> (-lshift);
-    /* rounding */
-    v = (v + 1) >> 1;
+    v = (((c << e) >> (24 - qbits)) + 1) >> 1;
     m = (1 << (qbits-1));
     if (v >= m)
         v = m - 1;

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to