VideoLAN ΠΈ FFmpeg Π·Π°Π΅Π΄Π½ΠΈΡΠΈ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΎ ΡΡΠ΅ΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (0.3) Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° dav1d ΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ ΡΠΎ ΡΠΎΡΠΌΠ°Ρ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ AV1. ΠΠΎΠ΄ΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ°Π·ΠΈΠΊ C (C99) ΡΠΎ Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠΈ (NASM/GAS) ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ° BSD. ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ x86, x86_64, ARMv7 ΠΈ ARMv8 ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Linux, Windows, macOS, Android ΠΈ iOS.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° dav1d Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ AV1, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΈ ΠΈ Π½Π°ΠΏΡΠ΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΈΠΊΠ°Π·ΠΈ Π·Π΅ΠΌΠ°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ ΠΈ ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π΄Π»Π°Π±ΠΎΡΠΈΠ½Π°ΡΠ° Π½Π° Π±ΠΎΡΠ°ΡΠ° Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° (8, 10 ΠΈ 12 Π±ΠΈΡΠ°). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ ΡΠ΅ΡΡΠΈΡΠ°Π½Π° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠΎΡΠΌΠ°Ρ AV1. ΠΠ»ΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° dav1d Π΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΡΠΎΠΊΡΡ Π½Π° ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π°ΡΠ΅ Π½Π° Π½Π°ΡΠ²ΠΈΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½ΠΈΡΠΊΠΈ.
ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π΄ΠΎΠ΄Π°Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° Π΄Π° Π³ΠΎ Π·Π°Π±ΡΠ·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SSSE3, SSE4.1 ΠΈ AVX2. ΠΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ ΡΠΎ SSSE3 ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ Π·Π° 24%, Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ ΡΠΎ AVX2 Π·Π° 4%. ΠΠΎΠ΄Π°Π΄Π΅Π½ Π΅ ΠΊΠΎΠ΄ Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π·Π° Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SSE4.1, ΡΠΈΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π³ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π·Π° 26% Π²ΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ Π½Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° (Π²ΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ SSSE3, Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ°ΡΠ° Π΅ 1.5%).
ΠΠ³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈ ΡΠ΅ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠΎΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ARM64. Π‘ΠΎ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ NEON ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ° Π·Π° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ 12% Π²ΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
ΠΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈΠΎΡ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ aomdec (libaom), ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° dav1d Π½Π°ΡΡΠΈΠ»Π½ΠΎ ΡΠ΅ ΡΡΠ²ΡΡΠ²ΡΠ²Π° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½ΠΈΡΠΊΠΈ (Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ dav1d Π΅ 2-4 ΠΏΠ°ΡΠΈ ΠΏΠΎΠ±ΡΠ·). ΠΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΡ ΡΠΎ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ°, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°Π°Ρ Π·Π° 10-20%.
ΠΠΌΠ°ΡΠ΅ ΡΡΠΏΠ΅Ρ
Π²ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° dav1d Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΡΠ΅Π³Π° Π΅ dav1d Π²Π°ΠΆΠΈ Π²ΠΎ Chromium/Chrome 74 ΠΈ Firefox 67 (ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎ Π±Π΅ΡΠ΅ dav1d Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π·Π° Windows, Π½ΠΎ ΡΠ΅Π³Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ Π·Π° Linux ΠΈ macOS). ΠΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° dav1d Π²ΠΎ FFmpeg ΠΈ VLC, ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π° ΡΡΠ°Π½Π·ΠΈΡΠΈΡΠ° ΠΊΠΎΠ½ ΡΡΠ°Π½ΡΠΊΠΎΠ΄Π΅Ρ dav1d Π Π°ΡΠ½Π° ΡΠΎΠΏΠΈΡΠ°ΡΠΊΠ°.
ΠΠΎΡΡΠ΅ΡΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄Π΅ΠΊΠΎΡ AV1 ΡΠ°Π·Π²ΠΈΠ΅Π½Π° ΠΎΠ΄ ΡΠΎΡΡΠ·ΠΎΡ ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ ΠΌΠ΅Π΄ΠΈΡΠΌΠΈ (AOMedia), Π²ΠΎ ΠΊΠΎΡΠ° ΠΈΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎ Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, CCN ΠΈ Realtek. AV1 Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΠΊΠΎ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π±Π΅Π· Ρ
ΠΎΠ½ΠΎΡΠ°Ρ, ΠΊΠΎΡ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅Π΄ H.264 ΠΈ VP9 Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° Π½ΠΈΠ²ΠΎΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°. ΠΠΈΠ· ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠ°Π½ΠΈ ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΠΈ, Π²ΠΎ ΠΏΡΠΎΡΠ΅ΠΊ AV1 ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΈΡΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° Π±ΠΈΡΠΎΠ²ΠΈ Π·Π° 13% Π²ΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ VP9 ΠΈ 17% ΠΏΠΎΠ½ΠΈΡΠΊΠ° ΠΎΠ΄ HEVC. ΠΡΠΈ Π²ΠΈΡΠΎΠΊΠΈ Π±ΠΈΡΠΎΠ²ΠΈ, Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ°ΡΠ° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π½Π° 22-27% Π·Π° VP9 ΠΈ Π½Π° 30-43% Π·Π° HEVC. ΠΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΈΡΠ΅ Π½Π° Facebook, AV1 Π³ΠΎ Π½Π°Π΄ΠΌΠΈΠ½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠΈΠ» H.264 (x264) Π·Π° 50.3% Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°, Π²ΠΈΡΠΎΠΊΠΈΠΎΡ ΠΏΡΠΎΡΠΈΠ» H.264 Π·Π° 46.2%, Π° VP9 (libvpx-vp9) Π·Π° 34.0%.
ΠΠ·Π²ΠΎΡ: opennet.ru