Skip to content

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