The Encoder property page provides a user interface for changing the filter's attributes. You can also change these settings programmatically using the ILMH265Encoder interface.
Changes are applied only when the filter's state is stopped, with the ability to set them permanently by clicking Apply or OK, or abandoning them by clicking Cancel. Positioning the mouse pointer over a control displays general information for that control. The property page is shown in the figure below:
The following table shows the controls and their descriptions:
|Quality Driven radio button||If this button is selected, a quality factor, set in the Quality Factor edit box, determines the video quality. A Quality Factor of 1 gives the highest quality and the largest video file size. A Quality Factor of 49 gives the smallest file size with low video quality. The default is 28.|
|Quality Factor drop-down list box||Value that determines the video quality if the Quality Driven radio button is selected.|
|Rate Driven radio button||If this button is selected, the compression level is constant and the storage requirements can be easily predicted. However, the quality of more dynamic scenes or those with more picture detail may be affected. The associated bit rate describes the amount of data used/transferred within a time period. It is directly related to the compression level. The higher the bit rate, the lower the compression and the better the quality. The bit rate can be adjusted using the Bit Rate edit box in Kilo Bits Per Sec. (Note that the rate is in kilo bits/sec, NOT kilo bytes per second).|
|Bit Rate edit box||Value that determines the bit rate if the Rate Driven radio button is selected.|
|Output Format drop-down list box||Selects the output format. Possible values are as follows:|
|Auto||Allows the LEAD H265 Encoder to determine the appropriate format. In this case, h265 format is offered first. If that is not accepted, hvc1 is offered next.|
|Main Profile (h265) / MPEG||
Uses MEDIATYPE_Video and MEDIASUBTYPE_h265
Generates a Main profile video in which NAL units are prefixed with 00 00 01 start codes. This format is suitable for use in MPEG-2 containers.
|Main profile (hvc1) / MP4||
Uses MEDIATYPE_Video and ISOMEDIATYPE_hvc1 or MEDIASUBTYPE_hvc1
Generates a Main profile video in which NAL units are prefixed with NAL unit length (no start codes). This format is suitable for use in ISO/MP4 containers.
|Output Frame Rate drop-down list box||
Sets the playback frame rate, in frames per second, of the compressed video, regardless of the rate of the input stream frames. The LEAD H265 Encoder automatically adjusts the input video to match the desired frame rate. The rate is adjusted by dropping or duplicating input frames. If the selected frame rate is lower than the original frame rate, the compression will be higher.
If "input framerate" is selected, the output frame rate will be exactly the same as the input frame rate. Use this selection when you don't want to change the frame rate.
|No. of Ps between 2 Is drop-down list box||If the Enable Set GOP check box is cleared, then option shown is No. of Ps between 2 Is for the number of Ps between 2 successive I frames.|
|GOP Length drop-down list box||If the Enable Set GOP check box is selected, then the I frame length value can be selected from the drop-down list box. For example: GOP Length = 4, and No of Bs between 2 Ps = 1, results in IPBP... for each I frame.|
|No. of Bs between 2 Ps drop-down list box||Sets the number of B frames between 2 successive P frames.|
|Enable Set GOP Length check box||
Changes the units of measure of the distance between two I-frames.
Enable Set GOP Length check box is selected: drop-down list box unit changes to GOP Length
Enable Set GOP Length check box is cleared: drop-down list box unit changes to No. of Ps between 2 Is
|Capabilities section||Reports the encoder's capabilities. It indicates whether hardware compression is available. Currently, only software compression is available.|
To increase the compression performance, H265 uses Temporal Compression. Temporal compression is achieved by encoding only the difference between successive frames instead of the frames themselves. This means that frames cannot be considered in isolation. A given picture is constructed from the prediction from a previous picture, and may be used to predict the next picture. An H265 video stream comprises I Frames, B Frames and P Frames:
I: (Intraframe) frames. These are encoded without reference to another frame to allow for random access.
P: (Predictive) frames are encoded using the previous I (or P) frame as reference. P frames are compressed more than I frames.
B: (Bi-directional) frames are encoded using both previous and next I (or P) frames as reference and they are compressed more than both I, and P frames.
To increase the compression of H265, more B and P frames should be used. You do so using the "No. of Ps between 2 Is" and "No. of Bs between 2 Ps" options on the Encoder Property Page:
No. of Ps between 2 Is: represents the number of P frames between 2 successive I frames. All the frames between successive I frames are P or B frames.
No. of Bs between 2 Ps: represents the number of B frames between 2 successive P frames. All the frames between successive P frames are B frames.
For example if No. of Ps between 2 Is is 3, and No. of Bs between 2 Ps is 5, then the video stream looks like:
I B B B B B P B B B B B P B B B B B P &..
The distance between I frames must be a multiple of the distance between the P frames. The encoder will automatically adjust these values to preserve this relationship.
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms