- Aug 23, 2017
-
-
Sarah Parker authored
BUG=aomedia:693 Change-Id: I09b34abc41ee6f85619f5a05f668e06491e542f0
-
Rupert Swarbrick authored
The logic that searches for motion vectors in scan_row_mbmi and scan_col_mbmi steps in 4x4 units when the block size is less than 8x8. That test (bsize < BLOCK_8X8) doesn't work when you have 16X4 or 4X16 blocks, because they appear higher up in the enum. Change-Id: Idb1a97f8a43b675fd78dbc76ae501fcdff7adbcd
-
Turn off the assertion because av1_init_lv_map doesn't pass the count according to the position into get_base_ctx_from_count_mag() The speeding-up optimize_txb is still on-going. I will turn the assertion on once the speeding-up process is getting to a milestone. BUG=aomedia:704 Change-Id: I0119bf825bedc1fccbe4963f341a17f0e2601d02
-
- Aug 22, 2017
-
-
Sarah Parker authored
This will allow the mrc-tx experiment to pass in its own color map and set of probabilities to the tokenize and bit packing functions. The corresponding change on the decoder side will come in a followup shortly. No change in performance. Change-Id: I1872b7f1b1cf5b102e6289388ce1ae449e67cb4d
-
Rupert Swarbrick authored
There are six pieces of code in reconinter.c and two in rdopt.c which iterate over the blocks along the top or left edge of the current block for OBMC. Before this patch, each bit of code has its own implementation of the iteration, which is reasonably finicky to get right. This patch factors out that logic into a pair of helpers (foreach_overlappable_nb_above and foreach_overlappable_nb_left). The functions take a "fun" parameter, which contains the loop body. Note that the iteration is too complicated for us to be able to define a macro that could be used like FOREACH_NB_ABOVE(rel_pos, nb_size, nb_mi) { ... } While C's syntax doesn't seem to let you do that, once the compiler's optimisation pass is done inlining everything, the results are essentially the same. The iteration logic is also slightly generalised: the old code checked whether a block was shorter or narrower than 8 pixels by comparing a block size with BLOCK_8X8. This doesn't work when you have a 4x16 or 16x4 block because e.g. BLOCK_16X4 is not less than BLOCK_8X8. This generalisation is (unsurprisingly) needed in order to to support 16x4 or 4x16 blocks. This patch doesn't address the CONFIG_NCOBMC functions in reconinter.c that do prediction from right and bottom edges. This patch shouldn't affect the generated bitstream in any way: the code is supposed to be equivalent. Change-Id: I9e5a116b012c18645604a7d98fb98be99697d363
-
Sebastien Alaiwan authored
Make it explicit that: - forward tx is using the matrix - inverse tx is using the transposed matrix Change-Id: Ia9507f4f68397b07b6fd1868bb421bb9d5dd817d
-
David Barker authored
The selfguided filter code was sometimes fetching 8 bytes of data when it only needed 4. This was normally fine, but lead to problems in the selfguided filter test when compiling for x86-32, where we accidentally read off the end of the input buffer. Fix this by only reading the amount of data we actually need. BUG=aomedia:700 Change-Id: I2448b7b0d9cb2f9292a092675a66da64c89f913c
-
Cheng Chen authored
Change-Id: I5da893be07b3b9aa4351b5bb1af987f4992370ef
-
Sebastien Alaiwan authored
This is undefined behaviour in C and might confuse the optimizer, leading to incorrect code. Change-Id: Ia4bb60478068da678f013bdd6ab6a49814d89ebe
-
Deb Mukherjee authored
Improves reconstruction performance. Change-Id: Ia30a345e1f5d4e450138c1dd3a7b700119c7de31
-
Lester Lu authored
Change get_lgt in order to integrate a later experiment lgt_from_pred with lgt. There are two main changes. The main purpose for this change is to unify get_fwd_lgt and get_inv_lgt functions into a get_lgt function so the lgt basis functions can always be selected through the same function in both forward and inverse transform paths. The structure of those functions will also be consistent with the get_lgt_from_pred functions that will be added in the lgt-from-pred experiment. These changes have no impact on the bitstream. Change-Id: Ifd3dfc1a9e1a250495830ddbf42c201e80aa913e
-
Jingning Han authored
Make the lv-map rate-distortion optimization account for the per symbol cdf update. This improves the level map coding performance by 0.4%. Change-Id: I1cbecafbad4e6642abc3782c9741636d92d87eb7
-
Jingning Han authored
Change-Id: Icdce2ac2203bacdcbbbf17d1fc3308dc1ed15974
-
Jingning Han authored
Change-Id: Ife4e7e4f62b217fd55db1ec3ef69c243f1651777
-
Jingning Han authored
Allow per symbol cdf probability model update in the lv-map encoding process. Change-Id: Id0c4a659c04ffa981d8f04537eda2f1304d1682a
-
Jingning Han authored
Support the per symbol cdf update at the level map syntax element decoding process. Change-Id: Id58bf86fb1c7c72dd14ddaa3781caaa27f446ef7
-
Jingning Han authored
Initialize the cdf model for level map syntax elements. Change-Id: I3865e07c126eb4c856803c12485b05782dea6526
-
Deb Mukherjee authored
When frame-superres is used with loop-restoration use a 4-tap upscaler to reduce complexity. Change-Id: Idf5712b9a006763c4000e264176b04aa8331b12f
-
James Zern authored
Change-Id: Iec280ba1e314849ac027085f61e62a48dd224be4
-
Deb Mukherjee authored
Change-Id: I1b789acc18f1e69fb5db069ccd8bd17815938e9d
-
- Aug 21, 2017
-
-
Sebastien Alaiwan authored
Change-Id: I3cc9cb8135ec5e8aa20c8cff901a2f37b3b459ee
-
Yaowu Xu authored
BUG=aomedia:685 Change-Id: I0698b281fbaff2e77a50f5dc9a10d752de6c6f79
-
Deb Mukherjee authored
Change-Id: Idcc4c4722bd0379c8667b60115bfd85cf779a6ac
-
Rupert Swarbrick authored
Doing this means that we don't have to memset temporary buffers to zero in reconinter.c, which was taking ~5% of cycles in a short encoding test (using perf to attach to a running encode). Change-Id: Ibb6e31920000b876c6ee99f454d89c8a97e9fb31
-
Angie Chiang authored
Change-Id: I48ebf352c6c28e5c0c0e477b24828f0e3fe1dedb
-
Angie Chiang authored
Change-Id: Ie7c216218bd233e74970b261186df8f08aca6193
-
Angie Chiang authored
This will speed up lv_map by 4.3% Change-Id: I886f67b9f1ae2e5f567e114fa34cf3ba437b8381
-
Angie Chiang authored
Change-Id: I6e9e1c94f688ed84c49d3b861dbac15c37248827
-
Joe Young authored
For sub-8x8 blocks, scan loop should have at least one iteration. Previously, loop would be skipped if col_offset == 1 and n8_w == 1. This change appears to have neutral effect on bdrate (+0.01). This could mean that extra MV candidates are not helping that much for sub-8x8. Change-Id: Ic778312b39113ab8f348f5c7c18813593a831b7c
-
Rupert Swarbrick authored
The orders_32x128 and orders_128x32 variables are only used when CONFIG_EXT_PARTITION is false. Only define them in that case to avoid a compiler warning. Change-Id: Iebe297eff36b139caa83d039101cf16eb88ca8f8
-
Zoe Liu authored
The change is purely an encoder-side tuning, which constrains a GF group interval to be either 8, or 12, or a number larger than 12 (maximum of 16). The change is under ext_refs. This work has been part of the summer internship effort by chendixi@. Further, this CL removes the experiment of flex_refs and merges it into ext_refs, as flex_refs has been completely focused on the encoder side optimization for ext_refs. On Google test sets, above (stillness + interval enforcement) achieve a coding gain in BDRate as follows, compared against the AV1 baseline with all tools enabled by default (excluding ext-tx, global-motion, and convolve-round for speed concern): lowres: avg_psnr -0.193%; ovr_psnr -0.370%; ssim -0.332% midres: avg_psnr -0.556%; ovr_psnr -0.680%; ssim -0.798% Change-Id: Ia992d8ef0d82cc0ef2caba5eec9b26f0358e6bde
-
- Aug 20, 2017
-
-
Angie Chiang authored
This will speed up lv_map exp by 8% Change-Id: Ideaebfd855a3b2e7c2a07ac028407e7336b86697
-
Angie Chiang authored
This will speed up lv_map encoder time by 1.5% Change-Id: Ia9f7634bae221d2fb8fb7dc6f3202c6bacdd5b32
-
James Zern authored
the coverage flags are required at link time as well as compile time Change-Id: Ic581f8ce747615f1fa1dc13d989d6e233e982572
-
- Aug 19, 2017
-
-
Cheng Chen authored
CONFIG_UV_LVL --> CONFIG_LOOPFILTER_LEVEL Change name because the experiment combines filter level search in U, V plane, and horizontal, vertical search in Y plane. Change-Id: Ia05b8f80cd93b60a0305eb94e5783559ef904c13
-
Cheng Chen authored
A new experiment for deblocking filter that separates vertical and horizontal filter strengths. This experiment is based on the assumption that non-flatness characteristics of vertical and horizontal direction may differ. Therefore selecting different filter strengths for vertical and horizontal can improve deblocking performance. The process of finding proper filter strength: 1. Search through the filter level under the constraint that (vertical == horizontal), and find the best solution. 2. Fix vertical level as the best solution found in step 1 and vary horizontal level to find the best value. 3. Fix the selected horizontal level, vary vertical level to find its best value. The experiment is working with UV_LVL, sharing the same config flag. The searching for horizontal and vertical filter strength only applies on Y plane for now. The experimental flag should be changed to filter_level later. Change-Id: I164eec8d3ccb3da7ff109c5c55f4b52c1536ddf1
-
Sarah Parker authored
Currently nothing forbids wedge from being signalled when the block is > 32X32, even though there is no corresponding wedge mask for that block size. BUG=aomedia:640 BUG=aomedia:636 Change-Id: I538be0229a12b5ef01b2e5a950c9f16ef9a5c51e
-
Jonathan Matthews authored
BUG=aomedia:697 Change-Id: Id7e971e515c9faa3df32e162befd57907278549d
-
- Aug 18, 2017
-
-
Jingning Han authored
This commit resolves an encoding failure issue due to the tokenization in palette when the lv-map experiment is turned on. BUG=aomedia:689 Change-Id: I8e476ae81e4d5d11c6aab7611dff9deb7fa63e9e
-