This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
|Original author(s)||DivX, Inc.|
2.0.0 / August 3, 2006
2.0.1 Beta 7 / February 2, 2008
|Written in||C, C++|
|Operating system||Microsoft Windows|
|License||Open source software (Lesser GNU Public License)
Portions are under “Dr.DivX DLL EULA” (Freeware)
|Original author(s)||DivX, Inc.|
2.0.1 Beta 2 / June 11, 2007
|Operating system||Mac OS X|
|Part of a series on|
Dr. DivX was originally a closed source encoding application that was based upon royalty charging libraries. This version terminated at 1.06 for DivX 5.21.
A new open source (LGPL) version was begun after DivX 6 shipped, after many complaints that the new encoder tool was inadequate. While open source, the project is currently implemented by one programmer employed by DivX, Inc. Because the original application used closed libraries, work had to begin from scratch, and the features of old Dr. DivX had to be re-added one by one.
Typically the encoded video is muxed into the standard AVI media container for the widest device compatibility. However, this offers fewer features than other container formats, including the DivX Media Format introduced with version 6 of the DivX codec.
Multi pass, or dual pass encoding, generally takes as much as twice as long as single pass. However, enabling this mode does not cause any file output compatibility issues, and provides for a more even distribution of bits across the length of the encoded file, allocating them where they make the most noticeable difference to quality.
Typically H.263 optimized is now recommended as the default quantization matrix with DivX encoding. In simple terms this can be described as a softening matrix, better suited to lower bit rates. In comparison, the MPEG-2 matrix, can be likened to a sharpening filter, better suited to higher bit rates.
Various frame types are used under the MPEG-4 standard, which can be seen as fixed points, to which motion changes are referenced.
- I-frame - This is the fundamental and most complete frame type, which stores all data and from which motion changes are described.
- P-Frame - Stores differences between I-Frames or other P-frames.
- B-frame - This is a bidirectional frame, which stores the differences between past or future frames. The most compressible frame type, holding least information, typically used in fast action sequences. Not enabled in all profiles.
For bidirectional (B-frame) encoding the DivX codec offers two options:
- Adaptive Single Consecutive - This typically offers the best overall compression, since it limits the number of B-Frames that can be inserted close together in fast moving sequences. Since the human eye perceives details more accurately in slow moving or stationary scenes, the bits are more effectively allocated to those scenes.
- Adaptive Multiple Consecutive - Will give smoother motion, but at the expense of file size, since no limit on consecutive frames is imposed.
Keyframes, are the pictures you see when you fast forward through a DVD. They are inserted by one of two methods under MPEG-4.
- Max Keyframe interval - typically this is done by multiplying the framerate of the movie (e.g. 23.976 or 25 or 29.97) by 10 (e.g. 240, 250, 300), to deliver an automatic keyframe insert every 10 seconds. Typically left at the default value under DivX.
- Keyframe threshold - this intelligently tracks the percentage of blocks not tracked by the motion search algorithm. Typically it is best left at 50%, but can be varied between 40% and 60%. For example, at default, if more than 50% of blocks have changed between frames, a new key frame is inserted.
Bicubic (Normal) is the preferred option, offering superior quality to the simpler (and faster) bilinear option. Image operations such as sharpening, are typically better performed with filters, whose output are more customisable. Frame cropping, where black bars on wide screen movies are removed from the area to be encoded, can save otherwise wasted bits.
Typically the AVI files contain MP3 audio, as this is part of the baseline DivX profile. 128 kbit/s CBR is a standard audio bit rate, however 192 kbit/s offers optimal quality. MP3 offers the widest device compatibility, although it is possible to encode the files with other audio types, such as Dolby AC-3 and AAC.
The "Audio boost" feature is enabled by default in Dr. DivX OSS. It evens out sound levels to a more consistent level across the file length. On poor quality audio tracks, such as sometimes found on older films, this improves apparent audio quality.
Profiles are used to apply a group of pre-set variables to a job. An encode can be set to produce a fixed quality, or file size, such as 699 MB (one CD). Some options are excluded from the baseline DivX profiles, to maintain wider hardware compatibility. If you wish to use these more advanced codec features, you will need to select an "unconstrained" profile option. Some more recent hardware chipsets (>2005) do support these features.
- Qpel - Tracks motion changes more precisely sharpening images. Tends to work best on mid range rate bit rates. Low rates are too blocky to gain advantage from the finer intra-scene motion detailing, and high bit rates adequately capture all motion details anyway.
- GMC - Improves compression by describing motion in a collective block
The original Dr. DivX featured VirtualDub filter compatibility. Avisynth script input compatibility was added in version 2.0.1 of the OSS version . Filter compatibility enables manipulation of the source before the codec begins compression. This may be to deliver a certain look, or more commonly to compensate for imperfections in the source files. For example, to smooth out low level MPEG-2 compression artifacts. While the DivX codec does have a pre-processing / noise reduction option, external filters generally provide more precise options, and when applied at appropriate settings, offer superior quality. However, this may be at the expense of encoding speed.
Temporal filters are ideal for heavy noise i.e. VHS / analogue TV sources. The temporal filter should be applied first in a filter chain. They work (in simple terms) by comparing each frame to the one previous and after, and averaging the difference. Thus random noise tends to be blended out. Advanced features in some temporal filters include:
- Pixel locking - where if a pixel is surrounded by identical colors, it is assumed to be noise and locked to the same color. This can cause 'ghosting' if applied at too high a level.
- Scene change thresholds - for example if more than 30% of the pixels are detected to have changed between frames, the temporal filter is not applied. This reduces apparent 'ghosting.'
2D filters are ideal for tidying up low level compression artifact noise on higher quality sources. They look only at one frame at a time, and seek to average out color patterns. If turned up too high, 2D filters tend to soften images, and lower overall detail levels.
Cartoons are known to present specific issues for MPEG-4 based codecs, and require the use of quality 2D filters to obtain effective results. Smart Smoother High Quality was developed for exactly this type of application, optimized for quality at the expense of speed.
Other common visual filters include brightness, contrast, color, sharpen, blur, cartoon, emboss, deblocking, denoising, old film restoration, and even subtitle / logo removal.