- 03 Nov, 2017 12 commits
-
-
Sebastien Alaiwan authored
Change-Id: I75890c0f64f93f48299895d1e0bcfbf91846a4ab
-
Debargha Mukherjee authored
The first level is turned on for speed 1. Change-Id: I3dba0f0250b97a25e174cacc2a46ca7f76572c85
-
Debargha Mukherjee authored
Removes features for now so that we only add features with very small loss. Change-Id: Ie50f6af2a6cc19dde5f682754a1f0adf4ec957a8
-
Alexander Bokov authored
Change-Id: I4270d1260854ac27b68c5694ca8102b92bee6faa
-
Alexander Bokov authored
Use a neural-network-based binary classifier to predict the first split decision on the highest level of the TX size RD search tree. Depending on how confident we are in the prediction we either keep full unmodified TX size search or use the largest possible TX size and stop any further search. Average speed-up: 3-4% Quality loss (lowres): 0.062% Quality loss (midres): 0.018% Change-Id: I64c0317db74cbeddfbdf772147c43e99e275891f
-
Hui Su authored
The "use_intrabc" flag is signaled with CDF. No need to keep a counter for it. Change-Id: Ia62ef8f264aa5ce2f6fceddc0b2a7d2032c73044
-
Hui Su authored
Disable it for sub8x8 4:1 partitions (4x16 and 16x4), because of conflict with cfl. Enable it for all the other sub8x8 partitions sizes. BUG=aomedia:998 Change-Id: Ifdd907f0ac1f987981e81c166eb71978e6ea27c3
-
Sebastien Alaiwan authored
This experiment has been abandonned. Change-Id: Ieabc6f365651e2d116a4505a3cc202add94d1386
-
Soo-Chul Han authored
Change-Id: Ifcc92df2e8c69752c1dbff2b447eb22035814389
-
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
-
Yue Chen authored
We reverted to using 3-tap filters. So 4-tap filters related code will not be used any more. Change-Id: I7f65cf227d2eb3e9785474e3b33d0bdbf489b1f1
-
Luc Trudeau authored
This change does not alter the encoder/decoder behavior. Extra precautions are taken to stop an attacker from exploiting these function pointers. Change-Id: I4e0704f016774f2d8fbaeb2a4caec12fc6e67ec1
-
- 02 Nov, 2017 21 commits
-
-
Dake He authored
Removed assertions were not properly set up and may cause decoding failure when USE_CASUAL_CTX is enabled. This CL does not change bitstream. Change-Id: Ib9193cbda32f342335a79aca39e9cc49204a0ec9
-
Rupert Swarbrick authored
Before this patch, striped loop restoration didn't restart correctly on each tile row. Now, the loop restoration stripes start at the top of a tile row in the same way as if it were the top of the entire frame. Change-Id: I0a88a28d7804b2f09d792ecbbf4f22f666f67012
-
David Barker authored
Because we have an (effective) 3-pixel border around each processing unit, and the local sums in the self-guided filter are only taken over at most 5x5 regions, we have 1 pixel's worth of spare border. We can use this border to greatly simplify the filter: Instead of calculating a 64x64 region of the A[] and B[] arrays, we can calculate a 66x66 region. Then we don't have to deal with complicated boundary conditions when generating the final 64x64 output block. This also makes a few other related changes: * The 'boxnum' function has been effectively redundant for a while - due to the way we do the 5x5 (or 3x3) windowing, the values we actually use are always (2r+1)^2. So we can skip calling this function if MAX_RADIUS <= 2 * We can remove the annoying special case for tiny processing units in the self-guided filter, as we no longer have to worry about border behaviour * We change the SSE4.1 code to match the new C code, removing a ton of complexity. Further refactoring/speedups are probably now possible, but this includes the minimal changes to pass all the tests. Change-Id: I99beee164a31349a5228a9bef048e5f35c9639f2
-
Yaowu Xu authored
Change-Id: I299e2f2a1967f867a5452e0c449abe5243ac5d13
-
Luc Trudeau authored
BUG=aomedia:994 Change-Id: I0fa9d48487256655798dbdd64acad523e84557c6
-
Nathan E. Egge authored
Change-Id: Ia5df312c759faa38fe336ab32a7d4908760ecf08
-
Yaowu Xu authored
BUG=aomedia:995 Change-Id: Ic320e5de9b0c7d320b0f6dddce93f1445be61234
-
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
-
Pavel Frolov authored
BUG=aomedia:992 Change-Id: Ifcaedaf312f056fcc29e6a8e020aac0ddc52affd
-
Debargha Mukherjee authored
Change-Id: I6cf4e3bdc5eda5f7baabc7c6ad99ba49f69a8fa4
-
Debargha Mukherjee authored
Change-Id: I3873acafcd9539da96f67328cdb8faf7798be90f
-
David Barker authored
Pull the per-unit processing out into a couple of new functions, to make the overall logic of search_selfguided_restoration() a bit more obvious Change-Id: Ib4ed9be7d4c76e22dc56f933f3f9d09160242f71
-
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
-
Rupert Swarbrick authored
After this patch, we don't scale sb coordinates vertically when using HORZ_FRAME_SUPERRES. Change-Id: I24c652b4b357b132e8b29979a119e7aeb8420e19
-
Pavel Frolov authored
Before an increased border of 288 pixels was used when both CONFIG_EXT_PARTITION and CONFIG_FRAME_SUPERRES were enabled. However increased border is also required when only CONFIG_EXT_PARTITION is enabled. For example when: 1) current frame is 2x smaller than reference frames 2) block size is 128x128 BUG=aomedia:991 Change-Id: I09dfddfdf6bd0b0efde2556acb924bb563b6da2f
-
Debargha Mukherjee authored
This is to ease integration with striped loop restoration Change-Id: If10e16656a3fe42bcca3e7238e4e729c962f2bb8
-
Nathan E. Egge authored
BUG=aomedia:993 Change-Id: I555f430541413a42e9e14310bfde93304dc15cfa
-
Dake He authored
This CL simplifies context derivation for nz and base level flags in level map. 1. Reduce SIG_COEF_CONTEXTS from 58 to 42. 2. NZ and base level flags share the same context offsets derived from a template of size 5 (down from 7). In limited runs, compression performance seems neutral if not better. Encoding time for a key frame on a local linux machine is reduced by about 25% or more. Change-Id: Ibd93b21c839154bc5ae26b993f9e66537cbf5942
-
- 01 Nov, 2017 7 commits
-
-
Luc Trudeau authored
Change-Id: Ic5cf4c8393a00810700e42a162fbb36a62d9b56f
-
Sarah Parker authored
This name better reflects the functionality of the mode. Change-Id: Idc2372e7c7b226f70f63fa4f272a88cb4d857089
-
Yaowu Xu authored
With --enable-ext-partition, it is possible to have superblock size at both 64x64 and 128x128. But MAX_SB_SIZE_LOG2 is defined to be 7, i.e. 128x128 size. In get_token_alloc(), the token count for a tile or a frame is always computed based on "tokens/superblock * number of superblocks", so it should use the actual superblock size, instead of 128x128. The segfault in #988 is a result when every tile is defined at one single superblock of 64x64, the token size computation for each tile was assuming it is 128x128, resulting 4x overestimate of the token count for every tile. This caused the pointer for many tiles to go beyond the allocated token arrary, which is correctly allocated at frame level. BUG=aomedia:988 Change-Id: I2da21f181446ad7117ce3269f01a43950c379028
-
Debargha Mukherjee authored
The speed feature simply restricts the number of depths searched. Currently it is turned on by default for speeds>=1. The coding efficiency impact (tested on lowres 30 frames) seems to be ~0.15% and the speedup is in the order of 15%. Change-Id: I514832bd7df937292875f73d9c9026e49ac576f2
-
Linfeng Zhang authored
Change-Id: I12471d18544a9634c28ed139b7211c9af0762927
-
Zoe Liu authored
USE_UNI_COMP_REFS is always true when ext-comp-refs is enabled and is always false otherwise. Change-Id: Ic6061a4ab88a2ebfeb11f178872ab13909060c0b
-
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
-