Ошибки и опечатки


Ниже приведены известные ошибки и неточности, а также опечатки, искажающие смысл текста.
Страница Исходный текст Вариант правильного написания, пояснения
Во всем тексте "подраздел" следует понимать как "подпункт" %-)
18 Если размер каждого такого файла в результате обработки уменьшается хотя бы на 1 бит, то 2n исходным файлам будет соответствовать самое большее 2n-1 различающихся архивных файлов. Если размер каждого такого файла в результате обработки уменьшается хотя бы на 1 бит, то 2n исходным файлам будет соответствовать самое большее 2n-1 различающихся архивных файлов.
31

Канонический алгоритм Хаффмана

Один из классических алгоритмов, известных с 60-х годов.

Канонический алгоритм Хаффмана

Один из классических алгоритмов, известных с 50-х годов.
40, 41 else if((li >= Third_qtr)&&(hi < First_qrt)){ else if((li >= First_qtr)&&(hi < Third_qrt)){
41 На символ с меньшей вероятностью у нас тратится в целом большее число битов, чем на символ с меньшей вероятностью. На символ с меньшей вероятностью у нас тратится в целом большее число битов, чем на символ с большей вероятностью.
45 // Если для хранения значений используется 31 бит,
// каждый символ сдвинут на 1 байт вправо
// в выходном потоке и при декодировании приходится
// его считывать в 2 этапа.
#define EXTRABITS ((CODEBITS-1)%8+1)
// Если для хранения значений используется 31 бит,
// каждый символ сдвинут на 1 бит вправо
// в выходном потоке, и при декодировании приходится
// его считывать в 2 этапа.
#define EXTRABITS ((CODEBITS-1)%8+1)
46 void decode_normalize( void ) {
  while( range <= BOTTOM ) {
    range <<= 1;
    low = low<<8 |
        ((next_char<<EXTRABITS) & 0xFF);
    next_char = input_byte();
    low |= next_char >> (8-EXTRABITS);
    range <<= 8;
  }
}
void decode_normalize( void ) {
  while( range <= BOTTOM ) {
    low = low<<8 |
        ((next_char<<EXTRABITS) & 0xFF);
    next_char = input_byte();
    low |= next_char >> (8-EXTRABITS);
    range <<= 8;
  }
}
(убрана лишняя строка в цикле)
90, 91, 372 Для обозначения метода Миллера-Уэгнама (Miller-Wegman) используется аббревиатура LZMV вместо LZMW
91 Практические реализации LZMV неизвестны. LZMW применяется в СУБД DB2 фирмы IBM для экономного представления информации непосредственно в реляционной базе данных. Для сжатия данных в СУБД более пригодны методы с явным словарем, что позволяет организовать статический режим сжатия с помощью заранее построенного словаря, без адаптации к локальным изменениям. «Жадная» стратегия построения словаря LZMW обеспечивает заметное преимущество над LZW по степени сжатия, поскольку данные обычно высокоизбыточны из-за наличия большого количества длинных повторяющихся строк и неоднородны (сжатие в DB2 осуществляется по строкам, а ведь отдельные колонки обычно сильно отличаются). Таким образом, LZMW имеет свою специфическую нишу.
179 Описанные алгоритмы CTW работают с бинарным алфавитом. Это не так. Существуют теоретические разработки и практические реализации мультиалфавитного CTW. Например, см. Sadakane K. et al. Implementing the Context Tree Weighting Method for Text Compression
189 for( i=0; i<n; i++) {
  sum += count[i];
  count[i] = sum - count[i];
}
for( i=0; i<N; i++) {
  sum += count[i];
  count[i] = sum - count[i];
}
190 for( i=0; i<n; i++) {
  putc( in[pos], output );
  pos = T[pos];
}
for( i=0; i<n; i++) {
  pos = T[pos];
  putc( in[pos], output );

}

(поменять местами строчки)
199 Рис. 5.15. 1-2-кодирование чисел:
Число повторов Код
... ...
5 z1z1
... ...

Число повторов Код
... ...
5 z2z1
... ...
252 Если индекс равен 58, то отображение будет таким: Если индекс равен 56, то отображение будет таким:
271 Требуемый объем памяти при сжатии. PPM: Варьируется в широких пределах, в зависимости от сложности моделирования и порядка модели; вырастает на малоизбыточных и очень неоднородных данных Утверждение об увеличении расхода памяти в случае малоизбыточных данных спорно. Это зависит от используемых в компрессоре структур данных. В том случае, если в модели не хранится в явном виде информация о так называемых "виртуальных" состояниях, возникших только один раз, то ситуация может быть и обратной, особенно при большом порядке модели. В итоге для кодирования уже сжатого файла (степень сжатия около 1) может требоваться меньший объем памяти, чем для кодирования текстового файла (степень сжатия 3-4) такого же размера.
294 Последовательность кодов для данного примера, попадающих в выходной поток: <256> <45> <55> <55> <151> <259>. Не закодирован последний символ 55 и символ конца потока, поэтому:
Последовательность кодов для данного примера, попадающих в выходной поток: <256> <45> <55> <55> <151> <259> <55> <257>.
297 Упражнение. Составить алгоритм генерации таких цепочек. Попробовать сжать полученный таким образом файл стандартными архиваторами (zip, arj, gz). Если вы получите сжатие, значит, алгоритм генерации написан неправильно. В общем случае это не так. Поскольку подразумеваются LZH-архиваторы, то может сказаться наличие кодирования по Хаффману. Если в сгенерированных данных есть локальные области преобладания одних символов над другими, то они могут быть сжаты LZH, пусть даже и блочно-адаптивным.
302 Перепутаны подписи у рис. 1.1 и рис. 1.2.
307 Неправильная матрица перехода RGB --> YCrCb:

308 Плавное изменение цвета соответствует низкочастотной составляющей, а резкие скачки - низкочастотной. Плавное изменение цвета соответствует низкочастотной составляющей, а резкие скачки - высокочастотной.
318   ...
  } // Next range block
  Save_Coefficients_to_file(best);
} // Next domain block
  ...
  } // Next domain block
  Save_Coefficients_to_file(best);
} // Next range block
318 Неверная формула сдвига по яркости:
318 Неверная формула меры:
318 Часть программы
for (all domain blocks)
for (all range blocks) +
  symmetry transformation
Часть программы
for (all range blocks)
for (all domain blocks) +
  symmetry transformation
319 For(every pixel(i,j) in the block{
  Rij = 0.75Dij + oR;
} //Next pixel
For(every pixel(i,j) in the block{
  Rij = 0.75Dij + q;
} //Next pixel
326 Перепутаны индексы у коэффициентов h в формулах преобразований:


327 Смещены индексы в формуле:
Авторы выражают признательность Эрасту Куненкову, Евгению Шелвину, Алексею Панину, Дмитрию Шкарину, Владимиру Вовку, Сергею Осначу, Дмитрию Хмелеву, Сергею Фролову, Борису и Виктору Зайчикову за их конструктивные замечания.

наверх