- 09 Feb, 2016 2 commits
-
-
Marco authored
If the application changes frame size (external size changes), and aq-mode=3 is on, reset the cyclic refresh. Modify the TestExternalResize unittest (longer run with more resize actions). Without this change an assert would be triggered on this longer test. Change-Id: I0eefd2cd7ffa0c557cca96ae30d607034a2599ce
-
Yaowu Xu authored
This reduces the buffer allocation size for high bit depth buffers by more than 70%. Change-Id: Iab9007d9684e8ac30ce7fa94e61f038f01792fc5
-
- 04 Feb, 2016 1 commit
-
-
Scott LaVarnway authored
Change-Id: I9cc9780f506e025aea57485a9e21f0835faf173c
-
- 03 Feb, 2016 2 commits
-
-
James Zern authored
SHARP_FILTER_QTHRESH unused since: 53731197 Merging in the Switchable interp experiment Change-Id: I9ccc1883828babffd1886810b59aa16aca4766bf
-
James Zern authored
these are only used with CONFIG_INTERNAL_STATS Change-Id: Ibbcefbdc1db79d93f75e5865289f9960a8c2358a
-
- 01 Feb, 2016 2 commits
-
-
Marco authored
Set off as default; on for 1 pass cbr mode, speed >=5, non-screen-content. Change-Id: I03f2497e4028b354fd83b8a7d0e072c2a6bec878
-
Marco authored
The postproc vp9_denoise() is a spatial denoise/blur function. It was not intended to be used if temporal denoising is enabled. Change-Id: I97d2dcb941e7cc49bbafce99d9286beb2693249d
-
- 20 Jan, 2016 2 commits
-
-
Marco authored
Changes to mode selection for 1 pass SVC mode: use base layer motion vector, changes to intra-prediction. Change-Id: I3e883aa04db521cfa026a0b12c9478ea35a344c9
-
Scott LaVarnway authored
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
-
- 19 Jan, 2016 1 commit
-
-
paulwilkins authored
This patch fixes a bug that causes the loop filter search to reset to a low value or zero after each arf overlay frame. We expect the overlay frames to need little or no loop filtering but this should not propagate. Change-Id: I895b28474cf200f20d82793f3de40b60b19579fd
-
- 14 Jan, 2016 1 commit
-
-
Debargha Mukherjee authored
Different quality levels are used for different regions in the frame depending on how far they are vertically from the center. Specifically, three segments are used based on the mi_row index with respect number to the number of mi_rows in the frame. Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
-
- 15 Dec, 2015 1 commit
-
-
paulwilkins authored
For testing implemented a fixed pattern and delta, 1 pass, fixed Q, low delay mode. This has not in any way been tuned or optimized. Change-Id: Idf5ee179b277fa15d07a97f14f2ce5bbaae80a04
-
- 14 Dec, 2015 1 commit
-
-
Marco authored
Keep track of frame indexes for the references, and constrain inter mode search for reference with same temporal alignment. Improves speed by about ~15%, no noticeable loss in compression performance. Change-Id: I5c407a8acca921234060c4fcef4afd7d734201c8
-
- 01 Dec, 2015 1 commit
-
-
Debargha Mukherjee authored
Fixes bug introduced in https://chromium-review.googlesource.com/#/c/299482/5 Change-Id: If542c1a917380465dd9bc4ce5e32b0adbb20e340
-
- 13 Nov, 2015 1 commit
-
-
paulwilkins authored
This change alters the nature and use of exhaustive motion search. Firstly any exhaustive search is preceded by a normal step search. The exhaustive search is only carried out if the distortion resulting from the step search is above a threshold value. Secondly the simple +/- 64 exhaustive search is replaced by a multi stage mesh based search where each stage has a range and step/interval size. Subsequent stages use the best position from the previous stage as the center of the search but use a reduced range and interval size. For example: stage 1: Range +/- 64 interval 4 stage 2: Range +/- 32 interval 2 stage 3: Range +/- 15 interval 1 This process, especially when it follows on from a normal step search, has shown itself to be almost as effective as a full range exhaustive search with step 1 but greatly lowers the computational complexity such that it can be used in some cases for speeds 0-2. This patch also removes a double exhaustive search for sub 8x8 blocks which also contained a bug (the two searches used different distortion metrics). For best quality in my test animation sequence this patch has almost no impact on quality but improves encode speed by more than 5X. Restricted use in good quality speeds 0-2 yields significant quality gains on the animation test of 0.2 - 0.5 db with only a small impact on encode speed. On most clips though the quality gain and speed impact are small. Change-Id: Id22967a840e996e1db273f6ac4ff03f4f52d49aa
-
- 11 Nov, 2015 1 commit
-
-
Geza Lore authored
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: I6c2791d43022822a9e6ab43cd124a773946d0bdc
-
- 06 Nov, 2015 1 commit
-
-
James Zern authored
This reverts commit f1342a7b. 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
-
- 05 Nov, 2015 1 commit
-
-
Geza Lore authored
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
-
- 02 Nov, 2015 1 commit
-
-
Marco authored
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
-
- 27 Oct, 2015 1 commit
-
-
Marco authored
For 1 pass CBR mode. Change-Id: I8bceb489a850ec26f05382eecb5c0c32a1bb8883
-
- 23 Oct, 2015 1 commit
-
-
Marco authored
Periodically estiamte noise level in source, and only denoise if estimated noise level is above threshold. Change-Id: I54f967b3003b0c14d0b1d3dc83cb82ce8cc2d381
-
- 06 Oct, 2015 1 commit
-
-
Marco authored
Use the existing VP9_SET_SVC control to set the first spatial layer to encode. Since we loop over all spatial layers inside the encoder, the setting of spatial_layer_id via VP9_SET_SVC has no relevance. Use it instead to set the first_spatial_layer_to_encode, which allows an application to skip encoding lower layer(s). Change only affects the 1 pass CBR SVC. Change-Id: I5d63ab713c3e250fdf42c637f38d5ec8f60cd1fb
-
- 02 Oct, 2015 2 commits
-
-
Marco authored
Temporary fix to denoiser when dynamic resizing is on. -Reallocate denoiser buffers on resized frame. -Force golden update on resized frame. -Don't denoise resized frame, and copy source into denoised buffers. Change-Id: Ife7638173b76a1c49eac7da4f2a30c9c1f4e2000
-
jackychen authored
Dynamic resizing now support two-steps scaling: first go down to 3/4 and then 1/2. This feature is under a flag which controls the switch between two-steps scaling and one-step scaling (1/2 only). Change-Id: I3a6c1d3d5668cf8e016a0a02aeca737565604a0f
-
- 29 Sep, 2015 1 commit
-
-
Scott LaVarnway authored
The loopfilter masks are now built in the decode loop. This is done so we can eventually reduce the number of MODE_INFO structs required by the decoder. The encoder builds the masks for the entire frame prior to calling the loopfilter. Change-Id: Ia2146b07e0acb8c50203e586dfae0c4c5b316f11
-
- 26 Sep, 2015 2 commits
-
-
Ronald S. Bultje authored
In the decoder, map this to the output variable vpx_image_t.r_w/h. This is intended as an improved version of VP9D_GET_DISPLAY_SIZE, which doesn't work with parallel frame decoding. In the encoder, map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE). Also add render_size to the encoder_param_get_to_decoder unit test. See issue 1030. Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
-
Ronald S. Bultje authored
The name "display_*" (or "d_*") is used for non-compatible information (that is, the cropped frame dimensions in pixels, as opposed to the intended screen rendering surface size). Therefore, continuing to use display_* would be confusing to end users. Instead, rename the field to render_*, so that struct vpx_image can include it. Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d
-
- 24 Sep, 2015 1 commit
-
-
James Zern authored
Change-Id: I1fc8e0b3d48675cd5428b7b36f7cc28ab32cbf71
-
- 21 Sep, 2015 1 commit
-
-
jackychen authored
Reallocation of mi buffer fails if change size on the first frame and change config in subsequent frames. Add a condition for resolution check to avoid assertion failure. BUG=1074 Change-Id: Ie26ed816a57fa871ba27a72db9805baaaeaba9f3
-
- 16 Sep, 2015 1 commit
-
-
Ronald S. Bultje authored
In decoder, export (eventually) into vpx_image_t.range field. In encoder, use oxcf->color_range to set it (same way as for color_space). See issue 1059. Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
-
- 15 Sep, 2015 1 commit
-
-
Marco authored
For 1 pass CBR spatial-SVC: Add cyclic refresh parameters to the svc-layer context. This allows cyclic refresh (aq-mode=3) to be applied to the whole super-frame (all spatial layers). This gives a performance improvement for spatial layer encoding. Addd the aq_mode mode on/off setting as command line option. Change-Id: Ib9c3b5ba3cb7851bfb8c37d4f911664bef38e165
-
- 14 Sep, 2015 1 commit
-
-
Marco authored
The normative (convolve8) filter is optimized/faster than the nonnormative one. Pass usage of scaler (normative/nonomorative) to vp9_scale_if_required(), and always use normative one for 1 pass. Change-Id: I2b71d9ff18b3c7499b058d1325a9554de993dd52
-
- 11 Sep, 2015 1 commit
-
-
Marco authored
Save some encoding time, for the case of spatial layers or under dynamic resizing mode. Change-Id: If4a8eb6f0376c3d2dde8465fde6bfd86ab704920
-
- 10 Sep, 2015 1 commit
-
-
James Zern authored
Change-Id: If9176ce6ed3eb6c7ef8ffd1378456cb95b4aeb86
-
- 03 Sep, 2015 1 commit
-
-
Marco authored
If the encoder dynamic resize is triggered and change config() is then called, it will reset the current (resized) codec width/height back to the the config (unresized) width/height (which will then prevent the resizing action from occurring in encoder_loop). Avoid this by checking for a change in the config width/height before resetting the cm->width/height. Change-Id: Id9d50c0ee8a943abe4b6c72bbaa02d9696f93177
-
- 02 Sep, 2015 1 commit
-
-
Johann authored
Change-Id: I63a7da7857534dcb4c69ed316c1feadea9ffb45b
-
- 31 Aug, 2015 1 commit
-
-
Johann authored
Change-Id: I2e387a06484a06301f3cd6600c4ba2f4335b61ee
-
- 29 Aug, 2015 1 commit
-
-
James Zern authored
Change-Id: I38b4de692f4f7e880766316783981cbd1134bed9
-
- 28 Aug, 2015 1 commit
-
-
Marco authored
For one pass CBR: only check for updating refresh_golden if ext_refresh_frame_flags_pending is not set (i.e., == 0). And move the resetting of ext_refresh_frame_flags_pending = 0 down to after the encode_loop (and account for dropped frames). This is to prevent changing refresh_golden flga when the user supplies the reference/update flags. Change-Id: I4d87b3e705ba43f243667e367503b585c61e2a54
-
- 27 Aug, 2015 1 commit
-
-
James Zern authored
prevents redeclaration warnings; vp8 has its own define which will be resolved in a future commit Change-Id: Ic941fef3dd4262fcdce48b73075fe6b375f11c9c
-