Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

Two questions regarding Intel Media SDK VPP

Hendrik_W_
Beginner
511 Views

I have two questions regarding Intel Media SDK VPP.

First one is the VPP not working when input format is set to RGB4

   I write a program to test the Intel Media SDK R3 VPP, It's work well when my input format is set to YUY2 or NV12. 

   When I set the input format into RGB4 , all of the VPP steps(including RunFrameVPPAsync and SyncOperation) return MFX_ERR_NONE.

   But the VPP effects is not applied to the input data ( No matter how I set the VPP paramaters , I dont see any visual changes).

Second 

   The VPP surfaces pool is created using IDirectXVideoAccelerationService::CreateSurface

   Is there any techniques to feed the DirectX surfaces as the VPP Input surfaces

   or take the VPP Output surfaces as the input for other features I write using d3d system ?

  As now I plainly copy the the surfaces from/to VPP surfaces, which is very slow because I need to lock the surfaces before copying it.

My system :

  • Windows 8
  • Intel Core i5 with Intel HD Graphics 4000
  • Intel HD Graphics Driver Version 9.17.10.2875
  • Intel Media SDK 2012 R3 (HW version 1.4)

Many Thanks,
Hendrik

0 Kudos
1 Solution
Petter_L_Intel
Employee
511 Views
Hi Hendrik, There are some undocumented limitations with regards to using VPP for RGB4 color conversion. Due to a HW limitation, the only VPP operation that can be performed together with the RGB4->NV12 color space conversion is frame resize. Any other requested operations will be ignored. Media SDK 2012 does not respond with any warnings to indicate this fact. We plan to add such notification in Media SDK 2013 and document the limitation. So, if you need to perform both RGB4->NV12 and grayscale you will have to implement it in two VPP steps. Sorry for the inconvenience. Regards, Petter

View solution in original post

0 Kudos
6 Replies
Petter_L_Intel
Employee
511 Views
Hi Hendrik, Regarding (1). RGB4 -> NV12 color space conversion should not present any issues. Can you please provide more specific information of what you are observing? What do you mean with no visual changes. Conversion to alternate color space will not result in any visual changes. Please also check out the "sample_vpp" for details on this topic. Regarding (2). As far as I know the D3D surfaces used with the Media SDK components must be allocated using the DXVA service and also requiring copy if you for instance need the surface to be associated with separate D3D texture. You may have more flexibility using DX11 surfaces. At the moment I do not have any specific recommendations on how to perform this. But if you find a better approach please share your finding on this forum. Regards, Petter
0 Kudos
Hendrik_W_
Beginner
511 Views
Hi Peter , Thanks for answering my questions. (1) for example : If I set the procampParam.saturation value into 0 , the output data should be a grayscale video right ? when my input format is YUY2 , it works well (output is a grayscale video) but if my input format is RGB4 , my output data remains unchanged (just the same with my input data) all of the VPP steps(including RunFrameVPPAsync and SyncOperation) return MFX_ERR_NONE (2) Sure I will share if I find a better approach :) Regards, Hendrik
0 Kudos
Petter_L_Intel
Employee
512 Views
Hi Hendrik, There are some undocumented limitations with regards to using VPP for RGB4 color conversion. Due to a HW limitation, the only VPP operation that can be performed together with the RGB4->NV12 color space conversion is frame resize. Any other requested operations will be ignored. Media SDK 2012 does not respond with any warnings to indicate this fact. We plan to add such notification in Media SDK 2013 and document the limitation. So, if you need to perform both RGB4->NV12 and grayscale you will have to implement it in two VPP steps. Sorry for the inconvenience. Regards, Petter
0 Kudos
Hendrik_W_
Beginner
511 Views
Dear Petter , Thanks , I get it now. One last question , is there any minimum frame size requirement for using VPP ? for ex 320X240 or 640x480 ? Many Thanks , Hendrik
0 Kudos
Petter_L_Intel
Employee
511 Views
Hi Hendrik, There is no specific lower bound for VPP or Encode but I recommend not going below 10x10. Regards, Petter
0 Kudos
Hendrik_W_
Beginner
511 Views
Thanks Petter
0 Kudos
Reply