Discussion in 'Other video questions' started by Ghostdog, Mar 5, 2002.
What are Quarter Pixel, GMC and Bidirectional Encoding and how do they improve quality?
Long copy/paste from DivX.com:
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.
How big is the difference in quality between the free and the pro versions?
Because I would really like to know if it´s worth alowing spyware on my PC.
Separate names with a comma.