كيف تحصل على 1024 لونًا في CGA؟ وهل هناك حقا 1024؟

أطلقت في عام 2015 ، أعجبتني ترجمة "وضع رسومات جديدة: CGA في 1024 لونًا" ، ولكنني لم أفهم بعد كيف تعمل هذه الحيلة ، لأن المقال كتبه محترف في مجال رسومات الكمبيوتر الرجعية ، ويقترح أن القارئ لديه بالفعل بعض المعرفة في هذا المجال. على الرغم من أن جهاز الكمبيوتر الأول الخاص بي ( "Search" كان استنساخًا سوفييتيًا لـ IBM PC / XT) به CGA ، إلا أنني لم أجد أجهزة عرض مزودة بإدخال مركب ، لذلك كان علي أن أجعله يعمل على google ومعرفة كيفية عمل الفيديو المركب. بالنسبة لأولئك المهتمين أيضًا بالتقنيات "الداخلية" لعام 1981 ، والتي تم فيها اكتشاف فرص غير موثقة في عام 2015 ، قمت بتجميع المواد التي وجدتها.

1. ميزات CGA الأصلية


بالنسبة للشخص العادي ، عادة ما ترتبط CGA برسومات 320 × 200 ولوحة بأربعة ألوان بألوان زاحفة حمضية ، كما هو الحال في ألعاب 1983 Alley Cat و J-bird و Lode Runner و Tapper :




ولكن الحد 320x200x2bpp يتم فرضه فقط من خلال مقدار ذاكرة الفيديو المتوفرة على المحول (16 كيلوبايت) في الواقع ، إنها قادرة على إنتاج صورة 640x200x4bpp - مع وحدات بكسل ممدودة بشدة عموديًا.يتم استخدام هذا ، على سبيل المثال ، في وضع النص 80x25 مع أحرف 16 لونًا وخلفية ، ومصفوفة أحرف 8 × 8 بكسل. (يمكن حساب أن المخزن المؤقت للشاشة في هذه الحالة لا يستغرق سوى 80 × 25 × 2 = 4000 بايت.) ولكن إذا تم إخراج الرسومات في هذا "الدقة العالية" 640 × 200 ، فإن 16 كيلوبايت من ذاكرة الفيديو تكفي فقط لصورة بالأبيض والأسود. تم دعم وضع الرسم هذا ، على سبيل المثال ، من قبل Windows حتى الإصدار 3.0 شاملاً:



عند الإخراج ، أنتجت CGA إشارة رقمية تم اختراع واجهة RGBI خصيصًا لها: يشير خطان تزامن إلى بداية الإطار وبداية خط المسح ، وترسل أربعة أسطر من إشارة الفيديو لون أربع بتات للبكسل الحالي. لكن الشاشات القادرة على استقبال إشارة RGBI الرقمية عند الإدخال كانت نادرة في عام 1981 ؛ بدأت شركة آي بي إم نفسها في إنتاج هذه الشاشات الرقمية فقط في عام 1983. بالنسبة للمستخدمين المنزليين ، توصلت CGA إلى استنتاج ثانٍ - إشارة الفيديو المركبة للغاية التي استعانت بها أساتذة المشهد التجريبي. يمكن توصيله عبر مُعدِّل التردد اللاسلكي بإدخال هوائي جهاز تلفزيون أمريكي تقليدي ، بالإضافة إلى أن بعض أجهزة التلفزيون لديها مدخل مركب خاص (للتوصيل ، على سبيل المثال ، جهاز فيديو) يسمح لك بإدخال إشارة فيديو تتجاوز الموالف وتجنب التعديل / التشكيل غير الضروري.



الجزء من ربط محول الفيديو ، الذي يشكل إشارة NTSC مركبة من الإخراج الرقمي (هذا هو المعيار الأمريكي للتلفزيون الملون) ، كان مخصصًا فقط للمرحلة الانتقالية ، حتى يحصل جميع مستخدمي الكمبيوتر الشخصي على شاشات رقمية. محول الفيديو التالي من IBM - EGA (1984) - يدعم الإخراج الرقمي (بالفعل ستة بت) فقط ، باستخدام زوج من جهات الاتصال غير المستخدمة سابقًا في واجهة RGBI. بالإضافة إلى ذلك ، لم يوصى باستخدام أوضاع "الدقة العالية" للاستخدام مع إخراج الفيديو المركب ، لأن 640 بكسل في خط المسح تفوق قدرات NTSC. يوضح القسم التالي لماذا؛ يوضح ويكيبيديا كيفية تمويه النص في وضع CGA ذو 80 عمودًا على شاشة إدخال مُركبة:




2. ميزات التلفزيون


تم ترتيب التلفزيون باللونين الأبيض والأسود بطريقة مباشرة للغاية: تدور شعاع إلكتروني حول الشاشة خطًا تلو الآخر ، ويتحكم مستوى إشارة الفيديو مباشرة في قوة الشعاع. أثناء العودة بين الخطوط وبين الإطارات ، يتم إيقاف تشغيل الحزمة ، وتنقل إشارة الفيديو نبضات التزامن. نظرًا لأن الإشارة تناظرية تمامًا ، لم يتم تحديد دقتها الأفقية: يمكن أن يتغير السطوع بسلاسة عبر الخط. من ناحية أخرى ، يتم ضبط الدقة الرأسية بشدة من خلال تردد المسح الأفقي (243 خطًا لـ NTSC).

يوضح الرسم التوضيحي ، الذي تم رسمه بعناية في MS Paint ، كيف تبدو إشارة الفيديو لإطار يتكون من خطين رأسيين: عريض داكن وضيق ضيق. في الجزء العلوي ، يتم عرض إشارة لخط واحد بشكل تخطيطي ، في الأسفل ، إشارة لتسلسل من الخطوط. يتم إرسال نبضة تزامن "سوداء أكثر من الأسود" قبل كل سطر . عندما تم إنشاء التلفزيون الملون ، كان من المهم أن تقبل أجهزة التلفزيون بالأبيض والأسود الحالية الفيديو الملون المقبول. لقد توصل الأمريكيون إلى الحيلة التالية: يتم إرسال معلومات الألوان بواسطة إشارة توافقية للحامل الفرعي



يضاف إلى إشارة النصوع. ثم يقوم تلفزيون أبيض وأسود لا يعرف كيفية عزل وتحليل الناقل التوافقي بتسليط الضوء على كل بكسل مع سطوع يتوافق مع متوسط ​​قيمة الإشارة خلال وقت إرسال البكسل. إذا كان تردد الموجة الحاملة الفرعية كبيرًا بما يكفي ، فلن تؤثر الإشارة الإضافية على متوسط ​​القيمة ، أي على السطوع المعروض. نتفق الآن على أن التحول الطوري للحامل الفرعي يتوافق مع تدرج اللون ، واتساعه يتوافق مع التشبع ؛ يتوافق تقسيم اللون إلى السطوع والتدرج والتشبع مع نموذج اللون YIQ .

يوضح الرسم التوضيحي الثاني بشكل تخطيطي إشارة الفيديو لخط واحد من الإطار ، يتكون من خطوط عمودية ملونة. يتم إرسال اندفاع لوني إضافي بين الساعة وبداية السطر.، الذي يضبط جهاز الاستقبال على المرحلة التي سيتم منها قياس تحولات الموجة الحاملة الفرعية. الآن سوف تتطابق الأجزاء المسطحة للإشارة (أي ، مع السعة الصفرية للحامل الفرعي) مع الأشرطة الرمادية (التشبع الصفري) ؛ المناطق التي يتوافق فيها الناقل الفرعي في طور الاندفاع اللوني مع نطاقات صفراء مع قيمتي تشبع مختلفة اعتمادًا على اتساع الموجة الحاملة الفرعية ؛ رسم حيث يكون الناقل الفرعي في الطور المضاد بالنسبة إلى انفجار اللون - الشريط الأزرق. نظرًا لأن متوسط ​​مستوى الإشارة هو نفسه في جميع المناطق ، فإن جهاز استقبال التلفزيون بالأبيض والأسود يعرض جميع النطاقات بنفس الظل الرمادي. يتطلب NTSC أن تكون الإشارة المساعدة جيبية ، ولكن هذا ليس مهمًا جدًا: الموجة المربعة الموضحة في الرسم التوضيحي ( تعرج


) يتكون من التوافقيات مع التردد والمرحلة المرغوبة ، بالإضافة إلى الإضافات عالية التردد التي يتجاهلها جهاز استقبال التلفزيون. اتساع هذا التوافقي أكبر من اتساع التعرج4/π مرات ، ولكن نظرًا لأن التلفزيون يستخدم سعة الموجة الحاملة الفرعية ليس في القيمة المطلقة ، ولكن بالنسبة إلى السعة المستخرجة من الاندفاع اللوني ، فإن شاشة الألوان لا تتأثر باستبدال مادة مضافة جيبية بأخرى مستطيلة. CGA والأجهزة الرقمية البدائية الأخرى تولد موجات مربعة بالضبط.

من أجل تبسيط فصل الإشارة الرئيسية (السطوع) والإشارة الثانوية (اللون) ، قام NTSC بتوحيد تردد الناقل الفرعي ، أعلى بـ 227.5 مرة من التردد الأفقي - أي لكل صف ، بالإضافة إلى التباعد بين السطور ، هناك 227.5 فترة للناقل الفرعي. وبالتالي ، فإن التلفزيون الملون الأمريكي لديه دقة أفقية معينة: لا يزال بإمكان السطوع أن يتغير بسلاسة عبر الخط ، ولكن تردد تدرج الألوان محدود بتردد الناقل الفرعي. إذا استقبل تلفزيون إشارة فيديو بدقة أفقية تبلغ 640 بكسل ، فإن حوالي ثلث فترة الموجة الحاملة الفرعية تقابل كل بكسل ، ولا يتوفر لمرشح الأجهزة البدائي الوقت لتحديد إزاحة الطور واتساع الموجة الحاملة الفرعية بشكل صحيح من الإشارة لكل بكسل. هذا يؤدي إلى نتائج غير متوقعة - من التعتيم ،كما هو موضح في المثال أعلاه ، قبل الإنشاءألوان "قطعة أثرية" ، لا يمكن تحقيقها عن طريق الوسائل العادية لمحول الفيديو. (أنا حقا لا أحب اسم "الألوان الزائفة" المستخدمةSLY_Gفي ترجمة مقال عن 1024 لونًا ؛ يتناقض المعنى الرئيسي للكلمة الإنجليزية قطعة أثرية - "من صنع الإنسان ، تم إنشاؤها بشكل مصطنع" - بين هذه الألوان مع "الطبيعي" لـ CGA ، ولا علاقة له بالتطفل.)

تمامًا مع الدقة الأفقية ، تم توصيل خطأ أجهزة في CGA: في أوضاع 640 × 200 (أي ح. في نص 80 عمودًا) تبين أن الصورة على الشاشة المركبة باللونين الأبيض والأسود. كان حل هذا الخطأ معروفًا: تحتاج إلى تعيين إطار بني حول الصورة. والحقيقة هي أن الربط الذي يشكل إشارات الساعة يحدد مدتها في دورات الساعة لمحول الفيديو ؛ في أوضاع 640 × 200 ، تكون هذه الساعات نصف طولها في أوضاع 320 × 200 ، لذا فإن الساعة بين سطور الإطار هي أيضًا ضعف المدة التي تتطلبها NTSC. ونتيجة لذلك ، لا يكون للاندفاع اللوني الوقت الكافي للإرسال. ولكن إذا كان هناك إطار بني حول الصورة (البني له تحول طور صفر تقريبًا ، وسطوع منخفض ، والتشبع يتوافق مع السعة التقريبية لتدفق اللون) ، فإن الشاشة تأخذ الجانب الأيسر من الإطار على هيئة انفجار اللون ، ولا ترسمه على الشاشة ، ويتم ضبطها بشكل صحيح على مرحلة الناقل الفرعي اللون.



3. جهاز إشارة مركب CGA


على الرغم من أن إشارة الفيديو الرقمية التي تنتجها CGA يمكن أن يكون لها دقة أفقية تصل إلى 640 بكسل (أي 640 تغييرًا في مستويات الإشارات الرقمية في سطر واحد) ، يمكن اعتبار إشارة الفيديو المركبة على أنها لها دقة 1280 "بكسل فرعي" بغض النظر عن وضع الفيديو المستخدم ، أي لكل بكسل في أوضاع 640 × 200 هناك وحدتا بكسل فرعيتان في أوضاع 320 × 200 - أربعة. يتم حساب مستوى الإشارة (بالفولت) الناتج بواسطة محول الفيديو للبكسل الفرعي الحالي بواسطة الصيغةU=0.41+I0.3+C0.75 ، حيثيتم أخذبتI(الكثافة) مباشرة من لون البكسل الحالي ، ويتم تحديد إشارةC(صفاء) بواسطة معدد الإرسال اعتمادًا على بتات الألوان الثلاثة الأخرى (R ، G ، B):
صزبجاللون
00000000000…الأسود
00100001111…أزرق (~ 180 درجة)
01011100001…أخضر (~ 45 درجة)
01111000011…فيروز (~ 90 درجة)
10000111100…أحمر (~ 270 درجة)
10100011110…أرجواني (~ 225 درجة)
11011110000…أصفر (~ 0 درجة)
11111111111…أبيض
تتوافق الألوان اللونية مع إشارة صفاء بثمانية وحدات بكسل فرعية ومع إزاحة طور قريبة من مضاعف 45 درجة ، أي إلى عدد صحيح من البكسلات الفرعية. بفضل مخططات التأخير العبقري في CGA ، تختلف التحولات الطورية للألوان قليلاً (ضمن ± 10 °) عن مضاعفات 45 درجة لتكون أقرب إلى ألوان NTSC القياسية .

وبالتالي ، من بين 227.5 فترة حامل فرعي في خط ، توجد 160 في صورة الإخراج ، والباقي في الفترة الفاصلة بين السطور (الساعة ، اندفاع اللون ، والإطار حول الصورة). من المهم أن يمر عدد غير صحيح من فترات الحامل الفرعي من الاندفاع اللوني إلى البكسل الأول للخط: يبدأ إرسال البكسل الأول عند 45 درجة ، لذلك إذا بدأ الخط بأربعة بيكسلات صفراء ، فستأخذ إشارة صفاء القيم أثناء إرسال وحدات البكسل الفرعية الثمانية المقابلة 11100001.

سطوع البكسل (لمى) ، أي متوسط ​​القيمة لمستوى الإشارة لفترة الموجة الحاملة الفرعية ، احصل علىL=0.72Cavg+0.28I ، أينCavg=RGB+RGB2 : 0.5 للألوان اللونية ، 0 للأسود و 1 للأبيض. هذا يعني أنه على شاشة سوداء وبيضاء مركبة ، يمكن أن يعرض طراز CGA الأول (1981) ستة ظلال رمادية فقط. في نماذج CGA اللاحقة (منذ 1983) ، بدأت الإضافة غير الدورية للحامل الفرعي تعتمد على كل بتات الألوان الأربعة ، بحيث يتوافق السطوع مع صيغة أكثر تعقيدًا ، مما سمح لنا بعرض الظل الرمادي الخاص بنا على شاشة سوداء وبيضاء لكل من قيم الألوان الستة عشر. نتيجة لهذا التحسين ، بدأت الألوان التي تختلف في السطوع وأقرب إلى تلك المعروضة على الشاشة الرقمية تظهر أيضًا على شاشة الألوان المركبة: أخطاء الأجهزة وعيوبها في الحزام الذي يشكل الإشارة المركبة من الإخراج الرقمي تشير إلى أن مطوري CGA لم يكونوا قلقين للغاية بشأن استخدامه مع شاشة مركبة ، وحتى أقل قلقا بشأن كيفية عرض أوضاع "عالية الدقة" على الشاشة المركبة. ومع ذلك ، كان هذا المزيج غير المدعوم هو الذي سمح لسادة demoscene بالضغط على ما لا يمكن تصوره من CGA!L=0.29Cavg+0.1R+0.22G+0.07B+0.32I






4. ميزات CGA غير متوقعة ...


4 أ) ... في أوضاع الرسوم


كما هو موضح أعلاه ، يتحول جزء الخط ، المظلل بلون واحد ، في إشارة الفيديو المركب إلى تعرج مع فترة ثمانية وحدات بكسل فرعية. والعكس صحيح أيضًا: سيتم عرض أي إشارة مركبة تتكرر بثمانية وحدات بكسل فرعية كجزء أحادي اللون من الخط ، لأن الحامل الفرعي التوافقي المستخرج منه سيكون له تحول طوري ثابت وسعة ثابتة. ما هو بالضبط التحول الذي سيستخدم التحول سيكون أكثر صعوبة في التنبؤ ؛ تعرض المقالة حول 1024 لونًا النتيجة بدون أي تفسير: يعرض عمود Nybble تسلسلًا متكررًا لأربعة بكسل في وضع 640 × 200 × 1 بيب ، أي من ثمانية بكسلات فرعية. اثنان من هذه التسلسلات ( و



01011010) تتوافق مع التعرجات ذات أربع وحدات بكسل فرعية: لا يوجد ناقل فرعي متناسق في مثل هذه الموجة على الإطلاق ، لذلك يكون اللون الناتج رماديًا. 0011, 0110, 1001, 1100تتوافق أربع سلاسل أخرى ( ) مع موجات الحامل الفرعي النقي - مع تحول بمقدار 135 درجة و 225 درجة و 45 درجة و 315 درجة على التوالي. اثنان من هذه الموجات تحددان اللونين البنفسجي والأخضر القياسي ، أما اللونان المتبقيان - الأزرق والبرتقالي ، فلا يمكن تحقيقهما عن طريق وسائل CGA العادية. ملء الإشارة بنسبة 75٪ (التسلسل0111, 1011, 1101, 1110) يقابل تحول الموجة الحاملة الفرعية الطورية بمقدار نصف بكسل ، أي على بكسل فرعي واحد ؛ ولكن النتيجة لا تتطابق تمامًا مع مرحلة الألوان القياسية - بسبب مخططات التأخير التي "تسحب" ألوان CGA القياسية إلى ألوان NTSC القياسية. وبالتالي ، يتم الحصول على ظلال مع تحول طفيف: الأزرق الفيروزي والفيروز الأخضر والبني المحمر والأرجواني الأحمر. يؤدي ملء 75٪ إلى زيادة متوسط ​​مستوى الإشارة ، أي سطوع اللون لكنه لا يؤثر على التشبع ، لأن "الحواف" الأوسع للتعرج يتم إنشاؤها بواسطة التوافقيات عالية التردد التي يتجاهلها جهاز استقبال التلفزيون. أخيرًا ، تتوافق الإشارة التي تحتوي على تعبئة بنسبة 25٪ مع نفس الأشكال مثل 75٪ ، ولكنها أقل سطوعًا.

بل إنه أكثر صعوبة في التنبؤ باللون الذي سيظهر عندما يتكرر التسلسل ليس من البيكسلات السوداء والبيضاء ، ولكن من البيكسلات الملونة. في وضع 640x200x1bpp ، يكون لون الخلفية دائمًا أسود ، ولكن يمكن تحديد اللون الثاني من بين أي 16 لونًا قياسيًا. في وضع 320x200x2bpp ، على العكس ، يمكن تحديد لون الخلفية من أي من الألوان القياسية الستة عشر ، ويتم تحديد الألوان الثلاثة الأخرى من خلال اللوحة المحددة من أربعة خيارات. تظهر المقالة على 1024 لونًا مجموعتين من هذه المجموعات ، مرة أخرى بدون تفسير. لقد طلبت تعليقات مباشرة إلى reenigne ، المسؤول عن الجزء الفني من إخراج الفيديو في 8088 ميل بالساعة ، بالإضافة إلى تنفيذ مضاهاة CGA في DOSBox ؛ ونصحني cgaart- محاكي CGA مستقل كتبه ، قادر على العمل في وضع الدفعة. بإضافة رابط بسيط لـ Python إلى cgaart ، قمت بإنشاء جدول من جميع مجموعات 16 لونًا ممكنة من "الألوان الاصطناعية":

طاولة كاملة

يتكون رمز كل مجموعة من رقم وضع الرسم ( 1Aلـ 640x200x1bpp ، 0Aلـ 320x200x2bpp) ، رقم اللوحة ( 0–3) ، وعدد الألوان القابلة للتحديد بحرية ( 0–F). يتكون كل صف من الجدول من 16 مربعًا يتوافق مع تسلسل متكرر من وحدات البكسل ؛ يتكون كل مربع من خمسة نطاقات - الإخراج الرقمي ، ومستوى الإشارة المركبة والإخراج على الشاشة المركبة مع نموذج CGA الأول ، والإخراج على الشاشة المركبة ومستوى الإشارة المركبة مع نموذج CGA المصحح. يظهر مستوى الإشارة المركبة كمتوسط ​​لوحدتي بكسل فرعيتين - يحسب cgaart فقط بهذه الدقة. دعونا نفكر بمزيد من التفصيل في الخطوط المقابلة للمجموعتين الموضحة في المقالة حول 1024 لونًا - هذه هي المجموعات 1A0Cو0A01؛ ولكن قبل ذلك ، ضع في اعتبارك مجموعة أبسط 1A04:



مجموعة 1A04- وحدات بكسل حمراء على خلفية سوداء - تتوافق مع إشارة بنسبة تعبئة 50 ٪ وتحول 270 درجة ، معدلة بتسلسل دوري من أربعة بكسل. مستوى عال من إشارة يندرج ضمن أول ثلاثة متواليات بكسل، لذلك هو الشيء الرابع لا يؤثر على اللون الناتج: على سبيل المثال، 000xو 001xيتحول إلى أسود نقي، و 111x- باللون الأحمر الخالص. تتوافق التسلسلات التي تم صفرها بكسل الأول ( 010xو 011x) مع تحول الطور بمقدار بكسل فرعي واحد ، أي -45 درجة إلى أرجواني ؛ وحدة بكسل ثانية قابلة للتعيين ( 100xو 101x) - تحول بمقدار 45 درجة إلى اللون البرتقالي.

جلس1A0C- بكسلات حمراء فاتحة على خلفية سوداء - تتوافق مع نفس الإشارة ، ولكن مع إضافة غير دورية ، لذا فإن مستواها المنخفض الآن أعلى من الأسود. ونتيجة لهذا التسلسل 0001، 0010، 0011يتم تحويلها إلى نفس الألوان (الأخضر والفيروزي والأزرق وbiryuzovato الأزرق) كما في حالة بكسل البيضاء، ولكن الآن مع سطوع أقل من ذلك بكثير، لأن مصدر إشارة مستوى منخفض يلعب دورا على مستوى عال لالناجمة عن ذلك. تحافظ التسلسلات المتبقية على مستوى عالٍ من الإشارة الأصلية ، ويتم الحصول على ظلال الألوان المقابلة بالقرب من المجموعة 1A04، على الرغم من أن السطوع أعلى الآن بسبب ارتفاع متوسط ​​المستوى.

تعيين أخيرا0A01- خلفية زرقاء ولوحة خضراء حمراء بنية ، وأربع وحدات بكسل فرعية في كل بكسل ، واثنين من وحدات البكسل في تسلسل متكرر - تحتوي على أربعة ألوان قياسية ( 00, 11, 22, 33لا تسبب التسلسلات آثارًا) ومزيجاتها الزوجية: إذا قمت بإضافة اثنين من المتعرجين ، فإن التحول الحامل التوافقي في الإشارة الناتجة سيكون في المنتصف بين نوبات المصطلحات. ومع ذلك ، يعتمد سطوع وتشبع النتيجة على ترتيب المصطلحات: على سبيل المثال ، الأحمر يحتوي على مستوى عال من البكسلات الفرعية 1-4 ، الأخضر يحتوي على 6-1 ، بحيث 12يقطع التسلسل تمامًا المستوى العالي للمصطلح الأحمر ، ونصف الأخضر ؛ بينما التسلسل21يحتفظ بشكل كامل بمستوى عالٍ من الحد الأحمر ونصف أخضر. يتحول اللون في كلتا الحالتين إلى اللون الأصفر ، ولكن بالنسبة للتسلسل 12- المشبع والداكن جدًا ، بينما 21- غير مشبع وخفيف جدًا.

لذلك ، هناك 80 مجموعة من 16 لونًا متاحًا في وقت واحد. ما هو القرار الفعلي؟ لا يمكن تغيير اللون إلا بين كتل من 8 وحدات بكسل فرعية ، أي 160 مرة لكل سطر ؛ ولكن يتم تعيين السطوع لكل بكسل بشكل مستقل. تحذر مقالة عن 1024 لونًا من أنه لا يمكن تسمية هذه الأوضاع بـ "16 لونًا 160 × 200" ، لأن "الدقة الأفقية هي سؤال مفتوح ، ويعتمد على أخذ عينات وتصفية الإشارة ، ويختلف اعتمادًا على أشكال إشارة اللون التي تستخدمها" ( نقلSLY_G) ومع ذلك، فمن السهل للتأكد من أن حتى مع وجود درجة اللون ثابت، رصد مركب لا يعرض سطوع التقلبات في غضون 8 كتل الفرعي بكسل: تولي اهتماما، على سبيل المثال، إلى مجموعة 0A0Aفي الجدول الكامل، وذلك لتسلسل 01و 10الموافق بكسل الخضراء للضوء خلفية خضراء. يتم تحليل كل من سطوع وتدرج اللون كتلةً تلو الأخرى باستخدام الشاشة المركبة ، لذلك بدلاً من استبدال وحدات البكسل الخضراء بمستويين سطوع ، يتم الحصول على وحدات بكسل رتيبة بمستوى سطوع متوسط. بالنسبة للتسلسل ، تكون 10النتيجة أقل تشبعًا من المصطلحات ، لأن هذا التسلسل يقطع المستوى المنخفض للمصطلح الأخضر الداكن. لذلك ، في رأيي ، عند استخدام ألوان القطع الأثرية ، هناك كل سبب لاعتبار 160x200 كدقة فعلية.

4 أ) ... في أوضاع النص


كما ذكرنا في البداية ، تدعم CGA وضع نص 80 × 25 16 لونًا مع مصفوفة أحرف 8 × 8 بكسل ، ويتم استخدام ربع ذاكرة الفيديو فقط في هذا الوضع. وجد الحرفيون طريقة غير موثقةقم بتحويل الإخراج إلى سطر جديد من النص كل سطرين من وحدات البكسل ، أي الإخراج من كل حرف سطرين فقط من البكسل. في وضع 100 نص الناتج الناتج عن نصف سطر ، يتم استخدام كل ذاكرة الفيديو بحجم 16 كيلوبايت ، وتكون الصورة 16 لونًا بدقة 640 × 200 بكسل. ولكن بالمقارنة مع صيغ الرسوم البيانية ، توجد في نص شبه قيود صارمة للغاية: أولاً ، في كل ألفة 8 × 2 بكسل ، يمكن استخدام لونين مختلفين فقط ؛ ثانيًا ، يجب أن يتطابق تسلسل وحدات البكسل "الرئيسية" و "الخلفية" في كل معرفة مع الخطين العلويين لواحد من 256 حرفًا ، تومض في CGA ROM. حتى مع هذه القيود ، التي تجمع بين الإزعاج في فن البكسل والرسومات الزائفة النصية ، تمكن المعالجات من إنشاء رسومات رائعة ذات 16 لونًا:



(في المقالة حول 1024 لونًا ، يتم عرض ربع هذه الصورة فقط ، ولكن تم نشر نسختها الكاملة بشكل منفصل - بشكل مباشر على شكل تفريغ لذاكرة الفيديو.)

بدون اختراق 100 سطر - أي إذا تم عرض مصفوفة كل حرف بالكامل ، فسيبدو الجزء الأوسط من الصورة كما يلي:



على اليمين يوجد جدول أحرف مخيط في ROM ، حيث يتم تمييز السطرين العلويين لكل حرف ، المتاحين للاستخدام في وضع شبه النص ، باللون الأصفر.

ولأول مرة ، قرر Macrocom الجمع بين اختراق 100 سطر ورسومات زائفة نصية ، وإطلاق لعبة "ICON: The Quest for the Ring" في عام 1984 بدقة 320 × 200 × 4 بي بي بي تبدو مذهلة بالنسبة لـ CGA. ومع ذلك ، حتى شاشات التوقف ثابتةتم رسم Macrocom أسوأ بكثير من VileR. وخلال اللعبة ، تم استخدام الرسومات بشكل أكثر بدائية.




(المفارقة هي أنه على الرغم من أن هذا هو وضع النص ، إلا أن عرض النص فيه غير بديهي للغاية: يجب عليك جمع كل حرف من "قصاصات" البرامج الثابتة في ROM.)

من القيود المهمة الأخرى في وضع شبه النص أن الصورة على الشاشة المركبة غير واضحة إلى حد ما. . على سبيل المثال ، سيبدو رسم VileR كما يلي:



ولكن يمكنك الاستفادة من هذا الضبابية - لتوليد عدد كبير من الألوان الأثرية في وضع النص شبه! كما هو موضح في القسم السابق ، فإن أي تسلسل متكرر لوحدات البكسل بفترة 8 وحدات بكسل فرعية يتحول إلى لون اصطناعي صلب نصف عرض الحرف في وضع 80 عمودًا. هذا يعني أنه في وضع النص شبه - عندما يمكن تحديد كل من اللون الرئيسي وخلفية كل حرف بشكل تعسفي من 16 لونًا قياسيًا - لإنشاء ألوان اصطناعية تحتاج إلى أحرف لها

  1. الصفان العلويان من وحدات البكسل متماثلان ؛
  2. النصفي الأيسر والأيمن من هذين الخطين متماثلان.

وجد CGA ROM أحرف مناسبة لتسلسلين دوريين - 1100و 0110. يسمح لك التسلسل الأول بالحصول على ألوان أثرية تتوافق مع أي بيكسل متكرر في وضع 320 × 200 ، أي أي ألوان من الصفوف 0Axxفي الجدول الكامل ؛ والثاني هو الألوان من المربعات رقم 6 ورقم 9 في السطور 1A0x، عندما 0110يتم عرض التسلسل برموز ملونة على خلفية سوداء أو رموز سوداء على خلفية ملونة ، على التوالي. في هذه الحالة ، تبلغ الدقة الفعلية 80x100: الحد الأدنى للمساحة التي يمكنك من خلالها تعيين اللون يتوافق مع الألفة "المشذبة".

لذا ، كم عدد الألوان التي يمكن عرضها في وضع النص شبه في نفس الوقت؟ تتوفر جميع مجموعات 16 لونًا أساسيًا و 16 لونًا للخلفية وشخصيتين متطابقتين ، لذا صاح مؤلف هذه الخدعة: "512 لونًا! بالطبع ، هناك عدد أقل منها في الواقع ، وهناك نسخ مكررة وظلال مختلفة قليلاً. " عندما تتزامن الألوان الرئيسية والخلفية ، من الواضح أنه مع أي رمز ستكون النتيجة هي نفسها ، لذلك ، عند الإخراج الرقمي لدينا 496 تسلسلًا دوريًا مختلفًا من ثمانية بكسل. يؤدي تحويل هذا الإخراج إلى مركب إلى حقيقة أن بعض التسلسلات تتحول إلى نفس إشارة الفيديو ؛ على سبيل المثال ، 0110الرمادي على الأسود ، الرمادي على البنفسجي ، والأخضر الفاتح على البنفسجي - يتحول إلى ظل أرجواني داكن:



مقارنة بالجدول الكامل ، يتم مضاعفة المربعات هنا للوضوح ، مما سمح لنا بالتوقيع على قيمة كل شريط داخل المربعات مباشرة على الرسم التخطيطي. يمكن ملاحظة أن التسلسل 0110يقطع تمامًا المستوى العالي لخلفية أرجواني ، بحيث تصبح الخلفية لا يمكن تمييزها عن الأسود. يختلف اللون الأخضر في الطور عن اللون الأرجواني بمقدار 180 درجة ، لذا فإن هذا التسلسل يقطع مستوى عالٍ من الأحرف الخضراء بنفس الطريقة ، وتصبح الأحرف الخضراء الفاتحة غير مميزة عن تلك الرمادية. على الرسم البياني للألوانفي المقال حول 1024 لونًا ، يمكنك أن ترى أن السطور رقم 0 ورقم 5 ، المقابلة للخلفية السوداء والأرجوانية ، لا يمكن تمييزها تقريبًا ؛ لا يمكن تمييز العمودين 8 و 10 المطابقين للرموز الرمادية والخضراء الفاتحة. وفقًا لحسابات cgaart ، تتطابق ظلال أرجواني داكن المقابلة للمجموعات الثلاثة المحددة من المعلمات تمامًا ؛ مع نموذج CGA المصحح ، كما يمكن رؤيته في أسفل المربعات في الرسم التخطيطي ، تختلف هذه الظلال الثلاثة.

بالإضافة إلى هذه المجموعات الثلاث ، يعرض نموذج CGA الأول بالتساوي التسلسل 0110باللون الأسود باللون الأرجواني الفاتح والرمادي ؛ الرمادي في أرجواني فاتح يعطي الرمادي القياسي ، والأسود في أرجواني يعطي الأسود القياسي. أخيرًا ، كما هو موضح على الجانب الأيمن من الرسم البياني ، التسلسل1100الرمادي على الأحمر الفاتح يعطي نفس اللون الرمادي - تقريبًا تقريبًا - حيث يكون التسلسل 0110أخضر فاتح باللون الأرجواني الفاتح. في المجموع ، مع نموذج CGA الأول ، تتوفر 490 لونًا مختلفًا ، ولكن مع تصحيحها - جميع 496.

تتويجا لمقال عن 1024 لونًا هو طريقة إعادة اختراع للعرض في وضع شبه النص صف علوي واحد فقط من البكسل لكل حرف ، ولكن كرر هذا السطر مرتين. من الصعب استدعاء " وضع رسومات جديد"، لأنه يتطلب ثابتًا - في بداية كل خط مسح - تغيير إعدادات CGA ، التي تشغل المعالج 8088 تمامًا ، ولا تترك أي فرصة للقيام بأي شيء آخر بالتوازي مع عرض صورة ملونة بحجم 1024 ، على سبيل المثال ، لإعداد الرسوم المتحركة. ولكن بفضل هذه الحيلة، يصبح من الممكن استخدام متواليات 0010و 0101بالإضافة إلى جهازي المبينة أعلاه. باستخدام أربعة رموز مختلفة ، من الممكن الحصول على 976 تسلسل دوري مختلف من ثمانية بكسل في الإخراج الرقمي. وكم عدد الألوان المختلفة التي سيتم الحصول عليها بعد التحويل إلى إشارة فيديو مركبة؟ أحصيت 950 مع أول CGA ، و 973 مع واحد ثابت.

في الختام ، أعطي جدولاً لجميع الألوان التي يمكن الحصول عليها في وضع النص شبه. يحتوي VileR على جدول مشابه، ولكن تم تجميعها حسب نوع الشاشة ، وليس حسب تسلسل الإخراج لوحدات البكسل ، مثل المنجم. طاولته ملائمة لفنان يعمل مع جهاز معين ؛ ملكي هو لمنظر الذي يريد أن يفهم كيف يظهر هذا اللون أو ذاك على الشاشة.

طاولة كاملة

All Articles