Commit 7625d3be authored by vaclav's avatar vaclav
Browse files

fixes + tuning in MD quantization

parent 1a1dab2f
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -53,8 +53,8 @@

#define IVAS_ISM_DTX_HO_MAX 5

#define CNG_MD_MAX_DIFF_AZIMUTH   8
#define CNG_MD_MAX_DIFF_ELEVATION 8
#define CNG_MD_MAX_DIFF_AZIMUTH   5
#define CNG_MD_MAX_DIFF_ELEVATION 5


/*-------------------------------------------------------------------*
@@ -72,7 +72,7 @@ static void ism_metadata_smooth(
    ISM_METADATA_HANDLE hIsmMetaData;
    int16_t ch;
    float diff;

    return;
    for ( ch = 0; ch < num_obj; ch++ )
    {
        hIsmMetaData = hIsmMeta[ch];
@@ -913,7 +913,7 @@ ivas_error ivas_ism_metadata_sid_dec(
                    /* Azimuth decoding */
                    idx_azimuth = get_next_indice( st0, nBits_azimuth );

#ifndef UNIFY_MD_QUANTIZER // VE!!!!! TBV
#ifndef UNIFY_MD_QUANTIZER
                    /* azimuth is on a circle - check for diff coding for -180° -> 180° and vice versa changes */
                    if ( idx_azimuth > ( 1 << ISM_AZIMUTH_NBITS ) - 1 )
                    {
@@ -938,7 +938,7 @@ ivas_error ivas_ism_metadata_sid_dec(

                    hIsmMetaData->azimuth = ism_dequant_meta( idx_azimuth, ism_azimuth_borders, 1 << ISM_AZIMUTH_NBITS );
#else
                    hIsmMetaData->azimuth = ism_dequant_meta( idx_azimuth, ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << nBits_azimuth );
                    hIsmMetaData->azimuth = ism_dequant_meta( idx_azimuth, ism_azimuth_borders, q_step, q_step_border, 1 << nBits_azimuth );
#endif

                    /* Elevation decoding */
@@ -954,17 +954,30 @@ ivas_error ivas_ism_metadata_sid_dec(
                    /* Elevation dequantization */
                    hIsmMetaData->elevation = ism_dequant_meta( idx_elevation, ism_elevation_borders, 1 << ISM_ELEVATION_NBITS );
#else
                    hIsmMetaData->elevation = ism_dequant_meta( idx_elevation, ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << nBits_elevation );
                    hIsmMetaData->elevation = ism_dequant_meta( idx_elevation, ism_elevation_borders, q_step, q_step_border, 1 << nBits_elevation );
#endif
                }

                // VE!!!!! verify for switching from low_res_q to active frame coding
#ifdef MD_Q_PARAM_BE
                if ( ism_mode != ISM_MODE_PARAM )
#endif
                {
#ifdef UNIFY_MD_QUANTIZER
                    /* update last indexes to correspond to active frames coding */
                    if ( nBits_azimuth > ISM_AZIMUTH_NBITS )
                    {
                        hIsmMetaData->last_azimuth_idx = idx_azimuth >> ( nBits_azimuth - ISM_AZIMUTH_NBITS );
                        hIsmMetaData->last_elevation_idx = idx_elevation >> ( nBits_elevation - ISM_ELEVATION_NBITS );
                    }
                    else
                    {
                        hIsmMetaData->last_azimuth_idx = idx_azimuth << ( ISM_AZIMUTH_NBITS - nBits_azimuth );
                        hIsmMetaData->last_elevation_idx = idx_elevation << ( ISM_ELEVATION_NBITS - nBits_elevation );
                    }
#else
                    hIsmMetaData->last_azimuth_idx = idx_azimuth;
                    hIsmMetaData->last_elevation_idx = idx_elevation;
#endif
                }

                /* save for smoothing metadata evolution */
+2 −2
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@
 * Local constants
 *-----------------------------------------------------------------------*/

#define MD_MAX_DIFF_AZIMUTH   15
#define MD_MAX_DIFF_ELEVATION 15
#define MD_MAX_DIFF_AZIMUTH   10
#define MD_MAX_DIFF_ELEVATION 10
#endif


+14 −0
Original line number Diff line number Diff line
@@ -996,8 +996,22 @@ void ivas_ism_metadata_sid_enc(
                if ( ism_mode != ISM_MODE_PARAM )
#endif
                {
#ifdef UNIFY_MD_QUANTIZER
                    /* update last indexes to correspond to active frames coding */
                    if ( nBits_azimuth > ISM_AZIMUTH_NBITS )
                    {
                        hIsmMetaData->last_azimuth_idx = idx_azimuth >> ( nBits_azimuth - ISM_AZIMUTH_NBITS );
                        hIsmMetaData->last_elevation_idx = idx_elevation >> ( nBits_elevation - ISM_ELEVATION_NBITS );
                    }
                    else
                    {
                        hIsmMetaData->last_azimuth_idx = idx_azimuth << ( ISM_AZIMUTH_NBITS - nBits_azimuth );
                        hIsmMetaData->last_elevation_idx = idx_elevation << ( ISM_ELEVATION_NBITS - nBits_elevation );
                    }
#else
                    hIsmMetaData->last_azimuth_idx = idx_azimuth;
                    hIsmMetaData->last_elevation_idx = idx_elevation;
#endif
                }
            }
        }