بت بلي
نقل كتلة البت (يكتب أيضًا BITBLT ، BIT BLT ، BitBLT ، Bit BLT ، Bit Blt وما إلى ذلك، وهو اختصار لنقل كتلة البت ) هو عملية بيانات شائعة الاستخدام في رسومات الحاسوب حيث يتم دمج عدة صور نقطية في صورة واحدة باستخدام دالة منطقية . [ 1 ]
تتضمن العملية صورتين نقطيتين على الأقل: "مصدر" (أو "صورة أمامية") و"وجهة" (أو "صورة خلفية")، وربما صورة ثالثة تُسمى غالبًا " القناع ". يمكن كتابة النتيجة إلى صورة نقطية رابعة، ولكنها غالبًا ما تحل محل الوجهة. تُدمج وحدات البكسل لكل صورة باستخدام عملية مسح ضوئي قابلة للتحديد برمجيًا، وهي صيغة منطقية ثنائية . أبسط عملية مسح ضوئي هي استبدال الوجهة بالمصدر. قد تتضمن عمليات أخرى عمليات AND و OR و XOR و NOT . [ 1 ] يمكن لشريحة الرسومات في جهاز كومودور أميغا (وغيرها) دمج ثلاث صور نقطية مصدرية باستخدام أي من الدوال المنطقية الـ 256 الممكنة ذات 3 مدخلات .
استبدلت برامج الرسومات الحديثة عمليات البت تقريبًا بعمليات رياضية أكثر عمومية تُستخدم لتأثيرات مثل دمج ألفا . والسبب في ذلك هو أن عمليات البت على شاشات العرض الملونة لا تُنتج عادةً نتائج تُحاكي التركيب الفيزيائي للأضواء أو الأحبار. لا تزال بعض البرامج تستخدم عملية XOR لرسم مستطيلات تمييز تفاعلية أو حدود مناطق؛ وعند تطبيق ذلك على الصور الملونة، تظهر الألوان غير المألوفة الناتجة بوضوح.
الأصول
يُشتق الاسم من روتين BitBLT الخاص بحاسوب Xerox Alto ، وهو اختصار لـ bit-boundary block transfer (نقل كتلة حدود البت ). قام كل من دان إنجلز ، ولاري تيسلر ، وبوب سبرول ، وديانا ميري ببرمجة هذه العملية في مركز أبحاث Xerox PARC في نوفمبر 1975 لنظام Smalltalk -72. لاحقًا، قام دان إنجلز بتنفيذ نسخة مُعاد تصميمها بلغة ميكروكود .
أدى تطوير طرق سريعة لعمليات نقل البيانات الثنائية المختلفة إلى دفع عجلة تطور شاشات الحاسوب من استخدام الرسومات النصية ( وضع النص ) إلى استخدام الرسومات النقطية (الخريطة النقطية) لكل شيء. غالبًا ما تحتوي الأجهزة التي تعتمد بشكل كبير على أداء الرسومات ثنائية الأبعاد (مثل أجهزة ألعاب الفيديو ) على دوائر إلكترونية خاصة تُسمى وحدة نقل البيانات الثنائية .
مثال على تطبيق النسخ المقنع
يُستخدم مزج الصور بشكل كلاسيكي لعرض صور متحركة شفافة على خلفية. في هذا المثال، تُستخدم صورة خلفية، وصورة متحركة، وقناع أحادي البت. ولأن القناع أحادي البت، فلا يُمكن تحقيق شفافية جزئية عبر مزج ألفا .
ستكون حلقة التكرار التي تفحص كل بت في القناع وتنسخ البكسل من الصورة فقط إذا تم تعيين القناع أبطأ بكثير من الأجهزة التي يمكنها تطبيق نفس العملية بالضبط على كل بكسل. بدلاً من ذلك، يمكن تنفيذ عملية نقل البيانات المقنعة باستخدام عمليتين عاديتين من عمليات BitBlit باستخدام عمليتي AND و OR النقطيتين.
| صورة الخلفية | صورة متحركة (يسار) وقناع (يمين) |
|---|---|
![]() |
يتم رسم الكائن الرسومي في مواضع مختلفة فوق الصورة لإنتاج هذا الشكل:
| النتيجة المرجوة |
|---|
![]() |
تقنية
عند إعداد الصورة المتحركة، تُعدّ الألوان بالغة الأهمية. تكون بكسلات القناع سوداء (0) في أي مكان يُراد عرض بكسل الصورة المتحركة المقابل له، وبيضاء (1) في أي مكان يُراد الحفاظ على الخلفية فيه. يجب أن تكون الصورة المتحركة سوداء (0) في أي مكان يُفترض أن تكون فيه شفافة، مع العلم أنه يُمكن استخدام اللون الأسود في المناطق غير الشفافة.
في عملية النسخ الأولى، يتم نسخ القناع على الخلفية باستخدام عامل الربط "AND" في عملية النسخ النقطي . ولأن أي قيمة يتم دمجها مع 0 تساوي 0، وأي قيمة يتم دمجها مع 1 لا تتغير، يتم إنشاء مناطق سوداء حيث ستظهر الصور المتحركة الفعلية، بينما تبقى بقية الخلفية كما هي.
| نتيجة أول عملية تفجير |
|---|
![]() |
في عملية النقل الثانية، يتم نقل الصورة المتحركة إلى الخلفية المُعدّلة حديثًا باستخدام عامل " أو" (OR) الخاص بعملية النقل النقطي . ولأن أي قيمة يتم دمجها مع الصفر (0) لا تتغير، فإن الخلفية تبقى كما هي، وتُملأ المناطق السوداء بصورة الصورة المتحركة الأصلية.
| النتيجة النهائية |
|---|
![]() |
من الممكن أيضاً تحقيق التأثير نفسه باستخدام صورة متحركة بخلفية بيضاء وقناع أبيض على أسود . في هذه الحالة، يتم تطبيق عملية OR على القناع أولاً، ثم على الصورة المتحركة باستخدام عملية AND.
مقارنة بين تقنية Blitting وتقنية الرسومات الحاسوبية
تُشبه تقنية Blitting تقنية رسم الصور النقطية باستخدام الأجهزة ، حيث يقوم كلا النظامين بإعادة إنتاج نمط، عادةً ما يكون مربعًا، في مواقع مختلفة على الشاشة. [ 2 ] تتميز الصور النقطية المُخزنة في الأجهزة بميزة تخزينها في ذاكرة منفصلة، وبالتالي لا تؤثر على ذاكرة العرض الرئيسية. وهذا يسمح بتحريكها على الشاشة، لتغطية "الخلفية"، دون أي تأثير عليها.
تُنقل أنماط العرض المتشابهة على الشاشة، ولكن عن طريق الكتابة في نفس ذاكرة العرض. هذا يعني أنه في كل مرة يُوضع فيها نمط أمامي على الشاشة، تُستبدل أي بكسلات خلفية أسفله، أو "تتلف". يقع على عاتق البرنامج إصلاح هذا التلف عن طريق نقل النمط الأمامي مرتين، مرة لاستعادة البكسلات التي تم تغييرها، ثم مرة أخرى لوضع النمط الأمامي في موقعه الجديد. إحدى طرق القيام بذلك هي تخزين الأنماط المطلوبة في ذاكرة الوصول العشوائي للفيديو (VRAM) خارج الشاشة، وحجز مساحة أخرى خارج الشاشة كنوع من المكدس لتخزين قسم العرض المتأثر مؤقتًا. بافتراض أن شريحة الرسومات تحتوي على ذاكرة وصول عشوائي مخصصة للفيديو، فإن هذا مفيد لتقليل الضغط على ذاكرة الوصول العشوائي للنظام، وكذلك على فتحة توسيع ISA ذات النطاق الترددي المحدود في أنظمة الكمبيوتر القديمة.
مع ذلك، توجد عدة طرق لتحسين هذه العملية. إذا كانت الأنماط تغطي مساحات واسعة من الشاشة، فقد يكون من الأجدى مسح الخلفية على الشاشة بدلاً من مسح كل نمط على حدة. إحدى الطرق البديلة هي تقسيم الشاشة إلى أجزاء ومسح الأجزاء التي رُسمت عليها الأنماط فقط. تُعرف هذه التقنية باسم "المستطيلات المتسخة".
انظر أيضاً
- تركيب ألفا
- القناع (الحوسبة) ، المستخدم هنا كقالب
- نفايات
مراجع
- 1 2 سانشيز، خوليو؛ ماريا ب. كانتون (2007). "عرض الصور النقطية" . حلول برمجية للمهندسين والعلماء . مطبعة سي آر سي. ص 690. ISBN 978-1-4200-4303-7.
- ↑ "Framebuffer - OpenGL Wiki" . www.khronos.org . تاريخ الاطلاع: 23 يونيو 2020.
عملية النسخ (blit) هي شكل خاص من عمليات النسخ؛ حيث تنسخ منطقة مستطيلة من البكسلات من مخزن إطار إلى آخر. تتميز هذه العملية أيضًا بخصائص محددة للغاية فيما يتعلق بأخذ العينات المتعددة.
روابط خارجية
- خوارزميات رسومات الحاسوب



