summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-10Fold adds in 16->32-bit converts in SSE2/AVX2 fDCTKyle Siefring
Changes in the function size in bytes (in lieu of performance metrics) Before After Diff vpx_fdct32x32_avx2 29564 -> 28334 -1230 vpx_fdct32x32_sse2 38053 -> 36309 -1744 Change-Id: Ie0b3e6ed7c3f2e9ea45f9d6a1ce1e27d068cee6b
2018-01-12Merge "Add zoom break out for kf boost loop."Paul Wilkins
2018-01-12Merge "Fix kf detection in some slide shows."Paul Wilkins
2018-01-11Merge "Add quantize_fp_32x32_nz_c()"Scott LaVarnway
2018-01-11Merge "vp9: Skip encoding of enhancement layers on the fly."Marco Paniconi
2018-01-11adopt some clang 5.0.0 formattingJohann
At least the changes that don't conflict with 4.0.1 Change-Id: I9b6a7c14dadc0738cd0f628a10ece90fc7ee89fd
2018-01-11vp9: Skip encoding of enhancement layers on the fly.Marco
For SVC: if an enhancement layer (spatial_layer > 0) has 0 bandwidth, skip/drop the encoding of the layer. This allows the application to dynamically disable higher layers for SVC. Add flag to signal the skip encoding, this is needed to modify the packing of the superframe when the top layer is skipped/dropped. Also moved some updates (current_video_frame counter and the last_avg_frame_bandwidth) to the postencode_update_drop_frame(). Added datarate unittest for dynamically going from 3 to 2 and then back to 3 spatial layers. Change-Id: Idaccdb4aca25ba1d822ed1b4219f94e2e8640d43
2018-01-10[CFI] Remove function pointer castsVlad Tsyrklevich
Control Flow Integrity [1] indirect call checking verifies that function pointers only call valid functions with a matching type signature. This change eliminates some function pointer casts that I missed in my last CL https://crrev.com/c/780144. BUG=chromium:776905 [1] https://www.chromium.org/developers/testing/control-flow-integrity Change-Id: I1c7adbdfffa4fe0b62e993bfb31d06e64b022d66
2018-01-10Merge "Fix bug in use of zoom metric as part of arf breakout."Paul Wilkins
2018-01-10Add zoom break out for kf boost loop.paulwilkins
Adds a breakout threshold to key frame boost loop. This reduces the boost somewhat in cases where there is a significant zoom component. In tests most clips no effect but a sizable gain for some clips like station. Change-Id: I8b7a4d57f7ce5f4e3faab3f5688f7e4d61679b9a
2018-01-10Fix kf detection in some slide shows.paulwilkins
This fix improves detection of key frames in slide shows. In particular it helps if the slides are pictures of varying formats as in a sample provided by yclin@. This change does not impact any of the clips in our standard tests but for the example slide show test clip helped global psnr by several db and resolved a serious visual quality issue. Change-Id: Iaeeeed55dc0bb50aeacd4996ed660ced06374603
2018-01-08Add vp9_highbd_iht4x4_16_add_sse4_1()Linfeng Zhang
BUG=webm:1413 Change-Id: I14930d0af24370a44ab359de5bba5512eef4e29f
2018-01-08Update dct_test.ccLinfeng Zhang
Make 8-bit functions testing available in high bitdepth. Change-Id: Ic030c75aa4c6b649c52426abb4bb2122882de0fe
2018-01-08Merge "Update iadst4_sse2()"Linfeng Zhang
2018-01-05Merge "vp9-svc: Use eightap_smooth for downsampling at low resol."Marco Paniconi
2018-01-05vp9-svc: Use eightap_smooth for downsampling at low resol.Marco
Switch from bilinear to eighttap_smooth for frame-level downsampling at low resolutions (<= 320x240). avgPSNR/SSIM metrics increase from ~0.5-2% (all clips positive gain), for 2 and 3 spatial layer SVC, with 3 temporal layers. Small/negligible increase in encoding time (< 1%). Change-Id: I758472fc4fddd51d87f13c9d1a1cd4986ef5d41f
2018-01-05Fix bug in use of zoom metric as part of arf breakout.paulwilkins
The in/out (or zoom metrics) in accumulate_frame_motion_stats() are in effect a % of the blocks that have a motion vector pointing either towards or away from the center. As such they are already normalized in terms of image size and the thresholds against which these are tested should be image size independent. In practice a zoom either in or out is an indicator for a shorter group length so the abs value is more important as a breakout clause. This patch fixes the threshold test. Clips without noticeable zoom show no effect but some with strong zooms such as "station" show a big gain (5-10%). Average psnr-hvs gain on hdres set was 0.292% Change-Id: I4f97a72b0e273e4e844ade15285749c32cd81c1c
2018-01-04vp9: Increase convergence speed of noise estimation.Marco
Increase the recursive average factor from 15/16 to 3/4 to make the noise estimation respond faster. Small/neglible change on low noise content, but better denoising for noisy content. Also encoder speedup of ~2-3% observed on some noisy clips. Change-Id: I9dd02fe961ca24b411fe4c2732f814bf1e9a7f9f
2017-12-28Update iadst4_sse2()Linfeng Zhang
Change-Id: I21ff81df0d6898170a3b80b3b5220f9f3ac7f4e8
2017-12-26Add quantize_fp_32x32_nz_c()Scott LaVarnway
This c version uses the shortcuts found in the vp9_quantize_fp_32x32_ssse3 function. Change-Id: I2e983adb00064e070b7f2b1ac088cc58cf778137
2017-12-21Add vp9_quantize_fp_nz_c() -- 2Scott LaVarnway
This c version uses the shortcuts found in the x86 vp9_quantize_fp functions. The test was updated to use the correct quant/round range. Change-Id: Ie5871f710d9eb39047d8d9f48b907c0633e1f830
2017-12-21Merge "vp9_quantize_ssse3_x86_64: fix out of bounds write"James Zern
2017-12-21Don't force inlining for msvc targets.Ralph Giles
INLINE is defined as __forceinline for vs* configs, but is the normal, compiler-discretion inline for gcc/clang configs. This makes many functions very large when building for windows targets, much larger than they are elsewhere. Use '__inline' as a consistent definition to get consistent function sizes. Although Visual Studio documentation says that 'inline' is only available in C+ code. This is probably incorrect, since Visual Studio 2017 accepts C99 'inline' even when passed /TC. Nevertheless, this commit uses the recommended '__inline' for consistency. Thanks to David Major for the diagnosis. Change-Id: Ib0b31a3afcea77822c84fe3c6cd452add66d825a
2017-12-21vp9_quantize_ssse3_x86_64: fix out of bounds writeJames Zern
eob is a pointer to a uint16_t. previously the code would store 64-bits causing a crash or test failure with the right stack layout. Change-Id: Ibd653baf323db114f2444951b9d8b00c596bf15a
2017-12-21Revert "Add vp9_quantize_fp_nz_c()"James Zern
This reverts commit 86842855d30d6ca6befdcf5108003e027d90daa9. SSSE3/VP9QuantizeTest.EOBCheck/1 fails on Mac and the build breaks under visual studio due to a #if within another macro. Change-Id: I475095a04aafcc714fade2b24e4df7b682be2cd1
2017-12-20Merge "Add vp9_quantize_fp_nz_c()"Scott LaVarnway
2017-12-20Merge "lpf_test: correct threshold ranges"James Zern
2017-12-19vp9-svc: Add layer bitrate targeting to SVC datarate tests.Marco
Modify and update the SVC datarate unittests to verify the rate targeting for each spatial-temporal layer. The current tests were only verifying the rate targeting of the full SVC stream, not individual layers. Also re-enabled a test that was disabled. This is a stronger verification of the layered rate control for SVC for 1 pass CBR encoding. Added PostEncodeFrameHook, needed to get the layer_id and update the layer buffer level. Change-Id: I9fd54ad474686b20a6de3250d587e2cec194a56f
2017-12-19Add vp9_quantize_fp_nz_c()Scott LaVarnway
This c version uses the shortcuts found in the x86 vp9_quantize_fp functions. The test was updated to use the correct quant/round range. Change-Id: I5d19f8af2fddda8e50910249eafb740acb29415b
2017-12-19vp9: Reset buffer level on large bitrate changes.Marco
For a large change in the target avg_frame_bandwidth, via the update in change_config()), reset the buffer_level to optimal_level. This fix prevents possible frame drops, where for example, encoder suddenly goes from lower to higher bitrate. Change-Id: I2f844c41d04c01240e85f574e59d2b9075c7eb6d
2017-12-18lpf_test: correct threshold rangesJames Zern
the random number generator creates values from [0, range) add 1 to all and make hev more realistic by mirroring its calculation of level >> 4, i.e., [0, 3] Change-Id: Ic19be5d7ba668deb17c96f143b739116a4b5d21c
2017-12-15vp8: [loongson] optimize loopfilter v2.Shiyou Yin
Optimize function vp8_mbloop_filter_vertical_edge_mmi and function vp8_mbloop_filter_horizontal_edge_mmi. Make full use of memory loading delay slot and reduce unnecessary instructions. Change-Id: I61da2c3a44c06044225461f46bf487d83cba6c16
2017-12-15Merge "vp8: [loongson] optimize sixtab predict v2."Shiyou Yin
2017-12-14Merge "add copyright to rtcd files"Johann Koenig
2017-12-14Merge "mark generated version header"Johann Koenig
2017-12-14add copyright to rtcd filesJohann
Allows them to pass the license check in chromium. BUG=chromium:98319 Change-Id: Iefc1706152a549d8c4ae774c917596bf1c9492d8
2017-12-14Merge "remove unused tools"Johann Koenig
2017-12-14Merge "fix typo in boilerplate"Johann Koenig
2017-12-14remove unused toolsJohann
all_builds.py has been more or less replaced by Jenkins. author_first_release.sh is unused. ftfy.sh has been obviated by having the whole tree clang-format clean. Change-Id: I741315ad9042e6e901f07410e93f28371db703b2
2017-12-14mark generated version headerJohann
Allows it to pass the license check in chromium. BUG=chromium:98319 Change-Id: I5ba9c8c81ab9eb4168df09db9d2eab846e99e981
2017-12-14fix typo in boilerplateJohann
The extra 'e' was causing the chromium license check to flag this file. BUG=chromium:98319 Change-Id: Ic875ba66370298bf998438d14ff5f7e760293706
2017-12-14mark generated rtcd headersJohann
Allows them to pass the license check in chromium. BUG=chromium:98319 Change-Id: Ib37bf45bdac8cf1edc62037dea17b734a5e37fa7
2017-12-14vp8: [loongson] optimize sixtab predict v2.Shiyou Yin
1. Delete unnecessary zero setting process. 2. Optimize the method of calculating SSE in vpx_varianceWxH. Change-Id: I8bab801416e7f4958c28c6d080e3cf785a50f82b
2017-12-13vp9: Update to SVC datarate tests.Marco
With recent fixes to rate control for SVC the buffer underrun in the tests does not happen, so comment and TODO can be removed. Also, in some of these SVC tests, replace the HD clip with the corresponding VGA clip, which has > 400 frames. For the (niklas) HD clip: it has only 60 frames but the test was running up to 300 frames. Fixed it to 60 frames. Keep some tests with the HD clip, needed for the 4 thread and 5 level scaling test. Change-Id: I0a2356a908e8b2271c7a422eb8b15c0d56eec968
2017-12-13Merge "vp9: Reset rc flags on some configuration changes."Marco Paniconi
2017-12-13vp9: Cleanup/remove TODO comment.Marco
Change-Id: I2bd43e996909ad688b7e00b81ee19a5fc4df460b
2017-12-13vp9: Reset rc flags on some configuration changes.Marco
For large dynamic changes in target avg_frame_bandwidth, or a change in resolution, via the update in change_config()), reset the under/overshoot flags (rc_1_frame, rc_2_frame) to prevent constraining the QP for the first few frames following the change. For SVC use the spatial stream avg_frame_bandwidth in reset condition. For the avg_frame_bandwidth condition, use fairly large threshold (~50%) for now in reset. This allows for better/faster QP response if, for example, application dynamically changes bitrate by large amount. Change-Id: Ib6e3761732d956949d79c9247e50dba744a535c0
2017-12-12Merge "Bug fix for second reference stats."Paul Wilkins
2017-12-12Merge "vp9 svc: Allow denoising next to highest resolution."Jerome Jiang
2017-12-11vp9 svc: Allow denoising next to highest resolution.Jerome Jiang
Denoise 2 spatial layes at most. Add noise sensitivity level 2 for vp9 such that applications can control whether to denoise the second highest spatial layer. Add tests to cover this case. Change-Id: Ic327d14b29adeba3f0dae547629f43b98d22997f