Friday, October 31, 2008

The settings I would like

Current streaming video compression programs seem to be aimed at the past - they seem to be designed for either low bandwidth dialup streaming (where video has to be massively compressed and won't look good, no matter what you do), or download or disc use, where you can, to a certain extent, throw bandwidth at the video until it looks good enough.
Even today's codecs don't compress well for typical modern broadband, where you have a good amount of bandwidth available, don't want to use up all the bandwidth all the time, but can tolerate short spikes in bandwidth.
The main problem I have seen is that you often get video that looks really good until there is a lot of action, at which point the quality suddenly drops in one way or another until some time after the action slows down. This causes the perceived quality of the video to be the lower quality right after the action, rather than the high quality of 95% of the video. Video that is actually lower quality overall that doesn't have perceptible drops in quality will seem to be higher quality.

What I would like to see is the ability to require (where X, Y, A, and N are settings that I could alter):
1. Never drop frames (See my post 'Dropping Frames considered Harmful' for why dropping frames is a bad idea).
2. Under no circumstances can the video ever go above X kbps bitrate.
3. Keep the per-frame quality above A unless you hit the bitrate specified in #2.
4. don't average more than Y kbps over N seconds unless that is needed to meet the quality specified in #3.
5. give me the smallest possible file given requirements 1-4.
I would also want the highest possible quality codec.

No compression program I have seen allows this type of settings, although some have met as many as 3 of the 5. The programs that allow more of these settings have, in my experience, tended to produce better perceived quality overall for a given file size and codec.

Requirement 2 would be prevent the bitrate from going above the estimated audience maximum bandwidth.
Requirement 3 would be ensure that the video quality doesn't collapse
entirely during extreme action.
Requirement 4 would be used to set the overall bitrate of the file and to help keep the bitrate even over the entire duration.
Requirement 5 helps to keep the entire file size down, which saves money.

No comments: