3Dc
خوارزمية 3Dc ( FourCC : ATI2)، والمعروفة أيضًا باسم DXN أو BC5 أو Block Compression 5، هي خوارزمية ضغط بيانات مع فقدان للبيانات، مُصممة خصيصًا لخرائط النورمال ، وقد ابتكرتها ونفذتها شركة ATI لأول مرة. تعتمد هذه الخوارزمية على خوارزمية DXT5 السابقة ، وهي معيار مفتوح المصدر . تُنفذ شركتا ATI و Nvidia خوارزمية 3Dc حاليًا .
التطبيق المستهدف
يُعدّ تطبيق رسم الخرائط العادية (Normal Mapping)، وهو التطبيق المستهدف، امتدادًا لرسم الخرائط النتوئية (Bump Mapping) الذي يُحاكي الإضاءة على الأسطح الهندسية من خلال قراءة متجهات السطح العادية من شبكة مستطيلة تُشبه خريطة النسيج ، مما يُعطي النماذج البسيطة انطباعًا بزيادة التعقيد. مع ذلك، تُؤدي هذه القناة الإضافية إلى زيادة الحمل على عرض نطاق ذاكرة نظام الرسومات . كانت خوارزميات الضغط المُفقِد للبيانات الموجودة مسبقًا والمُطبقة على أجهزة ثلاثية الأبعاد للمستهلكين تفتقر إلى الدقة اللازمة لإعادة إنتاج خرائط عادية دون ظهور تشوهات مرئية مفرطة، مما يُبرر تطوير تقنية 3Dc.
الخوارزمية
المتجهات العمودية على السطح هي متجهات ثلاثية الأبعاد ذات طول وحدة واحدة. وبسبب قيد الطول، لا يلزم تخزين سوى عنصرين من أي متجه عمودي. وبالتالي، فإن المدخلات عبارة عن مصفوفة من القيم ثنائية الأبعاد.
تُجرى عملية الضغط على شكل كتل بحجم 4×4. في كل كتلة، يُضغط كل مكون من مكونات كل قيمة على حدة. ولكل كتلة، تتوفر لكل مكون من المكونات مجموعة من 8 قيم للاختيار من بينها. تُنشأ هذه المجموعات من قيمتين تمثلان بداية ونهاية السطر، بينما تُنشأ القيم الست الأخرى كتركيبات خطية من قيمتي البداية والنهاية.
يتم ضغط البيانات تلقائيًا عن طريق إيجاد أدنى وأعلى قيم البكسلات الستة عشر المراد ضغطها، وتخزين كل منهما كقيمة من 8 بت. ثم تُخزن العناصر الفردية داخل كتلة 4×4 بثلاث بتات لكل منها، تمثل موقعها على مقياس خطي من ثماني خطوات من أدنى قيمة إلى أعلى قيمة. ويتم اختيار قيمة كل بكسل (مؤشر اللوحة) باختيار عنصر اللوحة الأقرب إلى القيم الأصلية.
يبلغ إجمالي سعة التخزين 128 بت لكل كتلة 4x4 بعد احتساب مكونات المصدر. في نظام غير مضغوط بدقة 8 بت مماثلة، تتكون بيانات المصدر من 32 قيمة 8 بت لنفس المساحة، وتشغل 256 بت. وبالتالي، تُنتج الخوارزمية نسبة ضغط 2:1 .
يُذكر أحيانًا أن نسبة الضغط تصل إلى "4:1" نظرًا لشيوع استخدام دقة 16 بت لبيانات الإدخال بدلًا من 8 بت. ينتج عن ذلك مخرج مضغوط بحجم ربع حجم الإدخال، ولكنه لا يتمتع بنفس الدقة.
3Dc+
يُمكن لتقنية 3Dc+ ( FourCC : ATI1) (المعروفة أيضًا باسم BC4 أو Block Compression 4 ) ضغط الخامات، مثل خرائط الإضاءة، وخرائط الظلال، وخامات HDR، وخصائص المواد. توفر 3Dc+ نسبة ضغط 2:1 مع خامات مكونة من عنصر واحد ( DXT5 alpha) ذات 8 بت، ونسبة ضغط 4:1 مع خرائط التضاريس والخامات المكونة من عنصرين من 8 بت.
مراجع
- ضغط النسيج
- تنسيقات الملفات المفتوحة
- خوارزميات الضغط مع فقدان البيانات
- برنامج رسومات ثلاثية الأبعاد
