Автор работы: Пользователь скрыл имя, 12 Января 2014 в 01:29, курсовая работа
Написати програму, яка реалізує алгоритм арифметичного кодування-декодування, що виконує стиснення інформації. На вході програма повинна отримати файл, а на виході цей файл повинен бути закодованим. Також реалізувати декодування цього файлу. Порівняти ефективність стиснення з різними форматами файлів. Програма має виконувати такі функції:
надавати користувачу можливість кодувати та декодувати файли;
забезпечити максимальну надійність при кодуванні та декодуванні;
надавати можливість порівняння кодованого та декодованого файлу;
range = (long)(high - low) + 1;
high = low + (range * cum_freq[symbol - 1]) / cum_freq[0] - 1;
low = low + (range * cum_freq[symbol]) / cum_freq[0];
for (; ; )
{
if (high < half)
output_bit_plus_follow(0);
{
output_bit_plus_follow(1);
low -= half;
high -= half;
}
else if (low >= first_qtr && high < third_qtr)
{
bits_to_follow += 1;
low -= first_qtr;
high -= first_qtr;
}
else
break;
high = 2 * high + 1;
}
}
//----------------------------
int decode_symbol()
{
long range;
int cum;
int symbol;
int a;
range = (long)(high - low) + 1;
cum = (int)((((long)(value - low) + 1) * cum_freq[0] - 1) / range);
for (symbol = 1; cum_freq[symbol] > cum; symbol++) ;
high = low + (range * cum_freq[symbol - 1]) / cum_freq[0] - 1;
low = low + (range * cum_freq[symbol]) / cum_freq[0];
for (; ; )
{
if (high < half)
{
}
else if (low >= half)
{
&
Информация о работе Утиліта стискання файлів за алгоритмом арифметичного кодування