ضغط مكونات


(sweet3) #1

[CENTER]ضغط الملفات File compression

[/center]

في حال قمت بتنزيل عدة برامج وملفات من الإنترنت من قبل فقد تكون تعرّفت إلى ملفات zip . يعتبر نظام الضغط هذا تطبيقاً ميسوراً خصوصاً لمستخدمي الإنترنت لأنه يمكنهم من تقليل العدد الإجمالي من وحدات المساحة(Bits & Bytes ) لملف ما وبالتالي يصبح نقله أسرع عبر مخدّمات الإنترنت ويحتل مساحة أقل عند حفظه على قرص ما. حالما يتم تنزيل الملف يقوم الحاسب باستخدام برنامج مثل(WinZap أو(Stuffit) لتوسيع الملف وإعادته إلى حجمه الأصلي . وفي حال كان كل شيء يعمل بشكل صحيح فإن الملف المعاد توسيعه هو نفسه الملف الأصلي قبل أن تجري عملية ضغطه من النظرة الأولى يبدو الموضوع غامضاًًً جداً. كيف بالإمكان تقليل عدد البايتات ومن ثم إعادتها إلى وضعها الأصلي فيما بعد؟ على ما يبدو فإن الفكر الأساسية وراء هذه العملية سهلة وبسيطة سنقوم فيما يلي بشرح كيفية إجراء هذه العملية حيث سنتناول كمثال ملفاً صغيراً للغاية يخضع لعملية ضغط.
www.tartoos.com
إيجاد التكرار:
تحتوي معظم ملفات الحاسب تكراراً إلى حد ما فهي تحتوي المعلومات نفسها مدرجة مراراً وتكراراً وببساطة فإن برامج ضغط الملفات تتخلص من هذا التكرار , فعوضاً عن إدراج المعلومة نفسها مرة تلوى الأخرى يقوم برنامج ضغط الملفات بإدراج هذه المعلومة مرة واحدة فقط ومن ثم يعود إليها كلما ظهرت في ا لبرنامج الأصلي , وكمثال على ما ذكر لنلق نظرة على صيغة مألوفة من المعلومات ألا وهي “الكلمات” في خطاب تنصيبه عام/1961 / . أطلق الرئيس الأمريكي جون كينيدي مقولته الشهيرة:Ask not your country can for you . ask "what you can do for your country وترجمتها الحرفية على الشكل التالي " لا تسل ماذا يمكن أن يقدمه لك بلدك. اسأل ماذا يمكنك أن تقدم لبلدك" يوجد في الجملة الإنكليزية/17/ كلمة / 61 / حرف/ 16 / فراغاً , فاصلة واحدة ونقطة واحدة وفي حال كان كل حرف أو فراغ أو علامة ترقيم تأخذ وحدة قياس واحدة من الذاكرة فسيكون حجم الملف الكلي /79 / وحدة و لاختصار حجم هذا الملف لابد من البحث عن التكرار وسنلاحظ ما يلي:www.tartoos.com
"ask " تتكرر مرتين.
"what " تتكرر مرتين.
“country” تتكرر مرتين.
"can " تتكرر مرتين.
"do " تتكرر مرتين.
"for " تتكرر مرتين.
"you " تتكرر مرتين.وبتجاهل الفرق في شكل الأحرف ما بين كبير وصغير فإن نصف الجملة مكرر تقريباً. تسع كلمات هي:(ask, not, what, your, country, can, do, for, you, (تعطي كل ما تحتاجه هذه الجملة لإتمام المعنى .
ولبناء القسم الثاني من الجملة فإن كل ما يلزم هو الإشارة إلى الكلمات في الجزء الأول ووضعها في الفراغات المناسبة مع علامات الترقيم. سنرى فيما سيأتي كيف تقوم أنظمة ضغط الملفات بإنجاز هذه العملية.
www.tartoos.com

آلية البحث عن التكرار:
بغرض تقليص الملفات, تستخدم معظم برامج ضغط الملفات عدة قواميس من المتواليات الحسابية المتوافقة مع" LZ " وتشير’ LZ " إلى اسمي مخترعي المتواليات وهما ‘ Lempel "و"Ziv " فيما يشير " القاموس " إلى المنهج المستخدم في فهرسة أجزاء المعطيات.تختلف أنظمة ترتيب القواميس لكن طريقة إنشائها سهلة وتشبه عملية ترقيم الجداول. وعند استعراض مقولة " كينيدي" الشهيرة يمكن اختيار الكلمات المتكررة ووضعها في فهرس مرقم ومن ثم كتابة الرقم عوضاً عن كتابة الكلمة كلها. وهكذا سيكون لدينا القاموس التالي :
Ask
What
Your
Country
Can
Do
For
You
وبالتالي سيصبح بالإمكان قراءة الجملة على الشكل التالي "not 2345678. 128567341"
عند معرفة طريقة عمل النظام سيصبح من السهل إعادة بناء العبارة الأصلية باستخدام القاموس. وهذا تماماً ما يفعله برنامج فك ضغط الملفات عندها يعيد توسيع الملف الذي يجري تنزيله. ومن ناحية أخرى فإن بعض الملفات المضغوطة تتوسع من تلقاء نفسها. ولإنشاء هذا النوع من الملفات يقوم المبرمج بتضمين الملف المضغوط برنامج توسيع بسيط يعيد الملف آلياً إلى شكله الأصلي حالما يتم تنزيله. لكن ما مقدار المساحة التي تم توفيرها مع هذا النظام؟ إن"not 2345678. 128567341” وبالتأكيد أقصر من "Ask not what your country do for you. Ask what you can do for your country ,ومن المهم عدم نسيان الحاجة إلى حفظ قاموس الضغط مع الملف. إن احتساب مستلزمات ملف ما في مخطط ضغط حقيقي ستكون معقدة بعض الشيء ولكن بالعودة إلى الفكرة القائلة بأن كل حرف أو فراغ يأخذ واحدة قياس واحدة من الذاكرة لوجدنا فورا بأن العبارة كاملة ستحتل/79 / وحدة من الذاكرة فيما ستأخذ الجملة المضغوطة( بما فيها الفراغات) /37 / وحدة والقاموس( الذي يتضمن الكلمات والأرقام) سيأخذ أيضاً/37 / وحدة مما سيجعل حجم الملف الإجمالي/74 / وحدة وبالتالي لا يوجد تقليل ملموس لحجم الملف.
لكن تبقى هذه جملة واحدة فقط ! ويمكن لنا تخيل ما يمكن لبرامج الضغط فعله في حال العمل على بقية خطاب كينيدي حيث سنجد هذه الكلمات بالتأكيد بالإضافة إلى كلمات كثيرة أخرى بالتالي سعيد البرنامج كما سنرى لاحقاً كتابة القاموس الخاص بذلك النص للحصول على تنظيم أكثر فاعلية.www.tartoos.com
البحث عن الأنماط :

في المثال الأنف الذكر قمنا باختيار كل الكلمات المكرّرة ووضعناها في القاموس وكانت هذه الطريقة بالنسبة لنا الأوضح لكتابة القاموس لكن برنامج الضغط يرى الأمر بشكل مختلف تماماً فهو لا يحتوي على أي مفهوم عن الكلمات المنفصلة وإنما يبحث عن الأنماط فقط . ويقوم البرنامج باختيار بعناية لتضمينها في القاموس ليقلل من حجم الملف قدر الإمكان . في حال التعامل مع العبارة المثال من هذا المنظور سيتم التوصل إلى قاموس مختلفة كلياً عندما يقوم برنامج ضغط الملفات بتفحص عبارة كينيدي فأول ما سيظهر بشكل متكرر"not what your ask " هنالك نمط متكرر يمثل في الحرف"t " متبوعا بفراغ بين الكلمتين" not "و"what " . وفي حال قيام برنامج الضغط بكتابة هذه المعلومة في القاموس يمكن كتابة القيمة /1/ في كل مرة يكون فيها الحرف"t " متبوعاً بفراغ . لكن هذا النمط لا يتكرر بشكل كاف في هذه العبارة القصيرة لجعل كتابة هذا المدخل في القاموس مجدياً وبالتالي فإن البرنامج سيمحو هذا النمط .
الشيء التالي الذي قد يلاحظه البرنامج هو ظهور"ou " في كلتا الكلمتين" your"و"country "وفي حال كانت هذه الوثيقة أطول فإن كتابة هذا النمط في القاموس سيوفر الكثير من المساحة حيث تعتبر"ou " تركيبا لغوياً مألوفاً في اللغة الإنكليزية . لكن طالما استمر برنامج ضغط الملفات في العمل على هذه الجملة فإنه سيكتشف بسعة خياراً أفضل ليكون مدخلاً للقاموس . لا تتكرر التركيبة اللغوية"ou " فقط وإنما كامل الكلمتين "your "و"country " , وفي الواقع فهما تتكرران معاً كعبارة واحدة"your country " .
وفي هذه الحال سيمحو البرنامج مدخل القاموس الخاص بـ"ou " ليحل مكانه مدخل آخر هو" your country " وكذلك فإن العبارة"can do for " تتكرر تتبعها "your " مرة و"you " مرة أخرى مشكلة بذلك نمطاً متكرراً هو" can do for you " سيتيح هذا كتابة /15 / حرفااً( بما فيها الفراغات) كرقم واحد . فيما تتيح " your country " كتابة/13 / حرفاً فقط( بما فبها الفراغات) كرقم واحد وبالتالي فإن البرنامج سيعد كتابة" your country " لتكون,r’country" فقط ومن ثم كتابة مدخل منفصل يخص" can do for you" . ويستمر البرنامج بالعمل بهذه الطريقة ليختار كل الأجزاء المتكررة من المعلومات ليقرر بعدها الأنماط التي تجب كتابها في القاموس . وتمثل هذه المقدرة على إعادة الكتابة في القاموس الجزء" المتكيف" من قواميس المتواليات الحسابية المتلائمة مع"LZ " والطريقة التي يقوم بها البرنامج بعمل ذلك معقدة بعض الشيء .www.tartoos.com
لا توجد أهمية كبيرة للمنهج المستخدم حيث باستطاعة نظام البحث المتعمق ضغط الملف بفاعلية أكبر بكثير من طريقة انتقاء الكلمات التي استعرضناها سابقاً. عند استخدام الأنماط المذكورة أعلاه وإضافة "" لتمثل الفراغات سيكون لدينا قاموس اكبر على الشكل التالي :
ask
What
You
r- country
can─ do─ for─you─
وبالتالي جملة أصغر: "1not ─2345 ─12345 " . تحتل هذه الجملة/18 / وحدة من الذاكرة فبما سيأخذ القاموس/41 / وحدة . وهكذا جرى ضغط الحجم الكلي من/79 / وحدة إلى/59 /وحدة وتمثل هذه الطريقة واحدة فقط لضغط العبارة وهي ليست بالضرورة الطريقة الأكثر فاعلية. سنستعرض الآن بعضاً من الطرق التي قد تختلف فيها نسبة الضغط.
مقدار التشذيب؟
إلى أي حد يمكن اعتبار هذا النظام جيداً ؟ تعتمد نسبة تقليل الملف على عدة عوامل منها نوع الملف وحجمه ومنهج الضغط .
في معظم لغات العالم تظهر بعض الأحرف والكلمات معاً في أنماط معينة وتنضغط ملفات النصوص بشكل ممتاز بسبب هذه النسبة العالية من التكرار. وتعتبر نسبة %50 أو أكثر نموذجية بالنسبة للملفات النصية جيدة الحجم وتحتوي معظم لغات البرمجة الكثير من التكرار لأنها تستخدم مجموعة صغيرة نسبياً من الأوامر التي غالباً ما تعمل معاً بشكل أنماط بالمقابل لا يمكن ضغط الملفات التي تحتوي الكثير من المعلومات الفريدة( الغير متكررة) كثيراً , مثل ملفات الجرافيك أوMP3 باستخدام هذا النظام لأنها لا تكرر العديد من الأنماط .www.tartoos.com
في حال احتوى الملف على العديد من الأنماط المتكررة فإن نسبة التخفيض تزداد طرداً مع كبر حجمه. يمكن رؤية ذلك بتفحص مثالنا فإذا كن لدينا المزيد من خطاب كينيدي سنتمكن من العودة إلى الأنماط الموجودة في القاموس بشكل أكبر وبالتالي تخفيض حجم الملف المضغوط أيضا , إن انبثاق أنماط أكثر استخداماً سيتيح إنشاء قاموس أكثر فاعلية. تعتمد هذه الفاعلية أيضا على المتواليات الحسابية المحّددة التي يتم استخدامها في برنامج الضغط حيث يجري تصميم بعض البرامج خصيصاً لاختيار الأنماط في أنواع معينة من الملفات وبالتالي ضغطها بإيجاز اكبر . فيما يحتوي البعض الآخر من البرامج على قواميس ضمن القواميس والذي من شأنه زيادة فعالية ضغط الملفات الكبيرة فقط بطبيعة الحال. وبينما تعمل كل برامج الضغط من هذا النوع اعتماداً على نفس الفكرة الأساسية إلا أن هناك مقداراً من الاختلاف في كيفية التطبيق وسيبقى المبرمجون يحاولون دائماً وضع نظام أفضل.www.tartoos.com
الخسارة وعدمها:
يطلق على نوع الضغط الذي جرى استعراضه هنا " الضغط بدون خسارة" , وذلك لأنه يسمح بإعادة إنشاء الملف الأصلي تماماً كما كان . إن مبدأ" الضغط بدون خسارة" مبني على فكرة تقسيم الملف إلى أجزاء" أصغر" بغرض نقلها أو تخزينها ومن ثم إعادة تجميعها على الطرف الآخر مما يسمح بإعادة استخدامها من جديد. يعمل " الضغط بخسارة" بطريقة مختلفة تماما تقوم هذه البرامج وببساطة بحذف الأجزاء " الغير ضرورية" من المعلومات مما يجعل الملف أصغر . يستخدم أسلوب الضغط هذا كثيراً للتقليل من حجم الملف مع صور" bitmap " والتي تنحو لتكون ضخمة بعض الشيء . ولمعرفة آلية حدوث ذلك لا بد من معرفة الكيفية التي يضغط بها الحاسب صورة ما. لا يستطيع برنامج" الضغط بدون خسارة" فعل الكثير مع هذا النوع من الملفات. وفيما تبدو أجزاء كبيرة من الصورة متشابهة ,السماء بكاملها زرقاء على سبيل المثال فإن الأجزاء الصغيرة المكوّنة لها تختلف بشكل طفيف مع بعضها البعض , ولجعل هذه الصورة أصغر دون تشويه دقتها لا بد من تغيير القيم اللونية لبعض الأجزاء فإذا كانت الصورة سماء كبيرة زرقاء اللون فإن البرنامج سيختار لوناً واحداً أزرق يمكن استعماله مع كل الأجزاء , ثم يعيد البرنامج كتابة الملف بحيث تستند القيمة اللونية لكل جزء من السماء على تلك المعلومة , وإذا عمل منهج الضغط بشكل جيد فلن يستطيع أحد ملاحظة الفرق فيما سينخفض حجم الملف بشكل ملموس. www.tartoos.com
طبعاً لا يمكن استرجاع الملف الأصلي كما هو بعض ضغطه باستخدام" الضغط بخسارة" وإنما سنحصل على تصوّر برنامج الضغط لذاك الملف. ولهذا السبب لايمكن استخدام هذا النوع من الضغط لأي شيء نتحاج لاسترداده تماماً مثلما كان بما في ذلك التطبيقات البرمجية , وقواعد المعطيات وخطابات التنصيب الرئاسية. للامانة منقول