Loading .gitlab-ci.yml +3 −3 Original line number Diff line number Diff line Loading @@ -378,14 +378,14 @@ stages: # templates to define stages and platforms .test-job-linux: tags: - ivas-basop-linux - ivas-linux .build-job-linux: stage: build timeout: "2 minutes" needs: [] tags: - ivas-basop-linux - ivas-linux .build-job-windows: stage: build Loading Loading @@ -735,7 +735,7 @@ uninterruptible: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always tags: - ivas-basop-linux - ivas-linux # --------------------------------------------------------------- # Validation jobs Loading lib_dec/ivas_binRenderer_internal.c +4 −3 Original line number Diff line number Diff line Loading @@ -1956,7 +1956,7 @@ void ivas_binRenderer_fx( { IVAS_QUATERNION Quaternions_abs, Quaternions_ref, Quaternions_ref2; Word32 Rmat_local[3][3]; Word16 q_fact_orig; Word16 q_fact_orig, extra_shift = 0; IF( hCombinedOrientationData && hBinRenderer->rotInCldfb ) { Loading @@ -1972,6 +1972,7 @@ void ivas_binRenderer_fx( Quaternions_ref2.x_fx = 0; Quaternions_ref2.y_fx = 0; Quaternions_ref2.z_fx = 0; extra_shift = 1; } ELSE { Loading Loading @@ -2028,9 +2029,9 @@ void ivas_binRenderer_fx( { FOR( k = 0; k < CLDFB_NO_CHANNELS_MAX; k++ ) { Cldfb_RealBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_RealBuffer_Binaural_64fx[i][j][k], 29 ) ); //(*Q_in + 29) - 29 Cldfb_RealBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_RealBuffer_Binaural_64fx[i][j][k], 29 - extra_shift ) ); //(*Q_in + 29) - 29 move32(); Cldfb_ImagBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_ImagBuffer_Binaural_64fx[i][j][k], 29 ) ); //(*Q_in + 29) - 29 Cldfb_ImagBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_ImagBuffer_Binaural_64fx[i][j][k], 29 - extra_shift ) ); //(*Q_in + 29) - 29 move32(); } } Loading lib_isar/lib_isar_pre_rend.c +22 −9 Original line number Diff line number Diff line Loading @@ -474,28 +474,40 @@ ivas_error ISAR_PRE_REND_MultiBinToSplitBinaural( num_slots = shr( tmp, sub( 15, tmp_e ) ); // Q0 // num_slots = (Word16) CLDFB_NO_COL_MAX * ivas_fs / 20; /* CLDFB synthesis of main pose */ FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { Word32 *Cldfb_In_BinReal_p_fx[CLDFB_NO_COL_MAX]; Word32 *Cldfb_In_BinImag_p_fx[CLDFB_NO_COL_MAX]; q1 = 31; q2 = 31; move16(); move16(); FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { FOR( j = 0; j < CLDFB_NO_COL_MAX; j++ ) { q1 = s_min( getScaleFactor32( Cldfb_In_BinReal_fx[ch][j], CLDFB_NO_CHANNELS_MAX ), q1 ); q2 = s_min( getScaleFactor32( Cldfb_In_BinImag_fx[ch][j], CLDFB_NO_CHANNELS_MAX ), q2 ); } } q_final = s_min( q1, q2 ); q_final = s_min( add( Q_buff_re, q_final ), add( Q_buff_im, q_final ) ); q_final = sub( q_final, 3 ); // guard bits q_final = s_min( q_final, Q25 ); FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { FOR( j = 0; j < CLDFB_NO_COL_MAX; j++ ) { Scale_sig32( Cldfb_In_BinReal_fx[ch][j], CLDFB_NO_CHANNELS_MAX, sub( q_final, Q_buff_re ) ); Scale_sig32( Cldfb_In_BinImag_fx[ch][j], CLDFB_NO_CHANNELS_MAX, sub( q_final, Q_buff_im ) ); } } } FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { Word32 *Cldfb_In_BinReal_p_fx[CLDFB_NO_COL_MAX]; Word32 *Cldfb_In_BinImag_p_fx[CLDFB_NO_COL_MAX]; FOR( slot_idx = 0; slot_idx < num_slots; slot_idx++ ) { Loading @@ -514,6 +526,7 @@ ivas_error ISAR_PRE_REND_MultiBinToSplitBinaural( hSplitBin->hCldfbHandles->cldfbSyn[ch]->Q_cldfb_state = Q_out[ch]; move16(); } assert( Q_out[0] == Q_out[1] ); #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS available_bits = ( SplitRendBitRate / FRAMES_PER_SEC ) - pBits->bits_written; Loading Loading
.gitlab-ci.yml +3 −3 Original line number Diff line number Diff line Loading @@ -378,14 +378,14 @@ stages: # templates to define stages and platforms .test-job-linux: tags: - ivas-basop-linux - ivas-linux .build-job-linux: stage: build timeout: "2 minutes" needs: [] tags: - ivas-basop-linux - ivas-linux .build-job-windows: stage: build Loading Loading @@ -735,7 +735,7 @@ uninterruptible: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always tags: - ivas-basop-linux - ivas-linux # --------------------------------------------------------------- # Validation jobs Loading
lib_dec/ivas_binRenderer_internal.c +4 −3 Original line number Diff line number Diff line Loading @@ -1956,7 +1956,7 @@ void ivas_binRenderer_fx( { IVAS_QUATERNION Quaternions_abs, Quaternions_ref, Quaternions_ref2; Word32 Rmat_local[3][3]; Word16 q_fact_orig; Word16 q_fact_orig, extra_shift = 0; IF( hCombinedOrientationData && hBinRenderer->rotInCldfb ) { Loading @@ -1972,6 +1972,7 @@ void ivas_binRenderer_fx( Quaternions_ref2.x_fx = 0; Quaternions_ref2.y_fx = 0; Quaternions_ref2.z_fx = 0; extra_shift = 1; } ELSE { Loading Loading @@ -2028,9 +2029,9 @@ void ivas_binRenderer_fx( { FOR( k = 0; k < CLDFB_NO_CHANNELS_MAX; k++ ) { Cldfb_RealBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_RealBuffer_Binaural_64fx[i][j][k], 29 ) ); //(*Q_in + 29) - 29 Cldfb_RealBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_RealBuffer_Binaural_64fx[i][j][k], 29 - extra_shift ) ); //(*Q_in + 29) - 29 move32(); Cldfb_ImagBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_ImagBuffer_Binaural_64fx[i][j][k], 29 ) ); //(*Q_in + 29) - 29 Cldfb_ImagBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_ImagBuffer_Binaural_64fx[i][j][k], 29 - extra_shift ) ); //(*Q_in + 29) - 29 move32(); } } Loading
lib_isar/lib_isar_pre_rend.c +22 −9 Original line number Diff line number Diff line Loading @@ -474,28 +474,40 @@ ivas_error ISAR_PRE_REND_MultiBinToSplitBinaural( num_slots = shr( tmp, sub( 15, tmp_e ) ); // Q0 // num_slots = (Word16) CLDFB_NO_COL_MAX * ivas_fs / 20; /* CLDFB synthesis of main pose */ FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { Word32 *Cldfb_In_BinReal_p_fx[CLDFB_NO_COL_MAX]; Word32 *Cldfb_In_BinImag_p_fx[CLDFB_NO_COL_MAX]; q1 = 31; q2 = 31; move16(); move16(); FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { FOR( j = 0; j < CLDFB_NO_COL_MAX; j++ ) { q1 = s_min( getScaleFactor32( Cldfb_In_BinReal_fx[ch][j], CLDFB_NO_CHANNELS_MAX ), q1 ); q2 = s_min( getScaleFactor32( Cldfb_In_BinImag_fx[ch][j], CLDFB_NO_CHANNELS_MAX ), q2 ); } } q_final = s_min( q1, q2 ); q_final = s_min( add( Q_buff_re, q_final ), add( Q_buff_im, q_final ) ); q_final = sub( q_final, 3 ); // guard bits q_final = s_min( q_final, Q25 ); FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { FOR( j = 0; j < CLDFB_NO_COL_MAX; j++ ) { Scale_sig32( Cldfb_In_BinReal_fx[ch][j], CLDFB_NO_CHANNELS_MAX, sub( q_final, Q_buff_re ) ); Scale_sig32( Cldfb_In_BinImag_fx[ch][j], CLDFB_NO_CHANNELS_MAX, sub( q_final, Q_buff_im ) ); } } } FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { Word32 *Cldfb_In_BinReal_p_fx[CLDFB_NO_COL_MAX]; Word32 *Cldfb_In_BinImag_p_fx[CLDFB_NO_COL_MAX]; FOR( slot_idx = 0; slot_idx < num_slots; slot_idx++ ) { Loading @@ -514,6 +526,7 @@ ivas_error ISAR_PRE_REND_MultiBinToSplitBinaural( hSplitBin->hCldfbHandles->cldfbSyn[ch]->Q_cldfb_state = Q_out[ch]; move16(); } assert( Q_out[0] == Q_out[1] ); #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS available_bits = ( SplitRendBitRate / FRAMES_PER_SEC ) - pBits->bits_written; Loading