summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2015-04-28vpx_mem: remove vpx_memsetJames Zern
vestigial. replace instances with memset() which they already were being defined to. Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
2015-04-28vpx_mem: remove vpx_memcpyJames Zern
vestigial. replace instances with memcpy() which they already were being defined to. Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
2015-04-28vpx_mem: remove vpx_memmoveJames Zern
vestigial. replace instances with memmove() which they already were being defined to. Change-Id: If396d3f9e3cf79c0ee5d7429615ef3d6b2a34afa
2015-04-24Add validation of UV partition sizeYaowu Xu
For color sampling format other than 420, valid partion size in Y may not work for UV plane. This commit adds validation of UV partition size before select the partition choice. This fixes a crash for real time encoding of 422 input. Change-Id: I1fe3282accfd58625e8b5e6a4c8d2c84199751b6
2015-04-22Adds worst frame metrics for a bunch of metrics.Jim Bankoski
Change-Id: Ieaccc36ed1bee024bb644a9cfaafdaaa65d31772
2015-04-22Merge "Modified test for auto key frame detection."paulwilkins
2015-04-22Merge "Limit arf interval for low fpf clips."paulwilkins
2015-04-21Merge "Adds a new temporal consistency metric to libvpx."Jim Bankoski
2015-04-21Revert "Remove mi_grid_* structures."Scott LaVarnway
(see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6) For the test clip used, the decoder performance improved by ~2%. This is also an intermediate step towards adding back the mode_info streams. Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
2015-04-21Adds a new temporal consistency metric to libvpx.Jim Bankoski
Change-Id: Id61699ebf57ae4f8af96a468740c852b2f45f8e1
2015-04-21Modified test for auto key frame detection.paulwilkins
The existing test was triggering a lot of false positives on some types of animated material with very plain backgrounds. These were triggering code designed to catch key frames in letter box format clips. This patch tightens up the criteria and imposes a minimum requirement on the % blocks coded intra in the first pass and the ratio between the % coded intra and the modified inter % after discounting neutral (flat) blocks that are coded equally well either way. On a particular problem animation clip this change eliminated a large number of false positives including some cases where the old code selected kf several times in a row. Marginal false negatives are less damaging typically to compression and in the problem clip there are now a couple of cases where "visual" scene cuts are ignored because of well correlated content across the scene cut. Replaced some magic numbers related to this with #defines and added explanatory comments. Change-Id: Ia3d304ac60eb7e4323e3817eaf83b4752cd63ecf
2015-04-20Resolve configuration conflictYaowu Xu
Between --enable-internal-stats and --enable-vp9-highbitdepth Change-Id: I36b741554e835033e69883270b6b0e5374a1aafa
2015-04-20Move declaration before statementYaowu Xu
Change-Id: Ib64786fcc0d6dc11c4e66f5b7f3e93b2a4fcb664
2015-04-17Merge "Adds a blockiness metric to internal stats."Jim Bankoski
2015-04-17Merge "adds psnrhvs to internal stats."Jim Bankoski
2015-04-17Merge "Adds a fastssim metric to VPX internal stats."Jim Bankoski
2015-04-17Adds a blockiness metric to internal stats.Jim Bankoski
Change-Id: Iedceeb020492050063acf3fd2326f96c29db9ae5
2015-04-17adds psnrhvs to internal stats.Jim Bankoski
PSNR HVS is a human visual system weighted version of SNR that's gained some popularity from academia and apparently better matches MOS testing. This code is borrowed from the Daala Project but uses our FDCT code. Change-Id: Idd10fbc93129f7f4734946f6009f87d0f44cd2d7
2015-04-17Adds a fastssim metric to VPX internal stats.Jim Bankoski
This code appeared in the Daala project first and was originally committed by Nathan Egge. Change-Id: Iadce416a091929c51b46637ebdec984cddcaf18c
2015-04-17Merge "Remove unnecessary backup token stream pointer"Jingning Han
2015-04-16Revert "Revert "Force_split on 16x16 blocks in variance partition.""Marco Paniconi
This reverts commit 004b9d83e37d355f590a6976a27b7b845d19a869 Change-Id: I2f2d0bdb9368c2c07f1d29a69cd461267a3a8743
2015-04-16Remove unnecessary backup token stream pointerJingning Han
When the tokenization is not taking effect, the tokenization pointer remains unchanged. No need to re-assign the backup pointer value. Change-Id: I58fe1f6285aa3b4a88ceb864c11d5de8ac6235dd
2015-04-16Merge "[svc] Fix syntax error when encoding multiple tiles."Minghai Shang
2015-04-16[svc] Fix syntax error when encoding multiple tiles.Minghai Shang
Change-Id: Ia77b551415f3b3386e22a6c805f244f2d13fe3e3
2015-04-16Limit arf interval for low fpf clips.paulwilkins
This patch limits the maximum arf interval length to approximately half a second. In some low fps animations in particular the existing code was selecting an overly long interval which was hurting visual quality. For a sample problem test clip (360P animation , 15fps, ~200Kbit/s) this change also improved metrics by >0.5 db. There may be some clips where this hurts metrics a little, but the worst case impact visually is likely to be less than having an interval that is much too long. On more normal material at 24 fps or higher, the impact is likely to be nil/minimal. Change-Id: Id8b57413931a670c861213ea91d7cc596375a297
2015-04-15Merge "Fix Tsan errors"Yunqing Wang
2015-04-15Fix Tsan errorsYunqing Wang
This patch fixed 2 reported Tsan errors while running VP9 real-time encoder. Change-Id: Ib0278fe802852862c3ce87c4a500e544d7089f67
2015-04-15Reorganize *_rtcd() calling conventionsJohann
Change-Id: Ib1e17d8aae9b713b87f560ab5e49952ee2bfdcc2
2015-04-14Revert "Force_split on 16x16 blocks in variance partition."Yunqing Wang
This reverts commit eb8c667570aa83134c7db0690de9dbdde4d90291. The patch caused mismatch while using multi-threads. Change-Id: Icd646340af25b5d91e32f03ed3ea212e00e3e0be
2015-04-13Force_split on 16x16 blocks in variance partition.Marco
Force split on 16x16 block (to 8x8) based on the minmax over the 8x8 sub-blocks. Also increase variance threshold for 32x32, and add exit condiiton in choose_partition (with very safe threshold) based on sad used to select reference frame. Some visual improvement near moving boundaries. Average gain in psnr/ssim: ~0.6%, some clips go up ~1 or 2%. Encoding time increase (due to more 8x8 blocks) from ~1-4%, depending on clip. Change-Id: I4759bb181251ac41517cd45e326ce2997dadb577
2015-04-09Merge "Remove get_nonrd_var_based_fixed_partition function"Jingning Han
2015-04-09Merge "Compute prediction filter type cost only when needed"Jingning Han
2015-04-09Merge "SSSE3 assembly implementation of 8x8 Hadamard transform"Jingning Han
2015-04-09Remove get_nonrd_var_based_fixed_partition functionJingning Han
This function has been replaced by other approaches and is not in use now. Change-Id: I387f45b5607d202539e482468ccc70e6c0f9341f
2015-04-08Merge "Improve accuracy of rate control in CQ mode"Debargha Mukherjee
2015-04-07Merge "vp9_full_search_sadx[38]: align sad arrays"James Zern
2015-04-07Merge "Optimize the checking for transform skipping"Yaowu Xu
2015-04-07Merge "move ref_frame_cost computations into a function"Yaowu Xu
2015-04-07Improve accuracy of rate control in CQ modeDebargha Mukherjee
Modifies a special handling that improves rate control accuracy in the constrained quality mode, when the undershoot and overshoot limits are set tighter. Change-Id: If62103f0ef3ed1cac92807400678c93da50cf046
2015-04-07vp9_full_search_sadx[38]: align sad arraysJames Zern
the sse4 code expects 16-byte aligned arrays; vp8 already had a similar change applied: b2aa401 Align SAD output array to be 16-byte aligned Change-Id: I5e902035e5a87e23309e151113f3c0d4a8372226
2015-04-07Merge "Enable Hadamard transform based cost estimate for all block sizes"Jingning Han
2015-04-07Merge "Account for eob cost in the RTC mode decision process"Jingning Han
2015-04-07Compute prediction filter type cost only when neededJingning Han
Skip redundant prediction filter type cost in filter search loop, if the rate value will be reset in Hadamard transform based rate distortion estimate. Change-Id: Ie5221f4bc8da9461c449df367251aeeac52c6e5d
2015-04-06Optimize the checking for transform skippingYaowu Xu
If U is not skippable, then do not perform the check on V. Change-Id: Iba5e8362bd42390197f373c44388a426a4404549
2015-04-04SSSE3 assembly implementation of 8x8 Hadamard transformJingning Han
It uses about 10% less CPU cycles than the SSE2 intrinsic implementation. Change-Id: I91017c0c068679a214b98cdd4cff3a6facfb7499
2015-04-04Enable Hadamard transform based cost estimate for all block sizesJingning Han
This commit turns on the Hadamard transform based rate distortion estimate for all block sizes in RTC coding mode. It conditionally skips the rate distortion estimation if all zero block flag is set on. No significant encoding speed change is observed. The compression performance of speed -6 is improved by 1.7% over using it only for block sizes of 32x32 and below. Change-Id: I768145e6f05c737b05b5b5f1ee674e929532cafb
2015-04-03Merge "Fix the scaling factor in UV skipping test"Yunqing Wang
2015-04-03Fix the scaling factor in UV skipping testYunqing Wang
The threshold scaling factor was calculated wrong using partition size "bsize". Thank Yaowu for pointing it out. It was fixed and no speed change was seen. Change-Id: If7a5564456f0f68d6957df3bd2d1876bbb8dfd27
2015-04-03Merge "Tune SSSE3 assembly implementation to improve quantization speed"Jingning Han
2015-04-03Account for eob cost in the RTC mode decision processJingning Han
This commit accounts for the transform block end of coefficient flag cost in the RTC mode decision process. This allows a more precise rate estimate. It also turns on the model to block sizes up to 32x32. The test sequences shows about 3% - 5% speed penalty for speed -6. The average compression performance improvement for speed -6 is 1.58% in PSNR. The compression gains for hard clips like jimredvga, mmmoving, and tacomascmv at low bit-rate range are 1.8%, 2.1%, and 3.2%, respectively. Change-Id: Ic2ae211888e25a93979eac56b274c6e5ebcc21fb