همه چیز در مورد فشرده‌سازی

WinRAR 5
هرچند ظرفیت ذخیره‌سازی دیسک سخت و درایو‌های نوری و دیسک‌های فلش افزایش چشم‌گیری داشته و سرعت انتقال داده‌ها نیز نسبت به گذشته رشد قابل توجهی را تجربه می‌کند، با این حال به دلایل مختلف ممکن است بخواهیم حجم فایل‌ها را تا حد ممکن کم کنیم.

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

۱- فشرده سازی بدون تغییر در محتوا( Lossless Compression )

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

۲- فشرده‌سازی با تغییر محتوا( Lossy Compression )

همان گونه که دربخش قبل گفته شد، فایل‌های صوتی و تصویری ممکن است حتی با کاهش جزئی کیفیت برای ما قابل قبول باشند. مثلا ممکن است یک تصویر گرفته شده با دوربین دیجیتال دارای ۱۳ مگاپیکسل نقاط رنگی باشد. چنانچه تعداد این نقاط را به ۸ مگاپیکسل کاهش دهیم، حجم فایل به مقدار قابل توجهی کم می‌شود ولی ممکن است کاربرد آن چنانچه قصد چاپش را نداشته باشیم برای ما تفاوتی نکند.
یا ممکن است یک فایل صوتی که با کیفیت ۳۲۰ کیلوبیت در ثانیه ذخیره شده است، با کاهش کیفیت به ۱۲۸ کیلوبیت در ثانیه کاهش حجمی در حدود یک سوم حجم اصلی پیدا کند.

چه فایل‌هایی قابل فشرده‌سازی هستند؟

تمام فایل‌هایی که روی دیسک سخت خود نگهداری می‌کنید قابل فشرده‌سازی نیستند. برخی از انواع فایل‌ها به دلیل اینکه به طور ذاتی فشرده‌شده هستند یا اینکه محتوای آن‌ها شکلی تصادفی دارند، را با هیچ ابزاری نمی‌توان کاهش حجم داد. برای مثال فایل‌هایی با پسوند jpg، mp3، docx، xlsx، zip و موارد بسیار دیگری از قبل فشرده شده هستند و امکان فشرده‌سازی مجدد آن‌ها وجود ندارد.
البته برخی از این فایل‌ها از فشرده‌سازهای ضعیفی استفاده می‌کنند که باعث کم شدن حجم فایل به مقدار ناکافی می‌شوند و همزمان امکان فشرده‌سازی بیشتر را از برنامه‌های دیگر سلب می‌کنند.
دانستن اینکه چه فایل‌هایی از قبل فشرده هستند به بررسی موردی نیازمند است. یک روش ساده برای بررسی این موضوع، آزمون و خطا است.

چگونه فایل‌های فشرده را بیشتر فشرده کنیم؟

فایل‌های فشرده مانند فایل‌های zip و rar در هنگام فشرده‌سازی تنظیماتی را می‌پذیرند. ممکن است تنظیمات انجام شده بهینه نباشد یا نوع فشرده‌ساز انتخاب شده برای نوع فایل‌های محتوا بهترین گزینه نباشد. در چنین حالت‌هایی می‌توان فایل‌های فشرده را استخراج نمود و سپس با فشرده‌ساز مناسب و تنظیمات مناسب نسبت به کاهش حجم مجدد اقدام نمود.

کدام فشرده‌ساز بیشترین قدرت را دارد؟

به طور کلی هیچ برنامه‌ای نمی‌تواند در تمامی حالت‌های مختلف بهترین نتیجه را بدهد. انتخاب بهترین فشرده‌ساز به عوامل مختلفی بستگی دارد که مهم‌ترین آن نوع فایل‌های ورودی است. برای مثال فایل‌های متنی با فشرده‌ساز ppmd به بیشترین فشرده‌سازی ممکن می‌رسند. یا برای فشرده‌سازی برخی فایل‌های اجرایی،‌ فیلترهای خاصی در نرم‌افزارهای WinRAR و ۷Zip وجود دارد که کاهش حجم بیشینه را در این نوع فایل‌ها سبب می‌شوند.
در مورد فایل‌هایی با ترکیب متفاوت و متنوع، یکی از گزینه‌های WinRAR یا ۷Zip از بهترین گزینه‌های موجود هستند.

فشرده سازی چگونه عمل می‌کند؟

فشرده‌سازهای گوناگون با روش‌هایی تقریبا یکسان و جزئیاتی متفاوت حجم فایل‌ها را کاهش می‌دهند. مهم‌ترین اصل در فشرده‌سازی وجود تکرار در محتوای فایل‌ها است. به این معنی که اگر در یک فایل متنی یک جمله یا کلمه چند بار تکرار شده باشد، این جملات و کلمات توسط فشرده‌ساز شناسایی می‌شوند و تنها یک بار در فایل فشرده ذخیره می‌شوند. در نتیجه هرچه تعداد و حجم تکرار در فایل‌ها بیشتر باشد، فشرده‌سازی نتیجه‌ی بهتری می‌دهد.
ممکن است با بسته‌های دانلودی آفیس یا ویندوز که حجمی چند مگابایتی دارند و پس از استخراج به حجمی چند گیگابایتی می‌رسند، مواجه شده باشید. در این بسته‌ها از این اصل فشرده‌سازی برای فریب استفاده می‌شود. برای ساخت این بسته‌ها محتوای تمامی فایل‌ها با متنی یکسان پر می‌شود تا نرم‌افزار فشرده‌ساز بتواند حجم آن‌ها را به کمترین مقدار ممکن برساند. بدیهی است که این ویندوزها و آفیس‌ها هیچ گاه قابلیت نصب را نخواهند داشت.

چگونه تنظیمات فشرده‌سازهای متداول را فرا بگیریم؟

فشرده‌سازهای تخصصی برای کم کردن انواع خاصی از فایل و فشرده‌سازهای عمومی برای کم کردن حجم تمامی انواع فایل‌ها هر یک تنظیمات مخصوص به خود را دارند که فراگیری آن‌ها به مطالعه و بررسی تک به تک نیاز دارد. با این حال برخی تنظیمات در بیشتر این فشرده‌سازها یکسان است.
دو تنظیم Solid Compression و Dictionary Size از موارد عمومی هستند که بیشترین اثر را روی حجم خروجی دارند. در ادامه این دو تنظیم را شرح خواهیم داد.
تنظیم Solid Compression یا فشرده‌سازی جامد، سبب می‌شود تا هنگام فشرده‌سازی فایل‌هایی با تعداد زیاد، تمامی این فایل‌ها ابتدا بر اساس محتوا مرتب شوند و سپس درون یک فایل ذخیره شوند( به صورت مجازی ) سپس این فایل که حجم زیادی دارد به صورت یکجا فشرده شود. در هنگام استخراج نیز، هر فایل با نام و حجم اولیه در محل خودش قرار می‌گیرد. فشرده‌سازی Solid در هنگامی که تعداد فایل‌ها زیاد باشد و محتوای تکراری در این فایل‌ها به وفور یافت شود، اثر قابل توجهی در حجم خروجی دارد.
تنظیم Dictionary Size حجمی از حافظه است که فشرده‌ساز برای نگهداری عبارت‌های تکراری تخصیص می‌دهد. هر چه این حافظه بیشتر باشد، جستجو برای عبارت‌های تکراری بیشتری به انجام می‌رسد. افزایش این مقدار سبب کاهش سرعت فشرده‌سازی و افزایش مصرف حافظه می‌شود ولی لزوما ممکن است سبب افزایش فشرده‌سازی نشود. افزایش بیش از حد Dictionary Size ممکن است باعث پر شدن فضای حافظه و ایجاد مشکل در هنگام فشرده‌سازی و استخراج شود.
به طور خاص در آخرین نگارش فشرده‌ساز WinRAR تنظیماتی وجود دارد که فایل‌های مشابه را شناسایی می‌کند و محتویات آن‌ها را یک بار در فایل نهایی ذخیره می‌کند. روشن است که این تنظیم تنها زمانی اثر دارد که در میان فایل‌های اصلی موارد تکراری وجود داشته باشد.

چگونه سرعت فشرده‌سازی و استخراج را افزایش دهیم؟

سرعت فشرده‌سازی به عوامل گوناگونی بستگی دارد. عوامل مهم عبارتند از: الگوریتم فشرده‌سازی، قدرت پردازنده، حجم و سرعت دیسک سخت و حافظه و محتوای فایل‌ها.
انجام بهترین ترکیب از عوامل فوق به تجربه و آزمون نیازمند است. با این حال برخی از انواع فشرده‌سازها ممکن است تنظیمات و روش‌هایی داشته باشند که سرعت را تا حد ممکن افزایش می‌دهند. برای مثال فشرده‌ساز ۷Zip و WinRAR تنظیماتی دارند که در پردازنده‌های چند هسته‌ای، فشرده‌سازی را با سرعت بیشتری انجام می‌دهند. به طور کلی فشرده‌سازی عملی پردازش محور است و هر چه قدرت پردازنده‌ی شما بیشتر باشد، سرعت فشرده‌سازی بیشتر می‌شود.
برخی از الگوریتم‌های فشرده‌سازی مانند zip در هنگام طراحی با در نظر گرفتن سرعت ساخته شده‌اند هرچند ممکن است حجم خروجی در مقایسه با فشرده‌سازهای کندتر، کمتر باشد.
سرعت استخراج ممکن است وابسته به سرعت فشرده‌سازی تغییر کند یا در برخی انواع فایل‌ها ممکن است عوامل خاص خود را داشته باشد. معمولا سرعت استخراج در فشرده‌سازهای مدرن، آنقدر بالا هست که موضوع قابل توجهی نباشد.

رمزگزاری فایل‌های فشرده

فایل‌های فشرده معمولا تنظیماتی برای رمزگزاری در اختیار کاربران قرار می‌دهند. عملیات رمزگزاری فرآیندی یک طرفه است. یعنی چنانچه رمز فایل فشرده فراموش شود، هیچ راهی جز آزمون و خطا برای یافتن رمز باقی نمی‌ماند. الگوریتم‌های استفاده شده برای رمزگزاری در گذر زمان آنقدر قوی شده‌اند که عملیات آزمون و خطا با توجه به قدرت سخت‌افزارهای امروزی تقریبا بی فایده باشد.

استفاده از فایل‌های فشرده برای نسخه‌های پشتیبان

استفاده از فشرده‌سازها برای گرفتن نسخه‌های پشتیبان ممکن است کاری عاقلانه یا نادرست باشد. درست یا نادرست بودن این انتخاب به عواملی وابسته است. نوع فایل‌های هدف، تنظیمات در هنگام فشرده‌سازی و رمزگزاری یا عدم رمزگزاری عوامل اصلی در این میان هستند.
شاید مهم‌ترین عامل انتخاب صحیح فشرده‌ساز باشد. در هنگام استفاده از فشرده‌ساز برای نیازهای Backup، انتخاب نرم‌افزاری که تنظیمات Recovery را در اختیار شما قرار دهد مهم‌ترین عامل است. از میان فشرده‌سازهای متداول، نرم‌افزار WinRAR حاوی تنظیماتی برای ایجاد Recovery Record است.
فایل‌های فشرده نسبت به آسیب‌های احتمالی در هنگام جابجایی و ذخیره‌سازی بسیار حساس هستند. این حساسیت در مورد فایل‌های فشرده شده به صورت Solid چند برابر می‌شود. به این معنی که تغییر حتی یک باید در یک فایل فشرده از نوع Solid ممکن است تمامی فایل‌های موجود در بسته را از بین ببرد.
بنابراین اگر قصد استفاده از فشرده‌ساز برای پشتیبان‌گیری را دارید، حتما به تعیین Recovery Record مناسب توجه کافی داشته باشید. این تنظیم گارانتی می‌کند که چنانچه تا درصدی از فایل فشرده آسیب ببیند، امکان بازیابی آن به صورت اولیه فراهم خواهد بود. البته این گارانتی به بهای افزایش مقداری بر حجم خروجی خواهد بود.

فایل‌های SFX

بیشتر فشرده‌سازهای مدرن حاوی تنظیماتی هستند که به شما امکان ایجاد فایل اجرایی برای استخراج محتویات فایل فشرده را در اختیار شما قرار می‌دهند. این امکان برخی مواقع می‌تواند ابزاری مفید به حساب آید. هنگامی که بخواهید فایل را برای دیگران ارسال کنید، مطمئن خواهید بود که فایل را به آسانی می‌توانند استخراج کنند. دو نکته‌ی مهم در هنگام استفاده از این تنظیم وجود دارد. نخست امکان ویروسی شدن فایل‌های اجرایی است که این امکان در مورد فایل‌های فشرده بسیار کمتر است. و نکته‌ی دوم، ارسال این فایل‌ها از طریق ایمیل است. اغلب سرویس‌های ایمیل از ارسال مستقیم فایل‌های اجرایی جلوگیری می‌کنند.

تغییر فرمت به جای فشرده‌سازی

گاهی ممکن است بهترین راه برای کاهش حجم، تغییر از یک فرمت نامناسب به یک فرمت مناسب باشد. برای مثال تبدیل از MPEG2 به MPEG4 یا تبدیل از bmp به jpg یا تبدیل از jpg به jpeg2000 و مثال‌های بسیار دیگر.

فشرده‌سازی فایل‌های صوتی و تصویری

فشرده‌سازی فایل‌های چند رسانه‌ای موضوعی تخصصی است و انتخاب صحیح رسانه( avi، mkv، mp4 )، انتخاب صحیح کدک تصویری( DivX، mp4، XviD ) و انتخاب صحیح کدک صوتی ( mp4، aac، ogg ) و همچنین حجم و تراکم جریان‌های صوتی و تصویری تعداد انتخاب‌های بسیاری را در اختیار قرار می‌دهند. چنانچه با جزئیات و تنظیمات قابل انجام آشنا نیستید، اغلب برنامه‌هایی که فایل‌های چند رسانه‌ای را فشرده می‌کنند حاوی تنظیمات از پیش تعریف شده برای دستگاه‌ها و رسانه‌های مختلف هستند. تلویزیون‌های هوشمند، دستگاه‌های چندرسانه‌ای، گوشی‌های موبایل، تبلت‌ها و مرورگرهای اینترنتی هر یک با تعداد محدودی از ترکیب‌های فوق سازگاری دارند که این موضوع انتخاب صحیح را سخت‌تر می‌کند.
بنابراین استفاده از تنظیمات از پیش‌تعریف شده ممکن است بهترین گزینه در این مواقع باشد.

فشرده‌سازی زبان‌های برنامه‌نویسی

اهمیت کاهش حجم و افزایش سرعت نرم‌افزارها به ویژه در دنیای وب، سبب ایجاد ابزارهایی شده است که کدهای برنامه‌نویسی را برای اجرای بهتر و سریع‌تر، کامپایل و فشرده‌سازی می‌کنند. در این فرآیند عملکرد نهایی کد تحت تاثیر قرار نمی‌گیرد ولی حجم کدها تا حد زیادی کم می‌شود. از فشرده‌سازهای متداول می‌توان به Closure Compiler برای کاهش حجم و بهینه‌سازی فایل‌های JavaScript اشاره کرد. این فرآیند تقریبا یک طرفه است و پس از کامپایل، برگشت به حالت اولیه‌ی کد تقریبا نشدنی است.

فشرده‌سازی روی هوا( On The Fly )

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

امکانات جانبی فشرده‌سازها

فشرده‌سازهای مدرن حاوی امکاناتی هستند که در برخی مواقع بسیار مفید خواهند بود. برای مثال، جستجوی فایل‌های تغییر یافته در یک ساعت گذشته و قراردادن آن‌ها در یک فایل فشرده برای ارسال روی وب‌سرور از امکانات جانبی و مفید WinRAR است. یا امکان فشرده‌سازی فایل‌های نصب یک برنامه، استخراج موقتی آن در مقصد و حذف آن‌ها پس از پایان نصب از امکانات جانبی ۷Zip و WinRAR است. امکان رمزگزاری بسیار قدرتمند روی فایل‌های شخصی هم در دو فشرده‌ساز مشهور ۷Zip و WinRAR از گزینه‌های مفید و قابل توجه آن‌ها به شمار می‌رود.
بررسی و مطالعه‌ی مستندات فشرده‌سازها به ویژه برای متخصصان کامپیوتر از ضروریات است.

این نوشته در عمومی ارسال و , , , برچسب شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

یک دیدگاه برای همه چیز در مورد فشرده‌سازی

  1. فرشاد می‌گوید:

    تشکر عالی بود

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>