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