4 ms·
Well, one has to be careful here. In a static portion of a scene, a consistent error likely to look much better than an error that flips between being too large
by derf_ 12y ago
Well, one has to be careful here. In a static portion of a scene, a consistent error likely to look much better than an error that flips between being too large and too small in alternate frames, since the latter will show up as noise or flicker that was not in the original. That can be more objectionable than simply being slightly wrong. Notably none of the metrics we use for evaluating Daala have any means of measuring this.
The better approach, I think, is some form of "temporal RDO", where you spend more bits on places that will be good predictors of future frames. We discussed the idea in a Theora update in 2010 [0]. x264 implemented it even before then (under the name "mbtree" [1]). It is not yet implemented in Daala, as we do not have two-pass rate control or lookahead yet. It's possible to do one-pass, no-lookahead versions by estimating future prediction efficiency based on the past, but you want one with full lookahead to compare against to make sure those estimates are doing the right thing.
I am not sure temporal RDO would save us here, because the issues described only occur in areas of the frame that are being updated. It still might have, in this case---these things are relative---but we could construct cases where it would fail to do so.
[0] https://people.xiph.org/~xiphmont/demo/theora/demo9.html https://people.xiph.org/~xiphmont/demo/theora/demo9.html
[1] http://www.x264.nl/developers/Dark_Shikari/MBtree%20paper.pdf http://www.x264.nl/developers/Dark_Shikari/MBtree%20paper.pd...