Mercurial > libavcodec.hg
comparison ra144.c @ 6838:7d4031cba765 libavcodec
Simplify irms()
author | vitor |
---|---|
date | Wed, 21 May 2008 16:43:33 +0000 |
parents | 1acb9df14634 |
children | d17cae06e958 |
comparison
equal
deleted
inserted
replaced
6837:1acb9df14634 | 6838:7d4031cba765 |
---|---|
110 } | 110 } |
111 | 111 |
112 /* inverse root mean square */ | 112 /* inverse root mean square */ |
113 static int irms(const short *data, int factor) | 113 static int irms(const short *data, int factor) |
114 { | 114 { |
115 const short *p1, *p2; | 115 unsigned int i, sum = 0; |
116 unsigned int sum; | 116 |
117 | 117 for (i=0; i < BLOCKSIZE; i++) |
118 p2 = (p1 = data) + BLOCKSIZE; | 118 sum += data[i] * data[i]; |
119 for (sum=0; p2 > p1; p1++) | |
120 sum += (*p1) * (*p1); | |
121 | 119 |
122 if (sum == 0) | 120 if (sum == 0) |
123 return 0; /* OOPS - division by zero */ | 121 return 0; /* OOPS - division by zero */ |
124 | 122 |
125 return (0x20000000 / (t_sqrt(sum) >> 8)) * factor; | 123 return (0x20000000 / (t_sqrt(sum) >> 8)) * factor; |