12024-04-09 v3.9.0 2 This release includes new codec interfaces, compression efficiency and 3 perceptual improvements, speedup for RTC for both video and screen content, 4 and many bug fixes. This release is ABI compatible with the previous release. 5 6 - New Features 7 * New codec control 8 * AV1E_SET_SVC_FRAME_DROP_MODE is added to configure the SVC encoder to 9 only drop spatial layers or the whole superframe. 10 * Active Map is fixed and tested for RTC. 11 * CONFIG_QUANT_MATRIX is added to disable quantization matrices when aom 12 decoder is disabled with CONFIG_AV1_DECODER. Reduces ~10% binary size when 13 both are disabled. 14 * libwebm is updated to libwebm-1.0.0.31-1-gaffd7f4. 15 16 - Compression Efficiency Improvements 17 * RTC encoding improvements 18 * 1-2% BD-rate gain for screen content with temporal layers; 5% BD-rate 19 gain on scrolling content. 20 21 - Perceptual Quality Improvements 22 * For RTC screen content 23 * Reduced color artifacts for RTC screen content 24 * Visual quality improved for scene changes for SVC with quality layers. 25 * Removed visual artifacts for speed 11 26 27 - Speedups: 28 * RTC Speed 11: aggressive speedup setting added for video mode, 29 resolutions <= VGA: ~30% faster than speed 10. 30 * 5-9% speed up for high bit-depth encoding with good mode on Arm, half of 31 which comes from SVE/SVE2 optimizations. 32 33 - Other improvements 34 * Further improvements to global motion estimation. 35 * Documented minimum required SIMD support: SSE4.1 on x86, Neon on Arm. 36 * Remove unneeded SIMD functions, saving >100 KiB from binary size. 37 * Cleaned up and improved pattern_search. 38 * Added end-to-end c vs SIMD bit-exactness test. 39 * Added config flag to calc psnr using libvmaf peak: use a slightly 40 different peak value for PSNR (1020 and 2040 for 10- and 12-bit) 41 42 - Bug Fixes 43 * Fuzzing bug fixes 44 * b/329485898 Null-dereference WRITE in av1_cdef_frame_mt 45 * b/329810149 Null-dereference WRITE in av1_cdef_copy_sb8_16 46 * b/329813868 Ill in av1_cdef_frame_mt 47 * chromium:327882824 Null-dereference WRITE in av1_cdef_init_fb_row 48 * b/330014723 Null-dereference WRITE in 49 cdef_copy_rect8_16bit_to_16bit_avx2 50 * b/310455204 Null-dereference WRITE in prepare_enc_workers 51 * b/314858909 Heap-buffer-overflow in aom_variance64x64_avx2 52 * oss-fuzz:67132 av1_dec_fuzzer: ASSERT: (pbi->tile_count_minus_1 + 1) <= 53 (pbi->output_frame_width_in_tiles_minus_1 + 1) 54 * oss-fuzz:67058 av1_dec_fuzzer: ASSERT: i == 0 || tile_w == *w 55 * oss-fuzz:67161 av1_dec_fuzzer: ASSERT: i == 0 || tile_h == *h 56 * oss-fuzz:67059 av1_dec_fuzzer: Crash in mem_get_varsize 57 * oss-fuzz:67162 av1_dec_fuzzer: Use-of-uninitialized-value in 58 od_ec_decode_bool_q15 59 * oss-fuzz:67184 av1_dec_fuzzer: Heap-buffer-overflow in od_ec_dec_init 60 * oss-fuzz:67216 av1_dec_fuzzer: Heap-buffer-overflow in 61 od_ec_dec_normalize 62 * oss-fuzz:67055 av1_dec_fuzzer: Heap-buffer-overflow in 63 get_ls_tile_buffers 64 * libaom library 65 * aomedia:3510 Large value of duration could cause encoder overflow 66 * chromium:328105513 Fix build conflicts between Abseil and libaom/libvpx 67 in Win ARM64 builds 68 * aomedia:3544 AV1/SharpnessTestLarge.SharpnessPSNRTest failures after 69 59c592bb8 70 * aomedia:3531 Exception encountered with PSNR calculation 71 * aomedia:3541 Can not compile correctly by CYGWIN 72 * chromium:41482688 heap-buffer-overflow write in vpx_img_read() 73 (tools_common.c) with VPX_IMG_FMT_NV12 74 * aomedia:3521 Assertion failures on Arm in CNNTest.* in 75 av1_cnn_convolve_no_maxpool_padding_valid_2x2_neon and 76 av1_cnn_convolve_no_maxpool_padding_valid_5x5_neon 77 * aomedia:3486 C vs NEON mismatch in AV1 encoder 78 * aomedia:3536 Over write in highbd_dr_prediction_z3_upsample1_neon() 79 * aomedia:3276 Significant progress on ensuring all allocations are 80 checked 81 * aomedia:3491 heap-buffer-overflow encoding frames of size 256x256, 82 512x512 in good quality usage mode using 4 threads 83 * aomedia:3322 PSNR number discrepancy 84 * aomedia:3493 Cmake generates garbage symbols for libaom_srcs.gni 85 * aomedia:3478 GCC 12.2.0 emits a -Wstringop-overflow warning on 86 aom/av1/encoder/motion_search_facade.c 87 * aomedia:3484 C vs NEON mismatch in AV1 encoder for high-bitdepth case 88 892024-03-08 v3.8.2 90 This release includes several bug fixes. This release is ABI 91 compatible with the last release. See 92 https://aomedia.googlesource.com/aom/+log/v3.8.1..v3.8.2 for all the 93 commits in this release. 94 95 - Bug Fixes 96 * aomedia:3523: SIGFPE in av1_twopass_postencode_update() 97 pass2_strategy.c:4261. 98 * aomedia:3535, b/317646516: Over reads in aom_convolve_copy_neon(). 99 * aomedia:3543: invalid feature modifier when compiling 100 aom_dsp/arm/aom_convolve8_neon_i8mm.c on Debian 10 with arm64 101 architecture. 102 * aomedia:3545: Failed to parse configurations due to inconsistent 103 elements between two arrays "av1_ctrl_args" and "av1_arg_ctrl_map" 104 in aomenc.c. 105 * oss-fuzz:66474, b/319140742: Integer-overflow in search_wiener. 106 * Zero initialize an array in cdef search. 107 1082024-01-17 v3.8.1 109 This release includes several bug fixes. This release is ABI 110 compatible with the last release. See 111 https://aomedia.googlesource.com/aom/+log/v3.8.0..v3.8.1 for all the 112 commits in this release. 113 114 - Bug Fixes 115 * aomedia:3520: get_cubic_kernel_dbl: Assertion `0 <= x && x < 1' 116 failed. 117 * aomedia:3526: alloc_compressor_data() is called during every 118 aom_codec_control() call on the encoder. 119 * aomedia:3527: aom/av1/encoder/mcomp.c:1810: av1_full_pixel_search: 120 Assertion `ms_params->ms_buffers.ref->width == 121 ms_params->ms_buffers.src->width' failed. 122 * aomedia:3534: libaom encoder crashed by AOM_USAGE_ALL_INTRA and 123 AOM_EFLAG_NO_REF_LAST flags. 124 * b/310455204: Recreate workers if necessary. 125 * b/310548198: Update frame size in actual encoding. 126 * b/314858909: Do not use adaptive error estimate. 127 * Fix a hang of cmake on arm64 macOS with cmake 3.27.0 or later. 128 1292024-01-18 v3.7.2 130 This release includes three bug fixes. This release is ABI compatible 131 with the last release. See 132 https://aomedia.googlesource.com/aom/+log/v3.7.1..v3.7.2 for all the 133 commits in this release. 134 135 - Bug Fixes 136 * aomedia:3520: get_cubic_kernel_dbl: Assertion `0 <= x && x < 1' 137 failed. 138 * aomedia:3526: alloc_compressor_data() is called during every 139 aom_codec_control() call on the encoder. Note that this partially 140 reverts the fix for bug aomedia:3349. 141 * b/310457427 and b/310766628: Only use rec_sse in CBR mode. 142 * Fix a hang of cmake on arm64 macOS with cmake 3.27.0 or later. 143 1442023-11-30 v3.8.0 145 This release includes new codec interfaces, compression efficiency and 146 perceptual improvements, speedup and memory optimizations and many bug 147 fixes. This release is ABI compatible with the last release. 148 149 - New Features 150 * New codec controls: 151 * AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR: Set the maximum number of 152 consecutive frame drops allowed for the frame dropper in 1 pass 153 CBR mode. 154 * Run-time CPU feature detection for all Arm platforms: 155 CRC, DotProd, I8MM and SVE CPU feature presence is detected at run 156 time and code paths making use of these features are selected 157 dynamically. These code paths provide meaningful performance gains 158 for standard bitdepth RTC and VoD encoding: up to 10% and 20% 159 respectively, over the Armv8.0-A baseline build. 160 * RTC: Frame-dropper support added to the rate control library. 161 * RTC Rate control improvements for low bitrate and for SVC. 162 163 - Compression Efficiency Improvements 164 * Improved accuracy of cost estimation for loop restoration and 165 global motion. 166 * Improved selection of loop restoration unit size - full search up 167 to (non-realtime) speed 2, retuned static selection at higher 168 speeds. 169 * RTC Screen content mode: 3-5% bdrate gains across speeds 7 - 10. 170 * Good-quality mode: 0.2 - 0.5% bdrate gains across speeds 1 - 4. 171 172 - Perceptual Quality Improvements 173 * RTC Screen: Improved visual quality for scrolling. 174 * RTC: Improved color quality for both screen and video mode. 175 176 - Speedup and Memory Optimizations 177 * Good-quality, single-thread encoder speedups: 178 o 15% improvement for speed 5. 179 o 12% improvement for speed 6. 180 * Arm standard bitdepth VoD (--good): 181 o 8% speedup for speeds 0 and 1. 182 o 20% speedup for speed 2. 183 o 27% speedup for speed 3. 184 o 30% speedup for speed 4. 185 o 38% speedup for speeds 5 and 6. 186 * Arm high bitdepth VoD (--good): 187 o 206% speedup for speeds 0 and 1. 188 o 180% speedup for speed 2. 189 o 51% speedup for speeds 3 and 4. 190 o 68% speedup for speed 5. 191 o 72% speedup for speed 6. 192 * RTC Screen content: 2-6% speedup across speeds 7-10. 193 * RTC: 2-3% speedup for temporal layers. 194 * RTC: Speedups to reference scaling in nonrd pickmode. 195 * Good-quality mode: Simplified global motion estimation, saving 196 ~1200 lines of code and 1KB of tables while improving quality. 197 198 - Bug Fixes 199 * Fixes to improve libaom stability in case of memory allocation 200 failures. 201 * Fixes to SIMD functions (x86 AVX2/SSE2 and ARM Neon). 202 * b/310457427, b/310766628: Bug fixes to only use rec_sse in CBR 203 mode. 204 2052023-11-17 v3.7.1 206 This release includes several bug fixes. This release is ABI 207 compatible with the last release. See 208 https://aomedia.googlesource.com/aom/+log/v3.7.0..v3.7.1 for all the 209 commits in this release. 210 211 - Bug Fixes 212 * aomedia:3349: heap overflow when increasing resolution 213 * aomedia:3478: GCC 12.2.0 emits a -Wstringop-overflow warning on 214 aom/av1/encoder/motion_search_facade.c 215 * aomedia:3489: Detect encoder and image high bit depth mismatch 216 * aomedia:3491: heap-buffer-overflow on frame size change (CVE-2023-6879) 217 * b/303023614: Segfault at encoding time for high bit depth images 218 2192023-08-10 v3.7.0 220 This release includes new codec interfaces, compression efficiency and 221 perceptual improvements, speedup and memory optimizations and many bug fixes. 222 This release is ABI compatible with the last release. 223 224 - New Features 225 * New codec controls: 226 * AV1E_SET_QUANTIZER_ONE_PASS: Set quantizer for each frame. 227 * AV1E_ENABLE_RATE_GUIDE_DELTAQ: enable the rate distribution guided delta 228 quantization in all intra mode. The "enable-rate-guide-deltaq" option is 229 added for this control. 230 * AV1E_SET_RATE_DISTRIBUTION_INFO: set the input file for rate 231 distribution used in all intra mode. The "rate-distribution-info" option 232 is added for this control. 233 * AV1E_GET_LUMA_CDEF_STRENGTH 234 * AV1E_SET_BITRATE_ONE_PASS_CBR 235 * AOM_SCALING_MODE is extended to include 2/3 and 1/3 scaling. 236 * aom_tune_metric is extended to include AOM_TUNE_VMAF_SALIENCY_MAP. 237 The "tune" option is extended to include "vmaf_saliency_map". 238 * SVC example encoder svc_encoder_rtc is able to use the rate control 239 library. 240 * Loopfilter level and CDEF filter level is supported by RTC rate control 241 library. 242 * New speed (--cpu-used) 11, intended for RTC screen sharing, added for 243 faster encoding with ~3% bdrate loss with 16% IC (instruction count) 244 speedup compared to speed 10. 245 246 - Compression Efficiency Improvements 247 * Improved VoD encoding performance 248 * 0.1-0.6% BDrate gains for encoding speeds 2 to 6 249 * Rate control accuracy improvement in VBR mode 250 * RTC encoding improvements 251 * Screen content mode: 10-19% BDrate gains for speeds 6 - 10 252 * Temporal layers video mode, for speed 10: 253 * 2 temporal layers on low resolutions: 13-15% BDrate gain 254 * 3 temporal layers on VGA/HD: 3-4% BDrate gain 255 256 - Perceptual Quality Improvements 257 * Fixed multiple block and color artifacts for RTC screen content by 258 * Incorporating color into RD cost for IDTX 259 * Reducing thresholds for palette mode in non RD mode 260 * Allowing more palette mode testing 261 * Improved color sensitivity for altref in non-RD mode. 262 * Reduced video flickering for temporal layer encoding. 263 264 - Speedup and Memory Optimizations 265 * Speed up the VoD encoder 266 * 2-5% for encoding speed 2 to 4 267 * 9-15% for encoding speed 5 to 6 268 * ARM 269 * Standard bitdepth 270 * speed 5: +31% 271 * speed 4: +2% 272 * speed 3: +9% 273 * speed 2: +157% 274 * High bitdepth 275 * speed 5: +85% 276 * RTC speedups 277 * Screen content mode 278 * 15% IC speedup for speeds 6-8 279 * ARM: 7% for speed 9, 3% for speed 10 280 * Temporal layers video mode 281 * 7% speedup for 3 temporal layers on VGA/HD, for speed 10 282 * Single layer video 283 * x86: 2% IC speedup for speeds 7-10 284 * ARM: 2-4% speedup across speeds 5-10 285 286 - Other improvements 287 * VoD: Major improvements to global motion estimation, now enabled up to 288 speed 4 289 * RTC 290 * Fixes to make lossless coding work. 291 * Fixes to make frame dropper (--drop_frames) work for single and temporal 292 layers. 293 * Improvements to RPS (reference picture selection) recovery frames. 294 * Improvements to rate control for temporal layers. 295 * libwebm is updated to libwebm-1.0.0.29-9-g1930e3c 296 297 - Bug Fixes 298 * aomedia:3261 Assertion failed when encoding av1 with film grain and 299 '--monochrome' flag 300 * aomedia:3276 ensure all allocations are checked (partial fix) 301 * aomedia:3451 The libaom library calls exit() 302 * aomedia:3450 enable -Wshadow for C++ sources 303 * aomedia:3449 Test Seg Faults After 304 b459af3e345be402db052a143fcc5383d4b74cbd 305 * aomedia:3416 prune unused symbols / restrict symbol visibility 306 * aomedia:3443 Jenkins failure: 307 UninstantiatedParameterizedTestSuite<EstimateNoiseTest> 308 * aomedia:3434 realtime failures with CONFIG_BITSTREAM_DEBUG=1 309 * aomedia:3433 DeltaqModeTest crash w/row_mt=0 310 * aomedia:3429 Encoder crash when turn on both ExternalResize and 311 g_threads > 2 312 * aomedia:3438 Build failure with 313 `-DSANITIZE=address -DBUILD_SHARED_LIBS=ON` when using clang. 314 * aomedia:3435 Block artifacts when scrolling with AV1 in screen sharing 315 scenarios 316 * aomedia:3170 vmaf tune presets produce extreme glitches in one scene 317 * aomedia:3401 Building shared libaom with MSVC results in a race condition 318 with the export library 319 * aomedia:3420 Floating point exception in av1_tpl_get_frame_importance() 320 * aomedia:3424 heap-buffer-overflow in ScaleFilterCols_16_C() (SIGABRT) 321 * aomedia:3417 examples/svc_encoder_rtc.c is using internal macros and 322 functions 323 * aomedia:3372 SEGV in assign_frame_buffer_p av1_common_int.h 324 * aomedia:3130 'cpu-features.h' file not found on Android NDK 22 325 * aomedia:3415 Encoder/decoder mismatch for svc_encoder_rtc running 326 1 SL 3 TL 327 * aomedia:3412 Lossless Mode Fails Loopback Bit Test 328 * aomedia:3409 The use of AV1_VAR_OFFS in av1/encoder/var_based_part.c is 329 incorrect for high bit depths 330 * aomedia:3403 test_libaom fails with error message 331 "feenableexcept() failed" on Linux arm 332 * aomedia:3370 Random color block at fast motion area 333 * aomedia:3393 Assertion failure in av1_convolve_2d_sr_c() 334 * aomedia:3392 Strong artifacting for high bit-depth real-time 335 * aomedia:3376 aomenc --threads=10 --deltaq-mode=3 crashes after 336 "Allintra: multi-threading of calculating differential contrast" 337 * aomedia:3380 Crashes and ASan and TSan errors in deltaq-mode=3 338 multithreading code 339 * chromium:1410766 heap-buffer-overflow in aom_yv12_copy_v_c 340 * Cannot set level via AV1E_SET_TARGET_SEQ_LEVEL_IDX 341 * Encoding failure due to the use of loop restoration with unintended use of 342 lossless mode. 343 * Signed integer overflow in scan_past_frames 344 * Signed integer overflow in update_a_sep_sym 345 * Flickering in AV1 1440p/2160p HDR transcodes 346 * Fixed artifacts with screen share at encoder speed 10 347 * Fixed prediction setup for IDTX 348 3492023-05-08 v3.6.1 350 This release includes several bug fixes. This release is ABI 351 compatible with the last release. See 352 https://aomedia.googlesource.com/aom/+log/v3.6.0..v3.6.1 for all the 353 commits in this release. 354 355 - Bug Fixes 356 * aomedia:2871: Guard the support of the 7.x and 8.x levels for AV1 357 under the CONFIG_CWG_C013 config flag, and only output the 7.x and 358 8.x levels when explicitly requested. 359 * aomedia:3382: Choose sb_size by ppi instead of svc. 360 * aomedia:3384: Fix fullpel search limits. 361 * aomedia:3388: Replace left shift of xq_active by multiplication. 362 * aomedia:3389: Fix MV clamping in av1_mv_pred. 363 * aomedia:3390: set_ld_layer_depth: cap max_layer_depth to 364 MAX_ARF_LAYERS. 365 * aomedia:3418: Fix MV clamping in av1_int_pro_motion_estimation. 366 * aomedia:3429: Move lpf thread data init to lpf_pipeline_mt_init(). 367 * b:266719111: Fix undefined behavior in Arm Neon code. 368 * b:269840681: nonrd_opt: align scan tables. 369 * rtc: Fix is_key_frame setting in variance partition. 370 * Build: Fix build with clang-cl and Visual Studio. 371 * Build: Fix module definition file for MinGW/MSYS. 372 3732023-02-03 v3.6.0 374 This release includes compression efficiency and perceptual quality 375 improvements, speedup and memory optimizations, and some new features. 376 This release is ABI compatible with the last release. 377 378 - New Features 379 * New values 20-27 (corresponding to levels 7.0-7.3 and 8.0-8.3) for 380 the encoder control AV1E_SET_TARGET_SEQ_LEVEL_IDX (note that the 381 proposal to add the new levels are still in draft status). The 382 original special value 24 (keep level stats only for level 383 monitoring) is renumbered as 32. 384 * New encoder control AV1E_SET_SKIP_POSTPROC_FILTERING to skip the 385 application of post-processing filters on reconstructed frame in 386 all intra mode. 387 * New encoder option "kf-max-pyr-height": Maximum height of pyramid 388 structure used for the GOP starting with a key frame (-1 to 5). 389 * Make SVC work for screen content. 390 * Rate control improvements to reduce frame-size spikes for screen 391 content coding. 392 * RISC-V architecture support with gcc toolchain. 393 394 - Compression Efficiency Improvements 395 * Peak compression efficiency in VOD setting is improved by 1%. 396 * 0.7% - 2.2% RTC encoding BDrate gains for real time speed 8 to 10. 397 * 15% RTC encoding BDrate gains for screen content speed 10. 398 399 - Perceptual Quality Improvements 400 * Resolved a visual quality issue that was reported for high 401 resolution clips (2K) for speed 4 and above in VOD use case. 402 * Visual quality improvements to screen content coding. 403 * Quality improvements to temporal layer RTC coding. 404 405 - Speedup and Memory Optimizations 406 * RTC single-thread encoder speedup: 407 o ~6% instruction count reduction for speed 5 and 6. 408 o ~15% instruction count reduction for speed 7. 409 o ~10% instruction count reduction for speed 8 to 10 (>=360p 410 resolutions). 411 * RTC multi-thread encoder speedup (beyond single-thread speedup): 412 o 5-8% encode time reduction for speed 7 to 10. 413 * RTC screen-content encoder speedup: 414 o 11% instruction count reduction for speed 9 and 10 (>=720p 415 resolutions). 416 * ~5% reduction in heap memory requirements for RTC, speed 6 to 10. 417 * AVIF: 418 o 4-5% speedup for speed 9 in still-picture encoding mode. 419 o 3-4% heap memory reduction in still-picture encoding mode for 420 360p-720p resolutions with multiple threads. 421 422 - Bug Fixes 423 * Added a workaround for an AV1 specification bug which makes 424 TRANSLATION type global motion models unusable. 425 * Fixed AddressSanitizer global-buffer-overflow errors in 426 av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c. 427 * Fixed AddressSanitizer heap-buffer-overflow error in 428 av1_wiener_convolve_add_src_neon(). 429 * chromium:1393384 Avoid scene detection on spatial resize. 430 * aomedia:3308 Remove color artifacts under high motion. 431 * aomedia:3310 Avoid out of memory failures with Visual Studio 2017, 432 2019, and 2022 for Win32 x86 builds. 433 * aomedia:3346 Make SVC work properly for screen content. 434 * aomedia:3348 Fix a bug where an uninitialized search_site is used. 435 * aomedia:3365 Work around what seems like a Visual Studio 2022 436 compiler optimization bug. 437 * aomedia:3369 Incorrect PSNR values reported by libaom for 12-bit 438 encode. 439 4402022-08-31 v3.5.0 441 This release is ABI compatible with the last one, including speedup and memory 442 optimizations, and new APIs and features. 443 444 - New Features 445 * Support for frame parallel encode for larger number of threads. --fp-mt 446 flag is available for all build configurations. 447 * New codec control AV1E_GET_NUM_OPERATING_POINTS 448 449 - Speedup and Memory Optimizations 450 * Speed-up multithreaded encoding for good quality mode for larger number of 451 threads through frame parallel encoding: 452 o 30-34% encode time reduction for 1080p, 16 threads, 1x1 tile 453 configuration (tile_rows x tile_columns) 454 o 18-28% encode time reduction for 1080p, 16 threads, 2x4 tile 455 configuration 456 o 18-20% encode time reduction for 2160p, 32 threads, 2x4 tile 457 configuration 458 * 16-20% speed-up for speed=6 to 8 in still-picture encoding mode 459 * 5-6% heap memory reduction for speed=6 to 10 in real-time encoding mode 460 * Improvements to the speed for speed=7, 8 in real-time encoding mode 461 * Improvements to the speed for speed=9, 10 in real-time screen encoding 462 mode 463 * Optimizations to improve multi-thread efficiency in real-time encoding 464 mode 465 * 10-15% speed up for SVC with temporal layers 466 * SIMD optimizations: 467 o Improve av1_quantize_fp_32x32_neon() 1.05x to 1.24x faster 468 o Add aom_highbd_quantize_b{,_32x32,_64x64}_adaptive_neon() 3.15x to 5.6x 469 faster than "C" 470 o Improve av1_quantize_fp_64x64_neon() 1.17x to 1.66x faster 471 o Add aom_quantize_b_avx2() 1.4x to 1.7x faster than aom_quantize_b_avx() 472 o Add aom_quantize_b_32x32_avx2() 1.4x to 2.3x faster than 473 aom_quantize_b_32x32_avx() 474 o Add aom_quantize_b_64x64_avx2() 2.0x to 2.4x faster than 475 aom_quantize_b_64x64_ssse3() 476 o Add aom_highbd_quantize_b_32x32_avx2() 9.0x to 10.5x faster than 477 aom_highbd_quantize_b_32x32_c() 478 o Add aom_highbd_quantize_b_64x64_avx2() 7.3x to 9.7x faster than 479 aom_highbd_quantize_b_64x64_c() 480 o Improve aom_highbd_quantize_b_avx2() 1.07x to 1.20x faster 481 o Improve av1_quantize_fp_avx2() 1.13x to 1.49x faster 482 o Improve av1_quantize_fp_32x32_avx2() 1.07x to 1.54x faster 483 o Improve av1_quantize_fp_64x64_avx2() 1.03x to 1.25x faster 484 o Improve av1_quantize_lp_avx2() 1.07x to 1.16x faster 485 486 - Bug fixes including but not limited to 487 * aomedia:3206 Assert that skip_width > 0 for deconvolve function 488 * aomedia:3278 row_mt enc: Delay top-right sync when intraBC is enabled 489 * aomedia:3282 blend_a64_*_neon: fix bus error in armv7 490 * aomedia:3283 FRAME_PARALLEL: Propagate border size to all cpis 491 * aomedia:3283 RESIZE_MODE: Fix incorrect strides being used for motion 492 search 493 * aomedia:3286 rtc-svc: Fix to dynamic_enable spatial layers 494 * aomedia:3289 rtc-screen: Fix to skipping inter-mode test in nonrd 495 * aomedia:3289 rtc-screen: Fix for skip newmv on flat blocks 496 * aomedia:3299 Fix build failure with CONFIG_TUNE_VMAF=1 497 * aomedia:3296 Fix the conflict --enable-tx-size-search=0 with nonrd mode 498 --enable-tx-size-search will be ignored in non-rd pick mode 499 * aomedia:3304 Fix off-by-one error of max w/h in validate_config 500 * aomedia:3306 Do not use pthread_setname_np on GNU/Hurd 501 * aomedia:3325 row-multithreading produces invalid bitstream in some cases 502 * chromium:1346938, chromium:1338114 503 * compiler_flags.cmake: fix flag detection w/cmake 3.17-3.18.2 504 * tools/*.py: update to python3 505 * aom_configure.cmake: detect PIE and set CONFIG_PIC 506 * test/simd_cmp_impl: use explicit types w/CompareSimd* 507 * rtc: Fix to disable segm for aq-mode=3 508 * rtc: Fix to color_sensitivity in variance partition 509 * rtc-screen: Fix bsize in model rd computation for intra chroma 510 * Fixes to ensure the correct behavior of the encoder algorithms (like 511 segmentation, computation of statistics, etc.) 512 5132022-06-17 v3.4.0 514 This release includes compression efficiency and perceptual quality 515 improvements, speedup and memory optimizations, and some new features. 516 There are no ABI or API breaking changes in this release. 517 518 - New Features 519 * New --dist-metric flag with "qm-psnr" value to use quantization 520 matrices in the distortion computation for RD search. The default 521 value is "psnr". 522 * New command line option "--auto-intra-tools-off=1" to make 523 all-intra encoding faster for high bit rate under 524 "--deltaq-mode=3" mode. 525 * New rate control library aom_av1_rc for real-time hardware 526 encoders. Supports CBR for both one spatial layer and SVC. 527 * New image format AOM_IMG_FMT_NV12 can be used as input to the 528 encoder. The presence of AOM_IMG_FMT_NV12 can be detected at 529 compile time by checking if the macro AOM_HAVE_IMG_FMT_NV12 is 530 defined. 531 * New codec controls for the encoder: 532 o AV1E_SET_AUTO_INTRA_TOOLS_OFF. Only in effect if 533 --deltaq-mode=3. 534 o AV1E_SET_RTC_EXTERNAL_RC 535 o AV1E_SET_FP_MT. Only supported if libaom is built with 536 -DCONFIG_FRAME_PARALLEL_ENCODE=1. 537 o AV1E_GET_TARGET_SEQ_LEVEL_IDX 538 * New key-value pairs for the key-value API: 539 o --auto-intra-tools-off=0 (default) or 1. Only in effect if 540 --deltaq-mode=3. 541 o --strict-level-conformance=0 (default) or 1 542 o --fp-mt=0 (default) or 1. Only supported if libaom is built 543 with -DCONFIG_FRAME_PARALLEL_ENCODE=1. 544 * New aomenc options (not supported by the key-value API): 545 o --nv12 546 547 - Compression Efficiency Improvements 548 * Correctly calculate SSE for high bitdepth in skip mode, 0.2% to 549 0.6% coding gain. 550 * RTC at speed 9/10: BD-rate gain of ~4/5% 551 * RTC screen content coding: many improvements for real-time screen 552 at speed 10 (quality, speedup, and rate control), up to high 553 resolutions (1080p). 554 * RTC-SVC: fixes to make intra-only frames work for spatial layers. 555 * RTC-SVC: quality improvements for temporal layers. 556 * AV1 RT: A new passive rate control strategy for screen content, an 557 average of 7.5% coding gain, with some clips of 20+%. The feature 558 is turned off by default due to higher bit rate variation. 559 560 - Perceptual Quality Improvements 561 * RTC: Visual quality improvements for high speeds (9/10) 562 * Improvements in coding quality for all intra mode 563 564 - Speedup and Memory Optimizations 565 * ~10% speedup in good quality mode encoding. 566 * ~7% heap memory reduction in good quality encoding mode for speed 567 5 and 6. 568 * Ongoing improvements to intra-frame encoding performance on Arm 569 * Faster encoding speed for "--deltaq-mode=3" mode. 570 * ~10% speedup for speed 5/6, ~15% speedup for speed 7/8, and 571 ~10% speedup for speed 9/10 in real time encoding mode 572 * ~20% heap memory reduction in still-picture encoding mode for 573 360p-720p resolutions with multiple threads 574 * ~13% speedup for speed 6 and ~12% speedup for speed 9 in 575 still-picture encoding mode. 576 * Optimizations to improve multi-thread efficiency for still-picture 577 encoding mode. 578 579 - Bug Fixes 580 * b/204460717: README.md: replace master with main 581 * b/210677928: libaom disable_order is surprising for 582 max_reference_frames=3 583 * b/222461449: -DCONFIG_TUNE_BUTTERAUGLI=1 broken 584 * b/227207606: write_greyscale writes incorrect chroma in highbd 585 mode 586 * b/229955363: Integer-overflow in linsolve_wiener 587 * https://crbug.com/aomedia/2032 588 * https://crbug.com/aomedia/2397 589 * https://crbug.com/aomedia/2563 590 * https://crbug.com/aomedia/2815 591 * https://crbug.com/aomedia/3009 592 * https://crbug.com/aomedia/3018 593 * https://crbug.com/aomedia/3045 594 * https://crbug.com/aomedia/3101 595 * https://crbug.com/aomedia/3130 596 * https://crbug.com/aomedia/3173 597 * https://crbug.com/aomedia/3184 598 * https://crbug.com/aomedia/3187 599 * https://crbug.com/aomedia/3190 600 * https://crbug.com/aomedia/3195 601 * https://crbug.com/aomedia/3197 602 * https://crbug.com/aomedia/3201 603 * https://crbug.com/aomedia/3202 604 * https://crbug.com/aomedia/3204 605 * https://crbug.com/aomedia/3205 606 * https://crbug.com/aomedia/3207 607 * https://crbug.com/aomedia/3208 608 * https://crbug.com/aomedia/3209 609 * https://crbug.com/aomedia/3213 610 * https://crbug.com/aomedia/3214 611 * https://crbug.com/aomedia/3219 612 * https://crbug.com/aomedia/3222 613 * https://crbug.com/aomedia/3223 614 * https://crbug.com/aomedia/3225 615 * https://crbug.com/aomedia/3226 616 * https://crbug.com/aomedia/3228 617 * https://crbug.com/aomedia/3232 618 * https://crbug.com/aomedia/3236 619 * https://crbug.com/aomedia/3237 620 * https://crbug.com/aomedia/3238 621 * https://crbug.com/aomedia/3240 622 * https://crbug.com/aomedia/3243 623 * https://crbug.com/aomedia/3244 624 * https://crbug.com/aomedia/3246 625 * https://crbug.com/aomedia/3248 626 * https://crbug.com/aomedia/3250 627 * https://crbug.com/aomedia/3251 628 * https://crbug.com/aomedia/3252 629 * https://crbug.com/aomedia/3255 630 * https://crbug.com/aomedia/3257 631 * https://crbug.com/aomedia/3259 632 * https://crbug.com/aomedia/3260 633 * https://crbug.com/aomedia/3267 634 * https://crbug.com/aomedia/3268 635 * https://crbug.com/aomedia/3269 636 * https://crbug.com/aomedia/3276 637 * https://crbug.com/aomedia/3278 638 * https://crbug.com/chromium/1290068 639 * https://crbug.com/chromium/1303237 640 * https://crbug.com/chromium/1304990 641 * https://crbug.com/chromium/1321141 642 * https://crbug.com/chromium/1321388 643 * https://crbug.com/oss-fuzz/44846 644 * https://crbug.com/oss-fuzz/44856 645 * https://crbug.com/oss-fuzz/44862 646 * https://crbug.com/oss-fuzz/44904 647 * https://crbug.com/oss-fuzz/45056 648 6492022-01-28 v3.3.0 650 This release includes compression efficiency and perceptual quality 651 improvements, speedup and memory optimizations, some new features, and 652 several bug fixes. 653 654 - New Features 655 * AV1 RT: Introducing CDEF search level 5 656 * Changed real time speed 4 to behave the same as real time speed 5 657 * Add --deltaq-strength 658 * rtc: Allow scene-change and overshoot detection for svc 659 * rtc: Intra-only frame for svc 660 * AV1 RT: Option 2 for codec control AV1E_SET_ENABLE_CDEF to disable 661 CDEF on non-ref frames 662 * New codec controls AV1E_SET_LOOPFILTER_CONTROL and 663 AOME_GET_LOOPFILTER_LEVEL 664 * Improvements to three pass encoding 665 666 - Compression Efficiency Improvements 667 * Overall compression gains: 0.6% 668 669 - Perceptual Quality Improvements 670 * Improves the perceptual quality of high QP encoding for delta-q mode 4 671 * Auto select noise synthesis level for all intra 672 673 - Speedup and Memory Optimizations 674 * Added many SSE2 optimizations. 675 * Good quality 2-pass encoder speedups: 676 o Speed 2: 9% 677 o Speed 3: 12.5% 678 o Speed 4: 8% 679 o Speed 5: 3% 680 o Speed 6: 4% 681 * Real time mode encoder speedups: 682 o Speed 5: 2.6% BDRate gain, 4% speedup 683 o Speed 6: 3.5% BDRate gain, 4% speedup 684 o Speed 9: 1% BDRate gain, 3% speedup 685 o Speed 10: 3% BDRate gain, neutral speedup 686 * All intra encoding speedups (AVIF): 687 o Single thread - speed 6: 8% 688 o Single thread - speed 9: 15% 689 o Multi thread(8) - speed 6: 14% 690 o Multi thread(8) - speed 9: 34% 691 692 - Bug Fixes 693 * Issue 3163: Segmentation fault when using --enable-keyframe-filtering=2 694 * Issue 2436: Integer overflow in av1_warp_affine_c() 695 * Issue 3226: armv7 build failure due to gcc-11 696 * Issue 3195: Bug report on libaom (AddressSanitizer: heap-buffer-overflow) 697 * Issue 3191: Bug report on libaom (AddressSanitizer: SEGV on unknown 698 address) 699 * Issue 3176: Some SSE2/SADx4AvgTest.* tests fail on Windows 700 * Issue 3175: Some SSE2/SADSkipTest.* tests fail on Windows 701 7022021-10-13 v3.2.0 703 This release includes compression efficiency and perceptual quality 704 improvements, speedup and memory optimizations, as well as some new 705 features. 706 707 - New Features 708 * Introduced speeds 7, 8, and 9 for all intra mode. 709 * Introduced speed 10 for real time mode. 710 * Introduced an API that allows external partition decisions. 711 * SVC: added support for compound prediction. 712 * SVC: added support for fixed SVC modes. 713 714 - Compression Efficiency Improvements 715 * Intra-mode search improvement. 716 * Improved real time (RT) mode BDrate savings by ~5% (RT speed 5) 717 and ~12% (RT speed 6). The improvement was measured on the video 718 conference set. 719 * Improved real time mode for nonrd path (speed 7, 8, 9): BDrate 720 gains of ~3-5%. 721 * Rate control and RD adjustments based on ML research in VP9. 722 Gains of ~0.5-1.0% for HD. 723 724 - Perceptual Quality Improvements 725 * Added a new mode --deltaq-mode=3 to improve perceptual quality 726 based on a differential contrast model for still images. 727 * Added a new mode --deltaq-mode=4 to improve perceptual quality 728 based on user rated cq_level data set for still images. 729 * Weighting of some intra mode and partition size choices to better 730 manage and retain texture. 731 732 - Speedup and Memory Optimizations 733 * Further improved 2-pass good quality encoder speed: 734 o Speed 2 speedup: 18% 735 o Speed 3 speedup: 22% 736 o Speed 4 speedup: 37% 737 o Speed 5 speedup: 30% 738 o Speed 6 speedup: 20% 739 * Optimized the real time encoder (measured on the video conference 740 set): 741 o RT speed 5 speedup: 110% 742 o RT speed 6 speedup: 77% 743 744 - Bug Fixes 745 * Issue 3069: Fix one-pass mode keyframe placement off-by-one error. 746 * Issue 3156: Fix a bug in av1_quantize_lp AVX2 optimization. 747 7482021-09-29 v3.1.3 749 This release includes several bug fixes. 750 751 - Bug fixes: 752 The following four cmake changes should help the people building 753 libaom using MSVC. 754 1. exports: use CMAKE_SHARED_LIBRARY_PREFIX to determine lib name 755 https://aomedia-review.googlesource.com/c/aom/+/142342 756 2. aom_install: Install lib dlls to bindir 757 https://aomedia-review.googlesource.com/c/aom/+/146546 758 3. aom_install: use relpath for install 759 https://aomedia-review.googlesource.com/c/aom/+/146550 760 4. aom_install: don't exclude msvc from install 761 https://aomedia-review.googlesource.com/c/aom/+/146547 762 763 aom/aom_encoder.h: remove configure option reference 764 https://aomedia-review.googlesource.com/c/aom/+/146743 765 766 Issue 3113: Tests for detecting chroma subsampling in 767 av1_copy_and_extend_frame() do not work when y_width or y_height is 768 1 769 770 Issue 3115: image2yuvconfig() should calculate uv_crop_width and 771 uv_crop_height from y_crop_width and y_crop_height 772 773 Issue 3140: rc_overshoot_pct is documented as having a range of 774 0-1000, but is range checked against 0-100 775 776 Issue 3147: Build failure on Apple M1 arm64 777 7782021-07-20 v3.1.2 779 This release includes several bug fixes. 780 781 - Bug fixes: 782 exports.cmake: use APPLE and WIN32 and use def for mingw-w64 783 https://aomedia-review.googlesource.com/c/aom/+/139882 784 785 Issue 2993: Incorrect spatial_id when decoding base layer of 786 multi-layer stream 787 788 Issue 3080: Chroma Resampling by Encoder on Y4M Inputs Files Tagged 789 as C420mpeg2 790 791 Issue 3081: Use of uninitialized value $version_extra in 792 concatenation (.) or string at aom/build/cmake/version.pl line 88. 793 7942021-06-08 v3.1.1 795 This release includes several bug fixes. 796 797 - Bug fixes: 798 Issue 2965: Cherry-picked the following four commits for the 799 tune=butteraugli mode. 800 1. Add libjxl to pkg_config if enabled: 801 https://aomedia-review.googlesource.com/c/aom/+/136044 802 2. Declare set_mb_butteraugli_rdmult_scaling static: 803 https://aomedia-review.googlesource.com/c/aom/+/134506 804 3. Add color range detection in tune=butteraugli mode: 805 https://aomedia-review.googlesource.com/c/aom/+/135521 806 4. Enable tune=butteraugli in all-intra mode: 807 https://aomedia-review.googlesource.com/c/aom/+/136082 808 809 Issue 3021: Fix vmaf model initialization error when not set to 810 tune=vmaf 811 812 Issue 3050: Compilation fails with -DCONFIG_TUNE_VMAF=1 813 814 Issue 3054: Consistent crash on near-static screen content, keyframe 815 related 816 8172021-05-03 v3.1.0 818 This release adds an "all intra" mode to the encoder, which significantly 819 speeds up the encoding of AVIF still images at speed 6. 820 821 - Upgrading: 822 All intra mode for encoding AVIF still images and AV1 all intra videos: 823 AOM_USAGE_ALL_INTRA (2) can be passed as the 'usage' argument to 824 aom_codec_enc_config_default(). 825 826 New encoder control IDs added: 827 - AV1E_SET_ENABLE_DIAGONAL_INTRA: Enable diagonal (D45 to D203) intra 828 prediction modes (0: false, 1: true (default)). Also available as 829 "enable-diagonal-intra" for the aom_codec_set_option() function. 830 831 New aom_tune_metric enum value: AOM_TUNE_BUTTERAUGLI. The new aomenc option 832 --tune=butteraugli was added to optimize the encoder's perceptual quality by 833 optimizing the Butteraugli metric. Install libjxl (JPEG XL) and then pass 834 -DCONFIG_TUNE_BUTTERAUGLI=1 to the cmake command to enable it. 835 836 Addition of support for libvmaf 2.x. 837 838 - Enhancements: 839 Heap memory consumption for encoding AVIF still images is significantly 840 reduced. 841 842 - Bug fixes: 843 Issue 2601: third_party/libaom fails licensecheck 844 845 Issue 2950: Conditional expression for rc->this_key_frame_forced is always 846 true in find_next_key_frame() 847 848 Issue 2988: "make install" installs the aom.h header twice 849 850 Issue 2992: Incorrectly printing the temporal_id twice in dump_obu tool 851 852 Issue 2998: 853 854 Issue 2999: 855 856 Issue 3000: 857 8582021-02-24 v3.0.0 859 This release includes compression efficiency improvement, speed improvement 860 for realtime mode, as well as some new APIs. 861 862 - Upgrading: 863 Support for PSNR calculation based on stream bit-depth. 864 865 New encoder control IDs added: 866 - AV1E_SET_ENABLE_RECT_TX 867 - AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP 868 - AV1E_GET_BASELINE_GF_INTERVAL 869 - AV1E_SET_ENABLE_DNL_DENOISING 870 871 New decoder control IDs added: 872 - AOMD_GET_FWD_KF_PRESENT 873 - AOMD_GET_FRAME_FLAGS 874 - AOMD_GET_ALTREF_PRESENT 875 - AOMD_GET_TILE_INFO 876 - AOMD_GET_SCREEN_CONTENT_TOOLS_INFO 877 - AOMD_GET_STILL_PICTURE 878 - AOMD_GET_SB_SIZE 879 - AOMD_GET_SHOW_EXISTING_FRAME_FLAG 880 - AOMD_GET_S_FRAME_INFO 881 882 New aom_tune_content enum value: AOM_CONTENT_FILM 883 884 New aom_tune_metric enum value: AOM_TUNE_VMAF_NEG_MAX_GAIN 885 886 Coefficient and mode update can be turned off via 887 AV1E_SET_{COEFF/MODE}_COST_UPD_FREQ. 888 889 New key & value API added, available with aom_codec_set_option() function. 890 891 Scaling API expanded to include 1/4, 3/4 and 1/8. 892 893 - Enhancements: 894 Better multithreading performance with realtime mode. 895 896 New speed 9 setting for faster realtime encoding. 897 898 Smaller binary size with low bitdepth and realtime only build. 899 900 Temporal denoiser and its optimizations on x86 and Neon. 901 902 Optimizations for scaling. 903 904 Faster encoding with speed settings 2 to 6 for good encoding mode. 905 906 Improved documentation throughout the library, with function level 907 documentation, tree view and support for the dot tool. 908 909 - Bug fixes: 910 Aside from those mentioned in v2.0.1 and v2.0.2, this release includes the 911 following bug fixes: 912 913 Issue 2940: Segfault when encoding with --use-16bit-internal and --limit > 1 914 915 Issue 2941: Decoder mismatch with --rt --bit-depth=10 and --cpu-used=8 916 917 Issue 2895: mingw-w64 i686 gcc fails to build 918 919 Issue 2874: Separate ssse3 functions from sse2 file. 920 9212021-02-09 v2.0.2 922 This release includes several bug fixes. 923 924 - Bug fixes: 925 Issue 2643: Modify the assertion in temporal filter intrinsics. 926 927 Issue 2648: Fix unit test ThreadTestLarge.EncoderResultTest/49 928 assertion failure. 929 930 Issue 2869: Add -Wimplicit-function-declaration as C flag only. 931 932 Issue 2878: Avoid memset in the av1_filter_intra_predictor module 933 functions. 934 935 Issue 2903: Fix a typo bug in apply_temporal_filter_planewise. 936 937 Call av1_setup_frame_size() when dropping a frame in the 938 encode_frame_to_data_rate() function in av1/encoder/encoder.c. 939 9402020-11-25 v2.0.1 941 This release includes two bug fixes. 942 943 - Bug fixes: 944 Issue 2723: Fix crash in chroma_check() when generating a monochrome 945 encoded stream in real-time mode. 946 947 Issue 2833: Fix crash on some input when reduced still picture header is 948 used in real-time mode and speed >=7. 949 9502020-05-07 v2.0.0 "Applejack" 951 First official release of libaom. 952 This release includes new real-time mode and SVC support. 953 954 - Upgrading: 955 AOM_SET_POSTPROC, AOM_CODEC_CAP_POSTPROC and AOM_CODEC_USE_POSTPROC are 956 removed. 957 958 AOM_SET_DBG_* is removed. 959 960 Multi-resolution encoding is removed. 961 962 put_frame and put_slice callbacks are removed. 963 964 - Enhancements: 965 Full-sweep document update for codec controls. 966 9672018-06-28 v1.0.0 968 AOMedia Codec Workgroup Approved version 1.0 969 9702016-04-07 v0.1.0 "AOMedia Codec 1" 971 This release is the first Alliance for Open Media codec. 972