-
Guillaume Martres authored
This function is called after `super_block_yrd` and assumes that the dst buffer is correct but that is no longer always the case after daf841b4 since we don't call `txfm_rd_in_plane` after the RDO loop in `choose_tx_size_from_rd`. We could fix this by always saving and restoring the dst buffer but removing `rd_variance_adjustment` is a better solution: - Getting the dst buffer always right is tricky as demonstrated by the fact that it is wrong now, even if we fix it now we could break it later and not notice - Perceptual weighting is a good idea but `rd_variance_adjustment` is the wrong approach as it weights both the rate and the distortion: to get meaningful units you should only weight the distortion, weighting rate means that we pretend some bits cost less than other bits, this is not the case. The distortion weighting approach is implemented by Daala in `od_compute_dist` and we plan to experiment with this in AV1 too. - Removing `rd_variance_adjustment` improves coding efficiency on all metrics, here are the results for objective-1-fast using the Low Latency settings: PSNR Y: -0.14% PSNRHVS: -0.17% SSIM: -0.12% MSSSIM: -0.12% CIEDE2000: -0.07% Change-Id: I74b26b568ee65f56521646b8f30dd53bcd29fce3
470efbcf