ΠΠ·Π»Π΅Π·Π΅ rav1e 0.5.0, Π΅Π½ΠΊΠΎΠ΄Π΅Ρ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΡΠΎΡΠΌΠ°Ρ AV1. ΠΡΠΎΠ΄ΡΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΠΈΡΠ΅ Mozilla ΠΈ Xiph ΠΈ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° ΠΎΡ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ libaom, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C/C++, Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΡΠΊΠΎΡΠΎΡΡ Π½Π° Π΅Π½ΠΊoding ΠΈ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° (Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ ΠΎΡΡΡΡΠΏΠ²Π°). ΠΡΠΎΠ΄ΡΠΊΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Rust Ρ Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (72.2% β Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ, 27.5% β Rust), ΠΊΠΎΠ΄ΡΡ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD. ΠΠΎΡΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Windows ΠΈ macOS (Π²Π΅ΡΡΠΈΠΈ Π·Π° Linux Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ° ΠΏΡΠΎΠΏΡΡΠ½Π°ΡΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ).
rav1e ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° AV1, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²ΡΡΡΠ΅ΡΠ½ΠΎ ΠΈ Π²ΡΠ½ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΠΊΠ°Π΄ΡΠΈ (intra ΠΈ inter ΠΊΠ°Π΄ΡΠΈ), ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊΠΎΠ²Π΅ 64Γ64, ΡΠ²Π΅ΡΠ½Π° ΡΡΠ±Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ 4:2:0, 4:2:2 ΠΈ 4:4:4, 8-, 10- ΠΈ 12-Π±ΠΈΡΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π° Π½Π° ΡΠ²Π΅ΡΠ°, RDO (ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π°Π½Π΅) ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΎΠ²Π΅ Π·Π° ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΊΠ°Π΄ΡΠΎΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅Π½ΠΈ.
Π€ΠΎΡΠΌΠ°ΡΡΡ AV1 Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅Π²ΡΠ·Ρ ΠΎΠΆΠ΄Π° H.264 ΠΈ VP9 ΠΏΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅, Π½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ, ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ (ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ libaom ΠΎΡΡΡΡΠΏΠ²Π° Π½Π° libvpx-vp9 ΡΡΠΎΡΠΈΡΠΈ ΠΏΡΡΠΈ, Π° Π½Π° x264 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΠΏΡΡΠΈ). ΠΠΎΠ΄Π΅ΡΡΡ rav1e ΠΏΡΠ΅Π΄Π»Π°Π³Π° 11 Π½ΠΈΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΊΠΎΡΠΎΡΡ, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎΠ΄Π΅ΡΡΡ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄, ΡΠ°ΠΊΠ° ΠΈ ΠΊΠ°ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ΄Π΅ΠΊΠ°;

- ΠΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° Π³ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ ΡΡΠΈΠ² Π½Π° ΠΊΠΎΠ΄Π΅ΡΠ° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΡΠΎ;
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° AVX2 ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ (Π΄ΠΎ 13 ΠΏΡΡΠΈ) ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ½Π΅ΡΠΎΠ²Π°ΡΠ° ΠΎΡΠ΅Π½ΠΊΠ° Π·Π° 16 Π±ΠΈΡΠ° Π½Π° ΠΊΠ°Π½Π°Π». ΠΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°ΡΠΈΠ½ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° SIMD ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° Π΄ΠΎ 7 ΠΏΡΡΠΈ ΠΏΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ;
- ΠΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈΡΠ΅ x86, arm32 ΠΈ arm64.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru

