SID 5.2 kbps ToDos in Qmetadata
As a follow-up to #60 (closed) and #111 (closed), there left few todos to properly solve the previous mismatch of DTX SID bitrates. Namely in ivas_qmetadata_dec_sid_encode()
/ ivas_qmetadata_dec_sid_decode()
:
if ( ivas_format == SBA_FORMAT )
{
if ( sba_mode == SBA_MODE_SPAR )
{
#ifdef ALIGN_SID_SIZE
/* TODO: still use old sid frame size to keep bitexactness */
metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/
#else
metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/
#endif
}
else
{
/* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/
#ifdef ALIGN_SID_SIZE
/* TODO: still use old sid frame size to keep bitexactness */
metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#else
metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#endif
}
}
else
{
#ifdef ALIGN_SID_SIZE
/* TODO: still use old sid frame size to keep bitexactness */
metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#else
metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#endif
}
Next, properly manage the padding bits:
/* TODO: temporary hack, need to decide what to do with core-coder bitrate */
Edited by multrus