summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2015-11-10Add bias to zero/small motion for noisy source.Marco
Change is only for real-time mode, speed >= 5, and non-screen content mode. Add bias to zero/low motion for big blocks, if noise estimation is enabled and noise level is above threshold. Change-Id: I3a0a4608ede6aa535bda6eca528d20f8aba738e7
2015-11-09VP9 noise estimate: no noise estimate if frame size change.JackyChen
Change-Id: I521f7b53c143d562a88fe7de330aa3f0ef09f414
2015-11-09Merge "VP9: Only zero counts when !frame_parallel_decoding_mode"James Zern
2015-11-09Merge "VP9 dynamic resize: increase waiting time after key frame."Marco Paniconi
2015-11-09VP9 dynamic resize: increase waiting time after key frame.jackychen
For 1 pass CBR mode: increase waiting time after key frame before we start sampling rate control behavior for determining resize. This change need to disable one internal resize(DownUp) temporally since it requires a longer clip to do so. Change-Id: If21beda1be23f169ee541ab4dd642f718347887a
2015-11-09Merge "Use same bias (against non-zero mv for big blocks) for speed 5."Marco Paniconi
2015-11-09Merge "Expand unconstrained nodes in pack_mb_tokens and loop on zeros."Alex Converse
2015-11-09VP9: Only zero counts when !frame_parallel_decoding_modeScott LaVarnway
The counts are never used when frame_parallel_decoding_mode is set. Change-Id: Ic7a566a048297f7373c9ffbb48929ea09eff674f
2015-11-09Use same bias (against non-zero mv for big blocks) for speed 5.Marco
Use same setting for speed 5 (as it is for speed > 5). Change is only for real-time (non-rd) mode. Change-Id: I830250eac654328373cb318baa89d4f0e63942e1
2015-11-07Merge "Use accurate bit cost for uv_mode in UV intra mode RD selection"Hui Su
2015-11-06Expand unconstrained nodes in pack_mb_tokens and loop on zeros.Alex Converse
Reduces Linux perf estimated cycle count for pack_mb_tokens on a lossless encode on my desktop from 61858501855 to 48154040219 or from 26% of the overall profile to 21%. Change-Id: I9ca3426d7e3272bc7f7030abda4f0d0cec87fb4a
2015-11-06Use accurate bit cost for uv_mode in UV intra mode RD selectionhui su
On derflr, +0.1% for VP10; however, -0.03% on VP9. Change-Id: I09c724232ede74254043d61d3cadc506256af0af
2015-11-06Merge "Revert "Add AVX vectorized vp9_diamond_search_sad""James Zern
2015-11-06Revert "Add AVX vectorized vp9_diamond_search_sad"James Zern
This reverts commit f1342a7b070ef61b9fbdf03e899ac2107cfcb6bd. This breaks 32-bit builds: runtime error: load of misaligned address 0xf72fdd48 for type 'const __m128i' (vector of 2 'long long' values), which requires 16 byte alignment + _mm_set1_epi64x is incompatible with some versions of visual studio Change-Id: I6f6fc3c11403344cef78d1c432cdc9147e5c1673
2015-11-06vp9: Disable noise estimate on resize trigger frame.Marco
Change-Id: I35767a6320943582ee11d737b5f240cea2d01b25
2015-11-05vp9: Updates to noise estimation.Marco
Add threshold/condition on spatial_variance and brightness level. Modification to normalization of block variance. Change resolution limit below which we disable noise estimation. Change-Id: If5be08a26ceda351242d8a58d2f0bc88c0a918f0
2015-11-05Merge "Add AVX vectorized vp9_diamond_search_sad"Yunqing Wang
2015-11-05Add AVX vectorized vp9_diamond_search_sadGeza Lore
This function now has an AVX intrinsics version which is about 80% faster compared to the C implementation. This provides a 2-4% total speed-up for encode, depending on encoding parameters. The function utilizes 3 properties of the cost function lookup table, constructed in 'cal_nmvjointsadcost' and 'cal_nmvsadcosts'. For the joint cost: - mvjointsadcost[1] == mvjointsadcost[2] == mvjointsadcost[3] For the component costs: - For all i: mvsadcost[0][i] == mvsadcost[1][i] (equal per component cost) - For all i: mvsadcost[0][i] == mvsadcost[0][-i] (Cost function is even) These must hold, otherwise the AVX version of the function cannot be used. Change-Id: I184055b864c5a2dc37b2d8c5c9012eb801e9daf6
2015-11-04Merge "Bias against non-zero mv for large blocks."Marco Paniconi
2015-11-03Bias against non-zero mv for large blocks.Marco
Change is only for real-time mode, speed > 5, and non-screen content mode. Bias is based on block size and motion vector level (motion above some threshold). Helps to improves stability in background from lightning changes. PSNR/SSIM metrics on RTC set almost no change/neutral (within +/- 0.1). Change-Id: I7eac13c1ae10be4ab1f40acc7f9f1df5653ece9d
2015-11-03Merge "Update to encoder_breakout_test, for non-rd mode."Marco Paniconi
2015-11-03Merge "Fix a msvc warning"Yaowu Xu
2015-11-03Merge "Generate intra prediction reference values only when necessary"Hui Su
2015-11-03Update to encoder_breakout_test, for non-rd mode.Marco
Only use non-zero threshold(s) for breakout if the motion level of the current tested mode is low. Change-Id: I22aae961cc42371b49d3f648560181cc54708502
2015-11-03Fix a msvc warningYaowu Xu
Change-Id: Id5b8f597fb275395232559fea7bfeb56912b88a1
2015-11-02Move noise level estimate outside denoiser.Marco
Source noise level estimate is also useful for setting variance encoder parameters (variance thresholds, qp-delta, mode selection, etc), so allow it to be used also if denoising is not on. Change-Id: I4fe23d47607b4e17a35287057f489c29114beed1
2015-11-02Generate intra prediction reference values only when necessaryhui su
This can help increase encoding speed substantially. Change-Id: Id0c009146e6e74d9365add71c7b10b9a57a84676
2015-11-02vp9 denoiser: Don't estimate noise on resized trigger frame.Marco
Change-Id: I60461f011d1aba0b1eb6584c6940f745221915f4
2015-10-30Merge "Convert motion search config from AoS to SoA"Debargha Mukherjee
2015-10-30Merge changes I3b89e7a6,I8ef772a0James Zern
* changes: vp9_dx_iface: move struct defs to separate header vp9_decodeframe.h: add missing include
2015-10-29vp9_dx_iface: move struct defs to separate headerJames Zern
this avoids redefining vpx_codec_vp9_dx, vpx_codec_vp9_dx_algo in vp9_encoder_parms_get_to_decoder.cc Change-Id: I3b89e7a62497227ee32419f1a7d30e4c10a13c05
2015-10-30Merge "Make the zero handling in extend_to_full_distribution more explicit."Alex Converse
2015-10-29vp9_decodeframe.h: add missing includeJames Zern
Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9
2015-10-29Make the zero handling in extend_to_full_distribution more explicit.Alex Converse
The old workaround "p = 0 ? 0 : p -1" is misleading. ?: happens before = assigning back to p truncates to one byte. Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists to work around a first pass bug, so let's make the work around more clear. https://bugs.chromium.org/p/webm/issues/detail?id=1089 Change-Id: I587c44dd61c1f3767543c0126376f881889935af
2015-10-29Merge "VP9_resizing: add limitation to the downsacling resolution."Jacky Chen
2015-10-29Merge "Shrink probability remap tables."Alex Converse
2015-10-29VP9_resizing: add limitation to the downsacling resolution.jackychen
Width and height of downscaling resolution should not be lower than min_width and min_height which can be set as needed, both are 180 for now. Change-Id: I34d06704ea51affbdd814246e22ee8d41d991f00
2015-10-28Merge "VP9-SVC: Allow frame dropping due to overshoot for spatial layers."Marco Paniconi
2015-10-28Revert "Replace the zero handling in extend_to_full_distribution."Alex Converse
This reverts commit 7f56cb29787b187c8cb1b778918ca3b80184c804. It causes uninitialized reads in the first pass setting up later cost tables. Change-Id: I2df498df3f5c03eff359f79edf045aed0c618dc9
2015-10-28Convert motion search config from AoS to SoAGeza Lore
This is a prerequisite for vectorizing vp9_diamond_search_sad_c. Change-Id: I49cd9148782410ca8b16e8a468ca9e7c6d088410
2015-10-27Update to vp9-denoising.Marco
Set increase_denoising parameter for temporal filter. Change-Id: Id98bf160db98dfa9aedf76e20b43e6f7c783fb1c
2015-10-27VP9-SVC: Allow frame dropping due to overshoot for spatial layers.Marco
For 1 pass CBR mode. Change-Id: I8bceb489a850ec26f05382eecb5c0c32a1bb8883
2015-10-27Merge "Adjustments to vp9-denoising."Marco Paniconi
2015-10-27Shrink probability remap tables.Alex Converse
Saves 2288 bytes in vp8+vp9 libvpx.a. Change-Id: Iaa5712e59a9693ed58cea63de63781a96827e44e
2015-10-27Adjustments to vp9-denoising.Marco
Adjust variance threshold, delta-qp, and intra penalty cost, based on estimated noise level in source. Replace denoising_on with a level value=L/M/H. Change-Id: I0c017dae75a5d897367d2c42dec26f2f37e447c1
2015-10-27Merge "Replace the zero handling in extend_to_full_distribution."Alex Converse
2015-10-26Merge "Code cleanup for vp9-denoiser."Marco Paniconi
2015-10-26Merge "Incorrect frame used in KF boost loop."Paul Wilkins
2015-10-26Merge "Bug in clamping of base_frame_target."Paul Wilkins
2015-10-26Code cleanup for vp9-denoiser.Marco
Change-Id: Ibb573f50c4bf2cfb382b589803f3363db0ac1285