This change is similar to the one done for choose_tx_size_from_rd in
daf841b4a10ece1b6831300d79f271d00f9d027b
It gives a 4% speed-up on bus_cif.y4m with the following settings:
--cpu-used=4 -p 1 --end-usage=q --cq-level=40 --tile-columns=0 --tile-rows=0
Change-Id: Ic54fe4a066a2c0b5f6349d80cd13de8bb8ddcabc
This commit resets the transform size to be the maximum possible
value. It avoids out-of-boundary writing when the ActiveMap is
turned on.
Change-Id: I8302dd9a5c9fffaea3edf9ad33f72aa111999737
This avoids an encoding segmentation fault in speed 5, due to the
use of uninitialized dummy inter prediction filter buffer in the
dynamic motion vector referencing scheme.
Change-Id: Icd888d46623e8abf34267838135eed8656d552e4
Limit the recursive transform block partition depth to 2. For a
32x32 transform block unit, one can maximally go down to 8x8 transform
block size.
Change-Id: I2caa92bb2eee64762b7ecca8920259f7c50fb0aa
This CL will facilitate adapt_scan experiment.
In adapt_scan experiment, dynamic scan order will be stored in
AV1_COMMON
Change-Id: I4763ea931b5e1af54d4f173971befeb01a4db335
* changes:
Palette: Use inverse_color_order to find color index faster.
Rewrite some loops to avoid -Wunsafe-loop-optimizations warnings.
Remove some useless casts
Add compiler warning flag -Wextra and fix related warnings.
Declare some array sizes to be constants (known at compile time).
In a previous commit: 5db9743fbbe500bb802b5e5f5eb4e495621e29f7, two
changes that appeared to be typos are breaking build when experiments
are enabled:
../../libvpx/configure --enable-experimental --enable-ref-mv
--enable-ext-intra --enable-ext-refs --enable-ext-interp
--enable-supertx --enable-var-tx --enable-entropy --enable-ext-inter
--enable-ext-tx --enable-motion-var --enable-dual-filter
--enable-ext-partition --enable-ext-partition-types
--enable-loop-restoration --enable-rect-tx --enable-palette
--enable-aom-highbitdepth --enable-filter-intra --enable-internal-stats
&& make clean && make -j16
This commit fixes the issue.
Change-Id: I9ce5bbc96df326214202868cb0669bd334c86851
* changes:
Fix warnings reported by -Wshadow: Part4: main directory
Fix warnings reported by -Wshadow: Part3: test/ directory
Fix warnings reported by -Wshadow: Part2b: more from av1 directory
Fix warnings reported by -Wshadow: Part2: av1 directory
Fix warnings reported by -Wshadow: Part1b: scan_order struct and variable
Fix warnings reported by -Wshadow: Part1: aom_dsp directory
Move STAT_TYPE enum to source file.
Code cleanup: mainly rd_pick_partition and methods called from there.
Now that all warnings are taken care of, add warning flag -Wshadow to
configure.
Note: Enabling this flag for C++ generates some useless warnings about
some function parameters shadowing class member function names. So, only
enabling this warning for C code.
Cherry-picked from aomedia/master: b96cbc4
Change-Id: I3922dea2e6976b16519c4aa4d1bd395c198134f1
While we are at it:
- Rename some variables to more meaningful names
- Reuse some common consts from a header instead of redefining them.
Cherry-picked from aomedia/master: 863b0499
Change-Id: Ida5de713156dc0126a27f90fdd36d29a398a3c88
- Change struct name to all caps SCAN_ORDER to be locally consistent.
- Rename struct pointers to 'scan_order' instead of hard to read short
names 'so' and 'sc'.
Cherry-picked from aomedia/master: 30abc082
Change-Id: Ib9f0eefe28fa97d23d642b77d7dc8e5f8613177d
- Const correctness
- Refactoring
- Make variables local when possible etc
- Remove -Wcast-qual to allow explicitly casting away const.
Cherry-picked from aomedia/master: c27fcccc
And then a number of more const correctness changes to make sure other
experiments build OK.
Change-Id: I77c18d99d21218fbdc9b186d7ed3792dc401a0a0
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
daf841b4a10ece1b6831300d79f271d00f9d027b 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
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 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