* Quantization bug fixed when using 9x7 DWT (comment keyword : quantizbug1)

* Multiplication bug fixed when dividing by 8192 (comment keyword : multbug1)
This commit is contained in:
Antonin Descampe
2004-07-13 09:17:17 +00:00
parent f50f66c0c9
commit bc563fc5ba
5 changed files with 48 additions and 10 deletions

View File

@@ -25,6 +25,7 @@
*/
#include "fix.h"
#include <math.h> //Add Antonin : multbug1
#ifdef WIN32
#define int64 __int64
@@ -35,7 +36,19 @@
/*
* Multiply two fixed-precision rational numbers.
*/
//int fix_mul(int a, int b)
//{
// return (int) ((int64) a * (int64) b >> 13);
//}
//Mod Antonin : multbug1
int fix_mul(int a, int b)
{
return (int) ((int64) a * (int64) b >> 13);
double tmp= (double) ((int64) a * (int64) b);
int64 v = (int64) ((fabs(tmp/8192.0)>=floor(fabs(tmp/8192.0))+0.5)?fabs(tmp/8192.0)+1.0:fabs(tmp/8192.0));
v = (tmp<0)?-v:v;
return (int) v;
}
//doM