Commit 1b4497f0 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

continue preliminary basop conversion

parent ab85f0a2
Loading
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1326,10 +1326,11 @@ enum
#define MASA_MAXIMUM_TWO_DIR_BANDS              24
#define NBITS_HR_COH                            4
#define OMASA_TDREND_MATCHING_GAIN_FX 26026
//TODO: insert proper Q representations
#ifdef OMASA_OBJECT_EDITING
#define OMASA_GAIN_EDIT_THR                     0.06f                       /* OMASA gain change threshold */
#define OMASA_AZI_EDIT_THR                      1.0f                        /* OMASA-DISC azimuth change threshold */
#define OMASA_ELE_EDIT_THR                      2.0f                        /* OMASA-DISC elevation change threshold */
#define OMASA_GAIN_EDIT_THR_FX                     0                        /* OMASA gain change threshold */
#define OMASA_AZI_EDIT_THR_FX                      1                        /* OMASA-DISC azimuth change threshold */
#define OMASA_ELE_EDIT_THR_FX                      2                        /* OMASA-DISC elevation change threshold */
#endif

#define MASA_INV_ANGLE_AT_EQUATOR_DEG_Q30       (1453366656l)
+2 −1
Original line number Diff line number Diff line
@@ -3947,7 +3947,8 @@ void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx(
    Word32 inIm_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/
    Word16 *cldfb_buf_q,
    const Word16 nBins,
    const Word16 subframe );
    const Word16 subframe 
);


void ivas_omasa_decode_masa_to_total_fx(
+3 −3
Original line number Diff line number Diff line
@@ -968,14 +968,14 @@ typedef struct ivas_masa_ism_data_structure
    UWord8 ism_is_edited[MAX_NUM_OBJECTS];
#endif
#ifdef OBJ_EDITING_API
    Word32 gain_ism[MAX_NUM_OBJECTS];
    Word32 gain_ism_fx[MAX_NUM_OBJECTS];
    Word32 gain_masa;
#endif

#ifdef OMASA_OBJECT_EDITING
    Word32 gain_ism_edited[MAX_NUM_OBJECTS];
    Word32 gain_ism_edited_fx[MAX_NUM_OBJECTS];
    UWord8 ism_gain_is_edited[MAX_NUM_OBJECTS];
    UWord32 gain_masa_edited;
    UWord32 gain_masa_edited_fx;
    UWord8 masa_gain_is_edited;
#endif
    Word16 idx_separated_ism;
+17 −14
Original line number Diff line number Diff line
@@ -4166,11 +4166,11 @@ ivas_error IVAS_DEC_SetEditableParameters(
#ifdef OBJ_EDITING_PARAMISM_BIN
                hIvasDec->st_ivas->hParamIsmDec->edited_azimuth_values_fx[obj] = hIvasEditableParameters.ism_metadata[obj].azimuth;
                hIvasDec->st_ivas->hParamIsmDec->edited_elevation_values_fx[obj] = hIvasEditableParameters.ism_metadata[obj].elevation;
                hIvasDec->st_ivas->hMasaIsmData->gain_ism_edited[obj] = hIvasEditableParameters.ism_metadata[obj].gain_fx;
                hIvasDec->st_ivas->hMasaIsmData->gain_ism_edited_fx[obj] = hIvasEditableParameters.ism_metadata[obj].gain_fx;

                /* Detect direction editing in Param-ISM mode */
                IF ( fabsf( hIvasDec->st_ivas->hParamIsmDec->azimuth_values_fx[obj] - hIvasEditableParameters.ism_metadata[obj].azimuth ) > OMASA_AZI_EDIT_THR ||
                     fabsf( hIvasDec->st_ivas->hParamIsmDec->elevation_values_fx[obj] - hIvasEditableParameters.ism_metadata[obj].elevation ) > OMASA_ELE_EDIT_THR )
                IF ( GT_16( L_abs( L_sub( hIvasDec->st_ivas->hParamIsmDec->azimuth_values_fx[obj], hIvasEditableParameters.ism_metadata[obj].azimuth ) ), OMASA_AZI_EDIT_THR_FX ) ||
                     GT_16( L_abs( L_sub( hIvasDec->st_ivas->hParamIsmDec->elevation_values_fx[obj], hIvasEditableParameters.ism_metadata[obj].elevation ) ), OMASA_ELE_EDIT_THR_FX ) )
                {
                    hIvasDec->st_ivas->hMasaIsmData->ism_dir_is_edited[obj] = 1;
                }
@@ -4180,7 +4180,7 @@ ivas_error IVAS_DEC_SetEditableParameters(
                }

                /* Detect gain editing in Param-ISM mode */
                IF ( fabsf( 1.0f - hIvasEditableParameters.ism_metadata[obj].gain_fx ) > OMASA_GAIN_EDIT_THR )
                IF (GT_32( L_abs( L_sub( ONE_IN_Q30, hIvasEditableParameters.ism_metadata[obj].gain_fx ) ), OMASA_GAIN_EDIT_THR_FX ) ) // TODO: check Q values
                {
                    hIvasDec->st_ivas->hMasaIsmData->ism_gain_is_edited[obj] = 1;
                }
@@ -4249,12 +4249,15 @@ ivas_error IVAS_DEC_SetEditableParameters(
                     * which in turn depends from the object priority and importance:
                     * importance -> priority -> number of bits -> elevation resolution -> elevation ring index -> azimuth resolution.
                     * leading to elevation_resolution -> elevation threshold and azimuth resolution -> azimuth threshold */
                    id_th = (int) ( fabsf( (float) hIvasDec->st_ivas->hMasaIsmData->elevation_ism[obj][dirac_read_idx] ) / delta_theta_masa[hIvasDec->st_ivas->hMasaIsmData->bits_ism[obj] - 3] + 0.5f );
                    //id_th = ( fabsf( (float) hIvasDec->st_ivas->hMasaIsmData->elevation_ism[obj][dirac_read_idx] ) / delta_theta_masa[hIvasDec->st_ivas->hMasaIsmData->bits_ism[obj] - 3] + 0.5f );
                    assert(0 && "Insert proper basop  code here!");
                    threshold_azi = 360.0f / (float) no_phi_masa[hIvasDec->st_ivas->hMasaIsmData->bits_ism[obj] - 1][id_th];
                    threshold_ele = delta_theta_masa[hIvasDec->st_ivas->hMasaIsmData->bits_ism[obj] - 3];
                    threshold_ele = delta_theta_masa_fx[hIvasDec->st_ivas->hMasaIsmData->bits_ism[obj] - 3];

                    IF ( ( (float) abs( new_azi - hIvasDec->st_ivas->hMasaIsmData->azimuth_ism[obj][dirac_read_idx] ) > threshold_azi ) ||
                         ( (float) abs( new_ele - hIvasDec->st_ivas->hMasaIsmData->elevation_ism[obj][dirac_read_idx] ) > threshold_ele ) )
                    test();
                    IF ( ( GT_32( L_abs( L_sub(new_azi, hIvasDec->st_ivas->hMasaIsmData->azimuth_ism[obj][dirac_read_idx]) ), threshold_azi ) ) || 
                         ( GT_32( L_abs( L_sub(new_ele, hIvasDec->st_ivas->hMasaIsmData->elevation_ism[obj][dirac_read_idx]) ), threshold_ele ) )
                        )
                    {
                        /* at least one of the threshold is exceeded, so use new direction value and set editing detection flag */
                        hIvasDec->st_ivas->hMasaIsmData->azimuth_ism_edited[obj] = new_azi;
@@ -4270,8 +4273,8 @@ ivas_error IVAS_DEC_SetEditableParameters(
                ELSE
                {
                    /* detect editing in ISM_MASA_MODE_DISC. optionally, add quantization-resolution -based thresholds */
                    IF ( fabsf( hIvasDec->st_ivas->hIsmMetaData[obj]->azimuth_fx - hIvasEditableParameters.ism_metadata[obj].azimuth_fx ) > OMASA_AZI_EDIT_THR ||
                         fabsf( hIvasDec->st_ivas->hIsmMetaData[obj]->elevation_fx - hIvasEditableParameters.ism_metadata[obj].elevation_fx ) > OMASA_ELE_EDIT_THR )
                    IF ( GT_32( L_abs( L_sub( hIvasDec->st_ivas->hIsmMetaData[obj]->azimuth_fx, hIvasEditableParameters.ism_metadata[obj].azimuth_fx ) ), OMASA_AZI_EDIT_THR_FX ) ||
                         GT_32( L_abs( L_sub( hIvasDec->st_ivas->hIsmMetaData[obj]->elevation_fx, hIvasEditableParameters.ism_metadata[obj].elevation_fx ) ),  OMASA_ELE_EDIT_THR_FX ) )
                    {
                        hIvasDec->st_ivas->hMasaIsmData->azimuth_ism_edited[obj] = new_azi;
                        hIvasDec->st_ivas->hMasaIsmData->elevation_ism_edited[obj] = new_ele;
@@ -4285,10 +4288,10 @@ ivas_error IVAS_DEC_SetEditableParameters(
                }

                /* compare pre-edit gain and the edited one to detect editing */
                IF ( fabsf( hIvasDec->st_ivas->hIsmMetaData[obj]->edited_gain - hIvasEditableParameters.ism_metadata[obj].gain ) > OMASA_GAIN_EDIT_THR )
                IF ( L_abs( L_sub(hIvasDec->st_ivas->hIsmMetaData[obj]->edited_gain_fx, hIvasEditableParameters.ism_metadata[obj].gain_fx ) ) > OMASA_GAIN_EDIT_THR_FX )
                {
                    hIvasDec->st_ivas->hMasaIsmData->ism_gain_is_edited[obj] = 1u;
                    hIvasDec->st_ivas->hMasaIsmData->gain_ism_edited[obj] = hIvasEditableParameters.ism_metadata[obj].gain;
                    hIvasDec->st_ivas->hMasaIsmData->gain_ism_edited_fx[obj] = hIvasEditableParameters.ism_metadata[obj].gain_fx;
                }
                ELSE
                {
@@ -4309,9 +4312,9 @@ ivas_error IVAS_DEC_SetEditableParameters(
            }
        }

        IF ( L_abs( sub(hIvasEditableParameters.gain_bed_fx, ONE_IN_Q30) ) > OMASA_GAIN_EDIT_THR ) //TODO: check Q value
        IF ( GE_32( L_abs( L_sub(hIvasEditableParameters.gain_bed_fx, ONE_IN_Q30) ), OMASA_GAIN_EDIT_THR_FX ) ) //TODO: check Q value
        {
            hIvasDec->st_ivas->hMasaIsmData->gain_masa_edited = hIvasEditableParameters.gain_bed_fx; //TODO: check type
            hIvasDec->st_ivas->hMasaIsmData->gain_masa_edited_fx = hIvasEditableParameters.gain_bed_fx; //TODO: check type
            move32();
            hIvasDec->st_ivas->hMasaIsmData->masa_gain_is_edited = 1u;
        }
+134 −127

File changed.

Preview size limit exceeded, changes collapsed.

Loading