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