الگوریتم فشرده‎سازی

wlkjjcbw0vq2igey0wty.png
با توجه به رشد روز افزون حجم و تعداد فایل‎ها و همچنین محدودیت در فضاهای موجود بر روی حافظه‎های جانبی، سرور‎های اینترنتی و پهنای باند مورد نیاز برای انتقال اطلاعات، جهت نگهداری و ذخیره داده ها باید راه حلی اندیشیده شود.
‏یکی از راه حل‎های مناسب برای این موضوع بحث فشرده‎سازی اطلاعات می‎باشد که در طی ۱۰ ‏سال گذشته بیش از پیش مورد توجه قرار گرفته است.
‏به احتمال زیاد تا به حال نام نرم‎افزارهایی همچون 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 7
‏uha ----- فرمت قابل استفاده در سیستم‎عامل DOS ‏که ویرایش‎های جدیدتر آن با نسخه‎های ویندوز سازگار است
dmg ----- فرمت رایج مورد استفاده در سیستم‎عامل قدرتمد شرکت Apple ‏موسوم به Mac OS X
tar.gz ----- فرمت رایج مورد استفاده در سیستم‎عامل‎های Linux ‏و مبتنی بر آن
‏cab ----- فرمت استاندارد مایکروسافت برای تولید پکیج‎های نصب کننده نرم‎افزاری
‏arc ----- فرمتی جدید در زمینه فشرده‎سازی که توسط نرم‎افزار رایگان FreeArc ارائه شد. فرمت مذکور به دلیل نوپا بودن دارای ایراد‎های بسیاری بوده و همچنان در مرحله بهینه‎سازی اولیه می‎باشد که با استفاده از الگوریتم‎های جدید فشرده‎سازی بسیار بیشتری را فراهم می‎کند
‏ace ----- فرمت انحصاری فشرده‎سازی ارائه شده توسط نرم‎افزار WinACE Archiver
7z ----- فرمت ارائه شده توسط نرم‎افزار رایگان 7zip که در حال حاضر محبوب‎ترین و قوی‎ترین فرمت فشرده‎سازی در دنیا بوده و شرکت‎های بزرگی همچون Adobe با استفاده از آن بسیاری از فایل‎های نصبی خود را ارائه می‎کنند
rar ----- فرمت بسیار محبوب ارائه شده توسط نرم‎افزار WinRAR
‏zip ----- اولین و پرکاربردترین فرمت فشرده‎سازی که در حال حاضر توسط تمامی نرم‎افزارهای فشرده سازی و خود سیستم‎عامل ویندوز پشتیبانی می‎شود
‏در پایان، ذکر این نکته لازم و ضروری است که در تمامی روش‎ها و در استفاده از هر برنامه‎ای هیچ گونه نیازی به سخت افزارهای فوق حرفه‎ای یا پیشرفته وجود نداشته و تنها در صورت استفاده از سیستمی قدرتمندتر، سرعت فشرده‎سازی و بازگشایی اطلاعات افزایش خواهد یافت. بنابراین این گفته که در صورت استفاده از سیستمی قدرتمندتر اطلاعات به مقدار بیشتری فشرده خواهند شد ادعایی بی‎اساس است. همچنین هر برنامه‎ای دارای تنظیماتی می‎باشد که بسته به هر یک جهت باز کردن فایل‎ها از حالت فشرده از حافظه بیشتری استفاده خواهد شد. به این ترتیب شما با داشتن سیستمی معمولی نیز می‎توانید اقدام به فشرده‎سازی اطلاعات نموده و تنها باید مدت زمان بیشتری منتظر بمانید.


مطالب مشابه :


الگوریتم فشرده‎سازی

بسیاری از فایل‎های نصبی خود می‎باشد که بسته به هر یک جهت قالب سایت قالب جوملا




برچسب :