static void map_val_34_to_20(INTFLOAT par[PS_MAX_NR_IIDICC])

{

#if USE_FIXED

    par[ 0] = (int)(((int64_t)(par[ 0] + (par[ 1]>>1)) * 1431655765 + \

                      0x40000000) >> 31);

    par[ 1] = (int)(((int64_t)((par[ 1]>>1) + par[ 2]) * 1431655765 + \

                      0x40000000) >> 31);

    par[ 2] = (int)(((int64_t)(par[ 3] + (par[ 4]>>1)) * 1431655765 + \

                      0x40000000) >> 31);

    par[ 3] = (int)(((int64_t)((par[ 4]>>1) + par[ 5]) * 1431655765 + \

                      0x40000000) >> 31);

#else

    par[ 0] = (2*par[ 0] +   par[ 1]) * 0.33333333f;

    par[ 1] = (  par[ 1] + 2*par[ 2]) * 0.33333333f;

    par[ 2] = (2*par[ 3] +   par[ 4]) * 0.33333333f;

    par[ 3] = (  par[ 4] + 2*par[ 5]) * 0.33333333f;

#endif /* USE_FIXED */

    par[ 4] = AAC_HALF_SUM(par[ 6], par[ 7]);

    par[ 5] = AAC_HALF_SUM(par[ 8], par[ 9]);

    par[ 6] =    par[10];

    par[ 7] =    par[11];

    par[ 8] = AAC_HALF_SUM(par[12], par[13]);

    par[ 9] = AAC_HALF_SUM(par[14], par[15]);

    par[10] =    par[16];

    par[11] =    par[17];

    par[12] =    par[18];

    par[13] =    par[19];

    par[14] = AAC_HALF_SUM(par[20], par[21]);

    par[15] = AAC_HALF_SUM(par[22], par[23]);

    par[16] = AAC_HALF_SUM(par[24], par[25]);

    par[17] = AAC_HALF_SUM(par[26], par[27]);

#if USE_FIXED

    par[18] = (((par[28]+2)>>2) + ((par[29]+2)>>2) + ((par[30]+2)>>2) + ((par[31]+2)>>2));

#else

    par[18] = (  par[28] +   par[29] +   par[30] +   par[31]) * 0.25f;

#endif /* USE_FIXED */

    par[19] = AAC_HALF_SUM(par[32], par[33]);

}
