AOMedia AV1 Codec: CHANGELOG

| AOMedia AV1 Codec

CHANGELOG

    2025-04-11 v3.12.1
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.12.0..v3.12.1 for all the
      commits in this release.

      - Bug Fixes
        * b:396169342: Assertion
          `av1_is_subpelmv_in_range(&ms_params.mv_limits, start_mv)' failed.
        * b:401671154: typo in void init_src_params(...)
        * Coverity defect 323670: Uninitialized scalar variable in
          encode_with_and_without_superres()
        * cmake: bump minimum version to 3.16
        * cfl_ppc: fix subtract_average_vsx
        * Fix an incorrect index in av1_highbd_pixel_proj_error_neon

    2025-02-10 v3.12.0
      This release includes new codec interfaces, compression efficiency and
      perceptual improvements, speedup and memory optimizations, and bug
      fixes. This release is ABI compatible with the last release.

      Five internal functions (aom_free, aom_malloc, aom_wb_bytes_written,
      aom_wb_write_bit, aom_wb_write_literal) that were exported by mistake
      are no longer exported from the libaom shared library. The removal of
      these internal functions from the ABI is a bug fix and does not break
      ABI compatibility.

      Acknowledgments: The image quality optimizations in the new tuning
      mode AOM_TUNE_IQ were originally developed for SVT-AV1-PSY by
      Cole Ogaard, Gianni Rosato, Julio Barba, and Zakaria Djebrouni.

      - New Features
        * New tuning mode AOM_TUNE_IQ (image quality) for the
          AOME_SET_TUNING codec control (--tune=iq) in all-intra mode. The
          feature detection macro AOM_HAVE_TUNE_IQ, if defined, indicates
          that AOM_TUNE_IQ is available. The image quality optimizations in
          AOM_TUNE_IQ were developed by using the SSIMULACRA 2 metric for
          guidance and validated with subjective visual quality checks.
        * New value 6 for the AV1E_SET_DELTAQ_MODE codec control
          (--deltaq-mode): use modulation for all intra using Variance
          Boost. Variance Boost is a variance adaptive quantization
          implementation that modulates qindex depending on the ratio of
          low-variance to high-variance 8x8 subblocks within a 64x64
          superblock, as well as the actual variance of the subblocks
          themselves.
        * New value 3 for the AV1E_SET_ENABLE_CDEF codec control
          (--enable-cdef): Enable CDEF adaptively based on frame qindex.
        * In all-intra mode, the AOME_SET_SHARPNESS codec control now also
          sets the loop_filter_sharpness syntax element in the bitstream.
          Larger values increasingly reduce how much the filtering can
          change the sample values on block edges to favor perceived
          sharpness.
        * In all-intra mode, the default value of the AV1E_SET_QM_MIN codec
          control is decreased to 4, and the default value of the
          AV1E_SET_QM_MAX codec control is increased to 10. The default
          values in good-quality and realtime modes remain unchanged (5 and
          9, respectively).

      - Compression Efficiency Improvements
        * Tuning mode AOM_TUNE_IQ improves image compression efficiency on
          the CLIC dataset by up to 12% for the same SSIMULACRA 2 score, up
          to 14% for the same DSSIM score, and up to 17% for the same
          Butteraugli score.
        * ~3% BD-rate gains for speed 11 VGA camera mode.
        * ~5% BD-rate gains for speed 11 on scroll clips screen mode.

      - Perceptual Quality Improvements
        * Adjust temporal filter strength for better visual quality.
        * RTC screen: visual quality improvements for scrolling and for
          scene/slide changes.
        * RTC camera mode: visual quality improvements for speed 11 VGA.

      - Speedup and Memory Optimizations
        * Optimize the Arm Neon implementation of the loop filter functions
          with an average uplift of 15 - 25% in microbenchmarks.
        * Add the CDEF optimization for RISC-V.
        * Help the compiler generate better vectorized code for variance
          calculation and warped motion in generic CPU builds.
        * Make several arrays const.

      - Other Improvements
        * Binary size reduction: 1 - 2% compared with last release, with
          CONFIG_REALTIME_ONLY enabled, CONFIG_AV1_DECODER and
          CONFIG_AV1_HIGHBITDEPTH disabled.
        * Build: compile source files in parallel under MSVC.

      - Bug Fixes
        * Fix bug where metadata added with aom_img_add_metadata was lost
          when frame scaling was used.
        * Bug b:383306740: RTC: Fix to issues with scrolling for screen
          content.
        * Bug b:382465458: RTC: Fix to artifact for grayscale input.
        * Bug b:380247338: RTC: Fix to encode_time spikes on scene/slide
          changes.
        * RTC: Fix to rate correction factor update for VBR screen mode.
          https://groups.google.com/a/aomedia.org/g/av1-discuss/c/nJxECdg-7P8
        * Bug b:378401081: RTC: Fix to cyclic refresh update for external RC
          (rate control).

    2024-10-24 v3.11.0
      This release includes perceptual quality improvements, binary size reduction
      under certain configurations and many bug fixes. This release changes the
      default encoder configuration for the AOM_USAGE_REALTIME mode. This release
      is ABI compatible with the last release.

      - Perceptual Quality Improvements
        * Visual quality improvements for RTC screen content
          * Higher quality on scene or slide changes
          * Faster quality ramp-up for static content after scene change
          * Quality improvements for screen content with active maps

      - Speedup
        * Added and improved Neon SIMD paths for dynamic frame scaling with ~1.5%
          overall encoding speedup.

      - Other Improvements
        * Binary size reduction: 10% compared with last release, with
          CONFIG_REALTIME_ONLY enabled, CONFIG_AV1_DECODER and
          CONFIG_AV1_HIGHBITDEPTH disabled.
        * Update default_extra_cfg for CONFIG_REALTIME_ONLY to provide proper RTC
          defaults settings
        * Change the default valuess of the following encoder config options in the
          AOM_USAGE_REALTIME mode:
          *  rc_overshoot_pct and rc_undershoot_pct are changed from 25 to 50
          *  rc_buf_sz is changed from 6000 to 1000
          *  rc_buf_initial_sz is changed from 4000 to 600
          *  rc_buf_optimal_sz is changed from 5000 to 600

      - Bug Fixes
        * aomedia:363016123: rtc: Fix setting of intra-only frame for
          set_ref_frame_config and add checks
        * aomedia:42302583: rtc: Fix for artifacts for screen with active_maps
        * b:365088425: rtc: Allow for lower-QP on scene/slide changes
        * b:367285382: Fix to encoder quality max-out too early for screen
        * b:362936830: rtc: Allow QP to decrease more aggressively for static
          content
        * b:361617762: Clamp the calculation of sb64_target_rate to INT_MAX
        * chromium:362123224: rtc-svc: Reset ref_map_idx for references not used
        * chromium:367892770: Fix to possible integer overflow in reset_rc
        * webrtc:369633254: rtc-svc: Fix to reset ref_idx for svc
        * Fix exit condition in rate correction update

    2024-08-27 v3.10.0
      This release includes new codec interfaces, compression efficiency and
      perceptual improvements, speedup and memory optimizations and many bug
      fixes. This release is ABI compatible with the last release.

      The definitions of the internal macros AOM_INLINE and AOM_FORCE_INLINE
      have been removed from the public header aom/aom_integer.h.

      - New Features
        * New codec controls:
          * AV1E_SET_AUTO_TILES
          * AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC
          * AV1E_SET_POSTENCODE_DROP_RTC: Post encode frame drop feature.
          * AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR
        * New key-value pair for aom_codec_set_option():
          * "auto-tiles": equivalent to the new codec control
            AV1E_SET_AUTO_TILES.

      - Deprecated Features
        * Deprecated codec control:
          * AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR: Use the new codec control
            AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR instead.
        * The sframe_mode field in the aom_codec_enc_cfg_t struct is not
          implemented.

      - Compression Efficiency Improvements
        * BD-rate gain of 0.7 - 1.3% (by enabling global motion tool) for
          speed 5 and speed 6 with ~5% encode time increase.
        * RTC speed 11 video: ~3-5% BD-rate gain for VGA and QVGA.

      - Perceptual Quality Improvements
        * RTC quality improvements for slide changes and scrolling content.

      - Speedup and Memory Optimizations
        * RTC screen content speedups:
          * ~2x speedup for high motion content for speed 11.
          * ~2x speedup on key frame coding for speed >= 10.
        * Arm: Significant uplifts in speed in this release (vs v3.9.1) have
          come from tuning the various convolutions according to filter size
          (doing 8-tap when only 2-tap is required is inefficient) and also
          deploying Armv8.6 USMMLA instructions in 6-tap and 12-tap standard
          bitdepth convolutions.
          * Standard bitdepth RTC:
            * speed 5: +5%
            * speed 6: +4%
            * speed 7: +5%
            * speed 8: +4%
            * speed 9: +6%
            * speed 10: +6%
          * Standard bitdepth VoD:
            * speed 0: +9%
            * speed 1: +12%
            * speed 2: +9%
            * speed 3: +3%
            * speed 4: +3%
            * speed 5: -9% (expected due to global motion changes)
            * speed 6: -3% (expected due to global motion changes)
          * High bitdepth VoD:
            * speed 0: +4%
            * speed 1: +19%
            * speed 2: +23%
            * speed 3: +1%
            * speed 4: +1%
            * speed 5: -8% (expected due to global motion changes)
            * speed 6: -3% (expected due to global motion changes)
          * Standard bitdepth 2x1 horizontal super-resolution/scaling
            encoding: +101%

      - Other Improvements
        * Reduce bit rate overshoot on slide content.

      - Bug Fixes
        * rtc: Bug fix for active_maps with sb_size=128.
        * b:343429036: rtc: Fix source_sad setting near boundary.
        * Fix to QP for temporal enhancement after key frame.
        * b:343429192: rtc: Condition QP adjustment on rc->q_1/2_frame > 0.

    2024-06-07 v3.8.3
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.8.2..v3.8.3 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:2754, aomedia:3567: Ensure thread stack size is at least
          256 KB
        * aomedia:3382, chromium:339877165: update codec config after
          svc/scale controls (CVE-2024-5493)
        * aomedia:3561: libaom-3.8.2 armv7 Android build failed
        * aomedia:3580: Allow g_timebase.num to be greater than
          g_timebase.den
        * Arm SVE build fixes.
        * av1_block_error_lp_neon: fix block_size param type

    2024-06-05 v3.9.1
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.9.0..v3.9.1 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:2754, aomedia:3567: Ensure thread stack size is at least
          256 KB
        * b:330639949, oss-fuzz:68195: Increase scaling in linsolve_wiener
        * Fix high target data rate overflow.
        * aomedia:3509: Fix two UBSan errors in av1_rc_update_framerate()
        * aomedia:3382, chromium:339877165: update codec config after
          svc/scale controls (CVE-2024-5493)
        * aomedia:3561: libaom-3.8.2 armv7 Android build failed
        * aomedia:3571: {,highbd_}intrapred_neon.c: Avoid over-reads in z1
          and z3 preds
        * aomedia:3578: libaom-3.9.0 undefined reference to
          `aom_sub_pixel_variance16xh_ssse3'
        * aomedia:3579: Use round for RC calculations in cyclic_refresh
        * aomedia:3580: Allow g_timebase.num to be greater than
          g_timebase.den
        * oss-fuzz:68774: libaom:av1_dec_fuzzer: Segv on unknown address in
          od_ec_dec_init
        * Arm SVE build fixes.
        * av1_block_error_lp_neon: fix block_size param type
        * av1_block_error_lp_sve: fix block_size param type

    2024-04-09 v3.9.0
      This release includes new codec interfaces, compression efficiency and
      perceptual improvements, speedup for RTC for both video and screen content,
      and many bug fixes. This release is ABI compatible with the previous release.

      - New Features
        * New codec control
          * AV1E_SET_SVC_FRAME_DROP_MODE is added to configure the SVC encoder to
            only drop spatial layers or the whole superframe.
        * Active Map is fixed and tested for RTC.
        * CONFIG_QUANT_MATRIX is added to disable quantization matrices when aom
          decoder is disabled with CONFIG_AV1_DECODER. Reduces ~10% binary size when
          both are disabled.
        * libwebm is updated to libwebm-1.0.0.31-1-gaffd7f4.

      - Compression Efficiency Improvements
        * RTC encoding improvements
          * 1-2% BD-rate gain for screen content with temporal layers; 5% BD-rate
            gain on scrolling content.

      - Perceptual Quality Improvements
        * For RTC screen content
          * Reduced color artifacts for RTC screen content
          * Visual quality improved for scene changes for SVC with quality layers.
          * Removed visual artifacts for speed 11

      - Speedups:
        * RTC Speed 11: aggressive speedup setting added for video mode,
          resolutions <= VGA: ~30% faster than speed 10.
        * 5-9% speed up for high bit-depth encoding with good mode on Arm, half of
          which comes from SVE/SVE2 optimizations.

      - Other improvements
        * Further improvements to global motion estimation.
        * Documented minimum required SIMD support: SSE4.1 on x86, Neon on Arm.
        * Remove unneeded SIMD functions, saving >100 KiB from binary size.
        * Cleaned up and improved pattern_search.
        * Added end-to-end c vs SIMD bit-exactness test.
        * Added config flag to calc psnr using libvmaf peak: use a slightly
          different peak value for PSNR (1020 and 2040 for 10- and 12-bit)

      - Bug Fixes
        * Fuzzing bug fixes
          * b/329485898 Null-dereference WRITE in av1_cdef_frame_mt
          * b/329810149 Null-dereference WRITE in av1_cdef_copy_sb8_16
          * b/329813868 Ill in av1_cdef_frame_mt
          * chromium:327882824 Null-dereference WRITE in av1_cdef_init_fb_row
          * b/330014723 Null-dereference WRITE in
            cdef_copy_rect8_16bit_to_16bit_avx2
          * b/310455204 Null-dereference WRITE in prepare_enc_workers
          * b/314858909 Heap-buffer-overflow in aom_variance64x64_avx2
          * oss-fuzz:67132 av1_dec_fuzzer: ASSERT: (pbi->tile_count_minus_1 + 1) <=
            (pbi->output_frame_width_in_tiles_minus_1 + 1)
          * oss-fuzz:67058 av1_dec_fuzzer: ASSERT: i == 0 || tile_w == *w
          * oss-fuzz:67161 av1_dec_fuzzer: ASSERT: i == 0 || tile_h == *h
          * oss-fuzz:67059 av1_dec_fuzzer: Crash in mem_get_varsize
          * oss-fuzz:67162 av1_dec_fuzzer: Use-of-uninitialized-value in
            od_ec_decode_bool_q15
          * oss-fuzz:67184 av1_dec_fuzzer: Heap-buffer-overflow in od_ec_dec_init
          * oss-fuzz:67216 av1_dec_fuzzer: Heap-buffer-overflow in
            od_ec_dec_normalize
          * oss-fuzz:67055 av1_dec_fuzzer: Heap-buffer-overflow in
            get_ls_tile_buffers
        * libaom library
          * aomedia:3510 Large value of duration could cause encoder overflow
          * chromium:328105513 Fix build conflicts between Abseil and libaom/libvpx
            in Win ARM64 builds
          * aomedia:3544 AV1/SharpnessTestLarge.SharpnessPSNRTest failures after
            59c592bb8
          * aomedia:3531 Exception encountered with PSNR calculation
          * aomedia:3541 Can not compile correctly by CYGWIN
          * chromium:41482688 heap-buffer-overflow write in vpx_img_read()
            (tools_common.c) with VPX_IMG_FMT_NV12
          * aomedia:3521 Assertion failures on Arm in CNNTest.* in
            av1_cnn_convolve_no_maxpool_padding_valid_2x2_neon and
            av1_cnn_convolve_no_maxpool_padding_valid_5x5_neon
          * aomedia:3486 C vs NEON mismatch in AV1 encoder
          * aomedia:3536 Over write in highbd_dr_prediction_z3_upsample1_neon()
          * aomedia:3276 Significant progress on ensuring all allocations are
            checked
          * aomedia:3491 heap-buffer-overflow encoding frames of size 256x256,
            512x512 in good quality usage mode using 4 threads
          * aomedia:3322 PSNR number discrepancy
          * aomedia:3493 Cmake generates garbage symbols for libaom_srcs.gni
          * aomedia:3478 GCC 12.2.0 emits a -Wstringop-overflow warning on
            aom/av1/encoder/motion_search_facade.c
          * aomedia:3484 C vs NEON mismatch in AV1 encoder for high-bitdepth case

    2024-03-08 v3.8.2
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.8.1..v3.8.2 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:3523: SIGFPE in av1_twopass_postencode_update()
          pass2_strategy.c:4261.
        * aomedia:3535, b/317646516: Over reads in aom_convolve_copy_neon().
        * aomedia:3543: invalid feature modifier when compiling
          aom_dsp/arm/aom_convolve8_neon_i8mm.c on Debian 10 with arm64
          architecture.
        * aomedia:3545: Failed to parse configurations due to inconsistent
          elements between two arrays "av1_ctrl_args" and "av1_arg_ctrl_map"
          in aomenc.c.
        * oss-fuzz:66474, b/319140742: Integer-overflow in search_wiener.
        * Zero initialize an array in cdef search.

    2024-01-17 v3.8.1
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.8.0..v3.8.1 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:3520: get_cubic_kernel_dbl: Assertion `0 <= x && x < 1'
          failed.
        * aomedia:3526: alloc_compressor_data() is called during every
          aom_codec_control() call on the encoder.
        * aomedia:3527: aom/av1/encoder/mcomp.c:1810: av1_full_pixel_search:
          Assertion `ms_params->ms_buffers.ref->width ==
          ms_params->ms_buffers.src->width' failed.
        * aomedia:3534: libaom encoder crashed by AOM_USAGE_ALL_INTRA and
          AOM_EFLAG_NO_REF_LAST flags.
        * b/310455204: Recreate workers if necessary.
        * b/310548198: Update frame size in actual encoding.
        * b/314858909: Do not use adaptive error estimate.
        * Fix a hang of cmake on arm64 macOS with cmake 3.27.0 or later.

    2024-01-18 v3.7.2
      This release includes three bug fixes. This release is ABI compatible
      with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.7.1..v3.7.2 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:3520: get_cubic_kernel_dbl: Assertion `0 <= x && x < 1'
          failed.
        * aomedia:3526: alloc_compressor_data() is called during every
          aom_codec_control() call on the encoder. Note that this partially
          reverts the fix for bug aomedia:3349.
        * b/310457427 and b/310766628: Only use rec_sse in CBR mode.
        * Fix a hang of cmake on arm64 macOS with cmake 3.27.0 or later.

    2023-11-30 v3.8.0
      This release includes new codec interfaces, compression efficiency and
      perceptual improvements, speedup and memory optimizations and many bug
      fixes. This release is ABI compatible with the last release.

      - New Features
        * New codec controls:
          * AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR: Set the maximum number of
            consecutive frame drops allowed for the frame dropper in 1 pass
            CBR mode.
        * Run-time CPU feature detection for all Arm platforms:
          CRC, DotProd, I8MM and SVE CPU feature presence is detected at run
          time and code paths making use of these features are selected
          dynamically. These code paths provide meaningful performance gains
          for standard bitdepth RTC and VoD encoding: up to 10% and 20%
          respectively, over the Armv8.0-A baseline build.
        * RTC: Frame-dropper support added to the rate control library.
        * RTC Rate control improvements for low bitrate and for SVC.

      - Compression Efficiency Improvements
        * Improved accuracy of cost estimation for loop restoration and
          global motion.
        * Improved selection of loop restoration unit size - full search up
          to (non-realtime) speed 2, retuned static selection at higher
          speeds.
        * RTC Screen content mode: 3-5% bdrate gains across speeds 7 - 10.
        * Good-quality mode: 0.2 - 0.5% bdrate gains across speeds 1 - 4.

      - Perceptual Quality Improvements
        * RTC Screen: Improved visual quality for scrolling.
        * RTC: Improved color quality for both screen and video mode.

      - Speedup and Memory Optimizations
        * Good-quality, single-thread encoder speedups:
          o 15% improvement for speed 5.
          o 12% improvement for speed 6.
        * Arm standard bitdepth VoD (--good):
          o 8% speedup for speeds 0 and 1.
          o 20% speedup for speed 2.
          o 27% speedup for speed 3.
          o 30% speedup for speed 4.
          o 38% speedup for speeds 5 and 6.
        * Arm high bitdepth VoD (--good):
          o 206% speedup for speeds 0 and 1.
          o 180% speedup for speed 2.
          o 51% speedup for speeds 3 and 4.
          o 68% speedup for speed 5.
          o 72% speedup for speed 6.
        * RTC Screen content: 2-6% speedup across speeds 7-10.
        * RTC: 2-3% speedup for temporal layers.
        * RTC: Speedups to reference scaling in nonrd pickmode.
        * Good-quality mode: Simplified global motion estimation, saving
          ~1200 lines of code and 1KB of tables while improving quality.

      - Bug Fixes
        * Fixes to improve libaom stability in case of memory allocation
          failures.
        * Fixes to SIMD functions (x86 AVX2/SSE2 and ARM Neon).
        * b/310457427, b/310766628: Bug fixes to only use rec_sse in CBR
          mode.

    2023-11-17 v3.7.1
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.7.0..v3.7.1 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:3349: heap overflow when increasing resolution
        * aomedia:3478: GCC 12.2.0 emits a -Wstringop-overflow warning on
          aom/av1/encoder/motion_search_facade.c
        * aomedia:3489: Detect encoder and image high bit depth mismatch
        * aomedia:3491: heap-buffer-overflow on frame size change (CVE-2023-6879)
        * b/303023614:  Segfault at encoding time for high bit depth images

    2023-08-10 v3.7.0
      This release includes new codec interfaces, compression efficiency and
      perceptual improvements, speedup and memory optimizations and many bug fixes.
      This release is ABI compatible with the last release.

      - New Features
        * New codec controls:
          * AV1E_SET_QUANTIZER_ONE_PASS: Set quantizer for each frame.
          * AV1E_ENABLE_RATE_GUIDE_DELTAQ: enable the rate distribution guided delta
            quantization in all intra mode. The "enable-rate-guide-deltaq" option is
            added for this control.
          * AV1E_SET_RATE_DISTRIBUTION_INFO: set the input file for rate
            distribution used in all intra mode. The "rate-distribution-info" option
            is added for this control.
          * AV1E_GET_LUMA_CDEF_STRENGTH
          * AV1E_SET_BITRATE_ONE_PASS_CBR
        * AOM_SCALING_MODE is extended to include 2/3 and 1/3 scaling.
        * aom_tune_metric is extended to include AOM_TUNE_VMAF_SALIENCY_MAP.
          The "tune" option is extended to include "vmaf_saliency_map".
        * SVC example encoder svc_encoder_rtc is able to use the rate control
          library.
        * Loopfilter level and CDEF filter level is supported by RTC rate control
          library.
        * New speed (--cpu-used) 11, intended for RTC screen sharing, added for
          faster encoding with ~3% bdrate loss with 16% IC (instruction count)
          speedup compared to speed 10.

      - Compression Efficiency Improvements
        * Improved VoD encoding performance
          * 0.1-0.6% BDrate gains for encoding speeds 2 to 6
          * Rate control accuracy improvement in VBR mode
        * RTC encoding improvements
          * Screen content mode: 10-19% BDrate gains for speeds 6 - 10
          * Temporal layers video mode, for speed 10:
            * 2 temporal layers on low resolutions: 13-15% BDrate gain
            * 3 temporal layers on VGA/HD: 3-4% BDrate gain

      - Perceptual Quality Improvements
        * Fixed multiple block and color artifacts for RTC screen content by
          * Incorporating color into RD cost for IDTX
          * Reducing thresholds for palette mode in non RD mode
          * Allowing more palette mode testing
        * Improved color sensitivity for altref in non-RD mode.
        * Reduced video flickering for temporal layer encoding.

      - Speedup and Memory Optimizations
        * Speed up the VoD encoder
          * 2-5% for encoding speed 2 to 4
          * 9-15% for encoding speed 5 to 6
          * ARM
            * Standard bitdepth
              * speed 5: +31%
              * speed 4: +2%
              * speed 3: +9%
              * speed 2: +157%
            * High bitdepth
              * speed 5: +85%
        * RTC speedups
          * Screen content mode
            * 15% IC speedup for speeds 6-8
            * ARM: 7% for speed 9, 3% for speed 10
          * Temporal layers video mode
            * 7% speedup for 3 temporal layers on VGA/HD, for speed 10
          * Single layer video
            * x86: 2% IC speedup for speeds 7-10
            * ARM: 2-4% speedup across speeds 5-10

      - Other improvements
        * VoD: Major improvements to global motion estimation, now enabled up to
          speed 4
        * RTC
          * Fixes to make lossless coding work.
          * Fixes to make frame dropper (--drop_frames) work for single and temporal
            layers.
          * Improvements to RPS (reference picture selection) recovery frames.
          * Improvements to rate control for temporal layers.
        * libwebm is updated to libwebm-1.0.0.29-9-g1930e3c

      - Bug Fixes
        * aomedia:3261 Assertion failed when encoding av1 with film grain and
          '--monochrome' flag
        * aomedia:3276 ensure all allocations are checked (partial fix)
        * aomedia:3451 The libaom library calls exit()
        * aomedia:3450 enable -Wshadow for C++ sources
        * aomedia:3449 Test Seg Faults After
          b459af3e345be402db052a143fcc5383d4b74cbd
        * aomedia:3416 prune unused symbols / restrict symbol visibility
        * aomedia:3443 Jenkins failure:
          UninstantiatedParameterizedTestSuite<EstimateNoiseTest>
        * aomedia:3434 realtime failures with CONFIG_BITSTREAM_DEBUG=1
        * aomedia:3433 DeltaqModeTest crash w/row_mt=0
        * aomedia:3429 Encoder crash when turn on both ExternalResize and
          g_threads > 2
        * aomedia:3438 Build failure with
          `-DSANITIZE=address -DBUILD_SHARED_LIBS=ON` when using clang.
        * aomedia:3435 Block artifacts when scrolling with AV1 in screen sharing
          scenarios
        * aomedia:3170 vmaf tune presets produce extreme glitches in one scene
        * aomedia:3401 Building shared libaom with MSVC results in a race condition
          with the export library
        * aomedia:3420 Floating point exception in av1_tpl_get_frame_importance()
        * aomedia:3424 heap-buffer-overflow in ScaleFilterCols_16_C() (SIGABRT)
        * aomedia:3417 examples/svc_encoder_rtc.c is using internal macros and
          functions
        * aomedia:3372 SEGV in assign_frame_buffer_p av1_common_int.h
        * aomedia:3130 'cpu-features.h' file not found on Android NDK 22
        * aomedia:3415 Encoder/decoder mismatch for svc_encoder_rtc running
          1 SL 3 TL
        * aomedia:3412 Lossless Mode Fails Loopback Bit Test
        * aomedia:3409 The use of AV1_VAR_OFFS in av1/encoder/var_based_part.c is
          incorrect for high bit depths
        * aomedia:3403 test_libaom fails with error message
          "feenableexcept() failed" on Linux arm
        * aomedia:3370 Random color block at fast motion area
        * aomedia:3393 Assertion failure in av1_convolve_2d_sr_c()
        * aomedia:3392 Strong artifacting for high bit-depth real-time
        * aomedia:3376 aomenc --threads=10 --deltaq-mode=3 crashes after
          "Allintra: multi-threading of calculating differential contrast"
        * aomedia:3380 Crashes and ASan and TSan errors in deltaq-mode=3
          multithreading code
        * chromium:1410766 heap-buffer-overflow in aom_yv12_copy_v_c
        * Cannot set level via AV1E_SET_TARGET_SEQ_LEVEL_IDX
        * Encoding failure due to the use of loop restoration with unintended use of
          lossless mode.
        * Signed integer overflow in scan_past_frames
        * Signed integer overflow in update_a_sep_sym
        * Flickering in AV1 1440p/2160p HDR transcodes
        * Fixed artifacts with screen share at encoder speed 10
        * Fixed prediction setup for IDTX

    2023-05-08 v3.6.1
      This release includes several bug fixes. This release is ABI
      compatible with the last release. See
      https://aomedia.googlesource.com/aom/+log/v3.6.0..v3.6.1 for all the
      commits in this release.

      - Bug Fixes
        * aomedia:2871: Guard the support of the 7.x and 8.x levels for AV1
          under the CONFIG_CWG_C013 config flag, and only output the 7.x and
          8.x levels when explicitly requested.
        * aomedia:3382: Choose sb_size by ppi instead of svc.
        * aomedia:3384: Fix fullpel search limits.
        * aomedia:3388: Replace left shift of xq_active by multiplication.
        * aomedia:3389: Fix MV clamping in av1_mv_pred.
        * aomedia:3390: set_ld_layer_depth: cap max_layer_depth to
          MAX_ARF_LAYERS.
        * aomedia:3418: Fix MV clamping in av1_int_pro_motion_estimation.
        * aomedia:3429: Move lpf thread data init to lpf_pipeline_mt_init().
        * b:266719111: Fix undefined behavior in Arm Neon code.
        * b:269840681: nonrd_opt: align scan tables.
        * rtc: Fix is_key_frame setting in variance partition.
        * Build: Fix build with clang-cl and Visual Studio.
        * Build: Fix module definition file for MinGW/MSYS.

    2023-02-03 v3.6.0
      This release includes compression efficiency and perceptual quality
      improvements, speedup and memory optimizations, and some new features.
      This release is ABI compatible with the last release.

      - New Features
        * New values 20-27 (corresponding to levels 7.0-7.3 and 8.0-8.3) for
          the encoder control AV1E_SET_TARGET_SEQ_LEVEL_IDX (note that the
          proposal to add the new levels are still in draft status). The
          original special value 24 (keep level stats only for level
          monitoring) is renumbered as 32.
        * New encoder control AV1E_SET_SKIP_POSTPROC_FILTERING to skip the
          application of post-processing filters on reconstructed frame in
          all intra mode.
        * New encoder option "kf-max-pyr-height": Maximum height of pyramid
          structure used for the GOP starting with a key frame (-1 to 5).
        * Make SVC work for screen content.
        * Rate control improvements to reduce frame-size spikes for screen
          content coding.
        * RISC-V architecture support with gcc toolchain.

      - Compression Efficiency Improvements
        * Peak compression efficiency in VOD setting is improved by 1%.
        * 0.7% - 2.2% RTC encoding BDrate gains for real time speed 8 to 10.
        * 15% RTC encoding BDrate gains for screen content speed 10.

      - Perceptual Quality Improvements
        * Resolved a visual quality issue that was reported for high
          resolution clips (2K) for speed 4 and above in VOD use case.
        * Visual quality improvements to screen content coding.
        * Quality improvements to temporal layer RTC coding.

      - Speedup and Memory Optimizations
        * RTC single-thread encoder speedup:
          o ~6% instruction count reduction for speed 5 and 6.
          o ~15% instruction count reduction for speed 7.
          o ~10% instruction count reduction for speed 8 to 10 (>=360p
            resolutions).
        * RTC multi-thread encoder speedup (beyond single-thread speedup):
          o 5-8% encode time reduction for speed 7 to 10.
        * RTC screen-content encoder speedup:
          o 11% instruction count reduction for speed 9 and 10 (>=720p
            resolutions).
        * ~5% reduction in heap memory requirements for RTC, speed 6 to 10.
        * AVIF:
          o 4-5% speedup for speed 9 in still-picture encoding mode.
          o 3-4% heap memory reduction in still-picture encoding mode for
            360p-720p resolutions with multiple threads.

      - Bug Fixes
        * Added a workaround for an AV1 specification bug which makes
          TRANSLATION type global motion models unusable.
        * Fixed AddressSanitizer global-buffer-overflow errors in
          av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c.
        * Fixed AddressSanitizer heap-buffer-overflow error in
          av1_wiener_convolve_add_src_neon().
        * chromium:1393384 Avoid scene detection on spatial resize.
        * aomedia:3308 Remove color artifacts under high motion.
        * aomedia:3310 Avoid out of memory failures with Visual Studio 2017,
          2019, and 2022 for Win32 x86 builds.
        * aomedia:3346 Make SVC work properly for screen content.
        * aomedia:3348 Fix a bug where an uninitialized search_site is used.
        * aomedia:3365 Work around what seems like a Visual Studio 2022
          compiler optimization bug.
        * aomedia:3369 Incorrect PSNR values reported by libaom for 12-bit
          encode.

    2022-08-31 v3.5.0
      This release is ABI compatible with the last one, including speedup and memory
      optimizations, and new APIs and features.

      - New Features
        * Support for frame parallel encode for larger number of threads. --fp-mt
          flag is available for all build configurations.
        * New codec control AV1E_GET_NUM_OPERATING_POINTS

      - Speedup and Memory Optimizations
        * Speed-up multithreaded encoding for good quality mode for larger number of
          threads through frame parallel encoding:
          o 30-34% encode time reduction for 1080p, 16 threads, 1x1 tile
            configuration (tile_rows x tile_columns)
          o 18-28% encode time reduction for 1080p, 16 threads, 2x4 tile
            configuration
          o 18-20% encode time reduction for 2160p, 32 threads, 2x4 tile
            configuration
        * 16-20% speed-up for speed=6 to 8 in still-picture encoding mode
        * 5-6% heap memory reduction for speed=6 to 10 in real-time encoding mode
        * Improvements to the speed for speed=7, 8 in real-time encoding mode
        * Improvements to the speed for speed=9, 10 in real-time screen encoding
          mode
        * Optimizations to improve multi-thread efficiency in real-time encoding
          mode
        * 10-15% speed up for SVC with temporal layers
        * SIMD optimizations:
          o Improve av1_quantize_fp_32x32_neon() 1.05x to 1.24x faster
          o Add aom_highbd_quantize_b{,_32x32,_64x64}_adaptive_neon() 3.15x to 5.6x
            faster than "C"
          o Improve av1_quantize_fp_64x64_neon() 1.17x to 1.66x faster
          o Add aom_quantize_b_avx2() 1.4x to 1.7x faster than aom_quantize_b_avx()
          o Add aom_quantize_b_32x32_avx2() 1.4x to 2.3x faster than
            aom_quantize_b_32x32_avx()
          o Add aom_quantize_b_64x64_avx2() 2.0x to 2.4x faster than
            aom_quantize_b_64x64_ssse3()
          o Add aom_highbd_quantize_b_32x32_avx2() 9.0x to 10.5x faster than
            aom_highbd_quantize_b_32x32_c()
          o Add aom_highbd_quantize_b_64x64_avx2() 7.3x to 9.7x faster than
            aom_highbd_quantize_b_64x64_c()
          o Improve aom_highbd_quantize_b_avx2() 1.07x to 1.20x faster
          o Improve av1_quantize_fp_avx2() 1.13x to 1.49x faster
          o Improve av1_quantize_fp_32x32_avx2() 1.07x to 1.54x faster
          o Improve av1_quantize_fp_64x64_avx2()  1.03x to 1.25x faster
          o Improve av1_quantize_lp_avx2() 1.07x to 1.16x faster

      - Bug fixes including but not limited to
        * aomedia:3206 Assert that skip_width > 0 for deconvolve function
        * aomedia:3278 row_mt enc: Delay top-right sync when intraBC is enabled
        * aomedia:3282 blend_a64_*_neon: fix bus error in armv7
        * aomedia:3283 FRAME_PARALLEL: Propagate border size to all cpis
        * aomedia:3283 RESIZE_MODE: Fix incorrect strides being used for motion
          search
        * aomedia:3286 rtc-svc: Fix to dynamic_enable spatial layers
        * aomedia:3289 rtc-screen: Fix to skipping inter-mode test in nonrd
        * aomedia:3289 rtc-screen: Fix for skip newmv on flat blocks
        * aomedia:3299 Fix build failure with CONFIG_TUNE_VMAF=1
        * aomedia:3296 Fix the conflict --enable-tx-size-search=0 with nonrd mode
          --enable-tx-size-search will be ignored in non-rd pick mode
        * aomedia:3304 Fix off-by-one error of max w/h in validate_config
        * aomedia:3306 Do not use pthread_setname_np on GNU/Hurd
        * aomedia:3325 row-multithreading produces invalid bitstream in some cases
        * chromium:1346938, chromium:1338114
        * compiler_flags.cmake: fix flag detection w/cmake 3.17-3.18.2
        * tools/*.py: update to python3
        * aom_configure.cmake: detect PIE and set CONFIG_PIC
        * test/simd_cmp_impl: use explicit types w/CompareSimd*
        * rtc: Fix to disable segm for aq-mode=3
        * rtc: Fix to color_sensitivity in variance partition
        * rtc-screen: Fix bsize in model rd computation for intra chroma
        * Fixes to ensure the correct behavior of the encoder algorithms (like
          segmentation, computation of statistics, etc.)

    2022-06-17 v3.4.0
      This release includes compression efficiency and perceptual quality
      improvements, speedup and memory optimizations, and some new features.
      There are no ABI or API breaking changes in this release.

      - New Features
        * New --dist-metric flag with "qm-psnr" value to use quantization
          matrices in the distortion computation for RD search. The default
          value is "psnr".
        * New command line option "--auto-intra-tools-off=1" to make
          all-intra encoding faster for high bit rate under
          "--deltaq-mode=3" mode.
        * New rate control library aom_av1_rc for real-time hardware
          encoders. Supports CBR for both one spatial layer and SVC.
        * New image format AOM_IMG_FMT_NV12 can be used as input to the
          encoder. The presence of AOM_IMG_FMT_NV12 can be detected at
          compile time by checking if the macro AOM_HAVE_IMG_FMT_NV12 is
          defined.
        * New codec controls for the encoder:
          o AV1E_SET_AUTO_INTRA_TOOLS_OFF. Only in effect if
            --deltaq-mode=3.
          o AV1E_SET_RTC_EXTERNAL_RC
          o AV1E_SET_FP_MT. Only supported if libaom is built with
            -DCONFIG_FRAME_PARALLEL_ENCODE=1.
          o AV1E_GET_TARGET_SEQ_LEVEL_IDX
        * New key-value pairs for the key-value API:
          o --auto-intra-tools-off=0 (default) or 1. Only in effect if
            --deltaq-mode=3.
          o --strict-level-conformance=0 (default) or 1
          o --fp-mt=0 (default) or 1. Only supported if libaom is built
            with -DCONFIG_FRAME_PARALLEL_ENCODE=1.
        * New aomenc options (not supported by the key-value API):
          o --nv12

      - Compression Efficiency Improvements
        * Correctly calculate SSE for high bitdepth in skip mode, 0.2% to
          0.6% coding gain.
        * RTC at speed 9/10: BD-rate gain of ~4/5%
        * RTC screen content coding: many improvements for real-time screen
          at speed 10 (quality, speedup, and rate control), up to high
          resolutions (1080p).
        * RTC-SVC: fixes to make intra-only frames work for spatial layers.
        * RTC-SVC: quality improvements for temporal layers.
        * AV1 RT: A new passive rate control strategy for screen content, an
          average of 7.5% coding gain, with some clips of 20+%. The feature
          is turned off by default due to higher bit rate variation.

      - Perceptual Quality Improvements
        * RTC: Visual quality improvements for high speeds (9/10)
        * Improvements in coding quality for all intra mode

      - Speedup and Memory Optimizations
        * ~10% speedup in good quality mode encoding.
        * ~7% heap memory reduction in good quality encoding mode for speed
          5 and 6.
        * Ongoing improvements to intra-frame encoding performance on Arm
        * Faster encoding speed for "--deltaq-mode=3" mode.
        * ~10% speedup for speed 5/6, ~15% speedup for speed 7/8, and
          ~10% speedup for speed 9/10 in real time encoding mode
        * ~20% heap memory reduction in still-picture encoding mode for
          360p-720p resolutions with multiple threads
        * ~13% speedup for speed 6 and ~12% speedup for speed 9 in
          still-picture encoding mode.
        * Optimizations to improve multi-thread efficiency for still-picture
          encoding mode.

      - Bug Fixes
        * b/204460717: README.md: replace master with main
        * b/210677928: libaom disable_order is surprising for
          max_reference_frames=3
        * b/222461449: -DCONFIG_TUNE_BUTTERAUGLI=1 broken
        * b/227207606: write_greyscale writes incorrect chroma in highbd
          mode
        * b/229955363: Integer-overflow in linsolve_wiener
        * https://crbug.com/aomedia/2032
        * https://crbug.com/aomedia/2397
        * https://crbug.com/aomedia/2563
        * https://crbug.com/aomedia/2815
        * https://crbug.com/aomedia/3009
        * https://crbug.com/aomedia/3018
        * https://crbug.com/aomedia/3045
        * https://crbug.com/aomedia/3101
        * https://crbug.com/aomedia/3130
        * https://crbug.com/aomedia/3173
        * https://crbug.com/aomedia/3184
        * https://crbug.com/aomedia/3187
        * https://crbug.com/aomedia/3190
        * https://crbug.com/aomedia/3195
        * https://crbug.com/aomedia/3197
        * https://crbug.com/aomedia/3201
        * https://crbug.com/aomedia/3202
        * https://crbug.com/aomedia/3204
        * https://crbug.com/aomedia/3205
        * https://crbug.com/aomedia/3207
        * https://crbug.com/aomedia/3208
        * https://crbug.com/aomedia/3209
        * https://crbug.com/aomedia/3213
        * https://crbug.com/aomedia/3214
        * https://crbug.com/aomedia/3219
        * https://crbug.com/aomedia/3222
        * https://crbug.com/aomedia/3223
        * https://crbug.com/aomedia/3225
        * https://crbug.com/aomedia/3226
        * https://crbug.com/aomedia/3228
        * https://crbug.com/aomedia/3232
        * https://crbug.com/aomedia/3236
        * https://crbug.com/aomedia/3237
        * https://crbug.com/aomedia/3238
        * https://crbug.com/aomedia/3240
        * https://crbug.com/aomedia/3243
        * https://crbug.com/aomedia/3244
        * https://crbug.com/aomedia/3246
        * https://crbug.com/aomedia/3248
        * https://crbug.com/aomedia/3250
        * https://crbug.com/aomedia/3251
        * https://crbug.com/aomedia/3252
        * https://crbug.com/aomedia/3255
        * https://crbug.com/aomedia/3257
        * https://crbug.com/aomedia/3259
        * https://crbug.com/aomedia/3260
        * https://crbug.com/aomedia/3267
        * https://crbug.com/aomedia/3268
        * https://crbug.com/aomedia/3269
        * https://crbug.com/aomedia/3276
        * https://crbug.com/aomedia/3278
        * https://crbug.com/chromium/1290068
        * https://crbug.com/chromium/1303237
        * https://crbug.com/chromium/1304990
        * https://crbug.com/chromium/1321141
        * https://crbug.com/chromium/1321388
        * https://crbug.com/oss-fuzz/44846
        * https://crbug.com/oss-fuzz/44856
        * https://crbug.com/oss-fuzz/44862
        * https://crbug.com/oss-fuzz/44904
        * https://crbug.com/oss-fuzz/45056

    2022-01-28 v3.3.0
      This release includes compression efficiency and perceptual quality
      improvements, speedup and memory optimizations, some new features, and
      several bug fixes.

      - New Features
        * AV1 RT: Introducing CDEF search level 5
        * Changed real time speed 4 to behave the same as real time speed 5
        * Add --deltaq-strength
        * rtc: Allow scene-change and overshoot detection for svc
        * rtc: Intra-only frame for svc
        * AV1 RT: Option 2 for codec control AV1E_SET_ENABLE_CDEF to disable
          CDEF on non-ref frames
        * New codec controls AV1E_SET_LOOPFILTER_CONTROL and
          AOME_GET_LOOPFILTER_LEVEL
        * Improvements to three pass encoding

      - Compression Efficiency Improvements
        * Overall compression gains: 0.6%

      - Perceptual Quality Improvements
        * Improves the perceptual quality of high QP encoding for delta-q mode 4
        * Auto select noise synthesis level for all intra

      - Speedup and Memory Optimizations
        * Added many SSE2 optimizations.
        * Good quality 2-pass encoder speedups:
          o Speed 2: 9%
          o Speed 3: 12.5%
          o Speed 4: 8%
          o Speed 5: 3%
          o Speed 6: 4%
        * Real time mode encoder speedups:
          o Speed 5: 2.6% BDRate gain, 4% speedup
          o Speed 6: 3.5% BDRate gain, 4% speedup
          o Speed 9: 1% BDRate gain, 3% speedup
          o Speed 10: 3% BDRate gain, neutral speedup
        * All intra encoding speedups (AVIF):
          o Single thread - speed 6: 8%
          o Single thread - speed 9: 15%
          o Multi thread(8) - speed 6: 14%
          o Multi thread(8) - speed 9: 34%

      - Bug Fixes
        * Issue 3163: Segmentation fault when using --enable-keyframe-filtering=2
        * Issue 2436: Integer overflow in av1_warp_affine_c()
        * Issue 3226: armv7 build failure due to gcc-11
        * Issue 3195: Bug report on libaom (AddressSanitizer: heap-buffer-overflow)
        * Issue 3191: Bug report on libaom (AddressSanitizer: SEGV on unknown
          address)
        * Issue 3176: Some SSE2/SADx4AvgTest.* tests fail on Windows
        * Issue 3175: Some SSE2/SADSkipTest.* tests fail on Windows

    2021-10-13 v3.2.0
      This release includes compression efficiency and perceptual quality
      improvements, speedup and memory optimizations, as well as some new
      features.

      - New Features
        * Introduced speeds 7, 8, and 9 for all intra mode.
        * Introduced speed 10 for real time mode.
        * Introduced an API that allows external partition decisions.
        * SVC: added support for compound prediction.
        * SVC: added support for fixed SVC modes.

      - Compression Efficiency Improvements
        * Intra-mode search improvement.
        * Improved real time (RT) mode BDrate savings by ~5% (RT speed 5)
          and ~12% (RT speed 6). The improvement was measured on the video
          conference set.
        * Improved real time mode for nonrd path (speed 7, 8, 9): BDrate
          gains of ~3-5%.
        * Rate control and RD adjustments based on ML research in VP9.
          Gains of ~0.5-1.0% for HD.

      - Perceptual Quality Improvements
        * Added a new mode --deltaq-mode=3 to improve perceptual quality
          based on a differential contrast model for still images.
        * Added a new mode --deltaq-mode=4 to improve perceptual quality
          based on user rated cq_level data set for still images.
        * Weighting of some intra mode and partition size choices to better
          manage and retain texture.

      - Speedup and Memory Optimizations
        * Further improved 2-pass good quality encoder speed:
          o Speed 2 speedup: 18%
          o Speed 3 speedup: 22%
          o Speed 4 speedup: 37%
          o Speed 5 speedup: 30%
          o Speed 6 speedup: 20%
        * Optimized the real time encoder (measured on the video conference
          set):
          o RT speed 5 speedup: 110%
          o RT speed 6 speedup: 77%

      - Bug Fixes
        * Issue 3069: Fix one-pass mode keyframe placement off-by-one error.
        * Issue 3156: Fix a bug in av1_quantize_lp AVX2 optimization.

    2021-09-29 v3.1.3
      This release includes several bug fixes.

      - Bug fixes:
        The following four cmake changes should help the people building
        libaom using MSVC.
          1. exports: use CMAKE_SHARED_LIBRARY_PREFIX to determine lib name
             https://aomedia-review.googlesource.com/c/aom/+/142342
          2. aom_install: Install lib dlls to bindir
             https://aomedia-review.googlesource.com/c/aom/+/146546
          3. aom_install: use relpath for install
             https://aomedia-review.googlesource.com/c/aom/+/146550
          4. aom_install: don't exclude msvc from install
             https://aomedia-review.googlesource.com/c/aom/+/146547

        aom/aom_encoder.h: remove configure option reference
        https://aomedia-review.googlesource.com/c/aom/+/146743

        Issue 3113: Tests for detecting chroma subsampling in
        av1_copy_and_extend_frame() do not work when y_width or y_height is
        1

        Issue 3115: image2yuvconfig() should calculate uv_crop_width and
        uv_crop_height from y_crop_width and y_crop_height

        Issue 3140: rc_overshoot_pct is documented as having a range of
        0-1000, but is range checked against 0-100

        Issue 3147: Build failure on Apple M1 arm64

    2021-07-20 v3.1.2
      This release includes several bug fixes.

      - Bug fixes:
        exports.cmake: use APPLE and WIN32 and use def for mingw-w64
        https://aomedia-review.googlesource.com/c/aom/+/139882

        Issue 2993: Incorrect spatial_id when decoding base layer of
        multi-layer stream

        Issue 3080: Chroma Resampling by Encoder on Y4M Inputs Files Tagged
        as C420mpeg2

        Issue 3081: Use of uninitialized value $version_extra in
        concatenation (.) or string at aom/build/cmake/version.pl line 88.

    2021-06-08 v3.1.1
      This release includes several bug fixes.

      - Bug fixes:
        Issue 2965: Cherry-picked the following four commits for the
        tune=butteraugli mode.
          1. Add libjxl to pkg_config if enabled:
             https://aomedia-review.googlesource.com/c/aom/+/136044
          2. Declare set_mb_butteraugli_rdmult_scaling static:
             https://aomedia-review.googlesource.com/c/aom/+/134506
          3. Add color range detection in tune=butteraugli mode:
             https://aomedia-review.googlesource.com/c/aom/+/135521
          4. Enable tune=butteraugli in all-intra mode:
             https://aomedia-review.googlesource.com/c/aom/+/136082

        Issue 3021: Fix vmaf model initialization error when not set to
        tune=vmaf

        Issue 3050: Compilation fails with -DCONFIG_TUNE_VMAF=1

        Issue 3054: Consistent crash on near-static screen content, keyframe
        related

    2021-05-03 v3.1.0
      This release adds an "all intra" mode to the encoder, which significantly
      speeds up the encoding of AVIF still images at speed 6.

      - Upgrading:
        All intra mode for encoding AVIF still images and AV1 all intra videos:
        AOM_USAGE_ALL_INTRA (2) can be passed as the 'usage' argument to
        aom_codec_enc_config_default().

        New encoder control IDs added:
          - AV1E_SET_ENABLE_DIAGONAL_INTRA: Enable diagonal (D45 to D203) intra
            prediction modes (0: false, 1: true (default)). Also available as
            "enable-diagonal-intra" for the aom_codec_set_option() function.

        New aom_tune_metric enum value: AOM_TUNE_BUTTERAUGLI. The new aomenc option
        --tune=butteraugli was added to optimize the encoder's perceptual quality by
        optimizing the Butteraugli metric. Install libjxl (JPEG XL) and then pass
        -DCONFIG_TUNE_BUTTERAUGLI=1 to the cmake command to enable it.

        Addition of support for libvmaf 2.x.

      - Enhancements:
        Heap memory consumption for encoding AVIF still images is significantly
        reduced.

      - Bug fixes:
        Issue 2601: third_party/libaom fails licensecheck

        Issue 2950: Conditional expression for rc->this_key_frame_forced is always
        true in find_next_key_frame()

        Issue 2988: "make install" installs the aom.h header twice

        Issue 2992: Incorrectly printing the temporal_id twice in dump_obu tool

        Issue 2998:

        Issue 2999:

        Issue 3000:

    2021-02-24 v3.0.0
      This release includes compression efficiency improvement, speed improvement
      for realtime mode, as well as some new APIs.

      - Upgrading:
        Support for PSNR calculation based on stream bit-depth.

        New encoder control IDs added:
          - AV1E_SET_ENABLE_RECT_TX
          - AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
          - AV1E_GET_BASELINE_GF_INTERVAL
          - AV1E_SET_ENABLE_DNL_DENOISING

        New decoder control IDs added:
          - AOMD_GET_FWD_KF_PRESENT
          - AOMD_GET_FRAME_FLAGS
          - AOMD_GET_ALTREF_PRESENT
          - AOMD_GET_TILE_INFO
          - AOMD_GET_SCREEN_CONTENT_TOOLS_INFO
          - AOMD_GET_STILL_PICTURE
          - AOMD_GET_SB_SIZE
          - AOMD_GET_SHOW_EXISTING_FRAME_FLAG
          - AOMD_GET_S_FRAME_INFO

        New aom_tune_content enum value: AOM_CONTENT_FILM

        New aom_tune_metric enum value: AOM_TUNE_VMAF_NEG_MAX_GAIN

        Coefficient and mode update can be turned off via
        AV1E_SET_{COEFF/MODE}_COST_UPD_FREQ.

        New key & value API added, available with aom_codec_set_option() function.

        Scaling API expanded to include 1/4, 3/4 and 1/8.

      - Enhancements:
        Better multithreading performance with realtime mode.

        New speed 9 setting for faster realtime encoding.

        Smaller binary size with low bitdepth and realtime only build.

        Temporal denoiser and its optimizations on x86 and Neon.

        Optimizations for scaling.

        Faster encoding with speed settings 2 to 6 for good encoding mode.

        Improved documentation throughout the library, with function level
        documentation, tree view and support for the dot tool.

      - Bug fixes:
        Aside from those mentioned in v2.0.1 and v2.0.2, this release includes the
        following bug fixes:

        Issue 2940: Segfault when encoding with --use-16bit-internal and --limit > 1

        Issue 2941: Decoder mismatch with --rt --bit-depth=10 and --cpu-used=8

        Issue 2895: mingw-w64 i686 gcc fails to build

        Issue 2874: Separate ssse3 functions from sse2 file.

    2021-02-09 v2.0.2
      This release includes several bug fixes.

      - Bug fixes:
        Issue 2643: Modify the assertion in temporal filter intrinsics.

        Issue 2648: Fix unit test ThreadTestLarge.EncoderResultTest/49
        assertion failure.

        Issue 2869: Add -Wimplicit-function-declaration as C flag only.

        Issue 2878: Avoid memset in the av1_filter_intra_predictor module
        functions.

        Issue 2903: Fix a typo bug in apply_temporal_filter_planewise.

        Call av1_setup_frame_size() when dropping a frame in the
        encode_frame_to_data_rate() function in av1/encoder/encoder.c.

    2020-11-25 v2.0.1
      This release includes two bug fixes.

      - Bug fixes:
        Issue 2723: Fix crash in chroma_check() when generating a monochrome
        encoded stream in real-time mode.

        Issue 2833: Fix crash on some input when reduced still picture header is
        used in real-time mode and speed >=7.

    2020-05-07 v2.0.0 "Applejack"
      First official release of libaom.
      This release includes new real-time mode and SVC support.

      - Upgrading:
        AOM_SET_POSTPROC, AOM_CODEC_CAP_POSTPROC and AOM_CODEC_USE_POSTPROC are
        removed.

        AOM_SET_DBG_* is removed.

        Multi-resolution encoding is removed.

        put_frame and put_slice callbacks are removed.

      - Enhancements:
        Full-sweep document update for codec controls.

    2018-06-28 v1.0.0
      AOMedia Codec Workgroup Approved version 1.0

    2016-04-07 v0.1.0 "AOMedia Codec 1"
      This release is the first Alliance for Open Media codec.