Loud clicks/transients in SILK mode for music input when inbandfec and loss >= 21%
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- c
- Ambito
- audio-video-rtc
Direzione di ricerca
The issue is in the SILK encoder when in-band FEC is enabled with loss >=21%. Start by examining the SILK encoder source files, likely in silk/ directory, focusing on FEC and loss handling. Look for thresholds around 20-21% loss. Reproduce using the provided opus_demo commands with the test file to confirm the clicks. Check the encoder's packet loss simulation and FEC generation logic. Verify the fix by encoding/decoding and comparing spectrograms for clean output.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version: libopus 1.6.1-70-g91012c65, float build, DRED / deep-PLC / OSCE disabled. Built on MacOS/aarch64 using default build settings.
Summary
Encoding music with in-band FEC enabled produces loud, click-like artifacts in the primary frames when the declared packet loss percentage is 21% or higher, but not at 20%. No packets are actually lost — encode and decode are run back to back, and the range coder states match. This was discovered when encoding music with inbandfec enabled and the loss-parameter set to 21% or more. Later it was discovered that the problem occurs in the SILK part of the coding.
The problem was initially discovered when encoding music in a typical realtime audio communication setting.
Reproduces at both -complexity 1 and -complexity 9
Reproduces at 64 kb/s and 128 kb/s
restricted-silk with -bandwidth WB, so hybrid mode, mode switching, and redundancy are excluded
Disappears entirely without -inbandfec
Threshold is sharp: 20% clean, 21% affected
The compared spectrogram shows wideband "bursts" from around 6s to 12s that are quite audible in the top plot (output from decoder) that are not present in the original input (bottom).
./builddir/src/opus_demo -e voip 48000 1 64000 -complexity 9 -inbandfec -loss 30 valkyrie_s16.raw tmp.opus
./builddir/src/opus_demo -d 48000 1 tmp.opus valkyrie_s16_silk_30pcloss_2gen.raw
How to reproduce:
./builddir/src/opus_demo -e restricted-silk 48000 1 64000 -complexity 9 -inbandfec -loss 21 valkyrie_s16.raw tmp.opus
./builddir/src/opus_demo -d 48000 1 tmp.opus valkyrie_s16_silk_21pcloss_2gen.raw
Counter-example where the problem is not observed:
../builddir/src/opus_demo -e restricted-silk 48000 1 64000 -complexity 9 -inbandfec -loss 20 valkyrie_s16.raw tmp.opus
./builddir/src/opus_demo -d 48000 1 tmp.opus valkyrie_s16_silk_20pcloss_2gen.raw
- Lingua principale
- C
- Stelle
- 3.4k
- Fork
- 820
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di xiph/opus
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Windows CMake CI is brokenForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 40/100
-
Signed integer overflow in frame_size_select's own validation lets a huge frame_size through to a stack allocationForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
Issue simili
-
GPU-UNLOCK RTX 4070 (2786) Gigabyte 1458:416C: cold boot AND warm reboot unlock, Ubuntu 26.04Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
JustAResearcher/gpu-unlock-ada#124 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
inflate: total_in uses plain += on c_ulong (32-bit on Windows), panics in debug for streams > 4 GiBAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
trifectatechfoundation/zlib-rs#570 · 1 commento ·
-
ci: mingw64 cross-compile fails on ubuntu-26.04 because Wine 10 drops /usr/lib/wine/wine64Forse già presa @hyoklee l’ha presa oggi. ApertaComponent - Testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno