Changelog:
2022-08-31 v3.5.0
This release is ABI compatible with the last one, including speedup and memory
optimizations, and new APIs and features.
- New Features
* Support for frame parallel encode for larger number of threads. --fp-mt
flag is available for all build configurations.
* New codec control AV1E_GET_NUM_OPERATING_POINTS
- Speedup and Memory Optimizations
* Speed-up multithreaded encoding for good quality mode for larger number of
threads through frame parallel encoding:
o 30-34% encode time reduction for 1080p, 16 threads, 1x1 tile
configuration (tile_rows x tile_columns)
o 18-28% encode time reduction for 1080p, 16 threads, 2x4 tile
configuration
o 18-20% encode time reduction for 2160p, 32 threads, 2x4 tile
configuration
* 16-20% speed-up for speed=6 to 8 in still-picture encoding mode
* 5-6% heap memory reduction for speed=6 to 10 in real-time encoding mode
* Improvements to the speed for speed=7, 8 in real-time encoding mode
* Improvements to the speed for speed=9, 10 in real-time screen encoding
mode
* Optimizations to improve multi-thread efficiency in real-time encoding
mode
* 10-15% speed up for SVC with temporal layers
* SIMD optimizations:
o Improve av1_quantize_fp_32x32_neon() 1.05x to 1.24x faster
o Add aom_highbd_quantize_b{,_32x32,_64x64}_adaptive_neon() 3.15x to 5.6x
faster than "C"
o Improve av1_quantize_fp_64x64_neon() 1.17x to 1.66x faster
o Add aom_quantize_b_avx2() 1.4x to 1.7x faster than aom_quantize_b_avx()
o Add aom_quantize_b_32x32_avx2() 1.4x to 2.3x faster than
aom_quantize_b_32x32_avx()
o Add aom_quantize_b_64x64_avx2() 2.0x to 2.4x faster than
aom_quantize_b_64x64_ssse3()
o Add aom_highbd_quantize_b_32x32_avx2() 9.0x to 10.5x faster than
aom_highbd_quantize_b_32x32_c()
o Add aom_highbd_quantize_b_64x64_avx2() 7.3x to 9.7x faster than
aom_highbd_quantize_b_64x64_c()
o Improve aom_highbd_quantize_b_avx2() 1.07x to 1.20x faster
o Improve av1_quantize_fp_avx2() 1.13x to 1.49x faster
o Improve av1_quantize_fp_32x32_avx2() 1.07x to 1.54x faster
o Improve av1_quantize_fp_64x64_avx2() 1.03x to 1.25x faster
o Improve av1_quantize_lp_avx2() 1.07x to 1.16x faster
- Bug fixes including but not limited to
* aomedia:3206 Assert that skip_width > 0 for deconvolve function
* aomedia:3278 row_mt enc: Delay top-right sync when intraBC is enabled
* aomedia:3282 blend_a64_*_neon: fix bus error in armv7
* aomedia:3283 FRAME_PARALLEL: Propagate border size to all cpis
* aomedia:3283 RESIZE_MODE: Fix incorrect strides being used for motion
search
* aomedia:3286 rtc-svc: Fix to dynamic_enable spatial layers
* aomedia:3289 rtc-screen: Fix to skipping inter-mode test in nonrd
* aomedia:3289 rtc-screen: Fix for skip newmv on flat blocks
* aomedia:3299 Fix build failure with CONFIG_TUNE_VMAF=1
* aomedia:3296 Fix the conflict --enable-tx-size-search=0 with nonrd mode
--enable-tx-size-search will be ignored in non-rd pick mode
* aomedia:3304 Fix off-by-one error of max w/h in validate_config
* aomedia:3306 Do not use pthread_setname_np on GNU/Hurd
* aomedia:3325 row-multithreading produces invalid bitstream in some cases
* chromium:1346938, chromium:1338114
* compiler_flags.cmake: fix flag detection w/cmake 3.17-3.18.2
* tools/*.py: update to python3
* aom_configure.cmake: detect PIE and set CONFIG_PIC
* test/simd_cmp_impl: use explicit types w/CompareSimd*
* rtc: Fix to disable segm for aq-mode=3
* rtc: Fix to color_sensitivity in variance partition
* rtc-screen: Fix bsize in model rd computation for intra chroma
* Fixes to ensure the correct behavior of the encoder algorithms (like
segmentation, computation of statistics, etc.)
v3.4.0
This release includes compression efficiency and perceptual quality
improvements, speedup and memory optimizations, and some new features.
There are no ABI or API breaking changes in this release.
- New Features
* New --dist-metric flag with "qm-psnr" value to use quantization
matrices in the distortion computation for RD search. The default
value is "psnr".
* New command line option "--auto-intra-tools-off=1" to make
all-intra encoding faster for high bit rate under
"--deltaq-mode=3" mode.
* New rate control library aom_av1_rc for real-time hardware
encoders. Supports CBR for both one spatial layer and SVC.
* New image format AOM_IMG_FMT_NV12 can be used as input to the
encoder. The presence of AOM_IMG_FMT_NV12 can be detected at
compile time by checking if the macro AOM_HAVE_IMG_FMT_NV12 is
defined.
* New codec controls for the encoder:
o AV1E_SET_AUTO_INTRA_TOOLS_OFF. Only in effect if
--deltaq-mode=3.
o AV1E_SET_RTC_EXTERNAL_RC
o AV1E_SET_FP_MT. Only supported if libaom is built with
-DCONFIG_FRAME_PARALLEL_ENCODE=1.
o AV1E_GET_TARGET_SEQ_LEVEL_IDX
* New key-value pairs for the key-value API:
o --auto-intra-tools-off=0 (default) or 1. Only in effect if
--deltaq-mode=3.
o --strict-level-conformance=0 (default) or 1
o --fp-mt=0 (default) or 1. Only supported if libaom is built
with -DCONFIG_FRAME_PARALLEL_ENCODE=1.
* New aomenc options (not supported by the key-value API):
o --nv12
- Compression Efficiency Improvements
* Correctly calculate SSE for high bitdepth in skip mode, 0.2% to
0.6% coding gain.
* RTC at speed 9/10: BD-rate gain of ~4/5%
* RTC screen content coding: many improvements for real-time screen
at speed 10 (quality, speedup, and rate control), up to high
resolutions (1080p).
* RTC-SVC: fixes to make intra-only frames work for spatial layers.
* RTC-SVC: quality improvements for temporal layers.
* AV1 RT: A new passive rate control strategy for screen content, an
average of 7.5% coding gain, with some clips of 20+%. The feature
is turned off by default due to higher bit rate variation.
- Perceptual Quality Improvements
* RTC: Visual quality improvements for high speeds (9/10)
* Improvements in coding quality for all intra mode
- Speedup and Memory Optimizations
* ~10% speedup in good quality mode encoding.
* ~7% heap memory reduction in good quality encoding mode for speed
5 and 6.
* Ongoing improvements to intra-frame encoding performance on Arm
* Faster encoding speed for "--deltaq-mode=3" mode.
* ~10% speedup for speed 5/6, ~15% speedup for speed 7/8, and
~10% speedup for speed 9/10 in real time encoding mode
* ~20% heap memory reduction in still-picture encoding mode for
360p-720p resolutions with multiple threads
* ~13% speedup for speed 6 and ~12% speedup for speed 9 in
still-picture encoding mode.
* Optimizations to improve multi-thread efficiency for still-picture
encoding mode.
- Bug Fixes
2022-01-28 v3.3.0
This release includes compression efficiency and perceptual quality
improvements, speedup and memory optimizations, some new features, and
several bug fixes.
- New Features
* AV1 RT: Introducing CDEF search level 5
* Changed real time speed 4 to behave the same as real time speed 5
* Add --deltaq-strength
* rtc: Allow scene-change and overshoot detection for svc
* rtc: Intra-only frame for svc
* AV1 RT: Option 2 for codec control AV1E_SET_ENABLE_CDEF to disable
CDEF on non-ref frames
* New codec controls AV1E_SET_LOOPFILTER_CONTROL and
AOME_GET_LOOPFILTER_LEVEL
* Improvements to three pass encoding
- Compression Efficiency Improvements
* Overall compression gains: 0.6%
- Perceptual Quality Improvements
* Improves the perceptual quality of high QP encoding for delta-q mode 4
* Auto select noise synthesis level for all intra
- Speedup and Memory Optimizations
* Added many SSE2 optimizations.
* Good quality 2-pass encoder speedups:
o Speed 2: 9%
o Speed 3: 12.5%
o Speed 4: 8%
o Speed 5: 3%
o Speed 6: 4%
* Real time mode encoder speedups:
o Speed 5: 2.6% BDRate gain, 4% speedup
o Speed 6: 3.5% BDRate gain, 4% speedup
o Speed 9: 1% BDRate gain, 3% speedup
o Speed 10: 3% BDRate gain, neutral speedup
* All intra encoding speedups (AVIF):
o Single thread - speed 6: 8%
o Single thread - speed 9: 15%
o Multi thread(8) - speed 6: 14%
o Multi thread(8) - speed 9: 34%
- Bug Fixes
* Issue 3163: Segmentation fault when using --enable-keyframe-filtering=2
* Issue 2436: Integer overflow in av1_warp_affine_c()
* Issue 3226: armv7 build failure due to gcc-11
* Issue 3195: Bug report on libaom (AddressSanitizer: heap-buffer-overflow)
* Issue 3191: Bug report on libaom (AddressSanitizer: SEGV on unknown
address)
* Issue 3176: Some SSE2/SADx4AvgTest.* tests fail on Windows
* Issue 3175: Some SSE2/SADSkipTest.* tests fail on Windows
2021-10-13 v3.2.0
This release includes compression efficiency and perceptual quality
improvements, speedup and memory optimizations, as well as some new
features.
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (for legal reasons?):
./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.i386.tar.gz
./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.x86_64.tar.gz
./multimedia/libdvdcss/distinfo libdvdcss-1.4.3.tar.bz2
most of these simply extend matching from "aarch64" to "aarch64eb"
in various forms of code. most remaining uses in pkgsrc of
"MACHINE_ARCH == aarch64" are because of missing aarch64eb support,
such as most of the binary-bootstrap requiring languages like rust,
go, and java.
no pkg-bump because this shouldn't change packages on systems that
could already build all of these.
AOMedia Video 1 (AV1), is an open, royalty-free video coding format designed
for video transmissions over the Internet.
AV1 is intended to be able to be used together with the audio format Opus in a
future version of the WebM container format for HTML5 web video and WebRTC.