گوگل ۽ بائنوميل اوپن سورس بيس يونيورسل ٽيڪسچر کمپريشن سسٽم

گوگل ۽ بائنوميل کوليو ويو ذريعو متن يونيورسل بنياد, موثر ٽيڪسچر ڪمپريشن لاءِ ڪوڊيڪ ۽ لاڳاپيل يونيورسل ".basis" فائل فارميٽ تصوير ۽ وڊيو تي ٻڌل بناوتن کي ورهائڻ لاءِ. ريفرنس تي عملدرآمد ڪوڊ C++ ۾ لکيل آهي ۽ فراهم ڪيو ويو Apache 2.0 تحت لائسنس يافته.

بنياد يونيورسل اڳ ۾ مڪمل شايع ٿيل Draco 3D ڊيٽا کمپريشن سسٽم ۽ GPU لاء بناوت جي فراهمي سان مسئلو حل ڪرڻ جي ڪوشش ڪري ٿو. هينئر تائين، ڊولپرز کي گهٽ-سطح فارميٽس جي وچ ۾ چونڊڻ تائين محدود ڪيو ويو آهي جيڪي اعلي ڪارڪردگي حاصل ڪن ٿا پر GPU-مخصوص آهن ۽ تمام گهڻو ڊسڪ اسپيس وٺن ٿا، ۽ ٻيا فارميٽ جيڪي سائيز جي گھٽتائي حاصل ڪن ٿا پر ڪارڪردگي ۾ GPU بناوتن سان مقابلو نٿا ڪري سگهن.

بيسس يونيورسل فارميٽ توهان کي اجازت ڏئي ٿو ته مقامي GPU بناوت جي ڪارڪردگي حاصل ڪرڻ، پر اعلي سطحي کمپريشن مهيا ڪري ٿي.
بيس هڪ وچولي شڪل آهي جيڪا GPU ٽيڪسچرز جي تيز ٽرانسڪوڊنگ مهيا ڪري ٿي مختلف گهٽ-سطح فارميٽ لاءِ ٻنهي ڊيسڪ ٽاپ سسٽم ۽ موبائل ڊوائيسز تي استعمال ڪرڻ کان اڳ. في الحال سپورٽ آهن PVRTC1 (4bpp RGB)، BC7 (6 RGB موڊ)، BC1-5، ETC1، ۽ ETC2 فارميٽ. ASTC فارميٽ (RGB يا RGBA) ۽ BC4 لاءِ 5/7 RGBA موڊس ۽ 4bpp RGBA لاءِ PVRTC1 لاءِ مستقبل جي مدد جي توقع ڪئي وئي آهي.

گوگل ۽ بائنوميل اوپن سورس بيس يونيورسل ٽيڪسچر کمپريشن سسٽم

بنيادي شڪل ۾ بناوت 6-8 ڀيرا گهٽ وڊيو ميموري وٺن ٿا ۽ تقريباً اڌ جيترو ڊيٽا جي منتقلي جي ضرورت آهي جيترو عام ٽيڪسچرز جي بنياد تي JPEG فارميٽ تي ۽ 10-25% گهٽ ٽيڪسچرز کان RDO موڊ ۾. مثال طور، 891 KB جي JPEG تصويري سائيز ۽ 1 MB جي ETC1 بناوت سان، بيس فارميٽ ۾ ڊيٽا جي سائيز 469 KB اعلي معيار واري موڊ ۾ آهي. جڏهن وڊيو ميموري ۾ بناوت رکي ٿي، ٽيسٽ ۾ استعمال ٿيندڙ JPEG ۽ PNG ٽيڪسچرز 16 MB ميموري استعمال ڪن ٿا، جڏهن ته بناوت
BC2، PVRTC1 ۽ ETC1 ۾ ترجمي لاءِ 1 MB ميموري جي بنياد جي ضرورت آهي، ۽ BC4 ۾ ترجمي لاءِ 7 MB.

گوگل ۽ بائنوميل اوپن سورس بيس يونيورسل ٽيڪسچر کمپريشن سسٽم

بيسس يونيورسل تي موجوده ايپليڪيشنن کي منتقل ڪرڻ جو عمل بلڪل سادو آهي. اهو ڪافي آهي ته موجوده بناوتن يا تصويرن کي نئين شڪل ۾ ريڪوڊ ڪرڻ لاءِ پروجيڪٽ پاران مهيا ڪيل ”بيسو“ يوٽيلٽي کي استعمال ڪندي، گهربل معيار جي سطح کي چونڊيو. اڳيون، ايپليڪيشن ۾، رينڊرنگ ڪوڊ کان اڳ، توهان کي بنيادي طور تي شروع ڪرڻ جي ضرورت آهي ٽرانسڪوڊر، جيڪو موجوده GPU پاران سپورٽ ڪيل فارميٽ ۾ وچولي فارميٽ کي ترجمو ڪرڻ جو ذميوار آهي. ساڳئي وقت، تصويرن جي پوري پروسيسنگ زنجير ۾ ٺهيل رهنديون آهن، بشمول ڪمپريشن فارم ۾ GPU ۾ لوڊ ٿيڻ سميت. پوري تصوير کي اڳ ۾ ئي ٽرانڪوڊ ڪرڻ جي بدران، GPU چونڊيل تصوير جي صرف ضروري حصن کي ڊيڪوڊ ڪري ٿو.

اهو هڪ فائل ۾ هيٽروجنيئس ٽيڪسچر آريز (ڪيوب ميپس)، ووليومٽريڪ ٽيڪسچرز، ٽيڪسچر ايريز، ميپ ميپ ليولز، وڊيو سيڪيونس يا آربرٽريري ٽيڪسچر فريگمينٽس کي محفوظ ڪرڻ جي سپورٽ ڪري ٿو. مثال طور، اهو ممڪن آهي ته تصويرن جي هڪ سيريز کي هڪ فائل ۾ پيڪ ڪرڻ لاءِ ننڍيون وڊيوز ٺاهڻ لاءِ، يا سڀني تصويرن لاءِ هڪ عام پيلٽ استعمال ڪندي ڪيترن ئي بناوتن کي گڏ ڪرڻ ۽ عام تصويري ٽيمپليٽس کي نقل ڪرڻ ممڪن آهي. بيس يونيورسل انڪوڊر تي عمل درآمد OpenMP استعمال ڪندي گھڻن موضوعن واري انڪوڊنگ کي سپورٽ ڪري ٿو. ٽرانسڪوڊر في الحال صرف سنگل ٿريڊ موڊ ۾ ڪم ڪري ٿو.

وڌيڪ موجود آهي برائوزرز لاءِ بيس يونيورسل ڊيڪوڊر، WebAssembly فارميٽ ۾ پهچايو ويو، جيڪو WebGL تي ٻڌل ويب ايپليڪيشنن ۾ استعمال ڪري سگھجي ٿو. آخرڪار، گوگل سڀني وڏن برائوزرن ۾ بيسس يونيورسل کي سپورٽ ڪرڻ جو ارادو رکي ٿو ۽ ان کي ويب جي ايل لاء پورٽبل ٽيڪسچر فارميٽ ۽ مستقبل جي وضاحت جي طور تي فروغ ڏيڻ جو ارادو رکي ٿو. ويب پي پي يو، جيڪو تصوراتي طور Vulkan، Metal ۽ Direct3D 12 APIs سان ملندڙ جلندڙ آهي.

اهو نوٽ ڪيو ويو آهي ته وڊيو کي ان جي ايندڙ پروسيسنگ سان صرف GPU پاسي تي شامل ڪرڻ جي صلاحيت بيسس يونيورسل کي WebAssembly ۽ WebGL تي متحرڪ يوزر انٽرفيس ٺاهڻ لاءِ هڪ دلچسپ حل بڻائي ٿو، جيڪو هڪ ئي وقت گهٽ ۾ گهٽ CPU لوڊ سان سوين ننڍڙا وڊيوز ڏيکاري سگهي ٿو. جيستائين SIMD هدايتون WebAssembly ۾ روايتي ڪوڊيڪس سان استعمال ڪري سگھجن ٿيون، تيستائين ڪارڪردگيءَ جي ھن سطح تائين حاصل نه ٿي سگھي آھي، تنھنڪري بناوت تي ٻڌل وڊيو انھن علائقن ۾ استعمال ڪري سگھجن ٿيون جتي روايتي وڊيو لاڳو نه آھي. وڊيو لاءِ اضافي اصلاحن سان ڪوڊ في الحال اشاعت لاءِ تيار ڪيو پيو وڃي، بشمول استعمال ڪرڻ جي صلاحيت آئي فريم ۽ پي فريم موافقت واري پيڊنگ (CR) سپورٽ سان.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو