Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° VideoLAN ΠΈ FFmpeg ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π²ΡΠΏΡΡΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ dav1d 0.7.0 Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ AV1. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ C (C99) Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ (NASM/GAS) ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ x86, x86_64, ARMv7 ΠΈ ARMv8, ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ Linux, Windows, macOS, Android ΠΈ iOS.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° dav1d ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ AV1, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΈΠ΄Ρ ΡΡΠ±Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π²ΡΠ΅ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠ²Π΅ΡΠ° (8, 10 ΠΈ 12 Π±ΠΈΡ). Π Π°Π±ΠΎΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ AV1. ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ dav1d ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ refmv (Dynamic Reference Motion Vector Prediction) ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 12% ΠΏΡΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 25%;
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ
Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ARM64 ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ, ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡΠΈΡ
ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠ²Π΅ΡΠ° Π² 8, 10 ΠΈ 12 Π±ΠΈΡ;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΈΠ»ΡΡΡ CDEF, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX-512;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π±Π°Π·Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ AVX2 ΠΈ SSSE3;
- Π ΡΡΠΈΠ»ΠΈΡΠ΅ dav1dpla ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠ²Π΅ΡΠ° Π² 10 Π±ΠΈΡ, Ρ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ Π½Π΅-4:2:0 ΠΈ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΌΠ° Π½Π° GPU.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ΄Π΅ΠΊ AV1 ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π°Π»ΡΡΠ½ΡΠΎΠΌ Open Media (AOMedia), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, Apple, CCN ΠΈ Realtek. AV1 ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΠΎΠΏΠ»Π°ΡΡ ΠΎΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ H.264 ΠΈ VP9 ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ. ΠΠ»Ρ Π²ΡΠ΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ AV1 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠΈ Π±ΠΈΡΡΠ΅ΠΉΡΠ° Π½Π° 13% ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ VP9 ΠΈ Π½Π° 17% ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ HEVC. ΠΠ° Π²ΡΡΠΎΠΊΠΈΡ
Π±ΠΈΡΡΠ΅ΠΉΡΠ°Ρ
Π²ΡΠΈΠ³ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ 22-27% Π΄Π»Ρ VP9 ΠΈ Π΄ΠΎ 30-43% Π΄Π»Ρ HEVC. Π ΡΠ΅ΡΡΠ°Ρ
Facebook AV1 ΠΎΠ±ΠΎΠ³Π½Π°Π» ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ main profile H.264 (x264) Π½Π° 50.3%, high profile H.264 Π½Π° 46.2%, Π° VP9 (libvpx-vp9) Π½Π° 34.0%.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru