Ang paglabas ng library ng SVT-AV1 2.0 (Scalable Video Technology AV1) ay nai-publish na may mga pagpapatupad ng encoder at decoder ng format ng pag-encode ng AV1 na video, para sa pagpapabilis kung saan ang mga paraan ng hardware parallel computing na nasa modernong Intel CPU ay ginagamit. Ang proyekto ay nilikha ng Intel sa pakikipagtulungan sa Netflix na may layuning makamit ang isang antas ng pagganap na angkop para sa on-the-fly video transcoding at paggamit sa mga serbisyo ng video-on-demand (VOD). Sa kasalukuyan, ang pag-unlad ay isinasagawa sa ilalim ng tangkilik ng Open Media Alliance (AOMedia), na nangangasiwa sa pagbuo ng format ng pag-encode ng AV1 na video. Noong nakaraan, ang proyekto ay binuo sa loob ng balangkas ng proyekto ng OpenVisualCloud, na bumubuo rin ng mga SVT-HEVC at SVT-VP9 na mga encoder. Ang code ay ipinamahagi sa ilalim ng lisensya ng BSD.
Maaaring tipunin ang SVT-AV1 para sa mga system batay sa anumang arkitektura kung saan mayroong isang compiler na sumusuporta sa pamantayan ng C99, ngunit ang pinakamahusay na pagganap ay nakamit sa mga x86_64 system, kung saan ang mga pag-optimize ng pagpupulong batay sa mga tagubilin ng SIMD ay ginagamit (ito ay kanais-nais na magkaroon ng AVX2 suporta sa CPU, ngunit bilang ang minimum ay sapat at SS2). Ang pagkonsumo ng memorya ay nakasalalay sa bilang ng mga core ng processor na ginamit sa panahon ng pag-encode, na kinokontrol ng opsyong "-lp". Dahil sa pagiging kumplikado ng mga algorithm na ginagamit sa AV1, ang pag-encode sa format na ito ay nangangailangan ng higit na mapagkukunan kaysa sa iba pang mga format, na hindi pinapayagan ang paggamit ng karaniwang AV1 encoder para sa real-time na transcoding. Halimbawa, ang stock encoder mula sa proyekto ng AV1 ay nangangailangan ng 5721, 5869 at 658 beses na mas maraming kalkulasyon kumpara sa x264 ("pangunahing" profile), x264 ("mataas" na profile) at libvpx-vp9 na mga encoder.
Kabilang sa mga pagbabago sa bagong release ng SVT-AV1:
- Ang isang paglipat ay ginawa sa isang bagong bersyon ng pagnunumero, ayon sa kung saan ang unang digit sa bersyon ay magbabago sa bawat pagbabago ng API/ABI.
- Ang mga pagbabago ay ginawa sa API na nauugnay sa paglipat sa dulo ng stream indication (EOS - End Of Stream) sa huling frame sa halip na gumamit ng walang laman na frame, na nag-alis ng pagkaantala sa paghihintay ng karagdagang frame. Ang pagbabago ng API ay makikita na sa FFmpeg codebase.
- Ang three-pass variable bitrate mode (3-pass VBR) ay inalis, at ngayon ay pinalitan ng isang multi-pass na mekanismo ng VBR. Ang VBR multi-pass mode ay binawasan sa dalawang pass upang matiyak ang pagsasama sa FFmpeg.
- Ang mga pag-optimize ay idinagdag sa encoder, bilang isang resulta kung saan ang kahusayan ng compression ng mga preset ng M9-M13 ay tumaas ng 1-4%, at ang pagkonsumo ng memorya ng M5 preset ay nabawasan ng 20-35% sa LP 8 mode at ng 1-5% sa ibang mga mode. Ang pagkonsumo ng memorya sa iba pang mga preset ay bumaba ng 1-5%.
- Ang pag-optimize ng mga kompromiso sa kalidad/bilis ay isinagawa para sa mga preset na nagtatakda ng mataas na antas ng kalidad. Ang reference na kalidad ng MR preset ay pinabilis ng 100%.
- Ang mga optimization na partikular sa ARM ay naidagdag sa mga function na nakasulat lamang sa C.
Bukod pa rito, mapapansin natin ang paglabas ng proyektong dav1d 1.4.1, kung saan ang mga komunidad ng VideoLAN at FFmpeg ay bumubuo ng isang library na may pagpapatupad ng alternatibong libreng decoder para sa format ng pag-encode ng AV1 na video. Sinusuportahan ng dav1d library ang lahat ng feature ng AV1, kabilang ang mga advanced na uri ng subsampling at lahat ng color depth control parameter na nakasaad sa detalye (8, 10 at 12 bits). Ang pangunahing tampok ng dav1d ay ang pagtuon nito sa pagkamit ng pinakamataas na posibleng pagganap ng pag-decode at pagtiyak ng mataas na kalidad na trabaho sa multi-threaded mode. Ang project code ay nakasulat sa C (C99) na may mga assembly insert (NASM/GAS) at ipinamamahagi sa ilalim ng lisensya ng BSD. Suporta para sa x86, x86_64, ARMv7 at ARMv8 na mga arkitektura, at mga operating system Naipatupad na ang FreeBSD, Linux, Windows, macOS, Android at iOS.
Ang bersyon dav1d 1.4 ay kapansin-pansin para sa pagsuporta sa bagong Loongarch at RISC-V na mga arkitektura, pati na rin ang pagpapakilala ng mga karagdagang pag-optimize batay sa AVX-512 na mga tagubilin, pagpapabilis sa pagpapatakbo ng 6tap na mga filter sa mga sistema ng ARM, pagtaas ng kahusayan ng multi-threaded na trabaho at pagbabawas ng laki ng binary data sa ARM64, ARM32 at RISC-systems V. Inayos ang kahinaan CVE-2024-1580, na nagdulot ng out-of-bounds na pagsulat dahil sa isang integer overflow kapag nagpoproseso ng napakalaking laki ng frame.
Pinagmulan: opennet.ru
