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