فشرده سازی تصویر (Image Compression)، کاربردی از فشرده سازی اطلاعات در تصاویر دیجیتال است. هدف از آن کاهش افزونگی (redundancy) محتویات تصویر است برای ذخیره کردن یاانتقال اطلاعات به شکل بهینه.
فشرده سازی تصویر میتواند به صورت بی اتلاف (Lossless) و با اتلاف (Lossy) صورت گیرد. فشرده سازی بی اتلاف برای بعضی تصاویر مثل نقشه های فنی و آیکونها ترجیح داده میشود، به این دلیل که فشرده سازی با اتلاف خصوصاً وقتی برای نرخ بیتهای پایین استفاده شود به کیفیت تصویر لطمه میزند. روشهای فشرده سازی بی اتلاف همچنین ممکن است برای محتویات پر ارزش مثل تصاویر پزشکی یا تصاویر اسکن شده برای بایگانی شدن نیز ترجیح داده شوند. روش با اتلاف مخصوصاً برای تصاویر طبیعی مناسب است که از دست رفتن کیفیت برای دست یافتن به کاهش نرخ بیتقابل توجه باشد.
روشهای فشرده سازی بدون اتلاف عکسها عبارتند از
– کدگذاری بر اساس طولِ ران (run-length encoding)، استفاده شده در روشهای پیشفرض در dcx و یکی از امکانات TIFF ,TGA ,BMP
– entropy coding
– الگوریتمهای مطابق واژهنامه مثل lzw استفاده شده در GIF,TIFF
– کاهش اعتبار (deflation) استفاده شده در TIFF ,MNG ,PNG
روشهای فشرده سازی پراتلاف عبارتند از
کاهش فضای رنگی
کاهش فضای رنگی برای رنگهایی که بیشتر در عکس استفاده شدهاند. رنگی که انتخاب شده در پالت رنگ در بالای عکس فشرده شده مشخص میشود. هرپیکسل فقط به شاخص رنگ در پالت رنگ اشاره داده میشود.‘
chroma subsampling
این روش براساس این واقعیت است که چون چشم انسان تغییرات مکانی روشنایی را سخت تر از رنگ درک میکند به وسیلهٔ میانگینگیری یا حذف کردن برخی از اطلاعات رنگ تابی یک عکس عمل فشرده سازی صورت گیرد.
تغییر شکل دادن کدگذاری (transform coding)
این روش بطور عادی بیشترین استفاده را دارد.
fractal compression
بهترین کیفیت عکس در یک نرخ بیت (یا نرخ فشرده سازی) معین هدف اصلی از فشرده سازی عکس است.
به هر حال ویژگیهای مهم دیگری از رویههای فشرده سازی عکس وجود دارد که عبارتند از: ‘
مقیاس پذیری (scability)
بهطور کلی به کاهش کیفیت حاصل شده در اثر دستکاری گروه بیتی یا فایل گفته میشود. (بدون بازیابی). نامهای دیگر برای مقیاس پذیری،progressive coding یا embedded biststream است. با وجود خلاف واقعی بودنش مقیاسپذیری نیز میتواند در رمز گذارهای (codec) بدون اتلاف یافت شود. مقیاسپذیری خصوصاَ برای پیش نمایش عکسها در حال دریافت کردن آنها یا برای تهیه کیفیت دستیابی متغیر در پایگاههای داده مفید است.
انواع مختلف مقیاس پذیری عبارتند از :
کیفیت مترقی(progressive quality)
یا لایه مترقی (layer progressive) گروه بیتی پی در پی عکس را از نو میسازد.
وضوح مترقی (progressive resoloution)
ابتدا یک عکس وضوح پایین را کدگذاری می کند سپس تفاوتهای وضوح بالاتر را کدگذاری میکند.
مؤلفه مترقی (progressive component)
ابتدا رنگ را کدگذاری میکند.
ناحیه
جذاب کدگذاری (region of interest coding) نواحی خاصی از عکس باکیفیت بالاتری نسبت به سایر نقاط کد گذاری میشوند و میتواند با مقیاسپذیری (کدگذاری ابتدایی یک بخش و دیگران بعداً) ترکیب شود.
اطلاعات
غیر نمادین(meta information) دادههای فشرده شده میتوانند شامل اطلاعاتی در رابطه با عکس باشد که میتوان برای طبقهبندی کردن، جستجو یا بررسی عمومی عکس از آنها استفاده کرد. مانند اطلاعاتی که میتوانند شامل رنگ و الگو و پیش نمایش کوچکتر عکسها و اطلاعات خالق و کپی رایت باشد.
قدرت
پردازش(processing power) الگوریتمهای فشرده سازی اندازههای متفاوتی از قدرت پردازش را برای کدگذاری و کدگشایی درخواست میکنند. بعضی از الگوریتمهای فشردهسازی عالی قدرت پردازش بالا میخواهند.
کیفیت
روش فشرده سازی اغلب به وسیلهٔ سیگنال ماکزیمم به نسبت پارازیت (peak signal-to-noise ratio) اندازهگیری می شوند. اندازه پارازیتها نشان دهند؟ فشرده سازی پراتلاف عکس است به هر حال قضاوت موضوع گرایانه بیننده همیشه بیان کنند؟ اهمیت اندازهگیری است.
Jpeg2000
Jpeg2000 یک استاندارد فشرده سازی عکس براساس wavelet (wavelet-based) است؛ و در سال 2000 بهوسیله کمیته Joint Photographic Experts Group با نیت جایگزین کردن با استاندارد اصلیJpegکه براساس تغییر گسسته(discrete cosine transform-based) است (محصول سال1991) تولید شدهاست. jpeg2000 زمان بیشتری را برای عملیات باز کردن فشردگی نسبت به JPEG طلب میکند.
اثبات از بالا به پایین محصولات فشرده سازی JPEG 2000: شمارهها نشاندهنده ضریب تراکم استفاده شدهاست.برای مقایسه بهتر شکل بدون مقیاس را نگاه کنید. محصولات JPEG 2000 به فرم JPEG متفاوت به نظر میرسند و یک جلوه صیقلی روی عکس وجود دارد و برای نمایان شدن سطوح فشرده سازی بالاتری اختیار می کنند. اغلب یک عکس گرفته شده میتواند به اندازه اندازه فایل اصلی خود(bitmapفشرده نشده) بدون متحمل شدن اثر نمایان شدن فشرده شوند
منبع
فشرده سازی با اتلاف داده و بدون اتلاف داده
بسیاری از افراد احساس میکنند که تنها باید از فرمتهای تصاویری استفاده شود که از تکنولوژی فشرده سازی بدون اتلاف داده بهره میبرند. این نوع فشرده سازی برای بسیاری از تصاویر مناسب است اما در بسیاری از موارد نیازی به آن نیست. استفاده از این نوع فشرده سازی به این معناست که همه دادهها از فایل اولیه حفظ شوند اما فشرده سازی با اتلاف داده برخی دادهها را از فایل اولیه حذف میکند و تصویر را با حجم کم ذخیره میکند. در فشرده سازی با اتلاف داده شما میتوانید بگویید نرخ فشرده سازی تصاویر چقدر باشد و چه میزان از دادهها در نظر گرفته نشود.
فشرده سازی بدون اتلاف داده
روشهای کمی برای فشرده سازی بدون اتلاف داده وجود دارد. روش اولکدگذاری طول اجرا (run-length encoding) است که برای فایلهای BMP استفاده میشود. این روش دادههای متوالی با مقادیر یکسان را میگیرد و آنها را با یک متغیر count که بیانگر طول دادههای یکسان است، ذخیره میکند. این روش برای فایلهای گرافیکی مناسب است زیرا مقادیر داده یکسان بسیاری دارند.
روش دیگر فشرده سازی بدون اتلاف داده، DEFLATE نام دارد که برای تصاویر PNG نیز استفاده میشود. این روش از ترکیب الگوریتم کدینگ هافمن و LZ77 ساخته شده است. از این روش در فشرده سازی gzip و ZIP نیز استفاده میشود. الگوریتم Lempel-Ziv-Welch یا LZW هم یکی دیگر از روشهای فشرده سازی است بدون اتلاف داده است که روی دادهها یک آنالیز ساده و محدود انجام میدهد. از این روش در فرمتهای TIFF و GIF استفاده میشود.
فشرده سازی با اتلاف داده
روشهای فشرده سازی با اتلاف داده محدود هستند، برخی از آنها با روشهای بدون اتلاف داده هم ترکیب میشوند تا فایلهایی با اندازه کوچکتر ایجاد کنند. یکی از این روشها، کاهش فضای رنگ تصویر به متداولترین رنگهای داخل تصویر است. از این روش برخی اوقات در فرمت تصاویر PNG و GIF استفاده میشود.
یک روش دیگر، تبدیل رمزگذاری (Transform encoding) است که برای تصاویر JPEG استفاده میشود. در این روش تصاویر با روش DCT یا تبدیل کسینوس گسسته به بلوکهایی تقسیم میشوند و در نهایت تصویری ایجاد میکنند که رنگهایی کمتر از تصویر اولیه داشته باشد.
نمونهبرداری کروما (Chroma subsampling) نام روش دیگری است که بر مبنای این اصل عمل میکند: «چشم انسان تغییرات در روشنایی را سختتر از تغییر رنگ متوجه میشود.» نمونهبرداری کروما اطلاعات روشنایی را نگهمیدارد و برخی از اطلاعات رنگ را حذف میکند. از این روش در تصاویر JPEG و برخی الگوریتمهای کاهش حجم ویدئو استفاده میشود.
انواع مختلف فایلها
در این مقاله سه فرمت مشترک در طراحی وب یعنی PNG ،JPEG و GIF را معرفی میکنیم. غیر از این سه، تعداد زیادی فرمت دیگر هم وجود دارند که از روشهای فشرده سازی استفاده میکنند، مثل: TIFF ،PCX ،TGA و غیره.
فرمت GIF
GIF یا فرمت تبادل گرافیکی (Graphics Interchange Format) در سال ۱۹۸۷ بهوسیله CompuServe معرفی شد و یک فرمت تصویربرداری است. این فرمت تا ۸ بیت در هر پیکسل را پشتیبانی میکند، یعنی یک تصویر میتواند تا ۲۵۶ رنگ RGB مختلف داشته باشد. یکی از بزرگترین ویژگیهای این فرمت توانایی ایجاد تصاویر متحرک است.
فرمت JPEG
JPEG یا Joint Photographic Experts Group فرمتی برای تصاویر است که از فشرده سازی با اتلاف داده استفاده میکند. یکی از بزرگترین مزیتهای JPEG این است که به طراح اجازه میدهد مقدار فشرده سازی را به میزان لازم تنظیم کند. این کار نتیجه بهتری درباره کیفیت و اندازه مناسب به دست میدهد. چون JPEG از فشرده سازی با اتلاف داده استفاده میکند، تصاویری که با این فرمت ذخیره میشوند مصنوعی به نظر میرسند و میتوان هاله نور عجیبی در قسمتهای خاصی از آنها دید. همچنین در بسیاری از قسمتهای یک تصویر میتوان کنتراست شدیدی بین رنگها مشاهده کرد.
فرمت PNG
PNG یا Portable Network Graphics یک فرمت تصویر است که از فشرده سازی بدون اتلاف داده استفاده میکند و برای جایگزین شدن فرمت GIF ایجاد شده است. این فرمت برای مدت طولانی در اینترنت اکسپلورر پشتیبانی نمیشد که به همین دلیل فرمتهای JPEG و GIF متداولتر شدند؛ اگرچه در حال حاضر PNG در همه مرورگرها پشتیبانی میشود. یکی از بزرگترین مزیتهای PNG این است که از تنظیمات متفاوت شفافیت (transparency)، مانند شفافیت کانال آلفا (alpha channel transparency)، پشتیبانی میکند.
انتخاب یک فرمت فایل مناسب
هر کدام از فرمتهایی که در بالا ذکر شد، برای انواع متفاوتی از تصاویر مناسب هستند. انتخاب فرمت مناسب منجر به کیفیت بالاتر و اندازه فایل کوچکتر میشود. انتخاب یک فرمت اشتباه به این معناست که تصاویر شما کیفیت متناسبی با حجمشان ندارند.
برای تصاویر گرافیکی ساده مانند لوگوها یا ترسیم خطوط، فرمت GIF بهتر کار میکند زیرا GIF پالت رنگ محدودی دارد. اگر پیچیدگی بیشتر باشد بهتر است از فرمت دیگری استفاده شود.
برای تصاویر با گرادیان، فرمت GIF مناسب نیست. در این موارد فرمت JPEG هنگامی مفید است که تصویر کنتراست شدیدی نداشته باشد. برای تصاویری با کنتراست بالا یا تصاویر شفاف، فرمت PNG بهترین فرمت است. در اغلب موارد اندازه تصاویر PNG از JPEG بزرگتر است. توجه کنید که فایلهای PNG از روش بدون اتلاف داده استفاده میکنند و کیفیت تصویر اولیه حفظ میشود.
در زیر به طور خلاصه، فرمت مناسب برای انواع تصویر را مرور میکنیم:
فرمت GIF
اگر در تصویری، انیمیشن، رسم خط یا تصویر گرافیکی ساده نیاز باشد، GIF بهترین گزینه است اما برای تصاویر گرادیان این فرمت مناسب نیست.
فرمت JPEG
برای اغلب تصاویر دوربین که کنتراست بالا ندارند یا برای بازیها و فیلمها این فرمت مناسب است. فرمت JPEG برای تصاویر دارای کنتراست بالا یا جزئیات بالا مناسب نیست، به طور مثال برای دیاگرام یا اینفوگرافیک. همچنین برای تصاویر گرافیکی ساده (به دلیل حجم بالا) بهتر است از فرمت GIF استفاده شود.
فرمت PNG
برای تصاویر حاوی خطوط، تصاویر دارای کنتراست شدید، تصاویر دارای شفافیت (transparency)، دیاگرامها، اینفوگرافیکها و اسکرینشاتها، فرمت PNG مناسب است. این فرمت برای تصاویر با کنتراست پایین، به دلیل افزایش حجم فایل، توصیه نمیشود.
فشرده سازی در پرینت تصاویر
آنچه در بالا گفته شد مربوط به انتخاب فرمت مناسب برای فشرده سازی تصاویر در طراحی وب بود ولی هنگام پرینت گرفتن داستان متفاوت است. الگوریتم فشرده سازی با اتلاف داده برای پرینت گرفتن مناسب نیست و در صورت استفاده، کیفیت افت فاحشی خواهد کرد. برای مثال یک تصویر JPEG ممکن است در مانیتور خوب نمایش داده شود اما هنگام چاپ افت کیفیتش نامطلوب باشد.
به منظور پرینت تصاویر فرمت TIFF یا Tagged Image File Format اغلب بهترین گزینه است. در این حالت باید از فرمتهایی (مانند LZW) استفاده کرد که فشرده سازی بدون اتلاف داده به حساب میآیند.