- 13 Sep, 2017 5 commits
-
-
Rupert Swarbrick authored
This function is given a bsize and an mi array and has to figure out what partition to use to divide the given bsize in the direction of the sizes it finds in the mi array. (Since each block size can be reached by only one sequence of partitions, this can be done unambiguously) The previous version was correct, working by looking up entries in the partition_lookup array. Unfortunately, that lookup isn't quite enough when CONFIG_EXT_PARTITION_TYPES is true, so it then had to do some slightly confusing computations to fix things up after the fact. The new version should be more self-explanatory and doesn't work by looking things up in a magic array. It looks up the width and height corresponding to bsize and compares them with the width and height corresponding to the sb_type at mi_row,mi_col in the mi array. When CONFIG_EXT_PARTITION_TYPES is false, this is all you need, and the four corresponding cases can be found by a lookup in an array of 4 elements. With extended partition types and a sufficiently large block, you have to do a bit more searching. For example, if bsize is BLOCK_16X16 and the subsize is BLOCK_8X8, the partition might be PARTITION_SPLIT, but it might be one of PARTITION_HORZ_A or PARTITION_VERT_A instead. The new code adds some comments to explain what's going on. A nice side-effect of rewriting get_partition in this way is that it lets us completely dispense with the partition_lookup array. The patch also fixes comments for the A/B extended partitions in enums.h, which were slightly backwards (a "horizontal split means two blocks vertically above one another) Change-Id: I4b48189103aa63e1859f25a15d7690d53ca7baf5
-
David Barker authored
By using a combination of a small qmlevel and large qindex, it is possible for the quantizer 'dqv' to end up > 2^15. This currently causes dqv to overflow, so widen its type to avoid that. Note that this is certainly an extreme case, but not entirely useless - if using a 32x32 transform, the dequantized value can be as small as dqv/2, which may still fit in 16 bits. Change-Id: I0451e70ba6b17620d94386a98d873f0a8c615635
-
Rupert Swarbrick authored
Using an assert (which was compiled out) meant we got to a use-after-free in bug 729. BUG=aomedia:729 Change-Id: I4d0fa5e80322c395f94565c76e2285782c328505
-
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
-
Yushin Cho authored
Remove mistakenly leftover code from commit e30a47ca. Note that this change force-disables activity masking in PVQ until we can add some bitstream signaling for it. Change-Id: I5279f82e7977733ebc40f5aed844ecec1279992a
-
- 12 Sep, 2017 7 commits
-
-
Zoe Liu authored
Change-Id: Ie92a17d6c530bdd65464fbc599ce92561b8c0428
-
Jingning Han authored
This won't change the coding statistics. Change-Id: Ibe3790836c59462f830029528d88a6e615efa493
-
Debargha Mukherjee authored
Before LR the border extension needs to be consistent. Otherwise there will be inconsistency at the frame boundaries causing mismatches. BUG=aomedia:742 BUG=aomedia:744 BUG=aomedia:745 Change-Id: I5b0c51aa1493c58f7acc706bf686ce711eadd75d
-
Nathan Egge authored
This reverts commit 72c99e1a. No metrics on this commit. Change-Id: I9fc350b25e710c3d5d6d8299ab5348e8b31b39ea
-
Nathan E. Egge authored
Replaces the orthonormal Type-IV DST with an orthonormal Type-VII DST in od_bin_fdst4() and od_bin_idst4() Change-Id: I4ff0888e740d8cc063a2e5deaeceef7cb0d80485
-
David Barker authored
The code currently pads the decoded frame width and height to a multiple of 8 luma pixels, but there is a TODO suggesting that this may be changed to only require a multiple of 4 in future. But, as per the comments on the linked bug, there are good reasons to keep the decoded width and height as multiples of 8. So delete the outdated TODO and instead outline the reasons why the current behaviour is helpful. BUG=aomedia:727 Change-Id: I2340bbcd740afe74c2e6fb3cf2e7a420db2b4f40
-
Luc Trudeau authored
UV_INTRA_MODES must be used for chroma modes Change-Id: I3e72d16204d11062a850fd00fb6272358dd61aac
-
- 11 Sep, 2017 9 commits
-
-
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
-
Jingning Han authored
Change-Id: Ie52d52bc25e3fdfdea877349215431d8edc064a3
-
Jingning Han authored
Fix the index order of br_idx. Change-Id: I55acda816d1ec33c25ca4c31b09976f5e6f9c562
-
Soo-Chul Han authored
Change-Id: Icd04302886a4d12890d04f9f15563169a91e3a0d
-
Zoe Liu authored
Change-Id: I52a7ae7404f15f29a0a0b892884cf0edea619507
-
Zoe Liu authored
Propose the coding structure for GF Group of 16 to use the following multi-layer design: 1st Layer: Frame 0 and Frame 16 (ALTREF) 2nd Layer: Frame 8 (ALTREF2) 3rd Layer: Frame 4 and 12 (ALTREF2) 4th Layer: Frame 2, 6, 10, and 14 (BWDREF) 5th Layer: Frame 1, 3, 5, 7, 9, 11, 13, and 15 This CL implements the reference frame update for a GF group of 16 using a look-up table, which is different from the current implementation. The motivation behind is to try out various GF group coding structures simply through manipulating the look-up table, instead of making changes on swapping the reference indexes and associated flags throughout the codebase. Change-Id: I823edae1c26263e0e0642a580685a25e81caa0a9
-
Debargha Mukherjee authored
Changes the macros SGRPROJ_BORDER_VERT and SGRPROJ_BORDER_VERT to 1 to use a single line border vertically - which will be equivalent to a 2-line buffer. Change-Id: I788d9dca53d3d492058914215acf61e9d3d3880d
-
Steinar Midtskogen authored
Since CDEF looks uses the luma direction for chroma, CDEF would have to change significantly to support formats like 4:2:2. The limited use of such formats does not justify the complexity to support this, so the simple solution is to mandate that the chroma planes aren't filtered if subsampling_x != subsampling_y. Most of the visual gain is in luma, anyway. This also means that the chroma strengths and chroma skip condition shall not be sent if subsampling_x != subsampling_y. BUG=aomedia:720 Change-Id: I35c184a6fe0908ae0fee1e74494b6904fa9a3c82
-
David Barker authored
When cdef-singlepass is enabled, it is possible to signal the CDEF parameters in such a way that we end up with unsigned integer overflow in constrain(). Fix this by i) using signed instead of unsigned values, and ii) clamping the result to avoid going on to shift by a negative amount. Change-Id: Ib677b2d644e44000c54959f7280e646bf02054da
-
- 10 Sep, 2017 5 commits
-
-
Jingning Han authored
Replace the truncated geometric distribution model with the grouped leaves structure for more efficient probability modeling. Each group has its own Geometric distribution This give us 0.2% gain on lowres Change-Id: If5c73dd429bd5183a8aa81042f8f56937b1d8a6a
-
Angie Chiang authored
We got 0.07% gain on lowres Change-Id: I0aef14d16025d9933ec3d3b71086f3f55c81df66
-
Debargha Mukherjee authored
Inlcudes miscellaneous cleanups, test fixes, and code reorganization for loop-restoration components. Change-Id: I5b2e6419234d945e6f4344b22636119b50df4054
-
Debargha Mukherjee authored
This patch forces the vertical filtering for the top and bottom rows of a processing unit for the Wiener filter to not use border more than what is set in the WIENER_BORDER_VERT macro. This macro is currently set at 0 to eliminate line buffer completely, but it could be increased to 1 or 2 to use limited line buffers if the coding efficiency is affected too much with a 0 line-buffer. Also, for the sgr filter we added the option of using overlapping windows horizonttally and vertically to improve coding efficiency. The vertical border used is set by the SGRPROJ_BORDER_VERT macro, while the horizontal border can be set by the SGRPROJ_BORDER_HORZ macro set at 2, the max needed. Currently we do not recommend changing SGRPROJ_BORDER_HORZ below 2. The overall line buffer requirement for LR is twice the max of WIENER_BORDER_VERT and SGRPROJ_BORDER_VERT. Currently both are set as 0, eliminating line buffers completely. Also this patch extends borders consistently before CDEF / LR. Change-Id: Ie58a98c784a0db547627b9cfcf55f018c30e8e79
-
Luc Trudeau authored
Change-Id: I70a4dd8095276eb53050eacca2ee33ba39e7cc74
-
- 09 Sep, 2017 5 commits
-
-
Hui Su authored
Change-Id: Ie3912cb012676ccd26d2c0601e21fbb54943b1a0
-
This addresses visual studio warnings. Change-Id: Ia57739d8954a81ba5369f05aaf96cdb3144fd0a1
-
Sarah Parker authored
This was causing visual stuido warnings when attempting to write to seg_iqmatrix and seg_qmatrix using memcpy. Change-Id: Idf12464c8c90c83af9c2b3ea399d739f7df3b5f9
-
Sarah Parker authored
This addresses a visual studio warning for conversion from 'int64_t' to 'uint16_t' Change-Id: I0a8c67938c1b50d4eb33aa43cf368a21c60f49a8
-
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 9 commits
-
-
Cheng Chen authored
Change-Id: Id3453fcf61fced97810d68cc7ca285bf8bca7881
-
Tom Finegan authored
Change-Id: I949558a3fc716e717e3d0839a6a1ae4684ca7125
-
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
-
Change-Id: If4801b24e8711ab1e78a86b6dbb504be59042200
-
The CMake compiler test functions are built atop CMake's try_compile() function. try_compile() ignores configuration specific link flags in favor of the generic linker flag variable (CMAKE_EXE_LINKER_FLAGS is used instead of CMAKE_EXE_LINKER_FLAGS_<CONFIG>). This patch applies the flags cached in AOM_EXE_LINKER_FLAGS to CMAKE_EXE_LINKER_FLAGS during C and C++ compiler tests. Change-Id: I831244d114a8195527bcb865537494a98cabc170
-
When building without SSE4 support some compilers complain about an unused variable. Typically gcc's with a major version of 4. Guard the declaration of the offending var within a HAVE_SSE4_1 block to avoid the problem. Change-Id: I4e4deb46014c97f3157f3b6c2376e1b034a51b62
-
Hui Su authored
Do not refer to above MB when on SB boundary. This helps to reduce line buffer. Keyframe coding gain on the screen_content testset drops from 1.28% to 1.20%. Change-Id: I4b06fd137d6c9ea68d618035381f09d0746ba9e8
-