أنهيتُ المقال السابق بوعد. قلتُ إنّ الحرف يُخزَّن في بايت، والرقم في بايتات، لكنّي تركتُ السؤال الأهمّ معلّقًا: كيف يصير حرفٌ عربيٌّ، أو صورةُ قطٍّ، أو مقطعُ أغنية، سلسلةً من الأصفار والآحاد فعلًا؟ ما الذي يربط الحرف «A» بالرقم 65؟ ولماذا يزن ملفٌّ عربيٌّ أكثر من ملفٍّ إنجليزيٍّ بالطول نفسه؟
الجواب كلمةٌ واحدة: الترميز. هو الاتّفاق الذي يحوّل العالم، بكلّ حروفه وألوانه وأصواته، إلى أرقامٍ يفهمها الحاسوب، ثمّ يعيدها إلى شكلٍ تفهمه أنت. في هذا المقال ترى كيف يُرمَّز النصّ، ثمّ الصورة، ثمّ الصوت. وستفهم في الطريق سرّ الحرف العربيّ الثقيل، وسرّ الوجه الضاحك الذي يكلّف أربعة بايتات.
النصّ: من جدول ASCII إلى يونيكود
الفكرة في جوهرها بسيطة: نتّفق على جدولٍ يعطي كلّ حرفٍ رقمًا. الحرف «A» رقمه 65، و«B» رقمه 66، وهكذا. الحاسوب يخزّن الرقم، وحين يعرض النصّ يترجم الرقم إلى شكل الحرف. هذا الجدول المتّفق عليه هو ما يُسمّى «الترميز».
أوّل جدولٍ ساد كان ASCII، وضِع في الستّينيّات. خصّص سبعة بتاتٍ لكلّ حرف، فأعطى 128 رمزًا: الحروف الإنجليزيّة كبيرها وصغيرها، والأرقام العشرة، وعلامات الترقيم، ورموز تحكّمٍ خفيّة. رقمٌ كافٍ للإنجليزيّة تمامًا.[1]
ومن رموز التحكّم الخفيّة تلك رموزٌ لا تُطبَع لكنّها تعمل، مثل رمز «سطرٍ جديد» الذي يقفز بالكتابة إلى السطر التالي، ورمز «المسافة الأفقيّة». هي أرقامٌ في الجدول مثل الحروف تمامًا، لكنّها تأمر لا تُرى. لهذا حين تضغط زرّ الإدخال في الكتابة، أنت في الحقيقة تُدرج رقمًا خفيًّا يقول للبرنامج «ابدأ سطرًا جديدًا». حتّى الفراغ بين الكلمات حرفٌ له رقمه.
لكنّ العالم لا يكتب بالإنجليزيّة وحدها. أين العربيّة؟ أين الصينيّة والروسيّة واليونانيّة؟ لم يكن لها مكانٌ في جدول الـ128. فحاولت كلّ لغةٍ أن تحشر حروفها في جداول إضافيّةٍ خاصّةٍ بها تُسمّى «صفحات الترميز»، فصار للعربيّة صفحةٌ وللعبريّة أخرى، لكلٍّ أرقامها المختلفة.
وهنا وُلدت الفوضى. الرقم نفسه يعني حرفًا عربيًّا في صفحةٍ وحرفًا روسيًّا في أخرى. فإذا فتحتَ ملفًّا عربيًّا بترميزٍ خاطئ، ظهر لك طلاسم لا معنى لها، تلك الرموز المكسورة التي عانى منها كلّ مستخدمٍ عربيٍّ قديمًا. المشكلة لم تكن في جهازك، بل في غياب جدولٍ موحّدٍ للبشريّة كلّها.
تذكّر بريدًا عربيًّا قديمًا فتحتَه فإذا هو «Ø±Ø³Ø§Ù„Ø©» بدل «رسالة». لم يُصَب حاسوبك بعطل. ما حدث ببساطة أنّ من كتب الرسالة استعمل صفحة ترميزٍ، وحاسوبك قرأها بصفحةٍ أخرى، فترجم الأرقام نفسها إلى حروفٍ خاطئة. الرموز المكسورة كانت لغة سوء التفاهم بين الأجهزة قبل يونيكود، وقد عانى منها العرب أكثر من غيرهم بحكم تعدّد صفحاتهم.
الحلّ جاء باسم «يونيكود». فكرته طموحة: جدولٌ واحدٌ يجمع كلّ حروف كلّ لغات الأرض، لكلّ حرفٍ رقمٌ فريدٌ يُسمّى «نقطة الترميز» لا يتكرّر أبدًا. الحرف العربيّ «ب» له رقمه، والوجه الضاحك له رقمه، والحرف الصينيّ له رقمه، في جدولٍ واحدٍ لا لبس فيه.[2]
يونيكود اليوم يضمّ أكثر من 150 ألف رمزٍ من كلّ نظم الكتابة، والعربيّة تسكن فيه نطاقًا يبدأ من النقطة U+0600. لم تعد هناك صفحاتٌ متضاربة، ولا طلاسم. رقمٌ واحدٌ لكلّ حرفٍ في العالم. لكن يبقى سؤال: كيف يُخزَّن هذا الرقم فعلًا في بايتات؟ هنا يدخل بطل القصّة.
ويونيكود ليس جدولًا جامدًا، بل ينمو كلّ عام. تُضاف إليه لغاتٌ قديمةٌ ونظم كتابةٍ منقرضةٌ ورموزٌ تعبيريّةٌ جديدة، وتصدر منه نسخةٌ محدّثةٌ سنويًّا تقرّرها هيئةٌ عالميّةٌ ترعاه. حين ترى رمزًا تعبيريًّا جديدًا يظهر في هاتفك بعد تحديث، فذلك لأنّ يونيكود أضافه ووصلك عبر التحديث. جدولٌ حيٌّ يواكب لغة البشر التي لا تتوقّف عن التغيّر.
قبل ذلك، تنبيهٌ يزيل التباسًا. الرقم في يونيكود يحدّد «هويّة» الحرف لا «شكله». الرقم يقول «هذا حرف ألف»، لكنّ رسمه على الشاشة مهمّة الخطّ (Font). الخطّ مجموعةٌ من الأشكال المرسومة لكلّ حرف، فالحرف نفسه يظهر بخطٍّ مزخرفٍ أو بسيطٍ حسب الخطّ المختار، والرقم واحدٌ لا يتغيّر. لهذا يبقى نصّك نصًّا مهما غيّرت خطّه.
UTF-8: لماذا يزن الحرف العربيّ ضعف الإنجليزيّ
مهمٌّ أن تفرّق بين شيئين يخلط بينهما كثيرون. يونيكود جدولٌ يعطي كلّ حرفٍ رقمًا، لكنّه لا يقول كيف يُخزَّن هذا الرقم في بايتات. تلك مهمّة «الترميز» بالمعنى الضيّق، وأشهره اليوم UTF-8، الذي يرمّز به أكثر من 98% من صفحات الويب.[3]
عبقريّة UTF-8 أنّه متغيّر الطول. لا يعطي كلّ حرفٍ العدد نفسه من البايتات، بل يعطي الحروف الشائعة بايتاتٍ أقلّ. الحروف الإنجليزيّة والأرقام، وهي الأولى في الجدول، تأخذ بايتًا واحدًا فقط، تمامًا كما في ASCII القديم. لهذا يبقى UTF-8 متوافقًا مع الملفّات الإنجليزيّة القديمة كلّها، وهذه إحدى أذكى قراراته.
أمّا الحرف العربيّ فيأخذ بايتين اثنين، لأنّ موقعه في الجدول أبعد. وهنا جواب السؤال الذي بدأتُ به: ملفٌّ نصيٌّ عربيٌّ يزن قرابة ضعف ملفٍّ إنجليزيٍّ بالطول نفسه، لأنّ كلّ حرفٍ عربيٍّ يكلّف بايتين لا بايتًا. ليست مؤامرةً على العربيّة، بل نتيجةٌ طبيعيّةٌ لموقعها في جدولٍ رتّب الحروف الأكثر استعمالًا في العالم أوّلًا.
وتزداد القصّة طرافةً مع الرموز التعبيريّة. الوجه الضاحك 😎 رقمه في يونيكود كبيرٌ جدًّا، U+1F60E، فيحتاج أربعة بايتاتٍ كاملة. أي أنّ رمزًا تعبيريًّا واحدًا يكلّف من المساحة ما تكلّفه أربعة أحرفٍ إنجليزيّة. وبعض الرموز المركّبة أعجب: الوجه المهنيّ 👩💻 مكوّنٌ من عدّة رموزٍ ملتصقة، فيصل وزنه إلى أحد عشر بايتًا لرمزٍ واحدٍ تراه صورةً بسيطة.
وهنا يتّضح سرٌّ لاحظتَه ربّما: لماذا يبدو الرمز التعبيريّ نفسه مختلفًا بين آيفون وأندرويد؟ لأنّ ما يُرسَل هو الرقم فقط، لا الصورة. آبل ترسم للرقم U+1F60E وجهها الخاصّ، وجوجل ترسم له وجهها المختلف. الرقم واحدٌ، والرسم يخصّ كلّ منصّة، تمامًا كما يختلف شكل الحرف باختلاف الخطّ. فحين يصلك وجهٌ يبدو غريبًا، فالسبب أنّ جهاز المرسِل رسمه غير جهازك.
هذه ليست تفاصيل عابرة. حين ترسل رسالةً مليئةً بالرموز التعبيريّة، أنت ترسل بياناتٍ أثقل ممّا لو كتبتَ الكلمات. وحين يحدّد موقعٌ عدد الأحرف المسموح، قد يحسب الرمز التعبيريّ الواحد بأربعة. فهمك أنّ كلّ رمزٍ له وزنٌ بالبايت يفسّر سلوكياتٍ كثيرةً تبدو غامضة.
ولك أن تسأل: لماذا UTF-8 بالذات وليس غيره؟ لأنّ له إخوةً لم ينجحوا مثله. UTF-16 يعطي كلّ حرفٍ بايتين على الأقلّ، فيُهدِر المساحة في النصوص الإنجليزيّة، وUTF-32 يعطي كلّ حرفٍ أربعة بايتاتٍ ثابتة، وهو أوضح لكنّه أبذر. انتصر UTF-8 لأنّه يجمع الحسنيين: توافقٌ تامٌّ مع ASCII القديم، واقتصادٌ في المساحة يعطي كلّ حرفٍ ما يستحقّه لا أكثر. لهذا صار لغة الويب الافتراضيّة.
الصور: شبكةٌ من الأرقام الملوّنة
وبعد الحرف، تأتي الصورة. الصورة الرقميّة، حين تكبّرها كثيرًا، تنكشف عن مربّعاتٍ صغيرةٍ ملوّنة تُسمّى البِكسلات. كلّ بِكسلٍ نقطةٌ واحدةٌ بلونٍ واحد، والصورة كلّها شبكةٌ من هذه النقاط. صورةٌ بأبعاد 1920 في 1080 تحوي أكثر من مليونَي بِكسل، كلٌّ منها له لونه المخزّن رقمًا.
وهذه الأبعاد بالذات هي ما تسمعه في وصف الشاشات. حين يقال شاشةٌ بدقّة 1080p، فالمعنى أنّها 1920 بِكسلًا عرضًا و1080 ارتفاعًا. ودقّة 4K تعني نحو أربعة آلاف بِكسلٍ عرضًا، أي أربعة أضعاف عدد بِكسلات 1080p تقريبًا. كلّما زادت البِكسلات، حدّت الصورة وثقلت بياناتها. فالرقم الذي يزيّن به التلفاز والهاتف ليس إلّا عدد النقاط التي يرسم بها كلّ صورة.
كيف يُخزَّن اللون رقمًا؟ بنظام يُسمّى RGB. كلّ لونٍ يُصنَع بمزج ثلاثة أضواء: أحمر وأخضر وأزرق. لكلٍّ من هذه القنوات الثلاث قيمةٌ من صفرٍ إلى 255، أي بايتٌ واحدٌ لكلّ قناة، كما عرفتَ في مقال البايت. ثلاثة بايتاتٍ لكلّ بِكسل.
احسب ما ينتج. ثلاث قنواتٍ كلٌّ منها 256 احتمالًا يعني 256 مضروبةً في نفسها ثلاث مرّات، أي قرابة 16.7 مليون لونٍ ممكن. هذا ما يُسمّى «الألوان الحقيقيّة»، وهو أكثر ممّا تميّزه العين البشريّة أصلًا. من ثلاثة أرقامٍ بسيطةٍ يولد كلّ لونٍ رأيته على أيّ شاشة.
والآن يتّضح لماذا الصور ثقيلة. صورةٌ من مليونَي بِكسل، كلّ بِكسلٍ ثلاثة بايتات، تعني قرابة ستّة ميغابايتٍ قبل أيّ ضغط. وصورةٌ من كاميرا هاتفٍ بدقّة اثني عشر ميغابِكسل تتجاوز ستّةً وثلاثين ميغابايتًا خامًا. لهذا اختُرِعت صيغ الضغط مثل JPEG، التي تقلّص هذا الحجم إلى أجزائه دون أن تلاحظ العين فرقًا كبيرًا.
وقد تحتاج الصورة قناةً رابعةً غير الثلاث، تُسمّى «ألفا»، تسجّل الشفافيّة: كم يشفّ البِكسل عمّا خلفه. هذه القناة الرابعة تضيف بايتًا رابعًا لكلّ بِكسل، وهي سرّ الصور ذات الخلفيّة الشفّافة في صيغة PNG التي يستعملها المصمّمون لوضع شعارٍ فوق أيّ خلفيّة. ثلاثة بايتاتٍ للّون، ورابعٌ للشفافيّة.
وهنا فرقٌ عمليٌّ بين صيغتين ستصادفهما دائمًا. JPEG ضغطٌ «مُفقِد»: يحذف تفاصيل يظنّ أنّ العين لن تفتقدها، فيصغّر الحجم كثيرًا لكنّه يفقد جزءًا من الجودة لا يعود، ويناسب الصور الفوتوغرافيّة. وPNG ضغطٌ «غير مُفقِد»: يحافظ على كلّ بِكسلٍ كما هو دون خسارة، فيكون أثقل لكنّه أدقّ، ويناسب الشعارات والصور ذات الحوافّ الحادّة والنصوص. اختيار الصيغة الخطأ يعني إمّا حجمًا زائدًا أو جودةً ضائعة.
وكيف يضغط الحاسوب أصلًا؟ بالبحث عن الأنماط والتكرار. لو كانت في صورةٍ سماءٌ زرقاءُ من ألف بِكسلٍ متطابق، فبدل تخزين اللون ألف مرّة، يخزّن الضغط «هذا اللون مكرّرٌ ألف مرّة». هذه الفكرة البسيطة، إيجاز المتكرّر، هي جوهر الضغط غير المُفقِد. أمّا المُفقِد فيضيف إليها حذف ما لا تدركه الحواسّ. الضغط ليس سحرًا، بل ذكاءٌ في اكتشاف ما يمكن اختصاره.
ولم تعد الساحة محصورةً في JPEG وPNG القديمين. ظهرت صيغٌ حديثةٌ أذكى: WebP من جوجل، وAVIF الأحدث، وHEIC التي تستعملها آيفون افتراضيًّا. هذه تعطي جودةً مماثلةً بحجمٍ أصغر بكثير، أحيانًا نصف حجم JPEG أو أقلّ. لهذا صارت المواقع تتحوّل إليها لتسريع تحميل صفحاتها، وصار هاتفك يلتقط صورًا أخفّ دون أن تخسر جودة. التطوّر في الضغط لا يتوقّف.
ولنعمّق فكرة اللون قليلًا. قلتُ إنّ كلّ قناةٍ بايتٌ واحد يعطي 256 درجة، وهو ما يكفي معظم الشاشات. لكنّ الشاشات الحديثة عالية النطاق (HDR) صارت تستعمل عشرة بتاتٍ لكلّ قناةٍ بدل ثمانية، فترتفع الدرجات إلى أكثر من ألفٍ لكلّ لون، ومليارات الألوان إجمالًا. النتيجة تدرّجاتٌ أنعم وألوانٌ أزهى، بثمن ملفّاتٍ أثقل. كلّما زادت البتات لكلّ بِكسل، دقّ اللون وثقل الملفّ، وهي المقايضة نفسها في كلّ مكان.
وتحمل الصورة معها أكثر من بِكسلاتها. مخزّنٌ في ملفّها بياناتٌ خفيّةٌ تُسمّى «الوصفيّة» أو EXIF: نوع الكاميرا، وتاريخ الالتقاط، وإعدادات العدسة، وربّما موقع التصوير الجغرافيّ. مفيدةٌ للتنظيم، لكنّها قد تكشف عنك أكثر ممّا تريد حين تشارك صورةً، إذ قد تحمل مكان بيتك دون أن تدري. معرفتك بوجودها تجعلك تتصرّف بوعيٍ حين تنشر صورك.
النقطيّة مقابل المتّجهة: حكاية التكبير
ما وصفته حتّى الآن نوعٌ واحدٌ من الصور يُسمّى النقطيّ أو الشبكيّ: شبكةٌ من البِكسلات المحدّدة. صور كاميرتك، ولقطات الشاشة، وصيغ JPEG وPNG، كلّها نقطيّة. عيبها يظهر عند التكبير: كبّرها كثيرًا فتظهر المربّعات، وتصير الحوافّ مسنّنةً ضبابيّة، لأنّك تكبّر نقاطًا محدودةً لا تفاصيل تُخترَع.
وهناك نوعٌ آخر مختلفٌ جذريًّا: الصور المتّجهة. هذه لا تُخزَّن كنقاط، بل كوصفٍ رياضيٍّ: «خطٌّ من هنا إلى هنا»، «دائرةٌ مركزها كذا ونصف قطرها كذا». صيغة SVG أشهر مثالٍ عليها. ولأنّها معادلاتٌ لا نقاط، يمكن تكبيرها إلى أيّ حجمٍ فتُعاد رسمها بدقّةٍ كاملةٍ بلا تسنّن.
القاعدة العمليّة تنبع من هذا الفرق. الصور الواقعيّة الغنيّة بالتفاصيل، كالوجوه والمناظر، تحتاج النقطيّ لأنّها لا تُختصَر في معادلات. أمّا الشعارات والأيقونات والخطوط، فالأفضل لها المتّجه، لأنّها تُطبع على بطاقةٍ صغيرةٍ ولوحةٍ إعلانيّةٍ ضخمةٍ بالوضوح نفسه. لهذا يسلّمك المصمّم شعارك بصيغةٍ متّجهةٍ دائمًا.
وممّا يتّصل بهذا مفهوم «الدقّة»، أي عدد البِكسلات في الصورة. صورةٌ تبدو حادّةً على شاشة هاتفٍ صغيرةٍ قد تظهر مهترئةً حين تُطبَع كبيرةً أو تُعرَض على شاشةٍ ضخمة، لأنّ بِكسلاتها المحدودة تُمطّ على مساحةٍ أوسع. لهذا يهتمّ من يطبع بعدد النقاط في البوصة: كلّما كثرت البِكسلات في المساحة الواحدة، حدّت الطباعة. الدقّة العالية تعني بِكسلاتٍ أكثر، وملفًّا أثقل، ووضوحًا أعلى.
الصوت: تقطيع الموجة إلى أرقام
يبقى الصوت. الصوت في الطبيعة موجةٌ متّصلةٌ تتغيّر بسلاسة، والحاسوب لا يفهم إلّا الأرقام المنفصلة. فكيف تتحوّل الموجة المتّصلة إلى أرقام؟ بحيلةٍ اسمها «أخذ العيّنات»: يُقاس ارتفاع الموجة آلاف المرّات في الثانية، ويُخزَّن كلّ قياسٍ رقمًا.
عدد القياسات في الثانية يُسمّى «معدّل أخذ العيّنات». المعيار الشائع للموسيقى 44,100 عيّنةً في الثانية الواحدة، رقمٌ يبدو مبالغًا فيه لكنّه ضروريّ. فكلّما كثرت العيّنات، اقتربت النسخة الرقميّة من الموجة الأصليّة، وصار الصوت أنقى. القياس النادر يعطي صوتًا مشوّهًا مقطّعًا.[4]
ولماذا 44,100 بالذات، لا رقمٌ مدوّر؟ لأنّ الأذن البشريّة تسمع حتّى نحو عشرين ألف اهتزازٍ في الثانية. وثمّة قاعدةٌ رياضيّةٌ تقول إنّ إعادة إنتاج تردّدٍ ما تتطلّب أخذ عيّناتٍ بضعف سرعته على الأقلّ. فضعف العشرين ألفًا أربعون ألفًا، وأُضيف هامشٌ صغير، فاستقرّ الرقم عند 44,100. ليس اعتباطًا، بل حسابٌ دقيقٌ لأقلّ معدّلٍ يغطّي مدى سمعك كاملًا.
وهناك رقمٌ ثانٍ مهمّ: «عمق البِت»، أي كم بايتًا يُخصَّص لكلّ عيّنةٍ لتسجيل ارتفاعها بدقّة. عمق ستّة عشر بِتًا، وهو معيار الأقراص المدمجة، يعطي أكثر من خمسةٍ وستّين ألف مستوًى ممكنٍ لكلّ عيّنة. كلّما زاد العمق، دقّت درجات الصوت وقلّ التشويش. المعدّل والعمق معًا يحدّدان جودة الصوت وحجم ملفّه.
ومن هنا يتّضح ثقل الصوت غير المضغوط. دقيقةٌ واحدةٌ من صوتٍ بجودة القرص المدمج تتجاوز عشرة ميغابايت. لهذا وُجِدت صيغ الضغط مثل MP3 وAAC، التي تحذف من الصوت ما لا تكاد الأذن تسمعه، فتقلّص الحجم إلى العشر أو أقلّ. هي الحيلة نفسها التي رأيتَها في ضغط الصور، مطبّقةً على الأذن بدل العين.
ولمن يريد جودةً كاملةً بلا خسارة، هناك صيغٌ صوتيّةٌ غير مُفقِدةٍ مثل FLAC، تحافظ على كلّ عيّنةٍ كما سُجّلت، مثل PNG في الصور. أثقل من MP3 بكثير، لكنّها الخيار لمن يميّز الفرق ويهتمّ به، كالموسيقيّين ومحبّي الصوت النقيّ. أمّا للاستماع اليوميّ العاديّ فالفرق يكاد لا يُسمَع، وMP3 يكفي ويريح مساحتك.
وحين تنزّل أغنيةً بصيغة MP3، تصادف رقمًا ثالثًا: «معدّل البِت»، مثل 128 أو 320 كيلوبت في الثانية. هذا الرقم يقيس كم بياناتٍ يحتفظ بها الضغط لكلّ ثانيةٍ من الصوت. معدّل 320 أنقى وأثقل، ومعدّل 128 أخفّ وأقلّ جودة. فحين ترى خياراتٍ لجودة التنزيل، أنت تختار بين حجمٍ أصغر وأذنٍ أرضى، والقرار لك حسب سمعك وسعتك.
والفيديو؟ صورٌ متتابعةٌ وصوت
الفيديو ليس نوعًا جديدًا، بل جمعٌ لما سبق. هو سلسلةٌ من الصور المتتابعة، تُعرَض بسرعةٍ تخدع العين فتراها حركةً متّصلة، عادةً أربعًا وعشرين إلى ستّين صورةً في الثانية، مع مسار صوتٍ مرافق. اضرب حجم صورةٍ واحدةٍ في عدد الصور في الثانية في عدد الثواني، تفهم لماذا الفيديو الخام أثقل ما في الحاسوب.
لهذا يعتمد الفيديو على ضغطٍ عنيفٍ أكثر من غيره، بصيغٍ ومعايير مثل H.264 وH.265 وAV1. هذه لا تخزّن كلّ صورةٍ كاملةً، بل تخزّن التغيّر بين صورةٍ والتي تليها فقط، فتوفّر مساحةً هائلة. ولولا هذا الضغط الذكيّ لما وُجِدت خدمات البثّ التي تشاهدها اليوم أصلًا.
وعدد الصور في الثانية، أو معدّل الإطارات، يصنع إحساس الحركة. أفلام السينما تُعرَض عادةً بأربعٍ وعشرين صورةً في الثانية، والألعاب تسعى إلى ستّين أو أكثر لتبدو أنعم استجابة. كلّما زادت الصور في الثانية، نعمت الحركة وثقل الملفّ. هذا الرقم نفسه الذي تراه في إعدادات الكاميرا والألعاب، وقد صرتَ تعرف الآن أنّه ببساطة كم صورةً يعرضها جهازك كلّ ثانية.
ومن هنا يتّضح لماذا يتغيّر وضوح الفيديو أثناء المشاهدة أحيانًا. حين يضعف اتّصالك، تختار خدمة البثّ نسخةً أخفّ بضغطٍ أعنف وبِكسلاتٍ أقلّ لتصل إليك دون تقطّع، ثمّ تعيد رفع الجودة حين يتحسّن الاتّصال. أنت تشاهد الترميز والضغط يعملان أمام عينيك في كلّ مرّةٍ يهتزّ فيها خطّك.
جرّبه بنفسك
افتح محرّر نصوصٍ بسيطًا، واكتب فيه كلمة «hello» واحفظها، ثمّ اكتب في ملفٍّ آخر «مرحبا» بالطول نفسه واحفظها. قارن حجم الملفّين بالبايت من خصائص كلٍّ منهما. ستجد الملفّ العربيّ أكبر، وقد صرتَ تعرف السبب: كلّ حرفٍ عربيٍّ بايتان، وكلّ حرفٍ إنجليزيٍّ بايتٌ واحد. لقد لمستَ الترميز بيدك.
ثمّ خذ صورةً على حاسوبك، وانظر إلى أبعادها بالبِكسل في خصائصها. اضرب العرض في الارتفاع في ثلاثة، وقارن الناتج بحجم الملفّ الفعليّ. ستجد الملفّ أصغر بكثير، والفرق هو ما وفّره الضغط. بهاتين التجربتين البسيطتين تكون قد رأيت الترميز والضغط عيانًا لا نظريًّا.
من البيانات إلى من يعالجها
ويبقى خيطٌ يجمع كلّ ما سبق. الأرقام وحدها لا تكفي؛ يحتاج البرنامج أن يعرف كيف يقرؤها: أهي نصٌّ بترميز UTF-8، أم صورةٌ بصيغة JPEG، أم صوتٌ بصيغة MP3؟ هذه المعرفة تحملها «الصيغة»، وهي التي تخبر جهازك بأيّ برنامجٍ يفتح الملفّ وكيف يفكّ أرقامه. وهذا بابٌ واسعٌ سنطرقه في مقالٍ قادمٍ عن الملفّات وصيغها.
أتممتَ الآن نصف الصورة. عرفتَ في المقال السابق أنّ كلّ شيءٍ أرقام، وعرفتَ هنا كيف يصير النصّ والصورة والصوت أرقامًا فعلًا، عبر جداول ترميزٍ وشبكات بِكسلٍ وعيّناتٍ صوتيّة. صار العالم كلّه، في نظر جهازك، أرقامًا منظّمة.
لكن من يعالج هذا الطوفان من الأرقام؟ من يجمع ويقارن ويقرّر بمليارات المرّات في الثانية ليحوّل هذه الأرقام إلى صفحةٍ تفتحها أو لعبةٍ تلعبها؟ إنّه العقل الذي أشرتُ إليه في المدخل: المعالج. في المقال القادم تدخل جسد الحاسوب من بابه الأهمّ، وترى كيف يفكّر هذا العقل الصغير الذي يحرّك كلّ شيء.
المصادر
- Wikipedia, «ASCII» (128 رمزًا، سبعة بتات، تاريخه). en.wikipedia.org ↩
- Unicode Consortium, «What is Unicode?» (جدولٌ موحّدٌ لكلّ اللغات، نقاط الترميز). unicode.org ↩
- Wikipedia, «UTF-8» (ترميز متغيّر الطول 1-4 بايت: ASCII بايت، العربيّة بايتان، الإيموجي أربعة؛ >98% من الويب). en.wikipedia.org ↩
- Izotope, «Digital audio basics: sample rate and bit depth» (أخذ العيّنات 44.1kHz وعمق البِت). izotope.com ↩