Categories: تقنية

عقد و- تعديل

Hold-And-Modify ، عادة ما يتم اختصاره باسم HAM ، هو وضع عرض لجهاز كمبيوتر Commodore Amiga. ويستخدم أسلوبًا غير اعتيادي للغاية للتعبير عن ألوان البكسل ، مما يسمح للعديد من الألوان الأخرى بالظهور على الشاشة أكثر مما كان ممكنًا. تم استخدام وضع HAM بشكل شائع لعرض الصور الرقمية أو إطارات الفيديو ، الصور النقطية والرسوم المتحركة في بعض الأحيان. في وقت إطلاق Amiga في عام 1985 ، كان هذا العرض شبه الواقعي لم يسبق له مثيل لجهاز كمبيوتر منزلي ، وكان يستخدم على نطاق واسع لإظهار قدرة Amiga الرسومية. ومع ذلك ، لدى HAM قيود تقنية هامة تمنع استخدامه كوضع عرض للأغراض العامة.

خلفية
تستخدم مجموعة شرائح Amiga الأصلية شاشة مستوية مع مساحة ألوان RGB 12 بت التي تنتج 4096 لونًا محتملاً.

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

تحتوي الأجهزة على 32 سجلًا يمكن ضبطها على أي من الألوان الممكنة 4096 ، ويمكن للصورة الوصول إلى أي من هذه القيم 32 باستخدام 5 بت لكل بكسل. تم استخدام البتة السادسة المتاحة من خلال وضع العرض المعروف باسم Extra-brite Extra والذي أدى إلى تقليل لمعان هذه البكسل إلى النصف ، مما يوفر طريقة سهلة لإنتاج تأثيرات التظليل.

وضع Hold-and-Modify
عندما تم تصميم شرائح Amiga لأول مرة ، كانت تعمل بشكل مباشر في قيم chroma و hue و luminance لإشارة NTSC ، كما هو شائع في أجهزة الكمبيوتر المنزلية المبكرة التي تم استخدام أجهزة التلفزيون للعرض عليها. وقد أدى ذلك إلى إمكانية تقليل حجم الذاكرة المطلوبة بشكل كبير لعرض صورة أحادية اللون مثل التلفزيون الأبيض والأسود عن طريق تعيين قيمة اللون في بداية سطر المسح الضوئي ، ثم تعديل قيم الصورة النقطية لقيمة النصوع فقط. نظرًا لأن الصور التلفزيونية التناظرية يمكن أن تتغير فقط من الأسود إلى الأبيض على عدد من البكسل ، وليس من واحد إلى آخر ، فإن أربعة بكسلات ستكون كافية لتوفير صورة “سوداء وبيضاء” ذات مصداقية ، مما يؤدي إلى خفض كمية الذاكرة المطلوبة لتخزين صورة.

مع انتقال تصميم Amiga من وحدة تحكم ألعاب إلى كمبيوتر منزلي ، انتقلت الشريحة كذلك من طراز ألوان HSL إلى طراز ألوان RGB الحديث. على حد تعبير جاي مينر:

” جاء التعليق والتعديل من رحلة لرؤية محاكيات الطيران في العمل وكان لدي فكرة عن نوع بدائي من الواقع الافتراضي. يعني NTSC على الشريحة أنه يمكنك الاحتفاظ باللون وتغيير النصوع من خلال تغيير أربعة بتات فقط. عندما تغيرنا إلى RGB قلت ذلك لم يكن هناك حاجة أكثر لأنه لم يكن مفيداً وطلبت من رجل تخطيط الرقائق أن يزيله. عاد وقال أن هذا إما ترك حفرة كبيرة في وسط الرقاقة أو اتخاذ إعادة تصميم لمدة ثلاثة أشهر ولم نتمكن من القيام بذلك. لم أكن أعتقد أن أي شخص سيستخدمها. كنت مخطئا مرة أخرى لأن هذا قد أعطى حقا أميغا حافة لها من حيث لوحة الألوان. ”
كان التعليق والتعديل في الأساس تعديلاً لمفهوم النصوع الأصلي فقط ، ولكن هذه المرة يسمح بتعديل أحد مكونات الألوان الثلاثة ، الأحمر ، الأخضر أو ​​الأزرق. يمكن اعتبار HAM تقنية ضغط lossy؛ تحت وضع HAM6 يتم ترميز playfield في نصف الذاكرة المطلوبة عادة لمساحة اللون 12 بت. تتحقق الدقة الكلية للون العام على حساب دقة الكروم الأفقية. يتم فك ضغط مساحة HAM المشفرة بواسطة أجهزة العرض في الوقت الفعلي أثناء عرض مخزن الرسومات المؤقت.

استعمال
عندما تم إطلاق Amiga في عام 1985 ، وضع HAM ميزة كبيرة على الأنظمة المنافسة. يسمح HAM بعرض جميع الألوان 4096 في وقت واحد ، على الرغم من القيود المذكورة أعلاه. كانت هذه الشاشة الزائفة ذات الصورة الواقعية غير مسبوقة لجهاز كمبيوتر منزلي في ذلك الوقت ، وسمحت بعرض صور رقمية وصور ثلاثية الأبعاد. في المقابل ، سمح معيار EGA القياسي من IBM-PC بـ 16 لونًا على الشاشة من لوحة 64. سمحت VGA التي خلفتها EGA في عام 1987 مع وضع الألعاب الرائد ، Mode 13h ، بـ 256 لونًا على الشاشة من 262،144. تم استخدام وضع HAM بشكل متكرر لإثبات قدرة Amiga في عروض المتاجر والعروض التجارية ، حيث أن الأجهزة المنافسة لا يمكن أن تتطابق مع عمق الألوان. نظرًا للقيود الموضحة أعلاه ، تم استخدام HAM بشكل أساسي لعرض الصور الثابتة ، وتجنب المطورون استخدامه إلى حد كبير مع الألعاب أو التطبيقات التي تتطلب رسومًا متحركة.

مع تقديم “بنية الرسومات المتقدمة” ، يمكن أن تحتوي الصورة المستوية التقليدية على لوحة ألوان من 256 لونًا ، مما يوفر درجة عالية من دقة الألوان. أصبح وضع HAM الأصلي مع دقة الألوان المحدودة أقل جاذبية بالنسبة لمستخدمي جهاز AGA ، على الرغم من أنه كان لا يزال متضمنًا للتوافق مع الإصدارات السابقة. كان وضع HAM8 الجديد أقل فائدة بكثير لشريحة AGA من وضع HAM كان إلى مجموعة الشرائح الأصلية ، لأن لوح 256 لون مستوي زاد من الخيارات إلى الفنان بشكل كبير دون أن يعاني من عيوب وضع HAM. يمكن أن يكون وضع مستوٍ مبرمج جيداً مبرمجاً أكثر فائدة من HAM8. لم يعد الغرض الأصلي لـ HAM ، والذي كان يسمح بمزيد من دقة الألوان على الرغم من محدودية حجم المخزن المؤقت للفيديو والنطاق الترددي المحدود للذاكرة ، مناسبًا.

بما أن أجهزة الكمبيوتر الحديثة قادرة على عرض truecolor عالي الدقة لم تعد هناك حاجة إلى تقنيات العرض مثل HAM. أصبحت الرسومات المستوية الآن بالية أيضًا للحوسبة للأغراض العامة ، نظرًا لأن أجهزة الرسومات الحديثة تحتوي على نطاق ترددي ذاكرة كافٍ لاستخدام وحدات البكسل المعبأة.

محددات
يضع وضع HAM قيودًا على قيمة وحدات البكسل المجاورة على كل خط أفقي في ساحة اللعب. من أجل عرض لونين عشوائين بشكل متصل ، قد يستغرق الأمر بكسلتين وسيطتين لتغيير اللون المقصود (إذا كان يجب تعديل المكونات الحمراء والخضراء والزرقاء). في أسوأ الحالات ، هذا يقلل من دقة كرومات الأفقي من 704 بكسل إلى 240 كحد أدنى (على سبيل المقارنة ، كانت التقنيات المعاصرة مثل VHS ذات دقة اللون 40 عند 0،4 ميغاهيرتز). هذه المشكلة ملحوظة بشكل خاص في مناطق التباين الحادة (تدرجات الصورة الأفقية القوية) ، حيث قد تظهر قطعة أثرية غير مرغوب فيها متعددة الألوان أو “هامش”. تم استخدام تقنيات التقديم المختلفة لتقليل تأثير “التهديب” و غالبًا ما تم تصميم شاشات HAM لتضمين تدرجات لونية أفقية خفية ، وتجنب الحواف العمودية والتباينات.

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

بالإضافة إلى ذلك ، لا يسمح وضع HAM بسهولة بالرسوم المتحركة التعسفية للعرض. على سبيل المثال ، إذا تم نقل جزء إجباري من ساحة اللعب إلى موضع آخر على الشاشة ، فقد تتم إعادة حساب قيم التعليق والتعديل على جميع خطوط المصدر والهدف لعرض الصورة بشكل صحيح (عملية لا مناسبة تماما للرسوم المتحركة). على وجه التحديد ، إذا كانت الحافة اليسرى لكائن الرسوم المتحركة تحتوي على أي وحدات بكسل “تعديل” ، أو إذا كانت الصورة على يمين الكائن مباشرة تحتوي على أي وحدات بكسل “تعديل” ، فيجب إعادة حساب قيم Hold-and-Modify هذه. ستؤدي محاولة تحريك كائن حول الشاشة (مثل استخدام blitter) إلى إنشاء تظليل ملحوظ عند الحدود اليمنى واليسرى لتلك الصورة ، إلا إذا تم تصميم الرسومات خصيصًا لتجنب ذلك. من أجل تجنب إعادة ضبط قيم الإمساك والتعديل والتحايل على التهديب ، يجب على المبرمج أن يضمن أكبر عدد من البكسل في كل جزء من البكتيريا ، وأن بكسل أقصى اليسار في كل سطر من حقل التمرير هو بكسل “مضبوط”. يجب تصميم اللوحة بحيث تحتوي على كل بكسل ذي أقصى يسار. بدلاً من ذلك ، يمكن تحريك شاشة HAM عن طريق توليد قيم البكسل من خلال توليد إجرائي ، على الرغم من أن ذلك مفيد بشكل عام للصور الاصطناعية فقط ، على سبيل المثال ، تأثيرات “قوس قزح” المستخدمة في العروض.

لاحظ أن Hold-and-Modify لا ينطبق إلا على وحدات بكسل playfield. 128 بيكسل من بيانات الرموز المتحركة (في وضع DMA) لكل ماسحة ضوئية ما زالت متوفرة لوضعها فوق حقل HAM.

تطبيقات
رقاقة الأصلي تعيين HAM (HAM6)
تم تقديم وضع HAM6 ، المسمى بـ 6 بتات من البيانات لكل بكسل ، مع مجموعة الشرائح الأصلية وتم الاحتفاظ به في مجموعة الشرائح المحسنة المتقدمة ورسومات الرسومات المتقدمة. يسمح HAM6 حتى 4096 لونًا لعرضها في وقت واحد بدقة من 320 × 200 إلى 360 × 576.

Related Post

يستخدم تشفير HAM6 ستة بت لكل بكسل: اثنان بت للتحكم وأربع بتات للبيانات. إذا تم ضبط البتتين على صفر ، فسيتم استخدام البتات الأربعة المتبقية لفهرسة واحدة من سجلات الألوان المسبقة بـ 16 ، والتي تعمل على شكل صورة نقطية عادية مفهرسة. تشير أنماط بتات التحكم الثلاث الأخرى المحتملة إلى أنه يجب استخدام لون البيكسل السابق (إلى اليسار) على خط المسح وينبغي بدلاً من ذلك استخدام بتات البيانات لتعديل قيمة المكون الأحمر أو الأخضر أو ​​الأزرق. وبالتالي ، هناك أربعة احتمالات:

Set: استخدم 4 بت من البيانات لفهرسة لون من لوحة الألوان 16. استخدم هذا اللون لهذه البكسل.
تعديل اللون الأحمر: احتفظ بمكونات اللونين الأخضر والأزرق للبيكسل السابق. استخدم 4 بت من البيانات كمكون لون أحمر جديد لهذه البكسل.
تعديل Green: امسك مكونات اللونين الأحمر والأزرق للبيكسل السابق. استخدم 4 بت من البيانات كمكون أخضر جديد لهذه البكسل.
تعديل الأزرق: اضغط على مكونات اللون الأحمر والأخضر في البكسل السابقة. استخدم 4 بت من البيانات كمكون لون أزرق جديد لهذه البكسل.
وضع مماثل ، HAM5 ، هو متاح أيضا لكنه عديم الفائدة. في HAM5 تكون البتة السادسة دائمًا صفر ، لذلك يمكن تعديل مكون اللون الأزرق فقط.

وضع HAM (SHAM)
شملت شريحة Amiga Chipset الأصلية شريحة دعم تعرف باسم “Copper” تعاملت مع المقاطعات والواجبات الأخرى للتوقيت والتدبير المنزلي بشكل مستقل عن وحدة المعالجة المركزية ونظام الفيديو. باستخدام النحاس ، كان من الممكن الاتصال مرة أخرى في وحدة المعالجة المركزية لتشغيل المهام القصيرة بينما كان عرض الفيديو يتعامل مع المقاطعة الفارغة الرأسية أو الأفقية (HBI). سمح ذلك للمبرمجين بربط كود الآلة بالشاشة دون التسبب في القطع الأثرية البصرية ، مما يجعل العديد من تأثيرات الفيديو أسهل بكثير للتنفيذ.

باستخدام هذه التقنية ، طور المبرمجون وضع HAM أو SHAM ، المعروف أيضًا باسم HAM الديناميكي. استخدم SHAM رمز الكمبيوتر الذي تم استدعاؤه على خطوط المسح المختارة ، أو جميعها ، والتي غيرت اللوحة خلال HBI. هذا يعني أن كل خط مسح يمكن أن يكون له مجموعة خاصة به من 16 لون أساسي. هذا جعل من الأسهل بكثير اختيار اللوحة ، والتي يمكن الآن القيام بها في كل سطر بدلاً من كل صورة. الجانب السلبي الوحيد لهذا النهج هو أن الصورة لم تعد محتفظ بها في ذاكرة RAM فقط ، حيث كان على برنامج التحكم الاحتفاظ بلوحات متعددة ، وكان هناك بعض التعقيد في إعداد وضع SHAM.

هذه التقنية لم تكن مقتصرة على HAM ، وكانت تستخدم على نطاق واسع مع أساليب الرسومات التقليدية في الماكينة أيضًا. يستخدم Dynamic HiRes تقنية تغيير لوح ألوان مشابهة لإنتاج 16 لونًا في كل سطر في الطرازات ذات الدقة العالية ، في حين أن HAM مقصور على دقة منخفضة ولكنه يسمح لكل من 16 لونًا مفهرسًا بالإضافة إلى تعديلات عليها.

تم إهمال فكرة SHAM عندما تم إدخال HAM8 ، حيث أن صورة HAM8 غير المتماثلة تتمتع بدرجة وضوح أكثر بكثير من صورة HAM6. ومع ذلك ، لا يزال SHAM أفضل وضع HAM متاح على Amigas مع مجموعة الشرائح الأصلية.

رسومات متقدمة HAM mode (HAM8)
مع إصدار المعمارية الرسومات المتقدمة (AGA) في عام 1992 ، تمت إعادة تسمية وضع HAM الأصلي “HAM6” ، وتم تقديم وضع “HAM8” جديد (تمثل اللاحقة المرقمة الصفائح المستخدمة من قبل وضع HAM الخاص بها). مع AGA ، بدلاً من 4 بت لكل مكون لون ، كان Amiga الآن يصل إلى 8 بت لكل مكون ألوان ، مما ينتج 16،777،216 لونًا ممكنًا (مساحة ألوان 24 بت).

تعمل HAM8 بنفس الطريقة التي تعمل بها HAM6 ، باستخدام بتتين “control” لكل بكسل ، ولكن مع ست بتات من البيانات لكل بكسل بدلاً من أربعة. تحدد عملية التحديد من لوحة من 64 لونًا بدلاً من 16. تعدل عملية التعديل البتات الستة الأكثر أهمية إما من المكون الأحمر أو الأخضر أو ​​الأزرق – ولا يمكن تغيير قطعتي اللون الأقل أهمية من خلال هذه العملية وتبقى على النحو المحدد من قبل مجموعة عملية الأخيرة. بالمقارنة مع HAM6 ، يمكن لـ HAM8 عرض العديد من الألوان على الشاشة. تم الإبلاغ على نطاق واسع عن الحد الأقصى لعدد الألوان على الشاشة باستخدام HAM8 إلى 262،144 لون (مساحة ألوان RGB 18 بت). في الواقع ، يمكن أن يكون الحد الأقصى لعدد الألوان الفريدة على الشاشة أكبر من 262،144 ، اعتمادًا على البتتين الأقل أهمية لكل مكون لون في لوحة الألوان 64. من الناحية النظرية ، يمكن عرض كل الـ 16.7 مليون لون مع شاشة كبيرة كافية ولوحة أساسية مناسبة ، ولكن في الممارسة العملية ، تعني القيود في تحقيق الدقة الكاملة أنه عادة ما يتم تجاهل البتتين الأقل أهمية. بشكل عام ، فإن عمق اللون HAM8 المدرك يعادل تقريبا شاشة ملونة عالية.

تكون دقة العرض العمودي لـ HAM8 هي نفسها لـ HAM6. يمكن أن تكون الدقة الأفقية 320 (360 مع overscan) كما كان من قبل ، ومضاعفة إلى 640 (720 مع overscan) أو حتى أربعة أضعاف إلى 1280 بكسل (1440 مع overscan). كما قدمت شرائح AGA دقة أعلى لأوضاع العرض المستوية التقليدية. لا يمكن أن يتجاوز إجمالي عدد البكسل في صورة HAM8 829،440 (1440 × 576) باستخدام أوضاع PAL ، لكن يمكن أن يتجاوز 1،310،720 (1280 × 1024) باستخدام أجهزة العرض من جهة خارجية (أداة تضييق وميض Indivision AGA).

مثل وضع HAM الأصلي ، لا يمكن لشاشة HAM8 عرض أي لون عشوائي في أي موضع تعسفي ، لأن كل بكسل يعتمد إما على لوح ألوان محدود أو يعتمد على مكونين لونين كحد أقصى من البكسل السابق. كما هو الحال مع وضع HAM الأصلي ، قد يختار المصممون أيضًا “عرض” الشاشة (انظر أدناه) من أجل التحايل على بعض هذه القيود. يتوفر أيضًا وضع HAM7 ولكنه لا يستخدم على نطاق واسع.

مضاهاة HAM
HAM هي فريدة من نوعها إلى Amiga و chipsets متميزة. للسماح بالتقديم المباشر للصور القديمة التي تم ترميزها في محاكيات HAM بتنسيق HAM ، تم تطوير البرامج التي لا تتطلب أجهزة العرض الأصلية. إصدارات ما قبل 4.0 من AmigaOS يمكن استخدام وضع HAM في وجود شرائح Amiga الأصلية. يوفر AmigaOS 4.0 والإصدارات الأحدث ، المصمم لأجهزة مختلفة جذريًا ، مضاهاة HAM للاستخدام على أجهزة الرسومات الحديثة. يمكن لمحولات Emiga المخصصة التي تعمل على الأجهزة غير الأصلية عرض نمط HAM عن طريق مضاهاة جهاز العرض. ومع ذلك ، نظرًا لعدم استخدام هندسة الكمبيوتر الأخرى لتقنية HAM ، فإن عرض صورة HAM على أي بنية أخرى يتطلب تفسيرًا برمجيًا لملف الصورة. سيؤدي فك التشفير القائم على البرامج المخلصة إلى نتائج متطابقة ، مع وضع الاختلافات في دقة الألوان بين إعدادات العرض جانباً.

ومع ذلك ، إذا كان الهدف هو مجرد عرض صورة SHAM على منصة غير أميغا ، فقد يتم حساب قيم اللون المطلوبة مسبقًا استنادًا إلى إدخالات اللوحة التي يتم برمجتها عبر قائمة النحاس ، بغض النظر عما إذا تم تعديل اللوح في وسط ماسحة ضوئية. من الممكن دائمًا تحويل صورة HAM أو SHAM بدون فقدان إلى لوحة ألوان 32 بت.

تطبيقات HAM لجهة خارجية
تمكن الجهاز الذي تم إنتاجه بواسطة الحزام الأسود المعروف باسم HAM-E من إنتاج صور بعمق ألوان HAM8 وبدقة أفقية منخفضة من Amiga مع مجموعة شرائح أصلية.

سوف يتم إعداد Amiga لإنتاج صور عالية الدقة (640 بكسل عرضًا ، 720 مع overcan). هذا يتطلب استخدام أربع طائرات بت 70 نان لكل بكسل. الأسطر القليلة الأولى من الصورة المشفرة للمعلومات لتكوين وحدة HAM-E. بعد ذلك ، تم ترميز كل زوج من البكسلات مع معلومات لوحدة HAM-E ، التي حولت المعلومات إلى 140 بكسل في البوصة (توليد صورة 320 بكسل عريضة ، أو 360 مع overscan ، على عمق لوني مكون من 8 طائرات). وبالتالي كانت جودة HAM-E مماثلة لصورة HAM8 منخفضة الدقة. استغلت تقنية HAM-E حقيقة أن صورة ذات دقة عالية مع أربع أسطوانات تعطي عرضًا ثالثًا أكبر للذاكرة ، وبالتالي بيانات أخرى أكثر من صورة ذات دقة منخفضة مع ست طائرات.

Share