- 29 Sep, 2017 4 commits
-
-
Jingning Han authored
Move functions related to frame index in natural order setup into a root experiment. Change-Id: Iebc71514b951dbb658cf0e1c3d42bb2b180d830f
-
Rupert Swarbrick authored
Change-Id: Ieb28f40d85e4db4af33648c32c406dd2931ceb89
-
Thomas Davies authored
Change-Id: I52f204000f5fdaf1c6fff63949d72e858ceea462
-
RogerZhou authored
Change-Id: I8a9f634bf9a5776c752cc72a18e0f0eec4d1d58f
-
- 28 Sep, 2017 3 commits
-
-
Rupert Swarbrick authored
With ext-partition and tx64x64 enabled, the encoder could choose TX_64X64 to encode the transform for a subsampled plane of a BLOCK_128X128 block. This broke an assumption in the nested loop in write_tokens_b and also caused bug 827 (with a rather cryptic failure). This patch changes get_vartx_max_txsize to ensure that the encoder and decoder don't think they can use TX_64X64 in this situation. It also adds a couple of assertions to the loop mentioned above so that if something comes unstuck it'll be much more obvious what went wrong. BUG=aomedia:827 Change-Id: Ie093f2f20f6242949d68e950c8f95b100867ee17
-
Ryan authored
AV1 encoder's logic for handling current_delta_lf_from_base value has a hole, which could cause enc/dec mismatch due to deblocking filter level mismatch. On the encoder side, when delta_lf is used. current_delta_lf_from_base value is only written into the bit stream when the following condition is true: ((bsize != BLOCK_LARGEST || skip == 0) && super_block_upper_left) i.e., it is only written into the bit stream when current mi is the top left corner of a super block, and it is not skipped or block size is not 64x64. this is applied to both INTRA and INTER blocks in write_mbmi_b(). And the following code is used to handle the case when the above condition is not true. if (!dry_run) { mbmi = &xd->mi[0]->mbmi; if (bsize == BLOCK_64X64 && mbmi->skip == 1 && is_inter_block(mbmi) && cpi->common.delta_lf_present_flag) { mbmi->current_delta_lf_from_base = xd->prev_delta_lf_from_base; } The idea is that if the above condition is not true, then the current_delta_lf_from_base should be reset to the previous delta lf, which is prev_delta_lf_frame_base. However, there is a hole in this logic. For INTRA 64x64 blocks, even it is skipped, the current_delta_lf_frame_base is not reset back to the previous delta_lf. So, in this case, decoder side won't receive any new delta_lf from bit stream, so it will use previous delta_lf. encoder side will use the new delta_lf value. this mismatch will cause final loop filter level calculation inconsistent in the deblocking stage and thus cause encoder and decoder mismatch. BUG=aomedia:826 Change-Id: I90c1dcca5da106e4f3e0bcba1ed539c1cd99c370
-
Thomas Davies authored
CDFs are used for coding and costs, so there is no need to base the CDF on the obsolete tree and remap filter indices. No change to common test conditions BDR. Change-Id: I441dd21b127bc07ba33eef8ddcfd147eef21d0d4
-
- 27 Sep, 2017 1 commit
-
-
Ryan authored
inside the encode_super_block function, the tx_size decision logic is different in the dry_run==0 and dry_run==1 case when segment is lossless. this change fix the inconsistence. BUG=aomedia:819 Change-Id: I2f4c5434d8c4ef722ac885a1ffd2d253863ae6d9
-
- 26 Sep, 2017 2 commits
-
-
Yushin Cho authored
PVQ has been broken again since the experiment flag for palette is removed in commit c6300aa1. As a fix, if PVQ is enabled then disable both of --tune-content=screen and automatic detection of screen and use of palette coding tool. Change-Id: Iea6bb042b4402163805c44dabfb3f4c05dfd4e23
-
Luc Trudeau authored
Like for intra block in intra frames, an extra call to txfm_rd_in_plane is added to the RDO of intra blocks in inter frames. This extra call is performed using the best parameters found during RDO and the reconstructed luma pixel are stored. Results on objective-1-fast (compared to CfL on Intra frames only) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.2497 | -3.5526 | -3.5048 | -0.2456 | -0.2392 | -0.2508 | -1.4811 https://arewecompressedyet.com/?job=cfl-no-inter%402017-09-13&job=cfl-inter%402017-09-13T14%3A13%3A13.918Z Change-Id: I70ea2c01859b6c55d7c3eb9680d492c0bfc2aad4
-
- 24 Sep, 2017 1 commit
-
-
Jingning Han authored
Change-Id: I88e425c55b61629430078e11b5b94bac164d027e
-
- 23 Sep, 2017 2 commits
-
-
Yushin Cho authored
Improve dist-8x8 when computing 8x8 yuv dist for sub8x8. To apply dist-8x8 for sub8x8 partitions, once mode decision for sub8x8 partitions are finished then dist-8x8 is computed on 8x8 window. Since dist-8x8 is only for luma, chroma distortion should be identified. Previously, it has been hard to be free from potential bugs doing this, due to the complex inter mode search code. The new method is less-error-prone, which computes uv distortion (in MSE) after the mode decisions for all of sub8x8 blocks in a 8x8 window are finished, when the dist-8x8 distortion for luma 8x8 pixels are computed with new distortion metric. All the code separating y and uv distortion in inter mode search has been removed in this commit. Change-Id: Ieaccb7915df5faeb5e89a7e70b2b7cbac65231af
-
Rupert Swarbrick authored
The rd_test_partition3 function basically calls rd_pick_sb_modes on each of three sub-blocks of a partition (this is one of the mixed size partitions like PARTITION_HORZ_A) and adds up the cost. There's also some extra book-keeping to do with stopping early if we know the partition is more expensive than what we've already seen. Before this patch, each call and its supporting code was written out in rd_test_partition3 with lots of repetition (made even more unreadable because of the #if/#endif blocks). This patch moves the "per-subblock" logic into a new function, rd_try_subblock, and replaces the code with calls to that function. The patch also rewrites the nested conditionals if (A) { if (B) { if (C) { X; } } } return; as if (! A) return; if (! B) return; if (! C) return; X; which means the code for X doesn't need to be so indented. The patch also uses the new function to replace the bodies of the PARTITION_HORZ_4 and PARTITION_VERT_4 partition types. Note that lots of the remaining ugliness is to do with supporting CONFIG_SUPERTX with ext-partition types. These explicitly aren't supported together at the moment, so another option would be to rip out that code entirely. Change-Id: I9af40d96aa1384f24a088a73a711311638490250
-
- 22 Sep, 2017 2 commits
-
-
Hui Su authored
It's not being used anymore, replaced by the CDF model. The counters are moved under the entropy-stats experiment, so that they can be used to tune the default CDF values. Change-Id: I50cb170c4c8699cf7317fd77853b3fedf2342d3e
-
Hui Su authored
Use common structure for inter and intra tx type information when possible. Change-Id: I1fd3bc86033871ffbcc2b496a31dca00b7d64b31
-
- 20 Sep, 2017 2 commits
-
-
Ryan authored
the original calculation for super_block_upper_left calculation is wrong. this flag is true even for 32x32 block boundary. also it is not consistent with other places where this flag is calculated. Change-Id: I6b7b613d1f81eb11d27c67491375f6c1a47878e1
-
Luc Trudeau authored
This commit serves as a baseline to test CfL in video sequences. This starting baseline uses CfL only in intra frames. This allows to measure the contribution of CfL in intra frames over the whole video sequence. Results on Objective-1-fast (Compare to master with CfL disabled) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.1869 | -2.4708 | -1.9988 | -0.1725 | -0.1390 | -0.1453 | -0.9564 https://arewecompressedyet.com/?job=master%402017-09-13&job=cfl-no-inter%402017-09-13 Change-Id: I20b2f239455b43e977588dc738b21e0508ad9333
-
- 19 Sep, 2017 1 commit
-
-
RogerZhou authored
Change-Id: Ic3c93a5d2e427ce1ed578389196a265245063821
-
- 18 Sep, 2017 1 commit
-
-
David Barker authored
The error-resilient-mode flag is currently set per frame, so we can encode a non-error-resilient frame immediately after an error-resilient frame. As of https://aomedia-review.googlesource.com/c/21783 , this case causes the decoder to read uninitialized memory. This happens because the error-resilient frame no longer sets up cm->cur_frame->global_motion. Then, on the non-error-resilient frame, that is renamed to cm->prev_frame->global_motion and we try to use it as a reference for delta encoding. Fix this by always writing cm->cur_frame->global_motion. Change-Id: I0d4f13bf413ca15da210e06d5ce1780331c005da
-
- 13 Sep, 2017 2 commits
-
-
Sarah Parker authored
This allows gm parameters to be written when error resilient mode is enabled but avoids depending on stored parameters from the previous frame. BUG=aomedia:741 Change-Id: Iae455a346e0eebb18e2bcfadc8826c75aedfee99
-
Debargha Mukherjee authored
Turn off compound modes as long as one of the dimensions is less than 8. Imapct on AWCY (0.05% increase in BDRATE) https://arewecompressedyet.com/?job=debargha-nocdef-sub8c8nc-0907%402017-09-07T20%3A28%3A38.251Z&job=debargha-nocdef-0907%402017-09-07T14%3A42%3A17.170Z Change-Id: I4a70890c04149246a50e60990dede21cb8052fad
-
- 12 Sep, 2017 2 commits
-
-
Jingning Han authored
This won't change the coding statistics. Change-Id: Ibe3790836c59462f830029528d88a6e615efa493
-
Luc Trudeau authored
UV_INTRA_MODES must be used for chroma modes Change-Id: I3e72d16204d11062a850fd00fb6272358dd61aac
-
- 11 Sep, 2017 1 commit
-
-
Sarah Parker authored
This allows a mask for mrc-tx to be sent in the bitstream for inter or intra 32x32 transform blocks. The option to send the mask vs build it from the prediction signal is currently controlled with a macro. In the future, it is likely the macro will be removed and it will be possible for a block to select either method. The mask building functions are still placeholders and will be filled in in a followup. Change-Id: Ie27643ff172cc2b1a9b389fd503fe6bf7c9e21e3
-
- 10 Sep, 2017 1 commit
-
-
Luc Trudeau authored
Change-Id: I70a4dd8095276eb53050eacca2ee33ba39e7cc74
-
- 09 Sep, 2017 1 commit
-
-
Wei-Ting Lin authored
This patch allows ncobmc-adapt-weight to replace warped-causal, and also remove transmitting ncobmc_mode_prob in the frame header. Change-Id: I2713b3abbd28eef8b203637e432eca6a782e3b9a
-
- 08 Sep, 2017 4 commits
-
-
Hui Su authored
Intrabc is counted as inter mode, but it doesn't support var-tx yet. This patch skips tx partition info update for intrabc blocks. It resolves a decoder crash issue. Change-Id: I97e413e4a837ba6510e110347f5aa6e5fd14dcc5
-
Yaowu Xu authored
BUG=aomedia:685 Change-Id: I592016faeb4645cf43c599e0e2e11127e2a17c4e
-
Yaowu Xu authored
Change-Id: Ia84ea2f4e855671f5a29058cc7a6b5ba9e6bfef9
-
Hui Su authored
Encoder may do multiple rounds of transform RD search on the same residue signals. Save the RD search results so that encoder can fetch the results and terminate early if the residue signals have been seen before. The hash functions are ported from the hash_me experiment. Test results show the encoder speed is increased by 10% on average (ranging from 0 to 30%) with all default experiments on. Change-Id: I47dd63549f67cb43d3d700f6a76ce0992b1ccd0d
-
- 07 Sep, 2017 2 commits
-
-
Yaowu Xu authored
Change-Id: I43e92e3f3799857e928543434d049b4155b64d7d
-
Wei-Ting Lin authored
Change-Id: I0e9df3719e5f9a55e1386afe44851d1707e2e01b
-
- 06 Sep, 2017 4 commits
-
-
Yue Chen authored
Update cdf after each superblock being finalized, and re-compute symbol costs. Affected symbols include prediction parameters and tx type. BDRate: -0.119% lowres, -0.092% midres Change-Id: I724900ac04f725910ed7055a18c2f6a139469b52
-
Jingning Han authored
BUG=aomedia:719 Change-Id: Id47c2c68cb61e142ce62fee5e97f7c474b3dc273
-
Wei-Ting Lin authored
Change-Id: I3de1c933ee0fa90e9c0d52e6cbe4bc8bf5482a73
-
Wei-Ting Lin authored
Change-Id: I7393596d98f11aa53ba4b9e329386b5168b3e086
-
- 05 Sep, 2017 2 commits
-
-
Wei-Ting Lin authored
Change-Id: I1cd1197b48a3315fe4f44578b80634be73de17a3
-
Jingning Han authored
Change-Id: I2faf5d43db1e5726a08b24a19d8fb7ae1b86ad0a
-
- 04 Sep, 2017 1 commit
-
-
Jingning Han authored
Store the reference frame motion vectors in 8x8 block resolution. Change-Id: I5afde20c40f09b44e943034232359bdaac4a2b64
-
- 02 Sep, 2017 1 commit
-
-
Zoe Liu authored
Change-Id: Ie67266538db41c6aa7d79a5c270c26c021583c48
-