- 20 Mar, 2017 3 commits
-
-
Debargha Mukherjee authored
Adds a dependent config flag 'interintra' to turn on/off interintra modes altogether. Adds a dependent config flag 'wedge' to turn on/off wedge compound for both interinter and interintra. Adds another macro to change wedge predictors to use only 0, 1/2, or 1 weights. From now, use --enable-ext-inter --enable-wedge --enable-interintra to get the same behavior as the old --enable-ext-inter. Change-Id: I2e787e6994163b6b859a9d6431b87c4217834ddc
-
hui su authored
Change-Id: Id7cbb89ba344770297ef42bf1b09a2b9ba5a1378
-
Alex Converse authored
Change-Id: I3d411ef4a6a1be5e7e644f210a5296dbe18807eb
-
- 17 Mar, 2017 1 commit
-
-
Sarah Parker authored
Enabling SEPARATE_GLOBAL_MOTION will remove the ability for a block that uses zeromv with global motion to pick warped_causal or obmc_causal as the motion mode. When this is enabled there is: 0.05% drop on lowres for global + warped enabled 0.15% drop on midres for global + warped enabled 0.12% drop on lowres with global + motion var enabled 0.07% drop on midres with global + motion var enabled No performance change for global, warped, or motion var individually. Change-Id: Idbfb8dd7a93da14902438504b06a08e5212e48cb
-
- 16 Mar, 2017 1 commit
-
-
Alex Converse authored
Fixes some rd-debug mismatches coding cat6 tokens with tx size < 32x32. For these tokens the high extrabits are elided during tokenization and detokenization, but the rd cost was computed with the old tables from VP9 where these high extrabits are always coded. Change-Id: I4a9a6ea822ff821e1932c351d43a57bdb4d6d466
-
- 15 Mar, 2017 1 commit
-
-
Thomas Davies authored
Modify av1_coef_cost to reflect that EOB values are sent with each non-zero coefficient, and modify chroma weight to preserve original chroma balance. AWCY, objective-1-fast, new_token+ec_adapt vs ec_multisymbol: PSNR YCbCr: -0.43% -0.52% -0.58% PSNRHVS: -0.81% SSIM: -0.73% MSSSIM: -0.93% CIEDE2000: -0.36% This change: PSNR YCbCr: -0.15% 0.83% 0.77% PSNRHVS: -0.24% SSIM: -0.23% MSSSIM: -0.24% CIEDE2000: 0.24% Change-Id: I7f2dd9f3cd24bb64eb4131cba94dda466b9691b0
-
- 14 Mar, 2017 1 commit
-
-
Sarah Parker authored
One codepath originally skipped a function which forks between gm prediction and regular inter prediction. This change fixes this for both high bit depth and regular bit depth. Change-Id: I741d67a7c89eb6eb0cd35c02219739dc3ddb3841
-
- 11 Mar, 2017 1 commit
-
-
Fergus Simpson authored
The addition of a 2D array to the HandleInterModeArgs struct means there is now a non-optional member in the opt_args struct passed to handle_inter_mode and its child functions. Since opt_args no longer consists solely of optional members I've renamed it args. Change-Id: I7f3b22188777d8fdac2c244746638c34b5d8636c
-
- 10 Mar, 2017 2 commits
-
-
Fergus Simpson authored
Two 2D arrays were passed to HandleInterMode and not used elsewhere. One has been added to the HandleInterModeArgs struct to simplify handle_inter_mode's signature and the the calling function. The other has been unread since commit beacb3ff. That patch removed the "skip_txfm optimization" but left the single_skippable array in place, even though it was no longer read. Since the array's only usage has been removed, this patch removes the variable outright. Change-Id: I6e680a9ddc6f67961153819a62009751252757a8
-
Sebastien Alaiwan authored
Change-Id: I4d6db116692b9a236ae8555e4d4e5d0c403f6c13
-
- 09 Mar, 2017 1 commit
-
-
Fergus Simpson authored
The interpolation filter search used to be performed in a code block in handle_inter_mode(). This change breaks that code out into its own function to reduce the length of handle_inter_mode and ecapsulate its functionality, making both functions more readable. Attention has been paid to make as many arguments constants as can be. Change-Id: I3fd484137fc0d16a47dba0b18ce0e2b349d24446
-
- 08 Mar, 2017 4 commits
-
-
Fergus Simpson authored
The variable "use_hbd" was defined but not used in four places in the codebase. The warning that it wasn't used was missed by Jenkins because it only tries one experimental flag at a time, but these definitions were inside nested experimental flag conditions. Both CONFIG_WARPED_MOTION and CONFIG_AOM_HIGHBITDEPTH had to be set for the variables to be defined. This patch deletes the unused definitions to remove the unused variable warnings when the AV1 encoder and/or decoder are built with warped motion and high bitdepth configured. Change-Id: I9e80523db05a7a19cebe3ec8085a4a1e4b198c52
-
Yaowu Xu authored
This commit changes is_inside() function to reduce the code polution of CONFIG_DEPENDENT_HORZTILES. Change-Id: Ic065cc337e0246379d87966a49ddeb48b975c5be
-
Fergus Simpson authored
The comment after the affected #endif was incorrect. This patch updates it so that it reflects the condition that it ends. Change-Id: Ib5c39a9444e72b2582301d9e4b03d3c56f9cf304
-
Fergus Simpson authored
Refactors newmv handling code in handle_inter_mode into its own function. This makes handle_inter_mode shorter and easier to understand. Change-Id: I152a61ee8a7f323936b4a772f14f8e286724443d
-
- 07 Mar, 2017 1 commit
-
-
Fergus Simpson authored
In two cases the bit cost of a movement vector was calculated twice and summed when there were mutliple refs. The first result was assigned and the second was added. Now they are both added in a loop to reduce duplication. Change-Id: Iadcaec1dc4c2583fbb5cfd07bea6480756692a01
-
- 04 Mar, 2017 1 commit
-
-
Debargha Mukherjee authored
Also handle block centers for sub8x8 blocks correctly. BDRATE: lowres: -1.308% Change-Id: I6bdb25bdaceb5086a8b951617fd62ed41cd89023
-
- 03 Mar, 2017 2 commits
-
-
Yue Chen authored
Enable obmc mode only when there are <= 2 left neighbors and <=2 above neighbors. Also disable it when there is no overlappable neighbors. Gain in AWCY test: 1.60%, was 1.64% when there is no restriction Change-Id: I2d82ef4fb4daa9b0843ac8844f99b9f412c4f379
-
Fergus Simpson authored
Fixes missing and wrong comments for all of the #endif's in rdopt.c to improve readability. Change-Id: Idd557a9e6244bbc335c2a646d150ed59074ee7a1
-
- 02 Mar, 2017 1 commit
-
-
Sarah Parker authored
Lowres: 0.03% improvement, 1% improvement on waterfall_cif.y4m Midres: 0.085% overall improvement, 1.253% improvement on station2_480p25.y4m Change-Id: I3872934d978bb4ca828c6b9acd2fdb951d9da299
-
- 01 Mar, 2017 2 commits
-
-
Jingning Han authored
Change-Id: Ie836a113978028f3bde2acd31061d9a663547087
-
Fergus Simpson authored
Adds the arguments struct HandleInterModeArgs to hold arguments that are conditional on compiled features. This means that there are no longer #if's in the function's argument list. Some of the array pointers that were optional arguments have been made array members in the new struct, but not all. This is due to the function being called with either references to arrays that are maintained between trying different modes OR with references to "dummy" arrays initialized to zero. The arrays that are always used are now members of the HandleInterModeArgs struct. Change-Id: I3076fd53c3cddf5a6d14bbe7d23a889465ed716d
-
- 28 Feb, 2017 3 commits
-
-
Debargha Mukherjee authored
Offsets for the least-squares for affine motion computation are now set at the top left corner of the current block. Improves stability and performance a little. Change-Id: I68ca7e74c6102502daa8ca3373af2b2dd59400c3
-
Jingning Han authored
Disable the support of compound prediction modes for sub8x8 codking blocks. Make the rate-distortion optimizations process account for such constraints. With the use 2x2 chroma prediction block, this makes the wrost case number of inter predictors same as vp9. It affects the coding gains by 0.35% for lowres, 0.17% for midres, and 0.08% for hdres. The encoding speed is up by 10%. Change-Id: Ieb2a83030676911baa403e586f1f800cbf485d81
-
Yaowu Xu authored
Segmment based lossless flag is used in select transform size, this commit fixes a bug where wrong segment_id is used in such selection. BUG=aomedia:350 Change-Id: Ibc981c779739849bac00447155180abbd319eb28
-
- 27 Feb, 2017 4 commits
-
-
Debargha Mukherjee authored
Also supports homography models for future experiments. Change-Id: I4510540f54133e063891ed491c95c087222f7810
-
Debargha Mukherjee authored
USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 macro added to turn tx_type search on/off for sub8x8 in cb4x4 mode. The purpose is mainly to analyze the coding gains from cb4x4 but this later can be made into a speed feature as well. Change-Id: Ic22026c373eebba87f324689ac5686a2844315b6
-
Debargha Mukherjee authored
Integerizes computation of the least squares for warped motion. The model is restricted to only Affine. Affine seems easiest to compute and integerize since it can be split into two 3-dim least squares problems, as opposed to rotation-zoom which needs a 4-dim least-squares problem to be solved. The current implementation requires only one division per block. BDRATE impact is mminimal. The upgrade to the affine model improves coding efficiency but integerization also degrades efficiency a little. Overall there is a net gain of about -0.07% BDRATE on the lowres set. BDRATE lowres: -1.113% with ----enable-warped-motion vs. without (up from -1.044%). Change-Id: I6b9216ac0737d76f59054293eabee48e17739ec4
-
Angie Chiang authored
Change-Id: Ifcdd3ce2953c1ecb1d0962da412a4b5ba2cda912
-
- 24 Feb, 2017 1 commit
-
-
Luc Trudeau authored
Adds the static inline function get_plane_type to convert a plane number to the corresponding PLANE_TYPE. There's no change to the bitstream, it only encapsulates the logic to get the PLANE_TYPE. Change-Id: I1199db3a32c89437d9c029ab5b2b2e62582a13a2
-
- 23 Feb, 2017 5 commits
-
-
Jingning Han authored
Change-Id: Icd4cd42b1b9fa9066cda3e33e487298c8d802546
-
Jingning Han authored
Skip redundant computation of recon_variance value. Change-Id: I0ea1a3528f8bdc7095d9cc458ce0bd3a958989b4
-
Jingning Han authored
Support the use of 2x2 prediction and transform block size for chroma components. This experiment builds on top of cb4x4. It brings back the loss in performance gains due to 4x4 chroma component constrain. The coding gains for lowres are up from 1.5% to 2.5%. Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
-
David Barker authored
Since gm_get_motion_vector is trying to give a motion vector for "the frame as a whole", it makes more sense for it to calculate the motion of the *center* of the block rather than the top-left corner of the frame. In theory, this change should also help the encoder make better decisions on when to use global motion. It avoids an issue where, early in the frame, NEARESTMV looks like a good way to use the global motion vector *without* paying the rate cost applied to the first few global motion blocks in each frame. This seems to lead to a better overall result. Change-Id: Ia5c6259ceb8b4ff3d00a5d553e1d18bdb802da59
-
Angie Chiang authored
If there no sub-pixel in both direction of MV, the interp_filter is set to EIGHTTAP_REGULAR Change-Id: I208c34906544f1937c57d78017999be6eddd9e87
-
- 22 Feb, 2017 5 commits
-
-
Alex Converse authored
Change-Id: If5d4f6d261276d9cfdd59fd7779467d92f56c395
-
Angie Chiang authored
Change-Id: I1d599b70fb338de4b0d2076fdc7060361a46c21f
-
Jingning Han authored
Skip coding the intra mode for chroma component for sub8x8 blocks that are not in the reference position. Change-Id: Ic3daab2668ab41c3b743664faf195e34124ead33
-
Jingning Han authored
Make the rate-distortion optimization account for the special order for sub8x8 block chroma component coding. Change-Id: I050abc50dda7b9e8e32f7d0959aa954df1d69398
-
Jingning Han authored
Skip the 2x2 uv block rate-distortion optimization process in the non-reference positions in key frame encoding. Change-Id: I51112492fd79f9a1c205fba151f8658cea9ee85f
-