Маленькая, но интересная задача - уменьшение трафика в remote-desktop

Тема в разделе "WASM.A&O", создана пользователем slow, 11 май 2006.

  1. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    AlB80



    Почему 30 кадров в секунду? Можно и 40 кадров в секунду захватывать, и 1 кадр в минуту.





    Кто сказал, что картинка статическая? В условиях задачи это не уточнялось. А если пользователь запустит 3д игрушку или решит посмотреть DVD? Это всё равно, что посоветовать деградировать палитру до 16 или 2х цветов просто чтобы сэкономить траффик.
     
  2. AlB80

    AlB80 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    25
    Адрес:
    Russia
    Quantum



    Разница принципиальная. В объеме произошедших измений. Особенно при тупом вычитании.





    В условии небыло задачи смотреть видео на удаленном компе. И сэкономить трафик тут можно проще, скачать видео на свой комп. :)
     
  3. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Почему все ориентируютя на Radmin? Чем вам не нравится mstsc.exe (Удаленный рабочий стол)? Там все работает очень быстро. Насчет видио - считаю, что достаточно тормозно: захватить, сжать, переслать (сетевая карта или момед загорятся просто), а еще затем распаковать и проиграть.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    mix_mix

    Ты что-нибудь слышал про трансляцию видео по сети? Что-то там не горят сетевые.
     
  5. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Нельзя сделать побайтовое вычитание картинок с пом BitBlt?
     
  6. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    можно, надо так:

    сначала BitBlt с операцией DSTINVERT (dest = not dest) потом BitBlt с операцией SRCINVERT (dest = dest xor source)
     
  7. wzrd0

    wzrd0 New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2008
    Сообщения:
    1
    1. Хукать API и смотреть обновившиеся rectangles, которые обрабатывать.
    2. Кэшировать bitmap'ы и повторять вызовы API на другой стороне (помогает если юзер скроллит текст и т.д.)
    3. Обнаруживать высокоэнтропийные участки и жать их JPEG'ом, остальное - zlib/png.
    4. JPEG можно прокачать до MPEG'a, если хочется видео или если хочется транслировать Luna\Aero\Compiz подобные интерфейсы

    з.ы. сорри за археологию, просто если кому-то понадобится
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    slow
    юзай флэш -видео (векторную графику).
     
  9. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Всякие видеоуроки выкладывают в avi со сжатием Microsoft video 1 и поверх пожатое rar/7z. Итог - пара мегабайт, вот только не уверен в эффективности методики при поточном сжатии...

    Да, ещё вариант перехват функций отрисовки и запись в метафайл, вроде они достаточно компактны.
     
  10. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    AlB80
    Quantum прав. MPEG (4) очень подходит под эту задачу. Во первых. Он сам был задуман для целей трансляции по сети. Во вторых там довольно много алгосов по сжатию (DCT\DWT , RLE, Haffman, предсказание движения... и представте себе все над 1 кадром...) В статике будет вообще кулл. Мы не будем передавать данные пока на экране ничего не меняется. Если движется мышка, то передаваться будет разность движения мышки а не ВСЕ изображение (пусть даже в jpeg)
    В общем хороший способ.
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    TermoSINteZ
    лучше векторная графика.
     
  12. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    1) Уменьшить глубину цвета с 32 до 16 бит
    2) Использовать SSE, чтобы xor`ить по 8 пикселей сразу
    3) Сжать внешним архиватором через командную строку
     
  13. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    rsync-алгоритм + jpeg