اینتل پروژه oidn 2.0 (Open Image Denoise) را منتشر کرده است که مجموعه ای از فیلترها را برای حذف نویز از تصاویر تهیه شده با استفاده از سیستم های رندر ردیابی پرتو توسعه می دهد. Open Image Denoise به عنوان بخشی از یک پروژه بزرگتر، OneAPI Rendering Toolkit، با هدف توسعه ابزارهای تجسم نرم افزاری برای محاسبات علمی (SDVis (تجسم تعریف شده نرم افزار)، از جمله کتابخانه ردیابی پرتو Embree، سیستم رندر واقعی نوری GLuRay، OSPRay توزیع شده در حال توسعه است. پلت فرم ردیابی پرتو و سیستم شطرنجی نرم افزار OpenSWR این کد به زبان C++ نوشته شده و تحت مجوز آپاچی 2.0 منتشر شده است.
هدف این پروژه ارائه ویژگیهای حذف نویز با کیفیت بالا، کارآمد و آسان است که میتوان از آنها برای بهبود کیفیت نتایج ردیابی پرتو استفاده کرد. فیلترهای پیشنهادی، بر اساس نتیجه یک چرخه ردیابی پرتوی کوتاه شده، امکان به دست آوردن سطح نهایی کیفیت قابل مقایسه با نتیجه یک فرآیند گرانتر و زمانبر رندر دقیق را میدهند.
Open Image Denoise نویزهای تصادفی مانند ردیابی اشعه مونت کارلو RT (MCRT) را حذف می کند. برای دستیابی به رندرینگ با کیفیت بالا در چنین الگوریتم هایی، باید تعداد بسیار زیادی از پرتوها را ردیابی کرد، در غیر این صورت مصنوعات قابل توجهی به شکل نویز تصادفی در تصویر حاصل ظاهر می شوند.
استفاده از Open Image Denoise به شما این امکان را می دهد که تعداد محاسبات لازم را هنگام محاسبه هر پیکسل با چندین مرتبه قدر کاهش دهید. در نتیجه، میتوانید در ابتدا یک تصویر پر سر و صدا بسیار سریعتر تولید کنید، اما سپس با استفاده از الگوریتمهای کاهش سریع نویز آن را به کیفیت قابل قبولی برسانید. در صورت داشتن تجهیزات مناسب، ابزارهای پیشنهادی حتی می توانند برای ردیابی پرتوهای تعاملی با حذف نویز در حین پرواز استفاده شوند.
این کتابخانه را میتوان در کلاسهای مختلف دستگاهها، از لپتاپ و رایانههای شخصی گرفته تا گرهها در کلاسترها استفاده کرد. این پیادهسازی برای کلاسهای مختلف پردازندههای 64 بیتی اینتل با پشتیبانی از دستورالعملهای SSE4، AVX2، AVX-512 و XMX (Xe Matrix Extensions)، تراشههای سیلیکون اپل و سیستمهایی با پردازندههای گرافیکی Intel Xe (سری Arc، Flex و Max) بهینه شده است. NVIDIA (مبتنی بر معماریهای Volta، Turing، Ampere، Ada Lovelace و Hopper) و AMD (بر اساس معماریهای RDNA2 (Navi 21) و RDNA3 (Navi 3x)). پشتیبانی از SSE4.1 به عنوان حداقل نیاز بیان شده است.
تغییرات عمده در نسخه Open Image Denoise 2.0:
- پشتیبانی از تسریع عملیات کاهش نویز با استفاده از GPU. پشتیبانی از بارگذاری محاسبات در سمت GPU با استفاده از سیستمهای SYCL، CUDA و HIP اجرا شده است که میتواند با پردازندههای گرافیکی مبتنی بر Intel Xe، AMD RDNA2، AMD RDNA3، NVIDIA Volta، NVIDIA Turing، NVIDIA Ampere، NVIDIA Ada Lovelace و معماری NVIDIA Hopper.
- یک API مدیریت بافر جدید اضافه شده است که به شما امکان می دهد نوع ذخیره سازی را انتخاب کنید، داده ها را از هاست کپی کنید و بافرهای خارجی را از APIهای گرافیکی مانند Vulkan و Direct3D 12 وارد کنید.
- پشتیبانی از حالت اجرای ناهمزمان (عملکردهای oidnExecuteFilterAsync و oidnSyncDevice) اضافه شده است.
- یک API برای ارسال درخواست به دستگاه های فیزیکی موجود در سیستم اضافه شده است.
- تابع oidnNewDeviceByID برای ایجاد یک دستگاه جدید بر اساس شناسه فیزیکی دستگاه، مانند آدرس UUID یا PCI اضافه شده است.
- توابع اضافه شده برای قابلیت حمل با SYCL، CUDA و HIP.
- اضافه شدن پارامترهای جدید بررسی دستگاه (systemMemorySupported، managerMemorySupported، externalMemoryTypes).
- یک پارامتر برای تنظیم سطح کیفی فیلترها اضافه شده است.
منبع: opennet.ru