فشرده سازی فايل ها
هدف از فشرده نمودن فايل ها کاهش ظرفيت فايل ها بوده و در زمان استفاده از فايل می بايست مجددا" فايل به حالت اوليه برگردانده شود. در فرآيند فوق بيت هائی از فايل با استفاده از الگوريتم هائی خاص ، از فايل حذف و زمينه کاهش ظرفيت فايل فراهم خواهد شد. در زمان استفاده از فايل با استفاده از الگوريتم فشرده سازی عمليات معکوس انجام و فايل به حالت اوليه خود برگردانده خواهد شد. در ادامه به برخی از روش های فشرده سازی اطلاعات اشاره خواهد شد.
يافتن افزونگی در فايل
جمله زير از 17 کلمه ، 61 حرف ، 16 فضای خالی ، يک نقطه و يک dash ، تشکيل شده است :
"Ask not what your country can do for you -- ask what you can do for your country." |
• کلمه "ask" ، دو مرتبه تکرار شده است .
• کلمه "what" ، دو مرتبه تکرار شده است .
• کلمه "your" ، دو مرتبه تکرار شده است .
• کلمه "country" ، دو مرتبه تکرار شده است .
• کلمه "can" ، دو مرتبه تکرار شده است .
• کلمه "do" ، دو مرتبه تکرار شده است .
• کلمه "for" ، دو مرتبه تکرار شده است .
• کلمه "you" ، دو مرتبه تکرار شده است .
با عدم لحاظ نمودن حروف بزرگ و کوچک درعبارت فوق ، مشاهده می گردد که نيمی از اطلاعات موجود در عبارت فوق ، زائد و تکراری می باشند. با دقت در عبارت فوق و نحوه افزونگی اطلاعات مشاهده می گردد که با دارا بودن نه کلمه ask,not,what,your,country,can ،do ،for و you می توان پالايشی مناسبی از عبارت فوق را انجام و در صورت لزوم و با استفاده از نه کلمه فوق ، مجددا" عبارت اوليه را ايجاد نمود. در اين راستا و به منظور ايجاد عبارت فوق کافی است به کلمات موجود در بخش اول ( نصف عبارت ) اشاره و جايگاه و تعداد تکرار هر يک از آنها را در بخش دوم مشخص نمود. در ادامه نحوه فشرده سازی اطلاعات و بازسازی مجدد آنها بررسی می گردد.
فشرده سازی اطلاعات
|
"1 not 2 3 4 5 6 7 8 -- 1 2 8 5 6 7 3 4" |
برای بازسازی مجدد عبارت فوق ، لازم است الگوی معادل آن را با توجه به ديکشنری استخراج و در محل مربوطه قرار داد. برنامه هائی نظير WinZip از فرآيندهای مشابه برای بازسازی مجدد يک فايل و برگرداندن آن به شکل اوليه استفاده می نمايند.
در فرآيند فشرده سازی عبارت اشاره شده در بخش قبل به شکل جديد آن ( مطابق جدول بالا ) چه ميزان ظرفيت فايل کاهش پيدا کرده است ؟ مطمئنا" عبارت فشرده شده ظرفيت کمتری نسبت به عبارت اوليه خواهد داشت . در اين زمينه لازم است به اين نکته مهم اشاره گردد که ديکشنری ايجاد شده نيز می بايست بهمراه فايل ذخيره گردد. در مثال فوق ، عبارت اوليه برای ذخيره سازی به 79 واحد حافظه نياز داشت . عبارت فشرده شده ( بهمراه فضای خالی ) ، 37 واحد و ديکشنری ( کلمات و اعداد ) ، نيز 37 واحد حافظه را اشغال خواهند کرد. بدين ترتيب ظرفيت فايل فشرده به 74 واحد حافظه خواهد رسيد . با توجه به اطلاعات فوق مشاهده می گردد که عملا" در رابطه با فشرده سازی عبارت فوق به موفقيت های بزرگی نائل نشده ايم . در اين زمينه لازم است به اين نکته اشاره گردد که در مثال فوق ، صرفا" يک " جمله " فشرده شده است . فرض کنيد جمله فوق بخشی از يک سخنرانی يک ساعته باشد ، بديهی است که در سخنرانی فوق احتمال تکرار کلمات فوق بسيار زياد خواهد بود . با ايجاد سيستم ديکشنری ، زمينه استفاده از آن در بخش های بعدی سخنرانی نيز وجود داشته و در ادامه قطعا" ميزان فشرده سازی جملات موجود در متن سخنرانی نتايج مطلوبتری را بدنبال خواهد داشت .
جستجو برای الگوها
اگر يک برنامه فشرده سازی عبارت معروف اشاره شده در بخش قبل را به منظور يافتن افزونگی ، پيمايش نمايد ، پس از دنبال نمودن بخشی از عبارت (ask not what your) ، الگوئی جديد را تشخيص خواهد داد. الگوی فوق حرف "t" بوده که بدنبال آن يک فضای خالی نيز قرار دارد. ( در کلمات "not" و "what" ) . در صورتی که برنامه فشرده سازی الگوی فوق را در ديکشنری مستقر نمايد ، می بايست يک عدد "1" را در هر زمان که با حرف "t" و يک فضای خالی بدنبال آن برخورد می نمايد ، در ديکشنری ثبت نمايد. با ادامه پيمايش عبارت فوق توسط برنامه فشرده سازی ، مشاهده می گردد که الگوی تشخيص داده شده ( حرف t و فضای خالی بدنبال آن ) به ميزان قابل ملاحظه ای در عبارت تکرار نشده و برای ثبت در ديکشنری واجد شرايط مناسب نخواهد بود ، بدين تزتيب الگوی تشخيص داده شده ناديده گرفته شده و عمليات يافتن الگوئی ديگر ، دنبال خواهد گرديد.
در ادامه برنامه فشرده سازی متوجه الگوی "ou" می گردد ، الگوی فوق در کلمات "your" و "country" ، تکرار شده است . در صورتی که عبارت مورد نظر يک فايل طولانی بود ، ثبت و نوشتن الگوی فوق در ديکشنری می توانست به ميزان قابل توجه ای از ظرفيت فايل را کاهش دهد. "ou" ، يکی از ترکيبات متداول استفاده شده در زبان انگليسی است . معيار برنامه فشرده سازی عبارتی است که در حال پيمايش آن است . در ادامه پيمايش عبارت فوق ، يک الگوی مناسبتر تشخيص داده خواهد شد. الگوهای فوق "your" و "country" بوده که هر يک بدفعات تکرار شده اند. تکرار هر يک از کلمات فوق در عبارت معادل ترکيب کلمات "your country" است . در چنين حالتی برنامه قشرده سازی entry موجود در ديکشنری برای الگوی "ou" را با الگوی "your country" ، جايگزين می نمايد. عبارت ترکيبی "can do for" ، نيز در عبارت اصلی تکرار شده است . ( يک مرتبه پس از "your" و يک مرتبه پس از "you" ) . بدين ترتيب الگوی "can do for you" نيز تکراری خواهد بود. بنابراين می توان در عوض نوشتن 15 حرف ( بهمراه قضای خالی ) ، از يک عدد استفاده کرد. در صورت استفاده از الگوی "your country" ، برای 13 حرف از يک عدد معادل استفاده می گردد ، بديهی است که الگوی فوق ناديده گرفته شده در عوض الگوی "r country" و الگوی جديد "can do fo you" ، در ديکشنری ثبت می گردند. برنامه فشرده سازی فرآيند فوق را دنبال و پس از يافتن يک الگو ، محاسبات مربوطه را انجام و الگوی واجدالشرايط را در ديکشنری ثبت خواهد کرد. مهمترين ويژگی "الگوريتم مبتنی بر ديکشنری " ، قابليت تغيير الگوها در زمان فرآيند فشرده سازی است .
با توجه به الگوهائی تشخيص داده شده ، ديکشنری مربوطه بشکل زير خواهد بود . در ديکشنری زير الگوهای تشخيص داده شده ثبت و برای فضای خالی از کاراکتر "__" استفاده شده است .
|
"1not__2345__--__12354" |
تا چه ميزان می توان اطلاعات را فشرده کرد ؟
در صورتی که فايلی دارای تعداد زيادی الگوی تکرار شونده باشد ، ميزان افزونگی اطلاعات موجود در فايل بطرز محسوسی ظرفيت فايل را افزايش خواهد داد. بدين ترتيب در زمان فشرده سازی اين نوع از فايل ها با توجه به وجود الگوهای تکرار شونده ، ظرفيت فايل در حد قابل قبولی کاهش پيدا خواهد کرد .
ميزان فشرده سازی اطلاعات، به الگوريتم استفاده شده توسط برنامه فشرده سازی نيز بستگی دارد. بديهی است استفاده از يک الگوريتم با کارآئی بالا ، نتايج مثبتی را در رابطه با فشرده سازی به ارمغان خواهد آورد.