diff options
Diffstat (limited to 'ffmpeg1/doc/rate_distortion.txt')
| -rw-r--r-- | ffmpeg1/doc/rate_distortion.txt | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/ffmpeg1/doc/rate_distortion.txt b/ffmpeg1/doc/rate_distortion.txt deleted file mode 100644 index e9711c2..0000000 --- a/ffmpeg1/doc/rate_distortion.txt +++ /dev/null @@ -1,61 +0,0 @@ -A Quick Description Of Rate Distortion Theory. - -We want to encode a video, picture or piece of music optimally. What does -"optimally" really mean? It means that we want to get the best quality at a -given filesize OR we want to get the smallest filesize at a given quality -(in practice, these 2 goals are usually the same). - -Solving this directly is not practical; trying all byte sequences 1 -megabyte in length and selecting the "best looking" sequence will yield -256^1000000 cases to try. - -But first, a word about quality, which is also called distortion. -Distortion can be quantified by almost any quality measurement one chooses. -Commonly, the sum of squared differences is used but more complex methods -that consider psychovisual effects can be used as well. It makes no -difference in this discussion. - - -First step: that rate distortion factor called lambda... -Let's consider the problem of minimizing: - - distortion + lambda*rate - -rate is the filesize -distortion is the quality -lambda is a fixed value chosen as a tradeoff between quality and filesize -Is this equivalent to finding the best quality for a given max -filesize? The answer is yes. For each filesize limit there is some lambda -factor for which minimizing above will get you the best quality (using your -chosen quality measurement) at the desired (or lower) filesize. - - -Second step: splitting the problem. -Directly splitting the problem of finding the best quality at a given -filesize is hard because we do not know how many bits from the total -filesize should be allocated to each of the subproblems. But the formula -from above: - - distortion + lambda*rate - -can be trivially split. Consider: - - (distortion0 + distortion1) + lambda*(rate0 + rate1) - -This creates a problem made of 2 independent subproblems. The subproblems -might be 2 16x16 macroblocks in a frame of 32x16 size. To minimize: - - (distortion0 + distortion1) + lambda*(rate0 + rate1) - -we just have to minimize: - - distortion0 + lambda*rate0 - -and - - distortion1 + lambda*rate1 - -I.e, the 2 problems can be solved independently. - -Author: Michael Niedermayer -Copyright: LGPL |
