mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-08-28 04:06:12 +02:00
atrac3: simplify some loop indexing
This commit is contained in:
parent
e55d53905f
commit
aefdb735c3
@ -551,7 +551,7 @@ static void reverse_matrixing(float *su1, float *su2, int *prev_code,
|
|||||||
for (i = 0, band = 0; band < 4 * 256; band += 256, i++) {
|
for (i = 0, band = 0; band < 4 * 256; band += 256, i++) {
|
||||||
int s1 = prev_code[i];
|
int s1 = prev_code[i];
|
||||||
int s2 = curr_code[i];
|
int s2 = curr_code[i];
|
||||||
nsample = 0;
|
nsample = band;
|
||||||
|
|
||||||
if (s1 != s2) {
|
if (s1 != s2) {
|
||||||
/* Selector value changed, interpolation needed. */
|
/* Selector value changed, interpolation needed. */
|
||||||
@ -561,41 +561,41 @@ static void reverse_matrixing(float *su1, float *su2, int *prev_code,
|
|||||||
mc2_r = matrix_coeffs[s2 * 2 + 1];
|
mc2_r = matrix_coeffs[s2 * 2 + 1];
|
||||||
|
|
||||||
/* Interpolation is done over the first eight samples. */
|
/* Interpolation is done over the first eight samples. */
|
||||||
for (; nsample < 8; nsample++) {
|
for (; nsample < band + 8; nsample++) {
|
||||||
float c1 = su1[band + nsample];
|
float c1 = su1[nsample];
|
||||||
float c2 = su2[band + nsample];
|
float c2 = su2[nsample];
|
||||||
c2 = c1 * INTERPOLATE(mc1_l, mc2_l, nsample) +
|
c2 = c1 * INTERPOLATE(mc1_l, mc2_l, nsample - band) +
|
||||||
c2 * INTERPOLATE(mc1_r, mc2_r, nsample);
|
c2 * INTERPOLATE(mc1_r, mc2_r, nsample - band);
|
||||||
su1[band + nsample] = c2;
|
su1[nsample] = c2;
|
||||||
su2[band + nsample] = c1 * 2.0 - c2;
|
su2[nsample] = c1 * 2.0 - c2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Apply the matrix without interpolation. */
|
/* Apply the matrix without interpolation. */
|
||||||
switch (s2) {
|
switch (s2) {
|
||||||
case 0: /* M/S decoding */
|
case 0: /* M/S decoding */
|
||||||
for (; nsample < 256; nsample++) {
|
for (; nsample < band + 256; nsample++) {
|
||||||
float c1 = su1[band + nsample];
|
float c1 = su1[nsample];
|
||||||
float c2 = su2[band + nsample];
|
float c2 = su2[nsample];
|
||||||
su1[band + nsample] = c2 * 2.0;
|
su1[nsample] = c2 * 2.0;
|
||||||
su2[band + nsample] = (c1 - c2) * 2.0;
|
su2[nsample] = (c1 - c2) * 2.0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
for (; nsample < 256; nsample++) {
|
for (; nsample < band + 256; nsample++) {
|
||||||
float c1 = su1[band + nsample];
|
float c1 = su1[nsample];
|
||||||
float c2 = su2[band + nsample];
|
float c2 = su2[nsample];
|
||||||
su1[band + nsample] = (c1 + c2) * 2.0;
|
su1[nsample] = (c1 + c2) * 2.0;
|
||||||
su2[band + nsample] = c2 * -2.0;
|
su2[nsample] = c2 * -2.0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
for (; nsample < 256; nsample++) {
|
for (; nsample < band + 256; nsample++) {
|
||||||
float c1 = su1[band + nsample];
|
float c1 = su1[nsample];
|
||||||
float c2 = su2[band + nsample];
|
float c2 = su2[nsample];
|
||||||
su1[band + nsample] = c1 + c2;
|
su1[nsample] = c1 + c2;
|
||||||
su2[band + nsample] = c1 - c2;
|
su2[nsample] = c1 - c2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -627,14 +627,14 @@ static void channel_weighting(float *su1, float *su2, int *p3)
|
|||||||
get_channel_weights(p3[1], p3[0], w[0]);
|
get_channel_weights(p3[1], p3[0], w[0]);
|
||||||
get_channel_weights(p3[3], p3[2], w[1]);
|
get_channel_weights(p3[3], p3[2], w[1]);
|
||||||
|
|
||||||
for (band = 1; band < 4; band++) {
|
for (band = 256; band < 4 * 256; band += 256) {
|
||||||
for (nsample = 0; nsample < 8; nsample++) {
|
for (nsample = band; nsample < band + 8; nsample++) {
|
||||||
su1[band * 256 + nsample] *= INTERPOLATE(w[0][0], w[0][1], nsample);
|
su1[nsample] *= INTERPOLATE(w[0][0], w[0][1], nsample - band);
|
||||||
su2[band * 256 + nsample] *= INTERPOLATE(w[1][0], w[1][1], nsample);
|
su2[nsample] *= INTERPOLATE(w[1][0], w[1][1], nsample - band);
|
||||||
}
|
}
|
||||||
for(; nsample < 256; nsample++) {
|
for(; nsample < band + 256; nsample++) {
|
||||||
su1[band * 256 + nsample] *= w[1][0];
|
su1[nsample] *= w[1][0];
|
||||||
su2[band * 256 + nsample] *= w[1][1];
|
su2[nsample] *= w[1][1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user