- 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 6 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
-
Sarah Parker authored
Here we create a default set for the ext-tx experiment which includes: Intra: {DCT, ADST} X {DCT, ADST} + IDTX (identity in both directions) Inter: DCT_DCT + IDTX This set is used if indicated in the uncompressed header. Change-Id: Ic907ada12b4e0c98cabb7c9650ab99942d0c0859
-
- 18 Feb, 2017 1 commit
-
-
Jingning Han authored
Use the top-left 4x4 luma block's coding information for chroma component encoding at size 4x4. Change-Id: I4bcfbc2bf8b71f7fc30094553503468460a56f9b
-
- 17 Feb, 2017 2 commits
-
-
Debargha Mukherjee authored
Adds functinoality for least-squares, RANSAC as well as encoding and decoding with new constrained homographies that warp blocks to horizontal and/or vertical trapezoids. This is for future experimentation. None of the models are actually enabled in the code. Change-Id: I1936018c6b11587d6fd83c3a2c63548cb641b33f
-
Yushin Cho authored
Which was a workaround to balance the quality between luma and chroma when PVQ is enabled, by 1) skipping PVQ DC RDO for chroma and 2) using smaller lambda value (x0.5) for intra prediction of chroma, intended to spend more bits and thus improve quality for chroma. The change in metric for 5 frames of objective-1-fast is: PSNR PSNR-HVS SSIM CIEDE-2000 PSNR Cb PSNR Cr MS-SSIM -1.45 -1.54 -1.46 4.62 13.71 14.87 -1.47 For still images (subset1) PSNR PSNR-HVS SSIM CIEDE-2000 PSNR Cb PSNR Cr MS-SSIM VMAF -1.52 -1.54 -1.60 2.56 11.92 12.17 -1.52 -1.66 Change-Id: I31c4d7a7de2939f6004c112649f7303f0e944156
-
- 16 Feb, 2017 1 commit
-
-
Thomas Davies authored
Since token coding has changed the relationship between EOB values and non-zero values, coeff costs and trellis quant need to change to be more accurate. Change-Id: I27ef400e8290db4c5faa9c21a253575eea7955c4
-