منصوبے کے بارے میں

libplacebo ایک اسٹینڈ اکیلے لائبریری ہے جو GPU-accelerated ویڈیو پروسیسنگ اور رینڈرنگ الگورتھم پر مشتمل ہے، جو اصل میں mpv سے ماخوذ ہے۔ یہ GPU پروگرامنگ، رنگ اسپیس، سب سیمپلنگ، اور امیج میٹا ڈیٹا کی تفصیلات کو تہہ دار APIs کے پیچھے چھپانے کے لیے ڈیزائن کیا گیا ہے، جبکہ بڑی ایپلیکیشنز کے لیے کم سطحی کنٹرول کی اجازت دیتا ہے۔ اس کی رینڈرنگ خصوصیات میں Jinc جیسے پولر فلٹرز کے ساتھ بہتر اپ اسکیلنگ اور ڈاؤن اسکیلنگ، اینٹی ایلائسنگ، اینٹی رنگنگ، اور گاما درست اسکیلنگ شامل ہیں۔ یہ ریئل ٹائم سین ہسٹوگرام پیمائش، سین تبدیلی کا پتہ لگانے، ایکسپوژر کنٹرول، ادراکی گامٹ اسٹریچنگ، اور کنٹراسٹ بحالی کے ساتھ متحرک HDR ٹون میپنگ فراہم کرتا ہے۔ Dolby Vision سپورٹ میں پروفائل 5 کو HDR/PQ یا SDR میں تبدیل کرنا، سائیڈ ڈیٹا پڑھنا، اور متعلقہ انحصار کے ساتھ تعمیر ہونے پر ری شیپنگ شامل ہے۔ رنگ مینجمنٹ انجن نرم گامٹ میپنگ، ICC پروفائلز، ITU-R BT.1886 ایمولیشن، بلیک پوائنٹ معاوضہ، اور کسٹم .cube 3DLUTs کو سپورٹ کرتا ہے۔ ایک کسٹم شیدر سسٹم GLSL یا mpv .hook شیدرز کو قبول کر سکتا ہے، جس سے RAVU، FSRCNNX، اور Anime4K جیسے صارف شیدرز کے استعمال کی اجازت ملتی ہے۔ لائبریری AV1 اور H.274 فلم گرین سنتھیسس، ڈیبینڈنگ، YADIF طرز کی ڈی انٹرلیسنگ، اور ایرر ڈفیوژن سمیت گاما درست ڈیٹرنگ بھی فراہم کرتی ہے۔ معاون گرافکس بیک اینڈز میں Vulkan 1.2، بشمول MoltenVK، OpenGL GLSL 130 یا نئے کے ساتھ، OpenGL ES 3.0 یا نئے، اور Direct3D 11 فیچر لیول 9_1 یا نئے شامل ہیں۔ ایک ڈمی CPU-only انٹرفیس بھی برآمد کیا گیا ہے۔ اعلیٰ سطحی معاونین میں pl_render_image اور AVFrame پر مبنی میڈیا فریم ورک کے ساتھ انٹرآپریشن شامل ہیں۔ عوامی API کو درجوں میں منظم کیا گیا ہے۔ درجہ 0 لاگنگ، کیشنگ، رنگ اسپیس ریاضی، فلٹرز، ٹون میپنگ، گامٹ میپنگ، اور ڈیٹرنگ معاونین پیش کرتا ہے۔ درجہ 1 GPU اور سویپ چین تجریدات کے ساتھ ساتھ Vulkan، OpenGL، D3D11، اور ڈمی نفاذ فراہم کرتا ہے۔ درجہ 2 GLSL جنریشن اور شیدر روٹینز کو رنگ اسپیس تبدیلی، کسٹم شیدرز، ڈی انٹرلیسنگ، ڈیٹرنگ، فلم گرین، ICC پروفائلز، LUTs، سیمپلنگ، ڈیبینڈنگ، اور اسکیلنگ کے لیے ظاہر کرتا ہے۔ درجہ 3 مکمل شیدرز کو ڈسپیچ اور کیش کرتا ہے، جبکہ درجہ 4 اعلیٰ سطحی رینڈرر، آپشنز فریم ورک، فریم قطار، ٹیکسچر اپ لوڈ معاونین، Dav1dPicture انٹرآپ، اور FFmpeg libav انٹرآپ فراہم کرتا ہے۔ پروجیکٹ میں ایک plplay ڈیمو پروگرام اور اس کے ڈیمو اور ٹیسٹ میں مثالیں شامل ہیں۔ اسے VLC نے اختیاری Vulkan پر مبنی ویڈیو آؤٹ پٹ راستے کے طور پر اور FFmpeg نے Vulkan پر مبنی ویڈیو فلٹر کے طور پر اپنایا ہے۔ libplacebo Meson بلڈ سسٹم اور Ninja استعمال کرتا ہے۔ ایک تکراری کلون بنڈل انحصار کو کھینچتا ہے، حالانکہ زیادہ تر انحصار اختیاری ہیں۔ مفید اختیاری اجزاء میں glslang یا shaderc، lcms2، libdovi، کوڈ جنریشن کے لیے Python Jinja2 کے ساتھ Vulkan سپورٹ، glad2 کے ذریعے OpenGL سپورٹ، اور xxhash شامل ہیں۔ ٹیسٹ اور بینچ مارک اہداف قابل ترتیب Meson آپشنز ہیں۔ لائبریری LGPLv2.1 یا اس سے بعد کے تحت تقسیم کی گئی ہے، README میں نوٹ کیا گیا ہے کہ مخصوص استعمال کے لیے زیادہ اجازت دینے والا BSD2 لائسنس سمجھا جا سکتا ہے۔