Loading lib_dec/ivas_spar_md_dec.c +181 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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++ ) Loading Loading @@ -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 Loading Loading @@ -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 ) { Loading Loading
lib_dec/ivas_spar_md_dec.c +181 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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++ ) Loading Loading @@ -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 Loading Loading @@ -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 ) { Loading