- 04 Oct, 2017 19 commits
-
-
Urvang Joshi authored
Change-Id: Id1d615cc65b19cfa1211af53a3b6d1e2e19bbc6c
-
David Barker authored
Change the function av1_tile_set_tg_boundary to calculate whether the selected tile is on the top boundary of its containing tile group. This appears to be the intended behaviour, based on how the function is used, but it was calculating something different. BUG=aomedia:698 Change-Id: Ib3eb679a20153ead00e0b266b2ebf46044e62f05
-
Rupert Swarbrick authored
In av1_rd_pick_intra_mode_sb, the code calculates the rate for Y and UV planes separately. If the transform coefficient should be zero, rd_pick_intra_sby_mode and rd_pick_intra_sbuv_mode return the cost of actually coding up the zero coefficient, but also set a flag (y_skip or uv_skip) saying that this could be skipped. Since the skip flag isn't per-plane, av1_rd_pick_intra_mode_sb checks to see whether both y_skip and uv_skip were true. In that case, it costs the block for setting the skip flag rather than outputting zero transform coefficients. If a small block (less than 8x8) has no chroma information, x->skip_chroma_rd is true. In that case, we don't call rd_pick_intra_sbuv_mode and so uv_skip is never set. However, when we come to write the block, it will be written using the skip flag. This patch gets the costing right in that case. Change-Id: Ib31b80b4b44a5c8ed9d9b3f86d782c54927345f3
-
Cheng Chen authored
BUG=aomedia:829 Change-Id: I78347e12b4efa05ebd424ba25de7767437495b42
-
Tom Finegan authored
ext_inter is no longer behind a flag and is part of the standard encoder features. Mix the test sources previously guarded by CONFIG_EXT_INTER into the base encoder test sources list. Change-Id: I80312b669b8c8f4a0decc07b64edb6d165905261
-
Jingning Han authored
Experiment probability precision for binary coding in the lv-map coding system. Change-Id: I8d9c49eee6dc7ca7970390fa5febe25b80bfab3c
-
Yi Luo authored
For block width >= 16, avx2 can further speedup the TM_PREM intra prediction. Function speedup on i7-6700: Predictor avx2 v. ssse3 16x8 ~1.6x 16x16 ~1.8x 16x32 ~1.9x 32x16 ~1.9x 32x32 ~1.9x Change-Id: I62c20bd7628f52251b0c051b99a9b738ee44f7e6
-
Rupert Swarbrick authored
This adds a check (and internal error on failure) to make sure that a stream that starts with an intra-only frame cannot refer to a slot that hasn't been written in a subsequent inter frame. BUG=aomedia:849 Change-Id: I39a371bd38f53413187a64de1067f9ab8f00b833
-
Debargha Mukherjee authored
Change-Id: Ibd284df85365a65ab76af71df14efb1d79ca0c30
-
Debargha Mukherjee authored
Change-Id: I1ddec0cf3513e2bd7568393e5ed5d52c25014ab4
-
David Barker authored
When we have an OBMC block at the top of a tile, we don't generate an 'above' prediction, in order to preserve tile independence. However, the conditions for when to *generate* the above prediction and when to *use* it were different when dependent-horztiles is enabled. Since dependent-horztiles allows each tile to depend on the tile above, it seems reasonable to unify the conditions to use xd->above_available (and similar for left preds, for the sake of consistency). This allows OBMC across horizontal tile boundaries, but not across tile group boundaries, in line with the rest of the dependent-horztiles experiment. Change-Id: I86d5de132c4429106a6025e7a7a2baec974e618c
-
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
-
Dominic Symes authored
The aomenc API is modified to allow --tile_width and --tile_height to take a list of sizes. For example, --tile_width=2,3 will give tiles of widths 2,3,2,3,... until the image width is exhausted. --tile_width=2 will still work to gives tiles of width 2. Change-Id: I2afa14d404557aa8b7341b20f7477590e03e0bdb
-
Jonathan Matthews authored
The low bd versions should have the same functionality as the high bd versions. This patch removes the incorrect optimisation, in order to rapidly fix the functionality. BUG=aomedia:859 Change-Id: I4f23115b15ab9e2ea5a54ff0c6a9e1dc1a6d4d13
-
Urvang Joshi authored
Enums starts from 0 and are incremented by 1 by default. No need to do this explicitly. Change-Id: I3aea5a6b9a39e76f7912f865406c44586072caea
-
Sebastien Alaiwan authored
xd->bd is available here and is equal to 8 in the low-bitdepth case. Change-Id: I20760f7ec4279008fdab005345442052b1d10905
-
Zoe Liu authored
No performance change for scenario --disable-ext-comp-refs. For --enable-ext-comp-refs, a pretty tiny bitrate saving was resulted (-0.01~-0.02%). Change-Id: I7d12b28408bbfecc762108cbcf186b2a6ea07253
-
Tom Finegan authored
Move it to build/cmake/aom_experiment_deps.cmake within the macro fix_experiment_deps() to reduce noise in aom_configure.cmake. Note: This patch also resolves a conflict between the CMake and configure build configs: rect_tx and var_tx conflicts with daala_dctX have been resolved. The two experiments are no longer disabled when daala_dctX is enabled. BUG=aomedia:856 Change-Id: I6f9d127470adc708f547fff3cf5009997bac4c36
-
Cheng Chen authored
When experiment LOOPFILTER_LEVEL is on, there're four base filter levels for each frame. This patch enables one to use one delta or four deltas to update corresponding filter levels for each superblock in EXT_DELTA_Q. 1 bit per frame is sent through bitstream to select one or four deltas. Now, we hard code to use one delta. Change-Id: I9c61a035064fa81878b0575ad21664e2b22a6a45
-
- 03 Oct, 2017 17 commits
-
-
Sebastien Alaiwan authored
Disabled by mistake when removing the ext_inter experiment flag. Change-Id: I0ff5681f6b77571871f611144975437534f50698
-
Hui Su authored
The _ind and _inv mapping tables are not necessary. The CDF tables are updated with new values converted from the old tables. Performance impact is small and neutral. Change-Id: I65845ab3c80f88794abd9ab9e61494af56099c7c
-
David Barker authored
Patch https://aomedia-review.googlesource.com/c/21783 changed things so that error-resilient frames use the default global motion parameters as a reference, rather than taking the reference from the previous frame. This was implemented by clearing out cm->prev_frame->global_motion when we have an error-resilient frame. Unfortunately, this causes an issue: if we have an error resilient frame which isn't stored into any reference slots, followed by a non-error-resilient frame, then both frames refer to the same prev_frame. The second frame then delta-codes against cm->prev_frame->global_motion, but this was reset to the default values by the intervening error-resilient frame! In order to allow the above case to work as intended, expand the default warp parameter set to a full WarpedMotionParams struct, and use that as the reference for error-resilient frames. This also allows us to remove set_default_warp_params, as we can now just copy directly from default_warp_params. Change-Id: I9645615db2700c1d3810e6e42f4f1da626fcd5e3
-
Urvang Joshi authored
The probabilities and CDFs were tuned using aom_entropy_optimizer tool. midres: -0.062 overall PSNR, -0.100 on SSIM (but significant gain on Keiba_832x480_30.y4m clip: -1.331 on overall PSNR and -1.903 on SSIM) lowres: +0.013 on overall PSNR, -0.062 on SSIM Change-Id: Ie143a3914ef45939c8744ff6b2ed9f1d0a59353e
-
Thomas Davies authored
Change-Id: I22aed63c6659a7301bccaa994b7374af548db5d1
-
Debargha Mukherjee authored
Change-Id: Ic843e99bd9b79cb9a0a26b95e3a48717ff2ec2a5
-
David Barker authored
These two flags serve essentially the same purpose, so we can simplify down to just having one flag. Since the frame_id_numbers_present_flag is older and listed in the reference-buffer design doc, this is the one we'll keep. Note that, previously, frame_id_numbers_present_flag was only sent when CONFIG_OBU was enabled - otherwise it was always set to 1. On the other hand, use_reference_buffer was always signalled so that allowed us to disable frame ids even without CONFIG_OBU. In order to keep the ability to disable frame IDs without CONFIG_OBU, we send a "real" sequence header (ie, with the same data as in CONFIG_OBU) in-line within the uncompressed header. This is sent every keyframe and every intra-only frame, just as the use_reference_buffer flag was before this patch. BUG=aomedia:853 Change-Id: I4bb6c7a222aeddfb6d3737a39d10782d32ee2eee
-
Yushin Cho authored
For select_tx_block() in rdopt.c. Change-Id: Iaac658ab7e7c0b53597f4f781a4fd0f340e9308d
-
Ryan authored
enable single pass CDEF by default since it has been adopted. Change-Id: I5d19dc49126f6b9bbe490466c853405e100773ad
-
Thomas Davies authored
No need to read any of the compressed header. BUG=aomedia:846 Change-Id: I1e7c2fc3d22621075cf9420b799ddc8c778c1564
-
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
-
Tom Finegan authored
Resolves mismatch between CMake and configure build configs. BUG=aomedia:856 Change-Id: I0ffbbec04a2a1b39d70f16e9509bd0cf7618ee88
-
Tom Finegan authored
Resolves mismatch between CMake and configure build configs. BUG=aomedia:856 Change-Id: Iab9b9b503d45c06a9610cf415b2f2b3c5f14148c
-
Tom Finegan authored
CMake build updates: - The conflict with warped_motion has been resolved. - This also resolves a configure build mismatch with ncobmc_adapt_weight: warped_motion forcing it to off caused the mismatch. BUG=aomedia:856 Change-Id: Ida2f68676c8a25a63c631dbfe101041409dcafe6
-
Tom Finegan authored
BUG=aomedia:856 Change-Id: I62791bfa1c1b1dba63999ee496d4358fbd247584
-
Tom Finegan authored
BUG=aomedia:856 Change-Id: I053d50850fa892f40876b4862ddd530358ff590d
-
Angie Chiang authored
Since alloc_compressor_data() may be called multiple times before dealloc_compressor_data() is called The av1_alloc_txb_buf() called by alloc_compressor_data() should free the txb_buf before allocating new txb_buf Change-Id: I0fe15de771e0669ec3521e5aac322f5cedfd67a9
-
- 02 Oct, 2017 4 commits
-
-
Johann authored
Allow disabling all adopted experiments with a single flag. Simplifies running comparisons with one enabled at a time. Change-Id: I1b6d6a07307cff4cf0098e3edca95b885209cd42
-
Yaowu Xu authored
Change-Id: Id013e141f78d32d7c5132af07d5e9154c23b0472
-
Thomas Davies authored
Reduce the number of contexts from 10 to 6. BUG=aomedia:830 Change-Id: If0ec302816975293b7dbd164c867feb66fa76847
-
Rupert Swarbrick authored
This specialisation can't work: it gets the configuration to use from av1_get_fwd_txfm_64x64_cfg, which specifies a TXFM_TYPE equal to TXFM_TYPE_DCT64 (reasonable enough), but the code in av1_fwd_txfm2d_sse4.c only supports TXFM_TYPE_DCT32 and TXFM_TYPE_ADST32. BUG=aomedia:852 Change-Id: I37ffa0c8ae520c780105b30df9f627c2290de425
-