آشنایی با تکنیک های فشرده سازی داده های رستری

داده های رستری معمولاً حجم بالایی دارند و برای ذخیره سازی آنها با مشکل مواجه هستیم. در این مقاله میخواهیم شما را با برخی تکنیک های فشرده سازی داده های رستری آشنا کنیم و این مبحث زیبا را با شما به اشتراک بگذاریم. این تکنیک ها میتوانند توسعه یافته و به حالت بهینه ای هم استفاده شوند، اما اصول اولیه آنها ثابت می ماند.

فرمت های مختلف داده های رستری از تکنیک های فشرده سازی داده های رستری استفاده میکنند. حتی فرمت Tiff هم که معرف حجم بالای داده های رستری است، میتواند حالتهای فشرده سازی مختلفی را قبول کند.

Jpeg از تکنیکهای فشرده سازی داده های رستری استفاده میکند و با حذف جزئیات میتواند حجم را کم کند
Jpeg از تکنیکهای فشرده سازی داده های رستری استفاده میکند و با حذف جزئیات میتواند حجم را کم کند

مختصری در مورد داده های رستری

   داده های رستری از سلول­های شبکه تشکیل شده اند. بر خلاف داده­ های وکتوری که از رئوس و مسیرها تشکیل شده اند. دقت آنها نیز بستگی به اندازه سلول دارد. اندازه سلول باید به اندازه کافی کوچک باشد تا جزئیات مورد نیاز را در بر بگیرد. میتوانیم با کاهش سایز سلول، رزولوشن تصویر را افزایش دهیم. اما این مسئله هزینه و سرعت پردازش و ذخیره سازی داده ها را بالا می­برد.

   ذخیره سازی رستر در حالت خام آن ناکارآمد است به این دلیل که به طور معمول مقادیر ردیف به ردیف از گوشه بالا سمت چپ ذخیره می­شوند. اما بهبود بهره وری سایز رستر از طریق تکنیکهای فشرده سازی داده های رستری ممکن است. راههای مختلفی برای به کارگیری فشرده سازی داده های رستری برای کاهش سایز فایل وجود دارد که کیفیت داده ها را نیز حفظ میکند.
مثالهای زیر بخشی از تکنیک های فشرده سازی داده های رستری هستند که با حفظ داده های موجود در یک فایل رستر اقدام به فشرده سازی آن میکنند. اصطلاحاً به این تکنیک ها  LossLess میگویند.

روش رمزنگاری طول دنباله (Run Length Encoding) :

   رمزنگاری طول دنباله، سلولها را بر یک پایه ­ی “ردیف به ردیف” ذخیره می­کند. به جای اینکه مقدار هر سلول را به صورت جداگانه ذخیره کند، این روش مقادیر سلولها را به صورت ردیفی گروهبندی می­کند.

برای مثال این خط از داده به این صورت ارائه می­شود:

AAAAAABBBBCCCCCCCCC       —>            6A4B9C

این روش فشرده سازی حجم داده را کاهش می­دهد چراکه هر خط به صورت کارآمدتری ذخیره می­شود. حتی اگر همان اطلاعات نگهداری شوند، مقادیری که یکسان هستند به صورت یک رشته ذخیره می­شوند.

Run Length Encoding
Run Length Encoding

در مثال بالا، سطر اول خالی است و به صورت (0،8) ذخیره می شود. این به این معنی است 8 سلول وجود دارد و همه آنها صفر هستند. در سطر دوم، 4 صفر متوالی وجود دارد، بنابراین مقدار (0،4) را می­گیرد. بعد از این ما سه سلول متوالی با مقدار 1 داریم پس مقدار (1،3) را می­گیرد. و این روند همچنان ادامه می­یابد تا زمانی که به سلول پایین سمت راست برسد.

رمزنگاری بلوکی (Block Coding) :

   تکنیک رمزنگاری بلوکی نواحی را به منظور کاهش افزونگی به بلوک­هایی بخشبندی می­کند. این روش یک رستر کامل را به بلوک­های سلسله مراتبی تقسیم میکند. این روش تعمیمی از روش رمزنگاری طول دنباله می­باشد به نحوی که در دو بعد توسعه داده شده است.

Block Coding
Block Coding

در مثال فوق:

به جای ذخیره ­سازی 64 سلول شبکه، تمام چیزی که دربرمیگیرد تنها 7 بلوک است. برای استفاده از رمزنگاری بلوکی، یک بلوک 3*3 ، دو بلوک 2*2 و چهار بلوک سلولی 1*1 برای کدبندی این تصویر رستری، مورد نیاز است. در این مثال، گوشه بالا سمت چپ به عنوان مرجع برای هر بلوک استفاده شده است.

رمزنگاری زنجیره­ای (Chain Coding) :

   در رمزنگاری زنجیره­ای، ثبت ارزش پیکسلها، با استفاده از  موقعیت­های نسبی، از یک نقطه شروع شده و توسط رشته ای از پیکسلها مرز خارجی را دنبال میگردد تا به نقطه شروع خود برسد.

در طول رمزنگاری، جهت به صورت یک عدد صحیح ذخیره می­شود. اما در مثال شکل زیر ما برای ساده­ سازی از جهات اصلی استفاده کرده ­ایم. برای مثال 0 نمایانگر شمال و 1 نشانگر شرق است.

Chain Coding
Chain Coding

در این مثال، ما در موقعیت (5،2) شروع می­کنیم. از اینجا مرز را با استفاده از جهت های اصلی و تعداد حرکات تعریف می­کنیم. ما 3 مرتبه به سمت شرق حرکت می­کنیم تا زمانی که به لبه برسیم. سپس، ما 4 مرتبه به سمت جنوب حرکت می­کنیم. این روند تا نقطه پایان که همان رسیدن مجدد به نقطه شروع است، ادامه می­ یابد.تنها برای این تمرین، ما شمال، شرق، جنوب و غرب را به صورت مقادیر الفبایی استفاده کردیم، درحقیقت این مقادیر به صورت عددی کدگذاری می­شوند.

رمزنگاری درخت چهارگانه (Quadtree Encoding) :

   درختهای چهارگانه (Quadtree) ساختارهای داده رستری بر اساس کاهش متوالی سلولهای همگن هستند، که به صورت بازگشتی، یک تصویر رستر را به بخشهایی (ربع­ هایی) تقسیم می­کند. این فرایند تقسیم تا زمانی که هر سلول طبقه ­بندی شود ادامه می یابد. بدین ترتیب فضای ذخیره­ سازی مورد نیاز رستر کاهش می ­یابد. این مسئله به پیچیدگی عارضه و توان تفکیک کوچکترین سلول شبکه نیز بستگی دارد.

Quadtrees
Quadtrees

در این مثال، شبکه ­های 8*8 بالا سمت چپ و پایین سمت راست نیازی به تقسیم شدن بیشتر ندارند چرا که همگن هستند. شبکه 8*8 بالا سمت راست به سه شبکه 4*4 تقسیم می شوند. شبکه 4*4 باقی مانده نیز به 4 کلاس جداگانه تقسیم شده است.

این مطالب را نیز مطالعه کنید :
محصولات ویژه فروشگاه :
اشتراک در
اطلاع از
2 نظرات
تازه‌ترین
قدیمی‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
فهرست