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