summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2018-01-23Add "vpx_" prefix to 2 idct x86 functionsLinfeng Zhang
Change-Id: I4f3052d8748e16b06e9155f8daf22f867dfaa7a3
2018-01-23Merge "Add vp9_highbd_iht8x8_64_add_sse4_1()"Linfeng Zhang
2018-01-22Merge changes from topic "clang-format"Johann Koenig
* changes: clang-format v5.0.0 vp9/ remove spurious comments clang-format v5.0.0 vp8/ clang-format v5.0.0 vpx_dsp/ clang-format v5.0.0 mem_ops.h clang-format v5.0.0 vpx_util/vpx_atomic.h clang-format v5.0.0 y4minput.c clang-format v5.0.0 vpxenc.c clang-format v5.0.0 examples/ clang-format v5.0.0 test/
2018-01-18Add vp9_highbd_iht8x8_64_add_sse4_1()Linfeng Zhang
BUG=webm:1413 Change-Id: Id9038226902b2d793fc6c17ac81bb104c1a18988
2018-01-18clang-format v5.0.0 vp9/Johann
Remove trailing commas to keep multiple elements on one line. Add blank lines to prevent comments from being treated as blocks. clang-format guards for struct with a comment in the middle. Change-Id: I3bcb8313ae8aaf69179249a13b4087b1272cdbc0
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 "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-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-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-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-14Merge "add copyright to rtcd files"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-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-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-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
2017-12-08Bug fix for second reference stats.paulwilkins
Immediately following a key frame the trailing second reference error in the first pass stats will be based on a reference frame from the prior key frame group and will thus usually be much larger. This fix eliminates that effect (which typically triggers a short arf group immediately after a key frame). It also changes the accounting for the first frame in each new arf group. This change gives large gains on a couple of clips that contain mid sequence key frames (e.g. 6% on 1080P tennis). Overall there was a net gain in PSNR and PSNR-HVS ~(0.05- 0.4%) and mixed results for SSIM (+/- 0.2%). Change-Id: I8e00538ac2c0b5c2e7e637903cac329ce5c2a375
2017-12-06Merge "Add frame width & height to frame pkt. Add test."Jerome Jiang
2017-12-06Add frame width & height to frame pkt. Add test.Jerome Jiang
Used to return correct frame width and height when dynamic resizing happens. BUG=webm:1474 Change-Id: Ia2043f7e1635b3821848a67b9b134f47f14b0f3a
2017-12-06vp9-svc: Set downsampling filter for VGA layer.Marco
Downsampling filter for SVC was set to subsample (phase 0) for HD -> VGA, and bilinear averaging (phase 8) for VGA -> QVGA. This change makes it bilinear averaging for HD -> VGA. Given the recent commit 9f9d4f8, quality is improved with this change: avgPSNR/SSIM up ~1-3% on HD clips in RTC set. Speed decrease of ~1% for 3 layer SVC. Change-Id: If834a320e372b8b922a6bf7cab4227703b1beae6
2017-12-06Merge "vp9: Nonrd-pickmode: move some early exits up."Marco Paniconi
2017-12-06Merge "Add max luma picture width/height constraint in VP9 level"Hui Su
2017-12-06vp9: Nonrd-pickmode: move some early exits up.Marco
Move the early exit checks on usable_ref_frame and skip_ref_find_pref up before the check on flag_svc_subpel. The code under flag_svc_subpel requires frame_mv to be set for the golden/spatial reference, which is only set if the both those exits don't pass. No change in behavior. Change-Id: Id304276c745eeb389ff85fa2dcf510d5976bc413
2017-12-05vp9-svc: Allow for nonzero motion on spatial reference.Marco
For nonrd pickmode on a given spatial layer, the spatial (golden) reference was always only using zeromv for prediction. In this patch if the downsampling filter used for generating the lower spatial layer is an averaging filter (nonzero phase), we allow for subpel motion on the spatial (golden) reference to compensate for the shift. This is done by forcing the testing of nonzero motion mode to compensate for spatial downsampling shift. Improvement for cases where the downsampling is averaging filter. In the current code this is only done for generating resolutions <= QVGA. Improvement for avgPSNR/SSIM on RTC set for speed 7: ~1.2%. Gain is larger (~2-3%) for VGA clips with 2 spatial layers. ~1% speed slowdown for 3 layer SVC on mac. Change-Id: I9ec4fa20a38947934fc650594596c25280c3b289
2017-12-01Add max luma picture width/height constraint in VP9 levelHui Su
BUG=b/65412009 Change-Id: I9e1478dcbd2ef9e97f5f8fb5a1c733b5f5cdf396
2017-12-01explicitly label .text sectionsJohann
nasm should infer .text but does not for windows: https://bugzilla.nasm.us/show_bug.cgi?id=3392451 Change-Id: Ib195465e5f33405f5ff61c4cf88aa2a72640cacb
2017-12-01vp9-svc: Set num_inter_modes in non-rd pickmode.Marco
Set num_inter_modes based on ref_mode_set_svc, which is smaller set than ref_mode_set (which may use alt-ref). No change in behavior. Change-Id: I31169bb09028db230552c6fca0a86959d1ade692
2017-12-01Merge "Nonrd-pickmode: avoid duplicate computation of UV predictor."Marco Paniconi
2017-12-01Merge "decouple spatial-svc from encoder abi"James Zern
2017-11-30Nonrd-pickmode: avoid duplicate computation of UV predictor.Marco
Avoids duplicate computation of UV predictor. Bit-exact when static_threshold is zero. Small/neutral difference on RTC set with nonzero static_threshold (since UV predictor won't be skipped with this change). Small speed gain, ~1-2%, at speed 8. Change-Id: Iba8d22a307768b391e29d63c9826aac5a4d9c285
2017-11-30decouple spatial-svc from encoder abiJames Zern
this is only meant for testing. along with --enable-experimental --enable-spatial-svc require VPX_TEST_SPATIAL_SVC to be defined rather than bumping the encoder ABI. Change-Id: I7f34d9f60300fa31ccf22e1a4aa619392c391b2e
2017-11-30Fix to copy partition.Marco
Update the prev_partition on early exits in choose_partitioning(). Change-Id: I382ffcab8e647c00b14283d15c3dd11bb0ac6f50
2017-11-29Merge "Add PSNR Cb and Cr metric to opsnr.stt"Jingning Han
2017-11-29Merge "vp9-svc: Don't allow encode_breakout on golden ref."Marco Paniconi
2017-11-29vp9-svc: Don't allow encode_breakout on golden ref.Marco
For 1 pass cbr SVC: GOLDEN is the spatial reference, better not to check for encoder_breakout on this reference. Small positive ~0.075% (mostly neutral) gain in avgPSNR/SSIM metrics. No observed change in encoder speed. Change-Id: Ib337f16d6771105bf06384c6a23ad047fc690418
2017-11-29vp9-svc: Clean conditon for allowing copy_partition.Marco
Make condition explicit on non_reference_frame. No change in behavior. Change-Id: Iec5068bccd93c7c7be67634c5c090580b2dbb20d