سازوكار فشردهسازي فايل چگونه است؟
فشردهسازي فايل مبناي اصلي عملكرد وب است. بدون فشردهسازي فايل، انتقال فايلها نياز به پهناي باند و زمان زيادي دارد. فايلهاي ZIP يا تصاوير JPEG نمونههاي سودمندي از فشردهسازي فايلها هستند. بنابراين شايد از خود بپرسيد: فشردهسازي فايل چگونه انجام ميشود؟ در اين مقاله به مباني فشردهسازي اشاره شده است.
فشردهسازي چيست؟
به بيان ساده، فشردهسازي فايل (فشردهسازي داده) به عمل كاهش اندازهي فايل و درعينحال حفظ اصالت دادهها گفته ميشود؛ با اين كار، فضاي اشغالي فايل در دستگاه حافظه كاهش پيدا ميكند و علاوه بر اين انتقال فايل روي اينترنت و دستگاههاي ديگر آسانتر ميشود.
فشردهسازي عملي بينهايت نيست؛ بااينكه فشردهسازي فايل و تبديل آن به ZIP اندازهي فايل را كاهش ميدهد، اما با فشردهسازي مجدد نميتوان فايل را كوچكتر كرد. بهطوركلي فشردهسازي فايل به دو دسته تقسيم ميشود: با اتلاف و بدون اتلاف.
فشردهسازي با اتلاف
در فشردهسازي با اتلاف با حذف بيتهاي غيرضروري اطلاعات، اندازهي فايل كاهش پيدا ميكند. اين روش براي فشردهسازي تصاوير، ويدئو و فرمتهاي صوتي كه نيازي به ارائهي بينقص رسانهي مبدأ ندارند، متخصصد دارد. براي بسياري از فرمتهاي متداول رسانه ازجمله MP3 و JPEG از اين روش فشردهسازي استفاده ميشود.
فايل MP3 لاخبار تخصصيا شامل تمام اطلاعات صوتي مبدأ نيست؛ بلكه بخشي از صوتهاي غيرقابل شنيدن براي انسان را حذف ميكند. شما متوجه حذف آن اصوات نميشويد بنابراين با حذف اين اطلاعات، حجم فايل به شكلي بينقص كاهش مييابد. بهطور مشابه، JPEG هم بخشهاي غيرضروري تصاوير را حذف ميكند. براي مثال در فشردهسازي تصوير آسمان آبي به فرمت JPEG بهجاي نمايش هزاران سايهروشن متفاوت، يك يا دو سايهروشن رنگ آبي انتخاب ميشود.
بااينحال، هرچقدر فشردهسازي فايلها سنگينتر باشد، افت كيفيت آنها چشمگيرتر است. براي مثال آپلود فايلهاي mp3 كه در يوتيوب آپلود ميشوند، كيفيت پاييني دارند. فشردهسازي با اتلاف، زماني مناسب است كه نيازي به بخش غيرضروري اطلاعات نداشته باشيد. براي مثال در مورد فايلهاي تصويري RAW، تنها زماني به اين فرمت نياز داريد كه بخواهيد تصوير را روي بنري بزرگ چاپ كنيد اما براي آپلود روي شبكههاي اجتماعي مثل فيسبوك نيازي به اين فرمت نيست.
تصوير شامل دادههايي است كه هنگام نمايش در سايتهاي شبكهي اجتماعي ديده نميشود. با فشردهسازي تصوير به JPEG باكيفيت، بخشي از اطلاعات تصوير حذف ميشود، اما تغييري در ظاهر آن به وجود نميآيد.
كاربرد عمومي فشردهسازي با اتلاف
اغلب رسانهها از فشردهسازي با اتلاف استفاده ميكنند. براي مثال اين روش براي شركتهايي اسپاتيفاي و نتفليكس مفيد است كه نياز به انتقال انبوه اطلاعات دارند. آنها با كاهش حداكثري حجم فايل و درعينحال حفظ كيفيت آن، بازدهي خود را بالا ميبرند؛ اما تصور كنيد اگر از اين روش استفاده نشود، فايلهاي ويدئويي يوتيوب چه حجم زيادي را اشغال ميكنند.
درصورتيكه اطلاعات فايل ضروري باشند، فشردهسازي با اتلاف توصيه نميشود. براي مثال استفاده از فشردهسازي با اتلاف براي فايل متني يا صفحهي گسترده ميتواند منجر به تحريف خروجي شود. در چنين شرايطي نميتوان بدون آسيب به محصول نهايي به فشردهسازي پرداخت. هنگام ذخيرهسازي فرمت با اتلاف ميتوان سطح كيفيت را تنظيم كرد. براي مثال بسياري از ويرايشگرهاي تصوير از زبانهي ۰ تا ۱۰۰ براي تنظيم كيفيت JPEG برخوردار هستند.
ذخيرهسازي باكيفيت ۹۰ يا ۸۰، اندازهي فايل را فقط اندكي كاهش ميدهد و تفاوت آن با فايل اصلي قابلچشمپوشي است؛ اما ذخيرهسازي باكيفيت ضعيف يا تكرار ذخيرهسازي فايل با فرمت با اتلاف، ميتواند كيفيت فايل را به شكل چشمگيري از بين ببرد.
فشردهسازي با اتلاف در تصوير زير نشان داده شده است. تصوير سمت چپ، نسخهي اصلي است كه با فرمت JPEG از Pixabay دانلود شده است. تصوير وسط نتيجهي ذخيرهسازي تصوير بهصورت JPEG با كيفيت ۵۰ درصد است و تصوير سمت راست، ذخيرهسازي با كيفيت ۱۰ درصد را نمايش ميدهد.
با نگاهي سريع، ميتوان تشخيص داد تصوير وسط زياد هم بد به انديشه متخصصين نميرسد. البته با بزرگنمايي ميتوانيد متوجه خرابيهايي در اطراف لبهي جعبهها شويد؛ اما تصوير سمت راست ظاهر بسيار بدي دارد. قبل از كراپ كردن تصاوير براي آپلود، اندازهي آنها به ترتيب ۸۷۴ كيلوبايت، ۳۱۰ كيلوبايت و ۱۰۰ كيلوبايت بود.
فشردهسازي بدون اتلاف
فشردهسازي بدون اتلاف، حجم فايل را طوري كاهش ميدهد كه بتوان به بازسازي فايل اصلي پرداخت. اين روش در مقايسه با فشردهسازي بدون اتلاف، هيچ اطلاعاتي را حذف نميكند. بلكه از طريق حذف افزونگي، فايل را كوچك ميكند.
با يك مثال بهتر ميتوان اين تعريف را درك كرد. در تصوير زير ۱۰ آجر اسباببازي را مشاهده ميكنيد: دو آجر آبي، پنج زرد و سه قرمز. اين پشته راه سادهاي براي نمايش آجرها است اما روش ديگري هم براي انجام اين كار وجود دارد.
بهجاي نمايش ۱۰ بلوك آجري، ميتوان از هر رنگ، يك آجر را حذف كرد. سپس از اعداد براي نمايش تعداد آجر هر رنگ استفاده كرد. به اين روش همان اطلاعات با اشغال فضايي كمتر منتقل ميشود؛ بنابراين بهجاي ده آجر دقيقا به سه آجر نياز است.
مثال بالا، نمايش سادهاي از فشردهسازي بدون اتلاف بود. در روش بدون اتلاف، با حذف افزونگي حجم يكساني از اطلاعات بهصورت بهينه ذخيره ميشود... حالا فايلي واقعي را در انديشه متخصصين بگيريد كه رشتهي زير در آن وجود دارد:
mmmmmuuuuuuuoooooooooooo
ميتوان فشردهسازي را به اين صورت انجام داد:
m5u7o12
در مثال فوق ميتوان بهجاي ۲۴ كاراكتر از هفت كاراكتر براي نمايش همان اطلاعات استفاده كرد و به شكل چشمگيري در حافظه صرفهجويي كرد.
كاربرد فشردهسازي بدون اتلاف
فشردهسازي بدون اتلاف در سناريوهايي اهميت دارد كه نميخواهيد هيچكدام از اطلاعات فايل اصلي حذف شوند. براي ساخت فايل ZIP از برنامهي اجرايي در ويندوز از فشردهسازي بدون اتلاف استفاده ميشود. فشردهسازي فايل ZIP روش بهينهاي براي ذخيرهسازي برنامهها است و با خارج شدن فايل از حالت فشرده امكان دسترسي به اطلاعات وجود خواهد داشت؛ بنابراين اگر از فرمت با اتلاف براي فشردهسازي فايلهاي اجرايي استفاده كرده باشيد، نسخهي غير فشردهي آن بياستفاده ميشود.
فرمتهاي متداول بدون اتلاف شامل PNG براي تصاوير، FLAC براي صوت و ZIP است. فرمتهاي بدون اتلاف براي ويدئو بهندرت پيدا ميشوند زيرا ويدئو فضاي بسيار زيادي را اشغال ميكند
هر كدام از روشهاي فشردهسازي در چه شرايطي مناسب هستند؟
حالا پس از مطالعه دو نوع فشردهسازي فايل، شايد اين سؤال مطرح شود كه چه موقع بايد از آنها استفاده كرد. بهطوركلي هيچكدام از روشها بر يكديگر برتري ندارند بلكه بسته به موقعيت و هدف بايد از آنها استفاده كرد.
از فشردهسازي بدون اتلاف بايد زماني استفاده كرد كه بهدنبال كپي بينقصي از اطلاعات منبع باشيد و از فشردهسازي با اتلاف زماني استفاده ميشود كه كپي ناقص هم نياز را برطرف كند. حالا يك مثال ديگر را در انديشه متخصصين بگيريد.
فرض كنيد بخواهيد مجموعه CD قديمي خود را ديجيتالي كنيد بنابراين بايد كل سي دي را روي كامپيوتر كپي كنيد. براي تبديل CD ميتوانيد از فرمت بدون اتلافي مثل FLAC استفاده كنيد. بهاينترتيب كيفيت كپي اصلي روي كامپيوتر مشابه كيفيت اصلي CD است.
حالا فرض كنيد بخواهيد چند ترك موسيقي را روي تلفن همراه يا يك MP3 پلير قديمي بريزيد. در اينجا نيازي به كيفيت بينقص نخواهيد داشت بنابراين ميتوانيد فايلهاي FLAC را به Mp3 تبديل كنيد. اين روش تأثير زيادي روي كيفيت فايل صوتي نخواهد داشت و درعينحال فضاي كمي هم ذخيره خواهد شد. كيفيت تبديل FLAC به MP3 زماني خوب است كه MP3 از CD اصلي توليد شده باشد.
فشردهسازي با اتلاف بيرويه منجر به كاهش كيفيت فايل ميشود
روش فشردهسازي به نوع دادهاي فايل هم وابسته است. ازآنجاكه تصاوير PNG از فرمت بدون اتلاف استفاده ميكنند، مزاياي آنها اندازهي كوچك فايل و درعينحال فضاي يكپارچه است. از طرفي در صورت نمايش رنگهاي بيشتر، PNG-ها فضاي بيشتري را اشغال ميكنند.
چالشهاي فشردهسازي فايل
تبديل فرمتهاي بدون اتلاف به فرمتهاي با اتلاف اشكالساز نيست. بااينحال هرگز نبايد فرمت با اتلاف را به فرمت بدون اتلاف يا هر فرمت ديگري تبديل كنيد. تبديل فرمتهاي با اتلاف به فرمت بدون اتلاف بهمعني هدر دادن فضا است؛ زيرا فرمتهاي با اتلاف معمولا بخشي از دادهها را حذف ميكنند و بازيابي آنها غيرممكن است.
فرض كنيد يك فايل Mp3 با حجم ۳ مگابايت داشته باشيد. تبديل اين فايل به فرمت FLAC، منجر به توليد فايلي ۳۰ مگابايتي ميشود اما ۳۰ مگابايت دقيقا شامل اطلاعات فرمت MP3 است و عملا تغييري حاصل نشده است. تبديل به فرمت بدون اتلاف لاخبار تخصصيا منجر به بازيابي اطلاعات ازدسترفته نميشود.
از طرف ديگر، تبديل فرمت با اتلاف به فرمتهاي ديگر (ذخيرهسازي پيوسته با فرمت با اتلاف) منجر به افت تدريجي كيفيت ميشود؛ زيرا با هر بار اعمال فشردهسازي با اتلاف، بخشي از جزئيات از بين ميرود و افت كيفيت بهتدريج تا خراب كامل فايل خود را نشان ميدهد.
در اين مقاله به عملكرد فشردهسازي با اتلاف و بدون اتلاف اشاره شد. حالا ميدانيد كه ذخيرهسازي فايل با فرمت كوچكتر امكانپذير است و ميتوانيد بهترين روش را براساس نيازهاي خود انتخاب كنيد. البته روش تصميمگيري الگوريتمها در فشردهسازي با اتلاف براي حذف دادههاي اضافي يا بهترين روش ذخيرهسازي دادههاي مضاعف در فشردهسازي بدون اتلاف بسيار پيچيدهتر از اين تعاريف هستند.
هم انديشي ها