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.