Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VMR9是否支持本机YUV渲染?_C++_Directshow - Fatal编程技术网

C++ VMR9是否支持本机YUV渲染?

C++ VMR9是否支持本机YUV渲染?,c++,directshow,C++,Directshow,我一直在使用VMR9渲染YUV视频流。我有一些性能问题,所以我运行了一个分析器,发现名为_yvRgb24的函数占用了高达25%的CPU时间。经过进一步调查,我发现VMR9使用该函数来渲染我的视频流 VMR9是否在渲染我的YUV视频之前将其转换为RGB24?它不能马上进行渲染吗?转换算法似乎并不快 我正在使用MEDIASUBTYPE_IYUV作为VMR9的输出类型。VMR-9由Direct3D支持,具体像素格式支持的可用性分别取决于此。在大多数情况下,您可以选择多种像素格式进行渲染,最流行的是YU

我一直在使用VMR9渲染
YUV
视频流。我有一些性能问题,所以我运行了一个分析器,发现名为_yvRgb24的函数占用了高达25%的CPU时间。经过进一步调查,我发现VMR9使用该函数来渲染我的视频流

VMR9是否在渲染我的
YUV
视频之前将其转换为RGB24?它不能马上进行渲染吗?转换算法似乎并不快


我正在使用
MEDIASUBTYPE_IYUV
作为VMR9的输出类型。

VMR-9由Direct3D支持,具体像素格式支持的可用性分别取决于此。在大多数情况下,您可以选择多种像素格式进行渲染,最流行的是YUY2、YV12、NV12。视频显示时不转换为RGB。

除非您有专门的硬件,否则必须在某个位置从YUV转换为RGB。理想情况下,转换可以直接在GPU上进行,而不是在CPU上进行,以使事情更快、更高效。因此,HWND的最终输出应该是RGB?是的,据我所知,没有pc/控制台/移动设备硬件可以输出RGB或其变体以外的任何东西(rgb8、rgba8、rgba5551、rgb565等)从软件中可以知道支持哪种格式吗?另外,我假设转换为另一种YUV格式应该比转换为RGB更快,是否可以告诉VMR9转换为YUY2,而不是RGB?谢谢。您对避免RGB感兴趣,您的策略是使用YUV格式之一连接到VMR,例如YUY2。一旦你成功了,不要担心接下来会发生什么。VMR9不会不必要地转换为RGB。YUY2、YV12等流行格式广泛可用(在古代硬件或远程桌面会话等罕见场景中缺失)。