![]() |
|
Модераторы: Poseidon |
![]()
|
|
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
Задача: отправлять на удаленный ПК состояние экрана.
Про сеть упомянул в связи с желанием минимизировать объем передаваемых данных. Кроме того, при желании иметь на целевом компе комфортное кадрочередование(ну, не меньше 10 кадров в секунду) не хотел бы загружать мониторимый комп частыми вычислениями. Надумал три стратегии(метод мозгового штурма - сразу же ногами не пинать 1. Съемка по таймеру. Плюс: простота реализации. Минусы: - нагрузка на сеть - нагрузка на процессор 2. Съемка по запросу клиента. Возможен вариант ответа "ничего не изменилось, используй предыдущую картинку". Плюс: не требуют - не снимаем(меньше нагрузка на процессор мониторимой машины), меньше нагрузка на сеть(можно получать ответ "ничего не изменилось, рисуй, что было раньше") Минусы: - необходимо как-то фиксировать, что "изменений не было" на мониториемой машине - либо побитовое сравнение образов, либо ещё как. - при нескольких клиентах нагрузка на сеть нерационально высока(нельзя на запрос одного клиента бросить широковещательный запрос - остальным клиентам может не пригодиться) 3. Съемка по событию(перехват сообщения на перерисовку и подобное). Плюс: можем бросать при изменении широковещательный пакет, все остальное время не передавать ничего - нагрузка на сеть минимальна, процессор загружен только когда надо. Минус: сложность реализации --------------------- Вопрос: какие ещё возможны варианты? |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 6 Всего: 158 |
очевидно, что 3 вариант оптимален. только вот думается, что без ограничения скорости "обновления" все равно не обойтись. и broadcast, наверное, лучше не делать - 2-3 секретарши, активно перебирающих претендентов на каких-нибудь "знакомства.ру", завалят сеть.
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
тебе нужно сделать такую опцию, как в RAdmin (для регулировки нагрузки на сеть и на процессор):
1. количество снимков в минуту или секунду 2. глубина цвета. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
dumb, ну, некая "регистрация" клиентов все равно будет, и широковещение будет применяться только при количестве клиентов более 5-6, да и к секретаршам не попадет
некритично. сжимать буду JPEG - размеры вряд ли будут большие... дык, если юзать вариант 2 или вариант 3 это вообще не надо - съемка будет инициироваться "когда надо" |
|||
|
||||
| artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
если только на мониторимом компе проги со скромной графикой , представь у Picasa сколь WMPaint ходит. --------------------
Don't ask me why, ask me how. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Добавлено @ 18:10 Еще бы в PNG жал Я бы вычитал два соседних кадра и жал все это в RLE, так хоть есть шанс, что машина успеет сжать. Да и разностная картинка будет иметь много черных полей, которые отлично и без нагрузки жмет это самое RLE. Это сообщение отредактировал(а) alexeis1 - 14.11.2006, 18:11 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 5 Всего: 133 |
Я что-то не понял. skyboy, ты собираешься "фоткать" экран клиента и каждый раз отправлять картинку? Глупо. Я бы отправлял только то, что изменилось. Т.е. програма на "сервере" анализиует предыдущий "снимок" и сравнивает с нынешним. Разнице отправляет клиенту. Клиент принимет, анализиует что изменилось и отображает уже новую картинку, с учетом полученной разницы. Таким образом можно уменшить траффик в десятки раз, при этом не создавать эффект "кадрирования", как при "фотографировании" по таймеру.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| W1zArD |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 29.1.2006 Репутация: -1 Всего: 3 |
Poseidon если я не путаю... то gif работает на таком же принципе...
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
ну, блин, маньяки %) я не спросил, что лучше, что - хуже... просто поинтересовался - имеются ли другие варианты... а вы сразу - в критику
Ты об этом, Poseidon: ? |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 5 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Хотелось всё-таки поднять этот вопрос...
Скажите, а в какой формат Вы бы порекомендовали сохранять кидаемый скриншот? Чем потом жать или нет? Видел тут RLE предлагали, это ли оптимальный вариант?? BMP, потом по нему RLE..? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
DelphiFun, если сам передаешь - зачем использовать какой-нить формат? сжимай в поток, распаковывай из потока...
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
skyboy, конечно! Но кто мешает RLE самому написать, тем более, что у microsoft полностью описан алгоритм. Поскольку будет много черных полей, то RLE в этом случае подходит идеально.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
А какие именно чёрные поля?
Мы отправляем ведь только изменённые куски.. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
DelphiFun, в том-то и фишка: видимо ты просто неполностью прочитал посты. предлагается передавать только изменения: для этого делать между соседними кадрами попиксельный(можно пройтись по компонентам цвета) XOR - после этой операции одинаковые участки станут девственно(
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |