Arithmetic Coding

Arithmetic Coding

الترميز الحسابي يشبه ترميز هوفمان. فإنهما يحققان عملية الضغط عن طريق تقليل متوسط عدد البتات المطلوبة لتمثيل الرمز. ولكنه يختلف عن ترميزهوفمان بانه يعمل على ترميز بلوك كامل من الرموز او الاحرف عكس هوفمان الذي يقوم بترميز كل حرف او رمز بشكل منفصل.
  في الترميز الحسابي يتم تقسيم الفاصل الزمني من صفر إلى واحد وفقا لاحتمالات تكرارات الأحرف.


Arithmetic encoder

;Low=0
;High=1
;Range=1
:while input X are coming
    ;(High=Low+Range*HighValue(X
     ;(Low=Low+Range*LowValue(X
  Range=High-Low
    

Arithmetic decoder


Get encoded number: X
do:
 find symbol whose range straddles the encoded number;العثور على الرمز الذي يتجاوز نطاقه الرقم المشفر
 output the symbol;
 range = LowValue(symbol) – HighValue(symbol);
 X = X - LowValue (symbol);
 X = X / range;
until no more symbols needed;









المشاركات الشائعة من هذه المدونة