“ فشرده سازی تصویر ” محمد عبداله – اردیبهشت – 1394 دانشگاه آزاد واحد کاشان استاد راهنما : دکتر محمود محلوجی بیدگلی فصل 8 کتاب.
Download
Report
Transcript “ فشرده سازی تصویر ” محمد عبداله – اردیبهشت – 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