Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Loud clicks/transients in SILK mode for music input when inbandfec and loss >= 21%

Aperta
#505 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

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

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).

Image

./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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di xiph/opus

Tutte le issue di xiph/opus

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.