platform/upstream/libvpx.git
9 years agoFix to source scaling for dynamic_resize.
Marco [Tue, 14 Jul 2015 17:01:45 +0000 (10:01 -0700)]
Fix to source scaling for dynamic_resize.

The fast scaling for 1 pass mode was being used only on the
first frame after resizing event (because resize_scale_num/den
is set to 1 and only changed for first frame following resize event).

Change-Id: I723b63e21823eb858f25f5662d2bbe4f1842e61f

9 years agoMerge "Add an SSE2 version of vp9_iwht4x4_16_add"
Alex Converse [Tue, 14 Jul 2015 22:11:46 +0000 (22:11 +0000)]
Merge "Add an SSE2 version of vp9_iwht4x4_16_add"

9 years agoAdd an SSE2 version of vp9_iwht4x4_16_add
Alex Converse [Mon, 13 Jul 2015 18:12:45 +0000 (11:12 -0700)]
Add an SSE2 version of vp9_iwht4x4_16_add

Roughly half as many cycles as plain C.

Change-Id: I8c16c29940b76d54ee7e4fb874c328ce90bff5d4

9 years agoMerge "Add extra resize trigger for frames above maximum allowed size."
paulwilkins [Tue, 14 Jul 2015 18:24:12 +0000 (18:24 +0000)]
Merge "Add extra resize trigger for frames above maximum allowed size."

9 years agoFixes part of merge regression from adding arf parameters.
Debargha Mukherjee [Fri, 10 Jul 2015 16:49:17 +0000 (09:49 -0700)]
Fixes part of merge regression from adding arf parameters.

From Change  Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
There is still an issue relating to one animated test clip with repeat
patterns where this change effectively increase the default  maximum
arf interval by +1. This can be examined seperately.

Change-Id: Idd01d5480fc45202d8a059a0c3afc0997cc5bdd1

9 years agoMerge "Refactor intra block prediction and reconstruction process"
Jingning Han [Tue, 14 Jul 2015 16:22:40 +0000 (16:22 +0000)]
Merge "Refactor intra block prediction and reconstruction process"

9 years agoMerge "Refactor intra block prediction function"
Jingning Han [Tue, 14 Jul 2015 16:22:19 +0000 (16:22 +0000)]
Merge "Refactor intra block prediction function"

9 years agoRefactor intra block prediction and reconstruction process
Jingning Han [Mon, 13 Jul 2015 18:49:57 +0000 (11:49 -0700)]
Refactor intra block prediction and reconstruction process

Flaten the intra block decoding process. It removes the legacy
foreach_transformed_block use in the decoder. This saves cycles
spent on retrieving the transform block position.

Change-Id: I21969afa50bb0a8ca292ef72f3569f33f663ef00

9 years agoRefactor intra block prediction function
Jingning Han [Mon, 13 Jul 2015 17:40:01 +0000 (10:40 -0700)]
Refactor intra block prediction function

This commit simplifies the intra block boundary condition logic.
It removes the block index from the argument set.

Change-Id: If00142512eb88992613d6609356dfd73ba390138

9 years agoMerge "Dynamic resize for real-time: source scaling"
Marco [Mon, 13 Jul 2015 19:06:25 +0000 (19:06 +0000)]
Merge "Dynamic resize for real-time: source scaling"

9 years agoMerge "Revert "Add an SSE2 version of vp9_iwht4x4_16_add.""
Yaowu Xu [Mon, 13 Jul 2015 16:27:09 +0000 (16:27 +0000)]
Merge "Revert "Add an SSE2 version of vp9_iwht4x4_16_add.""

9 years agoRevert "Add an SSE2 version of vp9_iwht4x4_16_add."
Yaowu Xu [Mon, 13 Jul 2015 16:26:27 +0000 (16:26 +0000)]
Revert "Add an SSE2 version of vp9_iwht4x4_16_add."

This reverts commit f8d35016408f3957c67945160d65be467ca97fdc.

Change-Id: If8c7af403c091b7fb447a6f0c73fecdbccbc51b3

9 years agoMerge "Revert "Fill buffer speed up""
Jim Bankoski [Mon, 13 Jul 2015 14:39:00 +0000 (14:39 +0000)]
Merge "Revert "Fill buffer speed up""

9 years agoRevert "Fill buffer speed up"
Jim Bankoski [Mon, 13 Jul 2015 13:47:46 +0000 (13:47 +0000)]
Revert "Fill buffer speed up"

This reverts commit 9b4f9f45eee4d63cef3cd10f24923ed0bdd5ab7b.

Change-Id: I23545ac8c7464127f7466fc6a58de517874fe0cf

9 years agoMerge "mips msa vp8 loop filter optimization"
Parag Salasakar [Mon, 13 Jul 2015 01:16:42 +0000 (01:16 +0000)]
Merge "mips msa vp8 loop filter optimization"

9 years agoDynamic resize for real-time: source scaling
Marco [Thu, 9 Jul 2015 01:01:01 +0000 (18:01 -0700)]
Dynamic resize for real-time: source scaling

Use faster scaling on source.

Change-Id: I968df97239a86834c96126b86832d3d6d0875a53

9 years agoMerge "Fill buffer speed up"
Jim Bankoski [Thu, 9 Jul 2015 20:26:22 +0000 (20:26 +0000)]
Merge "Fill buffer speed up"

9 years agoFill buffer speed up
Jim Bankoski [Thu, 9 Jul 2015 18:41:30 +0000 (11:41 -0700)]
Fill buffer speed up

Eliminates the byte by byte read from bool decoder,  by reading
in a size_t and then shifting it into place.

Change-Id: Id89241977103fc3b973e4ed172a5cbf246998e5d

9 years agoMerge "Changes to use of rectangular partitions."
paulwilkins [Thu, 9 Jul 2015 18:34:39 +0000 (18:34 +0000)]
Merge "Changes to use of rectangular partitions."

9 years agoMerge "Remove clamp operations."
Yaowu Xu [Thu, 9 Jul 2015 17:49:16 +0000 (17:49 +0000)]
Merge "Remove clamp operations."

9 years agoMerge "Clean out more MSVC warnings"
Yaowu Xu [Thu, 9 Jul 2015 17:49:06 +0000 (17:49 +0000)]
Merge "Clean out more MSVC warnings"

9 years agoMerge "Eliminate num_8x8 and num_4x4 width/height lookups"
Scott LaVarnway [Thu, 9 Jul 2015 17:16:21 +0000 (17:16 +0000)]
Merge "Eliminate num_8x8 and num_4x4 width/height lookups"

9 years agoMerge "Add an SSE2 version of vp9_iwht4x4_16_add."
Alex Converse [Thu, 9 Jul 2015 16:57:01 +0000 (16:57 +0000)]
Merge "Add an SSE2 version of vp9_iwht4x4_16_add."

9 years agoMerge "Change speed and rd features for formatting bars."
paulwilkins [Thu, 9 Jul 2015 16:38:37 +0000 (16:38 +0000)]
Merge "Change speed and rd features for formatting bars."

9 years agoEliminate num_8x8 and num_4x4 width/height lookups
Scott LaVarnway [Thu, 9 Jul 2015 12:30:46 +0000 (05:30 -0700)]
Eliminate num_8x8 and num_4x4 width/height lookups

Also some log2 lookups.

Pass in 8x8 block width/height and log2 num4x4s instead.

Change-Id: I8ea9a1ec1e0bbab23f8ba556954a1b5433f4d613

9 years agoRemove clamp operations.
Yaowu Xu [Wed, 8 Jul 2015 01:29:14 +0000 (18:29 -0700)]
Remove clamp operations.

The clamp calls with INT32_MIN and INT32_MAX have no effect at all on
int values passed in, therefore this commit removes those effectless
clamps and also adds more const intermediate results to make the code
more readable.

Change-Id: I66d8811f58bb74ec31cbec9a6c441983a662352e

9 years agoFormat fixes in vp9_encodeframe.c and vp9_encodemb.c
Jingning Han [Wed, 8 Jul 2015 21:26:00 +0000 (14:26 -0700)]
Format fixes in vp9_encodeframe.c and vp9_encodemb.c

Change-Id: Ib1303dac9043ab1b1f8fce54611cf4ea8a208038

9 years agoRefactor transform block loop for inter mode decoding
Jingning Han [Wed, 8 Jul 2015 16:15:39 +0000 (09:15 -0700)]
Refactor transform block loop for inter mode decoding

Rework the inter mode transform block decoding loop. Replace the
block index with the row and col index as the input argument. It
saves function call to compute the row and col index according to
the block index and overall block size, and many if statements
associated with the transform block position relative to the coding
block. For the test bit-stream pedestrian_area 1080p at 5 Mbps,
the decoding speed goes up from 81.13 fps to 81.92 fps.

Note that the intra coded block decoding needs more refactoring
work than the inter ones. So keep it using foreach_transforme_block
as for now.

Change-Id: I5622bdae7be28ed5af96693274057f55ba9b4fb4

9 years agoClean out more MSVC warnings
Yaowu Xu [Tue, 7 Jul 2015 21:22:07 +0000 (14:22 -0700)]
Clean out more MSVC warnings

Change-Id: I1bab0c104df2ec4825d050cd516e26ab635a7b3e

9 years agoAdd an SSE2 version of vp9_iwht4x4_16_add.
Alex Converse [Tue, 7 Jul 2015 22:27:54 +0000 (15:27 -0700)]
Add an SSE2 version of vp9_iwht4x4_16_add.

80% fewer cycles than C

Change-Id: I841bde1e268ddd33ae2ee75eee94737a400e2cde

9 years agoMerge "Don't allocate dqcoeff in MACROBLOCKD."
Alex Converse [Wed, 8 Jul 2015 20:42:34 +0000 (20:42 +0000)]
Merge "Don't allocate dqcoeff in MACROBLOCKD."

9 years agoDon't allocate dqcoeff in MACROBLOCKD.
Alex Converse [Wed, 8 Jul 2015 04:19:21 +0000 (21:19 -0700)]
Don't allocate dqcoeff in MACROBLOCKD.

The encoder gets its dqcoeff from the context tree. In the decoder move
it to directly after MACROBLOCKD.

Change-Id: I46c9b76f26956a360d17de0b26ecb994dae34ecb

9 years agoMerge "Refactor inverse_transform_block argument list"
Jingning Han [Wed, 8 Jul 2015 19:28:24 +0000 (19:28 +0000)]
Merge "Refactor inverse_transform_block argument list"

9 years agoMerge "Reset dqcoeff[0] only if eob is 1"
Jingning Han [Wed, 8 Jul 2015 19:27:21 +0000 (19:27 +0000)]
Merge "Reset dqcoeff[0] only if eob is 1"

9 years agoMerge "VP9_LPF_VERTICAL_16_DUAL_SSE2 optimization"
Frank Galligan [Wed, 8 Jul 2015 18:15:38 +0000 (18:15 +0000)]
Merge "VP9_LPF_VERTICAL_16_DUAL_SSE2 optimization"

9 years agoMerge "Use 'unsigned long' for _BitScanReverse parameter"
Johann [Wed, 8 Jul 2015 17:50:32 +0000 (17:50 +0000)]
Merge "Use 'unsigned long' for _BitScanReverse parameter"

9 years agoAdd extra resize trigger for frames above maximum allowed size.
paulwilkins [Tue, 30 Jun 2015 09:18:42 +0000 (10:18 +0100)]
Add extra resize trigger for frames above maximum allowed size.

Even if the recode loop is not enabled for the current frame type
trap the case where the projected size of a a frame is above the
maximum allowed in recode_loop_test()

Change-Id: I453004694b8f8699e3c2a83252e9f83adccdda4e

9 years agoChanges to use of rectangular partitions.
paulwilkins [Wed, 24 Jun 2015 10:36:51 +0000 (11:36 +0100)]
Changes to use of rectangular partitions.

Changes to allow more use of rectangular partitions at
speeds 1 and 2 for content classed by the first pass as
animation and for blocks near the active image edge.

This has quite a big impact in quality for the animated
test sequence but also hurts encode speed for speed 2.

For other content types the impact on both speed and
quality is small.

Added some plumbing for detection of internal vertical
image edges.

Change-Id: I3fc48de2349f8cb87946caaf0b06dbb0ea261a9a

9 years agoChange speed and rd features for formatting bars.
paulwilkins [Wed, 24 Jun 2015 10:36:51 +0000 (11:36 +0100)]
Change speed and rd features for formatting bars.

Change speed features / behavior for split mode when there
is an internal active edge (e.g. formatting bars).

Remove some threshold constraints in rd code near the active
edge of the image.

Add some plumbing for left and right active edge detection.

Patch set 5. Limit rd pass through for sub 8x8 to internal active edges.
This takes away any speed penalty for most clips but keeps the enhanced
edge coding for the more critical case of internal image edges

Change-Id: If644e4762874de4fe9cbb0a66211953fa74c13a5

9 years agoRefactor inverse_transform_block argument list
Jingning Han [Tue, 7 Jul 2015 22:32:27 +0000 (15:32 -0700)]
Refactor inverse_transform_block argument list

Replace block index with transform type in the argument list. This
allows to save an extra fetch to the prediction mode. For pedestrian
area 1080p coded at 5 Mbps with single tile, the average decoding
speed goes up from 80.55 fps (before the refactoring series) to
81.13 fps.

Change-Id: Icbebf84ce63c19c0c92f3690ed201f6c3eab7881

9 years agomips msa vp8 loop filter optimization
Parag Salasakar [Wed, 8 Jul 2015 07:11:00 +0000 (12:41 +0530)]
mips msa vp8 loop filter optimization

average improvement ~2x-4x

Change-Id: I20c4f900ef95d99b18f9cf4db592cd352c2212eb

9 years agoMerge "vp9_entropymv: remove vp9_get_mv_mag()"
James Zern [Wed, 8 Jul 2015 01:27:11 +0000 (01:27 +0000)]
Merge "vp9_entropymv: remove vp9_get_mv_mag()"

9 years agoUse 'unsigned long' for _BitScanReverse parameter
Johann [Wed, 8 Jul 2015 00:45:06 +0000 (17:45 -0700)]
Use 'unsigned long' for _BitScanReverse parameter

New clang warnings in chromium reveal an incompatible pointer being
passed.

Change-Id: I0d893993726ecf899f467c16175bfb8c76329731
https://code.google.com/p/chromium/issues/detail?id=504696

9 years agoMerge "Add vp9_int_pro_row_neon."
Frank Galligan [Wed, 8 Jul 2015 00:16:02 +0000 (00:16 +0000)]
Merge "Add vp9_int_pro_row_neon."

9 years agoMerge "Move sub pixel variance to vpx_dsp"
Johann [Tue, 7 Jul 2015 23:57:17 +0000 (23:57 +0000)]
Merge "Move sub pixel variance to vpx_dsp"

9 years agoMerge "Rework scan order fetch logic for decoder"
Jingning Han [Tue, 7 Jul 2015 23:09:39 +0000 (23:09 +0000)]
Merge "Rework scan order fetch logic for decoder"

9 years agoMove sub pixel variance to vpx_dsp
Johann [Fri, 5 Jun 2015 16:54:19 +0000 (09:54 -0700)]
Move sub pixel variance to vpx_dsp

Change-Id: I66bf6720c396c89aa2d1fd26d5d52bf5d5e3dff1

9 years agoMerge "Update to speed 5 non-rd mode partition search."
Marco [Tue, 7 Jul 2015 22:47:43 +0000 (22:47 +0000)]
Merge "Update to speed 5 non-rd mode partition search."

9 years agoMerge "Add vp9_ prefix to init_macroblockd"
Jingning Han [Tue, 7 Jul 2015 22:35:44 +0000 (22:35 +0000)]
Merge "Add vp9_ prefix to init_macroblockd"

9 years agoMerge "Reduce dqcoeff array size in decoder"
Jingning Han [Tue, 7 Jul 2015 22:35:26 +0000 (22:35 +0000)]
Merge "Reduce dqcoeff array size in decoder"

9 years agoReset dqcoeff[0] only if eob is 1
Jingning Han [Tue, 7 Jul 2015 22:18:30 +0000 (15:18 -0700)]
Reset dqcoeff[0] only if eob is 1

If only the first dequantized coefficient is non-zero, reset
dqcoeff[0] to zero directly.

Change-Id: I0197ba72028a8ec436f0b1b9abcc1c0ae5d70abe

9 years agoRework scan order fetch logic for decoder
Jingning Han [Tue, 7 Jul 2015 20:52:56 +0000 (13:52 -0700)]
Rework scan order fetch logic for decoder

Save redundant call for getting prediction mode to obtain scan
order for detokenization.

Change-Id: I0683ef119f1579d1261ed5d59052a1745b68ef6f

9 years agoMerge "Update to vpx_temporal_svc_encoder:"
Marco [Tue, 7 Jul 2015 21:34:08 +0000 (21:34 +0000)]
Merge "Update to vpx_temporal_svc_encoder:"

9 years agoMerge "Unify subtract function used in VP8/9"
Jingning Han [Tue, 7 Jul 2015 20:42:18 +0000 (20:42 +0000)]
Merge "Unify subtract function used in VP8/9"

9 years agoMerge "Allows using optimzed version vp9_fdct8x8"
Yaowu Xu [Tue, 7 Jul 2015 19:28:56 +0000 (19:28 +0000)]
Merge "Allows using optimzed version vp9_fdct8x8"

9 years agoMerge "Remove comment about disabled tests"
Johann [Tue, 7 Jul 2015 19:14:32 +0000 (19:14 +0000)]
Merge "Remove comment about disabled tests"

9 years agoAdd vp9_ prefix to init_macroblockd
Jingning Han [Tue, 7 Jul 2015 19:00:01 +0000 (12:00 -0700)]
Add vp9_ prefix to init_macroblockd

Change-Id: I202d4924e627eec94838741df004ed9259d38b88

9 years agoUpdate to speed 5 non-rd mode partition search.
Marco [Tue, 7 Jul 2015 18:43:15 +0000 (11:43 -0700)]
Update to speed 5 non-rd mode partition search.

If the pre-selected partition size (from variance partition) is
32x32, also apply nonrd partition search for 32x32 and 16x16 size.

Overall small positive gain in metrics, average ~1%.
Some visual improvement, for lower resolutions.

Change-Id: I69cb425bda94f7d13d34c451ab30e9276335a30e

9 years agoReduce dqcoeff array size in decoder
Jingning Han [Tue, 7 Jul 2015 18:36:05 +0000 (11:36 -0700)]
Reduce dqcoeff array size in decoder

The decoding process handles detokenization and reconstruction per
transform block sequentially. There is no need to offset the dqcoeff
buffer according to the transform block index. This allows to
reduce the memory spill and improve cache performance.

Change-Id: Ibb8bfe532a7a08fcabaf6d42cbec1e986901d32d

9 years agoMerge "mips msa vp8 idct optimization"
Parag Salasakar [Tue, 7 Jul 2015 18:14:18 +0000 (18:14 +0000)]
Merge "mips msa vp8 idct optimization"

9 years agoUpdate to vpx_temporal_svc_encoder:
Marco [Tue, 7 Jul 2015 18:07:10 +0000 (11:07 -0700)]
Update to vpx_temporal_svc_encoder:

Add set_tune_content control setting.

Change-Id: I8f7af8e8e9bc35a2d1546c5a0b2dd14be3cce750

9 years agoAllows using optimzed version vp9_fdct8x8
Yaowu Xu [Tue, 7 Jul 2015 17:28:42 +0000 (10:28 -0700)]
Allows using optimzed version vp9_fdct8x8

Change-Id: I59cecb7178a93cdee7ad535fa996ef0caa6e988c

9 years agoUnify subtract function used in VP8/9
Jingning Han [Mon, 6 Jul 2015 23:52:24 +0000 (16:52 -0700)]
Unify subtract function used in VP8/9

This commit replaces the vp8_ prefixed subtract function with the
common vpx_subtract_block function. It removes redundant SIMD
optimization codes and unit tests.

Change-Id: I42e086c32c93c6125e452dcaa6ed04337fe028d9

9 years agoMerge "Adds macros for new encoder controls"
Debargha Mukherjee [Tue, 7 Jul 2015 14:25:34 +0000 (14:25 +0000)]
Merge "Adds macros for new encoder controls"

9 years agoMerge "Alter partition search at image edge."
paulwilkins [Tue, 7 Jul 2015 12:44:27 +0000 (12:44 +0000)]
Merge "Alter partition search at image edge."

9 years agoMerge "Error score recalibration for inactive regions."
paulwilkins [Tue, 7 Jul 2015 08:44:33 +0000 (08:44 +0000)]
Merge "Error score recalibration for inactive regions."

9 years agoMerge "ARF Boost correction for inactive regions."
paulwilkins [Tue, 7 Jul 2015 08:44:15 +0000 (08:44 +0000)]
Merge "ARF Boost correction for inactive regions."

9 years agomips msa vp8 idct optimization
Parag Salasakar [Thu, 2 Jul 2015 12:38:06 +0000 (18:08 +0530)]
mips msa vp8 idct optimization

average improvement ~2x-5x

Change-Id: I19e82f78772993bcd67fcf975fe180232172f86d

9 years agovp9_entropymv: remove vp9_get_mv_mag()
James Zern [Tue, 7 Jul 2015 03:49:28 +0000 (20:49 -0700)]
vp9_entropymv: remove vp9_get_mv_mag()

inline the code directly in read_mv_component(), the only place where it
was being used; this removes a function call in a hot function

Change-Id: I66f99c0c9ce3bc310101dbca4a470f023cc6fb55

9 years agoMerge "mips msa vpx_dsp sadx3 sadx8 optimization"
Parag Salasakar [Tue, 7 Jul 2015 02:10:21 +0000 (02:10 +0000)]
Merge "mips msa vpx_dsp sadx3 sadx8 optimization"

9 years agoMerge "inline vp9_reader_has_error()"
James Zern [Tue, 7 Jul 2015 00:48:57 +0000 (00:48 +0000)]
Merge "inline vp9_reader_has_error()"

9 years agoRemove comment about disabled tests
Johann [Tue, 30 Jun 2015 16:23:23 +0000 (09:23 -0700)]
Remove comment about disabled tests

The tests were re-enabled in
1fe643cf03f45198e5a033743d7c4dc027b8dfd9

Change-Id: I17b45a4bbe720a56605aed338446ff77df71abad

9 years agoAdds macros for new encoder controls
Debargha Mukherjee [Mon, 6 Jul 2015 23:07:53 +0000 (16:07 -0700)]
Adds macros for new encoder controls

To aid version management for integration with ffmpeg by use
of:
  #ifdef VPX_CTRL_<CTRL_ID>
    ...
  #endif

Change-Id: If550e06de4d3aa3685881f312ce6a86fa9de083b

9 years agoMerge "vp9_variance*.c: make static tables const"
James Zern [Mon, 6 Jul 2015 22:52:38 +0000 (22:52 +0000)]
Merge "vp9_variance*.c: make static tables const"

9 years agoMerge "mips msa vp9 subpel variance optimization"
James Zern [Mon, 6 Jul 2015 22:43:01 +0000 (22:43 +0000)]
Merge "mips msa vp9 subpel variance optimization"

9 years agoMerge "Move subtract functions from vp9 to vpx_dsp"
Jingning Han [Mon, 6 Jul 2015 22:39:26 +0000 (22:39 +0000)]
Merge "Move subtract functions from vp9 to vpx_dsp"

9 years agovp9_variance*.c: make static tables const
James Zern [Mon, 6 Jul 2015 22:04:37 +0000 (15:04 -0700)]
vp9_variance*.c: make static tables const

Change-Id: Ia5044d13c09685c401191fe87fbf90d36203aadd

9 years agomips msa vp9 subpel variance optimization
Parag Salasakar [Sun, 5 Jul 2015 16:14:06 +0000 (21:44 +0530)]
mips msa vp9 subpel variance optimization

Change-Id: If88401bf8c5d8ee58200278734d7a5058d1585d0

9 years agoMerge "Expose params min-gf-interval/max-gf-interval"
Debargha Mukherjee [Mon, 6 Jul 2015 21:36:38 +0000 (21:36 +0000)]
Merge "Expose params min-gf-interval/max-gf-interval"

9 years agoMerge "remove vp9_get_interp_kernel()"
James Zern [Mon, 6 Jul 2015 21:36:36 +0000 (21:36 +0000)]
Merge "remove vp9_get_interp_kernel()"

9 years agoremove vp9_get_interp_kernel()
James Zern [Thu, 2 Jul 2015 02:01:58 +0000 (19:01 -0700)]
remove vp9_get_interp_kernel()

expose filter_kernels[] and do the table lookup directly

Change-Id: I0b10bff0327c3e01a723736141a9ffd377cd3d20

9 years agoExpose params min-gf-interval/max-gf-interval
Debargha Mukherjee [Wed, 1 Apr 2015 23:39:06 +0000 (16:39 -0700)]
Expose params min-gf-interval/max-gf-interval

Adds two new vp9 parameters --min-gf-interval and --max-gf-interval
to enable testing based on frequency of alt-ref frames.

Also adds a unit-test to test enforcement of min-gf-interval.

For both these parameters the default value is 0, which indicates
they are picked by the encoder, based on resolution and framerate
considerations. If they are greater than zero, the specified
parameter is honored.

(Additional note by paulwilkins)
Note that there is a slight oddity in that key frames are also GFs and
considered part of  GF only group. However they are treated as not
being part of an arf group because for arf groups the previous GF is
assumed to be the terminal or overlay frame for the previous group.

(end note)

Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0

9 years agoMove subtract functions from vp9 to vpx_dsp
Jingning Han [Mon, 6 Jul 2015 16:33:27 +0000 (09:33 -0700)]
Move subtract functions from vp9 to vpx_dsp

Factor out the subtraction operator as common function.

Change-Id: I526e703477c6a290e0e3e3c8898f8bb1ca82779b

9 years agoMerge "Rename vpx_thread to vpx_util"
Jingning Han [Mon, 6 Jul 2015 17:01:29 +0000 (17:01 +0000)]
Merge "Rename vpx_thread to vpx_util"

9 years agoMerge "Revert "Correct the inter prediction coordinate...""
James Zern [Fri, 3 Jul 2015 18:44:00 +0000 (18:44 +0000)]
Merge "Revert "Correct the inter prediction coordinate...""

9 years agoRevert "Correct the inter prediction coordinate..."
hkuang [Wed, 1 Jul 2015 23:22:47 +0000 (16:22 -0700)]
Revert "Correct the inter prediction coordinate..."

Change in 92b199061a13173d29247257f4ef906d38b012bf leads to frame parallel
decode failure in extreme case.

addresses issue #1010

Change-Id: I4fa488dac8e8c584f5eef4cae1640a579130d387

9 years agoMerge "Revert "mips msa vp9 subpel variance optimization""
James Zern [Thu, 2 Jul 2015 21:07:31 +0000 (21:07 +0000)]
Merge "Revert "mips msa vp9 subpel variance optimization""

9 years agoMerge "Revert "mips msa vp9 avg subpel variance optimization""
James Zern [Thu, 2 Jul 2015 21:07:22 +0000 (21:07 +0000)]
Merge "Revert "mips msa vp9 avg subpel variance optimization""

9 years agoRevert "mips msa vp9 subpel variance optimization"
James Zern [Thu, 2 Jul 2015 19:02:52 +0000 (12:02 -0700)]
Revert "mips msa vp9 subpel variance optimization"

This reverts commit a42df86c035d1bc007dbc816b4b758605135d6d9.

this change causes MSA/VP9SubpelVarianceTest.Ref and
MSA/VP9SubpelVarianceTest.ExtremeRef failures under
mips32r5el-msa-linux-gnu and mips64r6el-msa-linux-gnu

Change-Id: I40b71a0b774eaeb31f66f795733f95cf360909f7

9 years agoRevert "mips msa vp9 avg subpel variance optimization"
James Zern [Thu, 2 Jul 2015 19:01:16 +0000 (12:01 -0700)]
Revert "mips msa vp9 avg subpel variance optimization"

This reverts commit 61774ad1c44c73ccde48a2e3456e86196965b5dc.

this change causes MSA/VP9SubpelAvgVarianceTest.Ref failures under
mips32r5el-msa-linux-gnu and mips64r6el-msa-linux-gnu

Change-Id: I7fb520c12b2a3b212d5e84b7619a380a48e49bb0

9 years agoVP9_LPF_VERTICAL_16_DUAL_SSE2 optimization
levytamar82 [Wed, 29 Apr 2015 18:54:11 +0000 (11:54 -0700)]
VP9_LPF_VERTICAL_16_DUAL_SSE2 optimization

The vp9_lpf_vertical_16_dual function optimized for x86 32bit target. The hot code in that function was caused by the call to the transpose8x16.
The gcc generated assembly created uneeded fills and spills to the stack. By interleaving 2 loads and unpack instructions, in addition to hoisting the consumer
instruction closer to the producer instructions, we eliminated most of the fills and spills and improve the function-level performance by 17%.
credit for writing the function as well as finding the root cause goes to Erik Niemeyer (erik.a.niemeyer@intel.com)

Change-Id: I6173cf53956d52918a047d1c53d9a673f952ec46

9 years agoRename vpx_thread to vpx_util
Jingning Han [Thu, 2 Jul 2015 17:01:09 +0000 (10:01 -0700)]
Rename vpx_thread to vpx_util

Change the dir name to include more util tools.

Change-Id: Id5b16062803ce5eed872fe2edb36d7e56b32eed8

9 years agoAlter partition search at image edge.
paulwilkins [Wed, 17 Jun 2015 16:14:25 +0000 (17:14 +0100)]
Alter partition search at image edge.

Added code to reduce the minimum partition size searched
for super blocks at or straddling the edge of the image.

If the first pass has detected formatting bars the "active" edge
may not be the real edge.

Change-Id: I9c4bdd1477e60f162a75fac95ba6be7c3521e05c

9 years agoError score recalibration for inactive regions.
paulwilkins [Tue, 16 Jun 2015 14:55:12 +0000 (15:55 +0100)]
Error score recalibration for inactive regions.

Apply a correction to the frame error scores for frames
with inactive regions.

Change-Id: I217840f2efe7eafed3f5b8ddc7c468f1ca3d923c

9 years agoARF Boost correction for inactive regions.
paulwilkins [Mon, 15 Jun 2015 10:28:38 +0000 (11:28 +0100)]
ARF Boost correction for inactive regions.

Correct the ARF boost calculations to partly discount
inactive or very low energy regions of the image.

Examples (formatting bars and 0 energy areas of animated clips).

Change-Id: I241af058d10aba8c67a4deca36deb913047d4561

9 years agoMerge "Use vpx prefix for codec independent threading functions"
Jingning Han [Thu, 2 Jul 2015 04:24:53 +0000 (04:24 +0000)]
Merge "Use vpx prefix for codec independent threading functions"

9 years agoMerge "Move multi-threading module functions into vpx_thread folder"
Jingning Han [Thu, 2 Jul 2015 04:24:35 +0000 (04:24 +0000)]
Merge "Move multi-threading module functions into vpx_thread folder"

9 years agomips msa vpx_dsp sadx3 sadx8 optimization
Parag Salasakar [Thu, 2 Jul 2015 02:32:19 +0000 (08:02 +0530)]
mips msa vpx_dsp sadx3 sadx8 optimization

average improvement ~3x-5x

Change-Id: Ifdb4670d31ae83c4e22a4238293d1377b16c90db

9 years agoinline vp9_reader_has_error()
James Zern [Thu, 2 Jul 2015 02:10:43 +0000 (19:10 -0700)]
inline vp9_reader_has_error()

this is tested for each block

Change-Id: I229c6f0e9513fb206bdbce8be9699a4bf4008ca4

9 years agoMerge "vp9_pred_common: inline vp9_get_tx_size_context"
James Zern [Thu, 2 Jul 2015 01:52:39 +0000 (01:52 +0000)]
Merge "vp9_pred_common: inline vp9_get_tx_size_context"