- 20 Oct, 2017 1 commit
-
-
Debargha Mukherjee authored
Since CB4X4 is adopted and without it the codec does not work, it is better to remove it and simplify the code. Change-Id: I51019312846928069727967e3b2bbb60f0fba80d
-
- 17 Oct, 2017 2 commits
-
-
Sebastien Alaiwan authored
Change-Id: I5bff0a68602a89ce480fec049c8b2c4bce44f6bb
-
Hui Su authored
This variable is unused. Change-Id: I8ee9c588898417e956e7cd7993ff54cbb885285e
-
- 16 Oct, 2017 2 commits
-
-
Sebastien Alaiwan authored
Change-Id: I9d3f0380865790d8adcb85f03305b193bc1949d7
-
Hui Su authored
This experiment uses switchable interpolation filter for intra prediction. Current gain is too small to be useful for AV1. May explore more for AV2 in the future. Change-Id: I24ae8c75dc71adf6271eabdb68a81b68a0869fa2
-
- 11 Oct, 2017 1 commit
-
-
Urvang Joshi authored
Change-Id: Ic4e04ef959e10b60dae6de8d6da50e7a281e654c
-
- 10 Oct, 2017 2 commits
-
-
Hui Su authored
Add av1_allow_palette() to control whether palette mode should be enabled. Change-Id: Iee24636451be42eb36093dc3453bc39c7e686276
-
Lester Lu authored
In this experiment, sharp image discontinuity in the predicted block is detected. Based on this discontinuity, we choose particular LGTs as row and column transforms. Bitstream syntax, entropy coding, and RD search for LGT are added. One binary symbol is used to signal whether LGT is used. This experiment can work independently with the lgt experiment. lowres: -0.414% for key frames, -0.151% overall midres: -0.413% for key frames, -0.161% overall Change-Id: Iaa2f2c2839c34ca4134fa55e77870dc3f1fa879f
-
- 09 Oct, 2017 2 commits
-
-
Debargha Mukherjee authored
Change-Id: I73e9d2d327b062828a75bc99fb348441dd32174a
-
Rupert Swarbrick authored
This returns true if a block signals tx_size in the stream and uses it in the bitstream writing code and the decoder. Note that we can't quite use it in pack_inter_mode_mvs when CONFIG_VAR_TX && !CONFIG_RECT_TX but I've switched the code to using it the rest of the time since rect-tx is adopted and eventually the other code path should be deleted. Also use the helper function in tx_size_cost in rdopt.c, where the test was wrong and caused underestimates of block costs. (Specifically, the code that subtracts tx_size_cost from this_rate_tokenonly in rd_pick_intra_sby_mode ended up subtracting zero for a 4x8 block). The behaviour of the decoder should be unchanged. The only change in the encoder's behaviour should be in tx_size_cost where it should now match the rest of the code. Change-Id: I97236c9ce444993afe01ac5c6f4a0bb9e5049217
-
- 08 Oct, 2017 1 commit
-
-
Cheng Chen authored
Change-Id: I5446327378938128f27186015619a079c2845d53
-
- 04 Oct, 2017 1 commit
-
-
Rupert Swarbrick authored
Before this patch, if CONFIG_DUAL_FILTER was true then an MB_MODE_INFO stored its filter choices as an array of four numbers, each of which was between 0 and 10. It also seems that elements 2 and 3 of the array were always the same as elements 0 and 1 when used. This patch defines a new type(def) called InterpFilters together with constructor and extractor functions. When CONFIG_DUAL_FILTER is zero, InterpFilters is a synonym for InterpFilter and the constructor and extractor functions should compile away to nothing. When it is nonzero, InterpFilters is a uint32_t which stores the x filter in the high part and the y filter in the low part (this looks strange, but matches the old numbering). Making this change allows us to get rid of lots of special case code that was dependent on CONFIG_DUAL_FILTER. The uniform extract/make/broadcast interface also actually shortens code in general. Change-Id: I6b24a61bac3e4b220d8d46d0b27cfe865dcfba81
-
- 03 Oct, 2017 2 commits
-
-
Debargha Mukherjee authored
Change-Id: Ic843e99bd9b79cb9a0a26b95e3a48717ff2ec2a5
-
Cheng Chen authored
Before LOOPFILTER_LEVEL, there's one filter level, now we have four filter levels for y plane vertical, y plane horizontal, u plane and v plane. This patch enables experiment LOOPFILTER_LEVEL to support per superblock loop filter level update. Change-Id: Ib11a1564471eb3076c26e73e5cdf7b5a3045ef97
-
- 02 Oct, 2017 1 commit
-
-
Sebastien Alaiwan authored
This experiment has been adopted, we can simplify the code by dropping the associated preprocessor conditionals. Change-Id: Ic077963f72e8cc2ae9872b58c8a0241988384110
-
- 29 Sep, 2017 2 commits
-
-
Rupert Swarbrick authored
Change-Id: Ieb28f40d85e4db4af33648c32c406dd2931ceb89
-
Thomas Davies authored
Change-Id: I52f204000f5fdaf1c6fff63949d72e858ceea462
-
- 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
-
Luc Trudeau authored
Pixels are subsampled when they are stored in the CfL prediction buffer. This allows to avoid having two buffers. No impact on the bitstream. Results on subset1 (Compared to parent) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 https://arewecompressedyet.com/?job=cfl-avg-on-fly%402017-09-23T21%3A38%3A04.440Z&job=cfl-Sub-On-Store%402017-09-24T15%3A01%3A41.161Z Change-Id: If051e34d6d7078d77609542305a2afebef5cb177
-
Luc Trudeau authored
Instead of storing the transform block average, it is immediately subtracted from the subsampled pixels. This change does not alter the bitstream and it reduces CfL complexity. Change-Id: Ia5038b336abf1ec01e295b235734318906d3bae6
-
- 27 Sep, 2017 1 commit
-
-
Luc Trudeau authored
Result from luma subsampling is left-shifted by 3. This avoids having to do it during averaging, in alpha search and when building the prediction. This change does not alter the bitstream. Results on Subset1 PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 https://arewecompressedyet.com/?job=cfl-baseline%402017-09-06T17%3A41%3A38.041Z&job=cfl-SubsampleQ3%402017-09-06T17%3A42%3A01.252Z Change-Id: I6e89eac6496f7c36e46364c9223fbcbca6759032
-
- 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
-
Hui Su authored
Change-Id: Id667950de84ad6a0b55222264a0ce8473cd10bcc
-
- 22 Sep, 2017 2 commits
- 20 Sep, 2017 2 commits
-
-
Cheng Chen authored
Search and pick filter level for each superblock after the entire frame has been encoded. And then apply loop filtering using selected filter levels. Now it can't work with LOOPFILTER_LEVEL. Y, U, V planes share the same filter level. Per superblock, filter levels are signaled via bitstream. Future work: move selecting filter level into each superblock rather than wait for the whole frame encoded. Change-Id: I46cb994ec4866abb0456146f7c3cae8813c1d52e
-
Soo-Chul Han authored
Change-Id: I78bb38e3d61d74442278bd5ed1c4f695b7c8e24a
-
- 19 Sep, 2017 3 commits
-
-
RogerZhou authored
Change-Id: Ic3c93a5d2e427ce1ed578389196a265245063821
-
Luc Trudeau authored
MAX_NUM_TXB represents the maximum number of transform blocks in 1 dimension. CfL requires the maximum number of transform blocks in 2 dimensions. As such, we now use MAX_NUM_TXB_SQUARE instead of the erroneous MAX_NUM_TXB for the average buffer. There's an assert guarding for overrun on the average buffer. This fix stops assertions on 4:4:4 sequences. This patch does not alter AWCY results as AWCY only covers 4:2:0 sequences (for which MAX_NUM_TXB turns out to be sufficient). Change-Id: I628db0131f60abc2d06cbbe3fe3dc40e28894ce3
-
Luc Trudeau authored
Added CFL_SUB8X8_VAL_MI_SIZE and CFL_SUB8X8_VAL_MI_SQUARE to replace the magic numbers previously used. Also, CFL_SUB8X8_VAL_MI_SIZE goes from 2 to 4 to support the upcoming EXT_PARTITION_TYPE experiment. Change-Id: I5c812af3366f80345a749451415660024e41ea3c
-
- 13 Sep, 2017 2 commits
-
-
David Michael Barr authored
Instead of forward-declaring AV1_COMMON and MACROBLOCKD, move the dependent struct and function prototype closer to where they are used and after these types are defined. Change-Id: I75f005b46ef322a6fcbc01377b8dded1637c5f73
-
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
-
- 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
-
- 09 Sep, 2017 2 commits
-
-
Hui Su authored
Change-Id: Ie3912cb012676ccd26d2c0601e21fbb54943b1a0
-
Sarah Parker authored
This was causing visual stuido warnings when attempting to write to seg_iqmatrix and seg_qmatrix using memcpy. Change-Id: Idf12464c8c90c83af9c2b3ea399d739f7df3b5f9
-
- 06 Sep, 2017 1 commit
-
-
Wei-Ting Lin authored
Change-Id: I3de1c933ee0fa90e9c0d52e6cbe4bc8bf5482a73
-
- 05 Sep, 2017 2 commits
-
-
Wei-Ting Lin authored
Change-Id: I862c4b5a22c3f5b3d923cc3feecd194d03b4b892
-
Debargha Mukherjee authored
Change-Id: Id7c0d001102385cade94d6810e3b688be02ea4a1
-
- 03 Sep, 2017 1 commit
-
-
Rupert Swarbrick authored
Rather than encoding the loop restoration coefficients at the start of the frame header, this patch moves them to occur just after certain top-level superblocks. You might hope that we could just encode coefficients on top-level superblocks where the top-left corner of the superblock was also the top-left corner of the loop restoration tile. Unfortunately, this can't work with the superres experiment, where the loop restoration tiles don't necessarily line up with the superblocks. Indeed, in general there can be multiple different loop restoration coefficients that apply in a given top-level superblock. This patch defines a function, av1_loop_restoration_corners_in_sb, which yields the rectangle [rrow0, rrow1) x [rcol0, rcol1) of loop restoration tiles whose top left corners lie in this top-level superblock. The total file size should be unchanged by this patch: the bits have just been moved from the frame header and spread out among the rest of the frame. Change-Id: Icf43b0560964a63dea0d2cd801313f04139188d7
-
- 30 Aug, 2017 1 commit
-
-
Sarah Parker authored
These are not currently being used for anything so there is no impact on performance. Change-Id: Ida4e0afcc10bee665f8daa379314cd18b3a4ea28
-