- 23 Feb, 2017 7 commits
-
-
Jingning Han authored
Support the use of 2x2 prediction and transform block size for chroma components. This experiment builds on top of cb4x4. It brings back the loss in performance gains due to 4x4 chroma component constrain. The coding gains for lowres are up from 1.5% to 2.5%. Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
-
David Barker authored
Since gm_get_motion_vector is trying to give a motion vector for "the frame as a whole", it makes more sense for it to calculate the motion of the *center* of the block rather than the top-left corner of the frame. In theory, this change should also help the encoder make better decisions on when to use global motion. It avoids an issue where, early in the frame, NEARESTMV looks like a good way to use the global motion vector *without* paying the rate cost applied to the first few global motion blocks in each frame. This seems to lead to a better overall result. Change-Id: Ia5c6259ceb8b4ff3d00a5d553e1d18bdb802da59
-
Jingning Han authored
Resolve a rare enc/dec mismatch issue triggered by the 4x4 chroma block size in sub8x8 block coding. To avoid using 2x2 chroma block size, it always uses the top-left 4x4 luma block coding information to predict the 4x4 chroma block. The rest 3 4x4 luma blocks will be coded independently without coding the collocated chroma blocks. The compression performance gains are 1.45% for lowres set (down from 2.4% of the original cb4x4 design). Change-Id: Iff560fcab172ed4219434d5174c4d8dfbbb04135
-
emilkeyder@google.com authored
Change-Id: I288890b964fda354ac58939f3a6b54a33f40666d
-
Angie Chiang authored
This CL aim at facilitating hardware implementation The check will be turned on once we have faster motion vector coding system Performance drop lowres 0.157% midres 0.260% Change-Id: Iedc961f44efadfe84ff9edab408f44845bffcfe9
-
Angie Chiang authored
If there no sub-pixel in both direction of MV, the interp_filter is set to EIGHTTAP_REGULAR Change-Id: I208c34906544f1937c57d78017999be6eddd9e87
-
Yushin Cho authored
Fixes that pack_palette_tokens() was disabled when pvq is enabled and av1_decode_palette_tokens() was not complied. Change-Id: I468bdc4d77ae7ddbca7fb5ed8e1da5506486a58c
-
- 22 Feb, 2017 19 commits
-
-
Alex Converse authored
Change-Id: If5d4f6d261276d9cfdd59fd7779467d92f56c395
-
Yushin Cho authored
Fix the build error when pvq and pallete experiments are both enabled. Change-Id: I80839b0660456b81aad00ad8dd9c34b7541f7727
-
Angie Chiang authored
Change-Id: I1d599b70fb338de4b0d2076fdc7060361a46c21f
-
Jingning Han authored
Properly scale the chroma component block size to handle the sub8x8 coding block in the encoding stage. It resolves the large performance drop issue in cb4x4 due to minimum 4x4 block size. Change-Id: Ia2477b43521408b72a20aca406f495faba66c033
-
Jingning Han authored
Skip coding the intra mode for chroma component for sub8x8 blocks that are not in the reference position. Change-Id: Ic3daab2668ab41c3b743664faf195e34124ead33
-
Jingning Han authored
Make the rate-distortion optimization account for the special order for sub8x8 block chroma component coding. Change-Id: I050abc50dda7b9e8e32f7d0959aa954df1d69398
-
Jingning Han authored
Fix the intra prediction boundary availability check for chroma components. Such intricacy is due to the re-schedule of sub8x8 chroma coding block to avoid 2x2 prediction and transform size. Change-Id: I4a2dff8743cf78af8dfb90265019e8d1222ed734
-
Jingning Han authored
Skip the 2x2 uv block rate-distortion optimization process in the non-reference positions in key frame encoding. Change-Id: I51112492fd79f9a1c205fba151f8658cea9ee85f
-
Jingning Han authored
Process sub8x8 chroma component decoding in the unit of 4x4 block. Change-Id: I02e149f6076cdb5942b8a0a0b9ac2d833b1a7e49
-
Angie Chiang authored
Change-Id: I5bc76c3edbe0792a85c995721ee93dcf517cc1ff
-
Angie Chiang authored
Change-Id: I05377f3d06b3a863e0372d100bc78ea1fbee9b82
-
Debargha Mukherjee authored
Previously the transform type sets used for 16x32/32x16 transform sizes corresponded to 16x16 transforms. Now they correspond to 32x32 transforms with a reduced available set. BDRATE impact: 0.05% worse for lowres, 0.13% worse for midres Change-Id: I01d405d497c13837f5404f9e0caf8c571f3b26cf
-
David Barker authored
increases the translational part of global motion models to the same 1/64 pel precision which is used by the warp filter. Change-Id: I7267b18b123662416bc5c8095186b6a5eef2f7f1
-
Angie Chiang authored
The full-pixel checking is conducted in update_filter_type_count Change-Id: I583ec4b1f3ac29d124098819aee257a8f1007ed4
-
Angie Chiang authored
Removing av1_is_interp_needed() function from it. Use has_subpel_mv_component() only. Change-Id: I98b674b28c276a09bb94f24d66360d24377066a8
-
Angie Chiang authored
Change-Id: I2c05ce6a96cc21826fc53aeacce91d9637d3b178
-
Yushin Cho authored
Change-Id: Ie7edfbcdd7f5f2cc3aa3aa6c2575d081616da6b6
-
Sarah Parker authored
Here we create a default set for the ext-tx experiment which includes: Intra: {DCT, ADST} X {DCT, ADST} + IDTX (identity in both directions) Inter: DCT_DCT + IDTX This set is used if indicated in the uncompressed header. Change-Id: Ic907ada12b4e0c98cabb7c9650ab99942d0c0859
-
David Barker authored
By rearranging the order of operations, we can ensure that all intermediate values fit into 32 bits. This will help when we vectorize the self-guided filter. Results in the noise range. Change-Id: Ic0c73613882bd103c4e8e57a0155b3132672ae04
-
- 21 Feb, 2017 4 commits
-
-
Angie Chiang authored
Remove code related to convolve_round experiment out of av1_convolve() The experimental code is now implemented in av1_convolve_2d(). Change-Id: I409a390876e9d19e6ee42150f0ac20ff108244a9
-
Urvang Joshi authored
Some of the conditions in 'else if' blocks were redundant. Getting rid of them should improve speed. Change-Id: Ib5a994c54c4913ca68c7d982abddc85c0b36db0b
-
Sebastien Alaiwan authored
Signed-integer overflow is undefined behaviour in C. Change-Id: Ib2d7f405adacc668264a5d77aba00ca85ecbb0f7
-
Sebastien Alaiwan authored
De-duplicate implementations of 'range_check', and use precomputed pixel value boundaries instead of computing the log2 of each pixel value. Overall speedup: encoding with enabled-range checks goes 3.3 times faster. Change-Id: I2f7c97cac4ad479b07898fb69c0131e3c7e0bf98
-
- 18 Feb, 2017 7 commits
-
-
Jingning Han authored
Use the top-left 4x4 luma block's coding information for chroma component encoding at size 4x4. Change-Id: I4bcfbc2bf8b71f7fc30094553503468460a56f9b
-
Jean-Marc Valin authored
The result is identical to enabling both deringing and CLPF Change-Id: I71db5ba9e21fcaf11ad87e94841eaf80be58c0a8
-
Steinar Midtskogen authored
The ATTRIBUTE_PACKED caused something to break in MB_MODE_INFO. boundary_info got corrupted and moving InterpFilter around in MB_MODE_INFO could cause a segfault or the problems to go away (for instance by moving InterpFilter to the end of the struct). Perhaps something in MB_MODE_INFO is sensitive to alignment. This should be investigated further and get fixed or documented, but for now remove the attribute. Change-Id: Ic4326ab98fe784d9b7d2b47d8f086b8429cedee9
-
Jingning Han authored
Change-Id: I3fa9d24f2a61dd1b4a234fb1cfea679af06ebdb5
-
Jingning Han authored
Remove redundant table access. Change-Id: Ib45f9b0bafe2a0c57449e787d60e70d35f19f6c7
-
Nathan E. Egge authored
When run with --enable-ec_adapt, forward updates to the tx_size_prob array will not be made. objective-1-fast: master-ec_adapt-e568e6f0@2017-02-17T15:30:27.109Z -> tx_size-ec_adapt@2017-02-17T15:31:49.504Z PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.0113 | -0.0112 | -0.0113 | -0.0114 | -0.0114 | -0.0114 | -0.0112 master-ec_adapt-robust-e568e6f0@2017-02-17T20:29:45.315Z -> tx_size-ec_adapt-robust@2017-02-17T20:33:06.405Z PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.0244 | -0.0243 | -0.0243 | -0.0245 | -0.0245 | -0.0245 | -0.0243 Change-Id: I5873c5d14e3f3868997775f85fa743d2d55d81b7
-
hui su authored
When ext-intra or filter-intra is enabled, the transform type was inferred from prediction mode as in VP9. Should use mbmi->tx_type instead. Change-Id: I6a8e356285a8461d67e69d38df40541d34bade04
-
- 17 Feb, 2017 3 commits
-
-
Urvang Joshi authored
We use a single enum instead of multiple #defines. - Ensures better type checking - Enum values are generated implicitly, and hard-coded #defines are not required. - We use ATTRIBUTE_PACKED to indicate that the enum should still use the smallest integral type. Change-Id: I7532428da31744d3441b363bd932a7f233ee7ab5
-
Yaowu Xu authored
Replace obselete size "4" with correct one "tile_size_bytes". This fixes a decoder crash. BUG=aomedia:352 Change-Id: I5b1c606a4d5be946acc68b3cfe0d0603a5591c44
-
Debargha Mukherjee authored
Replaces division with multiplication in self-guided filter. The guided filter requires computation of: n^2.s^2/(n^2.s^2 + n^2.e). This is now implemented by computation of n^2.s^2/n^2.e followed by using a lookup table for the function f(x) = x/(x+1). To compute n^2.s^2/n^2.e, we use an integer multiplication based implementation which becomes feasible since n^2.e can only take a few values and their corresponding multipliers can be pre-computed. There is also another divison by n, that is also integerized. Change-Id: Id7b81bbafead0b8f04a1853ec69b9dec423bb66a
-