ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° SVT-AV1 Π²Π΅ΡΡΠΈΡ 4.3.0 (Scalable Video Technology AV1) Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΠΎΠ΄Π΅ΠΊΠ° ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° Π·Π° ΡΠΎΡΠΌΠ°ΡΠ° AV1, Π·Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ x86_64 ΠΈ ARM ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Intel Π² ΠΏΠ°ΡΡΠ½ΡΠΎΡΡΡΠ²ΠΎ Ρ Netflix Ρ ΡΠ΅Π» ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π·Π° ΠΏΡΠ΅ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π² ΡΡΠ»ΡΠ³ΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Π·Π°ΡΠ²ΠΊΠ° (VOD). Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°ΡΠ° Π½Π° Π°Π»ΠΈΠ°Π½ΡΠ° Open Media (AOMedia), ΠΊΠΎΠΉΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° AV1. ΠΠΎ-ΡΠ°Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° OpenVisualCloud, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ²Π΅ΡΠ΅ SVT-HEVC ΠΈ SVT-VP9. ΠΠΎΠ΄ΡΡ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD.
SVT-AV1 ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° C99, Π½ΠΎ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ x86_64, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π±Π°Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SIMD (ΠΆΠ΅Π»Π°ΡΠ΅Π»Π½ΠΎ Π΅ CPU Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° AVX2, Π½ΠΎ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΈ SSE2). ΠΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π±ΡΠΎΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ°, ΡΠ΅Π³ΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΡ ΠΎΠΏΡΠΈΡΡΠ° "βlp". ΠΠΎΡΠ°Π΄ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅, ΠΏΡΠΈΠ»Π°Π³Π°Π½ΠΈ Π² AV1, Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΡΠΎΡΠΌΠ°Ρ ΡΠ° Π½ΡΠΆΠ½ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈ.
Π‘ΡΠ΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° SVT-AV1:
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ/ΡΠΊΠΎΡΠΎΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅ΡΠ΅ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° CPU Ρ 5-8% ΠΏΡΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ ΡΡΠΊΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Ρ 10-11% Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ. Π£ΡΠΊΠΎΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΈ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ (MD β Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ°), ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΠΊΡΠΎΡΠΈ Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ (MV β ΠΠ΅ΠΊΡΠΎΡ Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ) ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΠΈΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΡΠΎΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈ, ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΡΠ±ΠΏΠΈΠΊΡΠ΅Π»Π΅Π½ ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΈ ΠΎΡΡΠ΅Π»Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½Π° Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° RDOQ (ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠ²Π°Π½ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ ΠΈ ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π°Π½Π΅). Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π·Π° ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΠΊΡΠ°Π½Π° ΡΠ΅Π³Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠ°ΠΌΠΎ Π·Π° I-ΠΊΠ°Π΄ΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΡΠ»Π°Π³ "βfast-decode 3" Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ "βfgs-table", ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ Π·Π° Π·ΡΡΠ½ΠΈΡΡΠΎΡΡ (film grain), ΠΈ API FILM_GRAIN_EVENT Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° Π·ΡΡΠ½ΠΈΡΡΠΎΡΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΊΠ°Π΄ΡΠΈΡΠ΅.
- Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π° Π΅ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π±Π΅Π· Π·Π°Π³ΡΠ±ΠΈ.
- Π ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Ρ Π½ΠΈΡΠΊΠΈ Π·Π°Π±Π°Π²ΡΠ½ΠΈΡ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ (tile).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ "max_allowed_consecutive_frames_skips" Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ° Π½Π° ΠΊΠ°Π΄ΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ Π±ΠΈΡΡΠ΅ΠΉΡ (CBR).
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ "max_hierarchical_levels" Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ»Π° ΠΎΡ Π±ΡΡΠ΅ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΠ½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π³ΡΡΠΏΠΈ ΠΎΡ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΠΊΠ°Π΄ΡΠΈ (mini-GOP β ΠΡΡΠΏΠ° ΠΎΡ ΠΊΠ°Π΄ΡΠΈ).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ "βmobile-build" (Π² CMake β MOBILE_BUILD) Π·Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° 8-Π±ΠΈΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° RTC, VOD ΠΈ AVIF. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΈ CONFIG_ENABLE_* Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π½Π° Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅.
- ΠΠ° x86 ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ 8-Π±ΠΈΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ CDEF Π½Π° Π±Π°Π·Π° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX2 ΠΈ SSE4.1, ΠΊΠ°ΠΊΡΠΎ ΠΈ 16-Π±ΠΈΡΠ½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π±Π°Π·Π° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX2 ΠΈ AVX-512. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠ΄ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SSE4.1 Π·Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π²Π°Π½Π΅, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°Π»ΠΈΡΡΠΈ ΠΈ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈΡΠ΅ Π·Π° ΠΊΠ²Π°Π½ΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΡΡΠ±ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡ.
- ΠΠ° ARM ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ, ΡΡΠΊΠΎΡΠ΅Π½ΠΈ Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Neon.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
