انتشار کتابخانه SVT-AV1 2.0 (Scalable Video Technology AV1) با اجرای رمزگذار و رمزگشای فرمت رمزگذاری ویدیوی AV1 منتشر شده است که برای تسریع آن از ابزارهای محاسبات موازی سخت افزاری موجود در CPU های مدرن اینتل استفاده می شود. این پروژه توسط اینتل با مشارکت نتفلیکس با هدف دستیابی به سطحی از عملکرد مناسب برای رمزگذاری ویدیویی در حین پرواز و استفاده در سرویسهای ویدیوی درخواستی (VOD) ایجاد شد. در حال حاضر، توسعه تحت حمایت Open Media Alliance (AOMedia) انجام می شود که بر توسعه فرمت رمزگذاری ویدیو AV1 نظارت دارد. پیش از این، این پروژه در چارچوب پروژه OpenVisualCloud توسعه یافته بود که رمزگذارهای SVT-HEVC و SVT-VP9 را نیز توسعه می دهد. کد تحت مجوز BSD توزیع شده است.
SVT-AV1 را می توان برای سیستم های مبتنی بر هر معماری که برای آنها کامپایلری وجود دارد که از استاندارد C99 پشتیبانی می کند مونتاژ کرد، اما بهترین عملکرد در سیستم های x86_64 حاصل می شود که برای آنها از بهینه سازی اسمبلی بر اساس دستورالعمل های SIMD استفاده شده است (مطلوب است پشتیبانی AVX2 در CPU، اما به عنوان حداقل کافی است و SS2). مصرف حافظه به تعداد هسته های پردازنده استفاده شده در هنگام رمزگذاری بستگی دارد که توسط گزینه "-lp" تنظیم می شود. با توجه به پیچیدگی الگوریتمهای مورد استفاده در AV1، رمزگذاری این فرمت به منابع بیشتری نسبت به سایر فرمتها نیاز دارد، که اجازه استفاده از رمزگذار استاندارد AV1 را برای رمزگذاری بلادرنگ نمیدهد. برای مثال، رمزگذار سهام پروژه AV1 به 5721، 5869 و 658 برابر محاسبات بیشتر در مقایسه با رمزگذارهای x264 (پروفایل "اصلی")، x264 (پروفایل "بالا") و libvpx-vp9 نیاز دارد.
از جمله تغییرات در نسخه جدید SVT-AV1:
- انتقال به شماره گذاری نسخه جدید انجام شده است که بر اساس آن رقم اول نسخه با هر تغییر API/ABI تغییر می کند.
- تغییراتی در API مربوط به انتقال به نشانگر پایان جریان (EOS - End Of Stream) در آخرین فریم به جای استفاده از فریم خالی ایجاد شده است که تاخیر در انتظار برای یک فریم اضافی را از بین برد. تغییر API قبلاً در پایگاه کد FFmpeg منعکس شده است.
- حالت نرخ بیت متغیر سه گذر (VBR 3 پاس) حذف شده است و اکنون با مکانیزم VBR چند گذری جایگزین شده است. حالت چند گذر VBR به دو پاس کاهش یافته است تا از یکپارچگی با FFmpeg اطمینان حاصل شود.
- بهینه سازی هایی به رمزگذار اضافه شده است که در نتیجه راندمان فشرده سازی پیش تنظیم های M9-M13 1-4٪ افزایش یافته است و مصرف حافظه پیش تنظیم M5 در حالت LP 20 35-8٪ کاهش یافته است. 1-5٪ در حالت های دیگر. مصرف حافظه در سایر تنظیمات از پیش تنظیم شده 1-5٪ کاهش یافته است.
- بهینه سازی مصالحه کیفیت/سرعت برای از پیش تنظیم هایی که سطح بالایی از کیفیت را تعیین می کنند، انجام شده است. کیفیت مرجع از پیش تنظیم شده MR تا 100٪ تسریع شده است.
- بهینه سازی های خاص ARM به توابع C-only اضافه شده است.
علاوه بر این، میتوانیم به انتشار پروژه dav1d 1.4.1 اشاره کنیم که در آن جوامع VideoLAN و FFmpeg در حال توسعه یک کتابخانه با اجرای یک رمزگشای رایگان جایگزین برای فرمت کدگذاری ویدیوی AV1 هستند. کتابخانه dav1d از تمامی ویژگیهای AV1، از جمله انواع پیشرفته نمونهبرداری فرعی و تمام پارامترهای کنترل عمق رنگ که در مشخصات (۸، ۱۰ و ۱۲ بیت) ذکر شده است، پشتیبانی میکند. ویژگی کلیدی dav8d تمرکز آن بر دستیابی به بالاترین عملکرد رمزگشایی ممکن و اطمینان از کار با کیفیت بالا در حالت چند رشته ای است. کد پروژه به زبان C (C10) با درج های مونتاژ (NASM/GAS) نوشته شده و تحت مجوز BSD توزیع می شود. پشتیبانی از معماری های x12، x1_99، ARMv86 و ARMv86 و سیستم عامل های FreeBSD، Linux، Windows، macOS، Android و iOS پیاده سازی شده است.
نسخه dav1d 1.4 به دلیل پشتیبانی از معماریهای جدید Loongarch و RISC-V و همچنین ارائه بهینهسازیهای اضافی بر اساس دستورالعملهای AVX-512، تسریع عملکرد فیلترهای 6tap در سیستمهای ARM، افزایش راندمان کار چند رشتهای و کاهش اندازه داده های باینری در سیستم های ARM64، ARM32 و RISC V. آسیبپذیری CVE-2024-1580 برطرف شد، که به دلیل سرریز اعداد صحیح هنگام پردازش اندازههای فریم بسیار بزرگ، باعث نوشتن خارج از محدوده شد.
منبع: opennet.ru
