DivX Help Guide
DivX Version 5.0.4
About this Document
This page gives a detailed overview of the various features of the DivX® 5.0.4 Codec, the DivX Pro 5.0.4 Software, and the Electrokompressiongraph (EKG) video encoding tool.
This document provides a detailed overview of the various features of DivX, DivX Pro, and the EKG. For more information, review the other how-to guides in the DivX Support section.
Performance measured with full screen resolution, software-based performance on top-of-the-line hardware. Note: The DivX codec and its features are independent of applications and can be used by any application that supports a common video interface such as the VFW interface.
Ensuring Decoder Performance
There are several things you can do to ensure your system is prepared to play DivX content with optimal performance.
If nothing helps, it is recommended you switch to 16-bit display depth, because it usually fastest when using the VfW codec.
DivX post-processing is comprised of the horizontal and vertical deblocking filters and the deringing filter. Post-processing is a CPU-Intensive process, often burning more CPU time than decoding itself. You may not want to post-process, especially if you prefer the un-post-processed image, or if your PC is not powerful enough. To cater to users' post-processing preferences, 6 different levels of post-processing have been defined. At the minimum (level 0), no post-processing algorithm is used; at the maximum (level 6) every clever algorithm is used to enhance the appearance of your video.
Since the human eye is less sensitive to the chrominance components of a video signal and the more sensitive to the luminance components only the luminance plane is processed at lower post-processing levels, while higher levels activate the same algorithms on the chrominance planes.
The post-processing algorithms used are activated in the following order: deblocking on luminance planes, deblocking on chrominace planes, deringing. You can adjust the post-processing level by accessing the slider in the configuration dialog of the DivX DirectShow filter, which can be accessed by launching the post-processing filter from the start menu. You can do this by running the decoder configure dialog box application from the control panel (Start -> Programs -> DivX -> Decoder Config).
The filter operates along the 8x8 block edges, on both the luminance and chrominance color planes. It helps to reduce the blocking artifacts caused by the DCT spatial compression algorithm used by the codec.
Blocking is the most noticeable artifact, so this is the first algorithm to be applied.
The de-ringing filter is used to eliminate noise near sharp edges caused by the quantization process (the so-called Gibbs effect). The noise is more noticeable in animations, where there are higher frequency coefficients. The deringing on the luminance plane is activated at post-processing level 6. Due to high CPU requirements and relatively low impact of the filter, it is only turned on for Pentium-III or newer processors.
The film fx post-processing algorithm adds warmth to video for those who like the warmth behind film versus the crispness of digital video. The FilmFx filter is great at not only adding warmth to video but reducing perceived "blocking" in digital video and very little cpu overhead for decoding.
Chart of post-processing levels
Turning this off will allow B-frame encoded content to playback with lower CPU usage. However, enabling this option will introduce a 1 frame delay in the decoder (because of buffering), which may cause the last frame of the video to not be displayed. Enabling this setting is recommended.
YUV Extended Mode
When selected, the codec will attempt to use YV12 mode to decode the video. This is the fastest way to decode DivX content, but the drawback is that brightness/contrast/saturation controls cannot be used in this mode and are disabled. Enabling this setting is recommended.
Overlay Extended Mode
Selecting this will cause the filter to try to display video using the hardware overlay instead of the software overlay. The hardware overlay is much faster, but may not be supported on some video cards. When this mode is enabled, DirectShow-based player applications will be unable to open more than one window at a time.
Enabling this will force the video card to allocate a second buffer for the video playback. This will increase the smoothness of the video playback, but may not be supported on low-end video cards with less than 8 MB of RAM.
This is a warming filter that when enabled will add film noise to the decoded picture. This may increase the perceived visual quality of the picture, especially if you are used to watching film. It's a personal preference, however, so use it if you want.
Force Color Mode (hidden)
You can manually set the registry key "HKEY_CURRENT_USER\Software\DivXNetworks\Force Color Mode" in the Windows Registry and assign it a number from 1 to 7. This will force the video card to use a particular color mode, depending upon the value. This is only necessary in rare circumstances to solve video card problems. Supported color modes:
DivX Codec Main Menu
New Bitrate Modes (DivX 5.0.3) Using VBV (Video Buffer Verfier)
Video is, by its very nature, a very dynamic beast whose characteristics are continuously changing. The amount of motion and texture, the number and placement of scene changes, fades and other effects all conspire to increase the dynamic range of the video stream's entropy.
This entropy variability manifests itself as a video bitrate that can vary dramatically over time. Because communications systems, including the Internet, operate at near constant bitrates, we have to design a means of coupling the variable bitrate requirements of the video stream to the constant bitrate limits of the channel.
By convention we consider what happens at the decoder. A video buffer is placed between the channel (constant or capped bitrate) and the decoder input (variable bitrate according to decoded content). To avoid duplication, readers unfamiliar with video buffers should refer to ISO/IEC 14496-2:2001(E) Appendix D "video buffer verifier" for a tutorial in the operation of VBV models.
If DivX video is to be successfully delivered over a restricted channel in real time to a decoder, then the encoder's rate control must ensure that the decoder's buffer is not violated. If this is done properly then overflow and underflow will never occur and the encoder is said to be "VBV compliant". It makes no difference whether the video is encoded in 1-pass or many, in real-time or offline, it is the encoder's rate control that must ensure compliance.
There are three main requirements of a VBV-compliant rate control algorithm, in order of importance:
The RC algorithm must achieve the above requirements by adjusting frame quantiser (or other parameters affecting compressed frame size) on frame or block basis.
Version 5.03 VBV Rate Control Modes
There are two flavors of VBV RC. Both must comply with the three requirements above. The flavors differ in the amount of information available when attempting to satisfy the requirements:
Accessing DivX Original Rate Control, Qpel and GMC
Qpel, GMC and B-frame have been moved to a new GUI called "Profiles". Detailed information on the "DivX Profile" feature is explained in the "DivX Profile" section. If a DivX Profile is selected the DivX codec will automatically ensure that you select the optimal bitrate and setting for ensuring compatibility. This includes automatic selection of max bitrates advanced features, and feedback for choosing appropriate resolutions. However, you can still access Qpel, GMC and Original Bitrate Modesmodes by un-selecting.
The DivX 5.x encoder has three possible modes. "Choose Profile" in the "Profile" menu.
By unselecting "Choose Your Profile" all bitrate modes can also be accessed:
Original (pre-5.0.3) Bitrate Modes
Original (pre-5.0.3) Two-Pass Encoding Log Files
During the first pass of "2-pass", encoding data is gathered that will be reused at the second pass to increase accuracy and quality. To reduce encoding time when choosing "2-pass" the encoding data can be reused when there is a need to encode the same content in "2-pass" mode with the same settings. Encoding time is reduced since this will only require that the 2nd pass be performed. It is possible that external applications be developed to manipulate these logs for even more accurate adjustments in data allocation.
The "Protect Log/My File" setting will prevent the possibility of accidentally overwriting any existing log files.
There are three types of frames that are possible within a DivX video stream. These frames are called "I-frames" (Intra), "P-frames" (Predicted) and "B-frames" (Bi-directional). Prior to DivX 5.0 the only frame types were I and P. I-frames are encoded only using information from within its own frame. It does not use any information from other frames (temporal compression). An I-frame is similar in concept to encoding a single frame using JPEG. P-frames (Predicted) are forward predicted and may refer to either an I-frame or P-frame. They are encoded from the frame that precedes it. In any video sequence a group of frames will have many of the same images. For example, if you were to watch a news anchorperson you'll notice they barely move and the background would stay almost identical for every frame. (Remember that there are commonly up to 30 frames in a single second). So instead of encoding each one of those 30 frames independently as you would in an image file such as a JPEG you can exploit the redundancy of each frame by the use of P-frames. Essentially a P-frame is a future frame that determines where a block in the previous frame has moved to in it's current P-frame. So instead of spatially encoding (JPEG) the frame the P-frame just says "Hey the block in the previous frame has moved to location (X,Y) which requires much less data then encoding each frame spatially. Essentially we transmit the difference between frames which is more efficient than transmitting the original I-frame.
DivX Pro 5.0 introduces the ability to also use "B-frames". B-frames allow the DivX codec to predict frames from the future, choosing the best prediction match among 2 prediction frames instead of only one. B-frames are not only codec by using forward predicted frames but also from backward predicted frames which can be an I or P frame. Using B-frames reduces the amount of data needed to code a frame and improves quality more specifically in areas where moving objects reveal hidden areas.
Global Motion Compensation
Global Motion Compensation (GMC) helps to improve complex scenes where zooming and panning are present. The ability to reduce the required data from one frame to the next can be reduced since there is a commonality within panning and zooming scenes that can be used to more efficiently compensate for what is more normally a group of blocks in such scenes.
As explained in the "B-frames" summary, data is reduced when the difference between two frames (prediction error) is transmitted instead of the entire image being sent. The difference in a successive frames composition is generally computed on a macroblock-by-macroblock basis (16x16 pels) or on a block by block basis (8x8 pels). For example, a part of an image located in a block at grid location (1,1) may move to grid location (1,2) in the next frame. As you may realize an image in one block will likely need more accuracy than just the ability to move on a limited block by block basis with an accuracy that is limited to an integer pixel unit (1,1). DivX has increased the previous accuracy of using a half pel (1.5, 1.5) to include the ability of using "Quarter Pel" (1.25, 1.75) accuracy with the Codec release. Quarter Pel performs a specific filtering on each block to produce a virtual block that should represent how the original block should appear if it is moved a 1/4 of a pixel unit.
"New" Quarter Pel
In version 5.0.3, Quarter Pixel Motion Estimation has been updated to the new revision of the standard 14496-2 DCOR1. (The older pre-5.0.3 implementation of Qpel is still decodable).
Quick Config CLI
See the Quick Config CLI Appendix for more information on this feature.
General Parameters Menu
Cropping is commonly used to remove un-needed borders, which may take up un-needed data. This is seen commonly in "Widescreen Format" or "Letterboxed" movies. It is also common to see borders within content that are completely unnecessary or are in place due to poor encoding of the source material. Cropping will remove or "crop" any borders not desired. Just specify amount of pixels to crop each border by.
Resize allows content to be encoded at a specified resolution. There are many target applications and environments suitable for using the DivX codec and the content should be appropriately encoded for these environments. Generally the smaller the resolution the lower the file size. The output resolution can be adjusted so that it preserves the original resolution, or so that it changes the resolution for applications that might require much smaller resolutions and bitrates, such as video conferencing or browser based videos. There are 4 options for "Resizing":
From a mathematical viewpoint, it could be argued that the bicubic resize algorithm is best for enlarging the image while bilinear is more suited to size reduction. From our own experience, the opposite appears to be true - bicubic gives the best visual quality for reducing the video resolution. The bilinear algorithm is slightly less CPU intensive and will allow the codec to run faster. The choice of algorithm is very much up to personal preference.
By exploiting what we know about the Human Visual System (HVS) we have increased the efficiency of allocation video data helping to increase the perception of quality in video. For example, if the human visual system has very low sensitivity to a specific type of characteristic in an image we may decrease the amount of data located at this location and re-allocate this data to a location within an image where the human visual system is much more sensitive. The Psychovisual enhancements are applied to both a frame and macroblock basis. One of the important factors in evaluating Psychovisual Modeling is to NOT just compare a single frame but to compare a full sequence. An image may look worse or better when a single frame is examined but the key to reducing data is to reduce data in a way that the human visual system does not notice over a video sequence running at a full frame rate (e.g. 30 frames per second). Psychovisual modeling is a fairly new field when applied to real videos or movies. This area is full of possibilities we have only just started on and will continue to explore.
Video noise is often referred to as "specks", "snow", or "hair" within a video (i.e. "snow" that is visible when watching TV over an antenna"). Any number of the processes of video production and distribution can add noise into the video. Some of the worse video noise can be seen in old or poorly recorded movies. Noise can be a big problem when it comes to compressing the video as the noise consumes a large proportion of the bits available for wanted video.
The preprocessing filter uses digital signal processing techniques to remove the noise from the source material prior to encoding. Broadly, there are two classes of filter that can reduce noise: temporal and spatial. To explain how they work, let's consider a single pixel somewhere in the image. Spatial filtering looks at the neighborhood pixels within the pixel's own frame and applies a smoothing, or low-pass function. A temporal filter smoothes pixels at the same position over a few consecutive frames to reduce the effect of noise. By using these techniques to reduce noise prior to video encoding we can, in certain content, increase our compression ration and improve quality.
There are 4 settings for preprocessing:
As with all features there is a particular content that may be affected more than others. Generally old noisy content can see dramatic effects in file size reduction and quality. Normal pre-processing should not introduce any visual degradation of the source file, however we have provided a "Light" setting for very tricky source, the "Strong" and "Extreme" settings will wash the source a little, however it will remove the most amount of data and should be used when file size is more important than quality.
The DivX encoder will automatically insert a key frame every time it detects a scene change. However, long interval between scene changes are possible, and when they occur, the encoder automatically inserts keyframes with user specified frequencies. Keyframes are the largest of all frames, so the frequency of their placement can have a drastic effect on the encoded file. We have found 300 frames to be the maximum interval the encoder should go without inserting a keyframe. This corresponds to at least one keyframe every 10 seconds in a 30 fps stream. Also, depending on the player used, the maximum key frame interval may determine the maximum interval for seeking. This occurs when players are designed to seek to "I" or keyframes. Reducing the keyframe interval can also improve delays and the quality of streaming content.
Interlacing, invented in the 1940's, is probably the earliest form of video compression. Instead of transmitting a complete video frame 60 times every second, engineers discovered that they could halve the bandwidth needed by the TV signal if they sent alternately odd and even "fields", each field comprising just the odd or even picture lines. Interlacing is most commonly found on material intended for TV broadcast, or material created by consumer camcorders.
Interlacing is not a problem if it is correctly displayed on an interlaced display device, i.e. a television. An interlaced video camera running at 30fps captures the odd-numbered lines of a frame in 1/60th of a second, and the even-numbered lines in the next 1/60th of a second. When viewed on a progressive display device, such as a PC, two fields are interlaced to create one frame. Because half the frame's lines are captured a fraction of a second later than the other half, fast-moving objects may appear jagged, the result of the object advancing slightly within 1/60th of a second. The "progressive" format is preferred for PC playback since the entire frame is captured each second and no de-interlacing will be required.
It is possible to remove the jagged-edge interlace artifacts by applying a process known as "de-interlacing" to the video. The DivX codec is able to de-interlace the source video prior to encoding. For this to work correctly, it is important that the video has not been resized vertically external to the codec. Resizing within the codec does not affect the operation of the codec's de-interlacing.
The DivX® codec has two main options for de-interlacing:
Interlaced Video Support
Encoding and decoding of interlaced content is now supported. If the content you're encoding is interlaced you can either de-interlace the content so that it is progressive or preserve the interlaced fields. Preserving the interlaced fields may sometimes result in better video quality during playback, but the cost is a bigger file size. Interlace support is compliant with the MPEG-4 standard and uses block level decisions to make its selection versus progressive or interlace. This means that interlace coding is used when interlace artifacts are detected and progressive coding is used when motion is very low.
Due to the very nature of interlaced video the minimum number of lines for NTSC is 480 and 576 for PAL (actual number can be lower but result is not guaranteed). Interlaced content is usually found on TV or captured with a video camera (DV sources are usually interlaced).
Manage Settings Menu
The settings manager allows commonly used settings to be easily saved and accessed so that they may easily be reused at a later time. This is useful for many reasons such as making sure the settings are optimal for certain types of movies, decoding devices or environments that only support certain MP4 features. Also, this is extremely useful since it allows you to easily send anyone else the exact settings you are using. To add your current settings just click on "Add codec settings" and you will be able to name write a description for this setting. If you would like to save the settings, just select "Save settings to file" and if you would like to load a new setting just select "Load settings from a file".
With the new DivX Certification program, DivXNetworks is enabling third parties to create "DivX Certified" products that are rigorously tested and fully compatible with the entire suite of DivX™ video technologies. There are four levels of official DivX Certified video products: Handheld Video Devices, Portable Video Devices, Home Theater Devices and High Definition Video Devices. These levels quickly and clearly communicate what type and the DivX Certified device to insure optimal playback supports size of DivX video.
With DivX Certification, a new concept has been introduced: the "DivX Profile". Depending on your target device, the DivX codec helps to ensure your encoded clip will fall under certain certifications parameters for consumer electronic devices, which ensures optimal playback on a variety of devices. In order to keep it simple, the number of the profiles is reduced and the separation between them is based on a simple consideration: resolution (more exactly the number of 16x16 Block per second) and advanced features (B-frames). Depending on what your target application or device is the DivX Codec will automatically select the best default settings to ensure highest visual quality and compatibility with DivX Certified Devices.
If a DivX Profile is chosen the codec will automatically use the new VBV rate control algorithm explained in the Rate Control section of this document. The VBV insures that the maximum peak bit rate never exceeds either the users input "maximum peak" bit rate value or/and insures that the encoded stream never violates an Mpeg-4 compliant decoders buffer. This helps to prevent decoding failure in both hardware and software where memory may be limited yet compliant to the MPEG-4 standard as defined in ISO/IEC 14496-2:2001 (E). If DivX video is to be successfully delivered over a restricted channel in real time to a decoder, then the encoder's rate control must ensure that the decoder's buffer is not violated. If this is done properly then overflow and underflow will never occur and the encoder is said to be "VBV compliant". It makes no difference whether the video is encoded in 1-pass or many, in real-time or offline, it is the encoder's rate control that must ensure compliance.
Qpel and GMC are also never chosen when choosing a DivX Profile. After a thorough analysis of the current incomplete state of quarter pel within the MPEG-4 standard coupled with an evaluation of the technical factors necessary to support these features at the chip level, we have determined that support for quarter pel and GMC is not necessary for the first generation of DivX Certified devices.
Qpel, GMC and the DivX "Original Rate Control" modes can be accessed by unselecting "Choose Profile.
The following section discusses additional parameters that can be set via the command line or via the Windows Registry.
Data Rate Control Parameters (RC)
The Data Rate Control parameters can only be changed through the operating system registry. The DivX Codec uses a patent-pending dual asymmetric rate control. It uses dual period control loops to achieve a best balance reacting and adjusting to the variations in a short time sale while controlling and averaging the bitrate in the long time scale.
Essentially, it is well balanced as it adapts dynamically to the content of the scene, providing optimal allocation of bandwidth. It is flexible and easily adjustable for different application scenarios. The creation of the DivX Rate Control algorithm comes from testing many real full-length movies against the DivX codec in multiple user environments (i.e. TV, PC, PDA, etc.).
There are several settings that may be experimented with. We highly recommend that only experiences users change these settings since minor changes can cause significant effects.
Maximum and Minimum Quantizers
The quantizer is one of the most important parameters in video coding. The quantizer controls how fine the encoder codes the video sequence. The rule of thumb is: for the same frame, a smaller quantizer equals better quality and higher bit consumption while a larger quantizer equals lower bit consumption and inferior quality. Since every frame has a different amount of complexity a subjective equality in quality can be seen among different frames even with the varying quantizers. Basically, the quantizer operates the rate control. Balancing the quality of video with bit consumption can be quite an art form.
Note: RC settings are truly "for the adventurous souls". These default settings should give near optimum results.
RC Averaging controls how fast the RC forgets the rate history. Larger values usually result in better higher motion scenes and worse low motion scenes.
Rate Control Down/Up Reaction
RC Down/Up Reaction - control the relative sensitivity in reaction to high or low motion scenes. Larger values usually result in better high motion scenes, but larger bit consumption.
All these parameters are inter-correlated. The effect from their setting is approximate and often depends on the settings of the other parameters.
Data portioning may be useful in any situation where transmission errors may occur, such as a streaming or broadcast environments. Data Partitioning is a different way of organizing data in the stream. A frame is composed of adjacent macroblock and each macroblock usually includes motion vector (prediction) and texture information. This allows the stream to be more resilient to transmission errors, in this modality the motion vector and the texture are separate (not interlaced with each single macroblock) and grouped in video packets. Each video packet is and independent entity inside the steam and can be decoded separately from the others. Use of Data Partitioning can also permit the activation of a series of tools that allows for error recovery and packet resynchronization.
There are 5 settings available for Performance/Quality. Essentially if more quality is desired more CPU is needed. There should rarely be a time when you will need to pick any other quality setting other than "Slowest" as it produces the BEST quality. Accuracy in motion estimation is sacrificed at the to increase the performance of encoding content. With today's CPU's and the efficiency of the DivX Codec encoding at up to "Full Screen" resolutions at real-time encoding speeds is possible. However lower quality settings could be useful when there is not enough CPU power and a sacrifice in quality can be justified. Generally, real-time or faster than real-time encoding speeds are only necessary when broadcasting real time video feeds, yet the faster the encoder the lower the cost of encoding. Leave this setting at "Slowest" unless otherwise necessary.
DivX® Advanced Research Centre (DARC) Team
Digital Video Engineering Team
Management & QA
Copyright and Trademarks
The DivX Codec and DivX Pro Software are Copyright © 2000-2003 DivXNetworks, Inc. MMX iDCT and fDCT implementations are © Intel Corp., 1998-2000.
DivX® and DivX Pro are trademarks of DivXNetworks, Inc.
MPEG-4 Tools, Profiles and Levels
About the Electrokompressiongraph (EKG) Application
What is the EKG?
The EKG enables an advanced video compressionist to reallocate data to specific scenes within a video clip. Although the Rate Control algorithm within the DivX Codec is very good there is not a "perfect" rate control since quality is very subjective. The EKG will allow a compressionist the ability to change or reallocate data to specific areas within a DivX Encoded video that may need more or less data.
The DivX Codec Generates a Log file recording information about the source video and the decisions made by the Rate Control algorithm. During 2 Pass encoding this data is further analyzed so that bits may be more accurately distributed during the second pass of encoding. In the first pass, the rate control module looks through the whole video sequences, and record the complexity of each video frame. In the second pass, the rate control module then adjusts the quantizer for each individual frame based on its complexity and the overall averages which were obtained during the first pass of encoding.
For every frame the following data is recorded:
When a second (nth) pass encode is running, the rate control will try achieve three goals. First, it must be sure not to exceed the specified maximum bitrate. It will do whatever it takes to prevent this, even dropping frames in the most extreme cases. Second, it will try to meet the desired target bitrate as closely as possible. Its third goal is to distribute bits between frames to achieve equal quality, or to respect the user's modulation settings.
Although the codec is efficient there is always room for improvement and fine-tuning since visual quality is so subjective. The Electrokompressiongraph will enable the user to manually re-allocate data within a video file by adjusting the Modulation Parameter. The modulation parameter is set to one by default. The modulation parameter is a value that is multiplied with a base quantizer to determine a new quantizer that will be used to increase or decrease quality for a specified frame. For example, if the codec thinks every frame should be encoded with a quantizer of 4.0 and the user sets the modulation equal to 1.25 for some frames then these frames will be re-encoded using a quantizer of 5.0. (New Q = Modulation * Existing Q). The EKG will always aim toward meeting the target bitrate as closely as possible. If you increase data allocation for a group of frames this data will be borrowed fairly from other frames and if you decrease data from a group of frames this data will be given fairly to other frames aiming toward the target bitrate and the best quality possible.
An example of how a user may attempt to use the EKG would be one where data is decreased for the credit section of a movie and increase toward the high action sequences. A user might set modulation = 2.0 for movie credits and for the rest of the movie the codec will use quantizer needed to hit the users target bitrate (let's say it's 3.3) and when it reaches the credits it will switch to using 6.6 which will save bits on the credits. This can become rather confusing since a lower modulation level increases quality. (0.50 = 200% and 2=50%) To keep things simple modulation in the EKG is listed as a quality percentage. Since the modulation parameter is a multiplier of the Quantizer the range of the parameter is limited so that quality can be reduced by half or doubled. This is done by limiting the modulation parameter from 0.50 -> ' 2.0
With this we can see that the quantizer can be reduced by 50% or increased by 200% (0.5 -> ' 2). To keep things simple and easily understood the EKG plots the "Modulation Parameter" (Quality) as a percentage instead of the multiplier. An example graph of how this done is shown in Fig 1.
How Do I Use the EKG?
The thin vertical black line represents the frame you are currently viewing.
You can also change any of the bar graphs to line graphs, parameters visible or not-visible, disable the video preview, change the information plotted on the X access, and zoom in and zoom out of your data.
DivX 5.0.4 CLI parameters
The command line interface parameters will be automatically updated as you use the GUI to change the codec parameters. The opposite is also true. When you type parameters into the CLI, the GUI will show the changes after you press the tab or enter key. This makes the CLI an easy shorthand for advanced users to use to manage their settings.
DivX Certification Profile
-Profile Profile_Number Profile_Number = 0 Free 1 Handheld Profile 2 Portable Profile 3 Home Theater Profile 4 High Definition Profile
-b Bitrate Bitratemode= -bv1 1 pass mode (DivX Certified) -bvn1 Multipass 1st pass (DivX Certified) -bvnn Multipass Nth pass (DivX Certified) -b1 original 1 pass CBR mode (Non DivX Certified) -b1q 1 pass Q based mode (Non DivX Certified) -b21 original 2 pass 1st pass (Non DivX Certified) -b22 original 2 pass 2nd pass (Non DivX Certified) Examples: -bv1 512 1 pass followed by bitrate -bvn1 768 1st pass followed by bitrate -bvnn 768 Nth pass followed by bitrate -b1 780 original 1 pass followed by bitrate -b1q 50%,1000 1 pass Q based followed by a percent if %, The optional second parameter is the Max Bitrate -b1q 10.2 1 pass Q based followed by a Quantized -b21 800 original 2 pass 1st pass followed by bitrate -b22 800 original 2 pass 2nd pass followed by bitrate
-vbv VBV_Bitrate,VBV_Size,VBV_Occupancy Here is the Default Profile value: Handheld -vbv 128000,262144,196608 Portable -vbv 768000,1048576,786432 Home Theatre -vbv 4000000,3145728,2359296 High Definition -vbv 8000000,6291456,4718592 Do not mess with theses value unless you are absolutely sure of what you are doing.
-r width,height,Quality Quality= 1 Bilinear 2 Soft Bicubic 3 Normal Bicubic 4 Sharp Bicubic
Pre Processing Source
-pre [Strength] or [TemporalLevel,SpatialLevel,SpatialPasses] Strength= 1 Light 2 Normal 3 Strong 4 Extreme TemporalLevel= from 0.0 to 1.0 SpatialLevel= from 0.0 to 1.0 SpatialPasses= from 1 to 3
Psycho Visual Enhancements
-psy [Strength] or [FrameLevel,MacroblockLevel] Strength= 1 Light 2 Normal 3 Strong FrameLevel= from 0.0 to 1.0 MacroblockLevel= from 0.0 to 1.0
Maximum Key Frame interval
Two pass encoding log and mv
-log LogFileName -mv MVFileName If -mv option is specified during 2nd pass the mv file will be used, if no -mv option is specified during 2nd second pass, MV will be recalculated
Protect log/mv file
-d Method Method= 1 All Frames are progressive 2 All Frames are interlaced 3 Intelligent IVTC/deinterlace
Basic Video Deinterlace
Quarter Pixel -q GMC -g Bi-directional encoding -b
Original RC Data Rate
-dr MaxQ,MinQ,RCAveragingPeriod,RCReactionPeriod,RCDownUpRatio Example -dr 12,2,2000,10,20
Scene Change Thereshold
-sc SceneChangePercent Example -sc 50 -sc 70%
-pq Value Value= 1 Fastest 2 Fast 3 Medium 4 Slow 5 Slowest