[Bug 784667] New: [metabug] Add Flexible Encoding Infrastructure (FEI) Support

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Jul 7 19:15:49 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=784667

            Bug ID: 784667
           Summary: [metabug] Add Flexible Encoding Infrastructure (FEI)
                    Support
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: Normal
         Component: gstreamer-vaapi
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: bsreerenj at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
                CC: bsreerenj at gmail.com, vjaquez at igalia.com
     GNOME version: ---

FEI(Flexible Encoding Infrastructure) is an extension to VA API which allows
applications to have more control over different phases of encoding and trade
off quality for speed with their on IPs.

The main highlight of FEI is the possibility to split the encoding process into
two phases, first is ENC and the second is PAK.
ENC is the operation which performs all motion vector calculation and
prediction.PAK is doing all transformations and entropy coding.
Without having FEI, the whole ENC+PAK is a black box to middleware, but with
FEI user can extract the output of ENC and feed PAK with a custom enhanced
motion vectors and macroblock prediction modes.


VA-API(libva):
*************************
Patches are already landed in mailing list:
https://github.com/01org/libva/pull/83
For now, we only have APIs for AVC encode

intel-vaapi-driver:
*************************
Skylake is the only platform which is supporting FEI now.
Patches are on the way.


GStreaemr-VA API
*************************
Integrating the whole FEI to GStreamer is not trivial. FEI is more useful for
customers who have their own encoder but want to offload some parts
of encoding to GPU/fixed-function hardware block for better performance.
I believe, it is better to not mess up the existing vaapih264enc which is our
primary encoder and should be good enough for normal use cases.

What changes FEI brings into gstreamer-vaapi:

There will be(minimum of) two new GStreamer elements and a bunch of test
applications needs to be implemented.

1: vaapih264feienc:       (An advanced h264 encoder which can provide low-level
 per macroblock tuning parameters)

2: vaapih264feipreenc:  (A preprocessing element which can extract MVs and
statistics before calling encode function)

I will create two separate bugs to track the development of each.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list