The attached patch changes the quality metric used for
the CQ control model. It does 2 things:
1) Changes the metric so that it's the same for all
frame types
2) Changes the way the metric is calculated
As far as 1) goes, Intra frames are now also broken
down into a 4x3 array of regions too.
For 2), instead of taking the worst-case error from
each of the regions, a 'self-weighted' average is used:
(sum_{i,j} e_{i,j} * e_{i,j} ) / (sum_{i,j} e_{i,j} )
Think of it this way: if you had weights w_{i,j} you'd
make a weighted average by:
(sum_{i,j} w_{i,j} * e_{i,j} ) / (sum_{i,j} w_{i,j} )
In this case, you're just using the original values to
add emphasis to the worst bits. As before, the error
measure e_{i,j} is based on 4th-power differences.
The metric generally gives lower bit-rates. It needs
checking that these bit rates aren't _too_ low. I used
'worst-case' quality before because errors from motion
estimation can be very localised and still very
visible. The assumption behind the new metric is that
this overdoes things a little and those sorts of errors
will still be flagged by the new metric. This
assumption has only been partially tested. We need to
look at a lot of pictures.