Commit bed1365a authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

implement decoder-side part of mono-detection heuristic

parent 1d19cbf7
Loading
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -678,6 +678,47 @@ void ivas_spar_md_dec_process(
                               ivas_spar_br_table_consts[hMdDec->table_idx].usePlanarCoeff, st_ivas->hQMetaData->sba_inactive_mode,
                               st_ivas->last_active_ivas_total_brate );

#ifdef FIX_527_MONO_HEURISTICS
    {
		int16_t ndm, ndec,i,j;

        st_ivas->hQMetaData->dirac_mono_flag = 1;
        for ( b = 0; b < SPAR_DIRAC_SPLIT_START_BAND; b++ )
        {
            ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b * bw];
            ndec = hMdDec->spar_md_cfg.num_decorr_per_band[b * bw];

            for ( i = 0; i < DIRAC_TO_SPAR_HBR_PRED_CHS; i++ )
            {
                if ( hMdDec->spar_md.band_coeffs[b].pred_quant_re[i] != 0.0f )
                {
                    st_ivas->hQMetaData->dirac_mono_flag = 0;
                }
            }

            for ( i = 0; i < num_md_chs - ndm; i++ )
            {
                for ( j = 0; j < ndm - 1; j++ )
                {
                    if ( hMdDec->spar_md.band_coeffs[0].C_quant_re[i][j] != 0.f )
                    {
                        st_ivas->hQMetaData->dirac_mono_flag = 0;
                    }
                }
            }

            for ( i = ndm; i < num_md_chs; i++ )
            {
                if ( hMdDec->spar_md.band_coeffs[0].P_re[i] != 0.f )
                {
                    st_ivas->hQMetaData->dirac_mono_flag = 0;
                }
            }
        }
    }
#endif


#if 0
    {
        char f_name[100];