Commit f11d0041 authored by Brown, Stefanie's avatar Brown, Stefanie
Browse files

Some more debug code and a fix for the HOA mode issue.

parent 6183bb60
Loading
Loading
Loading
Loading
+181 −2
Original line number Diff line number Diff line
@@ -690,7 +690,96 @@ void ivas_spar_md_dec_process(
        }
    }
#endif
#ifdef DEBUG_LBR_SBA
    /* Dumping SPAR HOA Coefficients */
    /*char f_name[100];
    int16_t nbands = 12;
    int16_t num_subframes = 1;
    int16_t num_elements = 7;
    int16_t num_block_group = 1;
    int16_t byte_size = sizeof( float );

    sprintf( f_name, "SBA_MD_values_dec_PR.bin" );
    ( frame == 0 ) ? dbgwrite( &nbands, sizeof( nbands ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_elements, sizeof( num_elements ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_subframes, sizeof( num_subframes ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_block_group, sizeof( num_block_group ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false;

    for ( b = 0; b < nbands; b++ )
    {
        for ( int16_t sf = 0; sf < num_subframes; sf++ )
        {
            for ( int16_t bl = 0; bl < num_block_group; bl++ )
            {
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[0], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[1], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[2], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[3], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[4], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[5], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[6], byte_size, 1, 1, f_name );
                // fprintf(stdout, "%f\t%f\t%f\t%d\t%d\n", dirac_md_kbps, spar_md_kbps, sba_md_kbps, qsi, code_strat );
            }
        }
    }
    nbands = 12; // 6 total, just looking at SPAR
    num_subframes = 1;
    num_elements = 12;
    num_block_group = 1;
    byte_size = sizeof( float );

    sprintf( f_name, "SBA_MD_values_dec_C.bin" );
    ( frame == 0 ) ? dbgwrite( &nbands, sizeof( nbands ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_elements, sizeof( num_elements ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_subframes, sizeof( num_subframes ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_block_group, sizeof( num_block_group ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false;

    for ( b = 0; b < nbands; b++ )
    {
        for ( int16_t sf = 0; sf < num_subframes; sf++ )
        {
            for ( int16_t bl = 0; bl < num_block_group; bl++ )
            {
                for ( int16_t p = 0; p < 4; p++ )
                {
                    for ( int16_t r = 0; r < 3; r++ )
                    {
                        dbgwrite( &hMdDec->spar_md.band_coeffs[b].C_re[p][r], byte_size, 1, 1, f_name );
                    }
                }
            }
        }
    }
    nbands = 12; // 6 total, just looking at SPAR
    num_subframes = 1;
    num_elements = 4;
    num_block_group = 1;
    byte_size = sizeof( float );

    sprintf( f_name, "SBA_MD_values_dec_P.bin" );
    ( frame == 0 ) ? dbgwrite( &nbands, sizeof( nbands ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_elements, sizeof( num_elements ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_subframes, sizeof( num_subframes ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_block_group, sizeof( num_block_group ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false;

    for ( b = 0; b < nbands; b++ )
    {
        for ( int16_t sf = 0; sf < num_subframes; sf++ )
        {
            for ( int16_t bl = 0; bl < num_block_group; bl++ )
            {
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[0], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[1], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[2], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[3], byte_size, 1, 1, f_name );
                // fprintf(stdout, "%f\t%f\t%f\t%d\t%d\n", dirac_md_kbps, spar_md_kbps, sba_md_kbps, qsi, code_strat );
            }
        }
    }*/
#endif
    /* SPAR to DirAC conversion */
    ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out
#ifdef LBR_SBA
@@ -737,6 +826,96 @@ void ivas_spar_md_dec_process(
            }
        }
    }
#endif
#ifdef DEBUG_LBR_SBA
    /* Dumping SPAR HOA Coefficients */
    /*char f_name[100];
    int16_t nbands = 12;
    int16_t num_subframes = 1;
    int16_t num_elements = 7;
    int16_t num_block_group = 1;
    int16_t byte_size = sizeof( float );

    sprintf( f_name, "SBA_MD_values_dec_PR.bin" );
    ( frame == 0 ) ? dbgwrite( &nbands, sizeof( nbands ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_elements, sizeof( num_elements ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_subframes, sizeof( num_subframes ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_block_group, sizeof( num_block_group ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false;

    for ( b = 0; b < nbands; b++ )
    {
        for ( int16_t sf = 0; sf < num_subframes; sf++ )
        {
            for ( int16_t bl = 0; bl < num_block_group; bl++ )
            {
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[0], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[1], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[2], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[3], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[4], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[5], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].pred_re[6], byte_size, 1, 1, f_name );
                // fprintf(stdout, "%f\t%f\t%f\t%d\t%d\n", dirac_md_kbps, spar_md_kbps, sba_md_kbps, qsi, code_strat );
            }
        }
    }
    nbands = 12; // 6 total, just looking at SPAR
    num_subframes = 1;
    num_elements = 12;
    num_block_group = 1;
    byte_size = sizeof( float );

    sprintf( f_name, "SBA_MD_values_dec_C.bin" );
    ( frame == 0 ) ? dbgwrite( &nbands, sizeof( nbands ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_elements, sizeof( num_elements ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_subframes, sizeof( num_subframes ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_block_group, sizeof( num_block_group ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false;

    for ( b = 0; b < nbands; b++ )
    {
        for ( int16_t sf = 0; sf < num_subframes; sf++ )
        {
            for ( int16_t bl = 0; bl < num_block_group; bl++ )
            {
                for ( int16_t p = 0; p < 4; p++ )
                {
                    for ( int16_t r = 0; r < 3; r++ )
                    {
						dbgwrite( &hMdDec->spar_md.band_coeffs[b].C_re[p][r], byte_size, 1, 1, f_name );
					}
				}
            }
        }
    }
    nbands = 12; // 6 total, just looking at SPAR
    num_subframes = 1;
    num_elements = 4;
    num_block_group = 1;
    byte_size = sizeof( float );

    sprintf( f_name, "SBA_MD_values_dec_P.bin" );
    ( frame == 0 ) ? dbgwrite( &nbands, sizeof( nbands ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_elements, sizeof( num_elements ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_subframes, sizeof( num_subframes ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &num_block_group, sizeof( num_block_group ), 1, 1, f_name ) : false;
    ( frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false;

    for ( b = 0; b < nbands; b++ )
    {
        for ( int16_t sf = 0; sf < num_subframes; sf++ )
        {
            for ( int16_t bl = 0; bl < num_block_group; bl++ )
            {
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[0], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[1], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[2], byte_size, 1, 1, f_name );
                dbgwrite( &hMdDec->spar_md.band_coeffs[b].P_re[3], byte_size, 1, 1, f_name );
                // fprintf(stdout, "%f\t%f\t%f\t%d\t%d\n", dirac_md_kbps, spar_md_kbps, sba_md_kbps, qsi, code_strat );
            }
        }
    }*/
#endif
    /* expand DirAC MD to all time slots */
    for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ )
@@ -2822,7 +3001,7 @@ void ivas_spar_to_dirac(
                    else
                    {
#ifdef LBR_SBA
                        f_scale = ( st_ivas->hDecoderConfig->ivas_total_brate < IVAS_24k4 ) ? IVAS_ACTIVEW_DM_F_SCALE_VLBR : IVAS_ACTIVEW_DM_F_SCALE;
                        f_scale = ( active_w_vlbr ) ? IVAS_ACTIVEW_DM_F_SCALE_VLBR : IVAS_ACTIVEW_DM_F_SCALE;
#else
                        f_scale = IVAS_ACTIVEW_DM_F_SCALE;
#endif
@@ -2994,7 +3173,7 @@ void ivas_spar_to_dirac(
        num_subframes = 1;
    }
    ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, num_subframes, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg,
                                 end_band, num_bands_out / bw, sba_order_internal, dtx_vad, NULL, st_ivas->hQMetaData->useLowerRes, active_w_vlbr );
                                 end_band, num_bands_out / bw, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL, st_ivas->hQMetaData->useLowerRes, active_w_vlbr );

    if ( st_ivas->hQMetaData->useLowerRes && dtx_vad )
    {