summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-10-20Merge "SAD32xh and SAD64xh for AVX2"Yunqing Wang
2014-10-20Merge "Remove the dependency in token storing locations"Yunqing Wang
2014-10-20Merge "Alter adjustment of two pass GF/ARF boost with Q."Paul Wilkins
2014-10-19SAD32xh and SAD64xh for AVX2levytamar82
All sad function that process above 32 consecutive elements are optimized for AVX2: vp9_sad64x64 vp9_sad64x32 vp9_sad32x64 vp9_sad32x32 vp9_sad32x16 vp9_sad64x64_avg vp9_sad64x32_avg vp9_sad32x64_avg vp9_sad32x32_avg vp9_sad32x16_avg The functions that appeared as a hotspot is vp9_sad32x32 and vp9_sad64x64 vp9_sad32x32 was optimized by 68% and vp9_sad64x64 was optimized by 90% both of them gave and overall ~2.3% user level gain Change-Id: Iccf86b375a2b54c5fbbe685902ead0c9a561b9fd
2014-10-18Merge "Add highbitdepth function for vp9_avg_8x8"Debargha Mukherjee
2014-10-18Merge "Remove unused VAR_BASED_FIXED_PARTITION flag"Yaowu Xu
2014-10-18Merge "Use rate/distortion thresholds to control non-RD partition search"Yaowu Xu
2014-10-17Add highbitdepth function for vp9_avg_8x8Peter de Rivaz
Cherry-picked from https://gerrit.chromium.org/gerrit/#/c/71914/ (a92f987a6b7819ae5c62a429e126e1c26bdb1b71) on highbitdepth branch. Change-Id: I6903e4e4cb57d90590725c8a1c64c23da7ae65e8
2014-10-17Updates to aggressive denoising mode.Marco
Fix to the noise level and bitrate threshold settings per resolution. Change-Id: I25524b7f78afa1aeb76edef7be13c17bc8976508
2014-10-17Remove the dependency in token storing locationsYunqing Wang
Currently, the tokens for a tile are stored immediately after its preceding tile, which causes a dependency. This is unnecessary since we always allocate enough memory for tokens. Removing the dependency allows token writing done in parallel. This patch doesn't change encoding result. Change-Id: I7365a6e5e2c2833eb14377c37e1503c9d0f26543
2014-10-17Merge "Correct the logic of ready_for_new_data."hkuang
2014-10-17Merge "vp9_denoiser_sse2.c: solve windows build error."JackyChen
2014-10-17Merge "Add init and reset functions for RD_COST struct"Jingning Han
2014-10-17Merge "Reset rate cost value in rd mode search"Jingning Han
2014-10-17Correct the logic of ready_for_new_data.hkuang
This should be set right after decoder really start to decode frame instead setting at the end. Even decoder does not have a displayable frame to show and return NULL to application, this should be set too. Change-Id: If0313a834bc64e3b0f05a84f4459d444d9eab0d8
2014-10-17Reset rate cost value in rd mode searchJingning Han
When early termination is triggered, properly reset the rate cost to invalid value to avoid potential ioc issue. Change-Id: I3444390be2e49a34bb02cf8a74c33d5dbd96d88d
2014-10-17vp9_denoiser_sse2.c: solve windows build error.JackyChen
Change-Id: Ib5df91c8580d5dbeb0b3554edc9c2ca906ba4c4d
2014-10-17Remove unused VAR_BASED_FIXED_PARTITION flagJingning Han
Change-Id: I4ce19b7cb1c45fed86e81ee785e787630020fb4f
2014-10-17Alter adjustment of two pass GF/ARF boost with Q.Paul Wilkins
Delete gfboost_qadjust() and move Q based adjustment into calc_frame_boost(). Also remove clamping. Making the adjustment here means that it influences not just the boost level but also the selection of the GF/ARF interval. This change gives a small average gain in PSNR but larger gains in SSIM, especially for harder std-hd set (1.5%) Change-Id: I3aa81b8feccaeff93d915e19fb9cf5cd64c86327
2014-10-17Merge "vp9_denoiser_sse2.c: eliminate gcc warnings"James Zern
2014-10-17vp9_denoiser_sse2.c: eliminate gcc warningsJackyChen
Change-Id: I5f63f48e11e31ea9951223c5b18f42a2471e4560
2014-10-16Merge "Adds a set of end-to-end encode tests"Deb Mukherjee
2014-10-16Merge "Fix an ioc issue in super_block_uvrd"Jingning Han
2014-10-16Adds a set of end-to-end encode testsDeb Mukherjee
Covers all profiles and input formats. The tests check if the encode succeeds and if the psnr is sane. Change-Id: I195a5330debf92562846121819b6eaf961e27c01
2014-10-16Fix an ioc issue in super_block_uvrdJingning Han
This commit fixes an ioc issue that will happen when the cumulative variables are not in effective use. The fix discards these redundant additions. Change-Id: Idbac5bfb989c0cedc5f8a323effce938519b2457
2014-10-16Merge "Change initialization of static_scene_max_gf_interval."Paul Wilkins
2014-10-16Merge "[spatial svc]Another workaround to avoid using prev_mi"Paul Wilkins
2014-10-16Merge "Revert "Move input frame scaling into the recode loop""Paul Wilkins
2014-10-16Merge "Revert "[spatial svc]Another workaround to avoid using prev_mi""Paul Wilkins
2014-10-16Merge "Fix in bit-shift operation for highbitdepth decode"Deb Mukherjee
2014-10-16Change initialization of static_scene_max_gf_interval.Paul Wilkins
This removes an unnecessary restriction that causes a problem (noticed by AWG) when the forced key frame interval is set to a very small value, such as 10. In this case we were being forced to code minimal length GF groups. Change-Id: I76ef5861a09638ff51f61fea02359554184ada53
2014-10-16[spatial svc]Another workaround to avoid using prev_miMinghai Shang
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change remerged. Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449
2014-10-16Revert "Move input frame scaling into the recode loop"Paul Wilkins
This reverts commit 452dc21500a2339ee685cb28efbd2af1b856ea12. This change has introduced a significant quality regression on content with forced key frames. (e.g. the YT and yt-hd set). It is most noticeable in static content where the kf bits dominate. Here, despite key frames being apparently coded at the same Q, there is a drop in all metrics of ~20% (e.g clXR and BFa0). Change-Id: Iba14cc61778c0846fa0a59c33c55a9fc49512cb4
2014-10-16Revert "[spatial svc]Another workaround to avoid using prev_mi"Paul Wilkins
This reverts commit c113457af9880b8e15a36cdaabfd414d1c245693. Temporary revert to allow clean revert of another commit. Change-Id: Ia9b7b755e6c48e1b6e383329f121fef175a24b27
2014-10-16Merge "fix CONFIG_SPATIAL_SVC warning"James Zern
2014-10-15Merge "Some updates for Speed 6/VAR_BASED_PARTITION."Marco
2014-10-15Add init and reset functions for RD_COST structJingning Han
Change-Id: I2902de7051a883fd22e27a655209233733969cfd
2014-10-15Merge "Replace copy_partitioning use case with choose_partitioning"Jingning Han
2014-10-15Use rate/distortion thresholds to control non-RD partition searchJingning Han
Compare the estimated rate and distortion to the thresholds scaled according to the operating block size and determine if further split partition search will be run. The compression performance of speed -5 is changed by -0.074%. The encoding speed is 10% - 15% faster. vidyo1 720p 16545 b/f, 40.492 dB, 11475 ms -> 16535 b/f, 40.486 dB, 10100 ms nik720p 16624 b/f, 36.310 dB, 10071 ms -> 16617 b/f, 36.313 dB, 8346 ms Change-Id: Ic9197ab5761279ae55d2fb7813b2af0e0db497b8
2014-10-15Some updates for Speed 6/VAR_BASED_PARTITION.Marco
Reduce the intra_cost_penalty for non-rd mode, and some updates to VAR_BASED_PARTITION. Visual tests show some improvement at Speed 6, for RTC clips. Change-Id: If9090daf7aed14906a32d931a538ab544bbca606
2014-10-15Replace copy_partitioning use case with choose_partitioningJingning Han
This commit replaces the use of copy_partitioning with choose_partitioning based on the sse of subsamped pixels, which provides significantly better coding performance and runs at similar speed, as compared to copy_partitioning. It improves rtc speed 5 coding performance by 3%. Change-Id: I52d3682a12dce0147f5e52383a594fc242ca3228
2014-10-15Fix in bit-shift operation for highbitdepth decodeDeb Mukherjee
Fixes a bug introduced in a previous refactoring patch. Change-Id: I243e74637cfd7a997c7a1fef03b06c290dd0dee6
2014-10-15fix CONFIG_SPATIAL_SVC warningJames Zern
this change checks that CONFIG_SPATIAL_SVC is defined and adds a TODO to ensure this is changed in the future as the release headers can't depend on vpx_config.h. vpx/vpx_encoder.h:164:5: warning: "CONFIG_SPATIAL_SVC" is not defined [-Wundef] Change-Id: I797a0150e5f56caf048e7ee00b282fbc9c5ede19
2014-10-14[spatial svc]Another workaround to avoid using prev_miMinghai Shang
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change-Id: I60b680314e33a60b4093cafc296465ee18169c19
2014-10-14Merge "Move input frame scaling into the recode loop"Adrian Grange
2014-10-14Merge "Add a 32-bit friendly sse2 quantizer."Alex Converse
2014-10-14Merge "Remove an unneeded function call"Yunqing Wang
2014-10-14Merge "Correct the format."hkuang
2014-10-14Remove an unneeded function callYunqing Wang
set_tile_limits() is called in vp9_change_config() already. Change-Id: I91c3a0df2c1c7fd7e71546d8f51fd5b65838a7da
2014-10-14Add a 32-bit friendly sse2 quantizer.Alex Converse
This is based on the 64-bit ssse3 quantizer. 1.1x speedup for screen content at speed 7. Change-Id: I57d15415ef97c49165954bbe3daaaf9318e37448