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