Mercurial > libavcodec.hg
comparison ac3enc.c @ 87:6f0e167504e8 libavcodec
fixed symetric quantization (better quality!)
author | glantau |
---|---|
date | Sun, 16 Sep 2001 21:52:58 +0000 |
parents | bc27d8c5dc2e |
children | 5fc0c3af3fe4 |
comparison
equal
deleted
inserted
replaced
86:5e0eb8a361b7 | 87:6f0e167504e8 |
---|---|
840 static inline int sym_quant(int c, int e, int levels) | 840 static inline int sym_quant(int c, int e, int levels) |
841 { | 841 { |
842 int v; | 842 int v; |
843 | 843 |
844 if (c >= 0) { | 844 if (c >= 0) { |
845 v = (levels * (c << e)) >> 25; | 845 v = (levels * (c << e)) >> 24; |
846 v = (v + 1) >> 1; | |
846 v = (levels >> 1) + v; | 847 v = (levels >> 1) + v; |
847 } else { | 848 } else { |
848 v = (levels * ((-c) << e)) >> 25; | 849 v = (levels * ((-c) << e)) >> 24; |
850 v = (v + 1) >> 1; | |
849 v = (levels >> 1) - v; | 851 v = (levels >> 1) - v; |
850 } | 852 } |
851 assert (v >= 0 && v < levels); | 853 assert (v >= 0 && v < levels); |
852 return v; | 854 return v; |
853 } | 855 } |