اکثر طراحان وب سایت با گذر زمان و تجربه، فهمیدهاند که کدام فرمت تصاویر را در هر موقعیت باید استفاده کنند. اغلب افراد نمیدانند که فرمتهای مختلف تصاویر چگونه عمل میکنند و چه زمانی باید از هرکدام استفاده کرد. در این مقاله، به بررسی فنی هرکدام از فرمت های تصویری میپردازیم و الگوریتمهای فشردهسازی آنها را بررسی میکنیم تا بتوانیم در هر شرایطی فرمت مناسب تصاویر را انتخاب کنیم، از جمله JPEG، PNG و GIF که انتخابهای شایع طراحان وب هستند.
آیا JPEG بهترین فرمت عکس است؟
این تکه الگوریتم ۲۵ ساله که ISO 10918 یا همان JPEG نامیده شده در این سالها به خوبی از آزمون ها سربلند بیرون آمده است. حالا، چطور کار می کند؟ و برای چه چیزی خوب است؟ آیا بهترین فرمت عکس برای وب سایت است؟
فشرده سازیه JPEG تصاویر را به بلوک های پیکسلی ۸*۸ برش می دهد، و سپس یک عملیات دیوانه وار روی آنها انجام می دهد. با مقدار زیادی معادلات ریاضی، JPEG هر پیکسل بلوک که لیستی از مقادیر R، G و B تبدیل می کند که در نقاط متوالی فضا آدرس دهی شده اند را به لیست از ضرایب تبدیل می کند که در معادلاتی استفاده می شوند که بلوک را با تفاسیری از موج های انرژی تعریف می کنند. به اصطلاح فنی، الگوریتم فشرده سازی JPEG اطلاعات مربوط به یک تصویر را از دامنه فضایی به دامنه فرکانسی تبدیل می کند.
در عمل، این مورد بدان معنا می باشد که JPEG خیلی در فشرده سازی تصاویری که تُن تکراری دارند خوب است. تصاویری که تعدد رنگ بسیار بالایی دارند و به نرمی بین رنگها جابجا می شوند. در بیان دیگر، JPEG تصور می کند که تصویر شما قرار است کم و بیش مثل یک عکس باشد.
در مقابل، فرمت JPEG در فشرده سازی تصاویری با گوشه های تیز یا بافت هایی با نویز و انرژی بالا بسیار بد عمل می کند – JPEG حلقه هایی دور گوشه ها می گذارد و جزییات ظریف را مات می کند.
برای اینکه این تصاویر به خوبی فشرده شوند، ما باید الگوریتم فشرده سازی دیگری ر استفاده کنیم.
JPEG یکی از بهترین فرمت تصاویر عکس برای سایت است.
آشنایی با فرمت GIF
در اوایل عمر وب، اگر یک تصویری JPEG نبود، GIF بود.
یکی از انواع فرمت های عکس GIF می باشد که از الگوریتم فشرده سازی LZW استفاده می کند که بسیار ساده تر از بازی با ریاضی JPEG است. اساسا الگوریتم LZW داده های تصویر شما را اسکن کرده و یک تکه کد خیلی کوتاه ایجاد می کند که مربوط به بخش هایی می باشد که تکرار شده اند. LZW تکرار را کوتاه می کند. این مورد بدان معنا می باشد که فرمت GIF در فشرده سازی تصاویر که تکه های بزرگی از داده های تکراری دارند بسیار خوب عمل می کند. تصاویری که مقدار کمی تعدد رنگ داشته، در تکه های بزرگ هشتند و جابجایی رنگ در آنها به صورت عملی و به راحتی بر پایه GIF ذخیره می شوند.
با وجود اینکه GIF فرمت ساده ای است قابلیت های تجملی مثل Transparency و انیمیشن را پشتیبانی می کند.
اما GIF در فشرده سازی چیزهایی که حتی تعدد رنگ متوسطی هم دارند افتضاح عمل می کند. همچنین این فرمت محدودیت ۲۵۶ رنگ هم دارد. تبدیل تصویری با تعدد رنگ بیشتر باعث می شود که در نتیجه ی تصویر GIF تصویری با ترکیب رنگی بد داشته باشیم.
به طور خلاصه GIF و JPEG نقاط متضاد و مکمل همدیگر هستند. آنها در گذشته یک تیم قوی در سطح وب می ساختند.
PNG فرمت عکس مناسب وب سایت
در پاسخ به png بهترین فرمت تصویر است بایستی گفت فرمت PNG با تصاویری که GIF عملکرد خوبی با آنها داشته عملکرد قابل قبولی دارد و مزایای اضافه ای هم در بر دارد:
- حذف محدودیت ۲۵۶ رنگ
- کانال آلفا transparency (که اجازه می دهد قسمتی از یک پیکسل transparence باشد)
- در تمامی به جز برخی گوشه ها از فشرده سازی بهتری بهره می گیرد.
این تصویر قابلیت فشرده سازی PNG را در رنگ کامل با transparency نصفه به خوبی نمایش می دهد.
چگونه فرمت PNG میتواند نسبت به GIF برتری داشته باشد زمانی که مسأله فشردهسازی مطرح میشود؟ با افزودن لایههایی به پشته فشردهسازی خود…
اولا، الگوریتم PNG به تلاش برای کاهش حجم دادههای ذخیره شده میپردازد. این کار با استفاده از پیکسلهای شناخته شده و پیشبینی پیکسلهای ناشناخته صورت میگیرد. PNG به وسیله ۵ استراتژی پیشبینی مختلف این کار را انجام میدهد، اما اساساً بر این ایده استوار است که پیکسلهای مجاور به هم شباهت دارند. این پیشبینی واقعیت را در مصرف دادهها بهبود میبخشد و با ذخیره تفاوت بین پیشبینی و مقدار واقعی، فضای کمتری مورد نیاز استفاده میشود.
دوما، PNG تکرار را حذف میکند که به وسیله اشاره به پیکسلهای مشابه در توالیهای قبلی انجام میشود. این کار با استفاده از الگوریتم LZ77 صورت میگیرد. اگر الگوریتمهای LZ77 در PNG را با الگوریتم LZW در GIF مقایسه کنیم، میبینیم که هر دو به یک نتیجه میرسند، یعنی حذف تکرار، اما روش اجرای آنها به قدری متفاوت است که مشکلات حقوقی در زمینه ثبت اختراع بوجود نمیآید. این روشها همگی برنده هستند!
و در پایان، PNG از پردازشی به نام “کدگذاری هافمن” استفاده میکند که سعی دارد با استفاده از کوچکترین کدهای ممکن، مقادیر باقیمانده را فشرده کند.
ترکیب این سه ویژگی در PNG (بدون از دست دادن داده) نسبت به GIF که فقط از یک استراتژی استفاده میکند، مزایای بسیار بیشتری ایجاد میکند. همچنین، ابزارهای مفیدی نیز وجود دارند که میتوانند حتی فشردهسازی را به ضرایب بالاتری انجام دهند.