Выпуск rav1e 0.5, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° AV1

Бостоялся Ρ€Π΅Π»ΠΈΠ· rav1e 0.5.0, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° кодирования Π²ΠΈΠ΄Π΅ΠΎ AV1. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ развиваСтся сообщСствами Mozilla ΠΈ Xiph ΠΈ отличаСтся ΠΎΡ‚ эталонной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ libaom, написанной Π½Π° языках C/C++, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ скорости кодирования ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ бСзопасности (ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ сТатия ΠΏΠΎΠΊΠ° отстаёт). ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ написан Π½Π° языкС программирования 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 (Rate-distortion optimization) ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ искаТСний, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ прСдсказания ΠΌΠ΅ΠΆΠΊΠ°Π΄Ρ€ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ выявлСния трансформаций, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ выявлСниС усСчСния сцСны.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ AV1 Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ H.264 ΠΈ VP9 ΠΏΠΎ возмоТностям сТатия, Π½ΠΎ ΠΈΠ·-Π·Π° услоТнСния Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сущСствСнно большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для кодирования (ΠΏΠΎ скорости кодирования libaom отстаёт ΠΎΡ‚ libvpx-vp9 Π² сотни Ρ€Π°Π·, Π° ΠΎΡ‚ x264 Π² тысячи Ρ€Π°Π·). ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ rav1e прСдоставляСт 11 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ скорости, Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ доступСн ΠΊΠ°ΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚Π°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния:

  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ускорСниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π΅ΠΊΠ°;
    Выпуск rav1e 0.5, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° AV1
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибки, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ΅ΠΉ ΠΊ ΠΊΡ€Π°Ρ…Ρƒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… Π²ΠΈΠ΄Π΅ΠΎ;
  • ИспользованиС инструкций AVX2 для Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ (Π΄ΠΎ 13 Ρ€Π°Π·) ускорСния винСровского оцСнивания для 16 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°Π½Π°Π». Аналогично Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ использованиС SIMD-инструкций, позволившСС ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ вычислСния Π΄ΠΎ 7 Ρ€Π°Π· Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… условиях;
  • Масса ΠΌΠ΅Π»ΠΊΠΈΡ… исправлСниС ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ x86, arm32 ΠΈ arm64.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ