Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменён MediaPlayer, IMFMediaEngineи аудио/видеозахватом в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует внедрять новый код с использованием MediaPlayer, IMFMediaEngine и функции аудио/видео-захвата в Media Foundation вместо DirectShow, когда возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Несжатое видео — это последовательность растровых изображений, воспроизводимых в быстром последовательности, как правило, примерно в 30 кадров в секунду. Так как большинство видео входит в граф фильтра DirectShow в сжатом формате, видеопоток обычно проходит через декодатор для декомпрессии. Многие декодеры выводят данные в формате YUV и оставляют окончательное преобразование в RGB на видеоустройство непосредственно перед отрисовкой. Если декодатор использует Ускорение видео DirectX, видео оборудование выполняет дополнительную работу для декодации изображения. Таким образом, окончательная декомпрессия растровых изображений не может быть выполнена до тех пор, пока данные не достигнут видео аппаратного обеспечения.
Но для выполнения многих типов видеоанализа, обработки или редактирования часто требуется работать над несжатыми растровыми изображениями в определенном формате RGB или YUV перед отрисовкой или записью в файл. Обычно эта работа выполняется в фильтре преобразования на основе базового класса CTransformFilter, в частности в методе преобразования . Этот метод получает указатель на объект IMediaSample, который инкапсулирует данные видео. Метод IMediaSample::GetPointer возвращает указатель на первый байт необработанных данных. Для несжатых кадров эти данные состоят из пикселей, к которым можно обращаться или изменять непосредственно фильтром. В следующих разделах содержатся справочные сведения, которые помогут эффективно работать с данными DIB таким образом.
Заметка
Вы также можете изменить биты с помощью функций GDI, GDI+, DirectDraw или Direct3D, но эти методы выходят за рамки этой статьи.
В этом разделе содержатся следующие разделы: