Hi Gwenole,

The new post-processing flags you proposed look fine to me. As far as the 
naming, I don't have a strong opinion as long as it conveys the different 
levels of trade-off. Perhaps we can use something like:

VA_FILTER_LQ_SCALING -> VA_FILTER_SCALING_FAST

VA_FILTER_MQ_SCALING -> VA_FILTER_SCALING_DEFAULT

VA_FILTER_HQ_SCALING -> VA_FILTER_SCALING_HQ

I have been thinking a little bit about how to support more advanced video 
post-processing capabilities with the API. As these advanced features will 
likely require passing more complex data structures than just flags or integer 
values, one possible solution is to use 
vaBeginPicture/vaRenderPicture/vaEndPicture for passing video post-processing 
data structures as buffers.  For example, we can add a new 
VAVideoProcessingBufferType and a generalized VAVideoProcessingParameter data 
structure. This would make it easier to specify things like reference frames 
for doing motion-compensated de-interlacing etc.  This should work for 
pre-processing as well if the source picture to be encoded needs some 
pre-processing, and as pre and post processing share a lot of common features 
they can be treated essentially the same.

vaPutSurface() could still be the most efficient way to get a decoded frame to 
the screen if no advanced video processing is required, or if the hardware 
can't process an image and write the output to memory (e.g. hardware overlay).  
But if the hardware is capable of taking an input image from memory, process it 
and write it out to memory (whether it's GPU or fixed-function), then the 
vaRenderPicture path can enable more advanced features.

Comments?

Regards,
Jonathan  

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Gwenole Beauchesne
Sent: Monday, March 08, 2010 2:02 AM
To: [email protected]
Subject: [Libva] [RFC] New postprocessing flags to vaPutSurface()

Hi,

I have attached new postprocessing flags to expose additional GPU 
features. I am not decided yet for the "scaling-quality" flags naming. The 
rationale behind this is to expose e.g. what AMD marketing calls Avivo HD 
upscaling ("detail enhancement")[1]. NVIDIA has probably similar 
capabilities exposed through VDPAU high-quality scaling options too.

BTW, what additional postprocessing work can the GMA500 chip do?

[1] ATI Avivo(tm) HD – Technology Brief (page 5):
<http://ati.amd.com/technology/Avivo/pdf/ATI_Avivo_HD_tech_brief.pdf>

Comments welcome.

Thanks,
Gwenole.
_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to