Accuracy of spatial metadata in ivas_omasa_enc_fx compared to the floating point equivalent
# Basic info
- Float reference:
- Encoder (float): f40fa4679af7066ad8f554907305761b55a6cc63
- Fixed point:
- Decoder (fixed): ced61be1369cf22e693758beb6184d862a585d38
# Bug description
Earlier it was found that McMASA parameter analysis had differences between fx and float (see issue #1584). Now the same inspection was done to the OMASA parameter analysis. Similar differences were found. These variables were inspected:
```
Word32 azimuth_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; /* Q22 */
Word32 elevation_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; /* Q22 */
Word32 energy_ratio_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; /* Q30 */
```
and corresponding float variants. The following command was used
`-ism_masa 4 2 ltv48_OMASA_4ISM_2TC_ISM1.csv ltv48_OMASA_4ISM_2TC_ISM2.csv ltv48_OMASA_4ISM_2TC_ISM3.csv ltv48_OMASA_4ISM_2TC_ISM4.csv ltv48_OMASA_4ISM_2TC.met 24400 48 ltv48_OMASA_4ISM_2TC.wav data.bts`
The following differences between fx and float were found:

In this plot, negative difference is red and positive difference is green. Ideally, the plots should be completely black. However, there are differences clearly noticeable in the figure.
# Ways to inspect data
The comparison was done by dumping for basop (after calling ivas_omasa_param_est_enc_fx in `ivas_omasa_enc_fx`) with:
```
{
static FILE* dumpFile = NULL;
if (dumpFile == NULL)
{
dumpFile = fopen("./meta/omasa_fx_dump.bin", "wb");
}
for (i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; I++)
{
fwrite(hOMasaMeta->directional_meta[0].azimuth_fx[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->directional_meta[0].elevation_fx[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->directional_meta[0].energy_ratio_fx[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->directional_meta[0].spread_coherence_fx[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->common_meta.surround_coherence_fx[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
}
}
```
and for float (after calling ivas_omasa_param_est_enc in `ivas_omasa_enc`) with
```
{
static FILE* dumpFile = NULL;
if (dumpFile == NULL)
{
dumpFile = fopen("./meta/omasa_float_dump.bin", "wb");
}
for (i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; I++)
{
fwrite(hOMasaMeta->directional_meta[0].azimuth[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->directional_meta[0].elevation[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->directional_meta[0].energy_ratio[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->directional_meta[0].spread_coherence[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
fwrite(hOMasaMeta->common_meta.surround_coherence[i], sizeof(Word32), MASA_FREQUENCY_BANDS, dumpFile);
}
}
```
and my Matlab script for comparison (and plotting) is here:
[processTwoOMASAdumps.m](/uploads/4aea33edaca1ee41474562313105f622/processTwoOMASAdumps.m)
issue