Sourena's personal page


روش فشرده سازی Run-Length

خوب در اين قسمت سعی ميکنيم که اين روش فشرده سازی رو به زبون خيلی ساده اي بيان کنيم.
در اين روش ما به جای اينکه run های مشابه هم رو بنويسيم ميايم يک run مينويسيم و بعد تعداد تکرار اون رو به صورت عدد مينويسيم.
فکر کنم اگه يه مثال بزنم قضيه کاملاً جا بيفته....فرض کنيم متن ما به صورت زير است :

QQQQQQQQQQWRTTYYYUOOOOPPPPPPPPKKKKKKKKKKKKKKKKKKKK

خوب حالا بعد از اينکه ما با اين الگوريتم فشرده کرديمش به صورت زير در مياد:

QQ8WRTT0YY1UOO2PP6KK18

خوب همينجور که می بينيد 50 byte رو تونستيم تبديل به 22 byte بکنيم که خوب نسبتاً خوب هستش.

خوب حالا حتماً با خودتون ميگين که آخه کدوم متن به صورت اين چيزی هست که تو اينجا نوشتی که ما بخوايم اينجوری فشرده کنيمش؟؟؟
در جواب بايد بگم که يکی از کاربرد های اصلی اين روش فشرده سازی در فشرده کردن عکس های باينری هستش و خيلی هم خوب جواب ميده....چون همينجور که ميدونيد اين عکس ها همون عکس های سياه-سفيد خودمون هستن که فقط شامل رنگ سياه يعنی عدد 0 و رنگ سفيد يعنی عدد 1 هستند و خوب ديگه قضيه تابلويه ديگه مثلاً اگه يک قسمت اندازه 2 سانت در 2 سانت در عکس سياه باشه يعنی يک چيزی حدود 300 تا 0 اونجا هستش که خوب با هيچ روشی از اين بهتر نميشه اون رو فشرده کرد.

به هر حال اينم يکی ديگه از روش های مهم فشرده سازی هستش که لازم هست که تمام کسانی که تو اين زمينه کار ميکنن از اون اطلاع داشته باشن. بعداً يه پياده سازی به زبون cpp براتون ميزارم که حال کنيد.

فهرست

صفحه اصلی

(Compression) فشرده سازی

Huffman Coding
Arithmetic Coding
Delta Coding
Frequency Substitution
LZSS Coding
LZW Coding
Rice (Golomb) Coding
Run Length Encoding
Prediction by partial matching
Dynamic Markov Compression
bitio Library
Burrows-Wheeler Transform

مقالات آموزشی

free html visitor counters














Designed By S.M
Last Update :22 june 2011