سيكسل

تم تحويل شعار ويكيبيديا إلى تنسيق Sixel وعرضه في Konsole .

Sixel ، اختصارًا لـ "ستة بكسلات"، هو تنسيق رسومات نقطية تدعمه أجهزة طرفية وطابعات من شركة DEC . يتكون من نمط ارتفاعه ستة بكسلات وعرضه بكسل واحد (بالأبيض والأسود)، مما ينتج عنه 64 نمطًا ممكنًا. يُخصص لكل نمط ممكن حرف ASCII ، مما يُسهل نقل بيانات Sixel عبر وصلات تسلسلية ذات 7 بتات.

استُخدمت تقنية Sixel لأول مرة كوسيلة لإرسال رسومات نقطية إلى طابعات DEC النقطية مثل LA50 . بعد تفعيل "وضع Sixel"، تُفسَّر البيانات التالية للتحكم المباشر في ستة من دبابيس رأس الطباعة ذي التسعة دبابيس . يُشفِّر كل سلسلة من أحرف Sixel صفًا واحدًا من الصورة بارتفاع 6 بكسلات.

أُعيد استخدام النظام لاحقًا كوسيلة لإرسال بيانات الصور النقطية إلى أجهزة VT200 و VT320 عند تعريف مجموعات الأحرف المخصصة . تُستخدم سلسلة من وحدات البكسل السداسية لنقل الصورة النقطية لكل حرف. تُعرف هذه الميزة بمجموعات الأحرف البرمجية أو مجموعات الأحرف القابلة لإعادة التعريف ديناميكيًا (DRCS). مع أجهزة VT240 و VT241 و VT330 و VT340 ، أصبح بإمكان هذه الأجهزة فك تشفير صورة كاملة من وحدات البكسل السداسية وعرضها على الشاشة، كما كان يُرسل سابقًا إلى الطابعات.

وصف

تقوم خوارزمية Sixel بتشفير الصور عن طريق تقسيم الصورة النقطية إلى سلسلة من الشرائح الأفقية، ارتفاع كل منها 6 بكسلات. يشكل كل عمود رأسي بعرض بكسل واحد في شريحة معينة وحدة Sixel واحدة. تُقرأ بكسلات كل Sixel كبيانات ثنائية وتُشفّر إلى رقم واحد مكون من 6 بتات، حيث تُشفّر البكسلات "المضاءة" بالرقم 1. ثم يُحوّل هذا الرقم، من 0 إلى 63 عشريًا، إلى حرف ASCII واحد، مع إزاحة بمقدار 63، بحيث تُشفّر وحدة Sixel سوداء بالكامل، قيمتها 0 عشريًا، بالرمز ؟ . يضمن هذا بقاء وحدات Sixel ضمن نطاق الأحرف القابلة للطباعة في مجموعة أحرف ASCII: تُشفّر وحدة Sixel بيضاء بالكامل بالرمز ~ . يُرمز لإرجاع المؤشر إلى بداية السطر (CR) بالرمز $ ، ولإرسال سطر جديد (LF) بالرمز - ؛ وكان لا بد من إرسال كليهما بالتتابع لإعادة المؤشر إلى بداية السطر CRLF.

يتضمن نظام Sixel أيضًا شكلًا بدائيًا من الضغط، باستخدام ترميز طول التشغيل (RLE). ويتم ذلك باستخدام رمز التعجب ( !) متبوعًا بعدد عشري لعدد مرات التكرار، ثم رمز Sixel واحد للتكرار. ولأن رمز التعجب ( !) والأرقام العشرية لا يمكن أن تكون بيانات Sixel صالحة، لوقوعها خارج النطاق المُرمّز، يسهل تحديد الترميز وتوسيعه برمجيًا.

يتم تفعيل "وضع السداسيات" بإرسال التسلسل . تُعدّ المعلمات من p1 إلى p3 معلمات إعداد اختيارية، حيث تُحدد p1 نسبة العرض إلى الارتفاع (تم استبدالها بـ p3 )، وتُحدد p2 كيفية تفسير لون الأصفار، بينما تُحدد p3 معلمات حجم الشبكة البسيطة. هو سلسلة التحكم القياسية للأجهزة (DCS) من DEC، والتي تُستخدم لتشغيل أو إيقاف عدد من الميزات الخاصة في أجهزة DEC. الحرف "q" هو مُعرّف السداسيات. تلي بيانات السداسيات الحرف q . يُعيد تسلسل "مُنهي السلسلة" الجهاز إلى وضع الأحرف العادي.ESC Pp1;p2;p3;qESC PESC \

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

عند استخدامها لتعريف مجموعات الأحرف المخصصة، كان التنسيق متطابقًا تقريبًا، على الرغم من تغيير رموز الهروب. أما من حيث البيانات، فإن الاختلاف الرئيسي الوحيد هو استبدال CR/LF المنفصل بنقطة واحدة /. في سلسلة VT300 ، على سبيل المثال، كانت رموز الأحرف المكونة من 80 عمودًا بعرض 15 بكسلًا وارتفاع 12 بكسلًا، مما يعني أنه يمكن تعريف حرف واحد بإرسال 30 سداسيًا.

يدعم النظام الألوان أيضًا باستخدام الرمز # ، متبوعًا برقم يشير إلى أحد سجلات الألوان المتعددة ، والتي تختلف من جهاز لآخر. تُحدد الألوان في هذه السجلات باستخدام قيم RGB أو HLS بتنسيق DEC خاص. لإنشاء صورة ملونة على طابعة، يُرسل سطر من وحدات البكسل السداسية عدة مرات، يمثل كل سطر منها مستوى بت واحدًا من الألوان المُخزنة في السجلات على المحطات الطرفية (عادةً 2 أو 4 بتات). نظرًا لاختلاف إمكانيات الأجهزة بشكل كبير، لا يمكن إخراج رسم ملون باستخدام وحدات البكسل السداسية إلا إلى الأجهزة المستهدفة. تتجاهل المحطات الطرفية غير الرسومية عادةً تسلسلات الهروب الخاصة بوحدات البكسل السداسية.

عينة

نموذج كود Sixel الذي يقول "HI" معروض في xterm مع محاكاة VT340 .
␛Pq #0;2;0;0;0#1;2;100;100;0#2;2;0;100;0 #1~~@@vv@@~~@@~~$ 2??}}GG}}??}}??- #1!14@ ␛\ 

يدخل المثال أعلاه في وضع السداسي، ويُهيئ ثلاثة سجلات ألوان، ثم يستخدم هذه السجلات لرسم السداسيات بتلك الألوان. #0;2;0;0;0يُفسَّر هذا على أنه "ضبط سجل اللون 0، استخدام الوضع 2 (وضع RGB)، ضبط قيم R وG وB على 0%". هذا يضبط اللون 0 على الأسود، وتضبط الأوامر التالية السجل 1 على الأصفر (100%، 100%، 0%) والسجل 2 على الأخضر (0%، 100%، 0%). على عكس معظم الأنظمة الحديثة التي تُخصص قيمة 8 بت ( 0-255 ) لكل قناة لونية، يعتمد وضع RGB على "شدة" كل قناة من 0% إلى 100%.

تحدد أسطر البيانات التالية لونًا، الأصفر للأول والثالث والأخضر للوسط، ثم ترسم وحدات البكسل السداسية. يُظهر السطر الأخير استخدام RLE، أي "كرر @( 0b100000) 14 مرة". الناتج النهائي هو 14 بكسل × 7 بكسل، لذا يتكرر السطر الأخير 0b10000014 مرة لملء السطر الأخير. $يشير الرمز في نهاية السطر إلى أن السطر التالي سيطبع فوق السطر الحالي، بينما -يشير الرمز إلى أن السطر التالي يمثل سطرًا جديدًا من وحدات البكسل السداسية.

ملحوظات

  1. كان الحرف "p" الصغير هو مُعرّف ReGIS.

انظر أيضاً

  • ReGIS – وسيلة لعرض الرسومات المتجهة على أجهزة DEC VT-series اللاحقة
  • الرسومات شبه النصية – رسومات نصية، بما في ذلك مربعات الأحرف الفرعية "squot".

مراجع