بخشی از مقاله
بهبود در تصاویر فشرده شده
این مقاله دارای تصاویر است که در سایت قابل نمایش نیست
1.چکیده
در این مقاله ما روشهایی که در حوزه فشرده سازی ،تصاویر JPEG را بهبود می دهند را مورد بررسی قرار می دهیم بدون این که تصاویر فشرده شده را به طور کامل رمز گشایی کنیم روش اولی که مورد بررسی قرار می دهیم استفاده از یک تابع فازی جهت بهبود تصویر است در این روش ابتدا تابع بهبود را به حوزه فشرده سازی می بریم برای این کار ما نیاز به پیاده سازی عملگر های غیر خطی در حوزه فشرده سازی داریم پس از پیاده سازی این تابع را بر بلاک های 8*8 اعمال می
کنیم و نتایج این تابع را بر روی بلاکها یکنواخت وبلاکهای دارای جزییات بررسی میکنیم و در پایان اتلگوریتم را برای بلاک ها متفاوت بهبود می دهیم . در روش دوم ابتدا مقدار کنسترانت تصویر را اندازه گیری کرده و سپس کنسترانت ضرایب را با یک مقدار ثابت بهبود می دهیم
2.مقدمه
امروزه حجم بالا تصاویر باعث شده است تا تصاویر فشرده شده مورد توجه بیشتری قرار گیرد فشرده سازی تصاویر با نگهداشتن کیفیت نسبی تصاویر حجم تصاویر را تا حد زیادی پایین می آورد . حجم پایین تصاویر در جایی که می خواهیم انتقال اطلاعات داشته باشیم بسیار مفید است . برای مثال می توان به انتقال تصاویر پزشکی از طریق اینترنت اشاره کرد
الگوریتم هایی که برای فشرده سازی تصاویر به کار می رود به دو گروه lossy ,lossless تقسیم می شوددر روش lossless اطلاعات تصویر از بین نمی رود و می توان با استفاده از تصویر فشرده شده و با استفاده از یک الگوریتم کدگشایی تصویر اولیه را بدست آورد ولی در روش های lossy مقداری از اطلاعات تصویر از بین می رود [2]
یکی از الگوریتم های معروف و پر کاربرد در فشرده سازی تصاویر الگوریتم فشرده سازی (JPEG) است در این روش ابتدا تصویر به قطعات 8*8 که همپوشانی ندارند تقسیم شده سپس ماتریس DCT را بر روی هر بلاک اعمال می کنیم ضرایب DCT را با استفاده از جدول مقدار دهی (Quantize Table) به یک مقدار گسسته مقدار دهی می کنیم این پردازش یک پردازش لوسی (lossy process) است و مقداری از اطلاعات را از دست می دهیم در این مرحله بسیاری از ضرایب کوچک (معمولاً قرکانس بالا) به مقدار صفر مقدار دهی می شوند حال این ضراین را با استفاده از یک الگوریتم کد گذاری کدگذاری می کنیم این عمل باعث پایین آمدن نسبت بیتی (bit rate) تصویر می شود [5]
الگوریتم هایی که برای بهبود تصویر فشرده شده ارائه شده اند بر اساس زمان بهبود تصویر می توان به 3 دسته کلی تقسیم کرد :1- بهبود تصویر قبل از فشرده سازی 2- بهبود تصویر بعد از فشرده سازی 3- بهبود تصویردر حین فشرده سا زی[4]
یکی از معایب بزرگ الگوریتم ها دسته اول (بهبود قبل از فشرده سازی ) پایین آمدن قدرت
و ضریب فشرده سازی تصویر پس از اعمال الگوریتم بهبود است الگوریتم هایی که در اینجا مورد بررسی قرار می دهیم از الگوریتم های دسته 2و3 است
3.روشهای بکار رفته برای بهبود تصاویر فشرده شده (JPEG)
یک تصویر فشرده شده به دو روش می توان بهبود بخشید در روش اول تصویر کاملاً رمز گشایی کرده و به حوزه پیکسلی می بریم و سپس تصویر بهبود یافته را با الگوریتم فشرده سازی مجدد فشرده می کنیم این امر (compress/decompress) باعث زمانبر شدن الگوریتم می شود علاوه بر این قدرت و ضریب فشرده سازی در تصاویر بهبود یافته در حوزه پیکسلی کم می شود.
روش دیگر برای بهبود تصاویر فشرده شده استفاده از ضرایب DCT تصویر است در این روش ما ابتدا ضرایب را با یک الگوریتم کدگشایی از تصویر بدست می آوریم سپس پردازش را در حوزه فشرده شده (Compressed Domain) بر روی تصویر اعمال کرده و سپس ضرایب را کد گذاری می کنیم در این روش ما زمان لازم برای (compress/decompress) را صرفه جویی می کنیم در این روش بدلیل این که بسیاری از ضرایب پس از عمل (Quantize) صفر می شوند محاسبات کمتری نسبت به حوزه پیکسلی خواهیم داشت
دو روش جهت بهبود تصاویر فشرده شده
1-3.استفاده از تابع فازی INT برای بهبود کنتراست تصویر
تابع فازی (INT-OP) بر اساس حد آستانه عمومی کنتراست تصویر را بهبود می دهد برای اعمال این تابع در حوزه پیکسلی ابتدا نیاز است تا سطوح خاکستری تصویر را در بازه [0 1] نرمال می کنیم
این تابع نقاطی که روشنایی کمتری دارد را تاریک تر می کند و نقاطی که روشنایی بیشتری را دارد را روشن تر می کند این تابع باعث می شود تا سطوح خاکستری ابتدا و انتها بازه فشرده
رانت تصویر می شود. این تابع یک تابع غیر خطی است
تابع INT در حوزه فشرده شده (Compressed Domain)
برای اعمال تابع در حوزه فشرده شده ما نیاز به پیاده سازی عملگر های خطی (جمع ، ضرب ، ...)و عملگر های غیر خطی (توان) در حوزه فشرده سازی داریم عملگر های خطی به راحتی پیاده سازی می شوند ولی مشکل اساسی ما پیاده سازی عملگر ها غیر خطی است اگر ما سطوح خاکستری هر بلاک 8*8 را با ماتریس U[8*8] نمایش دهیم و ضرایب DCT هر بلاک Udct(که به طور مستقیم از تصویر فشرده شده بدست می آید) را داشته باشیم آنگاه با روابط زیر می توان عملگر غیر خطی توان را پیاده سازی کرد (Udct*sq)
در روابط بالا چند نکته را باید مورد نظر داشته باشیم اولاً در اغلب مواقع Udct صفر است و دوم این که تابع WQ(y1,y2,w1,w2,x1,x2) در 96% اوقات مقدار صفر را بر می گرداند. این نکات نشان می دهد که هر چند روابط بالا پیچیده و زمانبر است ولی در واقع زمان کمتری برای محاسبه آنها صرف خواهد شد.[1]
حال برای اعمال INT در حوزه فشرده سازی به صورت زیر عمل می کنیم .ابتدا مقادیر سطوح خاکستری را از بازه [0 255] به بازه [-128 127] می بریم تا مقادیر حول عدد صفر متقارن شوند . عدد صفر را به عنوان مقدار حد آستانه در نظر می گیریم (به جای مقدار 0.5 که در حوزه پیکسلی به عنوان حد آستانه در نظر می گرفتیم) و در نهایت تابع INT را به صورت زیر برای هر بلاک محاسبه می کنیم [1]
همانطور که در فرمول بالا مشاهده می کنید مقدار حد آستانه Udct(0,0) برای هر بلاک 8*8 تنها یکبار محاسبه می شود و هر بلاک 64 پیکسلی فقط از یک حد آستانه استفاده می کند در صورتی که در حوزه پیکسلی 64 حد آستانه متفاوت (سطح خاکستری پیکسل ) خواهیم داشت که این امر باعث بروز مشکل در بهبود تصویر می شود این مشکل در بلاک هایی یکنواخت که سطوح خاکستری نزدیکی به هم دارند مشکل کمتری ایجاد می کند نسبت به بلاک هایی که دارای جزییات هستند
برای رفع این مشکل می توان از یک حد آستانه انتخابی برای تمایز بین بلاک ها یکنواخت و بلاک ها دارای جزییات استفاده کرد و بلاک ها یکنواخت را در حوزه فشر
ده سازی پردازش کرده و بلاک ها دارای جزییات را به حوزه پیکسلی برده و پردازش پیکسلی بر روی آن انجام داده و سپس فشرده کنیم بنابر این الگوریتم بهبود به صورت زیر تغییر می کند :
1- محاسبه انرژی ضرایبDCT برای هر بلاک به صورت زیر
2- اگر EAC < eth ( eth یک حد آستانه انتخابی ) بهبود در حوزه فشرده سازی بوسیله تابعی که در بالا بیان شد انجام می شود
3- اگر EAC > eth بلاک را به حوزه پیکسلی می بریم و با تابع بهبود در حوزه پیکسلی که در قبل بیان شد تصویر را بهبود داده و سپس با الگوریتم فشرده سازی بلاک را فشرده می کنیم
مقدار eth به صورت آزمایشی و دستی انتخاب می شود و تاثیر در کیفیت و سرعت الگوریتم دارد هر چه مقدار eth را بزرگتر انتخاب کنیم تعداد بلاک هایی که در حوزه پیکسلی پردازش می شوند کاهش یافته بنابراین سرعت الگوریتم افزایش و کیفیت کاهش می یابد و هر چه مقدار eth را کوچکتر انتخاب کنیم بلاک ها بیشتری در حوزه پیکسلی پردازش شده و سرعت الگوریتم کاهش وکیفیت افزایش می یابد کیفیت تصویر را می توان با MSE نمایش داد MSE میانگین مجذور خطایی است که بین بلاک پردازش شده در حوزه پیکسلی و بلاک پردازش شده درحوزه فشرده شده وجود دارد. [1]
2-3.بهبود تصویر به روش اندازه گیری کنسترانت تصویر در حوزه DCT
در این روش ما بهبود را به طور مستقیم بر روی تصویر اعمال می کنیم و برای این کار کنسترانت تصویر را در حوزه DCT اندازه گیری می کنیم ضرایب DCT محتویات فرکانسی در حوزه مکان را برای تصویر نشان می دهد و شبیه یک ربع فوریه دو بعدی است [3]
d00 مقدارDC را نشان می دهد و دیگر ض
رایب بقیه فرکانس ها مکانی از تصویر را نشان می دهند که فاصله آنها از d00 افزایش می یابد به طور مثال ضرایب d40 ,d04 فرکانس مکانی با فاصله 4 سیکل/بلاک در جهت افقی و عمودی است بنابر این اندازه یک باند کنسترانت محدود شده را به صورت زیر می توان محاسبه کرد :
در این روش 14 باند تعریف شده است که تقریباً برابر با فرکانس مکانی تصویر است و با ساختار zigzag در کد گذاری بلاک های JPEG سازگار ا
ست
حال ما را مقادیر مختلف کنسترانت تصویر در نظر بگیریم ومقادیر مختلف برای کنسترانت تصاویر بهبود یافته را با نمایش دهیم. حال اگر ما از یک فاکتور ثابت(λ) برای بهبود کنسترانت در تمام باند ها فرکانس استفاده کنیم رابطه زیر را خواهیم داشت :[3]
با استفاده از رابطه 3و7 می توان ضرایب بهبود یافته را به صورت مقابل بدست آورد:
و می توان این مقادیر را با استفاده از جدول مقادیر دهی (Dequantize table) مقدار حقیقی را بدست آورد . مقدار Q’ رابطه زیر بدست می آید
* ضرب خانه به خانه است و A از رابطه روبرو بدست می آید
مراحل انجام این الگوریتم را در شکل زیر آمده است:
4.پیاده سازی و نتایج تجربی
1-4.استفاده از تابع فازی INT برای بهبود کنتراست تصویر
الگوریتم که در بالا توضیح داده شد را بر روی چند تصویر که دارای ابعاد ، کنسترانت ، و جزئیات متفاوتی هستند و روشنایی تصاویر در حد متوسط است اعمال کرده ایم
کارایی الگوریتم بهبود تصویر که در بالا بیان شد به دو چیز بستگی دارد
1- کیفیت تصویر حاصل از پردازش در حوزه فشرده شده در مقایسه با تصویر بهبود یافته با تابع INT در حوزه پیکسلی. کیفیت تصویر را می توان با MSE نمایش داد MSE میانگین مجذور خطایی است که بین بلاک پردازش شده در حوزه پیکسلی و بلاک پردازش شده درحوزه فشرده شده وجود دارد.
2- نسبت تعداد بلاک هایی که در حوزه فشرده شده پردازش می شوند به بلاک هایی که به حوزه پیکسلی منتقل شده و با پردازش پیکسلی بهبود می یابند
همانطور که در جدول بالا مشاهده می کند درصدی کمی از بلاک ها تصویر در حوزه پیکسلی پردازش می شوند و در تصاویر ی که دارای جزئیات بیشتری هستند بلاک ها بیشتری در حوزه پیکسلی پردازش شده است
2-4.بهبود تصویر به روش اندازه گیری کنسترانت تصویر در حوزه DCT
با اعمال الگوریتم قسمت 2-3 بر روی تصاویر نتایج زیر بدست می آید:
تصاویر a,b,c تصاویر بهبود یافته با الگوریتم اندازه گیری کن 1.9 و در بهبود تصویر c ضریب λ برابر 1.5 است همچنان که در شکل بالا مشاهده می شود با اضافه شدن ضریب λ لبه ها تصویر بیشتر تقویت شده و تصویر نسبت به تصویر اولیه تغییر بیشتری می کند