فناوری , کاربردی 114 بازدید

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

معنی فشرده سازی فایل چیست؟

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

لازم به ذکر است که فشرده‌سازی به صورت نامحدود ممکن نیست. با این که فشرده‌سازی یک فایل به صورت ZIP موجب کاهش اندازه آن می‌شود، اما نمی‌توان یک فایل را بی‌نهایت فشرده کرد تا از آن هیچ چیز بر جای نمانَد.

به طور کلی فشرده‌سازی فایل به دو دسته تقسیم می‌شود: با اتلاف و بی اتلاف. در ادامه به توضیح طرز کار هر دو این موارد می‌پردازیم.

طرز کار فشرده سازی فایل به صورت با اتلاف

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

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

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

با این حال هر چه فایل را شدیدتر فشرده‌سازی کنید، افت کیفیت نمایان‌تر می‌شود. احتمالاً با این مشکل در برخی فایل‌های MP3 که روی یوتیوب آپلود می‌شوند برخورد کرده باشید.

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

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

کاربرد عمومی فشرده‌ سازی با اتلاف

همان طور که در بخش قبل اشاره کردیم، فشرده‌سازی با اتلاف برای اغلب انواع رسانه‌ها مناسب است. به همین دلیل فشرده‌سازی برای شرکت‌هایی مانند نتفلیکس یا اسپاتیفای که به طور مداوم مقادیر بالایی از اطلاعات را جابجا می‌کنند امری ضروری است. کاهش اندازه فایل تا حد امکان در عین حفظ کیفیت موجب می‌شود که چنین شرکت‌هایی بتوانند کارهای خود را به طرز مؤثرتری انجام دهند. اصلاً قابل تصور نیست که یوتیوب ویدئوها را در کیفیت اصلی‌شان ذخیره کرده و انتقال دهد.

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

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

فشرده سازی فایل

ذخیره‌سازی تصویر در کیفیت‌هایی در حدود 80 تا 90 درصد موجب کاهش کمی در اندازه فایل می‌شود و تفاوتی که ایجاد می‌شود برای چشم محسوس نیست. اما ذخیره‌سازی در کیفیت‌های پایین یا ذخیره‌سازی مکرر یک فایل در قالب با اتلاف موجب خراب شدن آن می‌شود.

در ادامه نمونه‌ای از این موضوع را می‌بینید. ابتدا اصلی را می‌بینید که با کیفیت واقعی به نمایش درآمده است. تصویر میانه، نتیجه ذخیره‌سازی این تصویر با کیفیت 50 درصد است. تصویر انتهایی نیز همان تصویر اصلی است که با کیفیت 10 درصد در قالب JPEG ذخیره شده است.

تصویر اصلی بدون فشرده‌سازی
تصویر با فشرده‌سازی متوسط
فشرده سازی فایل
تصویر با فشرده‌سازی بسیار بالا

با یک نگاه گذرا می‌بینم که تصویر میانه چندان بد به نظر نمی‌رسد. تنها در صورتی که بزرگنمایی کنید متوجه برخی عوارض عجیب پیرامون کادرها می‌شوید. البته تصویر انتهایی در همان نگاه اول بد به نظر می‌رسد. پیش از کراپ کردن تصاویر برای آپلود اندازه‌های آن‌ها به ترتیب 874، 310 و 100 کیلوبایت بوده است؛ نتیجه این کاهش حجم نیز در کیفیت خروجی کاملاً‌ مشهود است.

طرز کار فشرده‌سازی فایل در روش بی اتلاف

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

به مثال ساده زیر توجه کنید تا معنی این گفته را بدانید. در تصویر زیر یک پشته از 10 آجر لگِو را می‌بینید که دو عدد آبی، پنج تا زرد و سه عدد قرمز هستند. این پشته یک روش ساده برای نمایش این بلوک‌ها است اما روش دیگری نیز به این منظور وجود دارد.

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

این یک بازنمایی ساده از طرز کار فشرده‌سازی بی اتلاف است. در این روش برخی اطلاعات از طریق حذف افزونگی‌ها در روشی بهینه‌تر ذخیره می‌شوند. یک فایل صوتی را تصور کنید که شامل رشته زیر است:

mmmmmuuuuuuuoooooooooooo

آن را می‌توانیم به صورت زیر فشرده‌سازی کنیم:

m5u7o12

بدین ترتیب می‌توانیم با استفاده از 7 کاراکتر به جای 24 کاراکتر همان داده‌ها را نمایش دهیم که ذخیره‌سازی مهمی محسوب می‌شود.

فشرده‌سازی بی اتلاف در کاربردهای روزمره

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

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

فرمت‌های بی اتلاف رایج شامل PNG برای تصاویر، FLAC برای صوت و ZIP برای انواع دیگر فایل‌ها هستند. فرمت‌های بی اتلاف برای ویدئو بسیار نادر هستند، چون ویدئوهای غیرفشرده فضاهای بسیار زیادی اشغال می‌کنند.

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

فشرده سازی فایل

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

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

فرض کنید مجموعه CD-های موسیقی قدیمی خود را جمع کرده‌اید و می‌خواهید آن‌ها را روی کامپیوتر کپی کنید. زمانی که CD-ها را rip می‌کنید، بهتر است از فرمتی مانند FLAC استفاده کنید که بی اتلاف است. بدین ترتیب می‌توانید کپی اصیلی از موسیقی‌هایتان را روی رایانه‌تان داشته باشید که کیفیتی به اندازه CD اصلی داشته باشند.

در ادامه ممکن است بخواهید برخی از این موسیقی‌ها را به گوشی یا MP3 پلیر قدیمی خود منتقل کنید تا بتوانید در هر جایی به آن‌ها گوش دهید. در این حالت شاید کیفیت موسیقی چندان برایتان مهم نباشد و از این رو می‌توانید فایل‌های FLAC را به MP3 تبدیل کنید. بدین ترتیب فایل‌های صوتی شما همچنان بدون نقص قابل شنیدن هستند اما فضای زیادی هم روی دستگاه‌های همراهتان اشغال نمی‌کنند. بدین ترتیب کیفیت MP3 تبدیل شده از FLAC به اندازه MP3 که از فایل‌های CD صوتی تهیه شده‌اند، خواهد بود.

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

دغدغه‌های فشرده‌سازی فایل

همچنان که دیدیم، تبدیل فرمت‌های بی اتلاف به با اتلاف همانند تبدیل یک فرمت بی اتلاف به فرمت بی اتلاف دیگر مشکلی ندارد. با این حال هرگز نباید یک فرمت با اتلاف را به فرمت بی اتلاف تبدیل کنید و باید در زمان تبدیل یک فرمت با اتلاف به فرمت با اتلاف دیگر نیز باید آگاهانه عمل کنید.

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

فرض کنید یک فایل MP3 سه مگابایتی دارید، تبدیل کردن این فایل به یک فایل FLAC موجب ایجاد فایلی با اندازه 30 مگابایت می‌شود، اما این فایل 30 مگابایتی دقیقاً شامل همان صدایی است که فایل MP3 به مراتب کوچک‌تر در بر داشت. تبدیل کردن به فرمت بی اتلاف موجب بازیابی اطلاعاتی که از فرمت MP3 حذف شده‌اند نخواهد شد.

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

سخن پایانی

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

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

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

به عنوان حامی، استارتاپ، محصول و خدمات خود را در انتهای مطالب مرتبط مجله فرادرس معرفی کنید.

telegram
twitter

میثم لطفی

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

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

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