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