1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Координатные схемы сжатия

Тема в разделе "WASM.A&O", создана пользователем UbIvItS, 16 мар 2007.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    итак, выложил на сайт сырец с простейшей схемой csc: пока в ней куча проблем, но сейчас сырец позволяет увидеть как работает схема. у меня вопрос к кудесникам асма: насколько вы способны оптимайзить этот алгос. и, вообще, буду рад всякому сотрудничеству в реализации этих схем.
    сырец: http://xproject-all.narod.ru/csc_algo_debug_ver.7z
    а здесь ман по алгосам: http://xproject-all.narod.ru/csc_compressing_algos.pdf
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Хм.
    4 байта на букву... не во во всяком уникоде такое безобразие водится, а если встречается, то "сжать" его в 4 раза можно просто указав кодовую страницу ;)
    Замена букв их адресами в файле по одному адресу на каждую букву - это что первое место на конкурсе неэффективных архиваторов?
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    с чего это неэффективный, на каких расчетах ты основываешь это утверждение??
     
  4. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    возьми файл в 4 гб со средним повторением блоков по 4 байта 3 раза, а затем попробуй сжать LZW, к примеру, csc ужмет его на 3%. и, кстати, при чём здесь юникод - не надо путать понятие буква в контексте алгосов сжатия с буквой в контексте текстовых файлов.
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    стоп, сорри, процент будет меньше ---> примерно 1
     
  6. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    UbIvItS
    Не нужно плодить посты - есть ссылочка "редактировать"
    Не понял - это как?
    Типа пример (есно не на 4Гб :) а на десяток блоков по 4 байта можно?)
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    читай ман там есть простая формула как расчитать длину поля адресации для блока длины m и файла длины n----------> lg2(n/m): длина поля адресации должна быть минимум на 2 бита меньше, чем длина блока, тогда будет сжатия - в обратном случае будет разбухание файла.
     
  8. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    UbIvItS
    Я не про это спрашиваю - мне пожалуйста мааленький образец данных которые совсем не сжимаются lzv, зато цсц даст аж 1% экономии
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    возьми hex редактор или настрокай прогу для генерации файлов с заданой частотой блоков:))
     
  10. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    UbIvItS
    Дык я никак от тебя не добьюсь, что ты имеешь в виду?
    ааааббббаааавввваааагггг
    блок из 4 байт "аааа" повторился 3 раза, это или что-то другое?
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    ну, вот теперь бери схему и считай:))
     
  12. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Так значит условия:
    1. блок "аааа" больше не должен попасться в пределах 4Гбайт?
    2. блок "бббб" встрется ещё 2 раза, но не более того?
    3. повторяющиеся блоки считаются выровненными, т.е. в строке "аааабваааагд" нет повтора "аааа"?
    4. расстояние между повторами произвольно?

    И ты считаешь такой набор данных имеющим малую избыточность и возможность сжатия его на целый 1% достижением?

    Хорошо подумаю ;), только сдаётся мне, что первое апреля "всё ближе и его контуры всё отчётливее" :))
     
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    ты сам найдешь слабость своего примера(ааааббббаааавввваааагггг) или тебе рассказать??:))
     
  14. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    слабость примера с учётом приведённых выше дополнительных 4х условий к нему - расскажи :)
     
  15. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    поведай мне зачем на данной строке юзать блок н 4 байта, когда и 8 бит достаточно, а для прямой адресации нужно 6 бит и еще + fin_bit, - в итоге 7 бит замещающий код.
    я не спорю, что существуют файлы, на которых повторяемость блоков, наибольшая, идет по нехорошим границам, но, во - первых, идеальных алгосов нет и быть не могет, так что для каждого алгоса есть х... туча файлов, так сказать, не хороших. а во - вторых, никто не отменял различные адаптации алгоса и алгосы препроцессинга файла перед сжатием.
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Опять ты не в to step :)
    блоки из повторяющихся буковь, я привёл исключительно для того чтобы в глазах не мельтешило и повторы были наглядными
    Имхо совершенно очевидно что доп. пункты 1,2 полностью нейтрализуют этот недостаток - не хватит столько буковь на 4Гбайта :))
    Я тебя для чего выспрашиваю - хочу уяснить постановку задачи применительно к которой этот странный выигрыш в 1% является достижением :)

    Потому и объясни: пункты 1-4 полностью эту постановку задачи раскрывают или я чего-то упустил?
    А вопрос насколько это реальному файлу соответсвует есно пока оставляем за кадром.
     
  17. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    файл имеющий повторы блоков размера 4 байта в среднем с частотой 3 вхождения каждой буквы(буквы выровнены по границе кратной 4 ) - вот на таких файлах и будет выйгрыш примерно 1% : что здесь не ясно.
     
  18. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    подумаю
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.594
    вообще, хочу заметить, что, если адресацию проводить по произвольным границам, а не границам кратным длине блока, то уся эта затея по кодированью координат вырождается в форменное г..: накладные расходы на код возрастают до приделов словарных метод, а из-за рэндом доступа к файлу, скорость радует:))
     
  20. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    К утру дошло :) Не зря про это в сказках пишут :)
    Алгоритм интересный бу экспериментировать :)
    Только на мой взгляд для быстрого схватывания мануала в нём не хватает:

    Алгоритм сжатия разработан для случая когда файле есть повторы, но они хаотично разбросаны по всей длине файла и какой либо закономерности между ними не наблюдается. Поиск повторов ищется только среди выровненных блоков заданного размера. В рассматриваемом случае размер блока равен 4 байта.
    Терминология:
    буква - выровненный блок данных заданного размера
    алфавит - полный набор «букв» встретившихся в рассматриваемом файле

    хотя имхо выбор названий для терминов неудачный.