الگوریتم فشردهسازی
با توجه به رشد روز افزون حجم و تعداد فایلها و همچنین محدودیت در فضاهای موجود بر روی حافظههای جانبی، سرورهای اینترنتی و پهنای باند مورد نیاز برای انتقال اطلاعات، جهت نگهداری و ذخیره داده ها باید راه حلی اندیشیده شود.
یکی از راه حلهای مناسب برای این موضوع بحث فشردهسازی اطلاعات میباشد که در طی ۱۰ سال گذشته بیش از پیش مورد توجه قرار گرفته است.
به احتمال زیاد تا به حال نام نرمافزارهایی همچون WinZip و WinRAR را شنیده و با چنین برنامههایی کار کردهاید. این نرمافزارها از معروفترین و قدیمیترین ابزارهای فشرده سازی اطلاعات می باشند.
در این مقاله مختصر قصد داریم تا شما را با فشرده سازی اطلاعات بیشتر آشنا کنیم.
هدف از فشرده نمودن اطلاعات کاهش فضای اشغالی توسط فایل ها و در بعضی از موارد حفظ امنیت اطلاعات میباشد. بعد از فشردهسازی، در زمان استفاده میبایست مجدداً فایل به حالت اولیه بازگردانده شود. در فرآیند فوق قسمتهایی از فایلها با استفاده از الگوریتمهایی خاص، از فایل حذف و با اطلاعاتی کم حجمتر جایگزین میشوند که این امر زمینه کاهش ظرفیت فایل را فراهم خواهد کرد.
مثالی ساده برای فشردهسازی متن: به جمله زیر دقت کنید: ( به جای فضاهای خالی _ قرار گرفته است)
“do_not_ask_what_our_country_can_do_for_you,_ask_what_you_can_do_for_your_country”
همانطور که ملاحظه میکنید در این جمله برخی از کلمات حداقل دوبار تکرار شده که در مجموع با احتساب فضاهای خالی ۸۱ کاراکتر میباشد. اکثر برنامههای فشردهسازی اطلاعات از الگوریتمهای مختلف مبتنی بر دیکشنری به منظور کاهش حجم فایلها استفاده میکنند.منظور از دیکشنری در مبحث فشردهسازی، چیزی شبیه به فرهنگلغات میباشد. به عنوان مثال در فرهنگلغات انگلیسی به فارسی، یک لغت انگلیسی با یک یا چند لغت فارسی جایگزین شده یا به اصطلاح معنی شده است. در بحث فشردهسازی نیز دیکثسزی به این مفهوم است که زنجیرهای از کاراکترها، سمبلها و... با کاراکترهای دیگری به منظور کاهش حجم در فایل اصلی جایگزین میشوند.
سیستم استفاده شده برای سازماندهی دیکشنری متفاوت است و در سادهترین حالت میتواند شامل یک لیست عددی باشد. در این نوع فشردهسازی که سادهترین و ابتداییترین روش فشردهسازی میباشد جدولی به شکل زیر با عنوان دیکشنری ایجاد شده و برای عمل فشردهسازی و عکس این عمل به این جدول مراجعه میشود. (به جای فضاهای خالی _ قرار گرفته است)
با توجه به دیکشنری ایجاد شده عبارت روبرو به صورت زیر خواهد بود. “1_not_2_3_4_5_6_1_7_8,_2_3_8_6_1_7_4_5” | 1=do 2=ask 3what 4=your 5=country 6=can 7=for 8=you |
در مثال فوق عبارت اولیه جهت ذخیرهسازی به ۸۱ واحد حافظه نیاز داشته و عبارت فشرده فاصلهها به ۷۵ واحد احتیاج دارد
(New Sentence) 38 + (Dictionary Size) 37 = 75با توجه به اطلاعات فوق مشاهده میگردد که عملاً در رابطه با فشردهسازی به موفقیت بزرگی نایل نشدیم. در این زمینه لازم است به این نکته اشاره کرد که در مثال فوق صرفاً یک جمله فشرده شده است. حال اگر به جای یک جمله یک متن سخنرانی ۲ ساعته که در حدود ۱۰۰ صفحه میباشد مورد آزمایش قرار گیرد بدیهی است کلمات تکراری زیادی وجود خواهد داشت که میتوان با استفاده از دیکشنری حجم آن را بسیار کاهش داد. در مثال ارائه شده تمام کلمات تکراری انتخاب و در دیکشنری قرار گرفتند که سادهترین روش میباشد. برنامههای فشرده سازی امروزه از مدلهای کاملاً متفاوتی استفاده میکنند که در این روش صرفاً به دنبال الگو هستند. در این مرحله از توضیح مفصل در مورد الگوریتم الگویابی خودداری کرده و به توضیح مختصری اکتفا میکنیم.منظور از الگویابی این است که نرمافزار فشردهساز به اطلاعات و محتوای فایل کاری نداشته و صرفاً به دنبال بهترین الگو به منظور جایگزین کرده دادهها و استفاده در دیکثسنری میباشد. حال به مثال زیر توجه کنید.
(به جای فضاهای خالی _ قرار گرفته است)
در این روش به جای ۸۱ واحد به ۵۳ واحد حافظه نیاز است. “do_not132,123” 13+40=53 | 1=ask_what_you_ 2=can_do_for_you_ 3=r_country |
میزان کاهش ظرفیت یک فایل به عوامل متعددی نظیر نوع فایل، اندازه فایل، روش فشردهسازی و الگوریتم استفاده شده توسط نرمافزار فشردهساز دارد. در اکثر زبانهای طبیعی، حروف و کلمات الگوهای مناسبی را
به صورت جداگانه و یا ترکیبی ایجاد میکنند. بدین ترتیب فشردهسازی فایلهای متنی در مواردی تا ۵۰% کاهش ظرفیت خواهد داشت. در زبانهای برنامه نویسی نیز به دلیل استفاده از مجموعهای از دستورات تکراری، فایلها دارای افزونگی اطلاعات بوده و نتایج خوبی در پی خواهد داشت. اما در مورد فایلهایی که دارای حجم بسیار بالایی از اطلاعات منحصر به فرد بوده (مانند فایلهای گرافیکی، عکس و موسیقی) به دلیل عدم وجود الگوهای تکرار شونده نتیجه خوبی حامل نخواهد شد.
فرمتهای رایج فشرده سازی:از قدیمیترین و معروفترین فرمتهای فشردهسازی میتوان به ZIP و RAR اشاره کرد. در حال حاضر فرمتهای جدیدتری نیز طراحی و ساخته شدهاند که در این قسمت به ذکر چند مورد آنها بسنده میکنیم:
win ----- فرمت اسفاده شده توسط شرکت مایکروسافت در نرمافزارهای ساخت خود مانند دیسک نصب Windows 7uha ----- فرمت قابل استفاده در سیستمعامل DOS که ویرایشهای جدیدتر آن با نسخههای ویندوز سازگار است
dmg ----- فرمت رایج مورد استفاده در سیستمعامل قدرتمد شرکت Apple موسوم به Mac OS X
tar.gz ----- فرمت رایج مورد استفاده در سیستمعاملهای Linux و مبتنی بر آن
cab ----- فرمت استاندارد مایکروسافت برای تولید پکیجهای نصب کننده نرمافزاری
arc ----- فرمتی جدید در زمینه فشردهسازی که توسط نرمافزار رایگان FreeArc ارائه شد. فرمت مذکور به دلیل نوپا بودن دارای ایرادهای بسیاری بوده و همچنان در مرحله بهینهسازی اولیه میباشد که با استفاده از الگوریتمهای جدید فشردهسازی بسیار بیشتری را فراهم میکند
ace ----- فرمت انحصاری فشردهسازی ارائه شده توسط نرمافزار WinACE Archiver
7z ----- فرمت ارائه شده توسط نرمافزار رایگان 7zip که در حال حاضر محبوبترین و قویترین فرمت فشردهسازی در دنیا بوده و شرکتهای بزرگی همچون Adobe با استفاده از آن بسیاری از فایلهای نصبی خود را ارائه میکنند
rar ----- فرمت بسیار محبوب ارائه شده توسط نرمافزار WinRAR
zip ----- اولین و پرکاربردترین فرمت فشردهسازی که در حال حاضر توسط تمامی نرمافزارهای فشرده سازی و خود سیستمعامل ویندوز پشتیبانی میشود
در پایان، ذکر این نکته لازم و ضروری است که در تمامی روشها و در استفاده از هر برنامهای هیچ گونه نیازی به سخت افزارهای فوق حرفهای یا پیشرفته وجود نداشته و تنها در صورت استفاده از سیستمی قدرتمندتر، سرعت فشردهسازی و بازگشایی اطلاعات افزایش خواهد یافت. بنابراین این گفته که در صورت استفاده از سیستمی قدرتمندتر اطلاعات به مقدار بیشتری فشرده خواهند شد ادعایی بیاساس است. همچنین هر برنامهای دارای تنظیماتی میباشد که بسته به هر یک جهت باز کردن فایلها از حالت فشرده از حافظه بیشتری استفاده خواهد شد. به این ترتیب شما با داشتن سیستمی معمولی نیز میتوانید اقدام به فشردهسازی اطلاعات نموده و تنها باید مدت زمان بیشتری منتظر بمانید.
مطالب مشابه :
الگوریتم فشردهسازی
بسیاری از فایلهای نصبی خود میباشد که بسته به هر یک جهت قالب سایت قالب جوملا
برچسب :
آموزش نصب بسته نصبی قالب های جوملا