Pull to refresh

Comments 18

Обязательно! Помоги доклад выбрать.

Вообще задача «не потерять информацию от лазерной указки» решаема в видеомонтаже (экран с указкой, плюс качественный экран скринкаста), но так мучительна … Я даже в свое время пытался написать хотя бы автоматический детектор моментов, когда докладчик использует лазерную указку, но увы — (не говоря уже о задаче вычисления координат указки, чтобы мапить их на экран). Приходится до сих пор, просматривать глазами, все моменты, когда на экране архитектурная диаграмма или код, а докладчик развернут лицом к экрану, и рука подозрительно поднята… Это ужасно конечно, и результат неидеален — обычно такие моменты требуют всего пространства под код/сложную диаграмму, и ползать и указывать там должен крупный курсор, или рисовалка-экранный аннотатор.


Я пытался внедрять десятки девайсов докладчикам (чтобы указывали крупным курсором) — гиромыши, носимые микротачпады, ноуты с сенсорными и перьевыми экранами… наиболее оптимальный пока вариант — беспроводной трекбол, но все равно, им надо хотя бы минут пять потренироваться… и это надо сделать ответственностью докладчика — не используй лазерную указку, возьми с собой то устройство, которым ты сможешь удаленно и уверенно рулить курсором, если это потребуется.

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

А если совмещать в полуручном режиме при монтаже, то на уровне отдельного доклада энтузиаст это может сделать, а на уровне конференции, в которой 50-100 докладов, такая работа, скорее всего, окажется неприемлемо дорогой (монтаж-то там не своими силами делается обычно, а на заказ).

Да, работа эта тяжелая, профессионалы ее делать не будут, я делаю для тех тысяч смонтированных докладов… получая комментарии в духе «а вот, в такой-то момент пропустил лазерную указку, добавьте». С этим, конечно, надо кончать.


Насчет указки — несколько лет назад вроде был консенсус, что оптимально выделать отдельную камеру с инфракрасным фильтром — там да, четко будет видно. Но тратить целую камеру на такую фигню жалко конечно. Пропагандируйте беспроводные трекболы, плиз.

Указку видно не только на видно после, но и как написано в тексте статьи — тем, кто смотри на другой экран в зале.

Да, конечно. Полно случаев с тремя экранами… да и даже с одним — если это плазма, нифига ее не видно. Непонятно, о чем спор.

Я даже в свое время пытался написать хотя бы автоматический детектор моментов, когда докладчик использует лазерную указку, но увы — (не говоря уже о задаче вычисления координат указки, чтобы мапить их на экран).

Пишем видеосигнал, идущий на проектор, параллельно снимаем на камеру экран, на который проектор транслирует изображение, вычитаем из видеосигнала с камеры видеосигнал, идущий на проектор — чем не вариант?

Яркость-цвета и вообще все, от экрана, при сьемке на камеру дико плавают (внешняя освещенность, события, перекрывание экрана, мерцания). Анрил вообще.

Насчёт Demo 6 — люто не согласен и надеюсь, что Сергей к вам не прислушается. Я существенно легче воспринимаю столбик цифр, чем эти дурацкие спаренные полоски, которые надо взглядом сопоставить с числом снизу и числом слева. Можно было цветом или полужирным выделить, например, 19.3, 19.4, 18.4, чтобы акцент поставить. А так всё хорошо.

В принципе, тут таблица не очень большая. В ней, конечно, можно и так сориентироваться. Если хочется работать именно с таблицей, то есть варианты её отсортировать, сделать акценты с помощью цвета или жирного шрифта, а также можно элементы таблицы показывать не все сразу, а последовательно, по мере того, как до них доходит речь.
Ну так а в итоге — куда там указкой показывалось? Потому что я не понял это объяснение про 4k-aliasing.
Так же я прочитал https://software.intel.com/en-us/node/544395 — и еще больше не понял.
А потом я посмотрел http://stackoverflow.com/questions/21038965/why-does-the-speed-of-memcpy-drop-dramatically-every-4kb — и мне сейчас вообще кажется, что чувак получил прямо противоположный результат к тому, что рассказано видео.

Условно, перед проверкой на перекрытие данных, адресам делается & 0xFFF, и потом смотрится, есть ли их перекрытие. Так?
Мне, логика подсказывает, что при этом объяснении просадка производительности должна быть когда копируешь между адресами кратными 4к, но судя по таблице — это самый лучший случай по производительности. Странно это.
Насколько я понял, плохой случай — это когда source и destination выровнены относительно 4k примерно одинаково. Поэтому плохой случай находится на диагонали: из-за 4K-алиасинга с точки зрения кэша мы читаем и пишем примерно в те же самые адреса (что на самом деле не так, адреса все разные, просто для таблицы, действительно, взяты остатки от деления адреса на 4096).
> из-за 4K-алиасинга с точки зрения кэша

Небольшой коммент: кэш ничего не знает про 4K-aliasing.
Это проблема store buffer'а
> Условно, перед проверкой на перекрытие данных, адресам делается & 0xFFF, и потом смотрится, есть ли их перекрытие. Так?

Так.

> Мне, логика подсказывает, что при этом объяснении просадка производительности должна быть когда копируешь между адресами кратными 4к, но судя по таблице — это самый лучший случай по производительности. Странно это.

4k-aliasing, не позволяет делать load пока не завершится store (в случае конфликта). То есть нас интересует load, который идет после store.
Если дельта == 4K. то все хорошо ибо:
1) load *+4K
2) store *+4K
3) load *+4K+32
4) store *+4K+32

Тут нет конфликтов по 4K-aliasing

Если дельта == 4K+1(2,15,16). то:
1) load *+4K
2) store *+4K+1
3) load *+4K+32
4) store *+4K+1+32

то у операций 2 и 3 адреса (в младших 12 битах) перекрываются. И значит load номер 3 ждет пока значение store номер 2 уедет из store buffer.
Ну да, плохой случай находится не на самой диагонали, а чуть выше.
Все, теперь я все понял. Получается, ту ссылку, что я давал выше на stack overflow — это вообщне не про 4к-aliasing. Спасибо.

Кстати, чтобы собрать проект с гитхаба, нужно поставить 0.4 версию jol, потому что с 0.5 и выше не собирается (нет класса какого-то).
Sign up to leave a comment.