Я бы попробовал создать битмап с помощью CreateDIBSection, чтобы не нужно было каждый раз копировать его в GetDIBits. К тому же, все создания контекстов и битампов лучше делать один раз при изменении формата поступающего видео, а затем каждый раз вызывать только StretchDIBits. Ещё можно попробовать вместо StretchDIBits использовать функцию DrawDibDraw — есть мнение, что она побыстрее будет.
AV>По поводу DES. Можно поподробнее? Или ссылку на их сайт?
DES — это DirectShow Editing Services. Достаточно подробно описано в том же DirectShow SDK.