Commit Graph

14841 Commits

Author SHA1 Message Date
hui su
6ab6ac450b Use accurate bit cost for uv_mode in UV intra mode RD selection
On derflr, +0.1% for VP10; however, -0.03% on VP9.

Change-Id: I09c724232ede74254043d61d3cadc506256af0af
2015-11-06 14:45:43 -08:00
James Zern
eba14ddbe7 Merge "Revert "Add AVX vectorized vp9_diamond_search_sad"" 2015-11-06 22:37:20 +00:00
James Zern
30466f26b4 Revert "Add AVX vectorized vp9_diamond_search_sad"
This reverts commit f1342a7b07.

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-06 13:15:01 -08:00
James Zern
837cea40fc variance_test: create fn pointers w/'&' ref
this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: I8c83b86da53b1783cd18c0f765b67ba33da91d72
2015-11-06 11:04:11 -08:00
James Zern
ab5ce2e5ae sixtap_predict_test: create fn pointers w/'&' ref
this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: Ic53b2ed5fbce05c5b5e633b4a4ef9ea75c55360a
2015-11-06 11:04:10 -08:00
Marco
5f041c01ed vp9: Disable noise estimate on resize trigger frame.
Change-Id: I35767a6320943582ee11d737b5f240cea2d01b25
2015-11-06 08:42:09 -08:00
James Zern
91606bbbe6 sad_test: create fn pointers w/'&' ref
this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: I4acc8a844d1e55b766f66482bd6d32998174d70f
2015-11-05 23:53:24 -08:00
Marco Paniconi
d7bbe1a210 Merge "vp9: Updates to noise estimation." 2015-11-06 06:51:11 +00:00
Marco
1c724d01aa vp9: Updates to noise estimation.
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-05 18:19:01 -08:00
James Zern
892130f75b vp9_spatial_svc_encoder.sh: fix command line param
-l -> -sl, renamed in:
be3b08d [svc] Temporal svc with two pass rate control

Change-Id: I5a7b179b33d94e20e54825090659156dece928c0
2015-11-05 15:22:39 -08:00
Yunqing Wang
57cae22c1e Merge "Add AVX vectorized vp9_diamond_search_sad" 2015-11-05 20:17:13 +00:00
Geza Lore
f1342a7b07 Add AVX vectorized vp9_diamond_search_sad
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-05 10:02:17 +00:00
Marco Paniconi
c6641709a7 Merge "Bias against non-zero mv for large blocks." 2015-11-04 00:01:23 +00:00
Alex Converse
246e0eaa71 Deduplicate some high bit depth tables
Change-Id: I6977f7d155cc1e81ae2393933893caac6770821f
2015-11-03 15:40:44 -08:00
Marco
04a99cb36b Bias against non-zero mv for large blocks.
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-03 14:51:56 -08:00
Marco Paniconi
17534d2918 Merge "Update to encoder_breakout_test, for non-rd mode." 2015-11-03 22:40:53 +00:00
Yaowu Xu
5ff1008ed9 Merge "Fix a msvc warning" 2015-11-03 21:56:25 +00:00
Hui Su
3cbe767972 Merge "Generate intra prediction reference values only when necessary" 2015-11-03 20:55:14 +00:00
Marco Paniconi
73372cc09a Merge "Adjust threshold for datarate frame drop test." 2015-11-03 19:54:52 +00:00
Marco
9a7785b9d6 Update to encoder_breakout_test, for non-rd mode.
Only use non-zero threshold(s) for breakout if
the motion level of the current tested mode is low.

Change-Id: I22aae961cc42371b49d3f648560181cc54708502
2015-11-03 11:49:44 -08:00
Yaowu Xu
87e08f4d9f Fix a msvc warning
Change-Id: Id5b8f597fb275395232559fea7bfeb56912b88a1
2015-11-03 11:22:58 -08:00
Alex Converse
255bcf8697 Merge "misc fixes: Remove a wasted value." 2015-11-03 17:52:34 +00:00
Alex Converse
1796d1cc77 Merge "Add target for Mac OS X 10.11 'El Capitan'" 2015-11-03 17:50:34 +00:00
Marco
cb7b2a4f4b Adjust threshold for datarate frame drop test.
Current threshold is little too strict.

Change-Id: I99ec1409d095e0c2fd3b7ab398742cabcc05700b
2015-11-03 08:17:21 -08:00
Jacky Chen
d73e6cef75 Merge "vpx_scale: fix the issue in msan test." 2015-11-02 23:37:23 +00:00
Alex Converse
080ad919df Add target for Mac OS X 10.11 'El Capitan'
Change-Id: I174f5b41be384894e41b8e2926cbf8fd0f8e21b2
2015-11-02 14:35:57 -08:00
Marco Paniconi
61f240c288 Merge "Move noise level estimate outside denoiser." 2015-11-02 22:08:01 +00:00
jackychen
fcb464671c vpx_scale: fix the issue in msan test.
Do memset to fix msan issue due to the access of uninitialized
memory.

BUG=https://code.google.com/p/chromium/issues/detail?id=549155

Change-Id: I02f995ede79e3574e72587cc078df1a0d11af002
2015-11-02 12:36:10 -08:00
Marco
c7da053d4b Move noise level estimate outside denoiser.
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-02 12:15:26 -08:00
hui su
16bf821dfc Move palette-based intra prediction out of misc-fixes
Change-Id: Ia59724413c4a4831390119a33d40a7d713b4b69f
2015-11-02 11:11:25 -08:00
hui su
e085fb643f Generate intra prediction reference values only when necessary
This can help increase encoding speed substantially.

Change-Id: Id0c009146e6e74d9365add71c7b10b9a57a84676
2015-11-02 10:26:50 -08:00
Marco
c2f6a7df8d vp9 denoiser: Don't estimate noise on resized trigger frame.
Change-Id: I60461f011d1aba0b1eb6584c6940f745221915f4
2015-11-02 09:11:35 -08:00
James Zern
bc98bf65e8 vp9_dx_iface: move struct defs to separate header
this avoids redefining vpx_codec_vp9_dx, vpx_codec_vp9_dx_algo in
vp9_encoder_parms_get_to_decoder.cc

Change-Id: I3b89e7a62497227ee32419f1a7d30e4c10a13c05
(cherry picked from commit ca163b85bb)
2015-10-31 12:23:53 -07:00
James Zern
8f9c9ab5c9 vp9_decodeframe.h: add missing include
Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9
(cherry picked from commit 68ecfc1e62)
2015-10-31 12:23:53 -07:00
Debargha Mukherjee
9cafc46d9e Merge "Convert motion search config from AoS to SoA" 2015-10-30 20:57:10 +00:00
James Zern
082434b274 Merge changes I3b89e7a6,I8ef772a0
* changes:
  vp9_dx_iface: move struct defs to separate header
  vp9_decodeframe.h: add missing include
2015-10-30 05:50:58 +00:00
James Zern
ca163b85bb vp9_dx_iface: move struct defs to separate header
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-29 17:55:35 -07:00
Alex Converse
d2967221d2 Merge "Make the zero handling in extend_to_full_distribution more explicit." 2015-10-30 00:37:33 +00:00
James Zern
68ecfc1e62 vp9_decodeframe.h: add missing include
Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9
2015-10-29 16:41:25 -07:00
hui su
ede323a119 Specify feasible parameter values for lossless mode
Change-Id: I53d9719dcb81fa83fe3c920a552db5a0f1cacefa
2015-10-29 16:07:55 -07:00
Alex Converse
989193c797 Make the zero handling in extend_to_full_distribution more explicit.
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-29 14:46:55 -07:00
Jacky Chen
039f241fc2 Merge "VP9_resizing: add limitation to the downsacling resolution." 2015-10-29 21:00:36 +00:00
Alex Converse
6f229b3e62 Merge "Shrink probability remap tables." 2015-10-29 19:58:24 +00:00
jackychen
dba2d5b3f3 VP9_resizing: add limitation to the downsacling resolution.
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-29 09:42:44 -07:00
Jacky Chen
487023e94e Merge "VP9 decoder: Add more test vectors for resizing." 2015-10-29 16:00:15 +00:00
Marco
9cb73659d5 Update to vp9_spatial_svc_encoder.
Some fixes for rate control stats and bypass mode.

Change-Id: I28bed5467a681b8867cca55852d5d3a25d850f39
2015-10-29 08:21:10 -07:00
jackychen
d464e8a462 VP9 decoder: Add more test vectors for resizing.
Refer to doc "vp9-test-vectors".

BUG=https://code.google.com/p/webm/issues/detail?id=1086

Change-Id: I523d1f39141a3a86f113604cbdb9cd41cc2d6470
2015-10-28 21:26:00 -07:00
Marco Paniconi
9645cd4826 Merge "VP9-SVC: Allow frame dropping due to overshoot for spatial layers." 2015-10-28 21:59:17 +00:00
Alex Converse
e765969971 Merge "Revert "Replace the zero handling in extend_to_full_distribution."" 2015-10-28 20:48:52 +00:00
Johann Koenig
bb0bc06fa5 Merge "Skip AS detection when using --enable-external-build" 2015-10-28 19:18:49 +00:00