Khronos مجموعهای از برنامههای افزودنی Vulkan Video را برای فعال کردن کدکهای اضافی و سرعت بخشیدن به رمزگذاری و همچنین رمزگشایی منتشر میکند. این وبلاگ یک نمای کلی از معماری Vulkan Video است و همچنین جزئیاتی در مورد افزونه های تکمیل شده و پیوندهایی به منابع مهم ارائه می دهد تا به شما در ساخت اولین برنامه های Vulkan Video کمک کند.

معرفی
Vulkan Video به فلسفه Vulkan مبنی بر ارائه برنامههای کاربردی با کنترل انعطافپذیر و دقیق بر زمانبندی، زمانبندی و تخصیص حافظه پایبند است. با استفاده از چارچوب Vulkan API موجود، برنامههای افزودنی Vulkan Video استفاده کارآمد، با تأخیر کم و سربار کم از منابع پردازشی را برای پردازش سریع ویدیو، از جمله توزیع وظایف پردازش جریانی در هستههای چندگانه پردازنده و سختافزار کدک ویدیو، امکانپذیر میسازد، همگی با قابلیت حمل برنامه در چندین مورد. پلتفرمها و دستگاههای مختلف از دستگاههای تعبیهشده کوچک گرفته تا سرورهای با کارایی بالا که از ویندوز و لینوکس پشتیبانی میکنند.
معرفی برنامه های افزودنی ویدیوی Vulkan
پردازندههای گرافیکی معمولاً حاوی موتورهای شتابدهنده رمزگشایی و کدگذاری ویدیویی هستند که مستقل از سایر موتورهای گرافیکی و محاسباتی هستند. در واقع، برخی از دستگاههای فیزیکی ممکن است فقط از رمزگشایی ویدیو و/یا شتاب رمزگذاری ویدیو پشتیبانی کنند. بنابراین، Vulkan Video صف های رمزگشایی و رمزگذاری ویدیو را برای پشتیبانی از این عملیات ویدیویی اضافه می کند.
علاوه بر این، زمینه کدک های ویدیویی به طور مداوم در حال پیشرفت است. ابزارهای رمزگذاری ویدیوی پیشرفتهتر و مخصوص دامنه، فشردهسازی و فشردهسازی ویدیو را آسانتر میکنند و منجر به کدکها و پسوندهای کدک جدید میشوند. بنابراین، Vulkan Video طوری طراحی شده است که به اندازه کافی انعطاف پذیر باشد تا بتواند طیف گسترده ای از کدک های موجود و آینده را پشتیبانی کند. این کار را با گنجاندن افزونههای «هستهای» جهانی که باید برای همه کدکها مفید باشد و پسوندهای خاص کدک که فقط برای یک نوع کدک مفید هستند، انجام میدهد. شکل 2 افزونه های Vulkan Video را به همراه وضعیت و روابط آنها نشان می دهد.
این نسخه از Vulkan Video پسوندهای زیر را نهایی می کند:
- VK_KHR_video_queue: APIهای رایج برای همه عملیات رمزگذاری ویدیو.
- VK_KHR_video_decode_queue: APIهای رایج برای همه عملیات رمزگشایی ویدیو.
- VK_KHR_video_decode_h264: قابلیت ها و پارامترهای خاص رمزگشایی H.264 (در این نسخه نهایی از EXT به KHR ارتقا یافته است).
- VK_KHR_video_decode_h265: قابلیت ها و پارامترهای ویژه رمزگشایی H.265 (در این نسخه نهایی از EXT به KHR ارتقا یافته است).
در مجموع، برنامههای افزودنی بالا به افشای شتاب رمزگشایی ویدیوی H.264 و H.265 از طریق Vulkan کمک میکنند.
برنامههای افزودنی مرتبط با رمزگذاری زیر به صورت آزمایشی باقی ماندهاند و انتظار میرود در سال 2023 با برنامههای افزودنی جدید برای رمزگشایی VP9 و عملیات رمزگشایی/رمزگذاری AV1 نهایی شوند:
- VK_KHR_video_encode_queue: APIهای رایج برای همه عملیات رمزگذاری ویدیو.
- VK_EXT_video_encode_h264: قابلیت ها و پارامترهای خاص کدگذاری H.264.
- VK_EXT_video_encode_h265: قابلیت ها و پارامترهای خاص کدگذاری H.265.
برای مثال، یک پیادهسازی Vulkan Video که فقط از رمزگشایی H.264 پشتیبانی میکند، فقط پشتیبانی از برنامههای افزودنی VK_KHR_video_queue، VK_KHR_video_decode_queue، و VK_KHR_video_decode_h264 را نشان میدهد، و یک برنامه کاربردی از هر سه پسوند با هم برای انجام عملیات رمزگشایی دستگاه H.2.4 با هم استفاده میکند.
API استاندارد vkGetPhysicalDeviceQueueFamilyProperties2 می تواند برای تعیین پشتیبانی از عملیات کدک، مانند رمزگشایی H.264، با زنجیره VkVideoQueueFamilyPropertiesKHR برای بازیابی VkVideoCodecOperationFlagsKHR استفاده شود.
برای کسب اطلاعات بیشتر، به این صفحه مراجعه کنید.