Hi, Jonathan,
I am very exciting about your VPP interface proposals! we are longing for
it for quite a long time.
I have two questions about AProcFilterType VPP definition:
1). What's the meaning of "VAProcFilterDering"?
2). As to " VAProcFilterColorEnhancement" filter, In my opinion, it is a
generalized conception, many kinds of enhancement can be covered, such as:
a) Spacial domain enhance: pixel enhance, local area enhance...
b) Frequency domain enhance: high frequency filter, low frequency
filter.
Will we specify more detail information about this filter type in future?
Thanks,
Xiaowei
-----Original Message-----
From: libva-bounces+xiaowei.a.li=intel....@lists.freedesktop.org
[mailto:libva-bounces+xiaowei.a.li=intel....@lists.freedesktop.org] On Behalf
Of Bian, Jonathan
Sent: Tuesday, August 02, 2011 2:14 AM
To: libva@lists.freedesktop.org
Subject: [Libva] [RFC] VA API extension proposals to support encode and
post-processing
Hi,
Attached are API extension proposals from Intel to support additional profiles
for H.264 encode and video post-processing. The main changes/additions from the
existing APIs are described below and comments/feedbacks are appreciated to
help with finalizing the API extensions.
Regards,
Jonathan Bian
1. Added new entrypoint for video post-processing 2. Added a number of
configuration attributes to accommodate differing capabilities in hardware
encoders.
3. Added "Ext" buffer types to extend encode parameters buffers without
impacting compatibility with existing encode data structures 4. Added new
buffer types for packed header to be sent by the app, and various buffers
required for video post-processing 5. Added "Ext" version of sequence, picture
and slice parameter buffer structures for H.264 to support High Profile
encoding.
6. Added new functions and data structures to support video post-processing
(see va_vpp.h).
With this proposal, video post-processing is modeled as a pipeline of connected
and configurable processing filters. The existing
vaBeginPicture/vaRenderPicture/vaEndPicture semantics is used to perform video
post-processing frame by frame, with configuration parameters passed through
vaRenderPicture as buffers. For optimal performance, the assumption is made
that the implementation will retain the parameter settings affecting the
processing pipeline until the application makes explicit modifications of these
parameters. Following is some pseudo code to demonstrate the usage of the
video post-processing APIs:
// find out if post-processing entrypoint is available
va_status = vaQueryConfigEntrypoints(va_dpy,
VAProfileNone,
va_entrypoints,
&entrypointsCount);
if(VAEntrypointVideoProc == va_entrypoints[entrypointsIndx])
va_status = vaCreateConfig(va_dpy,
VAProfileNone,
VAEntrypointVideoProc,
&va_attributes,
1,
&va_config);
// create context for post-processing
va_status = vaCreateContext(va_dpy,...)
// query pipeline level capabilities
va_status = vaQueryVideoProcPipelineCap(caps) // for ex: Denoise (DN), DI,
sharpening (SHRP), procamp are supported by driver
// query individual filter capabilities, e.g. parameter value range
va_status = vaQueryVideoProcFilterCap(dn, caps_dn);
Va_status = vaQueryVideoProcFilterCap(procamp, caps_procamp);
While( is_new_input )
{
vaBeginPicture(out);
// setup pipeline parameter (VAProcPipelineParameterBuffer)
vaRenderPicture(pipeline_param);
// query reference frame requirements for this pipeline
vaQueryVideoProcReferenceFrameCap(&forward_ref, &backward_ref);
// set up input parameter (VAProcInputParameterBuffer)
vaRenderPicture(input_param);
// set up denoise parameters (VAProcFilterBaseParameterBuffer)
vaRenderPicture(dn_param);
// set up procamp parameters (VAProcFilterProcAmpParameterBuffer)
vaRenderPicture(procamp_param);
vaEndPicture();
// find out whether processing has completed at some later time
vaQueryStatus();
}
_______________________________________________
Libva mailing list
Libva@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libva