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