Если нужно минимизировать задержку, т.е. синхронизировать обновления пикселов с чтением их (т.е. если не ты их обновляешь но нужно оперативно ловить) то либо ты уменьшаешь задержку, что повышает нагрузку на процессор, либо хитро пытаешься синхронизироваться.
Для синхронизации можешь использовать следующий алгоритм, у тебя должно быть два интервала чтения пикселов, интервал определяй как
intval(timestamp/интервал времени (у тебя 1 секунда)) * на этот же интервал + смещение
смещение у каждого интервала свое (меняется в пределах от 0 до длины интервала, само собой в миллисекундах), твоя задача найти такие значения для смещений, чтобы один интервал возвращал чаще то же самое что другой в последний раз (т.е. был позади во времени перед сменой значений), а это другой чаще новые значения (сразу после смены значений). Т.е. ты сохраняешь последние N измерений со значениями интервалов и boolean (подходит или нет) и считаешь градиент для интервалов (количество true по значениям интервалов), из них уже вычисляешь нужно ли увеличивать интервал или уменьшать на некую дельту.