Liberigo de SVT-AV1 2.0 kodilo kaj dav1d 1.4 malĉifrilo por AV1 videoformato

La publikigo de la biblioteko SVT-AV1 2.0 (Scalable Video Technology AV1) estis publikigita kun efektivigoj de la kodilo kaj malĉifrilo de la AV1-videokodformato, por akcelo de kiu la rimedoj de aparataro paralela komputado ĉeestanta en modernaj Intel CPUoj estas uzitaj. La projekto estis kreita de Intel en partnereco kun Netflix kun la celo atingi nivelon de rendimento taŭga por sur-la-fluga videotranskodado kaj uzo en video-sur-postulo (VOD) servoj. Nuntempe, evoluo estas efektivigita sub la aŭspicioj de Open Media Alliance (AOMedia), kiu kontrolas la evoluon de la AV1-videokodformato. Antaŭe, la projekto estis disvolvita kadre de la projekto OpenVisualCloud, kiu ankaŭ disvolvas la kodilojn SVT-HEVC kaj SVT-VP9. La kodo estas distribuita sub la permesilo BSD.

SVT-AV1 povas esti kunvenita por sistemoj bazitaj sur iu ajn arkitekturo, por kiu ekzistas kompililo kiu subtenas la C99-normon, sed la plej bona rendimento estas atingita sur x86_64-sistemoj, por kiuj oni uzas asembleajn optimumojn bazitajn sur SIMD-instrukcioj (estas dezirinde havi AVX2 subteno en la CPU, sed kiel la minimumo sufiĉas kaj SS2). Memorkonsumo dependas de la nombro da procesoraj kernoj uzataj dum kodado, reguligita per la opcio "-lp". Pro la komplekseco de la algoritmoj uzitaj en AV1, kodi ĉi tiun formaton postulas signife pli da resursoj ol aliaj formatoj, kio ne permesas la uzon de la norma AV1-kodilo por realtempa transkodado. Ekzemple, la akcia kodigilo de la projekto AV1 postulas 5721, 5869 kaj 658 fojojn pli da kalkuloj kompare kun la x264 ("ĉefa" profilo), x264 ("alta" profilo) kaj libvpx-vp9-kodigiloj.

Inter la ŝanĝoj en la nova eldono de SVT-AV1:

  • Transiro estis farita al nova versio-numerado, laŭ kiu la unua cifero en la versio ŝanĝiĝos kun ĉiu API/ABI-ŝanĝo.
  • Ŝanĝoj estis faritaj al la API rilate al la transiro al la fino de fluo-indiko (EOS - End Of Stream) en la lasta kadro anstataŭ uzi malplenan kadron, kio forigis la prokraston en atendado de ekstra kadro. La API-ŝanĝo jam estas reflektita en la kodbazo FFmpeg.
  • La tri-enirpermesila ŝanĝiĝema bitrapida reĝimo (3-enirpermesila VBR) estis forigita, kaj nun estas anstataŭigita per plurpasa VBR-mekanismo. VBR plurpasa reĝimo estis reduktita al du enirpermesiloj por certigi integriĝon kun FFmpeg.
  • Optimumigoj estis aldonitaj al la kodilo, rezulte de kiuj la kunprema efikeco de la antaŭdifiniloj M9-M13 pliiĝis je 1-4%, kaj la memorkonsumo de la antaŭgordita M5 malpliiĝis je 20-35% en LP 8-reĝimo kaj je 1-5% en aliaj reĝimoj. Memorkonsumo en aliaj antaŭdiroj malpliiĝis je 1-5%.
  • Optimumigo de kvalito/rapidecaj kompromisoj estis efektivigita por antaŭdiroj kiuj starigas altnivelan de kvalito. La referenca kvalito MR-antagordita estis akcelita je 100%.
  • ARM-specifaj optimumigoj estis aldonitaj al nur C-funkcioj.

Aldone, ni povas noti la liberigon de la projekto dav1d 1.4.1, ene de kiu la komunumoj VideoLAN kaj FFmpeg disvolvas bibliotekon kun la efektivigo de alternativa libera malĉifrilo por la formato de videokodigo AV1. La dav1d-biblioteko subtenas ĉiujn ecojn de AV1, inkluzive de altnivelaj specoj de subspecimenado kaj ĉiujn kolorajn profundegajn parametrojn deklaritajn en la specifo (8, 10 kaj 12 bitoj). La ĉefa trajto de dav1d estas ĝia fokuso atingi la plej altan eblan malkodan agadon kaj certigi altkvalitan laboron en multfadena reĝimo. La projektkodo estas skribita en C (C99) kun kunigaĵoj (NASM/GAS) kaj estas distribuita sub la BSD-licenco. Subteno por x86, x86_64, ARMv7 kaj ARMv8 arkitekturoj, kaj operaciumoj FreeBSD, Linukso, Vindozo, macOS, Android kaj iOS estis efektivigita.

Versio dav1d 1.4 estas rimarkinda pro subtenado de la novaj arkitekturoj Loongarch kaj RISC-V, kaj ankaŭ enkonduki pliajn optimumojn bazitajn sur AVX-512-instrukcioj, akcelante la funkciadon de 6-tap-filtriloj sur ARM-sistemoj, pliigante la efikecon de multfadena laboro kaj reduktante la grandeco de binaraj datenoj pri ARM64, ARM32 kaj RISC-sistemoj V. Korektis vundeblecon CVE-2024-1580, kiu kaŭzis eksterliman skribon pro entjera superfluo dum prilaborado de tre grandaj kadrograndoj.

fonto: opennet.ru

Aldoni komenton