[Bug 785712] FEI: Implement VAEntryPointFEI based h264 encoder

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Aug 2 00:53:05 UTC 2017


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

--- Comment #1 from sreerenj <bsreerenj at gmail.com> ---
Here is the initial implementation which I would like to bring upstream (Only
after the driver patch integration) 
https://cgit.freedesktop.org/~sree/gstreamer-vaapi/log/?h=fei-dev

This is more or less like a prototype because this is not exposing any public
APIs for application to set n number of FEI attributes/input-buffers.

The element "vaapih264feienc" will bring 17 new properties which are not
available in existing vaapih264enc (this is not including the heavy input
buffers MV and MBCode):

  disable-fei         : Disable Flexible Encoding Infrasturcture
                        flags: readable, writable
                        Boolean. Default: false
  stats-out           : Enable stats out for fei
                        flags: readable, writable
                        Boolean. Default: true
  num-mvpredict-l0    : Indicate how many predictors should be used for l0,only
valid if MVPredictor input enabled
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 3 Default: 0 
  num-mvpredict-l1    : Indicate how many predictors should be used for l1,only
valid if MVPredictor input enabled
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 3 Default: 0 
  search-window       : Specify one of the predefined search path
                        flags: readable, writable
                        Enum "GstVaapiFeiH264SearchWindow" Default: 0, "none"
                           (0): none             - not use predefined search
window
                           (1): tiny             - 4 SUs 24x24 window diamond
search
                           (2): small            - 9 SUs 28x28 window diamond
search
                           (3): diamond          - 16 SUs 48x40 window diamond
search
                           (4): large diamond    - 32 SUs 48x40 window diamond
search
                           (5): exhaustive       - 48 SUs 48x40 window full
search
                           (6): horizon diamond  - 16 SUs 64x32 window diamond
search
                           (7): horizon large diamond - 32 SUs 64x32 window
diamond search
                           (8): horizon exhaustive - 48 SUs 64x32 window full
search
  len-sp              : This value defines number of search units in search
path
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 63 Default: 32 
  search-path         : Specify search path
                        flags: readable, writable
                        Enum "GstVaapiFeiH264SearchPath" Default: 0, "full"
                           (0): full             - full search path
                           (1): diamond          - diamond search path
  ref-width           : Width of search region in pixel, must be multiple of 4
                        flags: readable, writable
                        Unsigned Integer. Range: 4 - 64 Default: 32 
  ref-height          : Height of search region in pixel, must be multiple of 4
                        flags: readable, writable
                        Unsigned Integer. Range: 4 - 32 Default: 32 
  submbpart-mask      : defines the bit-mask for disabling sub mb partition
                        flags: readable, writable
                        Flags "GstVaapiFeiH264SubMbPartMask" Default:
0x00000000, "enable all"
                           (0x00000000): enable all       - enable all
subpartitions
                           (0x00000002): 16x16 submb part disabled - 16x16
sub-macroblock disabled
                           (0x00000004): 16x8 submb part disabled - 2x(16x8)
sub-macroblock within 16x16 disabled
                           (0x00000008): 8x16 submb part disabled - 2x(8x16)
sub-macroblock within 16x16 disabled
                           (0x00000010): 8x8 submb part disabled - 1x(8x8)
sub-partition for 4x(8x8) within 16x16 disabled
                           (0x00000020): 8x4 submb part disabled - 2x(8x4)
sub-partition for 4x(8x8) within 16x16 disabled
                           (0x00000040): 4x8 submb part disabled - 2x(4x8)
sub-partition for 4x(8x8) within 16x16 disabled
                           (0x00000080): 4x4 submb part disabled - 4x(4x4)
sub-partition for 4x(8x8) within 16x16 disabled
  subpel-mode         : Sub pixel precision for motion estimation
                        flags: readable, writable
                        Enum "GstVaapiFeiH264SubPelMode" Default: 0, "integer"
                           (0): integer          - integer mode searching
                           (1): half             - half-pel mode searching
                           (3): quarter          - quarter-pel mode searching
  intrapart-mask      : Specifies which Luma Intra partition is
enabled/disabled forintra mode decision
                        flags: readable, writable
                        Flags "GstVaapiFeiH264IntraPartMask" Default:
0x00000000, "enable all"
                           (0x00000000): enable all       - enable all intra
mode
                           (0x00000001): intra16x16 disabled - luma_intra_16x16
disabled
                           (0x00000002): intra8x8 disabled - luma_intra_8x8
disabled
                           (0x00000004): intra4x4 disabled - luma_intra_4x4
disabled
  intra-sad           : Specifies distortion measure adjustments usedin the
motion search SAD comparison for intra MB
                        flags: readable, writable
                        Enum "GstVaapiFeiH264SadMode" Default: 0, "none"
                           (0): none             - none transform adjusted
                           (2): haar             - Haar transform adjusted
  inter-sad           : Specifies distortion measure adjustments usedin the
motion search SAD comparison for inter MB
                        flags: readable, writable
                        Enum "GstVaapiFeiH264SadMode" Default: 0, "none"
                           (0): none             - none transform adjusted
                           (2): haar             - Haar transform adjusted
  adaptive-search     : Enable adaptive search
                        flags: readable, writable
                        Boolean. Default: false
  multi-predL0        : Enable multi prediction for ref L0 list, when set
neighbor MV will be usedas predictor, no neighbor MV will be used otherwise
                        flags: readable, writable
                        Boolean. Default: false
  multi-predL1        : Enable multi prediction for ref L1 list, when set
neighbor MV will be usedas predictor, no neighbor MV will be used otherwise
                        flags: readable, writable
                        Boolean. Default: false
  fei-mode            : Functional mode of FEI Encoding
                        flags: readable, writable
                        Flags "GstVaapiFeiMode" Default: 0x00000004, "ENC_PAK"
                           (0x00000001): ENC              - ENC Mode
                           (0x00000002): PAK              - PAK Mode
                           (0x00000004): ENC_PAK          - ENC_PAK Mode

-- 
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