“ فشرده سازی تصویر ” محمد عبداله – اردیبهشت – 1394 دانشگاه آزاد واحد کاشان استاد راهنما : دکتر محمود محلوجی بیدگلی فصل 8 کتاب.
Download ReportTranscript “ فشرده سازی تصویر ” محمد عبداله – اردیبهشت – 1394 دانشگاه آزاد واحد کاشان استاد راهنما : دکتر محمود محلوجی بیدگلی فصل 8 کتاب.
“ فشرده سازی تصویر ” محمد عبداله – اردیبهشت – 1394دانشگاه آزاد واحد کاشان استاد راهنما :دکتر محمود محلوجی بیدگلی فصل 8کتاب پردازش تصویر گنزالس فهرست مطالب مقدمه انواع کدینگ بلوک دیاگرام فرایند فشرده سازی کدینگ LZW الگوریتم رمزگذاری LZW الگوریتم رمزگشایی LZW مثال 2رمزگذاری مثال 4رمزگشایی گام به گام با الگوریتم چرا 9بیتی رمز میکنیم مثال 3رمزگذاری گام به گام با الگوریتم مثال 2رمزگذاری نتیجه گیری تعدادی از دستورات پردازش تصویر در متلب JPEG 2000 انولع فشرده سازی-انواع کدینگ-بلوک دیاگرام-فشرده سازی تصویر -الگوریتم رمزگذاری-مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری - پردازش تصویر در متلب 2 تعریف فشرده سازی :کدینگ اطالعات برای داشتن بیت کمتر نسبت به نسخه اصلی انواع فشرده سازی مزايا: – كاهش حجم الزم براي نگهداري اطالعات. با اتالف بی اتالف – كاهش پهناي باند الزم براي ارسال اطالعات. مشكالت: -از بین رفتن اطالعات ،در صورت استفاده از روش های اتالفی برگشت ناپذیری اطالعات بر اساس حذف اطالعات کم ارزش از بین نرفتن اطالعات بر اساس حذف افزونگی آماری -گاها نیاز به سخت افزار مخصوص برای رمزگشایی(سربار محاسباتی) دسته بندی کدینگ بدون اتالف مبتنی بر آنتروپی مبتنی بر واژه نامه سایر انواع کدینگ-بلوک دیاگرام-فشرده سازی تصویر -الگوریتم رمزگذاری-مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری -پردازش تصویر در متلب 3 4 کدینگ مبتنی بر آنتروپی : به ازاي هر سمبول موجود در داده يك كلمه رمز یکتا •VLE •هافمن •حسابی •… کدینگ مبتنی بر واژه نامه (دیکشنری) :مجموعه اي از زير رشته ها در يك ساختمان داده • RLE • LZW •… بلوک دیاگرام-فشرده سازی تصویر -الگوریتم رمزگذاری-مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری -پردازش تصویر در متلب • بلوك دياگرام فرآيند فشرده سازي و رمزگشايي Output Dta Storage Decoder )(Decompression or Network Encoder )(Compression Input Data 5 𝟎𝑩 𝟏𝑩 معیار فشرده سازی = 𝒐𝒊𝒕𝒂𝒓 𝒏𝒐𝒊𝒔𝒔𝒆𝒓𝒑𝒎𝒐𝒄 (میزان کنار گذاشتن اطالعات) 𝟎𝑩 تعداد بیت ها قبل از فشرده سازي 𝟏𝑩 تعداد بیت ها بعد از فشرده سازي فشرده سازی تصویر -الگوریتم رمزگذاری-مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری -پردازش تصویر در متلب Lossless Compression 8-2-4رمزگذاری LZW مقدمه : روش کار : فرمتهای GIF , TIFF , PDF در فشرده سازی تصویر کار آمد تر از متون یک روش فشرده سازی بدون خطا برطرف کردن افزونگی مکانی در تصویر نسبت دادن کلمه رمز با طول ثابت به دنباله هایی با طول متغییر از سمبلهای منبع مبتنی بر کتاب رمز (ساخت دیکشنری) روند کار ترتیبی (Lampel-Ziv)LZ Algoritm سال1967 مکانیسم تطبیقی Limpel Ziv Welch (LZW) mechanism مثال :استفاده در نرم افزار gzipو pkzip Abraham Lampel Jacob Ziv LZW Terry A.Welch 1984 الگوریتم رمزگذاری-مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری -پردازش تصویر در متلب 6 Dictionary-Based Compression ساخت یک دیکشنری حاوی سمبل های منبعی که باید رمزگذاری شوند اختصاص 256کلمه اول دیکشنری برای تصاویر تک رنگ بررسی ترتیبی پیکسل ها توسط رمز کننده قرار گیری الگوریتمی دنباله شدت هایی که در دیکشنری نیستند در مکانهای بال استفاده بعدی کلمه رمز در آغاز فرآیند 8بیت ) ( 0 - 255 کلمه رمز بعدا 9 :بیت ) ( 256 – 511 دیکشنری کوچک :احتمال تشخیص سبمل با سطح شدت یکسان کم است. دیکشنری خیلی بزرگ :تاثیر بر اندازه کلمه رمز استفاده از دیکشنری روشی آسان تر در استفاده روزمره : شماره تلفن کد پستی الگوریتم رمزگذاری-مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری -پردازش تصویر در متلب 7 الگوریتم رمز گذاری LZW -1یک واژه نامه اولیه درست کن که تمام رشته های تک-حرفی را شامل باشد. -2طوالنی ترین رشته Wموجود در واژه نامه را پیدا کن که مطابق ورودی کنونی باشد. W -3را با کد متناظرش آن در واژه نامه ،کدگذاری کن. -4حرف بعد از رشته Wرو به Wاضافه کرده و با اندیس ی جدید به واژه نامه اضافه کن. -5برو به مرحله .2 8 Initialize table with single character strings 1 P = first input character 2 WHILE not end of input stream 3 C = next input character 4 IF P + C is in the string table 5 P=P+C ELSE output the code for P add P + C to the string table پیش نیاز : .1جدول ( ASCIIداده های اولیه ی واژه نامه کد کاراکتر 8بیتی با مقادیر بین 0تا 255از کد اسکی ) P=C END WHILE 6 7 8 9 10 11 12 output code for P مثال :فاصله = کد 32و حرف = bکد 98 .1پاک کردن واژه نامه = کد اختصاص ی 256 .2پایان ارسال = کد اختصاص ی 257 مثال -2الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری -پردازش تصویر در متلب مثال 2 جمله زیر رو درنظر بگیرید: itty bitty nitty grrritty bit bin پردازش تصویر در متلب LZW -الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری 9 itty bitty nitty grrritty bit bin حرف کد حرف کد حرف کد فاصله 32 it 258 b 98 tt 259 itty gفاصله y 268 269 g i 103 105 ty 260 gr 270 فاصله y 261 rr 271 n 110 bفاصله 262 r t 114 116 bi 263 rri فاصله itty 272 273 itt 264 biفاصله 274 y 121 فاصله ty 265 فاصله it پاک کردن واژه نامه 256 nفاصله 266 binفاصله 275 276 پایان ارسال 257 ni 267 10 11 حجم پیام قبل از کدگذاری 33کاراکتر 8بیتی یعنی 264بیت پس از کدگذاری حجم پیام 22*9یعنی 198بیت یعنی %25حجم داده ها کاهش یافته! پردازش تصویر در متلب LZW -الگوریتم رمزگشایی-مثال رمزگشایی -چرا 9بیت-نتیجه گیری 12 1 Initialize table with single character strings 2 OLD = first input code 3 output translation of OLD 4 WHILE not end of input stream 5 NEW = next input code 6 IF NEW is not in the string table 7 S = translation of OLD 8 S=S+C 9 ELSE 10 11 12 LZW الگوریتم رمز گشایی S = translation of NEW output S C = first character of S 13 OLD + C to the string table 14 OLD = NEW 15 END WHILE اولین کاراکتر را وارد کن-1 کاراکتر قبل از اولی را وارد کن-2 4 اگر در جدول وجود داشت وارد کن وگر نه برو مرحله: کاراکتر قبلی را نگه دار و به کاراکتر بعدی نگاه کن-3 کاراکتر قبلی با جدید را وارد دیکشنری کن-4 حلقه را تا پایان کار ادامه بده-5 نتیجه گیری- بیت9 چرا-مثال رمزگشاییLZW - پردازش تصویر در متلب مثال 4رمزگشایی طبق الگوریتم نویسی 13 Example 2: Use LZW to decompress the output sequence of Example 1: <66><65><256><257><65><260>. پردازش تصویر در متلب LZW -چرا 9بیت-نتیجه گیری Example 2: LZW Decompression Step 1 14 <66><65><256><257><65><260> New = 66 ENCODER OUTPUT string Old = 65 C=A STRING TABLE codeword string B A 256 نتیجه گیری- بیت9 چراLZW - پردازش تصویر در متلب S=A BA Example 2: LZW Decompression Step 2 15 <66><65><256><257><65><260> New = 256 C = B ENCODER OUTPUT string Old = 256 S = BA STRING TABLE codeword string B A 256 BA BA 257 AB نتیجه گیری- بیت9 چراLZW - پردازش تصویر در متلب Example 2: LZW Decompression Step 3 16 <66><65><256><257><65><260> New = 257 C = A ENCODER OUTPUT string Old = 257 STRING TABLE codeword string B A 256 BA BA 257 AB AB 258 BAA نتیجه گیری- بیت9 چراLZW - پردازش تصویر در متلب S = AB Example 2: LZW Decompression Step 4 17 <66><65><256><257><65><260> New = 65 C = A ENCODER OUTPUT string Old = 65 S=A STRING TABLE codeword string B A 256 BA BA 257 AB AB 258 BAA A 259 ABA نتیجه گیری- بیت9 چراLZW - پردازش تصویر در متلب Example 2: LZW Decompression Step 5 18 <66><65><256><257><65><260> New = 260 C = A ENCODER OUTPUT string Old = 260 STRING TABLE codeword string B A 256 BA BA 257 AB AB 258 BAA A AA 259 260 ABA AA نتیجه گیری- بیت9 چراLZW - پردازش تصویر در متلب BABAABAAA S = AA چرا 9بیت ؟ 19 کاراکتر ASCIIمقداری بین 0تا 255دارند طول این کاراکترها ثابت است باید تمایزی بین کارکترهای ASCIIو کد ها (با طول رشته 2یا بیشتر قایل شد) با 9بیت میتوان تنها 256کد با طول 2یا بیشتر داشت <- ASCII characters )(0 to 255 <- Codes )(256 to 512 0 9 bits 1 9 bits پردازش تصویر در متلب LZW -نتیجه گیری 20 0 0 0 <- ASCII characters 0 (0 to 255 entries) 12 bits 0 0 0 1 9 طول: شروع کار بیت برای هر کد طول، با افزایش کد ... ، بیت10 هر کد <- Codes (256 to 4096 entries) 1 1 1 1 0 ASCII 1 Codes 256-512 Out of codes 0 0 ASCII 0 1 Codes 256-511 1 0 Codes 512-767 0 0 0 ASCII 1 1 Codes 768-1023 0 0 1 Codes 256-511 0 1 0 Codes 512-767 0 1 1 Codes 768-1023 1 0 0 Codes 1024-1279 1 0 1 Codes 1280-1535 1 1 0 Codes 1536-1791 1 1 1 Codes 1792-2047 بیت12 ( ورودی با طول4K)کیلو4 LZW دیکشنری اصلی کد است/برای هر سمبل . داشت212 – 256 codes بیت میتوان حداکثر12 با پردازش تصویر در متلب-نتیجه گیری Out of codes نتیجه گیری LZW: 21 این الگوریتم توالی فشرده سازی داده هاست LZWنیاز به اطالعات قبلی در مورد جریان داده های ورودی ندارد. LZWقادر است در یک مرحله اطالعات را فشرده کند مزیت دیگر LZWسادگی و اجرای سریع آن است. زمانیکه دیکشنری خیلی بزرگ میشود (بالغ بر : )4096ورودیهای 4095-255پاک شده و دیکشنری جدیدی ساخته میشود. پردازش تصویر در متلب پردازش تصویر در متلب 22 هر تصویر یک ماتریس m*nبا شدت روشنایی ( 0سیاه) تا ( 255سفید) انواع تصویر : (1 = Uint8یک بایت بین 0تا 255 (2 = Doubleعدد حقیقی بین 0و 1 دستور : )image read (imreadوارد کردن تصویر بصورت ماتریس در متلب دستور : imshowنمایش ماتریس فوق بصورت تصویر دستور : subplotترسیم چند تصویر روی یک شکل دستور : im2doubleتبدیل تصویر به فرمت دابل دستور : reshapeتبدیل بعد تصویر (یک بعدی به دو بعدی و بالعکس ) دستور : convاعمال فیلتر بر روی تصویر ( فقط تصویر نوع )double دستور : fftتبدیل فوریه (برای پردازش تصویر در حوزه فرکانس آنرا به سیگنال یک بعدی تبدیل و سپس با fftتبدیل فوریه سریع میگیریم) پردازش تصویر در متلب2 پردازش تصویر در متلب 2 توابع محاسباتی .1 Ipplباعث سرعت اجرا .2 Imaddجمع تصاویر .3 Imsubtractتفریق تصاویر .4 Imdivideتقسیم تصاویر .5 Immultiplyضرب تصاویر .6 Imabsdiffقدر مطلق تفاضل تصاویر .7 Imcomplementمتمم تصاویر .8 Imlinecombترکیب خطی تصاویر برخی دیگر از دستورات پردازشی .1 : Bwselectانتخاب ناحیه خاصی از تصویر Imadjust .2و ( histeqهیستوگرام) افزایش کنتراست تصویر سیاه و سفید .3تغییر نوع تصویر : rgb2indتبدیل تصویر rgbبه تصویر ارایه ای Ind2rgbتبدیل تصویر اندیس گزاری شده به rgb Rgb2hsvتبدیل تصویر rgbبه ( hsvشدت رنگی) 23 پردازش تصویر در متلب مثال 1 جمله زیر رو درنظر بگیرید: itty bitty bit bin 24 itty bitty bit bin حرف کد حرف کد حرف کد فاصله 32 پایان ارسال 257 itt 264 b 98 it 258 فاصله ty 265 i 105 tt 259 biفاصله 266 n 110 ty 260 فاصله it 267 t 116 فاصله y 261 binفاصله 268 y 121 bفاصله 262 پاک کردن واژه نامه 256 bi 263 25 26 حجم پیام قبل از کدگذاری : 18کاراکتر * 8بیت = 144بیت توجه :پس از کدگذاری باتوجه به اینکه داده های 9بیتی نیز داریم همه داده ها 9بیتی میشوند (حتی آنهایی که از قبل 8بیتی بوده اند) حجم پیام بعد از کد گذاری 14 :کاراکتر * 9بیت = 126بیت یعنی %12.5حجم داده ها کاهش یافته! =رمزگذاری طبق برنامه نویسی3 مثال 27 Example 1: Use the LZW algorithm to compress the string BABAABAAA Example 1: LZW Compression Step 1 28 BABAABAAA P=A C=empty ENCODER OUTPUT output code representing STRING codeword TABLE string 66 256 BA B Example 1: LZW Compression Step 2 29 BABAABAAA P=B C=empty ENCODER OUTPUT output code representing STRING codeword TABLE string 66 65 256 257 BA AB B A Example 1: LZW Compression Step 3 30 BABAABAAA P=A C=empty ENCODER OUTPUT output code representing STRING codeword TABLE string 66 65 256 256 257 258 BA AB BAA B A BA Example 1: LZW Compression Step 4 31 BABAABAAA P=A C=empty ENCODER OUTPUT output code representing STRING codeword TABLE string 66 65 256 257 256 257 258 259 BA AB BAA ABA B A BA AB Example 1: LZW Compression Step 5 32 BABAABAAA P=A C=A ENCODER OUTPUT output code representing STRING codeword TABLE string 66 65 256 257 B A BA AB 256 257 258 259 BA AB BAA ABA 65 A 260 AA Example 1: LZW Compression Step 6 33 BABAABAAA P=AA C=empty ENCODER OUTPUT output code representing STRING codeword TABLE string 66 65 256 257 B A BA AB 256 257 258 259 BA AB BAA ABA 65 A 260 AA 260 AA JPEG2000 پسوند فایلی .jp2و .j2k مزایا: فشرده سازی فایل تصویری به مقدار بیشتر و با حداقل افت كیفیت .1 پشتیبانی از فایلهای با فضای رنگی 48بیتی فشرده سازی از نوع بی اتالف :JPEG 2000الگوریتمwavelet transformation : JPEGالگوریتم cosinus transformation .2 خروجی گرفتن از این فایل با رزولوشن های مختلف .3 پشتیبانی از شفافیت در تصویر) ، (transparencyكانال آلفا و نیز انتقال الیه الیه تصویر در وب )(Progressive .4 •امكان استفاده از ماسك (فشرده سازی کمتر ناحیه خاصی از تصویر .5 امكان دسترسی به مقدار Bit Rateفشردگی در هر نقطه تصویر .6 استخراج سایز و کیفیت های متفاوت از تصویر اصلی بدون نیاز به decodingمجدد 34 مقایسه كیفیت با نسبت یک بیستم فشره سازی با نسبت یك بیستم در JPEG 35 فشره سازی با نسبت یك بیستم در JPEG2000 تصویر اولیه با دقت در مناطقی از تصویر كه مرز بین دو ناحیه مختلف رنگی هستند ،در فرمت JPEG2000افت كیفیت بسیار كمتر از فرمت JPEGاست. مقایسه كیفیت با نسبت یک هفتم( نسبت غالب در اکثر دوربین های دیجیتال) فشره سازی با نسبت یك هفتم در JPEG 36 فشره سازی با نسبت یك هفتم در JPEG2000 تصویر اولیه اگر فایلی را با این دو فرمت طوری فشرده نماییم كه كیفیت هردو یكی باشد ،حجم فابل JPEG2000تقریبا %35-25كمتر خواهد بود 37 Main Differences JPEG JPEG2000 تولید تصاوبر طبیعی تولید تصاویر دیجیتال و کامپیوتری Discrete Cosine Transform algorithm Discrete Wavelet Transform algorithm File extension : .jpg or .jpeg Currently applicable to most of applications File extention : .jp2, .jpx, .jpf, .mj2 Currently NOT widely used Web, imaging software, office .. Basic Architecture of standard Source image data Forward transform Quantization Entropy encoding Compressed image data 38 Conclusion JPEG2000 standard shows improved features over JPEG standard JPEG2000 reduced the image size while enhanced the image quality JPEG2000 is not yet widely used but getting more attention It is expected that JPEG2000 standard will become the one of most widely used image compression standard in very near future Questions? 39