Paglabas ng rav1e 0.3, isang AV1 encoder sa Rust

naganap problema rav1e 0.3, isang high-performance na video coding format encoder AV1, na binuo ng mga komunidad ng Xiph at Mozilla. Ang encoder ay nakasulat sa Rust at naiiba sa reference na libaom encoder sa pamamagitan ng makabuluhang pagtaas ng bilis ng pag-encode at pagtaas ng pansin sa seguridad. Code ng proyekto ipinamahagi ni sa ilalim ng lisensya ng BSD.

Sinusuportahan ang lahat ng pangunahing feature ng AV1, kabilang ang suporta
panloob at panlabas na naka-encode na mga frame (intra- ΠΈ ilibing-frames), 64x64 superblocks, 4:2:0, 4:2:2 at 4:4:4 chroma subsampling, 8-, 10- at 12-bit color depth encoding, RDO (Rate-distortion optimization) optimization distortion, iba't ibang mga mode para sa paghula ng mga pagbabago sa interframe at pagtukoy ng mga pagbabago, pagkontrol sa rate ng daloy at pag-detect ng pagputol ng eksena.

Kapansin-pansin ang format ng AV1 outstrips H.264 at VP9 sa mga tuntunin ng mga kakayahan sa compression, ngunit dahil sa pagiging kumplikado ng mga algorithm na nagpapatupad ng mga ito Nangangailangan makabuluhang mas maraming oras para sa pag-encode (sa bilis ng pag-encode, ang libaom ay daan-daang beses sa likod ng libvpx-vp9, at libu-libong beses sa likod ng x264).
Nag-aalok ang rav1e encoder ng 11 mga antas ng pagganap, ang pinakamataas na naghahatid ng malapit sa real-time na bilis ng pag-encode. Available ang encoder bilang isang command line utility at bilang isang library.

Sa bagong bersyon:

  • Iminungkahi ang mas mabilis na encoding mode Bilis 10;
  • Ang laki ng mga binary assemblies ay nabawasan (sa x86_64/Linux platform ang library ay tumatagal ng humigit-kumulang 3MB);
  • Ang oras ng pagpupulong ay nabawasan ng humigit-kumulang 14%;
  • Nagdagdag ng multi-threaded na filter para sa pag-alis ng mga block artifact mula sa video (deblocking);
  • Para sa x86_64 architecture, ang mga karagdagang pag-optimize ay ipinatupad gamit ang mga tagubilin ng SIMD at ang paggamit ng auto-vectorization ay pinalawak;
  • Ang bilang ng mga operasyon ng paglalaan ng memorya ay nabawasan ng 1/6;
  • Sa RDO (Rate-distortion optimization), ang lohika para sa pagsugpo sa intra-frame distortions ay napabuti;
  • Ang ilang mga operasyon ay inilipat mula sa paggamit ng floating point arithmetic hanggang sa mga kalkulasyon ng integer;
  • Ang kalidad ng pag-encode sa pangalawang antas ng bilis ay napabuti ng 1-2%;
  • Idinagdag bagong motion direction prediction filter (Intra edge);
  • Idinagdag ang opsyon na "-S" (--switch-frame-interval) upang matukoy ang pagitan ng paglipat sa pagitan ng mga frame;
  • Nagdagdag ng suporta sa pagbuo para sa wasm32-wasi platform (WebAssembly System Interface).

Pinagmulan: opennet.ru

Magdagdag ng komento