.....
فشرده‎سازی

فشرده سازی چیست؟ و چطور خوب بفشاریم؟

یکی از مهمترین مسایلی که نوع بشر همواره با آن درگیر بوده است، فشرده کردن فایل‎هایش نبوده است. چون اصلا این مسخره‎بازی ها چند سال بیشتر نیست که به وجود آمده‎اند :) ولی بهرحال گاهی اوقات لازم است که فایل‎های خودتان را فشرده کنید و حالا که قرار است اینکار را بکنید، حتما می‎خواهید کمی با فشرده‎سازی و یک برنامه مناسب برای اینکار آشنا شوید.
فرض می‎کنیم که ما یک فایل متنی داریم که در آن عدد یک را تکرار کرده‎ایم. مثلا پنجاه بار. چون این مثال خیلی سنگین بود، اجازه بدهید من با رسم شکل آن را برایتان توضیح بدهم :)

۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱

حالا به جای اینکه، یک ها را بشمارید که ببینید پنجاه تا هستند یا نه ، به ادامه مطلب توجه بفرمایید :) ما می‎خواهیم این فایل را فشرده کنیم تا جای کمتری روی دیسک ما اشغال کند. در حالت فعلی، این فایل پنجاه بایت فضای دیسک را اشغال می‎کند. (البته در واقعیت دقیقا اینطور نیست، ولی ما میگوییم هست، شماهم بگویید هست) حالا ما به جای اینکه این پنجاه یک را به صورت پنجاه عدد یک تنها ذخیره کنیم، می‎توانیم، طبق یک الگوریتمی، آنها را به صورت زیر ذخیره کنیم:

{۱}۵۰

همینطور که مشاهده می‎فرمایید، حالا اطلاعات ما، به جای پنجاه بایت فرضی، فقط پنج بایت فضا روی دیسک مصرف می‎کنند.
تصور کنید ما به جای پنجاه عدد یک، مثلایک میلیون عدد یک داشتیم، در آن صورت چقدر در مصرف فضای دیسک صرفه جویی می‎شد؟ اگر لازم است من یک میلیون یک تایپ کنم تا موضوع کاملا مفهوم بشود. لازم نیست؟ مطمئن هستید؟ اوکی :)

این مثال البته خیلی‎خیلی ساده بود ولی اصل ماجرای فشرده سازی، یک چیزی توی همین مایه ها است. مثلا یک عکس را در نظر بگیرید. نه، اون عکس نه :) عکس یک صفحه تکرنگ آبی مثلا. بخشهای زیادی از این عکس، شامل رنگ آبی است. رنگ آبی هم دارای کد رنگ مشخصی است. پس برای فشرده سازی این عکس، می‎توان بررسی کرد که چند پیکسل با کد رنگ یکسان کنار هم قرار گرفته و بعد با یک الگوریتمی، آن را فشرده کرد.
خب، منبع= تکنامه. به اینکه شما قرار نیست، فردا صبح شرکت نرم‎افزاری تاسیس کنید و برنامه فشرده سازی تولید کنید :) اجازه بدهید برویم سر اصل مطلب و ببینیم، چطور می‎شود فشرده کرد :) برنامه‎ها و الگوریتم‎های زیادی برای فشرده‎سازی وجود دارند. حتی ویندوز هم یک برنامه فشرده‎سازی ساده دارد که می‎توانید با انتخاب فایل‎ها و فولدرهایتان و راست‎کلیک روی آنها، با چند کلیک، آنها را فشرده کنید.

فشرده سازی در ویندوز

من عمدا از فایل‎های JPG برای این مثال استفاده کردم تا موضوع دیگری را توضیح بدهم. اگر شماهم مانند مثال بالا، قصد فشرده‎سازی فایل‎های JPG را داشته باشید، حتما از اینکه درصد فشرده‎سازی آنها خیلی کم است تعجب کرده‎اید. مثلا همین چند فایل بالا حدود ۷۶۸ کیلوبایت فضا روی دیسک اشغال کرده بودند و وقتی که آنها را فشرده کردیم، حجم شان به ۷۶۲ کیلوبایت رسید. یعنی اینهمه تلاش و زحمت مجدانه فقط برای ۶ کیلوبایت. آیا این انصاف است؟ :) دلیل اینکه انواع مشخصی از فایل‎ها درصد فشرده‎سازی پایینی دارند، این است که فرمت خودشان، دارای الگوریتم‎های فشرده سازی است. به همین دلیل است که وقتی شما یک فایل BMP را به JPG تبدیل می‎کنید، حجمش کاهش پیدا می‎کند. چون فرمت JPG دارای الگوریتم‎هایی است که با تجزیه و تحلیل اطلاعات عکس، آنها را به طور فشرده ذخیره می‎کند، هرچند این فشرده سازی از جنس فشرده‎سازی ZIP نیست، اما درهرحال چیز زیادی برای ZIP باقی نمی‎گذارد که خودش را نشان بدهد :)
خب، حالا اگر بیکار هستید، می‎توانید چند فایل BMP پیدا کنید و آنها را فشرده کنید و چند فایل JPG راهم فشرده کنید و به بررسی نتایج حاصله بپردازید. منبع= تکنامه. به اینکه نتایج حاصله را قبلا عرض کردم خدمت‎تان، می‎رویم سر معرفی یک برنامه فشرده‎سازی خوب و رایگان و منبع‎باز، شماهم کارتان تمام شد، تشریف بیاورید :)

دانلود سون زیپ

برنامه فشرده‎سازی ۷zip که لینک دانلودش را بالا مشاهده می‎فرمایید، همان برنامه رایگان و منبع‎بازی است که عرض کرده بودم خدمت‎تان. البته در میهن ما که برنامه چندهزار دلاری هم مفت و مجانی دست به دست می‎شود، صحبت از رایگان بودن کمی بامزه است، اما باید به این نکته توجه بفرمایید که برنامه‎های رایگان یک ویژگی مهم دارند و آن این است که برای نصب کردنشان، احتیاجی به نصب کرک و پچ و قطع کردن اینترنت و … ندارید. شاید برنامه کرک شده به ظاهر کار اصلی خودش را انجام بدهد، اما اینکه کرک آن برنامه در پشت پرده چه بلاهایی سر سیستم‎تان می ‎آورد، به راحتی قابل تشخیص نیست. در نتیجه توصیه من این است که در صورتیکه برنامه رایگانی وجود دارد که امکانات و کیفیت قابل قبولی دارد، دلیلی ندارد که از برنامه‎های کرک شده استفاده کنید. مثلا خود من اصلا از این برنامه‎ها ندارم و توی عکس هم مشخص نیست :)
با کلیک روی دکمه دانلود به صفحه دانلود ۷zip می‎روید. در صفحه دانلود لینک‎های زیادی هست که در حالت معمول شما فقط با یکی از آنها کار خواهید داشت. ۳۲ بیت یا ۶۴ بیت؟ مساله این است. این ۳۲ و ۶۴ مربوط به معماری سیستم عامل‎تان میشود. در ویندوز اگر روی آیکن My Computer یا This Pc یا… راست‎کلیک کنید و Properties را انتخاب کنید، کادری باز می‎شود که اطلاعاتی در مورد سیستم‎تان نمایش می‎دهد. برای تشخیص ۳۲ یا ۶۴ بیت بودن ویندوزتان، به بخش System و قسمت System Type نگاهی بیاندازید. اگر سیستم عامل ۳۲ بیتی داشتید، باید نسخه ۳۲bit-x86 را دانلود کنید و در صورتیکه سیستم عامل‎تان ۶۴ بیتی است، بهتر است نسخه ۶۴bit-x64 را دانلود کنید.
بعد از پایان دانلود برنامه، آن را اجرا کنید. نصب این برنامه معصوم و مظلوم هیچ پیچیدگی خاصی ندارد :) روی دکمه Install کلیک می‎کنید و چند ثانیه منتظر می‎مانید تا نصب به پایان برسد، بعد روی دکمه Close کلیک می‎کنید. تمام شد.

همچنین ببینید:  چطور در Adobe Illustrator فایل PDF چند صفحه‌ای بسازیم؟

حالا برنامه نصب شده و گزینه‎های لازم را به منوی راست‎کلیک شما افزوده است. تازه از زبان شیرین فارسی هم پشتیبانی می‎کند :) حالا کافیست در مرورگر ویندوز، همانطور که در عکس بالا هم مشخص است، فایل‎ها و فولدرهای خود را انتخاب کنید و روی آنها راست‎کلیک کنید و این بار به جای گزینه Send to ، گزینه ۷zip که حالا باید به لیست اضافه شده باشد را انتخاب کنید. در زیرمنویی که باز می‎شود، گزینه “افزودن به آرشیو” یا “Add to Archive” را انتخاب کنید. کادری شبیه به کادر زیر نمایان می‎شود:

7zip

اگر همین حالا روی تایید کلیک کنید، یک فایل فشرده از نوع ۷z در همان مسیری که فایل‎هایتان را انتخاب کرده‎اید ایجاد می‎شود. اما بهتر است قبل از تولید فایل فشرده، یک تغییراتی ایجاد کنیم. مثلا می‎توانید نوع فایل را به Zip تغییر بدهید. در لیست “فرمت آرشیو” گزینه Zip را انتخاب کنید. چرا؟ فرمت ۷z به طور کلی از فرمت Zip بهتر است، اما در صورتیکه قصد دارید این فایل فشرده برای دیگران ارسال کنید، آنها هم باید برنامه ۷Zip را روی سیستم خودشان داشته باشند تا بتوانند، فایل‎های فشرده را استخراج کنند. همه هم که مثل شما با کمالات نیستند :) در نتیجه یا فرمت آرشیو را Zip انتخاب کنید یا لینک این مطلب تکـنامه را هم همراه با فایل ۷z برای دیگران بفرستید :) همانطور که قبلا اشاره کردیم، ویندوز بدون نصب هیچ برنامه جانبی، می‎تواند فایل‎های Zip را باز و استخراج کند، و به همین دلیل در صورتیکه از شرایط کامپیوتر مقصد، بی‎اطلاع هستید، Zip گزینه مناسبی است.
البته یک راه دیگر هم وجود دارد و آن استفاده از “ایجاد آرشیو خود استخراجگر” است. متاسفانه بعضی عبارات بعد از ترجمه به فارسی، ترسناک می‎شوند :) این یکی هم جزو آنهاست. در صورتیکه تیک مربوط به این گزینه را فعال کنید، می‎توانید از مزایای فرمت ۷z بهره ببرید، و در عین حال فایل فشرده‎ای که تولید می‎کنید، روی سیستم‎هایی که ۷zip روی آنها نصب نیست نیز قابل استفاده خواهد بود. شیوه کار به این صورت است که فایل فشرده شما تبدیل به یک فایل اجرایی (exe) می‎شود که کاربران ویندوز، می‎توانند روی آن دوکلیک کرده و مسیری را مشخص کنند تا فایل‎ها در آن مسیر از حالت فشرده خارج بشوند. تنها نکته منفی قضیه این است که چون یک فایل اجرایی تولید می‎شود، سرویس‎دهنگان ایمیل (مثل جیمیل) اجازه ضمیمه کردن آنها را به شما نخواهند داد و باید پسوند فایل را قبل از ضمیمه کردن تعویض کنید و گیرنده هم بعد از دریافت باید پسوند فایل را تعویض کند…
میزان فشرده‎سازی هم یکی دیگر از گزینه‎هایی است که ممکن است بخواهید تغییر دهید. هرچقدر میزان فشرده‎سازی بیشتری را انتخاب کنید، عملیات فشرده‎سازی بیشتر طول می‎کشد و در عوض فایل نهایی حجم کمتری خواهد داشت. البته اینها همه تئوری است و ممکن است در عمل، شاهد اتفاقات دیگری باشید :) ولی امتحان کردن ضرری ندارد.
می‎توانید برای فایل فشرده خود کلمه عبور هم در نظر بگیرید تا دست اغیار را از اطلاعات خصوصی خود کوتاه کنید :) برای این کار می‎توانید از قسمت رمزگذاری استفاده کنید و رمز موردنظر خود را دوبار تایپ کنید.

همچنین ببینید:  ۵ منبع مفید برای یادگیری و آموختن HTML و CSS

در این برنامه بعضی از امکانات و تنظیمات فشرده‎سازی فقط برای فرمت خاصی موجود هستند. مثلا “ایجاد آرشیو خود استخراجگر” فقط برای فرمت ۷z موجود است. یا امکان رمزگذاری برای فرمت آرشیو Tar وجود ندارد و …

یک تفاوت کوچک در زمینه رمزگذاری فایل‎ها در فرمت Zip و ۷z وجود دارد که بد نیست آن را هم مطرح کنیم. در فرمت ۷z امکان رمزگذاری نام فایل وجود دارد که در فرمت Zip این گزینه غیب می‎شود :) اما این گزینه چه کاری انجام می‎دهد؟ وقتی شما فایلی را رمزگذاری می‎کنید، برای دسترسی به اطلاعات موجود در آن، باید رمز صحیح را وارد کنید. اما قبل از وارد کردن رمز هم می‎توانید اسامی فایل‎های فشرده شده را ببینید، انتخاب گزینه “رمزگذاری نام فایل‎ها” اسامی فایلها را رمزنگاری می‎کند و در عمل با نمایش کادر دریافت رمز قبل از نمایش اسامی فایل‎ها، راه هر نوع فضولی را بر فضولان می‎بندد :) به زبان ساده کسی که رمز فایل فشرده شما را نداشته باشد، حتی اسامی فایل‎های موجود در فایل فشرده را هم نخواهد دید، چه برسد به خودشان :)
یک گزینه دیگر هم باقی مانده که شاید روزی روزگاری به درد بخورد و آن قابلیت تقسیم آرشیو به چند فایل است. اگر اهل دانلود فایل‎های حجیم از اینترنت باشید، احتمالا به فایل‎های چند تکه برخورده اید. مثلا هشت فایل ۱ گیگابایتی. در ۷zip می‎توانید آرشیوهای حجیم خود را به چند قسمت تقسیم کنید. چرا؟ فرض کنید می‎خواهید تعداد زیادی فایل و فولدر را فشرده کنید و از آنها روی CD نسخه پشتیبان تهیه کنید. ظرفیت CD ها یا حتی فلش‎دیسک های شما، محدود است و باید به طریقی یک فایل بزرگ را به چند فایل کوچکتر تقسیم کنید. در قسمت “تقسیم به چند بخش” می‎توانید مشخص کنید که فایل حجیم‎تان چگونه تقسیم بشود. در کادر لیستی، گزینه‎های از پیش تعریف شده‎ای که زیاد کاربرد دارند، وجود دارد. مثلا سایز مناسب برای انواع CD ,DVD و حتی Floppy مرحوم :) یک گزینه ۴ گیگابایتی هم وجود دارد که مربوط به محدودیت ۴ گیگابایتی سیستم فایل FAT است، و اگر زبانم لال درایو شما هنوز هم از این سیستم استفاده می‎کند و نمی‎توانید فایل‎های بزرگتر از ۴ گیگابایت را روی آن ذخیره کنید، این گزینه به دردتان می‎خورد :) اما در کنار همه این گزینه‎ها می‎توانید اندازه دلخواه خودتان را هم در کادر تایپ کنید. مثلا ۱M یعنی فایل فشرده به فایل‎های ۱ مگابایتی تقسیم شود. فقط M را فراموش نکنید، چون واحد پیشفرض این قسمت بایت است…

 یک فایل ۱ مگابایتی ۱۰۲۴ کیلوبایت است که خودش ۱۰۲۴ بایت است :) در نتیجه برای اینکه فایل فشرده خود را به قطعات ۱ مگابایتی تقسیم کنید باید عدد ۱,۰۴۸,۵۷۶ را تایپ کنید، یا همان M را به ۱ اضافه کنید :)

خب حالا که فایل فشرده خود را ایجاد کردید، می‎توانید آن را یک گوشه نگه دارید و یا برای دیگران ارسال کنید. برای استفاده از فایل فشرده، می‎توانید روی آن دوکلیک کنید تا ۷zip آن را برای شما باز کند، یا روی اسم فایل راست‎کلیک کنید و گزینه “استخراج فایل‎ها” را برای استخراج در مسیر دلخواه، یا “استخراج در اینجا” برای استخراج فایل‎ها در همان فولدری که هستید انتخاب کنید. یک گزینه “استخراج به اسم فولدر” هم ممکن است در لیست باشد که فایل‎های فشرده را به فولدری با نام فایل فشرده استخراج می‎کند. مثلا اسم فایل فشرده شما technameh.7z است، این گزینه تمامی فایل‎های درون فایل فشرده را در فولدر technameh ذخیره می‎کند.

در پایان این را هم بیافزایم که برنامه‎های فشرده سازی زیادی هستند که به طور رایگان یا پولی یا کرکی :) در اختیار شما هستند و اصول کاری همه آنها تقریبا شبیه هم هست. سون زیپ به لحاظ رایگان و منبع‎باز بودن و پشتیبانی از انواع مختلف فایل‎های فشرده، برای مثال انتخاب شد. این برنامه حجم کمی دارد و به سرعت نصب می‎شود، و تقریبا بیشتر فایل‎های فشرده‎ای که با برنامه‎های فشرده سازی دیگر تولید شده اند، مثل RAR را باز می‎کند و همچنین موفق شده است در چندین بنچمارک معتبر نتایج بسیار خوبی در سرعت و نرخ فشرده سازی به دست بیاورد. حالا دیگر خود دانید :)

در سیستم عامل‎های گوناگون، امکان فشرده‎سازی فضای دیسک نیز وجود دارد که باید در مطلب جداگانه‎ای به آن پرداخت. در این حالت، فایل‎ها و فولدرهای شما به یک فایل جداگانه فشرده تبدیل نمی‎شوند و فرایند فشرده‎سازی و استخراج به صورت لحظه‎ای صورت می‎گیرد.

تکنامه

avatar
من غریبم
مهمان
من غریبم

خیلیم عالی و بامزه :))

تکنامه