Available in LEADTOOLS Multimedia toolkits. |
The Encoder Also known as compressor, this is a module or algorithm to compress data. Playing that data back requires a decompressor, or decoder. property page provides a user interface for changing the filter attributes.
Changes will be applied only when the filter’s state is stopped with the ability to set them permanently by selecting Apply or OK, or abandoning them by selecting Cancel. Positioning the mouse pointer over a control displays the general information for that control. The property page is shown in the figure below:
The following table shows the controls and their descriptions:
Control |
Description |
|
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 edit 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 Bits Per Sec. |
|
Bit Rate edit box |
Value that determines the bit rate if the Rate Driven radio button is selected. |
|
CABAC (Arithmetic Coding) radio button |
Sets the entropy coding mode to Context-based Adaptive Binary Arithmetic Coding (CABAC). CABAC gives better compression at the same quality but is a little bit slower than CAVLC. |
|
CAVLC (Huffman) radio button |
Sets the entropy coding mode to Context-Adaptive Variable-Length Coding (CAVLC). CABAC gives better compression at the same quality but is a little bit slower than CAVLC. |
|
Output Format drop-down list box |
Selects the output format. Possible values are as follows: |
|
|
Value |
Meaning |
|
Auto |
Prompts the LEAD H264 Encoder to determine the appropriate format. |
|
Main Profile (h264) |
Uses MEDIATYPE_Video and MEDIASUBTYPE_h264 |
|
Main Profile (avc1)/ Flash |
Uses MEDIATYPE_Video and ISOMEDIATYPE_avc1 or MEDIASUBTYPE_avc1 |
|
LEAD (L264) |
Uses MEDIATYPE_Video and MEDIASUBTYPE_L264 or MEDIASUBTYPE_LX64 |
|
iPod (avc1) |
Uses MEDIATYPE_Video and ISOMEDIATYPE_avc1 or MEDIASUBTYPE_avc1 The LEAD H264 Encoder will use the appropriate setting to produce video files that can be played on iPod devices. |
|
PSP (avc1) |
Uses MEDIATYPE_Video and ISOMEDIATYPE_avc1 or MEDIASUBTYPE_avc1 The LEAD H264 Encoder will use the appropriate setting to produce video files that can be played on PSP devices. |
|
Baseline Profile(h264) |
Uses MEDIATYPE_Video and MEDIASUBTYPE_h264. |
|
Baseline Profile(avc1) |
Uses MEDIATYPE_Video and ISOMEDIATYPE_avc1 or MEDIASUBTYPE_avc1. |
|
Main Profile(RTP Packetized) |
Uses MEDIATYPE_Stream and MEDIASUBTYPE_h264. |
|
Baseline Profile(RTP Packetized) |
Uses MEDIATYPE_Stream and MEDIASUBTYPE_h264. |
|
iPad (avc1)
|
Uses MEDIATYPE_Video and ISOMEDIATYPE_avc1 or MEDIASUBTYPE_avc1 The LEAD H264 Encoder will use the appropriate setting to produce video files that can be played on iPad devices. |
Super Compression check box |
If this check box is selected, LEAD's improvement to the H264 compression is used. This option produces very high compression and makes the encoding and decoding processes very fast. If high quality video is desired it is recommended to disable this option. This option is recommended for video conferencing and broadcast applications where speed and size are very important and moderate quality is ok. This property is only available if the output is Auto,MainProifile (h264), Main Profile(avc1) / Flash, LEAD (L264), Main Profile(RTP Packetized) or Baseline Profile( RTP Packetized). |
|
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 H264 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 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 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
|
|
Encoding Threads drop-down list box |
The number of threads used during encoding. The maximum number of threads that can be used is 16. Using two threads with a dual core machine or 2 CPUs will increase the encoding speed significantly. Possible values are: |
|
|
Value |
Meaning |
|
Auto |
Prompts the LEAD H264 Encoder to determine the appropriate number of threads. |
|
1 |
Uses 1 thread during encoding and 1 slice per frame. |
|
2 |
Uses 2 threads during encoding and 2 slices per frame. |
|
X |
Uses X threads during encoding and X slices per frame. |
I Frames and P Frames
To increase the compression performance, H264 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 H264 video stream The portion of the file holding the video data. The video data might be compressed to save disk space. The data has to be decompressed using a video decompressor before you can play (see) it. 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 H264, 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.