PCX

PCX ، اختصارًا لـ PiCture eXchange (تبادل الصور )، هو تنسيق ملفات صور طوّرته شركة ZSoft Corporation، التي أُغلقت لاحقًا، ومقرها ماريتا، جورجيا ، الولايات المتحدة الأمريكية . كان هذا التنسيق هو التنسيق الأصلي لبرنامج PC Paintbrush ، وأصبح من أوائل معايير التصوير في نظام DOS التي لاقت قبولًا واسعًا ، على الرغم من أنه تم استبداله لاحقًا بتنسيقات صور أكثر تطورًا، مثل BMP و JPEG و PNG . تخزن ملفات PCX عادةً صورًا مُفهرسة بلوحة ألوان تتراوح بين لونين أو أربعة ألوان إلى 16 و256 لونًا، مع العلم أن التنسيق قد تم توسيعه ليشمل تسجيل صور بالألوان الحقيقية (24 بت) أيضًا. [ 2 ]

تنسيقات صور PCX

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

تنسيقات صور PCX الشائعة [ 3 ]
عمق البتطائراتعدد الألوان
4116 لونًا من لوحة ألوان
81256 لونًا من لوحة ألوان
81256 درجة من درجات اللون الرمادي
444096 لونًا مع 16 مستوى من الشفافية
8316.7 مليون لون، 24 بت "لون حقيقي"
8416.7 مليون مع 256 مستوى من الشفافية
11لونان أحاديان (1 بت) (برنامج الرسم ويندوز 3.1)
1416 لونًا RGBi (4 بت) في 4 مستويات (برنامج الرسم ويندوز 3.1)

تُفهم صيغة PCX وتُنتج بواسطة برامج معالجة الصور الشائعة، بما في ذلك ACDSee و FastStone و GIMP و ImageMagick و IrfanView و LView و Netpbm و PaintShop Pro و Photoshop و Visio و PMview و XnView و GraphicConverter . [ 4 ] [ 5 ] في الإصدار 2.1.4، كان بإمكان FFmpeg ترميز وفك ترميز صيغ بكسل PCX التالية : rgb24 وrgb8 وbgr8 وrgb4_byte وbgr4_byte وgray وpal8 و monob . [ 6 ]

يوجد إصدار متعدد الصفحات من صيغة PCX، تستخدمه بعض برامج الفاكس الحاسوبية وإدارة المستندات، وله امتداد ملف .DCX .dcx. يتكون ملف DCX من رأسية تُعرّف بمجموعة من ملفات PCX اللاحقة. [ 7 ]

تنسيق ملف PCX

صُممت ملفات PCX للاستخدام على أجهزة الكمبيوتر الشخصية المتوافقة مع IBM، وتستخدم دائمًا ترتيب البايتات الصغير (little endian) . يتكون ملف PCX من ثلاثة أقسام رئيسية، بالترتيب التالي.

  1. رأس بحجم 128 بايت
  2. بيانات الصورة
  3. (اختياري) لوحة ألوان من 256 لونًا

يحتوي رأس ملف PCX على بايت مُعرِّف (القيمة 10)، ورقم إصدار، وأبعاد الصورة، و16 لونًا من ألوان اللوحة، وعدد مستويات الألوان، وعمق بت لكل مستوى، وقيمة لطريقة الضغط. تتراوح أرقام إصدارات PCX من 0 إلى 5، وكان هذا يشير في الأصل إلى إصدار برنامج PC Paintbrush المستخدم لإنشاء ملف PCX. يحتوي الرأس دائمًا على مساحة لـ 16 لونًا، على الرغم من أن عدد الألوان المستخدمة يعتمد على عمق بت الصورة. يتكون الرأس من 18 حقلًا: [ 8 ] [ 2 ]

سداسي إزاحةإزاحة التخفيضمقاسغاية
٠٠01  بايتحقل رأس ثابت بقيمة سداسية عشرية0x0A (= 10 بالنظام العشري).
0111  بايترقم الإصدار الذي يشير إلى إصدار برنامج Paintbrush، والذي قد يكون كالتالي:
0
برنامج PC Paintbrush الإصدار 2.5 باستخدام لوحة ألوان EGA ثابتة
2
برنامج PC Paintbrush الإصدار 2.8 باستخدام لوحة ألوان EGA قابلة للتعديل
3
برنامج PC Paintbrush الإصدار 2.8 بدون استخدام لوحة ألوان
4
برنامج الرسام للكمبيوتر الشخصي لنظام التشغيل ويندوز
5
برنامج PC Paintbrush الإصدار 3.0، بما في ذلك الصور ذات 24 بت
0221  بايتالطريقة المستخدمة لترميز بيانات الصورة. يمكن أن تكون:
0
بدون ترميز (نادراً ما يُستخدم)
1
ترميز طول التشغيل (RLE)
0331  بايتعدد البتات التي تشكل مستوى واحد. غالباً ما يكون 1 أو 2 أو 4 أو 8.
0442  بايتأقل إحداثي س لموضع الصورة.
0662  بايتالحد الأدنى لإحداثي y لموضع الصورة.
0882  بايتأقصى إحداثي س لموضع الصورة.
0A102  بايتأقصى إحداثي y لموضع الصورة.
0 درجة مئوية122  بايتدقة الصورة الأفقية بوحدة DPI.
0E142  بايتدقة الصورة الرأسية بوحدة DPI.
101648  بايتلوحة ألوان EGA للصور ذات 16 لونًا.
40641  بايتالحقل المحجوز الأول، وعادة ما يتم تعيينه إلى الصفر.
41651  بايتعدد مستويات الألوان التي تشكل بيانات البكسل. يتم اختيارها في الغالب لتكون 1 أو 3 أو 4.
42662  بايتعدد البايتات في مستوى لوني واحد يمثل خط مسح واحد.
44682  بايتطريقة تفسير لوحة الألوان:
1
تحتوي لوحة الألوان على معلومات أحادية اللون أو ملونة
2
تحتوي لوحة الألوان على معلومات تدرج الرمادي
46702  بايتالدقة الأفقية لشاشة النظام المصدر.
48722  بايتالدقة الرأسية لشاشة النظام المصدر.
7454  بايتالحقل المحجوز الثاني، والمخصص للتوسعات المستقبلية، وعادة ما يتم تعيينه إلى صفر بايت.

تستخدم جميع ملفات PCX نفس نظام الضغط، وقيمة الضغط ثابتة عند 1. لم تُحدد أي قيم أخرى، ولا توجد ملفات PCX غير مضغوطة. يشير أحد المصادر إلى أن القيمة 0 (غير مضغوطة) مسموحة ، ولكن لا يدعمها الكثير من البرامج . [ 9 ]

تخطيط بيانات الصورة

تُخزَّن بيانات صور PCX في صفوف أو خطوط مسح بترتيب تنازلي. إذا احتوت الصورة على مستويات متعددة، تُخزَّن هذه البيانات حسب المستوى داخل الصف، بحيث تلي جميع البيانات الحمراء للصف 0 جميع البيانات الخضراء للصف 0، ثم جميع البيانات الزرقاء، ثم بيانات ألفا. يتكرر هذا النمط لكل سطر كما هو موضح في الجدول التالي:

بيانات صور PCX مرتبة في مستويات لونية
الصف 0RRRRRRRR
GGGGGGGGG
BBBBBBBBB
AAAAAAAAA
الصف الأولRRRRRRRR
GGGGGGGGG
BBBBBBBBB
AAAAAAAAA
الصف الثاني، إلخ.....

عندما تكون الصورة أقل من 8 بتات لكل بكسل، يتم إضافة حشو إلى كل سطر حتى يصل إلى حد البايت الزوجي التالي. [ 8 ] على سبيل المثال، إذا كانت الصورة تحتوي على مستوى واحد من البيانات أحادية اللون (1 بت) بعرض 22 بكسل، فسيكون طول كل صف 4 بايتات، أي 32 بت لكل صف مع 10 بتات غير مستخدمة.

ضغط بيانات الصور

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

  1. إذا كانت كلتا البتتين تساويان 1، يُفسَّر البايت على أنه طول السلسلة. وهذا يترك 6 بتات لقيمة طول السلسلة الفعلية، ضمن نطاق يتراوح بين 0 و63.
  2. في أي حالة أخرى، يُفسَّر البايت كقيمة بكسل واحدة. وهذا يترك جميع القيم التي لا يكون فيها البت رقم 7 والبت رقم 8 مساويين لـ 1 في الوقت نفسه. وهذا يسمح بتشفير جميع القيم الأقل من 192 في بايت واحد.

بسبب استخدام البتّين الأكثر أهمية كعلامات، يجب تخزين قيم البكسل من 192 إلى 255 (مع ضبط البت الأكثر أهمية مسبقًا) في زوج بايتات RLE، حتى لو ظهرت بكسلًا واحدًا أو اثنين متتاليين فقط، بينما يمكن تخزين مؤشرات الألوان من 0 إلى 191 مباشرةً أو في أزواج بايتات RLE (أيهما أكثر كفاءة من حيث المساحة). لذلك، يمكن تحسين نسبة الضغط الفعلية من خلال فرز مناسب لإدخالات لوحة الألوان، على الرغم من أن هذا غير ممكن عندما يتشارك الملف لوحة ألوانه مع صور أخرى. على سبيل المثال، يمكن تحسين لوحة الألوان بحيث تظهر الألوان الأكثر استخدامًا في المواضع من 0 إلى 191، وتُخصص الألوان الأقل استخدامًا للربع المتبقي من اللوحة.

من أوجه القصور الأخرى في خوارزمية RLE إمكانية تخزين أجزاء بطول صفر، مما يسمح بوجود مسافات بيضاء في الملف. وذلك لأنه لولا ذلك، لكان لا بد من زيادة الطول مرة واحدة، مما كان سيؤدي إلى إبطاء عملية فك الضغط قليلاً. وقد سمح هذا الأسلوب بفك ضغط ملفات PCX بشكل أسرع على المعالجات التي صُممت من أجلها في الأصل.

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

لوحة الألوان

يحتوي ملف PCX على مساحة في رأسه للوحة ألوان مكونة من 16 لونًا. عندما أصبحت أجهزة VGA ذات 256 لونًا متاحة، لم تكن المساحة كافية للوحة الألوان في ملف PCX؛ حتى الـ 54 بايت غير المستخدمة بعد الرأس لم تكن كافية. كان الحل المختار هو وضع لوحة الألوان في نهاية الملف، مع بايت علامة لتأكيد وجودها.

إذا احتوى ملف PCX على لوحة ألوان مكونة من 256 لونًا، فستجدها على بُعد 768 بايت من نهاية الملف. في هذه الحالة، يجب أن تكون قيمة البايت الذي يسبق لوحة الألوان 12 (0x0C). تُخزَّن لوحة الألوان كسلسلة من ثلاثيات RGB؛ ويُحدَّد طولها القابل للاستخدام بعدد الألوان في الصورة. تستخدم قيم الألوان في لوحة ألوان PCX دائمًا 8 بتات، بغض النظر عن عمق بت الصورة.

مراجع

  1. نوع MIME .pcx غير مسجل لدى IANA
  2. 1 2 جيمس د. موراي؛ ويليام فان رايبر (أبريل 1996). موسوعة تنسيقات ملفات الرسومات، الطبعة الثانية . أورايلي . ISBN 1-56592-161-5تم الاطلاع عليه بتاريخ 2014-03-07 .
  3. "مواصفات تنسيق ملف ZSoft .PCX" . FileFormat.info . FileFormat.info . تم ​​الاطلاع عليه بتاريخ 29-04-2025 . مرجع تقني لتنسيق الصور النقطية PCX، نُشر أصلاً بواسطة شركة ZSoft.
  4. نير سوفر. "امتداد .pcx" . تم الاسترجاع في 12 يناير 2014 .
  5. "نوع الملف: صورة نقطية من برنامج مايكروسوفت بينت براش" . ارتباط ملفات ويندوز . مايكروسوفت . 2013. مؤرشف من الأصل بتاريخ 14-03-2014 . تم الاسترجاع بتاريخ 14-03-2014 .
  6. "تنسيقات الصور" . وثائق FFmpeg العامة . 2014. تم الاطلاع عليه بتاريخ 23-02-2014 .
  7. "امتداد ملف DCX" . fileinfo.com. 19-02-2010 . تم الاطلاع عليه بتاريخ 14-03-2014 .
  8. 1 2 دين أنسلي (1991). "دليل مرجعي تقني لتنسيق ملفات ZSoft PCX" . شركة ZSoft. مؤرشف من الأصل بتاريخ 14-03-2014 . تم الاطلاع عليه بتاريخ 14-03-2014 .
  9. "تنسيق PCX" . ModdingWiki. 23-06-2012 . تم الاسترجاع في 14-03-2014 .