rav1e 0.3 рдХреЛ рд░рд┐рд▓реАрдЬ, Rust рдорд╛ AV1 рдПрдиреНрдХреЛрдбрд░

рднрдпреЛ рд░рд┐рд▓реАрдЬ 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режXNUMX рдЧрддрд┐;
  • рдмрд╛рдЗрдирд░реА рдПрд╕реЗрдореНрдмрд▓реАрд╣рд░реВрдХреЛ рдЖрдХрд╛рд░ рдШрдЯрд╛рдЗрдПрдХреЛ рдЫ (x86_64/Linux рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рд▓рдЧрднрдЧ 3MB рд▓рд┐рдиреНрдЫ);
  • рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдордп рд▓рдЧрднрдЧ 14% рджреНрд╡рд╛рд░рд╛ рдШрдЯрд╛рдЗрдпреЛ;
  • рднрд┐рдбрд┐рдпреЛрдмрд╛рдЯ рдмреНрд▓рдХ рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рд╣рдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдлрд┐рд▓реНрдЯрд░ рдердкрд┐рдпреЛ (рдмреНрд▓рдХ рдЧрд░реНрджреИ);
  • x86_64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐, SIMD рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╕реНрд╡рдд: рднреЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╕рдирдХреЛ рдкреНрд░рдпреЛрдЧ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рез/рем рд▓реЗ рдШрдЯрд╛рдЗрдПрдХреЛ рдЫ;
  • RDO (рджрд░-рд╡рд┐рд░реВрдкрдг рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди) рдорд╛, рдЗрдиреНрдЯреНрд░рд╛-рдлреНрд░реЗрдо рд╡рд┐рдХреГрддрд┐рд╣рд░реВрд▓рд╛рдИ рджрдмрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд░реНрдХ рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • рдХреЗрд╣реА рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдмрд┐рдиреНрджреБ рдЕрдВрдХрдЧрдгрд┐рдд рдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдЧрдгрдирд╛рдорд╛ рд╕рд╛рд░рд┐рдпреЛред
  • рджреЛрд╕реНрд░реЛ рдЧрддрд┐ рд╕реНрддрд░рдорд╛ рдПрдиреНрдХреЛрдбрд┐рдЩ рдЧреБрдгрд╕реНрддрд░ 1-2% рджреНрд╡рд╛рд░рд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдЫ;
  • рдердкрд┐рдпреЛ рдирдпрд╛рдБ рдЧрддрд┐ рджрд┐рд╢рд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдлрд┐рд▓реНрдЯрд░ (рдЕрдиреНрддрд░ рдХрд┐рдирд╛рд░рд╛);
  • рдердкрд┐рдпреЛ рд╡рд┐рдХрд▓реНрдк "-S" (--switch-frame-interval) рдлреНрд░реЗрдорд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреЗ рдЕрдиреНрддрд░рд╛рд▓ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди;
  • wasm32-wasi рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд╛рдг рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ (WebAssembly рдкреНрд░рдгрд╛рд▓реА рдЗрдиреНрдЯрд░рдлреЗрд╕).

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди