Skip to content

Commit 4fcd0b1

Browse files
committed
REFAC: Simplify arch macros
1 parent 4421c17 commit 4fcd0b1

File tree

6 files changed

+108
-122
lines changed

6 files changed

+108
-122
lines changed

src/_renamenoise_fft_guts.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@
101101

102102
#define RENAMENOISE_FFT_COS(phase) (renamenoise_fft_scalar) cos(phase)
103103
#define RENAMENOISE_FFT_SIN(phase) (renamenoise_fft_scalar) sin(phase)
104-
#define RENAMENOISE_HALF_OF(x) ((x) *.5f)
105104

106105
#define renamenoise_kf_cexp(x, phase) \
107106
do { \

src/arch.h

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -129,26 +129,14 @@ static RENAMENOISE_INLINE int renamenoise_isnan(float x) {
129129
#define RENAMENOISE_VERY_SMALL 1e-30f
130130
#define RENAMENOISE_VERY_LARGE16 1e15f
131131

132-
#define RENAMENOISE_NEG32_ovflw(x) (-(x))
132+
#define RENAMENOISE_HALF(x) (.5f * (x))
133133

134-
#define RENAMENOISE_HALF16(x) (.5f * (x))
135-
#define RENAMENOISE_HALF32(x) (.5f * (x))
134+
#define RENAMENOISE_ADD(a, b) ((a) + (b))
135+
#define RENAMENOISE_SUB(a, b) ((a) - (b))
136136

137-
#define RENAMENOISE_ADD32(a, b) ((a) + (b))
138-
#define RENAMENOISE_SUB32(a, b) ((a) - (b))
139-
#define RENAMENOISE_ADD32_ovflw(a, b) ((a) + (b))
140-
#define RENAMENOISE_SUB32_ovflw(a, b) ((a) - (b))
137+
#define RENAMENOISE_MAC(c, a, b) ((c) + (renamenoise_val32) (a) * (renamenoise_val32) (b))
141138

142-
#define RENAMENOISE_MULT16_16(a, b) ((renamenoise_val32) (a) * (renamenoise_val32) (b))
143-
144-
#define RENAMENOISE_MAC16_16(c, a, b) ((c) + (renamenoise_val32) (a) * (renamenoise_val32) (b))
145-
146-
#define RENAMENOISE_MULT16_32_Q15(a, b) ((a) * (b))
147-
#define RENAMENOISE_MULT16_32_Q16(a, b) ((a) * (b))
148-
149-
#define RENAMENOISE_MULT32_32_Q31(a, b) ((a) * (b))
150-
151-
#define RENAMENOISE_MULT16_16_Q15(a, b) ((a) * (b))
139+
#define RENAMENOISE_MULT(a, b) ((a) * (b))
152140

153141
#if __STDC_VERSION__ < 199901L || (__STDC_VERSION__ > 201000L && __STDC_NO_VLA__ == 1)
154142
# define RENAMENOISE_NO_VLA

src/pitch.c

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ static void renamenoise_find_best_pitch(renamenoise_val32 *xcorr, renamenoise_va
5858
best_pitch[0] = 0;
5959
best_pitch[1] = 1;
6060
for (j = 0; j < len; j++) {
61-
Syy = RENAMENOISE_ADD32(Syy, RENAMENOISE_MULT16_16(y[j], y[j]));
61+
Syy = RENAMENOISE_ADD(Syy, RENAMENOISE_MULT(y[j], y[j]));
6262
}
6363
for (i = 0; i < max_pitch; i++) {
6464
if (xcorr[i] > 0) {
@@ -67,9 +67,9 @@ static void renamenoise_find_best_pitch(renamenoise_val32 *xcorr, renamenoise_va
6767
xcorr16 = xcorr[i];
6868
// Considering the range of xcorr16, this should avoid both underflows and overflows (inf) when squaring xcorr16
6969
xcorr16 *= 1e-12f;
70-
num = RENAMENOISE_MULT16_16_Q15(xcorr16, xcorr16);
71-
if (RENAMENOISE_MULT16_32_Q15(num, best_den[1]) > RENAMENOISE_MULT16_32_Q15(best_num[1], Syy)) {
72-
if (RENAMENOISE_MULT16_32_Q15(num, best_den[0]) > RENAMENOISE_MULT16_32_Q15(best_num[0], Syy)) {
70+
num = RENAMENOISE_MULT(xcorr16, xcorr16);
71+
if (RENAMENOISE_MULT(num, best_den[1]) > RENAMENOISE_MULT(best_num[1], Syy)) {
72+
if (RENAMENOISE_MULT(num, best_den[0]) > RENAMENOISE_MULT(best_num[0], Syy)) {
7373
best_num[1] = best_num[0];
7474
best_den[1] = best_den[0];
7575
best_pitch[1] = best_pitch[0];
@@ -83,7 +83,7 @@ static void renamenoise_find_best_pitch(renamenoise_val32 *xcorr, renamenoise_va
8383
}
8484
}
8585
}
86-
Syy += RENAMENOISE_MULT16_16(y[i + len], y[i + len]) - RENAMENOISE_MULT16_16(y[i], y[i]);
86+
Syy += RENAMENOISE_MULT(y[i + len], y[i + len]) - RENAMENOISE_MULT(y[i], y[i]);
8787
Syy = RENAMENOISE_MAX32(1, Syy);
8888
}
8989
}
@@ -104,11 +104,11 @@ static void renamenoise_fir5(const renamenoise_val16 *x, const renamenoise_val16
104104
mem4 = mem[4];
105105
for (i = 0; i < N; i++) {
106106
renamenoise_val32 sum = x[i];
107-
sum = RENAMENOISE_MAC16_16(sum, num0, mem0);
108-
sum = RENAMENOISE_MAC16_16(sum, num1, mem1);
109-
sum = RENAMENOISE_MAC16_16(sum, num2, mem2);
110-
sum = RENAMENOISE_MAC16_16(sum, num3, mem3);
111-
sum = RENAMENOISE_MAC16_16(sum, num4, mem4);
107+
sum = RENAMENOISE_MAC(sum, num0, mem0);
108+
sum = RENAMENOISE_MAC(sum, num1, mem1);
109+
sum = RENAMENOISE_MAC(sum, num2, mem2);
110+
sum = RENAMENOISE_MAC(sum, num3, mem3);
111+
sum = RENAMENOISE_MAC(sum, num4, mem4);
112112
mem4 = mem3;
113113
mem3 = mem2;
114114
mem2 = mem1;
@@ -131,14 +131,14 @@ void renamenoise_pitch_downsample(renamenoise_sig *x[], renamenoise_val16 *x_lp,
131131
renamenoise_val16 lpc2[5];
132132
renamenoise_val16 c1 = .8f;
133133
for (i = 1; i < (len >> 1); i++) {
134-
x_lp[i] = RENAMENOISE_HALF32(RENAMENOISE_HALF32(x[0][(2 * i - 1)] + x[0][(2 * i + 1)]) + x[0][2 * i]);
134+
x_lp[i] = RENAMENOISE_HALF(RENAMENOISE_HALF(x[0][(2 * i - 1)] + x[0][(2 * i + 1)]) + x[0][2 * i]);
135135
}
136-
x_lp[0] = RENAMENOISE_HALF32(RENAMENOISE_HALF32(x[0][1]) + x[0][0]);
136+
x_lp[0] = RENAMENOISE_HALF(RENAMENOISE_HALF(x[0][1]) + x[0][0]);
137137
if (C == 2) {
138138
for (i = 1; i < (len >> 1); i++) {
139-
x_lp[i] += RENAMENOISE_HALF32(RENAMENOISE_HALF32(x[1][(2 * i - 1)] + x[1][(2 * i + 1)]) + x[1][2 * i]);
139+
x_lp[i] += RENAMENOISE_HALF(RENAMENOISE_HALF(x[1][(2 * i - 1)] + x[1][(2 * i + 1)]) + x[1][2 * i]);
140140
}
141-
x_lp[0] += RENAMENOISE_HALF32(RENAMENOISE_HALF32(x[1][1]) + x[1][0]);
141+
x_lp[0] += RENAMENOISE_HALF(RENAMENOISE_HALF(x[1][1]) + x[1][0]);
142142
}
143143

144144
_renamenoise_autocorr(x_lp, ac, NULL, 0, 4, len >> 1);
@@ -153,15 +153,15 @@ void renamenoise_pitch_downsample(renamenoise_sig *x[], renamenoise_val16 *x_lp,
153153

154154
_renamenoise_lpc(lpc, ac, 4);
155155
for (i = 0; i < 4; i++) {
156-
tmp = RENAMENOISE_MULT16_16_Q15(.9f, tmp);
157-
lpc[i] = RENAMENOISE_MULT16_16_Q15(lpc[i], tmp);
156+
tmp = RENAMENOISE_MULT(.9f, tmp);
157+
lpc[i] = RENAMENOISE_MULT(lpc[i], tmp);
158158
}
159159
// Add a zero
160160
lpc2[0] = lpc[0] + .8f;
161-
lpc2[1] = lpc[1] + RENAMENOISE_MULT16_16_Q15(c1, lpc[0]);
162-
lpc2[2] = lpc[2] + RENAMENOISE_MULT16_16_Q15(c1, lpc[1]);
163-
lpc2[3] = lpc[3] + RENAMENOISE_MULT16_16_Q15(c1, lpc[2]);
164-
lpc2[4] = RENAMENOISE_MULT16_16_Q15(c1, lpc[3]);
161+
lpc2[1] = lpc[1] + RENAMENOISE_MULT(c1, lpc[0]);
162+
lpc2[2] = lpc[2] + RENAMENOISE_MULT(c1, lpc[1]);
163+
lpc2[3] = lpc[3] + RENAMENOISE_MULT(c1, lpc[2]);
164+
lpc2[4] = RENAMENOISE_MULT(c1, lpc[3]);
165165
renamenoise_fir5(x_lp, lpc2, x_lp, len >> 1, mem);
166166
}
167167

@@ -236,9 +236,9 @@ void renamenoise_pitch_search(const renamenoise_val16 *x_lp, renamenoise_val16 *
236236
a = xcorr[best_pitch[0] - 1];
237237
b = xcorr[best_pitch[0]];
238238
c = xcorr[best_pitch[0] + 1];
239-
if ((c - a) > RENAMENOISE_MULT16_32_Q15(.7f, b - a)) {
239+
if ((c - a) > RENAMENOISE_MULT(.7f, b - a)) {
240240
offset = 1;
241-
} else if ((a - c) > RENAMENOISE_MULT16_32_Q15(.7f, b - c)) {
241+
} else if ((a - c) > RENAMENOISE_MULT(.7f, b - c)) {
242242
offset = -1;
243243
} else {
244244
offset = 0;
@@ -282,7 +282,7 @@ renamenoise_val16 renamenoise_remove_doubling(renamenoise_val16 *x, int maxperio
282282
yy_lookup[0] = xx;
283283
yy = xx;
284284
for (i = 1; i <= maxperiod; i++) {
285-
yy = yy + RENAMENOISE_MULT16_16(x[-i], x[-i]) - RENAMENOISE_MULT16_16(x[N - i], x[N - i]);
285+
yy = yy + RENAMENOISE_MULT(x[-i], x[-i]) - RENAMENOISE_MULT(x[N - i], x[N - i]);
286286
yy_lookup[i] = RENAMENOISE_MAX32(0, yy);
287287
}
288288
yy = yy_lookup[T0];
@@ -310,22 +310,22 @@ renamenoise_val16 renamenoise_remove_doubling(renamenoise_val16 *x, int maxperio
310310
T1b = (2 * renamenoise_second_check[k] * T0 + k) / (2 * k);
311311
}
312312
renamenoise_dual_inner_prod(x, &x[-T1], &x[-T1b], N, &xy, &xy2);
313-
xy = RENAMENOISE_HALF32(xy + xy2);
314-
yy = RENAMENOISE_HALF32(yy_lookup[T1] + yy_lookup[T1b]);
313+
xy = RENAMENOISE_HALF(xy + xy2);
314+
yy = RENAMENOISE_HALF(yy_lookup[T1] + yy_lookup[T1b]);
315315
g1 = renamenoise_compute_pitch_gain(xy, xx, yy);
316316
if (abs(T1 - prev_period) <= 1) {
317317
cont = prev_gain;
318318
} else if (abs(T1 - prev_period) <= 2 && 5 * k * k < T0) {
319-
cont = RENAMENOISE_HALF16(prev_gain);
319+
cont = RENAMENOISE_HALF(prev_gain);
320320
} else {
321321
cont = 0;
322322
}
323-
thresh = RENAMENOISE_MAX16(.3f, RENAMENOISE_MULT16_16_Q15(.7f, g0) - cont);
323+
thresh = RENAMENOISE_MAX16(.3f, RENAMENOISE_MULT(.7f, g0) - cont);
324324
// Bias against very high pitch (very short period) to avoid false-positives due to short-term correlation
325325
if (T1 < 3 * minperiod) {
326-
thresh = RENAMENOISE_MAX16(.4f, RENAMENOISE_MULT16_16_Q15(.85f, g0) - cont);
326+
thresh = RENAMENOISE_MAX16(.4f, RENAMENOISE_MULT(.85f, g0) - cont);
327327
} else if (T1 < 2 * minperiod) {
328-
thresh = RENAMENOISE_MAX16(.5f, RENAMENOISE_MULT16_16_Q15(.9f, g0) - cont);
328+
thresh = RENAMENOISE_MAX16(.5f, RENAMENOISE_MULT(.9f, g0) - cont);
329329
}
330330
if (g1 > thresh) {
331331
best_xy = xy;
@@ -344,9 +344,9 @@ renamenoise_val16 renamenoise_remove_doubling(renamenoise_val16 *x, int maxperio
344344
for (k = 0; k < 3; k++) {
345345
xcorr[k] = renamenoise_inner_prod(x, x - (T + k - 1), N);
346346
}
347-
if ((xcorr[2] - xcorr[0]) > RENAMENOISE_MULT16_32_Q15(.7f, xcorr[1] - xcorr[0])) {
347+
if ((xcorr[2] - xcorr[0]) > RENAMENOISE_MULT(.7f, xcorr[1] - xcorr[0])) {
348348
offset = 1;
349-
} else if ((xcorr[0] - xcorr[2]) > RENAMENOISE_MULT16_32_Q15(.7f, xcorr[1] - xcorr[2])) {
349+
} else if ((xcorr[0] - xcorr[2]) > RENAMENOISE_MULT(.7f, xcorr[1] - xcorr[2])) {
350350
offset = -1;
351351
} else {
352352
offset = 0;

src/pitch.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -60,52 +60,52 @@ static RENAMENOISE_INLINE void renamenoise_xcorr_kernel(const renamenoise_val16
6060
renamenoise_val16 tmp;
6161
tmp = *x++;
6262
y_3 = *y++;
63-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_0);
64-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_1);
65-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_2);
66-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_3);
63+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_0);
64+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_1);
65+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_2);
66+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_3);
6767
tmp = *x++;
6868
y_0 = *y++;
69-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_1);
70-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_2);
71-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_3);
72-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_0);
69+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_1);
70+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_2);
71+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_3);
72+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_0);
7373
tmp = *x++;
7474
y_1 = *y++;
75-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_2);
76-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_3);
77-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_0);
78-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_1);
75+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_2);
76+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_3);
77+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_0);
78+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_1);
7979
tmp = *x++;
8080
y_2 = *y++;
81-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_3);
82-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_0);
83-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_1);
84-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_2);
81+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_3);
82+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_0);
83+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_1);
84+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_2);
8585
}
8686
if (j++ < len) {
8787
renamenoise_val16 tmp = *x++;
8888
y_3 = *y++;
89-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_0);
90-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_1);
91-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_2);
92-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_3);
89+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_0);
90+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_1);
91+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_2);
92+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_3);
9393
}
9494
if (j++ < len) {
9595
renamenoise_val16 tmp = *x++;
9696
y_0 = *y++;
97-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_1);
98-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_2);
99-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_3);
100-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_0);
97+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_1);
98+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_2);
99+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_3);
100+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_0);
101101
}
102102
if (j < len) {
103103
renamenoise_val16 tmp = *x++;
104104
y_1 = *y++;
105-
sum[0] = RENAMENOISE_MAC16_16(sum[0], tmp, y_2);
106-
sum[1] = RENAMENOISE_MAC16_16(sum[1], tmp, y_3);
107-
sum[2] = RENAMENOISE_MAC16_16(sum[2], tmp, y_0);
108-
sum[3] = RENAMENOISE_MAC16_16(sum[3], tmp, y_1);
105+
sum[0] = RENAMENOISE_MAC(sum[0], tmp, y_2);
106+
sum[1] = RENAMENOISE_MAC(sum[1], tmp, y_3);
107+
sum[2] = RENAMENOISE_MAC(sum[2], tmp, y_0);
108+
sum[3] = RENAMENOISE_MAC(sum[3], tmp, y_1);
109109
}
110110
}
111111

@@ -115,8 +115,8 @@ static RENAMENOISE_INLINE void renamenoise_dual_inner_prod(const renamenoise_val
115115
renamenoise_val32 xy01 = 0;
116116
renamenoise_val32 xy02 = 0;
117117
for (i = 0; i < N; i++) {
118-
xy01 = RENAMENOISE_MAC16_16(xy01, x[i], y01[i]);
119-
xy02 = RENAMENOISE_MAC16_16(xy02, x[i], y02[i]);
118+
xy01 = RENAMENOISE_MAC(xy01, x[i], y01[i]);
119+
xy02 = RENAMENOISE_MAC(xy02, x[i], y02[i]);
120120
}
121121
*xy1 = xy01;
122122
*xy2 = xy02;
@@ -127,7 +127,7 @@ static RENAMENOISE_INLINE renamenoise_val32 renamenoise_inner_prod(const renamen
127127
int i;
128128
renamenoise_val32 xy = 0;
129129
for (i = 0; i < N; i++) {
130-
xy = RENAMENOISE_MAC16_16(xy, x[i], y[i]);
130+
xy = RENAMENOISE_MAC(xy, x[i], y[i]);
131131
}
132132
return xy;
133133
}

0 commit comments

Comments
 (0)