Skip to content

AOM: User Manual for doing AOM CTC development in AWCY

Vibhoothi edited this page Nov 17, 2023 · 14 revisions

Author: vibhoothi <mindfreeze at videolan dot org>

Introduction

This wiki page serves as a guide on how to use AWCY for AOMedia use cases, specifically,

  • Submitting a CTC run with a CTC configurations
  • Submitting a run with a different build configuration
  • Generation of CTC results for existing or submitted AWCY runs
  • Downloading a job for browsing/analysing locally
  • Common FAQs of AWCY usage

Getting started with AWCY

AWCY (AreWeCompressedYet) is a platform which is currently designed for doing compression evaluation with specific configurations to compare Codec A with Codec B.

The canonical URL of AWCY is located at https://beta.arewecompressedyet.com

Screenshot 2023-07-04 at 23 45 54

The source code is split as frontend and backend,

Submitting a CTC run

The current AOM-CTC[1][2] consists of videos spanning from 270p to 4K HDR and with multiple coding configurations (e.g, Random-Access, Low-delay, All-Intra, adaptive-streaming).

Steps to submit a job with a certain coding configuration.

  1. Log in to AWCY with the given API Password [Refer to FAQ-Q1 if you want to obtain one]
  2. Click on "Submit New Job" under the "Active Runs" tab.
  3. Fill-in run-information

image

  1. Submit the job

How to fill run information before submission

  1. Make sure the target commit hash is inside the tracking repositories in AWCY [Refere to FAQ-Q2 to add your upstream to AWCY tracker for a repository].

Note: Currently, the commit hash by default is empty, and on-submission of no-commit reference will cause a runtime failure.

  1. Add the required CLI and build options to configure the run. (Refer #submitting-a-custom-build-run for more information)
  2. Enter either your IRC nick, or name, or email address.

Note: Email notification will be coming from <[email protected]>; Make sure you whitelist this email. For more information on the current email notification frequency, please refer to FAQ-Q3.

  1. If native CTC QPs are preferred, leave the "custom qualities column" blank. If you prefer a custom set of QP value/values, please provide a "space-separated values" [e.g., 120 130 140 150 160]
  2. Choose the desired CTC-Sets one by one. If the mandatory job is for a given configuration(s), please choose mandatory as the set value. While, if All sets in the AOM-CTC are required for testing, please choose All.

image

  1. Choose the desired CTC configuration [RA, LD, AI] one by one. If All configuration is chosen then the RA job will be Sequential GOP instead of parallel GOP. If Parallel-GOP is preferred, then manual selection would be required.

image

Part I: Submitting AOM-CTC Regular Run

For submitting an AOM-CTC regular run, users would need to utilise the CTC configuration section during the submission of the run. This includes selecting the required CTC configurations along with target sets (whether it is subset of video-sets, or mandatory sets, or all the videos).

Part II: Submitting AOM-CTC Adaptive-streaming run

For submitting an AOM-CTC Adaptive streaming run, users would need to be careful and need to do two things,

image

a) Choose "set" as aomctc-a1-4k-as b) Choose "Encoder" as AVM Adaptive Streaming (AS)/AVM Adaptive Streaming GOP Parallel.

Later, provide the commit ID, runID, and other parameters as regular runs.

Currently, it is not possible to submit both Regular and Adaptive-streaming together. We require two separate AWCY submissions to generate Regular and AS results.

Submitting a Custom Build Run

For submitting an AWCY run with custom encode specification (e.g., disabling a tool or changing CMAKE config). Please specify the Build options during the run submission.

image

Example of extra build options

Submitting custom runtime options for a run

For submitting an AWCY run with custom runtime options (CLI flags). Please specify the options during the run submission.

image

Example of extra runtime options

Generation of CTC XLSM results

In the current AWCY, anyone can generate CTC results [Please refer to FAQ-Q4 to know the current CTC version deployed, and respective anchor runs to be used]. AWCY can also generate partial CTC-XLSM results.

image

In the current deployment, a lightweight CSV export is also possible for a given AWCY run.

image

For generating the results, it is not mandatory to wait till the job is finished, the AWCY is capable of producing partial CTC results and the XLSM/CSV version of the result will be available on request.

Note: Currently CTC Excel file generation takes ~3 minutes to generate and download the file, please keep the current AWCY window opened during generation.

Downloading a CTC run (as zip)

For a given run, users can download the full run data (even when running), as a zip.

image

Generating Convex-hull for Adaptive-streaming jobs

Currently, the AWCY supports the generation of Convex-hull in the Frontend for quick visualisation for current AOM-CTC.

Steps to generate

  1. Select the current AS Anchor Run.
  2. Choose the desired target job.
image
  1. Wait for a minute to complete generation of the Convex-hull Curves
image
  1. Once the BD-Rate is generated in the Table, try to Select the Convex-hull variant of the clip from the Clip drop-down.
image image

AVM Nightly Jobs

In AWCY, we have a dedicated service which creates a nighty run for at every night ~00:30 UTC+0:00.

Nightly Configuration

  • Current HEAD commit from AVM on that day
  • AOM-CTC Mandatory Set
  • 17 Frames
  • For videos >2K resolution (A1/A2/B1), we run the encodes with --tile-columns=2 --threads=3 --row-mt=0 [3 Threads]

Machine usage for nightly

  • ((8 A1 (4K) Videos + 20 A2 (2K) Videos + 10 B1 (2K) Videos) * 3 threads + (9 B2 (~2K) + 4 A5 (270p) + 6 A4 (360p) + 8 A3 (720p)) * 1 threads) * 6 QPs ~ 846 Slots of the AWCY machine, around 7.5 machines in-use.
  • Currently, it is floating between 15-20 hours for the nightly run depending on the CTC Version in-use. [Updated on 20231217]

SVT-AV1 Periodic Encode Jobs

TO-Be-Filled

FAQs

Q1. How to get access to AWCY?

Please email with official AOMedia ID to mindfreeze at videolan dot org, and CC thomas.daede at vimeo dot com

Q2. How to add my remote tracking for a given codec (AV1/AVM)?

Please email with official AOMedia ID to mindfreeze at videolan dot org, and CC thomas.daede at vimeo dot com

Q3. What is the email notification frequency for a run?

Currently, in AWCY, we support notifying the user when a) A set for a given configuration is completed. b) A configuration for a given configuration is completed. c) When all the run is completed. d) When a job is failed or cancelled.

Q4. What is the current CTC version deployed in AWCY?

AOM-CTC version: CTCv4.0

Regular CTCv4.0 Anchor: https://beta.arewecompressedyet.com/?job=AVM-Research-v4.0.0-Regular-All-CTCv4

Adaptive-Streaming CTCv4.0 Anchor: https://beta.arewecompressedyet.com/?job=AOM-CTCv4.0-AS-Anchor

Q5. What is the current availability of machines?

Please navigate to Debug Menu and click on get_machine_usage.json to get the exact specifics on a slot-by-slot with a machine-by-machine basis. image

Q6. What is the Hardware of the AWCY machines?

Currently AWCY have 12 Runners in production, All the runners are made of the same configuration.

They are listed below,

CPU: Intel Xeon Platinum 8280 (112) @ 2.700GHz [56 Cores, 112 Threads]
RAM: 755GB
BIOS Configuration,
   Hyper-Threading   :   Enabled           
   Hardware P-States :   Disabled          
   Package C-State   :   C0/C1 state       
   Processor C6      :   Disabled          
Kernel Arguments: intel_pstate=disable intel_idle.max_cstate=0 numa_balance=disable nml_watchdog=0 nosoftlockup hpet=disablemce=off tsc=reliable memory_corruption_check=0
OS: Ubuntu 22.04.3 LTS x86_64 with 5.15.0-78-generic
Serverboard: https://www.intel.com/content/www/us/en/products/sku/89015/intel-server-board-s2600wft/specifications.html
Disk: 512GB SSD [INTEL SSDSCKKI51]

References

[1]: CTCv4.0, CWG-C097, https://groups.aomedia.org/g/wg-codec/files/InputDocuments/C2022/CWG-C097/CWG-C097_AV2_CTC_v4.pdf [Protected];

[2]: CTCv2.0, https://aomedia.org/docs/CWG-B075o_AV2_CTC_v2.pdf [Public]