S3 Texture Compression
S3 بناوٹ کمپریشن (S3TC) (بعض اوقات DXTn، DXTC، یا BCn بھی کہا جاتا ہے) متعلقہ نقصان دہ ساخت کمپریشن الگورتھم کا ایک گروپ ہے جو اصل میں Iourcha et al نے تیار کیا تھا۔ S3 گرافکس لمیٹڈ کا ان کے سیویج 3D کمپیوٹر گرافکس ایکسلریٹر میں استعمال کے لیے۔ کمپریشن کا طریقہ حیرت انگیز طور پر پہلے شائع ہونے والے کلر سیل کمپریشن سے ملتا جلتا ہے، جو بدلے میں 1970 کی دہائی کے آخر میں شائع ہونے والے بلاک ٹرنکیشن کوڈنگ کی موافقت ہے۔ کچھ امیج کمپریشن الگورتھم کے برعکس (جیسے۔ جے پی ای جی)، ایس 3 ٹی سی کا فکسڈ ریٹ ڈیٹا کمپریشن سنگل میموری رسائی کے ساتھ مل کر (سی ایف۔ کلر سیل کمپریشن اور کچھ وی کیو پر مبنی اسکیموں) نے اسے ہارڈ ویئر سے تیز 3 ڈی کمپیوٹر گرافکس میں بناوٹ کو کمپریس کرنے میں استعمال کے لیے اچھی طرح سے موزوں بنا دیا۔ اس کے بعد مائیکروسافٹ کے ڈائریکٹ ایکس 6.0 اور اوپن جی ایل 1.3 (جی ایل _ ای ایکس ٹی _ ٹیکسٹچر _ کمپریشن _ ایس 3 ٹی سی ایکسٹینشن کے ذریعے) میں اس کی شمولیت ہارڈ ویئر اور سافٹ ویئر بنانے والوں میں ٹیکنالوجی کو بڑے پیمانے پر اپنانے کا باعث بنی۔ اگرچہ S3 گرافکس اب گرافکس ایکسلریٹر مارکیٹ میں حریف نہیں ہے، لیکن اکتوبر 2017 تک S3TC ٹیکنالوجی کے استعمال کے لیے لائسنس فیس عائد اور جمع کی گئی ہے، مثال کے طور پر گیم کنسولز اور گرافکس کارڈز میں۔ ایس 3 ٹی سی کے وسیع استعمال کی وجہ سے اوپن جی ایل ڈرائیوروں کے لیے اس کی حمایت کرنے کی ڈی فیکٹو ضرورت پیدا ہو گئی ہے، لیکن ایس 3 ٹی سی کی پیٹنٹ سے منسلک حیثیت نے اوپن سورس کے نفاذ میں ایک بڑی رکاوٹ پیش کی، جبکہ نفاذ کے نقطہ نظر جو پیٹنٹ شدہ حصوں سے بچنے کی کوشش کرتے تھے موجود تھے۔ پیٹنٹ کچھ (مثال کے طور پر ایس 3 ٹیچر کمپریشن پر متعدد یو ایس پی ٹی او پیٹنٹ کے یو ایس 5956431 اے) کی میعاد 2 اکتوبر 2017 کو ختم ہوگئی۔ کم از کم ایک تسلسل پیٹنٹ، یو ایس 6,775,417، تاہم 165 دن کی توسیع تھی۔ یہ تسلسل پیٹنٹ 16 مارچ 2018 کو ختم ہو گیا۔ S3TC الگورتھم کے پانچ تغیرات ہیں (جن کا نام DXT1 سے DXT5 رکھا گیا ہے، جو مائیکروسافٹ کی طرف سے ہر فارمیٹ کے لیے تفویض کردہ فور سی سی کوڈ کا حوالہ دیتے ہیں)، ہر ایک کو مخصوص قسم کے تصویری ڈیٹا کے لیے ڈیزائن کیا گیا ہے۔ تمام پکسلز کے 4 × 4 بلاک کو 64 بٹ یا 128 بٹ مقدار میں تبدیل کرتے ہیں، جس کے نتیجے میں 24 بٹ آر جی بی ان پٹ ڈیٹا کے ساتھ 6:1 کا کمپریشن تناسب یا 32 بٹ آر جی بی اے ان پٹ ڈیٹا کے ساتھ 4:1 ہوتا ہے۔ S3TC ایک نقصان دہ کمپریشن الگورتھم ہے، جس کے نتیجے میں تصویر کے معیار میں کمی واقع ہوتی ہے، ایک ایسا اثر جو میموری کی ضروریات کو برقرار رکھتے ہوئے ساخت کی قراردادوں کو بڑھانے کی صلاحیت سے کم ہوتا ہے۔ ہاتھ سے تیار کردہ کارٹون جیسی تصاویر اچھی طرح سے سکڑتی نہیں ہیں، اور نہ ہی عام نقشے کا ڈیٹا، جو دونوں عام طور پر نمونے تیار کرتے ہیں۔ اے ٹی آئی کا 3 ڈی سی کمپریشن الگورتھم ڈی ایکس ٹی 5 کی ایک ترمیم ہے جو عام نقشوں کے حوالے سے ایس 3 ٹی سی کی کوتاہیوں پر قابو پانے کے لیے ڈیزائن کیا گیا ہے۔ آئی ڈی سافٹ ویئر نے ڈوم 3 میں نارمل میپ کمپریشن کے مسائل کے ارد گرد کام کیا جس میں ریڈ جزو کو کمپریشن سے پہلے الفا چینل میں منتقل کیا گیا اور پکسل شیڈر میں انجام دینے کے دوران اسے واپس منتقل کیا گیا۔ بہت سے جدید امیج کمپریشن الگورتھم کی طرح، S3TC صرف امیجز کو ڈمپریس کرنے کے لیے استعمال ہونے والے طریقہ کار کی وضاحت کرتا ہے، جس سے عمل درآمد کرنے والوں کو اپنی مخصوص ضروریات کے مطابق کمپریشن الگورتھم ڈیزائن کرنے کی اجازت ملتی ہے، حالانکہ پیٹنٹ اب بھی کمپریشن الگورتھم کا احاطہ کرتا ہے۔ این ویڈیا جی فورس 256 سے لے کر جی فورس 4 کارڈز نے بھی ڈی ایکس ٹی 1 بناوٹ پیش کرنے کے لیے 16 بٹ انٹرپولیشن کا استعمال کیا، جس کے نتیجے میں رنگین میلان کے ساتھ بناوٹ کو کھولتے وقت بینڈنگ ہوتی ہے۔ ایک بار پھر، اس نے ساخت کے دباؤ کا ایک ناموافق تاثر پیدا کیا، جس کا تعلق خود کوڈیک کے بنیادی اصولوں سے نہیں تھا۔ DXT1 DXT1 (جسے بلاک کمپریشن 1 یا BC1 بھی کہا جاتا ہے) S3TC کا سب سے چھوٹا تغیر ہے، جو 16 ان پٹ پکسلز کو 64 بٹس آؤٹ پٹ میں محفوظ کرتا ہے، جس میں دو 16 بٹ RGB 5:6:5 رنگین اقدار اور 4 × 4 دو بٹ لک اپ ٹیبل شامل ہیں۔ اگر (ان رنگوں کا موازنہ دو 16 بٹ غیر دستخط شدہ نمبروں کے طور پر کرکے کریں)، تو دو دوسرے رنگوں کا حساب لگایا جاتا ہے، جیسے کہ ہر جزو کے لیے، اور۔ یہ موڈ اصل ایپل ویڈیو کوڈیک کے موڈ 0xC0 کی طرح کام کرتا ہے۔ بصورت دیگر، اگر، تب اور شفاف سیاہ ہے جو کہ پہلے سے ضرب شدہ الفا فارمیٹ سے مطابقت رکھتا ہے۔ یہ رنگ بعض اوقات شفاف علاقے کے ارد گرد سیاہ بارڈر کا سبب بنتا ہے جب لکیری ٹیکسٹچر فلٹرنگ اور الفا ٹیسٹ کا استعمال کیا جاتا ہے، کیونکہ غیر واضح ٹیکسل اور پڑوسی سیاہ شفاف ٹیکسل کے رنگ کے درمیان رنگوں کو انٹرپولیٹ کیا جاتا ہے۔ اس کے بعد ہر پکسل کے لیے رنگ کی قیمت کا تعین کرنے کے لیے لک اپ ٹیبل سے مشورہ کیا جاتا ہے، جس کی قیمت 0 کے مطابق اور 3 کی قیمت کے مطابق ہوتی ہے۔ DXT2 اور DXT3 DXT2 اور DXT3 (اجتماعی طور پر بلاک کمپریشن 2 یا BC2 کے نام سے بھی جانا جاتا ہے) 16 ان پٹ پکسلز (4x4 پکسل بلاک کے مطابق) کو 128 بٹس آؤٹ پٹ میں تبدیل کرتا ہے، جس میں 64 بٹس الفا چینل ڈیٹا (ہر پکسل کے لیے 4 بٹس) کے بعد 64 بٹس رنگین ڈیٹا ہوتے ہیں، جو DXT1 کی طرح ہی انکوڈ ہوتے ہیں (اس رعایت کے ساتھ کہ DXT1 الگورتھم کا 4 رنگ ورژن ہمیشہ یہ فیصلہ کرنے کے بجائے استعمال ہوتا ہے کہ کون سا ورژن اور کی متعلقہ اقدار کی بنیاد پر استعمال کرنا ہے)۔ DXT2 میں، رنگین اعداد و شمار کی تشریح الفا کے ذریعہ پیشگی ضرب کے طور پر کی جاتی ہے، DXT3 میں اس کی تشریح الفا کے ذریعہ پیشگی ضرب نہ ہونے کے طور پر کی جاتی ہے۔ عام طور پر DXT2/3 شفاف اور غیر شفاف علاقوں کے درمیان تیز الفا منتقلی والی تصاویر کے لیے اچھی طرح سے موزوں ہوتے ہیں۔ DXT4 اور DXT5 DXT4 اور DXT5 (اجتماعی طور پر بلاک کمپریشن 3 یا BC3 کے نام سے بھی جانا جاتا ہے) 16 ان پٹ پکسلز کو آؤٹ پٹ کے 128 بٹس میں تبدیل کرتا ہے، جس میں الفا چینل ڈیٹا کے 64 بٹس (دو 8 بٹ الفا ویلیوز اور ایک 4 × 4 3 بٹ لک اپ ٹیبل) کے بعد 64 بٹس رنگین ڈیٹا (DXT1 کی طرح انکوڈ شدہ) ہوتے ہیں۔ اگر، تو پھر چھ دیگر الفا اقدار کا حساب لگایا جاتا ہے، جیسے کہ،،،، اور۔ بصورت دیگر، اگر، چار دیگر الفا اقدار کا حساب اس طرح لگایا جاتا ہے کہ،، اور اور کے ساتھ۔ اس کے بعد ہر پکسل کے لیے الفا ویلیو کا تعین کرنے کے لیے لک اپ ٹیبل سے مشورہ کیا جاتا ہے، جس کی ویلیو 0 سے مطابقت رکھتی ہے اور ویلیو 7 سے مطابقت رکھتی ہے۔ DXT4 کا رنگین ڈیٹا الفا سے پہلے مل جاتا ہے، جبکہ DXT5 کا نہیں ہے۔ چونکہ DXT4/5 ایک انٹرپولیٹڈ الفا اسکیم استعمال کرتا ہے، اس لیے وہ عام طور پر DXT2/3 کے مقابلے الفا (شفافیت) گریڈینٹس کے لیے اعلی نتائج پیدا کرتے ہیں۔ مزید متغیرات BC4 اور BC5 BC4 اور BC5 (بلاک کمپریشن 4 اور 5) کو ڈائریکٹ 3D 10 میں شامل کیا گیا ہے۔ وہ DXT4/5 (BC3) میں پائے جانے والے الفا چینل انکوڈنگ کو دوبارہ استعمال کرتے ہیں۔ بی سی 4 16 ان پٹ سنگل چینل اسٹور کرتا ہے (مثال کے طور پر گرے اسکیل) پکسلز آؤٹ پٹ کے 64 بٹس میں، تقریبا اسی طرح انکوڈ کیے گئے جیسے BC3 الفا۔ توسیع شدہ پیلیٹ اعلی معیار فراہم کرتا ہے۔ بی سی 5 اسٹورز 16 ان پٹ ڈبل چینل (مثال کے طور پر۔ ٹینجینٹ اسپیس نارمل میپ) پکسلز آؤٹ پٹ کے 128 بٹس میں، جو BC4 کی طرح انکوڈ کیے گئے دو حصوں پر مشتمل ہوتے ہیں۔ BC6H اور BC7 BC6H (بعض اوقات BC6) اور BC7 (بلاک کمپریشن 6H اور 7) کو ڈائریکٹ 3D 11 میں شامل کیا جاتا ہے۔ بی سی 6 ایچ 16 ان پٹ آر جی بی ایچ ڈی آر (فلوٹ 16) پکسلز کو 128 بٹس آؤٹ پٹ میں انکوڈ کرتا ہے۔ یہ بنیادی طور پر فلوٹ 16 کو 16 سائن-میگنیٹیوڈ انٹیجر ویلیو کے طور پر مانتا ہے اور اس طرح کے انٹیجرز کو لکیری طور پر انٹرپولیٹ کرتا ہے۔ یہ بلاکس کے لیے سائن تبدیلیوں کے بغیر اچھی طرح سے کام کرتا ہے۔ کل 14 طریقوں کی وضاحت کی گئی ہے، حالانکہ زیادہ تر کم سے کم مختلف ہیں: صرف دو پیشن گوئی کے طریقے واقعی استعمال کیے جاتے ہیں۔ BC7 16 ان پٹ RGB8/RGBA8 پکسلز کو 128 بٹس آؤٹ پٹ میں انکوڈ کرتا ہے۔ اسے بہت زیادہ بہتر شدہ BC3 کے طور پر سمجھا جا سکتا ہے۔ BC6H اور BC7 میں انکوڈنگ طریقوں کے انتخاب کے ساتھ بہت زیادہ پیچیدہ الگورتھم ہے۔ اس کے نتیجے میں معیار بہت بہتر ہے۔ ان دونوں طریقوں کو بھی قبول شدہ انحراف کی حدود کے ساتھ بہت زیادہ واضح طور پر بیان کیا گیا ہے۔ پہلے کے بی سی این موڈ جی پی یو وینڈرز کے درمیان قدرے مختلف طریقے سے ڈی کوڈ کرتے تھے۔ ایس 3 ٹی سی فارمیٹ کا موازنہ ڈیٹا پری کنڈیشننگ بی سی این بناوٹ کو آن ڈسک اسٹوریج اور تقسیم (ٹیکسٹچر سپر کمپریشن) کے لیے مزید کمپریس کیا جا سکتا ہے۔ ایک ایپلیکیشن اس اضافی پرت کو ڈمپریس کرے گی اور بی سی این ڈیٹا کو ہمیشہ کی طرح جی پی یو کو بھیجے گی۔ بی سی این کو اوڈل ٹیچر کے ساتھ جوڑا جا سکتا ہے، جو ایک نقصان دہ پری پروسیسر ہے جو ان پٹ کی ساخت میں ترمیم کرتا ہے تاکہ بی سی این آؤٹ پٹ کو ایل زیڈ 77 کمپریسر (ریٹ-ڈسٹورشن آپٹیمائزیشن) کے ذریعے زیادہ آسانی سے کمپریس کیا جا سکے۔ بی سی 7 خاص طور پر "بی سی 7 پریپ" کا بھی استعمال کر سکتا ہے، جو ساخت کو زیادہ کمپریسبل شکل میں دوبارہ انکوڈ کرنے کے لیے ایک لاس لیس پاس ہے (ڈمپریشن پر اس کے الٹا کی ضرورت ہوتی ہے)۔ کرنٛچ ایک اور ٹول ہے جو آر ڈی او انجام دیتا ہے اور اختیاری طور پر مزید دوبارہ انکوڈنگ کرتا ہے۔ 2021 میں، مائیکروسافٹ نے خاص طور پر بی سی این-کمپریسڈ بناوٹ کے لیے ایک "بی سی پیک" کمپریشن الگورتھم تیار کیا۔ ایکس بکس سیریز ایکس اور ایس میں بی سی پیک اسٹریمز کو ڈیکمپریس کرنے کے لیے ہارڈ ویئر سپورٹ ہے۔ ایس 2 ٹی سی، پیٹنٹ لیس ورک اراؤنڈ ایف ایکس ٹی 1 ڈائریکٹ ڈرا سرفیس پی وی آر ٹی سی اڈاپٹو اسکیل ایبل ٹیکسٹور کمپریشن (اے ایس ٹی سی) ایرکسن ٹیکسٹور کمپریشن (ای ٹی سی 1 اور ای ٹی سی 2) کلر سیل کمپریشن حوالہ جات بیرونی لنکس یو ایس پیٹنٹ اور ٹریڈ مارک آفس، پیٹنٹ فل ٹیکسٹ اور امیج ڈیٹا بیس، نتیجہ یو ایس 5956431 کے لیے یو ایس پی ٹی او پیٹنٹ اسائنمنٹ سرچ یو ایس 5956431 اے 3 ڈی کمپیوٹر گرافکس لاسسی کمپریشن الگورتھم ٹیکسٹور کمپریشن