- Feb 10, 2024
-
-
xcorr_kernel_neon_fixed() read one more sample from y[] in the main loop than it needed to allow use of vector loads, but unlike the native asm in celt_pitch_xcorr_arm.s, the loop condition did not exit early enough to prevent this from overrunning the end of the array. Additionally, the tail loop _always_ read one value beyond what it needed. This patch fixes the loop condition on the main loop. Since this makes the tail section run even for lengths that are a multiple of 8 (e.g., on fully half the multiplies for usages like celt_fir() or celt_iir() with an order of 16, which is common), rather than try to fix the tail loop, we replace it with a non-looping adaptation of the native asm, which continues to use vector loads as much as possible for the remaining elements (and also does not read ahead past the end of the y[] array). Overall slowdown of test_opus_encode on a Raspberry Pi 5 Model B Rev 1.0 is 0.12% vs. 0.13% for fixing the existing tail loop. Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
Compare the output of xcorr_kernel() against the results of xcorr_kernel_c() when configured with --enable-check-asm. Currently this is only checked in fixed point, as a float check requires more sophisticated error analysis and may need to be customized for each vector implementation. Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Feb 07, 2024
-
-
Jean-Marc Valin authored
Still need more targeted tests, DRED decoding
-
Jean-Marc Valin authored
Same for opus_multistream_packet_unpad()
-
- Feb 06, 2024
-
-
Jean-Marc Valin authored
Forgot to account for padding length bytes when DRED payload is large.
-
Jean-Marc Valin authored
Fails ubsan because memcpy declares args as non-null
-
- Feb 02, 2024
-
-
Jean-Marc Valin authored
Matches the C version (see 4a7027b2)
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Found using `codespell -q 3 -L caf,highe,inlin,nd,ordert,shft` Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Feb 01, 2024
-
-
Jean-Marc Valin authored
-
- Jan 31, 2024
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
- Jan 25, 2024
-
-
Jean-Marc Valin authored
Rename, reindent, change arg order
-
-
-
-
-
-
-
Need to move the redundant frame even in CBR because the hybrid frame now gets encoded as VBR, with DRED picking up the rest. Fixes an issue introduced in 4600e775.
-
The encoder wouldn't reserve enough bits for CELT, causing it to not have enough bits to code the switching redundancy flag when it should have.
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
Adjust q0, qD and duration based on bitrate and loss.
-
- Jan 23, 2024
-
-
Jan Buethe authored
-
- Jan 22, 2024
-
-
Jan Buethe authored
-
Jan Buethe authored
-
Jan Buethe authored
-
- Jan 21, 2024
-
-
Jean-Marc Valin authored
No longer needed now that PLC is trained with PyTorch stack
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
Should handle the history in a more consistent way. Slightly increase the model size and re-enable biased band loss in training.
-
- Jan 20, 2024
-
-
Jan Buethe authored
-
- Jan 17, 2024
-
-
Jean-Marc Valin authored
mostly untested
-
- Jan 15, 2024
-
-
Jean-Marc Valin authored
Should match the TF2 code, but mostly untested
-
- Dec 23, 2023
-
-
Jean-Marc Valin authored
Constrains the energy prediction to something safe.
-
- Dec 22, 2023
-
-
Jean-Marc Valin authored
-