ajmoss
24th March 2002, 15:40
I've been trying to capture a number of PAL broadcasts at half
resolution (352x288 pixels at 25 fps) as MPEG files, with very
limited success. After months of running around like an idiot,
I still haven't been able to find an authoritative recommendation
as to what video bit rate to use.
What I've learned so far is that:
1. The very nature of the MPEG-1 and MPEG-2 algorithms (discrete
cosine transform followed by low-pass filter) means that things
like subtitles have a distorted halo around them: this can't be
avoided unless the initial capture is performed with a lossless
codec such as Huffy. (And to do that, I'd need Windows 2000 and
a much bigger hard disk.)
2. The compression method looks for pieces of the image that are
similar to other pieces of the image. Because of this, if the
video bandwidth is too low, the image will be pixellated.
3. The different frame types of an MPEG file achieve an average
compression of:
I-frame 7:1
P-frame 20:1
B-frame 50:1
4. With the relatively low bandwidth in a VCD or SVCD, and an image
that is not interlaced (288 or fewer vertical pixels for PAL),
MPEG-2 needs a higher bandwidth than MPEG-1 to give the same
quality result.
5. MPEG-1 records at a constant bandwidth; if the bandwidth setting
is needlessly high, the encoder will either fill the unnecessary
space with zeros, or it will encode useless information (as I
understand it, below the pixel size of the source image). The
second option is worse for me, because it is giving me dropped
frames on my fairly slow (550MHz) computer.
This lets me estimate the average video bandwidth of an MPEG-1 file
that's recording 352x288 pixels at 25fps:
Uncompressed: 352 * 288 (pixels) * 25 (fps) * 16 (RGB bits/pixel)
= 40,550,400 bits/second
I-frame: 40,550,400 / 7
= 5,800,000 bits/second
IPB-frame: Group Of Pictures is: I BB P BB P BB P BB
40,550,400 * ( (1/7 * 1/12) for the I-frame
+ (1/20 * 3/12) for the P-frames
+ (1/50 * 8/12) for the B-frames)
= 1,530,000 bits/second
I have no idea to what extent these figures vary. In order to get
a good capture of a more complicated image, should I increase the
IPB-frame bandwidth to 1.6 Mbit/s, to 2.0 Mbit/s, to 2.4 Mbit/s,
or to what value?
Similarly, should I run an I-frame capture at 6 Mbit/s, or go as
high as 8 Mbit/s?
resolution (352x288 pixels at 25 fps) as MPEG files, with very
limited success. After months of running around like an idiot,
I still haven't been able to find an authoritative recommendation
as to what video bit rate to use.
What I've learned so far is that:
1. The very nature of the MPEG-1 and MPEG-2 algorithms (discrete
cosine transform followed by low-pass filter) means that things
like subtitles have a distorted halo around them: this can't be
avoided unless the initial capture is performed with a lossless
codec such as Huffy. (And to do that, I'd need Windows 2000 and
a much bigger hard disk.)
2. The compression method looks for pieces of the image that are
similar to other pieces of the image. Because of this, if the
video bandwidth is too low, the image will be pixellated.
3. The different frame types of an MPEG file achieve an average
compression of:
I-frame 7:1
P-frame 20:1
B-frame 50:1
4. With the relatively low bandwidth in a VCD or SVCD, and an image
that is not interlaced (288 or fewer vertical pixels for PAL),
MPEG-2 needs a higher bandwidth than MPEG-1 to give the same
quality result.
5. MPEG-1 records at a constant bandwidth; if the bandwidth setting
is needlessly high, the encoder will either fill the unnecessary
space with zeros, or it will encode useless information (as I
understand it, below the pixel size of the source image). The
second option is worse for me, because it is giving me dropped
frames on my fairly slow (550MHz) computer.
This lets me estimate the average video bandwidth of an MPEG-1 file
that's recording 352x288 pixels at 25fps:
Uncompressed: 352 * 288 (pixels) * 25 (fps) * 16 (RGB bits/pixel)
= 40,550,400 bits/second
I-frame: 40,550,400 / 7
= 5,800,000 bits/second
IPB-frame: Group Of Pictures is: I BB P BB P BB P BB
40,550,400 * ( (1/7 * 1/12) for the I-frame
+ (1/20 * 3/12) for the P-frames
+ (1/50 * 8/12) for the B-frames)
= 1,530,000 bits/second
I have no idea to what extent these figures vary. In order to get
a good capture of a more complicated image, should I increase the
IPB-frame bandwidth to 1.6 Mbit/s, to 2.0 Mbit/s, to 2.4 Mbit/s,
or to what value?
Similarly, should I run an I-frame capture at 6 Mbit/s, or go as
high as 8 Mbit/s?