Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

Принцип работы RAdmin a   Найти похожие ветки 

 
pasha_golub   (2004-02-02 13:57) [0]

Вернее интересует метод коим он так быстро делает скриншоты и послыает их на клиент. Очень интересно узнать. Или может быть у каого-то есть какие-то соображения. Поделитесь пжлста.


 
MBo   (2004-02-02 14:12) [1]

Отслеживается изменение скриншота, и посылается только измененный кусок.


 
pasha_golub   (2004-02-02 14:18) [2]

Хм, ну это да. Но вот каким способом, я имею ввиду программно?

Ловит ли он сообщения либо каким другим способом?


 
Тоже мимо проходил...   (2004-02-02 14:25) [3]

Скриншоты? А в какой формат он их кодирует?


 
pasha_golub   (2004-02-02 14:27) [4]

Вообщем-то, про формат не знаю. Но на сайте есть статистика, что RAdmin работает (наверное передает информацию) в 32 раза быстрее VNC.


 
AndersoNRules   (2004-02-02 15:16) [5]

Ya dumayu on sohronyaet v BMP, menyaet format v JPG(shtob vesil menishe) i potom peredayeot i vseo takoe


 
DiamondShark   (2004-02-02 16:17) [6]

<TELEPATOR ON>
Ничего он не ловит.
Просто периодически делает скриншот и сравнивает с предыдущим. Само сравнение тоже реализуется просто: побитовым XOR -- изменившиеся пикселы будут ненулевыми. Остаётся только выделить минимальные прямоугольные фрагменты, включающие изменившиеся участки. При передаче, возможно, используется простейшее сжатие без потерь.
<TELEPATOR OFF>
Кстати, временами он занимает до 50% процессорного времени.


 
pasha_golub   (2004-02-02 17:00) [7]

DiamondShark © (02.02.04 16:17) [6]

Идея хороша. Только обязательно ли нужно выделять прямоугольные фрагменты? Думаю, что 0 пикселы в конце концов воспринимаются как прозрачные.


 
MBo   (2004-02-02 17:03) [8]

>обязательно ли нужно выделять прямоугольные фрагменты
Так намного проще


 
DiamondShark   (2004-02-02 18:07) [9]

Прямоугольные фрагменты а) легче всего найти б) легче всего описать. Ведь любой неэлементраной формы фрагмент всё равно придётся как-то представлять. А для растрового изображения прямоугольник -- самая элементарная фигура.

Про прозначность я не совсем понял. Зачем? Всё равно отрисовать на приёмном конце весь прямоугольник будет быстрее, чем возиться с прозрачностью. А передавать всё равно придётся все пикселы, прозрачные они или нет.
Или я что-то недопонял?

Возможный формат потока может быть, к примеру, таким:
<кол. фрагментов><X1, Y1, X2, Y2, (pixels_data)>...<X1, Y1, X2, Y2, (pixels_data)>
фрагмент1 ... фрагментN

Формат пикселя устанавливается и запоминается один раз -- при установке связи.
Можно чего-нибудь ещё добавить для контроля целостности.

При работе в типичном оконном окружении изменяющихся фрагментов будет мало и они будут мелкие. Тяжёлый случай -- полноэкранная игрушка или окошко с фильмом. Но тут уж, как говорится, против танка не попрёшь. Да и вряд ли применение такой программы для удалённого просмотра фильмов будет типичным.

В простейшем случае приемлемый результат может дать даже простейший алгоритм с выделением только одного фрагмента (минимальный прямоугольник, включающий все изменившиеся пикселы). Однако, такой подход может дать сильно неравномерные результаты. Так, тяжёлым случаем тут будет, к примеру, диагональная линия во весь экран, или, скажем, изменение часиков и моргание курсора в верхнем левом углу.

Тогда можно рекурсивно разбивать прямоугольники пополам (поперёк длинной стороны) и искать минимальные фрагменты в них. Полностью неизменные фрагменты, естественно, отбрасываются.


 
pasha_golub   (2004-02-03 10:17) [10]

Спасибо. Идею понял. но все-таки чем тогда можно объяснить такую разницу в производительности или быть может это рекламная уловка?


 
alxx   (2004-02-03 11:02) [11]

Я пробовал пихать снимок экрана в DIB, чтобы по быстрому можно было смотреть что там изменилось. Получалось примерно кадр в три секунды при полной загрузке компа (целерон кажись какой-то был). Кто-нибудь еще пробовал это делать?

Там (RAdmin) кажись посложнее механизм. Кажется используются какие-то хуки.


 
DiamondShark   (2004-02-03 11:42) [12]

Тут уж, извиняюсь, возможностей телепатора не хватает :-)
Не утверждалось ведь, что РАдмин работает именно так. Просто был предложен возможный алгоритм работы, который, кстати, имеет широкие возможности для всякого рода тюнинга.

Что ж до сравнения... Хм... Не хотелось бы априори предполагать недобросовестную рекламу, но ведь действительно можно выбрать заведомо тормозного конкурента и сравнить с ним.
Опять же, может другие разработчики акцент на что-то другое делали. Например, полагали преимущественное использование в локальной сети, где скорость передачи не так критична. Зато выиграли, скажем, в загрузке процессора -- нет необходимости усиленно лопатить битмапы.
А РАдмин больше для узких каналов задумывался. Всяко бывает...


 
MBo   (2004-02-03 12:24) [13]

> разницу в производительности или быть может это рекламная уловка?

Действительно, RAdmin работает намного быстрее, чем VNC.

>alxx кадр в три секунды
здесь причина может лежать в методе сравнения DIB-ов


 
pasha_golub   (2004-02-03 12:52) [14]

MBo © (03.02.04 12:24) [13]
Ну неужели метод сравнения DIB-ов может настолько разносить результаты, ну я надеюсь, сравнение идет без явных ляпов.


 
MBo   (2004-02-03 12:58) [15]

>pasha_golub
Да, может, если не було уделено внимание скорости, хотя в данном случае не указано - на что тратилось основное время



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.029 c
3-79660
tchn1
2004-01-30 03:21
2004.02.25
каким сделать интерфейс


1-79994
Oleg_
2004-02-13 13:47
2004.02.25
drowing not allowed


9-79529
Jenaxx
2003-08-09 12:19
2004.02.25
Я скачал из Samples исходник Quest это типа рпг какой то а она...


7-80305
Borys
2003-12-04 19:54
2004.02.25
HTML


3-79671
Ivanesus
2004-01-30 14:26
2004.02.25
IB+DBGrid текущая запись, как лучше поступить?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский