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
daf841b4a1 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
This array was allocated and used to save and restore segmentation map,
however the original segmentation map was never modified between the
calls to save and restore.
Change-Id: Iaf0fbfed733c097e84cf44d2aa6b8f35d2fb456b
On average no compression performance changes. Encoding speed is
increased by 10~20% on some test clips in the derf set.
Change-Id: I9856caaa260303f6f6259686671bed7d51012277
Drop some speed features used in speed 2 and above, during the
algorithm development process. This helps simplify the codebase.
Change-Id: I3b2f5560d90b00d2d8fd57c2cb36f6ddd3f228e4
This commit ports the following from aom/master:
4c46278 Add aom_reader_tell() support.
b9c9935 Remove an erroneous declaration.
56c9c3b Fix ANS build.
Change-Id: I59bd910f58c218c649a1de2a7b5fae0397e13cb1
This computation should match the code in encode_block
to increase the accuracy of the rd optimization.
Change-Id: Ibc9d9ab6d88d0c0f3af62e9cc233216aba48a57e
When built with var_tx and ext_tx, select_tx_size_fix_type is used
to compute the cost for using a particular tx_type.
The code indexes the array inter_tx_type_costs at the wrong location
resulting in a zero cost for signalling tx_type for rect_tx blocks.
Change-Id: Iba38be3a0d822109f778f0600b242dfb40359766
To get ready for pulling AV1 to nextgenv2. Refactoring is done to
make the code structures similar, especially for the motion search
part.
Change-Id: I5d7636394408d97de55394d668540f5627827983
Cherry-pick Daala 211c2a41: Clean up EC tell() and tell_frac() functions.
Add a const qualifier to the od_ec_enc and od_ec_dec parameters of
the od_ec_enc_tell(), od_ec_enc_tell_frac(), od_ec_dec_tell(), and
od_ec_dec_tell_frac() functions.
Add an OD_WARN_UNUSED_RESULT to od_ec_enc_tell_frac().
Change-Id: Ia50e2fd75e98d8a03d993449d658b695cf56e6fb
The formatting of OD_UNIFORM_CDFS_Q15[] in entcode.c is helpful for
for understanding what is contained in the array (e.g., the uniform
probability distributions of small sizes 2 through 16).
This patch reverts the change made in f4b2926d and adds linter hints to
ignore the formatting.
Change-Id: I2ad9fe6673b86e6067cb97b40f0f0e69a119cdf5
In super_block_uvrd(),if is_cost_valid == 0, all return parameters,
i.e. rate, distortion, skippable, and sse, are reset.
So, should not call txfm_rd_in_plane() if is_cost_valid == 0.
Also, the bug causes av1_xform_quant() to see invalid diff signal
since av1_subtract_plane() is not called in super_block_uvrd().
Change-Id: Iaa06061e2e9aa8876b4611a54f4ae6b8d499332b
Display the -b --bit-depth command line parameter on of aomenc when
--config-aom-highbitdepth is enabled.
Change-Id: I76147e38b9985e68b1e642e21be8fd4d8ec4d966
Move computing the partition_cdf tables per symbol to
computing them only when the probabilities are updated.
Change-Id: I442f9230ba00be7f5d0558d7c38d7324ad009ee8
Move computing the inter_ext_tx_cdf tables per symbol to
computing them only when the probabilities are updated.
Change-Id: I5e1e62f8eae8f6b2edbbd378beeb786649502c10
Move computing the intra_ext_tx_cdf tables per symbol to
computing them only when the probabilities are updated.
Change-Id: I26d5e419e103093e98a7d896c196176305b50fc9
Move from computing the switchable_interp_cdf per symbol to
computing once per frame when the probabilities are adapted.
Change-Id: I6571126239f0327e22bb09ee8bad94114291683e