PCX
PCX ، اختصارًا لـ PiCture eXchange (تبادل الصور )، هو تنسيق ملفات صور طوّرته شركة ZSoft Corporation، التي أُغلقت لاحقًا، ومقرها ماريتا، جورجيا ، الولايات المتحدة الأمريكية . كان هذا التنسيق هو التنسيق الأصلي لبرنامج PC Paintbrush ، وأصبح من أوائل معايير التصوير في نظام DOS التي لاقت قبولًا واسعًا ، على الرغم من أنه تم استبداله لاحقًا بتنسيقات صور أكثر تطورًا، مثل BMP و JPEG و PNG . تخزن ملفات PCX عادةً صورًا مُفهرسة بلوحة ألوان تتراوح بين لونين أو أربعة ألوان إلى 16 و256 لونًا، مع العلم أن التنسيق قد تم توسيعه ليشمل تسجيل صور بالألوان الحقيقية (24 بت) أيضًا. [ 2 ]
تنسيقات صور PCX
صُممت صيغة PCX خلال المراحل الأولى لتطوير أجهزة عرض الحاسوب، ومعظم صيغها لم تعد مستخدمة. يوضح الجدول أدناه قائمة بأكثر صيغ PCX شيوعًا. قد لا تتمكن برامج تحرير الصور الحديثة من قراءة ملفات PCX المتوافقة مع الأجهزة القديمة.
| عمق البت | طائرات | عدد الألوان |
|---|---|---|
| 4 | 1 | 16 لونًا من لوحة ألوان |
| 8 | 1 | 256 لونًا من لوحة ألوان |
| 8 | 1 | 256 درجة من درجات اللون الرمادي |
| 4 | 4 | 4096 لونًا مع 16 مستوى من الشفافية |
| 8 | 3 | 16.7 مليون لون، 24 بت "لون حقيقي" |
| 8 | 4 | 16.7 مليون مع 256 مستوى من الشفافية |
| 1 | 1 | لونان أحاديان (1 بت) (برنامج الرسم ويندوز 3.1) |
| 1 | 4 | 16 لونًا 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 من ثلاثة أقسام رئيسية، بالترتيب التالي.
- رأس بحجم 128 بايت
- بيانات الصورة
- (اختياري) لوحة ألوان من 256 لونًا
يحتوي رأس ملف PCX على بايت مُعرِّف (القيمة 10)، ورقم إصدار، وأبعاد الصورة، و16 لونًا من ألوان اللوحة، وعدد مستويات الألوان، وعمق بت لكل مستوى، وقيمة لطريقة الضغط. تتراوح أرقام إصدارات PCX من 0 إلى 5، وكان هذا يشير في الأصل إلى إصدار برنامج PC Paintbrush المستخدم لإنشاء ملف PCX. يحتوي الرأس دائمًا على مساحة لـ 16 لونًا، على الرغم من أن عدد الألوان المستخدمة يعتمد على عمق بت الصورة. يتكون الرأس من 18 حقلًا: [ 8 ] [ 2 ]
| سداسي إزاحة | إزاحة التخفيض | مقاس | غاية |
|---|---|---|---|
| ٠٠ | 0 | 1 بايت | حقل رأس ثابت بقيمة سداسية عشرية0x0A (= 10 بالنظام العشري). |
| 01 | 1 | 1 بايت | رقم الإصدار الذي يشير إلى إصدار برنامج Paintbrush، والذي قد يكون كالتالي:
|
| 02 | 2 | 1 بايت | الطريقة المستخدمة لترميز بيانات الصورة. يمكن أن تكون:
|
| 03 | 3 | 1 بايت | عدد البتات التي تشكل مستوى واحد. غالباً ما يكون 1 أو 2 أو 4 أو 8. |
| 04 | 4 | 2 بايت | أقل إحداثي س لموضع الصورة. |
| 06 | 6 | 2 بايت | الحد الأدنى لإحداثي y لموضع الصورة. |
| 08 | 8 | 2 بايت | أقصى إحداثي س لموضع الصورة. |
| 0A | 10 | 2 بايت | أقصى إحداثي y لموضع الصورة. |
| 0 درجة مئوية | 12 | 2 بايت | دقة الصورة الأفقية بوحدة DPI. |
| 0E | 14 | 2 بايت | دقة الصورة الرأسية بوحدة DPI. |
| 10 | 16 | 48 بايت | لوحة ألوان EGA للصور ذات 16 لونًا. |
| 40 | 64 | 1 بايت | الحقل المحجوز الأول، وعادة ما يتم تعيينه إلى الصفر. |
| 41 | 65 | 1 بايت | عدد مستويات الألوان التي تشكل بيانات البكسل. يتم اختيارها في الغالب لتكون 1 أو 3 أو 4. |
| 42 | 66 | 2 بايت | عدد البايتات في مستوى لوني واحد يمثل خط مسح واحد. |
| 44 | 68 | 2 بايت | طريقة تفسير لوحة الألوان:
|
| 46 | 70 | 2 بايت | الدقة الأفقية لشاشة النظام المصدر. |
| 48 | 72 | 2 بايت | الدقة الرأسية لشاشة النظام المصدر. |
| 4أ | 74 | 54 بايت | الحقل المحجوز الثاني، والمخصص للتوسعات المستقبلية، وعادة ما يتم تعيينه إلى صفر بايت. |
تستخدم جميع ملفات PCX نفس نظام الضغط، وقيمة الضغط ثابتة عند 1. لم تُحدد أي قيم أخرى، ولا توجد ملفات PCX غير مضغوطة. يشير أحد المصادر إلى أن القيمة 0 (غير مضغوطة) مسموحة ، ولكن لا يدعمها الكثير من البرامج . [ 9 ]
تخطيط بيانات الصورة
تُخزَّن بيانات صور PCX في صفوف أو خطوط مسح بترتيب تنازلي. إذا احتوت الصورة على مستويات متعددة، تُخزَّن هذه البيانات حسب المستوى داخل الصف، بحيث تلي جميع البيانات الحمراء للصف 0 جميع البيانات الخضراء للصف 0، ثم جميع البيانات الزرقاء، ثم بيانات ألفا. يتكرر هذا النمط لكل سطر كما هو موضح في الجدول التالي:
| الصف 0 | RRRRRRRR |
| GGGGGGGGG | |
| BBBBBBBBB | |
| AAAAAAAAA | |
| الصف الأول | RRRRRRRR |
| GGGGGGGGG | |
| BBBBBBBBB | |
| AAAAAAAAA | |
| الصف الثاني، إلخ. | .... |
عندما تكون الصورة أقل من 8 بتات لكل بكسل، يتم إضافة حشو إلى كل سطر حتى يصل إلى حد البايت الزوجي التالي. [ 8 ] على سبيل المثال، إذا كانت الصورة تحتوي على مستوى واحد من البيانات أحادية اللون (1 بت) بعرض 22 بكسل، فسيكون طول كل صف 4 بايتات، أي 32 بت لكل صف مع 10 بتات غير مستخدمة.
ضغط بيانات الصور
تُضغط بيانات صور PCX باستخدام ترميز طول التشغيل (RLE)، وهي خوارزمية ضغط بسيطة بدون فقدان للبيانات، حيث تُدمج سلسلة من ثلاثة بايتات متتالية أو أكثر ذات قيم متطابقة في زوج من بايتين. تُستخدم البتتان الأكثر أهمية في البايت لتحديد ما إذا كانت البيانات المُعطاة تُمثل بكسلًا واحدًا بفهرس لوحة ألوان أو قيمة لونية مُحددة، أو زوج RLE يُمثل سلسلة من عدة بكسلات بقيمة واحدة.
- إذا كانت كلتا البتتين تساويان 1، يُفسَّر البايت على أنه طول السلسلة. وهذا يترك 6 بتات لقيمة طول السلسلة الفعلية، ضمن نطاق يتراوح بين 0 و63.
- في أي حالة أخرى، يُفسَّر البايت كقيمة بكسل واحدة. وهذا يترك جميع القيم التي لا يكون فيها البت رقم 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 بتات، بغض النظر عن عمق بت الصورة.
مراجع
- ↑ نوع MIME .pcx غير مسجل لدى IANA
- 1 2 جيمس د. موراي؛ ويليام فان رايبر (أبريل 1996). موسوعة تنسيقات ملفات الرسومات، الطبعة الثانية . أورايلي . ISBN 1-56592-161-5تم الاطلاع عليه بتاريخ 2014-03-07 .
- ↑ "مواصفات تنسيق ملف ZSoft .PCX" . FileFormat.info . FileFormat.info . تم الاطلاع عليه بتاريخ 29-04-2025 .
مرجع تقني لتنسيق الصور النقطية PCX، نُشر أصلاً بواسطة شركة ZSoft.
- ↑ نير سوفر. "امتداد .pcx" . تم الاسترجاع في 12 يناير 2014 .
- ↑ "نوع الملف: صورة نقطية من برنامج مايكروسوفت بينت براش" . ارتباط ملفات ويندوز . مايكروسوفت . 2013. مؤرشف من الأصل بتاريخ 14-03-2014 . تم الاسترجاع بتاريخ 14-03-2014 .
- ↑ "تنسيقات الصور" . وثائق FFmpeg العامة . 2014. تم الاطلاع عليه بتاريخ 23-02-2014 .
- ↑ "امتداد ملف DCX" . fileinfo.com. 19-02-2010 . تم الاطلاع عليه بتاريخ 14-03-2014 .
- 1 2 دين أنسلي (1991). "دليل مرجعي تقني لتنسيق ملفات ZSoft PCX" . شركة ZSoft. مؤرشف من الأصل بتاريخ 14-03-2014 . تم الاطلاع عليه بتاريخ 14-03-2014 .
- ↑ "تنسيق PCX" . ModdingWiki. 23-06-2012 . تم الاسترجاع في 14-03-2014 .
- تنسيقات ملفات الرسومات النقطية
- امتدادات أسماء الملفات
