Skip to content

Draft: [CI] Loudness measurement with pinknoise

Description

This MR (along with the related changes in the ivas-codec-ci repo) adds a CI job that can be manually triggered to perform a loudness measurement and analysis.

A summary of the job and how to use it is below.

How to trigger a pipeline

  1. Go to the pipeline page
  2. Click "New pipeline"
  3. [Select this branch (ci/loudness-measurements-pinknoise) from the dropdown on the top left]1
  4. ⚠️ Make sure to set MANUAL_PIPELINE_TYPE to loudness2
  5. Edit LOUDNESS_CONFIG3 or LOUDNESS_FORMATS as necessary
  6. Click "New pipeline" at the bottom

Pipeline results

The pipeline has three stages, build, test and compare.

The test stage runs the loudness-measurement job, which only runs the codec and measures loudness on the input and output files. The resulting data can be found as a CSV file in the artifacts of this job (loudness.csv). This CSV file can be inspected for more detailed information (loudness values, what mode was run, which file was used, what scaling factor is needed to achieve the desired loudness)

The compare stage runs the loudness-analysis job, which parses the loudness.csv data from the previous job and produces plots. The plots are one way to visualise the resulting data, additional interpretations or code suggestions are welcome.

Technical description

The pipeline uses 3 steps/scripts to obtain results:

  1. Codec running stage with runIvasCodec.py
  • Runs each format using the -x argument to filter modes
  • Needs an appropriate site config json file (-p argument)
  1. Loudness measurement with ivas-processing-scripts based scripts/get_loudness_data.py
  • Uses ivas-processing-scripts.audiotools.wrappers.bs1770 to measure loudness, resampling to 48kHz and rendering to a loudness measurement format will take place if necessary
  • Measures input loudness on the site config input files
  • Measures output loudness on the files generated by runIvasCodec.py in the out/ directory
  • Generates loudness.csv with raw data (measured loudness, filenames, scaling factor needed to achieve reference loudness etc.)
  1. Plot generation using scripts/parse_loudness_data.py
  • Uses loudness.csv from the previous step (or tries to find the last successful loudness-measurement job artifacts)
  • Produces plots based on input format, output format and max_band configurations
  1. Will not be required once this MR is merged to main

  2. loudness-measurement and loudness-analysis may also be selected individually. See the next section and technical description for further info.

  3. Currently only scripts/config/ci_loudness_linux.json is supported. This is due to inconsistent naming of metadata files for STV and LTV configs.

Edited by Archit Tamarapu

Merge request reports

Loading