Skip to content

[non-BE] #168 - AGC Tuning change to fix clicking artifact and enable AGC for SBA SPAR 1TC mode.

Please first look at issue #168 (closed) for the details.

A tuning change has been done to fix a clicking artifact (of which is described in the issue #168 (closed).) The changes include:

  • Limiting the attack/release done per frame to 6dB
    • In the code, this attack/release amount is configurable at compile time using the DBSTEP macro
  • Always distributing the total amount of attack/release to be done across a maximum of 3 frames
  • Removing hard transition cases and instead always doing a smooth transition

These changes are bit exact for signals that do not become OOR inside the encoder. However the changes are, of course, not bit exact for non-OOR signals.

AGC will be enabled by default when 1 transport channel is used and in SBA mode. This translates to bitrates of 24.4 and 32kbps in SBA. It is enabled only in these modes, because these are the modes where we know out of range signals can occur, and because degradations are known to occur for the 1 transport channel case. Further explanation is done in issue #168 (closed). Otherwise AGC is disabled. In the command line, a user can force agc to be enabled or disabled using the -agc flag. If a user does not specify the -agc flag, then the default behaviour will be done.

Additional tests have been added, where for any test in tests/test_sba_bs_dec_plc.py and tests/test_sba_bs_enc.py which had agc has a paramaeter, agc undefined case was added. For any other existing tests which had set AGC to off, it has been changed to be AGC undefined to maintain the previous intent. For the python files touched, small editorial changes were made to comply with the pep8 standard.

Co-authored-by: Benjamin McDonald benjamin.mcdonald@dolby.com Co-authored-by: Panji Setiawan panji.setiawan@dolby.com

Related to #168 (closed)

Merge request reports

Loading