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