- 03 Nov, 2017 2 commits
-
-
Sebastien Alaiwan authored
This experiment has been abandonned. Change-Id: Ieabc6f365651e2d116a4505a3cc202add94d1386
-
Rupert Swarbrick authored
We do this by upscaling the deblocked output as we save it into the RestorationStripeBoundaries line buffers. (See save_boundary_lines in restoration.c for the details) The upscaling is done by calling av1_convolve_horiz_rs, which reads off the edge of the frame and, of course, across tile boundaries. This means we need to extend the frame borders before saving boundary lines (hence the changes to decodeframe.c and encoder.c) Change-Id: Ia096846898b20afe4737433d772f7277d4f71724
-
- 02 Nov, 2017 6 commits
-
-
Rupert Swarbrick authored
These are just RESTORATION_PROC_UNIT_SIZE shifted right by the vertical or horizontal subsampling for this plane and it's easier not to have to pass them around. Change-Id: I86441d6cd86bb146f3e5dcdf2c89e34dd9fed0e1
-
Sebastien Alaiwan authored
Avoid switch fallthrough (and associated gcc/clang warnings), reduce scopes and add consts. Change-Id: I28d910d9d39ee8fe2c5618364af602af5be5c186
-
Sebastien Alaiwan authored
This experiment has been adopted, we can simplify the code by dropping the associated preprocessor conditionals. Change-Id: I02ed47186bbc32400ee9bfadda17659d859c0ef7
-
Debargha Mukherjee authored
Change-Id: I3873acafcd9539da96f67328cdb8faf7798be90f
-
David Barker authored
* The function av1_decode_tg_tiles_and_wrapup performs some per-frame initialization; some of this was mistakenly being performed once per tile group instead, leading to strange behaviour (eg, forgetting loop-restoration coefficients, forgetting the boundary information for all but the last tile group, etc.) Fix this by pulling all of the initialization code into its own function and calling it only if the initialize_flag is set. * While fixing the above, I realized that the 'context_updated' flag in av1_decode_tg_tile_and_wrapup was not behaving as intended: The idea is that, when using frame parallel mode, we save the frame context early so that the next frame can start decoding. Then we don't need to store the frame context at the end of the frame, since we already dealt with it at the start of the frame. However, this 'context_updated' flag was local to one tile group, ie. it got reset to 0 once we started decoding the second tile group. So we'd end up storing the frame context again at the end of the frame if there was >1 tile group. This didn't break anything, but it is a bit weird. So, to match the original intent, we ditch the 'context_updated' flag and directly check if we're in frame parallel mode when necessary. * Fix a bug where we read one byte too much from a tile group OBU when the extended OBU header was used. BUG=aomedia:892 Change-Id: Ifbe561de0de35525d809e23915ac5263273e8de7
-
Rupert Swarbrick authored
Previously we were calling aom_extend_frame_borders to generate extended pixels for use in loop-restoration. This generates quite a large border, when we only need 3 pixels. In addition, we were also calling extend_frame, which does the same thing but with a smaller border, once (in the decoder) or multiple times (in the encoder) per plane. This patch tidies all of this up so that we only call extend_frame once per plane, with the largest border size we need (3px). It also adds two new #defines. RESTORATION_BORDER is the 3 pixel border needed to do filtering for a processing unit. RESTORATION_CTX_VERT is the number of rows saved for each stripe when doing striped loop restoration. Change-Id: I2c3ffcc19808f79db195f76d857e2f23da5d8a84
-
- 01 Nov, 2017 6 commits
-
-
Sarah Parker authored
This name better reflects the functionality of the mode. Change-Id: Idc2372e7c7b226f70f63fa4f272a88cb4d857089
-
Soo-Chul Han authored
* add build-time option to add/read 4-byte size of every OBU * update to R19 by adding forbidden bit to obu header * add metadata OBU decoding Change-Id: I525264f53a8666b7bc29493fb29ae661841eba50
-
Sarah Parker authored
This addresses an inconsistency between the set used to decode the tx_type in the bitstream and the set used for the tx_type search. Previously, the set used to read/write the tx_type was based on the smallest tx_size in the vartx partitioning, but the search uses a set based on the largest possible tx_size. This patch changes the tx_type search to use the transform type set associated with the tx_size 1 recursive level down from the max square tx_size to make the search more consistent with the bitstream syntax. If a tx_size is selected for an invalid tx_type, DCT_DCT is used for that partition instead. This patch also adds assertions to all exposed transform functions to ensure that no illegal transform type/size combinations occur. This currently gets a 0.1% drop in performance on lowres. The drop is due to the reduction of the tx_types available for 32x16 and 16x32 transform sizes. Before this patch, 32x16 and 16x32 transforms were getting assigned a set of 12 tx_types, some of which we did not intend to support for these sizes. Change-Id: I44aca4876b261c345623cd04ad6235bca4532701
-
Yue Chen authored
Change-Id: Icbedc16b01adf9b48f0f357ec89143462865d54e
-
Zoe Liu authored
At the frame header level, add the checking on whether an inter-coded frame allows the use of 'skip_mode'. At the block level, add the decoding of 'skip_mode' for all the blocks if 'skip_mode' is allowed for the current frame. If 'skip_mode' is set, no further bit needs to read out, and the block is set as: - Inter-coded in compound mode; - With the nearest forward and backward reference frames; - In NEAREST_NEARESTMV mode; - In SIMPLE_TRANSLATION motion mode; - In COMPOUND_AVERAGE compound type; and - Skip set for residual. Change-Id: I50297f63a81135109332c4a51b516bffd7726777
-
Arild Fuldseth (arilfuld) authored
Change-Id: I5b7bb9983e1c613321704a579d459925bd6b9b2b
-
- 31 Oct, 2017 2 commits
-
-
Sebastien Alaiwan authored
This experiment has been abandonned. Change-Id: Ifde0a76266af9f8c202c01805410b72d64594b0b
-
Sebastien Alaiwan authored
This experiment has been adopted, we can simplify the code by dropping the associated preprocessor conditionals. Change-Id: I2dce80e1e1b2116708b6ba9feeacaacc12af8fc4
-
- 30 Oct, 2017 5 commits
-
-
Jingning Han authored
Reset the frame index tracking to 0 when key frame is inserted in the frame sequence. Change-Id: Ib80313004fc000e7127a9797af5afe9029c0cb45
-
Debargha Mukherjee authored
Change-Id: I39cfbb135add0553cadf64481b13786831fbdddd
-
Sebastien Alaiwan authored
This experiment has been adopted, we can simplify the code by dropping the associated preprocessor conditionals. Change-Id: I9c9d6ef5317798cbf237307a9754fe7e03bdda47
-
Luc Trudeau authored
Sub8x8 Validation code is changed to be more robust. The scope of the validation is narrowed to validating that all of the required content in the storage buffer was stored between CfL predictions. The early termination used in the current mode decision code does not allow to validate more than that. This change does not change encoder output BUG=aomedia:925 Change-Id: I7f1ed84da5037dcfaaf5da9cf33b4b8d664d2352
-
Rupert Swarbrick authored
Backwards adaptation doesn't really make sense in this context, because ext-tile means the decoder might not decode every tile in the frame, in which case it can't work out how to adapt probabilities. It turns out that the tests in the tree were passing when SIMPLE_BWD_ADAPT was disabled because (presumably) all of them happened to decode every tile, so backward adaptation worked as you'd expect. With SIMPLE_BWD_ADAPT, there's some code in get_tile_buffers to figure out which is the largest tile. This wasn't mirrored in get_ls_tile_buffers, which caused the encoder and decoder to get out of sync because they ended up with different CDFs. You also can't easily fix things in get_ls_tile_buffers because that code is careful not to calculate the size of tiles it doesn't need. BUG=aomedia:917 Change-Id: Ia926692f86ca1466252108e09da3de590d45f048
-
- 28 Oct, 2017 1 commit
-
-
Sebastien Alaiwan authored
Change-Id: I69d1c4b63960b46affb3f907fe8a1385f0de8948
-
- 27 Oct, 2017 3 commits
-
-
Cheng Chen authored
Change-Id: I0e6f7ab981e31f7120105515f6204568b6dc82d3
-
Rupert Swarbrick authored
This (correctly) triggered a compiler warning. The patch is very simple, and tries to match the equivalent logic in loopfilter_frame (in encoder.c) Change-Id: I62ca11dffe0f5c21f81c1db2e2dcafdb08cef83c
-
RogerZhou authored
Change-Id: Ibfeb424bf0ebab7bbeb69f6f6df24a4f4924ec97
-
- 26 Oct, 2017 3 commits
-
-
Jingning Han authored
Change-Id: I2ae2a33574bc3072561e696a31e0ea2e0770afa9
-
Angie Chiang authored
Change-Id: Id955e62c89b44781cef6b562fbc1e5782fccf95e
-
Rupert Swarbrick authored
With this patch, restoration units are allocated within each tile as if it were its own image. Arrays of information that need one entry per restoration unit are laid out in tiles, with rsi->units_per_tile units for each tile. Change-Id: I485c17166f33e24d281079b3138b76f98f0fe081
-
- 25 Oct, 2017 2 commits
-
-
David Barker authored
There was a '#endif' line marked with the wrong condition; change it to match the corresponding '#if' line. Change-Id: Ie0dee720ebf037e2ddfd17705d9279a57ac3a9cf
-
Sebastien Alaiwan authored
Change-Id: Id228c94fbe6005ac37a59bb8c23cfb0f95f97af0
-
- 24 Oct, 2017 6 commits
-
-
Yunqing Wang authored
Modified the copying code and the profiling showed better performance than previous implementation. Change-Id: I41f585e0b0eac7a0deb4dec197c178e412a48db9
-
Hui Su authored
Change-Id: I32c5015bedef07f58413c679b4aaf30651a357b9
-
Thomas Davies authored
Inter/intra matrices are the same. Reduce the dimensions of the various matrices. Change-Id: Ie5049af9195d9c48b6928143ac04ac0a5058d0d8
-
Thomas Davies authored
restrict_compressed_hdr experiment is made redundant by new_multisymbol. BUG=aomedia:870 Change-Id: I86100d114ca641a453c32ffd09cabb736809abd1
-
Sebastien Alaiwan authored
This experiment has been adopted. Change-Id: Ife4c18a59791268b7ac0de5a8a08e762a042cae2
-
Rupert Swarbrick authored
This patch also does a certain amount of rejigging for loop restoration coefficients, grouping the information for a given restoration unit into a structure called RestorationUnitInfo. The end result is to completely dispense with the RestorationInternal structure. The copy_tile functions in restoration.c, together with those functions that operate on a single stripe, have been changed so that they take pointers to the top-left corner of the area on which they should work, together with a width and height. The same isn't true of av1_loop_restoration_filter_unit, which still takes pointers to the top-left of the tile. This is because you actually need the absolute position in the tile in order to do striped loop restoration properly. Change-Id: I768c182cd15c9b2d6cfabb5ffca697cd2a3ff9e1
-
- 23 Oct, 2017 1 commit
-
-
Debargha Mukherjee authored
Change-Id: Ib93f090f395e52bd69c59e1229e2e035a8772af5
-
- 21 Oct, 2017 2 commits
-
-
Yushin Cho authored
Change-Id: Id377c68e30031ad4697ca1ba311487b803a8af4c
-
Debargha Mukherjee authored
Removes a bunch of unused code. Change-Id: I86bda117d8d455452ee1ee3a2a566742650e05e0
-
- 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
-