|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 3, 2003 07:49:33 Д.Ватолин,А.Ратушняк,М.Смирнов,В.Юкин "Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео" -М.: Диалог-МИФИ, 2002. ISBN 5-86404-170-x Замечания к изданию сделаны Аркадием Белоусовым. - стр.12: "чем сложнее источник, тем сильнее улучшит сжатие оптимальн_ая_ преобразование". - стр.20: "((unsigned)S[i])&((1<<M)-1);" - здесь два вопроса. Во-первых, выражение "(1<<M)-1" не совсем честное: в случае, если M равно максимальному количеству битов в поддерживаемых целочисленных типах, то здесь будет переполнение, а по станадарту это implementation defined (или undefined behavior? - не помню). В моей либе для этого есть макрос maxunsigned(v), который суммирует отдельно старший бит и все младшие биты. Во-вторых, кастинг (unsigned) (как и скобки вокруг (unsigned)S[i]) здесь не имеет смысла и не нужен. - стр.21: "#define R 15 ... // 4 бита под экспоненты, так как 23<=R<24". - стр.21: "while (S[i] >= 1<<j) j++;" - более серьёзная проблема. В случае, если в S[i] установлен старший бит и тип S[i] - максимальный, то либо этот цикл будет бесконечным (в случае модульной арифметики), либо здесь будет переполнение. - стр.23: "В каждом из рассмотренных выше четырех вариантов (..., Variable+Fixed)", в то же время на стр.22 сказано "Последний, четвертый вариант (Variable+Fixed) ... будет рассмотрен чуть ниже в подразд. про коды Райса". Кстати, нет ни одной буквы "ё", сплошняком "е". - стр.23: "отказ от "классической" схемы с диапазонами длиной 2^K и границами, выровненными по 2^L (K, L - константы схемы)" - о чём речь? Какие "границы"? - стр.23: "При сжатии с потерями можно просто ограничивать число битов мантиссы M: сохранять не более чем M1 бит мантиссы (а остальные (M[i]-M1) бит - удалять, если M[i]>M1)" - следует ли это понимать так, что нужно отбрасывать старшие (или младшие) биты мантиссы, если длина мантиссы (двоичный логарифм числа) больше некоторого числа-длины в битах? Или здесь имелось в виду что-то ещё? - стр.24: в заголовке таблицы сказано "дельта-коды", хотя это не дельта-кода, а gamma(x+1) (как это ясно из объяснения ниже). - стр.24: "Таким образом, единственный параметр обобщённых gamma(X)-кодов - число кодов без битов мантиссы. Традиционный gamma-код - это gamma(1)". Как я понимаю, есть ещё gamma(0)? Кстати, не упомянут очень интересный и удобный вариант смешанного представления, когда экспонента гаммы перемешивается с мантиссой, что позволяет при декодировании отказаться от лишних счётчиков (или вы этого не знали?). - стр.24: "У обобщённых delta-кодов два параметра" - каких? Предположим, один из них указывает глубину рекурсии при применении гамма-кодирования, а второй? "Количество кодов без битов мантиссы" в каждой итерации гамма-кодирования? - стр.25-27: не даны _сорсы_ для построения кодов Райса, Голомба, омега-кодов и кодов Ивэн-Родэ. Нет сравнения этих кодов между собой и с гамма/дельта-кодами (хотя на стр.24 гамма и дельта-коды сраниваются), поэтому не понятно их преимущества (например, длины омега-кодов либо длиннее гамма-кодов, либо дельта-кодов). - стр.27: правильно ли я понимаю, что gamma(0)==startstep(1,1), а gamma(1)==startstep(0,1)? За исключением того, что в вашем описании экспонента в старт-шаг-кодах инвертирована по отношению к гамма-кодам (кстати, зачем?)? - стр.27: опять не даны сорсы для построения кодов Фибоначчи и сравнение их с другим кодами (если не считать описание "сломанности" потока). Правильно ли я понимаю, что построение кода Фибоначчи похоже на обход всех всех бит, начиная со старшего (т.е. ищется F(i), такое, что F(i)<=v<F(i+1), затем операция рекурсивно повторяется для значения v-F(i))? Если да, то можно ли избежать того, что поиск идёт со старшего числа, а запись - с младшего (это требует лишней памяти, как и, например, в случае преобразования числа в строку, где запись идёт со старших цифр, а выделение идёт с младших)? - стр.29: "Если, например, мы сжимаем поток элементов со значениями: 1,3,4... так называемым методом флагов: 10110010..." - о чём речь? Что за метод флагов и как была построена бит-строка? Какое отношение это имеет к кодам Фибоначчи? |
|
|
Дата: Окт 3, 2003 13:19:55 > - стр.23: "отказ от "классической" схемы с диапазонами длиной 2^K и > границами, выровненными по 2^L (K, L - константы схемы)" - о чём речь? > Какие "границы"? Полагаю имелось в виду задавание размера окна степенью двойки с последующим применением маски & (2^L-1) на указатель. Ну вы все поняли =) |
|
|
Дата: Окт 6, 2003 10:57:19 Прочитал практически фсю книгу, и почти ничего не понял. Если вы разобрались то просто гении. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.076 |