xref: /aosp_15_r20/external/libvpx/CHANGELOG (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
1*fb1b10abSAndroid Build Coastguard Worker2024-10-22 v1.15.0 "Wigeon Duck"
2*fb1b10abSAndroid Build Coastguard Worker  This release includes new codec control for key frame filtering, more Neon
3*fb1b10abSAndroid Build Coastguard Worker  optimizations, improvements to RTC encoding and bug fixes.
4*fb1b10abSAndroid Build Coastguard Worker
5*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
6*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with the previous release.
7*fb1b10abSAndroid Build Coastguard Worker
8*fb1b10abSAndroid Build Coastguard Worker    Temporal filtering improvement that can be turned on with the new codec
9*fb1b10abSAndroid Build Coastguard Worker    control VP9E_SET_KEY_FRAME_FILTERING, which gives 1+% BD-rate saving with
10*fb1b10abSAndroid Build Coastguard Worker    minimal encoder time increase.
11*fb1b10abSAndroid Build Coastguard Worker
12*fb1b10abSAndroid Build Coastguard Worker    libwebm is upgraded to libwebm-1.0.0.31-10-g3b63004
13*fb1b10abSAndroid Build Coastguard Worker
14*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
15*fb1b10abSAndroid Build Coastguard Worker    Neon optimization speed up
16*fb1b10abSAndroid Build Coastguard Worker      1-3% speed up across speed 5 to 10 for RTC
17*fb1b10abSAndroid Build Coastguard Worker      3% speed up for speed 0 and 1 for VoD in standard bitdepth
18*fb1b10abSAndroid Build Coastguard Worker      3% and 7% speed up for speed 0 and 1 respectively for VoD in high bitdepth
19*fb1b10abSAndroid Build Coastguard Worker    Scene detection is allowed for all RTC speeds (>=5)
20*fb1b10abSAndroid Build Coastguard Worker    Support profile guided optimizations
21*fb1b10abSAndroid Build Coastguard Worker
22*fb1b10abSAndroid Build Coastguard Worker    Delta quantization parameters for UV channels for vp8 is supported in RTC
23*fb1b10abSAndroid Build Coastguard Worker    rate control library
24*fb1b10abSAndroid Build Coastguard Worker
25*fb1b10abSAndroid Build Coastguard Worker    Rate control parameters are reset and maximum QP is enforced on scene
26*fb1b10abSAndroid Build Coastguard Worker    changes in SVC when there is no inter-layer prediction
27*fb1b10abSAndroid Build Coastguard Worker
28*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
29*fb1b10abSAndroid Build Coastguard Worker    Fix to Uninitialized scalar variable in `vp9_rd_pick_inter_mode_sb()`
30*fb1b10abSAndroid Build Coastguard Worker    Fix to Integer-overflow in `resize_multistep`
31*fb1b10abSAndroid Build Coastguard Worker    Fix to Heap-buffer-overflow in `vpx_sad64x64_avx2`
32*fb1b10abSAndroid Build Coastguard Worker    Fix to Crash in `vpx_sad8x8_sse2`
33*fb1b10abSAndroid Build Coastguard Worker    Fix to Assertion in `write_modes`
34*fb1b10abSAndroid Build Coastguard Worker    Support profile guided optimizations
35*fb1b10abSAndroid Build Coastguard Worker    Fix to Integer-overflow in `encode_frame_to_data_rate`
36*fb1b10abSAndroid Build Coastguard Worker    Fix to Integer-overflow in `vp9_svc_check_reset_layer_rc_flag`
37*fb1b10abSAndroid Build Coastguard Worker    Fix to core dump error from /usr/bin/tools/tiny_ssim --help
38*fb1b10abSAndroid Build Coastguard Worker    Fix to use-of-uninitialized-value in `vp9_setup_tpl_stats`
39*fb1b10abSAndroid Build Coastguard Worker    Fix to Undefined-shift in `vp9_cyclic_refresh_setup`
40*fb1b10abSAndroid Build Coastguard Worker    Fix to redundant `&& __GNUC__` preproc check
41*fb1b10abSAndroid Build Coastguard Worker    Fix to valgrind warning in EncodeAPI.OssFuzz69906
42*fb1b10abSAndroid Build Coastguard Worker    Fix to Index-out-of-bounds in `vp8_rd_pick_inter_mode`
43*fb1b10abSAndroid Build Coastguard Worker    Fix to Integer-overflow in `vp8_pick_frame_size`
44*fb1b10abSAndroid Build Coastguard Worker    Fix to Use-of-uninitialized-value in `vpx_codec_peek_stream_info`
45*fb1b10abSAndroid Build Coastguard Worker    Fix to log clutters with the message "Warning: Desired height too large"
46*fb1b10abSAndroid Build Coastguard Worker    Fix to Integer-overflow in `vp9_svc_adjust_avg_frame_qindex`
47*fb1b10abSAndroid Build Coastguard Worker
48*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflows caused by huge target bitrate, frame rate, or
49*fb1b10abSAndroid Build Coastguard Worker    g_timebase numerator or denominator
50*fb1b10abSAndroid Build Coastguard Worker
51*fb1b10abSAndroid Build Coastguard Worker    Fix to missing license headers
52*fb1b10abSAndroid Build Coastguard Worker    Fix to build failure for Android Armv7
53*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflows in image helpers
54*fb1b10abSAndroid Build Coastguard Worker    Fix to Integer-overflow in `vp9_calc_iframe_target_size_one_pass_cbr`
55*fb1b10abSAndroid Build Coastguard Worker    Fix to Heap-buffer-overflow in `vp9_pick_inter_mode`
56*fb1b10abSAndroid Build Coastguard Worker    Fix to Segv in `vp9_multi_thread_tile_init`
57*fb1b10abSAndroid Build Coastguard Worker    Fix to Use-of-uninitialized-value in `vp9_row_mt_sync_mem_dealloc`
58*fb1b10abSAndroid Build Coastguard Worker    Fix to Crash in `mbloop_filter_vertical_edge_c`
59*fb1b10abSAndroid Build Coastguard Worker    Fix to Check failed in CheckUnwind
60*fb1b10abSAndroid Build Coastguard Worker    Fix to Heap-buffer-overflow in `write_modes_b` and `vpx_write`
61*fb1b10abSAndroid Build Coastguard Worker    Fix to Possible signed integer overflow found in `vpx_codec_encode`
62*fb1b10abSAndroid Build Coastguard Worker    Fix to build conflicts between Abseil and libaom/libvpx in Win ARM64 builds
63*fb1b10abSAndroid Build Coastguard Worker    Fix to build failures on aarch64
64*fb1b10abSAndroid Build Coastguard Worker    Fix to Data race in libvpx ARM NEON
65*fb1b10abSAndroid Build Coastguard Worker    Fix to Heap-buffer-overflow in `scale_plane_1_to_2_phase_0`
66*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow in `encode_mb_row`
67*fb1b10abSAndroid Build Coastguard Worker    Fix to Floating-point-exception in `vp8_pick_frame_size`
68*fb1b10abSAndroid Build Coastguard Worker    Fix to Heap-buffer-overflow in `vp9_enc_setup_mi`
69*fb1b10abSAndroid Build Coastguard Worker    Fix to build failure with --target=arm64-win64-vs17
70*fb1b10abSAndroid Build Coastguard Worker    Fix to heap-buffer-overflow write in `vpx_img_read()`
71*fb1b10abSAndroid Build Coastguard Worker    Fix to C vs armv8-linux-gcc encode mismatches for `y4m_360p_10bit_input`
72*fb1b10abSAndroid Build Coastguard Worker    Fix to Null-dereference READ in `ml_predict_var_rd_partitioning`
73*fb1b10abSAndroid Build Coastguard Worker    Fix to Heap-buffer-overflow in `vpx_scaled_2d_ssse3`
74*fb1b10abSAndroid Build Coastguard Worker    Fix to Crash in `convolve_horiz`
75*fb1b10abSAndroid Build Coastguard Worker    Fix to Ill in `vpx_scaled_2d_ssse3`
76*fb1b10abSAndroid Build Coastguard Worker    Fix to Global-buffer-overflow in `cost_coeffs`
77*fb1b10abSAndroid Build Coastguard Worker
78*fb1b10abSAndroid Build Coastguard Worker2024-05-21 v1.14.1 "Venetian Duck"
79*fb1b10abSAndroid Build Coastguard Worker  This release includes enhancements and bug fixes.
80*fb1b10abSAndroid Build Coastguard Worker
81*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
82*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with the previous release.
83*fb1b10abSAndroid Build Coastguard Worker
84*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
85*fb1b10abSAndroid Build Coastguard Worker    Improved the detection of compiler support for AArch64 extensions,
86*fb1b10abSAndroid Build Coastguard Worker    particularly SVE.
87*fb1b10abSAndroid Build Coastguard Worker
88*fb1b10abSAndroid Build Coastguard Worker    Added vpx_codec_get_global_headers() support for VP9.
89*fb1b10abSAndroid Build Coastguard Worker
90*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
91*fb1b10abSAndroid Build Coastguard Worker    Added buffer bounds checks to vpx_writer and vpx_write_bit_buffer.
92*fb1b10abSAndroid Build Coastguard Worker    Fix to GetSegmentationData() crash in aq_mode=0 for RTC rate control.
93*fb1b10abSAndroid Build Coastguard Worker    Fix to alloc for row_base_thresh_freq_fac.
94*fb1b10abSAndroid Build Coastguard Worker    Free row mt memory before freeing cpi->tile_data.
95*fb1b10abSAndroid Build Coastguard Worker    Fix to buffer alloc for vp9_bitstream_worker_data.
96*fb1b10abSAndroid Build Coastguard Worker    Fix to VP8 race issue for multi-thread with pnsr_calc.
97*fb1b10abSAndroid Build Coastguard Worker    Fix to uv width/height in vp9_scale_and_extend_frame_ssse3.
98*fb1b10abSAndroid Build Coastguard Worker    Fix to integer division by zero and overflow in calc_pframe_target_size().
99*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow in vpx_img_alloc() & vpx_img_wrap()(CVE-2024-5197).
100*fb1b10abSAndroid Build Coastguard Worker    Fix to UBSan error in vp9_rc_update_framerate().
101*fb1b10abSAndroid Build Coastguard Worker    Fix to UBSan errors in vp8_new_framerate().
102*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow in vp8 encodeframe.c.
103*fb1b10abSAndroid Build Coastguard Worker    Handle EINTR from sem_wait().
104*fb1b10abSAndroid Build Coastguard Worker
105*fb1b10abSAndroid Build Coastguard Worker2024-01-02 v1.14.0 "Venetian Duck"
106*fb1b10abSAndroid Build Coastguard Worker  This release drops support for old C compilers, such as Visual Studio 2012
107*fb1b10abSAndroid Build Coastguard Worker  and older, that disallow mixing variable declarations and statements (a C99
108*fb1b10abSAndroid Build Coastguard Worker  feature). It adds support for run-time CPU feature detection for Arm
109*fb1b10abSAndroid Build Coastguard Worker  platforms, as well as support for darwin23 (macOS 14).
110*fb1b10abSAndroid Build Coastguard Worker
111*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
112*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with the previous release.
113*fb1b10abSAndroid Build Coastguard Worker
114*fb1b10abSAndroid Build Coastguard Worker    Various new features for rate control library for real-time: SVC parallel
115*fb1b10abSAndroid Build Coastguard Worker    encoding, loopfilter level, support for frame dropping, and screen content.
116*fb1b10abSAndroid Build Coastguard Worker
117*fb1b10abSAndroid Build Coastguard Worker    New callback function send_tpl_gop_stats for vp9 external rate control
118*fb1b10abSAndroid Build Coastguard Worker    library, which can be used to transmit TPL stats for a group of pictures. A
119*fb1b10abSAndroid Build Coastguard Worker    public header vpx_tpl.h is added for the definition of TPL stats used in
120*fb1b10abSAndroid Build Coastguard Worker    this callback.
121*fb1b10abSAndroid Build Coastguard Worker
122*fb1b10abSAndroid Build Coastguard Worker    libwebm is upgraded to libwebm-1.0.0.29-9-g1930e3c.
123*fb1b10abSAndroid Build Coastguard Worker
124*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
125*fb1b10abSAndroid Build Coastguard Worker    Improvements on Neon optimizations: VoD: 12-35% speed up for bitdepth 8,
126*fb1b10abSAndroid Build Coastguard Worker    68%-151% speed up for high bitdepth.
127*fb1b10abSAndroid Build Coastguard Worker
128*fb1b10abSAndroid Build Coastguard Worker    Improvements on AVX2 and SSE optimizations.
129*fb1b10abSAndroid Build Coastguard Worker    Improvements on LSX optimizations for LoongArch.
130*fb1b10abSAndroid Build Coastguard Worker    42-49% speedup on speed 0 VoD encoding.
131*fb1b10abSAndroid Build Coastguard Worker    Android API level predicates.
132*fb1b10abSAndroid Build Coastguard Worker
133*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
134*fb1b10abSAndroid Build Coastguard Worker    Fix to missing prototypes from the rtcd header.
135*fb1b10abSAndroid Build Coastguard Worker    Fix to segfault when total size is enlarged but width is smaller.
136*fb1b10abSAndroid Build Coastguard Worker    Fix to the build for arm64ec using MSVC.
137*fb1b10abSAndroid Build Coastguard Worker    Fix to copy BLOCK_8X8's mi to PICK_MODE_CONTEXT::mic.
138*fb1b10abSAndroid Build Coastguard Worker    Fix to -Wshadow warnings.
139*fb1b10abSAndroid Build Coastguard Worker    Fix to heap overflow in vpx_get4x4sse_cs_neon.
140*fb1b10abSAndroid Build Coastguard Worker    Fix to buffer overrun in highbd Neon subpel variance filters.
141*fb1b10abSAndroid Build Coastguard Worker    Added bitexact encode test script.
142*fb1b10abSAndroid Build Coastguard Worker    Fix to -Wl,-z,defs with Clang's sanitizers.
143*fb1b10abSAndroid Build Coastguard Worker    Fix to decoder stability after error & continued decoding.
144*fb1b10abSAndroid Build Coastguard Worker    Fix to mismatch of VP9 encode with NEON intrinsics with C only version.
145*fb1b10abSAndroid Build Coastguard Worker    Fix to Arm64 MSVC compile vpx_highbd_fdct4x4_neon.
146*fb1b10abSAndroid Build Coastguard Worker    Fix to fragments count before use.
147*fb1b10abSAndroid Build Coastguard Worker    Fix to a case where target bandwidth is 0 for SVC.
148*fb1b10abSAndroid Build Coastguard Worker    Fix mask in vp9_quantize_avx2,highbd_get_max_lane_eob.
149*fb1b10abSAndroid Build Coastguard Worker    Fix to int overflow in vp9_calc_pframe_target_size_one_pass_cbr.
150*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow in vp8,ratectrl.c.
151*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow in vp9 svc.
152*fb1b10abSAndroid Build Coastguard Worker    Fix to avg_frame_bandwidth overflow.
153*fb1b10abSAndroid Build Coastguard Worker    Fix to per frame qp for temporal layers.
154*fb1b10abSAndroid Build Coastguard Worker    Fix to unsigned integer overflow in sse computation.
155*fb1b10abSAndroid Build Coastguard Worker    Fix to uninitialized mesh feature for BEST mode.
156*fb1b10abSAndroid Build Coastguard Worker    Fix to overflow in highbd temporal_filter.
157*fb1b10abSAndroid Build Coastguard Worker    Fix to unaligned loads w/w==4 in vpx_convolve_copy_neon.
158*fb1b10abSAndroid Build Coastguard Worker    Skip arm64_neon.h workaround w/VS >= 2019.
159*fb1b10abSAndroid Build Coastguard Worker    Fix to c vs avx mismatch of diamond_search_sad().
160*fb1b10abSAndroid Build Coastguard Worker    Fix to c vs intrinsic mismatch of vpx_hadamard_32x32() function.
161*fb1b10abSAndroid Build Coastguard Worker    Fix to a bug in vpx_hadamard_32x32_neon().
162*fb1b10abSAndroid Build Coastguard Worker    Fix to Clang -Wunreachable-code-aggressive warnings.
163*fb1b10abSAndroid Build Coastguard Worker    Fix to a bug in vpx_highbd_hadamard_32x32_neon().
164*fb1b10abSAndroid Build Coastguard Worker    Fix to -Wunreachable-code in mfqe_partition.
165*fb1b10abSAndroid Build Coastguard Worker    Force mode search on 64x64 if no mode is selected.
166*fb1b10abSAndroid Build Coastguard Worker    Fix to ubsan failure caused by left shift of negative.
167*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow in calc_pframe_target_size.
168*fb1b10abSAndroid Build Coastguard Worker    Fix to float-cast-overflow in vp8_change_config().
169*fb1b10abSAndroid Build Coastguard Worker    Fix to a null ptr before use.
170*fb1b10abSAndroid Build Coastguard Worker    Conditionally skip using inter frames in speed features.
171*fb1b10abSAndroid Build Coastguard Worker    Remove invalid reference frames.
172*fb1b10abSAndroid Build Coastguard Worker    Disable intra mode search speed features conditionally.
173*fb1b10abSAndroid Build Coastguard Worker    Set nonrd keyframe under dynamic change of deadline for rtc.
174*fb1b10abSAndroid Build Coastguard Worker    Fix to scaled reference offsets.
175*fb1b10abSAndroid Build Coastguard Worker    Set skip_recode=0 in nonrd_pick_sb_modes.
176*fb1b10abSAndroid Build Coastguard Worker    Fix to an edge case when downsizing to one.
177*fb1b10abSAndroid Build Coastguard Worker    Fix to a bug in frame scaling.
178*fb1b10abSAndroid Build Coastguard Worker    Fix to pred buffer stride.
179*fb1b10abSAndroid Build Coastguard Worker    Fix to a bug in simple motion search.
180*fb1b10abSAndroid Build Coastguard Worker    Update frame size in actual encoding.
181*fb1b10abSAndroid Build Coastguard Worker
182*fb1b10abSAndroid Build Coastguard Worker2023-09-29 v1.13.1 "Ugly Duckling"
183*fb1b10abSAndroid Build Coastguard Worker  This release contains two security related fixes. One each for VP8 and VP9.
184*fb1b10abSAndroid Build Coastguard Worker
185*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
186*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with the previous release.
187*fb1b10abSAndroid Build Coastguard Worker
188*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
189*fb1b10abSAndroid Build Coastguard Worker    https://crbug.com/1486441 (CVE-2023-5217)
190*fb1b10abSAndroid Build Coastguard Worker    Fix to a crash related to VP9 encoding (#1642, CVE-2023-6349)
191*fb1b10abSAndroid Build Coastguard Worker
192*fb1b10abSAndroid Build Coastguard Worker2023-01-31 v1.13.0 "Ugly Duckling"
193*fb1b10abSAndroid Build Coastguard Worker  This release includes more Neon and AVX2 optimizations, adds a new codec
194*fb1b10abSAndroid Build Coastguard Worker  control to set per frame QP, upgrades GoogleTest to v1.12.1, and includes
195*fb1b10abSAndroid Build Coastguard Worker  numerous bug fixes.
196*fb1b10abSAndroid Build Coastguard Worker
197*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
198*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with the previous release.
199*fb1b10abSAndroid Build Coastguard Worker
200*fb1b10abSAndroid Build Coastguard Worker    New codec control VP9E_SET_QUANTIZER_ONE_PASS to set per frame QP.
201*fb1b10abSAndroid Build Coastguard Worker
202*fb1b10abSAndroid Build Coastguard Worker    GoogleTest is upgraded to v1.12.1.
203*fb1b10abSAndroid Build Coastguard Worker
204*fb1b10abSAndroid Build Coastguard Worker    .clang-format is upgraded to clang-format-11.
205*fb1b10abSAndroid Build Coastguard Worker
206*fb1b10abSAndroid Build Coastguard Worker    VPX_EXT_RATECTRL_ABI_VERSION was bumped due to incompatible changes to the
207*fb1b10abSAndroid Build Coastguard Worker    feature of using external rate control models for vp9.
208*fb1b10abSAndroid Build Coastguard Worker
209*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
210*fb1b10abSAndroid Build Coastguard Worker    Numerous improvements on Neon optimizations.
211*fb1b10abSAndroid Build Coastguard Worker    Numerous improvements on AVX2 optimizations.
212*fb1b10abSAndroid Build Coastguard Worker    Additional ARM targets added for Visual Studio.
213*fb1b10abSAndroid Build Coastguard Worker
214*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
215*fb1b10abSAndroid Build Coastguard Worker    Fix to calculating internal stats when frame dropped.
216*fb1b10abSAndroid Build Coastguard Worker    Fix to segfault for external resize test in vp9.
217*fb1b10abSAndroid Build Coastguard Worker    Fix to build system with replacing egrep with grep -E.
218*fb1b10abSAndroid Build Coastguard Worker    Fix to a few bugs with external RTC rate control library.
219*fb1b10abSAndroid Build Coastguard Worker    Fix to make SVC work with VBR.
220*fb1b10abSAndroid Build Coastguard Worker    Fix to key frame setting in VP9 external RC.
221*fb1b10abSAndroid Build Coastguard Worker    Fix to -Wimplicit-int (Clang 16).
222*fb1b10abSAndroid Build Coastguard Worker    Fix to VP8 external RC for buffer levels.
223*fb1b10abSAndroid Build Coastguard Worker    Fix to VP8 external RC for dynamic update of layers.
224*fb1b10abSAndroid Build Coastguard Worker    Fix to VP9 auto level.
225*fb1b10abSAndroid Build Coastguard Worker    Fix to off-by-one error of max w/h in validate_config.
226*fb1b10abSAndroid Build Coastguard Worker    Fix to make SVC work for Profile 1.
227*fb1b10abSAndroid Build Coastguard Worker
228*fb1b10abSAndroid Build Coastguard Worker2022-06-17 v1.12.0 "Torrent Duck"
229*fb1b10abSAndroid Build Coastguard Worker  This release adds optimizations for Loongarch, adds support for vp8 in the
230*fb1b10abSAndroid Build Coastguard Worker  real-time rate control library, upgrades GoogleTest to v1.11.0, updates
231*fb1b10abSAndroid Build Coastguard Worker  libwebm to libwebm-1.0.0.28-20-g206d268, and includes numerous bug fixes.
232*fb1b10abSAndroid Build Coastguard Worker
233*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
234*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with the previous release.
235*fb1b10abSAndroid Build Coastguard Worker
236*fb1b10abSAndroid Build Coastguard Worker    vp8 support in the real-time rate control library.
237*fb1b10abSAndroid Build Coastguard Worker    New codec control VP8E_SET_RTC_EXTERNAL_RATECTRL is added.
238*fb1b10abSAndroid Build Coastguard Worker
239*fb1b10abSAndroid Build Coastguard Worker    Configure support for darwin21 is added.
240*fb1b10abSAndroid Build Coastguard Worker
241*fb1b10abSAndroid Build Coastguard Worker    GoogleTest is upgraded to v1.11.0.
242*fb1b10abSAndroid Build Coastguard Worker
243*fb1b10abSAndroid Build Coastguard Worker    libwebm is updated to libwebm-1.0.0.28-20-g206d268.
244*fb1b10abSAndroid Build Coastguard Worker
245*fb1b10abSAndroid Build Coastguard Worker    Allow SimpleEncode environment to take target level as input to match
246*fb1b10abSAndroid Build Coastguard Worker    the level conformance in vp9.
247*fb1b10abSAndroid Build Coastguard Worker
248*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
249*fb1b10abSAndroid Build Coastguard Worker    Numerous improvements on checking memory allocations.
250*fb1b10abSAndroid Build Coastguard Worker    Optimizations for Loongarch.
251*fb1b10abSAndroid Build Coastguard Worker    Code clean-up.
252*fb1b10abSAndroid Build Coastguard Worker
253*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
254*fb1b10abSAndroid Build Coastguard Worker    Fix to a crash related to {vp8/vp9}_set_roi_map.
255*fb1b10abSAndroid Build Coastguard Worker    Fix to compiling failure with -Wformat-nonliteral.
256*fb1b10abSAndroid Build Coastguard Worker    Fix to integer overflow with vp9 with high resolution content.
257*fb1b10abSAndroid Build Coastguard Worker    Fix to AddNoiseTest failure with ARMv7.
258*fb1b10abSAndroid Build Coastguard Worker    Fix to libvpx Null-dereference READ in vp8.
259*fb1b10abSAndroid Build Coastguard Worker
260*fb1b10abSAndroid Build Coastguard Worker2021-09-27 v1.11.0 "Smew Duck"
261*fb1b10abSAndroid Build Coastguard Worker  This maintenance release adds support for VBR mode in VP9 rate control
262*fb1b10abSAndroid Build Coastguard Worker  interface, new codec controls to get quantization parameters and loop filter
263*fb1b10abSAndroid Build Coastguard Worker  levels, and includes several improvements to NEON and numerous bug fixes.
264*fb1b10abSAndroid Build Coastguard Worker
265*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
266*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with the previous release.
267*fb1b10abSAndroid Build Coastguard Worker    New codec control is added to get quantization parameters and loop filter
268*fb1b10abSAndroid Build Coastguard Worker    levels.
269*fb1b10abSAndroid Build Coastguard Worker
270*fb1b10abSAndroid Build Coastguard Worker    VBR mode is supported in VP9 rate control library.
271*fb1b10abSAndroid Build Coastguard Worker
272*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
273*fb1b10abSAndroid Build Coastguard Worker    Numerous improvements for Neon optimizations.
274*fb1b10abSAndroid Build Coastguard Worker    Code clean-up and refactoring.
275*fb1b10abSAndroid Build Coastguard Worker    Calculation of rd multiplier is changed with BDRATE gains.
276*fb1b10abSAndroid Build Coastguard Worker
277*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
278*fb1b10abSAndroid Build Coastguard Worker    Fix to overflow on duration.
279*fb1b10abSAndroid Build Coastguard Worker    Fix to several instances of -Wunused-but-set-variable.
280*fb1b10abSAndroid Build Coastguard Worker    Fix to avoid chroma resampling for 420mpeg2 input.
281*fb1b10abSAndroid Build Coastguard Worker    Fix to overflow in calc_iframe_target_size.
282*fb1b10abSAndroid Build Coastguard Worker    Fix to disallow skipping transform and quantization.
283*fb1b10abSAndroid Build Coastguard Worker    Fix some -Wsign-compare warnings in simple_encode.
284*fb1b10abSAndroid Build Coastguard Worker    Fix input file path in simple_encode_test.
285*fb1b10abSAndroid Build Coastguard Worker    Fix valid range for under/over_shoot pct.
286*fb1b10abSAndroid Build Coastguard Worker
287*fb1b10abSAndroid Build Coastguard Worker2021-03-09 v1.10.0 "Ruddy Duck"
288*fb1b10abSAndroid Build Coastguard Worker  This maintenance release adds support for darwin20 and new codec controls, as
289*fb1b10abSAndroid Build Coastguard Worker  well as numerous bug fixes.
290*fb1b10abSAndroid Build Coastguard Worker
291*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
292*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with the previous release.
293*fb1b10abSAndroid Build Coastguard Worker    New codec control is added to disable loopfilter for VP9.
294*fb1b10abSAndroid Build Coastguard Worker
295*fb1b10abSAndroid Build Coastguard Worker    New encoder control is added to disable feature to increase Q on overshoot
296*fb1b10abSAndroid Build Coastguard Worker    detection for CBR.
297*fb1b10abSAndroid Build Coastguard Worker
298*fb1b10abSAndroid Build Coastguard Worker    Configure support for darwin20 is added.
299*fb1b10abSAndroid Build Coastguard Worker
300*fb1b10abSAndroid Build Coastguard Worker    New codec control is added for VP9 rate control. The control ID of this
301*fb1b10abSAndroid Build Coastguard Worker    interface is VP9E_SET_EXTERNAL_RATE_CONTROL. To make VP9 use a customized
302*fb1b10abSAndroid Build Coastguard Worker    external rate control model, users will have to implement each callback
303*fb1b10abSAndroid Build Coastguard Worker    function in vpx_rc_funcs_t and register them using libvpx API
304*fb1b10abSAndroid Build Coastguard Worker    vpx_codec_control_() with the control ID.
305*fb1b10abSAndroid Build Coastguard Worker
306*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
307*fb1b10abSAndroid Build Coastguard Worker    Use -std=gnu++11 instead of -std=c++11 for c++ files.
308*fb1b10abSAndroid Build Coastguard Worker
309*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
310*fb1b10abSAndroid Build Coastguard Worker    Override assembler with --as option of configure for MSVS.
311*fb1b10abSAndroid Build Coastguard Worker    Fix several compilation issues with gcc 4.8.5.
312*fb1b10abSAndroid Build Coastguard Worker    Fix to resetting rate control for temporal layers.
313*fb1b10abSAndroid Build Coastguard Worker    Fix to the rate control stats of SVC example encoder when number of spatial
314*fb1b10abSAndroid Build Coastguard Worker    layers is 1.
315*fb1b10abSAndroid Build Coastguard Worker    Fix to reusing motion vectors from the base spatial layer in SVC.
316*fb1b10abSAndroid Build Coastguard Worker    2 pass related flags removed from SVC example encoder.
317*fb1b10abSAndroid Build Coastguard Worker
318*fb1b10abSAndroid Build Coastguard Worker2020-07-29 v1.9.0 "Quacking Duck"
319*fb1b10abSAndroid Build Coastguard Worker  This release adds support for NV12, a separate library for rate control, as
320*fb1b10abSAndroid Build Coastguard Worker  well as incremental improvements.
321*fb1b10abSAndroid Build Coastguard Worker
322*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
323*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with the previous release.
324*fb1b10abSAndroid Build Coastguard Worker    NV12 support is added to this release.
325*fb1b10abSAndroid Build Coastguard Worker    A new interface is added for VP9 rate control. The new library libvp9rc.a
326*fb1b10abSAndroid Build Coastguard Worker    must be linked by applications.
327*fb1b10abSAndroid Build Coastguard Worker    Googletest is updated to v1.10.0.
328*fb1b10abSAndroid Build Coastguard Worker    simple_encode.cc is compiled into a new library libsimple_encode.a with
329*fb1b10abSAndroid Build Coastguard Worker    CONFIG_RATE_CTRL.
330*fb1b10abSAndroid Build Coastguard Worker
331*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
332*fb1b10abSAndroid Build Coastguard Worker    Various changes to improve VP9 SVC, rate control, quality and speed to real
333*fb1b10abSAndroid Build Coastguard Worker    time encoding.
334*fb1b10abSAndroid Build Coastguard Worker
335*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
336*fb1b10abSAndroid Build Coastguard Worker    Fix key frame update refresh simulcast flexible svc.
337*fb1b10abSAndroid Build Coastguard Worker    Fix to disable_16x16part speed feature for real time encoding.
338*fb1b10abSAndroid Build Coastguard Worker    Fix some signed integer overflows for VP9 rate control.
339*fb1b10abSAndroid Build Coastguard Worker    Fix initialization of delta_q_uv.
340*fb1b10abSAndroid Build Coastguard Worker    Fix condition in regulate_q for cyclic refresh.
341*fb1b10abSAndroid Build Coastguard Worker    Various fixes to dynamic resizing for VP9 SVC.
342*fb1b10abSAndroid Build Coastguard Worker
343*fb1b10abSAndroid Build Coastguard Worker2019-12-09 v1.8.2 "Pekin Duck"
344*fb1b10abSAndroid Build Coastguard Worker  This release collects incremental improvements to many aspects of the library.
345*fb1b10abSAndroid Build Coastguard Worker
346*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
347*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with the previous release.
348*fb1b10abSAndroid Build Coastguard Worker    ARCH_* defines have been removed in favor of VPX_ARCH_*.
349*fb1b10abSAndroid Build Coastguard Worker
350*fb1b10abSAndroid Build Coastguard Worker2019-07-15 v1.8.1 "Orpington Duck"
351*fb1b10abSAndroid Build Coastguard Worker  This release collects incremental improvements to many aspects of the library.
352*fb1b10abSAndroid Build Coastguard Worker
353*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
354*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with the previous release.
355*fb1b10abSAndroid Build Coastguard Worker    VP8E_SET_CPUUSED now accepts values up to 9 for vp9.
356*fb1b10abSAndroid Build Coastguard Worker    VPX_CTRL_VP9E_SET_MAX_INTER_BITRATE_PCT had a spelling fix (was VP8E).
357*fb1b10abSAndroid Build Coastguard Worker    The --sdk-path option has been removed. If you were using it to build for
358*fb1b10abSAndroid Build Coastguard Worker      Android please read build/make/Android.mk for alternatives.
359*fb1b10abSAndroid Build Coastguard Worker    All PPC optimizations have been disabled:
360*fb1b10abSAndroid Build Coastguard Worker      https://bugs.chromium.org/p/webm/issues/detail?id=1522.
361*fb1b10abSAndroid Build Coastguard Worker
362*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
363*fb1b10abSAndroid Build Coastguard Worker    Various changes to improve encoder rate control, quality and speed
364*fb1b10abSAndroid Build Coastguard Worker      for practically every use case.
365*fb1b10abSAndroid Build Coastguard Worker
366*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
367*fb1b10abSAndroid Build Coastguard Worker    vp9-rtc: Fix color artifacts for speed >= 8.
368*fb1b10abSAndroid Build Coastguard Worker
369*fb1b10abSAndroid Build Coastguard Worker2019-01-31 v1.8.0 "Northern Shoveler Duck"
370*fb1b10abSAndroid Build Coastguard Worker  This release focused on encoding performance for realtime and VOD use cases.
371*fb1b10abSAndroid Build Coastguard Worker
372*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
373*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with the previous release. This adds and
374*fb1b10abSAndroid Build Coastguard Worker    improves several vp9 controls. Most are related to SVC:
375*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_SVC_FRAME_DROP_LAYER:
376*fb1b10abSAndroid Build Coastguard Worker        - Frame dropping in SVC.
377*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_SVC_INTER_LAYER_PRED:
378*fb1b10abSAndroid Build Coastguard Worker        - Inter-layer prediction in SVC.
379*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_SVC_GF_TEMPORAL_REF:
380*fb1b10abSAndroid Build Coastguard Worker        - Enable long term temporal reference in SVC.
381*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_SVC_REF_FRAME_CONFIG/VP9E_GET_SVC_REF_FRAME_CONFIG:
382*fb1b10abSAndroid Build Coastguard Worker        - Extend and improve this control for better flexibility in setting SVC
383*fb1b10abSAndroid Build Coastguard Worker          pattern dynamically.
384*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_POSTENCODE_DROP:
385*fb1b10abSAndroid Build Coastguard Worker        - Allow for post-encode frame dropping (applies to non-SVC too).
386*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_SVC_SPATIAL_LAYER_SYNC:
387*fb1b10abSAndroid Build Coastguard Worker        - Enable spatial layer sync frames.
388*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_SVC_LAYER_ID:
389*fb1b10abSAndroid Build Coastguard Worker        - Extend api to specify temporal id for each spatial layers.
390*fb1b10abSAndroid Build Coastguard Worker      VP9E_SET_ROI_MAP:
391*fb1b10abSAndroid Build Coastguard Worker        - Extend Region of Interest functionality to VP9.
392*fb1b10abSAndroid Build Coastguard Worker
393*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
394*fb1b10abSAndroid Build Coastguard Worker    2 pass vp9 encoding has improved substantially. When using --auto-alt-ref=6,
395*fb1b10abSAndroid Build Coastguard Worker    we see approximately 8% for VBR and 10% for CQ. When using --auto-alt-ref=1,
396*fb1b10abSAndroid Build Coastguard Worker    the gains are approximately 4% for VBR and 5% for CQ.
397*fb1b10abSAndroid Build Coastguard Worker
398*fb1b10abSAndroid Build Coastguard Worker    For real-time encoding, speed 7 has improved by ~5-10%. Encodes targeted at
399*fb1b10abSAndroid Build Coastguard Worker    screen sharing have improved when the content changes significantly (slide
400*fb1b10abSAndroid Build Coastguard Worker    sharing) or scrolls. There is a new speed 9 setting for mobile devices which
401*fb1b10abSAndroid Build Coastguard Worker    is about 10-20% faster than speed 8.
402*fb1b10abSAndroid Build Coastguard Worker
403*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
404*fb1b10abSAndroid Build Coastguard Worker    VP9 denoiser issue.
405*fb1b10abSAndroid Build Coastguard Worker    VP9 partition issue for 1080p.
406*fb1b10abSAndroid Build Coastguard Worker    VP9 rate control improvments.
407*fb1b10abSAndroid Build Coastguard Worker    Postprocessing Multi Frame Quality Enhancement (MFQE) issue.
408*fb1b10abSAndroid Build Coastguard Worker    VP8 multithread decoder issues.
409*fb1b10abSAndroid Build Coastguard Worker    A variety of fuzzing issues.
410*fb1b10abSAndroid Build Coastguard Worker
411*fb1b10abSAndroid Build Coastguard Worker2018-01-04 v1.7.0 "Mandarin Duck"
412*fb1b10abSAndroid Build Coastguard Worker  This release focused on high bit depth performance (10/12 bit) and vp9
413*fb1b10abSAndroid Build Coastguard Worker  encoding improvements.
414*fb1b10abSAndroid Build Coastguard Worker
415*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
416*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible due to new vp9 encoder features.
417*fb1b10abSAndroid Build Coastguard Worker
418*fb1b10abSAndroid Build Coastguard Worker    Frame parallel decoding for vp9 has been removed.
419*fb1b10abSAndroid Build Coastguard Worker
420*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
421*fb1b10abSAndroid Build Coastguard Worker    vp9 encoding supports additional threads with --row-mt. This can be greater
422*fb1b10abSAndroid Build Coastguard Worker    than the number of tiles.
423*fb1b10abSAndroid Build Coastguard Worker
424*fb1b10abSAndroid Build Coastguard Worker    Two new vp9 encoder options have been added:
425*fb1b10abSAndroid Build Coastguard Worker      --corpus-complexity
426*fb1b10abSAndroid Build Coastguard Worker      --tune-content=film
427*fb1b10abSAndroid Build Coastguard Worker
428*fb1b10abSAndroid Build Coastguard Worker    Additional tooling for respecting the vp9 "level" profiles has been added.
429*fb1b10abSAndroid Build Coastguard Worker
430*fb1b10abSAndroid Build Coastguard Worker  - Bug fixes:
431*fb1b10abSAndroid Build Coastguard Worker    A variety of fuzzing issues.
432*fb1b10abSAndroid Build Coastguard Worker    vp8 threading fix for ARM.
433*fb1b10abSAndroid Build Coastguard Worker    Codec control VP9_SET_SKIP_LOOP_FILTER fixed.
434*fb1b10abSAndroid Build Coastguard Worker    Reject invalid multi resolution configurations.
435*fb1b10abSAndroid Build Coastguard Worker
436*fb1b10abSAndroid Build Coastguard Worker2017-01-09 v1.6.1 "Long Tailed Duck"
437*fb1b10abSAndroid Build Coastguard Worker  This release improves upon the VP9 encoder and speeds up the encoding and
438*fb1b10abSAndroid Build Coastguard Worker  decoding processes.
439*fb1b10abSAndroid Build Coastguard Worker
440*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
441*fb1b10abSAndroid Build Coastguard Worker    This release is ABI compatible with 1.6.0.
442*fb1b10abSAndroid Build Coastguard Worker
443*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
444*fb1b10abSAndroid Build Coastguard Worker    Faster VP9 encoding and decoding.
445*fb1b10abSAndroid Build Coastguard Worker    High bit depth builds now provide similar speed for 8 bit encode and decode
446*fb1b10abSAndroid Build Coastguard Worker    for x86 targets. Other platforms and higher bit depth improvements are in
447*fb1b10abSAndroid Build Coastguard Worker    progress.
448*fb1b10abSAndroid Build Coastguard Worker
449*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
450*fb1b10abSAndroid Build Coastguard Worker    A variety of fuzzing issues.
451*fb1b10abSAndroid Build Coastguard Worker
452*fb1b10abSAndroid Build Coastguard Worker2016-07-20 v1.6.0 "Khaki Campbell Duck"
453*fb1b10abSAndroid Build Coastguard Worker  This release improves upon the VP9 encoder and speeds up the encoding and
454*fb1b10abSAndroid Build Coastguard Worker  decoding processes.
455*fb1b10abSAndroid Build Coastguard Worker
456*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
457*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with 1.5.0 due to a new 'color_range' enum
458*fb1b10abSAndroid Build Coastguard Worker    in vpx_image and some minor changes to the VP8_COMP structure.
459*fb1b10abSAndroid Build Coastguard Worker
460*fb1b10abSAndroid Build Coastguard Worker    The default key frame interval for VP9 has changed from 128 to 9999.
461*fb1b10abSAndroid Build Coastguard Worker
462*fb1b10abSAndroid Build Coastguard Worker  - Enhancement:
463*fb1b10abSAndroid Build Coastguard Worker    A core focus has been performance for low end Intel processors. SSSE3
464*fb1b10abSAndroid Build Coastguard Worker    instructions such as 'pshufb' have been avoided and instructions have been
465*fb1b10abSAndroid Build Coastguard Worker    reordered to better accommodate the more constrained pipelines.
466*fb1b10abSAndroid Build Coastguard Worker
467*fb1b10abSAndroid Build Coastguard Worker    As a result, devices based on Celeron processors have seen substantial
468*fb1b10abSAndroid Build Coastguard Worker    decoding improvements. From Indian Runner Duck to Javan Whistling Duck,
469*fb1b10abSAndroid Build Coastguard Worker    decoding speed improved between 10 and 30%. Between Javan Whistling Duck
470*fb1b10abSAndroid Build Coastguard Worker    and Khaki Campbell Duck, it improved another 10 to 15%.
471*fb1b10abSAndroid Build Coastguard Worker
472*fb1b10abSAndroid Build Coastguard Worker    While Celeron benefited most, Core-i5 also improved 5% and 10% between the
473*fb1b10abSAndroid Build Coastguard Worker    respective releases.
474*fb1b10abSAndroid Build Coastguard Worker
475*fb1b10abSAndroid Build Coastguard Worker    Realtime performance for WebRTC for both speed and quality has received a
476*fb1b10abSAndroid Build Coastguard Worker    lot of attention.
477*fb1b10abSAndroid Build Coastguard Worker
478*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
479*fb1b10abSAndroid Build Coastguard Worker    A number of fuzzing issues, found variously by Mozilla, Chromium and others,
480*fb1b10abSAndroid Build Coastguard Worker    have been fixed and we strongly recommend updating.
481*fb1b10abSAndroid Build Coastguard Worker
482*fb1b10abSAndroid Build Coastguard Worker2015-11-09 v1.5.0 "Javan Whistling Duck"
483*fb1b10abSAndroid Build Coastguard Worker  This release improves upon the VP9 encoder and speeds up the encoding and
484*fb1b10abSAndroid Build Coastguard Worker  decoding processes.
485*fb1b10abSAndroid Build Coastguard Worker
486*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
487*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with 1.4.0. It drops deprecated VP8
488*fb1b10abSAndroid Build Coastguard Worker    controls and adds a variety of VP9 controls for testing.
489*fb1b10abSAndroid Build Coastguard Worker
490*fb1b10abSAndroid Build Coastguard Worker    The vpxenc utility now prefers VP9 by default.
491*fb1b10abSAndroid Build Coastguard Worker
492*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
493*fb1b10abSAndroid Build Coastguard Worker    Faster VP9 encoding and decoding
494*fb1b10abSAndroid Build Coastguard Worker    Smaller library size by combining functions used by VP8 and VP9
495*fb1b10abSAndroid Build Coastguard Worker
496*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
497*fb1b10abSAndroid Build Coastguard Worker    A variety of fuzzing issues
498*fb1b10abSAndroid Build Coastguard Worker
499*fb1b10abSAndroid Build Coastguard Worker2015-04-03 v1.4.0 "Indian Runner Duck"
500*fb1b10abSAndroid Build Coastguard Worker  This release includes significant improvements to the VP9 codec.
501*fb1b10abSAndroid Build Coastguard Worker
502*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
503*fb1b10abSAndroid Build Coastguard Worker    This release is ABI incompatible with 1.3.0. It drops the compatibility
504*fb1b10abSAndroid Build Coastguard Worker    layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec
505*fb1b10abSAndroid Build Coastguard Worker    controls for VP9.
506*fb1b10abSAndroid Build Coastguard Worker
507*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
508*fb1b10abSAndroid Build Coastguard Worker    Faster VP9 encoding and decoding
509*fb1b10abSAndroid Build Coastguard Worker    Multithreaded VP9 decoding (tile and frame-based)
510*fb1b10abSAndroid Build Coastguard Worker    Multithreaded VP9 encoding - on by default
511*fb1b10abSAndroid Build Coastguard Worker    YUV 4:2:2 and 4:4:4 support in VP9
512*fb1b10abSAndroid Build Coastguard Worker    10 and 12bit support in VP9
513*fb1b10abSAndroid Build Coastguard Worker    64bit ARM support by replacing ARM assembly with intrinsics
514*fb1b10abSAndroid Build Coastguard Worker
515*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
516*fb1b10abSAndroid Build Coastguard Worker    Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
517*fb1b10abSAndroid Build Coastguard Worker    files.
518*fb1b10abSAndroid Build Coastguard Worker
519*fb1b10abSAndroid Build Coastguard Worker  - Known Issues:
520*fb1b10abSAndroid Build Coastguard Worker    Frame Parallel decoding fails for segmented and non-420 files.
521*fb1b10abSAndroid Build Coastguard Worker
522*fb1b10abSAndroid Build Coastguard Worker2013-11-15 v1.3.0 "Forest"
523*fb1b10abSAndroid Build Coastguard Worker  This release introduces the VP9 codec in a backward-compatible way.
524*fb1b10abSAndroid Build Coastguard Worker  All existing users of VP8 can continue to use the library without
525*fb1b10abSAndroid Build Coastguard Worker  modification. However, some VP8 options do not map to VP9 in the same manner.
526*fb1b10abSAndroid Build Coastguard Worker
527*fb1b10abSAndroid Build Coastguard Worker  The VP9 encoder in this release is not feature complete. Users interested in
528*fb1b10abSAndroid Build Coastguard Worker  the encoder are advised to use the git master branch and discuss issues on
529*fb1b10abSAndroid Build Coastguard Worker  libvpx mailing lists.
530*fb1b10abSAndroid Build Coastguard Worker
531*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
532*fb1b10abSAndroid Build Coastguard Worker    This release is ABI and API compatible with Duclair (v1.0.0). Users
533*fb1b10abSAndroid Build Coastguard Worker    of older releases should refer to the Upgrading notes in this document
534*fb1b10abSAndroid Build Coastguard Worker    for that release.
535*fb1b10abSAndroid Build Coastguard Worker
536*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
537*fb1b10abSAndroid Build Coastguard Worker      Get rid of bashisms in the main build scripts
538*fb1b10abSAndroid Build Coastguard Worker      Added usage info on command line options
539*fb1b10abSAndroid Build Coastguard Worker      Add lossless compression mode
540*fb1b10abSAndroid Build Coastguard Worker      Dll build of libvpx
541*fb1b10abSAndroid Build Coastguard Worker      Add additional Mac OS X targets: 10.7, 10.8 and 10.9 (darwin11-13)
542*fb1b10abSAndroid Build Coastguard Worker      Add option to disable documentation
543*fb1b10abSAndroid Build Coastguard Worker      configure: add --enable-external-build support
544*fb1b10abSAndroid Build Coastguard Worker      make: support V=1 as short form of verbose=yes
545*fb1b10abSAndroid Build Coastguard Worker      configure: support mingw-w64
546*fb1b10abSAndroid Build Coastguard Worker      configure: support hardfloat armv7 CHOSTS
547*fb1b10abSAndroid Build Coastguard Worker      configure: add support for android x86
548*fb1b10abSAndroid Build Coastguard Worker      Add estimated completion time to vpxenc
549*fb1b10abSAndroid Build Coastguard Worker      Don't exit on decode errors in vpxenc
550*fb1b10abSAndroid Build Coastguard Worker      vpxenc: support scaling prior to encoding
551*fb1b10abSAndroid Build Coastguard Worker      vpxdec: support scaling output
552*fb1b10abSAndroid Build Coastguard Worker      vpxenc: improve progress indicators with --skip
553*fb1b10abSAndroid Build Coastguard Worker      msvs: Don't link to winmm.lib
554*fb1b10abSAndroid Build Coastguard Worker      Add a new script for producing vcxproj files
555*fb1b10abSAndroid Build Coastguard Worker      Produce Visual Studio 10 and 11 project files
556*fb1b10abSAndroid Build Coastguard Worker      Produce Windows Phone project files
557*fb1b10abSAndroid Build Coastguard Worker      msvs-build: use msbuild for vs >= 2005
558*fb1b10abSAndroid Build Coastguard Worker      configure: default configure log to config.log
559*fb1b10abSAndroid Build Coastguard Worker      Add encoding option --static-thresh
560*fb1b10abSAndroid Build Coastguard Worker
561*fb1b10abSAndroid Build Coastguard Worker  - Speed:
562*fb1b10abSAndroid Build Coastguard Worker      Miscellaneous speed optimizations for VP8 and VP9.
563*fb1b10abSAndroid Build Coastguard Worker
564*fb1b10abSAndroid Build Coastguard Worker  - Quality:
565*fb1b10abSAndroid Build Coastguard Worker      In general, quality is consistent with the Eider release.
566*fb1b10abSAndroid Build Coastguard Worker
567*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
568*fb1b10abSAndroid Build Coastguard Worker      This release represents approximately a year of engineering effort,
569*fb1b10abSAndroid Build Coastguard Worker      and contains multiple bug fixes. Please refer to git history for details.
570*fb1b10abSAndroid Build Coastguard Worker
571*fb1b10abSAndroid Build Coastguard Worker
572*fb1b10abSAndroid Build Coastguard Worker2012-12-21 v1.2.0
573*fb1b10abSAndroid Build Coastguard Worker  This release acts as a checkpoint for a large amount of internal refactoring
574*fb1b10abSAndroid Build Coastguard Worker  and testing. It also contains a number of small bugfixes, so all users are
575*fb1b10abSAndroid Build Coastguard Worker  encouraged to upgrade.
576*fb1b10abSAndroid Build Coastguard Worker
577*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
578*fb1b10abSAndroid Build Coastguard Worker    This release is ABI and API compatible with Duclair (v1.0.0). Users
579*fb1b10abSAndroid Build Coastguard Worker    of older releases should refer to the Upgrading notes in this
580*fb1b10abSAndroid Build Coastguard Worker    document for that release.
581*fb1b10abSAndroid Build Coastguard Worker
582*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
583*fb1b10abSAndroid Build Coastguard Worker      VP8 optimizations for MIPS dspr2
584*fb1b10abSAndroid Build Coastguard Worker      vpxenc: add -quiet option
585*fb1b10abSAndroid Build Coastguard Worker
586*fb1b10abSAndroid Build Coastguard Worker  - Speed:
587*fb1b10abSAndroid Build Coastguard Worker      Encoder and decoder speed is consistent with the Eider release.
588*fb1b10abSAndroid Build Coastguard Worker
589*fb1b10abSAndroid Build Coastguard Worker  - Quality:
590*fb1b10abSAndroid Build Coastguard Worker      In general, quality is consistent with the Eider release.
591*fb1b10abSAndroid Build Coastguard Worker
592*fb1b10abSAndroid Build Coastguard Worker      Minor tweaks to ARNR filtering
593*fb1b10abSAndroid Build Coastguard Worker      Minor improvements to real time encoding with multiple temporal layers
594*fb1b10abSAndroid Build Coastguard Worker
595*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
596*fb1b10abSAndroid Build Coastguard Worker      Fixes multithreaded encoder race condition in loopfilter
597*fb1b10abSAndroid Build Coastguard Worker      Fixes multi-resolution threaded encoding
598*fb1b10abSAndroid Build Coastguard Worker      Fix potential encoder dead-lock after picture resize
599*fb1b10abSAndroid Build Coastguard Worker
600*fb1b10abSAndroid Build Coastguard Worker
601*fb1b10abSAndroid Build Coastguard Worker2012-05-09 v1.1.0 "Eider"
602*fb1b10abSAndroid Build Coastguard Worker  This introduces a number of enhancements, mostly focused on real-time
603*fb1b10abSAndroid Build Coastguard Worker  encoding. In addition, it fixes a decoder bug (first introduced in
604*fb1b10abSAndroid Build Coastguard Worker  Duclair) so all users of that release are encouraged to upgrade.
605*fb1b10abSAndroid Build Coastguard Worker
606*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
607*fb1b10abSAndroid Build Coastguard Worker    This release is ABI and API compatible with Duclair (v1.0.0). Users
608*fb1b10abSAndroid Build Coastguard Worker    of older releases should refer to the Upgrading notes in this
609*fb1b10abSAndroid Build Coastguard Worker    document for that release.
610*fb1b10abSAndroid Build Coastguard Worker
611*fb1b10abSAndroid Build Coastguard Worker    This release introduces a new temporal denoiser, controlled by the
612*fb1b10abSAndroid Build Coastguard Worker    VP8E_SET_NOISE_SENSITIVITY control. The temporal denoiser does not
613*fb1b10abSAndroid Build Coastguard Worker    currently take a strength parameter, so the control is effectively
614*fb1b10abSAndroid Build Coastguard Worker    a boolean - zero (off) or non-zero (on). For compatibility with
615*fb1b10abSAndroid Build Coastguard Worker    existing applications, the values accepted are the same as those
616*fb1b10abSAndroid Build Coastguard Worker    for the spatial denoiser (0-6). The temporal denoiser is enabled
617*fb1b10abSAndroid Build Coastguard Worker    by default, and the older spatial denoiser may be restored by
618*fb1b10abSAndroid Build Coastguard Worker    configuring with --disable-temporal-denoising. The temporal denoiser
619*fb1b10abSAndroid Build Coastguard Worker    is more computationally intensive than the spatial one.
620*fb1b10abSAndroid Build Coastguard Worker
621*fb1b10abSAndroid Build Coastguard Worker    This release removes support for a legacy, decode only API that was
622*fb1b10abSAndroid Build Coastguard Worker    supported, but deprecated, at the initial release of libvpx
623*fb1b10abSAndroid Build Coastguard Worker    (v0.9.0). This is not expected to have any impact. If you are
624*fb1b10abSAndroid Build Coastguard Worker    impacted, you can apply a reversion to commit 2bf8fb58 locally.
625*fb1b10abSAndroid Build Coastguard Worker    Please update to the latest libvpx API if you are affected.
626*fb1b10abSAndroid Build Coastguard Worker
627*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
628*fb1b10abSAndroid Build Coastguard Worker      Adds a motion compensated temporal denoiser to the encoder, which
629*fb1b10abSAndroid Build Coastguard Worker      gives higher quality than the older spatial denoiser. (See above
630*fb1b10abSAndroid Build Coastguard Worker      for notes on upgrading).
631*fb1b10abSAndroid Build Coastguard Worker
632*fb1b10abSAndroid Build Coastguard Worker      In addition, support for new compilers and platforms were added,
633*fb1b10abSAndroid Build Coastguard Worker      including:
634*fb1b10abSAndroid Build Coastguard Worker        improved support for XCode
635*fb1b10abSAndroid Build Coastguard Worker        Android x86 NDK build
636*fb1b10abSAndroid Build Coastguard Worker        OS/2 support
637*fb1b10abSAndroid Build Coastguard Worker        SunCC support
638*fb1b10abSAndroid Build Coastguard Worker
639*fb1b10abSAndroid Build Coastguard Worker      Changing resolution with vpx_codec_enc_config_set() is now
640*fb1b10abSAndroid Build Coastguard Worker      supported. Previously, reinitializing the codec was required to
641*fb1b10abSAndroid Build Coastguard Worker      change the input resolution.
642*fb1b10abSAndroid Build Coastguard Worker
643*fb1b10abSAndroid Build Coastguard Worker      The vpxenc application has initial support for producing multiple
644*fb1b10abSAndroid Build Coastguard Worker      encodes from the same input in one call. Resizing is not yet
645*fb1b10abSAndroid Build Coastguard Worker      supported, but varying other codec parameters is. Use -- to
646*fb1b10abSAndroid Build Coastguard Worker      delineate output streams. Options persist from one stream to the
647*fb1b10abSAndroid Build Coastguard Worker      next.
648*fb1b10abSAndroid Build Coastguard Worker
649*fb1b10abSAndroid Build Coastguard Worker      Also, the vpxenc application will now use a keyframe interval of
650*fb1b10abSAndroid Build Coastguard Worker      5 seconds by default. Use the --kf-max-dist option to override.
651*fb1b10abSAndroid Build Coastguard Worker
652*fb1b10abSAndroid Build Coastguard Worker  - Speed:
653*fb1b10abSAndroid Build Coastguard Worker      Decoder performance improved 2.5% versus Duclair. Encoder speed is
654*fb1b10abSAndroid Build Coastguard Worker      consistent with Duclair for most material. Two pass encoding of
655*fb1b10abSAndroid Build Coastguard Worker      slideshow-like material will see significant improvements.
656*fb1b10abSAndroid Build Coastguard Worker
657*fb1b10abSAndroid Build Coastguard Worker      Large realtime encoding speed gains at a small quality expense are
658*fb1b10abSAndroid Build Coastguard Worker      possible by configuring the on-the-fly bitpacking experiment with
659*fb1b10abSAndroid Build Coastguard Worker      --enable-onthefly-bitpacking. Realtime encoder can be up to 13%
660*fb1b10abSAndroid Build Coastguard Worker      faster (ARM) depending on the number of threads and bitrate
661*fb1b10abSAndroid Build Coastguard Worker      settings. This technique sees constant gain over the 5-16 speed
662*fb1b10abSAndroid Build Coastguard Worker      range. For VC style input the loss seen is up to 0.2dB. See commit
663*fb1b10abSAndroid Build Coastguard Worker      52cf4dca for further details.
664*fb1b10abSAndroid Build Coastguard Worker
665*fb1b10abSAndroid Build Coastguard Worker  - Quality:
666*fb1b10abSAndroid Build Coastguard Worker      On the whole, quality is consistent with the Duclair release. Some
667*fb1b10abSAndroid Build Coastguard Worker      tweaks:
668*fb1b10abSAndroid Build Coastguard Worker
669*fb1b10abSAndroid Build Coastguard Worker        Reduced blockiness in easy sections by applying a penalty to
670*fb1b10abSAndroid Build Coastguard Worker        intra modes.
671*fb1b10abSAndroid Build Coastguard Worker
672*fb1b10abSAndroid Build Coastguard Worker        Improved quality of static sections (like slideshows) with
673*fb1b10abSAndroid Build Coastguard Worker        two pass encoding.
674*fb1b10abSAndroid Build Coastguard Worker
675*fb1b10abSAndroid Build Coastguard Worker        Improved keyframe sizing with multiple temporal layers
676*fb1b10abSAndroid Build Coastguard Worker
677*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
678*fb1b10abSAndroid Build Coastguard Worker      Corrected alt-ref contribution to frame rate for visible updates
679*fb1b10abSAndroid Build Coastguard Worker      to the alt-ref buffer. This affected applications making manual
680*fb1b10abSAndroid Build Coastguard Worker      usage of the frame reference flags, or temporal layers.
681*fb1b10abSAndroid Build Coastguard Worker
682*fb1b10abSAndroid Build Coastguard Worker      Additional constraints were added to disable multi-frame quality
683*fb1b10abSAndroid Build Coastguard Worker      enhancement (MFQE) in sections of the frame where there is motion.
684*fb1b10abSAndroid Build Coastguard Worker      (#392)
685*fb1b10abSAndroid Build Coastguard Worker
686*fb1b10abSAndroid Build Coastguard Worker      Fixed corruption issues when vpx_codec_enc_config_set() was called
687*fb1b10abSAndroid Build Coastguard Worker      with spatial resampling enabled.
688*fb1b10abSAndroid Build Coastguard Worker
689*fb1b10abSAndroid Build Coastguard Worker      Fixed a decoder error introduced in Duclair where the segmentation
690*fb1b10abSAndroid Build Coastguard Worker      map was not being reinitialized on keyframes (#378)
691*fb1b10abSAndroid Build Coastguard Worker
692*fb1b10abSAndroid Build Coastguard Worker
693*fb1b10abSAndroid Build Coastguard Worker2012-01-27 v1.0.0 "Duclair"
694*fb1b10abSAndroid Build Coastguard Worker  Our fourth named release, focused on performance and features related to
695*fb1b10abSAndroid Build Coastguard Worker  real-time encoding. It also fixes a decoder crash bug introduced in
696*fb1b10abSAndroid Build Coastguard Worker  v0.9.7, so all users of that release are encouraged to upgrade.
697*fb1b10abSAndroid Build Coastguard Worker
698*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
699*fb1b10abSAndroid Build Coastguard Worker      This release is ABI incompatible with prior releases of libvpx, so the
700*fb1b10abSAndroid Build Coastguard Worker      "major" version number has been bumped to 1. You must recompile your
701*fb1b10abSAndroid Build Coastguard Worker      applications against the latest version of the libvpx headers. The
702*fb1b10abSAndroid Build Coastguard Worker      API remains compatible, and this should not require code changes in most
703*fb1b10abSAndroid Build Coastguard Worker      applications.
704*fb1b10abSAndroid Build Coastguard Worker
705*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
706*fb1b10abSAndroid Build Coastguard Worker      This release introduces several substantial new features to the encoder,
707*fb1b10abSAndroid Build Coastguard Worker      of particular interest to real time streaming applications.
708*fb1b10abSAndroid Build Coastguard Worker
709*fb1b10abSAndroid Build Coastguard Worker      Temporal scalability allows the encoder to produce a stream that can
710*fb1b10abSAndroid Build Coastguard Worker      be decimated to different frame rates, with independent rate targeting
711*fb1b10abSAndroid Build Coastguard Worker      for each substream.
712*fb1b10abSAndroid Build Coastguard Worker
713*fb1b10abSAndroid Build Coastguard Worker      Multiframe quality enhancement postprocessing can make visual quality
714*fb1b10abSAndroid Build Coastguard Worker      more consistent in the presence of frames that are substantially
715*fb1b10abSAndroid Build Coastguard Worker      different quality than the surrounding frames, as in the temporal
716*fb1b10abSAndroid Build Coastguard Worker      scalability case and in some forced keyframe scenarios.
717*fb1b10abSAndroid Build Coastguard Worker
718*fb1b10abSAndroid Build Coastguard Worker      Multiple-resolution encoding support allows the encoding of the
719*fb1b10abSAndroid Build Coastguard Worker      same content at different resolutions faster than encoding them
720*fb1b10abSAndroid Build Coastguard Worker      separately.
721*fb1b10abSAndroid Build Coastguard Worker
722*fb1b10abSAndroid Build Coastguard Worker  - Speed:
723*fb1b10abSAndroid Build Coastguard Worker      Optimization targets for this release included the decoder and the real-
724*fb1b10abSAndroid Build Coastguard Worker      time modes of the encoder. Decoder speed on x86 has improved 10.5% with
725*fb1b10abSAndroid Build Coastguard Worker      this release. Encoder improvements followed a curve where speeds 1-3
726*fb1b10abSAndroid Build Coastguard Worker      improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved
727*fb1b10abSAndroid Build Coastguard Worker      1.5% to 10.5%, respectively. "Best" mode speed is consistent with the
728*fb1b10abSAndroid Build Coastguard Worker      Cayuga release.
729*fb1b10abSAndroid Build Coastguard Worker
730*fb1b10abSAndroid Build Coastguard Worker  - Quality:
731*fb1b10abSAndroid Build Coastguard Worker      Encoder quality in the single stream case is consistent with the Cayuga
732*fb1b10abSAndroid Build Coastguard Worker      release.
733*fb1b10abSAndroid Build Coastguard Worker
734*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
735*fb1b10abSAndroid Build Coastguard Worker      This release fixes an OOB read decoder crash bug present in v0.9.7
736*fb1b10abSAndroid Build Coastguard Worker      related to the clamping of motion vectors in SPLITMV blocks. This
737*fb1b10abSAndroid Build Coastguard Worker      behavior could be triggered by corrupt input or by starting
738*fb1b10abSAndroid Build Coastguard Worker      decoding from a P-frame.
739*fb1b10abSAndroid Build Coastguard Worker
740*fb1b10abSAndroid Build Coastguard Worker
741*fb1b10abSAndroid Build Coastguard Worker2011-08-15 v0.9.7-p1 "Cayuga" patch 1
742*fb1b10abSAndroid Build Coastguard Worker  This is an incremental bugfix release against Cayuga. All users of that
743*fb1b10abSAndroid Build Coastguard Worker  release are strongly encouraged to upgrade.
744*fb1b10abSAndroid Build Coastguard Worker
745*fb1b10abSAndroid Build Coastguard Worker    - Fix potential OOB reads (cdae03a)
746*fb1b10abSAndroid Build Coastguard Worker
747*fb1b10abSAndroid Build Coastguard Worker          An unbounded out of bounds read was discovered when the
748*fb1b10abSAndroid Build Coastguard Worker          decoder was requested to perform error concealment (new in
749*fb1b10abSAndroid Build Coastguard Worker          Cayuga) given a frame with corrupt partition sizes.
750*fb1b10abSAndroid Build Coastguard Worker
751*fb1b10abSAndroid Build Coastguard Worker          A bounded out of bounds read was discovered affecting all
752*fb1b10abSAndroid Build Coastguard Worker          versions of libvpx. Given an multipartition input frame that
753*fb1b10abSAndroid Build Coastguard Worker          is truncated between the mode/mv partition and the first
754*fb1b10abSAndroid Build Coastguard Worker          residiual paritition (in the block of partition offsets), up
755*fb1b10abSAndroid Build Coastguard Worker          to 3 extra bytes could have been read from the source buffer.
756*fb1b10abSAndroid Build Coastguard Worker          The code will not take any action regardless of the contents
757*fb1b10abSAndroid Build Coastguard Worker          of these undefined bytes, as the truncated buffer is detected
758*fb1b10abSAndroid Build Coastguard Worker          immediately following the read based on the calculated
759*fb1b10abSAndroid Build Coastguard Worker          starting position of the coefficient partition.
760*fb1b10abSAndroid Build Coastguard Worker
761*fb1b10abSAndroid Build Coastguard Worker    - Fix potential error concealment crash when the very first frame
762*fb1b10abSAndroid Build Coastguard Worker      is missing or corrupt (a609be5)
763*fb1b10abSAndroid Build Coastguard Worker
764*fb1b10abSAndroid Build Coastguard Worker    - Fix significant artifacts in error concealment (a4c2211, 99d870a)
765*fb1b10abSAndroid Build Coastguard Worker
766*fb1b10abSAndroid Build Coastguard Worker    - Revert 1-pass CBR rate control changes (e961317)
767*fb1b10abSAndroid Build Coastguard Worker      Further testing showed this change produced undesirable visual
768*fb1b10abSAndroid Build Coastguard Worker      artifacts, rolling back for now.
769*fb1b10abSAndroid Build Coastguard Worker
770*fb1b10abSAndroid Build Coastguard Worker
771*fb1b10abSAndroid Build Coastguard Worker2011-08-02 v0.9.7 "Cayuga"
772*fb1b10abSAndroid Build Coastguard Worker  Our third named release, focused on a faster, higher quality, encoder.
773*fb1b10abSAndroid Build Coastguard Worker
774*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
775*fb1b10abSAndroid Build Coastguard Worker    This release is backwards compatible with Aylesbury (v0.9.5) and
776*fb1b10abSAndroid Build Coastguard Worker    Bali (v0.9.6). Users of older releases should refer to the Upgrading
777*fb1b10abSAndroid Build Coastguard Worker    notes in this document for that release.
778*fb1b10abSAndroid Build Coastguard Worker
779*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
780*fb1b10abSAndroid Build Coastguard Worker          Stereo 3D format support for vpxenc
781*fb1b10abSAndroid Build Coastguard Worker          Runtime detection of available processor cores.
782*fb1b10abSAndroid Build Coastguard Worker          Allow specifying --end-usage by enum name
783*fb1b10abSAndroid Build Coastguard Worker          vpxdec: test for frame corruption
784*fb1b10abSAndroid Build Coastguard Worker          vpxenc: add quantizer histogram display
785*fb1b10abSAndroid Build Coastguard Worker          vpxenc: add rate histogram display
786*fb1b10abSAndroid Build Coastguard Worker          Set VPX_FRAME_IS_DROPPABLE
787*fb1b10abSAndroid Build Coastguard Worker          update configure for ios sdk 4.3
788*fb1b10abSAndroid Build Coastguard Worker          Avoid text relocations in ARM vp8 decoder
789*fb1b10abSAndroid Build Coastguard Worker          Generate a vpx.pc file for pkg-config.
790*fb1b10abSAndroid Build Coastguard Worker          New ways of passing encoded data between encoder and decoder.
791*fb1b10abSAndroid Build Coastguard Worker
792*fb1b10abSAndroid Build Coastguard Worker  - Speed:
793*fb1b10abSAndroid Build Coastguard Worker      This release includes across-the-board speed improvements to the
794*fb1b10abSAndroid Build Coastguard Worker      encoder. On x86, these measure at approximately 11.5% in Best mode,
795*fb1b10abSAndroid Build Coastguard Worker      21.5% in Good mode (speed 0), and 22.5% in Realtime mode (speed 6).
796*fb1b10abSAndroid Build Coastguard Worker      On ARM Cortex A9 with Neon extensions, real-time encoding of video
797*fb1b10abSAndroid Build Coastguard Worker      telephony content is 35% faster than Bali on single core and 48%
798*fb1b10abSAndroid Build Coastguard Worker      faster on multi-core. On the NVidia Tegra2 platform, real time
799*fb1b10abSAndroid Build Coastguard Worker      encoding is 40% faster than Bali.
800*fb1b10abSAndroid Build Coastguard Worker
801*fb1b10abSAndroid Build Coastguard Worker      Decoder speed was not a priority for this release, but improved
802*fb1b10abSAndroid Build Coastguard Worker      approximately 8.4% on x86.
803*fb1b10abSAndroid Build Coastguard Worker
804*fb1b10abSAndroid Build Coastguard Worker          Reduce motion vector search on alt-ref frame.
805*fb1b10abSAndroid Build Coastguard Worker          Encoder loopfilter running in its own thread
806*fb1b10abSAndroid Build Coastguard Worker          Reworked loopfilter to precalculate more parameters
807*fb1b10abSAndroid Build Coastguard Worker          SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}().
808*fb1b10abSAndroid Build Coastguard Worker          Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3.
809*fb1b10abSAndroid Build Coastguard Worker          Removed redundant checks
810*fb1b10abSAndroid Build Coastguard Worker          Reduced structure sizes
811*fb1b10abSAndroid Build Coastguard Worker          utilize preload in ARMv6 MC/LPF/Copy routines
812*fb1b10abSAndroid Build Coastguard Worker          ARM optimized quantization, dfct, variance, subtract
813*fb1b10abSAndroid Build Coastguard Worker          Increase chrow row alignment to 16 bytes.
814*fb1b10abSAndroid Build Coastguard Worker          disable trellis optimization for first pass
815*fb1b10abSAndroid Build Coastguard Worker          Write SSSE3 sub-pixel filter function
816*fb1b10abSAndroid Build Coastguard Worker          Improve SSE2 half-pixel filter funtions
817*fb1b10abSAndroid Build Coastguard Worker          Add vp8_sub_pixel_variance16x8_ssse3 function
818*fb1b10abSAndroid Build Coastguard Worker          Reduce unnecessary distortion computation
819*fb1b10abSAndroid Build Coastguard Worker          Use diamond search to replace full search
820*fb1b10abSAndroid Build Coastguard Worker          Preload reference area in sub-pixel motion search (real-time mode)
821*fb1b10abSAndroid Build Coastguard Worker
822*fb1b10abSAndroid Build Coastguard Worker  - Quality:
823*fb1b10abSAndroid Build Coastguard Worker      This release focused primarily on one-pass use cases, including
824*fb1b10abSAndroid Build Coastguard Worker      video conferencing. Low latency data rate control was significantly
825*fb1b10abSAndroid Build Coastguard Worker      improved, improving streamability over bandwidth constrained links.
826*fb1b10abSAndroid Build Coastguard Worker      Added support for error concealment, allowing frames to maintain
827*fb1b10abSAndroid Build Coastguard Worker      visual quality in the presence of substantial packet loss.
828*fb1b10abSAndroid Build Coastguard Worker
829*fb1b10abSAndroid Build Coastguard Worker          Add rc_max_intra_bitrate_pct control
830*fb1b10abSAndroid Build Coastguard Worker          Limit size of initial keyframe in one-pass.
831*fb1b10abSAndroid Build Coastguard Worker          Improve framerate adaptation
832*fb1b10abSAndroid Build Coastguard Worker          Improved 1-pass CBR rate control
833*fb1b10abSAndroid Build Coastguard Worker          Improved KF insertion after fades to still.
834*fb1b10abSAndroid Build Coastguard Worker          Improved key frame detection.
835*fb1b10abSAndroid Build Coastguard Worker          Improved activity masking (lower PSNR impact for same SSIM boost)
836*fb1b10abSAndroid Build Coastguard Worker          Improved interaction between GF and ARFs
837*fb1b10abSAndroid Build Coastguard Worker          Adding error-concealment to the decoder.
838*fb1b10abSAndroid Build Coastguard Worker          Adding support for independent partitions
839*fb1b10abSAndroid Build Coastguard Worker          Adjusted rate-distortion constants
840*fb1b10abSAndroid Build Coastguard Worker
841*fb1b10abSAndroid Build Coastguard Worker
842*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
843*fb1b10abSAndroid Build Coastguard Worker          Removed firstpass motion map
844*fb1b10abSAndroid Build Coastguard Worker          Fix parallel make install
845*fb1b10abSAndroid Build Coastguard Worker          Fix multithreaded encoding for 1 MB wide frame
846*fb1b10abSAndroid Build Coastguard Worker          Fixed iwalsh_neon build problems with RVDS4.1
847*fb1b10abSAndroid Build Coastguard Worker          Fix semaphore emulation, spin-wait intrinsics on Windows
848*fb1b10abSAndroid Build Coastguard Worker          Fix build with xcode4 and simplify GLOBAL.
849*fb1b10abSAndroid Build Coastguard Worker          Mark ARM asm objects as allowing a non-executable stack.
850*fb1b10abSAndroid Build Coastguard Worker          Fix vpxenc encoding incorrect webm file header on big endian
851*fb1b10abSAndroid Build Coastguard Worker
852*fb1b10abSAndroid Build Coastguard Worker
853*fb1b10abSAndroid Build Coastguard Worker2011-03-07 v0.9.6 "Bali"
854*fb1b10abSAndroid Build Coastguard Worker  Our second named release, focused on a faster, higher quality, encoder.
855*fb1b10abSAndroid Build Coastguard Worker
856*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
857*fb1b10abSAndroid Build Coastguard Worker    This release is backwards compatible with Aylesbury (v0.9.5). Users
858*fb1b10abSAndroid Build Coastguard Worker    of older releases should refer to the Upgrading notes in this
859*fb1b10abSAndroid Build Coastguard Worker    document for that release.
860*fb1b10abSAndroid Build Coastguard Worker
861*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
862*fb1b10abSAndroid Build Coastguard Worker      vpxenc --psnr shows a summary when encode completes
863*fb1b10abSAndroid Build Coastguard Worker      --tune=ssim option to enable activity masking
864*fb1b10abSAndroid Build Coastguard Worker      improved postproc visualizations for development
865*fb1b10abSAndroid Build Coastguard Worker      updated support for Apple iOS to SDK 4.2
866*fb1b10abSAndroid Build Coastguard Worker      query decoder to determine which reference frames were updated
867*fb1b10abSAndroid Build Coastguard Worker      implemented error tracking in the decoder
868*fb1b10abSAndroid Build Coastguard Worker      fix pipe support on windows
869*fb1b10abSAndroid Build Coastguard Worker
870*fb1b10abSAndroid Build Coastguard Worker  - Speed:
871*fb1b10abSAndroid Build Coastguard Worker      Primary focus was on good quality mode, speed 0. Average improvement
872*fb1b10abSAndroid Build Coastguard Worker      on x86 about 40%, up to 100% on user-generated content at that speed.
873*fb1b10abSAndroid Build Coastguard Worker      Best quality mode speed improved 35%, and realtime speed 10-20%. This
874*fb1b10abSAndroid Build Coastguard Worker      release also saw significant improvement in realtime encoding speed
875*fb1b10abSAndroid Build Coastguard Worker      on ARM platforms.
876*fb1b10abSAndroid Build Coastguard Worker
877*fb1b10abSAndroid Build Coastguard Worker        Improved encoder threading
878*fb1b10abSAndroid Build Coastguard Worker        Dont pick encoder filter level when loopfilter is disabled.
879*fb1b10abSAndroid Build Coastguard Worker        Avoid double copying of key frames into alt and golden buffer
880*fb1b10abSAndroid Build Coastguard Worker        FDCT optimizations.
881*fb1b10abSAndroid Build Coastguard Worker        x86 sse2 temporal filter
882*fb1b10abSAndroid Build Coastguard Worker        SSSE3 version of fast quantizer
883*fb1b10abSAndroid Build Coastguard Worker        vp8_rd_pick_best_mbsegmentation code restructure
884*fb1b10abSAndroid Build Coastguard Worker        Adjusted breakout RD for SPLITMV
885*fb1b10abSAndroid Build Coastguard Worker        Changed segmentation check order
886*fb1b10abSAndroid Build Coastguard Worker        Improved rd_pick_intra4x4block
887*fb1b10abSAndroid Build Coastguard Worker        Adds armv6 optimized variance calculation
888*fb1b10abSAndroid Build Coastguard Worker        ARMv6 optimized sad16x16
889*fb1b10abSAndroid Build Coastguard Worker        ARMv6 optimized half pixel variance calculations
890*fb1b10abSAndroid Build Coastguard Worker        Full search SAD function optimization in SSE4.1
891*fb1b10abSAndroid Build Coastguard Worker        Improve MV prediction accuracy to achieve performance gain
892*fb1b10abSAndroid Build Coastguard Worker        Improve MV prediction in vp8_pick_inter_mode() for speed>3
893*fb1b10abSAndroid Build Coastguard Worker
894*fb1b10abSAndroid Build Coastguard Worker  - Quality:
895*fb1b10abSAndroid Build Coastguard Worker      Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
896*fb1b10abSAndroid Build Coastguard Worker      also includes support for "activity masking," which greatly improves
897*fb1b10abSAndroid Build Coastguard Worker      SSIM at the expense of PSNR. For now, this feature is available with
898*fb1b10abSAndroid Build Coastguard Worker      the --tune=ssim option. Further experimentation in this area
899*fb1b10abSAndroid Build Coastguard Worker      is ongoing. This release also introduces a new rate control mode
900*fb1b10abSAndroid Build Coastguard Worker      called "CQ," which changes the allocation of bits within a clip to
901*fb1b10abSAndroid Build Coastguard Worker      the sections where they will have the most visual impact.
902*fb1b10abSAndroid Build Coastguard Worker
903*fb1b10abSAndroid Build Coastguard Worker        Tuning for the more exact quantizer.
904*fb1b10abSAndroid Build Coastguard Worker        Relax rate control for last few frames
905*fb1b10abSAndroid Build Coastguard Worker        CQ Mode
906*fb1b10abSAndroid Build Coastguard Worker        Limit key frame quantizer for forced key frames.
907*fb1b10abSAndroid Build Coastguard Worker        KF/GF Pulsing
908*fb1b10abSAndroid Build Coastguard Worker        Add simple version of activity masking.
909*fb1b10abSAndroid Build Coastguard Worker        make rdmult adaptive for intra in quantizer RDO
910*fb1b10abSAndroid Build Coastguard Worker        cap the best quantizer for 2nd order DC
911*fb1b10abSAndroid Build Coastguard Worker        change the threshold of DC check for encode breakout
912*fb1b10abSAndroid Build Coastguard Worker
913*fb1b10abSAndroid Build Coastguard Worker  - Bug Fixes:
914*fb1b10abSAndroid Build Coastguard Worker      Fix crash on Sparc Solaris.
915*fb1b10abSAndroid Build Coastguard Worker      Fix counter of fixed keyframe distance
916*fb1b10abSAndroid Build Coastguard Worker      ARNR filter pointer update bug fix
917*fb1b10abSAndroid Build Coastguard Worker      Fixed use of motion percentage in KF/GF group calc
918*fb1b10abSAndroid Build Coastguard Worker      Changed condition for using RD in Intra Mode
919*fb1b10abSAndroid Build Coastguard Worker      Fix encoder real-time only configuration.
920*fb1b10abSAndroid Build Coastguard Worker      Fix ARM encoder crash with multiple token partitions
921*fb1b10abSAndroid Build Coastguard Worker      Fixed bug first cluster timecode of webm file is wrong.
922*fb1b10abSAndroid Build Coastguard Worker      Fixed various encoder bugs with odd-sized images
923*fb1b10abSAndroid Build Coastguard Worker      vp8e_get_preview fixed when spatial resampling enabled
924*fb1b10abSAndroid Build Coastguard Worker      quantizer: fix assertion in fast quantizer path
925*fb1b10abSAndroid Build Coastguard Worker      Allocate source buffers to be multiples of 16
926*fb1b10abSAndroid Build Coastguard Worker      Fix for manual Golden frame frequency
927*fb1b10abSAndroid Build Coastguard Worker      Fix drastic undershoot in long form content
928*fb1b10abSAndroid Build Coastguard Worker
929*fb1b10abSAndroid Build Coastguard Worker
930*fb1b10abSAndroid Build Coastguard Worker2010-10-28 v0.9.5 "Aylesbury"
931*fb1b10abSAndroid Build Coastguard Worker  Our first named release, focused on a faster decoder, and a better encoder.
932*fb1b10abSAndroid Build Coastguard Worker
933*fb1b10abSAndroid Build Coastguard Worker  - Upgrading:
934*fb1b10abSAndroid Build Coastguard Worker    This release incorporates backwards-incompatible changes to the
935*fb1b10abSAndroid Build Coastguard Worker    ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec.
936*fb1b10abSAndroid Build Coastguard Worker
937*fb1b10abSAndroid Build Coastguard Worker    vpxdec
938*fb1b10abSAndroid Build Coastguard Worker      * the -q (quiet) option has been removed, and replaced with
939*fb1b10abSAndroid Build Coastguard Worker        -v (verbose). the output is quiet by default. Use -v to see
940*fb1b10abSAndroid Build Coastguard Worker        the version number of the binary.
941*fb1b10abSAndroid Build Coastguard Worker
942*fb1b10abSAndroid Build Coastguard Worker      * The default behavior is now to write output to a single file
943*fb1b10abSAndroid Build Coastguard Worker        instead of individual frames. The -y option has been removed.
944*fb1b10abSAndroid Build Coastguard Worker        Y4M output is the default.
945*fb1b10abSAndroid Build Coastguard Worker
946*fb1b10abSAndroid Build Coastguard Worker      * For raw I420/YV12 output instead of Y4M, the --i420 or --yv12
947*fb1b10abSAndroid Build Coastguard Worker        options must be specified.
948*fb1b10abSAndroid Build Coastguard Worker
949*fb1b10abSAndroid Build Coastguard Worker          $ ivfdec -o OUTPUT INPUT
950*fb1b10abSAndroid Build Coastguard Worker          $ vpxdec --i420 -o OUTPUT INPUT
951*fb1b10abSAndroid Build Coastguard Worker
952*fb1b10abSAndroid Build Coastguard Worker      * If an output file is not specified, the default is to write
953*fb1b10abSAndroid Build Coastguard Worker        Y4M to stdout. This makes piping more natural.
954*fb1b10abSAndroid Build Coastguard Worker
955*fb1b10abSAndroid Build Coastguard Worker          $ ivfdec -y -o - INPUT | ...
956*fb1b10abSAndroid Build Coastguard Worker          $ vpxdec INPUT | ...
957*fb1b10abSAndroid Build Coastguard Worker
958*fb1b10abSAndroid Build Coastguard Worker      * The output file has additional flexibility for formatting the
959*fb1b10abSAndroid Build Coastguard Worker        filename. It supports escape characters for constructing a
960*fb1b10abSAndroid Build Coastguard Worker        filename from the width, height, and sequence number. This
961*fb1b10abSAndroid Build Coastguard Worker        replaces the -p option. To get the equivalent:
962*fb1b10abSAndroid Build Coastguard Worker
963*fb1b10abSAndroid Build Coastguard Worker          $ ivfdec -p frame INPUT
964*fb1b10abSAndroid Build Coastguard Worker          $ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT
965*fb1b10abSAndroid Build Coastguard Worker
966*fb1b10abSAndroid Build Coastguard Worker    vpxenc
967*fb1b10abSAndroid Build Coastguard Worker      * The output file must be specified with -o, rather than as the
968*fb1b10abSAndroid Build Coastguard Worker        last argument.
969*fb1b10abSAndroid Build Coastguard Worker
970*fb1b10abSAndroid Build Coastguard Worker          $ ivfenc <options> INPUT OUTPUT
971*fb1b10abSAndroid Build Coastguard Worker          $ vpxenc <options> -o OUTPUT INPUT
972*fb1b10abSAndroid Build Coastguard Worker
973*fb1b10abSAndroid Build Coastguard Worker      * The output defaults to webm. To get IVF output, use the --ivf
974*fb1b10abSAndroid Build Coastguard Worker        option.
975*fb1b10abSAndroid Build Coastguard Worker
976*fb1b10abSAndroid Build Coastguard Worker          $ ivfenc <options> INPUT OUTPUT.ivf
977*fb1b10abSAndroid Build Coastguard Worker          $ vpxenc <options> -o OUTPUT.ivf --ivf INPUT
978*fb1b10abSAndroid Build Coastguard Worker
979*fb1b10abSAndroid Build Coastguard Worker
980*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
981*fb1b10abSAndroid Build Coastguard Worker      ivfenc and ivfdec have been renamed to vpxenc, vpxdec.
982*fb1b10abSAndroid Build Coastguard Worker      vpxdec supports .webm input
983*fb1b10abSAndroid Build Coastguard Worker      vpxdec writes .y4m by default
984*fb1b10abSAndroid Build Coastguard Worker      vpxenc writes .webm output by default
985*fb1b10abSAndroid Build Coastguard Worker      vpxenc --psnr now shows the average/overall PSNR at the end
986*fb1b10abSAndroid Build Coastguard Worker      ARM platforms now support runtime cpu detection
987*fb1b10abSAndroid Build Coastguard Worker      vpxdec visualizations added for motion vectors, block modes, references
988*fb1b10abSAndroid Build Coastguard Worker      vpxdec now silent by default
989*fb1b10abSAndroid Build Coastguard Worker      vpxdec --progress shows frame-by-frame timing information
990*fb1b10abSAndroid Build Coastguard Worker      vpxenc supports the distinction between --fps and --timebase
991*fb1b10abSAndroid Build Coastguard Worker      NASM is now a supported assembler
992*fb1b10abSAndroid Build Coastguard Worker      configure: enable PIC for shared libs by default
993*fb1b10abSAndroid Build Coastguard Worker      configure: add --enable-small
994*fb1b10abSAndroid Build Coastguard Worker      configure: support for ppc32-linux-gcc
995*fb1b10abSAndroid Build Coastguard Worker      configure: support for sparc-solaris-gcc
996*fb1b10abSAndroid Build Coastguard Worker
997*fb1b10abSAndroid Build Coastguard Worker  - Bugs:
998*fb1b10abSAndroid Build Coastguard Worker      Improve handling of invalid frames
999*fb1b10abSAndroid Build Coastguard Worker      Fix valgrind errors in the NEON loop filters.
1000*fb1b10abSAndroid Build Coastguard Worker      Fix loopfilter delta zero transitions
1001*fb1b10abSAndroid Build Coastguard Worker      Fix valgrind errors in vp8_sixtap_predict8x4_armv6().
1002*fb1b10abSAndroid Build Coastguard Worker      Build fixes for darwin-icc
1003*fb1b10abSAndroid Build Coastguard Worker
1004*fb1b10abSAndroid Build Coastguard Worker  - Speed:
1005*fb1b10abSAndroid Build Coastguard Worker      20-40% (average 28%) improvement in libvpx decoder speed,
1006*fb1b10abSAndroid Build Coastguard Worker      including:
1007*fb1b10abSAndroid Build Coastguard Worker        Rewrite vp8_short_walsh4x4_sse2()
1008*fb1b10abSAndroid Build Coastguard Worker        Optimizations on the loopfilters.
1009*fb1b10abSAndroid Build Coastguard Worker        Miscellaneous improvements for Atom
1010*fb1b10abSAndroid Build Coastguard Worker        Add 4-tap version of 2nd-pass ARMv6 MC filter.
1011*fb1b10abSAndroid Build Coastguard Worker        Improved multithread utilization
1012*fb1b10abSAndroid Build Coastguard Worker        Better instruction choices on x86
1013*fb1b10abSAndroid Build Coastguard Worker        reorder data to use wider instructions
1014*fb1b10abSAndroid Build Coastguard Worker        Update NEON wide idcts
1015*fb1b10abSAndroid Build Coastguard Worker        Make block access to frame buffer sequential
1016*fb1b10abSAndroid Build Coastguard Worker        Improved subset block search
1017*fb1b10abSAndroid Build Coastguard Worker        Bilinear subpixel optimizations for ssse3.
1018*fb1b10abSAndroid Build Coastguard Worker        Decrease memory footprint
1019*fb1b10abSAndroid Build Coastguard Worker
1020*fb1b10abSAndroid Build Coastguard Worker      Encoder speed improvements (percentage gain not measured):
1021*fb1b10abSAndroid Build Coastguard Worker        Skip unnecessary search of identical frames
1022*fb1b10abSAndroid Build Coastguard Worker        Add SSE2 subtract functions
1023*fb1b10abSAndroid Build Coastguard Worker        Improve bounds checking in vp8_diamond_search_sadx4()
1024*fb1b10abSAndroid Build Coastguard Worker        Added vp8_fast_quantize_b_sse2
1025*fb1b10abSAndroid Build Coastguard Worker
1026*fb1b10abSAndroid Build Coastguard Worker  - Quality:
1027*fb1b10abSAndroid Build Coastguard Worker      Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
1028*fb1b10abSAndroid Build Coastguard Worker      encoding mode, and up to 60% improvement on very noisy, still
1029*fb1b10abSAndroid Build Coastguard Worker      or slow moving source video
1030*fb1b10abSAndroid Build Coastguard Worker
1031*fb1b10abSAndroid Build Coastguard Worker        Motion compensated temporal filter for Alt-Ref Noise Reduction
1032*fb1b10abSAndroid Build Coastguard Worker        Improved use of trellis quantization on 2nd order Y blocks
1033*fb1b10abSAndroid Build Coastguard Worker        Tune effect of motion on KF/GF boost in two pass
1034*fb1b10abSAndroid Build Coastguard Worker        Allow coefficient optimization for good quality speed 0.
1035*fb1b10abSAndroid Build Coastguard Worker        Improved control of active min quantizer for two pass.
1036*fb1b10abSAndroid Build Coastguard Worker        Enable ARFs for non-lagged compress
1037*fb1b10abSAndroid Build Coastguard Worker
1038*fb1b10abSAndroid Build Coastguard Worker2010-09-02 v0.9.2
1039*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
1040*fb1b10abSAndroid Build Coastguard Worker      Disable frame dropping by default
1041*fb1b10abSAndroid Build Coastguard Worker      Improved multithreaded performance
1042*fb1b10abSAndroid Build Coastguard Worker      Improved Force Key Frame Behaviour
1043*fb1b10abSAndroid Build Coastguard Worker      Increased rate control buffer level precision
1044*fb1b10abSAndroid Build Coastguard Worker      Fix bug in 1st pass motion compensation
1045*fb1b10abSAndroid Build Coastguard Worker      ivfenc: correct fixed kf interval, --disable-kf
1046*fb1b10abSAndroid Build Coastguard Worker  - Speed:
1047*fb1b10abSAndroid Build Coastguard Worker      Changed above and left context data layout
1048*fb1b10abSAndroid Build Coastguard Worker      Rework idct calling structure.
1049*fb1b10abSAndroid Build Coastguard Worker      Removed unnecessary MB_MODE_INFO copies
1050*fb1b10abSAndroid Build Coastguard Worker      x86: SSSE3 sixtap prediction
1051*fb1b10abSAndroid Build Coastguard Worker      Reworked IDCT to include reconstruction (add) step
1052*fb1b10abSAndroid Build Coastguard Worker      Swap alt/gold/new/last frame buffer ptrs instead of copying.
1053*fb1b10abSAndroid Build Coastguard Worker      Improve SSE2 loopfilter functions
1054*fb1b10abSAndroid Build Coastguard Worker      Change bitreader to use a larger window.
1055*fb1b10abSAndroid Build Coastguard Worker      Avoid loopfilter reinitialization when possible
1056*fb1b10abSAndroid Build Coastguard Worker  - Quality:
1057*fb1b10abSAndroid Build Coastguard Worker      Normalize quantizer's zero bin and rounding factors
1058*fb1b10abSAndroid Build Coastguard Worker      Add trellis quantization.
1059*fb1b10abSAndroid Build Coastguard Worker      Make the quantizer exact.
1060*fb1b10abSAndroid Build Coastguard Worker      Updates to ARNR filtering algorithm
1061*fb1b10abSAndroid Build Coastguard Worker      Fix breakout thresh computation for golden & AltRef frames
1062*fb1b10abSAndroid Build Coastguard Worker      Redo the forward 4x4 dct
1063*fb1b10abSAndroid Build Coastguard Worker      Improve the accuracy of forward walsh-hadamard transform
1064*fb1b10abSAndroid Build Coastguard Worker      Further adjustment of RD behaviour with Q and Zbin.
1065*fb1b10abSAndroid Build Coastguard Worker  - Build System:
1066*fb1b10abSAndroid Build Coastguard Worker      Allow linking of libs built with MinGW to MSVC
1067*fb1b10abSAndroid Build Coastguard Worker      Fix target auto-detection on mingw32
1068*fb1b10abSAndroid Build Coastguard Worker      Allow --cpu= to work for x86.
1069*fb1b10abSAndroid Build Coastguard Worker      configure: pass original arguments through to make dist
1070*fb1b10abSAndroid Build Coastguard Worker      Fix builds without runtime CPU detection
1071*fb1b10abSAndroid Build Coastguard Worker      msvs: fix install of codec sources
1072*fb1b10abSAndroid Build Coastguard Worker      msvs: Change devenv.com command line for better msys support
1073*fb1b10abSAndroid Build Coastguard Worker      msvs: Add vs9 targets.
1074*fb1b10abSAndroid Build Coastguard Worker      Add x86_64-linux-icc target
1075*fb1b10abSAndroid Build Coastguard Worker  - Bugs:
1076*fb1b10abSAndroid Build Coastguard Worker      Potential crashes on older MinGW builds
1077*fb1b10abSAndroid Build Coastguard Worker      Fix two-pass framrate for Y4M input.
1078*fb1b10abSAndroid Build Coastguard Worker      Fixed simple loop filter, other crashes on ARM v6
1079*fb1b10abSAndroid Build Coastguard Worker      arm: fix missing dependency with --enable-shared
1080*fb1b10abSAndroid Build Coastguard Worker      configure: support directories containing .o
1081*fb1b10abSAndroid Build Coastguard Worker      Replace pinsrw (SSE) with MMX instructions
1082*fb1b10abSAndroid Build Coastguard Worker      apple: include proper mach primatives
1083*fb1b10abSAndroid Build Coastguard Worker      Fixed rate control bug with long key frame interval.
1084*fb1b10abSAndroid Build Coastguard Worker      Fix DSO link errors on x86-64 when not using a version script
1085*fb1b10abSAndroid Build Coastguard Worker      Fixed buffer selection for UV in AltRef filtering
1086*fb1b10abSAndroid Build Coastguard Worker
1087*fb1b10abSAndroid Build Coastguard Worker
1088*fb1b10abSAndroid Build Coastguard Worker2010-06-17 v0.9.1
1089*fb1b10abSAndroid Build Coastguard Worker  - Enhancements:
1090*fb1b10abSAndroid Build Coastguard Worker      * ivfenc/ivfdec now support YUV4MPEG2 input and pipe I/O
1091*fb1b10abSAndroid Build Coastguard Worker      * Speed optimizations
1092*fb1b10abSAndroid Build Coastguard Worker  - Bugfixes:
1093*fb1b10abSAndroid Build Coastguard Worker      * Rate control
1094*fb1b10abSAndroid Build Coastguard Worker      * Prevent out-of-bounds accesses on invalid data
1095*fb1b10abSAndroid Build Coastguard Worker  - Build system updates:
1096*fb1b10abSAndroid Build Coastguard Worker      * Detect toolchain to be used automatically for native builds
1097*fb1b10abSAndroid Build Coastguard Worker      * Support building shared libraries
1098*fb1b10abSAndroid Build Coastguard Worker      * Better autotools emulation (--prefix, --libdir, DESTDIR)
1099*fb1b10abSAndroid Build Coastguard Worker  - Updated LICENSE
1100*fb1b10abSAndroid Build Coastguard Worker      * http://webmproject.blogspot.com/2010/06/changes-to-webm-open-source-license.html
1101*fb1b10abSAndroid Build Coastguard Worker
1102*fb1b10abSAndroid Build Coastguard Worker
1103*fb1b10abSAndroid Build Coastguard Worker2010-05-18 v0.9.0
1104*fb1b10abSAndroid Build Coastguard Worker  - Initial open source release. Welcome to WebM and VP8!
1105*fb1b10abSAndroid Build Coastguard Worker
1106