ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° rav1e 0.3, AV1 Π΅Π½ΠΊΠΎΠ΄Π΅Ρ€ Π² Rust

сС ΡΡŠΡΡ‚ΠΎΡ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ rav1e 0.3, високоСфСктивСн Π΅Π½ΠΊΠΎΠ΄Π΅Ρ€ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ AV1, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΎΡ‚ общноститС Xiph ΠΈ Mozilla. Π•Π½ΠΊΠΎΠ΄Π΅Ρ€ΡŠΡ‚ Π΅ написан Π½Π° Rust ΠΈ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ рСфСрСнтния libaom Π΅Π½ΠΊΠΎΠ΄Π΅Ρ€ Ρ‡Ρ€Π΅Π· Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° скоростта Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ повишСно Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ към сигурността. Код Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява сС ΠΎΡ‚ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· BSD.

Всички основни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° AV1 сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°
Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ ΠΈ външно ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Π΄Ρ€ΠΈ (Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ ΠΈ Π½Π°Ρ€Π΅Π΄-ΠΊΠ°Π΄Ρ€ΠΈ), 64x64 супСрблоковС, 4:2:0, 4:2:2 ΠΈ 4:4:4 Ρ…Ρ€ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ субсСмплиранС, 8-, 10- ΠΈ 12-Π±ΠΈΡ‚ΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π° Π½Π° Ρ†Π²Π΅Ρ‚Π°, RDO (ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° скоростта Π½Π° изкривяванС) ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° изкривяванСто, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡƒΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° трансформации, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° скоростта Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡŠΠΊΡ€Π°Ρ‰Π°Π²Π°Π½Π΅ Π½Π° сцСна.

AV1 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сС забСлязва ΠΈΠ·ΠΏΡ€Π΅Π²Π°Ρ€Π²Π° H.264 ΠΈ VP9 ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° компрСсия, Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ слоТността Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π³ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ изисква Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ (ΠΏΠΎ скорост Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ libaom Π΅ стотици ΠΏΡŠΡ‚ΠΈ Π·Π°Π΄ libvpx-vp9 ΠΈ хиляди ΠΏΡŠΡ‚ΠΈ Π·Π°Π΄ x264).
ΠšΠΎΠ΄Π΅Ρ€ΡŠΡ‚ rav1e ΠΏΡ€Π΅Π΄Π»Π°Π³Π° 11 Π½ΠΈΠ²Π° Π½Π° производитСлност, Π½Π°ΠΉ-високитС ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ осигуряват скорости Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠšΠΎΠ΄Π΅Ρ€ΡŠΡ‚ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄, Ρ‚Π°ΠΊΠ° ΠΈ ΠΊΠ°Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π· Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Бкорост 10;
  • Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΈΡ‚Π΅ сборки Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ (Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° x86_64/Linux Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 3MB);
  • Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° сглобяванС Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ с ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 14%;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ многонишков Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ ΠΎΡ‚ Π²ΠΈΠ΄Π΅ΠΎ (Π΄Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅);
  • Π—Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° x86_64 са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° SIMD инструкции ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° вСкторизация Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΎ;
  • Броят Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ с 1/6;
  • Π’ RDO (Rate-distortion optimization) Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° потисканС Π½Π° изкривяванията Π² Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π°;
  • Някои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ са прСмСстСни ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΠΊΠ° с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая към цСлочислСни изчислСния;
  • ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° скорост Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ с 1-2%;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π½ΠΎΠ² Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π·Π° прСдсказванС Π½Π° посоката Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ (Intra edge);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция "-S" (--switch-frame-interval) Π·Π° опрСдСлянС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Π΄Ρ€ΠΈΡ‚Π΅;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° wasm32-wasi (БистСмСн интСрфСйс WebAssembly).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€