Հրատարակվել է SVT-AV1 2.0 (Scalable Video Technology AV1) գրադարանի թողարկումը AV1 վիդեո կոդավորման ձևաչափի կոդավորիչի և ապակոդավորչի ներդրումներով, որոնց արագացման համար օգտագործվում են ժամանակակից Intel պրոցեսորներում առկա ապարատային զուգահեռ հաշվարկման միջոցները: Նախագիծը ստեղծվել է Intel-ի կողմից Netflix-ի հետ համագործակցությամբ՝ նպատակ ունենալով հասնել կատարողականի այնպիսի մակարդակի, որը հարմար է վիդեո վիդեո տրանսկոդավորման և վիդեո պահանջարկի (VOD) ծառայություններում օգտագործելու համար: Ներկայումս մշակումն իրականացվում է Open Media Alliance-ի (AOMedia) հովանու ներքո, որը վերահսկում է AV1 վիդեո կոդավորման ձևաչափի մշակումը: Նախկինում նախագիծը մշակվել է OpenVisualCloud նախագծի շրջանակներում, որը մշակում է նաև SVT-HEVC և SVT-VP9 կոդավորիչները։ Կոդը տարածվում է BSD լիցենզիայի ներքո:
SVT-AV1-ը կարող է կոմպիլացվել ցանկացած ճարտարապետության վրա հիմնված համակարգերի համար, որոնց համար կա C99 ստանդարտը աջակցող կոմպիլյատոր, սակայն լավագույն արդյունավետությունը ձեռք է բերվում x86_64 համակարգերում, որոնք օգտագործում են SIMD հրահանգների վրա հիմնված ասեմբլերի օպտիմալացումներ (CPU-ում AVX2 աջակցությունը ցանկալի է, բայց SS2-ը բավարար է որպես նվազագույն): Հիշողության սպառումը կախված է կոդավորմանը մասնակցող պրոցեսորի միջուկների քանակից, որը կառավարվում է «--lp» տարբերակով։ AV1-ում օգտագործվող ալգորիթմների բարդության պատճառով, այս ձևաչափի կոդավորումը պահանջում է զգալիորեն ավելի շատ ռեսուրսներ, քան մյուս ձևաչափերը, ինչը թույլ չի տալիս օգտագործել ստանդարտ AV1 կոդավորիչը իրական ժամանակի տրանսկոդավորման համար։ Օրինակ, AV1 նախագծի ստանդարտ կոդավորիչը պահանջում է 5721, 5869 և 658 անգամ ավելի շատ հաշվարկներ՝ համեմատած x264 («գլխավոր» պրոֆիլ), x264 («բարձր» պրոֆիլ) և libvpx-vp9 կոդավորիչների հետ։
SVT-AV1-ի նոր թողարկման փոփոխություններից.
- Կատարվել է անցում նոր տարբերակի համարակալման, որի համաձայն տարբերակի առաջին նիշը կփոխվի API/ABI-ի յուրաքանչյուր փոփոխության հետ։
- API-ում փոփոխություններ են կատարվել՝ կապված վերջին կադրում հոսքի ավարտի (EOS) ցուցման անցման հետ՝ դատարկ կադր օգտագործելու փոխարեն, ինչը վերացնում է լրացուցիչ կադրի սպասելու ուշացումը։ API-ի փոփոխությունն արդեն արտացոլված է FFmpeg կոդային բազայում։
- Եռակի անցումային փոփոխական բիթռեյթի ռեժիմը (3-անցումային VBR) հեռացվել է և փոխարինվել բազմակի անցումային VBR մեխանիզմով։ Բազմա-անցումային VBR ռեժիմը կրճատվել է մինչև երկու անցում՝ FFmpeg-ի հետ ինտեգրումը հնարավոր դարձնելու համար։
- Կոդավորիչը բարելավվել է օպտիմալացումներով, որոնք M9-M13 նախադրված կարգավորումների սեղմման արդյունավետությունը մեծացրել են 1-4%-ով և LP 5 ռեժիմում M20 նախադրված կարգավորումներում հիշողության սպառումը կրճատել են 35-8%-ով և մյուս ռեժիմներում՝ 1-5%-ով։ Այլ նախադրված կարգավորումներում հիշողության սպառումը կրճատվել է 1-5%-ով։
- Բարձր որակի մակարդակներ սահմանող նախապես սահմանված կարգավորումների համար որակի/արագության օպտիմալացված փոխզիջումներ։ Հղման որակ ապահովող MR նախադրված կարգավորումը արագացվել է 100%-ով։
- ARM ճարտարապետությանը հատուկ օպտիմալացումներ են ավելացվել միայն C-ի ֆունկցիաներին։
Բացի այդ, հարկ է նշել dav1d 1.4.1 նախագծի թողարկումը, որի շրջանակներում VideoLAN և FFmpeg համայնքները մշակում են գրադարան՝ AV1 տեսանյութի կոդավորման ձևաչափի համար այլընտրանքային անվճար դեկոդերի ներդրմամբ։ dav1d գրադարանը աջակցում է AV1-ի բոլոր հնարավորություններին, ներառյալ առաջադեմ ենթանմուշառումը և գույնի խորության կառավարման բոլոր նշված տարբերակները (8, 10 և 12 բիթ): dav1d-ի հիմնական առանձնահատկությունը նրա կենտրոնացումն է հնարավորինս բարձր վերծանման արդյունավետության հասնելու և բազմաթելային ռեժիմով բարձրորակ աշխատանքի ապահովման վրա։ Նախագծի կոդը գրված է C (C99) լեզվով՝ ասեմբլերային ներդիրներով (NASM/GAS) և տարածվում է BSD լիցենզիայով։ Աջակցություն է տրամադրվել x86, x86_64, ARMv7 և ARMv8 ճարտարապետությունների, ինչպես նաև FreeBSD, Linux, Windows, macOS, Android և iOS օպերացիոն համակարգերի համար։
dav1d 1.4-ը աչքի է ընկնում նոր Loongarch և RISC-V ճարտարապետությունների աջակցությամբ, ինչպես նաև AVX-512 հրահանգների վրա հիմնված լրացուցիչ օպտիմալացումներով, ARM համակարգերում 6tap ֆիլտրերի արագացմամբ, բազմաթելային մշակման արդյունավետության բարձրացմամբ և ARM64, ARM32 և RISC-V համակարգերում երկուական տվյալների չափի կրճատմամբ։ Ուղղվել է CVE-2024-1580 խոցելիությունը, որը շատ մեծ կադրեր մշակելիս ամբողջ թվերի գերլցման պատճառով հանգեցնում էր սահմաններից դուրս գրման։
Source: opennet.ru
