Hardware video encoding in Radeon RX Vega M GH Graphics

If you are curious what video encoding capabilities Radeon RX Vega M GH Graphics offers for a Media Foundation application, here are the details. Some introductory information for starters:

The AMD Radeon RX Vega M GH is an integrated GPU in the fastest Intel Kaby-Lake-G SoC. It combines a Kaby-Lake processor, a Vega graphics card and 4 GB HBM2 memory on a single package. The graphics card offers 24 CUs (1536 shaders) and is clocked from 1063 – 1190 MHz.

The quote above has enough benchmarks related to high resolution gaming, I am however interested in hardware codecs on the chip. The system enumerates two DXGI adapters, so they are both present on chip:

Display Devices

  • Intel(R) HD Graphics 630
    • Instance: PCI\VEN_8086&DEV_591B&SUBSYS_20738086&REV_04\3&11583659&0&10
    • DEVPKEY_Device_Manufacturer: Intel Corporation
    • DEVPKEY_Device_DriverVersion: 24.20.100.6286
  • Radeon RX Vega M GH Graphics
    • Instance: PCI\VEN_1002&DEV_694C&SUBSYS_20738086&REV_C0\4&2BF2E4F6&0&0008
    • DEVPKEY_Device_Manufacturer: Advanced Micro Devices, Inc.
    • DEVPKEY_Device_DriverVersion: 24.20.11026.2001

Then it is interesting that both integrated GPUs have their own video encoders:

Category MFT_CATEGORY_VIDEO_ENCODER

  • IntelВ® Quick Sync Video H.264 Encoder MFT (MFT_ENUM_FLAG_HARDWARE)
  • IntelВ® Hardware H265 Encoder MFT (MFT_ENUM_FLAG_HARDWARE)
  • AMDh264Encoder (MFT_ENUM_FLAG_HARDWARE)
  • AMDh265Encoder (MFT_ENUM_FLAG_HARDWARE)

That is, both Intel and AMD hardware parts come with their video encoding ASICs, no reduction, and together they basically provide excessive video encoding capabilities. 

Below is the quote of AMF SDK capabilities of the hardware. The data looks pretty much similar to that of my another Radeon RX 570 Series system:

## Radeon RX Vega M GH Graphics

 * AMF SDK Version: 1.4.9.0 // https://gpuopen.com/gaming-product/advanced-media-framework/
 * AMF Runtime Version: 1.4.7.0

AMF_Context_DeviceType	AMF_VARIANT_INT64	0

### AMFVideoDecoderUVD_MJPEG

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_DECODER_CAP_NUM_OF_STREAMS: 16

CodecId	AMF_VARIANT_INT64	7
DPBSize	AMF_VARIANT_INT64	1

NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 32 - 7,680
 * Height Range: 32 - 4,320
 * Vertical Alignment: 32
 * Format Count: 0
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_HOST Native
 * Interlace Support: 1

#### Output

 * Width Range: 32 - 7,680
 * Height Range: 32 - 4,320
 * Vertical Alignment: 32
 * Format Count: 4
 * Format: AMF_SURFACE_YUY2 
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_DX11 Native
 * Interlace Support: 1

### AMFVideoDecoderUVD_MPEG4

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_DECODER_CAP_NUM_OF_STREAMS: 16

CodecId	AMF_VARIANT_INT64	2
DPBSize	AMF_VARIANT_INT64	4

NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 32 - 1,920
 * Height Range: 32 - 1,080
 * Vertical Alignment: 32
 * Format Count: 0
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_HOST Native
 * Interlace Support: 1

#### Output

 * Width Range: 32 - 1,920
 * Height Range: 32 - 1,080
 * Vertical Alignment: 32
 * Format Count: 3
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_DX11 Native
 * Interlace Support: 1

### AMFVideoDecoderUVD_H264_AVC

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_DECODER_CAP_NUM_OF_STREAMS: 16

CodecId	AMF_VARIANT_INT64	5
DPBSize	AMF_VARIANT_INT64	16

NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 32 - 4,096
 * Height Range: 32 - 4,080
 * Vertical Alignment: 32
 * Format Count: 0
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_HOST Native
 * Interlace Support: 1

#### Output

 * Width Range: 32 - 4,096
 * Height Range: 32 - 4,080
 * Vertical Alignment: 32
 * Format Count: 3
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_DX11 Native
 * Interlace Support: 1

### AMFVideoDecoderUVD_MPEG2

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_DECODER_CAP_NUM_OF_STREAMS: 16

CodecId	AMF_VARIANT_INT64	1
DPBSize	AMF_VARIANT_INT64	4

NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 32 - 1,920
 * Height Range: 32 - 1,080
 * Vertical Alignment: 32
 * Format Count: 0
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_HOST Native
 * Interlace Support: 1

#### Output

 * Width Range: 32 - 1,920
 * Height Range: 32 - 1,080
 * Vertical Alignment: 32
 * Format Count: 3
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_DX11 Native
 * Interlace Support: 1

### AMFVideoDecoderHW_H265_HEVC

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_DECODER_CAP_NUM_OF_STREAMS: 16

CodecId	AMF_VARIANT_INT64	1002
DPBSize	AMF_VARIANT_INT64	16

NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 32 - 4,096
 * Height Range: 32 - 4,096
 * Vertical Alignment: 32
 * Format Count: 0
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_HOST Native
 * Interlace Support: 1

#### Output

 * Width Range: 32 - 4,096
 * Height Range: 32 - 4,096
 * Vertical Alignment: 32
 * Format Count: 3
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Memory Type Count: 1
 * Memory Type: AMF_MEMORY_DX11 Native
 * Interlace Support: 1

### AMFVideoDecoderHW_H265_MAIN10

 * Acceleration Type: AMF_ACCEL_NOT_SUPPORTED
 * AMF_VIDEO_DECODER_CAP_NUM_OF_STREAMS: 16

CodecId	AMF_VARIANT_INT64	1005
DPBSize	AMF_VARIANT_INT64	16

NumOfStreams	AMF_VARIANT_INT64	16

### AMFVideoEncoderVCE_AVC

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_ENCODER_CAP_MAX_BITRATE: 100,000,000
 * AMF_VIDEO_ENCODER_CAP_NUM_OF_STREAMS: 16
 * AMF_VIDEO_ENCODER_CAP_MAX_PROFILE: AMF_VIDEO_ENCODER_PROFILE_HIGH
 * AMF_VIDEO_ENCODER_CAP_MAX_LEVEL: 52
 * AMF_VIDEO_ENCODER_CAP_BFRAMES: 0
 * AMF_VIDEO_ENCODER_CAP_MIN_REFERENCE_FRAMES: 1
 * AMF_VIDEO_ENCODER_CAP_MAX_REFERENCE_FRAMES: 16
 * AMF_VIDEO_ENCODER_CAP_MAX_TEMPORAL_LAYERS: 1
 * AMF_VIDEO_ENCODER_CAP_FIXED_SLICE_MODE: 0
 * AMF_VIDEO_ENCODER_CAP_NUM_OF_HW_INSTANCES: 1

AspectRatio	AMF_VARIANT_RATIO	num 1	den 1
BPicturesDeltaQP	AMF_VARIANT_INT64	0
BPicturesPattern	AMF_VARIANT_INT64	0
BReferenceEnable	AMF_VARIANT_BOOL	0
CABACEnable	AMF_VARIANT_INT64	0
CodecId	AMF_VARIANT_INT64	5
ConstraintSetFlags	AMF_VARIANT_INT64	0
DeBlockingFilter	AMF_VARIANT_BOOL	1
EnableGOPAlignment	AMF_VARIANT_BOOL	1
EnableVBAQ	AMF_VARIANT_BOOL	0
EncoderMaxInstances	AMF_VARIANT_INT64	1
EncoderOutputCallback	AMF_VARIANT_EMPTY
EncoderOutputCallbackSupport	AMF_VARIANT_BOOL	1
EnforceHRD	AMF_VARIANT_BOOL	0
EngineType	AMF_VARIANT_INT64	0
ExtraData	AMF_VARIANT_EMPTY
FillerDataEnable	AMF_VARIANT_BOOL	0
FrameRate	AMF_VARIANT_RATE	num 30	den 1
FrameSize	AMF_VARIANT_SIZE	width 1920	height 1080
FullRangeColor	AMF_VARIANT_BOOL	0
GOPSize	AMF_VARIANT_INT64	60
HalfPixel	AMF_VARIANT_BOOL	1
HeaderInsertionSpacing	AMF_VARIANT_INT64	0
IDRPeriod	AMF_VARIANT_INT64	30
InitialVBVBufferFullness	AMF_VARIANT_INT64	64
InstanceID	AMF_VARIANT_INT64	-1
IntraRefreshMBsNumberPerSlot	AMF_VARIANT_INT64	0
IntraRefreshMode	AMF_VARIANT_INT64	0
IntraRefreshNumOfStripes	AMF_VARIANT_INT64	2147483647
IsUVE	AMF_VARIANT_BOOL	0
LowLatencyInternal	AMF_VARIANT_BOOL	0
MGSKeyPicturePeriod	AMF_VARIANT_INT64	0
MGSVector0	AMF_VARIANT_INT64	0
MGSVector1	AMF_VARIANT_INT64	0
MGSVector2	AMF_VARIANT_INT64	0
MGSVector3	AMF_VARIANT_INT64	0
MGSVectorMode	AMF_VARIANT_BOOL	0
MaxAUSize	AMF_VARIANT_INT64	0
MaxDecFrameBuffering	AMF_VARIANT_INT64	-1
MaxMBPerSec	AMF_VARIANT_INT64	581441
MaxNumRefFrames	AMF_VARIANT_INT64	4
MaxOfLTRFrames	AMF_VARIANT_INT64	0
MaxQP	AMF_VARIANT_INT64	51
MaxSliceSize	AMF_VARIANT_INT64	2147483647
MinQP	AMF_VARIANT_INT64	0
MultiInstanceCurrentQueue	AMF_VARIANT_INT64	0
MultiInstanceMode	AMF_VARIANT_BOOL	0
NumOfQualityLayers	AMF_VARIANT_INT64	0
NumOfTemporalEnhancmentLayers	AMF_VARIANT_INT64	0
PeakBitrate	AMF_VARIANT_INT64	30000000
Profile	AMF_VARIANT_INT64	77
ProfileLevel	AMF_VARIANT_INT64	42
QPB	AMF_VARIANT_INT64	22
QPI	AMF_VARIANT_INT64	22
QPP	AMF_VARIANT_INT64	22
QualityEnhancementMode	AMF_VARIANT_INT64	0
QualityPreset	AMF_VARIANT_INT64	0
QuarterPixel	AMF_VARIANT_BOOL	1
RateControlMethod	AMF_VARIANT_INT64	2
RateControlPreanalysisEnable	AMF_VARIANT_INT64	0
RateControlSkipFrameEnable	AMF_VARIANT_BOOL	0
ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	0
ScanType	AMF_VARIANT_INT64	0
SliceControlMode	AMF_VARIANT_INT64	0
SliceControlSize	AMF_VARIANT_INT64	0
SliceMode	AMF_VARIANT_INT64	1
SlicesPerFrame	AMF_VARIANT_INT64	1
TL0.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL0.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL0.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL0.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL0.QL0.GOPSize	AMF_VARIANT_INT64	60
TL0.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL0.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL0.QL0.MaxQP	AMF_VARIANT_INT64	51
TL0.QL0.MinQP	AMF_VARIANT_INT64	0
TL0.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL0.QL0.QPB	AMF_VARIANT_INT64	22
TL0.QL0.QPI	AMF_VARIANT_INT64	22
TL0.QL0.QPP	AMF_VARIANT_INT64	22
TL0.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL0.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL0.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL0.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL0.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TL1.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL1.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL1.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL1.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL1.QL0.GOPSize	AMF_VARIANT_INT64	60
TL1.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL1.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL1.QL0.MaxQP	AMF_VARIANT_INT64	51
TL1.QL0.MinQP	AMF_VARIANT_INT64	0
TL1.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL1.QL0.QPB	AMF_VARIANT_INT64	22
TL1.QL0.QPI	AMF_VARIANT_INT64	22
TL1.QL0.QPP	AMF_VARIANT_INT64	22
TL1.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL1.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL1.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL1.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL1.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TL2.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL2.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL2.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL2.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL2.QL0.GOPSize	AMF_VARIANT_INT64	60
TL2.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL2.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL2.QL0.MaxQP	AMF_VARIANT_INT64	51
TL2.QL0.MinQP	AMF_VARIANT_INT64	0
TL2.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL2.QL0.QPB	AMF_VARIANT_INT64	22
TL2.QL0.QPI	AMF_VARIANT_INT64	22
TL2.QL0.QPP	AMF_VARIANT_INT64	22
TL2.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL2.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL2.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL2.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL2.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TL3.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL3.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL3.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL3.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL3.QL0.GOPSize	AMF_VARIANT_INT64	60
TL3.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL3.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL3.QL0.MaxQP	AMF_VARIANT_INT64	51
TL3.QL0.MinQP	AMF_VARIANT_INT64	0
TL3.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL3.QL0.QPB	AMF_VARIANT_INT64	22
TL3.QL0.QPI	AMF_VARIANT_INT64	22
TL3.QL0.QPP	AMF_VARIANT_INT64	22
TL3.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL3.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL3.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL3.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL3.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TargetBitrate	AMF_VARIANT_INT64	20000000
UniqueInstance	AMF_VARIANT_INT64	0
Usage	AMF_VARIANT_INT64	0
VBVBufferSize	AMF_VARIANT_INT64	20000000
WaitForTask	AMF_VARIANT_BOOL	0

BFrames	AMF_VARIANT_BOOL	0
FixedSliceMode	AMF_VARIANT_BOOL	0
MaxBitrate	AMF_VARIANT_INT64	100000000
MaxLevel	AMF_VARIANT_INT64	52
MaxProfile	AMF_VARIANT_INT64	100
MaxReferenceFrames	AMF_VARIANT_INT64	16
MaxTemporalLayers	AMF_VARIANT_INT64	1
MinReferenceFrames	AMF_VARIANT_INT64	1
NumOfHwInstances	AMF_VARIANT_INT64	1
NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 64 - 4,096
 * Height Range: 64 - 2,160
 * Vertical Alignment: 32
 * Format Count: 6
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_YUV420P 
 * Format: AMF_SURFACE_YV12 
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Format: AMF_SURFACE_ARGB 
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL 
 * Memory Type: AMF_MEMORY_OPENGL 
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

#### Output

 * Width Range: 64 - 4,096
 * Height Range: 64 - 2,160
 * Vertical Alignment: 32
 * Format Count: 1
 * Format: AMF_SURFACE_NV12 Native
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL 
 * Memory Type: AMF_MEMORY_OPENGL 
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

### AMFVideoEncoderVCE_SVC

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_ENCODER_CAP_MAX_BITRATE: 100,000,000
 * AMF_VIDEO_ENCODER_CAP_NUM_OF_STREAMS: 16
 * AMF_VIDEO_ENCODER_CAP_MAX_PROFILE: AMF_VIDEO_ENCODER_PROFILE_HIGH
 * AMF_VIDEO_ENCODER_CAP_MAX_LEVEL: 52
 * AMF_VIDEO_ENCODER_CAP_BFRAMES: 0
 * AMF_VIDEO_ENCODER_CAP_MIN_REFERENCE_FRAMES: 1
 * AMF_VIDEO_ENCODER_CAP_MAX_REFERENCE_FRAMES: 16
 * AMF_VIDEO_ENCODER_CAP_MAX_TEMPORAL_LAYERS: 3
 * AMF_VIDEO_ENCODER_CAP_FIXED_SLICE_MODE: 0
 * AMF_VIDEO_ENCODER_CAP_NUM_OF_HW_INSTANCES: 1

AspectRatio	AMF_VARIANT_RATIO	num 1	den 1
BPicturesDeltaQP	AMF_VARIANT_INT64	0
BPicturesPattern	AMF_VARIANT_INT64	0
BReferenceEnable	AMF_VARIANT_BOOL	0
CABACEnable	AMF_VARIANT_INT64	0
CodecId	AMF_VARIANT_INT64	5
ConstraintSetFlags	AMF_VARIANT_INT64	0
DeBlockingFilter	AMF_VARIANT_BOOL	1
EnableGOPAlignment	AMF_VARIANT_BOOL	1
EnableVBAQ	AMF_VARIANT_BOOL	0
EncoderMaxInstances	AMF_VARIANT_INT64	1
EncoderOutputCallback	AMF_VARIANT_EMPTY
EncoderOutputCallbackSupport	AMF_VARIANT_BOOL	1
EnforceHRD	AMF_VARIANT_BOOL	0
EngineType	AMF_VARIANT_INT64	0
ExtraData	AMF_VARIANT_EMPTY
FillerDataEnable	AMF_VARIANT_BOOL	0
FrameRate	AMF_VARIANT_RATE	num 30	den 1
FrameSize	AMF_VARIANT_SIZE	width 1920	height 1080
FullRangeColor	AMF_VARIANT_BOOL	0
GOPSize	AMF_VARIANT_INT64	60
HalfPixel	AMF_VARIANT_BOOL	1
HeaderInsertionSpacing	AMF_VARIANT_INT64	0
IDRPeriod	AMF_VARIANT_INT64	30
InitialVBVBufferFullness	AMF_VARIANT_INT64	64
InstanceID	AMF_VARIANT_INT64	-1
IntraRefreshMBsNumberPerSlot	AMF_VARIANT_INT64	0
IntraRefreshMode	AMF_VARIANT_INT64	0
IntraRefreshNumOfStripes	AMF_VARIANT_INT64	2147483647
IsUVE	AMF_VARIANT_BOOL	0
LowLatencyInternal	AMF_VARIANT_BOOL	0
MGSKeyPicturePeriod	AMF_VARIANT_INT64	0
MGSVector0	AMF_VARIANT_INT64	0
MGSVector1	AMF_VARIANT_INT64	0
MGSVector2	AMF_VARIANT_INT64	0
MGSVector3	AMF_VARIANT_INT64	0
MGSVectorMode	AMF_VARIANT_BOOL	0
MaxAUSize	AMF_VARIANT_INT64	0
MaxDecFrameBuffering	AMF_VARIANT_INT64	-1
MaxMBPerSec	AMF_VARIANT_INT64	0
MaxNumRefFrames	AMF_VARIANT_INT64	4
MaxOfLTRFrames	AMF_VARIANT_INT64	0
MaxQP	AMF_VARIANT_INT64	51
MaxSliceSize	AMF_VARIANT_INT64	2147483647
MinQP	AMF_VARIANT_INT64	0
MultiInstanceCurrentQueue	AMF_VARIANT_INT64	0
MultiInstanceMode	AMF_VARIANT_BOOL	0
NumOfQualityLayers	AMF_VARIANT_INT64	0
NumOfTemporalEnhancmentLayers	AMF_VARIANT_INT64	0
PeakBitrate	AMF_VARIANT_INT64	30000000
Profile	AMF_VARIANT_INT64	77
ProfileLevel	AMF_VARIANT_INT64	42
QPB	AMF_VARIANT_INT64	22
QPI	AMF_VARIANT_INT64	22
QPP	AMF_VARIANT_INT64	22
QualityEnhancementMode	AMF_VARIANT_INT64	0
QualityPreset	AMF_VARIANT_INT64	0
QuarterPixel	AMF_VARIANT_BOOL	1
RateControlMethod	AMF_VARIANT_INT64	2
RateControlPreanalysisEnable	AMF_VARIANT_INT64	0
RateControlSkipFrameEnable	AMF_VARIANT_BOOL	0
ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	0
ScanType	AMF_VARIANT_INT64	0
SliceControlMode	AMF_VARIANT_INT64	0
SliceControlSize	AMF_VARIANT_INT64	0
SliceMode	AMF_VARIANT_INT64	1
SlicesPerFrame	AMF_VARIANT_INT64	1
TL0.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL0.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL0.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL0.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL0.QL0.GOPSize	AMF_VARIANT_INT64	60
TL0.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL0.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL0.QL0.MaxQP	AMF_VARIANT_INT64	51
TL0.QL0.MinQP	AMF_VARIANT_INT64	0
TL0.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL0.QL0.QPB	AMF_VARIANT_INT64	22
TL0.QL0.QPI	AMF_VARIANT_INT64	22
TL0.QL0.QPP	AMF_VARIANT_INT64	22
TL0.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL0.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL0.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL0.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL0.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TL1.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL1.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL1.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL1.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL1.QL0.GOPSize	AMF_VARIANT_INT64	60
TL1.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL1.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL1.QL0.MaxQP	AMF_VARIANT_INT64	51
TL1.QL0.MinQP	AMF_VARIANT_INT64	0
TL1.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL1.QL0.QPB	AMF_VARIANT_INT64	22
TL1.QL0.QPI	AMF_VARIANT_INT64	22
TL1.QL0.QPP	AMF_VARIANT_INT64	22
TL1.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL1.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL1.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL1.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL1.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TL2.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL2.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL2.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL2.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL2.QL0.GOPSize	AMF_VARIANT_INT64	60
TL2.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL2.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL2.QL0.MaxQP	AMF_VARIANT_INT64	51
TL2.QL0.MinQP	AMF_VARIANT_INT64	0
TL2.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL2.QL0.QPB	AMF_VARIANT_INT64	22
TL2.QL0.QPI	AMF_VARIANT_INT64	22
TL2.QL0.QPP	AMF_VARIANT_INT64	22
TL2.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL2.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL2.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL2.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL2.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TL3.QL0.BPicturesDeltaQP	AMF_VARIANT_INT64	4
TL3.QL0.EnforceHRD	AMF_VARIANT_BOOL	0
TL3.QL0.FillerDataEnable	AMF_VARIANT_BOOL	0
TL3.QL0.FrameRate	AMF_VARIANT_RATE	num 30	den 1
TL3.QL0.GOPSize	AMF_VARIANT_INT64	60
TL3.QL0.InitialVBVBufferFullness	AMF_VARIANT_INT64	64
TL3.QL0.MaxAUSize	AMF_VARIANT_INT64	0
TL3.QL0.MaxQP	AMF_VARIANT_INT64	51
TL3.QL0.MinQP	AMF_VARIANT_INT64	0
TL3.QL0.PeakBitrate	AMF_VARIANT_INT64	30000000
TL3.QL0.QPB	AMF_VARIANT_INT64	22
TL3.QL0.QPI	AMF_VARIANT_INT64	22
TL3.QL0.QPP	AMF_VARIANT_INT64	22
TL3.QL0.RateControlMethod	AMF_VARIANT_INT64	2
TL3.QL0.RateControlSkipFrameEnable	AMF_VARIANT_BOOL	1
TL3.QL0.ReferenceBPicturesDeltaQP	AMF_VARIANT_INT64	2
TL3.QL0.TargetBitrate	AMF_VARIANT_INT64	20000000
TL3.QL0.VBVBufferSize	AMF_VARIANT_INT64	2000000
TargetBitrate	AMF_VARIANT_INT64	20000000
UniqueInstance	AMF_VARIANT_INT64	0
Usage	AMF_VARIANT_INT64	0
VBVBufferSize	AMF_VARIANT_INT64	20000000
WaitForTask	AMF_VARIANT_BOOL	0

BFrames	AMF_VARIANT_BOOL	0
FixedSliceMode	AMF_VARIANT_BOOL	0
MaxBitrate	AMF_VARIANT_INT64	100000000
MaxLevel	AMF_VARIANT_INT64	52
MaxProfile	AMF_VARIANT_INT64	100
MaxReferenceFrames	AMF_VARIANT_INT64	16
MaxTemporalLayers	AMF_VARIANT_INT64	3
MinReferenceFrames	AMF_VARIANT_INT64	1
NumOfHwInstances	AMF_VARIANT_INT64	1
NumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 64 - 4,096
 * Height Range: 64 - 2,160
 * Vertical Alignment: 32
 * Format Count: 6
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_YUV420P 
 * Format: AMF_SURFACE_YV12 
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Format: AMF_SURFACE_ARGB 
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL 
 * Memory Type: AMF_MEMORY_OPENGL 
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

#### Output

 * Width Range: 64 - 4,096
 * Height Range: 64 - 2,160
 * Vertical Alignment: 32
 * Format Count: 1
 * Format: AMF_SURFACE_NV12 Native
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL 
 * Memory Type: AMF_MEMORY_OPENGL 
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

### AMFVideoEncoder_HEVC

 * Acceleration Type: AMF_ACCEL_HARDWARE
 * AMF_VIDEO_ENCODER_HEVC_CAP_MAX_BITRATE: 2,147,483,647
 * AMF_VIDEO_ENCODER_HEVC_CAP_NUM_OF_STREAMS: 16
 * AMF_VIDEO_ENCODER_HEVC_CAP_MAX_PROFILE: AMF_VIDEO_ENCODER_HEVC_PROFILE_MAIN
 * AMF_VIDEO_ENCODER_HEVC_CAP_MAX_PROFILE: AMF_VIDEO_ENCODER_HEVC_TIER_HIGH
 * AMF_VIDEO_ENCODER_HEVC_CAP_MAX_LEVEL: AMF_LEVEL_6_2
 * AMF_VIDEO_ENCODER_HEVC_CAP_MIN_REFERENCE_FRAMES: 1
 * AMF_VIDEO_ENCODER_HEVC_CAP_MAX_REFERENCE_FRAMES: 16

BPicturesPattern	AMF_VARIANT_INT64	0
CABACEnable	AMF_VARIANT_INT64	1
CommonLowLatencyInternal	AMF_VARIANT_BOOL	0
EnableGOPAlignment	AMF_VARIANT_BOOL	1
EngineType	AMF_VARIANT_INT64	0
GOPSizeMax	AMF_VARIANT_INT64	16
GOPSizeMin	AMF_VARIANT_INT64	0
GOPType	AMF_VARIANT_INT64	0
HevcAspectRatio	AMF_VARIANT_RATIO	num 1	den 1
HevcDeBlockingFilter	AMF_VARIANT_BOOL	0
HevcEnableVBAQ	AMF_VARIANT_BOOL	0
HevcEndOfSequence	AMF_VARIANT_BOOL	0
HevcEndOfStream	AMF_VARIANT_BOOL	0
HevcEnforceHRD	AMF_VARIANT_BOOL	0
HevcExtraData	AMF_VARIANT_EMPTY
HevcFillerDataEnable	AMF_VARIANT_BOOL	0
HevcForceLTRReferenceBitfield	AMF_VARIANT_INT64	0
HevcForcePictureType	AMF_VARIANT_INT64	0
HevcFrameRate	AMF_VARIANT_RATE	num 30	den 1
HevcFrameSize	AMF_VARIANT_SIZE	width 1920	height 1080
HevcGOPSPerIDR	AMF_VARIANT_INT64	1
HevcGOPSize	AMF_VARIANT_INT64	30
HevcHalfPixel	AMF_VARIANT_BOOL	1
HevcHeaderInsertionMode	AMF_VARIANT_INT64	1
HevcInitialVBVBufferFullness	AMF_VARIANT_INT64	64
HevcInputQueueSize	AMF_VARIANT_INT64	16
HevcInsertAUD	AMF_VARIANT_BOOL	0
HevcInsertHeader	AMF_VARIANT_BOOL	0
HevcMarkCurrentWithLTRIndex	AMF_VARIANT_INT64	0
HevcMaxAUSize	AMF_VARIANT_INT64	0
HevcMaxMBPerSec	AMF_VARIANT_INT64	61200
HevcMaxNumOfTemporalLayers	AMF_VARIANT_INT64	1
HevcMaxNumRefFrames	AMF_VARIANT_INT64	1
HevcMaxOfLTRFrames	AMF_VARIANT_INT64	0
HevcMaxQP_I	AMF_VARIANT_INT64	51
HevcMaxQP_P	AMF_VARIANT_INT64	46
HevcMinQP_I	AMF_VARIANT_INT64	0
HevcMinQP_P	AMF_VARIANT_INT64	18
HevcNumOfTemporalLayers	AMF_VARIANT_INT64	1
HevcPeakBitrate	AMF_VARIANT_INT64	30000000
HevcProfile	AMF_VARIANT_INT64	1
HevcProfileLevel	AMF_VARIANT_INT64	186
HevcQualityPreset	AMF_VARIANT_INT64	0
HevcQuarterPixel	AMF_VARIANT_BOOL	1
HevcRateControlMethod	AMF_VARIANT_INT64	2
HevcRateControlPreAnalysisEnable	AMF_VARIANT_BOOL	0
HevcRateControlSkipFrameEnable	AMF_VARIANT_BOOL	0
HevcSlicesPerFrame	AMF_VARIANT_INT64	1
HevcTargetBitrate	AMF_VARIANT_INT64	20000000
HevcTemporalLayerSelect	AMF_VARIANT_INT64	0
HevcTier	AMF_VARIANT_INT64	0
HevcUsage	AMF_VARIANT_INT64	0
HevcVBVBufferSize	AMF_VARIANT_INT64	20000000
InstanceID	AMF_VARIANT_INT64	-1
IntraRefreshMode	AMF_VARIANT_INT64	0
IntraRefreshNumOfStripes	AMF_VARIANT_INT64	1
LowLatencyInternal	AMF_VARIANT_BOOL	1
NominalRange	AMF_VARIANT_BOOL	0
PerformanceCounter	AMF_VARIANT_EMPTY
QPCBOFFSET	AMF_VARIANT_INT64	0
QPCROFFSET	AMF_VARIANT_INT64	0
SliceControlMode	AMF_VARIANT_INT64	0
SliceControlSize	AMF_VARIANT_INT64	2176
TL0.HevcQP_I	AMF_VARIANT_INT64	26
TL0.HevcQP_P	AMF_VARIANT_INT64	26
TL1.HevcQP_I	AMF_VARIANT_INT64	26
TL1.HevcQP_P	AMF_VARIANT_INT64	26
TL2.HevcQP_I	AMF_VARIANT_INT64	26
TL2.HevcQP_P	AMF_VARIANT_INT64	26
TL3.HevcQP_I	AMF_VARIANT_INT64	26
TL3.HevcQP_P	AMF_VARIANT_INT64	26
UniqueInstance	AMF_VARIANT_INT64	0

HevcBFrames	AMF_VARIANT_INT64	0
HevcMaxBitrate	AMF_VARIANT_INT64	2147483647
HevcMaxLevel	AMF_VARIANT_INT64	186
HevcMaxProfile	AMF_VARIANT_INT64	1
HevcMaxReferenceFrames	AMF_VARIANT_INT64	16
HevcMaxTier	AMF_VARIANT_INT64	1
HevcMinReferenceFrames	AMF_VARIANT_INT64	1
HevcNumOfStreams	AMF_VARIANT_INT64	16

#### Input

 * Width Range: 192 - 4,096
 * Height Range: 128 - 2,176
 * Vertical Alignment: 32
 * Format Count: 6
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_YUV420P 
 * Format: AMF_SURFACE_YV12 
 * Format: AMF_SURFACE_BGRA 
 * Format: AMF_SURFACE_RGBA 
 * Format: AMF_SURFACE_ARGB 
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL 
 * Memory Type: AMF_MEMORY_OPENGL 
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

#### Output

 * Width Range: 192 - 4,096
 * Height Range: 128 - 2,176
 * Vertical Alignment: 32
 * Format Count: 1
 * Format: AMF_SURFACE_NV12 Native
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL 
 * Memory Type: AMF_MEMORY_OPENGL 
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

### AMFVideoConverter

 * Acceleration Type: AMF_ACCEL_GPU

#### Input

 * Width Range: 32 - 4,096
 * Height Range: 32 - 4,096
 * Vertical Alignment: 2
 * Format Count: 6
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_YV12 Native
 * Format: AMF_SURFACE_BGRA Native
 * Format: AMF_SURFACE_ARGB Native
 * Format: AMF_SURFACE_RGBA Native
 * Format: AMF_SURFACE_YUV420P Native
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL Native
 * Memory Type: AMF_MEMORY_OPENGL Native
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

#### Output

 * Width Range: 32 - 4,096
 * Height Range: 32 - 4,096
 * Vertical Alignment: 2
 * Format Count: 6
 * Format: AMF_SURFACE_NV12 Native
 * Format: AMF_SURFACE_YV12 Native
 * Format: AMF_SURFACE_BGRA Native
 * Format: AMF_SURFACE_ARGB Native
 * Format: AMF_SURFACE_RGBA Native
 * Format: AMF_SURFACE_YUV420P Native
 * Memory Type Count: 4
 * Memory Type: AMF_MEMORY_DX11 Native
 * Memory Type: AMF_MEMORY_OPENCL Native
 * Memory Type: AMF_MEMORY_OPENGL Native
 * Memory Type: AMF_MEMORY_HOST 
 * Interlace Support: 0

Leave a Reply