التراكيب ألفا

في رسومات الكمبيوتر ، يُعد التجميع ألفا أو المزج ألفا عملية دمج صورة واحدة مع خلفية لإنشاء مظهر شفافية جزئية أو كاملة . [1] غالبًا ما يكون من المفيد تقديم عناصر الصورة (البكسل) في مسارات أو طبقات منفصلة ثم دمج الصور ثنائية الأبعاد الناتجة في صورة نهائية واحدة تسمى المركب . يستخدم التجميع على نطاق واسع في الأفلام عند دمج عناصر الصور المرسومة بالحاسوب مع لقطات حية . يستخدم المزج ألفا أيضًا في رسومات الكمبيوتر ثنائية الأبعاد لوضع عناصر المقدمة المنقطة فوق الخلفية.
من أجل دمج عناصر الصورة بشكل صحيح، من الضروري الاحتفاظ بطبقة غير لامعة مرتبطة بكل عنصر بالإضافة إلى لونه. تحتوي طبقة غير اللامعة هذه على معلومات التغطية - شكل الهندسة التي يتم رسمها - مما يجعل من الممكن التمييز بين أجزاء الصورة التي تم رسم شيء ما فيها والأجزاء الفارغة.
على الرغم من أن العملية الأساسية لدمج صورتين هي وضع واحدة فوق الأخرى، إلا أن هناك العديد من العمليات، أو أوضاع المزج ، التي يتم استخدامها.
تاريخ
تم تقديم مفهوم قناة ألفا بواسطة Alvy Ray Smith و Ed Catmull في أواخر السبعينيات في مختبر رسومات الكمبيوتر التابع لمعهد نيويورك للتكنولوجيا . استنتج بروس أ. والاس نفس عامل الاستقامة بناءً على نموذج الانعكاس / النفاذية الفيزيائي في عام 1981. [2] قدمت ورقة بحثية عام 1984 بقلم توماس بورتر وتوم داف ألفا مضاعفة مسبقًا باستخدام نهج هندسي. [3]
يفسر سميث استخدام مصطلح ألفا على النحو التالي: "لقد أطلقنا عليه هذا الاسم بسبب صيغة الاستيفاء الخطي الكلاسيكية التي تستخدم الحرف اليوناني (ألفا) للتحكم في مقدار الاستيفاء بين صورتين A وB في هذه الحالة". [4] أي أنه عند تركيب الصورة A فوق الصورة B، يتم أخذ قيمة الصيغة مباشرة من قناة ألفا الخاصة بـ A.
وصف
في صورة ثنائية الأبعاد، يتم تخزين تركيبة ألوان لكل عنصر من عناصر الصورة (بكسل)، وغالبًا ما تكون تركيبة من الأحمر والأخضر والأزرق ( RGB ). عند استخدام التركيب ألفا، يكون لكل بكسل قيمة رقمية إضافية مخزنة في قناة ألفا الخاصة به ، بقيمة تتراوح من 0 إلى 1. تعني القيمة 0 أن البكسل شفاف تمامًا وأن اللون الموجود في البكسل الموجود أسفله سيظهر من خلاله. تعني القيمة 1 أن البكسل معتم تمامًا.
مع وجود قناة ألفا، من الممكن التعبير عن عمليات تركيب الصور باستخدام جبر التركيب . على سبيل المثال، بالنظر إلى صورتين A و B ، فإن عملية التركيب الأكثر شيوعًا هي دمج الصور بحيث تظهر A في المقدمة وتظهر B في الخلفية. يمكن التعبير عن ذلك على أنه A على B. بالإضافة إلى over ، حدد بورتر وداف [3] مشغلات التركيب في ، holding out by (تشير العبارة إلى تغطية التمسك وعادة ما يتم اختصارها out )، atop ، و xor (والمشغلات العكسية rover و rin و rout و ratop ) من خلال النظر في الخيارات في مزج ألوان بكسلين عندما تكون تغطيتهما متراكبة بشكل عمودي من الناحية المفاهيمية:
على سبيل المثال، يمكن إنجاز عامل over من خلال تطبيق الصيغة التالية على كل بكسل: [2]
هنا ، و تمثل مكونات اللون للبكسلات في نتيجة "الأعلى"، الصورة A، والصورة B على التوالي، المطبقة على كل قناة لون (أحمر/أخضر/أزرق) بشكل فردي، بينما ، و هي قيم ألفا للبكسلات المعنية.
إن عامل التشغيل الزائد هو في الواقع عملية الرسم العادية (انظر خوارزمية الرسام ). إن عاملي التشغيل الداخل والخارج هما المعادلان للتركيب ألفا للقص . يستخدم العاملان فقط قناة ألفا للصورة الثانية ويتجاهلان مكونات اللون. بالإضافة إلى ذلك، يحدد عامل التشغيل الزائد المزج الإضافي. [3]
المستقيم مقابل المضاعف مسبقًا
إذا تم استخدام قناة ألفا في صورة، فهناك تمثيلان شائعان متاحان: ألفا المباشرة (غير المرتبطة) وألفا المضاعفة مسبقًا (المرتبطة).
- باستخدام ألفا مستقيمة ، تمثل مكونات RGB لون الكائن أو البكسل، متجاهلة عتامته. هذه هي الطريقة التي استُخدمت بواسطة عامل over في القسم السابق.
- مع ألفا المضاعفة مسبقًا ، تمثل مكونات RGB انبعاث الكائن أو البكسل، وتمثل ألفا الانسداد. ثم يصبح عامل over : [3]
مقارنة
الميزة الأكثر أهمية لـ ألفا المضاعفة مسبقًا هي أنها تسمح بالمزج والتدخل والتصفية بشكل صحيح. يؤدي التدخل العادي بدون ألفا المضاعفة مسبقًا إلى تسرب معلومات RGB من المناطق الشفافة تمامًا (A = 0)، على الرغم من أن معلومات RGB هذه غير مرئية بشكل مثالي. عند التدخل أو تصفية الصور ذات الحدود المفاجئة بين المناطق الشفافة والمعتمة، يمكن أن يؤدي هذا إلى حدود الألوان التي لم تكن مرئية في الصورة الأصلية. تحدث الأخطاء أيضًا في مناطق شبه الشفافية لأن مكونات RGB ليست مرجحة بشكل صحيح، مما يعطي وزنًا عاليًا بشكل غير صحيح للون وحدات البكسل الأكثر شفافية (ألفا أقل). [5]
يمكن أيضًا استخدام ألفا المضاعفة مسبقًا للسماح بترميز مناطق المزج ألفا المنتظم (مثل الدخان) والمناطق ذات وضع المزج الإضافي (مثل تأثيرات اللهب واللمعان) داخل نفس الصورة. [6] [7] يتم تمثيل ذلك بواسطة ثلاثية RGBA التي تعبر عن الانبعاث بدون انسداد، مثل (0.4، 0.3، 0.2، 0.0).
ميزة أخرى للألفا المضاعفة مسبقًا هي الأداء؛ في مواقف معينة، يمكنها تقليل عدد عمليات الضرب (على سبيل المثال إذا تم استخدام الصورة عدة مرات أثناء التركيب اللاحق). عمليات بورتر-داف لها شكل بسيط فقط في ألفا المضاعفة مسبقًا. [3] تعرض بعض خطوط أنابيب العرض سطح واجهة برمجة تطبيقات "ألفا مباشرة"، لكنها تحولها إلى ألفا مضاعف مسبقًا لتحسين الأداء. [8]
أحد عيوب ألفا المضاعفة مسبقًا هو أنها يمكن أن تقلل من الدقة النسبية المتاحة في قيم RGB عند استخدام تمثيل عدد صحيح أو نقطة ثابتة لمكونات اللون. قد يتسبب هذا في فقدان ملحوظ للجودة إذا تم تفتيح معلومات اللون لاحقًا أو إذا تمت إزالة قناة ألفا. في الممارسة العملية، لا يُلاحظ هذا عادةً لأنه أثناء عمليات التكوين النموذجية، مثل OVER، يتم تقليل تأثير معلومات اللون منخفضة الدقة في المناطق ذات ألفا المنخفضة على صورة الإخراج النهائية (بعد التكوين) وفقًا لذلك. كما يجعل فقدان الدقة هذا الصور المضاعفة مسبقًا أسهل في الضغط باستخدام مخططات ضغط معينة، لأنها لا تسجل الاختلافات اللونية المخفية داخل المناطق الشفافة، ويمكنها تخصيص عدد أقل من البتات لتشفير المناطق ذات ألفا المنخفضة. توجد نفس "القيود" لأعماق بت التكميم المنخفضة مثل 8 بت لكل قناة أيضًا في الصور بدون ألفا، وهذه الحجة إشكالية نتيجة لذلك.
أمثلة
بافتراض أن لون البكسل يتم التعبير عنه باستخدام أزواج RGBA مستقيمة (غير مضروبة مسبقًا) ، فإن قيمة البكسل (0، 0.7، 0، 0.5) تعني بكسلًا يحتوي على 70% من أقصى شدة خضراء و50% تعتيم. إذا كان اللون أخضر بالكامل، فسيكون RGBA الخاص به (0، 1، 0، 0.5). ومع ذلك، إذا استخدم هذا البكسل ألفا مضروبًا مسبقًا، فإن جميع قيم RGB (0، 0.7، 0) يتم ضربها أو قياسها للانسداد بواسطة قيمة ألفا 0.5، والتي يتم إلحاقها للحصول على (0، 0.35، 0، 0.5). في هذه الحالة، تشير القيمة 0.35 لقناة G في الواقع إلى شدة انبعاث خضراء بنسبة 70% (مع انسداد بنسبة 50%). سيتم ترميز انبعاث أخضر نقي على أنه (0، 0.5، 0، 0.5). إن معرفة ما إذا كان الملف يستخدم ألفا مباشرة أو ألفا مضاعفة مسبقًا أمر ضروري لمعالجته أو تركيبه بشكل صحيح، حيث يلزم إجراء حساب مختلف.
لا يمكن تمثيل الانبعاث بدون انسداد باستخدام ألفا مستقيمة. لا يتوفر تحويل في هذه الحالة.
تنسيقات الصور التي تدعم قنوات ألفا
أشهر تنسيقات الصور التي تدعم قناة ألفا هي PNG و TIFF . يدعم تنسيق GIF قنوات ألفا، لكنه يعتبر غير فعال عندما يتعلق الأمر بحجم الملف. يتوفر دعم قنوات ألفا في بعض برامج ترميز الفيديو، مثل Animation وApple ProRes 4444 من تنسيق QuickTime، أو في برنامج ترميز Techsmith متعدد التنسيقات.
لا يدعم تنسيق الملف BMP هذه القناة بشكل عام؛ ومع ذلك، في تنسيقات مختلفة مثل 32 بت (888–8) أو 16 بت (444–4)، من الممكن حفظ قناة ألفا، على الرغم من أن ليس كل الأنظمة أو البرامج قادرة على قراءتها: يتم استغلالها بشكل أساسي في بعض ألعاب الفيديو [9] أو تطبيقات معينة؛ [10] كما تم إنشاء برامج محددة لإنشاء ملفات BMP هذه.
| تنسيق الملف/الترميز [11] | أقصى عمق | يكتب | دعم المتصفح | نوع الوسائط | ملحوظات |
|---|---|---|---|---|---|
| برنامج Apple ProRes 4444 | 16 بت | لا أحد | فيديو (.mov) | ProRes هو خليفة برنامج Apple Intermediate Codec [12] | |
| HEVC / h.265 | 10 بت | يقتصر على سفاري | فيديو (.hevc) | الخليفة المقصود لـ H.264 [13] [14] [15] | |
| WebM (ترميز الفيديو VP8 أو VP9 أو AV1) | 12 بت | جميع المتصفحات الحديثة | فيديو (.webm) | في حين أن VP8/VP9 مدعوم على نطاق واسع بواسطة المتصفحات الحديثة، إلا أن AV1 لا يزال يحظى بدعم محدود. [16] فقط المتصفحات المستندة إلى Chromium ستعرض طبقات ألفا. | |
| أوبن إي إكس آر | 32 بت | لا أحد | الصورة (.exr) | يحتوي على أكبر انتشار HDR. | |
| PNG | 16 بت | مستقيم | جميع المتصفحات الحديثة | الصورة (.png) | |
| APNG | 24 بت | مستقيم | دعم معتدل | الصورة (.apng) | يدعم الرسوم المتحركة. [17] |
| شجار | 32 بت | كلاهما | لا أحد | الصورة (.tiff) | |
| صورة متحركة | 8 بت | جميع المتصفحات الحديثة | الصورة (.gif) | لا تدعم المتصفحات عمومًا طبقات GIF ألفا. | |
| إس في جي | 32 بت | مستقيم | جميع المتصفحات الحديثة | الصورة (.svg) | بناءً على لون CSS. [18] |
| JPEG XL | 32 بت | كلاهما | دعم معتدل | الصورة (.jxl) | يسمح بالفقدان والنطاق الديناميكي العالي. [19] |
تصحيح جاما


تصحيح جاما
لا تتوافق قيم RGB للصور الرقمية النموذجية بشكل مباشر مع شدة الضوء الفيزيائية، بل يتم ضغطها بواسطة دالة تصحيح جاما :
يستخدم هذا التحويل بشكل أفضل العدد المحدود من البتات في الصورة المشفرة من خلال اختيار ما يتوافق بشكل أفضل مع الإدراك البشري غير الخطي للسطوع.
وعليه، يجب على برامج الكمبيوتر التي تتعامل مع مثل هذه الصور فك تشفير قيم RGB إلى مساحة خطية (عن طريق التراجع عن ضغط جاما)، ودمج شدة الضوء الخطية، وإعادة تطبيق ضغط جاما على النتيجة: [20] [21] [ فشل التحقق ]
- C o = ( C a γ α a + C b γ α b ( 1 − α a ) α o ) 1 / γ {\displaystyle C_{o}=\left({\frac {C_{a}^{\gamma) }\alpha _{a}+C_{b}^{\gamma}\alpha _{b}(1-\alpha _{a})}{\alpha _{س}}}\يمين)^{1/\جاما }}
عند الجمع مع ألفا المضاعفة مسبقًا، يتم إجراء الضرب المسبق في الفضاء الخطي، قبل ضغط جاما. [22] ينتج عن هذا الصيغة التالية:
لاحظ أن قناة ألفا قد تخضع أو لا تخضع لتصحيح جاما، حتى عندما تخضع له قنوات الألوان.
طرق الشفافية الأخرى
على الرغم من استخدامها لأغراض مماثلة، فإن الألوان الشفافة وأقنعة الصور لا تسمح بالمزج السلس لبيكسلات الصورة المتراكبة مع تلك الموجودة في الخلفية (يُسمح فقط ببيكسلات الصورة الكاملة أو بيكسلات الخلفية الكاملة).
يمكن تحقيق تأثير مماثل باستخدام قناة ألفا ذات بت واحد، كما هو الحال في وضع الألوان العالية RGBA ذي 16 بت في تنسيق ملف الصور Truevision TGA ووضع الرسومات عالية الألوان في محولات العرض TARGA وAT-Vista/NU-Vista ذات الصلة. يخصص هذا الوضع 5 بتات لكل لون RGB أساسي ( 15 بت RGB ) بالإضافة إلى بت متبقي كقناة ألفا.
يمكن استخدام التمويه لمحاكاة الانسداد الجزئي حيث يتوفر ألفا 1 بت فقط.
بالنسبة لبعض التطبيقات، لا تكفي قناة ألفا واحدة: على سبيل المثال، تتطلب نافذة الزجاج الملون قناة شفافية منفصلة لكل قناة RGB لنمذجة شفافية اللون الأحمر والأخضر والأزرق بشكل منفصل. يمكن إضافة المزيد من قنوات ألفا لتطبيقات الترشيح الطيفي الدقيق للألوان.
تستبدل بعض طرق الشفافية المستقلة عن الترتيب عامل over بتقريب تبديلي. [23]
انظر أيضا
مراجع
- ^ "تعريف المزج ألفا". PCMAG . تم الاسترجاع في 2021-08-07 .
- ^ ab Wallace, Bruce A. (1981). "دمج وتحويل الصور النقطية للرسوم المتحركة الكرتونية" . وقائع المؤتمر السنوي الثامن للرسوم المتحركة الحاسوبية والتقنيات التفاعلية - SIGGRAPH '81 . المجلد 15. مدينة نيويورك، نيويورك: ACM Press. ص 253-262. CiteSeerX 10.1.1.141.7875 . doi : 10.1145/800224.806813 . ISBN 0-89791-045-1. S2CID 1147910.
- ^ أ ب ج د بورتر، توماس ؛ داف، توم (يوليو 1984). "تركيب الصور الرقمية" (PDF) . وقائع المؤتمر السنوي الحادي عشر حول الرسومات الحاسوبية والتقنيات التفاعلية - SIGGRAPH '84 . المجلد 18. مدينة نيويورك، نيويورك: مطبعة ACM. ص 253- 259. doi :10.1145/800031.808606. ISBN 9780897911382. S2CID 18663039. مؤرشف من الأصل (PDF) في 2011-04-29 . تم الاسترجاع في 2019-03-11 .
- ^ Alvy Ray Smith (1995-08-15). "Alpha and the History of Digital Compositing" (PDF) . alvyray.com . ص. 6. مؤرشف من الأصل (PDF) في 2021-10-25.
- ^ "دمج ألفا: التحضير المسبق أم عدم التحضير المسبق". مطور NVIDIA . 31 يناير 2013.
ومع ذلك، يحدث شيء مثير للاهتمام عندما نولد مستوى mipmap التالي...
- ^ "مدونة تومف التقنية - إنها مجرد تظاهر بأنها ويكي". مدونة تومف التقنية - إنها مجرد تظاهر بأنها ويكي . مؤرشف من الأصل في 12 ديسمبر 2017. تم الاسترجاع في 8 مايو 2018 .
- ^ Trebilco, Damian. "To close to draw call (presentation on Pre-multiplied alpha)". GitHub .
من خلال التبديل إلى وضع المزج المضاعف مسبقًا لجميع تأثيرات الجسيمات، يمكن عمل المشهد بالكامل باستخدام مكالمة رسم واحدة (بافتراض وجود أطلس/مصفوفة ثنائية الأبعاد للقوام)... خدعة أخرى أنيقة مع ألفا المضاعف مسبقًا هي أنه إذا كان لديك قوام متداخل في مواضع معروفة، فيمكنك معالجتها مسبقًا جميعًا إلى قوام واحد.
- ^ "ألفا مسبقة الضرب". Win2D لـ WinUI3 . تم الاسترجاع في 30 يونيو 2023.
يستخدم Win2D ألفا مباشرة في سطح واجهة برمجة التطبيقات الخاصة به، ولكن ألفا مسبقة الضرب لعمليات العرض الداخلية.
- ^ "إنشاء القوام". www.echos.ch . تم الاسترجاع في 2023-05-25 .
- ^ "Extended Formats". 2016-03-04. مؤرشف من الأصل في 2016-03-04 . تم الاسترجاع 2023-05-25 .
- ^ Lambrecht, Jordan (2022-12-31). "قائمة تنسيقات الفيديو/الصورة التي تدعم قنوات ألفا". Pixel Bakery Design Studio . تم الاسترجاع في 2023-05-25 .
- ^ "Final Cut Pro 6 - دعم التنسيقات الواسعة". apple.com . مؤرشف من الأصل في 2011-06-08 . تم الاسترجاع 2024-08-13 .
- ^ جي دونج (2010-06-19). "الاجتماع الأول لـ JCT-VC، دريسدن، ألمانيا". H265.net . تم الاسترجاع في 2024-08-13 .
- ^ Jie Dong (2008-07-01). "الحالة الحالية لـ H.265 (كما في يوليو 2008)". H265.net . تم الاسترجاع في 2024-08-13 .
- ^ يو ليو (2009-04-15). "المتطلبات الأولية لـ NGVC". H265.net . تم الاسترجاع في 2024-08-13 .
- ^ "تنسيق الفيديو AV1 | هل يمكنني استخدام... جداول الدعم لـ HTML5 وCSS3 وما إلى ذلك". caniuse.com . تم الاسترجاع في 2023-05-25 .
- ^ "البث الصوتي الرقمي (DAB)؛ عرض شرائح MOT؛ مواصفات تطبيق المستخدم (pdf)" (PDF) . ETSI . تم الاسترجاع في 13 أغسطس 2024 .
- ^ "مواصفات SVG، "اللون"". اتحاد شبكة الويب العالمية. 14 يناير 2003. مؤرشف من الأصل في 7 سبتمبر 2009. تم الاسترجاع 13 أغسطس 2024 .
- ^ @chromium.org، de... (2022-08-24). "دعم فك تشفير JPEG XL (image/jxl) في وميض (خطأ في التتبع)". bugs.chromium.org . تم الاسترجاع في 2024-08-13 .
- ^ Minute Physics (20 مارس 2015). "Computer Color is Broken". YouTube . مؤرشف من الأصل في 2021-11-22.
- ^ نوفاك، جون (21 سبتمبر 2016). "ما ينبغي أن يعرفه كل مبرمج عن جاما".
- ^ “تصحيح جاما مقابل البكسلات المضاعفة مسبقًا – سورين ساندمان بيدرسن”. ssp.impulsetrain.com .
- ^ ماكجواير، مورجان؛ بافويل، لويس (2013). "الشفافية الموزونة المختلطة المستقلة عن الترتيب". مجلة تقنيات الرسومات الحاسوبية . 2 (2): 122- 141.
روابط خارجية
- تركيب الصور الرقمية - توماس بورتر وتوم داف (الورقة الأصلية)
- أساسيات تركيب الصور
- تعرف على ملحقات التركيب والألوان في SVG 1.2 في 30 دقيقة!
- التراكم ألفا والضرب المسبق
