Sourena's personal pageروش فشرده سازی Rice-golomb
خوب اين روش هم بسيار ساده هستش و به راحتی هم قابل پياده سازی هستش.
توضيح الگوريتم:
فرض کنيم که عدد ثابت m رو داريم در اين صورت هر سمبل s رو ميتوان به صورت يک حاصل ضرب و يک حاصلجمع به صورت زير نمايش داد.
s=m*q+r حالا مسئله اينجاست که اگه s کوچيک باشه يعنی به نسبت m کوچيک باشه اونوقت q هم کوچيک خواهد بود و اين نکته کليدی در اين روش هستش.راستی در اين روش کدينگ r به صورت باينری کد ميشه ولی q به صورت يوناری(unary) کد ميشه که حالا ميگم چی هستش.
خوب روش يوناری هم به اين صورت هستش که هر عدد رو به صورت همون تعداد يک و يک دونه صفر سمت راستش نمايش ميدن.مثلاً عدد 7 رو به صورت 7 تا 1 و يک صفر نمايش ميدن.(11111110) يا مثلاً 21 ميشه 21 تا يک با يک دونه صفر(خيلی مسخرس).
اگر m اي که انتخاب ميکنيم توانی از 2 باشه يعنی log2 (m)=k باشه و k هم يه عدد صحيح باشه اونوقت 3 شرط زير برقرار ميشه :
1. q از به اندازه k بيت شيفت به راست دادن s بدست می آيد (q=s >> k).
خوب ديگه با اين توضيحات فکر ميکنم الگوريتم ديگه خيلی ساده هستش پس ما اول ميايم يک k انتخاب ميکنيم بدش سمبل s رو از ورودی ميگيريم و با استفاده از k اون رو به q و r تبديل ميکنيم و در نهايت q رو به صورت unary و r رو بصورت باينری کد ميکنيم و ميفرستيم.
اينم از روش Rice...
|
فهرست
صفحه اصلی (Compression) فشرده سازی Huffman CodingArithmetic 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
مقالات آموزشی
|
Designed By S.M
Last Update : 4 March 2011